CMSC452 - Elementary Theory of Computation

From CS 400 Level Course Wiki

Course Information
Given a problem, how hard is it? This is a profound question that permeates all of computer science. We explore this question with an eye towards proving what computers CANNOT do, or CANNOT do with some bound on time or space or some other resource. This question has been the source of may GREAT IDEAS in computers science!

Instructor Section Day & Time Location
William Gasarch 0101 TuTh 11:00AM - 12:15PM IRB 2107

Course Prerequisite(s)
Prerequisite: Minimum grade of C- in CMSC351; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.

Informal prerequisites: You liked CMSC250!

Class Webpage
Spring 2017

Hours Per Week


Languages Used


Recommended Prior Experience


Projects, Exams, or other Assessments
HW 20%- there will be about 10 of these
Two Projects, 10 % each so 20%
Midterm 30%
Final 30 %
These are all approx

Course Topics
1) Conquering infinity: Countable and uncountable sets. Mention ind of CH from ZFC. (1 week)

2). Regular Languages: DFA’s, NFA’s, Regular expressions, pumping lemma, applications to pattern matching. GREAT IDEA: A simple model of computation that is surprisingly powerful. (3 weeks)

3. P and NP: Turing Machines, Cook-Levin Theorem (SAT is NP-complete). Reductions. Some Complexity Theory. Ways to prove that a problem probably does not have a fast exact solution. Ways around NP-completeness. Mention other classes above NP. GREAT IDEA: Being able to prove that some problems DO NOT have fast algorithms. (3 weeks)

4. The power of randomness: Comm Complexity, Poly Identity testing, Interactive proof systems. GREAT IDEA: Randomness is a surprisingly powerful computational aid. (2 weeks)

5 . Decidable and enumerable Languages: Turing Machines and the HALTING problem. Ways to show that some problems are undecidable! Mention Hilbert’s 10th problem and Godel’s theorem. GREAT IDEA: There are some problems that cannot be solved AT ALL. (2 week)

7. Optional Topics: Zero Knowledge, PAC learning, Byz Generals problem, Property Testing, (Note- those topics may be put into the section on Randomness), Cryptography