CS375: Automata, Formal Languages, and Computational Complexity
Fall 1999   Prof. L. Pitt   1:00-1:50 MWF  1310 DCL

Course Information


Professor: Leonard Pitt , 2103 DCL, 244-6027, pitt@cs.uiuc.edu
Office Hours: Mondays and Wednesdays right after class, and by appointment.

TA: Holly Wilper, 1213 DCL 333-1463, h-wilper@uiuc.edu
Office Hours: Th 2:00 - 4:00 PM, and Fridays 9:00 - 11:00 AM, and by appointment.

Course Theme

This course will focus on fundamental mathematical models of computation. We will be interested in both the inherent capabilities and limitations of these computational models as well as their relationships with formal languages. Rigorous arguments and proofs of correctness will be emphasized. Particular topics to be covered include:


The official course text is Elements of the Theory of Computation - 2nd. ed.; Harry R. Lewis, Christos H. Papadimitriou; Hardcover, 352 pages; Prentice-Hall, August 1997.

Another useful text, that is also a classic, is Introduction to Automata Theory, Languages, and Computation; John E. Hopcroft, Jeffrey D. Ullman; Hardcover, 418 pages; Addison-Wesley, April 1979.

You will also find another text useful later in the course: Computers and Intractability: A Guide to the Theory of NP-Completeness; Michael R. Garey, David S. Johnson; Paperback, 338 pages; W. H. Freeman & Co., June 1979.

Lecture Notes

Copies of transparencies will be available sometime next week at a local copy shop. Watch here for further details.

Class Web-info

The class homepage is http://www-courses.cs.uiuc.edu/~cs375.
All handouts and important information will be posted there.

Class Newsgroup

The class newsgroup is uiuc.class.cs375. You are encouraged to use the newsgroup to initiate and participate in discussion related to the class. Important information and late-breaking announcements may be posted to the newsgroup. Therefore, it is important that you read the postings there regularly.


Most documents will be "handed out" on-line. However, occasionally a physical copy will be given out. If you do not receive one, extras will be kept on a rack in the hallway near the TA's office.

On-line Grade Information

We will be using the Campus Gradebook program to record your homework, exam, and composite scores. With this program, you can check up-to-date information about your grades from any computer on the campus network. The program is available for the Mac and PC platforms, and also is already set up on publicly available machines.


There will be problem sets roughly every week, usually released on a Friday, and due by the end of class on Friday of the next week. You may hand the assignment in on the due date, or you may take an automatic extension by handing in the assignment on the specified extended due date and time (usually the following Monday by the end of class). No late assignments handed in after the extended deadline will be accepted. It is suggested that you do not get in the habit of always using the automatic extension, otherwise, if a real situation arises (illness, other exams, car trouble), you will have no extension to fall back on. Requests for an additional extension will almost always be denied.

While you will get the most out of the homeworks if you solve them yourself, in this course you are allowed to discuss the problems with your classmates, and to work together. If you choose to do so, please indicate the name(s) of the people with whom you have worked. Consulting with students outside of the course, or using other documents, books, past notes or solutions, etc., is expressly forbidden. Refer to the Campus Code regarding academic integrity.

Please read the Guidelines for Written Homeworks before doing the first assignment.


There will be two midterm exams, and one final exam (12/13/99; 1:30 - 4:30 PM). The midterm exams will probably be scheduled for the evening. Details will be announced via the class homepage soon. You will be responsible for all material covered in lectures, homeworks, and assigned readings. There will be an optional review session conducted before each midterm and final exam.

Grading Policy

Tentative weighting scheme (the instructor reserves the right to make adjustments to these weights based on his a posteriori evaluation of the relative difficulty and fairness of the exams and homeworks). Homeworks 25%, Midterm Exams 40% (20% each), Final Exam 35%.

NOTE In order to pass the class, you must do sufficiently well on each of the categories in the table above. In particular, since doing the homeworks is perhaps the best way to learn the material of the course, credit will not be given to those who skip many homeworks and rely on stellar exam scores.


If you have a question or complaint about the way a homework or exam problem was graded, then you should either explain what it is on a separate piece of paper and give it to the TA along with the assignment or, better yet, come into office hours and get it straightened out then. We want everyone happy and satisfied, but we can't do much in the couple of minutes before and after class.

Is This Course For You?

If you have taken CS 273, CS 373, or Math 319, then you have fulfilled the prerequisite for this course. More important than any course however, is sufficient mathematical maturity to understand the difference between handwaving and proving. (Handwaving is what I do on the board; proving is what you do on your homeworks). Some of the problems will be difficult, and some of the homeworks may require a significant amount of time. The subject matter ranges from beautiful (undecidability, NP-completeness) to downright grungy (some simulations of machines by grammars). The material is not as practical as say, the material covered in CS 373; If you are an applied masters student, or an undergraduate who is going to do only one course in theory of computation, then CS 373 is probably a better choice, unless you specifically want the formal language background for doing programming language/compiler based research. If on the other hand, you want a basic understanding of some of the fundamental definitions of computation, and of the inherent limitations of these abstract computers (and of any computing devices), then this course is for you.

How To Get The Most Out Of This Course

Attend lectures. Read the book. Refer to the course notes. If you have trouble solving a homework problem, try doing some easier related problems first. Go over the printed solutions when they become available, and make sure you understand them. Go to the TA or professor to discuss any misunderstandings you may have. If you understand all homeworks and solutions, you will probably do well on the exams.