Course Syllabus
MIT 8.16/8.316: Data Science in Physics
Syllabus
A new course for Spring 2023 that will be taught jointly at both the graduate and junior/senior undergraduate level
Prepared by Phil Harris
Units: 3-0-9
Overview
To provide students with this necessary skill set, we propose a new class: 8.16/8.316, “Data Science in Physics.” This course aims to present modern computational methods by providing realistic, contemporary examples of how these computational methods apply to physics research. The class is designed around research “modules,” where students work on each module to gain experience with a specific scientific challenge. At the start, we envision modules that each aim to build a particular skill set and provide a real-world example of how to apply statistical tools to physics. Current modules, each with a specific focus, include:
- Analyzing LIGO open data - Fitting data, parameter extraction
- Measuring Electroweak boson to quark decays - Hypothesis testing, Machine Learning
- Lattice QCD/Ising model - Numerical Physics simulation (New Project)
- Understanding the Cosmic Microwave Background - Large-scale Data processing
This class builds on the existing 8.S50 course taught during the independent activities period in January 2021 and 2022. The 8.S50 class consisted of 3 projects, 18 lectures, and 12 recitations. All projects, lectures, and recitations were done using the python environment with Jupyter as a wrapper. The combination of Jupyter and Python allowed the lectures and recitations to be interactive. Experience in Python is helpful but not required.
Course Format
The class format will build on these existing materials. Class lectures will be lecture based but split into core concepts. Class time will be allocated to recitation style discussion where we review the lectures, go through key “concept” questions, and then perform the recitation exercises. All resources will be available on github.
The format will be
- 3 hours of in-person class per week: consisting of two 90-min recitation-style lectures
- Full class materials are available online
- One TA to help ensure the students can follow the lectures. They will be responsible for assisting students with the in-person projects during class. Additionally, they will be responsible for ensuring the projects are easily accessible, and students can run the introductory part of each project.
- Additional project-students will help with the various class projects.
The lecture material and projects are “modular,” with each set of lectures and exercises corresponding to preparatory work for the project that follows. While the later projects will involve more advanced topics, it is envisioned that the order of the projects and corresponding lectures could be adjusted. However, there is a rough attempt towards building on previous concepts.
We will spend roughly 3 weeks on each project, yielding a total of 3 projects over a 10 week period. Following these 3 projects, each student is responsible for picking a laboratory project based on one of the existing projects and give a final presentation. A 4th project will also be available for the final project as well.
Each project will be due approximately at the end of the 3rd week (see due dates below). For each project, you are expected to submit a Jupyter notebook discussing their final analysis. The notebooks follow the standard paper with code paradigm. This means that a description of the code should be present before it is run. The level should be at a level that one can reproduce the code. The detail is expected to be at a level similar to the class notes. Some examples are present here :
https://github.com/jmduarte/iaifi-summer-school/blob/main/book/2.1_getting_started.ipynb
https://github.com/FAIR4HEP/hbb_interaction_network/tree/main/notebooks
(full details are discussed https://arxiv.org/abs/2108.02214)
Moreover, an example for something similar to the project can be found in the submission for project1 : https://canvas.mit.edu/courses/20251/assignments/249074
Submissions will be in PDF for the convenience of grading and presentation. We very strongly recommend that you use a github to work on your notebooks. You can also conviently use google collab to test and run your devices following the instructions here :
If you have notebooks in a repo, like this https://github.com/mitx-8s50/nb_LEARNER, then you can open a notebook from this repo in colab using https://colab.research.google.com/github/mitx-8s50/nb_LEARNER/blob/main/8S50x_L01.ipynb
Course Resources
Lectures, recitations, and projects in this class will be stored in Jupyter notebooks. Extensive notes within Jupyter are provided for each notebook, along with regular challenge problems to promote active learning. The course is python-based and will rely heavily on Jupyter notebooks as an interactive instruction tool. Lectures will start to appear on the github link:
https://github.com/mit-physics-data/lectures
Problem Sets will be availble online, with jupyter links here :
https://github.com/mit-physics-data/psets
Projects will be availble online, with jupyter links here :
https://github.com/mit-physics-data/projects
Communications will be conducted via MIT Slack: https://mit-physics-data.slack.com
Brief Summary Lecture Topics (Detailed summary below)
- Poisson/Gaussian/Alternate Prior statistics
- Error propagation
- Likelihood construction
- Data analysis statistical measures
- Hypothesis testing
- Semi-parameter fitting
- Deep learning
- Monte Carlo Simulation techniques
- Markov Chain Monte Carlo
- Numerical Differential equations
Course Requirements and Grading
Grading will be done with the TA(s) and Professor reviewing each of the labs and sending comments. In addition to the professor. The final grade will be a weighted average of the TA/Professor. Unlike other laboratory classes, we will also release example solutions once the projects are performed to demonstrate how one would go about analyzing the data. The final presentation will be graded by the professor and TA(s).
For each module, two levels of data analysis will be available: a required level and an advanced level. The required level serves as the base for both projects, and the advanced level is particularly open-ended with suggestions to pursue; it is not required to complete the course. We will clearly distinguish between what is required for each base project and what goes beyond the baseline requirement. In both cases, the requirements for the labs will be the completion of the designated base for each lab. However, we will encourage everybody to try to go further. The harder-level projects can also be used as a starting point for their final project.
Course Requirements
- Recommended Prerequisite: 8.04/(6.0001+2 or some python)
- Would qualify as a Physics S.B. degree requirement for any course above 8.02
- For undergraduates, most likely a senior or junior elective, but it is complementary to the junior laboratory (8.13)
- Can contribute to requirements for the Data Science focus for the undergraduate flex major and the Interdisciplinary Ph.D. in Physics, Statistics, and Data Science
- Being considered as a graduate/undergraduate breadth, the success of the class will determine this
Grading: A-F
- Projects 1-4: 20% each
- Project 1 : 2 Psets (5% each)+ 10% for Project
- Project 2 : 6% Pset + 14 % Project
- Project 3 : 6% Pset + 14 % Project
- Project 4 : 6% Pset + 14 % Project
- Final Presentation: 20%
Schedule
Week 1: Basic Statistics, Project #1 Intro
Day 1: Class overview, Jupyter setup, making plots, Expectations, Variance
Day 2: Binomial, Poisson, Gaussian Distributions, Error propagation
Week 2: Distribution and Fitting PSet1 due This week
Day 1: LIGO Project
Day 2: Gradient Descent, Minimization, Introduction to Fitting
Week 3: Uncertainty and interpreting uncertainty
Day 1: Extracting Uncertainty from a fit and goodness of fit
Day 2: Normal distributions, confidence intervals, z-scores, non-gaussian distributions
Week 4: Project LHC Jet Physics Open Data analysis PSet2 due This week
Day 1: Introduction to jets and collider physics
Day 2: Correlations/Covariance
Project #1 Due: Fitting LIGO Gravitational Wave Data in the middle of Week 4
Week 5: Bayesian approaches
Day 1: Bayesian vs. Frequentist, Convolutions
Day 2: Hypothesis testing Intro
Week 6: Hypothesis Testing PSet3 due This week
Day 1: Hypothesis testing II, f-tests/gaussian processes + semi-parametric methods
Day 2: Deep Learning Introduction
Week 7: Deep Learning
Day 1: Deep Learning Regression
Day 2: Advanced Deep Learning Topics
Project #2 Due: Measuring the SinθW with Jets Due in the middle of Week 7
Spring Break
Week 8: Intro to Simulation
Day 1: Introduction to Lattice QCD
Day 2: Finite Numerical Differential Equations and Integration Methods
Week 9: Numerical Simulation Strategies
Day 1: Multi-body simulation (3-body problem)
Day 2: Monte Carlo Integration Methods+Markov Chan Monte-Carlo for simulation
Week 10: Towards Lattice/Multi-body techniques Numerical Boltzam Sim pset due
Day 1: (Patriots day holiday)
Day 2: Normalizing Flows+Simulation-Based Inference + Lattice Methods
Week 11: Modern MC Methods + More
Day 1: Deep Learning based Sampling strategies and Probability Modeling
Day 2: Symbolic Learning for Differential Equations
Project #3 Due: Lattice QCD Project Due
Week 12: Intro to CMB Analyses
Day 1: Overview of CMB measurements
Day 2: Parameter Estimation with Markov Chain Monte Carlo
Week 13: Advanced parameter estimation techniques
Day 1: Quadratic estimators and power-spectrum estimation
Day 2: Final Presentations
Week 14:
Day 1: Final Presentations on this last day
Project #4 Due: Extracting CMB Parameters from simulated Cosmic Data or project of choice on previous topics
Course Summary:
| Date | Details | Due |
|---|---|---|