did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781423901846

An Object-oriented Approach to Programming Logic and Design

by
  • ISBN13:

    9781423901846

  • ISBN10:

    1423901843

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2007-12-20
  • Publisher: Cengage Learning
  • View Upgraded Edition

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $157.95 Save up to $39.49
  • Buy Used
    $118.46
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

An Object-Oriented Approach to Programming Logic and Design, Second Edition is a language-independent introduction to programming logic using object-oriented principles. It introduces programming concepts and enforces good style and logical thinking. Joyce Farrell is well-known for her Programming Logic and Design book, which takes a procedural approach to programming. An Object-Oriented Approach to Programming Logic and Design, Second Edition offers similar topical coverage and pedagogy, but it introduces the user to the world of object-oriented programming. Designed for a first course in programming, no programming experience is required and the text does not focus on any particular language.

Author Biography

Joyce Farrell was formerly Assistant Professor of Computer Information Systems at Harper College in Palatine, Il.

Table of Contents

Prefacep. XIII
An Overview of Computers and Logicp. 1
Understanding Computer Components and Operationsp. 2
Understanding the Evolution of Programming Techniquesp. 5
Understanding the Programming Processp. 7
Understanding the problemp. 7
Envisioning the objectsp. 7
Planning the logicp. 8
Coding the programp. 8
Translating the program codep. 8
Testing the programp. 9
Putting the program into productionp. 10
Maintaining the programp. 11
Retiring the programp. 11
Using Flowcharts and Pseudocode Statementsp. 11
Creating an Application Class With A main () Methodp. 12
Using and Naming Variablesp. 15
Assigning Values to Variablesp. 16
Understanding Data Typesp. 18
Understanding Various Forms of Inputp. 21
Chapter Summaryp. 24
Key Termsp. 25
Review Questionsp. 28
Exercisesp. 30
Case Projectp. 32
Up for Discussionp. 32
Understanding Structurep. 33
Understanding the Need to Repeat Program Instructionsp. 34
Stopping a Program from Executing Infinitelyp. 36
Understanding Unstructured Spaghetti Codep. 39
Understanding the Three Basic Structures: Sequence, Selection, and Loopp. 41
The Sequence Structurep. 41
The Selection Structurep. 41
The Loop Structurep. 42
Building Structured Methodsp. 43
Using a Priming Readp. 46
Understanding the Reasons for Structurep. 51
Recognizing Structurep. 53
Describing Three Special Structures-Case, Do-While, and Do-Untilp. 58
The Case Structurep. 58
The Do-While and Do-Until Loopsp. 60
Introduction to Methodsp. 62
Chapter Summaryp. 66
Key Termsp. 67
Review Questionsp. 68
Exercisesp. 71
Case Projectp. 74
Up for Discussionp. 74
Making Decisionsp. 75
Evaluating Boolean Expressions to Make Comparisonsp. 76
Using the Relational Comparison Operatorsp. 80
Understanding and Logicp. 84
Nesting and Decisions for Efficiencyp. 86
Combining Decisions in an and Selectionp. 88
Avoiding Common Errors in an and Selectionp. 89
Understanding or Logicp. 90
Writing or Decisions for Efficiencyp. 92
Combining Decisions in an or Selectionp. 93
Avoiding Common Errors in an or Selectionp. 94
Making Selections Within Rangesp. 98
Understanding Common Errors Using Range Checksp. 101
Understanding Precedence When Combining and and or Selectionsp. 104
Understanding the Case Structurep. 106
Using Decision Tablesp. 108
Chapter Summaryp. 112
Key Termsp. 113
Review Questionsp. 114
Exercisesp. 118
Case Projectp. 122
Up for Discussionp. 123
Loopingp. 125
Understanding the Advantages of Loopingp. 126
Controlling Loops with Counters and Sentinel Valuesp. 126
Using a Definite While Loop with a Counterp. 127
Using an Indefinite While Loop with a Sentinel valuep. 128
Using Nested Loopsp. 132
Mixing Constant and Variable Sentinel Valuesp. 134
Avoiding Common Loop Mistakesp. 138
Mistake: Neglecting to Initialize the Loop Control Variablep. 138
Mistake: Neglecting to Alter the Loop Control Variablep. 140
Mistake: Using the Wrong Comparison with the Loop Control Variablep. 142
Mistake: Including Statements Inside the Loop that Belong Outside the Loopp. 142
Using a for Loop: Counter-Controlled Repetitionp. 146
Using Posttest Loopsp. 147
Recognizing the Characteristics Shared by All Loopsp. 149
Common Loop Applicationsp. 150
Using a Loop to Accumulate Totalsp. 150
Using a Loop to Validate Datap. 153
Chapter Summaryp. 155
Key Termsp. 156
Review Questionsp. 156
Exercisesp. 160
Case Projectp. 163
Up for Discussionp. 164
Arraysp. 165
Understanding Arrays and How They Occupy Computer Memoryp. 166
How Arrays Occupy Computer Memoryp. 166
Manipulating an Array to Replace Nested Decisionsp. 167
Using a Named Constant to Refer to an Array's Sizep. 174
Array Declaration and Initializationp. 174
Variable and Constant Arraysp. 176
Searching an Array for an Exact Matchp. 179
Using Parallel Arraysp. 181
Improving Search Efficiency Using an Early Exitp. 184
Searching an Array for a Range Matchp. 185
Remaining Within Array Boundsp. 188
Using a for Loop to Process Arraysp. 192
Chapter Summaryp. 193
Key Termsp. 193
Review Questionsp. 194
Exercisesp. 197
Case Projectp. 201
Up for Discussionp. 202
Using Methodsp. 203
Creating a Simple Methodp. 204
Understanding Local and Global Variables and Constantsp. 206
Creating Methods That Require A Single Argumentp. 210
Creating Methods That Require Multiple Argumentsp. 214
Creating Methods That Return Valuesp. 216
Passing an Array to a Methodp. 220
Overloading Methodsp. 227
Avoiding Ambiguous Methodsp. 230
Using Prewritten, Built-in Methodsp. 232
Chapter Summaryp. 233
Key Termsp. 234
Review Questionsp. 235
Exercisesp. 238
Case Projectp. 240
Up For Discussionp. 241
Object-Oriented Programming Concepts-Classes and Objectsp. 243
An Overview of Some Principles of Object-Oriented Programmingp. 244
Polymorphismp. 245
Inheritancep. 246
Encapsulationp. 246
Defining Classes and Creating Class Diagramsp. 247
Creating Class Diagramsp. 249
The set methodsp. 251
The get Methodsp. 253
Other methodsp. 253
Understanding Public and Private Accessp. 254
Organizing Classesp. 257
Understanding Instance Methodsp. 258
Understanding Static, Class Methodsp. 262
An Introduction to Constructorsp. 263
Constructors with Parametersp. 266
Overloading Class Methodsp. 267
Using Objectsp. 268
Understanding Destructorsp. 271
Understanding Compositionp. 272
One Example of Using Predefined Classes: Creating Gui Objectsp. 273
Reviewing the Advantages of Object-Oriented Programmingp. 274
Chapter Summaryp. 274
Key Termsp. 275
Review Questionsp. 277
Exercisesp. 280
Case Projectp. 282
Up for Discussionp. 284
Event-Driven Programming with Graphical User Interfacesp. 285
Understanding Event-Driven Programmingp. 286
User-Initiated Actions and Gui Componentsp. 288
Designing Graphical User Interfacesp. 290
The Interface Should Be Natural and Predictablep. 291
The Interface Should Be Attractive, Easy to Read, and Nondistractingp. 291
To Some Extent, It's Helpful If the User Can Customize Your Applicationsp. 292
The Program Should Be Forgivingp. 292
The GUI Is Only a Means to an Endp. 292
Modifying the Attributes of Gui Componentsp. 292
The Steps to Developing an Event-Driven Applicationp. 293
Creating Storyboardsp. 294
Defining the Objects in an Object Dictionaryp. 295
Defining the Connections Between the User Screensp. 296
Planning the Logicp. 296
Understanding Multithreadingp. 300
Creating Animationp. 301
Chapter Summaryp. 304
Key Termsp. 304
Review Questionsp. 305
Exercisesp. 308
Case Projectp. 309
Up for Discussionp. 309
Object Concepts: Polymorphism and Inheritancep. 311
Understanding Inheritancep. 312
Understanding Inheritance Terminologyp. 314
Accessing Private Members of a Parent Classp. 316
Overriding Base Class Methodsp. 321
Understanding how Constructors Are Called During Inheritancep. 325
Understanding How a Derived Class Object "Is An" Instance of the Base Classp. 327
Using Inheritance to Achieve Good Software Designp. 328
Chapter Summaryp. 329
Key Termsp. 330
Review Questionsp. 331
Exercisesp. 334
Case Projectp. 336
Up for Discussionp. 336
Exception Handlingp. 337
Learning About Exceptionsp. 338
Understanding the Limitations of Traditional Error Handlingp. 340
Tyring Code and Catching Exceptionsp. 340
Throwing and Catching Multiple Exceptionsp. 343
Using the finally Blockp. 345
Understanding the Advantages of Exception Handlingp. 347
Tracing Exceptions Through the Call Stackp. 350
A Case Study: Tracing the source of an Exceptionp. 351
Creating Your Own Exceptionsp. 353
Chapter Summaryp. 356
Key Termsp. 357
Review Questionsp. 357
Exercisesp. 360
Case Projectp. 362
Up for Discussionp. 363
System Modeling with the Umlp. 365
Understanding the Need for System Modelingp. 366
What is the Uml?p. 366
Using Use Case Diagramsp. 368
Using Class and Object Diagramsp. 373
Using Sequence and Communication Diagramsp. 376
Using State Machine Diagramsp. 377
Using Activity Diagramsp. 378
Using Component and Deployment Diagramsp. 380
Diagramming Exception Handlingp. 381
Deciding When to Use Uml and Which Uml Diagrams to Usep. 382
Chapter Summaryp. 383
Key Termsp. 383
Review Questionsp. 385
Exercisesp. 387
Case Projectp. 388
Up for Discussionp. 389
Advanced Array Conceptsp. 391
Understanding the Need for Sorting Recordsp. 392
Understanding How to Swap Two Valuesp. 393
Using a Bubble Sortp. 394
Sorting a List of Variable Sizep. 401
Refining the Bubble Sort by Reducing Unnecessary Comparisonsp. 404
Refining the Bubble Sort by Eliminating Unnecessary Passesp. 406
Using an Insertion Sortp. 408
Using a Selection Sortp. 410
Declaring an Array of Objectsp. 412
Sorting Arrays of Objectsp. 413
Using Two-Dimensional and Multidimensional Arraysp. 416
Using a Built-In Array Classp. 420
Chapter Summaryp. 421
Key Termsp. 422
REview Questionsp. 423
Exercisesp. 426
Case Projectp. 429
Up for Discussionp. 430
Solving Difficult Structuring Problemsp. 433
Understanding Numbering Systems and Computer Codesp. 443
Using a Large Decision Tablep. 449
Software Testing and Data Validationp. 457
Glossaryp. 463
Indexp. 475
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program