This page summarizes the lectures and mentions the suggested reading assignments. This summary is quite brief, and its intention is to help the student and
instructor recollect what was covered. We will be using Jeff Erickson't textbook available here.
Week 1
- Meeting 1: The Egyptian peasant algorithm for integer multiplication. Towers of Hanoi.
- Meeting 2: Solving the Hanoi recurrence. Mergesort, solving the mergesort recurrence.
- Reading: Relevant parts of Chapter 1.
Week 2
- Meeting 1: Quicksort and its analysis. Exponentiation.
- Meeting 2: Subset Sum (Chapter 2.3) and Text Segmentation (Chapter 2.5)
- Reading: Relevant parts of Chapters 1 and 2.
Week 3
- Meeting 1: Analysis for Text Segmentation, and Longest Increasing Subsequence (Chapter 2.6)
- Meeting 2: Recursion + Memoization for LIS; Dynamic Programming for LIS.
- Reading: Relevant parts of Chapters 2 and 3.
Week 4
- Meeting 1: Recursion + Memoization for text segmentation; dynamic programming for the same.
- Meeting 2: Discussion of Home Work 1. Dynmaic Programming for Subset Sum.
- Reading: Relevant portions of Chapter 3.
Week 5
- Meeting 1: Maximum Independent Set on Trees
- Meeting 2: Exercise 6(a) of Chapter 3. Graph concepts from Chapter 5.
- Reading: Relevant portions of Chapters 3 and 5.
Week 6
- Meeting 1: Data structures for representing graphs. Depth first search (from Chapter 6) -- The algorithm for finding all connected components is taken from Section 5.6, but otherwise we only covered 5.1--5.4 from Chapter 5.
- Meeting 2: DFS in directed graphs, from Chapter 6. Finding cycles, and topological sorting.
- Reading: Relevant portions of Chapters 5 and 6
Week 7
- Meeting 1: Review for midterm
- Meeting 2: Midterm 1
Week 8
- Meeting 1: Shortest Paths, from Chapter 8. We talked about Ford's single source shortest path algorithm.
- Meeting 2:
- Reading: Chapter 8