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

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

4.42 of 5 stars 4.42  ·  rating details  ·  195 ratings  ·  17 reviews
In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect o ...more
Kindle Edition, 344 pages
Published (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.

Be the first to ask a question about The Elements of Computing Systems

This book is not yet featured on Listopia. Add this book to your favorite list »

Community Reviews

(showing 1-30 of 903)
filter  |  sort: default (?)  |  rating details
Apr 09, 2012 Eric added it
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
Robin Andersson
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.
Dang Pham
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.
Roy Klein
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,
Jeremy Carman
This was a book for my Senior Seminar. It is a project based book and you go from designing gates in chapter 1 all the way to writing a simple OS at the end.

It did a great job putting all the pieces you learn throughout your degree into a big picture context.
Unfortunately, many of these basics where dropped from most CS curricula they year before I enrolled, ~1987. This missing knowledge has been a handicap for me every since. Thank you Noam Nisan and the "" web site.
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.
Neal Aggarwal
I use this book to teach a gestalt appreciation of computing. Following this text my students learn to build a computer from first principles. This is not the easiest of programs to follow but those that stick with it find that they overcome a series of hurdles in their thinking and eventually end up 'masters of the machine.' I cannot recommend this book enough - but it's not for the faint-hearted.
Excellent book! I learned a lot especially down at the hardware level. As I got further along in the book (closer to "normal" software development) I got less value, but still enjoyed the book. I did not however implement all of the last chapter (#12 Operating System / framework). Felt like stuff I'd done before with no real mystery and I don't feel like I would've gotten much out of it.
Not only an excellent textbook with many fun projects, TECS is great survey reading for computer scientists for whom everything under C is a black box. The authors also take care to describe in detail some of the great obscure, efficient, yet elegantly pragmatic algorithms that underlie the backbone of modern computing.
Dec 15, 2013 Nathan is currently reading it  ·  review of another edition
Shelves: programming
Enjoying it, shows how to build a computer from the ground up ... NAND gates up to UI apps. Loving it so far, but haven't had time to do the exercises.
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.
I liked this a lot. You implement a computer in software, building an adder to implementing the CPU, to writing a compiler, and so on. Lots of fun.
Read as a hobbyist inquisition. Learned more than in any single semester of schooling.
i think they could have done a better job on explaining the virtual machine.
Nick Black
god bless that mit press!
Ahmad marked it as to-read
Mar 04, 2015
Marcos marked it as to-read
Mar 04, 2015
Waymond marked it as to-read
Mar 03, 2015
Joseph Wahba
Joseph Wahba marked it as to-read
Mar 03, 2015
Tom.Vi marked it as to-read
Mar 01, 2015
Ea marked it as to-read
Mar 01, 2015
James Sanders
James Sanders marked it as to-read
Feb 27, 2015
Margarita Umnova
Margarita Umnova marked it as to-read
Feb 20, 2015
Thorsten Ball
Thorsten Ball is currently reading it
Feb 19, 2015
Oana marked it as to-read
Feb 19, 2015
Tiffany marked it as to-read
Feb 17, 2015
Justin marked it as to-read
Feb 22, 2015
« previous 1 3 4 5 6 7 8 9 30 31 next »
There are no discussion topics on this book yet. Be the first to start one »
  • Concepts, Techniques, and Models of Computer Programming
  • Computer Systems: A Programmer's Perspective
  • Types and Programming Languages
  • Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP
  • Purely Functional Data Structures
  • The Seasoned Schemer
  • Programming Pearls
  • Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)
  • A Discipline of Programming
  • The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine
  • Advanced Programming in the Unix (R) Environment
  • Compilers: Principles, Techniques, and Tools
  • Introduction to the Theory of Computation
  • Hacker's Delight
  • The Art of Unix Programming
  • The Algorithm Design Manual
  • On Lisp: Advanced Techniques for Common Lisp
  • Let Over Lambda

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
Algorithmic Game Theory Using Hard Problems to Create Pseudorandom Generators Communication Complexity

Share This Book