ESO 207A/211: Data Structures and Algorithms
Course Contents:
- Data Types and ADTs: Modular, Reusable and Safer computing
- Abstraction and Encapsulation
- Generic Data Types, Stack, Expression Evaluator
- Recursion, Loop Invariant, Induction, Proof of correctness
- Order Analysis: Big-oh, Theta and Omega Notations
- Algo. Design Tech.: D-n-C (Binary Search, Max. Element, Merge Sort), Dynamic Prog. (Fibonacci Nos, Knapsack), Greedy Algo. (Knapsack)
- Linear Data Structures: Stack, Queue and List; Sparse Polynomial and Matrix
- Tree: Properties, Representation and Traversal, Expression Tree, Binary Search Tree
- Priority Queue, Partial Order, Heap and Heap Sort
- Sorting: Review of quadratic complexity sorts; Shell and Quick Sort; Order Statistics
- Hashing; Bin, Counting, Radix and Bucket Sorting
- Dictionary, Tries, Huffman and LZW Codecs
- Balanced Search Trees: AVL, B- and Red-Black Tree
- Graph: Definitions and Properties, Representation, DFS and BFS Traversals, Topological Sorting, MST, Shortest Path
- P and NP (if time permits).