University of Melbourne

Old Arts, Second Floor, Collaborative Learning Space 2 (room 257)
Nov 25 & 27/Dec 2 & 4, 2013
3:00 pm - 6:00 pm

Instructors: Damien Irving

What: Software Carpentry is a volunteer organization whose members teach basic software skills to researchers in science, engineering, and medicine. Researchers 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 run bootcamps at dozens of sites around the world, ranging from ultra-prestigious institutions like Harvard and Oxford to far-flung universities in places like Beirut, Cape Town and now Melbourne!

Who: The bootcamp is aimed at postgraduate students, post-docs and other research staff at the University of Melbourne 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.

Also, please download these four data files before arriving at the bootcamp:

  1. inflammation-01.csv
  2. inflammation-02.csv
  3. inflammation-03.csv
  4. inflammation-04.csv

And also these IPython notebooks:

  1. 01-numpy.ipynb
  2. 02-func.ipynb
  3. 03-loop.ipynb
  4. 04-cond.ipynb
  5. 05-defensive.ipynb
  6. 06-cmdline.ipynb

Registration: Participants can register at our Eventbrite page. We are hoping to have several discipline-specific tables of 4-6 people, so instead of just signing up as an individual, we encourage you to get together a small group of people from your department.

Contact: Please mail karenl@unimelb.edu.au for more information.


Setup

Please follow the installation instructions for your operating system (i.e. Windows, Mac OS X or Linux). It is expected that all 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 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).

Topics

In order to accommodate as many people as possible, we are going to spread the content of the typical two-day bootcamp over four afternoons. The following is an outline of what will be taught:

Session 1: The basics
Monday 25 November, 3-6pm
The key to being a proficient programmer is solid fundamentals. In this session you'll learn the basics of the unix shell, which is the cornerstone of software carpentry.

Session 2: Programming like a programmer
Wednesday 27 November, 3-6pm
Monday 2 December, 3-6pm
Have you ever wondered how professional programmers write code? In this session you'll learn the common tricks of the trade, via an introduction to the Python programming language. From defensive programming, error handling and debugging to unit testing and test-driven development, the skills learned in this session are transferrable to any language.

Session 3: Version control
Wednesday 4 December, 3-5pm
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.

Session 4: Ongoing support
Wednesday 4 December, 5-6pm
Programming can be a lonely pastime. It's often hard to get feedback and assistance when you run into trouble. To overcome this problem, we want to establish a postgraduate programming community here at the University of Melbourne. At this session you'll get to have input into how this community is run and what activities it will undertake. To make the session a little more social, it will be held at Tsubu (i.e. we'll all walk down together after the version control session). Drinks are on us!


Reference Guides