University of Bath

Introduction to Unix and programming

This course aims to teach the skills and knowledge necessary to provide a solid foundation for the development of research software

About the course

The aim of this course is to formalise skills and knowledge while providing a solid foundation for the development of research software. Attendees are encouraged to commit time between sessions to explore using the methods learned in their own research and feedback to the group at the next session.

This course is part of a series of training that is being developed for researchers at Bath. Please get in touch with any feedback to either the Doctoral College or to the Research Software Engineering Group.

This course, run over seven weeks will follow material based on Software Carpentry lessons.

Structure of the course

Week 1: Introduction to Unix/Linux

7 November || 13:15-16:05
Book a place

Introduction to the Unix shell, the University’s linux service. By the end of the session attendees will understand how to navigate and use simple commands to open, print and locate files and find out how to use programs.

Week 2: Version control with Git

14 November || 13:15 - 16:05
Book a place

Version control is essential for effective software development, collaborations on articles or proposals and is increasingly used to manage data and analysis workflows. This session will introduce git, show how to set up and update a repository as well as setup online repositories and collaborations.

Week 3: Introduction to Python

21 November || 13:15 - 16:05
Book a place

Python is an excellent language for learning to programme. It is supported by powerful standardised libraries that allow developers to quickly write functional code. In this session attendees will learn about variables, using numpy to open files and manage data as well as use conditional statement and loops.

Week 4: Introduction to testing

28 November || 13:15 - 16:05
Book a place

Testing is essential to demonstrate that programs work as expected, when they are first created and as functionality is added or implementation changed. This session will introduce the intuitive approach taken in Python. By the end of the session attendees will learn that testing need not be a costly overhead but it is rather a methodology that helps to improve the quality and sustainability of software.

Week 5: Now code: 1

5 December ||13:15 - 16:05
Book a place

This session will build upon what you have learnt in previously, as you attempt a series of exercises. These challenges will provide an opportunity to develop your understanding of how to approach coding, while putting the tools and methods covered in previous workshops into practice. By the end of the workshop you should feel confident employing good practices to develop the software you need for your research.

Week 6: Working with data and plotting (in Python)

12 December ||13:15 - 16:05
Book a place

In this session you will learn about some of the extensive libraries for managing, analysing and plotting data in Python. We will introduce how to efficiently use numpy, pandas and matplotlib, to produce publication quality figures and tables for your papers, talks and reports.

Week 7: Now Code: 2

19 December ||13:15 - 16:05
Book a place

The second 'Now Code' session will allow further opportunity to complete exercises from the first session. Additionally there will be new exercises building on the 'Working with Data and Plotting' workshop to help you to generalise scripts allowing them to be reused and included within reproducible workflows.