This book is based on the premise that starting with a high level programming language is not the best approach. The reason most students are unsuccessful using a programming language when they encounter it in their first course is because they are forced to memorize a lot of technical details without having any idea why these details are necessary. That is, they do not understand the basic underpinnings of how a computer works.
From this basic notion evolves the motivated bottom-up approach found in Patt/Patel’s Introduction To Computing Systems, now in a second edition. The text starts with the logic structures and architecture of a computer and moves up to the application software that runs on it. Every treatment that purports to start at the bottom and work up begins with some abstraction. For Patt/Patel, that abstraction is the switch level behavior of an MOS transistor. From a very short treatment of that abstraction, the book covers in turn: Logic Gates, latches, logic structures (MUX, Decoder, Adder, gated latches), finally culminating in an implementation of memory. From there, the book moves on to the Von Neumann model of execution, then a simple computer (the LC-3), machine language programming, assembly language and how an assembler works, and then assembly language programming of the LC-3. The LC-3 treatment concludes with a substantial treatment of Physical I/O, including both polling and interrupt-driven I/O, the nature of traps and subroutine calls/returns. The book then moves to the high-level language C, covering recursion, pointers, and finally elementary data structures. The book establishes a foundation that every subsequent course in the computer science or computer engineering curriculum can benefit from and build on.
"synopsis" may belong to another edition of this title.
The focus of the book is on the fundamentals. The approach of this text better prepares students for later courses in both hardware and software, applications and operating systems, data structures and algorithms, data bases and networks, where an understanding of the basic underpinnings is essential to making the required tradeoffs in all of the above areas.
The book is broken down into two major segments, (a) The underlying structure of a computer, using the LC-3, and (b) programming in a high level language, in this case C.
Because students are taught debugging from the first program they write (in machine language) and are required to use the LC-3 Simulator's debugging tools from the beginning, they are better able to master programming and will be able to complete projects with a lot less help from the TA.
An expanded website for the text includes updated versions of the Solutions Manual, the LC-2 Simulator [to the LC-3 Simulator], Source Code of the examples, a link to the authors' website and JPEGs of all of the figures. It also contains a message board, lab manuals for both versions of the LC-3, as well as two sets of PowerPoint presentations created by instructors using the book in their course.
The second edition reflects the feedback of users of the book in the classroom. Over 50 universities have already adopted the book, and both instructors and students have been generous with their praise and constructive with their criticisms. The authors have taken the feedback seriously and, along with their own additional experience from teaching the course three more times since the first edition came out, have made a number of "improvements" in the new edition.
Chapter 3 on logic structures has been augmented with a section on sequential machines. The authors discovered, while teaching the material recently at Texas, that the student needed to understand finite state control before getting into Chapter 4, the VonNeumann Model. The result is Section 3.7, Sequential Circuits.
The new section 3.7 carefully explains the notion of state, and supplies examples. The authors feel that the notion of -state- is one of the most important fundamental concepts that an engineering or a computer science student must understand.
Chapters 8 and 10 include expanded coverage of the material in Section 10.5, Interrupt-driven I/O. The first edition's coverage of interrupt-driven I/O was very limited, but the authors realized, both as a result of teaching it themselves, and as a result of input from other instructors, that the topic is too important to not do solidly. The result is an additional section in Chapter 8 where material on the nature of interrupts, priority levels, and some basic I/O processing is covered, and an additional section in Chapter 10 where the implementation of interrupts using a stack is covered. The authors opted to cover the two parts of interrupt handling separately because it better matches the students' readiness for the material.
Chapters 11-19 and Appendix D. Feedback from several instructors suggest that the authors covered too much of the C language and not enough on programming methodology in the second half of the book. Keeping in line with the authors' initial manuscript, the 2nd edition goes back to more methodology and less complete C coverage.
Appendix D expanded. Given the new increased emphasis on methodology in Chapters 11-19, some of the C material covered in the first edition is relegated to Appendix D in the new edition.
Feedback has suggested that Chapter 5 flows a little too rapidly, and the discussions are a little too terse. The result in the 2nd edition is an overhauled Chapter 5, with extra drawings and extra verbiage to better illustrate what is going on.
A section discussing the hardware/software interface has been added to Chapter 1. The interplay between the software (what the programmer writes) and the hardware (what the computer executes) is essential to the student's understanding of the fundamentals of computer processing. This has been added to Chapter 1 to raise the reader's awareness at the outset of this topic, which is covered throughout the book.
"About this title" may belong to another edition of this title.
Book Description Mcgraw-Hill (Tx), 2003. Hardcover. Book Condition: New. Bookseller Inventory # P110071215034
Book Description Mcgraw-Hill (Tx), 2003. Hardcover. Book Condition: New. book. Bookseller Inventory # 0071215034
Book Description Hardcover. Book Condition: New. BRAND NEW US edition / [Hardcover] [2nd Edition] / FREE UPGRADE to FedEx, UPS or Priority Mail / receive your book within 1-4 business days! / [clean wrapped, well protected] [Authentic edition exactly the same as the Official Listing] [ships within 1 business day] / Free tracking number / Genuine US Bookstore! Get your book in perfect condition! We also ship international via FedEx, UPS, or USPS Express!. Bookseller Inventory # 261220161022140114