Edinburgh AI runs beginner-friendly AI workshops at the University of Edinburgh. This repo contains the notebooks, datasets, helper code, and solution files used across different weekly sessions.
The workshops are deliberately self-contained. Each one was delivered in a different week, usually around one concrete build: a first ML classifier, a CNN image model, a language model demo, a podcast generator, an object detector, a sign-language interpreter, a Flappy Bird reinforcement-learning agent, or an LSTM sequence model.
Most sessions were designed around Kaggle because it gave students the easiest shared environment: browser notebooks, dataset attachment, optional GPUs, and minimal local setup.
| Area | Workshop | What students build | Main stack |
|---|---|---|---|
| Foundations | Intro to Machine Learning | Linear regression and decision-tree classifiers on synthetic datasets | pandas, scikit-learn |
| Foundations | Neural Networks | A first PyTorch neural network and MNIST classifier | PyTorch, torchvision |
| Foundations | Computer Vision with CNNs | Convolution demos, an image classifier, and face segmentation | PyTorch, torchvision, transformers |
| Foundations | Language Models | Embeddings, semantic search, sentiment fine-tuning, GPT-2 generation | gensim, sentence-transformers, transformers |
| Theoretical | Single-Object YOLO Detection | A custom single-object detector with bounding-box loss and IoU evaluation | PyTorch, pandas, YAML |
| Theoretical | RNNs and LSTMs | A time-series model for detecting throw attempts in judo pose sequences | PyTorch, NumPy, scikit-learn |
| Practical | Notes to Podcast | A local RAG pipeline that turns university notes into a two-host podcast | FAISS, Ollama, Kokoro TTS |
| Practical | ASL Interpreter | A sign-language classifier using hand landmarks and image models | MediaPipe, OpenCV, scikit-learn, TensorFlow |
| Practical | Flappy Bird RL | A DQN agent trained to play Flappy Bird | Gymnasium, PyTorch |
The normal route is Kaggle:
- Go to kaggle.com and create an account.
- Create a new notebook.
- Select
File -> Import Notebook -> GitHub. - Search for
EdinburghAI/workshops. - Pick the workshop notebook you want.
- Turn on internet access in the Kaggle notebook settings when the workshop asks for it.
- Attach the dataset listed in that workshop's README.
- Run the cells from top to bottom.
Each workshop folder has its own README with the exact notebooks, datasets, outputs, and takeaways for that session.
TheoreticalWorkshops/
Sem1Workshop1/IntroToML/
Sem1Workshop2/
Sem1Workshop3/
Sem1Workshop4/
Sem2Workshop1/
Sem2Workshop2/
PracticalWorkshops/
Notes-To-Podcast/
ASL-Interpreter/
Flappy-Bird/
Notebook filenames are mostly preserved from the live workshop material so old Kaggle imports and shared links do not break. The README files use consistent labels such as student notebook, solution notebook, beginner, intermediate, and advanced.
Created by Pierre Mackenzie and Leo Camacho, with help from Valentin Magis, Niall Meagher, Finlay Ross, Conor O'Shea, and Edinburgh AI workshop contributors. Please credit Edinburgh AI if you use or adapt this material.
