Course Materials
This page provides access to
various materials for use in teaching and learning from the book
An Introduction to the Analysis of Algorithms, including
lecture slides,
a sample schedule, assignments, and exams.
Along with a MOOC or certificate course
(see tabs at bottom left), it is
appropriate for use by instructors as the basis for a "flipped" class
on the subject, or for selfstudy by individuals.
Flipped class.
If you are an an instructor teaching the analysis of algorithms, an effective way for you to teach the material in a typical college class is to adhere to a weekly cadence, as follows: Each week, send an email note to all students in the class that briefly describes assignments for that week (lectures, reading, and problem sets). The emails used in the most recent offering at Princeton are accessible in the table below; please feel free to edit them and use them in your own class.
 Students watch the lectures at their own pace, do the reading and work on the problem sets (each lecture ends with a few suggestions for assignments, which instructors typically tailor to their own needs).
 Occasional "class meetings" may be scheduled for discussion of the material, reviews for exams, informal interaction with students, and any enrichment material you may wish to cover.
Selfstudy.
An effective way to learn the material on your own is to play the lectures on some regular schedule, do the associated reading, and attempt to solve some of the assigned exercises on your own. If you get stuck on a particular exercise, find some others in the book or on this website, or try to solve some of the problems given in the lectures without looking at the solutions there. In the future, we plan to add more exercises with solutions to this booksite, but that is work in progress.While some of the reading material may be difficult for a typical undergraduate to master on such a quick pass through, a substantial fraction of the coverage is elementary, and the lectures provide a firm basis for understanding the key concepts.
WEEKLY ASSIGNMENT  LECTURE VIDEOS  LECTURE SLIDES 

AofAweek0.txt 
0. Cardinality Estimation
0.1 Introduction 0.2 Exact cardinality count 0.3 Probabilistic counting 0.4 Stochastic averaging 0.5 Refinements 0.6 Final frontier

AA00Cardinality.pdf 
AofAweek1.txt 
1. Analysis of Algorithms
1.1 History 1.2 Approach 1.3 Quicksort 1.4 Resources 
AA01AofA.pdf 
AofAweek2.txt 
2. Recurrences 2.1 Computing 2.2 Telescoping 2.3 Types 2.4 Mergesort 2.5 Master Theorem 3. Generating Functions
3.1 OGFs 3.2 Solving recurrences 3.3 Catalan numbers 3.4 EGFs 3.5 Counting with GFs 
AA02Recurrences.pdf 
AofAweek3.txt

4. Asymptotics 4.1 Standard scale 4.2 Manipulating expansions 4.3 Asymptotics of finite sums 4.4 Bivariate asymptotics

AA04Asymptotics.pdf 
AofAweek4.txt

5. Analytic Combinatorics 5.1 The symbolic method 5.2 Labelled objects 5.3 Coefficient asymptotics 5.4 Perspective

AA05AC.pdf

AofAweek5.txt

6. Trees 6.1 Trees and forests 6.2 BSTs 6.3 Path length 6.4 Other types of trees
7. Permutations 7.1 Basics 7.2 Sets of cycles 7.3 Leftright minima 7.4 Other parameters 7.5 BGFs and distributions

AA06Trees.pdf 
AofAweek6.txt

8. Strings 8.1 Bitstrings with restrictions 8.2 Languages 8.3 Tries 8.4 Trie parameters
9. Words and Mappings 9.1 Words 9.2 Birthday problem 9.3 Coupon collector problem 9.4 Hash tables 9.5 Mappings

AA08Strings.pdf




Review Problem Set


