Teaching Hands-On/Practical ML Classes

This semester, I had the opportunity to put together two practical, active learning lectures related to AI x Public Health!

#1: Machine Learning in Practice

My learning objectives for this lecture were for students to be able to:

  • Plan out your own applied project using time series data
  • Identify and compare the different components of working with time series data
  • Practically apply basic skills corresponding to each of these components

[Selected] Components of Time Series Data

  • Curation: What are properties of informative time series data?
  • Task Selection: What tasks can I complete with this data?
  • Preparation: How can I prepare my data before I feed it into a model?
  • Evaluation: How can I evaluate my approaches?

As many students were in the middle of interview season, I framed the lecture as a intern project activity with the following specification: We are starting a new job at a healthcare startup deploying a smart watch. Our only objective is to develop a useful analytics tool using data from this watch.

Active Learning Strategies:

For each component, we started with a motivation question, followed by some theory/background, and then ended with an interactive activity to tie lesson components together. These activities included:

  • Comparison: Using two Google forms to record students’ impressions before and after a learning segment, I predetermined specific analyses and linked those graphs to my presentation slides. As students filled out the data, we could see the changes on the Google Slides. This was very neat and something I’ve never seen before. I thought it worked well and will continue to use this technique in the future.
  • System Designing: Given some criteria, groups of students create a design proposal to answer specific design questions in class. I emphasized creativity and sent them feedback on these after class.
  • Connecting Concepts: I asked students to relate a scenario to a class concept.
  • Immediate Feedback: This is something I learned from Jessica Hammer at CMU - getting interactivity by asking students to put thumbs up or thumbs down on yes/no questions is a way to increase participation in medium-sized classrooms

Results: I ended class 5 minutes early so that students could ask questions and fill out a survey without rushing to their next lecture. Based on survey results, even though students started with very different backgrounds, they all showed improvements on the learning objectives. One student mentioned the idea of an active learning strategy involving coding, which I used as the basis for my second guest lecture.

#2: AI for Social Good

My learning objectives for this one were:

  • Identify major institutional players in public health x AI and respective gaps
  • Describe the premise of event detection/syndromic surveillance/outbreak detection in public health settings
  • Get hands on coding experiences with implementing methods with public health data

I framed this lecture as a pitch to students to get involved with methodological questions in public health research. I described the current state of public health, opportunities due to gaps, and the outlier detection methods I work with. For the active learning component, I asked students to get into groups of 2, and we walked through different aspects of my research. I spent about half the time focusing on the interesting properties of public health data, and for the other half, I focused on implementations of outlier detection algorithms using a Colab notebook I designed specifically for this lecture. At the end, I showed a quick demo of the project.

Results and Takeaways: Adding a coding segment for the class was ambitious but rewarding. In the future, instead of using the coding segment to motivate the theory, as Fei usually does in the AI for Social Good class, I’ll preview the theories first and then show what it looks like in practice with the code. Also, coding segments are like blocks of text. Students may spend too much time reading it and not focus on the critical lines of the code. There are two improvements I will make for future lectures:

  1. Tailoring: I will ask the students to vote on which aspects of AI x Public Health they are most curious about: Motivation, Deployment, Methods, or Engineering, and tailor the lecture accordingly.
  2. Highlighting Code: I will create slides that highlight specific aspects of the code and hide other elements in different helper functions so students can focus on the most important line of code.
Written on April 30, 2024