Training: Software Development for Scientists

  • Date - July 11-15, 2016
  • Cost - FULLY BOOKED Email v.lucas@the-iea.org to go on the waiting list and for details of the next course dates
  • Leader - Jane Lewis
  • Closing Date - Monday 4th July 2016
  • Location - University of Reading
  • VIEW MAP Book now

SORRY – THIS COURSE IS NOW FULLY BOOKED! Email v.lucas@the-iea.org to join the waiting list and to find out about future dates for this course.

PLEASE RETURN TO THE MAIN TRAINING & DEVELOPMENT MENU FOR DETAILS OF OTHER IEA COURSES

 

What you will learn: Best practice programming techniques for engineers and scientists with hands-on learning through practical exercises.

Cost: £1,200 (£1,000 IEA Partners & universities. Accommodation is not included)

Closing date: Monday, July 4, 2016

 

Software engineering is a large and complex discipline and so this IEA short course will focus on the most important and relevant elements for scientists, crucial amongst which are usability, maintainability, accuracy, and readability.

These are the foundations of professional code development skills. We will teach and demonstrate the benefits of good initial design, thorough testing, algorithm re-use and code progression, the ideas of elegance, abstraction, performance and scalability.

The course is led by Jane Lewis, a very experienced software engineer who also has expertise in handling environmental data.

The course is aimed principally at PhD students, early career scientists and those who have been coding for less than a year. If you are interested the course but are not in this category please contact Vicky Lucas to discuss.

Topics will include:

  • Revision of fundamentals (shells, syntax, concepts etc.)
  • Basic design methodologies
  • Simple data structures
  • Version control
  • Unit and integration testing
  • Basic diagramming
  • Commenting and coding standards
  • Requirements capture
  • Error handling and basic debugging

Course content (09.30 – 17.30 daily, 16.30 on Friday)

  • Day 1: Commands & Shell; IDEs; Control Flow; Version Control
  • Day 2: Simple Data Types; Requirements; NetCDF; Diagrams
  • Day 3: Design; Modularity; Complex Data Types; Debugging
  • Day 4: Standards & Reviews; Testing; Error Handling; Guest Speaker; Q&A session
  • Day 5: Admin; Project work

Course Preparation:

From Wednesday, June 1, course content can be obtained by retrieving the list of files here using ‘SaveLinkAs’ from the right-click menu, this will usually save the file to your ‘Downloads’ folder. From the command line, navigate to the folder where you have saved the file and run:

wget -i content_file_list.txt

This will get all the files in the list and save them to the same folder. 

Pre-course quiz

There is a short quiz for you to try here which will give us an idea of what you already know and where the gaps are. Please submit your answers to Vicky Lucas by July 6, 2016.

Setting up the Virtual Machine (VM) (Please note links will be live from June 1, 2016)

Please ensure you have downloaded and installed the virtual machine before you arrive on Day 1. Also make sure that your network connection is working.

  1. Download and install Virtual Box: the VM manager may be downloaded from https://www.virtualbox.org/wiki/Downloads Select the version appropriate to your host OS.
  2. Copy the VM to your machine: the VM itself is here: save the 3Gb file to your machine. It is a 64-bit version and will only work on 64-bit host machines, a 32-bit version is also available here. You will need at least 4Gb of RAM of which the VM will take 2Gb.
  3. Launch Virtual Box, then choose File->Import Appliance and point to the VM copy you’ve just made, leave all the default settings. This will take a while to load.
  4. Click on the green arrow ‘Start’.
  5. The virtual machine will launch in full-screen mode, use “right_ctrl+F” to make it a window.
  6. If the screen locks, the password is ‘nerc’.
  7. Generally you will want to ‘save the machine state’ when you exit the VM.

Items included in the VM are:

NetBeans 7.0.1
Python with netcdf, matplotlib, numpy & scipy modules
IDLE 2.7.6
Spyder
ncview & ncdump

If you wish to install these items separately onto your machine without using the VM, then please be aware that we may not be able to fix problems you encounter. If using Windows (possibly Mac too) you will also need cygwin so that you are able to run Unix commands and shell scripts.

Data  (Please note links will be live from June 1, 2016)

We will be making use of various data files during the exercises. If you are able to download them in advance, that will speed things up. Download the list of data files here using ‘SaveLinkAs’ from the right-click menu, this will usually save the file to your ‘Downloads’ folder. From the command line, navigate to the folder where you have saved the file and run:

wget -i data_file_list.txt

This will get all the files in the list and save them to the same folder. Note where this is so you can move the files to a more suitable location during the exercises.

Project work

Our final day will consist primarily of a project to put all the learning points into practice. We will provide data and a typical problem scenario. If you wish to bring your own data and/or amend the scenario to better reflect your particular situation, then we will support you as much as possible.

Reading material

If you are not familiar with Python then we suggest doing some background reading and the following may be of use:

A Byte of Python, available online here and in section 1.6 there are links to download it.

TutorialsPoint is a good starting point too.

If you would prefer to use an alternative language to do the course exercises, you are at liberty to do so but we may not be able to support you fully and some features may not be available to you.

Course location

The course will be held in Room 1L14 in the University of Reading Agriculture Building (map building 59). If you do not hold a current Parking Permit for Whiteknights Campus please email Vicky Lucas.

We will start at 9.30am on Monday, July 11, 2016.