Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Other Sellers on Amazon
+ $3.99 shipping
+ $5.49 shipping
+ $3.99 shipping
A Primer on Scientific Programming with Python (Texts in Computational Science and Engineering) 3rd (third) 2012 Edition by Langtangen, Hans Petter published by Springer (2012) Hardcover – 1600
There is a newer edition of this item:
"Warlight" by Michael Ondaatje
A dramatic coming-of-age story set in the decade after World War II, "Warlight" is the mesmerizing new novel from the best-selling author of "The English Patient." Learn more
What other items do customers buy after viewing this item?
Customers who viewed this item also viewed
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Why I like this book:
1. This text has an unbelievable price tag for how much content it covers.
2. The Book is really broken down into two parts a) Python basics b) Implementing numerical math/science in python.
3. Tons of examples and problems to work out. This is a great feature!
4. Well written with code snippets that are not confusing or lengthy.
5. Discusses many of the freely available python libraries.
What I'm not crazy about:
1. This thing is heavy!
2. Not easy to find specific types of code/examples.
3. Some of the problems are boring.
4. Wish it had more of programming for simulations (i.e. Finite-Differences, Finite-Elements).
If your an undergraduate in mechanical, electrical, or materials engineering looking to learn programming for the first time this is an excellent text to start from. If you've already had a similar course in this topic but with another language like Fortran or C and are more interested in leveraging python to write fast and simple code I think the authors book "Python Scripting for Computational Science" might be better suited for you (Note: I actually have not read that book).
This wonderful text fills a very much needed niche for Engineering, Math and IT/Computer Science students at the AP High School/ beginning undergrad level, as well as for self study, reference, autodidacts. There are two sets of important (and different) keywords for this huge text: In math: CAS (Computer Algebra Systems), Special Functions, Numerical Analysis, Numerical Methods and Numerical Recipes. In Python: Numeric methods interfaces and Python programming.
There are several types of high level languages following structured/imperative, functional and object oriented programming paradigms respectively: C- Fortran type; Lisp- Haskell- Scheme type; and Java, C++, Python etc. on the object side. MOST IMPORTANTLY: there also are "special function" applications languages like R, MatLab, VHDL and other "calculator" software with interfaces especially designed for math functions. When you learn numerical methods, you don't necessarily "use" a lot of the object functions of your language (inheritance for example). Especially with Python 3 (not covered in this book), but in much more advanced texts like Numerical Methods in Engineering with Python 3, which actually is becoming a competitor for MatLab, much fewer object oriented features are actually used, and the GUI looks a LOT like MatLab, Mathcad, Mathematica, etc. when you're done!
I tell you this because, if you're thinking of using this text as a general intro to Python AND scientific- engineering programming, even though it is written at a wonderfully introductory level (without losing high level apps and functions), it is really quite specialized in numerical methods, so you would lose a bit of the oop side you might need for a more general Python education.
Numerical methods and special functions are some of the highest, most complex and difficult applications in computer science, math, science and engineering (and some of the most carefully guarded trade secrets at HP/ TI and other calculator companies!). Numerical methods and mathematics are the way researchers and programmers create and implement special programming to represent and solve math functions, equations and problems (including statistics and big data) using the computing power of the processor, either with brute force or matrix manipulation or both. This means that the "brain" methods, of say, substitution and u clauses in integrals or solving polynomials, are usually changed to their linear algebra equivalents (because 0s, 1s and diagonals in matrices, arrays and vectors are easier for a computer to solve).
Now here is the astonishing thing about this text: NO OTHER TEXT of the dozen or so best out there tries to introduce numerical recipes, methods, functions, coding etc. without at least a full year of linear algebra, and ideally a full year of calculus. THIS ONE DOES! The hardest part of learning this kind of material is often the notation, and with special functions you have at least five levels of notation: the math, the algorithms, the data structures, the language code and sometimes even compile/assembly issues because some of these functions are processor specific or require special memory allocations! This author hand holds us through EVERY step of the notation, explaining it in detail. This makes this text outstanding for pre-linear algebra (with a leg up on Python) as much as its stated value of teaching Python!
You can write three or four lines in Haskell (true of most algorithms) that control many more lines of code, that then take three pages of math symbols and formulae-- to solve a very tough Sudoku puzzle in a tenth of a second. This disparity in notation causes a lot of beginning students to give up. This fine text walks you through that jungle! Highly recommended before you try climbing the higher mountains of numerical functions and recipes, or more advanced Python. A side benefit is that MatLab will be a snap after you get this done! Even today, a LOT of special functions (to be honest) are still legacy libraries in C.
Some of the best can be found in Press's Numerical Recipes in C: The Art of Scientific Computing, Second Edition. From this text, I'm guessing you'd move on to R, Python 3, Java (for the many JVM distributions), Erlang (for concurrent) or even check out VHDL and C for embedded applications, depending on your career/ edu/ consulting/ self study track. "Pure science" engineering types still prefer MatLab, but "jocks" (at the top of their game) code their own in Python 3, Lisp, Haskell, Prolog or even VHDL. The libraries in the advanced languages (templates, API's, plug ins, macros, etc.) make many of these tasks a lot easier, and in fact allow you to pretty much create your own DSL (Domain Specific Language) specially tailored to your own scientific/ engineering/ math/ IT application. Highly recommended as a starting point, even for Seniors in High School with visions of a tech career/ company.
The second section is, I think, unique in the science/engineering literature - design of object orientated software and why it is a helpful paradigm for numerical analysis. I can't think of another book at this level which really nails that concept like this book.
This is not a compendium of methods for numerical analysis (a la Numerical Recipes etc). Also it is not a text on numerical analysis (say like the classic Morton & Mayers or Richtmayer & Morton in the PDE (my) area). But it never pretends to be, which is good.
I think having at least first year undergraduate maths would helpful (although not mandatory), as it would make understanding some of the examples used easier so as to focus on the programming.
In summary, I believe this is an essentially flawless introduction to the Python language and programming for scientists. It's greatest strength is its delivery of OO design concepts - really unique in the area.