COMP 3602 -- Intro to the Theory of Computation, Fall 2021

Announcements | Course information | Assignments and tests | Lecture notes
-----------------------------------------------

Announcements

-----------------------------------------------

Course information

Course page: We will be using Brightspace/D2L for course materials, announcements, etc. Please subscribe to the D2L notifications so that you get emails about the announcements at your actual email address (outside of D2L).
Lectures: 4:00pm -- 4:50pm Monday/Wednesday/Friday in EN-2043
Instructor:
Antonina Kolokolova , office ER-6033,
Email: kol at mun dot ca. Please do not send me emails with attachments or pictures to that address, as it is a small mailbox and overflows easily. If you'd like to send something large such as a screenshot or a photo, please email it to me at D2L (Brightspace), and also send a short email to kol at mun dot ca telling me to check D2L mail.
Instructor office hours: TBD.
Textbook: There will be no required textbook for this course; some course notes /slides will be posted.
That said, we will mostly follow Michael Sipser's "Intro to the theory of computation" (3rd edition preferred, 2nd OK).
For more advanced material we will probably use Sanjeev Arora and Boaz Barak "Computational complexity: a modern approach" .

Marking scheme ( very tentative! ):

Note that there might be a test during the last week of the semester.

We will discuss the marking scheme in more detail, as well as what happens if we have to go remote again, during the first week of classes.

Prerequisites/background
This is one of the most abstract/conceptual courses in our curriculum. There will be no implementations, some pseudocode, and a lot of proofs. It will mostly build upon the material and skills from COMP 1002 and the non-programming parts of COMP 1003, as well as the basic knowledge of algorithms and data structures at the extent of COMP 2002 (if you did COMP 1000 instead of COMP 1003, that should be OK too. It would be useful to have seen finite automata, Turing machines and the Halting problem somewhere). Overall, expect to spend more time thinking and less time writing/coding.

Tentative course outline
What is an algorithm? What does it mean for a problem to be computationally easy, hard or unsolvable? What can be solved by a computer with only small finite memory or by circuits of a limited size? This course is about what is known and what is open about the power of computation, and its connections to areas from logic (including Gödel's incompleteness theorems) to cryptography. Time permitting, we may touch upon more advanced topics such as complexity of learning, Kolmogorov complexity, communication complexity, and/or quantum computing.

-----------------------------------------------

Lecture notes

You are welcome to check the lecture notes from a somewhat similar course (1/2 to 2/3 overlap with COMP 3602).

-----------------------------------------------