This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to intractability (NP-completeness) and using linear/integer programming solvers for solving optimization problems. We will also cover some advanced topics in data structures.
Этот курс входит в специализацию ''Специализация Data Science Foundations: Data Structures and Algorithms'
от партнера
Об этом курсе
Completion of previous courses. Calculus, probability theory: distributions, expectations and moments. Some programming experience with Python.
Чему вы научитесь
Describe basic algorithm design techniques
Create divide and conquer, dynamic programming, and greedy algorithms
Understand intractable problems, P vs NP and the use of integer programming solvers to tackle some of these problems
Приобретаемые навыки
- Analysis of Algorithms
- Algorithm Design
- Python Programming
- Data Structure Design
- Intractability
Completion of previous courses. Calculus, probability theory: distributions, expectations and moments. Some programming experience with Python.
от партнера

Колорадский университет в Боулдере
CU-Boulder is a dynamic community of scholars and learners on one of the most spectacular college campuses in the country. As one of 34 U.S. public institutions in the prestigious Association of American Universities (AAU), we have a proud tradition of academic excellence, with five Nobel laureates and more than 50 members of prestigious academic academies.
Сделайте шаг навстречу диплому магистра.
Программа курса: что вы изучите
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 (Karatsuba’s Algorithm), Matrix Multiplication (Strassen’s 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
Excellent. This course covers some difficult topics, but the lectures and homework assignments were superb and made them quite approachable.
Специализация Data Science Foundations: Data Structures and Algorithms: общие сведения
Building fast and highly performant data science applications requires an intimate knowledge of how data can be organized in a computer and how to efficiently perform operations such as sorting, searching, and indexing. This course will teach the fundamentals of data structures and algorithms with a focus on data science applications. This specialization is targeted towards learners who are broadly interested in programming applications that process large amounts of data (expertise in data science is not required), and are familiar with the basics of programming in python. We will learn about various data structures including arrays, hash-tables, heaps, trees and graphs along with algorithms including sorting, searching, traversal and shortest path algorithms.

Часто задаваемые вопросы
Когда я получу доступ к лекциям и заданиям?
Что я получу, оформив подписку на специализацию?
Можно ли получить финансовую помощь?
Остались вопросы? Посетите Центр поддержки учащихся.