November 24th, 2015
  • Assignment 8 (Stanford 1-2-3) starter code has been updated. If you have already downloaded it, we've changed the ssview.h/cpp files, so please get the new version and update those two files.
November 18th, 2015
  • Assignment 8 (Stanford 1-2-3) is now posted.
November 11th, 2015
  • Assignment 7 (Trailblazer) is now posted.
November 11th, 2015
  • Reminder: if you missed more than 4pts for "efficiency" on the CandyBag problem of the midterm, please submit for a regrade by Monday, Nov. 16. (see announcements email from a couple days ago for more details)
November 4th, 2015
  • Assignment 6 (Huffman Coding) is now posted.
October 28th, 2015
  • Assignment 5 (Priority Queue) is now posted.
October 21st, 2015
  • Congratulations recursive art contest winner Joseph Suarez! Joseph's submission was hand-coded and multicolored, and a wonderful addition to the art wall of fame. Honorable mention goes to excellent work from Ashwin Agarwal and Mark Sabini, who will also join the wall of fame. Joseph's next discussion section will be catered as the main prize, and all three contestants are invited to come get some Grace Hopper swag from my office.
October 18th, 2015
  • The exams page has been updated with practice exams and other information. The midterm exam is coming up a week from Tuesday!
October 12th, 2015
  • Assignment 4 is now posted! I went ahead and posted this assignment early, but I'm not expecting anyone to start on it until Wednesday. Wednesday's lecture will cover necessary topics for completing this assignment. It is due a week from Wednesday.
October 9th, 2015
  • Assignment 3 is now posted! Enjoy.
October 4th, 2015
  • Assignment 2 was posted on Friday, and the sample outputs for the required portions are now also posted. Enjoy.
September 28th, 2015
  • LaIR Hours Start Tonight. the Lair (now on the second floor of Old Union) opens tonight. It is open from 6PM-12AM every Sunday-Thursday, staffed with CS106 section leaders (SLs) to help you get unstuck on your assignments.
September 25th, 2015
  • Thanks for signing up for section. The SL Coordinators will notify you of your section assignment by 5pm on TUESDAY. Sections start this week, which makes for a fast turnaround between that Tues announcement and the earlier in the week section times. Please keep the timeslots you listed as preferred open so you'll be ready to jump on it. If you missed the Sunday deadline for signup you will be given another chance to sign up starting Tuesday.

September 25th, 2015
  • The first assignment is posted on the assignments page. Due Friday 10/2. Happy coding!

September 23nd, 2015
  • We will be holding a Qt Creator setup/debug session in Gates 104 on Monday, September 28 (next Monday) from 2:30-3:30PM. Please come by if you are having any trouble setting up Qt Creator (don't forget to follow our instructions precisely to avoid running into any issues).

September 22nd, 2015
  • If you're just joining us, welcome! Read all the announcements below for important information. Another thing everyone should do as we get started this quarter is go sign yourself up on Piazza. So far only a few of you have enrolled there!

September 21st, 2015
September 20th, 2015
  • Axess enrollment issue: Now resolved. There is no enrollment cap for this course.

September 14th, 2015
  • Welcome to CS106X Autumn 2015-2016!

  • WHEN/WHERE: We're meeting MWF 11:30-12:20pm in Gates (Computer Science Bldg) B01. Room B01 is in the basement. You'll need to take the *exterior* stairs down from the street (Serra Mall) or come in the lobby and then take the elevator down. There are no stairs down from the inside of Gates.

  • WHO: Are you still shopping between A, B, and X? 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 CS106X 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 CS106X 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 very 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.

  • Welcome to the next level, and welcome to CS106X!

Lecturer: Cynthia Lee
Office: Gates 191
Office Hours:
  • Monday 12:30p-1:30p
  • Friday 12:30p-1:30p
  • By appointment (email to schedule), or knock any time I happen to be in my office.
Head TA: Ilan Goodman
Office: Gates B02
Office Hours:
  • Monday 2:15p-4:15p
  • By appointment (email to schedule), or knock any time I happen to be in my office.
Website Design: : Jess Fisher