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