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.
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.
- 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
- 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
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.
- 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!
Learn To Think Like A Computer Scientist. Master the fundamentals of the design and analysis of algorithms.
- Dynamic Programming
- Greedy Algorithm
- Graphs and more
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.
- Binary Search, Linked Lists, and Complexity
- Binary Search Trees, Traversals
- Hash Tables
- Recursion and Dynamic Programming
- And a lot more
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.
- Intro to CS
- Core CS Programming
- Systems and a lot more
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.
- Big O
- Dynamic and Static Arrays
- Priority Quee
- Binary Trees and much more
Learn about data structures that are used in computational thinking – both basic and advanced.
- 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
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.
- Linked List
- Runtime Analysis
Data Structures Concepts & Singly Linked List Implementation
- Understand the concept of linked list
- Implementation of Linked operations using C programming language
- Basics of data structures
- Visualize how different data structures work
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
- Linked List
- Binary Tree
If you've no problem with money then I'd highly recommend following courses.
- 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