Course overview
In successfully completing this course, students will understand the theory and practice of using design patterns to facilitate the efficient creation of good software in C++. Design patterns; Gang of Four patterns including structural, behavioural and creational; discuss the importance and use of design patterns to reduce the complexity of software engineering projects; introduction to C++; structure of C++ program; C style strings; object oriented programming in C++ (classes and objects; inheritance and polymorphism, templates); nested classes and friend classes; exception handling; Stream I/O); operator overloading; big three methods (destructor, copy constructor and copy assignment operator); pointers and pointer-based strings; dynamic memory allocation and management; introduction to standard template library; and coding standards and guidelines.
Course learning outcomes
- Describe design patterns and their use in software development
- Select the appropriate design pattern and implement a software solution
- Design, implement, test and debug maintainable object oriented computer programs in C++
- Use pointers and dynamic memory allocation and management