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.

Algorithm Design: Mastering Computational Problem Solving
访问权限由 New York State Department of Labor 提供
您将学到什么
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.
要了解的详细信息

添加到您的领英档案
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个作业
16个视频• 总计138分钟
- Introducing Algorithm Design• 3分钟
- Meet your Instructor: Prof. Febin Vahab• 1分钟
- Meet your Instructor: Prof. Rakesh Prasanna• 1分钟
- Notion of Algorithms• 13分钟
- Methodologies for Analyzing Algorithms• 13分钟
- Notion of Best Case, Average Case, and Worst Case• 8分钟
- Basic Operation Method• 9分钟
- Order of Growth of Algorithms• 11分钟
- Asymptotic Notations: Part I• 8分钟
- Asymptotic Notations: Part II• 12分钟
- Algorithm Analysis: Insertion Sort• 9分钟
- Analysis of Recursive Algorithms• 10分钟
- Solving Recurrences: Backward Substitution• 7分钟
- Solving Recurrences: Recursion Tree—Part I• 10分钟
- Solving Recurrences: Recursion Tree—Part II• 7分钟
- Solving Recurrences: Master Method• 16分钟
10篇阅读材料• 总计100分钟
- Course Overview• 10分钟
- Recommended Reading: Methodologies for Analyzing Algorithms • 10分钟
- Recommended Reading: Asymptotic Notation• 10分钟
- Essential Reading: Notion and Analysis of Algorithms• 10分钟
- Recommended Reading: The Iterative Substitution Method• 10分钟
- Essential Reading: The Recursion Tree Method• 10分钟
- Recommended Reading: The Recursion Tree Method for Solving Recurrences• 10分钟
- Essential Reading: The Master Method• 10分钟
- Recommended Reading: The Master Method for Solving Recurrences• 10分钟
- Recommended Reading: Recursive Algorithm Analysis• 10分钟
14个作业• 总计72分钟
- Practice Quiz: Notion of Algorithms• 3分钟
- Practice Quiz: Methodologies for Analyzing Algorithms• 6分钟
- Practice Quiz: Notion of Best Case, Average Case, and Worst Case• 3分钟
- Practice Quiz: Basic Operation Method• 3分钟
- Practice Quiz: Order of Growth of Algorithms• 6分钟
- Practice Quiz: Asymptotic Notations: Part I• 3分钟
- Practice Quiz: Asymptotic Notations: Part II• 3分钟
- Practice Quiz: Introduction: Algorithm Analysis• 3分钟
- Practice Quiz: Analysis of Recursive Algorithms• 12分钟
- Practice Quiz: Solving Recurrences: Backward Substitution• 6分钟
- Practice Quiz: Solving Recurrences: Recursion Tree—Part I• 3分钟
- Practice Quiz: Solving Recurrences: Recursion Tree—Part II• 3分钟
- Practice Quiz: Solving Recurrences: Master Method• 3分钟
- Test Yourself: Analysis of Algorithms• 15分钟
Explore techniques for breaking down complex problems into manageable subproblems, with applications in sorting, searching, and mathematical computations.
涵盖的内容
13个视频4篇阅读材料14个作业
13个视频• 总计106分钟
- Design Principles and Strategy• 11分钟
- Analysis of Divide and Conquer Algorithms: Mergesort• 10分钟
- Divide and Conquer Algorithm: Quicksort—Part I• 8分钟
- Divide and Conquer Algorithm: Quicksort—Part II• 9分钟
- Divide and Conquer Algorithm: Binary Search• 7分钟
- Problem 1: Integer Multiplication Problem• 10分钟
- Problem 2: Maximum Subarray Problem—Part I• 6分钟
- Problem 2: Maximum Subarray Problem—Part II• 13分钟
- Maximum Subarray Problem: Analysis• 5分钟
- Strassen’s Matrix Multiplication Problem• 6分钟
- Matrix Multiplication: A Simple Divide and Conquer Algorithm• 8分钟
- Strassen’s Algorithm• 6分钟
- Strassen’s Algorithm: Analysis• 5分钟
4篇阅读材料• 总计40分钟
- Recommended Reading: Divide-and-Conquer Recurrence Equations • 10分钟
- Recommended Reading: Integer Multiplication• 10分钟
- Recommended Reading: Maximum Subarray Problem• 10分钟
- Recommended Reading: Strassen’s Algorithm for Matrix Multiplication • 10分钟
14个作业• 总计63分钟
- Practice Quiz: Design Principles and Strategy• 3分钟
- Practice Quiz: Analysis of Divide and Conquer Algorithms: Mergesort• 3分钟
- Practice Quiz: Divide and Conquer Algorithm: Quicksort—Part I• 6分钟
- Practice Quiz: Divide and Conquer Algorithm: Quicksort—Part II• 3分钟
- Practice Quiz: Divide and Conquer Algorithm: Binary Search• 3分钟
- Practice Quiz: Problem 1: Integer Multiplication Problem• 6分钟
- Practice Quiz: Problem 2: Maximum Subarray Problem—Part I• 3分钟
- Practice Quiz: Problem 2: Maximum Subarray Problem—Part II• 3分钟
- Practice Quiz: Maximum Subarray Problem: Analysis• 3分钟
- Practice Quiz: Strassen’s Matrix Multiplication Problem• 3分钟
- Practice Quiz: Matrix Multiplication: A Simple Divide and Conquer Algorithm• 3分钟
- Practice Quiz: Strassen’s Algorithm• 6分钟
- Practice Quiz: Strassen’s Algorithm: Analysis• 3分钟
- Test Yourself: Algorithm Design Technique• 15分钟
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个作业
9个视频• 总计70分钟
- Change Making Problem• 5分钟
- Greedy Strategy: Design Principle and Key Elements• 11分钟
- Introduction to Knapsack Problem • 2分钟
- Fractional Knapsack Algorithm and Analysis• 12分钟
- Fractional Knapsack: Numerical Example• 6分钟
- Task Scheduling Problem• 4分钟
- Task Scheduling: Algorithm and Analysis• 14分钟
- Job Sequencing with Deadlines: Algorithm and Analysis • 4分钟
- Job Sequencing with Deadlines: Numerical Example• 12分钟
4篇阅读材料• 总计40分钟
- Recommended Reading: Greedy Strategy: Principles and Elements• 10分钟
- Recommended Reading: The Fractional Knapsack Problem • 10分钟
- Recommended Reading: Task Scheduling• 10分钟
- Recommended Reading: Job Sequencing with Deadlines• 10分钟
9个作业• 总计42分钟
- Practice Quiz: Change Making Problem• 3分钟
- Practice Quiz: Greedy Strategy: Design Principle and Key Elements• 12分钟
- Practice Quiz: Introduction to Knapsack Problem • 9分钟
- Practice Quiz: Fractional Knapsack Algorithm and Analysis• 3分钟
- Practice Quiz: Fractional Knapsack: Numerical Example• 3分钟
- Practice Quiz: Task Scheduling Problem• 3分钟
- Practice Quiz: Task Scheduling: Algorithm and Analysis• 3分钟
- Practice Quiz: Job Sequencing with Deadlines: Algorithm and Analysis • 3分钟
- Practice Quiz: Job Sequencing with Deadlines: Numerical Example• 3分钟
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个作业
8个视频• 总计78分钟
- Dynamic Programming Paradigm: The General Technique• 5分钟
- Fibonacci Numbers: Top-Down and Bottom-Up Approaches—Part I• 9分钟
- Fibonacci Numbers: Top-Down and Bottom-Up Approaches—Part II• 10分钟
- Matrix Chain Product (MCP)• 5分钟
- MCP: Applying Dynamic Programming• 7分钟
- MCP: Numeric Example• 9分钟
- MCP: Bottom-Up Approach• 16分钟
- 0/1 Knapsack Problem• 18分钟
3篇阅读材料• 总计30分钟
- Recommended Reading: Dynamic Programming: The General Technique • 10分钟
- Recommended Reading: Matrix Chain Product• 10分钟
- Recommended Reading: The 0/1 Knapsack Problem• 10分钟
9个作业• 总计60分钟
- Practice Quiz: Dynamic Programming Paradigm: The General Technique• 6分钟
- Practice Quiz: Fibonacci Numbers: Top-Down and Bottom-Up Approaches—Part I• 6分钟
- Practice Quiz: Fibonacci Numbers: Top-Down and Bottom-Up Approaches—Part II• 3分钟
- Practice Quiz: Matrix Chain Product (MCP)• 3分钟
- Practice Quiz: MCP: Applying Dynamic Programming• 3分钟
- Practice Quiz: MCP: Numeric Example• 3分钟
- Practice Quiz: MCP: Bottom-Up Approach• 3分钟
- Practice Quiz: 0/1 Knapsack Problem• 3分钟
- Test Yourself: Algorithm Design Techniques• 30分钟
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个讨论话题
8个视频• 总计71分钟
- Review: Graph Properties and Types• 6分钟
- Review: Graph Representations• 7分钟
- Path, Cycle, Subgraphs, Connectivity, Trees, and Forests• 10分钟
- Reachability and Strong Connectivity• 6分钟
- Review: Graph Traversal—Breadth First Search (BFS) and Analysis• 13分钟
- Review: Graph Traversal—Depth First Search (DFS) and Analysis• 10分钟
- BFS and DFS Comparison• 4分钟
- Topological Sort: Algorithm and Analysis• 15分钟
3篇阅读材料• 总计30分钟
- Recommended Reading: Graph Terminologies and Representations• 10分钟
- Recommended Reading: Graph Traversals• 10分钟
- Recommended Reading: Topological Sorting• 10分钟
8个作业• 总计48分钟
- Practice Quiz: Review: Graph Properties and Types• 6分钟
- Practice Quiz: Review: Graph Representations• 6分钟
- Practice Quiz: Path, Cycle, Subgraphs, Connectivity, Trees, and Forests• 6分钟
- Practice Quiz: Reachability and Strong Connectivity• 6分钟
- Practice Quiz: Review: Graph Traversal—Breadth First Search (BFS) and Analysis• 3分钟
- Practice Quiz: Review: Graph Traversal—Depth First Search (DFS) and Analysis• 6分钟
- Practice Quiz: BFS and DFS Comparison• 12分钟
- Practice Quiz: Topological Sort: Algorithm and Analysis• 3分钟
1个讨论话题• 总计15分钟
- Graph Algorithms Analysis• 15分钟
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个作业
8个视频• 总计100分钟
- Minimum Spanning Tree• 8分钟
- Kruskal’s Design Strategy • 12分钟
- MST: Prim’s Design Strategy • 14分钟
- Shortest Paths and Properties • 6分钟
- The Bellman-Ford Algorithm • 21分钟
- Dijkstra’s Algorithm • 16分钟
- Transitive Closure: Design Strategy • 14分钟
- All Pair Shortest Path: Floyd’s Design Strategy• 9分钟
3篇阅读材料• 总计30分钟
- Recommended Reading: MST, Kruskal’s Design Strategy and Prim’s Design Strategy• 10分钟
- Recommended Reading: Single Source Shortest Path• 10分钟
- Recommended Readings: Transitive Closure and All Pair Shortest Path• 10分钟
9个作业• 总计78分钟
- Practice Quiz: Minimum Spanning Tree • 6分钟
- Practice Quiz: Kruskal’s Design Strategy • 6分钟
- Practice Quiz: MST: Prim’s Design Strategy • 6分钟
- Practice Quiz: Shortest Paths and Properties • 6分钟
- Practice Quiz: The Bellman-Ford Algorithm • 6分钟
- Practice Quiz: Dijkstra’s Algorithm • 6分钟
- Practice Quiz: Transitive Closure: Design Strategy • 6分钟
- Practice Quiz: All Pair Shortest Path: Floyd’s Design Strategy• 6分钟
- Test Yourself: Graph Algorithms Analysis • 30分钟
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个讨论话题
33个视频• 总计192分钟
- Definition of a State in a State Space • 5分钟
- Finite and Infinite State Space • 7分钟
- Traversing Through State Space • 3分钟
- State Space Tree • 2分钟
- Introduction to Backtracking • 4分钟
- DFS as an Example of Backtracking with State Space Tree • 5分钟
- Definition of the State in the N-Queen Problem• 4分钟
- Traversing Through All State Spaces Using Recursion• 4分钟
- Backtracking Strategy Explanation• 2分钟
- Backtracking Solution versus Solution Without Backtracking• 7分钟
- Time Complexity Comparison• 5分钟
- Graph Coloring Problem: Definitions and Applications• 4分钟
- Naive Approach to Color with All Possible Colors • 2分钟
- Backtracking Strategy with Visualization• 5分钟
- Problem and State Definition • 7分钟
- Naïve Approach to Find Through all Possible Subsets• 4分钟
- Backtracking Code and State Space Tree• 4分钟
- Time Complexity Analysis• 5分钟
- Introduction to Least Cost Search• 9分钟
- Application Examples of Least Cost Search• 6分钟
- Practical Implementation of Least Cost Search• 5分钟
- FIFO Data Structures, Branching, and Bounding Framework• 6分钟
- Analysis and Implementation of FIFO Approach• 3分钟
- 0/1 Knapsack Problem Using FIFO Branch and Bounds• 20分钟
- Comparison with Other Branch and Bound Strategies: Challenges and Limitations• 3分钟
- Optimization Techniques with Examples: Network Routing in Telecommunications and Vehicle Routing for Deliveries• 5分钟
- Bounding Strategies and LC Branching Technique• 7分钟
- 0/1 Knapsack Problem Using LC Branch and Bounds• 11分钟
- Comparison with Other Branch and Bound Strategies, Challenges and Limitations• 3分钟
- Optimization Techniques with Examples: Project Scheduling and Resource Allocation• 6分钟
- Introduction to Job Sequencing with Timebound• 8分钟
- Implementation and Analysis with Optimization Strategy• 5分钟
- Job Sequencing with Deadline• 13分钟
9篇阅读材料• 总计90分钟
- Recommended Reading: Introduction to State Space • 10分钟
- Recommende Reading: N-queen Problem (4 Queen Problem)• 10分钟
- Recommended Reading: Graph Coloring Problem • 10分钟
- Recommended Reading: Sum of Subset• 10分钟
- Recommended Reading: Graph Terminologies and Representations• 10分钟
- Recommended Reading: The Principles of LC Branch and Bound • 10分钟
- Recommended Reading: First-In-First-Out (FIFO) Branch and Bound• 10分钟
- Recommended Reading: LC Branch and Bound• 10分钟
- Essential Reading: Recent Advances in Searching, Branching, and Pruning Within the Realm of Branch-and-Bound Algorithms• 10分钟
31个作业• 总计162分钟
- Practice Quiz: Definition of a State in a State Space • 3分钟
- Practice Quiz: Finite and Infinite State Space • 3分钟
- Practice Quiz: Traversing Through State Space • 3分钟
- Practice Quiz: State Space Tree • 3分钟
- Practice Quiz: Introduction to Backtracking • 3分钟
- Practice Quiz: DFS as an Example of Backtracking with State Space Tree • 3分钟
- Practice Quiz: Definition of the State in the N-Queen Problem• 3分钟
- Practice Quiz: Traversing Through all State Spaces Using Recursion• 3分钟
- Practice Quiz: Backtracking Strategy Explanation• 3分钟
- Practice Quiz: Backtracking Solution, Optimization Over Without Backtracking• 3分钟
- Practice Quiz: Time Complexity Comparison• 3分钟
- Practice Quiz: Graph Coloring Problem: Definitions and Applications• 6分钟
- Practice Quiz: Naive Approach to Color with All Possible Colors • 6分钟
- Practice Quiz: Backtracking Strategy with Visualization• 3分钟
- Practice Quiz: Problem and State Definition • 3分钟
- Practice Quiz: Naïve Approach to Find Through all Possible Subsets• 6分钟
- Practice Quiz: Backtracking Code and State Space Tree• 3分钟
- Practice Quiz: Time Complexity Analysis• 3分钟
- Practice Quiz: Introduction to Least Cost Search• 3分钟
- Practice Quiz: Application Examples of Least Cost Search• 6分钟
- Practice Quiz: Practical Implementation of Least Cost Search• 9分钟
- Practice Quiz: FIFO Data Structures, Branching, and Bounding Framework• 6分钟
- Practice Quiz: Analysis and Implementation of FIFO Approach• 3分钟
- Practice Quiz: Comparison with Other Branch and Bound Strategies: Challenges and Limitations• 6分钟
- Practice Quiz: Optimization Techniques with Examples: Network Routing in Telecommunications and Vehicle Routing for Deliveries• 3分钟
- Practice Quiz: Bounding Strategies and LC: Branching Technique• 6分钟
- Practice Quiz: Comparison with Other Branch and Bound Strategies, Challenges and Limitations• 6分钟
- Practice Quiz: Optimization Techniques with Examples: Project Scheduling and Resource Allocation• 6分钟
- Practice Quiz: Introduction to Job Sequencing with Timebound• 9分钟
- Practice Quiz: Implementation and Analysis with Optimization Strategy• 6分钟
- Test Yourself: Backtracking and Branch & Bound Design Techniques• 30分钟
1个讨论话题• 总计15分钟
- Design Techniques: Backtracking• 15分钟
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个讨论话题
10个视频• 总计66分钟
- Randomized Algorithm• 7分钟
- Classical Quicksort• 14分钟
- Random Selection of Pivot• 6分钟
- Randomized Quicksort Algorithm• 9分钟
- Average Time Complexity Comparison• 3分钟
- Min-Cut Problem Definition• 6分钟
- Contracting Edges• 4分钟
- Classical Algorithm• 8分钟
- Karger’s Algorithm for Finding the Min-Cut• 6分钟
- Time Complexity Comparison• 4分钟
2篇阅读材料• 总计20分钟
- Recommended Reading: Randomized Version of Quicksort • 10分钟
- Recommended Reading: Min Cut Algorithm • 10分钟
8个作业• 总计39分钟
- Practice Quiz: Randomized Algorithm• 12分钟
- Random Selection of Pivot• 3分钟
- Practice Quiz: Randomized Quicksort Algorithm• 3分钟
- Practice Quiz: Average Time Complexity Comparison• 3分钟
- Practice Quiz: Min-Cut Problem Definition• 3分钟
- Practice Quiz: Contracting Edges• 3分钟
- Practice Quiz: Karger’s Algorithm for Finding the Min-Cut• 6分钟
- Practice Quiz: Time Complexity Comparison• 6分钟
1个讨论话题• 总计15分钟
- Randomized Algorithms• 15分钟
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个作业
12个视频• 总计96分钟
- Introduction to Complexity Classes • 23分钟
- Definition of P and NP Classes and Examples • 9分钟
- NP-Completeness: Importance • 7分钟
- Understanding NP-Completeness • 5分钟
- Reductions in Complexity Theory• 5分钟
- NP-Hardness and NP-Hard versus NP-Complete• 4分钟
- Satisfiability Problem (SAT) as an NP-Complete Problem• 11分钟
- Polynomial Time Reducibility: Definition and Examples • 7分钟
- NP-Complete Problems: Introduction • 4分钟
- NP-Complete Problems: Clique and Set-Cover Problems and Hamiltonian Cycle Problem—Part I• 4分钟
- NP-Complete Problems: Clique and Set-Cover Problems and Hamiltonian Cycle Problem—Part II• 9分钟
- NP-Complete Problems: Clique and Set-Cover Problems and Hamiltonian Cycle Problem—Part III• 8分钟
1篇阅读材料• 总计10分钟
- Recommended Reading: Understanding P, NP, NP-Complete, and NP-Hard Problems• 10分钟
5个作业• 总计60分钟
- Practice Quiz: Introduction to Complexity Classes • 6分钟
- Practice Quiz: Understanding NP-Completeness • 9分钟
- Practice Quiz: Reductions in Complexity Theory• 6分钟
- Practice Quiz: NP-Complete Problems: Clique and Set-Cover Problems and Hamiltonian Cycle Problem • 9分钟
- Test Yourself: Randomized Algorithms and Computational Problems• 30分钟
位教师

提供方

提供方

Birla Institute of Technology & Science, Pilani (BITS Pilani) is one of only ten private universities in India to be recognised as an Institute of Eminence by the Ministry of Human Resource Development, Government of India. It has been consistently ranked high by both governmental and private ranking agencies for its innovative processes and capabilities that have enabled it to impart quality education and emerge as the best private science and engineering institute in India. BITS Pilani has four international campuses in Pilani, Goa, Hyderabad, and Dubai, and has been offering bachelor's, master’s, and certificate programmes for over 58 years, helping to launch the careers for over 1,00,000 professionals.
人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
从 Computer Science 浏览更多内容
CClemson University
课程
NNortheastern University
课程


