К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Algorithmic Toolbox · LearnSpace
Назад в каталог
courseraПрограммирование

Algorithmic Toolbox

Курс от University of California San Diego
Средний≈ 41.3 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

This online course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

Навыки, которые вы освоите

AlgorithmsComputer ProgrammingDebuggingSolution DesignSoftware TestingScalabilityAnalysisData ProcessingBioinformaticsComputational ThinkingTheoretical Computer ScienceModel OptimizationDesign StrategiesProgram Development

Программа курса

6 модулей · 131 учебных материалов

01Programming Challenges20 материалов

Welcome

Welcome!ВидеоAce Your Next Coding InterviewЧтениеWhat background knowledge is necessary?ЧтениеSocial Networks and MicrolearningЧтение

Programming Assignment 1: Programming Challenges

Учитесь у экспертов

Neil Rhodes

Adjunct Faculty

Daniel M Kane

Assistant Professor

Michael Levin

Visiting Scholar

Michael Levin

Lecturer

Pavel Pevzner

Professor

Alexander S. Kulikov

Professor

Algorithmic Toolbox
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 41.3 ч

6 модулей

Язык: Английский

Субтитры: Арабский, Французский, Бенгальский, Узбекский, Украинский, Китайский (Китай), Греческий, Итальянский, Бразильский португальский, Вьетнамский, Нидерландский, Корейский, Немецкий, Пушту, Урду, Русский, Тайский, Индонезийский, Шведский, Турецкий, Азербайджанский, Испанский, Дари, Хинди, Японский, Казахский, Венгерский, Польский

Часть программы вашего университета
Solving the Sum of Two Digits Programming Challenge (screencast)Видео
For Python Learners: Getting Started with PyCharm Professional IDEВидео
Programming Assignment 1: Sum of Two DigitsПрограммирование
Solve in PyCharm (Python learners): Sum of Two DigitsВнешний инструмент

(OPTIONAL) Solving The Maximum Pairwise Product Programming Challenge in C++

Optional Videos and ScreencastsЧтениеSolving the Maximum Pairwise Product Programming Challenge: Improving the Naive Solution, Testing, DebuggingВидеоStress Test - ImplementationВидеоStress Test - Find the Test and DebugВидеоStress Test - More Testing, Submit and Pass!ВидеоAlternative testing guide in PythonЧтение

Maximum Pairwise Product Programming Challenge

Maximum Pairwise Product Programming ChallengeЧтениеSolving Programming ChallengesЗаданиеProgramming Assignment 1: Maximum Pairwise ProductПрограммированиеSolve in PyCharm (Python learners): Maximum Pairwise ProductВнешний инструмент

Using PyCharm to solve programming challenges (optional experimental feature)

Using PyCharm to solve programming challengesЧтение

Acknowledgements (Optional)

AcknowledgementsЧтение
02Algorithmic Warm-up22 материалов

Why Study Algorithms?

Why Study Algorithms?ВидеоComing UpВидео

Fibonacci Numbers

Problem OverviewВидеоNaive AlgorithmВидеоEfficient AlgorithmВидеоResourcesЧтение

Greatest Common Divisor

Problem Overview and Naive AlgorithmВидеоEfficient AlgorithmВидеоResourcesЧтение

Big-O Notation

Computing RuntimesВидеоAsymptotic NotationВидеоBig-O NotationВидеоUsing Big-OВидеоBig-O Notation: PlotsЛабораторнаяResourcesЧтение

Course Overview

Course OverviewВидео

Programming Assignment 2

Programming Assignment 2: Algorithmic Warm-upПрограммированиеSolve in PyCharm (Python learners): Algorithmic Warm-upВнешний инструментInterview QuestionsЧтение
03Greedy Algorithms26 материалов

The Main Idea of Greedy Algorithms

Largest NumberВидеоQueue of PatientsВидеоImplementation and AnalysisВидеоMain Ingredients of Greedy AlgorithmsВидео

