"This book uses a language-independent approach to teach programming concepts and problem-solving skills, without assuming any previous programming experience. By using easy-to-understand pseudocode, flowcharts, and other tools, the student learns how to design the logic of programs without the complication of language syntax"-- Provided by publisher Cover Title Page Copyright Page Brief Contents Contents Preface Acknowledgments About the Author Chapter 1 Introduction to Computers and Programming 1.1 Introduction 1.2 Hardware 1.3 How Computers Store Data 1.4 How a Program Works 1.5 Types of Software Review Questions Chapter 2 Input, Processing, and Output 2.1 Designing a Program 2.2 Output, Input, and Variables 2.3 Variable Assignment and Calculations IN THE SPOTLIGHT: Calculating Cell Phone Overage Fees IN THE SPOTLIGHT: Calculating a Percentage IN THE SPOTLIGHT: Calculating an Average IN THE SPOTLIGHT: Converting a Math Formula to a Programming Statement 2.4 Variable Declarations and Data Types 2.5 Named Constants 2.6 Hand Tracing a Program 2.7 Documenting a Program IN THE SPOTLIGHT: Using Named Constants, Style Conventions, and Comments 2.8 Designing Your First Program 2.9 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 3 Decision Structures and Boolean Logic 3.1 Introduction to Decision Structures IN THE SPOTLIGHT: Using the If-Then Statement 3.2 Dual Alternative Decision Structures IN THE SPOTLIGHT: Using the If-Then-Else Statement 3.3 Comparing Strings 3.4 Nested Decision Structures IN THE SPOTLIGHT: Multiple Nested Decision Structures 3.5 The Case Structure IN THE SPOTLIGHT: Using a Case Structure 3.6 Logical Operators 3.7 Boolean Variables 3.8 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 4 Repetition Structures 4.1 Introduction to Repetition Structures 4.2 Condition-Controlled Loops: While, Do-While, and Do-Until IN THE SPOTLIGHT: Designing a While Loop IN THE SPOTLIGHT: Designing a Do-While Loop 4.3 Count-Controlled Loops and the For Statement IN THE SPOTLIGHT: Designing a Count-controlled Loop with the For Statement 4.4 Calculating a Running Total 4.5 Sentinels IN THE SPOTLIGHT: Using a Sentinel 4.6 Nested Loops 4.7 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 5 Modules 5.1 Introduction to Modules 5.2 Defining and Calling a Module IN THE SPOTLIGHT: Defining and Calling Modules 5.3 Local Variables 5.4 Passing Arguments to Modules IN THE SPOTLIGHT: Passing an Argument to a Module IN THE SPOTLIGHT: Passing an Argument by Reference 5.5 Global Variables and Global Constants IN THE SPOTLIGHT: Using Global Constants 5.6 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 6 Functions 6.1 Introduction to Functions: Generating Random Numbers IN THE SPOTLIGHT: Using Random Numbers IN THE SPOTLIGHT: Using Random Numbers to Represent Other Values 6.2 Writing Your Own Functions IN THE SPOTLIGHT: Modularizing with Functions 6.3 More Library Functions 6.4 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 7 Input Validation 7.1 Garbage In, Garbage Out 7.2 The Input Validation Loop IN THE SPOTLIGHT: Designing an Input Validation Loop 7.3 Defensive Programming 7.4 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 8 Arrays Array Basics IN THE SPOTLIGHT: Using Array Elements in a Math Expression Sequentially Searching an Array Processing the Contents of an Array IN THE SPOTLIGHT: Processing an Array Parallel Arrays IN THE SPOTLIGHT: Using Parallel Arrays Two-dimensional Arrays IN THE SPOTLIGHT: Using a Two-dimensional Array Arrays of Three or More Dimensions Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 9 Sorting and Searching Arrays 9.1 The Bubble Sort Algorithm IN THE SPOTLIGHT: Using the Bubble Sort Algorithm 9.2 The Selection Sort Algorithm 9.3 The Insertion Sort Algorithm 9.4 The Binary Search Algorithm IN THE SPOTLIGHT: Using the Binary Search Algorithm 9.5 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercise Programming Exercises Chapter 10 Files 10.1 Introduction to File Input and Output 10.2 Using Loops to Process Files IN THE SPOTLIGHT: Working with Files 10.3 Using Files and Arrays 10.4 Processing Records IN THE SPOTLIGHT: Adding and Displaying Records IN THE SPOTLIGHT: Searching for a Record IN THE SPOTLIGHT: Modifying Records IN THE SPOTLIGHT: Deleting Records 10.5 Control Break Logic IN THE SPOTLIGHT: Using Control Break Logic 10.6 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 11 Menu-driven Programs 11.1 Introduction to Menu-driven Programs 11.2 Modularizing a Menu-driven Program 11.3 Using a Loop to Repeat the Menu IN THE SPOTLIGHT: Designing a Menu-driven Program 11.4 Multiple-level Menus 11.5 Focus on Languages: Java, Python, and C++ Review Questions Programming Exercises Chapter 12 Text Processing 12.1 Introduction 12.2 Character-by-character Text Processing IN THE SPOTLIGHT: Validating a Password IN THE SPOTLIGHT: Formatting and Unformatting Telephone Numbers 12.3 Focus on Languages: Java, Python, and C++ Review Questions Debugging Exercises Programming Exercises Chapter 13 Recursion 13.1 Introduction to Recursion 13.2 Problem Solving with Recursion 13.3 Examples of Recursive Algorithms 13.4 Focus on Languages: Java, Python, and C++ Review Questions Programming Exercises Chapter 14 Object-oriented Programming 14.1 Procedural and Object-oriented Programming 14.2 Classes 14.3 Using the Unified Modeling Language to Design Classes 14.4 Finding the Classes and Their Responsibilities in a Problem IN THE SPOTLIGHT: Finding the Classes in a Problem IN THE SPOTLIGHT: Determining Class Responsibilities 14.5 Inheritance 14.6 Polymorphism 14.7 Focus on Languages: Java, Python, and C++ Review Questions Programming Exercises Chapter 15 Gui Applications and Event-driven Programming 15.1 Graphical User Interfaces 15.2 Designing the User Interface for a Gui Program IN THE SPOTLIGHT: Designing a Window 15.3 Writing Event Handlers IN THE SPOTLIGHT: Designing an Event Handler 15.4 Designing Apps for Mobile Devices 15.5 Focus on Languages: Java, Python, and C++ Review Questions Programming Exercises Appendix A Ascii/unicode Characters Appendix B Flowchart Symbols Appendix C Pseudocode Reference Appendix D Converting Decimal Numbers to Binary Appendix E Answers to Checkpoint Questions Index Starting Out with Programming Logic and Design introduces programming concepts and problem-solving skills using an easy-to-understand, language-independent approach. Designed for beginning programmers, it covers fundamental programming topics and object-oriented concepts without the further complication of language syntax. Every chapter includes easy-to-read pseudocode, flowcharts, practical example programs, and application exercises. As you progress, you'll gain confidence in your skills and learn to recognize the logic behind developing high-quality programs. The 6th Edition features improved pedagogy that gradually introduces the different ways a program's flow of execution can be directed.