Pascal

Overview



Using his five-step problem solving process, Elliot Koffman makes the connection between problem solving skills and effective software development. Writing with a style that is both friendly and professional, the author teaches a comprehensive list of topics using Pascal. Interviews with famous computer scientists provide glimpses into various careers in computer science and cover a wide variety of topics.

Read More Show...
See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (4) from $1.99   
  • Used (4) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$1.99
Seller since 2009

Feedback rating:

(7754)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Acceptable
Help save a tree. Buy all your used books from Green Earth Books. Read. Recycle and Reuse.

Ships from: Portland, OR

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$21.50
Seller since 2014

Feedback rating:

(84)

Condition: Good
1992 Trade paperback 4th ed. Good. The book has been read but remains in clean condition. All pages are intact and the cover is intact. Some minor wear to the spine. Trade ... paperback (US). Glued binding. *****PLEASE NOTE: This item is shipping from an authorized seller in Europe. In the event that a return is necessary, you will be able to return your item within the US. To learn more about our European sellers and policies see the BookQuest FAQ section***** Read more Show Less

Ships from: Goring-By-Sea, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$2,420.42
Seller since 2006

Feedback rating:

(60961)

Condition: Good
Sorry, CD missing. Shows some signs of wear, and may have some markings on the inside. 100% Money Back Guarantee. Shipped to over one million happy customers. Your purchase ... benefits world literacy! Read more Show Less

Ships from: Mishawaka, IN

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$2,438.42
Seller since 2010

Feedback rating:

(80)

Condition: Acceptable
Acceptable Ships from the UK. Former Library book. Shows definite wear, and perhaps considerable marking on inside. Your purchase also supports literacy charities. *****PLEASE ... NOTE: This item is shipping from an authorized seller in Europe. In the event that a return is necessary, you will be able to return your item within the US. To learn more about our European sellers and policies see the BookQuest FAQ section***** Read more Show Less

Ships from: Dunfermline, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by
Sending request ...

Overview



Using his five-step problem solving process, Elliot Koffman makes the connection between problem solving skills and effective software development. Writing with a style that is both friendly and professional, the author teaches a comprehensive list of topics using Pascal. Interviews with famous computer scientists provide glimpses into various careers in computer science and cover a wide variety of topics.

Read More Show Less

Editorial Reviews

Booknews
New edition of a programming tutorial. Includes a 3.5" disk. Annotation c. Book News, Inc., Portland, OR (booknews.com)
Read More Show Less

Product Details

  • ISBN-13: 9780201526134
  • Publisher: Addison-Wesley
  • Publication date: 1/1/1992
  • Edition number: 4
  • Pages: 900

Read an Excerpt

PREFACE:

This textbook is intended for a first course in problem solving and program design using Pascal. It assumes no prior knowledge of computers or programming, and for most of its material, high school algebra is sufficient mathematics background. A limited knowledge of discrete mathematics, however, is desirable for certain sections.

This edition, like its predecessors, closely follows the recommendations of the ACM Computing Curricular Task Force for CS1 and CS2 and the ACM/IEEE-CS Joint Curriculum Task Force. We emphasize problem solving, abstraction, and software engineering throughout the text.

In preparing the revision, we have made every effort to simplify the presentation wherever possible, striving for shorter, more focused chapters. For example, we have reorganized the coverage of arrays and records into a three-chapter sequence: one-dimensional arrays (Chapter 10), multidimensional arrays (Chapter 11), and records (Chapter 12).

Problem Solving

The connection between good problem solving skills and effective software development is established early in Chapter 1 (Overview of Computers and Programming). The software development method, introduced in Chapter 2 (Problem Solving and Pascal), is used to solve the first case study and is applied consistently to all the case studies of the text.

Chapter 3 (Functions and Procedures) continues the emphasis on problem solving by discussing top-down design, divide-and-conquer, solution by analogy, and generalization of a solution. An important section of this chapter demonstrates how a Pascal program can be derived by editing the documentation that resultsfrom systematically following the software development method.

