Scientific Programming with Python

Dates: 6 - 7 December 2018

Location:University of Newcastle

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.

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 3.6

    We strongly recommend installing on your laptop the Anaconda distribution of python available from https://www.anaconda.com/download/

    This has all the packages that will be required for the main part of the course: Numpy, SciPy, Matplotlib, Jupyter. IMPORTANT. Python 3.6 will be used as the basis of the course (not version 2.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.

Unless otherwise indicated all material is Copyright © EPCC, The University of Edinburgh, and is only made available for private study.

Lecture Notebooks

  • L01 - Introduction
  • L02 - NumPy
  • L03 - Matplotlib
  • L04 - SciPy
  • L05 - Fortran/C Interfaces
  • L06 - Python classes
  • L07 - Parallel processing and mpi4py

Unless otherwise indicated all material is Copyright © EPCC, The University of Edinburgh, and is only made available for private study.

Course Material

The course material is available at https://github.com/EPCCed/archer-python.

Course Chat page

Chat page

The Chat page is a live collaborative online document which we will use to share links, information and comments. All course participants are encouraged to contribute.