expand_less Our goal will be to create an on-line encyclopedia of resources for digital systems design.  We will also create a practical hands on course for the emerging generation of [[https://en.wikipedia.org/wiki/Maker_culture|makers]] where the will learn all about state of the art systems.  This knowledge and the related skills are highly marketable, but what we really want is the joy of knowing how things work and being able to invent new things or just make personal customizations to express ourselves.
I. Abstraction: Computers as Mathematical Machines
  A. Formal Systems: Games and Modelling
  B. Signs and Systems: Semiotics and Representation
II. Mechanism: from Babbage to Modern Computer Networks
  A. Representation: from Positions of Wheels to a Binary Signal
    1.  Boolean mathematics and logic circuits.
      a. NAND/NOR and random logic
      b. General N to M and Programable Logic Block
    2.  Latches and Memory
    3.  From State Machines to Turing
  B. Programs and Data
    1. Von Neuman architecture: Programs as Data
       a.  Modern 16/32/64 bit architectures
    2. Programming Languages
       a. Machine Language: Just the bits
       b. Assembler Languages: Human readable machine language
       c. C:  The high level assembler
       d. Everything else is also language interpretation
   C. Data as Logic: the FPGA revolution
     1. Full circle:  System on a Chip with programable custom logic.
   D. From Components to Systems and Networked Systems
     1. Processing Units, Multiple Cores
     2. Memory Hierarchy: Processor caches, RAM and Storage
     3. Networks and I/O:  Other systems and the world outside