CMPS102 - Analysis of Algorithms

UC Santa Cruz, Spring 2013

About Announcements Schedule /
Lecture Notes
FAQ Contact Misc Readings

Latest CMPS102 Announcements

The final will be on Monday, June 10, from 12-3pm.
Homework 4 example solutions can be found here [pdf]
A histogram of the grade distribution for Homework 3, for those interested. Mean: 65 Median: 70

Course Information

Lecture: TTh 12:00-1:45 (confirmed for both days), JBE 152
Section1: Tuesday 6:00-7:10, JBE 372
Section2: Tuesday 7:30-8:40, JBE 372
Section3: Monday 2:00-3:10, Social Sciences 2 Room 167
Instructor: Dimitris Achlioptas
Office Hours: Tuesday 2-3pm (after class) and by Appointment (via email)
TA: Michael Leece
Office Hours: M3:30-5 Th2-3:30 Baskin Engineering Lounge

Syllabus

A Sort of Introduction


Course Materials

Text: Tardos and Kleinberg
The core of the course will be based on a subset of the book by Kleinberg and Tardos titled Algorithm Design (required text -- available for sale at the university bookstore).

Supplements:
Tantalo Lecture notes
MIT OCW Introduction to Algorithm Analysis

Course Description

Methods for the systematic construction and mathematical analysis of algorithms. Order notation, the RAM model of computation, lower bounds, and recurrence relations are covered. The algorithm design techniques include divide-and-conquer, branch and bound, and dynamic programming. Applications to combinatorial, graph, string, and geometric algorithms. The aim of the course is to make you comfortable with the basic methods involved in the design and analysis of algorithms.

Lecture Schedule

Week 1TueApril 2nd Syllabus
Stable matching problem [ppt] [pdf]
ThurApril 4th Some Representative Problems (+start of mergesort) [ppt] [pdf]
Week 2TueApril 9th Mergesort and Inversions [ppt] [pdf]
ThurApril 11th Take-in Exam
Week 3TueApril 16th Closest pair and Matrix Multiplication [pdf]
ThurApril 18th Graphs [pdf] [ppt]
Week 4TueApril 23rd Greedy Algorithms [pdf] [ppt]
ThurApril 25th Homework 1 due [pdf]
Week 5TueApril 30th Minimum Spanning Tree [pdf] [ppt]
ThurMay 2nd Dynamic Programming [pdf] [ppt]
Week 6TueMay 7th Homework 2 due [pdf]
ThurMay 9thMidterm 12-1pm
Week 7TueMay 14th Still Dynamic Programming [pdf] [ppt]
ThurMay 16th Bellman-Ford [pdf] [ppt]
Week 8TueMay 21st Homework 3 due [pdf]
ThurMay 23rd Network Flow [pdf] [ppt]
Week 9TueMay 28th Network Flow Applications and Extensions [pdf]
ThurMay 30th
Week 10TueJune 4th
ThurJune 6th Homework 4 due [pdf]
FINALS

Frequently Asked Questions

I keep getting mediocre scores on my proofs. What should I do?
Practice. Debug your proofs as if they were code! Name the objects that you talk about in your proof (ie "...therefore there exists a point, P, that..."). Practice.
I'm confused. What should I do?
Go to section and office hours, and ask questions. Email the Google Group or the TA. Don't wait until you fall way behind. The TA is there to help you, but don't expect him to solve all of your problems in the last three hours before an assignment is due.

Professor Dimitri Achlioptas

<last five letters of last name> @ cs.ucsc.edu
Homepage

Michael Leece (TA)

<first initial last name> @ ucsc.edu

Miscellaneous Readings

Regarding the economy of developers
Some thoughts on the P vs. NP problem
The mental effects of multitasking
A puddle as a Music Visualizer
Benoit Mandelbrot, Fractals, and the Mathematics of Roughness
A teacher asks: Why do I teach?