
What you need to know.

The course will assume a level understanding of fundamental
programming concepts: variables, loops, conditionals,
methods/functions; it will also assume familiarity with
basic python syntax, 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.,
https://www.codecademy.com

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

https://www.continuum.io/downloads

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 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, e.g.,


For Windows

* An ssh client, and an X-window implementation. These are
conveniently supplied together by, e.g., MobaXterm
http://mobaxterm.mobatek.net

For Mac

* ssh (usually installed as a default)

* X-window implementation, e.g., XQuartz http://www.xquartz.org
(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 etc.




Timetable (Illustrative rather than prescriptive)

Day 1

09:30 Registration and check installations
10:00 Introduction
11:00 Break
11:30 Numpy
13:00 Lunch
14:00 Matplotlib
15:00 Break
15:30 Matplotlib exercises
16:30 Close

Day 2
10:00 Scipy
11:00 Break
11:30 C/Fortran Interfaces
13:00 Lunch
14:00 Objects
15:00 Break
15:30 Parallel processing and mpi4py / Archer
16:30 Finish
