- 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: 97 customer reviews
- Amazon Best Sellers Rank: #23,879 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.
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
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.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
on manner. This book let me do that to precision.
The sheer amount of effort put in by the team behind this book is laudable.
You first actually build the hardware, then build a compiler and then the OS.
These three are really the building blocks, the foundations and the through
understanding of these subjects will make you a brilliant (understated) professional.
A few tips: Actually work through this book, chapter wise, step wise. Do not
skip any step, especially right upto chapter 8. Based upon your programming experience,
you may prefer to skip the projects from chapter 9 onwards (not recommended). I worked
through the book in sequence right upto chapter 8 and have kept chapters 10,11, 12 as
later weekend projects. Simply because I have sufficient programming experience using
Lisp and other languages, with some experience in parsing complex inputs.
As a side effect, being a Lisp programmer, it helped me understand at a gut level why
homoiconic languages are 'actually' better even in context of compiler construction. Is
it not a design decision to choose a simple grammar? This book will help you figure it
Other tips: This book may be hard or easy based upon two things: 1. Your prior digital
electronics knowledge. 2. The richness of your prior programming experience. 3. This
book will not spoon feed you. 4. The projects are extremely fun because you are nudged
For me this is a book which has turned the tide to explain the foundations of computing
It is a MUST WORK THROUGH book. For me its right up there with the other gem "SICP".
What it will not go into is 'Networking' and 'Persistent Disk Storage'. But that in no
way comes in building the foundations as the other foundational concepts apply to these
two areas and others as well. By the way the authors have proposed these as extensions.
So you could actually spend a weekend or two, building graphics, networking chips and
adding these facilities to your OS. Interesting.
Hats off to the team for producing a GEM.
You can just read the book, but the best idea is to follow the authors' advice and do the projects where you implement every necessary piece of the computer system yourself. The projects are all very well organized. All the software necessary to emulate any part of the computer is available for free download from the authors' web-site. It all works beautifully. If you want to skip any of the projects, you can, because the software is organized in such a way that it will use built-in modules instead of the ones you built if necessary.
The authors seem to have extensively tested the whole approach through the courses they have taught using this material. I also noticed that Harvard's Computer Science 101 course is being taught based on this book. I have been using the book for self-study with absolutely no problems--in fact I have never had such a great experience with a self-study course. All you need is a Windows or Linux (edit: Mac OS X works fine too) computer and access to the internet, and you can give yourself a wonderful education in computer science.
In terms of prerequisites, you only really need to have some experience with programming (e.g. with C, or ideally with Java or Python). I think that the book should work well for students or hobbyists who don't have any more experience than that, but it is also great for much more experienced students, as a kind of integrative summary of the field. I also think the book is perfect for graduate students or researchers from other fields who want to learn how digital hardware and software systems are actually engineered.
Finally, I just want to compliment the authors on the extraordinary care that they have taken with the whole project. The computer design that you build up is wonderfully elegant--at every stage the design is just as simple as it can be while being sufficient. Every piece of emulation software works as advertised. Even the extra powerpoint or .pdf tutorials are nicely done. This is really quality work, and using it is just a real pleasure. Finally, the source code for all the software provided by the authors is available, so if you wanted to extend the provided emulators, you could do that.
In summary, I give this book my unqualified highest recommendation.