The CS 215 schedule is constantly undergoing updates as the Winter quarter progresses! Refresh this page often!

This page was last modified on .

IMPORTANT NOTE: The following schedule represents my current best guess concerning due dates (and everything else).  I am providing this information to give you a general idea of the pace and timing of the class.  THESE DATES AND ASSIGNMENTS MAY CHANGE.  All reading assignments are from the Algorithms Illuminated textbooks, unless otherwise indicated. 
HW = Homework. DQ = Discussion questions.  PP = Programming project.


DAY Reading/Watching (before class) In-class Activities To do after class
M1   Introductions to each other
Introduction to course
Integer Multiplication
Slides:Introduction First Day
Watch the video Why Study Algorithms video as a follow up from class.
Begin working on HW A
W1 Read Sections 1.1 - 1.3

Watch the videos on
Discuss Karatsuba Multiplication Slides:IntigerMultiplication Start on DQ #1
F1 Read Sections 1.4, 1.5, 1.6

Watch the videos on
Submit to Kit by end of day: HW A

Discuss MergeSort MergeSort Analysis

Guiding Principles for Analysis of Algorithms

Finish DQ #1

Slides:MergeSort
Watch the video discussion of DQ #1
M2 Read 2.1,2.2

Watch the videos on

Start into Asymptotic Notation
Discuss Algorithm Analysis and Asymptotic Notation

Slides: Asymptotic Notation
Practice quiz Asymptotic notation
Start on HW #1
Complete the Concept Check #1 before W3
W2 Read Chapter 2.

Watch the videos on

Discuss Examples in Section 2.5
Discuss Quiz 2.5
Work on DQ #2
Keep working on HW #1
Work on Concept Check #1 before Wednesday W3
F2 Read Sections 3.1, 3.2

Watch the videos on
Submit to Kit by end of day: HW #1
Discuss Divide and Conquer and some examples

Start on Programming Project: Divide and Conquer

Slides:Divide and Conquer
Make sure you've done the Concept Check #1 (You can do it more than once if you don't get a perfect score.)
Finish and submit HW #1
M3
MLK

W3
Read Sections 4.1, 4.2, 4.3

Watch the videos on
Discuss Recurrences and Master Method

Work on Problems 4.1, 4.2, 4.3, 4.4
Slides:The Master Method
Start on HW #2
F3 Read Sections 5.1 - 5.4, 5.6
Watch the videos on

Discuss QuickSort

Discuss limits on comparison-based sorts
Keep working on HW #2
M4

Read Chapter 7 and Section 8.1 (in book 2).
Watch the videos on

Submit to Kit by end of day:Divide and Conquer Project Part 1
Intro to graphs

Slides:Graphs
Keep working on HW #2

Complete Concept Check #2 before end-of-day on Monday (Week 5). Submit Concept Check #2 Reflection after completing the concept check.
W4 Read Section 8.2
Watch the videos on
Submit to Kit by end of day: HW #2

Submit to Kit by end of day: Divide and Conquer Project Part 2


Discuss Problems 7.1 - 7.3

Discuss breadth-first search and shortest paths
Slides:Breadth-first search
F4 Read Sections 8.3 - 8.5
Watch the video on
Discuss Breadth-First Search and Undirected Connectivity

Discuss Depth-First Search and Topological Sort
Start on Programming Project: Dijkstra

Slides:Depth-first search
M5 Read Chapter 9.

Watch the videos on
Work through Dijkstra's algorithm, pseudocode, and examples.
Work on Dijkstra Project and start on HW #3

Slides:Dijkstra's algorithm
W5 Read Sections 10.1-10.4, 10.5 is optional

Watch the videos on
Discuss Heaps and Dijkstra Read Section 10.5
Work on Project 2 and HW #3

F5
Catch up day

M6
Midterm Exam

Review Topics for Midterm
W6 Read Chapter 11

Watch the videos on
Discuss Search Trees

Work on projects
Check out these links to experiment with AVL Trees and Red/Black Trees (two kinds of balanced trees)

Finish up HW #3 and continue working on Dijkstra Project

Work on DQs for Friday: Problems 10.1-10.4

F6
Mid Term Break

Enjoy!
M7 Read Sections 12.1 - 12.4

Watch the videos on
Submit to Kit by end of day: HW #3
DQs 10.1 - 10.4, 11.1, 11.2

Discuss Hash Tables
Continue to work on Project 2

Slides:Hash Tables
W7 Read Sections 12.5 - 12.6

Start to Read Chapter 13

Watch the videos on
Discuss Bloom Filters

Finish up Dijkstra project

Work on Data Structures Reflection

Slides:Bloom Filters

F7 Read Chapter 14

Watch the videos on Submit to Kit: Dijkstra Project


Discuss Greedy design paradigm
Slides:Greedy Algorithms
M8 Finish any reading from the week

Watch the videos on
Submit to Kit:Data Structures Reflection


Discuss Huffman's greedy algorithm

Work on 14.1 - 14.4

Start on Huffman Programming

Slides:Huffman's greedy algorithm
W8 Read Chapter 15

Watch the videos on Watch these for W8:


Discuss MST Greedy Algorithms
Start on HW #4

Slides:MST Greedy Algorithms
F8 Finish reading Chapter 15

Watch the application video: Clustering

Discuss MST implementations and runtimes


Discuss clustering application
Keep working on HW #4

M9
Read Sections 16.1 and 16.2

Watch the videos on
Submit to Kit by end of day: HW #4
Quiz 2

Intro to Dynamic Programming
Start on HW #5
W9 Read Sections 16.3 - 16.5

Watch the videos on

Submit to Kit by end of day: Huffman program

Knapsack discussion

Work on HW #5
Keep working on HW #5

Start on Knapsack Program
F9 Reading on backtracking. There is a document titled "Foundations of Algorithms - CH.5" in the Files folder of this course on Kit. The reading skips sections 5.3, 5.4, and 5.6. Discuss backtracking with NQueens, M-coloring, and Knapsack

Continue working on HW #5
Continue working on Knapsack Program
M10 Introduction to Complexity Theory
There is a reading titled "AlgsIllChap19.pdf" in the Files folder of the course on Kit.
NP-Completeness (optional slides to look at)


Discuss NP Hardness Work on finishing assignments
W10
Submit to Kit: HW #5, Knapsack Program

Catch up
F10
Review

Quiz 3


Discussion Questions