We will approximately follow the plan below for the course material. Naturally, depending on the interactions in class, things may progress faster or slower from time to time. Lecture slides and notes will be posted here as proceed.


Date Topic Suggested Readings Notes/Slides Deadlines
Sept. 17 Introduction and Simple Induction Chapter 0 and Section 1.1 Notes(PDF)
Sept. 24 Complete Induction and Well Ordering Sections 1.1 and 1.3 Notes(PDF) Exercise 1 is due Tomorrow
Oct. 1 Structural Induction and Complexity Chapter 4 Notes(PDF)
Oct. 8 Complexity - Recursively Defined Functions Chapter 3 Notes(PDF) (Updated Oct. 12, 2015) Assignment 1 is due Tomorrow
Oct. 15 Recursively Defined Functions (Continued) - Master Theorem Chapter 3 Notes(PDF)
Oct. 22 Divide and Conquer Algorithms and Program Correctness (Updated Oct. 23, 2015) Notes(PDF) Excercise 2 is due Tomorrow
Oct. 29 Program Correctness (Recursive Programs) Chapter 2 Notes(PDF)
Nov. 5 Program Correctness (Iterative Programs) Chapter 2 Notes(PDF) (Updated Nov. 18, 2015) Assignment 2 is due Tomorrow
Nov. 12 Termination and Introduction to Formal Language Theory (Finite Automata) Sections 7.1 and 7.3 Notes(PDF)
Nov. 19 Regular Languages and Their Properties Chapter 7 Notes(PDF) Exercise 3 is due Tomorrow
Nov. 26 Regular Expressions and NFAs Chapter 7 Notes(PDF)
Dec. 3 Equivalence of Notions of Regularity Chapter 7 Notes(PDF) Assignment 3 is due Tomorrow
Dec. 10 Review Session for the Final Chapter 7

Lectures Times

This course has three sessions. Below are the information for these three sessions.

Section 1 (Azadeh)

Mondays/Wednesdays at 11 am (BA1170)

Section 2 (Azadeh)

Mondays/Wednesdays at 1 pm (BA1170)

Section 3 (Amir)

Thursdays at 6 pm (BA1170)


Since all exercises, assignments, and exams will be done jointly between the three sections, we will be making sure that the lectures and tutorials proceed at the same pace in all sections.