COURSE OUTLINE

Session 5

Exam 1

Session 6

Heaps, Binary Search Trees

Session 1  

Mathematical Background
- Growth of Functions
- Mathematical Induction

Session 3

Elementary Data Structures
- Arrays
- Linked Lists
- Stacks

- Queues
- Simple Trees

Session 2

Analysis of Algorithms
- The Big-O Notation
- Time and Space Complexity
- Simple Sorting Algorithms

Session 4

Sorting and Searching
- Sorting Methods
- Binary Search
- Finding Majority

Session 10

Exam 2

Session 9

Single-Source Shortest Path
- Dijkstra
- Bellman-Ford

Session 8

Graph Algorithms 2
- Connected Components
- Bridges
- Articulation Points

Session 7  

Graph Algorithms 1
- Graph Representation
- Breadth-First Search
- Depth-First Search
- Topological Sorting

Session 12

Dynamic Programming 1
- Sequence alignment
- Fibonacci

- Tower of Hanoi
- Longest Common Subsequence
- Coin Change Problem

Session 11

Greedy Algorithms, Disjoint-Set Unions
- Minimum-Cost Spanning Tree: Kruskal, Prim
- Huffman Coding

Session 13

Dynamic Programming 2
- Longest Increasing Subsequence
- All-Pairs Shortest Path: Floyd-Warshall

- Egg Dropping Puzzle
- Knapsack

Session 14

Backtracking, Branch-and-Bound
- N-Queens
- Travelling Salesman Problem

- 0/1 Knapsack

Session 15

Final Exam