Sep 17 – 18, 2018
University of Durham
Europe/London timezone

ARCHER, the UK's national supercomputing service, offers training in software development and high-performance computing to scientists and researchers throughout the UK. As part of our training service we will be running a 2 day 'Introduction of Scientific Programming with Python' training session.


This course is aimed at programmers with little or no Python knowledge seeking to learn how to use Python for scientific computing. We will introduce Python's fundamental scientific libraries numpy, scipy and matplotlib. We will also introduce how to interface Python with Fortran and C codes, along with parallel programming methods including MPI via mpi4py.

This course is free to all academics.


Kevin Stratford

Kevin has a background in computational physics and joined EPCC in 2001. He teaches on courses including 'Scientific Programming with Python' and 'GPU Programming with CUDA'.


Juan Rodriguez Herrera

Juan is involved in teaching ARCHER courses related to HPC, MPI, and Python, among others. He's a certified instructor of Software and Data Carpentry workshops. He also supervises EPCC's MSc dissertation projects.



The course will be delivered over two days in person. The course will interleave many practical exercises with short lectures and discussions.


To attend, you must have some experience of writing code and/or scripts and be familiar with programming concepts including conditionals, loops, arrays and functions. You should also have some basic knowledge of the Python language. For an introduction to Python, please see Code Academy's Python tutorial:

You should also be comfortable with using the bash shell. For an introduction to the shell, please see, for example Software Carpentry's lessons on Unix Shell:

  • The course will be hands-on, and you should bring your own laptop.
  • We recommend you download, before the course, Anaconda python Version 3.6 from (version 2.7 will work at a stretch). This has the packages required (and more).

  • Please download the course material (link below).


Day 1

  • 09:45 - Registration and check installations
  • 10:15 - L01 : Introduction
  • 11:15 - Break
  • 11:30 - L02 : NumPy
  • 13:00 - Lunch
  • 14:00 - L03 : Matplotlib
  • 15:30 - Break
  • 16:00 - Exercises
  • 17:00 - end

Day 2

  • 10:00 - L04 : SciPy
  • 11:00 - Break
  • 11:30 - L05 : Fortran/C Interfaces
  • 13:00 - Lunch
  • 14:00 - L06 : Python classes
  • 15:30 - Break
  • 15:45 - L07 : Parallel processing and mpi4py; ARCHER Exercise
  • 16:45 - end

Course Materials

Slides and exercise material for this course.

University of Durham
Room CG65
Room CG65 Chemistry Department, Durham University, South Rd, Durham DH1 3LE <a href="">Map of training location</a>
This course is part-funded by the PRACE project and is free to all. Please register using the online form. If you have any questions, please consult the course forum page or contact