# Topic Date Skillset Cheat Sheet Sample 1 Sample 2 Exam & Solutions
1 Languages complexity Sep 21 MT1 skillset MT1 cheat sheet MT1 sample exam MT1 exam solutions MT1 sample exam MT1 exam solutions MT1 exam questions MT1 exam solutions
2 Algorithms Oct 31 MT2 skillset MT2 cheat sheet MT2 sample exam MT2 exam solutions MT2 sample exam MT2 exam solutions MT2 exam questions MT2 exam solutions
3 NP-completeness and decidability Nov 30 MT3 skillset MT3 cheat sheet MT3 sample exam MT3 exam solutions MT3 sample exam MT3 exam solutions MT3 exam questions MT3 exam solutions
4 (Final) All of the above Dec 12 Final skillset Final cheat sheet


Couple things to note about exams:

Exam Policies

Besides the obvious “don’t cheat” exam policies outlined in the policies page you should know about the following exam procedures:

Exam Drop

Exam drop replaces conflict exams. As per the grading policy, we have included one more exam than normal so that students can drop one exam grade each semester. This exam drop has the same purpose as the HW drop - to give students a buffer for those times when life gets in the way. Should you get sick or maybe have a moment of panic during one of the exams, you now have a drop so that one grade won’t sink you. 

One critique of this policy is “what if you missed two exams?” I have taught this course more than 6+ times and I have yet to meet someone that missed two exams but had mastered the material. In the past three years that I have taught the course, every case of a student missing two or more exams is accompanied by the student performing in the bottom 10% of the exams they did take. This makes sense when you think about. Missing two exams is indicative of being absent for the majority of the semester which would in turn mean that the material was probably not mastered.

However, I will make a deal with anyone that is still worried about this. If you miss two exams due to a documented emergency but score in the top 20th percentile on the other two exams, I will substitute the lower completed exam grade for one of the missed exams. Note: you must have documentation of the emergency circumstances that required you to miss the two exams. You can email me about the specific requirements for this documentation.


I’ve wrestled with the concept of cheatsheets a lot in past semesters. Ideally, what a cheatsheet is for is to help you memorize tedious equations or details that are easy to forget. However, I like to give exam questions that are very similar to the HWs/labs. In prior semesters, I noticed that cheat sheets didn’t contain definitions/algorithms. Instead, they contained copied questions and solutions of HW/lab problems. Basically cheat sheets had become a “guess what Kani might put on the exam”-sheet. Worse, many, many people simply copied the cheatsheet solutions and were frustrated when they learned that those solutions didn’t apply to the exam problems. This leaves me with two options: 

I think I’ve come up with a solution that’d help everyone. Over the course of two semesters, we’ve constructed a communal cheat sheet for each of the exams. These cheat sheets will be posted on the website well in advance of the exam and will be attached to the back of the exam. 

This lets me use problems that many of you have seen before but know that the people answering those problems are doing so because they actually mastered the material. 

Use pen

The exams will be scanned and uploaded to Gradescope where they will be graded by the TAs. Unfortunately, last semester we had a problem with a number of individuals that used a pencil with a light touch causing the exam to be illegible. Therefore, we’re banning pencils. I’m not going to go around confiscating pencils like some weird pen nazi, but if we see an exam that is difficult to read, we will take off points. Just use pen, if you need to change something you can always cross out the previous answer and make a note for the grader to look at the scratch page.


Regrades requests would be open for a week once grades are released (except for final exam). Regrade requests are not intended for arguing about point allocation, or whether the grading scale is fair.

Unfortunately, certain students think that they can tire us into giving them point that they did not earn, by keep asking for unjustified regrade requests. As such, superfluous, argumentative and repetitive regrade requests, after an appropriate warning, would results in a zero on the relevant questions - please do not waste our time.