CS447/CS547/EE667 Computer Algorithms (Fall 2017)

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: C. Moore and S. Mertens, The Nature of Computation, Oxford University Press, 2011.

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.

Outline (tentative)

More pointers to the text.

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

Tuesday talks:

  1. 8:00: Ryan, Mike: MapReduce.
  2. 8:10: Wen: sorting algorithms (PageRank).
  3. 8:20: Zander: learning algorithms (GANs).
  4. 8:30: Guchuan: network algorithms.
  5. 8:40: Dohan, Ashwaq, Aratrika: constraint satisfaction algorithms (Schoning's algorithm).
  6. 8:50: Abby, Ben, Eric: data (pancake) containers.
Thursday talks:
  1. 8:00: Dennis, Saleh: A* search.
  2. 8:10: Scott, Matthew: compression.
  3. 8:20: Abd: compression.
  4. 8:30: Jacob, Tanner, Brendan: distributed algorithms (Paxos).
  5. 8:40: Daniel, Joy, Grayson, Andrei: learning Markov models.
  6. 8:50: Zhiliu: learning algorithms (Capsule Net).
  7. 9:00: Houchao: NNs.
  8. 9:10: Phillip: HMMs.