Dates |
Topics |
Slides/Example Code |
Reading Assignment |
Writen/Programming Assignment |
8/27 |
Introduction |
slides,
Coin Change Problem
|
* Basic Sorting
|
lab1 (still under construction)
|
9/2,9/5 |
Coding Patterns, Recursion |
Patterns
Recursion
in-class practice (recursion)
|
* Intro to Recursion in Python
*
Ch1.Erickson Recursion (1.1-1.3)
|
self-practice problems on pattern
self-practice problems on recursion
written assignment #1
|
9/12 |
Python Data Structures |
* slides
* Hashing table,
* Heap & Priority queue
|
|
9/15 |
Algorithm Analysis |
slides
|
* Chapter 2 (KT) (short read),
* Chapter 2(CLR),
* Chapter 3 (Shaffer) (longer read)
|
|
|
Divide and Conquer |
slides
|
* Ch2.DPV (2.1-2.5, 2.3.1),
* Ch4.CLR
|
quiz 1 (review guide)
|
|
Quicksort and beyond |
Radix Sort code
|
*
QuickSort explained,
* TimSort
* Ch1.DPV (1.1,1.2,1.5) |
|
|
Backtracking/Recursion: combinatorial problems
|
slides
subset.cpp (link:https://tinyurl.com/subset-code)
|
Chapter 2 (Erickson)
|
quiz2 study guide
|
|
Midterm review, Midterm exam |
|
midterm review materials |
|
|
Dynamic Programming |
slides
Practice
Rod Cutting code
| |
in-class practice
|
|
Graph: representation, application, traversal |
slides
Slides on STL (iterator, C++ STL)
Maze walking code
|
* Ch3-4.DPV,
* Ch22.1-22.3.CLR
* blog on graph
|
|
|
Greedy Algorithms, Random Algorithms |
slides |
|
|
|
Review |
Final review guide 1,
review guide 2
|
|
|
Final Exam |
|
|
|
|