- International Fees
International fees are typically 3.12 times the domestic tuition. Exact cost will be calculated upon completion of registration.
Course Overview
This advanced software application development course follows on from COMP 2511, 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 the latest language standard, 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 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). COMP 4603 will be offered in the fall (September) and winter (January) terms.
- Not offered this term
- This course is not offered this term. Please check back next term or subscribe to receive notifications of future course offerings and other opportunities to learn more about this course and related programs.
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.