Researchers 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, an international volunteer organisation known as Software Carpentry has been running bootcamps for a number of years now, teaching basic lab skills for computing like program design, version control, data management and task automation. With support from the ITS Research Services department at The University of Melbourne, the Research Bazaar project has been running and supporting Software Carpentry bootcamps around Australia since 2013. This bootcamp will be the first ever Matlab bootcamp in Australia and only the third to be hosted anywhere in the world.
Instructors: Damien Irving, Scott Kolbe, Isabell Kiral-Kornek, Bernard Meade (instructors and helpers should indicate their availability here)
Who: This bootcamp is open to any postgraduate students, post-docs and other researchers who have a basic familiarity with programming concepts like loops, conditionals, and arrays, but need help to translate this knowledge into practical tools to help them work more productively. Participation is not restricted to University of Melbourne people - we'd love to see many institutions represented.
Where and when: Old Arts building at the University of Melbourne. The first session (Mon 18 Aug; North Theatre / room 239) will be a full day (9:00am - 5:00pm), while the second (Mon 25 Aug; North Theatre / room 239) and third (Wed 27 Aug; Collaborative Learning Space 4 / room 116) sessions will be in the afternoon (1:30 - 5:00pm).
Registration: All participants are required to register at the Eventbrite page. The registration process involves a 5-minute questionnaire about your previous programming experience, so that we can tailor the teaching materials to the knowledge of the audience.
Requirements: Participants are asked to bring their laptop with some specific software packages installed and access to either the UniWireless or Eduroam wifi networks (see the setup instructions below for details). If you don't have a laptop, that's completely fine. We'll pair you up with someone who does.
Contact: Please mail d.irving@student.unimelb.edu.au for more information.
As mentioned above, we're spreading the content of the typical two-day bootcamp over three sessions (it's tough to find an appropriate room during semester!). The following is an outline of what will be taught. During the bootcamp, additional notes on the teaching materials will be available at the bootcamp Etherpad.
Week 1: Programming basics
Monday 18 August; North Theatre (room 239), Old Arts; 9:00am-5:00pm
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 programming
with Matlab. Functions, defensive programming, error handling, debugging and
unit testing are just some of the topics covered in this session.
Week 2: Managing your code and data
Monday 25 August; North Theatre (room 239), Old Arts; 1:30-5:00pm
Wednesday 27 August; Collaborative Learning Space 4 (room 116), Old Arts; 1:30-5:00pm
Now that you've got a handle on the basics of programming, you're going to want
to manage your code and data effectively. This session starts with
an introudction to the unix shell, which is the fundamental tool
for managing such tasks. You'll then learn how to save yourself time and
heartache by using version control to backup code and high
performance computing to speed it up.
Prior to the bootcamp, University of Melbourne staff/students should ensure that their laptop can connect to UniWireless. Instructions on how to do this and where to get assistance can be found here. Attendees from other Australian universities should find out (from the IT website of their home institution) how to connect to the Eduroam wireless network.
Besides a working wifi connection, you will also need working copies of the software described below. Please make sure to install everything before the start of the bootcamp.
Bash is a commonly-used shell. Using a shell gives you more power to do more tasks more quickly with your computer.
Install Git for Windows by downloading and running the installer. This will provide you with both Git and Bash in the Git Bash program.
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 (e.g. for executing bash commands), it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words. The default text editor on Mac OS X and Linux is usually set to Vim, which is not famous for being intuitive. If you accidentally find yourself stuck in it, try typing the escape key, followed by ':q!' (colon, lower-case 'q', exclamation mark), then hitting Return to return to the shell.
Notepad++ is a popular free code editor for Windows. Be aware that you must add its installation directory to your system path in order to launch it by typing "notepad" at the command line (or have other tools like Git launch it for you). Please ask your instructor to help you do this.
We recommend
Text Wrangler or
Sublime Text.
In a pinch, you can use nano
, which should be pre-installed.
Kate is one option for Linux users.
In a pinch, you can use nano
, which should be pre-installed.
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 github.com.
See instructions for the bash shell above.
Install Git for Mac by download and running the installer.
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
).
Matlab is a very popular data analysis environment. It's a commercial product, however most universities provide free licences to their staff and students. University of Melbourne people can find instructions on how to install Matlab on their personal laptop here. Participants from other institutions should ask their IT department for assistance.
The instructors at the bootcamp will be using latest version of Matlab (2014a). Since each new version has a slightly different look and feel (not to mention new functionality that isn't available in previous versions), it's important that participants also install the latest version.
During the installation process, you'll be asked whether you'd like to install any additional toolboxes (e.g. statistics, curve fitting, aerospace... there are many). The only specialised toolbox required to complete the bootcamp is the parallel computing toolbox, however if there's other toolboxes that look relevant to your research you may wish to install them for future use. Note that it's not a good idea to install all the available toolboxes, as this makes the installation process take much longer (i.e. don't install a toolbox unless you are very likely to use it - you can always install additional toolboxes later on).