Computational Methods (B22, Term 1)
This course aims to provide students from non-computational backgrounds with the basic knowledge and practical skills for computational methods required today in almost all fields of science.
Python is used as the standard programming language, but the concepts covered can be helpful also in using other computing tools for data analysis and simulation.
Course materials are provided as Jupyter Notebooks (.ipynb), with outputs in pdf for reference.
- Introduction: Python, jupyter notebook, data types, if and for, file access [pdf]
- Visualization: matplotlib [pdf]
- Vectors and matrices: numpy; inverse, eigenvalue/vector, PCA, SVD [pdf]
- Functions and classes: name space, object oriented programming [pdf]
- Iterative computation: Newton method, discrete-time dynamics [pdf]
- Ordinary differential equation: scipy; Euler method, stability, bifurcation [pdf]
- Partial differential equation: separation of variables, space constant [pdf]
- Optimization: gradient descent, Gauss-Newton method [pdf]
- Sampling methods: Monte Carlo methods, evolutionary algorithms [pdf]
- Software management: version control system, build tools [pdf]
- Python Tutorial (https://docs.python.org/)
Python Scientific Lecture Notes (http://www.scipy-lectures.org)
Good enough practices in scientific computing (https://doi.org/10.1371/journal.pcbi.1005510)