Announcements
December 19th, 2011
- Happy December, everyone! I hope your break is off to an awesome start. I just posted final grades this morning, so you should be able to log in to Axess to see what you ended up with.
November 15th, 2011
- Hey there, happy CS106X folks. I hope you're cranking on Huffman and loving every bit of it. (Har.)
- Assignment 5 (Huffman Encoding) is due this Friday at 5:00 p.m. Assignment 6 will be go out this Friday and fall due on Monday, December 5th. Note that I'll likely give out Assignment 7—your final assignment—on Friday, December 2nd, not because I actually expect you to be working on two assignments simultaneously, but rather because I want to be transparent about everything left on your plate for the end of the quarter, and allow you some flexibility in how you get your stuff done during dead and final exam week. Remember that Assignment 7 is due on December 14th at 11:30 a.m. (the time a CS106X final exam would have ended), and that you must submit it by then if we're to grade and count it.
- Last but not least, I've gone ahead and posted the third and final contest problem, which will rely on some of the graph theory I'll start covering tomorrow during lecture (and on some material covered in Chapter 16 of the reader, which you should all start reading tomorrow as well.) This problem was given as is during the Regional ACM Programming Contest on November 5th. (I was out of town on November 4th, if you remember, because I was up in lovely Spokane, Washington and working to help produce the contest. Stanford won the contest, by the way.) The problem itself was written by a Stanford graduate student named Sonny Chan, and it's an interesting combination of computational geometry, graph theory, and programming goodness. Even if you don't think you have time to work on it before classes end, read through the problem anyway, just so you have a sense of what I think everyone in CS106X is capable of doing.
- I'll accept solutions via email into the New Year, so that those who really can't afford the time until things calm down and finals are over. The first five CS106X students to submit working solutions to the problem will be treated to dinner in downtown Palo Alto somewhere, though I'll need to schedule it sometime during the first few weeks of January, once we're all back from break and winter quarter's fired up.
October 26th, 2011
- I hope everyone had a reasonably good time during last night's midterm, and that you thought it was fair and that it tested the right things. And I hope we're all still friends.
- We should be done grading the exams by Sunday evening, and I expect to distribute the exams and an answer key on Monday afternoon.
- In other news, I've gone ahead and posted the next contest problem, which relies on your mad skillz as a recursive backtracker and a memoizer. Everyone, of course, is more than welcome to take a shot at it. The first three people to submit a working solution (via email to Lecturer Jerry) will be rewarded to din-din in downtown Palo Alto some time before the end of the quarter. The one exception: if you solved the first contest problem and are already going to dinner, you don't get to go to dinner twice, and you don't get two main courses. In fact, I'll consider the winners of this contest to be the first three submitting working solutions who haven't already won an earlier contest.
October 14th, 2011
- Breaking news. I've received three working solutions to the Color Wriggles Contest Problem. But if you have any interest in working on this problem, you should still do so and submit it anyway. I originally promised to reward three CS106X students to dinner, but I'll likely reward more than that, since so many of you are currently working on it, and a good fraction of those people are really, really close.
October 12th, 2011
- It's been a while since I've posted an announcement, and everyone loves announcements. So here goes...
- Each quarter I distribute a small number of optional programming problems, and I'm just this second posting the first one right here! The problem takes the form of a contest, where I accept solutions from everyone, but reward the first three of you to submit efficient, working solutions with dinner out and about in Palo Alto at some point later in the quarter. The entire problem statement should be clear from the document itself. The primary difference between the optional contest problem and the regular assignment questions is that you must solve these all by yourself without the help of any other people.
- This is a problem I wrote for the Regional ACM Programming Contest two years ago, and it was reasonably challenging but not impossible, and a good number of the top teams submitted working solutions. That means that many of you are more than outfitted to tackle this, knowing you have a good amount of time to submit something.
- Good luck! [I'll be distributing another problem like this--one requiring recursion and caching--in about a week, so if you don't like this problem, then don't worry, because there are more to come.]
September 29th, 2011
- I've updated Handouts 08M and 09M to reflect that fact that many of you are running Mac OS X 10.7 and can only install the most recent version of Xcode, which is version 4.1.1. I've also added Xcode 4-specific versions of the Assignment 0 and Assignment 1 starter files, and will do so for all labs and future assignments.
September 27th, 2011
- You'll notice I've posted several handouts [Handouts 04 through 09] in PDF format. All of them are important, of course, but the Queen Safety one includes the large example I expect to be working through during Wednesday's and Friday's lecture. If you have the time, read through Queen Safety ahead of time so you can ask questions during lecture.
- Several students have already contacted me expressing concern over the midterm times. I recognize that many of you have very legitimate reasons to be somewhere else at 7:00 p.m. on a weeknight, so I'm happy to work with you so you can take a midterm at another time. I'm looking to schedule an alternate midterm (with a big room) that can catch the majority of you who can't take the exams with everyone else, but rest assured that we'll work something out no matter how busy your Tuesday and Wednesday schedules are. I'll have more to say about the alternate midterms in a week or so.
- In other news, Stanford is holding a local programming contest on Saturday, October 8th. Happy Stanford nerds convene and try to solve as many programming problems as possible over the course of a few hours, and those who do well at the contest are asked to represent Stanford at the Regional ACM Programming Contest, where Stanford and 25 or so other school compete in a similar manner to see who gets to go to the World Finals in Warsaw, Poland this coming winter. If you love programming and want to learn more about it, visit the Stanford ACM Programming Contest page when you get a chance.
September 24thth, 2011
- Welcome to CS106X, everyone! I'm looking forward to an awesome quarter of coding together. I have lots of new ideas on how to upgrade the syllabus and the manner in which we all get things done.
- Class begins on Monday, September 26th and meets at 9 a.m. in Skilling Auditorium every Monday, Wednesday, and Friday.
- Everyone needs to visit http://cs198.stanford.edu/section sometime between Thursday, September 29th at 5:00 p.m. and Sunday, October 2nd at 5:00 p.m. to state which discussion times work best. Come Sunday evening, we'll distribute everyone across the discussion section times as optimally as possible and email everyone his or her section assignment. For those familiar with our CS106A course, note that our discussion section format is different, and that attendance is required. As opposed to CS106A discussion sections, where most if not all code is written by the section leader on the whiteboard or blackboard, our discussion sections are a mix of traditional recitation and laboratory.
- SCPD students--that is, students taking the course remotely--are automatically enrolled in a discussion section that too will be syndicated over the Net and optimized for a remote student audience. Any remote student who prefers to come to campus for a non-televised discussion section is encouraged to do so by signing up for a discussion section as if you were an on-campus student.
CS106X Resources
- Tresidder LaIR Office Hours
- C and C++ Standard Library Reference
- Good Programming Style 1
- Good Programming Style 2
- Dinkumware C++ Library Reference
- Course Reader PDF
- CS106 Library Documentation
- Submitter
- Lecture Videos
Handouts
- 01 CS106X Course Information
- 02 CS106X Course Syllabus
- 03 Getting Started
- 04 Queen Safety
- 05 C++ Strings
- 06 Library Reference
- 07 Assignment 1: Life
- 08M Downloading Xcode
- 08P Downloading Visual C++
- 09M Using Xcode
- 09P Using Microsoft IDEs
- 10 Stacks and Queues
- 11 Section Handout [Mac] [PC] [Solution]
- 12 Scanners, Maps, and Sets
- 13 Assignment 2: ADTs
- 14 Sets and Geometry
- 15 Recursion
- 16 Section Handout [Mac] [PC] [Solution]
- 17 Assignment 3: Recursion Warmups
- 18 Assignment 3: Boggle
- 19 Recursive Backtracking
- 20 Memoization
- 21 Section Handout [Mac] [PC] [Solution]
- 22 CS106X Practice Exam [Solution]
- 23 Section Handout [Mac] [PC] [Solution]
- 24 CS106X Midterm [Solution]
- 25 All About Linked Lists
- 26 Assignment 4: Priority Queue
- 27 Section Handout [Mac] [PC] [Solution]
- 28 Section Handout [Mac] [PC] [Solution]
- 29 Assignment 5: Huffman Encoding
- 30 Huffman Encoding Primer
- 31 Generalization of Trees
- 32 Section Handout [Mac] [PC] [Solution]
- 33 CS106X Practice Exam [Solution]
- 34 Assignment 6: Pathfinder
- 35 Section Handout [Mac] [PC] [Solution]
- 36 CS106X Midterm [Solution]
- 37 Little Schemer Basics
- 38 Assignment 7: Little Schemer
- 39 Section Handout [Mac] [PC] [Solution]
- 40 Python Basics
- 41 Networking With Python
Assignments
- Assignment 0: Narcissism (Mac, Xcode 3.x)
- Assignment 0: Narcissism (Mac, Xcode 4.x)
- Assignment 0: Narcissism (PC)
- Assignment 1: Life (Mac, Xcode 3.x)
- Assignment 1: Life (Mac, Xcode 4.x)
- Assignment 1: Life (PC)
- Assignment 2: ADTs (Mac, Xcode 3.x)
- Assignment 2: ADTS (Mac, Xcode 4.x)
- Assignment 2: ADTs (PC)
- Assignment 3: Warmups (Mac, Xcode 3.x)
- Assignment 3: Warmups (Mac, Xcode 4.x)
- Assignment 3: Warmups (PC)
- Assignment 3: Boggle (Mac, Xcode 3.x)
- Assignment 3: Boggle (Mac, Xcode 4.x)
- Assignment 3: Boggle (PC)
- Assignment 4: PQueue (Mac, Xcode 3.x)
- Assignment 4: PQueue (Mac, Xcode 4.x)
- Assignment 4: PQueue (PC)
- Assignment 5: Huffman (Mac, Xcode 3.x)
- Assignment 5: Huffman (Mac, Xcode 4.x)
- Assignment 5: Huffman (PC)
- Assignment 6: Pathfinder (Mac, Xcode 3.x)
- Assignment 6: Pathfinder (Mac, Xcode 4.x)
- Assignment 6: Pathfinder (PC)
- Assignment 7: Scheme (Mac, Xcode 3.x)
- Assignment 7: Scheme (Mac, Xcode 4.x)
- Assignment 7: Scheme (PC)
Staff
- Lecturer
- Jerry "Invented the For Loop" Cain
- jerry at cs dot stanford dot edu
- Gates 192
- Mondays 13:15-16:05
- Wednesdays 13:15-15:05
- Head TA
- Michael "Lonely Office Hours" Gummelt
- mgummelt at
- Gates 160
- TTh 11:00-12:00
CS106X Facebook Stream