CMPSCI 401: Theory of Computation
David Mix Barrington
Spring, 2012
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 11-12, Wednesday 2:30-3:30,
Thursday 3-4, and Friday 3:30-4:30.
I generally answer my email fairly
reliably.
TA Contact Info: John Brattin,
jbrattin@cs.umass.edu, Office hours Thursday 9:30-10:30 or be by
appointment.
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.
The course will meet for three lecture meetings a week, MWF 1:25-2:15
in Marston 211.
There is no formal attendance requirement but there will be
occasional graded in-class activities.
There is also an scheduled honors section for the course called CMPSCI H401,
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.
This class will meet at a time to be determined with the students registered.
Announcements (30 April 2012):
- (30 Apr) Office hours for this week are given on my main page. I have graded HW#5 papers which I can
give
back during those times.
- (17 Apr) HW#5 was due tomorrow, but I am giving you an
extension
until Friday, with a five-point bonus if you hand it in tomorrow.
I will post solutions Friday night. I've also posted the last homework assignment, due at 4:00 p.m. on
Tuesday 1 May, the last day of classes.
- (4 Apr) The second midterm, its solution, and the next homework assignment are all now posted.
- (1 Apr) I have graded the exams -- I will hand them back in
class tomorrow, and post both the exam text
and
the solutions in the next day or two. The scale was A = 98 and C =
62, reflecting the fact that scores were much lower than those for
the first midterm. (For example, no one got better than 4/10 on the
extra credit question.) In descending order, the scores were 110,
106, 101, 98, 97, 97, 89, 86, 85, 85, 81, 78, 67, 62, 62, 60, 58,
58, 50, 46, 43, 39, 36, 35, and 25. The mean was 70, a C+.
We now begin the last section of the course, on time complexity.
This
material is the closest to that of CMPSCI 311, and thus may be more
accessible than the computability stuff. There are still two
homeworks to go and the final exam, half of which will be on the
last third of the course. Those of you in trouble all have the
potential to get better grades -- please come talk to me.
- (22 Mar) The syllabus has had an
incorrect
date for the second midterm, which I just corrected. As I've said
several
times in lecture, the exam will be a week from tonight, Thursday 29
March, 7-9 p.m. in room 142 of the CMPSCI building. (I'm confirming
that I can get the room for that night.) Sorry for the confusion,
and
thanks to the students who caught the error.
- (13 Mar) The HW#4 assignment is now up, due
the Wednesday after break. The second midterm is the Thursday after break.
- (29 Feb) I have finally posted the HW#3
assignment, due a week from Friday.
- (26 Feb) I still owe you a HW#3 assignment, which I will try to
get to you tomorrow. HW#3 will be due on Friday 9 March, a week
from this Friday.
- (26 Feb) I have posted the first
midterm and its solution. The
scale for this exam was A = 112, B = 91, C = 70, D = 49, F = 28, and
the 25 scores in descending order were 125, 125, 115, 115, 114, 112,
109, 107, 106, 103, 102, 99, 95, 94, 89, 78, 77, 75, 74, 70, 67, 63,
62, 48, 45. Certainly the two people with the lowest scores should
be talking to me about their future in the course, but I am in
general pretty generous with D's as opposed to F's.
- (8 Feb) I have posted the second homework
assignment,
due a week from Friday.
- (27 Jan) I cannot make my office hours this afternoon due to a
suddenly-called faculty meeting. I'll be reading email through the weekend.
- (27 Jan) I've added John's office hours, which are Thursday 9:30-10:30.
If you cannot make that time (for example, if you are taking 377), email John
to arrange an alternate time.
- (24 Jan) I have posted the first homework
assignment,
due a week from Monday.
- (14 Jan) The course requirements
and grading page is up.
- (12 Jan) I have posted the syllabus. I will
probably get the course requirements and grading page up tomorrow.
- (12 Jan) 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 some of
the basic parts of the course web page. In most respects the course will
operate very much like the Spring 2011 version -- the web site for that is still
up, here.
Last modified 30 April 2012