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 45,210 students in the Learn Data Structures and Algorithms in Python course

Read reviews of their learning experiences

Now we're getting into the heady, difficult, and more conceptual area of computer science. The going gets difficult here, particularly toward the end, so get ready!

(4/5)
Chris McGee profile image

Chris McGee

United States

Stupid hard curve, and i know that this website is meant to be hard and have curves as in programming, but this is just too big of a curve.

(2/5)
Markuss Demidovs profile image

Markuss Demidovs

latvia, siguldas novads

I liked this one more than some of the more chaotic projet ones, but funily enough I think some of the concepts would have benefited from a project like structure where you could see the use of certain structures develop. Shit i might give it 5 stars anyway cause this was super useful theory wise and the other idea sounds like it could be more confusing and harder to learn... Ignore the previous critizism, great course.

(4/5)
Pablo Arrieta profile image

Pablo Arrieta

Spain

Great course, if you had a course at a professional institute for applied CS, then this is a great refresher, and it adds on so much content I had to find for myself at the time, or never even heard of. Great exercises and explanations.

(5/5)
Dani Ocaranza profile image

Dani Ocaranza

Santiago, Chile

going to need lots and lots of review after this, this packs alot into one course

(5/5)
Mike Verba profile image

Mike Verba

United States

HARD HARD HARD. But interesting for sure

(5/5)
Boalq  profile image

Boalq

Germany

very tough and challenging from the middle.

(5/5)
Jagannath A profile image

Jagannath A

Chennai, India

Learnt a lot but graphs, trees and P/NP kicked my butt :D

(5/5)
Isaac Omondi profile image

Isaac Omondi

Nairobi

very good complicated course, just a little boring only making boring stuff

(5/5)
Muhammad Burhan Qamar profile image

Muhammad Burhan Qamar

Pakistan

Showing 1-9 of 650

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. Technical interviews still lean on it, and it's how you tell whether code will hold up when the data gets big. Now that AI has hiring managers and recruiters distrusting take-home projects, in-person assessments are super important.