Software Engineering

The text covers many aspects of software engineering. Discussions of program style issues appear throughout in special displays. The concept of a program as a sequency of control structures is introduced early in Chapter 4 (Selection Control Structures: if and case Statements). Several chapters include sections that discuss algorithm tracing, debugging, and testing. Chapter 9 (Software Engineering) is a complete unit on software engineering. This chapter discusses the system/software life cycle (SLC), prototyping, and programming teams. The in-depth coverage of all phases of the SLC includes more discussion of informal techniques for program testing (e.g., glass box versus black box testing, integration testing, structured walk-throughs) and formal methods for program verification as well as a discussion of loop invariants. This chapter also reviews procedural abstraction and introduces data abstraction. Chapter 9 concludes with a discussion of professional ethics.

Procedural Abstraction

Although there is no universal agreement on when to introduce procedures and procedure parameters, most educators do agree on the following points: Procedures should be introduced as early as feasible, procedures should never process global variables (side effects), and procedure parameters are a difficult concept for students to understand. The approach taken in the text is to discuss the importance of program modularization and reusability in Chapter 3 by introducing the standard functions, structure charts, and procedures without parameters. The chapter motivates the use of procedures as program building blocks by showing some applications of procedures without parameters (for example, by displaying long lists of user instructions and drawing diagrams). Chapter 3 then discusses, in Section 3.5, the need for parameters and the limitations of procedures without parameters, thereby providing a foundation for the later study of parameters.

Chapter 6 (Modular Programming) completes the study of procedures and functions, covering all aspects of parameter lists. The chapter begins by discussing procedures with only value parameters, then value and variable parameters, and finally functions. An optional section at the end of the chapter introduces recursive functions.

Some instructors prefer to cover procedures with and without parameters together. To this end, you can easily rearrange the sequence of topic coverage. If you want to wait until Chapter 6 to cover procedures with and without parameters, defer Sections 3.4 and 3.5 until then. Conversely, if you want to cover procedure parameters earlier, cover Section 6.1 and 6.3 (variable parameter lists) right after Chapter 3 and cover Sections 6.2 and 6.3 (variable parameters, syntax of parameter lists) after completing the first three sections of Chapter 4 (control structures, Boolean expressions, and the if statement).

Data Abstraction and ADTs

The software engineering chapter (Chapter 9) introduces data abstraction, providing the first example of an abstract data type (ADT). Data abstraction and ADTs are used in the advanced topics portion of the textbook, starting in Chapter 12. We show how to implement ADTs as VAX Pascal modules in Appendix D and as Turbo Pascal units in Appendix E.

Interviews with Computer Scientists

A popular feature of the last edition was a collection of interviews with notable computer scientists (Adele Goldberg, David Patterson, and Patrick Winston, among others), which were placed throughout the text. These interviews alert beginning students to the breadth of the subject area, providing them with a description of issues of concern in several fields of computer science (for example, artificial intelligence, operating systems, databases, user interfaces) and some idea of the background preparation needed for success in these fields. We have updated these interviews and provided several new ones.

Coverage of Theoretical Concepts

This edition covers theoretical topics recommended by the curriculum committee report. An optional section in Chapter 7 introduces numerical computation and iterative approximations. Chapter 9 provides a discussion of program verification, focusing on assertions and loop invariants. Chapter 10 introduces searching and sorting of an array followed by a discussion of algorithm analysis and Big-O notation.

Pedagogical Features

We employ several pedagogical features to enhance the usefulness of this book as a teaching tool. Discussion of some of these features follows. Approximately one-third of all exercises, review questions, and programming projects are new to this edition.

End-of-Section Exercises: Most sections end with a number of self-check exercises, including exercises that require analysis of program fragments as well as short programming exercises. Answers to odd-numbered self-check exercises appear at the back of the book; answers to the rest of the exercises are provided in the Instructor's Manual.

