![]() Computer Science Dartmouth College |
Computer Science 31 |
Spring 2013 |
Course Description
This course is about the art of designing efficient algorithms for a wide range of fundamental computational tasks and the science of proving the correctness of such algorithms and formally analyzing their time complexity.
The course will introduce the following basic design paradigms: divide-and-conquer, greedy algorithms, dynamic programming, amortized analysis, and randomization. The computational tasks studied will span several domains. These include sorting and order statistics, computing with integers and number-theoretic algorithms, algorithms on graphs, and geometric algorithms.
Writing mathematical proofs will be required throughout this course. Students are expected to have previous experience with writing proofs. Taking CS 30 will provide this experience.
Students will be expected to be experienced programmers before taking this course, so that they are able to reason about algorithms/code at a high level without seeing actual lines of code in front of them. Taking the CS 1 – CS 10 sequence will provide this experience.
Announcements
- [May 29] The final exam has been posted. See the bottom of the schedule table below.
- [May 18] Slides on Fibonacci heaps have been posted. See table below.
- [Apr 10] Details of the exams have just been announced.
- [Apr 9] If you have not done so yet, please send the instructor an email stating your first and last name (omit middle initials and suffixes) and a chosen password for this course's grades database.
Administrative Basics
Important! Please also read and familiarize yourself with the administrative details not covered in the outline below. Pay special attention to the section that describes how the honor code applies to this course; violations of the honor code will be treated seriously.
Lectures |
LSC 205 | 10 hour | Mon-Wed-Fri 10:00-11:05, X-hr Thu 12:00-12:50 |
Instructor |
Amit Chakrabarti Sudikoff 107 | 6-1710 | Office hours: Mon 1:30–2:30, Fri 11:15–12:15, or by appointment |
Teaching Assistants |
Hanh Nguyen Sudikoff 114 | Office hours: Sun 2:00–4:00, or by appointment Elaine Levey Sudikoff 114 | Office hours: Mon 3:00–5:00, or by appointment |
Textbook |
Required: "Introduction to Algorithms", Third Edition. Cormen, Leiserson, Rivest, and Stein. Suggested additional: "Algorithm Design", Kleinberg and Tardos. |
Prerequisites |
Both CS 10 and CS 30. The reasons are explained in the Course Description. You must meet the professor in person to request a prerequisite waiver. |
Work |
One homework per week. [20 points] Two in-class quizzes. [20 points] Two in-class evening midterms. [30 points] One take-home final exam. [30 points] Please take note of the late homework policy. It will be enforced, strictly. |
Schedule, Homeworks, Exams
This is a work in progress. The dates for the quizzes, the evening midterms and due dates for the homework sets and the final exam are now fixed as shown below. This schedule will be updated frequently. Please check back often, and please remember to RELOAD to get the latest schedule.
The schedule is subject to change, with minimal notice. Especially, greyed-out entries should be considered tentative.
Please be sure to read and understand the Homework Grading Guidelines and the Late Submission Policy.
Official solutions to homeworks and exams (hard-copy only) will be given out when graded work is returned.