Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $5.13 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples [Paperback]

by John J. Barton, Lee R. Nackman
4.5 out of 5 stars  See all reviews (17 customer reviews)

List Price: $64.99
Price: $46.78 & FREE Shipping. Details
You Save: $18.21 (28%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 4 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
Want it Monday, April 28? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Hardcover --  
Paperback $46.78  
Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

August 19, 1994 0201533936 978-0201533934 1
This book's three parts take readers with no prior C++ knowledge all the way from basic concepts, through object-oriented programming and design techniques, to advanced C++ features and techniques. Coverage of object-oriented programming emphasizes various methods of expressing commonality and abstraction, and the advanced coverage illustrates coordination of advanced C++ by developing several interesting examples, including array classes, pointer classes, systems employing abstract algebra, FORTRAN-based matrices, function mapping, and data fitting.

Frequently Bought Together

Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples + C++ and Object-Oriented Numeric Computing for Scientists and Engineers + Guide to Scientific Computing in C++ (Undergraduate Topics in Computer Science)
Price for all three: $158.25

Buy the selected items together

Editorial Reviews

From the Inside Flap

Like many scientists and engineers, much of our work involves writing computer programs. Recently we have been writing those programs in C++. We think that our programs are better and that we can do better science and engineering with these programs because they are written in C++. We think you should try C++, and we wrote this book to help you get started.

C++ is one of several new languages that use a programming style called object-oriented programming. To write large programs that are correct, readable, modifiable, affordable, and efficient requires the same creative effort and persistence characteristic of other endeavors in science and engineering. Traditional programming languages, including FORTRAN and C, force us to communicate with the computer in a demeaningly simplistic manner. C++ and an object-oriented programming style elevate the communication to a more abstract level: They provide means for investing intellectual effort to produce better-quality programs and thus better-quality science and engineering, from a given programming project.

Learning C++ will be exciting. Although most of the programming ideas used in languages like FORTRAN, PASCAL, and C are still used in object-oriented programs, the new concepts reorganize the work. Like all new fields, object-oriented programming will seem foreign and exotic. C++ embodies a decade of new ideas from computer science backed up by practical experience. These new ideas will stimulate your thinking about programming and its role in your work. We hope you will find, as we have, that this new view changes programming from a tedious, albeit engaging, process to an intellectual enterprise more comparable to the processes we employ in other scientific and engineering work. Purpose

The purpose of this book is to teach you how to use C++ and the object-oriented programming style to produce better-quality programs, with an emphasis on scientific and engineering programs. Most such programs today are written in FORTRAN or C and without the benefit of any particular programming methodology. For small programs of strictly numerical content, FORTRAN or C may be adequate. However, larger programs and programs containing nonnumerical code are too expensive to understand, to revise, and to improve if written in FORTRAN or C. We present object-oriented programming as a design and programming style that addresses these problems and C++ as a programming language designed to allow efficient use of the object-oriented style. If you are still using FORTRAN or C in your programming, we invite you to explore a new world, the world of object-oriented programming in C++. Audience

Our book teaches object-oriented programming in C++, using examples from science and engineering. It is not a book about scientific computing or numerical analysis nor an introduction to programming. The book moves rapidly through the basic features and syntax of C++, material readily assimilated by an engineer or scientist experienced in programming or, indeed, by any experienced programmer. Our aim is to move quickly beyond syntax and rules to the more interesting and important concepts and techniques of object-oriented programming in C++. The latter part of the book applies the concepts and techniques developed to substantive examples. The examples are drawn primarily from science and engineering, but the concepts and techniques are broadly applicable.

We expect the book to be useful to three (overlapping) groups:

Engineers and scientists who are experienced programmers in


Professional programmers experienced in C or C++ looking

for a new systematic discussion of object-oriented programming in C++

C++ programmers interested in advanced examples useful as a

basis for scientific and engineering programming.

In addition to programming experience, some of the examples assume the mathematical maturity typical of an undergraduate student in an engineering or scientific field.

Learning C++ and object-oriented programming will be a challenge regardless of your background. We were frankly amazed that computer programming could be so different. We hope you find this challenge stimulating and rewarding on its own; we are confident that once you understand C++ and object-oriented programming, you will not be satisfied with less. Acknowledgments

This book was made possible by the considerable patience of our employer, the Research Division of the IBM Corporation, and the personal patience and encouragement of our managers, colleagues, friends, and families. We began work on this book when we were in the Physical Sciences (Barton) and Manufacturing Research (Nackman) departments. Our managers in those departments--Read McFeely, Franz Himpsel, and Bruce Scott; Mike Wesley, Warren Grobman, and Russ Lange--supported and encouraged our work. A special thanks to the late Mike Wesley, manager, mentor, and friend for a decade: He recognized the importance of producing quality software for engineering applications and provided the environment, encouragement, and support for learning something about how to do it. We have completed work on the book in the Computer Science department, where we enjoy the considerable support and encouragement of our manager Mark Wegman.

We are indebted to all of our colleagues at IBM Research for having made it a special place to work and learn. We especially thank Michael Karasick and Derek Lieber for helping us, over many years, to learn C++ and how to use it, and Louis Terminello for timely and gracious encouragement. We also thank Bjarne Stroustrup and the developers of IBM's C++ compiler, especially Mark Mendell, Dave Streeter, and Ernest Choi, for correspondence and encouragement while we learned and relearned C++.

We were also fortunate to have the help of many reviewers; their comments improved many aspects of the book, ranging from typography to the book's organization. The comments of James Coplien, Tom Lyons, and William Press had an especially large impact on the book. As deadlines loomed, Michael Karasick read furiously through several drafts to help us weed out the worst confusions. We also thank John L. Bradberry, Goodwin Chin, Marshall Cline, Chris Codella, Margaret Ellis, Martin Giles, Franklin Gracer, Peter Juhl, Derek Lieber, Mark Linton, Tom Linton, Stanley Lippman, Alistair McClean, John Morar, Dean Pentcheff, V. T. Rajan, John Rehr, Chris Seekamp, Steve Stevenson, Bjarne Stroustrup, Bob Sutor, Dave Tolle, Hank Walker, and Robert Wang for their many suggestions. The efforts of all these people spared you the early drafts of the book.

Debbie Lafferty, our editor at Addison-Wesley, gently prodded and encouraged us at each step of the way, carefully balancing between pushing too little and too hard.

The love of our families--Ava, Rachel, Samuel, and Joel Nackman; Cynthia Butler and John Anthony and Andrew Butler Barton--has been essential. We thank them for their patience and understanding during all those times when working on the book took time away from them.


From the Back Cover

Barton and Nackman explore using C++ and the object-oriented programming style in scientific and engineering programs. The book emphasizes general concepts, systematic ways of using C++ features, advanced techniques, and particular styles that will help you write object-oriented programs. Examples are drawn from scientific and engineering applications, and the concepts, techniques, and styles are broadly applicable.

The book is organized into three parts. The first part builds a working knowledge of C++. The second part introduces object-oriented programming and design techniques, emphasizing the various ways to express commonality and abstraction. The third part illustrates coordination of advanced C++ features and techniques by developing several interesting examples, including array classes, pointer classes, systems employing abstract algebra, FORTRAN-based matrices, function mapping, and data fitting.


Product Details

  • Paperback: 688 pages
  • Publisher: Addison-Wesley Professional; 1 edition (August 19, 1994)
  • Language: English
  • ISBN-10: 0201533936
  • ISBN-13: 978-0201533934
  • Product Dimensions: 9.5 x 7.7 x 1.2 inches
  • Shipping Weight: 2.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (17 customer reviews)
  • Amazon Best Sellers Rank: #360,215 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
22 of 22 people found the following review helpful
5.0 out of 5 stars Excellent text, though a bit dated December 20, 2003
Barton and Nackman is probably the best advanced C++ book I have read. It covers the basics of C++ programming for FORTRAN and C programmers, then dives into more advanced material. The book discusses many important design issues, such as how to represent and take advantage of name, structure, and function commonality. Several of the later chapters build extended examples making use of advanced template techniques. One chapter develops in detail a family of array classes, another presents classes for smart pointer functionality. Though this book predates the standard template library, it discusses the use of iterators to provide sequential access to data stored in classes. My favorite chapters build a family of template classes to implement algebraic categories, e.g. groups, monoids, rings, and fields, and a set of classes to implement some rudimentary symbolic computation capabilities through function objects. The use of templates in the later chapters is truly advanced and it is fascinating to see many of the tricks templates allow you to perform.
My only gripe with the book is its age. It predates the ISO/ANSI C++ standard and the standard template libraries. It would be interesting to see how the authors would incorporate these recent advances into their treatment of advanced C++ programming.
Despite being a book for scientists and engineers, Barton and Nackman should be read by everyone doing serious C++ programming. Highly recommended.
Comment | 
Was this review helpful to you?
17 of 17 people found the following review helpful
4.0 out of 5 stars A Second Edition would be nice... May 19, 2000
Format:Paperback|Verified Purchase
Overall, this is a TREMENDOUS book. The example projects used are immediately relevant to the target audience - scientists and engineers. Some of the concepts presented (in 1994) are just now coming into prominence in the C++ community. The only reason the book does not get 5 stars is that the code examples are outdated. A lot of time is spent on developing different containers and exception classes, but they do not employ the STL or the standard exception heirarchy for these. Also, their "hand-rolled" boolean type conflicts with the now standard bool type. I think this is a major shortcoming. A second edition of the book using ANSI c++ and STL would, I believe, be of great benefit.
Comment | 
Was this review helpful to you?
11 of 11 people found the following review helpful
5.0 out of 5 stars Superb introduction to OOP in C++ April 18, 2002
I was first interested in this book for its implication of the title, scientific computing (whatever it is). However, I must say I was pleasantly surprised to learn that the book is not just relevant for the implied target audience, but also for those who need a good introduction to OOP with C++.

What makes this book great for learning OOP is that it is rich in concrete examples that are relevant for people who have worked in science or engineering. Many OOP books take more abstract approaches, and often the relevance of discussions for the practical situations is not clear. It is not the case with this book.

Another thing I like is the quick and concise introductions of C++. I think the authors do a great job of summarizing "do's and don'ts" of C++ by extracting the information in indented, bullet style lines throughout the book. Other C++ books are just enormous and often it is hard to find relevant information.

I would guess the drawbacks of learning from this book is that if you do not have any background in science or engineering, you might have harder time understanding some examples in it. Also, the book is somewhat outdated in terms of coding practices (pre-Standard Library, etc.).

In any case, the superb introduction to C++ OOP is in this book, which mostly remains unmentioned when people talk about good C++ books authored by other prominent authors. This one definitely deserves better recognition.
Comment | 
Was this review helpful to you?
15 of 17 people found the following review helpful
2.0 out of 5 stars Book great, ONLINE CODE BUGGY April 24, 2000
By A Customer
This book does a good job of explaining C++ in the big picutre and in a scientific light. The examples are good, although there could be more. The section on arrays is good, although when you want to actually see the code for multidimensional arrays you have to go to the online source code. This is when your frustration level goes way up. I tried to compile many of the sources in Visual C++ and no luck at all. After looking things over I discovered that this code does not have terminating semicolons, missing braces and really difficult bugs. The authors claim to have compiled and run the code on some old IBM mainframe -- their compiler was not very up to date! I tried to contact the authors at the specified e-mail address in the book and had it bounced back to me. After further investigation it looks like the authors have moved on to bigger and better things, and can not be reached.
Buy this book for the text, not the code. MTW, not all the code is given in the text book. If the code was fixed, and some more examples were given this would be a GREAT book, too bad...
Comment | 
Was this review helpful to you?
7 of 7 people found the following review helpful
5.0 out of 5 stars Excellent examples of advanced templates January 2, 2001
I found this book to be very good, except for a few unnecessary parts. A lot of what the book covers (i.e., "scientific & enginnering") doesn't overlap my problem domain, and the Fortran/C intro sections were skipped since I already knew C++. It would have been better if the Fortran/C sections were put into different books. However, the rest of the book was excellent; even the stuff I didn't use right away was intellectually stimulating.
This book should be bought by every serious C++ programmer. Barton and Nackman show several *excellent* examples of more advanced template usage than the boring old "generic container".
For those of you who are more familiar with advanced template programming, the "B&N trick" gets its name because it's in this book.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars product review
Book is excellent. I particularly enjoyed the chapter comparing C++ to Fortran. I originally learned top down programming with Fortran and Barton took us through what I knew to be... Read more
Published 3 months ago by Harry
5.0 out of 5 stars Great Book For Advanced Techniques in C++
This was the book assigned to us for my Object-Oriented Numerical Modelling class. It really brings you up from a novice to a pro in C++.
Published on April 21, 2011 by Jacob
4.0 out of 5 stars great introduction into C++ for older programmers
I work mostly in fortran and a little in C, so it was nice to find a text that approached things from the perspective of learning a new language, vs. Read more
Published on May 30, 2007 by Donald R. Stark
5.0 out of 5 stars classic of modern template design
It's unusual for a book on scientific computing to gain currency in mainstream software development, but a small number of C++ authors in the know have been recommending this since... Read more
Published on March 1, 2007 by Thing with a hook
4.0 out of 5 stars scientific and engineering c++
This book was written with good focus and i think it's a succsses.The idea of transforming programming in engineering to the Object Oriented plane is highly wellcomed and this book... Read more
Published on September 26, 2000
5.0 out of 5 stars methods for expressing commonality in C++
Enumerates reasons for choosing C++ as an object-oriented programming language for scientific applications. Read more
Published on April 4, 2000 by Daniel Mall
4.0 out of 5 stars An advanced book on C++ for Fortran programmers
This book is designed for Fortran and C scientific programmers who are wanting to make the switch to C++. Read more
Published on September 1, 1999
5.0 out of 5 stars This book showed me the forest, not just the trees of C++
Its a great book on C++ object-oriented design techniques for algorithms and software constructs commonly used in science and engineering. Read more
Published on August 19, 1999
Search Customer Reviews
Only search this product's reviews

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category