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 (27 May 2012):
(27 May) I have finally posted the final exam and its solution. Thank you all for an
enjoyable course. You know your individual exam and course grade
becaue I mailed it to you. The exam scores were 118, 108, 107, 101,
96, 89, 83, 82, 78, 75, 69, 68, 67, 59, 59, 59, 59, 55, 52, 51, 50,
48, 47, 46, and 41. The scale was A = 100, B = 82.5, C = 65, D =
47.5, F = 30.
Overall the grades for the course were six A's (three of them
unofficial A+'s), no A-'s, one B+, three B's, three B-'s, two C+'s,
two C's, four C-'s two D+'s, and two D's (there were no F's).
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.
Last modified 27 May 2012