CS 500: Goals and Syllabus

Goals

  • Thorough understanding of several models of computation, their purpose, and their use in formal arguments.
  • Exposure to fundamental results in complexity theory and building of intuition regarding limitations of computing.
  • Skills at manipulating formal systems as used in CS theory, particularly in developing and writing up proofs.
  • Development of a certain ingenuity required in theoretical areas for developing new algorithms or proofs.
  • Preparation for follow-up courses in CS theory and in algorithm design (including the learning of a number of fundamental results).
  • Syllabus

    Certain topics are implicit in the detailed syllabus below, but essential:
  • Diagonalization arguments.
  • Model equivalence
  • Model-independence. In particular, when considering the equivalence of TMs and RAMs (or other models) with space and time measures, why do we use polynomial ``fudge'' factors for time but only constant factors for space.
  • Topics will be as follows
  • Introduction: on the need for formal models of computation (1 week).
  • Finite Automata and Regular Languages (4 weeks). DFAs, NFAs, and their equivalence; regular expressions and their equivalence to FAs; pumping lemma and closure properties.
  • Turing Machines and RAMs (2 weeks). TMs, NTMs, and their equivalence; RAMs and their equivalence to TMs.
  • Elementary Computability Theory (3 weeks). Primitive recursive functions; partial recursive function; arithmetization; universal machines; the smn theorem; recursive and r.e. sets; Rice's theorem and the recursion theorem.
  • Complexity Theory (3 weeks). Time and space measures, relations between them, cost accounting on RAMs and TMs, the hierarchy theorems, relationship between deterministic and non-deterministic time and space, the basic complexity classes (L, NL, P, NP, PSPACE, EXP).
  • Reductions, Hardness, Completeness (3 weeks). Types of reductions; hardness, easiness, equivalence, and completeness; completeness for NP, P, others (Cook's theorem and various NP-completeness results on problems with graphs, sets, strings, others; P-complete problems); Turing reductions among optimization, search, and decision problems; reductions from approximation versions to exact or decision versions.
  • Back to CS 500 home page