精东传媒app

UniSQ Logo
The current and official versions of the course specifications are available on the web at .
Please consult the web for updates that may occur during the year.

CSC2402 Object-Oriented Programming in C++

Semester 1, 2023 Toowoomba On-campus
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:

  1. Compare and contrast interpreted vs compiled languages; and prototype-based vs class-based languages;
  2. Competently apply the concepts of polymorphism, inheritance, encapsulation, exception handling, memory management, threads, and file I/O;
  3. Design, code, verify, test, document, amend and refactor moderately complex programs meeting requirements by applying object-oriented principles;
  4. 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

Rudolf Pecinovsky: OOP 鈥 Learn Object Oriented Thinking and Programming, ISBN-10鈥: 鈥 8090466184, Tomas Bruckner, 2013.

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

Approach Type Description Group
Assessment
Weighting (%) Course learning outcomes
Assignments Written Quiz No 10 1,2,3,4,5,6,7,8,9,10
Assignments Written Problem Solving 1 No 20 1,2,3
Assignments Written Problem Solving 2 No 20 1,2,3,4,5,6,7,8
Examinations Non-invigilated Time limited online examinatn No 50 1,2,3,4,5,6,7,8,9,10
Date printed 9 February 2024