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

Advanced Data Structures in Java (Coursera) Coursera
University of California, San Diego

Advanced Data Structures in Java (Coursera)

How does Google Maps plan the best route for getting around town given current traffic conditions? How does an internet router forward packets of network traffic to minimize delay? How does an aid group allocate resources to its affiliated local partners? To solve such problems, we first represent the key pieces of data in a complex data structure. In this course, you’ll learn about data structures, like graphs, that are fundamental for working with structured real world data.

Jun 1st 2026
5-12 Weeks
Cloud Computing Concepts: Part 2 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts: Part 2 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: Clouds, MapReduce, key-value stores, Classical precursors, Widely-used algorithms, Classical algorithms, Scalability, Trending areas, And more!

Jun 1st 2026
5-12 Weeks
Java Programming: Solving Problems with Software (Coursera) Coursera
Duke University

Java Programming: Solving Problems with Software (Coursera)

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files.

Jun 1st 2026
4 Weeks
Advanced Algorithms and Complexity (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Advanced Algorithms and Complexity (Coursera)

You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal matchings, finding disjoint paths and flight scheduling as well as more surprising ones like image segmentation in computer vision.

Jun 1st 2026
5-12 Weeks
Combinatorics and Probability (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Combinatorics and Probability (Coursera)

Counting is one of the basic mathematically related tasks we encounter on a day to day basis. The main question here is the following. If we need to count something, can we do anything better than just counting all objects one by one? Do we need to create a list of all phone numbers to ensure that there are enough phone numbers for everyone? Is there a way to tell that our algorithm will run in a reasonable time before implementing and actually running it? All these questions are addressed by a mathematical field called Combinatorics.

Jun 1st 2026
5-12 Weeks
Practical Machine Learning (Coursera) Coursera
Johns Hopkins University

Practical Machine Learning (Coursera)

One of the most common tasks performed by data scientists and data analysts are prediction and machine learning. This course will cover the basic components of building and applying prediction functions with an emphasis on practical applications. The course will provide basic grounding in concepts such as training and tests sets, overfitting, and error rates.

Jun 1st 2026
4 Weeks
Big Data Science with the BD2K-LINCS Data Coordination and Integration Center (Coursera) Coursera
Icahn School of Medicine at Mount Sinai

Big Data Science with the BD2K-LINCS Data Coordination and Integration Center (Coursera)

In this course we briefly introduce the DCIC and the various Centers that collect data for LINCS. We then cover metadata and how metadata is linked to ontologies. We then present data processing and normalization methods to clean and harmonize LINCS data. This follow discussions about how data is served as RESTful APIs. Most importantly, the course covers computational methods including: data clustering, gene-set enrichment analysis, interactive data visualization, and supervised learning. Finally, we introduce crowdsourcing/citizen-science projects where students can work together in teams to extract expression signatures from public databases and then query such collections of signatures against LINCS data for predicting small molecules as potential therapeutics.

Jun 1st 2026
5-12 Weeks
Cálculo Diferencial e Integral unidos por el Teorema Fundamental del Cálculo (Coursera) Coursera
Tecnológico de Monterrey

Cálculo Diferencial e Integral unidos por el Teorema Fundamental del Cálculo (Coursera)

Los cursos de Cálculo Diferencial y Cálculo Integral tradicionalmente se ofrecen separados y respetando ese orden. El primero estudia la derivada, y el segundo, la integral, siendo este momento en el que aparece el Teorema Fundamental del Cálculo (TFC) para establecer la relación entre ambos conceptos. En el presente curso vamos a hacer una diferencia: introduciremos la derivada y la integral como conceptos relacionados desde un principio.

Jun 1st 2026
5-12 Weeks
Data Privacy Fundamentals (Coursera) Coursera
Northeastern University

Data Privacy Fundamentals (Coursera)

This course is designed to introduce data privacy to a wide audience and help each participant see how data privacy has evolved as a compelling concern to public and private organizations as well as individuals. In this course, you will hear from legal and technical experts and practitioners who encounter data privacy issues daily.

Jun 3rd 2026
3 Weeks
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (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.

Jun 1st 2026
5-12 Weeks
Cluster Analysis in Data Mining (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cluster Analysis in Data Mining (Coursera)

Discover the basic concepts of cluster analysis, and then study a set of typical clustering methodologies, algorithms, and applications. This includes partitioning methods such as k-means, hierarchical methods such as BIRCH, and density-based methods such as DBSCAN/OPTICS. Moreover, learn methods for clustering validation and evaluation of clustering quality. Finally, see examples of cluster analysis in applications.

Jun 1st 2026
4 Weeks
Interest Rate Models (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Interest Rate Models (Coursera)

This course gives you an easy introduction to interest rates and related contracts. These include the LIBOR, bonds, forward rate agreements, swaps, interest rate futures, caps, floors, and swaptions. We will learn how to apply the basic tools duration and convexity for managing the interest rate risk of a bond portfolio. We will gain practice in estimating the term structure from market data. We will learn the basic facts from stochastic calculus that will enable you to engineer a large variety of stochastic interest rate models. In this context, we will also review the arbitrage pricing theorem that provides the foundation for pricing financial derivatives.

Jun 1st 2026
5-12 Weeks