Goodreads helps you keep track of books you want to read.
Start by marking “The Elements of Computing Systems: Building a Modern Computer from First Principles” as Want to Read:
The Elements of Computing Systems: Building a Modern Computer from First Principles
Enlarge cover
Rate this book
Clear rating
Open Preview

The Elements of Computing Systems: Building a Modern Computer from First Principles

4.54  ·  Rating details ·  718 ratings  ·  54 reviews
This book is based on an abstraction-implementation paradigm; each chapter presents a key hardware or software abstraction, a proposed implementation that makes it concrete and an actual project. The books also provides a companion web site that provides the toold and materials necessary to build the hardware and software.
Hardcover, 325 pages
Published April 1st 2005 by MIT Press (MA) (first published March 31st 2005)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about The Elements of Computing Systems, please sign up.
Popular Answered Questions
Cheeze It really depends on his current skills. It's a great book and leads to a great fundamental understanding of how modern computers work and how the all…moreIt really depends on his current skills. It's a great book and leads to a great fundamental understanding of how modern computers work and how the all layers of it fit together. However you truly build all layers yourself in projects and those require quite a bit of programming experience, especially the later chapters.
So depending on his programming skill (and his tenacity, since some of the projects can be somewhat frustrating if you get stuck) it's a good choice or not.

Otherwise I can really recommend the book Code, by Petzold. It's a little easier (and just a book, without the attached DIY projects), but its a great introduction to how computers work as well and aimed at a slightly younger audience. You can move on to Elements of Computing Systems afterwards. Here's the Goodreads link:

Community Reviews

Showing 1-30
Average rating 4.54  · 
Rating details
 ·  718 ratings  ·  54 reviews

More filters
Sort order
Start your review of The Elements of Computing Systems: Building a Modern Computer from First Principles
A good experience overall. This isn't a book you read, but one that you do. Worth looking into especially if you teach computing, or if you feel you need some refreshing as a practitioner. Basically, you build a simple computer practically from scratch, going from Nand to Tetris so to speak.

The most important thing to know about the book is how approachable it is, in other words, that you can do it!. You can start working on this with no background knowledge beyond programming (use whatever your
Andrew Obrigewitsch
Mar 12, 2017 rated it it was amazing
Shelves: computer
One of the best books out there on computer architecture, and it provides everything most Computer Scientists will need.

A great place to start your exploration of the nuts and bolts of how computers operate.
Roy Klein
May 15, 2012 rated it it was amazing
Shelves: favorites
In this book you build a virtual computer, starting from a single component (NAND gate), and ending with an OS written in a custom high level language you implement.

This construction process is separated to layers where each chapter is dedicated to a single layer, and almost everything you need in order to implement it yourself (more about the almost later).

I've always had an interest in how the lowest levels of the computer works, and have tried reading more than a few books about the subject,
Feb 11, 2021 rated it it was amazing
Read it as a companion to the two part course on Coursera. The courses, website and book are very well structured. Highly recommend.
Adam Zerner
Jan 18, 2017 rated it it was amazing
Note: I'm evaluating this more as a course than as a book.

The big idea behind this course is, "CS students often miss the forest for the trees. We want to zoom out and show them the forest." I really really like this idea, and I think the authors did a fantastic job showing us the forest. a) It's useful to see the forest. b) It's useful for an app developer who doesn't want to spend 4 years in a CS program to get a full overview of how computers work in a more reasonable length of time.

