Problem Solving & Programming Concepts

Maureen Sprankle / Jim Hubbard  
Total pages
May 2011
Related Titles


A core or supplementary text for one-semester, freshman/sophomore-level introductory courses taken by programming majors in Problem Solving for Programmers, Problem Solving for Applications, any Computer Language Course, or Introduction to Programming.

Revised to reflect the most current issues in the programming industry, this widely adopted text emphasizes that problem solving is the same in all computer languages, regardless of syntax. Sprankle and Hubbard use a generic, non-language-specific approach to present the tools and concepts required when using any programming language to develop computer applications. Designed for students with little or no computer experience — but useful to programmers at any level — the text provides step-by-step progression and consistent in-depth coverage of topics, with detailed explanations and many illustrations.

Instructor Supplements (see resources tab):

Instructor Manual with Solutions and Test Bank

Lecture Power Point Slides

Go to:


A generic, non-language-specific approach presents the tools and concepts required when using any programming language to develop computer applications.

– Shows how problem solving is the same in all languages.

– Enables students to concentrate on problem solving (rather than syntax) regardless of the language they use, and to use the text as a reference in future courses.

Broad coverage ranges from the basics of mathematical functions and operators to the design and use of such techniques as code, arrays, pointers, other data structures, database concepts, and object- oriented programming concepts.

Problem-solving tools are used to discuss the problem analysis chart, interactivity (structure) chart, IPO chart, the coupling diagram, algorithms, flowcharts, and tools to help with the development of object oriented programming solutions.

– Explains and demonstrates these tools extensively using typical problems found in computer language textbooks.

Structured programming techniques include sequential, decision, loop, and case logic structures.

– Introduces students to the correct use of modules, parameters, and variable names that allow easier development, as well as easier maintenance, of a program.

A full chapter on variables, constants, data types, functions, operators, equations, and expressions gives students a solid foundation in the concepts that are important to know before starting to develop a program, and which make setting up the basic instructions much easier.

Various types of data structures are explored, with full chapter coverage on arrays, stacks, linked lists, binary trees, and database.

– Prepares students to develop programs to handle almost any problem in today's market.

Problem solving for applications details includes techniques for page layout, spreadsheets, database management systems, and document processing.

– Makes material more tangible and real-world for students, giving them hands-on practice with the types of applications they'll encounter on the job.

“What's Wrong with This?” sections in problem sections challenge students to think critically and analytically to debug programs.

“Putting It All Together sections” walk students through a complete solution for a given problem, using the concepts previously presented.

– In some cases, an earlier solution is updated to incorporate more sophisticated techniques.

– Ensures that students learn not only individual problem-solving techniques, but how to put them together into viable strategies for tackling specific kinds of problems/applications.

Chapter Problems give students hands-on experience in solving problems that are typically found in computer language textbooks.

Abundant pedagogical aids integrated throughout include chapter objectives, chapter summaries, key words, chapter exercises and problems, glossaries, and tables of flowcharting symbols and functions.

New to this Edition

  • A third column is added to the algorithm and flowchart figures that includes the pseudo code.
  • The Case Structure chapter is now combined with the Decision chapter.
  • Re-worked section on cohesion and coupling.
  • Expanded Object Oriented Programming chapters.
  • Additional problems in theWhat’s Wrong With This sections.
  • New sections on problems incurred when using a specific logic structure along with techniques of testing a solution.
  • UML is now introduced in chapter 3 with follow up in the chapters on Object Oriented Programming.
  • New section on the software development life cycle.
  • Additional end-of-chapter problems.

Table of Contents

Preface vii


Chapter 1 General Problem-Solving Concepts 3

Problem Solving in Everyday Life 3

Types of Problems 5

Problem Solving with Computers 6

Difficulties with Problem Solving 6

Summary 7

New Terms 7

Questions 7

Problems 8

Chapter 2 Beginning Problem-Solving Concepts for the Computer 11

Constants and Variables 13

Data Types 16