End-of-Chapter Exercises: Each chapter ends with a set of quick-check exercises and answers. Immediately following are chapter review questions, whose solutions appear in the Instructor's Manual.

End-of-Chapter Projects: Most end-of-chapter projects include one or two special programming project pairs in which the second of the pair requires a modification to the solution of the first project. Solutions to the first project in each pair are available from Addison-Wesley. All project solutions appear in the Instructor's Manual.

Examples and Case Studies: The text contains a large number and variety of programming examples. Whenever possible, examples contain complete programs or procedures rather than incomplete program fragments. Each chapter contains one or more substantial case studies that are solved following the software development method.

Syntax Displays: The syntax displays describe the syntax and semantics of each new Pascal feature and then provide examples. Several syntax diagrams appear in the body of the text; an appendix contains a complete collection of syntax diagrams.

Program Style Displays: The program style displays discuss issues of good programming style.

Error Discussions and Chapter Review: Each chapter ends with a section that discusses common programming errors. Chapter reviews include a table of new Pascal constructs.

Coverage of Advanced Topics

The material in Chapters 1 through 12 normally will be covered in the first semester of a course in programming methods. The book contains five additional chapters that cover advanced topics normally studied in the second semester or in the first semester of an accelerated course. This material may be used as a reference for students continuing their study of computer science and, in some cases, may be used as the primary text for a second-semester course. There is certainly sufficient material for a two-quarter sequence. Advanced topics covered include:

  • Recursion (Chapter 13)
  • Sets (Chapter 14)
  • External data structures: files (Chapter 15)
  • Pointers and linked lists (Chapter 16)
  • Dynamic data structures (Chapter 17)

Appendixes and Supplements

Appendixes and Pascal Compilers: The text concludes with separate appendixes covering Pascal language elements, syntax diagrams, and character codes. The appendixes describe how to use VAX Pascal modules and Turbo Pascal units to implement abstract data types, and how to use three Pascal compilers for personal computers (Dr. Pascal (tm), PcPix (tm)- available free to users of this book - and Turbo Pascal(tm)). There is also an appendix containing a program that incorporates most Pascal language constructs.

Program Files: For case studies, all procedures and functions are incorporated in a single program file. Also available are files containing solutions to selected programming projects. These solutions serve as the starting point for follow-on projects. These files can be accessed via ftp from Addison-Wesley and loaded into the Turbo Pascal environment. An icon like the one in the margin appears alongside each program module or project indicating the name of the disk directory (e.g., CHAP2) and file (e.g., METRIC.PAS) containing the program.

To access these files, log in (using anonymous as your log-in id) to ftp aw.com. The files are located two subdirectories down from the main directory. Change directories following the path ftp.aw.com/cseng/authors/koffman/Pascal5e. Those unfamiliar with ftp procedures can refer to the explicit instructions included in the Instructor's Manual.

Instructor's Manual: An Instructor's Manual is available through your Addison-Wesley sales representative. Use reference number 0-201-93389-6 when ordering. All material in the Instructor's Manual, plus test questions, solutions to programming projects, and transparency masters are available on-line. For more information, send mail to aw.cse@aw.com.

Acknowledgments

The principal reviewers were most essential in suggesting improvements and finding errors. They include:

Martha Dinwiddie
University of Texas- Dallas

Ivan Liss
Radford University

Michael Doran
University of Southern Alabama

Charles Owen
Dartmouth College

Deborah Dunn
Texas A&M University

Wayne Smith
Mississippi State University

Mary Lou Hines
University of Missouri - Kansas City

Tim Thurman
University of Kansas

Van Howbert
Colorado State University

In addition to reviewing the manuscript, Charles Owen, Dartmouth College, contributed many exercises and projects new to this edition. Also, I would like to acknowledge the contributions of James C. Pleasant, Tennessee State University, to the section on program verification.

We are also grateful to the many teachers who participated in telephone interviews or completed course surveys for Addison-Wesley's market research department. The information this research provided helped to shape the book's organization and pedagogy. They include:

Stephen Allan
Utah State Unversity

