Computer Sciences Dept.

CS 520 - Introduction to Theory of Computing

Fall 2006
The Unknown Leonardo

Course Description

This course provides an undergraduate-level introduction to the theory of computing. The objective is two-fold. First, gaining an understanding of the nature of computation, its capabilities and its limitations, and obtaining the ability to reason rigorously about them; second, acquiring the mathematical foundation for applications of these insights in other areas of computer science.

We will cover elements of automata theory and formal languages, computability theory, complexity theory, and cryptography. These topics have applications in algorithm design, programming languages and compiler construction, artificial intelligence, hardware and network protocols, and security.

Text

Michael Sipser, Introduction to the Theory of Computation, 2nd edition, PWS Publishing Company, 2005.

Prerequisites

Math 240 (Discrete Mathematics, especially proofs by induction and basic notions of set theory, logic, discrete probability theory, and graph theory), and CS 367 (Data Structures, especially familiarity with algorithms and their complexity). A self-calibration homework will be handed out in the first lecture and there will be a review session M 9/11, 7-9pm, in 1325 CS.

Course Work

  • Homework (50%). There will be an assignment every other week. Expect the problems to be challenging so start early. You are allowed to discuss the problems in group but you should write out the solutions on your own and give credit to your collaborators. No sources other than the course material, the instructor, the TA, and your fellow students in the course are allowed.

  • Exams: Midterm (20%) on W 10/18, 7:15-9:15pm, and Final (30%) on W 12/20, 10:05am-12:05pm. Both exams are closed book and closed notes.

Distinguished Lecture Series

This semester, the departmental Distinguished Lecture Series focuses on theory of computing. You are encouraged to attend those lectures. See our lecture schedule for the coordinates and the Computer Sciences calendar for more details.

References

The following books will be on reserve in Wendt library:

Preliminaries:

  • Kenneth Rosen, Discrete Mathematics and Its Applications, 5th edition, 2002. (2-hour loan)

Level of CS 520:

  • Michael Sipser, Introduction to the Theory of Computation, 2nd edition, 2005. (2-hour loan)

  • John Hopcroft, Rajeev Motwani, and Jeffrey Ullman, Introduction to Automata Theory, Languages, and Computation, 2nd edition, 2000.

  • Dexter Kozen, Automata and Computability, 1997.

  • Harry Lewis and Christos Papadimitriou, Elements of the Theory of Computation, 2nd edition, 1997.

More Advanced:

  • Christos Papadimitriou, Computational Complexity, 1994.

  • Uwe Schöning and Randall Pruim, Gems of Theoretical Computer Science, 1995.

 
Computer Sciences | UW Home