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.
Designed to equip you with the knowledge and skills to tackle a wide range of computational challenges, the course covers the theoretical underpinnings and practical applications of algorithm design principles. By the end of the course, you will be able to design efficient algorithms to solve diverse computational problems, preparing you for advanced studies and professional careers in software development, data analysis, and other IT fields.
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分钟
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分钟
Divide and Conquer Strategies
第 2 单元•小时 后完成
单元详情
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分钟
Recommended Reading: Maximum Subarray Problem•10分钟
Recommended Reading: Strassen’s Algorithm for Matrix Multiplication •10分钟
14个作业•总计63分钟
Test Yourself: Algorithm Design Technique•15分钟
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分钟
Greedy Algorithm Methodology
第 3 单元•小时 后完成
单元详情
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分钟
Dynamic Programming
第 4 单元•小时 后完成
单元详情
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分钟
Test Yourself: Algorithm Design Techniques•30分钟
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分钟
Graph Algorithms - Fundamentals
第 5 单元•小时 后完成
单元详情
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分钟
Advanced Graph Algorithms
第 6 单元•小时 后完成
单元详情
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分钟
Test Yourself: Graph Algorithms Analysis •30分钟
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分钟
Design Technique: Backtracking and Branch & Bound
第 7 单元•小时 后完成
单元详情
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分钟
Test Yourself: Backtracking and Branch & Bound Design Techniques•30分钟
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分钟
1个讨论话题•总计15分钟
Design Techniques: Backtracking•15分钟
Randomized Algorithms
第 8 单元•小时 后完成
单元详情
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分钟
P, NP, NP-Complete, and NP-Hard Problems
第 9 单元•小时 后完成
单元详情
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分钟
Test Yourself: Randomized Algorithms and Computational Problems•30分钟
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分钟
攻读学位
课程 是 Birla Institute of Technology & Science, Pilani提供的以下学位课程的一部分。如果您被录取并注册,您已完成的课程可计入您的学位学习,您的学习进度也可随之转移。
查看符合条件的学位
攻读学位
课程 是 Birla Institute of Technology & Science, Pilani提供的以下学位课程的一部分。如果您被录取并注册,您已完成的课程可计入您的学位学习,您的学习进度也可随之转移。
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.
When will I have access to the lectures and assignments?
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.
What will I get if I purchase the Certificate?
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.
Is financial aid available?
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.