CS375: Automata, Formal Languages, and Computational Complexity

Fall 1999 Prof. L. Pitt 1:00-1:50 MWF 1310 DCL
** Course Information **

### Staff

** 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:
- Finite automata, regular languages, and regular grammars.
- Determinitic and nondeterministic computations on various automata.
- Context free grammars, languages, and pushdown-automata
- Turing machines, Church's thesis, and undecidable problems
- Computational complexity, polynomial-time reductions,
NP-completeness, and Cook's theorem.

### Textbook

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.

### Handouts

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.

### Homework

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.

### Examinations

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.

### Regrades

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.