Free Course Image Introduction to algorithms

Free online courseIntroduction to algorithms

Duration of the online course: 30 hours and 53 minutes

5

StarStarStarStarStar

(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
  • Shortest paths: Bellman-Ford (neg cycles), Dijkstra, Johnson/APSP concepts
  • 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 Computation 45m
  • Exercise: What is the primary focus of the Introduction to Algorithms class as outlined in the lecture?
  • Video class: 2. Data Structures and Dynamic Arrays 50m
  • 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 Sorting 52m
  • Exercise: What is the time complexity of the merge sort algorithm?
  • Video class: 4. Hashing 52m
  • 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 Sorting 51m
  • Exercise: _What is the problem with the direct access array?
  • Video class: Problem Session 3 1h26m
  • Exercise: How can hashing be used to solve problems in linear expected time?
  • Video class: 6. Binary Trees, Part 1 50m
  • 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: AVL 54m
  • Exercise: What is a key operation to achieve balanced binary trees?
  • Video class: Problem Session 4 1h29m
  • Exercise: What is the maximum height of a balanced binary tree with n nodes?
  • Video class: 8. Binary Heaps 50m
  • Exercise: What data structure allows efficient insertion and max deletion in logarithmic time with in-place sorting capability?
  • Video class: 9. Breadth-First Search 52m
  • Exercise: What is the main focus of the Breadth-First Search algorithm presented in the lecture?
  • Video class: Quiz 1 review 1h25m
  • Exercise: What type of problems will be evaluated in the quiz?
  • Video class: 10. Depth-First Search 52m
  • Exercise: _What is the definition of a graph?
  • Video class: 11. Weighted Shortest Paths 57m
  • 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 5 1h28m
  • 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-Ford 57m
  • Exercise: What algorithm can detect negative weight cycles in a graph?
  • Video class: 13. Dijkstra 57m
  • 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 Johnson 56m
  • Video class: Quiz 2 Review 1h22m
  • Video class: 15. Dynamic Programming, Part 1: SRTBOT, Fib, DAGs, Bowling 57m
  • Video class: 16. Dynamic Programming, Part 2: LCS, LIS, Coins 58m
  • 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, Piano 1h03m
  • Exercise: _What is the reason why Bellman called dynamic programming "dynamic programming"?
  • Video class: 18. Dynamic Programming, Part 4: Rods, Subset Sum, Pseudopolynomial 1h03m
  • Video class: 19. Complexity 59m
  • Video class: Quiz 3 Review 1h24m
  • Video class: 20. Course Review 55m
  • Video class: 21. Algorithms—Next Steps 59m

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.

Install the app now

to access the course
Icon representing technology and business courses

Over 5,000 free courses

Programming, English, Digital Marketing and much more! Learn whatever you want, for free.

Calendar icon with target representing study planning

Study plan with AI

Our app's Artificial Intelligence can create a study schedule for the course you choose.

Professional icon representing career and business

From zero to professional success

Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.

You can also use the QR Code or the links below.

QR Code - Download Cursa - Online Courses

Course comments: Introduction to algorithms

BD

Bobokulova Dilnoza

StarStarStarStarStar

very good

More free courses at Programming Fundamentals

Free Ebook + Audiobooks! Learn by listening or reading!

Download the App now to have access to + 5000 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online courses in video, ebooks and audiobooks.

  • More than 60 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate