Dynamic programming

Dynamic programming

Dynamic programming is a mathematical optimization method and algorithmic paradigm developed by Richard Bellman in the 1950s. It simplifies complicated problems by breaking them down into simpler sub-problems in a recursive manner, and has found applications in numerous fields. The relationship between the value of the larger problem and the values of the sub-problems is known as the Bellman equation.

8 courses cover this concept

CSE 373 Data Structures and Algorithms

University of Washington

Summer 2022

This course focuses on common data structures and algorithms. It integrates theoretical understanding with practical exercises, preparing students for software-related roles and industry technical interviews. Programming projects, unit testing, and source control techniques are emphasized.

No concepts data

+ 27 more concepts

CS 161 Design and Analysis of Algorithms

Stanford University

Winter 2023

This course provides an in-depth exploration of algorithm analysis and design. It covers various sorting, searching, and selection algorithms, data structures, and fundamental graph algorithms. It emphasizes the understanding of worst and average case analysis, recurrences, and asymptotics.

No concepts data

+ 30 more concepts

15-323 / 15-623 Computer Music Systems and Information Processing

Carnegie Mellon University

Spring 2019

This course explores discrete music information representation and manipulation. It introduces timed event sequences, MIDI protocol, and non-real-time processing techniques like Markov models and algorithmic composition. Prior knowledge of course 15-122 is required.

No concepts data

+ 26 more concepts

15-451/651 Algorithms

Carnegie Mellon University

Spring 2022

This course explores the design and analysis of algorithms, algorithmic modelling techniques, and their efficiency. It aims to provide tools for designing and analyzing personal algorithms, using various analytical tools and frameworks. Some advanced topics not commonly covered in textbooks are also taught.

No concepts data

+ 37 more concepts

CS 221 Artificial Intelligence: Principles and Techniques

Stanford University

Autumn 2022-2023

Stanford's CS 221 course teaches foundational principles and practical implementation of AI systems. It covers machine learning, game playing, constraint satisfaction, graphical models, and logic. A rigorous course requiring solid foundational skills in programming, math, and probability.

No concepts data

+ 88 more concepts

CS 294-40: Learning for robotics and control

UC Berkeley

Fall 2008

This advanced course focuses on the applications of machine learning in the robotics and control field. It covers a wide range of topics including Markov Decision Processes, control theories, estimation methodologies, and robotics principles. Recommended for graduate students.

No concepts data

+ 27 more concepts

CS 170: Efficient Algorithms and Intractable Problems

UC Berkeley

Spring 2020

This is an introductory course to computer science theory, exploring the design and analysis of various algorithms, number theory, and complexity. The prerequisites include familiarity with mathematical induction, big-O notation, basic data structures, and programming in a standard language.

No concepts data

+ 36 more concepts

COS 226 Algorithms and Data Structures

Princeton University

Spring 2023

This course surveys crucial algorithms and data structures used in modern computing, with emphasis on sorting, searching, graphs, and strings. It aims to develop implementations, understand their performance, and evaluate their effectiveness.

No concepts data

+ 25 more concepts