Celebration Party

Celebration Party ProblemВидеоGreedy AlgorithmВидеоImplementation and AnalysisВидео

Maximum Value of the Loot

Maximizing LootВидеоImplementation and AnalysisВидеоReviewВидео

(Optional) Readings

ExamplesЧтениеLocal vs Global OptimumЧтениеProving Correctness of Greedy AlgorithmsЧтениеImplementationЧтениеLargest ConcatenateЗаданиеMoney ChangeЧтениеSolution: Use the Largest Denomination First

Programming Assignment 3

Puzzle: Balls in boxesЗаданиеPuzzle: Activity SelectionЗаданиеPuzzle: Touch All SegmentsЗаданиеProgramming Assignment 3: Greedy AlgorithmsПрограммированиеSolve in PyCharm (Python learners): Greedy AlgorithmsВнешний инструмент
04Divide-and-Conquer35 материалов

Introduction

IntroВидеоLinear SearchВидеоBinary SearchВидеоBinary Search RuntimeВидеоResourcesЧтениеLinear Search and Binary SearchЗаданиеPuzzle: 21 questions gameЗаданиеPuzzle: Two Adjacent Cells of Opposite ColorsЗадание

Polynomial Multiplication

Problem Overview and Naïve SolutionВидеоNaïve Divide and Conquer AlgorithmВидеоFaster Divide and Conquer AlgorithmВидеоResourcesЧтениеPolynomial MultiplicationЗадание

Master Theorem

What is the Master Theorem?ВидеоProof of the Master TheoremВидеоResourcesЧтениеMaster TheoremЗадание

Sorting Problem

Problem OverviewВидеоSelection SortВидеоMerge SortВидеоLower Bound for Comparison Based SortingВидеоNon-Comparison Based Sorting AlgorithmsВидеоResourcesЧтениеSorting

Quick Sort

OverviewВидеоAlgorithmВидеоRandom PivotВидеоRunning Time Analysis (optional)ВидеоEqual ElementsВидеоFinal RemarksВидеоResourcesЧтение

Programming Assignment 4

Puzzle: Local MaximumЗаданиеProgramming Assignment 4: Divide and ConquerПрограммированиеSolve in PyCharm (Python learners): Divide and ConquerВнешний инструмент
05Dynamic Programming 114 материалов

Change Problem

Change ProblemВидеоChange MoneyЗаданиеResourcesЧтениеPuzzle: Number of PathsЗаданиеPuzzle: Two Rocks GameЗаданиеPuzzle: Three Rocks GameЗадание

String Comparison

The Alignment GameВидеоComputing Edit DistanceВидеоReconstructing an Optimal AlignmentВидеоEdit DistanceЗаданиеResourcesЧтение

Programming Assignment 5

Puzzle: Primitive CalculatorЗаданиеProgramming Assignment 5: Dynamic Programming 1ПрограммированиеSolve in PyCharm (Python learners): Dynamic Programming 1Внешний инструмент
06Dynamic Programming 214 материалов

Knapsack

Problem OverviewВидеоKnapsackЗаданиеKnapsack with RepetitionsВидеоKnapsack without RepetitionsВидеоFinal RemarksВидеоPolynomial vs PseudopolynomialЧтениеResourcesЧтение

Placing Parentheses

Problem OverviewВидеоMaximum Value of an Arithmetic ExpressionЗаданиеSubproblemsВидеоAlgorithmВидеоReconstructing a SolutionВидео

Programming Assignment 6

Programming Assignment 6: Dynamic Programming 2ПрограммированиеSolve in PyCharm (Python learners): Dynamic Programming 2Внешний инструмент
LogarithmsЗадание
Big-OЗадание
Growth rateЗадание
Чтение
Proving CorrectnessЧтение
Money ChangeЗадание
Maximizing the Value of the Loot ProblemЧтение
Solution: Take as Much of the Most Expensive Compound as You CanЧтение
Задание
Quick SortЗадание