CSC 452 – Fall 2024 – Schedule

The following gives a day-by-day breakdown of topics covered, readings assigned, and assignment handouts/due dates. Each topic includes several required readings that students should read before the topic is discussed in class – always look ahead a few days to see what readings you should be doing.

The schedule in this class is flexible, and past dates will be updated to reflect what was actually covered. Future dates are always tentative and subject to change, and dates more than two week in the future are simply “best guesses” to be updated as the time approaches.

Day 1: Wednesday, August 21

Topics: Class overview and syllabus review; introduction to theory of computing

Day 2: Monday, August 26

Reading: Sections 0.1 – 0.2
Topics: Review of mathematical structures

Day 3: Wednesday, August 28

Reading: Sections 0.3 – 0.4
Topics: Review of proof techniques

Note: No class on Monday, September 2 (Labor Day)
Day 5: Wednesday, September 4

Reading: Section 1.1
Due: Assignment 1
Topics: Deterministic finite automata (DFAs)

Day 6: Monday, September 9

Reading: Section 1.2
Topics: Nondeterministic Finite Automata (NFAs)

Day 7: Wednesday, September 11

Reading: Sections 1.3 – 1.4
Topics: Regular expressions and non-regular languages (pumping lemma) - day 1

Day 8: Monday, September 16

Topics: Regular expressions and non-regular languages (pumping lemma) - day 2

Day 9: Wednesday, September 18

Due: Assignment 2
Reading: Section 2.1
Topics: Context-Free Grammars - day 1

Day 10: Monday, September 23

Reading: Section 2.1
Topics: Context-Free Grammars - day 2

Day 11: Wednesday, September 25

Topics: Review and problem day (chapters 0 and 1)

Day 12: Monday, September 30

Exam 1 (covers Chapters 0 and 1)

Day 13: Wednesday, October 2

Reading: Section 2.2
Topics: Pushdown automata

Day 14: Monday, October 7

Reading: Section 2.3
Topics: Non-Context-Free Languages

Day 15: Wednesday, October 9

Due: Assignment 3
Reading: Section 2.4
Topics: Deterministic Context-Free Languages and parsing

Note: No class on Monday, October 14 (Fall Break)
Day 16: Wednesday, October 16

Reading: Section 3.1
Topics: Turing Machines

Day 17: Monday, October 21

Reading: Section 3.2–3.3
Topics: Variants of Turing Machines, and Algorithms

Day 18: Wednesday, October 23

Due: Assignment 4
Reading: Section 4.1
Topics: Decidable Languages

Day 19: Monday, October 28

Reading: Section 4.2
Topics: Undecidability

Day 20: Wednesday, October 30

Topics: Review and problem day (chapters 2 and 3)

Day 21: Monday, November 4

Exam 2 (covers chapters 2 and 3)

Day 22: Wednesday, November 6

Reading: Section 5.1
Topics: Undecidable Problems from Language Theory

Day 23: Monday, November 11

Reading: Section 5.2-5.3
Topics: A simple undecidable problem, and mapping reducibility

Day 24: Wednesday, November 13

Due: Assignment 5
Reading: Sections 7.1–7.2
Topics: Time complexity and the class P

Day 25: Monday, November 18

Reading: Sections 7.3–7.4
Topics: The class NP and NP-completeness

Day 26: Wednesday, November 20

Reading: Section 7.5
Topics: Additional NP-complete problems

Day 27: Monday, November 25

Reading: Sections 8.1–8.2
Topics: Basics of space complexity and Savitch’s Theorem
Due: Assignment 6 – due Tuesday, Nov 26

Note: No class on Wednesday, November 27 (Thanksgiving Break)
Day 28: Monday, December 2

Topics: Catch-up, or class choice topic

Day 29: Wednesday, December 4

Topics: Class wrap-up and review

 

Final Exam

Friday, December 6, 3:30-6:30