CS 28000 Introduction to Formal Languages
Course Mechanics
Course Overview
Assignments and Handouts
Informal lecture notes
Read Ahead
Course Mechanics
Instructor
Janos Simon
165 Ryerson
2-3488
simon AT cs DOT uchicago DOT edu
Office Hours: TBA
Teaching Assistant
Parinya Chalermsook
256 Ryerson
Office hours: Wed 3-4.
Textbook
Dexter Kozen's Automata and Computability contains almost all the
material that we will cover. The book is clear, concise, and precise without
being pedantic.
It is, however, a set of lecture notes, not a detailed book. Details
are sometimes omitted, proofs sketched, etc. If you feel unsure about your
math, you might want to look at the text
Aho, Motwani and Ullman: Introduction to Automata Theory, Languages, and Computation: 2nd edition. Addison Wesley. 2001.
It goes much slower, has detailed and elementary explanations of what
proofs are, and so on. It covers more material than we will, but in less depth.
Read the first chapter in Kozen, for a quick explanation of what formal languages are and
what they are good for.
I will try to cover in the course
- Finite Automata
- Deterministic
- Nondeterministic
- Regular Expressions
- Right-linear grammars
- Algebraic characterizations: Myhill-Nerode Theorem
- State minimization
- Languages that cannot be recognized by finite automata
- Applications and extensions: pattern matching, patterns in lex, and perl
- Probabilistic finite automata.
- Pushdown Automata
- Models: deterministic, nondeterministic; acceptance modes.
- Context free languages
- Parsing (basic notions)
- Turing Machines
- Justification (Turing's argument)
- Model Variants
- Universal Turing Machines
- Undecidability
- The Chomsky Hierarchy
- Applications and Extensions
This is not a rigid scheme. I reserve the right to include interesting topics
not in the list, or omit topics.
Evaluation/Grading
There will be a midterm, and weekly problem sets.
Some of the problems will be challenging. There will also be 'exercises', that
you are encouraged to do to
help you master the material, but you should not hand in
(we will, however, be happy to discuss your solutions.)
Class will go at a quick pace. Ask for help if you are lost!
Assignments and Handouts
Assignments are due in class the week after they were assigned.
Assignments given so far.
First Assignment. Due Monday, October 9.
Second Assignment. Due Monday, October 16.
Third Assignment. Due Monday, October 23.
Fourth Assignment. Due Monday, November 6.
Fifth Assignment. Due Monday, November 13.
Sixth Assignment. Due Wednesday, November 22.
Seventh Assignment. Due Friday, December 1st.
Extra Reading
On
Computable Numbers, With an Application to the
Entscheidungsproblem by Alan Turing. Proc. London Math. Society 2(42) 1936
230-265; "A correction" (id) 43 544-546.
These are mostly notes of what to cover on a given class.
They are not lecture notes, and I do not expect them to be completely
accurate, except to know roughly what happened at a lecture you missed
or dozed through.
Click here for links to the lectures
given so far.
Please report any mistakes, inaccuracies or other problems with these
notes.
Click here for a preview of the next
lecture. It has the sections of the textbook I plan to cover. Reading
ahead may make the lecture clearer. Please note that I am not rigid
about what material needs to be covered in a given lecture. Depending
on class response, I may slow down, speed up, or cover tangential
material, so there is no guarantee that my plans reflect the material
that will be actually covered in class.
http://people.cs.uchicago.edu/~simon/