{
  "schema_version": "1.0",
  "codex": "thecodex.expert/coding",
  "type": "concept",
  "slug": "foundations/how-computers-work",
  "name": "How Computers Work",
  "section": "CS Foundations",
  "canonical_definition": "A computer is a machine that processes binary data using electronic circuits, executing sequences of stored instructions (a program) by repeatedly fetching an instruction from memory, decoding it, and executing it — a cycle that transforms input into output entirely through the switching of transistors between on and off states.",
  "confidence": "high",
  "last_verified": "2026-06-01",
  "source_count": 6,
  "url": "https://thecodex.expert/coding/foundations/how-computers-work/",
  "concept_relationship": {
    "requires_first": [],
    "enables": [
      "foundations/binary-and-number-systems",
      "foundations/logic-gates",
      "foundations/cpu-architecture",
      "foundations/memory",
      "foundations/storage",
      "foundations/operating-systems",
      "how-languages-work/compilation",
      "how-languages-work/interpretation"
    ],
    "commonly_confused_with": [
      "calculator (fixed-function device vs. general-purpose programmable machine)"
    ]
  },
  "key_concepts": [
    "transistor",
    "binary",
    "logic gate",
    "CPU",
    "ALU",
    "program counter",
    "fetch-decode-execute cycle",
    "von Neumann architecture",
    "stored-program concept",
    "memory hierarchy",
    "instruction set architecture",
    "machine code"
  ],
  "commonly_confused": [
    "A computer is not a calculator — a calculator is fixed-function; a computer executes any stored program",
    "Memory (RAM) is not storage — RAM is fast and volatile; storage is slow and persistent",
    "Clock speed is not the only performance metric — IPC, cores, cache, and memory bandwidth all matter",
    "Binary is a physical constraint, not a conceptual limitation — trinary or other-base computers would compute identically"
  ],
  "sources": [
    {
      "num": 1,
      "citation": "Patterson, D. A. & Hennessy, J. L. (2020). Computer Organization and Design: The Hardware/Software Interface (ARM edition). 6th ed. Morgan Kaufmann.",
      "tier": 1
    },
    {
      "num": 2,
      "citation": "Turing, A. M. (1936). On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, vol. 42, pp. 230–265.",
      "tier": 1
    },
    {
      "num": 3,
      "citation": "von Neumann, J. (1945). First Draft of a Report on the EDVAC. Moore School of Electrical Engineering, University of Pennsylvania.",
      "tier": 1
    },
    {
      "num": 4,
      "citation": "Shannon, C. E. (1937). A Symbolic Analysis of Relay and Switching Circuits. Master's thesis, MIT.",
      "tier": 1
    },
    {
      "num": 5,
      "citation": "Moore, G. E. (1965). Cramming more components onto integrated circuits. Electronics, vol. 38, no. 8.",
      "tier": 1
    },
    {
      "num": 6,
      "citation": "Tanenbaum, A. S. & Austin, T. (2012). Structured Computer Organization. 6th ed. Pearson Education.",
      "tier": 1
    }
  ]
}
