Description

Develops techniques used in the design and analysis of algorithms, with an emphasis on problems arising in computing applications. Example applications are drawn from systems and networks, artificial intelligence, computer vision, data mining, and computational biology. This course covers four major algorithm design techniques (greedy algorithms, divide and conquer, dynamic programming, and network flow), computability theory focusing on undecidability, computational complexity focusing on NP-completeness, and algorithmic techniques for intractable problems, including identification of structured special cases, approximation algorithms, and local search heuristics.

General Information

Time & Place
9:05-9:55 MWF, Ives 305
Textbook
Kleinberg and Tardos, Algorithm Design, Addison Wesley/Pearson, 2005. ISBN 0-321-29535-8
Prerequisites
CS 2800 and CS 3110

Announcements

Final exam review session
5/08/13 9:32 PM
We will have a final exam review session on Sunday, May 12, 4-6pm, tentatively in Upson B17 (pending confirmation).
Office Hour Cancellation
5/05/13 8:13 PM
Hi,
I thought I posted this already, but I guess not. I'll be cancelling my Saturday office hours for the rest of the semester because I'm traveling and don't know what days I'll be in Ithaca.
If you have a question, or would like me to hold office hours on a particular day, please send me an email (my netID is hpm36). If I get a request for OH at a time that I'm in town, I'll be glad to hold them.

Also, I might be able to hold a final review if enough people are interested (although I'm going to be out most of this week so I'm not sure when)
#office_hours
Office Hours Change
3/31/13 1:38 PM
Hi Everyone,
Starting this week I'll be moving my office hours from Sunday 12-2:30pm to Saturday 9:00am-11am because of a scheduling conflict.
Also, I'll be out of town from 4/18-4/21 so my OH on 4/20 will be cancelled.
#office_hours
Proving Correctness of Algorithms
3/04/13 6:08 PM
Hi Everyone,
I have noticed that many students are making a mistake in proving correctness of their algorithms, and that proofs are incomplete.
Please note that when you are proving that your algorithm is correct, you need to make some sort of an 'if and only if' argument.
You need to argue that if there is a solution to the problem you are trying to solve that your algorithm finds it (most of you know how to do this by now), and you also need to show that if your algorithm returns an answer, that this answer is in fact a solution to the problem you are trying to solve. Many of you are forgetting to do the second part of the proof, please make sure you do so, this is especially important when you are solving a problem by reducing it to another problem (such as in the case of max-flow/min-cut or NP-completeness).

#proofs
#homework
#exams
Data Structures and Runtime Analysis
2/10/13 1:28 PM
Hi Everyone,
Just as a note, in this course you are allowed to use any data structures and the associated runtimes for operations that are covered in the Textbook, or during lecture. Furthermore you can use basic data structures such as lists, arrays etc. without proof.

However, note that you are not allowed to use anything involving hashing (such as Hash Tables, Hash Sets etc.) unless you provide a rigorous proof of the runtime of these structures. Eg. if you want to use Hash Tables at any point in this course, you need to provide me a hash function, prove that it doesn't have a lot of hash collisions, and what it means to be amortized O(1) and analyze the cases where it isn't O(1) operation separately.
Bottom line is, if you use Hash functions, you will most likely get points off on homeworks and exams for your runtime analysis and proof of correctness.

#exams
#proofs
#runtime_analysis #homework
No office hours Tuesday
2/03/13 9:11 PM
I have tentatively added a class that conflicts with my current office hour (tues 12-1). If I decide to keep the class I will find a new office hour time. #officehours
Staff Office Hours
NameOffice Hours
Hersh Mehta
When?
Where?
Dexter Kozen
When?
Where?
Sauhard Bindal
When?
Where?
Michelle Eighmey
When?
Where?
Michael Cho
When?
Where?
Felipe Restrepo
When?
Where?
Victor Janas
When?
Where?
nakutolab desalegn
When?
Where?
Nick McCarthy
When?
Where?
Chong Wang
When?
Where?
Ben Schoener
When?
Where?
Yiyi Chen
When?
Where?
Jiexun Xu
When?
Where?
Andrew Levine
When?
Where?
Pradeep Gopinathan
When?
Where?
Luyu Zheng
When?
Where?
Lisa Fawcett
When?
Where?
Yipu Wang
When?
Where?
Jonathan Donovan
When?
Where?
Daniel Schroeder
When?
Where?
Soroush Alamdari
When?
Where?
Bojiong Ni
When?
Where?

Lecture Notes

General Resources