Credit points: 15

Subject outline

C++ is one of the most widely used programming languages in industry. C++ is used extensively in games, operating systems, mobile devices, systems programming and application programming. Knowledge of C++ can also help when learning other object-oriented languages such as Java. CSE1CPP introduces students to the basics of C++ and progresses to an intermediate level, forming a solid basis for more advanced subjects in the areas of games, project, networks and other areas. The topics studied include: i/o streams and file i/o, classes, references, overloaded functions and operations, friend functions, inheritance, abstract classes, template classes and functions, exception handling, namespaces, memory management, the string class and an introduction to the Standard Template Library (STL). Students will also be introduced to some of the new C++11 features.

SchoolSchool Engineering&Mathematical Sciences

Credit points15

Subject Co-ordinatorSomnath Ghosh

Available to Study Abroad StudentsYes

Subject year levelYear Level 1 - UG

Exchange StudentsYes

Subject particulars

Subject rules

Prerequisites Must have attempted either CSE1OOF or CSE1OFA or equivalent,or be enrolled in CSE1OOF. CSE1CPP and CSE1OOF can be studied concurrently.


Incompatible subjects CSE1SYS, CSE12SYS, CSE11SYS

Equivalent subjects CSE12SYS or CSE11SYS or CSE1SYS

Special conditions Note that students who have attempted, but not completed, their basic Java unit may still apply to the unit co-ordinator for admission to this unit.

Graduate capabilities & intended learning outcomes

01. Explain, using references provided, the object-oriented concepts of inheritance and polymorphism and apply them to solve basic problems in C++.

Programming assignment & written exam. Successful completion of lab & prac work will demonstrate that students have gained the analysis and programming skills required to complete the assignment. The written exam tests the student's ability to design and implement small programs to solve a given program. Also to be able to evaluate and explain concepts within the time constraints of the exam.

02. Identify exceptional cases in relation to functional correctness and robustness of programs, and apply C++'s mechanisms to handle these cases.

Programming assignment and written exam. Students are required to demonstrate in the assignment that they are able to identify cases where exceptions are appropriate and how they are implemented in C++. Students will also be required in the assignment to demonstrate design skills to the level of knowing when alternative mechanisms to exceptions should be applied.

03. Use input and output streams provided in the C++ standard library to code programs that manipulate text files.

Programming assignment and written exam. Students will consolidate material relevant to input/output covered in lectures, labs and practicals. Lab exercises and the assignment will require programs that successfully reads in a given text file and writes out data to a text file.

04. Define dynamic data structures and implement the linked list data structure in C++.

Written exam

05. Code generic methods and classes in C++ using the C++ template mechanism.

Written exam and programming assignment. Students are introduced to these concepts in lectures and given a guided class exercise. Students are then required to successfully complete lab and practical work problems in this area at which point they demonstrate these skills by coding them in the assignment. Students are also required to code a small problem in this area in the written exam.

06. Access the C++ collections framework (STL) and use the provided collection classes to solve problems,

Written exam and programming assignment. The programming assignment requires that students demonstrate the ability to make a design decision related to which one of the STL collections is appropriate and give a written justification of their decision.

07. Use C++ STL algorithms to solve problems

Written exam.

08. Extend the functionality of the C++ STL algorithms and collections classes through user-defined function objects.

Assessed in the written exam, when students are required to evaluate when a user defined function object is required, how to program it and where it should be applied. This builds on lab exercises and guided class exercises in lectures. To successfully complete the programming assignment students must be able to use user-defined function objects.

Subject options

Select to view your study options…

Start date between: and    Key dates

Melbourne, 2018, Semester 2, Day


Online enrolmentYes

Maximum enrolment sizeN/A

Enrolment information

Subject Instance Co-ordinatorSomnath Ghosh

Class requirements

Lecture/Workshop Week: 31 - 43
One 1.0 hours lecture/workshop per week on weekdays during the day from week 31 to week 43 and delivered via face-to-face.

Lecture Week: 31 - 43
Two 1.0 hours lecture per week on weekdays during the day from week 31 to week 43 and delivered via face-to-face.

Computer Laboratory Week: 32 - 43
One 2.0 hours computer laboratory per week on weekdays during the day from week 32 to week 43 and delivered via face-to-face.


Assessment elementComments% ILO*
one 3-hour examinationHurdle requirement: To pass the subject, a pass in the examination is mandatory.70 01, 02, 03, 04, 05, 06, 07, 08
one computer programming assignment equivalent to 1,000-wordsThe assignment may be built over a series of tasks.30 01, 02, 03, 05, 06