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.
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.
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.
Bash is a commonly-used shell. Using a shell gives you more power to do more tasks more quickly with your computer.
Install Git Bash following these instructions. This gives you Git as well as 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.
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.
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.
Notepad++ is a popular free code editor for Windows.
We recommend Text Wrangler or Sublime Text.
Kate is one option for Linux users.
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.
Install Git Bash following the instructions here. This gives you Bash as well as Git.
Download the latest stable release from git-scm.com and follow the instructions.
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 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.
Use all of the defaults for installation except before pressing Finish make sure to check Make Anaconda the default Python.
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:
bash ~/Downloads/Anaconda-and then press tab. The name of the file you just downloaded should appear.
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).
Anaconda can be installed from the command line as follows:
bash ~/Downloads/Anaconda-and then press tab. The name of the file you just downloaded should appear.
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).