CS447/CS547/EE667 Computer Algorithms (Fall 2009)

Course Prerequisites: CS344 Algorithms and Data Structures and (MA211 Foundations or MA346 Applied Algebra and Discrete Mathematics)


Course Contact Information

Instructor: Chris Lynch
Lectures: TTh 2:30-3:45 SC 342
Office hours: Daily 4-5pm SC 355
Contact: SC 355, clynch@clarkson.edu

Required Text: Jon Kleinberg, Eva Tardos , Algorithm Design Addison Wesley (2006).

Recommended Text: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms (3rd ed.) MIT Press (2009).

Topical Outline

This course studies the algorithmic techniques for solving computational problems efficiently. In particular, the following techniques are covered: basic divide-conquer techniques and analysis using recurrences, dynamic programming, greedy methods and network flow. Some emphasis will be put on graph-theoretic problems and data structures that are relevant to them. We will discuss the theory of NP-completeness on the limitations of solving problems efficiently. Then we will discuss methods for overcoming intractability, such as approximation, local search and randomized algorithms.

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 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. If a student exchanges ideas with another student or gets ideas from another source, then that source must be mentioned on the homework paper. If that is not done, then it is considered cheating. Of course it is also considered cheating to copy something even if the source is referenced. Please refer to the Clarkson University Regulations for more guidelines on academic integrity and related matters.

Grading Scheme


Tentative Course Schedule

  1. (Chapter 1) Introduction.
  2. (Chapter 2) Basics of Algorithm Analysis.
  3. (Chapter 3) Graphs.
  4. (Chapter 4) Greedy Algorithms.
  5. (Chapter 5) Divide and Conquer.
  6. (Chapter 6) Dynamic Programming.
  7. (Chapter 7) Network Flow.
  8. (Chapter 8) NP and Computational Intractability.
  9. (Chapter 9) PSPACE (briefly).
  10. (Chapter 10) Extending limits of tractability.
  11. (Chapter 11) Approximation Algorithms.
  12. (Chapter 12) Local Search.
  13. (Chapter 13) Randomized Algorithms.