Teaching AI visually and practically!
Practice building and testing basic machine learning algorithms from scratch using only NumPy (no TensorFlow/PyTorch for model internals). Also practice clean coding with OOP (Object-Oriented Programming).
Linear Regression β do both:
Data Split & Evaluation β create functions to:
Logistic Regression (Binary):
K-Nearest Neighbours (KNN):
Small Feed-Forward Neural Network:
CNN Basics:
Simple Autoencoder:
Optimization Algorithms:

Plan your code before starting β draw a small diagram of your components:
You can use matplotlib for plots, and scikit-learn only for:
Create unit tests to check:
Write a short report (2β4 pages, PDF):
README.md # Instructions to run
dataset/ # dataset files (.csv / .png / .xsl)
results/ # experimentation results
src/ # Code files
|_model.py
|_train.py
|_utils.py
|_dataloader.py
|_main.py
|_eval.py
|_test.py
tests/ # Unit tests
report.pdf # Your short write-up
Components:
Tests:
| Criteria | Marks |
|---|---|
| Understanding problem | 5 |
| Correct, vectorized code | 10 |
| Modular design, OOP | 7 |
| Experiments & analysis | 6 |
| Tests & reproducibility | 4 |
| Report clarity | 3 |
| Total | 35 |
We acknowledge the use of open-source educational content and inspiration from the following sources:
This lab is intended solely for academic and practice purposes.
Full credit goes to the original authors and maintainers for their contribution to the open-source and data science education community.