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

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
Matrix Methods (Coursera) Coursera
University of Minnesota

Matrix Methods (Coursera)

Mathematical Matrix Methods lie at the root of most methods of machine learning and data analysis of tabular data. Learn the basics of Matrix Methods, including matrix-matrix multiplication, solving linear equations, orthogonality, and best least squares approximation. Discover the Singular Value Decomposition that plays a fundamental role in dimensionality reduction, Principal Component Analysis, and noise reduction.

Sep 14th 2026
5-12 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
Solving Algorithms for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Solving Algorithms for Discrete Optimization (Coursera)

Discrete Optimization aims to make good decisions when we have many possibilities to choose from. Its applications are ubiquitous throughout our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports.

Sep 7th 2026
4 Weeks
Digital Signal Processing 4: Applications (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Digital Signal Processing 4: Applications (Coursera)

Digital Signal Processing is the branch of engineering that, in the space of just a few decades, has enabled unprecedented levels of interpersonal communication and of on-demand entertainment. By reworking the principles of electronics, telecommunication and computer science into a unifying paradigm, DSP is a the heart of the digital revolution that brought us CDs, DVDs, MP3 players, mobile phones and countless other devices.

Sep 14th 2026
3 Weeks
Aléatoire : une introduction aux probabilités - Partie 1 (Coursera) Coursera
École Polytechnique

Aléatoire : une introduction aux probabilités - Partie 1 (Coursera)

Ce cours d'introduction aux probabilités a la même contenu que le cours de tronc commun de première année de l'École polytechnique donné par Sylvie Méléard. Le cours introduit graduellement la notion de variable aléatoire et culmine avec la loi des grands nombres et le théorème de la limite centrale. Les notions mathématiques nécessaires sont introduites au fil du cours et de nombreux exercices corrigés sont proposés.

Sep 7th 2026
5-12 Weeks
Algorithmic Thinking (Part 1) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 1) (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
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