March 7th, 2015
  • WICS is hosting HackOverflow on Saturday, April 25th from 10am - 10pm. HackOverflow will focus on the use of hardware to build interesting products. This particular hackathon is specifically set up to be accessible to those who've only taken CS106A, which means everyone here is more than qualified take part.

    If you're interested, then you should sign up right here.

March 2nd, 2015
  • I've uploaded Open Office and PDF versions of the slide decks I relied on during today's lecture, and I've placed those materials right here.

February 23th, 2015
  • Hey there, happy CS106X folk. Check this out:

  • WICS has put together a panel for this Wednesday evening. The panel is designed for undergraduates who are considering a CS major but would like to know more about the CS tracks. Here's a flyer with all of the details, and if you think you're going to make it, you should RSVP right here.

February 22nd, 2015
  • Happy Sunday, everyone. I hope everyone is having a great weekend. Several announcements...

  • First, I have conflict with two of the three remaining Thursday office hour blocks, so I've decided to just move all Thursday hours to Wednesdays immediately following CS106X lecture. That means I now have office hours on Tuesday from 1 until 4 and on Wednesdays from 2:30 until 5.

  • Second, remember that you have another midterm a week from this Thurdsday evening, once again in Cubberley Auditorium from 7 until 10 pm. The exam will cover everything up through and including the material addressed by Handout 31 on tries. In particular, the moment we finish talking about all things tree is the moment we've covered all testable material.

  • Finally, I've gone ahead and posted working implementations and test frameworks for the HashMap, the TreeMap, and the Lexicon. Feel free to download and tinker!

February 7th, 2015
  • I've gone ahead and created a second challenge problem right here. It relies on your ability to leverage recursive backtracking and memoization to solve what was presented as an ACM World Finals Contest Problem back in 2010. (Understand that you problem needs to be super fast for all input sizes specified in the problem statement.)

  • Those who solve it will be treated to dinner out with Jerry, TA Kevin, and the other students who solved the problem. Unfortunately, those who solved the first problem who also solve this problem can't be taken to dinner twice. (You're still welcome to submit a solution, though.)

February 7th, 2015
  • One of my CS110 students built a web application to help Stanford students search for and discover new courses. I've been playing with it for a few minutes, and I think it's really nicely done. Check it out at

February 3rd, 2015
  • I need to cancel today's office hours, as I need to be up in San Francisco this afternoon. My office hours will resume on Thursday.

  • I received word that Google and IEEE are sponsoring a programming competition on Saturday, February 14th. More information about the contest can be found right here.

January 29th, 2015
  • I've gone ahead and posted a practice midterm and the solution. The exam is a week from tonight, and I'm allowing you to bring in your course textbook, copies of the course handouts, your own notes, and copies of your assignment submissions. You may not, however, use any electronic devices while taking the exam.

  • Also, I've gone ahead and posted an advanced programming problem right here. I don't give extra credit for completing it, but I will take the first six students to submit an efficient solution out to dinner somewhere fancy.

January 15th, 2015
  • In a rare display of organization, I've gone ahead and posted the Assignment 2 handout and the starter files. (We'll post demo programs later tonight.)

  • If you're twiddling your thumbs already, then feel free to tackle the new assignment. Note that the submission is due a week from Monday at noon, not 5:00 p.m.

January 9th, 2015
  • Remember that you need to state your discussion section time preferences by going here at some point before Sunday at 5:00 p.m. There's no reward for managing this sooner instead of later, but make sure you don't miss the Sunday deadline, else you won't be assigned to a discussion section.

January 7th, 2015
  • Hey there, CS106X'ers! If you're reading this, then you're still with us, and that's all kinds of awesome.

  • Remember that you need to state your discussion section time preferences by going here at some point between Thursday at 5:00 p.m. and Sunday at 5:00 p.m. There's no reward for managing this sooner instead of later, but make sure you don't miss the Sunday deadline, else you won't be assigned to a discussion section, and that'll be bad.

  • Also, when you get a block of free time, spend that time installing the development environment you're required to use for CS106X. The name of that development environment is Qt Creator, and installation instructions can be found right here. The installation process requires you download a good number of large files, so it takes a little bit of time.

  • I've gone ahead and posted the next three handouts for today's lecture:

    The first of these three handout houses the larger example I'll start on today and finish either today or on Friday. The second handout is for reference (I won't explicitly cover it in lecture), and the third is your very first assignment (due a week from Friday).

  • In general, I won't post an announcement every time I'm about to lecture. You're expected to visit the Lectures and Assignments pages via the tabs and dropdown menus at the top of this page. You should visit those pages regularly to ensure you're always in the know.

January 5th, 2015

Lecturer: Jerry Cain
Office: Gates 192
Office Hours:
  • Tuesdays, 1:00-4:00pm
  • Wednesdays, 2:30-5:00pm
  • By appointment (email to schedule)
Head TA: Kevin Shin
Office: Gates 160
Office Hours:
  • Tuesdays and Thursdays, 10:30am-12:30pm
  • By appointment (email to schedule)
Website Design: : Jess Fisher