This is the repository for the MATH 565 Monte Carlo Methods class at Illinois Tech in Fall 2025.
It contains lecture notes, Jupyter notebooks, and links to other resources.
The class website at qmcsoftware.github.io/MATH565Fall2025 contains the syllabus, assignments, and links to course materials.
This repository now includes a Git submodule called
HickernellClassLib,
which contains reusable Python code used across several courses.
To make sure your local copy includes the submodule, run:
git submodule update --init --recursiveIf you cloned before this change, please run the above command once.
Future git pull operations will keep the submodule updated automatically.
You should make your own copy of this repository so that you can run the notebooks yourself and have a place for your own work.
Choose this if you want to:
- Stay up to date with course materials (notes, demo notebooks, syllabus, etc.)
- Easily pull future updates from the instructor’s repository
Steps:
- Click the "Fork" button (top right of this page).
- Clone your fork to your computer using GitHub Desktop, VS Code, or the command line:
git clone --recurse-submodules https://github.com/YOUR-USERNAME/MATH565Fall2025.git
- Add the instructor’s repo as a remote named
upstreamto pull updates later:git remote add upstream https://github.com/QMCSoftware/MATH565Fall2025.git
✅ This is the recommended option if you want to regularly sync with instructor updates.
Choose this if you:
- Just want a clean, independent copy of the materials
- Don't plan to sync with instructor updates regularly
- Prefer not to deal with GitHub's fork mechanics
Steps:
- Click the "Use this template" button (above the file list).
- Create a new repo under your GitHub account.
- Clone your new repo (including submodules) and begin working:
git clone --recurse-submodules https://github.com/YOUR-USERNAME/MATH565Fall2025.git
⚠️ This option does not automatically receive updates from the instructor’s repo.
If you chose the template route and want to get updates later, you can:
-
Add the instructor’s repo as a remote:
git remote add upstream https://github.com/QMCSoftware/MATH565Fall2025.git
-
Pull in changes when needed:
git fetch upstream git merge upstream/main
-
Update the submodule if needed:
git submodule update --init --recursive
💡 This works the same as with a fork — you just have to set up the
upstreamlink manually.
If you’re using the qmcpy environment, you can check that the class library works:
conda activate qmcpy
python - << 'PYCODE'
import os, sys
sys.path.append(os.path.join(os.getcwd(), "classlib"))
from classlib.distributions import UniformSumDistribution
print("✅ classlib imported successfully")
PYCODEIf you see the confirmation message, your setup is correct.