Course Syllabus

Full updated syllabus can be found at this link. The text below is from Jan 31, 2025. The google doc will be updated, depending on changes. 
Google Doc of syllabus 

MIT 8.16/8.316:  Data Science in Physics

 

Syllabus

 

The third version of course for Spring 2024 that will be taught jointly at both the graduate and junior/senior undergraduate level

Prepared by Phil Harris

Staff : Phil Harris, TA: Oscar (Cheng-Wei) Lin MITx Online Staff: Alex Shvonski

Class: M/W  2:30-4:00 (36-114)                                                                                                     

Office Hours : Thursday 3-4pm (24-502) or zoom (see canvas)                                                  

TA Office Hours : Fridays 1:30-2:30pm on zoom (see canvas) 

Assignments are due on Fridays at Midnight the week they are due unless otherwise stated 

 

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, ML
  • 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 discussion where we review the lectures, go through key “concept” questions, and then perform 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 interactive 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. 

 

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 discussion where we review the lectures, go through key “concept” questions. All resources will be available on github. 

 

The format will be

  • 3 hours of in-person class per week: consisting of two 90-min interactive 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 :

IAIFI Summer School

FAIR4HEP Graph NN

FAIR4HEP Higgs(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 strongly recommend that you use github to work on your notebooks. You can also conveniently  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 collab 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 available online, with Jupyter links here : https://github.com/mit-physics-data/projects

Communications will be conducted via Canvas:                         

$CANVAS_COURSE_REFERENCE$/discussion_topics 

 

 

Brief Summary Lecture Topics (Detailed summary below) 

  • Poisson/Gaussian/Alternate Prior statistics
  • Likelihood construction 
  • Data analysis statistical measures
  • Posterior Analysis
  • Hypothesis testing
  • Semi-parametric fitting
  • Deep learning
  • Physics Informed Neural Networks
  • Monte Carlo Simulation techniques
  • Deep Learning MC techniques
  • Markov Chain Monte Carlo
  • Simulation-Based Inference
  • Numerical Differential equations 
  • AI based Anomaly detection
  • Modern Deep Learning (Transformers, Contrasive Learning, Diffusion, …)

 

 

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: 23% each  + 8% extra for first project
  • Project 1 : 2 Psets (8% each)+ 15% for Project
  • Project 2 : 8% Pset + 15 % Project
  • Project 3 : 8% Pset + 15 % Project
  • Project 4 : 23 % Project ( 15% Project + 8% Final Presentation)

 

Schedule  (Assuming M/W lectures starting February 5th) 

Week 1: Basic Statistics, Project #1 Intro  

Feb 3 Day 1: Class overview, Jupyter setup, making plots,  Expectations, Variance                  Feb 5 Day 2: Binomial, Poisson, Gaussian Distributions, Error propagation 

Week 2: Distribution and Fitting  Pset 1 due Friday Feb 16th 

Feb 10 Day 1: LIGO Project                                                                                                                       Feb 12 Day 2: Gradient Descent, Minimization, Introduction to Fitting                                                   Feb 14 Pset 1 due : Fitting data

Week 3: Uncertainty and interpreting uncertainty  Pset 2 due Friday Feb 23rd

Feb 18 (Tuesday) Day 1: Extracting Uncertainty from a fit and goodness of fit                                  Feb 19 Day 2: Normal, confidence intervals, z-scores, non-gaussian distributions                                                    Feb 21: Pset #2 Due: Fourier analyses 

Week 4:  Project LHC Jet Physics Open Data analysis Project 1 due Friday, March 1st

Feb 24 Day 1: Correlations/Covariance, Principle Component Analysis (Zoom)                                                                                     Feb 26 Day 2: Introduction to jets and collider physics                            (Zoom)                                          Feb 28: Project #1 Due: Fitting LIGO Gravitational Wave Data 

Week 5: Bayesian approaches

March 3 Day 1: Bayesian vs. Frequentist, Convolutions                                                                    March 5 Day 2: Hypothesis testing Intro 

Week 6: Hypothesis Testing + Deep Learning Pset 3 due Friday March 15th

March 10 Day 1: Hypothesis testing II, f-tests/gaussian processes + semi-parametric methods                 March 12 Day 2: Deep Learning Introduction                                                                                                    March 14 Pset #3 Due: Measuring Higgs properties with full likelihoods

Week 7: Deep Learning Project 2 due Friday March 22nd

March 17 Day 1: Deep Learning Regression                                                                                     March 19 Day 2: Transformers, CNNs, and all that (spill over form previous classes)                                                                                                     March 21 Project 2: Measuring the SinθW with Jets 

 

Spring Break 

 

Week 8:  Intro to Simulation

March 31st Day 1: Finite Numerical Differential Equations and Integration Methods                     April 2rd     Day 2: Introduction to Lattice QCD (tbc)                                                                                     Week 9: Numerical Simulation Strategies

April 7 Day 1: Physics Informed NNs, Multi-body simulation (3-body problem)                                 April 9 Day 2: tree methods, galaxy simulations, MC Methods                                                                   

Week 10: Towards Lattice/Multi-body techniques Numerical Boltzman Sim Pset #4 Due

April 14 Day 1: (Guest Lecture: Gaia Grosso) Anomaly Detection                                                                                                      April 16 Day 2: Monte Carlo Methods                                                                                                                                        April 18 Pset #4 Due :  N-body simulations

Week 11: Simulation Based Inference

April 21 Day 1: No Class (Patriots Day Holiday)                                                                       April 23 Day 2:  Markov Chain Monte Carlo                                                                                                                                                       April 25 Project #3 Due : Lattice QCD Project Due

Week 12: Intro to CMB Analyses 

April 28 Day 1: Simulation Based Inference/Likelihood Free Inference                                                             April 30 Day 2: Deep Learning Simulation (Generative Models)                                                                                     

Week 13: Advanced parameter estimation techniques 

May 5  Day 1 :  Generative Models (Diffusion/…)                                                                          May 7  Day 2:  Final Presentations 

Week 14: 

May 12 Final Presentations on this last day                                                                                     May 16  Project #4 Due: Extracting CMB Parameters from simulated Cosmic Data or project of choice on previous topics chosen for the last class

 

Course Summary:

Course Summary
Date Details Due