Taking a problem-solving approach, this book gives the reader an insight into the ways programs are implemented and what actually happens when they run. Throughout, the importance of good programming style is emphasised and illustrated. Two languages, Fortran 90 and C++, are used to provide contrasting examples, and explain how various techniques are used and when they are appropriate or inappropriate. For scientists and engineers needing to write programs of their own or understand those written by others, Topics of importance and interest to scientists are presented in a thoughtful and thought-provoking way, with coverage ranging from high-level object-oriented software to low-level machine-code operations