vii target audience and background knowledge this book was written for studentsteachersengineers and scientists that know nothing about programming and numerical methods from beforebut who seek minimum of the fundamental skills required to get started with programming as tool for solving scientific and engineering problems some knowledge of oneand multi-variable calculus is assumed the basic programming concepts are presented in only pages and )before practical applications of these concepts are demonstrated in important mathematical subjects addressed in the remaining parts of the book - each is followed by set of exercises that cover wide range of application arease biologygeologystatisticsphysics and mathematics the exercises were particularly designed to bring across important points from the text the reader will realize that the modest content of the first pages can in fact bring you quite far in powerful problem solvinglearning the very basics of programming should not take longbut as with any other craftmastering the skill requires continued and extensive practice some beginning practice is gained through - but the authors strongly emphasize that this is only start students should continue to practice programming in subsequent courseswhile those who exercise self-studyshould keep up the learning process through continued application of the craft the book is good starting point when teaching computer programming as an integrated part of standard university courses in mathematics and physical sciences in our experiencesuch an integration is doable and indeed rewarding numerical methods an overall goal with this book is to motivate computer programming as very powerful tool for doing mathematics all examples are related to mathematics and its use in engineering and science howeverto solve mathematical problems through computer programmingwe need numerical methods explaining basic numerical methods is therefore an integral part of the book our choice of topics is governed by what is most needed in science and engineeringas well as in the teaching of applied physical science courses mathematical models are then centralwith differential equations constituting the most frequent type of models consequentlythe numerical focus in this book is on differential equations as soft pedagogical starter for the programming of mathematicswe have chosen the topic of numerical integration there is also on root findingwhich is important for the numerical solution on nonlinear differential equations we remark that the book is deliberately brief on numerical methods this is because our focus is on implementing numerical algorithmsbut to develop reliableworking programsthe programmer must be confident about the basic ideas of the numerical approximations involved the computer languagepython we have chosen to use the programming language pythonbecause this language gives very compact and readable code that closely resembles the mathematical recipe for solving the problem at hand python also has gentle learning curve there is matlab/octave companion of this book in case that language is preferred comparing these two versions of the book provides an excellent demonstration of how similar these languages are other computer languageslike fortrancand ++have strong position in science and engineering during the last two decadeshoweverthere has been significant