A Computer Science Tapestry / Edition 2

Hardcover (Print)
Buy Used
Buy Used from BN.com
(Save 34%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 97%)
Other sellers (Hardcover)
  • All (24) from $1.99   
  • New (3) from $65.52   
  • Used (21) from $1.99   
Sort by
Page 1 of 1
Showing 1 – 2 of 3
Note: Marketplace items are not eligible for any BN.com coupons and promotions
Seller since 2015

Feedback rating:



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.

brand new book ready to ship out

Ships from: San Diego, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Seller since 2005

Feedback rating:


Condition: New
2000 NEW

Ships from: Oklahoma City, OK

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing 1 – 2 of 3
Sort by


A Computer Science Tapestry provides a compelling introduction to computer science and program using C++. Drawing from real-world examples, the text exploits the best features of C++ in teaching programming, computer science, and problem-solving and software engineering skills. The book is designed to be used by students with no programming experience but provides a solid introduction to C++ and object-based object-oriented programming for those with knowledge of another programming language. The book focuses on reading, using, and modifying classes before designing and implementing them; the classes are based on industry-accepted standards but have been developed and tested for use by beginning students. Emphasizing recent approaches to programming and pedagogy, students use classes as clients or apprentices to begin their study of programming and computer science and as a gradual introduction to object-based programming. In later chapters, class implementations are used to study advanced features of C++.
Read More Show Less

Product Details

  • ISBN-13: 9780072322033
  • Publisher: McGraw-Hill Companies, The
  • Publication date: 9/28/1999
  • Series: McGraw-Hill Computer Science Series
  • Edition description: 2ND
  • Edition number: 2
  • Pages: 880
  • Product dimensions: 7.36 (w) x 9.11 (h) x 1.11 (d)

Read an Excerpt

Chapter 1: Computer Science and Programming

In this chapter we introduce you to computer science. Ideally, we would begin with a simple definition that could be expanded and refined throughout the book. Unfortunately, computer science, like other disciplines, has no simple definition. For example, we might say that biology is the study of life. But that doesn't explain much about the content of such subdisciplines as animal behavior, immunology, or genetics-all of which are part of biology. Nor does it explain much about the contributions that these disciplines make to biology in general. Similarly, is English the study of grammar and spelling, the reading of Shakespeare's plays, or the writing of poems and stories? In many cases it is easier to consider the subfields within an area of study than it is to define the area of study. So it is with computer science.

What Is Computer Science?

In some respects, computer science is a new discipline; it has grown and evolved along with the growth of computing technology and the cheaper, faster, and more accessible processing power of modem-day computers. As recently as 1970, many colleges and universities did not even have departments of computer science. But computer science has benefited from work done in such older disciplines as mathematics, psychology, electrical engineering, physics, and linguistics. Computer science inherits characteristics from all these fields in ways that we'll touch on in this book, but the thread that links these and the many subdisciplines of computer science is computer programming.

Some people prefer the term used in many European languages, informatics, over what is called computer science in the United States. Computer science is more the study of managing and processing information than it is the study of computers. Computer science is more than programming, but programming is at the core of information processing and computer science.

This book will guide you through the study of the design, building, and analysis of computer programs. Although you won't become an expert by working through this book, you will lay a foundation on which expertise can be built. Wherever possible, the programming examples will solve problems that are difficult to solve without a computer: a program might find the smallest of 10,000 numbers, rather than the smallest of 2 numbers. Longer examples are taken from various core areas of computer science. As this is a book about the design and analysis of computer programs, it must be used in conjunction with a computer. Reading alone cannot convey the same understanding that using, reading, and writing programs can.

The Tapestry of Computer Science

This chapter introduces computer science using a tapestry metaphor. A tapestry has much in common with computer science. A tapestry has many intricate scenes that form a whole. Similarly, computer science is a broad discipline with many intricate subdisciplines. In studying a tapestry, we can step back and view the work as a whole, move closer to concentrate on some particularly alluring or colorful region, and even study the quality of the fabric itself. We'll similarly explore computer science-studying some things in detail, but stepping back to view the whole when appropriate. We'll view programs as tapestries too. You'll study programs written by others, add to these programs to make them more useful, and write your own programs. You'll see that creating and developing programs is not only useful but is immensely satisfying, and often entertaining as well.

