abdelrahmanseed/probabilistic_computing — explained in plain English
Analysis updated 2026-05-18
Study how Monte Carlo sampling methods work through runnable visual examples.
Follow a suggested notebook order to learn Markov chain Monte Carlo from scratch.
Use as a companion resource alongside a probabilistic computing course.
Experiment with p-bit and spin-glass models by modifying working notebook code.
| abdelrahmanseed/probabilistic_computing | i-am-manware/dating-app-behavioural-analysis-for-secure-girls | 2arons/lcel-forge | |
|---|---|---|---|
| Stars | 12 | 12 | 11 |
| Language | Jupyter Notebook | Jupyter Notebook | Jupyter Notebook |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 3/5 | 2/5 |
| Audience | researcher | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
This repository is a teaching collection of Jupyter notebooks built for a probabilistic computing course at the University of California Santa Barbara. Instead of a packaged library you install and import, it is a set of standalone lessons where each notebook walks through one idea in probability or sampling with simple Python code, small experiments, and plots you can rerun and modify while learning. The notebooks progress from basic probability concepts toward more advanced probabilistic computing topics. Early notebooks cover the law of large numbers and the Central Limit Theorem using coin toss simulations. The middle set covers Monte Carlo methods: estimating areas and integrals by random sampling, inverse transform sampling, accept-reject sampling, and importance sampling, including how these methods behave in high dimensions. Later notebooks move into Markov chains and Markov chain Monte Carlo, covering the Metropolis-Hastings algorithm, Gibbs sampling, and autocorrelation in sample sequences. The final group applies these ideas to probabilistic computing models such as p-bits, Bayesian networks, graph coloring with a Potts model, parallel tempering on a spin-glass model, and population annealing applied to a small traveling salesman problem. The author suggests working through the notebooks in a specific order, starting with the foundational probability notebooks, then moving to sampling and simulation, then Markov chains and MCMC, then the probabilistic computing examples. Everything is written in Python using NumPy and Matplotlib, with a couple of notebooks also using joblib for parallel execution. Setup is a standard virtual environment with pip install of a handful of common packages, then launching Jupyter Lab and running the cells from top to bottom. This is best suited for students or self-learners studying probability, sampling methods, or probabilistic computing who want runnable, visual explanations rather than a formal textbook treatment. It is explicitly teaching material rather than production code, and the author notes they will keep adding notebooks as the course develops.
A set of teaching Jupyter notebooks that walk through probability, Monte Carlo sampling, and probabilistic computing algorithms with runnable code and plots.
Mainly Jupyter Notebook. The stack also includes Python, NumPy, Matplotlib.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
double-check against the repo, no cap.