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.
ItMany seemsof thatthe someresources peoplethe withresources moreyou resourceswill thanneed meare havealready well covered aby lotother ofauthors. thisI highly recommend studying all the material in [[https://mitpress.mit.edu/books/elements-computing-systems|Elements of Computer System]] as well as taking the course [[http://www.nand2tetris.org/|Nand2Tetris]]. either just studying the open materials up to taking the official course or implementing the home schooled (link to resources here, or do this ourselves on this site). Much of this course is available for free, so please use it to suppliment what you find here. You can also find resources that take you down into [[https://wiki.analog.com/university/courses/electronics/electronics-lab-27|analog devices and physics]] to understand how gates are contructed in different technologies. The approach of covering all the layers of system abstraction/implementation is part of my goal here, so if you find some material here confusing becausefor ofwhatever howreason, weplease getuse deepthese quickly,and youother mightresources sartyou withfind that course to give youself a solid foundation before beginning to find your own path. This material is intended to beget moreyou open-endedinto building and experimenting with current technologies and to be used as a guide for finding and exploring your particular interests which may be off the beaten path. This sightsite is intended to be more invitation to explore the edge of your knowledge and even the edge of what is possible. None of it is that complicated, but there is a lot of it and this is only the beginning. It will lead directly into in-depth material to get you quickly into the foundational technologies of Linux and the command shell. This will prepare you to dig into projects like Raspberry PI and Beagle Bone as well and the much simpler Arduino based projects. There are already large maker communities around these projects and you will find many resources on other sites for building projects and learning the ropes. We will also show you resources to prototype with more commercially supported projects. We might prototype with Android based hardware, or build an SoC based on industry standard desktop and laptop architectures. These days that is Intel or ISA compatible AMD processors.
Will these resources, any group of technically savy people can collaborate to first learn how it all works, and then start designing and building systems of the 21st century. The real bottleneck from where we are to where we need to be is what [[|Fuller]] call [[|Universal Design Science]] and this material is designed to provide the background needed to build the control systems for these designs. The rest of the necessary background is basic maker knowledge. Makers know how to build things and as a community they know all of the current building technology as well as the foundational traditional technologies that they are based on.

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