27 - 31 March 2023
9:30 - 16:30 BST (UTC + 1)
Instructors: Doug Lowe
Helpers: Anja Le Blanc, Aman Goel, Aleksandra Nenadic, Emma Simpson, Scott Archer-Nicholls
This course aims to teach a core set of established, intermediate-level software development skills and best practices for working as part of a team in a research environment using Python as an example programming language. It focusses on researchers from the Natural Environment Research Council (NERC) domain as it uses the dataset from the river catchment study project but is general enough to be attended by participants without this specialism.
Where: For in person participants: Room 6.212 University Place, 176 Oxford Rd, Manchester M13 9PL (get directions with OpenStreetMap or Google Maps). Participants joining online will receive separate joining instructions via email.
When: 27 - 31 March 2023. Add to your Google Calendar.
Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed at the setup page).
Accessibility: We are committed to making this workshop accessible to everybody. The teaching room is wheelchair accessible and accessible restrooms are available.
Code of Conduct: Everyone who participates in the workshop is required to conform to the Code of Conduct. Please get in touch with the workshop contact in case of any incidents.
Contact: Please email anja.leblanc@manchester.ac.uk for more information.
You will need the following software installed and working correctly on your system to be able to follow the course.
If you are attending remotely, please make sure you also have the Zoom video conferencing tool installed.
Course material is available online.
The schedule below is approximate and subject to change.
09:30 | Introductions and Setup |
10:30 | Morning break |
11:00 | Project Introduction and Virtual Environments (1.1, 1.2) |
12:30 | Lunch break |
13:30 | Integrated Software Development Environments and Git (1.3, 1.4) |
14:30 | Afternoon break |
15:00 | Python Coding Conventions and Linters (1.5, 1.6) |
16:30 | END |
09:30 | Software Requirements (3.1) |
10:30 | Morning break |
11:00 | Managing a Collaborative Software Project (5.1) |
12:30 | Lunch break |
13:30 | Automatic Testing, and Scaling up Unit Tests (2.1, 2.2) |
14:30 | Afternoon break |
15:00 | Continuous Integration for Testing, and Diagnosing Issues (2.3, 2.4) |
16:30 | END |
09:30 | Software Architecture and Design (3.2) |
10:30 | Morning break |
11:00 | Programming Paradigms, and Functional Programming (3.3, 3.4) |
12:30 | Lunch break |
13:30 | Object Orientated Programming (3.5) |
14:30 | Afternoon break |
15:00 | Software Architecture Revisited (3.6) |
15:30 | Course Project Planning |
16:30 | END |
09:30 | Developing Software in a Team (4.1) |
10:30 | Morning break |
11:00 | Code Review (4.1) |
12:30 | Lunch break |
13:30 | Preparing Software for reuse and release (4.2) |
14:30 | Afternoon break |
15:00 | Packaging Code (4.3) |
15:30 | Personal Project Time |
16:30 | END |
09:30 | Assessing Software Suitability (5.2) |
10:30 | Morning break |
11:00 | Feedback and Software Improvement (5.3) |
12:30 | Lunch break |
13:30 | Personal Project Time |
14:30 | Afternoon break |
15:00 | Personal Project Time |
16:30 | END |