How the Computer Stores Data 20

Functions 21

Operators 23

Expressions and Equations 27

Summary 34

New Terms 35

Questions 35

Problems 37

Chapter 3 Planning Your Solution 41

Communicating with the Computer 42

Organizing the Solution 43

Introduction to UML (Unified Modeling Language) 55

Using the Tools 59

Testing the Solution 61

Coding the Solution 61

Software Development Cycle 62

Summary 62

New Terms 63

Questions 63

Problems 63

UNIT ONE Supplementary Exercises, 65


Chapter 4 An Introduction to Programming Structure 71

Pointers for Structuring a Solution 72

The Modules and Their Functions 74

Cohesion and Coupling 75

Local and Global Variables 77

Parameters 79

Return Values 84

Variable Names and the Data Dictionary 85

The Three Logic Structures 85

Summary 86

New Terms 86

Questions 87

Problems 87

Chapter 5 Problem Solving with the Sequential Logic Structure 89

Algorithm Instructions, Flowchart Symbols 89

The Sequential Logic Structure 92

Solution Development 94

Summary 101

Questions 102

Problems 102

Chapter 6 Problem Solving with Decisions 105

The Decision Logic Structure 106

Multiple If/Then/Else Instructions 108

Using Straight-Through Logic 110

Using Positive Logic 111

Using Negative Logic 115

Logic Conversion 117

Which Decision Logic? 120

Decision Tables 120

Putting It All Together 127

The Case Logic Structure 135

Codes 137

Putting It All Together 138

Another Putting It All Together 140

Summary 141

New Terms 142

Questions 142

Problems 143

Chapter 7 Problem Solving with Loops 149

The Loop Logic Structure 150

lncrementing 151

Accumulating 151

While/WhileEnd 152

Putting It All Together 154

Repeat/Until 154

Putting It All Together 157

Automatic-Counter Loop 159

Putting It All Together 163

Nested Loops 163

Indicators 166

Algorithm Instructions and Flowchart Symbols 167

Recursion 169

Summary 169

New Terms 174

Questions 174

Problems 174

UNIT TWO Supplementary Exercises, 177


Chapter 8 Processing Arrays 181

Arrays 182

One-Dimensional Arrays 184

Putting It All Together 189

Two-Dimensional Arrays 191

Putting It All Together 199

Multidimensional Arrays 208

Table Look-Up Technique 209

The Pointer Technique 213

Putting It All Together 226

Summary 235

New Terms 235

Questions 235

Problems 236

Chapter 9 Sorting, Stacks, and Queues 239

Sorting Techniques 240

Stacks 247

Queues 248

Summary 252

New Terms 252

Questions 252

Problems 253

Chapter 10 File Concepts 255

Beginning File Concepts 256

Records as a Data Structure 256

Primary and Secondary Keys 256

Algorithm Instructions and Flowchart Symbols 256

Systems Flowcharts 259

Designing Records 259

Summary 263

New Terms 263

Questions 263

Problems 263


Maureen Sprankle is a Professor Emeritus at the College of the Redwoods, in Eureka, CA. She received her M.B.A. (emphasis in Computer Information Systems) and B.A. in Music from Humboldt State University, and her B.A. in Mathematics from Pepperdine University. In addition to teaching, Maureen has worked as a consultant in microcomputers for business and education, as a freelance Programmer/Analyst (business and scientific applications), and as a Scientific Programmer/Analyst Research Programmer in the space industry. After retiring from teaching, she and her husband of 43 years, Dr. Norman Sprankle, moved to the Oregon coast, where they both enjoy traveling, teaching, computers, the theater, and the out of doors. Her hobbies include music and reading.

Jim Hubbard is a software architect and the President of Healthware Solutions, LLC. Jim received his M.I.S. degree from Humboldt State University. He has held the position of CIO at Healthware Solutions, LLC. With 26 years of experience in the field of software development and implementation, Jim provides a valuable industry perspective to problem solving and programming.

Instructor Resources