Several unifying threads run through a tapestry, and the various scenes and sections originate from and build on these threads. Likewise in computer science, we find basic themes and concepts on which the field is built and that we use to write programs and solve problems. In this chapter we introduce the themes of computer science, which are like the scenes in a tapestry, and the concepts, which are like the unifying threads.

Contexture is a word meaning both "an arrangement of interconnected parts" and "the act of weaving (assembling) parts into a whole." It can apply to tapestries and to computer programming. This book uses a contextural approach in which programming is the vehicle for learning about computer science. Although it is possible to study computer science without programming, it would be like studying food and cooking without eating, which would be neither as enjoyable nor as satisfying.

Computer science is not just programming. Too often this is the impression left after an initial exposure to the field. I want you to learn something of what a well-read and well-rounded computer scientist knows. You should have an understanding of what has been done, what might be done, and what cannot be done by programming a computer. After a brief preview of what is ahead, we'll get to it.

To develop an initial understanding of the themes and concepts that make up the computer science tapestry, we'll work through an example. Consider two similar tasks of arranging objects into some predetermined order:

1. A hand of cards (arrange by rank and suit)
2. 100,000 exams (arrange by six-digit student ID number)

Card players often do the first task because it makes playing much simpler than if the cards in their hands are arranged in a random order. The second task is part of the administration of the Advanced Placement exams given each year to high school students. Many people are hired to sort the exam booklets by student ID number before the scores are entered into a computer. In both cases people are doing the arranging. The differences in the scale of the tasks and the techniques used to solve them will illuminate the study of computer science and problem solving.

Arranging 13 Cards

Most people arrange cards in order by suits (spades, hearts, diamonds, and clubs), and within suit by rank (2, ..., 10, J, Q, K, A) with little thought. In fact, many people perform a slightly different sequence of steps in arranging different hands of cards, modifying their basic technique depending on the order in which the cards are dealt. However, if you are asked to describe the process of arranging a hand of cards to someone who has never seen cards before, the task becomes difficult. The careful description of such processes is one of the fundamental parts of computer science. The descriptions are called algorithms and are the focus of much study in computer science and in this book.

The algorithm for sorting cards shown in Figure 1. 1 is both correct and concise, two traits to strive for in writing algorithms. The instructions to sort a group are applicable to all groups, not just to the spades or to the diamonds. Instructions that apply in more than one situation are much more versatile than instructions that apply in a single situation...

Read More Show Less

Table of Contents

1 Computer Science and Programming 1
2 C++ Programs: Form and Function 29
3 C++ Programs: Input/Process/Output 81
4 Building Programs and Solving Problems 111
5 Iteration with Programs and Classes 175
6 Sequential Access: Streams and Iterators 255
7 Class Design and Implementation via Simulation 309
8 Arrays, Data, and Random Access 359
9 Characters, Strings, and Streams: Abstraction and Information Hiding 427
10 Recursion, Scope, and Lifetime 485
11 Sorting, Algorithms, and Matrices 527
12 Information Hiding and Dynamic Data 575
App. A Class Declarations and Implementations 653
Bibliography 665
Index 669
Read More Show Less

Customer Reviews

Average Rating 3
( 4 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


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


  • - 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
Sort by: Showing all of 3 Customer Reviews
  • Anonymous

    Posted January 4, 2001

    The most fun and informative C++ book I have read

    The author is clearly a scholar and is able to write a highly useful computer science text by avoiding the mind-numbing boredom that plagues all the others of its kind. The approach to teaching computer science is as unique as Dr. Astrachan's writing style. As an experienced C++ programmer, I thoroughly enjoyed the book and recommend it without reservation.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted December 9, 2000


    I am a professor from MIT, I normally check up on the books available for teaching C++;I came across this book and decided to read it. This book is very unorganized. It has no clear structure and the explanations are vague. I would not recommend this book to anyone serious about learning C++. You will have to use another book in order to fully comprehend this book.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted November 5, 2000

    Horrible book to teach begining programmers

    I teach an AP CS class and the math chair ordered this book. It is the most useless computer science book I have ever used. None of his examples are assembled in a cogent, useful fashion. The author opines that it is better to teach computer science than C++, but this leaves the begining programmer with no way to express what they are learning with code. I told my students to use the book for kindling. We went with a more unorthadox approach and ordered an ORA book which the students love.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 3 Customer Reviews

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