Course overview
The course is structured to take students from an introductory knowledge of C++ to a higher level, as well as addressing some key areas of computer programming and algorithm design. Topics include: review of class hierarchies, inheritance, friends, polymorphism and type systems; recursion; OO design principles, abstract data types, testing and software reuse; introductory data structures: linked lists, stacks, queues, trees, heaps, algorithmic strategies for searching and sorting data in these structures; introductory complexity analysis.
Course learning outcomes
- Program C++ in the OO paradigm
- Explain fundamental computing algorithms
- Analyse algorithms and identify key algorithmic strategies
- Demonstrate familiarity with fundamental software engineering practices
- Demonstrate knowledge of programming language design issues
- Work competently in a group to learn software concepts
- Use abstract data types to help solve programming problems