CPS 230

Summary of Lecture Topics

Date

Topics & Lecture Notes

(See below for color codes for credits for lecture notes.)

Readings  (from [CLRS] unless otherwise noted)

Tues  Aug 24

Introduction:

Introduction to Algorithms ps pdf

analyzing algorithms ps pdf

Auxiliary Notes:

Algorithm Design ps pdf

Computing Fibonocci Numbers ps pdf

Models of Computation ps pdf

Introduction to Algorithms ps pdf

1, 2,

[GKP,  1.1-1.2] 

Thurs  Aug 26

Mathematical foundations:

Growth of functions, summations ps pdf

asymptotic notation ps pdf

Auxiliary Notes:

Asymptotics and Recurrence Equations ps pdf

Asymptotic Growth ps pdf

3, Appendix A, 
[GKP, 2.5 and asymptotic expansions]

Tues  Aug 31

Mathematical foundations: 

Strassen's algorithm, Master method for recurrence ps pdf

recurrence relations ps pdf

Auxiliary Notes:

Example Problems ps pdf

More Example Problems ps pdf

Master Method ps pdf

4.0-4.2, (4.3-4.4, but read lecture notes instead)
28.1-28.2

Thurs  Sept  2

Sorting:

Linear time selection, median lower bound  ps pdf

Median and Order Statistics ps pdf

linear sorting ps pdf

Auxiliary Notes:

Computing Statistics ps pdf
9, [Baase, 3.4]

Tues  Sept 7

Sorting:

Lower bound in decision tree model, bucket and radix sort ps pdf

Auxiliary Notes:

Examples of Sorting Lower Bounds ps pdf

Deterministic Selection and Sorting ps pdf
8.0-8.3

Thurs Sept 9

Priority Queues:

Heaps and heapsort ps pdf

heapsort ps pdf

Example heap problems ps pdf

Auxiliary Notes:

Heaps ps pdf

 6

Tues  Sept  14

(Reif on travel. Lecture to be taken by TA)
Randomized and Average-Case Analysis

Probabilistic Algorithms ps pdf

Probability Theory ps pdf
Appendix C.2-C.3
Thurs  Sept  16
 Quiz on Recurrence Equations and Deterministic Sorting

Tues  Sept  21

Sorting: 

Quicksort ps pdf

Introduction to Quicksort ps pdf

Applications of Sorting ps pdf

Auxiliary Notes:

Sorting ps pdf

Analysis of Quicksort ps pdf

Randomized Algorithms for Selection and Sorting ps pdf

Selection Sort ps pdf

Examples of Quicksort Analysis ps pdf

7, 8, [MR]

Thurs  Sept  23

Searching:

Search trees, red-black trees ps pdf

Binary Search trees ps pdf

Red-Black trees ps pdf

Red-Black tree Rotation, Insertion, Deletion ps pdf

Auxiliary Notes:

Example Red-Black tree problem ps pdf

Example Data Structure Problem ps pdf

Binary Search Trees ps pdf

Search Algorithms ps pdf

Augmented search trees, interval trees ps pdf

10, 12.0-12.3, (13, but read lecture notes instead)

14, [deBerg, 10.1]

 

Tues Sept 28

Searching:

Hashing, skip lists  ps pdf

Introduction to Hash Tables ps pdf

Universal Hashing ps pdf

Auxiliary Notes:

elementary data structures ps pdf

Hashing ps pdf

Universal Hash Functions ps pdf

Hashing Polynomials ps pdf

5.0-5.2, 5.4.1, 8.4
11, [GT, 7.5]



Thurs Sept 30

Amortized analysis: 

Aggregate analysis, potential method, binary counter, dynamic table ps pdf

Amortized Analysis

Amortized Analysis ps pdf

Amortized analysis:

Splay trees ps pdf

Analysis of Splay Trees

Auxiliary Notes:

Splay Trees ps pdf

17,[Kozen, 12]

 

Tues  Oct  5

External memory algorithms: 

Model, basic upper and lower bounds, sorting, B-trees ps pdf

Auxiliary Notes:

[Vitter] The Input/Output Complexity of Sorting and Related Problems pdf,

External Memory Algorithms and Data Structures: Dealing with MASSIVE Data ps pdf,

Arge:

[Arge] Lower bound on external sorting,
[Arge] External-Memory Algorithms

18

 

Thurs  Oct 7

Design paradigms:

Dynamic programming Matrix chain multiplication ps pdf

introduction to dynamic programming ps pdf

dynamic programming applications ps pdf

Dynamic Programming ps pdf

Auxiliary Notes:

Example dynamic programming problem ps pdf

Dynamic Programming: Segmentation ps pdf

Dynamic Programming: LCS ps pdf

15.0-15.2

Tues  Oct 12

Fall Break (No Class)


Thurs  Oct 14

Mid Term Exam # 1

.

Tues Oct 19

Design paradigms:

Greedy algorithms
Huffman codes, activity selection
 ps pdf

Huffman Compression ps pdf

16.0-16.3

Thurs  Oct 21

Graph algorithms: 

Model, basic algorithms, DFS, BFS, topological sort, strongly connected components ps pdf

Graph Definitions ps pdf

Graph Algorithms using Depth First Search ps pdf

data structures for graphs ps pdf

DFS and BFS ps pdf

Auxiliary Notes:

Graph Algorithms ps pdf

22

Appendix B.4-B.5

Tues Oct 26

Graph algorithms:

Minimum spanning trees, Union-Find ps pdf

Minimum Weights Spanning Tree ps pdf

Data Structures for Disjoint Sets ps pdf

Auxiliary Notes:

minimum spanning trees ps pdf

Minimum Spanning Trees ps pdf

 23, 21.0-21.3

Thurs  Oct 28

Graph algorithms:

Shortest paths ps pdf

shortest path algorthms ps pdf

Shortest Paths Problems ps pdf

Bellman-Ford Algorithm ps pdf

All-pairs Shortest Paths ps pdf

Auxiliary Notes:

Shortest Paths ps, pdf

24.0-24.3, 25.2

Tues Nov  2

Graph algorithms:

Matching ps pdf

Auxiliary Notes:

Bipartite Matching ps pdf

Breadth-First Search of Graphs ps pdf

26.2-26.3

Thurs Nov 4

Graph Algorithms:

Flow Networks ps pdf

Flow Networks, continued ps pdf

Auxiliary Notes:

Flow Algorithms ps pdf

26.0-26.2

  Tues Nov  9

Mid Term Exam #2

Thurs Nov  11

Fast Fourier Transform:

Polynomials and the Fast Fourier Transform ps pdf

Auxiliary Notes:

FFT and Multiplication ps pdf

Polynomial Computation ps pdf

30

Tues  Nov  16

Number Theory and Cryptography Algorithms:

Number Theory Algorithms ps pdf

Cryptography ps pdf

31


Thurs Nov  18

Approximation Algorithms:

Approximation Algorithms  ps pdf

Approximately Correct Algorithms ps pdf

Auxiliary Notes::

approximation algorithms and Cook's theorem ps pdf

35.0-35.3

Tues  Nov  23 Overview Lecture

Fri  Dec  10

Final Exam

 




Color Codes for Credits for lecture notes:

Course textbook:


Other references made available:


John Reif / Duke University /  reif@cs.duke.edu