A second-year course Introduction to Computational Physics expressed in the Python programing language.
(c) Copyright 2020 Falk Herwig (University of Victoria)
- Python programming I: Language elements, basic math operations
- Python programming II: Plotting, interpolation, units, examples and applications
- Linux/Unix OS, GNU, editors, git
- Numerical integration and differentiation
- Python programming III: program organization (functions, modules, classes, libraries, scripts, parameter passing)
- Numerical Analysis: Integration and differentiation with libraries
- ODE I: Skydiver problem or similar, explicit Euler-step integration, mulit-processing
- ODE II, Linear transformations and linear algebra
- Simple stats & data modeling
- Data analysis and examples
- Sympy (symbolic computing) and image processing
- Optimization (simulated annealing), audification, LIGO graviational wave signals
- Intro
- JupyterLab and notebooks
- Using a code cell like a calculator
- Variables
- Algebra and statements
- Arithmetic operators
- Difference between mathematical equality and computational statment
- How to solve an exercise?
- Data types
- Overview
- Strings and scalar variables
- Lists and arrays
- Formatted printing
- Data types II
- Type of a variable and type conversion
- Boolean
- Array review: slicing, index arrays, masks
- Intro to libraries
- Loading libraries, Python name space and the doc string
- Four different ways to do
sqrt
- Flow control
if,forloop,while,try- Avoiding loops
- Simple line plots and examples
- Convergence of geometric series
- Advanced arrays
- Array analysis
- A selection of array functions
- Higher-dimensional arrays
- Advanced plotting
- Bar plots, scatter plots
- 2D plots
- Basic I/O
- Interactive input
- Writing and reading ASCII tables
- JupyterLab
- Notebooks
- Terminal, Markdown documents and text editor
- Restarting the JupyetLab application
- Software and hardware
- Introduction to the command line
- Shell
- Basic file system commands
- Networking and compressing data
- Command line editor
- Distributed version control - Git
- Basic concepts
- The most important git commands
- Review
- Terminal FAQs
- Git FAQs
- Git - part II
- Additional useful commands, branching and merging
- How to get and stay out of trouble
- Advanced terminal and shell commands
- More file system commands
- More about the shell
- Networking
- Shell scripts
- More git
- The
sysmodule
- The Riemann sum
- Midpoint rule
- Trapezoidal rule
- Introduction to functions
- def
- lambda
- Numerical derivatives
- Difference equations
- Derivatives
- Errors: accuracy vs. precision
- Convergence
- Higher-order derivative
- Functions an modules
- Try - except
- Combine functions into a module for later use
- Python scripts
- Module as Python script - the test block
- A module directory
- Units and constants
- Miscellaneous
- Dictionaries
- Review:
- units
- dictionaries
- An example where Monte-Carlo integration wins
- Integration with libraries
- Miscellaneous
- sort, join, split, strip
- Derivatives
- Derivative of numerical data
- Non-equidistant and noisy data
- Gradient of 2D function
- Miscellaneous
map- Multi-threaded processing
- Animation, make movie with ffmpeg
- Ordinary differential equations
- Euler step
- Discretisation
- Miscellaneous
map- Multi-threaded processing
- Animation, make movie with ffmpeg
- Non-linear equations
- Relaxation method
- Binary search - bisection method
- Newton-Raphson
- Skydiver problem: Falling body with drag
- Equation of motion
- Solve ODE explicit
- Solve with library
- 3D line plots
- ODE's with mulitple coupled equations
- Lotka–Volterra equations and comparison of two solvers
- Discuss and understand the accuracy of a numerical solution, and how to use libraries properly
- Conclusions and recommendations
- Chaos: Lorenz equations
- Linear Algebra
- Basic matrix and vector operations
- Linear transformations
- Solving systems of equations
- Fitting data
- Standard normal distribution
- Moments of distribution
- Least-square fitting of arbitrary curve
- Linear correlation
- Fitting data with a model
- Fitting a Gaussian distribution to a data set
- Application: Fitting mixing results from hydrodynamic simulations
- A couple of miscellaneous items: plotting lines with colormap color, integer word length and sets
- Lorenz equations
- Recaman's sequence
- An introduction to Sympy
- More Sympy
- limits
- series expansion
- root finding
- differential equations
- Image Processing for fun and science!
- image basics
- linear image filters
- other filters (median)
- histograms and statistics
- Simulated Annealing
- Travelling salesman problem
- Audification
- The LIGO gravitational wave discovery in 2015