Assignment 7 Out, Due June 12th at 11:30am
June 3, 2012

Assignment 7: Pathfinder went out today and is due on Tuesday, June 12 at 11:30AM. In this assignment, you'll build a tool to find the shortest distance between nodes on a map. You will also compute the map's minimal spanning tree.

Good luck, and have fun!

Midterm #2 Logistics
May 26, 2012

The second CS106B midterm will be this Thursday, May 31 from 7:00PM - 9:00PM. The exam location is distributed by last name:

  • A - F: Go to Hewlett 201
  • G - Z: Go to Hewlett 200

The exam is open-book, open-note, but closed-laptop and covers material up through and including Friday's lecture on graphs. We have released a practice exam electronically, and will release solutions electronically on Monday and in hard-copy on Wednesday.

We will be holding a review session this Tuesday, May 29 from 7-9PM in Hewlett 201. Hope to see you there!

Assignment 6 Out, Due Monday, June 4
May 23, 2012

Assignment 6: Huffman Encoding went out today and is due on Monday, June 4 at 10:00AM. In this assignment, you'll build a compression utility that you can use to take big files and turn them into small files. I hope that you have as much fun with this assignment as I think that you will!

Good luck, and have fun!

Assignment 5 Out, Due Wednesday, May 23
May 11, 2012

Assignment 5: Priority Queue went out today and is due on Wednesday, May 23 at 10:00AM. In this assignment, you'll get to implement your own collection class in several different ways, mastering pointers, dynamic allocation, and linked lists in the process.

Good luck, and have fun!

Midterms Returned
May 8, 2012

Midterms were returned in class yesterday. If you missed class, you can pick yours up outside Keith's office (Gates 178). If you're an SCPD student, your midterm will be mailed to you this week.

Assignment 4 YEAH Hours
May 6, 2012

We are holding YEAH Hours for Boggle on Monday May 7th at 7:00pm - 8:30pm in 380-380W. Hope to see you there!

Review Session: Tuesday, May 1 from 7 - 9PM
April 30, 2012

We will be holding a review session for the midterm this Tuesday, May 1 from 7 - 9PM in 420-041. Hope to see you there

Midterm #1 Logistics
April 30, 2012

The first CS106B midterm will be this Thursday, May 3 from 7:00PM - 9:00PM. The exam location is distributed by last name:

  • A - J: Go to Braun Auditorium
  • K - R: Go to Hewlett 201
  • S - Z: Go to Braun Lecture Hall

The exam is open-book, open-note, but closed-laptop and covers material up through and including Friday's lecture on sorting and big-O. There are two practice exams available to help you study, and we'll distribute solutions in class on Wednesday.

Assignment 4 Out, Due Friday, May 11
April 30, 2012

Assignment 4: Boggle! went out today and is due on Friday, May 11 at 10:00AM. This assignment explores a really cool application of recursion - building a computer program that can outplay you at the game Boggle. It's a perennial favorite, and I hope that you have as much fun with it as I think you will.

Good luck, and have fun!

Assignment 3 Out, Due Monday, April 30
April 23, 2012

Assignment 3: Recursion! went out today and is due on Monday, April 30 at 10:00AM. By the time you're finished with this assignment, you'll have a solid command of recursion and a taste for the sorts of problems you can now solve.

YEAH hours will be this Wednesday, April 25 from 4:15 - 5:30PM in 370-370.

Good luck, and have fun!

Assignment 2 YEAH Hours
April 16, 2012

YEAH Hours for Assignment 2 are Wednesday, 4/18 from 4:15pm to 5:45pm in 370-370. Hope to see you there!

Sign Up for QuestionHut
April 13, 2012

We set up a QuestionHut site that you can use to ask and browse questions. Section leaders, Keith, and Zach will be monitoring and answering.

Go to the website, create an account, and make sure to add CS 106B to your huts. If you already have an account, go to My Huts and add CS 106B.

Assignment 2 Out, Due Monday, April 23
April 13, 2012

Assignment 2: Fun with Collections went out today and is due on Monday, April 23 at 10:00AM. In this assignment, you'll get to see just how much expressive power the collections classes have. You'll teach the computer how to navigate the English language, and will get to write a program that can compose text in the style of different authors.

