This is the home page for CMPSCI 501. CMPSCI 501 is an advanced undergraduate/master's-level 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.

This is essentially the same course that was called CMPSCI 401 until Spring 2014. Beginning with that semester it counts as a theory core course for M.S. students in computer science, as well as an upper-level undergraduate elective. This course fulfills any requirements previously satisfied by CMPSCI 401.

**Instructor Contact Info:**
David Mix Barrington, 210 CMPSCI
building, 545-4329, office hours for Spring 2017 Tuesday 11-12,
Thursday 2-3, Friday 2:30-3:30.

I generally answer my email fairly reliably.

**TA Contact Info:** Clemens Rosenbaum,
cgbr@cs.umass.edu.
Office hours TBA.

The course is primarily intended for undergraduates in computer science and related majors such as mathematics or computer engineering, for master's students in computer science, and for graduate students in other fields with the appropriate background and interest. 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.
(There is also a new third edition -- you may get that instead of the
second, but it only differs primarily in having a new section on CFL's
that I won't be using.) The book information has been posted on
SPIRE, and thus the University's Amazon textbook entity has copies of the book
available.

The course will meet for three lecture meetings a week, MWF 11:15-12:05 in ELAB 304. There is no formal attendance requirement but there will be occasional graded in-class activities.

The course will use the Moodle course management system, and much course material will be available only there.

**Announcements (24 May 2017):**

- (24 May) Individual scores for the final exam were 118, 115, 112, 103, 98, 90, 90, 86, 85, 84, 84, 81, 76, 75, 73, 72, 72, 67, 67, 66, 65, 64, 63, 61, 59, 58, 56, 54, 53, 51, 47, 47, 46, 45, 44, 43, 41, 24, 22, and 20. The median score of 65.5 scaled to a B-. Overall grades for the course were eight A's (six of them in the A+ range), three A-, eight B+. six B, four B-, five C+, three C, no C-, one D+, two D, and three F. (This ignores elective pass-fail grading, so some of these will be reported as P's.)
- (19 May) The text and solutions for the final exam are now up. I will post the results of the 40 exams here soon -- I changed the scale from my original plan to A = 100 and C = 50.
- (19 Apr) The text and solutions for the second midterm are now up.
- (17 Apr) I've updated the syllabus with the final exam location and the schedule of our last few lectures. I've also graded the second midterms and will hand them back tomorrow. The scale was again A = 100, B = 82, C = 64 and the individual scores were 121, 119, 114, 110, 109, 103, 101, 101, 98, 97, 96, 95, 91, 90, 87, 84, 84, 83, 83, 81, 80, 79 (median), 78, 73, 73, 72, 70, 68, 67, 60, 59, 56, 56, 51, 50, 46, 46, 42, 41, 38, 32, 26, 10. I will post the text and solution as soon as I can get to it.
- (19 Mar) The first midterm and its solution are now up. This turned out to be a challenging exam, and I set the scale at A = 100, B = 82, C = 64. The individual scores were 118, 110, 108, 106, 106, 104, 103, 102, 102, 100, 98, 98, 97, 94, 93, 92, 91, 90, 89, 87, 84, 81, 81, 80, 78, 77, 74, 74, 72, 69, 68, 67, 66, 65, 63, 61, 59, 58, 58, 57, 56, 51, 48, 45, 45, 32, 20.
- (16 Jan) The syllabus/schedule and course requirements pages are now up.
- (12 Jan) This area of the main course page will serve as a blog and will be my medium for communications with students that I want to archive for the public. The primary medium for communication will be the Moodle site. I've set up the basic components of the public web site today and will try to have the syllabus/schedule and course requirements up by tomorrow. In most respects the course will operate very much like the Spring 2016 version -- the web site for that is still up, here.

Last modified 24 May 2017