15-251 Great Ideas in Theoretical Computer Science

Course Information


The formal prerequisites for the course are (15-122 or 15-150) and (21-127 or 21-128 or 15-151). In particular, we expect the students to have taken an introductory computer science course that goes beyond basic computer programming and covers algorithmic thinking. On the mathematics side, we expect the students to have experience reasoning abstractly and know how to write formal proofs.

Learning Objectives

Broadly speaking, the course has several goals. First, it provides a rigorous/formal introduction to the foundations of computer science, which is the science that studies computation in all its generality. An important component of this is improving your analytic and abstract thinking skills since nature's language is mathematics. Second, the course intends to prepare you to be innovators in computer science by presenting some of the great ideas that people in the past have contributed to science and humanity. We hope that you will learn from their examples. Third, the course gives you opportunities to improve your social skills by emphasizing cooperation, clarity of thought, and clarity in the expression of thought.

More specifically, some of the main learning objectives are the following.

Note that even though all of the topics we discuss in the course have real-world applications, often we will not be explicitly discussing the applications. This is because initially it is better to separate concerns regarding real-world applications from the exploration of fundamental truths and knowledge that shape how we view and understand the world. The quest for truth and understanding, wherever it takes us, eventually do produce applications, some that we hoped to achieve, and some that were beyond our wildest dreams. The focus of the course is on that quest for truth and understanding, which is arguably more important than specific applications.

External Resources

There is no required textbook for the course. The material is fairly diverse, and no standard text contains it. Lecture notes will be provided. Furthermore, the lectures will be recorded and the links to the video recordings as well as the slide handouts will be provided on the course website.

If you want to look at books which contain parts of the course material, we recommend the following:

Mentoring System

You will all be assigned a mentor TA at the beginning of the semester. Your mentor will keep track of your progress, grade your homeworks, and help you do well in the course. Don't hesitate to contact your mentor TA about anything related to the course. For instance, you can set up meetings with you mentor TA to review course material, go over homeworks or exams, or chat about studying strategies.

Throughout the semester, feel free to reach out to anyone on the course staff about anything. We are here to help you anyway we can!


Your grade will depend on the following factors.

Homeworks. There are 10 homework assignments.

Midterm Exams. There are 3 Midterm exams (Sep 18 from 9:00am to 10:20am, Oct 10 from 6:30pm to 9:30pm, and Nov 7 from 6:30pm to 9:30pm). Please mark your calendars. The first midterm is an early midterm and has half the weight of other exams. The purpose of this exam is to give you early feedback and give you a chance to adjust your approach to the course if needed.

Final Exam. There is a Final exam at the end of the semester during the finals week.

Class Participation. This is based on attendance in lectures and recitations, as well as completion of weekly online quizzes.

Your numerical grade will be calculated according to the following table.

Course Component Weight
Homework 25%
Midterm 1 10%
Midterm 2 20%
Midterm 3 20%
Final 20%
Participation 5%

At mid-semester, letter grade cut-offs will be announced.

Homework System

Homework is an extremely important component of the course and is the main tool we use to teach you valuable skills, reinforce key concepts, and help you learn the material.

There are some general rules that apply to all the questions in the homework:

If you have any doubts about whether something is within the rules or not, do not hesitate to contact the course staff.

Types of questions: There will be 4 types of questions in the homework and each question will be clearly labeled with its type.

SOLO - You must work on these questions by yourself. In addition to the rules mentioned above, you are not allowed to discuss these questions with anyone except for the course staff.

GROUP - These questions must be solved in groups of 3 or 4. Working on these questions just by yourself is not allowed! You must clearly indicate your group members. You can change your group from week to week, but you can have at most one group per week. Other than your group members, you may discuss these questions with the course staff.

OPEN COLLABORATION - You can discuss these questions with anyone you like from class (i.e., other students currently taking the course and the course staff). Other than the general rules stated above, there are no additional rules for this type of question.

