In CS106B you are going to learn great things! The main objective of the course is to learn how to model and solve complex problems with computers.


Schedule

Date Topic Files Reading Assignment

[Using Abstractions]
Jan 4 Course Overview Chapter 1
Jan 6 Functions Chapter 2, 3 Life (due Jan 15th)
Jan 8 Vectors and Grids Section 4.3, 5.1
Jan 11 Stacks and Queues Section 5.2, 5.3
Jan 13 Maps and Sets Chapter 5
Jan 15 The Right Priority None ADTs (due Jan 25th)
Jan 18 No Class None

[Recursion]
Jan 20 Introduction to Recursion Chapter 7
Jan 22 Fractals Section 7.5, 8.4
Jan 25 Recursive Exploration Section 8.2 - 8.3; 9 Meta Acad. (due Feb 3rd)
Jan 27 Recursive Backtracking Chapter 9
Jan 29 Big O Chapter 10
Feb 1 Memoization Chapter 10

[Under the Abstraction Hood]
Feb 3 Classes Chapter 6 Boggle (due Feb 15th)
Feb 5 Pointers Chapter 12
Feb 8 Linked Lists I Chapter 12 Midterm (Feb 9th)
Feb 10 Linked Lists II Chapter 11
Feb 12 Binary Heap Section 16.5
Feb 15 No Class None PQueue (due Feb 24th)
Feb 17 Hashing Chapter 15

[Trees + Graphs]
Feb 19 Trees I Chapter 16
Feb 22 Trees II Chapter 17
Feb 24 Binary Search Trees Chapter 17 Huffman (due March 2)
Feb 26 Graphs Chapter 18
Feb 29 Search Chapter 18
Mar 2 Fast Search Chapter 18 Trailblazer (due Mar 11)
Mar 4 Minimum Spanning Tree Chapter 18

[End of Class]
Mar 7 Web Applications None
Mar 9 Lit up C++ None
Mar 11 Final Class None Final Exam (March 14)


Discussion Sections

In addition to lecture, you must sign up for a weekly 50-minute section. In order to take CS 106B, you must sign up for a section between 5:00P.M., Thursday, January 7, and the close of enrollments at 5:00P.M. on Sunday, January 10. Please use the signup form at http://cs198.stanford.edu/section/. Important note: Do not use Axess to sign up for sections; section enrollments made through Axess are simply ignored.


Grades

Your final grade in this course will be calculated using the following weights:

Weights

Section Participation 10%
Programs 50%
Midterm 15%
Final 25%

Each of the exams is scaled to take account of the difficulty of the exam, which is nearly impossible to assess in advance. The other components and the final grade are not curved. If everyone does brilliantly in this class, everyone gets an A.


Programming Assignments

CS 106B requires seven programming assignments, which are due on the dates given in the syllabus. Except for Assignment #7 (which is due at the very end of the quarter), your section leader will grade each of your assignments and then discuss how well you have done (and how you can improve on future assignments) in an interactive, one-on-one session. Assignments are graded separately for functionality and style.


Late Policy

Each of the assignments is due at 5:00P.M. on the day specified in the syllabus. Assignments are submitted electronically using the procedure described in the first assignment. Important note: all assignments are due at 5:00P.M. sharp on the dates indicated on the assignment handout. Assignments submitted after 5:00 will be considered late.

Because each of you will probably come upon some time during the quarter where so much work piles up that you need a little extra time, every student begins the quarter with three free “late days.” To avoid any ambiguity, a “day” is defined as a class day. Thus, if your assignment was due on Friday but turned in the following Monday, that assignment would be one day late. Note: You cannot use late days on Assignment #7, which is due at the end of the quarter. After your late days for the quarter are exhausted, programs are assessed a late penalty of one category point per late day used (a ✓+ turns into a ✓, and so forth). Late days are valuable, and it pays to keep some around for the harder assignments toward the end of the quarter. In all cases, assignments must be turned in within a calendar week of their published due date.

In special circumstances (such as extended medical problems or other emergencies), extensions may be granted beyond the late days. To request an extension, send e-mail to the TA (Megan Faulk ) no later than 24 hours before the program is due. Only the TA is authorized to approve such extensions. In particular, do not ask your section leader.

How Many Late Days?

Three late days. A “day” is defined as a class day.