Computer Programming II
Overview
- A brief review of C++ basics and procedural programming:
- Data types and operators
- Decision-making and loop structures
- Arrays, strings, and pointers
- Static vs. dynamic memory allocation
- Iterative and recursive functions
- Basic IO and file processing
- Exception handling
- Modular programming: Procedural vs. object-oriented programming
- Classes as abstract data types
- Static class members vs. non-static instance members
- Information hiding, private attributes, and getter/setter methods
- Constructors, destructors, and copy constructors
- Separating class specification from its implementation
- Operator overloading and object type conversion
- Rvalue references and move semantics
- Inheritance, class hierarchies, and protected members
- Aggregation
- Polymorphism and virtual functions
- Abstract base classes and pure virtual functions
- Exception classes and object-oriented exception handling
- Generics, templates, and C++ STL
- Lambda expressions and function pointers
- Event-driven programming
- CLI vs. GUI applications
- C++ GUI API’s
- Basic GUI controls
- Program testing and code debugging techniques
- An introduction to code quality factors
- Efficiency analysis of algorithms
- Good coding style, and conventions
- Assertions, invariants, and correctness
- An introduction to documentation systems
- Basics of C++ programming for embedded systems
Lectures, labs, and self-directed learning (programming assignments)
Evaluation will be carried out in accordance with Douglas College policy. The instructor will present a written course outline with specific evaluation criteria at the beginning of the semester. Evaluation will be based on the following.
Labs |
10% - 20% |
Assignments | 10% - 20% |
Quizzes | 0% - 10% |
Midterm Exam | 25% - 35% |
Final Examination | 30% - 40% |
Total | 100% |
**In order to pass the course, in addition to receiving an overall course grade of 50%, students must achieve a grade of at least 50% on the combined weighted examination components (including quizzes, midterm and final examinations.)
Upon the completion of this course, successful students will be able to:
- Explain the importance of modular programming and compare procedural and object-oriented methodologies
- Discuss encapsulation, abstraction, information hiding, inheritance, polymorphism, virtual functions, templates, and other object-oriented-related terminology
- Identify different types of methods and their roles in a class: constructors, destructors, copy constructors, getters and setters, and operator-overloading methods
- Design, develop, implement, and document programs efficiently according to current best practices
- Identify and use some of the basic data structures implemented in C++ STL (Standard Template Library) to develop software
- Analyze and compare the efficiency of algorithms
- Explain the importance of assertions and invariants to ensure program correctness
- Explain the role of documentation systems
- Compare CLI (Command Line Interface) and GUI (Graphical User Interface) applications, and implement simple GUI applications
- Define exception classes to utilize object-oriented exception handling
- Apply lambda expressions and function pointers
Consult the Douglas College Bookstore for the latest required textbooks and materials.
Sample text:
Introduction to C++ Programming and Data Structures (latest edition), Daniel Liang, Pearson, ISBN: 978-0-13-466985-4
Requisites
Course Guidelines
Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.
Course Transfers
These are for current course guidelines only. For a full list of archived courses please see https://www.bctransferguide.ca
Institution | Transfer Details for CMPT 1209 |
---|---|
Alexander College (ALEX) | ALEX CPSC 112 (4) |
Athabasca University (AU) | AU COMP 3XX (3) |
Camosun College (CAMO) | CAMO COMP 139 (3) |
College of New Caledonia (CNC) | CNC CSC 110 (3) or CNC CSC 1XX (3) |
College of the Rockies (COTR) | COTR COMP 1XX (3) |
Coquitlam College (COQU) | COQU CSCI 200 (3) |
Kwantlen Polytechnic University (KPU) | KPU CPSC 1103 (3) |
LaSalle College Vancouver (LCV) | DOUG CMPT 1109 (3) & DOUG CMPT 1209 (3) = LCV VGP 101 (6) |
North Island College (NIC) | NIC CPS 1XX (3) |
Northern Lights College (NLC) | NLC CPSC 1XX (3) |
Okanagan College (OC) | OC COSC 121 (3) |
Quest University (QU) | QU IND 3156 (4) |
Simon Fraser University (SFU) | SFU CMPT 125 (3) |
Simon Fraser University (SFU) | SFU CMPT 125 (3) or SFU CMPT 135 (3) |
Simon Fraser University (SFU) | SFU CMPT 135 (3) |
Thompson Rivers University (TRU) | TRU COMP 1XXX (3) |
University Canada West (UCW) | UCW CMPT 2XX (3) |
University of British Columbia - Okanagan (UBCO) | UBCO COSC 1st (3) |
University of British Columbia - Vancouver (UBCV) | UBCV CPSC 1st (3) |
University of Northern BC (UNBC) | UNBC CPSC 1XX (4) |
University of the Fraser Valley (UFV) | UFV COMP 1XX (3) |
University of Victoria (UVIC) | UVIC CSC 115 (1.5) |
Vancouver Community College (VCC) | VCC CMPT 1020 (3) |
Vancouver Island University (VIU) | VIU CSCI 161 (4) |