02-713 Algorithms & Data Structures (for Scientists)

Course Information:

Course Description: Introduction to design and analysis of algorithms and data structures. Where appropriate, emphasis is placed on techniques that are useful for the analysis of scientific data. Topics include dynamic programming, linear programming, network flows, local and heuristic search, and randomization. NP-completeness and approximation algorithms may also be covered. Data structures discussed will include balanced trees, priority queues, and string data structures. Minimal previous algorithmic knowledge is assumed. Classwork will include programming assignments, but strong programming skills are not required.

Instructor: Carl Kingsford
Associate Professor, Ray and Stephanie Lane Center for Computational Biology, School of Computer Science, Carnegie Mellon University.

Office: GHC 7705
Office Hours: 3pm-4:30pm, Mondays in GHC 7705 (starting Jan 28).

TA: Geet Duggal, geet@cs
Office Hours: Tuesdays, 9:30-10:30 and Fridays, 1-2pm in GHC 7413 (starting 2/11/13)

TA: David Farrow, dfarrow@andrew
Office Hours: Mondays, 2-3pm and Wednesdays, 2-3pm in GHC 7603

Course Time and Location: MWF 9:30-10:20am; HH B103. The course is cross-listed as 02-513.

Estimated Coursework: Coursework will consist of near weekly homeworks that will include algorithm design and analysis problems and some programming assignments, 2 midterms, and a final.

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



An optional LaTeX template for homeworks.

Additional resources will be linked as appropriate from the course schedule.

Online lecture notes:

Other textbooks:

Computer documentation:

Other web resources: