Page - VI - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python
Image of the Page - VI -
Text of the Page - VI -
vi Preface
3. It is easy to use excellent ready-made software the wrong way. Insight in
programming and the mathematics behind is fundamental for understanding
complexsoftware, avoidingpitfalls, andbecomeasafeuser.
4. Bugs (errors in computer code) are present inmost larger computer programs
(also in the ones from the shop!). What do you do when your ready-made
softwaregivesunexpected results? Is it a bug, is itwronguse, or is it themath-
ematically correct result? Experiencewith programmingofmathematics gives
you a good background for answering these questions. The onewho can pro-
gram,can alsomake tailoredcode for a simplifiedproblemsettinganduse that
toverify thecomputationsdonewithoff-the-shelf software.
5. Lots of skilledpeople around theworld solve computational problemsbywrit-
ingtheirowncodeandoffertheircodeforfreeontheInternet. Totakeadvantage
ofthis trulygreatsourceofsoftware inareliableway,onemustnormallybeable
tounderstandandpossiblymodifycomputercodeofferedbyothers.
6. It is recognizedworldwidethatstudentsstrugglewithmathematicsandphysics.
Toomanyfind such subjects difficult and boring. With programming,we can
execute the good old subjects in a brand newway! According to the authors’
ownexperience, students find itmuchmoremotivating and enlighteningwhen
programming ismade an integrated part ofmathematics and physical science
courses. Inparticular, theproblembeingsolvedcanbemuchmorerealistic than
when themathematics is restricted towhatyoucandowithpenandpaper.
7. Finally,welaunchourmost importantargumentforlearningcomputerprogram-
ming: thealgorithmic thinking thatcomeswith theprocessofwritingaprogram
for a computational problem enforces a thorough understanding of both the
problem and solution method. We can simply quote the famous Norwegian
computer scientistKristenNyggaard: “Programmingisunderstanding”.
In the authors’ experience, programming is an excellent pedagogical tool for un-
derstandingmathematics: “You thinkyouknowwhenyoucan learn, aremore sure
when you can write, even more when you can teach, but certain when you can
program”(AlanPerlis, computer scientist, 1922-1990). Consider, for example, in-
tegration. Anumericalmethod for integration has amuch stronger focus onwhat
the integral actually is andmeans compared to analytical methods, where much
timeandeffortmust bedevoted to integrationbyparts, integrationby substitution,
etc. Moreover,when programming the numerical integration formula, it becomes
evident that itworks for “all”mathematical functions and that the implementation
should be in terms of ageneral function applicable to “all” integrals. In thisway,
students learn to recognize a special problemas belonging to a class of problems
(e.g., integration, differential equations, root finding), forwhichwe have general
numericalmethods implemented inwidely applicable software. When theywrite
this software, aswedo in this book, they learn how to generalize and increase the
abstraction level of themathematical problem. When they use this software, they
learn how a special case should be attacked by generalmethods and software for
the class of problems that comprises the special case at hand. This is thepowerof
mathematics in anutshell, and it is paramount that studentsunderstand thiswayof
thinking.
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