Announcements
May 1st, 2009
- All kinds of fun stuff going on at the moment, not the least of which is your midterm this upcoming Wednesday. I've posted a practice midterm and solution as Handout 23 and 23S. Go ahead and download those when you're in a good place with the material and want to see what a CS106X midterm looks like. You'll probably want to take the practice exam under real test conditions and not look at the answer key until you've worked through all of the problems. As you check your own work and notice errors, try to remember what you were thinking when you wrote down the incorrect answer, and make it a point to not do that again during the actual midterm.
- We spent the earlier part of the week talking about sorting and big oh growth. Even President Obama knows a little bit about sorting. If you haven't seen this, then you should watch it now.
- For a more substantial lecture on quicksort, check this out. (Thanks to Phaedon Sinis for sending me this link.)
April 15th, 2009
- Assignment 2 is out, and my assumption is that you're all cranking on it and shooting for a Monday morning deadline. You should all be hearing from your section leaders shortly, because they're in the process of grading Assignment 1 submissions and will need to schedule interactive grading sessions with you before this Sunday.
- Just for fun, I've gone ahead and typed up a new programming problem and placed that handout right here. I'd initially thought of using this new problem in place of Word Ladder, but Word Ladder is fun and we know that it works well, so in the end I decided to hold off and use this new problem the next time I teach CS106B/X. However, I'm happy enough with the problem that I thought I should at least share it all with you and provide you with starter files [files removed] so you can do the problem anyway if you're so inclined. To be clear, you are in no way required to do this, and in fact I'm not planning to give extra credit either (because then it does come across as required in some way). But it's a great problem, and I think the typical CS106X student will be excited to see how something algorithmically accessible to CS106X students can solve such a neat little problem.
April 8th, 2009
- We've updated the Development Environments section on the right to reference some CS106B handouts that outline how to download the compilers and how to edit, compile, run, and debug your programs. SCPD students, and those students who live off campus, need to download some VPN software and connect to the Stanford network using it before you'll be permitted to download Visual Studio 2005. The VPN connection basically marks your computer as one that's officially part of the Stanford network, and only then do all of the links identified in the download instructions actually work.
- We'll be finishing up records and files today, and we'll be moving on to some bona fide CS106X material. You should plan on reading through Chapter 4 over the course of the next few lectures.
- Finally, this game is super fun.
April 1st, 2009
- Welcome to CS106X, everyone! I'm looking forward to an awesome quarter of coding together.
- There's not much to worry about for a few days, although you'll want to be sure to purchase the CS106X course reader from the Stanford Bookstore as soon as possible, since I kinda sorta want you to read through Chapter 1 between now and Monday. Also, while most of the information you need to get started with CS106X can be found in Handouts 01 and 02, I should highlight one detail that's important to make clear right away: All on-campus CS106X students are required to take the final exam during the officially scheduled slot, which is June 8th from 8:30 until 11:30 a.m. While I recognize that taking even one 10:00 a.m. class is dreadful enough, some of you may be taking two classes during the MWF 10:00 a.m. time slot, relying on the fact that CS106X lectures are televised and available online. If you're doing this, then make sure your second class isn't requiring you to take an in-class final exam at the same time as mine. The Education Affairs wing of the CS Department recently imposed the restriction that all on-campus students take the exam at the same time, so I'm prevented from offering an alternate final exam. (I'm more flexible about the midterm, since I schedule that outside of normal class time.)
- Everyone, including SCPD students, need to visit http://cs198.stanford.edu/section sometime between this Thursday at 5:00 p.m. and this Sunday at 5:00 p.m. to state which discussion section times work best for you. Come Sunday evening, we'll distribute everyone across the discussion sections as optimally as possible and email everyone his/her section assignment. SCPD students need to do this as well, even though you're to be automatically enrolled in the televised discussion section (we're still trying to schedule this, but you'll know shortly.)
- Otherwise, sit back and relax and enjoy the CS106X ride.
CS106X Course Reader
Submitting Your Work
Development Environments
Assignments
- Assignment 1 (Mac)
- Assignment 1 (PC)
- Assignment 2 (Mac)
- Assignment 2 (PC)
- Assignment 3 (Mac)
- Assignment 3 (PC)
- Assignment 4 (Mac)
- Assignment 4 (PC)
- Assignment 5 (Mac)
- Assignment 5 (PC)
- Assignment 6 (Mac)
- Assignment 6 (PC)
- Assignment 7 (Mac)
- Assignment 7 (PC)
Handouts
- 01 CS106X Course Information
- 02 Getting Started
- 03 Queen Safety
- 04 C++ Strings
- 05 Assignment 1: Life
- 06 Library Reference
- 07 Good Programming Style
- 08 Coding Standards
- 09 Decomposition
- 10 Records And Files
- 11 Section Handout [Solution]
- 12 Stack And Queue Examples
- 13 Scanners, Maps, and Sets
- 14 Assignment 2: ADTs
- 15 Section Handout [Solution]
- 16 Recursion
- 17 Assignment 3: Boggle
- 18 Section Handout [Solution]
- 19 Recursive Backtracking
- 20 Memoization
- 21 Section Handout [Solution]
- 22 Biorhythms and Arrays
- 23 Practice Midterm [Solution]
- 24 All About Linked Lists
- 25 Assignment 4: PQueue
- 26 Section Handout [Solution]
- 27 CS106X Midterm [Solution]
- 28 Assignment 5: Huffman Encoding
- 29 Huffman Encoding
- 30 Section Handout [Solution]
- 31 Generalization of Trees
- 32 Section Handout [Solution]
- 33 Assignment 6: Pathfinder
- 34 Section Handout [Solution]
- 35 Little Scheme Basics
- 36 Assignment 7: Little Schemer
- 37 Python Basics
- 38 Practice Final [Solution]
- 39 CS106X Final
CS106X Resources