Customer Reviews


18 Reviews
5 star:
 (15)
4 star:
 (3)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews
‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

68 of 70 people found the following review helpful:
5.0 out of 5 stars Fantastic book--Ideal for self-study, November 15, 2005
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. 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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


18 of 18 people found the following review helpful:
5.0 out of 5 stars Without any alternative, May 27, 2009
Amazon Verified Purchase(What's this?)
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


16 of 16 people found the following review helpful:
5.0 out of 5 stars High-quality accessible projects, ideal for self-study, May 19, 2008
By 
Nada Amin (Cambridge, MA, USA) - See all my reviews
(REAL NAME)   
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
I highly recommend this project-based book to anyone with a passion for programming and the curiosity to dig below its high-level incarnations. This book will show you how to build a computing system from the ground up. In the process, you'll learn about combinatorial & sequential logic, ALU & memory chips, CPU & von Neumann architecture, machine & assembly language, assemblers, virtual machines, parsing and code generation. The hardware part is built using a freely provided Hardware Simulator and the software part can be tackled in any programming language(s) you choose. You can get started right now by going to the book's website, [...], which has some sample chapters and all the tools (like the Hardware Simulator) you'll need to complete these wonderful projects. Each project comes with extensive test cases, giving you immediate feedback on your progress.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


8 of 8 people found the following review helpful:
5.0 out of 5 stars If only I could give more than 5 stars, August 28, 2009
By 
Amazon Verified Purchase(What's this?)
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 7 people found the following review helpful:
5.0 out of 5 stars Great intro, September 22, 2009
Amazon Verified Purchase(What's this?)
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
This is the only text I know of that walks up the entire stack - from logic gates to the OS - and has you actually implement each layer. It is not really a text book in the traditional sense but rather more of a lab book. The authors give just enough information (just a few pages) to complete each of the projects.

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].
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 6 people found the following review helpful:
5.0 out of 5 stars Outstanding survey, June 25, 2011
Amazon Verified Purchase(What's this?)
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
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. This book is the only one I know that not only explains but demonstrates how the pieces fit together.

I suppose there are many ways to use this book. I imagine it as a course for well-prepared and motivated third-year students, the ones who've seen all the basics, need something to forge the pieces into a meaningful whole, and who can still choose more coursework based on what they learn here. It would also be helpful for software types thrown into embedded development or for any engineer who wants a fuller understanding of what the computing platform really is. This has my highest recommendation.

-- wiredweird
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 6 people found the following review helpful:
5.0 out of 5 stars Excellent, comprehensive and fun!, July 29, 2010
By 
Yong Bakos (Denver, CO USA) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
First, realize that I am a cynic. I was prepared for a critical response from my students regarding the TECS class I conducted last semester (Spring 2010). However, the results were _fantastic_. I had multiple opportunities to see the "lightbulb come on" for our students. They finally understood many topics that our other classes, such as "Computer Organization," only briefly describe.

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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 6 people found the following review helpful:
5.0 out of 5 stars This Book is One of a Kind, and a True Masterpiece, June 7, 2010
Amazon Verified Purchase(What's this?)
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
I've been a computer hobbyist since the first days of the Apple ][, and have dabbled in everything from programming to circuit board design. Despite all that time spent, there have always been huge holes in my understanding. In the back of my mind, I've always dreamed of building a simple computer from a handful of chips, designing an operating system for it, and using it to write programs. Unfortunately, the complexity of the task always seemed overwhelming. Assembly language, stack arithmetic, compiler design - all seemed much too intimidating to seriously approach. But no longer.

This book guides the reader on a journey from the basics of boolean logic and elementary gates through CPU design, assembly, virtual machines, high level languages, compilers and operating systems. How can such a task be accomplished in one 300-page volume? Simple - you do most of the work yourself. The relatively short chapters introduce each concept and suggest an approach to implementation. The reader is then given a project to complete and test. Intimidated by assembly language? You probably won't be after you've written a symbolic assembler. Confused by compilers? Imagine how you'll feel when you realize you've created one for a simple (but completely usable) high-level language.

Some degree of familiarity with a programming language will be needed to complete all of the later projects in this book. I used Java, and it worked like a charm. I'm just about finished with the book, and I'm trying to decide what to do next. I'm actually sad to be almost done! I plan to fulfill that original dream of building an actual computer from scratch - several modern microcontrollers can handle video output and keyboard input, so I think it will be doable. I feel pretty confident that after completing this book I'll be able to create a basic operating system and development toolset, which I can then spend countless hours extending!

In summary, if you want to gain an understanding of how computers really work, and if you're willing to learn by doing, this is the best book I've ever seen. I wish I could shake the authors' hands to thank them personally.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 7 people found the following review helpful:
5.0 out of 5 stars In a League of its Own, August 19, 2009
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
As far as I know, this is the only books that gives you a hands on demonstration of how a computer works from its basic logic circuits, to modeling a central processing unit, random access memory, and eventually a complete computer. After creating a simple, but complete computer, you will learn how machine language works, learn to use a modern virtual machine language to generate machine code, and learn to use high level object oriented language that can generate virtual machine language. After creating a computer and its programming languages, you can actually write programs and see how they work on your new simulated computer.

When I first started reading this book, I through that it would be an amazing high school course. The first part of the book is simple and powerful. However, some projects in the second part of the book require a basic knowledge of at least one programming language to perform, and many high school students will not have this. As a computer science student, I thought this was the best book I have ever used. It shows you the big picture in hands of fashion. Many courses will try to teach you about hardware, or programming, or logic, but very few will have you design a computer from scratch (which is made much easier than it sounds) and then have you run software on that computer. This is an amazing book and it should be required reading for computer science students.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 5 people found the following review helpful:
5.0 out of 5 stars excellent!!! ....tips though..., June 28, 2011
This review is from: The Elements of Computing Systems: Building a Modern Computer from First Principles (Paperback)
if you really want to go through all projects, especially the first ones, buy this book first ####Code: The Hidden Language of Computer Hardware and Software###. i find the two to be a great combination. after reading the code book, the first projects on hardware will be to easy. even the rest actually.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

This product

The Elements of Computing Systems: Building a Modern Computer from First Principles
$29.00 $19.10
In Stock
Add to cart Add to wishlist