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. 6.004x is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital 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 3, teaching the fundamentals of digital circuit design. 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. There’s also an optional design challenge where you can earn extra points towards your final score!