CSCI 330: covid-19 contingency plans (alternative course delivery)

Official VIU covid-19 updates and info and FAQ

Contact times:
For the last three weeks of classes, I'll be available on both the VIULearn discussion forum and the discord channel Tuesdays 10-2:30, Wednesdays 1-3:30, Thursdays 11:30-1


VIU has now made the official decision to pause classes for the week of March 16-20, following which we will be switching to "alternative delivery" formats.

With that in mind, this page contains the preliminary plan for the completion of CSCI 330.

Note that this is just a first draft, it may need to change as circumstances warrant.

I'll do my best to keep the page updated in a timely fashion as things develop, and we'll all do our best to ensure everyone can complete their courses.

Please contact me with any questions or concerns about the course (

If you're struggling to cope with the situation in general please see the help and resources information in the VIU links at the top of this page.

The current plan is as follows:

Intro/overview for the revised course delivery format: slides, viutube, youtube
(sorry, audio is faint played from desktop - ok on headphones)
Question and answer topics/discussions
Course announcements

Lab sessions
Dates Web page(s)Lab Slides, Video(s)
(March 17/18) classes suspended
(March 24/25) lab 8: operations, precedence, side effects slides, viutube, and youtube (I suggest watching the Mar. 26th material on operators/precedence etc first)
(March 31/Apr 1) lab 9: variadic functions in C/C++ slides, viutube, and youtube (I suggest watching the Mar. 31st material on parameter passing first)
(April 7/8) lab 10: higher order functions in C++ slides, viutube, and youtube (I suggest watching the Mar. 31st material on higher order functions first)
  bonus lab 11: smart pointers slides, viutube, and youtube (I suggest watching the April 7th material on smart pointers first)

Lecture sessions
Date ReadingsLecture Slides, Code, Video(s)
March 16-20 classes suspended
Tuesday March 24 Data types and operations
(picking up after the character, numeric, and boolean types)
string types: viutube, and youtube
ordinal types: viutube, and youtube
arrays, C++ example, viutube, youtube
records, C++ example, viutube, youtube
hashes,sets,unions, C++ example, viutube, youtube
Thursday March 26 Data types and operations (pointers)

Expressions: operator precedence, associativity

Blocks and iteration

pointers, C++ example, viutube, youtube

Operators, precedence, associativity: viutube, youtube

Blocks, entry and exits points, C example, viutube, youtube
Selection statements, viutube, youtube
Iteration statements, viutube, youtube
Labels, conditionals, and control structures, C example, viutube, youtube

Tuesday March 31 Subroutines Subroutines (overview), viutube, youtube
Parameter passing, C example, C++ example, part 1: viutube, youtube part 2: viutube, youtube
Higher order functions, C++ example, viutube, youtube
Macros , sample code, viutube, youtube
Implementing dynamic/nested function scopes, viutube, youtube
Thursday April 2 Dynamic memory handling (wikipedia)
GNU malloc (
Smart pointers (Alexandrescu, InformIT)
Issues in handling dynamic memory, viutube, youtube
A GNU malloc approach:
  - memory organization, viutube, youtube
  - allocate/free algorithms, viutube, youtube
Smart pointers (theory), viutube, youtube
C++ smart pointers, C++ example, viutube, youtube
Tuesday April 7 ADTs and objects ADTs: features and support, viutube, youtube
OO: features and support, viutube, youtube
C++ OO implementation, viutube, youtube
(whoops: in slide 3, the definition of foo inside the class is incomplete, it was supposed to be returning x+i)
Course wrap-up, viutube, youtube
Thursday April 9 Review and exam prep
Exam format, admin details
Exam topics
Practice questions: old finals
viutube, youtube

Video sample solutions for:
2016 Q1: sample solution, viutube, youtube
2016 Q2: sample solution, viutube, youtube
2016 Q11: sample solution, viutube, youtube