Introduction to Software Development with Python - online

Date:

20/10/2025 - 23/10/2025

Organised by:

University of Southampton

Presenter:

Dr Stephen Pooley, Dr Sam Mangham, Dr Edward Parkinson and Dr Mehtap Ozbey Arabaci (presenters subject to change based on availability)

Level:

Entry (no or almost no prior knowledge)

Contact:

Penny White
NCRM Centre Manager
p.c.white@southampton.ac.uk

video conference logo

Venue: Online

Description:

This two day introductory short course to software development with Python is spread across four consecutive mornings and covers the following:

Automating Tasks with the Unix Shell - 20th October  (half day - morning)

Learn the basic concepts of using a text-based interface with a computer. Use the shell to run basic productivity commands and then chain these commands to perform more complicated actions. Use loops to automate time-consuming tasks such as processing or moving large numbers of individual data files. Use the powerful search features to find text in files.

Version Control with Git - 21st October  (half day - morning)

Track changes to files made by yourself to be able to more effectively recover from mistakes. Track changes made by a team to be able to work more effectively in collaboration.

Building Programs with Python - 22nd and 23rd October (2 x half days - mornings)

Learn the basics of the Python programming language. Learn how to document and add comments to Python code to make it sustainable and user-friendly. Use Python libraries to access the massive amount of tools available from the Python community. Learn the basics of making graphs using MatPlotLib.

 

Learning Outcomes:

Automating Tasks with the Unix Shell

  • Explain what the shell is and how it relates to graphical interfaces.
  • Explain when and why command-line interfaces should be used instead of graphical interfaces.
  • Explain the similarities and differences between a file and a directory.
  • Translate an absolute path into a relative path and vice versa.
  • Construct absolute and relative paths that identify specific files and directories.
  • Use options and arguments to change the behaviour of a shell command.
  • Demonstrate the use of tab completion and explain its advantages.
  • Understand and describe the components of a shell command.
  • Learn how to access help documentation for shell commands.
  • Create new directories, also known as folders.
  • Create files within directories using an editor or by copying and renaming existing files.
  • Display the contents of a file using the command line.
  • Delete specified files and/or directories.
  • Capture a command’s output in a file using redirection.
  • Use redirection to have a command use a file’s contents instead of keyboard input.
  • Add commands together in a sequence using pipes, so output of one command becomes input of another.
  • Explain what usually happens if a program or pipeline isn’t given any input to process.
  • Explain Unix’s ‘small pieces, loosely joined’ philosophy.
  • Use grep to select lines from text files that match simple patterns.
  • Use find to find files and directories whose names match simple patterns.
  • Use the output of one command as the command-line argument(s) to another command.
  • Explain what is meant by ‘text’ and ‘binary’ files, and why many common tools don’t handle the latter well.
  • Write a shell script that runs a command or series of commands for a fixed set of files.
  • Run a shell script from the command line.
  • Write a shell script that operates on a set of files defined by the user on the command line.#
  • Demonstrate how to see what commands have recently been executed.
  • Create pipelines that include user-written shell scripts.
  • Write a loop that applies one or more commands separately to each file in a set of files.
  • Trace the values taken on by a loop variable during execution of the loop.
  • Explain the difference between a variable’s name and its value.

Version Control with Git

  • Understand the benefits of an automated version control system.
  • Understand the basics of how automated version control systems work.
  • Configure git the first time it is used on a computer
  • Understand the meaning of the --global configuration flag
  • Add an SSH key to a GitHub account
  • Create a repository from a template.
  • Clone and use a Git repository.
  • Describe the purpose of the .git directory.
  • Go through the modify-add-commit cycle for one or more files.
  • Describe where changes are stored at each stage in the modify-add-commit cycle.
  • Identify and use Git revision numbers.
  • Compare files with previous versions of themselves.
  • Restore old versions of files.
  • Understand git push and git pull
  • Encounter and resolve a conflict
  • Understand why you would use a branch
  • Understand git branch and git merge
  • Use a .gitignore file to ignore specific files and explain why this is useful.

Building Programs with Python

  • Run the Python interpreter
  • Understand what variables are in Python
  • Create and assign values to variables
  • Understand what lists and arrays are in Python
  • Index and slice lists and arrays
  • Write for loops to repeat simple calculations.
  • Build a basic Python script and run it.
  • Track changes to a loop variable as the loop runs.
  • Track changes to other variables as they are updated by a for loop.
  • Write as basic Python script that uses loops.
  • Write a script to open a data file and print out its contents.
  • Perform some operations on strings to extract desired data from it.
  • Understand the basics of how Python handles objects.
  • Understand good practices of how and when to write a code comment.
  • Write conditional statements including if, elif, and else branches.
  • Evaluate expressions containing and and or.
  • Use conditionals to conditionally process input data.
  • Define a function that takes parameters.
  • Return a value from a function.
  • Understand the scope of function variables and parameters.
  • Documenting a function.
  • Understand why we should divide programs into small, single-purpose functions.
  • Define and use a module that contains functions.
  • Be able to read and understand how Python reports errors through tracebacks
  • Understand how and why errors occur in Python, and common types of errors
  • Use the values of command-line arguments in a program.
  • Handle flags and files separately in a command-line program.
  • Read data from standard input in a program so that it can be used in a pipeline.
  • Explain what a library is, and what libraries are used for.
  • Load a Python library and use the things it contains.
  • Read tabular data from a file.
  • Select individual values and subsections from data.
  • Perform operations on arrays of data.
  • Display simple graphs
  • Plot data using matplotlib library
  • Analyse data from multiple files

 

Pre-requisites:

This is a novice course and there are no pre-requisites.  However, due to the nature of the content, learners may find there is a steep learning curve if they have never written code before.

Software requirements:

Detailed instructions for software setup will be issued on receipt of booking. Note that software installation can take some time and administration restrictions imposed by your institution or employer may require assistance from your IT Department. If you encounter problems with the installation procedure, ask your workshop organizers for assistance via p.c.white@southampton.ac.uk so you are ready to go as soon as the workshop begins.

Cost:

The fee per teaching day is £60 per day for students registered at university / £150 per day for staff at academic institutions, Research Councils researchers, public sector staff and staff at registered charity organisations and recognised research institutions /£350 per day for all other participants.

In the event of cancellation by the delegate a full refund of the course fee is available up to two weeks prior to the course. NO refunds are available after this date.

If it is no longer possible to run a course due to circumstances beyond its control, NCRM reserves the right to cancel the course at its sole discretion at any time prior to the event. In this event every effort will be made to reschedule the course. If this is not possible or the new date is inconvenient a full refund of the course fee will be given. NCRM shall not be liable for any costs, losses or expenses that may be incurred as a result of its cancellation of a course, including but not limited to any travel or accommodation costs.

The University of Southampton’s Online Store T&Cs also continue to apply.

Website and registration:

Register for this course

Region:

South East

Keywords:

ICT and Software, Quantitative Software, Python, Technology, Version control, Git, Command line, Shell, Bash


Related publications and presentations from our eprints archive:

ICT and Software
Quantitative Software
Python
Technology

Back to the training database