CMPSCI 401: Theory of Computation
David Mix Barrington
This is the home page for CMPSCI 401.
CMPSCI 401 is an advanced undergraduate core course in
the theory of computation and will deal with formal language theory
(finite automata, regular languages, grammars, and pushdown automata),
computability theory, and complexity theory.
Instructor Contact Info:
David Mix Barrington, 210 CMPSCI
building, 545-4329, office hours Tuesday 2-4, Thursday 11-12 or by appointment.
I generally answer my email fairly
TA Contact Info: Michael Sindelar, michael dot sindelar at gmail
dot com, office hours Monday and Wednesday 1-2 in LGRT 220.
The course is primarily intended for undergraduates in computer science
and related majors such as mathematics or computer engineering. CMPSCI 311
(theory of algorithms) is the primary prerequisite, though this may be
negotiable for students with a strong mathematics background. The mathematical
techniques taught in CMPSCI 250 (or similar courses like MATH 300 or MATH 455)
will be used heavily. No programming will be assigned, but familiarity with
programming at the level of at least CMPSCI 187 (data structures) will sometimes
be assumed. This is probably the mathematically most difficult course in the
CMPSCI undergraduate curriculum. It is a semi-elective course -- it fills
requirements for any CMPSCI major and many MATH majors, but should be taken only
by students whose mathematical ability and/or motivation is average or above
relative to CMPSCI majors.
The textbook for the course is Introduction to the Theory of Computation by Michael Sipser, second
edition. This is a very good book: I will be following it very closely
for my lectures, and it is a very good long-term reference, but it is rather
expensive. The first edition is available more cheaply, and the main text of
the two is virtually identical, but the second edition will be the source of
the problems I assign and it has a large number of solved exercises. I have
ordered the book at the Textbook Annex --
as far as I know they still have it.
The course will meet for three lecture meetings a week, MWF 9:05-9:55
in LGRT 121. There is no formal attendance requirement but there may be
occasional graded in-class activities.
There is also an scheduled honors section for the course called CMPSCI H07,
a one-credit seminar intended for undergraduates in Commonwealth College (but open to non-CC
students as well if there is room).
I will lead a seminar on some topics related
to the main course, such its connections to formal logic and abstract algebra.
CMPSCI H07 will meet on Mondays from 1:00 to 2:00 p.m. in room 243 of the computer science building, beginning Monday 9 February.
Announcements (25 May 2009):
- (25 May) I have now posted the final exam
and its solution. I set the exam scale at
A = 100, C = 65. The eighteen scores were 120, 111, 102, 101, 101, 100, 85,
82, 81, 80, 75, 73, 67, 64, 63, 60, 59, and 50. It turned out advantageous for
eleven of you to have the final counted as 50%. The final grades were A+, A,
A, A-, A-, A-, B+, B, B-, B-, B-, C+, C+, C+, C, C, C-, D+, D. I have emailed
you your individual exam and course grades. Thanks for an enjoyable course!
- (16 May) Sorry for the late notice, but Mike has graded HW#6's (and HW#5's)
available. He'll get them to me before the final, and he may be able to let
you pick them up earlier if you email him.
- (14 May) Hard copy solutions of HW#5 and HW#6 are now available in
the CMPSCI main office.
- (14 May) Mike's help session will be at 4:00 tomorrow (Friday 15 May)
in room 343 of the Computer Science Building.
- (13 May) I'm sorry I haven't posted here earlier about getting your
solutions and graded work for HW#5 and HW#6. Nothing is ready yet, but
I will let you know as soon as it is. Mike Sindelar will offer a review
session on Friday afternoon, exact time and location to be determined. I hope
he will have at least some graded papers, and all the solutions, available
for you then and there.
- (4 May) (6:00 pm) Ok, the HW#6 assignment is now
posted, due a week from tomorrow (Tue 12 May, the last day of classes) at 4:00
- (4 May) (4:00 pm)
Sorry, I'm running behind today and I need to go a talk right
now -- the HW#6 assignment will be up later today.
- (29 Apr) I've just corrected a problem in the HW#5
assignment. Part of Problem E-1 was based on my misremembering of how
a proof in Sipser went, but it's fixed now.
- (28 Apr) The link to the HW#5 assignment below was bad and is now fixed. Mike has graded HW#4 and I will have the graded papers in class tomorrow.
- (23 Apr) I have posted the HW#5 assignment, due
a week from Monday. HW#6 will be due Tuesday 12 May, the last day of classes.
I'm making the last two assignments a bit shorter.
- (23 Apr) As I said in class yesterday, the scale for the second midterm
was A = 102, B = 84, C = 66, D = 48. The 18 scores in order were 107, 106, 106,
100, 100, 92, 91, 91, 89, 86, 85, 83, 75, 72, 68, 59, 48, and 46.
- (23 Apr) There are two definitions I've used in class that are not in
Sipser and I'd like to post here. The language ANP is the language
"U" to be proved NP-complete in Sipser's Problem 7.32 -- I gave a proof of this
in lecture. And the language GEN-SUDOKU is the set of partially filled d by d
matrices M, where d = k2 is a perfect square and M can be filled in
to produce a d by d matrix that is a Latin square and where each of the d
k by k boxes contains each of the numbers 1 through d exactly once. This
language is NP-complete, though we have only proved it to be in NP.
- (15 Apr) And now the solutions to the second
midterm are posted.
- (15 Apr) I've posted the second midterm, and
I hope to post solutions later tonight and have the grading done by Friday
in class. Mike is hoping to have graded HW#3 available in class Friday. No
guarantees on either, though.
- (10 Apr) Sorry about the mixup with HW#4 solutions this morning, which was
a miscommunication between me and Mike. Hard copies of the solutions are now
available in the CMPSCI main office, which is open until 5:00 this afternoon.
If it's a real hardship for you to get there I can email a pdf, but I don't want
to put an electronice copy on the web.
- (10 Apr) The exam on Monday night is in ELAB 323, which is where the first
exam was originally scheduled before it was moved due to snow. I said ELAB
305 in class this morning, which was wrong, sorry.
- (30 Mar) I've posted the HW#4 assignment, due a
week from Friday. The second midterm is two weeks from tonight -- two similar
midterms with solutions are available here
under "Practice for Second Midterm" and "Second Midterm".
- (30 Mar) I'm a little disappointed by the attendance level in lecture.
There is no penalty for not showing up if you are able to learn the material
on your own, unless there is an in-class writing assignment. But
some of you who are missing a lot of classes are not doing that
well so far...
- (12 Mar) In response to your information, Mike is changing his office
hours to 1-2 on Monday and Wednesday. Of course he will not hold office
hours during break, but I will be available by email.
- (8 Mar) I have just posted the HW#3 assignment,
due the Friday after break.
- (5 Mar) I have just posted the text and
the solutions for last Monday's midterm.
- (5 Mar) I've been asked about HW#3's due date -- I will post it over
this coming weekend at the latest, and it will be due on 27 March, the Friday
after the break.
- (5 Mar) I've graded the exams and will hand them back tomorrow morning.
The scale was A=96, B=81, C=66, D=51. The 21
scores in sorted order were 107, 105,
97, 96, 90, 88, 86, 83, 81, 77, 74, 74, 73, 70, 65, 62, 61, 53, 48, 46, 28.
Median score on Questions 1-4 was 25, on Question 5 was 13, on Question 6 was
17, and on Question 7 was 22. There were 5 A's (counting A+ and A-), 7 B's,
5 C's, 3 D's, and one F. The latter four people should talk to me soon.
- (3 Mar) The exam will be 7-9 tonight in ELAB 305. I have heard from
several of you about conflicts and have arranged a makeup time, but if I don't
hear from you soon I will expect you tonight.
- (2 Mar) And in fact they did close the campus all day (until
midnight, if I read it correctly) so the honors class is canceled and the
exam is postponed. My plan is to have it tomorrow night, 3 March, also at
7-9 p.m., in a room to be determined because the people who would book the
room are naturally not in today. I realize that with only 24 hours notice some
of you may have time conflicts -- email me and we will work something out.
I will not be on campus today but will answer email assume that my Internet
connection stays up. Enjoy the snow day!
- (1 Mar) They are predicting another fairly serious snowstorm for tonight
and tomorrow. Again, we will go by the university's decision. If they say
"campus is closed, evening classes will take place", which I think is fairly
likely, we would still have the exam. If they cancel Monday evening classes,
which is less likely, I will have to reschedule the exam.
If (and only if) the university opens before 1:00 p.m., we'll have
the honors class. They'll decide by around 6:00 a.m. and I'll post the decision
here as well. Of course, if we have the exam but you are coming from a
distance and don't think it's safe to travel to it, let me know and we will
work something out.
- (28 Feb) Ali Shah, a student in the class, has asked me to announce
a study session in the third-floor LGRC CS undergraduate lounge, at 7:00
p.m. tomorrow (Sunday) night. Remember that the exam is 7-9 p.m. on Monday,
in room ELAB 323. There is no regular 401 class on Monday, but the Honors
class will meet as normal 1-2 p.m. in room 243 of the computer science building.
- (28 Feb) A few people missed the in-class writing exercise on Friday. I
defined a "right-regular" grammar to be a CFG where the right-hand side of every
rule has at most one non-terminal, and that non-terminal is the last character
of the right-hand side if it is there. You were asked to prove that a
language has a right-regular grammar if and only if it has an NFA.
- (26 Feb) I've answered more questions on HW#2,
including a recorrection of the correction about 2.42 and 2.43. As it says
there, we'll give up to ten points extra credit for 2.42, as well as the stated
points for 2.43a and 2.43b.
- (22 Feb) As I mentioned in lecture, I'm not designing a new practice test
for the midterm a week from Monday, because it will be very similar to the
practice first midterm and
real first midterm from when I taught
the same course in Spring 2008. Both these exams have solutions posted, which
you may find from the exam index page for that
offering of the course.
- (22 Feb) There is a correction on HW#2 -- I meant to assign problem 2.43 (which has two parts) and not 2.42 (which doesn't). Thanks to the student who caught this. There's also two more questions and answers about HW#2 on the
Q&A page for HW#2.
- (17 Feb) I have posted HW#2, which is due in
class on Friday 27 February,
- (13 Feb) Since Monday is a holiday, our next class is Wed 18 Feb and our
next Honors class is Mon 23 Feb. Mike, our TA, has set his office hours as
Monday and Wednesday 11-12 in LGRT 220. He's making up solutions to HW#1 and
I will give these out (on paper) on Wednesday. I'll post HW#2 sometime over the
- (7 Feb) I have posted the first question and answer
- (5 Feb) I have scheduled the honors section, CMPSCI H07, for Mondays 1-2
p.m. in room 243 of the computer science building. The first meeting will be
next Monday, 9 February. Please sign up on SPIRE if you can, otherwise we will
arrange to override you in.
- (30 Jan) As I mentioned in class today, I need to decide next week whether
to have the honors section. One student (Jordan) said she was interested after
today's class, but I'd like to have at least three before I go ahead. Please
email me if interested. We would meet for an hour a week at some time
convenient to all of us -- work would consist of occasional problems to hand
in and a small project presentation at the end.
- (30 Jan) I've now set my office hours as Tuesday 2-4 and Thursday 11-12,
in my office, 210 CMPSCI. I've also corrected an incorrect room number for the
- (27 Jan) The first homework assignment is now
posted, due on Friday 13 February. There is some chance that the University
will be closed tomorrow, or will open late. If it is closed for any part of
the time from 9:05 to 9:55, we will not have class.
This page gives official information
on the campus' emergency closing status.
- (23 Jan) Course requirements are now
posted. See you Monday!
- (22 Jan) I have posted the syllabus. The text
is on order at the Textbook Annex, and they expect it in by Monday.
- (29 Dec) This area of the main course page will serve as a blog and will
be my primary medium to communicate with the students (though I will email
everyone for urgent matters). Please check here frequently. Today I'm setting
up the basic parts of the course web page. In most respects the course will
operate very much like the Spring 2008 version -- the web site for that is still
Last modified 25 May 2009