Data Structures & Algorithms
Problem solving and algorithmic thinking.
- Structured Path
- Beginner to Advanced
Open Source Learning Platform
A structured platform for computer science learning. Explore, practice, build, and move forward with confidence.
~/learn
Well-structured paths to help you build skills and achieve your goals.
Problem solving and algorithmic thinking.
How data is stored, queried and kept correct.
What the machine is doing while your code runs.
How systems talk to each other, layer by layer.
How it works
Short pages that explain the thing itself, in the order a course teaches it, with a diagram where a diagram helps.
Open a courseType it, run it on a real compiler, and when a case fails you are told which one and why — not just that it broke.
Solve somethingEvery solve is recorded. What you have done becomes the thing you point at when somebody asks what you can do.
See the boardThe workbench
Five languages, hidden cases, and output you can read. The same toolchain grades your submission and runs whatever you paste into the playground.
#include <bits/stdc++.h>
int main() {
int n, m; std::cin >> n >> m;
// mark on enqueue, never on dequeue
std::vector<char> seen(n + 1);
}$ g++ -O2 main.cpp && ./a.out
Accepted · 9/9 tests · 41 ms · 3.2 MB
Ways in
Read other people’s code, then change some of it. A first pull request is a smaller step than it looks.
View on GitHub(opens in a new tab)A record of what you have built and solved, in a form somebody hiring can read in thirty seconds.
Build a résumé(opens in a new tab)See who else on your campus is working through the same material, and where you sit among them.
Find your collegeAnything you want to try, in any of the languages, with nothing graded and nothing recorded.
Start typingThe first one prints a line of text. The last one is a graph.