The final exam has been graded, and exam scores have been emailed out. We've posted a handout with solutions and statistics here on the course website.
It's been a pleasure having all of you in CS106B this quarter. Best of luck on your future adventures, wherever they take you!
Our final exam is this upcoming Monday morning. Locations are divvied up by last (family) name:
The exam will be administed via BlueBook, which you can download under the "Resources" tab to the left. Click this link to download the exam itself. You should download the exam before attending; we'll give out the password once we're in the exam room itself.
We will be providing a reference sheet at the exam that contains common functions and types that you might want to use on 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.
The exam is cumulative and all topics from all lectures and the assignments are fair game. The exam will be focused more on topics that you explored in the programming assignments.
Good luck on the exam!
The final assignment of the quarter, Calligraphy, goes out today. This assignment is all about the beautiful things you can do with graphs, and we hope that once you've finished it you have a much deeper understanding of how all the topics we've covered this quarter fit together.
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.
No late submissions will be accepted for this assignment, even if you have remaining late days. Sorry about that - it's university policy.
Good luck!
Assignment 6 (MiniBrowser) has just been released. This assignment asks you to implement a number of linked structures in the service of building up a web browser hooked up to Wikipedia. You'll get practice working with linked lists, binary search trees, and tries, and will get to see how complex pieces of software are built out of multiple, smaller, simpler parts.
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 tomorrow evening. Locations are divvied up by last (family) name:
The exam will be administed via BlueBook, which you can download under the "Resources" tab to the left. Click this link to download the exam itself. You should download the exam before attending; we'll give out the password once we're in the exam room itself.
We will be providing a midterm reference sheet at the exam that contains common functions and types that you might want to use on 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.
The exam covers material from Lecture 01 - 12 (intro C++ and basic recursion up through big-O notation, searching, and sorting) and from Assignments 0 - 4 (using the debugger up through recursive backtracking).
You've worked really hard to learn this material, and we're really impressed by how much everyone has progressed since the start of the quarter. Best of luck on the exam!
Assignment 5 (Data Sagas) goes out today and is due on Wednesday, February 27th. This assignment is all about data processing and exploration, and by the time you're done you'll know way more about swimming, earthquakes, national parks, and child mortality than when you started!
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!
We'll be holding a practice midterm exam this evening in room 320-105 from 7PM - 10PM. The practice exam is available online as a BlueBook file and we'll release the password at the practice exam. If you're interested in attending, download BlueBook using the link under the "Resources" section, along with the practice exam file, and stop on by!
We will be using the software tool BlueBook for our midterm exam next week. To help you get comfortable using it, this week's section handout is available online as a BlueBook file. Use the password "section" to unlock it.
Assignment 4 (Recursion to the Rescue) goes out today and is due on Friday, February 15th. In this assignment, you'll get to see just how powerful a technique recursion is, and hopefully will learn a thing or two about medicine, civics, 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 on Wednesday, February 6th. 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. 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!
Want to play around with that website that lets you draw recursive pictures? Check out Recursive Drawing!
Our second programming assignment, Fun with Collections, goes out today. It's due on Monday, January 28th 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 18th 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!
We will be holding a set of LaIR hours this Wednesday, January 9th from 7PM - 9PM in the first floor of Tresidder Union specifically to help troubleshoot issues with installing Qt Creator. Please feel free to stop by if you're having trouble getting things up and running.
A note: we incorrectly reported that this session would be on Thursday evening in the printed version of the Assignment 0 handout. This was an error and it's been corrected in the web version of the handout. Sorry about that!
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!
07: Assignment Submission Checklist
06: Debugging Your Code
03: Honor Code
02: Course Placement
01: Syllabus
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 4: Recursion to the Rescue
Assignment 2: Fun with Collections
Final Exam | (Solutions)
Practice Final Exam
(password: quokka)
(solutions)
Midterm Exam | (Solutions)
Test Harness
Regrade Request Form
Practice Midterm
(password: maplesyrup)
(solutions)
Stanford C++ Library Documentation
C++ Standard Library Documentation
Setting Up Qt Creator
Blank Stanford C++ Project
Assignment Submitter
LaIR Helper Schedule
Working in Pairs
Style Guide
BlueBook
Midterm Reference Sheet
Final Exam Reference Sheet
27: Where to Go from Here
Slides
26: The Big Picture
Slides
25: Your Questions
Slides
24: Minimum Spanning Trees
Slides
23: Graphs, Part II
Slides
22: Graphs, Part I
Slides
21: Hashing
Slides | Code
20: String Data Structures
Slides
19: Binary Search Trees, Part II
Slides | Code
18: Binary Search Trees, Part I
Slides | Code
17: Linked Lists, Part II
Slides | Code
16: Linked Lists, Part I
Slides | Code
15: Implementing Abstractions, Part II
Slides | Code
14: Implementing Abstractions, Part I
Slides | Code
13: Designing Abstractions
Slides | Code
12: Algorithmic Analysis, Part II
Slides
11: Algorithmic Analysis, Part I
Slides
10: Recursion, Part V
Slides | Code
09: Recursion, Part IV
Slides | Code
08: Recursion, Part III
Slides | Code
07: Recursion, Part II
Slides | Code
06: Recursion, 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