CSCI 161 Computer Science II: Spring 2026
Supporting Resources (videos, slides, notes, examples)

This page contains links for most of the supporting videos, slides, examples, and notes for Dave's 2026 spring offering of CSCI 161.

I've listed the topics in roughly the order I hope to cover them, and roughly grouped them by week. Some weeks there's a little extra material, some weeks a little less, and the timeline is likely to evolve/change as the semester progresses.

While I do plan on keeping the lectures/labs in synch with the slide/video material as much as possible, there will certainly be significant content differences between the posted content and the actual live lectures. This material is not intended to replace in-class attendance, but rather to act as extra aids/study/support material, especially for any students who might find it necessary to isolate at home at some point in the semester.

If you need a refresher on any CSCI 159 material (structs, arrays, etc) you can find my 159 lecture resources here
(My way older 161 web notes and examples for past versions of 161 are also still available.)

Some items I particularly recommend reviewing up on are:

Week Topics Resource links
Jan 5-9 Week 1: software life cycles, tools of the trade
Course intro, administrivia outline
Review: software life cycles: requirements, design, test youtube, slides
Review: modularity and abstraction youtube, slides
Review: code standards youtube, course standards
Intro to git for version control and lab use youtube, slides, short guide to csci git project/lab submission
Core of git in the labs general summary for CSCI courses , youtube
Intro to compilation, linking, loading youtube, slides
Jan 12-16 Week 2: review, makefiles, file i/o, command line arguments
Reviews while Dave is off sick on Monday:
- function overloading and optional parameters
- Structs I and II
- Practice: arrays of structs
Quick review: function overloading and optional parameters youtube, slides
Quick review: structs I youtube, slides
Quick review: structs II youtube , slides
Practice: array of structs youtube , sample code
Hopefully Dave back on Wednesday to resume regular labs/lectures
Intro to make and makefiles youtube, slides
Command line arguments (lab discussion: argc, argv) youtube, slides
Jan 19-23 Week 3: pointers review, i/o streams
File I/O (lab discussion with streams) youtube, slides
Standard i/o streams youtube, slides
Quick review: pointers and memory youtube, slides
Quick review: dynamic memory handling (new, delete) youtube, slides
Quick review: pointers to structs youtube, slides
Practice: resizable circular buffers youtube, slides, C++ files and makefile
Jan 26-30 Week 4: sorting and searching
Review: basic searching and sorting youtube, slides
Simple sorting: selection, and insertion sorts youtube, slides, sample code from video
Mergesort youtube, slides, sample code from video
Quicksort youtube, slides, old sample code example
Evaluating efficiency slides
Feb 2-6 Week 5: new types and features, namespaces, debugging and testing
New data types: references, enums, typedefs, and auto youtube, slides
Intro to namespaces youtube, slides
Intro to debugging and gdb youtube slides
Intro to testing your programs youtube slides
Feb 9-13 Week 6: dynamic data structures, linked lists, ADTs
Basic LL implementation youtube, slides
Doubly linked lists slides, sample code
Abstract data types (ADTs) youtube, slides
Feb 16-20 Study break: no lectures or labs
  - enjoy a break!
Feb 23-27 Week 7: Objects, classes, linked lists, queues Friday lab: review/prep for midterm
OO: objects, classes, fields, methods, inheritance youtube, slides
example: linked lists as a class slides, sample code
Queue ADT and implementations slides
Mar 2-6 Week 8: Midterm, stacks
Midterm in lecture Mon. Mar. 2
Stack ADT and implementations slides
Stack example: bracket matching slides
Mar 9-13 Week 9: trees, binary search trees, more on classes
Trees, Binary search trees slides, sample code
More class/header notations slides, sample code
Copy/move constructors slides, sample code
Mar 16-20 Week 10: friends, overloading, inheritance
Friend functions and classes slides, sample code
Operator overloading, assignment operators slides, sample code
Simple inheritance slides
Static binding, hiding, override, virtual (and pure virtual), final slides, sample code
Multiple inheritance, name resolution slides, static base code, virtual base code
Mar 23-27 Week 11: dynamic binding, code reuse, templates
in-class example with "diamond" inheritance and initializer lists: diamondshapes.cpp
Dynamic binding, virtual functions, abstract base classes slides, sample code
Code re-use video, slides
Templated functions and classes video, slides
Mar 30-Apr 3 Week 12: standard template library, exception handling No lab April 3 (Good Friday, VIU closed)
The C++ STL (standard template library) video, slides, stacks example (video)
Exception handling: try, throw, catch slides, video,
sample code: building a heirarchy, deriving from std::exception, new/bad_alloc
Apr 6-10 Week 13: extra topics (time permitting), course wrapup Friday lab: review/prep for final
String streams youtube, slides
Multi-dimensional arrays (and pointers and structs) youtube, slides
Course review/exam prep (done in lab) slides, practice final
Apr 13-22Exam period: exam date/location t.b.a.
Extras (won't be on the final exam)
Hardware, software, and languages youtube, slides
Random number generators youtube slides

Back to the main course page