Course overview
This course introduces object-oriented programming to students with a background in the procedural paradigm. The course begins with a brief review of statements, flow control and data types emphasising pointers, array processing and structured data types. It then introduces the object-oriented programming paradigm, focusing on encapsulation, inheritance, polymorphism and abstraction, with a gentle introduction to object-oriented analysis and design fundamentals. Other topics include building 2D games using object-oriented programming, an overview of programming language principles and memory management.
Course learning outcomes
- Explain the steps in creating an executable program for a computer, including the intermediate representations and their purpose
- Manipulate binary patterns and understand the use of binary to represent numbers
- Apply good programming style and understand the impact of style on developing and maintaining programs
- Effectively use a version control system and the Linux command-line tools for incremental development
- Explain the benefits of object-oriented design and understand when it is an appropriate methodology to use
- Design object-oriented solutions for small systems involving multiple objects
- Implement, test and debug solutions in C++