Lecture Videos

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.

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