Teaching & mentoring

Helping students move from code that runs to ideas they understand.

I enjoy teaching machine learning, artificial intelligence, Python, data science, algorithms, and research workflows through clear examples and hands-on reasoning.

Philosophy

Good teaching makes invisible reasoning visible.

In technical subjects, students often get stuck between mathematical notation, code implementation, and conceptual understanding. I try to connect these layers so that a student can explain what the code is doing, why the algorithm works, and how to verify the output.

My teaching style is practical and feedback-oriented. I value clear working, reproducible code, step-by-step reasoning, and visual checks wherever possible.

For machine learning and AI, I encourage students to move beyond simply running notebooks and toward understanding assumptions, inputs, outputs, evaluation metrics, and failure modes.

Teaching areas

Topics I can teach, support, or mentor.

ML

Machine Learning

Supervised learning, classification, regression, clustering, evaluation, and model comparison.

AI

Artificial Intelligence

Search, reasoning, graph algorithms, intelligent systems, and applied AI workflows.

Py

Python Programming

Scientific Python, notebooks, debugging, NumPy, pandas, plotting, and reproducibility.

DS

Data Science

Data preparation, exploratory analysis, metrics, visualisation, and communicating findings.

G

Graphs & Algorithms

BFS, DFS, shortest paths, adjacency matrices, traversal order, and implementation details.

HPC

Research Computing

Slurm workflows, job scripts, file audits, logs, scientific pipelines, and HPC debugging.

Feedback approach

Clear, useful feedback beats vague correction.

Example teaching principle: “The code running is not the same as the method being understood.”

Teaching

Want to collaborate on learning material or workshops?

I’m interested in clear, practical technical education around AI, ML, scientific Python, and research computing.

Contact me