CS 58000 Algorithm Design, Analysis and Implementation
Course Information, Spring 2014

This course is about designing algorithms and analyzing correctness and running time. A tentative list of covered topics include
  • Data structure:  the way to store and organize data. (We assume you already know what are binary trees, heaps and linked lists from previous courses).
    • Random Binary Tree (Treaps)
    • Union find
  • Techniques: “template" for designing algorithms
    • Greedy algorithm
    • Dynamic programming
    • Divide and Conquer
    • Fast Fourier Transform
    • Network Flow
    • Randomized Algorithms
  • Tools for Analyzing Algorithm
    • Asymptotic Analysis
    • Amortized Analysis
    • Probabilistic Analysis
  • Classic Problems
    • Graph Algorithm
    • Algorithm on Integers
    • String Algorithms
  • Intractability, NP-Completeness Reduction and Approximation Algorithms
Discussion Board:
sign up at
It is recommended to ask questions on the Board instead of directly Emailing the teaching staffs.

Grading:  Grading will be done as follows:
Homework Policy:
Recommended Textbook
Academic Integrity: