CSCI 3434: Theory of Computation


Relevant Textbooks


Course Objectives

The objective of this course is provide an introduction to the theory of computation covering the following three branches of theoretical computer science:
  1. Automata Theory
    • Formalization of the notion of problems via formal languages
    • Formalization of the notion of computation using "abstract computing devices" called automata
    • Understanding a hierarchy of classes of problems or formal languages (regular, context-free, context-sensitive, decidable, and undecidable)
    • Understanding a hierarchy of classes of automata (finite automata, pushdown automata, and Turing machines)
    • Understanding applications to pattern matching, parsing, and programming languages
  2. Computability Theory
    • Understanding Church-Turing thesis (Turing machines as a notion of "general-purpose computers")
    • Understanding the concept of reduction , i.e., solving a problem using a solution (abstract device) for a different problem
    • Understanding the concept of undecidability , i.e., when a problem can not be solved using computers
  3. Complexity Theory
    • Complexity classes : how to classify decidable problems based on their time and space requirements
    • Complexity classes P and NP
    • When a problem is called intractable (NP-completeness)
    • Using reductions to prove problems intractable

Topics Covered

  1. Regular Languages (3-4 weeks)
    • Regular expressions
    • Deterministic finite-state machines
    • Nondeterministic finite-state machines
    • Regular grammars
    • Languages that aren't regular: pumping lemma
    • Closure properties
  2. Context-Free Languages (2-3 weeks)
    • Context-free grammars
    • Push-down automata
    • CYK parsing algorithm
    • Languages that aren't context-free: pumping lemma for CFLs
    • Deterministic Context-free languages
    • Closure Properties
  3. Computability Theory (3-4 weeks)
    • Turing machines
    • Recursive vs. Recursively-Enumerable Sets
    • Decidability and the Halting Problem
    • Reductions
  4. Complexity Theory (2-3 weeks)
    • Time and space complexity
    • P and NP
    • NP-Completeness
    • Other complexity classes
  5. Special Topics: TBA (1 week)


Schedule and Lecture Notes

# Date Description Chapter
1 August 23 Introduction to the theory of computation [Slides ] 0

Part One: Automata Theory

2 Week 1 — August 25 Regular languages and finite automata [ Slides ] 1.1, 1.2
3 Week 2 — August 30 Subset construction and regular expressions [ Slides ] 1.2, 1.3
4 Week 2 — September 1 Equivalence of regular expressions and finite automata [ Slides ] 1.3
5 Week 3 — September 6 Closure Properties of regular languages [Slides ] 1.4
6 Week 3 — September 8 Equivalence and Minimization of Automata
7 Week 4 — September 13 Non-Regular languages: Pumping Lemma [Slides ] 1.4
8 Week 4 — September 15 Context-Free Languages: Grammars and Derivations 2.1
9 Week 5 — September 20 Pushdown Automata 2.2
10 Week 5 — September 22 Non-Context-Free Languages 2.3
11 Week 6 — September 27 Closure properties of CFLs
12 Week 6 — September 29 Wrap-up of CFLs 2.1 — 2.3
13 Week 7 — October 4 In-Class Quiz I 1 and 2

Part Two: Computability Theory

14 Week 7 — October 6 Turing machines 3.1
15 Week 8 — October 11 Variants of Turing machines 3.2 and 3.3
16 Week 8 — October 13 Decidability: Decidable Languages 4.1
17 Week 9 — October 18 Halting Problem: Diagonalization and Reductions 4.2
18 Week 9 — October 20 Reductions: More undecidable problems 5.1, 5.2
19 Week 10 — October 25 Logics and Decidability 6.2
20 Week 10 — October 27 Wrap-up: Turing machines and decidability 3-4-5-6
21 Week 11 — November 1 In-class Quiz II [ ] 3-4-5-6

Part Three: Complexity Theory

22 Week 11 — November 3 Complexity 7.1 and 7.2
23 Week 12 — November 8 NP, co-NP, polynomial-time reductions and NP-completeness 7.3
24 Week 12 — November 10 NP-complete problems and reductions 7.4
25 Week 13 — November 15 Wrap-up: NP-completeness
26 Week 13 — November 17 Space Complexity Classes: Savitch's theorem 8
25 Week 14 — November 22 No Class — Fall Break
26 Week 14 — November 24 No Class — Fall Break
27 Week 15 — November 29 In-class Quiz III: NP-completeness 7
28 Week 15 — December 1 co-NL and NL problems 8.4-8.6
29 Week 16 — December 6 PSPACE and PSPACE-complete problems
30 Week 16 — December 8 Special Topics 1.3


  1. Accommodation Statement. If you qualify for accommodations because of a disability, please submit to me a letter from Disability Services in a timely manner (for exam accommodations provide your letter at least one week prior to the exam) so that your needs can be addressed. Disability Services determines accommodations based on documented disabilities. Contact Disability Services at 303-492-8671 or by e-mail at dsinfo [AT] If you have a temporary medical condition or injury, see Temporary Injuries under Quick Links at the Disability Services website and discuss your needs with me.
  2. Religious Observances. Campus policy regarding religious observances requires that faculty make every effort to deal reasonably and fairly with all students who, because of religious obligations, have conflicts with scheduled exams, assignments or required attendance. In this class, you should notify your instructor of any conflict at least two weeks in advance. See full details here .
  3. Classroom Behavior. Students and faculty each have responsibility for maintaining an appropriate learning environment. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with differences of race, color, culture, religion, creed, politics, veteran's status, sexual orientation, gender, gender identity and gender expression, age, disability, and nationalities. Class rosters are provided to the instructor with the student's legal name. I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records. For more information, see the policies on classroom behavior and the student code.
  4. Discrimination and Harassment. The University of Colorado Boulder (CU Boulder) is committed to maintaining a positive learning, working, and living environment. CU Boulder will not tolerate acts of sexual misconduct, discrimination, harassment or related retaliation against or by any employee or student. CU's Sexual Misconduct Policy prohibits sexual assault, sexual exploitation, sexual harassment, intimate partner abuse (dating or domestic violence), stalking or related retaliation. CU Boulder's Discrimination and Harassment Policy prohibits discrimination, harassment or related retaliation based on race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. Individuals who believe they have been subject to misconduct under either policy should contact the Office of Institutional Equity and Compliance (OIEC) at 303-492-2127. Information about the OIEC, the above referenced policies, and the campus resources available to assist individuals regarding sexual misconduct, discrimination, harassment or related retaliation can be found at the OIEC website.
  5. Honor Code. All students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the academic integrity policy of the institution. Violations of the policy may include: plagiarism, cheating, fabrication, lying, bribery, threat, unauthorized access, clicker fraud, resubmission, and aiding academic dishonesty. All incidents of academic misconduct will be reported to the Honor Code Council (; 303-735-2273). Students who are found responsible for violating the academic integrity policy will be subject to nonacademic sanctions from the Honor Code Council as well as academic sanctions from the faculty member. Additional information regarding the academic integrity policy can be found at
  6. The web-page of a previous offering of the course is available here .