CS 1501 Syllabus for Summer
2006 (2067)
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; BoyerMoore mismatched character heuristic 
8 
June 12 
Sedgewick Chapter 22 
Finish BoyerMoore 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 SelfOrganizing
Search – idea, compression, decompression, details 
10 
June 19 

Finish selforganizing search – quality of compression, runtime 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 (MillerRabin 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 
DepthFirst 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: FordFulkerson approach using augmenting paths, implementation details, augmenting paths with "backward flow", EdmondsKarp 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 NPcompleteness Local Search Heuristics for NPcomplete problems; Ex: 2OPT for TSP problem 
22 
July 31 
Sedgewick
Chapter 42 
Finish 2OPT algorithm Idea of Dynamic Programming, Fibonacci Example, Subset Sum Example 
23 
Aug. 2 

FINAL EXAM 