CSCI 425: Algorithm Design

Tentative Course Outline

Topics  Reading  Assignments
Mathematical background
  • Getting started
  • Growth of functions
  • Recurrences
  • The Master Method
  • Class notes
  Chapter 1

2.1 - 2.3
3.1 - 3.2
4.1
4.3
  Assignment 1
Quiz 1

Solutions
Analysis techniques
  • Dynamic programming
    • Matrix multiplication
    • Elements of dynamic programming
    • Longest common subsequence
  • Greedy methods
    • A lecture-scheduling problem
    • The knapsack problem
    • Elements of the greedy strategy
    • Matroids and minimum spanning trees
    • A task-scheduling problem
    • Huffman codes
  • Class notes
  • Java implementations
  Chapter 4

Section 15
15.2
15.2
15.4
Section 16
notes
16.2
16.2
16.4
16.5
16.3
  Assignment 2
Quiz 2

Solutions
Graph algorithms
  • Elementary graph algorithms
    • Depth-first search
    • Topological sort
    • Strongly connected components
  • Shortest paths
    • The Bellman-Ford algorithm
    • Dijkstra's algorithm
    • The Floyd-Warshall algorithm
  • Class notes
  • Java implementations
  Chapter 6

Section 22
22.3
22.4
22.5
Section 24
24.1
24.2 - 24.5
25.1 - 25.2
  Assignment 3
Quiz 3

Solutions
***** Midterm Exam I *****   Fri, Oct 17
Flow in networks
  • Definition of a flow
  • The Ford-Fulkerson method
  • Maximum bipartite matching
  • Class notes
  Section 26

26.1
26.2
26.3
  Assignment 4
Quiz 4

Solutions
Algebraic algorithms  Chapter 7

28.1 - 28.2
28.4
30.1 - 30.3
 


String matching  Section 32

32.1
32.2
32.3
  Assignment 5
Quiz 5

Solutions
Geometric algorithms
  • Constructing self-nonintersecting polygons
  • Finding the convex hull
  • Alpha-shapes
  • Finding the closest pair of points
  • Diameter of a point set
  • Class notes
  • Java implementations
  Section 33


33.3

33.4
 
***** Midterm Exam II *****   Wed, Nov 19
NP-completeness
  • Polynomial time verification
  • NP-completeness and reducibility
  • NP-completeness proofs
  • NP-complete problems
  • Class notes
  Section 34

34.1 - 34.2
34.3
34.4
34.5
 


Approximation algorithms
  • The vertex cover problem
  • The traveling salesman problem
  • The set-covering problem
  • The subset-sum problem
  • Class notes
  Section 35

35.1
35.2
35.3
35.5
 
Intro to randomized algorithms
  • The Max-3-CNF satisfability
  • The generalMax-CNF problem
  • The Monte-Carlo methods
  • The Las Vegas algorithms
  • Class notes
  Section 35

35.4
online notes
online notes
online notes
 
***** Final Exam *****   Mon, Dec 15,   12:00 - 2pm in M316