Computer Science 423/523
Finite Automata

Weizhen Mao
Department of Computer Science
College of William and Mary

General Information | Schedules | Announcements | Lectures | Assignments | Exams

General Information

Instructor: Weizhen Mao, McGl 114, 221-3472,

Lectures: MWF 9:00-9:50 am, James Blair 223.

Office hours: MW 10:00-11:00 and F 1:30-2:30

Teaching assistant and office hour: TBA,

Textbook: Micheal Sipser, Introduction to the Theory of Computation, 3rd edition, Cengage Learning, 2013. Older versions are acceptable.

Course web page:

Undergraduate students enrolled in CSci 423 must have taken and successfully passed CSci 303, Algorithms, and have a background in Linear Algebra. Graduate students enrolled in CSci 523 must have knowledge of Linear Algebra and Algorithms.

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

Course description:
The following topics will be covered, either briefly or in detail, in the course: (1) Automata Theory: Finite automata and pushdown automata; (2) Computability Theory: Turing machines and undecidability; (3) Complexity Theory: NP-completeness and intractability.

Homework assignments:
A problem set of 3-5 problems, mostly chosen from the textbook, will be assigned every week. There are about 12 such assignments, accounting for 30% of your final grade.
In working on homework assignments, 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 assigned. 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 an assignment is due!
One of the goals of this course is to learn how to write high-quality technical prose. To improve the terseness and readability of your homework solutions, I am requiring you to typeset your homework in LaTeX, a standard typesetting tool in the CS profession. I will provide examples of LaTeX files for you to learn how to format particular equations. Pictures, diagrams, and graphs may be created using xfig, a drawing tool that can generate "eps" or "pdf" files, which are then included into LaTeX.
Working on a problem set, you are allowed to discuss problems with your fellow students in the same class. An empty hand policy must be observed when you meet with your classmates. That is, you are free to discuss any aspect of the homework, but you must leave the meeting without any record (on paper, 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 assignment. Also in your homework write-ups do not forget to list the names of your collaborators for each problem.
In addition to consulting your classmates, 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 answer to a problem, 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 homework except for justifiable reasons, such as an illness, family emergency, or travel for job interviews and conferences. Never use the workload of another class as a reason to try to get an extension of this class.

In-class examinations:
There will be a few in-class quizzes throughout the semester, accounting for 5% of your final grade.
There will be two in-class examinations: the midterm examination and the final examination. Both examinations are open-textbook and open-notes.
The midterm examination will be during the regular class time on Friday, October 10, before the Fall Break. It covers the course materials up until the Fall break and accounts for 20% of your final grade.
The final examination will be on Thursday, December 11, from 9:00 to 12:00. It covers the entire course materials and accounts for 40% of your final grade.

Course portfolio:
Technical writing is an essential skill in your future career. In grading your homework solutions, suggestions and comments may be given to you on how to improve the presentation in your solutions.
By the last day of classes, each student is required to turn in a portfolio consisting of all the original graded homework assignments, plus a corresponding set of revised homework assignments. Since the solutions to most, if not all, hard homework problems are eventually discussed in class, I expect to see correct solutions in the revised homework solutions. Therefore I judge them mostly on the basis of how much their presentation is 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. In addition, your portfolio should also include all writing assignments that are given throughout the semester. Your portfolios will be returned to you on/before the day of the final exam.
Evaluation of your portfolio together with your attendance record (gathered on random days) account for 5% of your final grade.

Grading policy:
Your final grade (in points) will be calculated by the following formula:
Final letter grades will be given based on the standard scale, i.e., 90 or above: A; 80-89: B; 70-79: C; 60-69: D; and below 60: F. However, I reserve the right to assign curved grades based on the performance of the whole class.

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

Last modified: August 20, 2014