Introduction to Computing Systems: From bits & gates to C & beyond, now in its second edition, is designed to give students a better understanding of computing early in their college careers in order to give them a stronger foundation for later courses. The book is in two parts: (a) the underlying structure of a computer, and (b) programming in a high level language and programming methodology. To understand the computer, the authors introduce the LC-3 and provide the LC-3 Simulator to give students hands-on access for testing what they learn. To develop their understanding of programming and programming methodology, they use the C programming language. The book takes a "motivated" bottom-up approach, where the students first get exposed to the big picture and then start at the bottom and build their knowledge bottom-up. Within each smaller unit, the same motivated bottom-up approach is followed. Every step of the way, students learn new things, building on what they already know. The authors feel that this approach encourages deeper understanding and downplays the need for memorizing. Students develop a greater breadth of understanding, since they see how the various parts of the computer fit together. |
Average Customer Review:
( 20 customer reviews )
Write an online review and share your thoughts with other customers.
Most Helpful Customer Reviews
12 of 12 found the following review helpful:
Intro to CS the way it should be doneMay 17, 2005
By Charles Ashbacher This book is the implementation of what I have been trying to impart to my beginning students for years. It contains explanations of all of the ideas that make up the foundation of computer science. The first sections deal with the fundamentals of binary data, how numbers are represented, how arithmetic is performed, how the bitwise operations are executed, followed by the basics of digital logic. These ideas are then expanded into a simple assembly code with many control instructions. Staying at the assembly level, I/O operations, subroutines and stacks are demonstrated.
In chapter 11, the transition is made to higher-level languages by the introduction of C. It is then used to illustrate variables, operators, control structures, functions, pointers and arrays; recursion, I/O in C and simple data structures. The explanations are all very well done and the topics are what should be the first set encountered by a computer science major. While the level of abstraction that most programmers work at has dramatically increased over the years, there is still no substitute for being well schooled in the fundamentals. Not only does this make it easier to move up the abstraction ladder, it also makes it possible for a programmer to function at the lower level, should the need arise.
I strongly recommend this book for adoption as a text for a first course in computer science. While it is not designed to fit into the traditional mold of a first semester programming class, it will provide a much stronger foundation for the student taking their first course in CS.
6 of 6 found the following review helpful:
Much improved 2nd editionDec 13, 2002
By LangMat
"Historian, Medical Writer"
Everything that was good about the first edition is still here, and what was not-so-good has been improved--production values (page layout in particular), explanations.... If you're interested in an excellent bottoms-up approach, here it is!This is what I said about the first edition: ... a good introductory book. I'm a tech writer with a background in the sciences, and used this book in a "Computers from the bottom up" class. We had an excellent teacher, and without her the obscurities of presentation would have defeated several class members. On the minus side: From a writer's point of view, what is needed is another editing pass to get rid of poor sentence sequences and poorly explained exercises. Also, it's sometimes difficult to follow examples with illustrations on one page and verbal description on another: production values need to be rethought. From a student's point of view, much of the essential information is buried in small print sections, which make the book frustrating to use. But-- on the plus side, the book, used with the excellent Power Point slides provided online, is the best thing available for a true bottoms-up approach. It discusses the basic logic components and their relationship to Boolean logic, instruction sets, and programming at a basic level. Personally, I found the LC-2 simulator great fun to use, very helpful to my understanding of "how things work".
4 of 4 found the following review helpful:
Clear, easy-to-understand goodness.Nov 23, 2004
By Kathy100 I started out knowing next to nothing about Computer Architecture, and yet I was still able to, by myself, read and understand most everything in this book. The chapters are laid out intelligently, with each one building on what was taught before. The diagrams are clear and helpful, and there are plenty of tables and example problems (very clear, thoroughly worked out examples!) spread throughout.
While there is a chapter or two in the middle that people who already are familiar with C might find tedious, they're pretty clearly marked and easy enough to skim through.
I definitely recommend this book to any beginner wishing to learn about computer architecture.
3 of 3 found the following review helpful:
Gradual and relaxed intro, well doneJun 28, 2008
By Daniel J. Romaniuk I had programmed in a number of languages including C before, but I was a bit intimidated by assembler. I was also curious about how microchips work, and why they seem to be all about transistors. There's a lot of material on the web on this subject, but none of it seems detailed and organized enough to really teach you anything. After reading this book, it all makes sense.
There are some great sections including simple, excellent explanations of 2s-complement numbers and finite state machines. I'd recommend this book to anyone who already programs in C, and has played a bit with pointers - I'm not sure I would have liked to encounter them for the first time in this text.
The book is not perfect. Its pace is very slow, and authors often threw in "real-world" analogies which I didn't find helpful. Some sections are a bit repetitive. There were a few concepts thrown in without careful introduction, for example call-by-value vs. call-by-reference. Again, that's not a serious problem if you have even passing familiarity with C.
Overall, a gradual, relaxed, well-structured introduction to a fascinating subject. Good preparation for further study.
5 of 6 found the following review helpful:
Needs improvementFeb 04, 2007
By ak I was lucky enough to be taught by the professor himself--Dr. Patt. The book needs definite improvement in clarity. Too many of the concepts are abstract and ambiguous. The exercises at the end of each section are pathetic, they should be presented more in a Mathematical or Physics style and they do not flex your knowledge about what you have learned in that section. I had to rely on my TAs to explain certain concepts to me since the book did such a poor job.
However, once you master everything that this book has to offer (I strongly recommend you read the appendixes at the end of the book as collateral reading) you will truly understand how computers work at the most fundamental level.
See all 20 customer reviews on Amazon.com
|