
Explore how computers compute with numbers and transistors, how memory stores results, and how computer architecture fetches and executes instructions, ending with basics of programming.
Lots of you have probably heard about binary numbers used by computers. But in order to truly see binary numbers as legit numbers, a thorough discussion about number representation is necessary. A more flexible way to understand numbers is critical here.
Examine how the choice of numbers depends on who computes. Learn that any object can represent numbers with a positional arrangement, and electricity acts as inputs and outputs via transistors.
Explore how a silicon transistor uses n-type and p-type layers with a middle insulating barrier and three terminals to switch electricity, producing two voltage states that encode binary bits.
Explore how transistors form or switches and nand switches to control an output wire based on input conditions, enabling correct 0+1 and 1+1 calculations.
Explore how to combine half adders into full adders to perform multi-bit binary addition, applying carry-in and or gates, and assemble an 8-bit adder from chained full adders.
Explore division by repeated subtraction using 28 over seven, and build a bitwise comparator with XOR, NAND, AND, OR gates to detect equality and determine which number is greater.
Explore the arithmetic logic unit, its 8-bit and operation and 8-bit or operation using eight gates, and learn how intermediate results are stored to support repeated computations.
Explore building memory units for a seven-operation computing engine using an adder example. Learn how a control wire lets results pass or save, preserving previous results while computing anew.
Explore the general structure of memory units built from gated or-and latches, incorporating control gates, an inverter, and output gates to manage stable states.
Pack memory units into bytes to store 8-bit numbers as RAM, connect an eight-wire bus to the ALU with buffers to isolate outputs and prevent interference.
Build a sequencer that turns wires on in sequence using memory units and a CPU clock, with logic gates and a reset to restart the cycle.
Explains the two basic data movement instructions: load and store, moving data between memory and registers (RAM) using a memory address register, and a decoder with an inverter.
Explain how the data instruction moves initial data into registers by storing data in memory, fetched via the instruction pointer, RAM, and the accumulator through three wiring steps.
Reuse the same instructions with a jump to loop back to the add instruction. Wire the jump by routing the instruction pointer through the memory address register to ram.
Learn how to exit a loop with a conditional jump by comparing the running count to a target, using R2, R3, a XOR-based comparator, and flags to redirect execution.
Compare low-level and high-level languages, from machine codes to mnemonic assembly, and see why programmers favor high-level abstractions that hide hardware details.
Explore the Cordic algorithm, a coordinate rotation digital computer method that computes sines and cosines on the unit circle via iterative rotations, using shifts and precomputed cosines for final coordinates.
Finally an explanation that will quench your curiosity! This course SETTLES it! Based on Scott CPU by J. Clark Scott, we will talk about how to design a computer step by step, and also discuss extensively the design logics behind! You will know not only how computers work, but more importantly, WHY they are designed this way. You will find it NOWHERE ELSE!!
If you are absolute beginners, this course will teach you the nuts and bolts in an intuitive way that’s easy to follow.
If you are an experienced programmer curious about how those magical symbols typed turn into actions and results, this course will teach you the missing hardware piece in an enlightening way.
If you are an electrical engineer who already know circuits and electronics, this course will give you the unprecedented insights found nowhere else about complex circuits like memory latches, decoders, counters.
If you are a lifelong learner hoping to enrich your life experiences by learning science and technologies, this course will give you the fresh insights into the technological aspects of our modern lives.
Why are we able to communicate with students from such drastically different backgrounds? That’s because we’ve uncovered a brand new way of teaching: teach WHY, not just how! When you understand why, the learning process would become a flow experience.
We will talk about how to build each component of a computer. The mechanics of doing is intertwined with the purposes and goals, so the learners will find it so easy to follow.
(I) How computers compute. In this section, we will talk about how to build ALU that does the computing. Particularly we will talk about number representations, how transistor works, semiconductor technologies, and how to combine transistors to build adders. We will also talk about how computers do subtraction, multiplication and division.
(II) How computers remember. In this section, we will talk about how to build computer memory. We will show you step by step how to build memory latches, how to build memory grid by using multiple memory units, how to connect the memory grid to the ALU, how memory addressing works.
(III) How computers control. In this section, we will talk about how to build computer control section. We will discuss the basic tasks a computer needs to perform, how to build a sequencer, how instruction works, how to fetch and execute instructions.
(IV) What is programming. In this section we will talk about the basic instructions needed, how to wire them and how to do programming. In particular we will talk about jump instructions, load and store instructions, data instructions, clear instructions, IO instructions.
How our teaching differs from others’:
Many people talk about computers from the perspectives of a machine, rather than the perspectives of human. They start with the different components of computers, detailing one component and move on to the next. Those materials, while presenting the mechanics of the machine in an objective way, they barely speak to our hearts. Because for any information to go into our hearts, we have to understand WHY we do what we do.
Fully understand the needs of learners, the lecturers lay out the components from the perspectives of learners: what do I need to build and why would I build it this way. Eventually every essential components of a computer will be discussed, but the contents are structured in a way that follow human logics and reasoning, rather than the mechanics of the machine. Once you understand the design logics, you will see nothing is really difficult, nothing need to be memorized, because you have fully understood!