VIU — CSCI 161

Course Schedule

✶ ㎲ ✶

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.