Mathematical Foundations of Computer Science
Lecture Room: LSRC D106
Lecture Times: Tuesdays,
Thursdays 2:15-3:30 PM
Class Lecture Schedule and
Lecture Notes
Thurs, January 11 Lecture
1:
(Readings: Sipser, Chapter
0.).
Tues, January 16 Lecture 2:
Mathematical
Notations for Computations
(Readings: Sipser, Chapter
0, pages 3-25).
Thurs, January 18 Lecture
3:
Finite
State Automata (FSAs), Part 1
(Readings: Sipser, Chapter
1, pages 31-76).
Tues, January 23 Lecture 4:
Finite
State Automata (FSAs), Part 2
(Readings: Sipser, Chapter
1, pages 76-83).
Thurs, January 25 Lecture
5:
PDAs / CFLs, Part 1: Context Free
Grammars
(Readings: Sipser, Chapter
2.1, pages 91-100).
Tues, January 30 Lecture 6:
PDAs / CFLs, Part 2: Pushdown Automata
(Readings: Sipser, Chapter
2.2, pages 101-104).
Thurs, February 1 Lecture
7:
PDAs
/ CFLs, Part 3: The CFLs are the languages of the PDAs
(Readings: Sipser, Chapter
2.2, 2.3 pages 104-119).
Tues, February 6 Lecture 8:
(Readings: Sipser, Chapters
3.1, 3.2, pages 125-141).
See also Biography of Alan Turing
Thurs, February 8
Tues, February 13 Lecture
9:
Decidability,
Part 1: Decidable Problems
(Readings: Sipser, Chapter
3.3, pages 142-147, Chapter 4.1, pages 151-156).
Thurs, February 15 Lecture
10:
Decidability,
Part 2: The Halting Problem
(Readings: Sipser, Chapter
4, pages 151-168).
Tues, February 20 Lecture
11:
Decidability,
Part 3: The Halting Problem is Undecidable
(Readings: Sipser, Chapter
4.2, pages 159-168)
Background Reading:
Set Theory and Cantor's
Diagonalization Method
Thurs, February 22 Lecture
12:
Reducibility,
Part 1: Reductions Between Problems
(Readings: Sipser, Chapter
5, pages 171-195).
Tues, February 27 Lecture
13:
Reducibility,
Part 2: Linear Bounded Automata
(Readings: Sipser, Chapter
5, pages 171-195).
Thurs, March 1 Lecture 14:
Reducibility,
Part 3: Computable Functions and Enumerable Sets (Readings: Sipser, Chapter 5, pages 171-195).
Tues, March 6 Lecture 15:
Review of Automata &
Languages: Decidability & Undecidability
Thurs, March 7: In class
Midterm Exam on Automata & Languages: Decidability & Undecidability
Also, Thurs, March 7, 6PM:
March 9-19 Spring Recess
Prior to March 20, please
review material on complexity of algorithms (CPS130 material):
Complexity,
Part 1: Polynomial Time Computations
(Readings: Sipser, Chapter
7.1, pages 225-233, and Chapter 7.2, pages 234-240).
Tues, March 20 Lecture 16:
Complexity,
Part 2: Nondeterministic Polynomial Time
and Complexity,
Part 3: Satisfiability & Circuits
(Readings: Sipser, Chapter
7.4, pages 241-259).
Thurs, March 22 Lecture
17:
NP-completeness,
Part 1: An NP Complete Problem
(Readings: Sipser, Chapter
7.4, pages 248-259).
Tues, March 27 Lecture 18:
NP-completeness,
Part 2: Lots More NP Complete Problems
(Readings: Sipser, Chapter
7.5, pages 254-271).
Thurs, March 29 Lecture
19:
Space
Complexity, Part 1: Deterministic and Nondet. Space
(Readings: Sipser,
Chapters 8.1 pages 277-280).
Tues, April 3
Space
Complexity, Part 2: PSPACE-Complete Problems
(Readings: Sipser,
Chapters 8.2, 8.3, pages 281-283).
Thurs, April 5 Lecture 20:
Quiz on NP-Completeness
Tues, April 10 Lecture 21:
Space
Complexity, Part 3: PSPACE Complete Games
(Readings: Sipser, Chapter
8.3, pages 283-289).
(Optional Extra reading: Space Complexity, Part 4: NL and L
Sipser, Chapter 8.4,8.5,8.6, pages 294-302)
Thurs, April 12 Lecture
22:
Computations
using Random Choice
(Readings: Sipser, Chapter
10.2, pages 333-339).
(Optional Extra
Reading: Randomized
Primality Testing )
Tues, April 17 Lecture 23:
Approximately Optimal Computations
(Readings: Sipser, Chapter
10.1, pages 333-334).
(Optional Extra
Reading: Approximation
Theory )
Thurs, April 19 Lecture
24:
Quiz on Space Complexity
Tues, April 24 Last
Lecture 25:
Review of Course Material
& Overview of Final Exam Topics