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

Data Science Math Skills (Coursera) Coursera
Duke University

Data Science Math Skills (Coursera)

Data science courses contain math—no avoiding that! This course is designed to teach learners the basic math you will need in order to be successful in almost any data science math course and was created for learners who have basic math skills but may not have taken algebra or pre-calculus. Data Science Math Skills introduces the core math that data science is built upon, with no extra complexity, introducing unfamiliar ideas and math symbols one-at-a-time.

Sep 24th 2026
4 Weeks
Calculus: Single Variable Part 4 - Applications (Coursera) Coursera
University of Pennsylvania

Calculus: Single Variable Part 4 - Applications (Coursera)

Calculus is one of the grandest achievements of human thought, explaining everything from planetary orbits to the optimal size of a city to the periodicity of a heartbeat. This brisk course covers the core ideas of single-variable Calculus with emphases on conceptual understanding and applications. The course is ideal for students beginning in the engineering, physical, and social sciences.

Sep 28th 2026
5-12 Weeks
Ethical Issues in Data Science (Coursera) Coursera
University of Colorado Boulder

Ethical Issues in Data Science (Coursera)

Computing applications involving large amounts of data – the domain of data science – impact the lives of most people in the U.S. and the world. These impacts include recommendations made to us by internet-based systems, information that is available about us online, techniques that are used for security and surveillance, data that is used in health care, and many more. In many cases, they are affected by techniques in artificial intelligence and machine learning.

Sep 28th 2026
5-12 Weeks
Jugar y Aprender Matemática en aulas heterogéneas (Coursera) Coursera
Universidad Austral

Jugar y Aprender Matemática en aulas heterogéneas (Coursera)

Cuando se asume la enseñanza de la matemática con el compromiso de la participación de todos los alumnos en una comunidad de producción, en la que se resuelven problemas con distintos procedimientos, se comparan producciones, se analiza la validez de las afirmaciones que se hacen, la tarea resulta todo un desafío. En el caso del plurigrado, el desafío parece aún mayor. ¿Cómo presentar problemas que involucren en este trabajo reflexivo a niños y niñas de distintas edades y con distintos conocimientos?

Sep 28th 2026
4 Weeks
Introduction à la théorie de Galois (Coursera) Coursera
École normale supérieure

Introduction à la théorie de Galois (Coursera)

Le cours expose la théorie de Galois, du classique critère de non-résolubilité des équations polynomiales aux méthodes plus avancées de calcul de groupes de Galois par réduction modulo un nombre premier. Le thème général de cette théorie est l'étude des racines d'un polynôme et concerne en particulier la possibilité de les exprimer à partir des coefficients de ce polynôme. Evariste Galois considère les symétries de ces racines et associe ainsi à ce polynôme un groupe de permutations de ses racines, que l'on appelle maintenant son groupe de Galois.

Sep 28th 2026
5-12 Weeks
Introduction to Logic (Coursera) Coursera
Stanford University

Introduction to Logic (Coursera)

This course is an introduction to Logic from a computational perspective. It shows how to encode information in the form of logical sentences; it shows how to reason with information in this form; and it provides an overview of logic technology and its applications - in mathematics, science, engineering, business, law, and so forth.

Sep 24th 2026
5-12 Weeks
Calculus: Single Variable Part 2 - Differentiation (Coursera) Coursera
University of Pennsylvania

Calculus: Single Variable Part 2 - Differentiation (Coursera)

Calculus is one of the grandest achievements of human thought, explaining everything from planetary orbits to the optimal size of a city to the periodicity of a heartbeat. This brisk course covers the core ideas of single-variable Calculus with emphases on conceptual understanding and applications. The course is ideal for students beginning in the engineering, physical, and social sciences.

Sep 28th 2026
3 Weeks
Fibonacci Numbers and the Golden Ratio (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Fibonacci Numbers and the Golden Ratio (Coursera)

Learn the mathematics behind the Fibonacci numbers, the golden ratio, and how they are related. These topics are not usually taught in a typical math curriculum, yet contain many fascinating results that are still accessible to an advanced high school student. The course culminates in an explanation of why the Fibonacci numbers appear unexpectedly in nature, such as the number of spirals in the head of a sunflower.

Sep 28th 2026
3 Weeks
Decision Making and Reinforcement Learning (Coursera) Coursera
Columbia University

Decision Making and Reinforcement Learning (Coursera)

This course is an introduction to sequential decision making and reinforcement learning. We start with a discussion of utility theory to learn how preferences can be represented and modeled for decision making. We first model simple decision problems as multi-armed bandit problems in and discuss several approaches to evaluate feedback. We will then model decision problems as finite Markov decision processes (MDPs), and discuss their solutions via dynamic programming algorithms. We touch on the notion of partial observability in real problems, modeled by POMDPs and then solved by online planning methods.

Sep 28th 2026
5-12 Weeks
Approximation Algorithms Part I (Coursera) Coursera
École normale supérieure

Approximation Algorithms Part I (Coursera)

How efficiently can you pack objects into a minimum number of boxes? How well can you cluster nodes so as to cheaply separate a network into components around a few centers? These are examples of NP-hard combinatorial optimization problems. It is most likely impossible to solve such problems efficiently, so our aim is to give an approximate solution that can be computed in polynomial time and that at the same time has provable guarantees on its cost relative to the optimum.

Sep 28th 2026
5-12 Weeks
Sistemas Digitales: De las puertas lógicas al procesador (Coursera) Coursera
Universitat Autònoma de Barcelona

Sistemas Digitales: De las puertas lógicas al procesador (Coursera)

En este curso aprenderemos los fundamentos del diseño de los circuitos digitales actuales, siguiendo una orientación eminentemente práctica. A diferencia de otros cursos más "clásicos" de Circuitos Digitales, nuestro interés se centrará más en el Sistema que en la Electrónica que lo sustenta. Este enfoque nos permitirá sentar las bases del diseño de Sistemas Digitales complejos.

Sep 28th 2026
5-12 Weeks