Instructor: Milos Hauskrecht
Personel
Instructor: Milos Hauskrecht, Wachman Hall 313, 1-5775, milos@joda.cis.temple.edu
office hours: Mon 1-2:30pm, Thu 1-2pm,
Course secretary: Mary Kirk, Wachman Hall 300, 1-5272, kirk@joda.cis.temple.edu
Course
Syllabus
Textbook
Handouts
Evaluation
Homework policy
---> Last
minute updates (please check often)
This is an introductory course in algorithms for CIS graduate students. It is one of the core courses you need to take to get your graduate degree..
Lectures | Topic(s) | |
---|---|---|
September 5 | Introduction and administrivia. Asymptotic notation.
Problem complexity . Recurrences. Merge sort.
Readings: CLR - chapters 1, 2, 3, 4, 5 |
|
September 12 | Sorting and order statistics. Quicksort. Randomization.
Order statistics and selection.
Readings: CLR - chapters 8, 10 |
|
September 19 | Sorting. Lower bound on sorting. Linear-time sort.
Data structures. Heaps (Heapsort). Dictionaries. Binary search trees. Red-black trees. Readings: CLR - chapters 7, 9, 11, 13, 14 |
|
September 26 | Data structures. Binomial heaps. Fibonacci heaps.
Readings: CLR - chapters 18, 20, 21 |
|
October 3 | Data structures. Hash tables. Skip lists.
Augmenting data structures.
Readings: CLR - chapters 12,11,15; paper by Pugh (skip lists) |
|
October 10 | Dynamic programming. Matrix multiplication.
Graph algorithms. Breadth and Depth first search. Topological sort. Strongly connected components. Readings: CLR - chapters 16, 23 |
|
October 17 | Graph algorithms.
Single source shortest path (Bellman-Ford, Dijkstra). Readings: CLR - chapters 25 |
|
October 24 | Midterm | |
October 31 | Graph algorithms.
All pairs shortest path (Floyd-Warshall) Minimum cost spanning trees. Greedy methods. (Kruskal's and Prim's algorithm). Disjoint set union. Readings: CLR - chapters 25, 24, 17, 22 |
|
November 7 | Graph algorithms.
Maximum flow in a network. Ford-Fulkerson. Max-flow, min-cut theorem. Integrality theorem. Maximum matching. Preflow-push algorithm. Readings: CLR - chapter 27
|
|
November 14 | Fast Fourier Transform
Reading: CLR - chapter 32 |
|
November 28 | String matching.
Naive algorithm. Rabin-Karp. Matching with FAs. Knuth-Morris-Pratt. Approximate string matching. Readings: CLR - chapter 34 |
|
December 5 | Number theoretic algorithms
Greatest common divisor. Euclid algorithm. Primality testing. Readings: CLR - chapter 33 |
|
December 12 | NP-completeness. Approximation algorithms.
Readings: CLR - chapter 36, 37 |
|
December 19 | Final exam |
- Course information
- Syllabus
- Problem set 1
- Problem set 2
- Problem set 1 solutions (distributed during the class)
- Problem set 3
- Problem set 2 solutions (distributed during the class)
- Problem set 4
- Problem set 3 solutions (distributed during the class)
- Problem set 5
- Problem set 4 solutions (distributed during the class)
- Problem set 6
- Problem set 5 solutions (distributed during the class)
- Problem set 6 solutions (available at Wachman Hall 313)
- Midterm solutions
- Midterm/problem set statistics
- Problem set 7
- Problem set 8
- Problem set 7 solutions (distributed during the class)
- Problem set 9
- Problem set 10
- Problem set 8 solutions (distriibuted during the class)
- Problem set 9 solutions (distributed during the class)
- Problem set 10 solutions (distributed during the class)
- Final exam information
Late homeworks. No late homeworks are accepted unless a permission of the instructor is obtained in advance.
Collaborations.
You may collaborate on homework solutions in study groups. You must, however,
always write up solutions of your own. Copying of homeworks is not permitted
and will not be tolerated. If the idea of your solution is not entirely
yours and it is obtained with help,, e.g., it arises from a discussion
at your study group meeting or through a llibrary work, always acknowledge
the source and give appropriate credits.
Announcement. Final
exam will be held during the class hours (4:40pm -7:15pm) on Tuesday, December
19, 2000.
Office hours will be on the regular schedule : on Thursday 1-2pm
and on Monday 1-2:30pm.