Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Northeastern University

Program Structure and Algorithms Part 2

Northeastern University via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
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.

Syllabus

  • Module 1: Dynamic Programming
    • 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.
  • Module 2: Network Flow
    • 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.
  • Module 3: Intractability
    • 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.
  • Module 4: Bayes’ Rule
    • 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.
  • Module 5: Approximation Algorithms
    • 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.
  • Module 6: Randomized Algorithms
    • 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.

Taught by

Nicholas Brown

Reviews

Start your review of Program Structure and Algorithms Part 2

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.