1. Introduction

1.1. What Will I Learn?

  • The purpose of this course is to learn how a conventional computer works

  • The topic starts with transistors and ends with programming a computer

../../_images/transistors.png

A collection of four transistors. Although these transistors are all physically different, their function is the same.

  • There are several layers of abstraction between transistors and programming that will be covered

    • Transistors

    • Logic Gates

    • Latches

    • Registers

    • Memory

    • Adders

    • Arithmatic Logic Units (ALUs)

    • Combinatorial and Sequential Logic

    • Control Logic

    • CPUs

    • Architectures

    • Machine Language/Assembly Language

    • Compilers

../../_images/von_neumann_architecture.png

High-level idea of the von Neumann architecture. One of the interesting features of this architecture is how memory stores both data and instructions.

../../_images/harvard_architecture.png

High-level idea of the Harvard architecture. This architecture has separate memory for data and instructions.

1.2. Resources

  • This course only has one required special resource — Digital

    • Free software for simulating digital circuits

    • Available on GitHub

../../_images/digital_screenshot.png

Screenshot of a small portion of a modified version of the 8-bit computer designed by Ben Eater. The larger circuit is a simulated fully functional and programmable turing complete computer.

1.2.1. Supplementary Resources

  • This course has several recommended supplementary resources

    • Not required, but provide additional practice, context, details, etc.

  • At the end of each topic, content from various resources will be suggested

  • The course content is available on GitHub

    • There is no requirement to access this content

    • However, students are encouraged to make contributions to the course content

  • The textbook Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond

    • Not required, but for those that like textbooks, it is great

  • Ben Eater has an amazing YouTube playlist where they build a turing complete computer on breadboards

    • These videos are fantastic and provide more details on components than will be covered in this course

../../_images/breadboard_computer.png

Part of the 8-bit breadboard computer, as designed by Ben Eater.

  • The game Turing Complete

    • Players incrementally construct and program a turing complete computer

../../_images/turing_complete_screenshot.png

Screenshot of an ALU from a larger computer made within the game “Turing Complete”.

1.3. For Next Time