June 19th, 2016


  • This page is for Spring term. Click the link above for the Summer term website with insructor Marty Stepp.

June 1st, 2016
  • Dress Rehearsal Practice Exam: 1-4pm in NVIDIA (in lieu of class).

May 20th, 2016
  • HW7 posted: This is the last assignment! This is a fan favorite among students, and I hope you enjoy the adventure of Trailblazer.

May 11th, 2016
  • HW6 posted: Huffman coding assignment is posted. Like the engineers of the fictional "Pied Piper" company of HBO's Sillicon Valley, you will write your own super-efficient compression algorithm.

May 8th, 2016
  • (C)LaIR Moving to Tresidder: Starting tonight, all LaIR and CLaIR hours will be held on the 1st floor of Tresidder. This will be the location for LaIR for the rest of the quarter. The scheduling will remain the same: LaIR from 6PM-12AM on Sun-Thurs, CLaIR from 8PM-10PM on Sun-Thurs.

May 3rd, 2016
  • Midterm Locations: The midterm on Thursday will take place from 7PM-9PM in three different rooms. You have been assigned to your room based on the first letter of your last name.
    Starting with A-D: Hewlett 201
    Starting with E-N: Bishop Auditorium (in Lathrop)
    Starting with O-Z: Braun Auditorium (in Mudd Chemistry)

April 29th, 2016
  • HW5 posted: Priority Queue is an opportunity to experiment with implementing an interface in a few different ways, and then analyze the performance tradeoffs. There will be a YEAH presentation about it on Wednesday. It will be recorded for SCPD and posted on Thursday in case you can't make it (sorry we are unable to post the same night--the SCPD folks do it when they arrive for work the following day).
    (Note that this announcement used to say that YEAH hours would be on Monday, which was incorrect.)

