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: Fridays, 11-12
TA: David Farrow, dfarrow@andrew, Office: GHC 7411; Office Hours: W 11-noon; F 12:30-1:30
TA: Devin Sullivan, devsullivan@gmail, Office: GHC 7411; Office Hours: M 2-3, Tu 11:30-12:30
Grader: Kaiyuan Tang, kaiyuant@andrew, no office hours, but feel free to email with questions.
TA: Emre Sefer, esefer@cs, Office: GHC 7411, Tu 1:30-2:30, Th 10:45-11:45
To email all the course staff: firstname.lastname@example.org --- this is the best email address to use for questions, etc.
Course Time and Location: MWF 9:30-10:20am; DH A302. 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.
Announcements & Assignments
- The final exam will be in Porter Hall Room 100.
- Homework 11 has been posted. (Note: by request, we've changed the due date to Monday, May 5 at 9:30am --- this is different than what was announced in class.
- TAs and graders wanted. Please apply here and send me your CV.
- Homework 10 has been posted.
- The final exam schedule is set by the university here. Our final exam will be on Fri. May 9 5:30p.m. ‐ 8:30p.m.
- Carl's office hours on Friday, May 2 are canceled and moved to Monday, April 28 from 3pm - 4pm
- Carl's office hours are canceled for Friday, April 11 due to CMU Carnival
- Homework 9 has been posted.
- Carl's office hours are canceled for Friday, April 4 due to the RECOMB conference
- Homework 8 has been posted.
- Homework 7 has been posted.
- Homework 6 has been posted.
- Programming Assignment 1 has been posted. Here are some test inputs.
- Homework 5 has been posted. --- update: problem 3 asks for a "divide-and-conquer" algorithm; don't get too hung up on what a divide and conquer algorithm is: just try to find a O(n)-time algorithm. (The algorithm I'm thinking of wouldn't traditionally be called divide-and-conquer, but shares some features of divide-and-conquer).
- Slides and a Python walkthrough from the Python bootcamp have been posted on autolab.
- Feb 7: Homework 4 has been posted --- Note the unusual deadline.
- Optional Python Bootcamp: in DH A302 on Friday, 2/7 from 5pm to about 6pm.
- Jan 31: Homework 3 has been posted.
- Homework solutions are posted to autolab
- Jan 24: Homework 2 has been posted.
- A mailing list has been set up to email all the course staff: email@example.com. Use it to ask questions about the material, etc.
- Office hours have been posted above.
- Jan 17: Homework 1 has been posted.
- You can use this LaTeX template for the homeworks if you want.
- STARTING JAN 20, WE WILL MEET IN DH A302.
- Please take this background survey by midnight Tuesday, Jan 14
- Homework solutions will be posted on the course's autolab page.
- The course syllabus.