CS106B: Programming Abstractions
Autumn 2017
Monday/Wednesday/Friday 12:30pm to 1:20pm in NVIDIA Auditorium


icon Piazza
Lecture Videos
icon QT Creator
icon Stanford C++ Lib
Blank Project
Help Hours



Thurs Nov 2

Mon Dec 11


Lecturer: Cynthia Lee
Gates 190
Tues 10:30-11:30am
Fri 10:30-11:30am

Head TA: Ashley Taylor
Gates B02
Wed 2:00-3:00pm
Thurs 11:15-12:15pm


SCPD Office Hours will be held virtually through the link below, on Wednesday, 2:00-3:00PM and Thursday, 11:15-12:15PM.
All times listed in PST


Final Info

WHEN: Monday, December 11, 8:30-11:30a.m.

WHERE: Memorial Auditorium

PRACTICE: The following practice exams are based on actual exams from previous quarters:

REVIEW SESSION: During class Wednesday and Friday of Week 10 (12/6 and 12/8).

Midterm Info

WHEN: Thursday, Nov. 2, 7-9pm.

WHERE: The room and name assignments are as follows:

  • A-CAO: Herrin 175
  • CAR-DEN: Educ 128
  • LIN-POO: Skilling
  • PRA-VO: Gates BO1
  • WANG-Z: Gates BO3

EXAM PDF: Exam PDF, Solutions

WHAT: The following topics are fair game for testing:

  • C++ basics: there will be problems that require you to write code; need very basic console I/O, pass by reference vs pass by value, basic string manipulation, using a struct
  • ADTs: Vector, Grid, Stack, Queue, Map, Set, Lexicon
  • Recursion: predict outcome of recursive code by reading/tracing, write recursive functions and recursive backtracking functions, understand difference between breadth-first search (BFS) and depth-first search (DFS), wrapper functions
  • Big O: state BigO analysis for given code sample (e.g., loops, recursive function)
  • Memory, pointers, link nodes: predict outcome of code that uses dynamic memory/pointers by reading/tracing, draw memory diagram for given code sample, write code that manipulates chain of linked nodes, understand dynamically allocated arrays, address-of & operator, dereference * operator, -> operator
  • Sections: through Week 5 (week before midterm)
  • Homeworks: through assign4 (note: due date is after midterm, but you should understand concepts)
Note that you don't need the following:
  • anything from lecture after Oct 25 (i.e. not including Oct 27, Oct 30, Nov 1)
  • file I/O
  • anything more than extremely basic console I/O and string manipulation
  • HashMap, HashSet
  • Writing your own class
  • LinkedList class, ArrayList class

HOW: There are some details of rules and procedures for this exam in the Course Information Sheet, but a few reminders:

  • You are allowed only 1 page of notes (2 sides, standard 8.5x11 paper).
  • You are allowed to bring a copy of the textbook if you have one. (NO digital copies.) If you don't have a copy, one will be available at the front of the exam room for you to use. This copy is shared and does not go back to your seat with you! FWIW, in my experience almost nobody feels the need to refer to the book, since our exams are desigend to test your conceptual understanding and not memorization.
  • No calculators, computers, etc.
  • The exam is on paper. Bring a pen or #2 pencil. If using pencil, be sure your writing is dark and visible since we will be scanning exams for online grading.

REVIEW SESSION: Tuesday Oct 31 1:30-2:50pm in Skilling Auditorium (lead by SL Nolan!). Will be recorded by SCPD and uploaded same day.

PRACTICE: The following practice exams are based on actual exams from previous quarters:


Welcome to CS106B! I am so excited to meet all of you, and to especially welcome those who are joining our Stanford family for the first time this autumn. We are looking forward to a fun quarter. Class starts Monday September 25th at 12:30pm in NVIDIA Auditorium.