Online Course Materials
This page provides access to online lectures, lecture slides, and
assignments for use in teaching and learning from the book
An Introduction to the Analysis of Algorithms. It is
appropriate for use by instructors as the basis for a "flipped" class
on the subject, or for selfstudy by individuals.
The lecture videos are currently accessible only on the
Princeton campus—anyone can purchase access
here.
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 Spring 2017 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.
 A weekly "class meeting" is 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 website, 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. At Princeton, we use these materials to teach the first half of a seniorlevel undergraduate course (the second half of the course covers Analytic Combinatorics).
Note: videos beyond the first week are private when this page is browsed from offcampus; click here to signin.
WEEKLY ASSIGNMENT  LECTURE VIDEOS  LECTURE SLIDES  QUESTIONS 

AofAweek1.txt 
0. Introduction (Cardinality) (videos not yet available)

AA00Cardinality.pdf  AofAteq1.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  AofAteq2.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  AofAteq3.pdf 
AofAweek4.txt

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

AA05AC.pdf
 AofAteq4.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  AofAteq5.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  AofAteq6.pdf 