- Paperback: 344 pages
- Publisher: The MIT Press (March 31, 2005)
- Language: English
- ISBN-10: 0262640686
- ISBN-13: 978-0262640688
- Product Dimensions: 8 x 0.7 x 9 inches
- Shipping Weight: 1.2 pounds (View shipping rates and policies)
- Average Customer Review: 86 customer reviews
- Amazon Best Sellers Rank: #51,133 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Elements of Computing Systems: Building a Modern Computer from First Principles
Use the Amazon App to scan ISBNs and compare prices.
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
A refreshingly new way of looking at computer systems as a whole by considering all aspects of a complete system in an integrated manner.(Jonathan Bowen Times Higher Education Supplement)
About the Author
Noam Nisan is Professor at the Institute of Computer Science and Engineering, Hebrew University of Jerusalem.
Shimon Schocken is the IDB Professor of Information Technologies and Dean of the Efi Arazi School of Computer Science, Interdisciplinary Center Herzliya.
Top customer reviews
For someone like me with a math and programming background but close to zero knowledge on how computers are built from the transistor level up, it fills the gaps very nicely.
Yes, it can be difficult at times as the authors do not spoon feed every problem and much is left as "an exercise for the reader", but nothing that some thinking time won't fix. Plus lots of comments and posts can be found on the web when you really do get stuck.
The book is well written, and the goals, contrary to some other reviewer's opinions, are actually very well laid out over the chapters.
I highly recommend this book to anyone who wants to learn the basics of how computers are built from the ground up all the way to creating a compiler and an OS.
The book is very suitable for self-study or classroom use: it has an excellent website, all the required HDL simulator, assembler, CPU and VM emulator and compiler are freely available and easy to run on any platform (they are all coded in Java).
Of course there are simplifications such as the lack of interrupts and multhithreading but this book prepares the students very well for 3rd and 4th year courses. Every chapter has very well and clearly defined goals and projects that are %100 self-contained. That means even if you skip a chapter you can work out the next project without any loss in implementation.
If you or your students want to have a grasp what it means to build a computer starting from logic gates, hardware definition languages, up to the ALU, RAM, CPU, assembler, virtual machine and compilation of an object oriented high level language, then this book is the best choice. It is one of the most hands-on book I've ever seen in this subject matter and at that intermediate level.
It is the projects (and the accompanying software from the book's website - which runs flawlessly) that make this book really work. You are not going to get much out of the book if you don't do the projects. These projects are not end of chapter exercises that test if you understood what you've read. Nearly all of the understanding you get will come from doing the projects and the book is written with this intent. That's why it really is a lab book - you'll learn from doing rather than from reading.
This book will give you a gut for how computation systems work and are designed. The text doesn't have the breadth or depth that you would get from the traditional textbooks on these subjects (digital design, computer architecture, compilers, and operating systems) but it gives an intuition (because you actually implement each layer) that you can't get from simply reading a book[s].
You can actually read the first seven or so chapters there, to see if it's something that would help you, but the course and book, along with the projects, is invaluable for anyone looking to better understand computers. The projects aren't too hard, but they definitely make you stretch to do them, and the idea of building an entire computing system from parts with guidance is awesome.
Some other books may go deeper into logic and the physical components, but this is one of the best I've seen for a beginner.
I had one 17-year-old high school student, two graduate students from outside the CS department, and about sixteen upper-level CS undergraduates. The high school student really received a postmodern computer science education in one semester. However, although she grasped the concepts, she lacked the proper programming experience necessary to be independently successful when working on the software side of the material. This was remedied by pair programming.
My two non-CS graduates _loved_ the class and were very successful. It was "just the class they were looking for."
As for my CS undergraduates, it has been a smashing success. They all emphatically felt that the class should be a required part of our curriculum and the class is now an official elective and will be taught again in the fall of 2011.
If you only read one effective book in the field of computer science, this might be the one.
Most recent customer reviews
If you give me enough transistors, I'm completely sure I could build a computer out of them.