Lewis Hall
Riverside Community College

Taylor Binkley
Georgia State University

Lawrence J. Henschen
Northwestern University

Elvira Caldwell
Winston-Salem State University

Dennis Higgins
SUNY - Oneonta

Brad Chilton
Tartleton State University

Arthur Jackman
Dean College

Harry Edwards
University of Michigan - Flint

Sandria Kerr
Winston-Salem State University

Maria C. Kolatis
Country College of Morris

Becky Rutherford
Southern College of Tech

Barbara Lacey
Onendaga Community College

D'anna Shaver
Tarrant County Junior College

Stephen G. Landry
Seton Hall University

Daniel Spiegel
Wright State University

Phillip La Plante
Farleigh-Dickinson University

Ron Stearns
Miami-Dade Community College

Dale Magoun
Northeast Louisiana University

Bill Taylor
Camden County College

Dolores Malecka
Chestnut Hill College

Barbara Bernal Thomas
Southern College of Tech

Mary Allice Muraski
University of Wisconsin - River Falls

David Thomas
Texas A&M University - Corpus Christi

John Pagliarulo
Rockland Community College

Geneva Whitefield
Mountain View College

Sue Pilgreen
McNeese State University

Marie Wilde
Cedar Crest College

James Ramey
Francis Marion University

Dawn Wilkins
Vanderbilt University

Carl Richards
National University

Mark Williams
Albuquerque Tech

James Roberts
Charleston Southern University

I would like to thank three Temple University students for their valuable contributions. Christian J. Polizzi tested and made corrections to all the programs, proofread and indexed the text, and also prepared solutions to exercises. Donna Chrupcala prepared solutions to exercises and made many improvements to exercises. Bill Jones provided several suggestions for graphics examples. Also, I would like to thank my daughter, Robin Koffman, computer science teacher at Haverford School, Haverford, Pennsylvania, for carefully proofreading the page proofs.

The personnel at Addison-Wesley responsible for the production of this book worked diligently to meet a very demanding schedule. My editor, Lynne Doran Cote, was closely involved in all phases of this project. She was ably assisted by Maite Suarez-Rivas, who did an excellent job of coordinating the writing and reviewing process and trying to keep me on a very tight schedule. The development editors, Elizabeth Zayatz and Marjorie Singer-Anderson, provided valuable suggestions for improving the textbook. John Walker supervised the production of the book, while Anita Wagner coordinated the conversion of the manuscript to a finished book. I am grateful to all of them for their fine work.

Philadelphia, PA
E.B.K.



0201526743P04062001
Read More Show Less

Table of Contents

(Each chapter contains a Chapter Review.)
1. Overview Of Computers And Programming

Electronic Computers Then and Now.
Introduction to Computer Hardware.
Problem Solving and Programming.
Overview of Programming Language.
Processing a High Level Language Program.
Using an Operating System.
Interview: David A Patterson.

2. Problem Solving And Pascal.
The Software Development Method.
Applying the Software Development Method.
Case Study: Converting Units of Measurement.
Overview of Pascal, Reserved Words, and Identifiers.
Data Types and Declarations.
Executable Statements.
General Form of a Pascal Program.
Arithmetic Expressions.
Case Study: Evaluating Coins.
Formatting Program Output.
Interactive Mode and Data Files (Optional).
Debugging and Programming Errors.
Interview: Philippe Kahn.

3. Functions And Procedures.
Building Programs from Existing Information.
Case Study: Finding the Area and Circumference of a Circle.
Case Study: Finding the Most Pizza for Your Money.
Functions.
Top-Down Design and Structure Charts.
Case Study: Drawing Simple Diagrams.
Procedures.
Procedures as Program Building Blocks.
Common Programming Errors.
Interview: James Foley.

