Princeton University
Computer Science Department

Computer Science 423
Theory of Algorithms

Robert Tarjan

Spring 2006


Directory
General Information

Course Summary

This course is designed to provide students with an understanding of the principles and techniques used in the design and analysis of computer algorithms. The course is primarily theoretical and does not require programming, but it does require understanding of the notion of a mathematical proof, some knowledge of elementary discrete mathematics, and mathematical problem-solving skills. We shall discuss and analyze a variety of data structures and algorithms chosen for their importance and their illustration of fundamental concepts. We shall emphasize analyzing the worst-case running time of an algorithm as a function of input size. We shall also spend some time exploring the boundary between feasible (polynominal-time) computations and infeasible computations. This will include discussion of the notorious P=NP? question.

Administrative Information

Lectures: MW 11:00-12:20, Room: Friend Center 004, Office Hours: MW 12:30-2 and By Appt

Professor: Robert Tarjan - 324 CS Building - 258-4797 ret@cs.princeton.edu

Secretary: Mitra Kelly - 323 CS Building - 258-4562 mkelly@cs.princeton.edu

Teaching Assistants: Janek Klawe - 316 CS Building - 258-5386 jklawe@cs.princeton.edu, Office Hours: M 8:00-9:00 PM, Th 5:00-6:00 PM

Precept classes: in small auditorium 105, Tuesdays from 4:30-5:30pm


Problem Sets
Problem Set 1
Problem Set 2
Problem Set 2 Addendum
Problem Set 3
Problem Set 4
Problem Set 5
Problem Set 6

Handouts
Course Information
Complexity of Combinatorial Algorithms
Amortized Comp.Complexity
Notes on Heapsort..
Amortize
Shortest Path Problem
Disjoint Set union 1
Disjoint Set Union 2
Fibonacci Heaps
Splay Trees
Binary Search Trees
Shortest Paths
Maximum Network Flow
Minimum-Cost...
Self-Adjusting Binary...
Dynamic Trees
Computing Point to Point
Efficient Point to Point-Reach For A
Computing Shortest Path
EPP Shortest Path Algorithms
Efficient ALGORITHMS (Plus cartoons)
Reductions
Peculiar Problems
Vertex Cover
How to Multiply