Computer Science Fundamentals
Use this page as a checklist, not as a course syllabus. The durable core is small:
- Representation: bits, numbers, text, instructions, and data formats.
- Execution: expressions, state, control flow, functions, recursion, and abstraction.
- Resources: time, memory, storage, networks, and the trade-offs between them.
- Composition: interfaces, modules, processes, protocols, and layers.
- Reliability: invariants, tests, failure modes, observability, and security boundaries.
Continue with Data Structures, Algorithms, and Programming Languages. For a rigorous introductory course, Berkeley CS 61A is a useful external path.
Turn the checklist into a reading path
This is a map of programming fundamentals, not a full treatment of hardware, operating systems, networking, or security. You can start without knowing a language, but work through examples in one language rather than trying to learn every layer at once.
An invariant is a property that every valid state or every completed loop step must preserve. A test checks selected executions; an argument from invariants explains why all executions satisfying the assumptions are correct. Neither substitutes for stating what the program is supposed to do. Termination also needs an argument that the algorithm progresses toward stopping; an invariant alone does not prove that it will stop.