CSE 303 Back to CSE Courses

Course CSE303
Title Introduction to the Theory of Computation
Credits 3
Course Coordinator Ker-I Ko
Current Catalog Description

An introduction to the abstract notions encountered in machine computation. Topics include finite automata, regular expressions, and formal languages, with emphasis on regular and context-free grammars. Questions relating to what can and cannot be done by machines are covered by considering various models of computation, including Turing machines, recursive functions, and universal machines.

Prerequisite

CSE 214 and CSE 213 or 215 and CSE major or permission of instructor

Course Outcomes
  • An ability to define and use abstract models of computation such as finite and push-down automata, and analyze their relative expressive power.
  • An ability to define, use, and convert between abstract machine models and formal languages.
  • Knowledge of the power and inherent limitations of algorithmic computation.
Textbook
  • Harry R. Lewis and Christos H. Papadimitriou, Elements of the theory of computation,
    Prentice Hall. (Second Edition, 1998).
  • Supplementary Material: Ding-Zhu and Ker-I Ko, Problem Solving in Automata, Languages and Complexity, Wiley.
Major Topics Covered in Course
  • Strings and languages
  • Regular languages, regular expressions and finite automata
  • Context-free grammars, parsing, pushdown automata
  • Turing machines, unrestricted grammars, Church-Turing thesis
  • Introduction to recursion theory, universal Turing machine, halting problem, undecidability
Laboratory Projects

No large scale projects are required.

Course Webpage /~cse303
Department of Computer Science • Stony Brook University, Stony Brook, NY 11794-4400 • 631-632-8470 or 631-632-8471