We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Learn Data Structures and Algorithms in Python

Build the data structures yourself, then use them to solve harder problems with less guessing.

What you'll learn in this Python course

If you've had trouble getting past a hard whiteboarding session, this course is for you. Big-O complexity is arguably the most important concept students learn in a formal computer science degree. You'll build data structures from scratch in Python and improve your problem-solving skills. We'll cover binary trees, linked lists, stacks, graphs and more. This Python course will give you the foundation you need to start your career off on the right foot. After completing this course, you'll be comfortable crushing interview questions and writing performant code.

Chapter List

1
Algorithms Intro
Learn about what algorithms are and why they matter
2
Math
Learn the math required to understand Big-O notation, namely exponents, logarithms, and factorials
3
Big-O Analysis
Figure out what Big-O notation and time complexity mean in the context of algorithms and performant code
4
Sorting Algorithms
Learn how data is sorted on a computer, and how to sort it faster
5
Exponential Time
Understand why exponential time complexity is so dangerous
6
Data Structures Intro
Learn about data structures and how they play a critical role in algorithms
7
Stacks
Learn about stacks, the original LIFO data structure and build one from scratch
8
Queues
Learn about the FIFO queue data structure and how to implement a simple one from scratch
9
Linked Lists
Understand how linked lists vary from arrays and how to use one to build a faster queue
10
Binary Trees
Learn about binary trees, what they are used for, and implement one from scratch
11
Red Black Trees
Solve the classic balancing problem of traditional binary trees with a red-black algorithm
12
Hashmaps
Build a hashmap from scratch and learn how to use the Python dictionary type effectively
13
Tries
Build all the methods of a trie class, and efficiently search entire documents of text
14
Graphs
Learn about graph structures and how we can use them to quickly solve a wide array of search problems
15
BFS and DFS
Implement and understand the ever-famous breadth first and depth-first search algorithms
16
P vs NP
Learn about P and NP

Join 42,406 students in the Learn Data Structures and Algorithms in Python course

Read reviews of their learning experiences

Really well thought out course, with plenty of opportunities to test out new knowledge with concrete examples. Maybe Red-Black trees could have done with some more explanation, since it felt quite overwhelming, but that was only 1/16 of the course and the remainder was so well done.

(5/5)
Adam Read profile image

Adam Read

Belfast/Fermanagh, Northern Ireland, UK

A necessary part of any tech field, regardless of what you want to do. This is the foundations of computer science. This course starts simple and grows in complexity, but by the time you get to the end you have all the tools to reason about what you find. This is also not one to take on it's own, follow one of the paths and take it when it tells you to, this is not a day one course. Some experience is required.

(5/5)
John McLeish profile image

John McLeish

Australia

my favorite so far.

(5/5)
cheetosanchez  profile image

cheetosanchez

United States

Amazing but super difficult and rewarding, if you have the willpower to push though !

(5/5)
Simon Thinggaard profile image

Simon Thinggaard

Denmark

This course is HARD, but it's because of the subject. the teaching made it EASY. I took 2 DSA courses in college already and this course gave me so much more confidence

(5/5)
Abdulrahman Binhimd profile image

Abdulrahman Binhimd

Saudi Arabia

This course is a good way to introduce yourself to various different data structures, and understand patterns used for solving questions. However, you still need to practice and solve problems on your own, as the course lacks volume of questions - being an introductory course

(4/5)
Gaurav Amol Bijwe profile image

Gaurav Amol Bijwe

Nagpur

Definitely a challenging course but well worth it.

(5/5)
pentlandite  profile image

pentlandite

United States

Trust the advice and bring a pad and pen to this course. It's challenging but very rewarding to dig into the nitty gritty!

(5/5)
Reed  profile image

Reed

United States

I liked this course, even tho the part of RB Trees was REALLY hard for me at least to understand and grasp, I do think it needs more explanation on some other topics but overall all is good

(5/5)
Guillermo Campanudo profile image

Guillermo Campanudo

Portugal

Showing 1-9 of 584

or view more reviews

Mediocrity doesn't cut it anymore

The only way to become a great developer is to write a lot of code

Avoid tutorial hell

by writing a ton of code

Stay motivated with

a game-like curriculum

Build portfolio projects

to prove your skills

Delve deeper

into foundational concepts

Learn flexibly online

without interrupting your life

For 1% the price of college

to minimize your financial risk

Frequently asked Questions

Got questions? We've got answers

Yes! It's free to create an account and start learning. You'll get all the immersive and interactive features for free for a few chapters. After that, if you still haven't paid for a membership, you'll be in read-only (content only) mode.