The Elements of Computing Systems, Second Edition
Building a Modern Computer from First Principles
A new and extensively revised edition of a popular textbook used in universities, coding boot camps, hacker clubs, and online courses.
The best way to understand how computers work is to build one from scratch, and this textbook leads learners through twelve chapters and projects that gradually build the hardware platform and software hierarchy for a simple but powerful computer system. In the process, learners gain hands-on knowledge of hardware, architecture, operating systems, programming languages, compilers, data structures and algorithms, and software engineering. Using this constructive approach, the book introduces learners to a significant body of computer science knowledge and demonstrates how theoretical and applied techniques taught in other computer science courses fit into the overall picture. The outcome of these efforts is known as Nand to Tetris: a journey that starts with the most elementary logic gate, called Nand, and ends, twelve projects later, with a general-purpose computer system capable of running Tetris. The first edition of this popular textbook inspired Nand to Tetris classes in universities, coding boot camps, hacker clubs, and online course platforms. This second edition has been extensively revised. It has been restructured into two distinct parts—part I, Hardware, and part II, Software—with six projects in each part. All chapters and projects have been rewritten, with an emphasis on separating abstraction from implementation, and many new sections, figures, and examples have been added. Substantial new appendixes offer focused presentation on technical and theoretical topics.
Pre-Order Paperback$35.00 X ISBN: 9780262539807 344 pp. | 8 in x 9 in 116 b&w illus.
“Nisan and Schocken have created a masterpiece in this book that spans from 'Human Thought' to 'Logic Gates' at just about perfect depth. Be it as simple as writing a for-loop or designing an OR gate or as complex as building a full-fledged computer or a compiler, each element is explained with the same ease, and is given 'life' with a fully supported tool-set for us to build with.”
Professor of the Practice, Texas A&M University