Theoretical Foundations of Computing (CS3613), Summer 2016

University of Information Technology (UIT), Vietnam

July 11 - August 5, 2016

Lecture: Monday, Wednesday, Friday: 8:00-11:00 AM

Room: E3.3


Instructor

Teaching Assistants


Text

Course Objectives

This course asks the mathematical question “What is a computer, and what can it compute”. Asking this question can lead to some surprising answers about what computers and particular models of computation can and cannot do. Some of the topics we will touch on in the class are:

Assignments

Grade Breakdown

Lecture Notes and Homeworks


Tentative Schedule

Day Reading (Sipser) Topics Assignments
July 11 0.1, 0.2 Notations and terminology (lecture 1)
0.3, 0.4 Types of proof (lecture 1)
0.4 More types of proof (lecture 1)
July 13 1.1 Finite automata (lecture 2)
1.2 Regular Languages and Nondeterminism (lecture 2)
1.3 Regular expressions and regex (lecture 2) (HW 1: 0.1-0.4)
July 15 1.4 The pumping lemma (lecture3a)
2.1 Context-Free Grammars (lecture 3b)
2.1 Context-Free Grammars (lecture 3b (HW 2: 1.1-1.3, regex)
July 18 2.2 Pushdown Automata (lecture 4a)
2.3 Equivalence of PDA’s and CFG’s (lecture 4b)
2.4 Pumping lemma for CFL’s (lecture 4b) (HW 3: 1.4-2.1)
July 20 Recursive Descent Parsing (lecture 5)
Recursive Descent Parsing (lecture 5)
3.1 Turing machines (lecture 6) (HW 4: 2.2-2.4)
July 22 3.2,3.3 Variants of Turing machines (lecture 6)
Diagonalization (lecture 6b)
4.1 Decidable languages (lecture 7)
July 25 4.2 Decidability (lecture 7)
6.4 Information (lecture 7b)
Midterm review, review questions (HW 5: 3.1-3.3)
July 27 Midterm
July 29 7.1 Measuring complexity (lecture 8)
7.2,7.3 P and NP (lecture 8)
7.4 NP-completeness (lecture 8) (HW 6: 4.1,4.2, 6.4, Diagonalization)
Aug 1 7.5 NP-complete problems (lecture 9)
8.1 Reducibility (lecture 9)
Reducibility 2 (lecture 9) (HW 7: 7.1-7.3)
Aug 3 10.1,10.2 Probabilistic algorithms (lecture 10)
Final review
Review questions
Aug 5 Final