# Course Information:

**Course Description:** The objective of this course is to study
general computational problems, with a focus on the principles used to
design those algorithms. Efficient data structures will be discussed to
support these algorithmic concepts. Topics include: Run time analysis,
divide-and-conquer algorithms, dynamic programming algorithms, network flow
algorithms, linear and integer programming, large-scale search algorithms
and heuristics, efficient data storage and query, and NP-completeness.
Although this course may have several programming assignments, it is
primarily not a programming course. Instead, it will focus on the design
and analysis of algorithms for general classes of problems. This course is
not open to Computer Science majors. Crosslisted with 15-650 and 02-613.

**What's the deal with the 3 course numbers?**

- 02613: If you are in MSBIC or MSCB program, sign up for this course.
- 15650: If you are another type of graduate student, sign up for this course.
- 15351: If you are an undergraduate, sign up for this course.

**Instructor:** Carl Kingsford

Associate Professor, Computational Biology Department,
School of Computer Science, Carnegie Mellon University.

carlk@cs.cmu.edu

Office: GHC 7705

**Contact information for TAs and graders:** will be posted on
Piazza.

**To contact the course staff:** use Piazza.

**Estimated Coursework:** Coursework will consist of near weekly
homeworks that will include algorithm design and analysis problems, 2
midterms, and a final. There may be 1 or 2 small programming
assignments, or there may not be.

**Textbook:** *Algorithm Design* by Jon Kleinberg and Éva
Tardos, ISBN 0-321-29535-8.

# Announcements & Assignments

- Future announcements will be posted on Piazza.
- We will use Blackboard for handing in assignments
- The course syllabus.