Lecture: 2 hours/week
Lab: 2 hours/week
Lectures, labs, and self-directed learning (programming assignments)
- 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
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.
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).
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