Students are expected to know how to program, be familiar with common data structures, and to have a certain level of mathematical maturity, which includes knowledge of common proof techniques. These prerequisites are satisfied by Computer Science 211 (Data Structures) and Mathematics 232 (Discrete Math).


The course has a required textbook, which will be used for readings and homework problems:


Students will complete:

All exams will be take-home exams. Assignments are due at the posted time, or at the beginning of class on the due date if not otherwise noted. Readings should be completed before coming to class.


Collaboration is encouraged on the homework assignments. Problems will take time to understand and solve, and students will benefit from developing ideas and solutions in small groups. However, each student must write their own solutions, and no collaboration is allowed while writing the solutions. Writing solutions on your own will cement understanding of the problem and demonstrate mastery of the solution. Looking at solutions from other students or any other source (including the web), or collaborating to write solutions, is considered a violation of the honor code. All suspected violations will be referred to the academic honor board.

I highly encourage students to attempt problems on their own before meeting as a group, especially the easier problems that are designed to exercise skills.

No collaboration is allowed on quizzes.

No collaboration of any kind is allowed on the exams.

Homework Submission and Late Policy

Homework will be submitted via GradeScope. You may type up your answers in Latex and compile to pdf (preferred) or hand-write your homework and scan to pdf. If scanned, the pdf must be rotated correctly, scanned at high quality, and readable at a standard letter size. In each assignment, some points are devoted to having a high-quality, readable submission — you will lose these points if your work is unreadable or too messy. You should view the pdf once you submit to ensure it meets these minimum standards. Review the gradescope submission workflow (here and here) to make sure you upload and annotate your homework correctly.

Late Policy. Each student will have three free late days to be used on homework assignments. Each late day buys exactly 24 hours from the original due date (so 24.5 hours = 2 late days). If you use up your late days, you will be penalized 33% of the assignment’s value for each day it is late (0–24 hours = 33% penalty; 24–48 hours = 66% penalty; 48+ hours = no credit). Late work should be submitted electronically as an attachment to a private message to instructors on Piazza. It is your responsibility to scan any written work and submit it in pdf form.

Late days may not be used on the exams.


Weekly quizzes will be assigned on Moodle and count as part of your homework grade. Collaboration is not allowed on the quizzes, but you may consult your notes and the textbook. The lowest quiz score will be dropped.

Fourth Hour

The fourth hour will be used every week, primarily to practice solving problems both as a class and in small groups. We will also use this time for questions about homework and lecture topics, and occasionally for additional lectures or other activities. Attendance at fourth hour is required and will be included in the class participation portion (10%) of your final grade.

Course Technology


Accommodations for Disabilities

If you have a disability and would like to request accommodations, please contact AccessAbility Services, located in Wilder Hall B4, at (413) 538-2646 or If you are eligible, they will give you an accommodation letter which you should bring to me as soon as possible.