When due Assign materials
Wed Dec 6 A7. Huffman Coding
Fri Nov 17 A6. Linked Lists
Fri Nov 10 A5. Priority Queue
Mon Oct 30 A4. Recursive Backtracking
Mon Oct 23 A3. Recursion Etudes
Mon Oct 16 A2. Fun with Collections
Mon Oct 9 A1. Getting Your C++ Legs
Mon Oct 2 A0. Welcome to CS106B!

Programming is a skill best learned by doing, and the programming assignments in CS106B form the central skill development part of your experience in the course. We have a great set of assignments planned that we hope you will find fun, challenging, illuminating, and rewarding!

Common questions about assignments

What is the development environment for the assignments?

In CS106B, we write programs in the C++ language and use the Qt Creator IDE for editing, compiling, and debugging. Visit the Qt Installation Guide for instructions on installing these tools on your computer.

What is the expected assignment workload?

There are 7 assignments, you typically will have one week to work on each. Students self-report spending between 10 and 20 hours on each assignment. If you find yourself consistently beyond the upper end of the range, please reach out to us. Our workload is challenging because we want to foster the most growth possible for you in our 10 weeks together, but we do want the total hours to stay within reason for a 5-unit course and can help find a strategy that works for you.

What is the policy on late assignments?

Students are granted a short grace period where we will accept late submissions without penalty. Read our course late policy for the details.

What is the assignment collaboration policy?

Since this is essentially a beginning writing course, but writing code instead of essays, our policy is that assignments are written individually (no partners/groups). Later CS courses may incorporate team-based projects, and we strongly believe in the value of that—but after programmers have developed their individual skills in the fundamentals. Please review the CS106B Honor Code policy for guidelines specific to this course (i.e., do not assume that what is ok in other classes is necessarily ok in this one).

How can we get help on our assignments?

Ask on our online discussion forum, bring questions to "Lair" helper hours, and/or attend office hours. Lair helper hours run 7-11pm Monday through Thurday. The forum is open 24/7 for discussion with your peers, and quick (though not 24/7, we do sleep!) answers from course staff. The instructors and head CA are available to answer questions after lecture and in weekly office hours.

How are assignments evaluated?

Programs will be evaluated on "functionality" (is the program's behavior correct?) and "style" (is the code well written and elegant?). We apply a bucket grading scale for a wholistic qualitative evaluation rather than fixate on individual points. To learn from the grading feedback, focus your attention on the qualitative comments and the discussion with your SL in IGs.

  • + A submission that is "perfect" or exceeds our standard expectation for the assignment. To receive this grade, a program reflects additional work beyond the requirements or gets the job done in a particularly elegant way. (letter grade A+)
  • ✓+ A submission that satisfies all the requirements for the assignment, showing solid functionality as well as good style. It reflects a job well done. (letter grade range A/A-)
  • A submission that mostly meets the requirements, with some small issues or oversights. (letter grade range B+/B)
  • ✓– A submission that is a good attempt at meeting the requirements, but falls short in some ways. (letter grade range B-/C+)
  • A submission that exhibits serious problems, but nonetheless shows some effort and accomplishment. (letter grade range C/C-)
  • –– A submission that shows low effort or does not represent passing work. (letter grade range D/NP)

From past experience, we expect most grades to be ✓+ and ✓.

How do we receive feedback from our grader?

You can view your submission on Paperless with comments and annotations from your grader along with the bucket scores for functionality and style. For some assignments, you will also meet with your section leader to discuss the grading feedback in a short IG ("interactive grading") conference.