Pham Manh hiep
Jun 19, 2015 rated it really liked it
Only finished the hardware part but must admit that the book built the foundation for me to understand how the actual internal computer works. The book starts from guiding to build the smallest unit of a computer, which is a gate logic, to RAM and CPU. This definitely makes further studying about OS easier. The software part would need knowledge about some high-level languages. If your purpose of studying is to know how things work rather than actually build a OS, then I recommend read another b ...more
Robin Andersson
Oct 23, 2012 rated it it was amazing
Reading this book as a self-taught programmer gave me a good introduction to computer engineering. I am well aware of that the computer architecture in the book is really simplified, but it was perfect to give a good understanding of how the different layers of abstraction actually work.
Christina Bögh
Jun 01, 2017 rated it really liked it
Shelves: uopeople
This book is just wonderful. It guides you through the whole process of designing a computer until you can write assembler programs; step by step. Not too hard, not too fast - no, just right. This was an excellent read and I've learned so incredibly much. ...more
Nick Black
god bless that mit press!
Emmanuel Eugène
Nov 28, 2019 rated it it was amazing
This book helps develop one's understanding of the relationship between the architecture of the machine and the software that runs on it. A must-read book for all programmers out there. ...more
Richie Cartwright
very dry but thorough
Jan 10, 2020 rated it it was amazing  ·  review of another edition
This book is so good, it makes me want to downrank all other books in comparison, so they can all fit on the same 5-star scale.

I read this book some time around 9th grade, and it laid the foundations for all my later CS education. I would not be where I am today without this book.

If you already know how computers work from transistor to browsers, this book won’t teach you anything new.

If you know some programming and want to know “why?”, this book will tell you, and in doing so give you a framew
Oct 31, 2018 rated it it was amazing
This book is a fantastic hands-on introduction to the entire computing stack, starting with individual logic gates, building up adders, registers/RAM and more, through building a simple ALU, CPU and computer, and then implementing assemblers and compilers for the computer you've built.

The exercises for each chapter are really well thought out, and the authors are still maintaining a web site for the book 13 years later. Even though I was already familiar with a lot of the material, I really enjo
Flynn Heiss
Feb 06, 2011 rated it it was amazing  ·  review of another edition
I never finished this, but I thought it was amazing. You get to build an ALU and CPU out of the most basic logic gates, learn about virtual machines and write interpreters/compilers for a high-level language -> virtual machine language (stacks/push/pop) -> assembly -> machine code.

I felt like a total bad-ass after every completed exercise, and learned a lot about how computers work in the process.
Dang Pham
Jul 03, 2013 rated it it was amazing
Excellent book . It talks about the computational structure from the ground up with elegance. The concepts this book presents make things we don't usually appreciate, like the SIM card, seem like engineering wonders. ...more
Oct 06, 2011 rated it really liked it
i think they could have done a better job on explaining the virtual machine.
Jan 10, 2014 rated it it was amazing
If you want to get a better idea what is happening under the hood of your computer, get this book. This is one of the best investments I have made.
Pouya Kary
Mar 13, 2016 rated it it was amazing
Shelves: favorites
great great book... so much work has been done to make it happen...
May 23, 2020 rated it it was amazing
This is a solid read that lucidly breaks down into layers the marvel that is a computer. It manages to distill what would ordinarily be an intimidating scope to the essentials, and is so clear in laying out how the current chapter ties to the previous and the next every step of the way, that you finish the book with that satisfying click in your mind as the patches of your knowledge latch together.

It starts off with boolean logic, defining some basic boolean functions (and, or, not) and illustra
Nov 27, 2019 rated it it was amazing
5 stars, a great read. Even if you've been exposed to all these topics, it's nice to see them so closely tied together.

