SC101: Software Carpentry (Python)

Seeking a friendly introduction to programming or the Unix command line? Already writing scripts but want to fill in the blanks in your knowledge of programming? New to Python and would like to get a sense of its capabilities? Have you mistakenly overwritten programs or data and want to learn techniques to avoid doing it again?

Join us for this live coding workshop where we write programs that produce results, using the researcher-focused training modules from the highly regarded Software Carpentry Foundation.

Every attendee is given access to their own dedicated Linux virtual machine for the duration of the workshop, with all required software and data fully loaded and ready to run.

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.

Learning Outcomes

  • 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.

Learning outcomes

  • 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.

Learning outcomes

  • 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

Course outline for this unit

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.

Learning outcomes

  • 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

Upcoming Courses

None available.
Back to courses
Your browser is not supported. Please upgrade your browser.