Lecture 0: Course Details
Expectations, timings, evaluation, and laboratory details.
Open slidesCourse overview
How humans made computation possible, from electrical signals and circuits to memory, machine language, and a working computer.
The lectures develop the underlying ideas; the laboratory turns those ideas into hardware components that students build and test.
View lecturesAt a glance
Class schedule, assessment, and the principal textbook.
Test 1: 25% · Test 2: 25% · End-semester examination: 50%
Lab work: 10% · Test 1: 25% · Test 2: 25% · End-semester examination: 40%
Each lab carries 1%; the best 10 of 11 labs are counted.Noam Nisan and Shimon Schocken, The Elements of Computing Systems: Building a Modern Computer from First Principles, The MIT Press.
Slides
Use the arrow keys or the on-screen controls to move through a lecture.
Course orientation and the human story behind chips and computation.
Expectations, timings, evaluation, and laboratory details.
Open slidesHow humans learned to control electrical signals and made computation possible.
Open slidesFrom Boolean functions to gates, Hardware Description Language, and design practice.
Boolean variables and functions, truth tables, expressions, and canonical representation.
Open slidesLogic gates, composite gates, gate specifications, and HDL.
Open slidesBoolean laws, expression simplification, truth-table verification, gate diagrams, and HDL practice.
Open slidesImplement Not, And, Or, Mux, DMux, And16, Mux16, Or8Way, Mux4Way16, and DMux4Way using Nand or any previously built gates.
Open web IDEBinary representation, arithmetic circuits, and the Arithmetic Logic Unit.
Binary numbers, word size, addition, and signed integers using two's complement.
Open slidesHalfAdder, FullAdder, Add16, Inc16, and the path from bit addition to an Arithmetic Logic Unit.
Open slidesControl bits, the ALU specification, its eighteen functions, implementation planning, and tutorial exercises.
Open slidesImplement HalfAdder, FullAdder, Add16, Inc16, and ALU using only the chips gradually built in this lab and chips from the previous week.
Open web IDEFrom time and state to registers, memory banks, and the Program Counter.
Clock cycles, Data Flip-Flops, controlled feedback, Bit, and the 16-bit Register.
Open slidesAddresses, read and write timing, RAM8, and recursive construction through RAM16K.
Open slidesControl priority, PC construction, sequential simulation, and Chapter 3 design exercises.
Open slidesImplement Bit, Register, RAM8, RAM64, RAM512, RAM4K, RAM16K, and PC using DFF and previously built chips.
Open web IDEFrom machine-language abstractions and addressing modes to Hack computation, programs, branching, symbols, and memory-mapped input/output.
Memory, processors, registers, command families, addressing modes, and an introduction to Hack's memory spaces, A, D, M, and unconditional goto.
Open slidesA- and C-instructions, computation, destination and jump fields, assembly symbols, and memory-mapped screen and keyboard access.
Open slidesWrite and test Mult.asm and Fill.asm using the assembler and CPU emulator.
Thirteen weeks
Each layer will be built from parts created in the layer below it.