Algorithms and data structures are important for most programmers to understand.

We just released a course on the freeCodeCamp YouTube channel that is 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. In this course, you will:

• Watch live hands-on coding-focused video tutorials
• Practice coding with cloud Jupyter notebooks
• Solve questions from real programming interviews

Aakash N S teaches this course. He is the co-founder and CEO of Jovian and has created many popular courses about machine learning and programming.

The course is broken up into a series of lessons, assignments, and projects. There are Jupyter Notebook files to go along with each section.

Here is what is covered in the course:

### Lesson 1 - Binary Search, Linked Lists and Complexity

• Linear and Binary Search
• Complexity and Big O Notation
• Linked Lists using Python Classes

### Assignment 1 - Binary Search Practice

• Understand and solve a problem systematically
• Implement linear search and analyze it
• Optimize the solution using binary search

### Lesson 2 - Binary Search Trees, Traversals and Recursion

• Binary trees, traversals, and recursion
• Binary search trees & common operations
• Balanced binary trees and optimizations

### Assignment 2 - Hash Tables and Python Dictionaries

• Hash tables from scratch in Python
• Handling collisions using linear probing
• Replicating Python dictionaries

### Lesson 3 - Sorting Algorithms and Divide & Conquer

• Bubble sort and Insertion Sort
• Merge sort using Divide & Conquer
• Quicksort and average complexity

### Assignment 3 - Divide and Conquer Practice

• Implement polynomial multiplication
• Optimize using divide and conquer
• Analyze time and space complexity

### Lesson 4 - Recursion and Dynamic Programming

• Recursion and memoization
• Subsequence and knapsack problems
• Backtracking and pruning

### Lesson 5 - Graph Algorithms (BFS, DFS & Shortest Paths)

• Graphs, trees, and adjacency lists
• Shortest paths and directed graphs

### Project - Step-by-Step Solution to a Programming Problem

• Pick an interesting coding problem
• Solve the problem step-by-step
• Document and present the solution

### Lesson 6 - Python Interview Questions, Tips & Advice

• Practice questions and solutions
• Tips for solving coding challenges
• Advice for cracking coding interviews

Watch the course below or on the freeCodeCamp.org YouTube channel (13-hour watch).