While recruiting college graduates, the author was surprised to
find that many candidates who were working toward their master's
degrees in computer science were unable to demonstrate the desired
programming skills, though they all indicated in their resumes that
they are proficient in C/C++ and objected oriented programming. It
appears to the author that there is a gap between academic training
and real world computing. As a veteran software developer with an
interdisciplinary education background in engineering and applied
mathematics, the author was determined to write a book for those
who want to pursue a career in developing computational software
for engineering and scientific applications. Readers will learn not
only a disciplined way to implement numerical methods but also the
software development process as a whole. In reading this book and
completing all of the hands-on programming exercises, readers will
gain an assured confidence and the sound programming skills needed
to work in a software house or to develop their own computational
software. Numerical methods in this book include evaluation of
polynomial and series, root-finding, linear and nonlinear systems,
inverse of a matrix, eigenvalues and eigenvector, integration, and
least squares approximation. These methods are grouped and
presented based on their implementation styles rather than their
relevance. This book is organized as follows: Chapter 1 is a
fast-paced brief introduction to C/C++ programming under Microsoft
Visual Studio to familiarize readers with basic C/C++ syntax and
debugging tools. Chapter 2 discusses floating-point notation,
comparison, and arithmetic. Rudimentary understanding of
floating-point is a pre-requisite for programmers. Failure to
understand it is often the source of problems in numerical
programming. Chapter 3 continues the study of advanced C/C++
programming such as default arguments, data structure and class,
double pointers, dynamic memory allocations, and STL containers.
Algorithm efficiency analysis and big O notation will also be
discussed. This chapter is designed to help readers to gain the
required C/C++ proficiency in implementing numerical methods.
Chapter 4 is devoted to give readers an insight on how a
computational software library may actually be developed in a
software house. Readers will learn how to create and use a
dynamic-link library, how to design flexible test drivers, and how
to write scripts to improve productivity, to execute test suites
automatically, and to compare the test results with the predicted
outcomes. Chapter 5 deals with recursive algorithm. Because of its
problem-solving power and simplicity in implementation, recursion
in numerical methods will be discussed in this chapter with
emphasizes on performance and memory usage. Chapter 6 discusses
linear systems. Topics include solution to system of linear
equations, matrix manipulation, inverse of a matrix, eigenvalue and
eigenvector. Chapter 7 and 8 explore how to use function pointers,
generic data pointer, and inheritance with polymorphism to design
extensible and reusable code - an important topic in software
engineering. Chapter 9 discusses the least square approximation
method whose applications can be found in many fields such as
computer-aided design, metrology, image processing, etc. Chapter 10
aims to develop a simple windows-based application for data
visualization and manipulation. Through this miniature application,
readers will get a glimpse of how sophisticated CAD/CAM systems are
developed. Chapter 11 discusses how classical numerical methods can
be parallelized to take the advantage of multi-thread programming.
Common problems associated with parallel computing such as data
race conditions, workload balance, synchronization, and parallel
slowdown are discussed in detail. Appendix A is a brief
introduction to Perl programming. Appendix B contains answers to
all seven pre-interview questions given in the preface.
General
Imprint: |
Createspace Independent Publishing Platform
|
Country of origin: |
United States |
Release date: |
November 2013 |
First published: |
November 2013 |
Authors: |
Yongming Li
|
Dimensions: |
244 x 170 x 20mm (L x W x T) |
Format: |
Paperback - Trade
|
Pages: |
376 |
ISBN-13: |
978-1-4929-7317-1 |
Categories: |
Books >
Computing & IT >
Computer programming >
Software engineering
|
LSN: |
1-4929-7317-3 |
Barcode: |
9781492973171 |
Is the information for this product incomplete, wrong or inappropriate?
Let us know about it.
Does this product have an incorrect or missing image?
Send us a new image.
Is this product missing categories?
Add more categories.
Review This Product
No reviews yet - be the first to create one!