CS 577 - Introduction to Algorithms
Summer 2015 |
|
Course Description
This course provides an undergraduate-level introduction to the design and
analysis of algorithms.
The main focus lies on techniques for constructing correct efficient
algorithms and on tools to reason about them. Design paradigms include greed,
divide-and-conquer, dynamic programming, and reductions.
The course also includes an introduction to
computational intractability through the notion of NP-completeness.
The course forms a foundation for all areas of computer science. The
particular computational problems discussed have applications in
artificial intelligence, computational biology, compiler construction,
hardware and network protocols, and optimization.
Tentative Schedule
Week 1: Program correctness
Week 2: Divide & conquer
Week 3: Graph primitives
Week 4-5: Greed
Week 6-7: Dynamic programming
Week 8-9: Network flow
Week 10: NP-completeness
Week 11: Review and exam
Text
Jon Kleinberg and Eva Tardos, Algorithm Design, Addison-Wesley, 2006
Prerequisites
CS 367 (Data Structures) is an essential prerequisite.
Prior exposure
to the logic and algorithmic content of CS 240 (Discrete Mathematics),
corresponding to the first half of the
lecture notes for that course, is also helpful but not assumed.
A questionnaire is distributed before the start of class to
gauge the knowledge of that material and calibrate the course.
Staff
Lectures
Mon 5:30pm-8:30pm in The Beatles, Epic campus. The first lecture is June 8, and the last one August 10.
Review Sessions
Wed and Thu 6:00pm-7:00pm in Hyperion, Epic campus
Course Work
- Homework (60%)
There is an assignment every week of lecture except the last one (week 10).
An assignment typically consists of:
- Several design and analysis problems. Expect those problems to be
challenging. Two of the problems need to be turned in by the start of
the subsequent week's lecture, either on paper in class, or electronically
via Moodle. The other problems are intended for the review session,
additional practice later on, or extra credit.
- One optional programming problem similar to the ACM International
Collegiate Programming Contest. In order to get credit for this problems,
you need to submit it via an automated judge. Detailed instructions are
given in the first assignment.
No sources other than the instructor, the TA, and your fellow students
in the course are allowed.
Model solutions are handed out during the lecture in which the homework
is due, so no late assignments can be accepted.
The lowest score will be dropped.
- Exam (40%)
The final and only exam takes place during the lecture slot of week 11:
Monday, August 17, 5:30-8:30pm. The exam is closed book and closed
notes.
More info
- Moodle: lecture schedule, notes, assignments, other course materials,
grades
- Piazza:
on-line discussions
|