CIS 262: Automata, Computability, and Complexity
Fall 2009, University of Pennsylvania


Introduction

This course offers an introduction to the science behind computing by stuying computation abstractly without worrying about specifics of programming languages and/or computing platforms. In particular, we will study (a) finite automata that capture what can be computed using constant memory, and give the class of regular languages useful for pattern matching languages; (b) context-free grammars that faciliate declarative specifications of language syntax, and the associated operational model of pushdown automata; (c) the universal computational model of Turing machines, and the inherent limits of what can be solved on a computer (undecidability), and (d) the notion of computational tractability (which problems can be solved in polynomial-time), and the million-dollar P vs NP question. The course also emphasizes rigorous thinking and mathematical proofs.

Logistics


Textbooks

Occasionally, we will cover some topics not discussed in the text, or present a topic in a manner significantly different compared to the text. In such acases, course notes will be distributed in class and posted on this page.

Grading

Grades will be based on

Tentative Schedule


Notes


Maintained by Rajeev Alur