Scientists and engineers who are familiar with and basic programming and numerical computing.


At the end of the course participants will be:

  1. able to write reasonable quality, procedural Python programs.
  2. broadly exposed to several of the relevant Python packages for numerical computing like ipython (interactive data exploration), numpy (arrays), scipy (numerics), matplotlib (high quality 2D plotting), in order to write code for typical scientific computing tasks involving numerical algorithms, data analysis, data exploration and visualization.
  3. understand the general tools, workflow and best practices involved in writing good quality, Python programs for scientific computing.

Structure of tutorial

The course will be completely hands on. All of the lecture material will expect users to type along and the sessions will be punctuated with exercises. The solutions for these exercises will also be discussed.


Attendees are expected to bring along their laptops fully setup with the necessary software. We suggest installing Python(x,y) or EPD. If you install Python(x,y) be sure to install the Full Edition which includes the Advanced Python Modules. The various software required are:

  • Python, version 2.5 or above,
  • numpy, version 1.4.1 or above,
  • scipy, version 0.9 or above,
  • IPython, version 0.10 or above,
  • matplotlib, version 0.99 or above,

The tutorials assume the audience has some previous experience with a scientific-computing software (Matlab, Scilab, Octave, etc.) and is comfortable with basic numerical computing in these environments.

No prior programming experience with Python is expected. However, attendees are strongly encouraged to go through the official Python tutorial before attending the Introductory Tutorial. This material will be reviewed during the course, but only briefly.

Lecture notes: