On the Bleeding Edge of Teaching Machine Learning
Overview
At the end of January, I started working with my AP Computer Science Principles students on a Machine Learning project. Prior to this, they had worked with google’s Teachable Machine on its own and designed a model that they connected to some sort of output (generally, through P5). So, it made sense that this project would scale up in scope once more. The general idea was to come up with a problem they wanted to use Machine Learning to try and solve, research ways they might be able to solve it, then attempt to solve it.
This sounds like a straightforward project that is not really on the bleeding edge.
There are a couple of things that make this project interesting from the bleeding edge perspective.
- Following up on a previous experiement, I decided to co-create the rubric with my students.
- This was designed as a group project, but I had the crazy notion that the groups could be formed with students across sections. File this under the what does covid-19 make possible? heading.
- I don’t know a lot about Machine Learning.
Co-Creation of the Rubric
This was actually the least successful aspect of this project. My students seemed really enthusiastic about this idea, and there was some mild success on a previous project, but after much prompting and suggestion, the only piece the students wanted to add was some sort of group accountability.
The idea was that I had certain things I wanted out of the project, and I allocated 60 of 100 points to those things. The other 40 points were theirs to play with and they did not play with them. This is fine.
Cross-Section groups
The students were enthusiastic about this idea and our technological infrastructure makes this a possibility, so this was really a no-brainer. It allowed the students to make the groups on their own with very little friction, which is always nice. My general group formation policy is this:
- State the exact structure of the groups (for this project it was, exactly ten groups of three)
- Give a fixed amount of time by which the groups have to be constructed (I gave them several days)
- Let all the students know that unless 100% of the class is happy with their groups at the end of the allotted time, that I will blow up all the groups and make them myself.
Students collaborated using repl.it and whatever collaborative document creation software was available to them. Repl.it is a really nice tool, actually, because it includes version control and supports a variety of platforms (some students want to code in JavaScript and others in Python).
Lack of Subject Knowledge
I gave exactly three lessons on Machine Learning this semester.
- Showing them how the Teachable Machine works, along with a video from CGP Gray called How Machines Learn, relating that content back to the Teachable Machine, and setting some design challenges.
- Showing the students how to connect the output of the Teachable Machine to a P5 sketch, along with a proof of concept.
- Walking the students through the Tensor Flow and ML5 websites, showing them the pre-made models and doucmentation, and walking them through a proof of concept.
I also showed them this Machine Learning project that predicts a men’s college basketball team’s performance in the NCAA tournament by looking at The Four Factors
In short, I gave them a broad overview of the sorts of problems Machine Learning is currently being used to solve, some resources for how to simply implement Machine Learning, and provided a few examples.
Project Structure
- I asked the groups to create a description of their project, including some sort of visual aid. They could complete this step using any format or tool they wanted (document, presentation, video, audio, etc.)
- The students needed a biography of their data. The requirements were modled after the lovely data biographies on the ML5 website. (CharRNN Example).
- An analysis of how their project peforms. What does it work well on, what makes it fail, what steps did you take to correct the behavior? This was written, but I have regrets about that.
- The finished project.
- Bi-weekly self and peer reviews.
Reflection
When I do this again, I’ll change a few things.
- During the co-creation of the rubric, I would give the students the full 100 points to play with and make it a design exercise in the Think-Pair-Share model. I may sit in on a group, or show a model I generate in advance with a colleague.
- I’ll have an initial due date for their data biographies, but won’t finalize their grade on this until the end.
- I’ll actually have two analyses due, one early and one final, since revision of the model is part of the process.
- The analyses will be able to be in any format.
- The self and peer reviews will also include a group rating.
Showcase
Pending