Good luck, and have fun!

Older Version of Xcode
April 9, 2012

If you don't have OS X Lion, you may need an older version of Xcode. Try looking for an older version here.

YEAH Hours this Tuesday, 7-8PM in Braun Auditorium
April 9, 2012

We will be holding YEAH Hours for Assignment 1 thus Tuesday from 7-8PM in Braun Auditorium (in the Mudd Chemistry Building). This should be a great way to get psyched and warmed up for the first programming assignment.

Hope to see you there!

Fixing Unusual Xcode Errors
April 7, 2012

Many of you have been getting unusual errors while trying to run Assignment 1 in Xcode (usually, errors about iostream not being found). If this happens, you can usually fix ti by changing your Base SDK. Instructions are available in this handout.

Assignment 1 Out, Due Friday, April 13
April 6, 2012

Assignment 1: Welcome to C++ went out today and is due on Friday, April 13 at 10:00AM. This should be a great way to play around with C++ functions, strings, and recursion, and I hope that you have fun with it.

Good luck!

Welcome to CS106B!
March 30, 2012

Welcome to CS106B! We've got an exciting quarter ahead of us and you're in for a real programming treat. Over the course of the quarter, we'll be exploring fundamental problem-solving skills that will make it possible to tackle big, important problems with the computer. I hope that you're able to join us!

In the meantime, feel free to check out the course information handout to learn more about what this class is all about, the prerequisites, and the course policies. If you have any questions in the meantime, feel free to email me at htiek@cs.stanford.edu with questions.

See you soon!

Handouts

00: Course Information
01: Syllabus
02: Course Placement
03: Honor Code Information
04M: Downloading Xcode
04P: Downloading Visual Studio
05: Assignment 1
06: Submitting Assignments
07M: Debugging with Xcode
07P: Debugging with Visual Studio
08: Section Handout 1
08S: Section Solutions 1
09: Assignment 2
10: Section Handout 2
10S: Section Solutions 2
11: Assignment 3
12: Section Handout 3
12S: Section Solutions 3
13: Exam Strategies
14: Practice Midterm 1
14S: Practice Midterm 1 Solutions
15: Practice Midterm 2
15S: Practice Midterm 2 Solutions
16: Assignment 4
17S: Midterm Solutions
18: Section Handout 4
18S: Section Solutions 4
19: Assignment 5
20: Section Handout 5
20S: Section 5 Solutions
21: Section Handout 6
21S: Section 6 Solutions
22: Huffman Encoding
23: Assignment 6
24: Practice Second Midterm
24S: Practice Second Midterm Solutions
26: Assignment 7: Pathfinder
25S: Midterm 2 Solutions

Assignments

  1. Welcome to C++
  2. Fun with Collections
  3. Recursion!
  4. Boggle!
  5. Priority Queue
  6. Huffman Encoding
  7. Pathfinder

Resources

Course Reader PDF
Tresidder LaIR Office Hours
C and C++ Standard Library Docs
Stanford C++ Library Docs
Good Programming Style 1
Good Programming Style 2
Submitter
Lecture Videos
CS 198 (For Section)
QuestionHut
Blank Xcode Project

Lectures

00: Introduction
01: Functions in C++ (code)
02: Strings and Recursion (code)
03: Collections, Part One (code)
04: Collections, Part Two (code)
05: Collections, Part Three (code)
06: Recursion, Part 1 (code)
07: Recursion, Part 2 (code)
08: Recursion, Part 3 (code)
09: Recursion, Part 4 (code)
10: Algorithmic Analysis, Part 1
11: Algorithmic Analysis, Part 2
12: Designing Abstractions (code)
13: Implementing Abstractions (code)
14: Implementing Abstractions II (code)
15: Implementing Abstractions III (code)
16: Linked Lists (code)
17: Linked Lists, Part 2 (code)
18: Hashing (code)
19: Tries (code)
20: Binary Search Trees (code)
21: Advanced Data Structures (code)
22: Beyond Data Structures
23: Graphs (code) (data)
24: Graph Algorithms
25: Machine Learning (code)
26: Parallelism (code)