Sunday, November 24, 2013

[Review] - A Primer on Scientific Programming with Python (Text in Computational Science and Engineering)

For those who don't know me, I'm a biologist, with an interest in bioinformatics. I've never formally taken a computer science course in the past. I've always wanted to, but could never find the time. Instead, I decided to self-learn programming in my spare time.

I've decided to learn Python as my first programming language because it is said to be relatively easy to pick up by a person who has not prior knowledge of programming. Python also seemed to be a commonly used scripting language in the bioinformatics field.

Through my university subscriptions, I was able to get ahold of an electronic copy of Hans Petter Langtangen's book A Primer on Scientific Programming with Python (Texts in Computational Science and Engineering). It is also available from Amazon for around $65 USD.

I'd give the book an 8/10. The book is a book that provides plenty of examples and presents material in a nice slow manner. It really does assume one doesn't have any experience in programming in Python or any other language. I would have like for it to take a more computer science approach, but I think that this is a complaint that is relatively unique to me, because I like more theoretical treatise of subjects before diving in. My only complaint with the electronic copy of the book is that the chapters are separated in different pdfs, but this won't be applicable to those who purchase the hardcopy or kindle version on the book.

It has 9 chapters excluding Appendices
  • Computing with Formulas
  • Loops and Lists
  • Functions and Branching
  • Input Data and Error Handling
  • Array Computing and Curve Plotting
  • Files, Strings and Dictionaries
  • Introduction to Classes
  • Random Numbers and Simple Games
  • Object-Orientated Programming
Another nice addition to the book is that it contains appendices that help students in differential equations and discrete calculus. This would help students lacking knowledge in this area to get enough help to survive when programming for these applications (eg. solving differential equations).

Another important note is that the book has bioinformatics examples, which was nice for someone who wishes to enter the bioinformatics field from a biology background.