Analysis of Algorithms (Coursera)

Offered by Princeton University,
Analysis of Algorithms (Coursera)

This course teaches a calculus that enables precise quantitative predictions of large combinatorial structures. In addition, this course covers generating functions and real asymptotics and then introduces the symbolic method in the context of applications in the analysis of algorithms and basic structures such as permutations, trees, strings, words, and mappings.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

All the features of this course are available for free. It does not offer a certificate upon completion.

Syllabus

WEEK 1
Analysis of Algorithms
We begin by considering historical context and motivation for the scientific study of algorithm performance. Then we consider a classic example that illustrates the key ingredients of the process: the analysis of Quicksort. The lecture concludes with a discussion of some resources that you might find useful during this course.

WEEK 2
Recurrences
We begin this lecture with an overview of recurrence relations, which provides us with a direct mathematical model for the analysis of algorithms. We finish by examining the fascinating oscillatory behavior of the divide-and-conquer recurrence corresponding to the mergesort algorithm and the general "master theorem" for related recurrences.

WEEK 3
Generating Functions
Since the 17th century, scientists have been using generating functions to solve recurrences, so we continue with an overview of generating functions, emphasizing their utility in solving problems like counting the number of binary trees with N nodes.

WEEK 4
Asymptotics
Exact answers are often cumbersome, so we next consider a scientific approach to developing approximate answers that, again, mathematicians and scientists have used for centuries.

WEEK 5
Analytic Combinatorics
Analytic Combinatorics. With a basic knowledge of recurrences, generating functions, and asymptotics, you are ready to learn and appreciate the basic features of analytic combinatorics, a systematic approach that avoids much of the detail of the classical methods that we have been considering. We introduce unlabeled and labelled combinatorial classes and motivate our basic approach to studying them, with numerous examples.

WEEK 6
Trees
The quintessential recursive structure, trees of various sorts are ubiquitous in scientific enquiry, and they arise explicitly in countless computing applications. You can find broad coverage in the textbook, but the lecture focuses on the use of analytic combinatorics to enumerate various types of trees and study parameters.

WEEK 7
Permutations
The study of sorting algorithms is the study of properties of permutations. We introduce analytic-combinatoric approaches to studying permutations in the context of this relationship.

WEEK 8
Strings and Tries
From DNA sequences to web indices, strings (sequences of characters) are ubiquitous in modern computing applications, so we use analytic combinatorics to study their basic properties and then introduce the trie, an essential and fundamental structure not found in classical combinatorics.

WEEK 9
Words and Mappings
We view strings as sets of characters or as functions from [1..N] to [1..M] to study classical occupancy problems and their application to fundamental hashing algorithms. Functions from [1..N] to [1..N] are mappings, which have an interesting and intricate structure that we can study with analytic combinatorics.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Contenido de las matemáticas de primaria (Coursera) Coursera
Universidad de los Andes

Contenido de las matemáticas de primaria (Coursera)

En este curso de acceso gratuito*, conocerás algunos temas de las matemáticas escolares con la profundidad necesaria para que puedas ayudar a tus estudiantes a aprenderlas. En este curso, podrás conocer las matemáticas desde cuatro perspectivas: su historia, los conceptos y procedimientos que las caracterizan, las distintas formas en que se hacen presentes (p. ej., tablas, gráficas o expresiones simbólicas), y los fenómenos y situaciones que les dan sentido.

Sep 14th 2026
5-12 Weeks
Cartographie thématique (Coursera) Coursera
École normale supérieure

Cartographie thématique (Coursera)

Apprendre à réaliser des cartes ? C’est ce que propose ce cours grâce à des vidéos, des exercices, un forum. A la fin de la formation, vous maîtriserez les principes de la sémiologie graphique, et vous saurez les mettre en œuvre pour construire des cartes thématiques simples et de qualité. Ces cartes personnelles donneront de la force à vos rapports, synthèses, articles, mémoires universitaires, sites web...

Sep 7th 2026
5-12 Weeks
Fundamentals of Engineering Exam Review (Coursera) Coursera
Georgia Institute of Technology

Fundamentals of Engineering Exam Review (Coursera)

The purpose of this course is to review the material covered in the Fundamentals of Engineering (FE) exam to enable the student to pass it. It will be presented in modules corresponding to the FE topics, particularly those in Civil and Mechanical Engineering. Each module will review main concepts, illustrate them with examples, and provide extensive practice problems.

Sep 7th 2026
5-12 Weeks
Introduction to Mathematical Thinking (Coursera) Coursera
Stanford University

Introduction to Mathematical Thinking (Coursera)

Learn how to think the way mathematicians do - a powerful cognitive process developed over thousands of years. Mathematical thinking is not the same as doing mathematics – at least not as mathematics is typically presented in our school system. School math typically focuses on learning procedures to solve highly stereotyped problems. Professional mathematicians think a certain way to solve real problems, problems that can arise from the everyday world, or from science, or from within mathematics itself.

Sep 7th 2026
5-12 Weeks
Algorithms, Part II (Coursera) Coursera
Princeton University

Algorithms, Part II (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Sep 14th 2026
5-12 Weeks
Initiation à la théorie des distributions (Coursera) Coursera
École Polytechnique

Initiation à la théorie des distributions (Coursera)

Une fonction discontinue peut-elle être solution d'une équation différentielle? Comment définir rigoureusement la masse de Dirac (une "fonction" d'intégrale un, nulle partout sauf en un point) et ses dérivées? Peut-on définir une notion de "dérivée d'ordre fractionnaire"? Cette initiation aux distributions répond à ces questions - et à bien d'autres.

Sep 7th 2026
5-12 Weeks
Big Data Analysis with Scala and Spark (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Big Data Analysis with Scala and Spark (Coursera)

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout.

Sep 14th 2026
4 Weeks
Reproducible Templates for Analysis and Dissemination (Coursera) Coursera
Emory University

Reproducible Templates for Analysis and Dissemination (Coursera)

This course will assist you with recreating work that a previous coworker completed, revisiting a project you abandoned some time ago, or simply reproducing a document with a consistent format and workflow. Incomplete information about how the work was done, where the files are, and which is the most recent version can give rise to many complications.

Sep 14th 2026
5-12 Weeks
Algorithmic Thinking (Part 2) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 2) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Sep 7th 2026
4 Weeks