Theoretical CS


Homework is meant for you to learn and practice, and should be a space where you make mistakes (because you are learning new material)! It’s absolutely okay for you to be stuck on the homework. Class time is meant to help you work through these obstacles! Students will be asked to present their solutions in front of the class, and will have the opportunity to field questions and suggestions from classmates. Thus it is crucial that you come to class prepared. At the end of each week, a homework question will be chosen for you to write a formal solution to. These homework submissions will be graded on a 0-4 scale.


Since so much of this course involves groupwork and collaborating with others to learn new material, it is important that each student actively participates. Participation can mean showing up to class on time, asking questions in class, answering other students’ questions, coming to office hours, working with classmates, or contributing to a class discussion. Each semester, I will meet with you and we will come to an agreement on your participation grade (0-15).


Readings will be given to supplement the course material. Each reading will include a written response, as well as participation in an in-class discussion. These are graded on a completion basis.


Quizzes will only ever cover what you have done for homework, and what we have done together in class.

Labs assess whether you can take everything you’ve learned so far and put it together, often in the format of a longer programming assignment and a corresponding write-up. Labs will be given at the end of each unit. Details will be provided when these assessments are given.

All assessments will be assigned letter grades.

There are no corrections, except for extenuating circumstances discussed between us and your grade dean.

Academic Honesty

Any submitted work by a student should be their own, unless students are collaborating on a group assignment, in which case the work submitted should be a reflection of equal effort of all students involved. Collaboration is encouraged. Feel free to talk with other students! However, during these discussions, do not write down any solutions. Students must always note whom they worked with. Failure to do so will result in an integrity penalty.

Any form of cheating will result in a failing grade and the student’s advisor will be notified for the first offense. Any subsequent offense will result in the student being asked to speak with their class dean. Forms of cheating include but are not limited to: similar / identical code submitted, solutions submitted that are not a student’s own work.

Semester Grade