Katherine, the section leaders, and I have just finished grading the final exam. The exam and a set of solutions are available in PDF form under the "Exams" section. We'll be posting final grades later today.
Please take care over the next weeks and months. You're welcome to reach out to me over email if you'd like to chat, whether that's about life in general or whether that's about next steps in computer science.
Best of luck going forward!
We've just posted the CS106B final exam file. This file requires a password to open; we'll distribute that password at 8:30AM tomorrow morning.
As a reminder, BlueBook will ask you to check some boxes before taking the exam indicating you won't switch windows and that you have disabled your network connection. Disregard these instructions, but check the boxes anyway. The exam is open-internet and open-computer, though you're not allowed to communicate with other humans during the exam.
For those of you taking the exam, best of luck tomorrow morning!
We've posted Section Handout 9. This handout is slightly misnamed because there's no section this week. Rather, it's a set of cumulative review problems that you can use to hone your skills as we approach the end of the quarter. Feel free to contact your SL or to ask questions on Piazza if you have them!
The last assignment of the quarter, Assignment 8 (Huffman Coding), goes out today. It's due, as usual, at the start of lecture next Friday. We hope this is a fitting capstone to your experience in CS106B!
We recommend that you check out both the lecture slides on Huffman coding and the companion handout on Huffman coding before starting this assignment.
Because this is the last assignment of the quarter, per university policy, no late submissions will be accepted and no late periods may be used. We recommend that you periodically submit your work to Paperless; we'll only grade the last submission you make.
You are allowed to work on this assignment in pairs. For more information about our policies regarding pair programming, check out the "Working in Pairs" link in the "Resources" section of this website.
Good luck!
Assignment 7 (The Adventures of Links) goes out today. It's due, as usual, at the start of lecture next Friday.
You are allowed to work on this assignment in pairs. For more information about our policies regarding pair programming, check out the "Working in Pairs" link in the "Resources" section of this website.
Good luck!
Assignment 6 (The Great Stanford Hash-Off) goes out today. We're back to our normal Friday-to-Friday assignment schedule, so this assignment will be due, as usual, next Friday at the start of lecture.
You are allowed to work on this assignment in pairs. For more information about our policies regarding pair programming, check out the "Working in Pairs" link in the "Resources" section of this website.
Good luck!
Assignment 5 (Data Sagas) goes out today. Because the midterm is next Tuesday, we've given you two weeks to work on this assignment. You can in principle start the first bit of the assignment today if you'd like, though some of the later parts reference material that we'll only cover in the middle of next week.
You are allowed to work on this assignment in pairs. For more information about our policies regarding pair programming, check out the "Working in Pairs" link in the "Resources" section of this website.
Good luck!
Our midterm exam is coming up Tuesday, February 11th from 7PM - 10PM. Locations are divvied up by last (family) name:
The exam covers material from Lecture 00 - 09 (intro C++ up through but not including recursive backtracking) and from Assignments 0 - 3 (using the debugger up through recursive enumeration and optimization).
We will be providing a copy of the container syntax reference handout at the exam. In addition to this, you can bring a single, double-sided sheet of 8.5" × 11" paper with whatever notes you'd like. Aside from this, you may not have any other notes with you. The exam is closed-book and closed-computer.
We've posted three practice exams that you can use to get a sense of what sorts of questions we've typically asked in previous exams. Additionally, we've posted a handout about preparing for the exam with advice about how to best get ready for the midterm, along with some general exam policies.
Best of luck on the exam!
Assignment 4 (Recursion to the Rescue) goes out today and is due next Friday. In this assignment, you'll get to see just how powerful a technique recursion is, and hopefully will learn a thing or two about logistics and public safety!
You are allowed to work on this assignment in pairs. For more information about our policies regarding pair programming, check out the "Working in Pairs" link in the "Resources" section of this website.
Good luck!
Assignment 3 (Recursion!) goes out today and is due, as usual, next Friday at the start of class. This assignment is all about doing cool things with recursion, and we hope that you have a lot of fun working through it!
You are allowed to work on this assignment in pairs. You are required to read and understand the policies outlined at the "Working in Pairs" link in the "Resources" section of this website before starting to work in a pair.
Good luck!
Our second programming assignment, Fun with Collections, goes out today. It's due next Friday at the start of class (11:30AM). In the course of completing this assignment, you'll get comfortable writing code using a bunch of different collections. You'll build some larger and more elaborate C++ programs than what you saw in Assignment 1. And you'll end up with some really nifty programs that we think you may want to share with friends and family!
Good luck!
The first programming assignment of the quarter, Assignment 1: Welcome to C++!, goes out today. It's due on Friday, January 17th at the start of class (11:30AM). This assignment explores general C++ coding, strings, recursion, debugging, and the Stanford libraries. We hope you have fun with this one!
LaIR shifts will begin this Sunday at 7PM. Feel free to stop by for help! We highly recommend reading our handout about debugging strategies for advice about how to debug your programs and how to ask good questions in the LaIR.
Good luck!
Welcome to CS106B! We've got an exciting quarter ahead of us and you're in for a real programming treat. Over the next ten weeks, we'll explore fundamental techniques in modeling and solving problems using a variety of programming techniques and evaluating their tradeoffs. By the time you're done with this class, you'll have a firm grasp of problem-solving techniques and will ready to start applying your skills in areas that you genuinely care about.
In the meantime, feel free to check out the course information handout and syllabus 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. If you're wondering whether this is the right class for you, check out our handout with course placement information.
See you soon!
29: Huffman Coding
16: Preparing for the Exam
10: Container Syntax Reference
07: Assignment Submission Checklist
06: Debugging Your Code
03: Honor Code
02: Course Placement
01: Course Calendar
00: Course Information
Section Handout 9
(Solutions)
Section Handout 8
(Solutions)
Section Handout 7
(Solutions)
Section Handout 6
(Solutions)
Section Handout 5
(Solutions)
Section Handout 4
(Solutions)
Section Handout 3
(Solutions)
Section Handout 2
(Solutions)
Section Handout 1
(Solutions)
Assignment 7: The Adventures of Links
Assignment 6: The Great Stanford Hash-Off
Assignment 4: Recursion to the Rescue!
Assignment 2: Fun with Collections
Assignment 0: Welcome to CS106B!
Practice Final Exam
BlueBook File
(Solutions)
Practice Midterm III
(Solutions)
Practice Midterm II
(Solutions)
Practice Midterm I
(Solutions)
Final Exam
(Solutions)
(BlueBook File)
Midterm Exam
(Solutions)
(Qt Creator Files)
Stanford C++ Library Documentation
C++ Standard Library Documentation
Setting Up Qt Creator
Blank Stanford C++ Project
Assignment Submitter
Working in Pairs
Style Guide
Python-to-C++ Guide
BlueBook
27: Where to Go from Here (Cancelled)
Slides
26: Minimum Spanning Trees (Cancelled)
Slides
25: Graphs (Cancelled)
Slides
24: Beyond Data Structures
Slides
23: Binary Search Trees II
Slides | Code
22: Binary Search Trees I
Slides | Code
21: Linked Lists III
Slides | Code
20: Linked Lists II
Slides | Code
19: Linked Lists I
Slides | Code
18: Hashing II
Slides
17: Hashing I
Slides | Code
16: Implementing Abstractions II
Slides | Code
15: Implementing Abstractions I
Slides | Code
14: Designing Abstractions
Slides | Code
13: Searching and Sorting II
Slides
12: Searching and Sorting I
Slides
11: Big-O Notation
Slides
10: Thinking Recursively, Part V
Slides | Code
09: Thinking Recursively, Part IV
Slides | Code
08: Thinking Recursively, Part III
Slides | Code
07: Thinking Recursively, Part II
Slides | Code
06: Thinking Recursively, Part I
Slides | Code
05: Collections, Part III
Slides | Code
04: Collections, Part II
Slides | Code
03: Collections, Part I
Slides | Code
02: Strings in C++
Slides | Code
01: Functions in C++
Slides | Code
00: Introduction
Slides | Code