Who should do this course?
Many research fields can benefit from automation and programmatic techniques, ranging from the humanities and social sciences through biomedical sciences and engineering. The tools and techniques taught in this workshop will be of use to anyone who currently uses a computer for their research.
This workshop begins at the beginner level, and no former knowledge of the command line or unix, programming, version control is assumed. By the end though, participants will leave with the knowledge and skills to add programmatic power to their research workflows.
- How to automate repetitive analysis using the command line
- Programming concepts and techniques
- Basic syntax, control structures and data types in Python
- How to never lose a thing with version control
This program includes:
Unix Shell and Command Line Basics
Course outline for this unit
The Unix environment is incredibly powerful but quite daunting to the newcomer. Command line confidence unlocks powerful computing resources beyond the desktop, including virtual machines and High Performance Computing. It enables repetitive tasks to be automated. And it comes with a swag of handy tools that can be combined in powerful ways. Getting started is the hardest part, but our helpful instructors are there to demystify Unix as you get to work running programs and writing scripts on the command line.
- navigate and work with files and directories (folders).
- use a selection of essential tools.
- combine data and tools to build a processing workflow.
- automate repetitive analysis using the command line.
Programming with Python
Course outline for this unit
Python has deservedly become a popular language for scientific computing. It has all the friendly features and conveniences you’d expect of a modern programming language. And it boasts a rich set of libraries for working with data.
We teach using Jupyter notebooks, which allow program code, results, visualisations and documentation to be blended seamlessly. Perfect for sharing insights with others while producing reproducible research.
- Programming concepts and techniques.
- Basic syntax, control structures and data types in Python.
- How to import powerful libraries that support numerical analysis (NumPy) and visualisation (Matplotlib)
- Approaches to debugging, testing and defensive programming.
- How to blend code, output and documentation with Jupyter notebooks
Version Control with Git
Have you mistakenly overwritten programs or data and want to learn techniques to avoid repeating the loss? Version control systems are one of the most powerful tools available for avoiding data loss and enabling reproducible research. While the learning curve can be steep, our trainers are there to answer all your questions while you gain hands on experience in using Git, one of the most popular version control systems available.
- Keep versions of data, scripts, and other files
- Examine commit logs to find which files were changed when
- Restore earlier versions of files
- Compare changes between versions of a file
- Push your versioned files to a remote location, for backup and to facilitate collaboration