Page - VIII - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python
Image of the Page - VIII -
Text of the Page - VIII -
viii Preface
shift inpopularity fromthesecompiled languages tomorehigh-levelandeasier-to-
readlanguages likeMatlab,Python,R,Maple,Mathematica,andIDL, for instance.
This latter classof languages is computationally less efficient,but superiorwith re-
spect to overall humanproblem solving efficiency. This book emphasizes how to
think like a programmer, rather than focusingon technical languagedetails. Thus,
the book should put the reader in a goodposition for learning other programming
languages later, including theclassicones: Fortran,C, andC++.
Howthis book is different There are numerous texts on computer programming
and numericalmethods, so howdoes the present one differ from the existing lit-
erature? Compared tobooksonnumericalmethods, ourbookhas amuchstronger
emphasisonthecraftofprogrammingandonverification.Wewant togivestudents
a thoroughunderstandingofhowonethinksaboutprogrammingasaproblemsolv-
ingmethodandhowonecanbesure thatprogramsarecorrect (well, youcannever
be completely sure, but we show how you can provide convincing evidence for
correctness).
Even though there are lots of books on numericalmethodswheremany algo-
rithmshave a corresponding computer implementation (see, e.g., [1, 3–6, 11, 16–
18, 21, 24, 26–31] – the latter two are the only textswe know that applyPython),
it is assumed that the reader “canprogram”beforehand. Thepresent book teaches
the craft of structured programming alongwith the fundamental ideas of numeri-
calmethods. Furthermore,we have so far not foundanyother numericalmethods
book that has a strong emphasis on verifying implementations. In this book, unit
testingandcorresponding test functionsare introducedearlyon.Wealsoputmuch
emphasis on codingalgorithmsas functions, as opposed to “flat programs”,which
often dominate in the literature and among practitioners. Functions are reusable
because theyutilize thegeneral formulationof amathematical algorithmsuch that
it becomesapplicable toa largeclassofproblems.
Therearealsonumerousbooksoncomputerprogramming,but toourknowledge
only one [13] that aims to teach how to think about programming in the context
of numericalmethods and scientific applications. That book [13] has its primary
focus on teaching Python and is a very comprehensive introduction to Python as
alanguageandthethinkingaboutprogrammingasacomputerscientist. Sometimes
one needs a text that does not go so deep into the language-specific details, but
instead targets the shortest path to reliablemathematical problemsolving through
programming.With this attitude inmind,a lotof topicswere leftoutof thepresent
book, simply because theywere not strictly needed in themathematical problem
solving process. Examples of such topics are object-oriented programming and
Pythondictionaries(ofwhichthelatteromissionispossiblysubject tomoredebate).
Ifyoufindthepresentbooktooshallow,[13]mightbetherightchoiceforyou.That
sourceshouldalsoworknicelyas amore in-depthsuccessorof thepresent text.
Whenever the need for a structured introduction to programming arises in sci-
enceandengineeringcourses, thisbookmaybeyouroption,either forself-studyor
foruse inorganizedteaching.Thethinking,habits, andpracticecoveredinacouple
ofhundredpageswill put readers inafirmposition forutilizingandunderstanding
thepowerof computers forproblemsolving in scienceandengineering.
back to the
book Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python"
Programming for Computations – Python
A Gentle Introduction to Numerical Simulations with Python
- Title
- Programming for Computations – Python
- Subtitle
- A Gentle Introduction to Numerical Simulations with Python
- Authors
- Svein Linge
- Hans Petter Langtangen
- Publisher
- Springer Open
- Date
- 2016
- Language
- English
- License
- CC BY-NC 4.0
- ISBN
- 978-3-319-32428-9
- Size
- 17.8 x 25.4 cm
- Pages
- 248
- Keywords
- Programmiersprache, Informatik, programming language, functional, imperative, object-oriented, reflective
- Category
- Informatik