CS447 Computer Algorithms (Fall 2018)

Alternate listing: MA447, CS547, EE667


Prerequisites: CS344
Instructor: Christino Tamon
Lectures: TR 8am SC356
Office hours: TR 9:15-11am, 2:15-3:30 SC373
Contact: last name preceded by 3rd letter in the alphabet at clarkson.edu

Text: Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms. 3e, MIT Press, 2009.

Outline

This course covers algorithmic thinking relevant for solving problems efficiently. Standard techniques covered include: divide-conquer methods, recurrence analysis, dynamic programming, greedy methods, amortization, and others. This course also covers intractabilities and methods for coping with them.

Objectives and outcomes

The objective of this course is to learn fundamental algorithmic techniques, to gain the ability to evaluate the efficiency of algorithms, and to understand certain intractability issues concerning hard algorithmic questions.

The specific outcomes are basic knowledge of the following:


Requirements and Policies

Although attendance is not mandatory, students are responsible for all course materials covered in lectures and any quizzes given during class periods. Students that need to make up missing course work must provide the required Clarkson official exempt form. All students must submit their own work; the exchange of ideas are encouraged but ultimately the submitted work must be the student's own. Please refer to the Clarkson University Regulations for more guidelines on academic integrity and related matters.

Grading Scheme

There is no final exam in this course.

Topics (tentative)


Schedule (in progress)

  1. Week 1-2: Reduction (Chapter 34)
  2. Week 3-4: Flows, Cuts, and Matchings (Chapter 26.1-3)
    Hall's theorem. Ford-Fulkerson. Edmonds-Karp. Bipartite matching.
    Guest lecture on MaxFlow: Chris Lynch (9/18 and 9/20).
  3. Week 5-6: Stable matching (Gale-Shapley). 3D-Matching. MinCut (Karger's algorithm).
  4. Week 7-8: Dynamic programming (Chapter 15). Viterbi algorithm (Problem 15-7).
  5. Week 9-10: Linear Programming (Chapter 29).
  6. Week 11-12: Approximation algorithms (Chapter 35).
    MaxCut: Goemans-Williamson. Semidefinite programming (notes). Multiplicative weights: Arora-Kale-Hazan.
  7. Time permitting: Quantum algorithms. Polynomials and Fast Fourier Transform (Chapter 30). Coding and Compression (Chapter 16.3, Lempel-Ziv).

Assignments


Project

  1. Choose a project topic of interest; you may work in groups of up to three or four.
    Indicate your topic and group by early November.

  2. Submit a final report (hardcopy, at least 10 pages) that contains at minimum the following separate sections:

  3. Prepare a 5-10 minute talk to be delivered during Dead Week (in class).
    Submit by email your talk slides (PDF).

  4. Submit any other items, if any, related to your project (code, etc) by email.

Project Topics
Groups
  1. Damon: A*.
  2. Jack, Ted: Burrows-Wheeler.
  3. Ben, Ben, Jacob: Lempel-Ziv.
  4. Chris, Jared, Lee, Nik: SAT.
  5. Alex: Vertex Cover.
  6. Iqra, Kristina: PageRank.
  7. Miao, Yijun: MDP.
  8. Abdullah, Murshed, Spencer: POMDP.
  9. Anthony, Anthony, Brian, Hunter: Markov models.
  10. Jeremy: search.