Instructor
VIU Profile: | Dr Russell Campbell |
Email: | Russell.Campbell [at] viu [dot] ca |
Office: | Nanaimo Campus, Building 315, Room 218 |
Email me to set up a time for discussion on Zoom if needed.
Schedule
The following plan for topics, tutorials, assignments, and labs is only a draft and is subject to change.
Days | Topic |
---|---|
Jan 7 | C/C++ Program Compilation and Linking Process, GNU Compiler Collection (gcc), IDEs |
Jan 12 | Make and Makefile |
Jan 14 | Modular Programming with Abstraction |
Jan 15 | Standard Output, Strings, Classes |
Jan 19 | Runtime Memory Layout of a C/C++ Program |
Jan 21 | Default Constructor, Member Variables, Member Functions |
Jan 22 | Public and Private Keywords, Encapsulation, Destructors |
Jan 26 | Review of Primitive Data Types, Literals, Constants, and Operators |
Jan 28 | C++ Namespaces, Function Pointers, C Structures, 2D Arrays, Variable Scope |
Jan 29 | GNU Debugger (gdb), Static and Non-Static Keyword |
Feb 2 | C/C++ Pointers, Dynamic Memory Allocation |
Feb 4 | Standard Input and File I/O, String Arrays |
Feb 5 | C++ Function Overloading and Template Functions; The Math Class |
Feb 9 | Sort, Search, and Type Casting |
Feb 11 | Linked List |
Feb 12 | Binary Search Trees | Feb 15–19 | (study days) |
Feb 23 | C++ Standard Library |
Feb 25 | Midterm 1 |
Feb 26 | (no tutorial) |
Mar 2 | Object Instance Comparison, Enums, Switch |
Mar 4 | Inheritance and Polymorphism, Using Superclass Constructors, Static or Dynamic Binding |
Mar 5 | Inheritance with Virtual Methods for Runtime Polymorphism |
Mar 9 | Special Member Functions: Copy Constructor, Copy Assignment, Move Constructor, Move Assignment |
Mar 11 | Operator Overloading with Exception Handling, Standard Exceptions and Customized Exceptions, Exception Standard Library |
Mar 12 | Multiple Constructors, Access Modifiers |
Mar 16 | Friend Function, and Friend Class |
Mar 18 | Operator Overloading (and with Friend Function) |
Mar 19 | Abstract Classes (Inheritance with Pure Virtual Functions) and Runtime Polymorphism |
Mar 23 | Review |
Mar 25 | Midterm 2 |
Mar 26 | Working Path |
Mar 30 | User Input Validation |
Apr 1 | Sprite Enum Animations; Game Loop |
Apr 2 | Demo Text Animation in Console; Panel, Shape, Box, etc |
Apr 6 | Throws Exception Handling |
Apr 8 | Multiple Inheritance and the Diamond Problem |
Apr 9 | Template Function, and Template Class |
Apr 13 | ADT Basic Concepts, Stack, Queue, List, Map |
Apr 15 | |
Apr 16 |
Midterms
- Feb 25 Midterm 1
- Mar 25 Midterm 2
Assignments
- Jan 18–Feb 12 Assignment 1
- Mar 1–Mar 19 Assignment 2
- Mar 29–Apr 16 Assignment 3
Labs
There will be approximately six labs on the following weeks:
- Jan 11–Jan 15 Lab 1
- Jan 25–Jan 29 Lab 2
- Feb 8–Feb 12 Lab 3
- Mar 1–Mar 5 Lab 4
- Mar 8–Mar 12 Lab 5
- Mar 29–Apr 2 Lab 6
Content of labs will support your other work in the course. You will receive a mark for completing, so it is to your advantage to try, explore concepts, and even share what you discover with others in the class.