April 22nd, 2016
  • HW4 posted: Boggle is another assignment about recursion, and it also involves implementing a class. There will be a YEAH presentation about it on Monday (it will be recorded for SCPD and posted on Tuesday in case you can't make it).

April 15th, 2016
  • HW3 posted: Check out the new assignment--it's all about recursion! There will be a YEAH presentation about it on Monday. Starting with this YEAH, all our YEAH will be recorded for SCPD in case you can't make it.

April 7th, 2016
  • Conceptual LaIR Hours (CLaIR): Conceptual LaIR hours start this coming Sunday, April 10th. This is a place to get conceptual help, vs debugging help that typically happens in the LaIR. Students can get help with class concepts and high-level assignment help. Assignment code and debugging should stay in the LaIR, but CLaIR helpers can help with section and lecture code. Both the LaIR and CLaIR are housed on the second floor of Old Union, but the CLaIR has reduced hours (Sunday-Thursday 8-10PM). If you need help signing up for CLaIR help, ask any section leader working the CLaIR area.

April 5th, 2016
  • LAIR Hours: The section leaders run a drop-in help center in Old Union. Schedule is here.

  • Section Assignments: Section assignments have been released. You can view your section assignment at If you missed the deadline to sign up for sections or you can no longer make the section you were assigned, you can join/switch your section at If you and your partner were not placed in the same section, first try to move into the same section at; if that doesn't work, fill out this form by Tuesday, April 12th at noon.

April 1st, 2016
  • Assignment 1 posted: The first assignment is now posted to the assignments page. Enjoy!

March 31st, 2016
  • QT Creator Help Session: I'm extending my office hours on Friday by an hour and we'll have extra staff on hand in case you need help getting QT Creator up and running on your laptop. Come to Gates 167 (note: change of room to a conference room just around the corner from my office) between 11:30am and 1:30pm. We'll have soda and chips as well. :-)

March 29th, 2016
  • Week 1 Announcements (from email)

  • Please carefully review the course information sheet and course calendar/syllabus (the papers that were given out in class on Monday). They are available under "Essential documents" on this page.

    Partners are *not* allowed on the first assignment, so that gives you some time to meet potential homework partners in your first section meeting, which will be in Week 2. Remember that you and your partner need to be enrolled in the same section.

    Section signups begin at the end of Week 1 (this Thursday 3/31, 5:00PM). After section signups are live, you have until the first deadline of Sunday 5pm to sign up for a section. You'll hear your section assignment by Tuesday, and sections start that week. You can use your section to meet a partner, or, if you already have someone you know you want to work with, you can sign up (by Sunday) to be in the same section as that person. Signup link is here. If for some reason you miss the first deadline, there will be another opportunity to sign up after that Tuesday (just watch that link for a note saying second-chance signups have opened).

    Assignment 1 is due a week from Friday at 6pm. It won't be posted until this Friday. For now, you can work on getting your QTCreator environment set up using the instructions linked to from our assignments page. Then you can download the code from class and begin to experiment with C++.

    We'll start doing Socrative login tomorrow (Wednesday) as a "dress rehearsal," and then start counting Socrative participation credit on Friday. Be sure to have your app/browser set for class (link classroom "STANFORDCS")

    There will be a help session for installing and getting started with Qt Creator on Thursday, time/place TBA (see announcement above).

    You may have noticed that it says in the paper course information sheet you received on Monday that there are *no* late days allowed for the last assignment, but the paper calendar says you may use up to 1 late day on that assignment (less than the usual 2 per assignment). (calendar is available on at the "syllabus" link on this page). I've updated the course information sheet to reflect that you may use 1 late day on that assignment.

March 26th, 2016
  • Welcome to CS106B Spring 2015-2016!

  • The website is still under construction over the weekend. Some materials may be from previous quarters, links need updating, etc.

  • WHEN/WHERE: We're meeting MWF 2:30-3:20pm in NVIDIA (Huang Bldg).

  • WHO: Are you still shopping between CS106A and CS106B? The course description is below, and will give you a sense of what we're about. I also recommend you take a look at the CS106 course placement document for excellent advice.

  • WHAT: Students coming to CS106B are expected to have substantial prior experience with programming constructs such as loops, functions or methods, arrays, console and file I/O, standard data types, and classes. In other words, students coming to CS106B are expected to know how to write code. In this course, we transform you from someone who knows how to write some code into someone who can wield the power of the computer in a more expansive, versatile, and fluent way. This course adds powerful new tools to your skillset: managing complexity through abstraction, using recursion to crack big, tough problems by breaking them into smaller solvable problems, and applying analytical tools to evaluate the efficiency of different software design choices.

    Topics (schedule is approxmiate):

    • Week 1: (Very quick) transition to C++ (anticipating that most of the audience will have used Java and not C++), get started on the Basic ADTs (see weeks 2-3).
    • Weeks 2-3: Basic ADTs: Vector, Grid, Stack, Queue, Map, Set, Lexicon.
    • Week 4: Recursion, advanced recursion, backtracking recursion
    • Week 5: Pointers and dynamic memory allocation (new/delete), classes in C++
    • Weeks 6-8: Basic ADTs revisited: how do we implement them behind the scenes? Linked lists, trees, Binary Search Trees, tries, hashing.
    • Week 9-10: Graphs, graph search algorithms (BFS, DFS, A*), minimum spanning tree algorithms; also inheritance and polymorphism in C++.

  • FAQ (SCPD): We will be on SCPD this quarter, so videos of each lecture will be available.

  • If you're looking to get a head start, I'd suggest installing our development environment. Please follow the Stanford-specific QT Creator install instructions for CS106B and CS106X (do not just google QT Creator because we have specific requirements, thanks).

Lecturer: Cynthia Lee
Office: Gates 191
Spring Quarter Office Hours:
  • Monday 11:30a-12:30p
  • Tuesday 10:30a-12:00p
  • Friday 11:30a-12:30p
  • By appointment (email to schedule), or knock any time I happen to be in my office.
Head TA: Nhien Tran
Office: Gates B02
Office Hours:
  • Thursday 12:00PM - 1:00PM
  • Friday 10:30AM - 11:30AM
  • By appointment (email to schedule).
Website Design: : Jess Fisher