Computer Science 423/523 
Finite Automata and Theory of Computation 
Fall 2001


Instructor: Gianfranco Ciardo
Class meetings: Tue/Thu 12:30 p.m. - 1:50 p.m., Room: Blair 223
Textbook: An Introduction to Formal Languages and Automata, 3rd Edition, P. Linz (Jones and Bartlett)
Office hours: Tue/Thu 2:00 p.m. - 4:00 p.m., Room: McGlothlin-Street Hall 117
Final examination: Friday, December 14, 2001, 8:30 a.m. - 11:30 a.m.
Prerequisites: Undergraduate students enrolled in CSci 423 must have taken and successfully passed CSci 303, Algorithms, and Math 211, Linear Algebra. Graduate students enrolled in CSci 523 must have a knowledge of linear algebra and data structures.
The contents of this course are fundamental to computer science. The course is typically considered challenging, but also highly rewarding. In the homeworks, you must think logically, but often creatively. The best way to do well in this course is to attack each problem set as soon as it is handed out. After you consider various approaches to a problem for a while, you might want to put it down and come back to it a day or two later. The right solution might just jump at you. Above all, do not expect to be able to start the night before a homework is due!

Satisfaction of writing requirement

For undergraduate students, CSci 423 can be used to satisfy the concentration requirement. To this end, students must register for CSci 423W in addition to CSci 423 (this is not automatic!) and earn a grade of C- or better in CSci 423.

Homeworks

Homework sets are due every Thursday at 5:00 p.m., in my office. Overall, they account for 50% of your grade.

One of the goals of this course is to teach how to write high-quality technical prose. To improve the terseness and readability of your homeworks, I am requiring you to typeset your homeworks in LaTeX, available on our Unix system. I provide examples of LaTeX files for you to learn how to format particular equations. Pictures, diagrams, and graphs can be drawn using tgif or any other drawing tool that can generate ``eps'' files, which are then included into LaTeX. Homeworks should be printed single-sided, and stapled in the upper left corner.

Within the first week, I divide the undergraduate class into groups of two, or possibly three, students each. These groups remain fixed for the entire duration of the course. The students in a group are allowed to discuss the homework problems among themselves and with me, but not with anybody else. An empty hand policy must be observed when you meet with other members of your group: you are free to discuss any aspect of the homework, but you must leave the meeting without any any record (on paper, tape, or other means) of these discussions. This is because the actual writing of the detailed homework answers must be an individual activity, so that each student can receive an individual grade for each homework.

