AMOS conference

Institute for Marine and Antarctic Studies, Castray Esplanade, Battery Point
Feb 10-11, 2014
9:00 am - 4:30 pm

Instructors: Damien Irving

What: The mission of the Software Carpentry project is to help scientists be more productive by teaching them basic computing skills. Scientists often spend much of their time wrestling with software, but most are self-taught programmers. As a result, they spend hours doing things that should take minutes, reinvent a lot of wheels, and still don't know if their results are reliable. To tackle this problem, Software Carpentry runs two-day bootcamps at dozens of sites around the world. For example, the National Center for Atmospheric Research, MIT, and Woods Hole Oceanographic Institute all hosted bootcamps in 2013. To coincide with the Australian Meteorological and Oceanographic Society (AMOS) national conference, AMOS and the ARC Centre of Excellence for Climate System Science (CoECSS) are proud to be teaming up to bring the first ever bootcamp to Hobart.

Who: The Hobart bootcamp is aimed at postgraduate students (including honours) and other research scientists working in the AMOS sciences (i.e. meteorology, climatoloogy, oceanography, glaciology) who are familiar with basic programming concepts like loops, conditionals, arrays, and functions, but need help to translate this knowledge into practical tools to help them work more productively.

Requirements: Participants are asked to bring their laptop with some specific software packages installed (the Bash Shell, a text editor, Git, and Python/Anaconda; set Setup instructions below). If you don't have a laptop, that's completely fine. We'll pair you up with someone who does.

Participants are also asked to fill out a short questionnaire about their previous programming experience. The responses will be used to tailor the teaching material to the knowledge base of the audience.

Registration: Participants can register at the AMOS conference website at the same time as registering for the conference itself ($120.00 for full fee and $90.00 for students). At the registration site it is possible to register for the bootcamp alone (i.e. and not the conference as well), however just note that the bootcamp is only open to people working in the AMOS sciences. Registrations for the bootcamp will close on 31 December 2013 or when the venue capacity (50 people) has been reached, whichever comes first. Note that it is not anticipated that people who attended the AMOS/CoECSS bootcamp at the University of Melbourne in February 2013 will also attend this one, as the teaching content will be very similar.

Contact: Please mail d.irving@student.unimelb.edu.au for more information.


Topics

The following is an outline of what will be covered at the bootcamp. For a detailed schedule of the timing of each session (i.e. what time morning tea and lunch will be, etc) see the Etherpad that has been setup for communications during the bootcamp.

Pre-bootcamp homework: Shell basics
Most bootcamps start with an introduction to the shell, however the survey responses indicate that many of the Hobart attendees already understand the basics. As such, all participants should read over the summary of the shell teaching material prior to the bootcamp. If the contents of any of the six sections of that summary don't look familiar, take a few minutes to read the corresponding lesson (indicated in brackets) and bring yourself up to speed, as the shell lessons won't be covered at the Hobart bootcamp.

Monday (Feb 10) morning: Python basics
The key to being a proficient programmer is solid fundamentals. In this session you'll learn the basics of the Python programming language, including how to import libraries/modules, perform simple array operations, create basic plots, and define proper functions.

Monday (Feb 10) afternoon: Programming like a programmer
Have you ever wondered how professional programmers write code? In this session you'll learn the common tricks of the trade, from defensive programming, error handling and debugging, to unit testing and the development of command line programs.

Tuesday (Feb 11) morning: Version control
Do you work in a small research team that shares code? Do you struggle to keep track of multiple versions of the same code? Would you like an easier way to backup your work? This session will teach you everything you need to know about git, a version control system that can solve all these problems and more.

Tuesday (Feb 11) afternoon: Data management & number crunching
Observational networks and numerical models are continually improving their temporal and spatial resolution, which means AMOS scientists are forever dealing with more and more data. This session will cover the core metadata and data provenance principles that should be adhered to in all data intensive research, in addition to an introduction to fundamental numerical programming concepts like matrix programming and floating point arithmetic. A guest presenter from the IMOS eMarine Information Infrastructure will also drop by to talk about how they manage their data, and how you can use your new skills in the shell, Python and version control to access it.


Setup

Please follow the installation instructions for your operating system (i.e. Windows, Mac OS X or Linux). It is expected that participants will have successfully installed all the required packages prior to arriving at the bootcamp. If you are having trouble with any of the installations, please contact us at the email address listed above.

The Bash Shell

Bash is a commonly-used shell. Using a shell gives you more power to do more tasks more quickly with your computer.

Windows / Git Bash

Install Git Bash following these instructions. This gives you Git as well as Bash.

Mac OS X / Bash

The default shell in all versions of Mac OS X is bash, so no need to install anything. You access bash from the Terminal (found in /Applications/Utilities). You may want to keep Terminal in your dock for this workshop.

Linux / Bash

The default shell is usually bash, but if your machine is set up differently you can run it by opening a terminal and typing bash. There is no need to install anything.

Editor

When you're writing code, it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words.

For the bootcamp you are free to use whichever editor you like (there are lots out there). If you need some help choosing one, we've made some suggestions below.

Windows / Editor

Notepad++ is a popular free code editor for Windows.

Mac OS X / Editor

We recommend Text Wrangler or Sublime Text.

Linux / Editor

Kate is one option for Linux users.

Git

Git is a state-of-the-art version control system. It lets you track who made changes to what when and has options for easily updating a shared or public version of your code on an external hosting site like github.com.

Windows / Git Bash

Install Git Bash following the instructions here. This gives you Bash as well as Git.

Mac OS X / Git

Download the latest stable release from git-scm.com and follow the instructions.

Linux / Git

If Git is not already available on your machine you can try to install it via your distro's package manager (e.g. apt-get).

Python

Python is becoming more and more popular in scientific computing, and it's a great language for teaching general programming concepts due to its easy-to-read syntax. We will be using Python version 2.7.

Installing all the scientific packages for Python individually can be a bit difficult, so we recommend using an all-in-one installer called Anaconda. Once you've downloaded the installer that best matches your operating system, use the notes below to assist with completing the installation.

Windows / Anaconda

Use all of the defaults for installation except before pressing Finish make sure to check Make Anaconda the default Python.

Mac OS X / Anaconda

You may be able to simply follow the on-screen installation prompts given by the package installer (as shown here). If so, just note that you do want the package to automatically modify your bash profile to add anaconda to your PATH.

If the package installer doesn't work or isn't available, you can install Anaconda from the command line as follows:

  1. Open a terminal window.
  2. Type
    bash ~/Downloads/Anaconda-
    and then press tab. The name of the file you just downloaded should appear.
  3. Press enter. You will follow the text-only prompts. When there is a colon at the bottom of the screen press the down arrow to move down through the text. Type yes and press enter to approve the license. Press enter to approve the default location for the files (or enter an alternative location). Type yes and press enter to prepend Anaconda to your PATH (this makes the Anaconda distribution the default Python).

Linux / Anaconda

Anaconda can be installed from the command line as follows:

  1. Open a terminal window..
  2. Type
    bash ~/Downloads/Anaconda-
    and then press tab. The name of the file you just downloaded should appear.
  3. Press enter. You will follow the text-only prompts. When there is a colon at the bottom of the screen press the down arrow to move down through the text. Type yes and press enter to approve the license. Press enter to approve the default location for the files (or enter an alternative location). Type yes and press enter to prepend Anaconda to your PATH (this makes the Anaconda distribution the default Python).

Reference Guides