PROGRAMMING - Not all homework assignments will contain a programming question, but some might. The SOLO rules apply to these types of questions. You must submit your programs to Autolab by 6:30pm the day the homework is due.

A homework assignment for a particular week will contain SOLO and/or PROGRAMMING type questions covering the current week's material, plus, GROUP and/or OPEN type questions covering the previous week's material. This has a couple of benefits. First, you'll solve problems on a topic for two weeks rather than one, which helps with retention. Second, after solving the easier solo questions, you will be much better prepared to solve the harder collaborative questions.

Homework writing sessions: You will not hand in written up solutions to every question of the homework. Every Wednesday from 6:30pm to 7:50pm at DH 2315, we will have a homework writing session. We will randomly pick a subset of the homework questions (usually 3 questions are picked), and you will be required to write the solutions to those problems individually during this proctored setting. We expect that you will have already practiced writing down the solution to every question in the homework prior to Wednesday night. Therefore these homework writing sessions should be relatively straightforward and stress-free.

Homework grading: After the homework writing session, you will get back your graded homework the following recitation. The rubrics that we used to grade each question will be posted on Diderot. You will know who graded which question. Whenever there is a point deduction on your homework, an explanation should be given, but if you do not understand why you lost points, please don't hesitate to contact us so we can clarify things for you.

Grading proofs is a complicated process. We try our best to be as fair and as consistent as possible. However, mistakes will happen from time to time. Therefore we have a system in place that makes grading a two-step process. The first step is that we read your solutions and assign an initial grade based on the rubric. The second step is that you carefully review the rubric and your solution, and if you have any disagreement with the number of points you got, you email the TA who graded that question. If there was a mistake, we'll correct it. If you cannot resolve the situation with the TA who graded the question, email one of the head TAs to get a second opinion. If you are still not satisfied, email one of the instructors.

Note that your grade can never go down as a result of a regrade request; it can only go up.

The deadline for homework regrade request is Wednesday 6:30pm (one week after the corresponding homework writing session). Email your request to the TA who graded the question.

Homework resubmission: It is very important that you learn from your mistakes and correct them. For this reason, after you get your graded homework back, you will be allowed to resubmit solutions that you have gotten wrong. You may (and should) go to the homework solution sessions (see below for details) or ask about the solution during office hours. If you turn in a completely correct and well-written solution, you will receive back 50% of the lost credit for that question. If on the other hand your solution is not near-perfect, then unfortunatly you will not receive any points back.

The deadline for homework solution resubmission is Sunday 6:30pm (11 days after the corresponding homework writing session). Email your resubmission, along with your original solution, to the TA who graded that question.

Proof-writing guidelines: The quality of your write-up and presentation matters a lot, so you should make sure your solutions are very clearly explained. If you are not sure of something, or you think there is a gap in your argument, clearly indicate these in your write-up (you will earn more points doing so rather than writing a wrong argument!!). Do not try to sell a wrong or incomplete proof! If you leave a question completely blank, you will earn 20% of the credit for that question.

To help you write correct and clear proofs, we have prepared a document with a list of guideline points. The guideline points will appear as a checklist in each homework. For each proof you write, you will have to tick the checklist items to acknowledge that you are following the guidelines.

Click here to access the document.

Homework solution sessions: Unfortunately, we will not be publishing written solutions to the homework problems. The main reason is that any homework solution we post kills the question for future semesters of the course (and any other course that might be using a similar question). Most questions we ask are pedagogically very valuable, and coming up with such questions is very hard. So we don't want to kill those questions by publishing solutions. That being said, we don't keep the solutions a secret either. We hold homework solution sessions twice a week and go over the solutions (on the blackboard) to the problems that appeared in the writing session. We are also always happy to go through the solutions to any problem with you during office hours.

Note that during the solutions sessions, we will not write the full proof on the blackboard. We expect you to fill in the details yourself.

The times and locations of the homework solution sessions will be announced at the beginning of the semester.

Recitation System

The recitation sections that you have signed up for on SIO will only be used for the first week of the course. Starting week 2, we will transition to a different system.

