Julius B. Lucks/Projects/Python Articles

I am a huge fan of the python programming language, and I think the python community has matured to the point that python can be a rich scientific programming platform, with the help of a few other tools. There is now solid support for data crunching through numeric modules, statistics through bindings to the r programming language, graphics and plot creation through matlab-like plotting modules and much much more.

My goal is to write a series of articles to introduce python to scientists, and along with it, good programming practices that scientists can use to so that they can write quality code that makes use of state-of-the-art programming techniques.

These articles are just starting to be written, so they are a bit rough! Please contribute if you feel like it, and add feedback to the discussion pages.

= Articles =


 * Scientific Pipelines: A general tour of the hodgepodge languages that I used to use before I found python, and why python is a better replacement.


 * Design Patterns In Scientific Programming: An introduction to design patterns - what they are, and how can they be used in scientific programming.


 * Using Git: An introduction into git, the distributed source code management software written by Linus Torvalds, and used by the kernel, X Windows, and One Laptop Per Child.

= Wanted Articles = Feel free to get started on these!


 * Unit testing for science: An introduction to unit tests, test-driven development, and why this programming technique will save you many headaches and give you confidence that your data is correct!


 * Plotting with Matplotlib: How to make on-the-fly graphics, and publication quality plots directly within the code that generates and analyses the data!

= Articles on the Web =

A Byte of Python
 * Excellent introduction for beginners - start here!

Dive Into Python
 * Excellent introduction to python on an intermediate level. Read this after 'A Byte of Python'.

Travis Oliphant, one of the creators of NumPy, recently wrote Python for Scientific Computing:
 * 'By itself, Python is an excellent "steering" language for scientific codes written in other languages. However, with additional basic tools, Python transforms into a high-level language suited for scientific and engineering code that's often fast enough to be immediately useful but also flexible enough to be sped up with additional extensions.'
 * This is a nice little intro into Python, and especially Numpy, where Oliphant gives a concise run through of the powerful features of Numpy.