Algorithmic Toolbox
- Offered byCoursera
Algorithmic Toolbox at Coursera Overview
Duration | 37 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Algorithmic Toolbox at Coursera Highlights
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
- Course 1 of 6 in the Data Structures and Algorithms Specialization
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Intermediate Level
- Approx. 37 hours to complete
- English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Algorithmic Toolbox at Coursera Course details
- The 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).
Algorithmic Toolbox at Coursera Curriculum
Programming Challenges
Welcome!
Solving the Sum of Two Digits Programming Challenge (screencast)
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!
Companion MOOCBook
What background knowledge is necessary?
Optional Videos and Screencasts
Alternative testing guide in Python
Maximum Pairwise Product Programming Challenge
Using PyCharm to solve programming challenges
Acknowledgements
Solving Programming Challenges
Algorithmic Warm-up
Why Study Algorithms?
Coming Up
Problem Overview
Naive Algorithm
Efficient Algorithm
Problem Overview and Naive Algorithm
Efficient Algorithm
Computing Runtimes
Asymptotic Notation
Big-O Notation
Using Big-O
Course Overview
Resources
Resources
Resources
Logarithms
Big-O
Growth rate
Greedy Algorithms
Largest Number
Car Fueling
Car Fueling - Implementation and Analysis
Main Ingredients of Greedy Algorithms
Celebration Party Problem
Efficient Algorithm for Grouping Children
Analysis and Implementation of the Efficient Algorithm
Long Hike
Fractional Knapsack - Implementation, Analysis and Optimization
Review of Greedy Algorithms
Resources
Greedy Algorithms
Fractional Knapsack
Divide-and-Conquer
Intro
Linear Search
Binary Search
Binary Search Runtime
Problem Overview and Naïve Solution
Naïve Divide and Conquer Algorithm
Faster Divide and Conquer Algorithm
What is the Master Theorem?
Proof of the Master Theorem
Problem Overview
Selection Sort
Merge Sort
Lower Bound for Comparison Based Sorting
Non-Comparison Based Sorting Algorithms
Overview
Algorithm
Random Pivot
Running Time Analysis (optional)
Equal Elements
Final Remarks
Resources
Resources
Resources
Resources
Resources
Linear Search and Binary Search
Polynomial Multiplication
Master Theorem
Sorting
Quick Sort
Dynamic Programming 1
Change Problem
The Alignment Game
Computing Edit Distance
Reconstructing an Optimal Alignment
Resources
Resources
Additional Slides
Change Money
Edit Distance
Dynamic Programming 2
Problem Overview
Knapsack with Repetitions
Knapsack without Repetitions
Final Remarks
Problem Overview
Subproblems
Algorithm
Reconstructing a Solution
Polynomial vs Pseudopolynomial
Resources
Knapsack
Maximum Value of an Arithmetic Expression