The Elements of Computing Systems and over one million other books are available for Amazon Kindle. Learn more
  • List Price: $31.00
  • Save: $7.23 (23%)
Rented from RentU
To Rent, select Shipping State from options above
Due Date: May 27, 2015
FREE return shipping at the end of the semester. Access codes and supplements are not guaranteed with rentals.
FREE Shipping on orders over $35.
Used: Very Good | Details
Sold by 2ndavebooks
Condition: Used: Very Good
Comment: Clean, crisp copy with slight shelf wear. Remainder mark / stamp.
Access codes and supplements are not guaranteed with used items.
Qty:1
  • List Price: $31.00
  • Save: $1.55 (5%)
FREE Shipping on orders over $35.
In Stock.
Ships from and sold by Amazon.com.
Gift-wrap available.
Sell yours for a Gift Card
We'll buy it for $11.28
Learn More
Trade in now
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

The Elements of Computing Systems: Building a Modern Computer from First Principles Paperback – March 31, 2005

ISBN-13: 978-0262640688 ISBN-10: 0262640686

Buy New
Price: $29.45
Rent
Price: $23.77
26 New from $25.45 21 Used from $18.00
Amazon Price New from Used from
Kindle
"Please retry"
Paperback
"Please retry"
$29.45
$25.45 $18.00
Unknown Binding
"Please retry"
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Frequently Bought Together

The Elements of Computing Systems: Building a Modern Computer from First Principles + How Computers Work: Processor And Main Memory (Second Edition)
Price for both: $33.92

Buy the selected items together
NO_CONTENT_IN_FEATURE

Hero Quick Promo
12 Days of Kindle Book Deals
Load your library with Amazon's editors' picks, $2.99 or less each today only. Learn more

Product Details

  • 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: 8 ounces (View shipping rates and policies)
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (52 customer reviews)
  • Amazon Best Sellers Rank: #36,744 in Books (See Top 100 in Books)

Editorial Reviews

Review

"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.

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.7 out of 5 stars
5 star
39
4 star
11
3 star
0
2 star
2
1 star
0
See all 52 customer reviews
This book is well written, and easy to understand.
Chris Hicks
If you ever wanted to know how a computer worked -- I mean REALLY know -- read Charles Petzold's book CODE.
R. MCRACKAN
I highly recommend this book if you are interested in learning about computer science.
Jonathan Yedidia

Most Helpful Customer Reviews

131 of 133 people found the following review helpful By Jonathan Yedidia on November 15, 2005
Format: Hardcover
I highly recommend this book if you are interested in learning about computer science. The book is organized around the idea of building a computer from the fundamental logic gates up--starting with the hardware (combinational logic gates, arithmetic logic units, sequential logic gates, the CPU and memory) and then through the software hierarchy (starting with the machine language, and working up through the assembler, a virtual machine, a compiler for a high-level language, and an operating system). As a "by-product," one learns, by very relevant examples, many fundamental concepts of computer science.

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.
Read more ›
2 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
45 of 46 people found the following review helpful By Emre Sevinc on May 27, 2009
Format: Paperback Verified Purchase
I have used this book in my computer organization class (Istanbul Bilgi University, Computer Science dept.) and I must admit that it brought a very fresh perspective to second year computer science students. For the first time they were able to see the process of designing a computer from the ground up.

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.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
26 of 26 people found the following review helpful By R. MCRACKAN on August 28, 2009
Format: Paperback Verified Purchase
I have nothing but the most positive things to say about The Elements of Computing Systems. If you ever wanted to know how a computer worked -- I mean REALLY know -- read Charles Petzold's book CODE. If you also wanted to BUILD a computer, read The Elements of Computing Systems. This book takes you from a single basic logic gate to a working computer, then proceeds to design software and even a simple operating system that runs on it. (Caveat: there are 2 things you do not create yourself: the system clock and the base module for flip-flops. There's a good reason why for each. Again, to understand these parts better, I highly recommend Petzold's CODE.) All chapters are independent and can be done in any order, but the order they have it in is best. I think the authors intend for TECS to be a textbook for a class but I'm reading it on my own and it's perfect for self study. Before you read, make sure you consult the book's website's errata because there are a few typos.

I also have nothing but the highest praises for the accompanying software. The authors make freely available a small open source software suite to help develop the computer you're making. Full tutorials are online. The test suites are fully scriptable. The scripts for actually testing your work are included and there's also an appendix in the book explaining the scripting language used. The software is all written in Java and will run on Windows, Linux, or Mac.

Everything is kept as simple as possible without sacrificing any understanding. A perfect learning tool.
2 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
17 of 17 people found the following review helpful By wiredweird HALL OF FAMETOP 500 REVIEWER on June 25, 2011
Format: Paperback Verified Purchase
When I say "survey," I mean a wide-ranging view of what goes into a computing system. This unique book goes into more depth than the word suggests, though, since it presents every level as a project for the student to carry out. This starts with the processor: the authors present an elegant but very stripped-down instruction set, slightly reminiscent of the PDP-8, and an equally stripped-down hardware description language (HDL). The exercise is to implement that processor using that HDL, and verify it using a simulator the authors provide. Next, the student implements the assembler for that instruction set, an interpreter in the spirit of the Java Virtual Machine, a compiler, and a simple operating system. Although each project could be a term course in itself, the authors display a real knack for extracting the essentials of each and boiling them down to a minimal but functional kernel. The results, although they might be toy systems, demonstrate the framework around which larger, industrial systems would be built.

I've taught HDL-based logic design, operating systems, and object-oriented design. Each level of system implementation makes sense only in terms of the levels above and below it, but each is normally taught in isolation. This leaves an odd lack of context and motivation. It never explains to a processor designer what hardware support an OS needs, never explains to the OS implementor what the hardware can (and can't) do, or what the application developer requires. This philosophy even lets computer science students graduate in ignorance of or disdainful of the hardware on which their whole career depends. And, at every level, crucial basics like "what is a stack frame?" go unexplained and unexplored.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews