Last Minute Notes

Computer Fundamentals

A beginner to advanced computer fundamentals library: number systems, two's complement and floating point, text encoding, logic gates and CPU architecture, pipelining and branch prediction, the memory hierarchy and caches, compilers, linkers and garbage collection, parallel hardware from SIMD to GPUs, and an interview playbook.

Start here for the "how does a computer actually work" questions, from "convert 156 to binary" to "why does adding threads make this slower". The pages climb from bits to CPUs to caches to the software that turns code into running programs, then finish with parallel hardware. Numeric examples (conversions, two's complement, IEEE 754 encodings, UTF-8 bytes) were checked with Python, and hardware details reflect current chips (ARM servers, chiplets, HBM, AI accelerators).

  1. 01
    Number Systems and Data Representation

    How computers represent data: bits and bytes, binary, octal, and hex conversions, unsigned and two's complement integers, overflow, bitwise operations and tricks, IEEE 754 floating point and why 0.1 + 0.2 is not 0.3, fixed point and decimals for money, characters from ASCII to Unicode and UTF-8, endianness, and data units.

  2. 02
    Digital Logic and Computer Architecture

    From transistors to CPUs: logic gates and Boolean algebra, combinational and sequential circuits, adders, multiplexers, flip-flops, the von Neumann architecture, CPU components (ALU, registers, control unit), the fetch-decode-execute cycle, instruction set architectures (RISC vs CISC, x86, ARM, RISC-V), addressing modes, pipelining and hazards, branch prediction, superscalar and out-of-order execution, and performance equations.

  3. 03
    Memory Hierarchy and Caches

    The memory hierarchy from registers to disk, latency numbers every programmer should know, locality, cache lines, direct-mapped vs set-associative vs fully associative caches with address breakdown examples, the 3 Cs of misses, write policies, AMAT calculations, cache coherence (MESI), false sharing, prefetching, and how to write cache-friendly code.

  4. 04
    Compilers and Program Execution

    How source code becomes a running program: compiled vs interpreted vs JIT, compiler phases (lexing, parsing, ASTs, semantic analysis, IR, optimization, code generation), common optimizations, linking and loading, static vs dynamic libraries, executable formats, the call stack and calling conventions, stack vs heap, garbage collection algorithms, bytecode VMs (JVM, V8, CPython), and WebAssembly.

  5. 05
    Parallelism and Modern Hardware

    How modern hardware runs code in parallel: concurrency vs parallelism, Flynn's taxonomy, levels of parallelism, multi-core and SMT, SIMD and vectorization, GPUs and the CUDA execution model, AI accelerators, NUMA, heterogeneous chips and chiplets, power and thermals, storage and I/O buses, and a performance mindset with roofline thinking.

  6. 06
    Computer Fundamentals Interview Playbook

    Computer fundamentals interview rehearsal: a 40-question bank with strong-answer checklists, numerical problem recipes (base conversion, two's complement, IEEE 754, cache address breakdown, AMAT, pipelining, CPU time), a 'what happens when you run a program' walkthrough, cheat sheets, common mistakes, and a 5-day study plan.

Reading Path

Pick Your Level

You areRead in this order
New to the topicNumber Systems, Architecture
Preparing for campus or a written testAdd Caches and the numerical recipes in the Playbook
Preparing for performance-focused rolesAdd Compilers and Parallelism
A few days leftThe Interview Playbook study plan
  • Operating Systems builds on this: processes, virtual memory, scheduling, and I/O.
  • Networking covers how machines talk to each other.
  • Java and JavaScript show these ideas inside real runtimes (JVM, V8, the event loop).

On this page