CS447 Computer Algorithms (Fall 2020)

Alternate listing: MA447, CS547, EE667


Prerequisites: CS344
Instructor: Christino Tamon
Lectures: TR 8am (online, synchronous)
Office hours: TBA

Text: Jeff Erickson, "Algorithms", self-published, 1st edition, 2019. link.

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


Syllabus

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.

Course Objectives and Outcomes

The objective of this course is to learn how to:

Upon completion of this course, students should be able to:

  1. Deploy algorithmic design tools such as divide-conquer, dynamic programming, greedy methods, and randomization.
  2. Use analytical tools such as summations, recurrences, probabilistic analysis, and amortization.
  3. Detect incorrect analyses and construct counterexamples to faulty claims.
  4. Explain the concept of intractability and NP-completeness.

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)


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 (updated regularly)