Algorithms and Data Structures are the core of Computer Science and what programming interviews are made of. Knowing them not only benefit in the interviews but also make you a better problem solver thus a better programmer. In this post, I've gathered 10 free Algorithm and Data Structures coures online and also platforms to practise them. If you know more free resources please share them with me in the comments section.
Disclaimer: These courses are not for beginners other than #1 course. Learn programming fundamentals and go through the courses.
1. CS50's Introduction to Computer Science
This course is in the #1 sport for a reason. If I'd to recommend a single course, it'd definitely be this one. This introduction to the intellectual enterprises of computer science and the art of programming covers the FUNDAMENTALS of the programming. Once you go through this course, you'll build a solid base from which you can develop your knowledge from.
What You'll Learn
- A broad and robust understanding of computer science and programming
- How to think algorithmically and solve programming problems efficiently
- Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development
- Familiarity in a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML
- How to engage with a vibrant community of like-minded learners from all levels of experience
- How to develop and present a final programming project to your peers
2. Data Structures and Algorithms Specialization
Master Algorithmic Programming Techniques. Advance your Software Engineering or Data Science Career by Learning Algorithms through Programming and Puzzle Solving. Ace coding interviews by implementing each algorithmic challenge in this Specialization. Apply the newly-learned algorithmic techniques to real-life problems, such as analyzing a huge social network or sequencing a genome of a deadly pathogen.
What you'll learn
- Play with 50 algorithmic puzzles on your smartphone to develop your algorithmic intuition!
- Learn exactly the same material as undergraduate students in “Algorithms 101” at top universities and more!
- Apply the newly learned algorithms to solve real-world challenges
- If you decide to venture beyond Algorithms 101, try to solve more complex programming challenges (flows in networks, linear programming, streaming algorithms, etc.) and complete an equivalent of a graduate course in algorithms!
3. Algorithms Specialization
Learn To Think Like A Computer Scientist. Master the fundamentals of the design and analysis of algorithms.
What you'll learn
- Algorithms
- Dynamic Programming
- Greedy Algorithm
- Graphs and more
4. Data Structures and Algorithms in Python
A beginner-friendly introduction to common data structures (linked lists, stacks, queues, graphs) and algorithms (search, sorting, recursion, dynamic programming) in Python. This course will help you prepare for coding interviews and assessments.
What you'll learn
- Binary Search, Linked Lists, and Complexity
- Binary Search Trees, Traversals
- Hash Tables
- Recursion and Dynamic Programming
- And a lot more
5. Ossue Computer Science
The OSSU curriculum is a complete education in Computer Science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.
What you'll learn
- Intro to CS
- Core CS Programming
- Maths
- Systems and a lot more
6. Data Structures Easy to Advanced
Learn and master the most common data structures in this full course from Google engineer William Fiset. This course teaches data structures to beginners using high quality animations to represent the data structures visually.
What you'll learn
- Big O
- Dynamic and Static Arrays
- Stack
- Priority Quee
- Binary Trees and much more
7. Data Structures Fundamentals
Learn about data structures that are used in computational thinking – both basic and advanced.
What you'll learn
- Basics of data structures including their fundamental building blocks: arrays and linked lists
- How to use Dynamic arrays
- A very powerful and widely used technique called hashing and its applications
- How to use priority queues to efficiently schedule jobs, in the context of a computer operating system or real life
- Basic structure of binary search trees - AVL trees and Splay trees
- Applications of data structures
8. Data Structure
The course prepares the students for (and is a prerequisite for) the more advanced material students will encounter in later courses. The topics covered in the course are among the most fundamental material in all of computer science.
What you'll learn
- Linked List
- Stack
- Runtime Analysis
9. Data Structures Concepts & Singly Linked List Implementation
Data Structures Concepts & Singly Linked List Implementation
What you'll learn
- Understand the concept of linked list
- Implementation of Linked operations using C programming language
- Basics of data structures
- Visualize how different data structures work
10. Algorithms and Data Structures - Part 1
In this course we will look at the core data structures and algorithms used in everyday applications. We will discuss the trade-offs involved with choosing each data structure, along with traversal, retrieval, and update algorithms
What you'll learn
- Linked List
- Stack
- Quee
- Binary Tree
Bonus: Paid Courses and Platforms to Practise
If you've no problem with money then I'd highly recommend following courses.
Paid Courses
- JavaScript Algorithms and Data Structures Masterclass
- Master the Coding Interview: Data Structures + Algorithms
- Mastering Data Structures & Algorithms using C and C++
- Data Structures A-Z : Data Structures + Algorithms Bootcamp
- Practical Data Structures & Algorithms in Java + HW