Personalize Learning with MyProgrammingLab
Through the power of practice and immediate personalized feedback, MyProgrammingLab helps students fully grasp the logic, semantics, and syntax of programming. A self-study and homework tool, a MyProgrammingLab course consists of hundreds of small practice problems organized around the structure of this textbook. For students, the system automatically detects errors in the logic and syntax of their code submissions and offers targeted hints that enable them to figure out what went wrong—and why. For instructors, a comprehensive roster tracks correct and incorrect answers and stores the code inputted by students for review.
- Programming practice: Your students will gain first-hand programming experience in an interactive online environment.
- Immediate, personalized feedback: Students will gain intelligent, immediate feedback by mining our large database of submissions to provide student-specific responses.
- Dynamic roster: Your students’ submissions are automatically evaluated, both saving you time, and offering students immedi¿ate learning opportunities. The color-coded roster gives you a quick glance of your classes’ progress. Easily drill down to receive information on a single student’s performance or submissions for a specific problem.
- Graduated complexity: Problems are broken down into short, understandable sequences of exercises, where each sequence relates to a particular topic. Within each sequence the level and sophistication of the exercises increase gradually but steadily.
- Step-by-step VideoNote tutorials: Step-by-step video tutorials enhance the programming concepts presented in the book by allowing students to view the entire problem-solving process outside of the classroom–when they need help the most.
- A powerful homework and test manager: MyProgrammingLablets you create, import, and manage online homework assignments, quizzes, and tests that are automatically graded. You can choose from a wide range of assignment options, including time limits, proctoring, and maximum number of attempts allowed. The bottom line: MyProgrammingLab means less time grading and more time teaching.
- Comprehensive online course content: Filled with a wealth of content that is tightly integrated with your textbook, MyProgrammingLab lets you easily add, remove, or modify existing instructional material. You can also add your own course materials to suit the needs of your students or department. In short, MyProgrammingLab lets you teach exactly as you'd like.
Note: MyProgrammingLab is not a self-paced technology and should only be purchased when required by an instructor.
Enhance Learning with the Gaddis Approach
Gaddis’s highly accessible, step-by-step presentation presents all the details needed to understand the “how” and the “why”–but never loses sight of the fact that most novice programmers struggle with this material. Text features include:
- Concept Statements start each major section of the text. This statement concisely summarizes the main point of the section.
- Example Programs are designed to highlight the topic currently being studied.The text has hundreds of complete example programs. In most cases, these are practical, real-world examples. Source code for these programs is provided so that students can run the programs themselves.
- Program Output is a sample of its screen output shown after each example program. This immediately shows the student how the program should function.
- In the Spotlight sections provides a programming problem and a detailed, step by step analysis showing the student how to solve it.
- VideoNotes developed specifically for this book are available at www.pearsonhighered.com/gaddis. Icons appear throughout the text alerting the student to videos about specific topics. Students can follow along with the author as he works through each tutorial in the videos.
- Checkpoints at key locations in each chapter check students’ understanding of important lessons. Answers for all Checkpoint questions can be downloaded from the book’s Companion Website at www.pearsonhighered.com/gaddis. This allows students to check how well they have learned a new topic.
- Notes explain interesting or often misunderstood points relevant to the topic at hand.
- Warnings caution students about programming techniques or practices that can lead to malfunctioning programs or lost data.
- Case studies that simulate real-world applications appear in many chapters throughout the text. These case studies are designed to highlight the major topics of the chapter in which they appear.
- A thorough and diverse set of review questions, such as fill-in-the-blank and short answer, check the student’s mastery of the basic material presented in each chapter. These are followed by exercises requiring problem solving and analysis, such as the Algorithm Workbench, Predict the Output, and Find the Errors sections. Answers to the odd numbered review questions and review exercises can be downloaded from the book’s Companion Website at www.pearsonhighered.com/gaddis.
- Programming Challenges are designed to solidify the student’s knowledge of the topics currently being studied. Each chapter offers a pool of programming exercises. In most cases the assignments present real-world problems to be solved. When applicable, these exercises include input validation rules.
- Group Projects are intended to be constructed by a team of students. There are several group programming projects throughout the text. One student might build the program’s user interface, while another student writes the mathematical code, and another designs and implements a class the program uses. This process is similar to the way many professional programs are written and encourages team work within the classroom.
- Software Development Project: Serendipity Booksellers is available for download from the book’s Companion Website at www.pearsonhighered.com/gaddis. This is an on-going project that instructors can optionally assign to teams of students. It systematically develops a “real-world” software package: a point-of-sale program for the fictitious Serendipity Booksellers organization. The Serendipity assignment for each chapter adds more functionality to the software, using constructs and techniques covered in that chapter. When complete, the program will act as a cash register, manage an inventory database, and produce a variety of reports.
- C++ Quick Reference Guide is printed on the last two pages of Appendix C in the book to provide a quick, easy reference to the C++ language.
Keep Your Course Current
The new C++11 standard was the primary motivation behind this edition. Although this edition introduces many of the new language features, a C++11 compiler is not strictly required to use the book. As you progress through the book, you will see C++11 icons in the margins, next to the new features that are introduced. Programs appearing in sections that are not marked with this icon will still compile using an older compiler.
Here is a summary of the new C++11 topics that are introduced in this edition:
- The auto key word is introduced as a way to simplify complex variable definitions. The auto key word causes the compiler to infer a variable's data type from its initialization value.
- The long long int and unsigned long long int data types, and the LL literal suffix are introduced.
- Chapter 5 shows how to pass a string object directly to a file stream object's open member function, without the need to call the c_str() member function. (A discussion of the c_str()function still exists, for anyone using a legacy compiler.)
- The range-based for loop is introduced in Chapter 7. This new looping mechanism automatically iterates over each element of an array, vector, or other collection, without the need of a counter variable or a subscript.
- Chapter 7 shows how a vector can be initialized with an initialization list.
- The nullptr key word is introduced as the standard way of representing a null pointer.
- Smart pointers are introduced in Chapter 9, with an example of dynamic memory allocation using unique_ptr.
- Chapter 10 discusses the new, overloaded to_string functions for converting numeric values to string objects.
- The string class's new back() and front() member functions are included in Chapter 10's overview of the string class.
- Strongly typed enums are discussed in Chapter 11.
- Chapter 13 shows how to use the smart pointer unique_ptr to dynamically allocate an object.
- Chapter 14 discusses the override key word and demonstrates how it can help prevent subtle overriding errors. The final key word is discussed as a way of preventing a virtual member function from being overridden.
In addition to the C++11 topics, the following general improvements were made:
- NEW! Several new programming problems have been added to the text, and many of the existing programming problems have been modified to make them unique from previous editions.
- NEW! The discussion of early, historic computers in Chapter 1 is expanded.
- NEW! The discussion of literal values in Chapter 2 was improved.
- NEW! The introduction of the char data type in Chapter 2 was reorganized to use of character literals in variable assignment before using ASCII values in variable assignments.
- NEW! The discussion of random numbers in Chapter 3 is expanded and improved, with the addition of a new In the Spotlight section.
- NEW! A new Focus on Object-Oriented Programming section has been added to Chapter 13, showing how to write a class that simulates dice.
- NEW! A new Focus on Object-Oriented Programming section has been added to Chapter 14, showing an object-oriented program that simulates the game of Cho-Han. The program uses objects for the dealer, two players, and a pair of dice.
Support Teaching and Learning
Student Online Resources
Many student resources are available for this book from the publisher. The following items are available on the Gaddis Series resource page at www.pearsonhighered.com/gaddis:
- The source code for each example program in the book
- Access to the book’s companion VideoNotes
- A full set of appendices, including answers to the Checkpoint questions, and answers to the odd-numbered review questions
- A collection of valuable Case Studies
- The complete Serendipity Booksellers Project
Instructor Resources
The following supplements are available to qualified instructors only:
- Answers to all Review Questions in the text
- Solutions for all Programming Challenges in the text
- PowerPoint presentation slides for every chapter
- Computerized test bank
- Answers to all Student Lab Manual questions
- Solutions for all Student Lab Manual programs
Visit the Pearson Instructor Resource Center www.pearsonhighered.com/irc for information on how to access them.
Textbook Web Site
Student and instructor resources, including links to download Microsoft® Visual Studio Express and other popular IDEs, for all the books in the Gaddis Starting Out With series can be accessed at the following URL:
http://www.pearsonhighered.com/gaddis