Introduction to Scientific Programming with Python

Dates: 24 - 25 April 2017

Location: University of Swansea

Preparatory Course Info

What you need to know

The course will assume a level of understanding of fundamental programming concepts: variables, loops, conditionals, methods/functions; it will also assume familiarity with basic python syntax for these features, along with data structures such as lists and tuples. The course will be based on Python 2.7.

For less experienced programmers, a concise introductory online course on python programming is available from e.g., Code Academy

The course will start with a very brief recapitulation of basic ideas.

What you need to bring

Attendees should bring a laptop (Windows/Mac/Unix) with the following software installed before the start of the course.

  • Python 2.7

    We strongly recommend installing on your laptop the Anaconda distribution of python available from

    This has all the packages that will be required for the main part of the course: Numpy, SciPy, Matplotlib, Jupyter. IMPORTANT. Python 2.7 will be used as the basis of the course (not version 3.x). Please make sure you download the correct version.

  • A text editor (e.g., for editing python source files)
  • Connections to the network will be required for use of ARCHER guest accounts. You will need at least a secure shell (ssh) client. We suggest
    • For Windows: an ssh client, and an X-window implementation. These are conveniently supplied together by, e.g., MobaXterm
    • For Mac: ssh (usually installed as a default), and an X-window implementation, e.g., XQuartz (note Mac-style terminal windows are not enough).

What will be supplied

The course presenters will provide guest account details for attendees without existing ARCHER accounts.

The final part of the course will provide the opportunity to run a parallel python code, and/or couple compiled code in Fortran or C from python. This requires at least a native compiler for Fortran or C, which are available on ARCHER. Instructions for ARCHER will be supplied.

Attendees may wish to try parallel python or coupling on their own laptops, but will need to arrange installation of the appropriate packages/compilers to make this possible.

Lecture Notebooks

  • L01 - Introduction
  • L02 - NumPy
  • L03 - Matplotlib
  • L04 - SciPy
  • L05 - Interfacing Fortran and C
  • L06 - Message passing via mpi4py

Course Material

Download course material sci-py.tar.gz

Download course material