Computer Programming II
Overview
- Review of pointers and dynamic memory allocation
- Classes as abstract data types
- Static and non-static class members
- Encapsulation, data hiding, and accessor/mutator member functions
- Constructors, destructors, and copy constructors
- Separation of class specification from its implementation
- Operator overloading and object type conversion
- Rvalues, Rvalue references, and move semantics
- Inheritance, class hierarchies, and protected members
- Aggregation
- Polymorphism and virtual functions
- Abstract base classes and pure virtual functions
- Object-oriented exception handling
- C++ standard exceptions
- Programmer-defined exception classes
- Function and class templates
- Parameter and non-parameter generic types
- Specialized class templates
- STL arrays and vectors
- Function pointers, function objects, and lambda expressions
- Event-driven programming and GUI applications
- Basics of embedded systems programming and bit-wise operators
Lectures, labs, and self-directed learning (programming assignments)
Assessment will be in accordance with the Douglas College Evaluation 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% |
Term Test(s) | 25% - 35% |
Final Exam | 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, term tests, and final exam).
Upon successful completion of the course, students will be able to:
- Compare and contrast procedural and object-oriented programming paradigms;
- Describe encapsulation, abstraction, and information hiding;
- Apply inheritance, polymorphism, virtual functions, templates, and other object-oriented-related concepts to write effective programs;
- Implement class constructors, destructors, copy constructors, accessors, mutators, overloaded operators, and move semantics;
- Utilize Standard Template Library (STL) arrays and vectors;
- Compare Command Line Interface (CLI) and Graphical User Interface (GUI) applications, and implement simple GUI applications;
- Apply object-oriented exception handling concepts using C++ standard exceptions and programmer-defined exception classes;
- Employ function pointers, function objects, and lambda expressions;
- Identify the fundamental requirements of embedded systems programming.
Consult the Douglas College Bookstore for the latest required textbooks and materials.
Sample textbooks and materials may include:
- Starting Out with C++ from Control Structures to Objects (current edition), Tony Gaddis, Pearson
- Introduction to C++ Programming and Data Structures (current edition), Daniel Liang, Pearson
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) |
Langara College (LANG) | LANG CPSC 1181 (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) or SFU CMPT 135 (3) |
Simon Fraser University (SFU) | SFU CMPT 125 (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_O 1st (3) |
University of British Columbia - Vancouver (UBCV) | UBCV CPSC_V 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) |
Course Offerings
Winter 2025
CRN | Days | Instructor | Status | More details |
---|---|---|---|---|
CRN
16503
|
Tue Thu | Instructor last name
Li
Instructor first name
Link
|
Course status
Waitlist
|
CRN | Days | Instructor | Status | More details |
---|---|---|---|---|
CRN
16702
|
Mon Wed | Instructor last name
Ariafar
Instructor first name
Arezoo
|
Course status
Open
|
CRN | Days | Instructor | Status | More details |
---|---|---|---|---|
CRN
17335
|
Tue Thu | Instructor last name
Li
Instructor first name
Link
|
Course status
Waitlist
|