How to efficiently and reliably encode information using bits
The basics of digital signaling, combinational logic, CMOS technologies
The principles of sequential logic and finite state machines
Performance measures and design tradeoffs
Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!
This is Part 1 of a 3-part series on digital systems, teaching the fundamentals of digital circuit design and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include digital encoding of information, principles of digital signaling; combinational and sequential logic, implementation in CMOS, useful canonical forms, synthesis; latency, throughput and pipelining.
Using your browser for design entry and simulation, you’ll get to design and debug circuits at both the transistor- and gate-level, culminating in the creation of a 32-bit arithmetic and logic unit.
“This course is like a dream coming true…as kid (10 – 12 years) I was already building circuits and reading books about Digital Circuits. Due to all kind of circumstances I never got to pursue a study and career in electronics …now I am almost 50… I see this as a second chance. Thank you very very much for this awesome course. One of the best, (if not the best) MOOCs I’ve ever taken.” — Previous Student
A working knowledge of electrical fundamentals (voltages, currents, simple components) or CornellX ENGRI1210x: The Computing Technology Inside Your Smartphone