A free, interactive first-year computer science course: programming, data structures, algorithms, digital design and the maths behind computing.
A rigorous computer-science course from the ground up: how computers represent information, programming, data structures, algorithmics, digital design, discrete mathematics, algebra, calculus, and the physics behind computing.
Start this course freeComputer Science I teaches computing from the ground up — not just how to code, but how a computer actually works and why. Lessons are short and paired with practice that includes reading and reasoning about real code, tracing data structures, and working through algorithms step by step, so the ideas stick through use rather than recall.
It starts with how computers represent information and the fundamentals of programming, then moves through data structures and algorithmics, digital design and the physics behind computing. Alongside these sit the mathematical foundations a computer-science degree relies on — discrete mathematics, algebra and calculus — so you understand both the machine and the theory that describes it.
The course is aimed at students beginning a computer-science or software-engineering degree, self-taught programmers who want the theory under their skills, and anyone preparing for a formal CS curriculum. Every unit is free to start, and the lesson content is open-source on GitHub.
Every lesson explanation in Computer Science I is free to read on the web. Practice questions and interactive scenes are in the app.
Yes — you can start it for free on iOS, Android and web, and the lessons are open-source under CC BY-SA on GitHub.
Information representation, programming, data structures, algorithmics, digital design, discrete mathematics, algebra, calculus, and the physics behind computing — the theoretical core of a first-year CS degree.
No. The course introduces programming from first principles alongside how computers represent and process information, so beginners can start here — while self-taught coders can use it to fill in the theory.
Beyond multiple choice, questions have you analyse and fix real code snippets, trace data structures, and step through algorithms, so you practise reasoning like a programmer rather than memorising definitions.
Yes — dedicated units cover discrete mathematics, algebra and calculus, the foundations that later CS topics such as algorithms, complexity and machine learning depend on.