Duration of the online course: 30 hours and 53 minutes
5
(9)
Build strong algorithm skills with a free online course: data structures, sorting, graphs and dynamic programming. Learn faster, code smarter, earn a certificate.
In this free course, learn about
Algorithm analysis: asymptotic notation, growth rates, and amortized cost
Dynamic arrays and core operations (append/pop) with constant amortized time
Set ADT and sorting, including merge sort and its O(n log n) runtime
Hashing fundamentals, collision handling, and expected linear-time solutions
Limits of direct-access arrays and motivation for hashing
Balanced BSTs (AVL): rotations and why height is O(log n)
Binary heaps/priority queues: insert, delete-max, heapify, and in-place heapsort
Graph basics and traversal: definitions, BFS vs DFS, and typical use cases
Dynamic programming: subproblems, recurrences, and examples (LCS, LIS, coins)
Pseudopolynomial time and classic DP problems like subset sum and rod cutting
Algorithmic complexity overview and problem-solving strategies from sessions/quizzes
Course Description
Strengthen your programming foundations by learning how to think in algorithms. This free online course in Technology and Programming focuses on the tools that make code efficient, scalable, and easier to reason about. Instead of relying on trial and error, you will learn how to model problems clearly, choose the right data structure, and predict performance before you write a full solution.
You will start by connecting computation to algorithmic thinking and asymptotic analysis, building the habit of estimating time and space costs. From there, you will work with core data structures used in real software, including dynamic arrays, sets, hashing, heaps, and balanced trees. As you progress, the course helps you understand not only how these structures work, but when to use them and how their trade-offs affect speed, memory, and reliability.
Graph algorithms are another central theme, giving you practical methods to explore networks and relationships. You will study breadth-first and depth-first search, then move into shortest-path techniques such as Dijkstra and Bellman-Ford, including how to reason about negative weights and the conditions that make certain approaches safe. These topics are essential for applications like routing, dependency resolution, and recommendation systems.
Dynamic programming ties the course together by teaching you to break difficult tasks into natural subproblems and compose solutions systematically. You will practice designing recurrences, optimizing implementations, and recognizing patterns that appear across classic challenges. Problem sessions and quiz reviews reinforce the learning process, helping you build confidence for interviews, academic work, or everyday engineering tasks. By the end, you will have a clearer mental toolkit for tackling new problems and a stronger sense of the next steps in your algorithms journey.
Course content
Video class: 1. Algorithms and Computation45m
Exercise: What is the primary focus of the Introduction to Algorithms class as outlined in the lecture?
Video class: 2. Data Structures and Dynamic Arrays50m
Exercise: What operation can dynamic arrays perform in constant amortized time?
Video class: Introduction to Algorithms - Problem Session 1: Asymptotic Behavior of Functions and Double-ended...1h26m
Exercise: _What is the purpose of the 6.006 problem sessions?
Video class: 3. Sets and Sorting52m
Exercise: What is the time complexity of the merge sort algorithm?
Video class: 4. Hashing52m
Exercise: _What is the set interface used for in the context of the lecture?
Video class: Problem Session 2 (MIT 6.006 Introduction to Algorithms, Spring 2020)1h27m
Exercise: What is the runtime of the initial algorithm for determining the damage caused by each blow in the brick-blowing problem?
Video class: 5. Linear Sorting51m
Exercise: _What is the problem with the direct access array?
Video class: Problem Session 31h26m
Exercise: How can hashing be used to solve problems in linear expected time?
Video class: 6. Binary Trees, Part 150m
Exercise: _What is the data structure that is almost superior to all data structures mentioned in the lecture?
Video class: 7. Binary Trees, Part 2: AVL54m
Exercise: What is a key operation to achieve balanced binary trees?
Video class: Problem Session 41h29m
Exercise: What is the maximum height of a balanced binary tree with n nodes?
Video class: 8. Binary Heaps50m
Exercise: What data structure allows efficient insertion and max deletion in logarithmic time with in-place sorting capability?
Video class: 9. Breadth-First Search52m
Exercise: What is the main focus of the Breadth-First Search algorithm presented in the lecture?
Video class: Quiz 1 review1h25m
Exercise: What type of problems will be evaluated in the quiz?
Video class: 10. Depth-First Search52m
Exercise: _What is the definition of a graph?
Video class: 11. Weighted Shortest Paths57m
Exercise: What is the sum of the weights from vertex A to vertex G in the weighted graph as described in the lecture?
Video class: Problem Session 51h28m
Exercise: _What is the definition of the radius of a graph in the context of the problem discussed in the lecture?
Video class: 12. Bellman-Ford57m
Exercise: What algorithm can detect negative weight cycles in a graph?
Video class: 13. Dijkstra57m
Exercise: Which algorithm is used to find shortest paths in a graph with non-negative weights and no negative cycles in O(E + V log V) time complexity?
Video class: 14. APSP and Johnson56m
Video class: Quiz 2 Review1h22m
Video class: 15. Dynamic Programming, Part 1: SRTBOT, Fib, DAGs, Bowling57m
Video class: 16. Dynamic Programming, Part 2: LCS, LIS, Coins58m
Exercise: _What are the natural subproblems to try if the input is a sequence in dynamic programming?
Video class: 17. Dynamic Programming, Part 3: APSP, Parens, Piano1h03m
Exercise: _What is the reason why Bellman called dynamic programming "dynamic programming"?
Video class: 18. Dynamic Programming, Part 4: Rods, Subset Sum, Pseudopolynomial1h03m
Video class: 19. Complexity59m
Video class: Quiz 3 Review1h24m
Video class: 20. Course Review55m
Video class: 21. Algorithms—Next Steps59m
This free course includes:
30 hours and 53 minutes of online video course
Digital certificate of course completion (Free)
Exercises to train your knowledge
100% free, from content to certificate
Ready to get started?Download the app and get started today.
Course comments: Introduction to algorithms
Bobokulova Dilnoza
very good