4. Selection Structures; if And case Statements.
Control Structures.
Boolean Expressions.
The ifStatement.
Syntax Diagrams.
if Statements with Compound Statements.
Decision Steps in Algorithms.
Case Study: Payroll Problem.
Case Study: Computing Insurance Dividends.
Hand-Tracing an Algorithm.
Nested if Statements and Multiple-Alternative Decisions.
The case Statement.
Common Programming Errors.
Interview: Ellen Isaacs.
5. Repetition: while, for And repeat Statements.
The while Statement.
Using Loops to Accumulate a Sum.
Event-Controlled Loops.
Loop Design.
The for Statement.
The repeat Statement.
Nested Loops.
Debugging and Testing Programs.
Common Programming Errors.
Interview: Marie des Jardins.
6. Modular Programming.
Introduction to Parameter Lists.
Returning Information from Procedures.
Syntax Rules for Procedures with Parameter Lists.
Scope of Identifiers.
Functions: Modules That Return a Single Result.
Stepwise Design with Functions and Procedures.
Case Study: General Sum-and-Average Problem.
Debugging and Testing Programs with Modules.
Recursive Functions (Optional).
Common Programming Errors.

7. Simple Data Types.
Numeric Data Types: Real and Integer.
The Boolean Data Type.
The Character Data Type.
Ordinal Functions and Character Functions.
Subrange Type.
Type Compatibility and Assignment Compatibility.
Enumerated Types.
Iterative Approximations (optional).
Case Study: Approximating the Value of e.
Common Programming Errors.
Interview: Judith Schlesinger.

8. Text Files.
Text Files, Data Files and Output Files.
Procedures and Functions for Text Files.
Using Text Files.
Case Study: Preparing a Payroll File.
Debugging with Files.
Common Programming Errors.
Interview: Donna August.

9. Software Engineering.
Programming in the Large.
Modular Libraries.
Abstract Data Types.
Testing Large Programs.
Formal Methods of Program Verification.
Ethics and Responsibilities.
Common Programming Errors.
Interview: Robert Sedgwick.

10. Arrays.
The Array Data Structure.
Sequential Access to Array Elements.
Arrays as Parameters and Operands.
Case Study: Home Budget Problem.
Subarray Processing.
Searching and Sorting an Array.
Analysis of Algorithms: Big-O Notation (Optional).
Arrays with Type Char Elements and Subscripts.
Case Study: Cryptogram Generator Problem.
Debugging Programs with Arrays.
Common Programming Errors.

11. Packed Arrays And Multi Dimensional Arrays.
Strings and Packed Arrays of Characters.
Using Strings.
Case Studies: Printing a Form Letter.
Two Dimensional Arrays: Arrays of Arrays.
Processing Two Dimensional Arrays.
Case Study: Analysis of Sales Data.
Three Dimensional Arrays.
Common Programming Errors.
Interview: Patrick H. Winston.

12. Records.
The Record Data Type.
Records as Operands and Parameters.
The with Statement.
Arrays of Records.
Hierarchical Records.
Data Abstraction and Object-Oriented Programming.
Variant Records (Optional).
Debugging Records.
Common Programming Errors.
Interview: Adele Goldberg.

13. Recursion.
Recursive Modules.
Parameter and Local Variable Stacks.
Recursive Mathematical Functions.
Recursive Modules with Array Parameters.
Case Study: Summing the Values in an Array.
Binary Search.
Case Study: Recursive Binary Search.
Problem Solving with Recursion.
Case Study: Towers of Hanoi Problem.
Debugging Recursive Algorithms.
Common Programming Errors.

14. Sets.
Set Data Type.
Set Operators.
Common Programming Errors.

15. External Data Structures: Files.
Text File ADT and Binary File ADT.
Creating and Using Binary Files.
File Merge.
Case Study: Merging Two Files.
File Buffer Variable.
Common Programming Errors.

16. Pointers And Linked Lists.
Pointer Types and Pointers.
Manipulating the Heap.
Linked Lists.
Linked List ADT.
Common Programming Errors.

17. Dynamic Data Structures.
Stacks.
Stack Applications.
Case Study: Reversing a Data Line.
Case Study: checking for Balanced Parenthese.
Queues.
Binary Trees.
Binary Search Tree ADT.
Efficiency of Binary Search Tree.
Common Programming Errors.

