Back to the computer science and engineering home page.
Computer Science &
Electrical Engineering

Course Info
Homework Guidelines
Your Grades


Student Access

CS533 Automata and Formal Languages
Fall 2017


Peter Heeman

Monday/Wednesday 4:00pm-5:30pm

Gains Hall Room 47

3 credits

Course Information

This course covers the theoretic underpinnings of computer science. First, the course formalizes the notion of `computation’, using 3 models of computation of increasing power: finite automata, push down automata, and Turing machines. The course also explains the relationship between these models and different classes of languages: regular, context-free, recursive and recursively enumerable. These concepts form the core of both natural language processing and speech recognition. Second, using Turing machine, the course examines `computability’. The course explains techniques to prove whether a problem is computable or not, including that the halting problem is not computable. Third, the course examines which problems can be solved efficiently, namely in polynomial time. The course also characterizes a set of problems which are thought to take exponential time, but which might be solvable in polynomial time (whether P = NP).

Homework Guidelines

Homeworks are to done electronically, and emailed as a single pdf file or a single word file. Some of the problems require diagramts. These can be done via pencil-and-paper, and included in the submission. Critiques are due two days after the homework, after you have received the answer key. Include a critique for any question that you think you might have done wrong, or that where your answer needs to be clarified. Include your original answer, and include the critique after your answer, as a separate section. Here is what a sample homework/critique should look like: sample.pdf. Please format yours similarly. For those using latex, here is the latex file that was used to generate the sample: sample.tex. I use pdflatex as it can incorporate jpg files.


Assignments 60%
Midterm 20%
Final Exam 20%

Class Schedule

Below is a tentative vesion of the class schedule. I am making this available so that you can get an idea of what will be taught in the course. I am making tentative versions of the homeworks and the class lecture slides.

The textbook is Introduction to the Theory of Computation 3rd edition, by Michael Sipser.

Mon Sep 25 No class due to OHSU Orientation
Finite Automata
Wed Sep 27
Class 1
Lecture 1a Chapter 1: Finite Automata Homework 1
Mon Oct 2
Class 2
Lecture 1b Proof techniques
Wed Oct 4
Class 3
Lecture 1c Non-determistic Finite Automata Homework 2
Mon Oct 9
Class 4
Lecture 1d Regular Expressions
Wed Oct 11
Class 5
Lecture 1e
Lecture 1f
Pumping Lemma for non-Regular Languages Homework 3
Push-Down Automata
Mon Oct 16
Class 6
Lecture 2a Chapter 2: Context Free Grammars
Wed Oct 18
Class 7
Lecture 2b Designing CFG, Chomsky Normal Form, Nondeterministic pushdown automata Homework 4
Mon Oct 23
Class 8
Lecture 2c Equivalence of PDA and CFG
Wed Oct 25
Class 9
Continued Homework 5
Mon Oct 30
Class 10
Lecture 2d
Pumping Lemma for non-Context-Free Languages
Turing Machines
Wed Nov 1
Class 11
Lecture 3a Chapter 3: Turing Machines Homework 6
Mon Nov 6
Class 12
Lecture 3b Non-determinism
Wed Nov 8
Class 13
Midterm Review. Sample midterm. Answers.
Mon Nov 13
Class 14
Midterm Chapters 1-3
Wed Nov 15
Class 15
Lecture 4a Chapter 4: Decidability of DFA's and CFG's Homework 7
Mon Nov 20
Class 16
Lecture 4b
Lecture 5a
Enumerable sets and the Halting Problem
Chapter 5: Reductions
Wed Nov 22
Class 17
Lecture 5b Reductions on Computational Histories Homework 8
Mon Nov 27
Class 18
Lecture 7a Chapter 7: Time Complexity
Wed Nov 29
Class 19
Lecture 7b P and NP Homework 9
Mon Dec 4
Class 20
Lecture 7c NP Complete  
Wed Dec 6
Class 21
  Continuation Homework 10
Mon Dec 11
Class 22
Review Session
Wed Dec 13
Class 23


Learning from and with each other is encouraged. However, interacting so as to avoid learning is not tolerated. Any discussion in which no personal notes (or programs) are taken in, and none are taken out, are fine. From such discussions, students should learn the material well enough to construct their notes on their own afterwards. If you are in doubt, the onus is you to discuss the sitation with the professor before hand.

Student Access

Our program is committed to all students achieving their potential. If you have a disability or think you may have a disability (physical, learning, hearing, vision, psychological) which may need a reasonable accommodation please contact Student Access at (503) 494-0082 or e-mail to discuss your needs. You can also find more information at < href=""> Because accommodations can take time to implement, it is important to have this discussion as soon as possible. All information regarding a student’s disability is kept in accordance with relevant state and federal laws.