Course Overview
This advanced software application development course follows on from COMP 3603 and COMP 3761. It assumes students have solid knowledge of procedural programming with C and can already write intermediate-level programs in C++. Participants must also understand how to use Alorithms Analysis and Design for advanced software application development. COMP 4603 starts with a quick review of writing and testing a well-formed C++ program. Students are then introduced to hands-on best practices, common design patterns and features added to C++ 20. They will be shown how to develop maintainable and adaptable C++ applications to industry standards. COMP 3603 and COMP 4603 are electives in the Applied Software Development (ASD) Associate Certificate and both C++ courses are required courses in the CST FLEX Diploma. Upon completion, successful students will be able to design, build and deploy advanced C++ software for a variety of applications, from Games Development to Artificial Intelligence (AI).
Prerequisite(s)
Credits
4.0
- Not offered this term
- This course is not offered this term. Notify me to receive email notifications when the course opens for registration next term.
Learning Outcomes
Design, implement, debug and test intermediate to complex object-oriented programs in C++.
- Demonstrate advanced C++ design idioms including the Dependency-inversion Principle, Liskov Substitution Principle, Open/Closed Principle, and Interface-segregation Principle.
- Use the Principle of Least Knowledge or “Law of Demeter" to design guidelines for maintainable and adaptable software code.
- Use profiling tools to monitor the memory and CPU usage of C++ programs.
- Use multiple inheritance to model complex C++ abstractions.
- Create reusable containers in C++ and iterate over them.
- Demonstrate an understanding of advanced C++ design patterns including Abstract Factory, Builder, Lazy Initialization, Bridge, Decorator, Facade, Proxy, Chain of Responsibility, Iterator, Mediator, State, and Strategy.
- Develop systems using advanced architectures that reduce system coupling including dependency injection, asynchronous message passing, brokers, and observers.
- Create an advanced C++ application to industry standards.
Effective as of Winter 2025
Related Programs
Advanced C++ Application Development (COMP 4603) is offered as a part of the following programs:
- Indicates programs accepting international students.
- Indicates programs eligible for students to apply for Post-graduation Work Permit (PGWP).
School of Computing and Academic Studies
- Applied Software Development (ASD)
Associate Certificate Part-time
- Computer Systems
Diploma Part-time
Programs and courses are subject to change without notice. Find out more about BCIT course cancellations.