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 old 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
Intro to software life cycles: requirements, design, test youtube, slides
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
Intro to make and makefiles youtube, slides
Jan 12-16 Week 2: tools continued, review part I
Intro to debugging and gdb youtube slides
Intro to testing your programs youtube slides
Review: modularity and abstraction youtube, slides
Review: code standards youtube, course standards
Review: pointers and memory youtube, slides
Jan 19-23 Week 3: review II, new data types, namespaces
Review: dynamic memory handling (new, delete) youtube, slides
Practice: resizable circular buffers
(in lecture we did the resizing, not the circular)
youtube, slides, C++ files and makefile
Review: function overloading and optional parameters youtube, slides
New data types: references, enums, typedefs, and auto youtube, slides
Intro to namespaces youtube, slides
Jan 26-30 Week 4: searching and sorting
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, video coming soon
Feb 2-6 Week 5: misc. C/C++ features, structs
Command line arguments (lab discussion: argc, argv) youtube, slides
Standard i/o streams (lab discussion: stdin, stdout, stderr, cin, cout, cerr) youtube, slides
File I/O (lab discussion with streams) youtube, slides
Review: structs I youtube, slides
Review: structs II youtube , slides
array of structs example youtube , sample code
review: pointers to structs youtube, slides
Feb 9-13 Week 6: dynamic data structures, linked lists, ADTs
Basic LL implementation youtube, slides
Doubly linked lists slides, sample code, video coming soon
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, video coming soon
Queue ADT and implementations slides,video coming soon
Mar 2-6 Week 8: Midterm, stacks
Midterm in lecture Mon. Mar. 2
Stack ADT and implementations slides,video coming soon
Stack example: bracket matching slides,video coming soon
Mar 9-13 Week 9: trees, binary search trees, more on classes
Trees, Binary search trees slides, sample code, video coming soon
More class/header notations slides,video coming soon, sample code
Copy/move constructors slides,video coming soon, sample code
Mar 16-20 Week 10: friends, overloading, inheritance
Friend functions and classes slides,video coming soon, sample code
Operator overloading, assignment operators slides,video coming soon, sample code
Simple inheritance slides,video coming soon
Static binding, hiding, override, virtual (and pure virtual), final slides,video coming soon, sample code
Multiple inheritance, name resolution slides, video coming soon, 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, video coming soon
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