Login Sign Up

Dynamic Programming, Greedy Algorithms

University of Colorado Boulder via Coursera

Coursera based on 221 ratings

Share

0

Overview

Dynamic Programming and Greedy Algorithms is a foundational course in algorithm design, focused on teaching two essential problem-solving techniques used in computer science and software engineering. This course is ideal for students, developers, and anyone preparing for technical interviews or competitive programming. The dynamic programming (DP) section covers how to solve complex problems by breaking them into overlapping subproblems and storing intermediate results to avoid redundant computations. Learners explore key concepts like memoization, tabulation, and optimal substructure. Classic problems such as...

Syllabus

  • Divide and Conquer Algorithms
    • We will formally cover divide and conquer algorithms as a design scheme and look at some divide and conquer algorithms we have encountered in the past. We will learn some divide and conquer algorithms for Integer Multiplication (Karatsubas Algorithm), Matrix Multiplication (Strassens Algorithm), Fast Fourier Transforms (FFTs), and Finding Closest Pair of Points.
  • Dynamic Programming Algorithms
    • In this module, you will learn about dynamic programming as a design principle for algorithms. We will provide a step-by-step approach to formulating a problem as a dynamic program and solving these problems using memoization. We will cover dynamic programming for finding longest common subsequences, Knapsack problem and some interesting dynamic programming applications.
  • Greedy Algorithms
    • In this module, we will learn about greedy algorithms. We will understand the basic design principles for greedy algorithms and learn about a few algorithms for greedy scheduling and Huffman codes. We will also learn some interesting cases when being greedy provides a guaranteed approximation to the actual solution.
  • Intractability and Supplement on Quantum Computing
    • P vs NP, Examples such as Travelling Salesperson Problem, Vertex Cover, 3-Coloring and others; Integer Linear Programming and Translating Problems into Integer Programming.
Dynamic Programming, Greedy Algorithms
Go to Class

University of Colorado Boulder via Coursera

13 hours 54 minutes

Paid Certificate Available

English

On-Demand

Advanced

Instructor

Sriram Sankaranarayanan

Reviews

No reviews yet. Be the first to review!