CSE 3358 - Algorithms and Data Structures

AL KhOwaRIZMi 780 - 850 A.D.
Class
Caruth Room 224, Mon. Fri. 8:30am - 9:50am

Teaching staff
Lecturer: Saad Mneimneh, SIC Room 312
Office hours: Mon. 10:00am - 12:00pm, Wed. 10:00am - 11:00am

Textbook
Introduction to Algorithms, CLRS, MIT Press

Syllabus

- Algorithm analysis, insertion sort, merege sort, chapters 1,2
- Asymptotic notations, chapter 3 pp. 41-50
- Divide and Conquer, merge sort, Strassen's algorithm, quicksort, chapter 7 pp. 145-151, 153-158, chapter 31 pp. 735-740
- Solving recurrences, chapter 4 pp. 62-75
- randomized quicksort, chapter 7
- Stacks, queues, lists, trees, recursion, chapter 10 pp. 200-203, pp. 214-216
- Priority queue, heap, heapsort, chapter 6
- Lower bound on sorting, sorting in linear time, chapter 8, pp/ 165-173
- Hashing, direct addressing, chaining, simple uniform hashing, universal hash functions, chapter 11, pp. 221-236
- Open addressing, probing, uniform hashing, bucket sort, chapter 11, pp. 237-244
- Binary search trees, chapter 12
- AVL trees
- Red-black trees, chapter 13
- Augmenting Red-Black trees, chapter 14
- B-trees, chapter 18
- String Matching, Rabin-Karp algorithm and application of hashing, chapter 32, pp. 906-915
- Suffix trees
- Amortized analysis, dynamic tables, chapter 17
- Splay trees
- Fibonacci heaps (just mention), disjoint sets, chapter 21
- Dynamic programming, longest common subsequence, graphs, chapter 15.4
- Greedy algorithms, activity selection, spanning tree algorithms Kruskal's and Prim's, chapter 16, pp. 370-383, chapter 23
- Depth first search and breadth first search, topological sorting, chapter 22 pp. 540-542, pp.546-551
- Single source shortest paths, Bellman-Ford and Dijkstra, chapter 24, pp. 580-599
- All pairs shortest paths, chapter 25