CS 150 --- Theory of Automata and Formal Languages
Fall 2008


 
Instructor: Gianfranco Ciardo (ciardo@cs.ucr.edu)
Lectures: Mon/Wed/Fri 4:10pm - 5:00pm, Room INTS 2130
Discussion: Thu 11:10am - 12:00pm, Room WAT 1117
Textbook: Introduction to Automata Theory, Languages, and Computation (3rd Edition), John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (Addison Wesley)
Instructor office hours: Tue/Thu 3:35pm - 5:00pm, Room EBUII 442
TA: Mohammad Farhan Habib (habib@cs.ucr.edu)
TA office hours: Tue 2:00pm - 4:00pm, Room EBUII 110
Final examination: Wed Dec 10, 2007, 7:00pm - 10:00pm
Prerequisites: CS 014; CS 111 or MATH 111; MATH 009C or MATH 09HC

Catalog description: A study of formal languages, including regular and context-free languages; computational models for generating these languages such as finite-state automata, push-down automata, regular expressions, and context-free grammars; mathematical properties of the language and models; equivalence between the models, and an introduction to Turing machines and decidability.

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!

After a lecture on basic background and introductory notions, the course can be divided into three main sections: regular languages, context-free languages, and Turing machines.


Attendance and basic etiquette

You are required to attend, follow, and actively participate in all lectures and discussions. All lectures, discussions, and exams start at the stated time. Avoid being late coming to class, as this is very disruptive.

You are requested to refrain from using electronic devices (laptops, cell phones, music players, etc.) during lectures, exams, and discussions. If, for some compelling reason, you need to be on call, be sure to put your cell phone in silent mode, and excuse yourself from the class if you need to take a call.

Analogously, when you come see me or the TA, please turn your cell phone off.


Homeworks

Weekly homework sets will be assigned (usually on Fridays) and will be due every Friday night at 11:59pm. Overall, they account for 50% of your grade. Both posting of the assignments and turn-in will be through Moodle.

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 homeworks, I am requiring you to typeset your homeworks in LaTeX, available on our Linux 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.

The students in the class are allowed to discuss the homework problems among themselves and with me and the TA, but not with anybody else. An empty hand policy must be observed when you meet with other classmates: you are free to discuss any aspect of the homework, but you must leave the meeting without 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), will be considered an act of cheating. 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 plagiarism.

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


Homework grading method

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. Occasionally there may be extra-credit problems, which you might attempt in order to boost your grade.

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.


In class examinations

I believe that exams should be administered to test your understanding, not your memorization, of the material. Hence, you can use your textbook and your class notes during in-class exams. However, you must check with me before consulting any additional references. Of course, no laptops, iPods, cell phones, pagers, or similar devices can be used during the duration of the exam.

There will be one in-class exam during the course, which accounts for 20% of your grade and a final exam covering the entire course material, which accounts for 30% of your grade.

You must do at least somewhat well in these in-class exams in order to pass the course. The exercises in these exams are very similar to those in the homeworks; thus, you should be able to gauge how you will do in the in-class exams by your comfort level in solving the homework exercises.


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.

 
FriSep26Background: set, relation, function, contradiction, induction.
MonSep29New concepts: languages, grammars, automata.
WedOct 1Regular expressions.
FriOct 3Deterministic finite automata (DFA).
MonOct 5Nondeterministic finite automata (NFA).
WedOct 8Equivalence of DFA and NFA.
FriOct10DFA minimization.
MonOct13Properties of regular languages.
WedOct15Pumping lemma for regular languages.
FriOct17Regular grammars. Review of regular languages.
MonOct20Context-free grammars (CFG).
WedOct22Parsing and ambiguity. Grammar reductions. Chomsky and Greibach Normal Forms.
FriOct24Nondeterministic pushdown automata (NPDA).
MonOct27Exercises on regular languages.
WedOct29In-class exam on Regular Languages.
FriOct31Relationship between NPDA and CFG.
MonNov 3Pumping lemma for context-free languages.
WedNov 5Deterministic pushdown automata. Properties of context-free languages.
FriNov 7Standard Turing machines. Turing's thesis and variations on Turing machines.
MonNov10Nondeterministic Turing machines.
WedNov12Universal Turing machine.
FriNov14Turing-acceptable and Turing-decidable languages. The halting problem.
MonNov17Exercises on context-free languages.
WedNov19In-class exam on Context-Free Languages.
FriNov21Reduction. Undecidable problems for recursively enumerable languages.
MonNov24Unrestricted grammars.
WedNov26Context-sensitive languages. Linear-bounded automata.
FriNov28Thanksgiving break.
MonDec 1Recursive and recursively-enumerable sets.
WedDec 3Post correspondence problem. Undecidable problems for context-free languages.
FriDec 5Review of the language hierarchy.
WedDec10In-class final exam on entire course material.


Last updated: September 24, 2008
Report suggestions and problems to ciardo@cs.ucr.edu
URL: http://www.cs.ucr.edu/~ciardo/teaching/CS150/CS150syllabus.html