Unless stated otherwise, sharing of information in permanent format (such as accessing someone else's files, hardcopy outputs, or handwritten notes), even if between members is the same group, will be considered a violation of the Honor Code. If you have even the slightest doubt about whether a certain activity is admissible, ask me before you do it!

You are of course allowed, actually encouraged, to consult other reference material in addition to your textbook and class notes. However, if you used this reference to derive the anser to an exercise, you should give it proper credit in your write-up. In no case you should copy verbatim from a reference without proper attribution, as this is considered plagiarism.

I do not accept late homeworks except for justifiable reasons, such as an illness with a doctor's written note.


Homework grading method

For graduate students, each problem carries a weight (usually 10, 25, 50, 75, or 100 points) and students are required to solve all problems. The grade on each problem is a number between 0 and its weight. The overall grade for the homeworks as a whole, on a scale of 0 to 1, is determined by summing all individual grades and dividing the result by the sum of all weights.

For undergraduate students a similar policy holds, but the total weight required might be less. For example, HW3 might consist of four problems with weight 100, hence the total weight for HW3 is 400, but the undergraduate students might be required to reach weight 300. Hence, to obtain a full score, you need to solve three of the four problems perfectly, or obtain a 75 on each of the four problems, or any other combination resulting in 300. If you obtain a score higher than the required weight, it is counted in your average, so don't worry about scoring too high! My goal is to encourage each of you to at least attempt the solution of every problem.

While I may choose to give you partial credit on an exercise, more often than not an answer is either ``right'' (perhaps with minor notational errors or problems that can be easily fixed) or ``wrong'' (completely incorrect because of some fundamental flaw in your reasoning). Thus, the grade you receive on each individual exercise is usually either close to the maximum or to zero. However, there are several exercises in an homework set, so the overall grades can, and usually do, span a wide range.


Student portfolio

Technical writing is an essential skill in your future career, regardless of whether you are an undergraduate or a graduate student. Therefore, I make my best efforts to give you suggestions on how to improve notation and presentation in your homeworks.

By the last day of classes, each student is required to turn in a portfolio consisting of all the original graded homeworks, plus a corresponding set of revised homeworks. Since the solution to most, if not all, homework problems is eventually discussed in class, I expect to see correct solutions in the revised homeworks. Therefore I judge them mostly on the basis of how much their presentation improved with respect to the original version. Of course, if I did not find any problem initially, your revised version can coincide with the original one. Your portfolios are returned to you on the day of the final exam.

Reading and commenting other student's answers to the homeworks is an excellent way to improve your own ability to write technical prose. Hence, you are allowed to distribute a hardcopy of any revised homework to the members of your group, who will then be able to write comments on it before returning it it to you. Of course, you can do this only after each homework has been graded and returned. This is an exception to the rule about the exchange of information in permanent format.

Evaluation of your portfolio accounts for 5% of your grade.


In class examinations

I believe that exams should be administered to test your understanding, not your memorization, of the material. Hence, for all in-class exams including the final exam, you can use your textbook and your class notes (but you must check with me before you consult any additional reference during an exam).

After a couple of lectures on basic background and introductory notions, the course can be divided into three main sections: regular languages, context-free languages, and Turing machines. There will be one 80-minute exam focussing on regular and context-free languages. It is scheduled for Thursday, November 1, 2001, 12:30 - 1:20 p.m. and accounts for 15% of your grade. The final exam covers the entire course material. It is scheduled for Monday, December 14, 2001, 8:30 - 11:30 a.m. and accounts for 30% of your grade.


Final grade policy

An overall grade of at least 90% results in a final grade A.
An overall grade of at least 80% but less than 90% results in a final grade B.
An overall grade of at least 70% but less than 80% results in a final grade C.
An overall grade of at least 60% but less than 70% results in a final grade D.
An overall grade of less than 60% results in a final grade F.

I reserve the right to raise the final grade, but not to lower it: if your overall grade is 89%, I might decide to give you an A- or a B+, but if it is 80% you are guaranteed at least a B.


Detailed schedule

This schedule is not written in stone, deviations from it may occur over the course of the semester.
Intro 1 Thu 8/30 Background review: set, relation, function, contradiction, induction.
Intro 2 Tue 9/4 Languages, grammars, automata.
Reg. 1 Thu 9/6 Regular expressions. Deterministic finite automata (DFA).
Reg. 2 Tue 9/11 Nondeterministic finite automata (NFA).
Reg. 3 Thu 9/13 Equivalence of DFA and NFA.
Reg. 4 Tue 9/18 DFA minimization.
Reg. 5 Thu 9/20 Properties of regular languages.
Reg. 6 Tue 9/25 Pumping lemma for regular languages.
Reg. 7 Thu 9/27 Regular grammars.  Review of regular languages.
CFL 1 Tue 10/2 Context-free grammars (CFG). Parsing and ambiguity.
CFL 2 Thu 10/4 Grammar reductions. Chomsky and Greibach Normal Forms.
CFL 3 Tue 10/9 Nondeterministic pushdown automata (NPDA).
CFL 4 Thu 10/11 Relationship between NPDA and CFG.
Tue 10/16 Fall break
CFL 5 Thu 10/18 Deterministic pushdown automata.
CFL 6 Tue 10/23 Pumping lemma for context-free languages.
CFL 7 Thu 10/25 Properties of context-free languages.
CFL 8 Tue 10/30 Examples of context-free and non-context-free languages.
Thu 11/1 In-class examination on regular and context-free languages.
Turing 1 Tue 11/6 Standard Turing machines. Accepters, transducers, and function computers.
Turing 2 Thu 11/8 Turing's thesis and variations on Turing machines.
Turing 3 Tue 11/13 Nondeterministic Turing machines. Universal Turing machine.
Turing 4 Thu 11/15 Turing-acceptable and Turing-decidable languages. The halting problem.
Turing 5 Tue 11/20 Reduction. Undecidable problems for recursively enumerable languages.
Thu 11/22 Thanksgiving.
Turing 6 Tue 11/27 Unrestricted grammars.  Context-sensitive languages.
Turing 7 Thu 11/29 Linear-bounded automata.  Recursive and recurvely-enumerable sets.
Turing 8 Tue 12/4 Post correspondence problem. Undecidable problems for context-free languages.
Turing 9 Thu 12/6 Recursive functions. Minimalization

Students with disabilities

If you have a disability that may affect your participation in this course and wish to discuss academic accommodations, please contact me as soon as possible.


Last updated: August 30 2001. Report suggestions and problems to: ciardo@cs.wm.edu
URL: http://www.cs.wm.edu/~ciardo/teaching/CSci523/CSci523Syllabus.html