Teaching Machine Learning

For the last month I’ve been teaching two courses at the Lally School of Management at RPI, one on Applied Analytics and Predictive Modeling and the other an Introduction to Machine Learning Applications. Most of the students are in the first year of an MBA or RPI’s MS in Business Analytics, although about a third are senior-level undergraduates.

During my previous stint at RPI I co-taught Deborah McGuinness’s ontology-related courses alongside her other postdocs. A few years before that I led a series of informal workshops on programming-related topics for grad students at Iowa State while Jennifer was studying there. This semester is the first I’ve been the teacher of record for an entire course. I’d always wanted to try that, so when the opportunity arose I jumped at it.

Neither course is new in the curriculum, so I’ve been able to draw on a library of existing material and curate it with my own emphases. There’s a fair bit of overlap between the content of the two courses, which has made preparing for them easier: NumPy, Pandas, Scikit-Learn, data visualization, regression, decision trees, clustering, natural language processing, image processing, neural networks, deep learning. I’ve continued to be impressed by the caliber of RPI students.

Although I’m very comfortable working in Python, Machine Learning isn’t an area I’ve specialized in. Over the course of my career in industry I’ve used ML in several applications – identifying email newsletter signup forms in the Notablist crawler, for example. But it’s been two decades since I studied statistics, linear algebra, and the theoretical models underpinning the libraries.

The best way to (re-)learn something is to teach it, and I’ve enjoyed coming up to speed the last couple of months. It’s been a stark contrast to my work in industry, where I’m usually paid to do things I already know how to do well from the outset.