One of the main advantages of recitations over lectures is that the sections are much smaller in size. In order to improve the student-TA ratio and give you more flexibility, we will be asking you the times you are available on Fridays and Saturdays. Based on that information, we will assign you to a recitation slot. And a typical recitation section will have about 12 students.

In addition to the above change, we will offer 3 different spiciness levels for recitations. You will select yourself which level is appropriate for you. During the semester if you feel like you would like to switch to another level, let us know, and we'll arrange the switch.

Bell pepper

Not spicy. We will go over the definitions to make sure everyone understands them fully. Then we will solve the problems together (as many as the time allows).

Jalapeño pepper

Normal spicy. After a quick review of definitions, we'll solve the problems together. These sections will have a faster pace.

Habanero pepper

Hot! We'll assume you are comfortable with everything covered in lecture and notes, so we'll directly dive into the problems. These sections will have the fastest pace.

We will take attendance in recitation.


We will use Diderot for several purposes, as listed below. Every student is required to signup for the course's Diderot page!

Asking Questions

Even though we are always ready to help and provide support anyway we can, there is a fine balance that we have to respect. Ultimately, we would like you to develop the necessary skills to be self-sufficient problem solvers. You will have many questions throughout the semester. Reflecting on your questions to try to figure out the answers on your own is extremely valuable, and we want to make sure that you are not robbed of this experience. Here are some general guidelines for asking questions.

Use of Electronic Devices

The use of electronic devices like phones, tablets, and laptops during lectures and recitations is prohibited. These devices cause distractions both to you and the people around you. If you would like to use an electronic device to take notes and using paper and pencil is not a good option for you, please contact one of the instructors.

There is an exception to the above rule. When we open up a poll during a lecture, you are allowed to use your phone to cast your vote. Once the poll is completed, you should put away your phone. If you do not have a smart phone, please contact one of the instructors.

How to Succeed in 251

Download the pdf.

Academic Integrity

We understand that most of you would never consider cheating in any form. There is, however, a small minority of students for whom this is not the case. In the past, when we have caught students cheating they have often insisted that they did not understand the rules and penalties. As a part of the first homework, you will be required to acknowledge that you have read and understood the cheating policies. Please read Carnegie Mellon University Policy on Academic Integrity. The following are some clear examples of cheating:

Consequences: The penalty for cheating can range from a 10% deduction on your overall course average (i.e. a letter grade drop) to directly failing the course. Furthermore, in most cases, a letter to the Dean of Student Affairs is sent and further consequences are determined by them.

Extended-Time and Make-Up Policy

We are happy to provide appropriate accommodations to students who have approval from the Disability Resources Center. Please contact one of the instructors if you are in this situation.

No make-up quizzes, exams, or homework writing sessions will be administered, except in the case of documented medical or family emergencies, or other university approved absences. The common cold or your computer crashing, unfortunately, do not qualify as an excused absence.

Well-Being and Happiness

We very much care about your well-being and happiness! Be aware that everyone on the course staff is always available to provide counsel or chat, and you should attend office hours as often as you want for academic and non-academic conversation.

However, also know that the university provides services that you may want to take advantage of at some point during the semester. If you are ever unsure about them, run into a problem, or want more information, feel free to reach out to the instructors.

For a comprehensive list of CMU’s resources, please click here.

CMU Police Department

Do not hesitate to call CMU police when in an emergency or if you are interested in taking advantage of their services.

Counseling and Psychological Services (CAPS)

CAPS offer therapy, crisis support, etc. and you should reach out to CAPS for counseling if you are struggling, no matter how small you may think your problems are. If CAPS can’t help you appropriately, they also do referrals and basic consultations to help you find what you need.

University Health Services (UHS)

Health services can help you in the same way a doctor does but they also offer comprehensive care management and health promotion services.

15-251 Wellness Help

If you find yourself struggling in any way or simply would like to discuss how you are feeling about 251 or just chat, reach out to one of the following people or your mentor TA to set up a casual meeting.