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.
(984 reviews)
Details to know
11 assignments
See how employees at top companies are mastering in-demand skills
There are 9 modules in this course
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.
What's included
4 videos2 readings1 assignment1 discussion prompt
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.
What's included
5 videos1 reading3 assignments1 discussion prompt
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.
What's included
5 videos1 reading1 assignment1 discussion prompt
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.
What's included
4 videos1 reading1 assignment1 discussion prompt
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.
What's included
4 videos2 readings1 assignment1 discussion prompt
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.
What's included
4 videos1 reading1 assignment1 discussion prompt
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.
What's included
5 videos1 reading1 assignment1 discussion prompt
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.
What's included
5 videos1 reading1 assignment1 discussion prompt
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.
What's included
6 videos1 reading1 assignment1 discussion prompt
Instructor
Offered by
Recommended if you're interested in Algorithms
University of Colorado System
University of London
Coursera Instructor Network
Nanyang Technological University, Singapore
Why people choose Coursera for their career
Learner reviews
984 reviews
- 5 stars
61.72%
- 4 stars
26.90%
- 3 stars
6.70%
- 2 stars
1.62%
- 1 star
3.04%
Showing 3 of 984
Reviewed on Jun 29, 2024
good for learning Algorithm basics still a lil bit tough if you try the exercises on your own
Reviewed on Sep 14, 2022
I would highly recommend this course to any developer to understand algorithm analysis.
Reviewed on Feb 11, 2024
was really good, understood the importance of analysis of algorithms
New to Algorithms? Start here.
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
No. As per Princeton University policy, no certificates, credentials, or reports are awarded in connection with this course.
Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:
The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.
The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.