TA Training
Well, I am officially a graduate student, and as such I got a few precious days of pedagogy training before I dive in this semester. As part of this training we did some “microteaching”: preparing and executing of 10 minute lessons. I am TAing a class on Python programming for geoscientists and so I prepared a short lesson on functions, with the goal of helping my “students” develop some intuition on functions. Here’s the thing, I LOVE functions. I’m one of those people who had a Lisp class in college absolutely change my life, or at least how I program, so as you can imagine, a special not-so-small place in my heart beats for functions. All that to say, I wanted to get this right, and I didn’t want my love to overcomplicate things.
The Lesson
The lesson was zero code, zero pseudocode, just talking about things we all do, and pretending they’re functions. After going over different ways they might have used functions in the past, and giving two very general and informal definition, I talked about how we can thinking of our daily routines as functions, giving an example from my own life. Then I had my students do the same. Next I introduced the idea that we often want functions to take inputs, transform them, and return something. After a few examples from me, I had students think of something they do for their research, and describe it as a function with input. One of my students did this for processing samples in a scanning electron microscope, taking their thin section, preparing it, and returning some sort of quantitative output.
The Takeaways
All in all, I think it went well. The feedback I got from my peers was that they found it helpful for developing that intuition, which not all of them had starting out. Figuring out what to put in a 10 minute lesson is hard, and I think I did a good but not great job fitting in enough that it’s interesting but not being overly ambitious. I wish I had the students discuss their examples together a little more and it turned out my students did too, as expressed by their feedback. It was something I had thought about, but I didn’t think I had time for. It turned out I finished a couple of minutes early so I did have time for that…so…lesson learned? One piece of GREAT feedback I got was that I should have used more diagrams! The student gave the example of workflow diagrams, which I think would have been a great accompaniment to my examples. If I were to do this in the future (which I probably won’t, for better or for worse) I would definitely incorporate that. Lastly, I feel like we don’t do a lot of explicit work helping students develop their intuition for programming concepts, especially in applied classes for scientists. I wonder if this is something that we should be incorporating more. If you have thoughts about that, please reach out!