Teaching, course and workshop development

This section contains information on my teaching experience - courses I’ve helped to develop, courses I’ve taught on, and workshops I’ve given. I’m moving most of my own material onto GitHub (and will do so for any new courses!) so have a look here if you are interested.

Course development

Data Science for industry (MSc module)

A 24-lecture Masters-level course in the MSc Data Science program at the University of Cape Town. The course has two main themes:

  • “improving workflows”: here we cover topics like version control with Git and GitHub, doing reproducible research with R Markdown documents, developing your own R packages, R Shiny apps, and essential data wrangling skills.
  • “core data science approaches”: recommender systems, text mining, sentiment analysis, topic modelling, neural networks. All course materials are available on GitHub through the course repo here.
Optimization (MSc module)

A 12-lecture Masters-level course forming one half of “Simulation and Optimization”, a module in the MSc Advanced Analytics program at the University of Cape Town. We cover: linear and non-linear programming, metaheuristic methods (simulated annealing, genetic algorithms, tabu search), and multi-objective optimization, with a focus on interactive approaches.

Decision Modelling (Honours module)

A 12-lecture Honours level course offered in various Honours programs in Statistical Sciences at the University of Cape Town. We cover single objective decision making under uncertainty, decisions with multiple objective, decisions over time, group decision making, and heuristics and biases.

Applied multivariate analysis (Undergraduate course)

A 48-lecture (one semester) undergrad course mainly aimed at BCom and Business Science students specializing in marketing, although it is also offered to 3rd year Applied Statistics students. The course covers a range of popular applied statistical methods: factor analysis, cluster analysis, correspondence analysis, discriminant analysis, classification trees, linear models, and structural equation modelling.

Courses taught

  • Inferential statistics (STA3030F/STA3008S): 2005-2010, 2012-2016.
  • Research and survey statistics (STA3022F): 2005-2010, 2012.
  • Operational research techniques (STA3036S): 2009, 2011.
  • Decision modelling (Honours): 2008-present.
  • Operations research (Honours): 2016
  • Simulation and optimization (Masters): 2013-present.
  • Data science in industry (Masters): 2017-present.
  • Introduction to modelling (Masters in Energy Modelling): 2012-2016.


Machine learning in ecology (3 days)

I gave this 3-day workshop at the Center for Ecological Sciences at the Indian Institute of Science in Bangalore, and at AIMS, both in 2017. The goal was to introduce quantitative ecologists to machine learning tools that are useful for ecological classification problems, focussing especially on processing image and acoustic data. The outline of the workshop is:

  • Day 1: workflows, R scripts, R projects, Git integration, importing, cleaning, and wrangling image and audio data in R.
  • Day 2: classification trees, bagging, boosting, and random forests.
  • Day 3: neural networks - conceptual understanding of the models, feedforward networks, convolutional neural networks, embeddings, implementation using the R keras package, GPU computing with Amazon Web Services.
InSciDa: Statistics and Data Science for Industry (5 days)

I organised this 5-day event in 2016. 25 postgraduate students from all around South Africa got together in Muizenberg to work on 5 real-world problems sourced from industry under the guidance of an expert in the area. The problems were drawn from retail banking, conservation, astronomy, online marketing, and bioinformatics. The event website it still up here (because I’d like to do this again, someday!)

Introduction to statistical modelling (3 days)

I gave this workshop with Theoni Photopoulou in 2016 in Plettenberg Bay, to a group of ecologists working in the surrounding area, a biodiversity hotspot. We covered the basics of statistical inference and sampling theory, linear models, and GLMs, and spent a final day working on practical problems brought by the participants.

Introduction to rational decision making (1 day)

I gave this one-day workshop as part of the Quantified Self Modelling course held at the African Institute of Mathematical Sciences in 2015. The course covered the basics of single- and multi-criteria decision analysis (MCDA), and is based on a small part of the “Decision Modelling” course I teach in the honours program at UCT.