Read More Show Less

Preface

This textbook is intended for a first course in problem solving and program design using Pascal. It assumes no prior knowledge of computers or programming, and for most of its material, high school algebra is sufficient mathematics background. A limited knowledge of discrete mathematics, however, is desirable for certain sections.

This edition, like its predecessors, closely follows the recommendations of the ACM Computing Curricular Task Force for CS1 and CS2 and the ACM/IEEE-CS Joint Curriculum Task Force. We emphasize problem solving, abstraction, and software engineering throughout the text.

In preparing the revision, we have made every effort to simplify the presentation wherever possible, striving for shorter, more focused chapters. For example, we have reorganized the coverage of arrays and records into a three-chapter sequence: one-dimensional arrays (Chapter 10), multidimensional arrays (Chapter 11), and records (Chapter 12).

Problem Solving

The connection between good problem solving skills and effective software development is established early in Chapter 1 (Overview of Computers and Programming). The software development method, introduced in Chapter 2 (Problem Solving and Pascal), is used to solve the first case study and is applied consistently to all the case studies of the text.

Chapter 3 (Functions and Procedures) continues the emphasis on problem solving by discussing top-down design, divide-and-conquer, solution by analogy, and generalization of a solution. An important section of this chapter demonstrates how a Pascal program can be derived by editing the documentation that resultsfrom systematically following the software development method.

Software Engineering

The text covers many aspects of software engineering. Discussions of program style issues appear throughout in special displays. The concept of a program as a sequency of control structures is introduced early in Chapter 4 (Selection Control Structures: if and case Statements). Several chapters include sections that discuss algorithm tracing, debugging, and testing. Chapter 9 (Software Engineering) is a complete unit on software engineering. This chapter discusses the system/software life cycle (SLC), prototyping, and programming teams. The in-depth coverage of all phases of the SLC includes more discussion of informal techniques for program testing (e.g., glass box versus black box testing, integration testing, structured walk-throughs) and formal methods for program verification as well as a discussion of loop invariants. This chapter also reviews procedural abstraction and introduces data abstraction. Chapter 9 concludes with a discussion of professional ethics.

Procedural Abstraction

Although there is no universal agreement on when to introduce procedures and procedure parameters, most educators do agree on the following points: Procedures should be introduced as early as feasible, procedures should never process global variables (side effects), and procedure parameters are a difficult concept for students to understand. The approach taken in the text is to discuss the importance of program modularization and reusability in Chapter 3 by introducing the standard functions, structure charts, and procedures without parameters. The chapter motivates the use of procedures as program building blocks by showing some applications of procedures without parameters (for example, by displaying long lists of user instructions and drawing diagrams). Chapter 3 then discusses, in Section 3.5, the need for parameters and the limitations of procedures without parameters, thereby providing a foundation for the later study of parameters.

Chapter 6 (Modular Programming) completes the study of procedures and functions, covering all aspects of parameter lists. The chapter begins by discussing procedures with only value parameters, then value and variable parameters, and finally functions. An optional section at the end of the chapter introduces recursive functions.

Some instructors prefer to cover procedures with and without parameters together. To this end, you can easily rearrange the sequence of topic coverage. If you want to wait until Chapter 6 to cover procedures with and without parameters, defer Sections 3.4 and 3.5 until then. Conversely, if you want to cover procedure parameters earlier, cover Section 6.1 and 6.3 (variable parameter lists) right after Chapter 3 and cover Sections 6.2 and 6.3 (variable parameters, syntax of parameter lists) after completing the first three sections of Chapter 4 (control structures, Boolean expressions, and the if statement).

Data Abstraction and ADTs

The software engineering chapter (Chapter 9) introduces data abstraction, providing the first example of an abstract data type (ADT). Data abstraction and ADTs are used in the advanced topics portion of the textbook, starting in Chapter 12. We show how to implement ADTs as VAX Pascal modules in Appendix D and as Turbo Pascal units in Appendix E.

