The CS 215 schedule is constantly undergoing updates as the 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
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
W3 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
F3

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

Develop Adjacency List class in Java
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.
M4 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
W4 Read Sections 8.3 and 8.4
Watch the video on
Discuss Breadth-First Search and Undirected Connectivity
Start on Programming Project: Dijkstra
F4 Read Chapter 9.

Watch the videos on
Work through Dijkstra's algorithm, pseudocode, and examples.
Work on Dijkstra Project and start on HW #3
M5 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

W5 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

F5
Midterm Exam

Review Topics for Midterm
M6 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
Work on DQs 12.1, 12.2 for Monday
W6 Read Sections 12.5 - 12.6

Start to Read Chapter 13

Watch the videos on
Discuss Bloom Filters

Discuss Greedy design paradigm
Finish up Dijkstra project

Work on Data Structures Reflection (due Wednesday Week 7)

F6 Read Chapter 14

Watch the videos on Submit to Kit: Dijkstra Project


Discuss Huffman's Algorithm and Examples


M7

Submit to Kit:Data Structures Reflection



Quiz 2
Catch up

W7 Finish any reading from the week

Submit to Kit:Data Structures Reflection


Discuss Huffman's greedy algorithm

Work on 14.1 - 14.4
F7 Read Chapter 15

Watch the videos on Watch these for F8:
Finish Huffman Code discussion/why does it work?

Discuss Problems 14.1 - 14.4

Start on HW #4

Start on Huffman Programming
M8 Finish reading Chapter 15

Watch the application video: Clustering

Read Sections 16.1 and 16.2

Watch the videos on
Discuss MST implementations and runtimes
Discuss clustering application
Intro to Dynamic Programming
Keep working on HW #4



W8 Read Sections 16.3 - 16.5

Watch the videos on
Submit to Kit by end of day: HW #4
Discuss Knapsack Start on HW #5
F8 Make sure you've read Chapter 16.

Submit to Kit by end of day: Huffman program
Quiz 3

Knapsack discussion

Work on HW #5
Keep working on HW #5

Start on Knapsack Program
M9
Memorial Day

W9 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
F9
Catch up

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

Work on HW #5, Knapsack Program
F10
Review
Quiz 4


Discussion Questions