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
git SCM
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
numpy package for array computing, the basis for all scientfic work in Python
Feb 5
matplotlib
matplotlib package for 2D and 3D plotting
random numbers
numpy and matplotlib in action: simulating Brownian motion with random numbers
Feb 10
stochastic dynamics
numpy and matplotlib in 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