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
- 65% Coursework 1: Project 1: Code-development project
- 35% Coursework 2: In-class test
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
- Dr Michael Smith