Key Information
Tutors: Research Software Engineers from the Research Computing Service
Course Level: Level 2
Course Credit: 1 credit
Prerequisites: Basic knowledge of Git (tracking changes, publishing to GitHub, keeping your local and online repositories in sync). For example, 'Introduction to using Git and GitHub for software development' Graduate School’s course. Some knowledge of programming.
Course Duration: 2 x 2-hour sessions
Format: Live online or live face to face
Course Resources
This course introduces advanced concepts and functionality of the version control system Git and the code repository GitHub, focusing on ensuring an effective and healthy collaborative process. When collaborating with others, measures and tooling need to be in place to manage the process in an effective way keeping track of the sequence of changes, reviewing, and approving proposed changes, and, if needed, undoing them.
Both Git and GitHub provide powerful features that facilitate this process such as: branching, pull requests, forks, rewriting history with rebase, merge, reset, and releasing new versions of the software with tags to identify milestones in the development process.
Moreover, some tasks ensuring that all contributions follow agreed standards can be automated via a continuous integration system. This course will introduce the basics of GitHub Actions, how to create workflows and run them automatically, when new changes are identified.
Material will be delivered as a lecture with tasks, including a collaboration project on which the attendees will work together in teams. For face-to-face sessions, workstations will be available so bringing a laptop is not required however attendees are encouraged to do so if they wish to apply the materials from this course in an environment relevant to their work.
Syllabus:
- Intermediate Git concepts, commands, and terminology (eg. branches, rebase, merge and stash).
- Using GitHub’s Pull Requests to manage contributions from collaborators
- Using GitHub’s Forks to contribute to other people’s code
- Using continuous integration to make sure every collaborator's contribution meets an agreed standard
- Creating releases and adding tags to communicate effectively to users/collaborators what has changed between versions of the code.
Learning Outcomes:
After completing this workshop, you will be better able to:
- Use advance Git commands to manage the parallel development of multiple features
- Collaborate effectively with others on a code base
- Apply continuous integration to automate tasks
- Understand how to access support for research computing via the Research Computing Service at Imperial College
Dates & Booking Information
- Tuesday 19 November 2024 (Part 1) & Wednesday 20 November 2024 (Part 2), 10:00-12:00, Microsoft Teams
- Thursday 30 January 2025 (Part 1) & Friday 31 January 2025 (Part 2), 10:00-12:00, South Kensington (In-Person Teaching)
- Tuesday 11 March 2025 (Part 1) & Wednesday 12 March 2025 (Part 2), 10:00-12:00, Microsoft Teams
- Wednesday 23 April 2025 (Part 1) & Thursday 24 April 2025 (Part 2), 10:00-12:00, South Kensington (In-Person Teaching)
- Tuesday 10 June 2025 (Part 1) & Wednesday 11 June 2025 (Part 2), 10:00-12:00, Microsoft Teams
To book your place, please follow the booking process advertised on the main programme page