Synopses & Reviews
I think it's well written and intelligently presented. It's a good introduction not only to C++ programming, but also to computer science as a whole. - Larry Herman, UNITEC Institute of Technology
This book has a very large number of exercises, with a large variety of types. It is one the things that attracted me to the text. I am pleased with the quantity and quality of the exercises in this book. - Cary Laxer, Computer Science, Rose-Hulman Institute of Technology
Joel Adams and Larry Nyhoff address two key goals for first-year computing courses: to give students programming skills in a specific language, and to introduce them to the larger field of computer science. In this third edition of their best-selling book, these experienced educators offer a well-rounded approach to the methodologies and techniques of C++, while presenting students with a general overview of computing as a discipline, allowing them to put their learning into a broader context.
KEY FEATURES
- Provides carefully selected Part of the Picture presentations by computing experts as an overview of the discipline of computer science
- Offers 500 Quick Quiz questions with answers and 800 written exercises to be used for written assignments
- Includes more than 300 programming problems drawn from a wide range of application areas
NEW TO THIS EDITION
- A new chapter on data structures
- Learning objectives listed at the beginning of each chapter
- End-of-chapter summaries with key words and notes to help students identify the main concepts of each chapter
- Case studies featuring problems with complete solutions, including both design and program code
- Special optional OBJECTive Thinking sections to present classes and objects
- Prentice Hall Companion Website at http://www.prenhall.com/adams and authors' website at http://cs.calvin.edu/books/c++/intro/3e/
Synopsis
' Object-oriented programming is quickly becoming a standard industry practice, and this book exposes the beginner programmer to object-oriented programming early and consistently. Using a “spiral” approachCentral topics are introduced early and are revisited in increasing detail throughout the book. This “use it, then build it” approach exposes users to concepts underlying basic constructs, reducing the learning curve when the time comes to actually build their own. Provides a gradual introduction to classes and object-oriented programming, especially suited for those with previous programming experience. A CD-ROM with every copy of the book includes all the source code for programs in the book. The authors introduce key ideas behind computing with C++ and object-oriented programming in an intuitive and non-intimidating way. This book not only covers text-based programming, but also graphical/internet programming. A new final chapter on Data Structures has been added which provides an introduction to vectors, linked-lists, stacks, queues, and trees, and how they are used in the Standard Template Library (STL). Object-Centered Design, Introductory Example, Spiral Approach, and Standard Template Library (STL) sections have been retained. Good documentation techniques and habits are modeled in examples. “Part of the Picture” sections in each chapterseveral contributed by field experts introduce readers to discipline of Computer Science-e.g., ethics, history, AI, and architecture. Ex. Ch. 1, Ethics and Computing, and Ch. 6, Artificial Intelligence. Appropriate for beginner to intermediate programmers using C++ (CS1 with C++). '
Description
System requirements for accompanying computer disc: PC with a 486DX/66 MHz or higher processor (Pentium 90 recommended); Microsoft Windows 95 or Windows NT workstation operating system version 4.0 or later; 20 MB of RAM (24 MB recommended); hard disk space required: typical installation, 175 MB; minimum installation, 120 MB; CD-ROM installation (tools from the compact disc), 50 MB; CD-ROM drive; 32 bit protected mode CD-ROM driver; VGA or higher-resolution monitor (Super VGA recommended); Microsoft mouse or compatible pointing device.
About the Author
Joel C. Adams received two B.S. degrees in Psychology and Computer Science in 1980 and 1984 from Geneva College. He continued his study of Computer Science at the University of Pittsburgh, where he received his M.S. in 1986 and his Ph.D. in 1988. Since 1989, Joel has taught at Calvin College, where he is a Professor of Computer Science. He has also been a visiting faculty member at North Carolina State University and a Fulbright Scholar at the University of Mauritus. He is co-author of the widely used book C++: An Introduction to Computing.
Larry R. Nyhoff earned his A.B. in Mathematics in 1960 from Calvin College and his M.S. in 1961 from the University of Michigan. Larry continued his study of Mathematics and received his Ph.D. in 1969 from Michigan State University. Hi is in his 37th year as a Professor at Calvin College and has aided in the development of the school’s computer science curriculum since its inception. In addition to authoring and co-authoring over 27 textbooks used worldwide, Larry is a professional member of ACM and SIGCSE.
Table of Contents
(NOTE:
Each chapter concludes with Chapter Summary, Programming Pointers, and Programming Problems.)
0. Beginning Snapshots.
PART OF THE PICTURE: What Is Computer Science? PART OF THE PICTURE: The History of Computing. PART OF THE PICTURE: Introduction to Computer Systems.
1. Problem Solving and Software Engineering.
Welcome to the World of C++. Problem Solving through Software Engineering. Case Study: Revenue Calculation. OBJECTive Thinking: Spheres As Objects. PART OF THE PICTURE: Ethics and Issues.
2. Types.
Introductory Example: Computing Student Pay. Types and Declarations. PART OF THE PICTURE: Data Representation. OBJECTive Thinking: Attribute Variables.
3. Operations and Expressions.
Introductory Example: Einstein's Equation. Numeric Expressions. Boolean Expressions. Character Expressions. Assignment Expressions. Input/Output Expressions. Example: Truck Fleet Accounting. OBJECTive Thinking: Initialization and Constructors.
4. Functions.
Introductory Example: Temperature Conversion with Expressions. Introductory Example: Temperature Conversion with Functions. Functions That Use Selection. Functions That Use Repetition. PART OF THE PICTURE: Computability Theory. Case Study: An 8-Function Calculator. An Introduction to Libraries. OBJECTive Thinking: Class Methods.
5. Using Classes.
Introductory Example: “The Farmer in the Dell.” Introduction to Classes. The istream and ostream Classes. Computing with string Objects. Case Study: Decoding Phone Numbers. PART OF THE PICTURE: Simulation. OBJECTive Thinking: Instance Methods.
6. Selection.
Introductory Example: School Mascots. Selection: The if Statement. Selection: The switch Statement. Example: Computing Letter Grades. Selection: Conditional Expressions. PART OF THE PICTURE: Boolean Logic and Digital Design. PART OF THE PICTURE: Computer Architecture. OBJECTive Thinking: Mutator Methods.
7. Repetition.
Introductory Example: The Punishment of Gauss. Repetition: The for Loop. Repetition: The while Loop. Repetition: The do Loop. Input Loops. Choosing the Right Loop. Case Study: Calculating Depreciation. PART OF THE PICTURE: Introduction to Algorithm Analysis. OBJECTive Thinking: Code. Reuse Through Inheritance.
8. Functions in Depth.
Introductory Example: One-Step Integer Division. Parameters in Depth. Examples of Parameter Usage. Inline Functions. Scope, Overloading, and Templates. A Brief Introduction to Recursion. PART OF THE PICTURE: Numerical Methods. OBJECTive Thinking: Class Variables, Instance Variables, and Scope.
9. Files and Streams.
Introductory Example: Weather Data Analysis. ifstream and ofstream Objects. Example: Scanning for a Virus. Additional Stream Features. PART OF THE PICTURE: Database Systems. OBJECTive Thinking: Objects and Streams.
10. Arrays and Vector “T”s.
Introductory Example: Quality Control. C-Style Arrays. Sorting. Searching. Example: Processing Employee Information. The vector“T” Class Template. Example: Processing Test Scores. OBJECTive Thinking: Objects and Sequences.
11. Building Classes.
Introductory Example: Modeling Temperatures. Designing a Class. Implementing Class. Attributes. Implementing Class Operations. Example: Retrieving Student Information. OBJECTive Thinking: Operator Overloading and Friends.
12. Enumerations.
Introductory Example: Wavelengths of Colors. C-Style Enumerations. Object-Oriented Enumerations. Example: Geological Classification. PART OF THE PICTURE: The C++ Type Hierarchy. OBJECTive Thinking: Inheritance and Polymorphism.
13. Multidimensional Arrays.
Introductory Example: Mileage between Cities. C-Style Multidimensional Arrays. Multidimensional vector“T” Objects. A vector “T”-Based Matrix Library. PART OF THE PICTURE: Computer Graphics. OBJECTive Thinking: The Matrix Class Revisited.
14. Pointers and Run-Time Allocation.
Introduction to Pointer Variables. Run-Time Allocation Using new and delete. The STL list Class Template. Pointers and Command-Line Arguments. PART OF THE PICTURE: Algorithm Efficiency. OBJECTive Thinking: Pointers and Polymorphism.
15. Data Structures.
Introductory Example: The Binary Representation of Integers. The Queue Container. Recursion Revisited. An Introduction to Trees. Trees in STL. PART OF THE PICTURE: Expert Systems.