Dive into the world of algorithm design, a fundamental aspect of computer science. This course provides a comprehensive understanding of various algorithmic design paradigms such as divide and conquer, greedy methods, dynamic programming, backtracking, and branch and bound. You will explore fundamental graph algorithms, gain practical experience in solving complex graph-related problems, and delve into randomized algorithms and complexity classes.


您将学到什么
Master divide and conquer techniques to solve complex problems and enhance algorithm efficiency in software development.
Apply dynamic programming for decision optimization, storing and reusing sub-problems to improve computational problem-solving.
Design and analyze graph algorithms, including shortest paths and minimum spanning trees, to address network challenges.
Utilize branch and bound methods for solving optimization problems like 0-1 knapsack and traveling salesman with precision.
您将获得的技能
要了解的详细信息

添加到您的领英档案
August 2025
107 项作业
了解顶级公司的员工如何掌握热门技能

该课程共有9个模块
Explore the basic framework needed for representing and analyzing algorithms. The module provides a comprehensive understanding of asymptotic notations and a brief discussion of how recursive algorithms are analyzed.
涵盖的内容
16个视频10篇阅读材料14个作业1个插件
Explore techniques for breaking down complex problems into manageable subproblems, with applications in sorting, searching, and mathematical computations.
涵盖的内容
13个视频4篇阅读材料14个作业
In this module, you will gain insights into the algorithm design technique called the greedy method, which is a technique applicable to optimization problems, and how the method makes a series of greedy choices to construct an optimal solution (or close to optimal solution) for a given problem. You will also learn about greedy algorithms like fractional knapsack, activity selection problem, and job sequencing with deadlines.
涵盖的内容
9个视频4篇阅读材料9个作业1个插件
In this module, you will gain insight into dynamic programming, which is a powerful problem-solving technique used in computer science to solve optimization and decision problems. You will also be introduced to the principles, algorithms, and applications of dynamic programming and learn how to break down complex problems into smaller sub-problems, store and reuse solutions to these sub-problems, and ultimately design efficient algorithms for various real-world challenges.
涵盖的内容
8个视频3篇阅读材料9个作业
In this module, you will explore the graph concepts, different types of graphs, and how we can represent a graph in a computer. You will also gain insight into how to model problems as graphs and design efficient algorithms for a wide range of graph-related challenges like minimum spanning trees, single source shortest paths, all pair shortest paths.
涵盖的内容
8个视频3篇阅读材料8个作业1个讨论话题
In this module, you will explore a wide range of graph-related problems like finding the minimum spanning trees, single source shortest paths, and all pair shortest paths.
涵盖的内容
8个视频3篇阅读材料9个作业
In this module, you will learn the concept of backtracking and its applications in problem-solving. Backtracking is a systematic algorithmic approach used to find solutions to problems where you need to make a sequence of decisions and if a decision leads to an unsatisfactory outcome, you backtrack to the previous decision and try an alternative path. This module covers the fundamentals of state space and explores specific problems such as the N-queen problem (4-queen problem), graph coloring problem, sum of subsets, and Hamilton cycle. You will also learn how to apply backtracking to find solutions to these problems.
涵盖的内容
33个视频9篇阅读材料31个作业1个讨论话题1个插件
In this module, you will learn the principles and applications of randomized algorithms. Randomized algorithms use randomization as a fundamental tool to solve computational problems efficiently and often provide probabilistic guarantees of correctness. This module explores several key randomized algorithms, including randomized quicksort, min-cut algorithm, random permutation, convex hull, and Bloom filters. You will also learn how to analyze the expected performance and probabilistic guarantees of these algorithms in various problem-solving scenarios.
涵盖的内容
10个视频2篇阅读材料8个作业1个讨论话题
In this module, you will gain a foundational understanding of P, NP, NP-complete, and NP-hard problems, as well as key concepts like satisfiability problem (SAT), polynomial time reducibility, and common NP-complete problems.
涵盖的内容
12个视频1篇阅读材料5个作业
位教师

从 Algorithms 浏览更多内容
- 状态:预览
Coursera Instructor Network
- 状态:预览
Clemson University
- 状态:免费试用
Rice University
- 状态:免费试用
Stanford University
人们为什么选择 Coursera 来帮助自己实现职业发展




常见问题
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. 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.
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
更多问题
提供助学金,