| |
| |
Preface | |
| |
| |
| |
An Overview of Computers and Logic | |
| |
| |
Understanding Computer Components and Operations | |
| |
| |
Understanding the Evolution of Programming Techniques | |
| |
| |
Understanding the Programming Process | |
| |
| |
| |
Understanding the problem | |
| |
| |
| |
Envisioning the objects | |
| |
| |
| |
Planning the logic | |
| |
| |
| |
Coding the program | |
| |
| |
| |
Translating the program code | |
| |
| |
| |
Testing the program | |
| |
| |
| |
Putting the program into production | |
| |
| |
| |
Maintaining the program | |
| |
| |
| |
Retiring the program | |
| |
| |
Using Flowcharts and Pseudocode Statements | |
| |
| |
Creating an Application Class With A main () Method | |
| |
| |
Using and Naming Variables | |
| |
| |
Assigning Values to Variables | |
| |
| |
Understanding Data Types | |
| |
| |
Understanding Various Forms of Input | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Understanding Structure | |
| |
| |
Understanding the Need to Repeat Program Instructions | |
| |
| |
Stopping a Program from Executing Infinitely | |
| |
| |
Understanding Unstructured Spaghetti Code | |
| |
| |
Understanding the Three Basic Structures: Sequence, Selection, and Loop | |
| |
| |
The Sequence Structure | |
| |
| |
The Selection Structure | |
| |
| |
The Loop Structure | |
| |
| |
Building Structured Methods | |
| |
| |
Using a Priming Read | |
| |
| |
Understanding the Reasons for Structure | |
| |
| |
Recognizing Structure | |
| |
| |
Describing Three Special Structures-Case, Do-While, and Do-Until | |
| |
| |
The Case Structure | |
| |
| |
The Do-While and Do-Until Loops | |
| |
| |
Introduction to Methods | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Making Decisions | |
| |
| |
Evaluating Boolean Expressions to Make Comparisons | |
| |
| |
Using the Relational Comparison Operators | |
| |
| |
Understanding and Logic | |
| |
| |
Nesting and Decisions for Efficiency | |
| |
| |
Combining Decisions in an and Selection | |
| |
| |
Avoiding Common Errors in an and Selection | |
| |
| |
Understanding or Logic | |
| |
| |
Writing or Decisions for Efficiency | |
| |
| |
Combining Decisions in an or Selection | |
| |
| |
Avoiding Common Errors in an or Selection | |
| |
| |
Making Selections Within Ranges | |
| |
| |
Understanding Common Errors Using Range Checks | |
| |
| |
Understanding Precedence When Combining and and or Selections | |
| |
| |
Understanding the Case Structure | |
| |
| |
Using Decision Tables | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Looping | |
| |
| |
Understanding the Advantages of Looping | |
| |
| |
Controlling Loops with Counters and Sentinel Values | |
| |
| |
Using a Definite While Loop with a Counter | |
| |
| |
Using an Indefinite While Loop with a Sentinel value | |
| |
| |
Using Nested Loops | |
| |
| |
Mixing Constant and Variable Sentinel Values | |
| |
| |
Avoiding Common Loop Mistakes | |
| |
| |
Mistake: Neglecting to Initialize the Loop Control Variable | |
| |
| |
Mistake: Neglecting to Alter the Loop Control Variable | |
| |
| |
Mistake: Using the Wrong Comparison with the Loop Control Variable | |
| |
| |
Mistake: Including Statements Inside the Loop that Belong Outside the Loop | |
| |
| |
Using a for Loop: Counter-Controlled Repetition | |
| |
| |
Using Posttest Loops | |
| |
| |
Recognizing the Characteristics Shared by All Loops | |
| |
| |
Common Loop Applications | |
| |
| |
Using a Loop to Accumulate Totals | |
| |
| |
Using a Loop to Validate Data | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Arrays | |
| |
| |
Understanding Arrays and How They Occupy Computer Memory | |
| |
| |
How Arrays Occupy Computer Memory | |
| |
| |
Manipulating an Array to Replace Nested Decisions | |
| |
| |
Using a Named Constant to Refer to an Array's Size | |
| |
| |
Array Declaration and Initialization | |
| |
| |
Variable and Constant Arrays | |
| |
| |
Searching an Array for an Exact Match | |
| |
| |
Using Parallel Arrays | |
| |
| |
Improving Search Efficiency Using an Early Exit | |
| |
| |
Searching an Array for a Range Match | |
| |
| |
Remaining Within Array Bounds | |
| |
| |
Using a for Loop to Process Arrays | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Using Methods | |
| |
| |
Creating a Simple Method | |
| |
| |
Understanding Local and Global Variables and Constants | |
| |
| |
Creating Methods That Require A Single Argument | |
| |
| |
Creating Methods That Require Multiple Arguments | |
| |
| |
Creating Methods That Return Values | |
| |
| |
Passing an Array to a Method | |
| |
| |
Overloading Methods | |
| |
| |
Avoiding Ambiguous Methods | |
| |
| |
Using Prewritten, Built-in Methods | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up For Discussion | |
| |
| |
| |
Object-Oriented Programming Concepts-Classes and Objects | |
| |
| |
An Overview of Some Principles of Object-Oriented Programming | |
| |
| |
Polymorphism | |
| |
| |
Inheritance | |
| |
| |
Encapsulation | |
| |
| |
Defining Classes and Creating Class Diagrams | |
| |
| |
Creating Class Diagrams | |
| |
| |
The set methods | |
| |
| |
The get Methods | |
| |
| |
Other methods | |
| |
| |
Understanding Public and Private Access | |
| |
| |
Organizing Classes | |
| |
| |
Understanding Instance Methods | |
| |
| |
Understanding Static, Class Methods | |
| |
| |
An Introduction to Constructors | |
| |
| |
Constructors with Parameters | |
| |
| |
Overloading Class Methods | |
| |
| |
Using Objects | |
| |
| |
Understanding Destructors | |
| |
| |
Understanding Composition | |
| |
| |
One Example of Using Predefined Classes: Creating Gui Objects | |
| |
| |
Reviewing the Advantages of Object-Oriented Programming | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Event-Driven Programming with Graphical User Interfaces | |
| |
| |
Understanding Event-Driven Programming | |
| |
| |
User-Initiated Actions and Gui Components | |
| |
| |
Designing Graphical User Interfaces | |
| |
| |
The Interface Should Be Natural and Predictable | |
| |
| |
The Interface Should Be Attractive, Easy to Read, and Nondistracting | |
| |
| |
To Some Extent, It's Helpful If the User Can Customize Your Applications | |
| |
| |
The Program Should Be Forgiving | |
| |
| |
The GUI Is Only a Means to an End | |
| |
| |
Modifying the Attributes of Gui Components | |
| |
| |
The Steps to Developing an Event-Driven Application | |
| |
| |
Creating Storyboards | |
| |
| |
Defining the Objects in an Object Dictionary | |
| |
| |
Defining the Connections Between the User Screens | |
| |
| |
Planning the Logic | |
| |
| |
Understanding Multithreading | |
| |
| |
Creating Animation | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Object Concepts: Polymorphism and Inheritance | |
| |
| |
Understanding Inheritance | |
| |
| |
Understanding Inheritance Terminology | |
| |
| |
Accessing Private Members of a Parent Class | |
| |
| |
Overriding Base Class Methods | |
| |
| |
Understanding how Constructors Are Called During Inheritance | |
| |
| |
Understanding How a Derived Class Object "Is An" Instance of the Base Class | |
| |
| |
Using Inheritance to Achieve Good Software Design | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Exception Handling | |
| |
| |
Learning About Exceptions | |
| |
| |
Understanding the Limitations of Traditional Error Handling | |
| |
| |
Tyring Code and Catching Exceptions | |
| |
| |
Throwing and Catching Multiple Exceptions | |
| |
| |
Using the finally Block | |
| |
| |
Understanding the Advantages of Exception Handling | |
| |
| |
Tracing Exceptions Through the Call Stack | |
| |
| |
A Case Study: Tracing the source of an Exception | |
| |
| |
Creating Your Own Exceptions | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
System Modeling with the Uml | |
| |
| |
Understanding the Need for System Modeling | |
| |
| |
What is the Uml? | |
| |
| |
Using Use Case Diagrams | |
| |
| |
Using Class and Object Diagrams | |
| |
| |
Using Sequence and Communication Diagrams | |
| |
| |
Using State Machine Diagrams | |
| |
| |
Using Activity Diagrams | |
| |
| |
Using Component and Deployment Diagrams | |
| |
| |
Diagramming Exception Handling | |
| |
| |
Deciding When to Use Uml and Which Uml Diagrams to Use | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
Review Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Advanced Array Concepts | |
| |
| |
Understanding the Need for Sorting Records | |
| |
| |
Understanding How to Swap Two Values | |
| |
| |
Using a Bubble Sort | |
| |
| |
Sorting a List of Variable Size | |
| |
| |
Refining the Bubble Sort by Reducing Unnecessary Comparisons | |
| |
| |
Refining the Bubble Sort by Eliminating Unnecessary Passes | |
| |
| |
Using an Insertion Sort | |
| |
| |
Using a Selection Sort | |
| |
| |
Declaring an Array of Objects | |
| |
| |
Sorting Arrays of Objects | |
| |
| |
Using Two-Dimensional and Multidimensional Arrays | |
| |
| |
Using a Built-In Array Class | |
| |
| |
Chapter Summary | |
| |
| |
Key Terms | |
| |
| |
REview Questions | |
| |
| |
Exercises | |
| |
| |
Case Project | |
| |
| |
Up for Discussion | |
| |
| |
| |
Solving Difficult Structuring Problems | |
| |
| |
| |
Understanding Numbering Systems and Computer Codes | |
| |
| |
| |
Using a Large Decision Table | |
| |
| |
| |
Software Testing and Data Validation | |
| |
| |
Glossary | |
| |
| |
Index | |