Skip to main content Modules
Setting-up and The Command Line
- Jan 16
- version control
git
SCM
- Jan 18
- Python
- Python refresher, writing programs
- Jan 23
- modularization
- modules and object-oriented programming with classes
- Jan 25
- debugging
- finding and correcting common (and weird) errors in Python code
Fundamental Python Packages for Science
- Jan 30
- Jupyter
- The Jupyter notebook interface for documents combining text, code, and graphics.
- NumPy
numpy
package for array computing, the basis for all scientfic work in Python
- Feb 1
- matplotlib
matplotlib
package for 2D and 3D plotting
- random numbers
numpy
and matplotlib
in action: simulating Brownian motion with random numbers
- Feb 6
- stochastic dynamics
numpy
and matplotlib
in action: analyzing ensembles of stochastic trajectories
Midterm Project 1
- Feb 8
- Project 1 start
- analyze the dilemma zone in front of a traffic light
- Feb 23
- Project 1 end
- submit code and report through your project repository
Fundamentals of numerical computations
- Feb 6
- numbers
- number representations and numpy data types revisited
- Feb 8
- errors
- systematic and round-off errors, error analysis of numerical algorithms
Solving Ordinary Differential Equations
- Feb 13
- differentiation
- numerical differentiation
- Feb 15
- ODEs
- Introduction to solving ordinary differential equations.
- Feb 20
- Standard Form
- Formalism for solving ODEs: the standard form of ODEs.
- Feb 22, Feb 27
- Integrators
- basic algorithms (Euler, Runge-Kutta, Verlet) for numerically integrating coupled ODEs
- Feb 29
- Theory of symplectic integration
- Hamilton’s equation of motion, energy conservation, and why the semi-implicit Euler algorithm conserves energy
ODE applications
Midterm Project 2
- Mar 14
- Project 2 start
- simulate a magnetic lens in a scanning electron microscope
- Mar 28
- Project 2 end
- submit code and report through your team repository
Root finding
- Mar 19
- root finding
- numerical root finding (bisection and Newton-Raphson algorithms)
Linear algebra
- Mar 21
- linear algebra
- solving standard linear algebra problems (matrix equations, eigenvalues) with numpy
- optional
- SVD
- singular value decomposition
Partial Differential Equations
- Mar 26
- introduction to PDEs
- types of PDEs; simple algorithm to solve Laplace’s equation
- April 2
- Poisson’s equation
- algorithms to solve elliptic PDEs; 2D electrostatic problems
- April 9
- Diffusion equation
- solving parabolic PDEs with time stepping; 1D heat/diffusion equation
- perspective on PDEs
- connection between diffusion equation and Laplace equation; physical interpretation of classes of PDEs
- April 11
- Crank-Nicholson algorithm
- advanced solver for parabolic PDEs
- April 16
- Wave equation 1D
- solving the wave equation for a string (a hyperbolic PDE) with time stepping
- April 18
- Wave equation 2D
- Courant condition; solving the wave equation for a membrane
Monte Carlo methods
Final Project
- March 28
- Final Project Overview
- Introduction to the Final Project: time line, proposal, pitches
- April 4
- Project pitches
- Present your project to the class and gather a team.
- April 27
- abstracts
- submit your project abstract
- April 29
- presentations
- submit your project presentation video
- code
- submit your project code to your repository
- April 30–May 3
- Q&A
- virtual Q&A with each team