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 and a required course in the BS-CMPSCI Theory of Computation track. This course fulfills any requirements previously satisfied by CMPSCI 401.

**Instructor Contact Info:**
David Mix Barrington, 210 CMPSCI
building, 545-4329, office hours Mon 2:30-3:30, Tue 2-3, Thu 3-4.

I generally answer my email fairly reliably.

**Grader Contact Info:** Ian Fox,
ifox@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 Textbook Annex probably has copies of the book
available.

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

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

**Announcements (28 July 2015):**

- (28 July) Final exam solutions are now up.
- (22 May) The final exam text is up. I hope to post solutions soon.
- (12 May) The final exam has been graded, and overall grades have been
computed, entered on SPIRE, and mailed to individual students. I will post the
exam text and solution here as soon as I can.
The 23 scores on the final exam were: 126, 116, 108, 105, 104, 98, 97, 90, 82, 81, 81, 76, 75, 72, 67, 62, 62, 57, 55, 54, 50, 43, 21. I set the scale at A = 105, B = 82.5, C = 60.

The 23 grades given for the course were: three "A+" (A with course citation), three ordinary A, two A-, four B+, three B, three B-, two C+, no C or C-, one D+, and two D.

- (17 Apr) I have posted the final homework assignment, due by 4:30 p.m. on the last day of classes, Thursday 30 April. Remember that 30 April now has a Monday schedule, and that there will be a review lecture in the usual room at 11:15 that day.
- (6 Apr) I have posted the HW#5 assignment, due a week from Friday.
- (2 Apr) I've posted solutions to the second midterm. I owe you the HW#5 assignment, which I hope to get to before Friday.
- (31 Mar) I've completed grading the exams and can give some statistics. The 24 scores, in descending order, were 132, 121, 114, 108, 106, 102, 101, 87, 87, 83, 76, 74, 74, 74, 73, 72, 67, 66, 66, 61, 56, 55, 51, 15. The mean is 80 (a B) and the median is 74 (a B-). I owe you solutions to the midterm and a HW#5 assignment.
- (29 Mar) The second midterm is posted and graded papers will be returned in class tomorrow. I set the scale at A = 100, B = 80, C = 60, and I was somewhat disappointed in the results. (I will post solutions and the full range of scores soon, probably tomorrow after I have graded one last exam.)
- (9 Mar) Note that the University in its wisdom has changed the planned reading day on Thursday 30 April to a class day with a Monday schedule. We will have a class at the regular time but there will be no new material presented (since our final exam is the next day) -- I will conduct a review for the final.
- (9 Mar) The HW#4 assignment, due the Wednesday after spring break (the second midterm is the following evening).
- (24 Feb) The HW#3 assignment is up.
- (22 Feb) The first midterm and
its solution are posted. I was
disappointed with the results on what I thought was a very
straightforward exam, mostly
testing your knowledge of constructions that
were in the book and very likely to be on the exam. But I will
accept the empirical evidence that the exam was harder than I
intended, and set the scale accordingly. (I expect that my rushing
things because of the snow days was part of the problem.)
The 25 scores in order were 115, 109, 105, 99, 97, 94, 93, 91, 88, 87, 84, 84, 84, 80, 79, 79, 78, 77, 74, 71, 67, 63, 62, 61, 57. That's a mean of 83.2 and a median of 84. The scale will be A = 100, B = 80, C = 60. So no one was below C level which is minimal acceptable work for an undergraduate, but several (including some graduate students) were below the B standard which is minimal acceptable work for a graduate student. (On the other hand, the median of the HW1's was closer to an A.)

- (16 Feb) I have adjusted the
syllabus to indicate that only Tuesday's
lecture, not Wednesday's, is fair game for Wednesday night's
midterm.
You are thus not responsible for the the CFL Pumping Lemma or the
proof
that the language {a
^{n}b^{n}c^{n}: n ≥ 0} is not a CFL. However, there will be places on the exam where you will be expected to use (without proof) the*fact*that this language is not a CFL.If you are asked on the exam (and you will be) to prove that a language is not

*regular*, you may do it either with the Regular Language Pumping Lemma presented in Sipser or with the Myhill-Nerode Theorem as done in lecture. You may quote either of these theorems without proof unless the question specifically says otherwise. - (11 Feb) The HW#2 assignment is up, due a week from today.
- (27 Jan) The HW#1 assignment is posted, due a week from Friday.
- (20 Jan) The syllabus and course requirements and grading page are posted.
- (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 2014 version -- the web site for that is still up, here.

Last modified 12 May 2015