Computer science

Computer science#

The computer science notes come mostly from undergraduate courses at UVA, plus later additions on GPUs and parallel training. Data structures and algorithms come first, since every other chapter assumes them. Then the machine itself: how numbers and instructions are stored and executed (architecture) and how the operating system shares processors, memory and disks between programs.

The remaining chapters stand alone. Languages is a quick reference for python, c/c++, java and R. Information retrieval covers how a search engine is built and how it differs from a database. Theory of computation asks which problems machines can solve at all and which they can solve fast, and the short quantum computing note asks whether physics changes those answers.

The chapters of this part, linked by shared vocabulary. Faded dots are the closest chapters in other parts.
Data structures

Linked lists and stacks, balanced search trees, heaps and Huffman codes, hash tables, and the standard graph algorithms.

13 min · 2 interactive

Data structures
Algorithms

Big-O notation, a catalog of sorting algorithms, lower bounds for finding the min and the median, and convex hulls and Voronoi diagrams.

5 min · 2 interactive

Algorithms
Languages and parallel computing

Syntax references for python, c/c++, java and R, and the collective operations behind multi-GPU training.

12 min · 1 interactive

Languages and parallel computing
Architecture

Integers and floats in bits, assembly and calling conventions, a pipelined processor, caches, exceptions and virtual memory.

22 min · 2 interactive

Architecture
Operating systems

Processes and threads, synchronization and deadlock, CPU scheduling, paging and virtual memory, and file systems.

23 min · 1 interactive

Operating systems
Information retrieval and databases

How a search engine is put together, how retrieval differs from exact database lookup, and the main kinds of databases.

3 min

Information retrieval and databases
Theory of computation

Finite automata, context-free grammars and pushdown automata, Turing machines, undecidability, and NP-completeness.

11 min · 1 interactive

Theory of computation
Quantum computing

Qubits and amplitudes, which problems quantum computers might speed up, Maxwell’s demon, and a matrix view of probability.

3 min · 1 interactive

Quantum computing