Introduction to Shell, Python, Version Control and Testing: Agenda
Room 2207 and Room 2209, Building 85, Highfield Campus
The following agenda outlines what will be taught on the course. Additional notes on the teaching materials will be made available shortly after the course.
The software prerequisites for the lessons can be found here. The course training materials (which you can revisit and follow at your leisure) are linked to from the topics below.
Day 1: December 15
09:00 - 09:30 | Arrival, Welcome and Setup
Steve's introduction slides (Room 2207) Simon's introduction slides (Room 2209) |
09:30 - 10:00 | Introduction |
10:00 - 10:45 | Automating tasks with the Unix shell The Unix shell is a power tool that allows you to do complex things with just few keystrokes by helping you in combining existing programs in new ways and automate repetitive tasks. This session guides you through the basics of file system and the shell and will start you on the path towards using powerful tools and computing resources. The following topics will be covered:
|
10:45 - 11:15 | Break |
11:15 - 12:00 | Shell: continued |
12:00 - 13:00 | Break (Lunch not provided) |
13:00 - 14:15 | Python basics: Building Programs with Python In this session, you'll learn good programming practices with an introduction to the fundamentals of Python. The following topics will be covered:
|
14:15 - 14:45 | Break |
14:45 - 16:00 | Python Basics: continued |
16:00 - 16:30 | Wrap-up of Day 1 |
Day 2: December 16
09:30 - 10:30 | Version control with Git This session will teach you how to track and manage changes within your code, how to collaborate with other developers through a shared code repository, and generally improve the reproducibility of your research. The following topics will be covered:
|
10:30 - 11:00 | Break |
11:00 - 12:00 | Git: continued |
12:00 - 13:00 | Break (Lunch not provided) |
13:00 - 14:00 | Writing robust code and unit testing with Python Does the code developed by you work the way it should do? Can you (or others) verify these assertions for themselves? And perhaps most importantly, to what extent are you confident of the accuracy of results that appear in publications? This session will teach you techniques of developing robust code and good unit tests to improve the predictability of a change, make development more productive and produce code that works as expected and produces desired results. The following topics will be covered:
|
14:00 - 14:30 | Break |
14:30 - 15:30 | Unit testing: continued |
15:30 - 16:00 | Wrap-up and Feedback |