Over the course of Winter 2022, we each observed the others’ teaching once. We met on a weekly basis to discuss these observations as well as other pedagogical techniques and ideas, such as “ungrading”, flipped classrooms, implicit bias, and addressing diversity and equity in our teaching. Our overall goal was to identify ways that practices in our respective disciplines of math, computer science, and music could inform each other. Below we have described some techniques we noticed in our teaching observations and our thoughts about implementing them in our classrooms.
Technique 1: “Bug” Hunt
Original setup by Anya:
In my computer science class, CS 111: Intro to Computer Science, I usually have students work in pairs on problems during part of class time. For some topics, it is easy to come up with many interesting problems for students to solve and therefore engage with the topic actively. However, for other topics, such as when I want students to understand a particular way to sort a list of numbers, coming up with interesting new problems for students to solve is more difficult. For these days, I use a ‘bug’ hunt activity. For these bug hunts, I write or grab a computer program that already solves the problem and then introduce 4-7 errors , what we in CS call bugs. I make sure that the bugs either are similar to errors that students often make or require the students to understand how the program works to solve the bug. I then have the students work in pairs to find all the errors during class time, which leads them to practice both their problem solving skills and their understanding of the specific topic. A tool that I’ve found particularly helpful for this is called PythonTutor, which allows students to run Python code directly in the browser and visualizes the variables for them so that they can find bugs more easily (see Figure 1).
MK: I’m looking forward to adapting this to a math context by asking students to look through example proofs or computations and identify and fix errors. I am very jealous of Python Tutor, especially because of the way that it visually shows where errors arise and how they compound. I wish I had a tool like this for Calculus! One complication I predict is that in a computational setting, errors can propagate quickly so it is often more appropriate to start over and rewrite a computation than it is to edit locally. The next time I teach a Calculus course I will experiment with example computations that incorporate “bugs” and ask students to explain each correct step, or fix the step (and subsequent lines). In a proof based course, I have already used “purported proofs” that I ask students to troubleshoot on homework problems. This has worked well, but I would like to incorporate these into class time and make them more regular in the future, and I would like to expand from “logic errors” and move into more general writing revision exercises. I like the idea of doing this prior to doing a peer review session for written projects, as a way to prepare students to give effective feedback.
Brooke: The “bug hunt” is a great idea that I incorporated into my classes. I noticed students regularly made grammatical and formatting errors in their writing and citations. So I provided different examples of sentences and bibliography and footnote citations that included mistakes and had students locate and fix the bugs in consultation with the Chicago Manual of Style and a writing about music style sheet. This process helped them actually think about the errors and how to correct them instead of me simply telling them they were wrong.
Technique 2: Guided Lecture Handouts
Original setup by MurphyKate:
Each class has a handout that incorporates partial notes for the class, spots for students to write down ideas or intuition, and practice problems. I provide an outline for notes, by including prompts and the start of statements for “Theorems” and “Definitions”, as well as including diagrams and problem statements so that students don’t have to spend time writing down the “filler” text. The students fill in the key ideas, like the definition of the term, the “decorations” on the diagram, and the solution to the problem (see Figure 2 for examples of pre-class and post-class notes). I also incorporate time for students to think about key ideas in the notes by writing “Think About It” and leaving a blank space for students to answer a prompt on their own (usually about 1-2 minutes), before discussing it with classmates. These serve as a guide for the entire class and are a great way for me to prepare for the lecture. They also provide a structure to notes so that students have a better sense of what ideas are important, what goes into a mathematical theorem/definition, and how mathematicians organize concepts and examples.
Anya: I’ve struggled in the past with using handouts effectively during lectures, but I am newly inspired by MurphyKate’s approach. The partial handout would work quite well for when I want to discuss example code with students, but don’t want them to have to write out the entire code snippet to then take notes on it. Therefore, I’m going to try using this approach with code snippets as well as diagrams that aren’t filled in and prompt questions. I also think it will be helpful to make sure that both I and the students actually do the “think” part of think-pair-share by providing room for them to write out their initial answers.
Brooke: I’ve used handouts in the past and MurphyKate has inspired me to return to them. Usually what I do is provide a handout with key terms and listening assignments for the day’s class. In my classes, handouts cue students to what words and topics to pay attention to during lecture time. It also encourages them to physically write down important information instead of passively listening. With the music examples I play in class, this will be particularly effective. While listening, students can take notes about sounds that stand out to them. They will be able to then refer to these notes during the class discussion on the pieces. By physically writing about music in a class context, I believe they will be better prepared for graded assessments.
Technique 3: Comment/Question/Meme About Class Topic
Original setup by Anya:
In my classes, I generally assign reading that the students complete before class. The readings provide a foundation so that we can spend class time focused on difficult ideas in practice. In the past, I made reading quizzes every day, but that was not sustainable. Instead, this term I had students post a comment, question, or meme related to the reading on Slack before class, tagged with the day and week. The students could find or make their own memes, depending on their preference. I made the meme an option because I didn’t want students coming up with unreflective questions that they already knew the answer to. I believed creating or thinking through an appropriate meme would be a fun way to get them to engage with the material. I collected some of the memes that best captured ideas from the reading (or were the most fun) and displayed them as students entered the classroom each day. A bonus is that I now have a collection of memes for every topic for that class that I can use in the future and keep adding to.
Brooke: I loved this idea. I like doing warm-up exercises at the beginning of class but sometimes have trouble incorporating the warm-up into the class topic. The idea of opening class time with a light-hearted engagement with an assigned reading is perfect. I tried this technique in a class following my observation of Anya and received some wonderful, hilarious memes (one of which is posted above) that showed insightful engagement with the assigned reading.
MK: In the past I’ve tried doing required questions or comments, but found that students were searching for “real” questions to ask, since they often didn’t know what they didn’t understand until they had tried solving some problems. I really like the idea of adding in memes as an option. It is a great way to ask students to apply ideas in new contexts. I don’t expect students to do as much pre-reading as Anya, but I anticipate using this for responses to the previous class and homework.
Technique 4: Rapid Fire Examples
Original setup by Brooke:
In Winter 2022, I taught a course about different components in video game music. In one lesson I drew on multiple examples to help illustrate the ways games use music and sound to support storytelling. In order to do so, I presented five YouTube clips of gameplay and walked students through the ways the music borrowed elements from film music (this included examples from The Legend of Zelda/Sea Hawk and Space Quest/ Star Wars among others). The string of examples helped reinforce the various ways game composers adapt concepts from film music to support narrative within a non-linear gameplay environment.
Anya: I frequently struggle to include many examples because I want to spend time discussing each of them in depth. However, when I don’t show enough different examples of a concept, I then end up with some students thinking that particular idiosyncrasies of an example are an inherent part of the concept. I really liked Brooke’s approach with five rapid fire examples because she didn’t spend too much time on each individual one and made sure that students instead noticed the repeated pattern that showed up in each example. I’m going to try this technique by showing several code snippets of a programming concept such as a for-loop and direct students to focus on the similarities between the different code snippets. Because these will be visual, I am interested to see if going through them sequentially or showing them all at the same time (perhaps on a handout!) will work best.
MK: My natural inclination is to do a small number of examples, but do each of them in depth with frequent references to the motivation behind each step. But I also have gotten feedback from students who want to see more examples, so this is a great reminder to me that doing multiple examples need not come at the expense of doing in-depth examples; instead, they serve different purposes and are both beneficial for students. I anticipate doing a mix of in-depth and rapid-fire examples in the future, especially in computation based courses like Calculus.
When we proposed this teaching circle, we predicted that we would focus on various “small” techniques that could easily be incorporated into our existing class structures. We certainly found those, but our discussions often evolved into topics on larger-scale structures, like assessment and grading, the types of assignments we rely on, and the structure of class time. For example, MurphyKate assigns daily practice problems which are optional, but contribute to a “Community Contribution” grade, which influences whether students get a + or – on their letter grade. She also splits key skills into those which should be “automatic” and those which may require more thought; she uses timed assessments for the former, and take-home assessments for the latter. Anya teaches primarily in a flipped classroom style, with a big focus on paired work time so that students can consult with her and the class prefect while exploring new ideas. She also outlines a key learning objective for each class, which she shares with students at the start of the period. Brooke alternates between full-class discussion and lecture in a way that naturally breaks up a long class time, and provides context for the discussion. She also assigns long-term writing assignments, and incorporates those projects into her daily teaching. In addition to the techniques described above, we have ideas about how we might alter our course designs – but, à la Fermat, these ideas are too long to fit in this blog post! We believe by promoting discourse across STEM and the Humanities, we can make changes small and big to teaching at Carleton.