Julie Zelenski's 2008 offering of CS 106B was recorded by SCPD and put on Youtube. Though the course has changed somewhat since then, the videos are still useful, so we post them here for you to view.

Please note that the Stanford C++ library has changed somewhat since 2008, so when Julie talks about various library classes or their functions, some of the names or behavior may be different now. We're sorry for the inconvenience. In general the concepts are the same even if a function's name may have changed slightly over the years.

- Lecture 1: introduction
- Lecture 2: basic C++ programs, functions, enum, struct, pass-by-reference
- Lecture 3: random numbers, strings, cin/out streams
- Lecture 4: file I/O streams; token scanner; intro to collections; writing classes - collections start at 43:53
- Lecture 5: vector, stack, queue
- Lecture 6: map, set; set vs hash
- Lecture 7: ADTs; intro to recursion - recursion starts at 40:05
- Lecture 8: recursion (pow, isPalindrome, binarySearch, subsets)
- Lecture 9: recursion (fractals, sierpinski, mondrian, towers of Hanoi, permutations)
- Lecture 10: backtracking (permutations, subsets, isAnagram, 8 queens)
- Lecture 11: backtracking (sudoku, cryptarithmetic) - pointers start at 35:50
- Lecture 12: pointers, linked nodes
- Lecture 13: linked lists (done recursively)
- Lecture 14: algorithm analysis; sorting - sorting starts at 44:30
- Lecture 15: sorting (incl. merge sort, start of quick sort)
- Lecture 16: quick sort; templates - templates start at 32:58
- Lecture 17: more templates, callback functions / function pointers; classes and objects - objects start at 10:00
- Lecture 18: ADTs; implementing MyVector
- Lecture 19: more about templates; copy constructor / assignment operator issue; implementing a stack using Vector
- Lecture 20: more implementing Stack; implementing stack/queue using a linked list
- Lecture 21: more implementing linked list; doubly-linked, tail pointer; implementing Map as a Vector or sorted Vector - implementing Map starts at 30:27
- Lecture 22: binary trees; implementing Map using BST
- Lecture 23: graphs; BFS, DFS
- Lecture 24: hashing; implementing a hash map
- Lecture 25: implementing Lexicon using a trie; using a DAWG (directed acyclic word graph)
- Lecture 26: final exam review; looking ahead (not much material here)
- Lecture 27: STL, standard C++ stuff (guest lecturer: Keith Schwarz)

This document and its content are copyright © Marty Stepp, 2015.
All rights reserved.
Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the authors' expressed written permission.