Modules
Setting-up and The Command Line
- Jan 13
- intro and set up
- bash, git, anaconda, Visual Studio Code
- Jan 15
- Unix shell
- file system,
bash
Tools of the (Software) Trade
- Jan 20
- version control
gitSCM
- Jan 22
- Python
- Python refresher, writing programs
- Jan 27
- modularization
- modules and object-oriented programming with classes
- Jan 29
- debugging
- finding and correcting common (and weird) errors in Python code
Fundamental Python Packages for Science
- Feb 3
- Jupyter
- The Jupyter notebook interface for documents combining text, code, and graphics.
- NumPy
numpypackage for array computing, the basis for all scientfic work in Python
- Feb 5
- matplotlib
matplotlibpackage for 2D and 3D plotting
- random numbers
numpyandmatplotlibin action: simulating Brownian motion with random numbers
- Feb 10
- stochastic dynamics
numpyandmatplotlibin action: analyzing ensembles of stochastic trajectories
Midterm Project 1
- Feb 12
- Project 1 start
- analyze the dilemma zone in front of a traffic light
- Feb 26
- Project 1 end
- submit code and report through your project repository
Fundamentals of numerical computations
- Feb 10, Feb 12
- numbers
- number representations and numpy data types revisited
Solving Ordinary Differential Equations
- Feb 17
- errors
- systematic and round-off errors, error analysis of numerical algorithms
- differentiation
- numerical differentiation
- Feb 19
- ODEs
- Introduction to solving ordinary differential equations.
- Feb 24
- Standard Form
- Formalism for solving ODEs: the standard form of ODEs.
- Feb 26, Mar 3
- Integrators
- basic algorithms (Euler, Runge-Kutta, Verlet) for numerically integrating coupled ODEs
- Mar 5
- projectile with air resistance
- trajectory of a projectile with linear air resistance
ODE applications
- March 7 – March 15
- spring break
- homework
- March 19
- projectile with air resistance
- trajectory of a projectile with linear air resistance
- baseball simulation
- simulation of a curveball throw with Baseball physics (quadratic air resistance and Magnus force due to spin)
Midterm Project 2
- March 26
- Project 2 start
- simulate a magnetic lens in a scanning electron microscope
- April 9
- Project 2 end
- submit code and report through your team repository
Root finding
- March 24 & 26
- root finding
- numerical root finding (bisection and Newton-Raphson algorithms)
Linear algebra
- March 28
- linear algebra
- solving standard linear algebra problems (matrix equations, eigenvalues) with numpy
- April 2
- final project overview
Partial Differential Equations
- April 7
- introduction to PDEs
- types of PDEs; simple algorithm to solve Laplace’s equation
Monte Carlo methods
Final Project
- April 2
- Final Project Overview
- Introduction to the Final Project: time line, proposal, pitches
- April 9
- Project pitches
- Present your project to the class and gather a team.
- May 4
- abstracts
- submit your project abstract
- May 5
- presentations & code
- submit your project presentation video
- submit your project code to your repository
- May 6 – May 8
- Q&A
- virtual Q&A with each team