## CS447/CS547/EE667/MA447 Computer Algorithms (Fall 2015)

#### Course Prerequisites: CS344 Algorithms and Data Structures and MA211
Foundations

### Course Contact Information

**Instructor**: Chris
Lynch

**Lectures**: TTh 9:30-10:45 RL 244

**Office hours**:
M-F 2-3pm SC 355

**Contact**: SC 387, 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:

- Asymptotic notation for comparing cost measures.
- Tools for dealing with summations and recurrences.
- Design and analysis techniques: dynamic programming and greedy algorithms
- Graph theory and some of its algorithmic problems.
- Network flow
- Rudimentary theory of NP-completeness.
- Extending limits of tractability: approximation, local search
and randomization

### 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

- Test 1: 20% (early October)
- Test 2: 20% (early November)
- Homework: 30%
- Final Exam: 30%

### Tentative Course Schedule

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