Marc Vinyals

COMP3602: Introduction to Theoretical Computer Science 2022

Schedule

4:00 — 4:50pm Monday/Wednesday/Friday in EN-2043. No class on Thanksgiving week.

Office hours during lecture weeks:

Office hours after lecture weeks: * Mondays, Wednesdays, Fridays from 4:00 pm in EN-1058. Please email to make sure I will be there.

Lectures

  1. 2022-09-07: Practicalities. Course plan. Examples of problems. Decision and search problems. Notes.

  2. 2022-09-09: Deterministic Finite Automata. Nondeterministic Finite Automata. Notes. See also Sip12 Sections 1.1 (Formal definition of a finite automaton, Examples of finite automata, Formal definition of computation) and 1.2 (Formal definition of a nondeterministic finite automaton).

  3. 2022-09-12: Equivalence of Deterministic and Nondeterministic Finite Automata. Notes. See also Sip12 Section 1.2 (Equivalence of NFAs and DFAs).

  4. 2022-09-14: Size separation between Deterministic and Nondeterministic Finite Automata. Regular operations. Notes. See also Sip12 Section 1.3.

  5. 2022-09-16: Regular expressions and languages. Non-regular languages. Pumping lemma and applications. Notes. See also Sip12 Section 1.4.

  6. 2022-09-21: Proof of pumping lemma. Pushdown automata. Notes. See also Sip12 Section 1.4 and 2.2.

  7. 2022-09-23: Context-Free Grammars. Notes. See also Sip12 Section 2.1.

  8. 2022-09-26: Ambiguity. Pumping Lemma for CFLs. Turing Machines. Notes. See also Sip12 Sections 2.1. (Ambiguity), 2.3, and 3.1.

  9. 2022-09-28: Formal Turing Machines. Variants of Turing Machines. Notes. See also Sip12 Sections 3.1 and 3.2.

  10. 2022-10-03: Multi-tape Turing Machines. Nondeterministic Turing Machines. Church—Turing thesis. Notes. See also Sip12 Section 3.2.

  11. 2022-10-05: Undecidability. Diagonalization. Universal language. Undecidability of universal language. Recognizable and co-recognizable languages. Notes. See also Sip12 Section 4.2.

  12. 2022-10-07: Reductions. Mapping reductions. Notes. See also Sip12 Sections 5.1 and 5.3.

  13. 2022-10-17: Mapping reductions. Oracles. Turing reductions. Notes. See also Sip12 Sections 5.3 and 6.3.

  14. 2022-10-19: Review.

  15. 2022-10-24: Arithmetic hierarchy. Notes.

  16. 2022-10-26: Arithmetic hierarchy. Notes.

  17. 2022-10-28: Kolmogorov complexity. Randomness. Notes. See also Sip12 Section 6.4.

  18. 2022-10-31: Introduction to Gödel’s incompleteness theorem. Self-reference. Notes. See also Sip12 Section 6.1.

  19. 2022-11-02: Recursion theorem. High-level proof of Gödel’s incompleteness theorem. Notes. See also Sip12 Sections 6.1 and 6.2.

  20. 2022-11-04: First-order theories, proof systems, lemmas towards Gödel’s incompleteness theorem. Notes. See also Sip12 Section 6.2.

  21. 2022-11-08: Time complexity. Notes. See also Sip12 Section 7.1.

  22. 2022-11-09: Polynomial time, classes P and NP. Notes. See also Sip12 Sections 7.2 and 7.3.

  23. 2022-11-10: NP in EXP, polynomial time reductions, SAT, 3-SAT and Clique. Notes. See also Sip12 Sections 7.1 and 7.4.

  24. 2022-11-14: Clique. NP-hardness and completeness. Notes. See also Sip12 Sections 7.3 and 7.4.

  25. 2022-11-16: Review. Notes.

  26. 2022-11-21: Subset Sum. Notes. See also Sip12 Section 7.5.

  27. 2022-11-23: Computability and complexity. Notes.

  28. 2022-11-25: Polynomial hierarchy. Oracles. Notes.

  29. 2022-11-28: MaxSAT. Cook—Levin theorem. Notes. See also Sip12 Section 7.4.

  30. 2022-11-30: Space and depth complexity. Circuits. Notes. See also Sip12 Sections 8.0, 8.2, 9.3.

  31. 2022-12-02: Review.

Marking Scheme

Course Plan

Topics

Models of Computation

Computability

Computational Complexity

References:

The main reference is the book:

Complementary books include:

Many similar courses have useful lecture notes publicly available on the web. In particular, see the notes for a past similar course at MUN.

Tools