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:
And also these IPython notebooks:
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.
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.
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).
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!