CPSC 3630: Theoretical Foundations of Computing

The schedule below is tentative and subject to change.

Date Topics
January 7, 2026 Course introduction, motivation, strings, languages
January 12, 2026 Strings, languages, finite automata
January 14, 2026 Finite automata, regular languages, cross construction, nondeterminism
January 19, 2026 Nondeterminism, subset construction
January 21, 2026 Regular Expressions, Kleene's Theorem
January 26, 2026 Pumping lemma
January 28, 2026 Pumping lemma, context-free languages
February 2, 2026 Context-free languages
February 4, 2026 Context-free languages
February 9, 2026 Parse trees, ambiguity, Chomsky Normal Form
February 11, 2026 Chomsky Normal Form
February 23, 2026 Pushdown automata
February 25, 2026 Midterm
March 2, 2026 Equivalence between PDA and CFL, Pumping Lemma for CFL
March 4, 2026 Pumping Lemma for CFL
March 9, 2026 CFL, Turing Machines
March 11, 2026 Turing Machines
March 16, 2026 Turing Machines
March 18, 2026 Turing Machines
March 23, 2026 Decidability
March 25, 2026 Decidability, the Halting Problem
March 30, 2026 Reductions
April 1, 2026 Reductions
April 8, 2026 Rice's Theorem, decision problems involving machines, CFG, Post correspondence problem

howard.cheng@uleth.ca