This course will guide you through the essential principles of algorithms and their significance in computational problem-solving. You'll begin by exploring what an algorithm is, its core characteristics, and how it applies to real-world scenarios—from simple everyday tasks to complex computing challenges. As you progress, you will learn about the critical role algorithms play in improving efficiency and scalability across various fields. We’ll break down key concepts such as algorithmic complexity, helping you evaluate the efficiency of different approaches, which will ultimately guide your decision-making.



Program Structure and Algorithms Part 2

Instructor: Nicholas Brown
Access provided by Vinnytsia National Technical University
Skills you'll gain
Details to know

Add to your LinkedIn profile
32 assignments
July 2025
See how employees at top companies are mastering in-demand skills

There are 6 modules in this course
In this module, you will master dynamic programming principles such as memoization and tabulation to optimize complex problems. You will learn how to apply these techniques by implementing the Bellman-Ford algorithm and solving optimization challenges. Additionally, you will see how to use dynamic programming and backtracking to tackle puzzles and constraint-satisfaction problems, with opportunities to integrate reinforcement learning concepts.
What's included
2 videos16 readings5 assignments2 app items
In this module you will explore network flow fundamentals and the max-flow min-cut theorem and their practical applications. You will master key algorithms such as Ford-Fulkerson and Push-Relabel to solve network flow problems. These techniques will be applied to real-world challenges like bipartite matching and project selection, providing a strong foundation in network optimization.
What's included
1 video16 readings5 assignments
In this module, you will gain a deep understanding of P, NP, and NP-Completeness, including how to classify and differentiate these problem types. You will master techniques for proving NP-Completeness and identifying NP-Hard problems. Additionally, you will develop and apply approximation algorithms and heuristics to tackle intractable problems, focusing on efficiency and trade-offs in complex problem-solving.
What's included
13 readings5 assignments1 app item
In this module, you will master the fundamentals of Bayes' Rule, including understanding its components such as prior, likelihood, posterior, and evidence. You will learn how to apply Bayes' Rule to solve probability problems and update prior information with new evidence. Additionally, you will employ Bayesian inference to analyze data.
What's included
13 readings5 assignments
In this module, you will explore the role of approximation algorithms in addressing NP-hard optimization problems by seeking near-optimal solutions within a practical time frame. You will learn to evaluate the performance of these algorithms using performance ratios to gauge their proximity to the optimal solution. Through examples such as the Vertex Cover, Traveling Salesman, Set Covering, and Subset Sum Problems, you will gain hands-on experience in applying approximation algorithms.
What's included
17 readings7 assignments
In this module, you will delve into the principles and motivations behind randomized algorithms, understanding the key differences between deterministic and randomized approaches. You will analyze randomized sorting and searching algorithms, such as randomized quicksort and randomized binary search, to assess their efficiency and reliability. Additionally, you will explore randomized data structures like skip lists and hash tables, evaluating their performance advantages.
What's included
14 readings5 assignments
Instructor

Offered by
Why people choose Coursera for their career




Explore more from Data Science

Northeastern University

Northeastern University

Princeton University

Princeton University