I think the path from NAND to Tetris might have been more engaging had the authors dropped the virtual machine layer. It's pitched as a solution to targeting alternative hardware platforms (which is not further explored), and that struct me as a wrong emphasis for an end-to-end tutorial. I think it was included merely to compensate for a machine language that's not expressive e
Anil Dhurjaty
Aug 06, 2020 rated it it was amazing
Excellent walk-through of computing systems. I just got the book and worked through it without doing the Nand2Tetris Coursera course - but I felt that this book alone was enough. The chapters are easy enough to follow. The included software is fantastic (I recommend working through the exercises in VS Code and using the nand2tetris vs code extension: Also, the writer does not hold your hand too much, so you have to think, re-read and think again to comp ...more
Mads Hvelplund
Jul 21, 2018 rated it it was amazing
This book provides an awesome introduction to the basics of computer hardware, providing the tools to let you build each part as you read the relevant chapters. Twenty years ago, I fought my way through Patterson & Hennessy's "Computer Organization & Design" as part of my Computer Science studies, and I can honestly say, that I wish we had used Nisan & Schocken's book instead.

Reading this book, and doing the exercises, has given me an interest and a love for a subject I honestly hated when I had
Bishop Adler
Amazing book, reading actively will allow you to understand how a computer works logically (although in terms of the actual physics/electrical engineering, this book doesn't touch on it. In fact, it barely mentions transistors). With that in mind, this book takes the reader from basic logic gates to an OS. It's able to do this without being abstract, as each chapter requires the reader to build every chip described /every piece of software abstracted.

In other words, the book lives up to its nam
Nov 12, 2019 rated it it was amazing
Shelves: own, technology
Only half way through and I give this book full marks for just the first six chapters alone. It isn’t so much how it is written but more what isn’t there. The book is written around the projects and the answers aren’t given, only the test cases that need to be passed. This forces the student through “the joy of discovery” process (their words). For that I am grateful, I learned much having been forced to walk the path.

If you struggle, stick with it. The book hints and website support have every
Sep 27, 2017 rated it it was amazing
Shelves: it, programming
In conjunction with Nand2Tetris courses at Coursera (part I and part II), this book belongs to the ones having the biggest positive influence on my life. It's hard to work through all the problems, took me months, but at the end of it, you feel it's worth so much. I recommended it people interested in technology, who don't have a degree in computer science. Fills a lot of the gaps in your understanding of computer systems. ...more
David Friedman
Sep 21, 2019 rated it it was amazing
Shelves: computer-science
I worked carefully through the hardware half of the book. I finally understand the elements of digital logic, the design of an ALU, instruction decoding, the design of a CPU. I skimmed the second half, on software, because I'm already familiar with those topics. It seemed equally clear but I'm not the target audience for the software topics so I cannot say if they succeeded as brilliantly as they did with the hardware half. ...more
May 28, 2020 added it
This is the accompanying textbook to the course "From Nand to Tetris" and provides an overview of the software construction of a computer starting from logic gates. The real meat is found in the course projects. The overview is simplistic to keep the projects small in scope. Keeping the scope small makes sense, but it means that although completing this course will fill some gaps in knowledge, it doesn't do so in a deep way. ...more
Raul Pegan
Dec 27, 2017 rated it it was amazing
Great approach to teaching computer architecture from the ground up. Starts with NAND gates, all the way through processor design, language design, OS, and Compilers. Very minimalist but touches all the bases. Only problem is that this is a stack based machine and not a load-store, which would be much more relevant. But hey I can't complain this is still incredible. ...more
Jun 10, 2020 rated it it was amazing
Shelves: favorites, compsci
I read this book while completing the nand2tetris course.

I cannot recommend the course enough, it is probably the best course I have ever taken and that includes my university studies.

I wish it covered more about how the OS worked and used a few real examples of like the 8080 as an example processor and CP/M as a basic OS but I guess then the book could be huge.
Aug 10, 2020 rated it it was amazing
This is the best intro to computer system fundamentals. It's amazing how much is covered in this short book and how everything ties in together. The book truly delivers understanding of how to get to a fully functional computer that runs a program on top of an operation systems, if all you have is logical gates. ...more
« previous 1 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Code: The Hidden Language of Computer Hardware and Software
  • The C Programming Language
  • Operating Systems: Three Easy Pieces
  • The Pragmatic Programmer: From Journeyman to Master
  • Code Complete
  • Computer Systems: A Programmer's Perspective
  • Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)
  • Refactoring: Improving the Design of Existing Code
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Computer Networking: A Top-Down Approach
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Coders at Work: Reflections on the Craft of Programming
  • Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
  • Haskell Programming From First Principles
  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  • Introduction to Algorithms
  • Secrets and Lies: Digital Security in a Networked World
  • Designing Data-Intensive Applications
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

News & Interviews

Believe it or not, we're halfway through 2021! As is our tradition, this is the time when the Goodreads editorial team burrows into our data to...
98 likes · 77 comments