The Elements of Computing Systems, second edition: Building a Modern Computer from First Principles (Paperback)
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 readers to a significant body of computer science knowledge and synthesizes key theoretical and applied techniques into one constructive framework.The outcome is known 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 and any other program that comes to your mind.
The first edition of this popular textbook inspired Nand to Tetris classes in many 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.
About the Author
Noam Nisan is Dean of the School of Computer Science and Engineering at the Hebrew University of Jerusalem.
Shimon Schocken is Professor of Computer Science, and Founding Dean, Efi Arazi School of Computer Science, IDC Herzliya, Israel.
"This book shows that, despite the complexity of modern architectures, it is still possible to fully understand and master computers. The secret recipe is focus in this case, because the authors dispense with error handling and optimization; they only present the essentials. Compared to its predecessor, the second edition offers a clearer separation between hardware and software."—Heise