CS 365 | SCS | UW

Revised August 13, 2014

CS 365: Models of Computation


Watch a video introduction to this course on YouTube.

General description

This course provides accelerated coverage of the material from CS 360 including finite automata and regular languages, context free grammars and pushdown automata, Turing machines, and undecidability. The course also covers topics from complexity theory including time and space complexity, hierarchy theorems, and complete problems for various classes.

Logistics

Audience

  • CS major students

Normally available

  • Winter

Related courses

  • Pre-requisites: CS 240, 241, 245, MATH 239 or 249
  • Successors: CS 462
  • Anti-requisites: CS 360

CS 365 may be substituted for CS 360 in any degree plan or for pre-requisite purposes.

For official details, see the UW calendar.

Software/hardware used

  • None

Typical reference(s)

  • Introduction to the Theory of Computation, third edition, Sipser, Thomson Course Technology, 2012

Required preparation

At the start of the course, students should be able to

  • Understand what a proof is
  • Create proofs by induction

Learning objectives

At the end of the course, students should be able to

  • Describe how a real computer can be modeled mathematically by a theoretical computer in many different ways
  • Explain what a formal language is and how it corresponds to a computational decision problem
  • Describe regular languages in two different ways (automata and regular expressions)
  • Describe context-free languages in two different ways (grammars and pushdown automata)
  • Prove languages regular and non-regular, context-free and non-context-free, recursive and non-recursive, recursively enumerable and non-r.e.
  • State the Church-Turing thesis
  • Explain what nondeterminism is and how it is used
  • Explain what a Turing machine is and create simple Turing machines to solve problems
  • Describe the fundamental limits to computation (computable versus uncomputable)

Typical syllabus

Finite automata (6 hours)

  • Equivalence of NFAs and DFAs
  • Equivalence with regular expressions
  • Pumping lemma and applications

Context-free grammars (4 hours)

  • Pumping lemma for CFLs and applications
  • Equivalence with pushdown automata

Turing machines and undecidability (8 hours)

  • Church-Turing thesis
  • Halting problems
  • Reductions to prove undecidability

Time complexity (3 hours)

  • Robustness
  • Classes P and NP
  • Sketch of NP-completeness

Space complexity (6 hours)

  • Savitch's Theorem
  • PSPACE, L, NL
  • Complete problems and closure properties

Intractability (6 hours)

  • Diagonalization and hierarchy theorems

Advanced topics (3 hours)

  • Various topics chosen by the instructor, such as probabilistic or parallel complexity classes