CS 321 Theory of Computation (Undergraduate)
School of Electrical Engineering and Computer Science
Oregon State University
Corvallis, OR 97331
Instructor: Liang Huang (KEC 2069)
Class Time: MWF 12-12:50pm, Location: Cordley 1109
TAs: Kai Zhao, Mingbo Ma,
and Dezhong Deng (KEC 4130).
TAs: M 5-6pm, T 5-6pm, W 4-5pm and F 3-3:30pm.
Liang: T 3:30-4pm, Th 11-11:20am, and F 2:30-3pm.
Recitations: Th 8-9pm in KEC 1001.
We use Canvas
for discussions and grades.
For technical questions (e.g., HW), first check if the same question has been asked on Canvas;
if not, ask it there (we monitor the discussions).
You will be rewarded for answering questions on Canvas.
For non-technical questions (e.g., grading), email email@example.com
which will reach the three of us.
If you have a copy of Linz, you don't need to buy Sipser.
- Linz: An Introduction to Formal Languages and Automata, 5th edi., 2012 (4th edition is OK).
- Hopcroft, Motwani, and Ullman: Introduction to Automata Theory, Languages and Computation, 3rd edi., 2006.
- Lewis and Papadimitriou: Elements of the Theory of Computation, 2nd edi., 1999
- Kozen: Automata and Computability, 1997
Learning Objectives of the Course:
- Design deterministic and non-deterministic finite state automata,
and regular expressions; prove their correctness, and convert from one
to the other.
- Design grammars for context-free languages, push down automata,
convert one to the other.
- Describe the properties of regular and context-free languages and
use them to decide if a language is regular or context-free.
- Design Turing Machines for problems. Show the equivalence between
different versions of Turing Machines.
- Prove decidability and undecidability of languages.
- Introduction (chapter 0)
- Regular languages (chapter 1)
- Context-free languages (chapter 2)
- The Church-Turing Thesis (chapter 3)
- Decidability (chapter 4)
Please note that all homework should
be your own work. Any collaboration that requires written
communication is forbidden. You should also not copy
answers from books or internet resources.
- Weekly Quizzes (5%x8=40%)
- Weekly Homework (10%) -- graded for completeness but not correctness; no late submission is accepted.
- Midterm (20%)
- (Optional) take-home midterm (5%)
- Final Exam (22%)
- Class Participation (3%) -- both in class and on canvas; helping your peers will be rewarded.
To do well in this course:
- Don't miss the class.
- Read the text book regularly.
- Do the homework completely and on time.
- Study the solutions for problems answered in the book.
- Get help from me when needed.
You are encouraged to study together and discuss general strategies for
solving problems but not at the level of written solutions.
Please read the
department's academic dishonesty policy for more details.
You should not use any web sources for answering the homework
questions unless explicitly instructed to do so.