Interviews with Computer Scientists

A popular feature of the last edition was a collection of interviews with notable computer scientists (Adele Goldberg, David Patterson, and Patrick Winston, among others), which were placed throughout the text. These interviews alert beginning students to the breadth of the subject area, providing them with a description of issues of concern in several fields of computer science (for example, artificial intelligence, operating systems, databases, user interfaces) and some idea of the background preparation needed for success in these fields. We have updated these interviews and provided several new ones.

Coverage of Theoretical Concepts

This edition covers theoretical topics recommended by the curriculum committee report. An optional section in Chapter 7 introduces numerical computation and iterative approximations. Chapter 9 provides a discussion of program verification, focusing on assertions and loop invariants. Chapter 10 introduces searching and sorting of an array followed by a discussion of algorithm analysis and Big-O notation.

Pedagogical Features

We employ several pedagogical features to enhance the usefulness of this book as a teaching tool. Discussion of some of these features follows. Approximately one-third of all exercises, review questions, and programming projects are new to this edition.

End-of-Section Exercises: Most sections end with a number of self-check exercises, including exercises that require analysis of program fragments as well as short programming exercises. Answers to odd-numbered self-check exercises appear at the back of the book; answers to the rest of the exercises are provided in the Instructor's Manual.

End-of-Chapter Exercises: Each chapter ends with a set of quick-check exercises and answers. Immediately following are chapter review questions, whose solutions appear in the Instructor's Manual.

End-of-Chapter Projects: Most end-of-chapter projects include one or two special programming project pairs in which the second of the pair requires a modification to the solution of the first project. Solutions to the first project in each pair are available from Addison-Wesley. All project solutions appear in the Instructor's Manual.

Examples and Case Studies: The text contains a large number and variety of programming examples. Whenever possible, examples contain complete programs or procedures rather than incomplete program fragments. Each chapter contains one or more substantial case studies that are solved following the software development method.

Syntax Displays: The syntax displays describe the syntax and semantics of each new Pascal feature and then provide examples. Several syntax diagrams appear in the body of the text; an appendix contains a complete collection of syntax diagrams.

Program Style Displays: The program style displays discuss issues of good programming style.

Error Discussions and Chapter Review: Each chapter ends with a section that discusses common programming errors. Chapter reviews include a table of new Pascal constructs.

Coverage of Advanced Topics

The material in Chapters 1 through 12 normally will be covered in the first semester of a course in programming methods. The book contains five additional chapters that cover advanced topics normally studied in the second semester or in the first semester of an accelerated course. This material may be used as a reference for students continuing their study of computer science and, in some cases, may be used as the primary text for a second-semester course. There is certainly sufficient material for a two-quarter sequence. Advanced topics covered include:

  • Recursion (Chapter 13)
  • Sets (Chapter 14)
  • External data structures: files (Chapter 15)
  • Pointers and linked lists (Chapter 16)
  • Dynamic data structures (Chapter 17)

Appendixes and Supplements

Appendixes and Pascal Compilers: The text concludes with separate appendixes covering Pascal language elements, syntax diagrams, and character codes. The appendixes describe how to use VAX Pascal modules and Turbo Pascal units to implement abstract data types, and how to use three Pascal compilers for personal computers (Dr. Pascal (tm), PcPix (tm)- available free to users of this book - and Turbo Pascal(tm)). There is also an appendix containing a program that incorporates most Pascal language constructs.

Program Files: For case studies, all procedures and functions are incorporated in a single program file. Also available are files containing solutions to selected programming projects. These solutions serve as the starting point for follow-on projects. These files can be accessed via ftp from Addison-Wesley and loaded into the Turbo Pascal environment. An icon like the one in the margin appears alongside each program module or project indicating the name of the disk directory (e.g., CHAP2) and file (e.g., METRIC.PAS) containing the program.

