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 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: Download Syllabus

Reading: Modules  1.1 and 1.2

Read the article Download How Pair Programming Really Works

Today's "homework": Find your partner for Homework 1 and start working on it

Download Today's class notes

(Slides 1-14 of 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

Download Today's class notes

(Slides 15-25 of Download full notes)

 

Week 2: Analyzing Problems

Tuesday, January 24: Problem analysis process

Reading: Module 2.1

Download Today's class notes

(Slides 26-38 of Download full notes)

Wednesday, January 25: Homework 1 due at 11pm 

Thursday, January 26: Some Math Examples

Download Today's class notes

(Slides 39-48 of Download full notes) 

 

Week 3: Review of asymptotic analysis, some math

Tuesday, January 31: Asymptotics, growth rates

Reading: Module 2.2, 2.3

Download Today's class notes

(Slides 49-57 of Download full notes)

Wednesday, February 1: Homework 2 due at 11pm

Thursday, February 2: Order notation; Solving Summations

Reading: Module 2.4, 2.5

Download Today's class notes

(Slides 58-80 of Download full notes) 

 

Week 4: Expanding recurrences; search

Tuesday, February 7: Expanding recurrences, search in unsorted lists

Reading: Module 2.6, 2.7

Download Today's class notes

 (Slides 81-99 of 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

Download Today's class notes

 (Slides 100-109 of Download full notes)

 

Week 5: Search in sorted arrays

Tuesday, February 14: Binary search worst case, search lower bounds, average case

Reading: 3.3

Download Today's class notes

 (Slides 110-121 of Download full notes)

 Wednesday, February 15: Homework 4 due at 11pm

Thursday, February 16: Quadratic Binary Search, Skip List

Reading: Module 3.4

Download Today's class notes

(Slides 122-136 of Download full notes)

 

Week 6: Selection Problems, Midterm 1

Tuesday, February 21: Review for Midterm; Skip List, Maximum finding

Download Today's class notes

(Slides 137-153 of 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

Download Today's class notes

(Slides 154-163 of Download full notes)

 Wednesday, March 1: Homework 6 due at 11pm

Thursday, March 2: Finding the min and max, finding the median

Download Today's class notes

(Slides 164-188 of Download full notes)

  

<Spring Break>

 

Week 8: Number problems

Tuesday, March 14: Probabilistic algorithms, some number problems

Download Today's class notes

(Slides 189-206 of Download full notes)

Wednesday, March 15: Homework 7 due at 11pm

Thursday, March 16: More number problems

Download Today's class notes

(Slides 207-225 of Download full notes)

 

Week 9: Dynamic Programming, Amortized Analysis

Tuesday, March 21: Dynamic Programming

Download Today's class notes

(Slides 226-247 of Download full notes)

Wednesday, March 22: Homework 8 due at 11pm

Thursday, March 23: Amortized Analysis

Download Today's class notes

(Slides 248-254 of Download full notes)

 

Week 10: Midterm 2

Tuesday, March 28: Review for Midterm 2, Optimal Sorting Algorithms

Download Today's class notes

(Slides 255-262 of 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

Download Today's class notes

(Slides 263-273 of Download full notes)

Wednesday, April 5: Homework 10 due at 11pm

 

Thursday, April 6: Reductions, Hard Problems

Download Today's class notes

(Slides 274-284 of Download full notes)

 

Week 12: NP Completeness

Tuesday, April 11: The class NP, NP-hard problems, and NP-completeness

Download Today's class notes

(Slides 285-295 of Download full notes)

Wednesday, April 12: Homework 11 due at 11pm

Thursday, April 13: NP-completeness proofs

  Download Today's class notes

(Slides 296-310 of Download full notes)

 

Week 13: Coping with NP-complete problems; Uncomputeable problems

Tuesday, April 18: Coping with NP-complete problems

Download Today's class notes

(Slides 311-319 of Download full notes)

Wednesday, April 19: Homework 12 due at 11pm

Thursday, April 20: Uncomputeable problems

Download Today's class notes

(Slides 320-329 of Download full notes)

 

Week 14: Turing Machines

Tuesday, April 25: Turing Machine introduction

Download Today's class notes

(Slides 330-340 of Download full notes)

Wednesday, April 26: Homework 13 due at 11pm

Thursday, April 27: Turing Machine capabilities

Download Today's class notes

(Slides 341-348 of 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