Skip to content

Lectures

# Date Topic Theme Lecturer Recording
1 Thu 8 Oct Course environment Foundations Boris Bolliet
2 Fri 9 Oct Numbers in memory Foundations Boris Bolliet
3 Tue 13 Oct Computer systems and the command line Foundations Boris Bolliet
4 Thu 15 Oct Reproducible Python environments Foundations Boris Bolliet
5 Fri 16 Oct Version control with Git Foundations Boris Bolliet
6 Tue 20 Oct Algorithms: easy versus hard Complexity Alessandro Favero
7 Thu 22 Oct Divide and conquer Complexity Alessandro Favero
8 Fri 23 Oct Dynamic programming Complexity Alessandro Favero
9 Tue 27 Oct The Python execution model: names, objects, scope and closures Python Boris Bolliet
10 Thu 29 Oct Higher-order functions and decorators Python Boris Bolliet
11 Fri 30 Oct Classes and object-oriented design for simulation code Python Boris Bolliet
12 Tue 3 Nov From scripts to an installable package Packages and quality Boris Bolliet
13 Thu 5 Nov Graphs and greedy algorithms Complexity Alessandro Favero
14 Fri 6 Nov Complexity V Complexity Alessandro Favero
15 Tue 10 Nov Testing, documentation and continuous integration Packages and quality Boris Bolliet
16 Thu 12 Nov Complexity VI Complexity Alessandro Favero
17 Fri 13 Nov Array programming: Turing patterns Scientific computing Boris Bolliet
18 Tue 17 Nov Large matrices: the randomised SVD Scientific computing Boris Bolliet
19 Thu 19 Nov Debugging and profiling scientific code Scientific computing Boris Bolliet
20 Fri 20 Nov Research software as a web service Software services Boris Bolliet
21 Tue 24 Nov Distribution and deployment: wheels and containers Software services Boris Bolliet
22 Thu 26 Nov Time series and spectral methods Scientific computing Boris Bolliet
23 Fri 27 Nov Differentiable and compiled Python with JAX Accelerated computing Boris Bolliet
24 Tue 1 Dec Cloud computing and accelerators Accelerated computing Boris Bolliet