Course Description
From the course catalog:
This course explores advances in algorithm design, algorithm analysis and data structures. The primary focus is on randomized and approximation algorithms, randomized and advanced data structures, and algorithmic complexity. Topics include combinatorial algorithms for cut, packing, and covering problems, linear programming algorithms, approximation schemes, hardness of approximation, random search trees, and hashing.
A shorter, but still appropriate description might be some cool and often recent results about which I'm interested in learning more.
Course Grading
Let's keep it simple. There are 12 tutorial meetings. I'll grade the
work you present at each meeting on completeness, clarity, and
comprehension. Your course grade will be the average of your weekly
grades.
Course Expectations
Each week there will be a handout containing a topic accompanied by readings, questions, problems, and coding.
- The readings will typically be research papers, excerpts from
books, tutorials, and lecture notes. The readings are all required.
You should be prepared to discuss the technical (and non-technical)
aspects of the reading.
- Problems focus on questions of algorithm design and analysis.
They are similar to the problems that appear in problem sets in CS
256 or CS 361. Their solution is typically a proof or well-crafted
argument. Work on problem solutions with your partner and hand in
one join set of solutions. Be prepared to discuss your problems
solutions during tutorial meetings.
- Questions are softer than problems in that they are
less focused on analysis and more focused on larger, more general
ideas about problems solving, data structures, and models of
computation. Each question warrants a written response. The
responses should be finished and exchanged with your tutorial
partner at least 2-3 days before the tutorial meeting. You should
critique your partner's responses in writing and be prepared to
present both your own solutions and critiques during the tutorial
meeting. Students often exchange the TeX of their queston responses
with one another, each handing in a single sheet with the original
responses and their critiques.
- Many of the handouts feature small- to medium-sized coding assignments. In most cases this means implementing an algorithm or data structure and performing some empirical evaluation.