- Class URL:
The class webpage is
where all material will be posted.
- Lectures: Monday, Wednesday, Friday, 12:50 PM - 2:05 PM in Hewlett 200
- Instructor: Prof. David Dill (firstname.lastname@example.org). Office: Gates 344; Phone: 725-3642;
- Administrative Assistant: Mary Jane Swenson (email@example.com).
Office: Gates 279; Phone: 723-0748
- Course Assistants:
- Staff mailing list: firstname.lastname@example.org
- Kevin Gibbons email@example.com
- Kyle Griswold firstname.lastname@example.org
- Michael Kim email@example.com
- Neha Nayak firstname.lastname@example.org
- Vishnu Sundaresan email@example.com
- Susan Tu firstname.lastname@example.org
- Units: Undergraduates should enroll for 5 units. Graduate
students should enroll for between 3 — 5 units. The only reason to
enroll for less than 5 units is that you have some constraint on the
number of units you can take. The work and grading criteria are the same regardless of
the number of units you enroll for.
- Prerequisites: We only assume that you have had pre-college
math. We cover a lot of math in this course, but we do it from the
ground up. The only listed pre-requisite is CS106A, an introductory
programming course. It is a pre-requequisite because CS103 is a
computer science course, and we like to use examples and concepts from
programming to help explain and motivate the material. But, students are
not required to write programs in CS103.
- Questions and help:
- Piazza is the easiest way to discuss material from the class and to ask questions. Your question may already have been asked and answered! To maximize the usefulness of this resource, please mark questions as public whenever you can (of course, if you're asking about your own progress toward solutions or feedback, you should mark questions private).
- There will be lots of office hours, the locations and times of which you can find on the calendar.
The best way for many students to learn the some of the concepts in the class is to work through them with Prof. Dill or the CAs.
We expect that many students will need to use office hours
to get the most out of the course, or even to finish some of the problems on the
- Unless there is a very good reason to contact a specific person, please
address email questions to the mailing list (email@example.com). It helps us
and increases the chance that you'll get a timely response.
- Problem sessions:
There will be optional problem sessions on Monday evenings 7 — 8:30 PM,
except for the two Monday holidays, in which case problem sessions will be on Tuesday evening. The Monday sessions will be in Building 160, Room 329; the Tuesday ones in Gates 100.
These will consist of course staff leading an interactive discussion
with the students about problems similar to homework and exam
- Textbook: There is no textbook required for the class.
The lecture notes and other notes we put online will be sufficient.
There is a recommended textbook
for the second half of the course, "Introduction to the Theory of
Computation," by Michael Sipser. Either the 2nd or 3rd edition will
do. It is available at the Stanford Bookstore, although you can get
them anywhere that sells them (of course).
- Grading: Grades will be based upon
Homeworks (40%), Midterms (15% each), and Final (30%).
There will be two midterms and a final. Please see the
All exams will be closed book and closed computer.
You are allowed one page of notes for reference.
There will be both online and written homework problems.
Homeworks will be assigned and due on Fridays before the start of the
problems will often be available at in-between times. We will give
bonus points for early completion of automatically-graded online
problems because we feel that it will help students keep up with the
material in this fast-paced course. (Details will be announced.)
Written homeworks should be submitted online via Scoryst (enroll here). You should either type your homework (e.g. with LaTeX, perhaps using an online editor, although note that we can't provide LaTeX support) or scan it. Make sure you allow enough time to complete the submission process before the deadline.
Late homeworks will not be accepted unless you are sick or injured,
there is a death in the family, etc.
Manually graded homeworks will generally be graded within a week, if not sooner.
We do our best to grade accurately, but mistakes happen and it's important that they be corrected.
We will regrade homeworks to correct grading errors, not to
adjust grading criteria.
Regrade requests must be submitted within a week of the graded homework being returned.
Please submit a written explanation of why the grading was erroneous, because someone will be reviewing a the weeks request in one batch. Regrade requests should be sent to firstname.lastname@example.org.
Don't be a jerk. There have been problems in recent years of
students treating the CAs rudely, especially with regrade requests.
This is, of course, unacceptable (as is rudeness by course staff).
- Challenge problems: Occasionally, we will propose challenge
problems for students who are interested. Although each challenge problem submission
is scored between 0 and 5, the problem is not actually worth a fixed number of extra credit points.
Instead, good scores on challenge problems are only taken into account when computing final grades
for students who have already earned an A through other means. In other words, good challenge
problem submissions will only help raise a student's final grade from A to A+.
It would be a strategic error for students to spend significant time on these
problems at the expense of thoroughly understanding the basic material.
- Honor Code and Collaboration:
It should go without
saying that you must comply with
Stanford's honor code.
Please, let's have no more articles like this:
New York Times
Our policies about collaboration and use of materials are intended
to promote our most important goal, which is that you learn the concepts
and skills of the course. The other, closely related goal,
is that we be able to assess reasonably accurately how well
the first goal was met.
The primary way that you learn this material is by working problems on
homeworks. The problems give practice, help you understand
your comprehension of the material, and (importantly) the creative
part of problem solving helps you to remember and appreciate that
So, only limited collaboration is allowed on homeworks. You should
first try to work through them by yourself, thoroughly and carefully.
Of course, Prof. Dill and the course assistants will be available to
you if you are stuck or want to know if there is a better way to solve
a problem. It's ok to discuss problems with others, but please make
sure you are doing your best to solve them yourself. In particular,
do not copy solutions. If you're looking at someone's answer as you
write yours, you are violating this rule (if you have an eidetic
memory, try not to use it to record others homework solutions).
Another way to undermine the value of homework problems is to look
up answers on the internet, find answers in other textbooks,
copy answers from homeworks from previous classes at Stanford or
elsewhere, etc. Don't do these things. If you use material from
sources other than the lectures, office hours, or course textbooks
to understand a problem better, write down what you used and how
you used it in your homework solutions.
Any assistance received (both from human and from inanimate sources) that
is not given proper citation may be considered a violation of the
In any case, you are responsible for understanding and being able to
explain all of the statements in your assignments and examinations.
If you have a serious medical or family emergency and cannot complete the work in this
course, you may contact the instructor to arrange for an incomplete. Our policy is to reserve incompletes
only for emergencies, so we do not grant incomplete grades for poor performance
on the assignments or exams, nor do we offer incompletes for busy work schedules.
Lectures are live, only. They are not video recorded.