Computer Science & Engineering

Learn Computer Science and Engineering from scratch

by Suresh Subasinghe
Level

Search includes every course title, description and complete topic outline.

Every course marked Start here begins with no background at all.

Work toward a finished systemBrowse projects

The machine on a strip of tape 10 11 01 01 q0 1 → q1 R q1 0 → q1 R q1 1 → q2 L q2 _ → halt
The Turing machine, 1936. A strip of tape, one symbol at a time, a head that can read, write and step. Alan Turing showed that this is enough to compute anything computable. Every machine in these courses is a faster arrangement of the same idea.
Projects

Work toward a finished system

Each project is divided into milestones, failure tests and links to the lessons needed at that point.

Browse projects

Interactive courses in computing, electronics, mathematics and machine intelligence. Each course states its prerequisites and develops the subject from first principles.

Explanation and practice

Short explanations are followed by calculations, simulations, experiments and checks that use the idea just introduced.

Prerequisites are stated

A course introduces each term before using it. When earlier material is required, the relevant course and lesson are linked.

Examples compute their results

Interactive diagrams calculate from the selected inputs. Notes supply optional background and clarify common misconceptions.

Approach

The curriculum connects software to the layers beneath it: operating systems, machine instructions, digital logic, signals and physical devices.

It also connects those foundations to algorithms, distributed systems, machine learning and autonomous systems. Each layer is introduced at the point where it becomes useful.

Who it is for

The explanations are written for a curious twelve-year-old who knows basic arithmetic but has no computing background.

The same calculations and simulations can also serve as a refresher for an experienced reader.

All courses are available without charge.