To access these files, log in (using anonymous as your log-in id) to ftp aw.com. The files are located two subdirectories down from the main directory. Change directories following the path ftp.aw.com/cseng/authors/koffman/Pascal5e. Those unfamiliar with ftp procedures can refer to the explicit instructions included in the Instructor's Manual.

Instructor's Manual: An Instructor's Manual is available through your Addison-Wesley sales representative. Use reference number 0-201-93389-6 when ordering. All material in the Instructor's Manual, plus test questions, solutions to programming projects, and transparency masters are available on-line. For more information, send mail to aw.cse@aw.com.

Acknowledgments

The principal reviewers were most essential in suggesting improvements and finding errors. They include:

Martha Dinwiddie
University of Texas- Dallas

Ivan Liss
Radford University

Michael Doran
University of Southern Alabama

Charles Owen
Dartmouth College

Deborah Dunn
Texas A&M University

Wayne Smith
Mississippi State University

Mary Lou Hines
University of Missouri - Kansas City

Tim Thurman
University of Kansas

Van Howbert
Colorado State University

In addition to reviewing the manuscript, Charles Owen, Dartmouth College, contributed many exercises and projects new to this edition. Also, I would like to acknowledge the contributions of James C. Pleasant, Tennessee State University, to the section on program verification.

We are also grateful to the many teachers who participated in telephone interviews or completed course surveys for Addison-Wesley's market research department. The information this research provided helped to shape the book's organization and pedagogy. They include:

Stephen Allan
Utah State Unversity

Lewis Hall
Riverside Community College

Taylor Binkley
Georgia State University

Lawrence J. Henschen
Northwestern University

Elvira Caldwell
Winston-Salem State University

Dennis Higgins
SUNY - Oneonta

Brad Chilton
Tartleton State University

Arthur Jackman
Dean College

Harry Edwards
University of Michigan - Flint

Sandria Kerr
Winston-Salem State University

Maria C. Kolatis
Country College of Morris

Becky Rutherford
Southern College of Tech

Barbara Lacey
Onendaga Community College

D'anna Shaver
Tarrant County Junior College

Stephen G. Landry
Seton Hall University

Daniel Spiegel
Wright State University

Phillip La Plante
Farleigh-Dickinson University

Ron Stearns
Miami-Dade Community College

Dale Magoun
Northeast Louisiana University

Bill Taylor
Camden County College

Dolores Malecka
Chestnut Hill College

Barbara Bernal Thomas
Southern College of Tech

Mary Allice Muraski
University of Wisconsin - River Falls

David Thomas
Texas A&M University - Corpus Christi

John Pagliarulo
Rockland Community College

Geneva Whitefield
Mountain View College

Sue Pilgreen
McNeese State University

Marie Wilde
Cedar Crest College

James Ramey
Francis Marion University

Dawn Wilkins
Vanderbilt University

Carl Richards
National University

Mark Williams
Albuquerque Tech

James Roberts
Charleston Southern University

I would like to thank three Temple University students for their valuable contributions. Christian J. Polizzi tested and made corrections to all the programs, proofread and indexed the text, and also prepared solutions to exercises. Donna Chrupcala prepared solutions to exercises and made many improvements to exercises. Bill Jones provided several suggestions for graphics examples. Also, I would like to thank my daughter, Robin Koffman, computer science teacher at Haverford School, Haverford, Pennsylvania, for carefully proofreading the page proofs.

The personnel at Addison-Wesley responsible for the production of this book worked diligently to meet a very demanding schedule. My editor, Lynne Doran Cote, was closely involved in all phases of this project. She was ably assisted by Maite Suarez-Rivas, who did an excellent job of coordinating the writing and reviewing process and trying to keep me on a very tight schedule. The development editors, Elizabeth Zayatz and Marjorie Singer-Anderson, provided valuable suggestions for improving the textbook. John Walker supervised the production of the book, while Anita Wagner coordinated the conversion of the manuscript to a finished book. I am grateful to all of them for their fine work.

Philadelphia, PA
E.B.K.



Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)