CS 4313: Automata, Computability, and Formal Languages

Syllabus and Assignments


Homework 1, Homework 2, Homework 3, Homework 4, Homework 5, Homework 6.

Homework 7, Homework 8, Homework 9, Homework 10, Homework 11.


Tar file containing NFA simulator. The individual files are: README, nfa, nfa1, nfa2, and nfa3.

A Perl program for evaluating regular expressions.

Tar file containing CFG parser. The individual files are: README, cfg, g1, g2, g3, and g4.

Tar file containing Turing machine simulator. The individual files are: README, tm, mab, m2x, and mincr.

Turing machine for binary addition.

Turing machine for substring testing.

Notes (subject to change)

1.2. Languages, Grammars, and Automata.

2.1. DFAs, 2.2. NFAs, 2.3. Equivalence of DFAs and NFAs.

3.1-2. Regular Expressions, 3.3. Regular Grammars.

4.1-2. Properties of Regular Languages, 4.3. Pumping Lemma.

5.1. Context-Free Grammars, 5.2. Parsing, Ambiguity, and the CYK Algorithm.

Handout for NPDA transition graphs, 7.1. Pushdown Automata, 7.2. NPDAs = CFGs.

8.1. Pumping Lemma for CFLs.

9.1. Turing Machines, 9.2. Turing Machines for Complicated Tasks, 9.3. Turing's Thesis.

10.3. Nondeterministic TMs, 10.4. Universal TMs.

11.1. Recursive and Recursively Enumerable Languages, 11.2-4. Grammars for TMs.

12.1. Undecidability of the Halting Problem, 12.2-4. More Undecidable Problems.

14.1-2. Complexity Theory, 14.3. Complexity Classes, 14.4. P and NP.

Back to Tom Bylander's Home Page