- Series: Texts in Computational Science and Engineering (Book 6)
- Hardcover: 798 pages
- Publisher: Springer; 3rd ed. 2012 edition (July 4, 2012)
- Language: English
- ISBN-10: 3642302920
- ISBN-13: 978-3642302923
- Product Dimensions: 8 x 1.5 x 10.4 inches
- Shipping Weight: 4.7 pounds
- Average Customer Review: 10 customer reviews
- Amazon Best Sellers Rank: #1,530,557 in Books (See Top 100 in Books)
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.
A Primer on Scientific Programming with Python (Texts in Computational Science and Engineering) 3rd ed. 2012 Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
From the reviews of the third edition:
“A Primer on Scientific Programming with Python simultaneously introduces us to the Python programming language and its use in scientific computing. … The reader will learn good Python programming style from the Primer. The book will often present a direct solution using only the most basic language features … . Those of us who have learned scientific programming in Python ‘on the streets’ could be a little jealous of students who have the opportunity to take a course out of Langtangen’s Primer.” (John D. Cook, The Mathematical Association of America, September, 2011)
“This voluminous book offers an excellent and detailed explanation of programming paradigms and mathematical lexicons. … The author includes many programs, explanations, and exercises. … This book will prove very useful for mathematicians and statisticians. … I definitely recommend this book to university students for a six-month course or classroom discussions. If someone wants to quickly learn Python concepts, it can be used as a reference.” (Naga Narayanaswamy, ACM Computing Reviews, February, 2013)
From the Back Cover
The book serves as a first introduction to computer programming of scientific applications, using the high-level Python language. The exposition is example- and problem-oriented, where the applications are taken from mathematics, numerical calculus, statistics, physics, biology, and finance. The book teaches "Matlab-style" and procedural programming as well as object-oriented programming. High school mathematics is a required background, and it is advantageous to study classical and numerical one-variable calculus in parallel with reading this book. Besides learning how to program computers, the reader will also learn how to solve mathematical problems, arising in various branches of science and engineering, with the aid of numerical methods and programming. By blending programming, mathematics and scientific applications, the book lays a solid foundation for practicing computational science.
Browse award-winning titles. See more
Top customer reviews
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.