Semester 1, 2023 Online | |
Units : | 1 |
School or Department : | School of Mathematics, Physics & Computing |
Grading basis : | Graded |
Course fee schedule : | /current-students/administration/fees/fee-schedules |
Staffing
Course Coordinator:
Requisites
Pre-requisite: CSC1401 or Students must be enrolled in one of the following Programs: GDTI or GCSC or GCEN or METC or MCOT or MCTE or MCOP or MPIT or MCTN
Overview
Object-oriented programming is one of the principle paradigms in software development used by organisations worldwide to develop a wide range of software solutions. Sound knowledge of the underlying principles and experience in the practical application of these is essential for any information technology specialist. This intermediate programming course extends students鈥 procedural programming knowledge and skills into the object-oriented paradigm and builds on previous experience with interpreted languages to introduce compiled languages. In addition to further shaping a solid development methodology, the course prepares students for continued investigation into advanced programming topics.
This course extends the student's basic procedural design and programming knowledge into the object-oriented paradigm. The student will be expected to learn and apply the basic concepts of object-oriented design and programming, i.e., abstraction, inheritance, and polymorphism, in the context of the C++ language. Key software engineering principles such as decomposition and component re-use will also be emphasised.
Course learning outcomes
On completion of this course students will be able to:
- Compare and contrast interpreted vs compiled languages; and prototype-based vs class-based languages;
- Competently apply the concepts of polymorphism, inheritance, encapsulation, exception handling, memory management, threads, and file I/O;
- Design, code, verify, test, document, amend and refactor moderately complex programs meeting requirements by applying object-oriented principles;
- Contribute to reviews of own work with others through the use of collaborative tools.
Topics
Description | Weighting(%) | |
---|---|---|
1. | Compiled languages; imperative programming versus object orientation | 10.00 |
2. | Objects and classes; Prototype-based vs class-based languages; Polymorphism, Inheritance, Encapsulation; message passing, abstraction, overloading, overriding, deep and shallow copies | 40.00 |
3. | Exception handling; debugging | 20.00 |
4. | Memory management | 10.00 |
5. | Threads, processes, synchronisation | 10.00 |
6. | Basics of File I/O, basics of socket programming | 10.00 |
Text and materials required to be purchased or accessed
Student workload expectations
To do well in this subject, students are expected to commit approximately 10 hours per week including class contact hours, independent study, and all assessment tasks. If you are undertaking additional activities, which may include placements and residential schools, the weekly workload hours may vary.
Assessment details
Description | Group Assessment |
Weighting (%) | Course learning outcomes |
---|---|---|---|
Quiz | No | 10 | 1,2,3,4,5,6,7,8,9,10 |
Problem Solving 1 | No | 20 | 1,2,3 |
Problem Solving 2 | No | 20 | 1,2,3,4,5,6,7,8 |
Time limited online examinatn | No | 50 | 1,2,3,4,5,6,7,8,9,10 |