Scientific Programming in Python

Code School Level Credits Semesters
PHYS4038 Physics and Astronomy 4 10 Autumn UK
Code
PHYS4038
School
Physics and Astronomy
Level
4
Credits
10
Semesters
Autumn UK

Summary

This module will cover the Python programming language and its associated ecosystem, with a focus on the elements most applicable to scientific computing. Initially we will explore some tools to help support code development and interaction with the course (Package managers, virtual environments, IDEs and Github classroom). In the first half of the course, we will then provide a strong grounding in the core scientific stack, including the essentials of the Python language, Numpy, Matplotlib, Scipy, Pandas modules. There will be a strong emphasis on learning the skillset required to learn new features of these modules for oneself through effective use of documentation and other resources. The second half of the course will focus on building bigger projects with an introduction to Object Oriented Programming, Git and Github, Testing and Debugging and the importance of good design principles. The course will be delivered in a flipped classroom workshop style. Participants will work on resources each week and then do exercises during sessions with staff to reinforce learning.

Target Students

Only available for PGT students on MSc Machine Learning in Science and MSc Quantum Information and Technology programmes

Classes

This module is based on practical workshops.

Assessment

Assessed by end of autumn semester

Educational Aims

The purpose of this module is to give students a solid grounding in the core Python programming language and the additional elements essential to scientific application. Students will also learn important principles for developing larger software projects.

Learning Outcomes

A student who completes this course successfully should:

L1 - be able to decipher an existing Python program, explain its behaviour and discuss the coder's approach;

L2 - be able to describe the characteristics of a well-written, efficient Python program;

L3 - be able to produce a program to read scientific data, perform a meaningful analysis and plot the results, in good Python style;

L4 - have a good knowledge of the Python scientific ecosystem and be able to make use of its functionality in code;

L5 - have an awareness of the wider capabilities of Python and its associated tools.

Conveners

View in Curriculum Catalogue
Last updated 07/01/2025.