CS 1501 Syllabus for Summer
2006 (206-7)
Information
without a CLASS # is tentative and may be
significantly altered. Reexa
CLASS # |
DATE |
REFERENCES |
TOPICS/OTHER INFO |
1 |
May 15 |
Sedgewick
Chapter 6, 7 |
Intro to the course and course information sheet, converting algorithms to programs, comparing algorithm implementations, algorithm analysis |
2 |
May 17 |
Sedgewick Chapter 44 |
Intro to Exhaustive Search, pruning, recursion and backtracking -- 8 Queens Example |
3 |
May 22 |
Sedgewick Chapter 14, 17 |
Review of simple searching methods; intro. to digital search trees; radix search tries, multiway radix search tries; Patricia trees |
4 |
May 24 |
|
De la Briandais (DLB) trees – idea, examples and detailed implementation; comparison to regular multiway radix search tries |
5 |
May 31 |
Sedgewick Chapter 16, 36 |
Finish DLB trees Intro to Hashing – idea; collisions; avoiding collisions and the Pigeonhole Principle; reducing collisions with good hash functions; Horner’s method to hash strings |
6 |
June 5 |
|
Linear Probing, Clustering and its effects, Double Hashing, Problems with delete using open addressing, closed addressing using Separate Chaining |
7 |
June 7 |
Sedgewick Chapter 19 |
Intro to String Matching; Brute force algorithm; KMP algorithm; Rabin Karp algorithm; Boyer-Moore mismatched character heuristic |
8 |
June 12 |
Sedgewick Chapter 22 |
Finish Boyer-Moore String Matching Intro. to Compression, Lossy vs. Lossless compression Huffman Compression: idea, block codes vs. variable length codes (and the prefix property), entropy and compressibility, building the Huffman tree, correctness (satisfies prefix property), quality, encryption and decryption Wikipedia article on entropy: http://en.wikipedia.org/wiki/Information_entropy Very useful Compression info: http://www.cs.sfu.ca/cs/CC/365/li/squeeze/ Interesting article about JPEG
patent: |
9 |
June 14 |
|
Finish Huffman Compression Compression using Self-Organizing
Search – idea, compression, decompression, details |
10 |
June 19 |
|
Finish self-organizing search – quality of compression, run-time issues Start LZW compression: basic idea |
11 |
June 21 |
LZW Compression: encryption, decryption MIDTERM EXAM MATERIAL DOWN TO HERE |
|
12 |
June 26 |
|
MIDTERM EXAM |
13 |
June 28 |
Sedgewick Chapter 36 |
Integer arithmetic: Gradeschool multiplication algorithm; simple divide and conquer algorithm; recursive algorithm analysis; Karatsuba integer multiplication |
14 |
July 3 |
Sedgewick Chapter 23 |
Finish Karatsuba
multiplication; exponentiation (simple and divide and conquer); linear in
value of a number vs. linear in number of bits; ); gcd
(simple and Intro to Encryption, simple
encryption algorithms (Caesar cipher, substitution cipher), better block
encryption algorithms (Vigenere cipher, Vernam cipher) |
15 |
July 5 |
|
Public Key encryption: Need for, basic idea of, RSA as the most common example, RSA key generation http://www.cs.pitt.edu/~kirk/cs1501/notes/rsademo/index.html, RSA use and its runtime. Random prime number generation and testing (Miller-Rabin Witness), Security of RSA http://www.ecst.csuchico.edu/~atman/Crypto/cryptoindex.html |
16 |
July 10 |
Sedgewick Chapter 29 |
Uses of RSA (digital envelope, digital signature). http://www.rsasecurity.com/rsalabs/node.asp?id=2152 Intro the Graphs, graph definitions, limits on number of edges, graph representations (adjacency matrix vs. adjacency list) |
17 |
July 12 |
Sedgewick Chapter 30 |
Depth-First Search and Breadth
First Search in detail Biconnectivity
and Articulation Points |
18 |
July 17 |
Sedgewick Chapter 31 |
Weighted graphs, Minimum Spanning Trees, Priority First Search (PFS) , Implementation of Prim's MST algorithm – naïve implementation, better implementation using PFS – details of PFS implementation |
19 |
July 19 |
Sedgewick Chapter 11 |
Priority Queues and Heap Implementation |
20 |
July 24 |
Sedgewick Chapter 33 |
Finish Heaps and PQs Network Flow: Ford-Fulkerson approach using augmenting paths, implementation details, augmenting paths with "backward flow", Edmonds-Karp approach of BFS or PFS to find an augmenting path, trace algorithm flownew.cpp flowtest1.txt flowtest2.txt flowtest3.txt flownew.out flownew.exe |
21 |
July 26 |
Sedgewick Chapter 45 |
Unsolvable problems, intractable problems, P, NP and NP-completeness Local Search Heuristics for NP-complete problems; Ex: 2-OPT for TSP problem |
22 |
July 31 |
Sedgewick
Chapter 42 |
Finish 2-OPT algorithm Idea of Dynamic Programming, Fibonacci Example, Subset Sum Example |
23 |
Aug. 2 |
|
FINAL EXAM |