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
reliably.

**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.

- Course Requirements and Grading
- Homework Assignment Directory (with HW#6)
- Exam Directory (with final exam and solution)
- Questions and Answers on Homework (with some on HW#2)
- Syllabus

**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 pm.
- (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 A
_{NP}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 = k^{2}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 long weekend.
- (7 Feb) I have posted the first question and answer on HW#1.
- (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 course above.
- (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 up, here.

Last modified 25 May 2009