Calendar and Coursenotes
This page will show what we cover each day, including the course notes covered in class as they are presented on the screen. Look here Download here to see all coursenotes in a more condensed form (along with my supplemental comments) up to this point.
Reading assignments are also posted for each week. You can find the textbook by clicking on the Modules link in the menu to the left. The intention is that you will have finished the reading for that week by the end of the week (that is, typically you would be expected to read material after the associated lecture). However, some folks like to read it before the lecture, so I will try to get it up by the beginning of the week if I can. Note that reading for the week will often be relevant to the homework due the following week.
Week 1: Introduction
Tuesday, January 17: Course intro and intro to problem solving
Handouts: Syllabus Download Syllabus
Reading: Modules 1.1 and 1.2
Read the article How Pair Programming Really Works Download How Pair Programming Really Works
Today's "homework": Find your partner for Homework 1 and start working on it
Today's class notes Download Today's class notes (Slides 1-14 of full notes Download full notes)
Thursday, January 19
Class activity: Semester pre-test
Reading: Module 1.3
Today's "homework": Enroll in class Piazza forum, join your Assignment 1 Group
Today's class notes Download Today's class notes (Slides 15-25 of full notes Download full notes)
Week 2: Analyzing Problems
Tuesday, January 24: Problem analysis process
Reading: Module 2.1
Today's class notes Download Today's class notes (Slides 26-38 of full notes Download full notes)
Wednesday, January 25: Homework 1 due at 11pm
Thursday, January 26: Some Math Examples
Today's class notes Download Today's class notes (Slides 39-48 of full notes Download full notes)
Week 3: Review of asymptotic analysis, some math
Tuesday, January 31: Asymptotics, growth rates
Reading: Module 2.2, 2.3
Today's class notes Download Today's class notes (Slides 49-57 of full notes Download full notes)
Wednesday, February 1: Homework 2 due at 11pm
Thursday, February 2: Order notation; Solving Summations
Reading: Module 2.4, 2.5
Today's class notes Download Today's class notes (Slides 58-80 of full notes Download full notes)
Week 4: Expanding recurrences; search
Tuesday, February 7: Expanding recurrences, search in unsorted lists
Reading: Module 2.6, 2.7
Today's class notes Download Today's class notes (Slides 81-99 of full notes Download full notes)
Wednesday, February 8: Homework 3 due at 11pm
Thursday, February 9: Searching in unsorted lists lower bound, Searching sorted lists: Jump search
Reading: Module 3.1, 3.2
Today's class notes Download Today's class notes (Slides 100-109 of full notes Download full notes)
Week 5: Search in sorted arrays
Tuesday, February 14: Binary search worst case, search lower bounds, average case
Reading: 3.3
Today's class notes Download Today's class notes (Slides 110-121 of full notes Download full notes)
Wednesday, February 15: Homework 4 due at 11pm
Thursday, February 16: Quadratic Binary Search, Skip List
Reading: Module 3.4
Today's class notes Download Today's class notes (Slides 122-136 of full notes Download full notes)
Week 6: Selection Problems, Midterm 1
Tuesday, February 21: Review for Midterm; Skip List, Maximum finding
Today's class notes Download Today's class notes (Slides 137-153 of full notes Download full notes)
Wednesday, February 22: Homework 5 due at 11pm
Thursday, February 23: Midterm 1
Week 7: Selection Problems
Tuesday, February 28: Finding the first and second biggest
Today's class notes Download Today's class notes (Slides 154-163 of full notes Download full notes)
Wednesday, March 1: Homework 6 due at 11pm
Thursday, March 2: Finding the min and max, finding the median
Today's class notes Download Today's class notes (Slides 164-188 of full notes Download full notes)
<Spring Break>
Week 8: Number problems
Tuesday, March 14: Probabilistic algorithms, some number problems
Today's class notes Download Today's class notes (Slides 189-206 of full notes Download full notes)
Wednesday, March 15: Homework 7 due at 11pm
Thursday, March 16: More number problems
Today's class notes Download Today's class notes (Slides 207-225 of full notes Download full notes)
Week 9: Dynamic Programming, Amortized Analysis
Tuesday, March 21: Dynamic Programming
Today's class notes Download Today's class notes (Slides 226-247 of full notes Download full notes)
Wednesday, March 22: Homework 8 due at 11pm
Thursday, March 23: Amortized Analysis
Today's class notes Download Today's class notes (Slides 248-254 of full notes Download full notes)
Week 10: Midterm 2
Tuesday, March 28: Review for Midterm 2, Optimal Sorting Algorithms
Today's class notes Download Today's class notes (Slides 255-262 of full notes Download full notes)
Wednesday, March 29: Homework 9 due at 11pm
Thursday, March 30: Midterm 2
Week 11: Reductions
Tuesday, April 4: Discuss Midterm 2, Reductions
Today's class notes Download Today's class notes (Slides 263-273 of full notes Download full notes)
Wednesday, April 5: Homework 10 due at 11pm
Thursday, April 6: Reductions, Hard Problems
Today's class notes Download Today's class notes (Slides 274-284 of full notes Download full notes)
Week 12: NP Completeness
Tuesday, April 11: The class NP, NP-hard problems, and NP-completeness
Today's class notes Download Today's class notes (Slides 285-295 of full notes Download full notes)
Wednesday, April 12: Homework 11 due at 11pm
Thursday, April 13: NP-completeness proofs
Today's class notes Download Today's class notes (Slides 296-310 of full notes Download full notes)
Week 13: Coping with NP-complete problems; Uncomputeable problems
Tuesday, April 18: Coping with NP-complete problems
Today's class notes Download Today's class notes (Slides 311-319 of full notes Download full notes)
Wednesday, April 19: Homework 12 due at 11pm
Thursday, April 20: Uncomputeable problems
Today's class notes Download Today's class notes (Slides 320-329 of full notes Download full notes)
Week 14: Turing Machines
Tuesday, April 25: Turing Machine introduction
Today's class notes Download Today's class notes (Slides 330-340 of full notes Download full notes)
Wednesday, April 26: Homework 13 due at 11pm
Thursday, April 27: Turing Machine capabilities
Today's class notes Download Today's class notes (Slides 341-348 of full notes Download full notes)
Week 15: Last week of class
Tuesday, May 2: Last day of class
Wednesday, May 3: Homework 14 due at 11pm
Final Exam: Wednesday, May 10, 1:05-3:05