For undergraduate students in Computer Science and Computer Programming courses
A solid foundation in the basics of C++ programming will allow students to create efficient, elegant code ready for any production environment.
Learning basic logic and fundamental programming techniques is essential for new programmers to succeed. A distinctive fundamentals-first approach and clear, concise writing style characterize Introduction to Programming with C++, 3/e. Basic programming concepts are introduced on control statements, loops, functions, and arrays before object-oriented programming is discussed. Abstract concepts are carefully and concretely explained using simple, short, and stimulating examples. Explanations are presented in brief segments, with many figures and tables.
NEW! This edition is available with MyProgrammingLab, an innovative online homework and assessment tool. Through the power of practice and immediate personalized feedback, MyProgrammingLab helps students fully grasp the logic, semantics, and syntax of programming.
Note: If you are purchasing the standalone text or electronic version, MyProgrammingLab does not come automatically packaged with the text. To purchase MyProgrammingLab, please visit: myprogramminglab.com or you can purchase a package of the physical text + MyProgrammingLab by searching the Pearson Higher Education web site. MyProgrammingLab is not a self-paced technology and should only be purchased when required by an instructor.
Teaching and Learning Experience
To provide a better teaching and learning experience, for both instructors and students, this program offers:
- Fundamentals-First: Basic programming concepts are introduced on control statements, loops, functions, and arrays before object-oriented programming is discussed.
- Problem-Driven Motivation: The examples and exercises throughout the book emphasize problem solving and foster the concept of developing reusable components and using them to create practical projects.
- Support for Instructors and Students: The author maintains a website at http://www.cs.armstrong.edu/liang/cpp3e that includes multiple interactive resources.
- Fundamentals First: This book adopts the fundamentals-first and problem-driven strategy, proceeding at a steady pace through all the necessary and important basic concepts, then moving to object-oriented programming, and then to the use of the object-oriented approach to build applications with advanced features.
- Why Fundamentals First? Learning basic logic and fundamental programming techniques like loops and step-wise refinement is essential for new programmers to succeed. Students who cannot write code in procedural programming are not able to learn object-oriented programming. A good introduction on primitive data types, control statements, functions, and arrays prepares students to learn object-oriented programming.
- Systematic and Coherent Coverage: Helps students learn fundamental programming techniques (selection statements, loops, functions, and arrays).
- Step-by-step Presentation: Students learn all essential subjects in C++ incrementally from fundamental programming techniques to object-oriented programming, from simple functions to STL, from simple data types to classic structures.
- Object-oriented Programming: A thorough introduction on primitive data types, control statements, functions, and arrays prepares students to learn object-oriented programming.
- From Fundamentals to Object-Oriented: Students often have difficulty adapting to the object-oriented paradigm. The book addresses this issue in chapter 10 on transitioning from procedural programming to object-oriented programming. The chapter focuses on class design. Several examples are used to demonstrate the advantages of object-oriented programming, so students learn how and when to apply OOP effectively.
- Problem-Driven Focus: Students learn to approach programming as a method for problem solving by beginning with a discussion of obstacles and goals. Interesting and practical examples are used not only to illustrate syntax but also to teach problem solving and programming.
- Why Problem-Driven?: Programming isn’t just syntax, classes, or objects. It is really problem solving. Applying the concept of abstraction in the design and implementation of software projects is the key to developing software. The overriding objective of the book is to teach students to use many layers of abstraction in solving problems and to see problems in small and in large. The examples and exercises throughout the book emphasize problem solving and foster the concept of developing reusable components and using them to create practical projects.
- Engaging Problems: Interesting and practical problems introduce each chapter and are solved within the chapter. The book uses a wide variety of problems with various levels of difficulty to motivate students. The problems cover many application areas in gaming, math, business, science, animation, and multimedia.
- VideoNotes: VideoNotes are step-by-step video tutorials specifically designed to enhance the programming concepts presented in Introduction to Programming with C++, 3e. Students can view the entire problem-solving process outside of the classroom—when they need help the most. Go to www.pearsonhighered.com/videonotes for a brief VideoNotes demo.
SUPPORT FOR INSTRUCTORS AND STUDENTS
- Text-specific Website: The author maintains a website at http://www.cs.armstrong.edu/liang/cpp3e that includes:
- Answers to review questions
- Solutions to even-numbered programming exercises
- Source code for
New to this Edition
- Complete Revision – A complete revision to enhance clarity, content, presentation, examples, and exercises.
- New Examples and Exercises - New examples and exercises to motivate and stimulate student interest in programming.
- Key Points - Key Points that highlight the important concepts covered in the section.
- Check Points - Check Points that provide review questions to help students track their learning progress and evaluate their knowledge about a major concept or example.
- VideoNotes – New VideoNotes that provide short video tutorials designed to reinforce the key concepts. VideoNotes are step-by-step video tutorials specifically designed to enhance the programming concepts presented in Introduction to Programming with C++, 3e. Students can view the entire problem-solving process outside of the classroom—when they need help the most. Go to www.pearsonhighered.com/videonotes for a brief VideoNotes demo.
- String Objects Early - The string objects are introduced early in Chapter 4 to enable strings to be used in the early part of the book.
- Simple IO Early – Introductions of simple input and output in Chapter 4 to enable students to write programs using files early.
- Functions in One Chapter – Inclusion of functions in Chapter 6, which now covers all issues related to functions.
- Common Error sections - Chapter sections on common errors and pitfalls to steer students away from common programming errors.
- Simplified Examples – Replacement of complex examples with simpler ones (e.g. Solving the Sudoku problem in Chapter 8 is replaced by a problem of checking whether a solution is correct. The complete solution to the Sudoku problem is moved to the companion Website.)
- Algorithm Efficiency and Techniques – Expanded bonus Chapter 18 introduces algorithmic techniques: dynamic programming, divide-and-conquer, backtracking, and greedy algorithm with new examples to design efficient algorithms.
- C+11 New Features – Introduction of new C++11 features of foreach loops and auto type interference in the bonus chapters and of lambda functions in the supplements on the Companion Website.
- Online Practice and Assessment with MyProgrammingLab - MyProgrammingLab, Pearson's online homework and assessment tool, is available with this edition. 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.
Table of Contents
Part I Fundamentals of Programming
Chapter 1 Introduction to Computers, Programming, and C++
Chapter 2 Elementary Programming
Chapter 3 Selections
Chapter 4 Mathematical Functions, Characters, and Strings
Chapter 5 Loops
Chapter 6 Functions
Chapter 7 Single-Dimensional Arrays and C-Strings
Chapter 8 Multidimensional Arrays
Part II Object-Oriented Programming
Chapter 9 Objects and Classes
Chapter 10 Object-Oriented Thinking
Chapter 11 Pointers and Dynamic Memory Management
Chapter 12 Templates, Vectors, and Stacks
Chapter 13 File Input and Output
Chapter 14 Operator Overloading
Chapter 15 Inheritance and Polymorphism
Chapter 16 Exception Handling
Part III Data Structures and Advanced Topics
Chapter 17 Recursion
Chapter 18 Developing Efficient Algorithms
Chapter 19 Sorting
Chapter 20 Linked Lists, Queues, and Priority Queues
Chapter 21 Binary Search Trees
Chapter 22 STL Containers
Chapter 23 STL Algorithms
Chapter 24 Graph Applications
Chapter 25 Weighted Graph Applications
Chapter 26 AVL Trees and Splay Trees
Chapters 18-26 are bonus chapters available from http://www.pearsonhighered.com/liang. Login or register under VideoNotes and Web Chapters.