Because of its rich object-oriented features, C++ is rapidly becoming the programming language of choice for science and engineering applications. This text leads beginning and intermediate programmers step-by-step through the difficult aspects of scientific coding, providing a comprehensive survey of object-oriented methods. Numerous aspects of modern programming practice are covered, including object-oriented analysis and design tools, numerical analysis, scientific graphics, software engineering, performance issues and legacy software reuse. Examples and problems are drawn from an extensive range of scientific and engineering applications. The book also includes a full set of free programming and scientific graphics tools that facilitate individual learning and reduce the time required to supervise code development in a classroom setting. This unique text will be invaluable both to students taking a first or second course in computational science and as a reference text for scientific programmers.
"synopsis" may belong to another edition of this title.
'... guides beginning and intermediate programmers through the difficult aspects of scientific computing.' Numerical Algorithms
'The best feature of the book is its good and concise description of the C++ language ... The book would be a good fit for instructors who prefer to teach programming in detail. It is quite specific to C++ ... ideal text for the student who is considering a career in scientific programming and wants to learn C++ very proficiently ... an excellent book for a practicing computational physicist who wants to learn object-oriented C++ programming.' The American Journal of Physics
This book was developed during many years of teaching scientific programming to engineers and scientists in both electrical engineering and physics courses. About 1/3 of the text is accessible to beginning programmers even at a high-school level, while the last part of the book can serve as a second-term undergraduate scientific programming course or as a reference text. While the title indicates that a major focus of the text is computational physics, the book contains problems and examples from numerous scientific and engineering disciplines and can be employed across a wide variety of course offerings.
Because of the practical difficulties faced by beginning students, a first course in scientific programming generally requires very significant personal intervention by the instructor or laboratory assistant. This book effectively removes this issue by providing a common base of free Windows software on CD-ROM that is meticulously documented in the text (the software is also available for Linux). The reader is introduced to programming through numerous assignments containing real-world technical problems. The assignments at first contain nearly the entire program to be developed; as the book develops, however, fewer code sections are provided. This method allows the user to absorb proper program structure while avoiding frustrating and confusing stylistic traps. A solution manual is made available to instructors through Cambridge University Press (see their website for errata) while the CD-ROM also contains copies of all programs presented in the text.
The book presents a compact but completely unified picture of modern programming practice as it applies to scientific programming. The fundamental, underlying principles of the C++ language and scientific programming are stressed in order to simplify retention of complex C++ syntax and of the mathematical and physical content. More involved topics in numerical analysis, scientific programming methods and C++ are presented in an intuitive and easily-understood manner. Examples of the subjects covered are: software engineering principles (UML), numerical analysis, scientific graphics programming, the Standard Template Library (STL), Monte-Carlo methods including the Metropolis and multicanonical techniques, partial differential equation solvers, calling Fortran from C++, C++ program optimization.
"About this title" may belong to another edition of this title.