Course Title: Advanced Programming

Part A: Course Overview

Course Title: Advanced Programming

Credit Points: 12.00

Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC1295

City Campus

Postgraduate

140H Computer Science & Information Technology

Face-to-Face

Sem 1 2006,
Sem 2 2006,
Sem 1 2007,
Sem 2 2007,
Sem 1 2008,
Sem 2 2008,
Summer2009,
Sem 1 2009,
Sem 2 2009,
Sem 1 2010,
Sem 2 2010,
Sem 1 2011,
Sem 2 2011,
Summer2012,
Sem 1 2012,
Sem 2 2012,
Sem 1 2013,
Sem 2 2013,
Summer2014,
Sem 1 2014,
Sem 2 2014,
Sem 1 2015,
Sem 2 2015,
Sem 1 2016

COSC1295

City Campus

Postgraduate

171H School of Science

Face-to-Face

Sem 1 2017,
Sem 2 2017,
Sem 1 2018,
Sem 2 2018,
Sem 1 2019,
Sem 2 2019,
Sem 1 2020,
Sem 2 2020,
Sem 1 2021,
Sem 2 2021

COSC1295

City Campus

Postgraduate

175H Computing Technologies

Face-to-Face

Sem 1 2022,
Sem 2 2022,
Sem 1 2023,
Sem 2 2023,
Sem 1 2024

Course Coordinator: Professor Lawrence Cavedon

Course Coordinator Phone: +61 3 9925

Course Coordinator Email: lawrence.cavedon@rmit.edu.au

Course Coordinator Availability: By appointment


Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Prerequisite Courses
Successful completion of COSC 2531 Programming Fundamentals or equivalent.

You may not enrol in this course if you have previously passed Java for Programmers.

Note it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.
For information go to RMIT Course Requisites webpage.


Course Description

This course extends the study of basic programming principles introduced in Programming Fundamentals. Advanced concepts of program design, implementation and testing will be introduced within a framework of object oriented programming using the Java programming language.


Objectives/Learning Outcomes/Capability Development

This course is an option course for several programs and a core course in MC208 Master of Information Technology contributing to the following Program Learning Outcomes:
1. Enabling Knowledge:
You will gain skills as you apply knowledge with creativity and initiative to new situations. In doing so, you will demonstrate mastery of a body of knowledge that includes recent developments in computer science and information technology

2. Critical Analysis:
You will learn to accurately and objectively examine, and critically investigate computer science and information technology (IT) concepts, evidence, theories or situations, in particular to analyse and model complex requirements and constraints for the purpose of designing and implementing software artefacts and IT systems.

3. Problem Solving:
Your capability to analyse complex problems and synthesise suitable solutions will be extended as you learn to: design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.

4. Communication:
You will learn to communicate effectively with a variety of audiences through a range of modes and media, in particular to: interpret abstract theoretical propositions, choose methodologies, justify conclusions and defend professional decisions to both IT and non-IT personnel via technical reports of professional standard and technical presentations.

5. Responsibility:
You will be required to accept responsibility for your own learning and make informed decisions about judging and adopting appropriate behaviour in professional and social situations. This includes accepting the responsibility for independent life-long learning and a high level of accountability. Specifically, you will learn to: effectively apply relevant standards, ethical considerations, and an understanding of legal and privacy issues to designing software applications and IT systems.

For more information on the program learning outcomes for your program, please see the program guide


Upon successful completion of this course, you will be able to:

  1. Use the Java programming language for algorithmic problem-solving and the implementation of small to medium sized application programs that illustrate professionally acceptable coding and performance standards.
  2. Demonstrate knowledge of the basic principles of the object oriented development process and apply this understanding to the analysis and design of solutions for small to medium scale problems.
  3. Describe the Java Collections Framework (JCF) and apply this framework in Java code.
  4. Implement basic event-driven programming and graphical user interfaces using JavaFX.
  5. Describe common OO design patterns such as Model View Controller (MVC), Singleton, Facade and apply in Java code.


Overview of Learning Activities

You will be actively engaged in a range of learning activities such as lectorials, tutorials, practicals, laboratories, seminars, project work, class discussion, individual and group activities. Delivery may be face to face, online or a mix of both.

You are encouraged to be proactive and self-directed in your learning, asking questions of your lecturer and/or peers and seeking out information as required, especially from the numerous sources available through the RMIT library, and through links and material specific to this course that is available through myRMIT Studies Course.


Overview of Learning Resources

RMIT will provide you with resources and tools for learning in this course through myRMIT Studies Course.

There are services available to support your learning through the University Library. The Library provides guides on academic referencing and subject specialist help as well as a range of study support services. For further information, please visit the Library page on the RMIT University website and the myRMIT student portal.


Overview of Assessment

The assessment for this course focusses on practical tasks of the sort performed in industry settings, involving the development of small to medium sized programs. Across the major assessment tasks you will be required to demonstrate problem-solving and practical programming skills and demonstrate your understanding through video and/or live interviews describing your approach. Shorter in-class assessments will use short simple coding exercises of the form typically used by industry employers in interview processes.

Note that all assessments are to be performed individually.

There are no hurdle requirements in this course.

Assessment Task 1: Practical Assignment 1 -- 18%
This assignment involves a small programming assignment early in semester to build simple program.
This assessment task supports CLOs 1, 2, 3

Assessment Task 2: Practical Assignment 2 -- 50%
This assignment is an extended project developing a more complex functional program built to provided specifications, involving OO design principles and basic data structures Students will also be expected to create a simple GUI front-end and a basic database back-end for their application. Students will be required to demonstrate their code-in-progress in labs via a schedule of advertised milestones, including a final virtual interview.
This assessment task supports CLOs 1, 2, 3, 4, 5

Assessment Task 3: Part 1, Late-Semester Test -- 25%
Students will be required to perform a late-semester written test. 
This assessment task supports CLOs 1, 2, 3, 5
This assessment is a timed and timetabled assessment that students must attend on campus.

Assessment Task 4: Part 2, In-Class Coding Activities -- 7%
A series of short coding/programming exercises (15-20 minutes each), as commonly required in industry job interview processes. They are designed to be performed in class time throughout the semester, and allow students to monitor and evaluate their learning and identify problems early.
This assessment task supports CLOs 1, 2, 3, 4

If you have a long-term medical condition and/or disability it may be possible to negotiate to vary aspects of the learning or assessment methods. You can contact the program coordinator or Equitable Learning Services if you would like to find out more.