Written by Julie Zelenski, with modifications by Nick Troccoli

Assignment Materials

Note: assignment materials will be posted here when they are announced and released in class.

Tip: some students have found it helpful to use web annotation/highlighter tools (e.g. roohit,, getliner...) to mark key passages of the assignment writeups when working.

Click here for instructions and tips on how to work on, sanity check and submit your assignments.

Click here for software testing strategies for the assignments.

Click here for a guide to good style on CS107 programs.

Click here for more information about how assignments are graded.

Frequently Asked Questions

What is the expected assignment workload?

There are roughly 6 assignments an a final project over the quarter, spaced about a week-and-a-half apart. These are largely programming projects with occasional problem-set-like activities mixed in. Students self-report spending between 10 and 20 hours on each.

What programming environment and tools are used?

Students use their SUNET accounts on Linux myth machines, which are physically located in the Gates basement and support remote login. Students edit, compile, and debug on the myth systems using a suite of open source development tools including gcc, make, gdb, and valgrind. See the Resources page for an overview of these tools and how to log into myth remotely.

How are assignments weighted?

The total number of points for an assignment is noted in its writeup. The points indicate the weight of that assignment relative to the others; i.e. an assignment graded out of 100 points has twice the weight of one graded out of 50.