This post is republished from Into Practice, a biweekly communication of Harvard’s Office of the Vice Provost for Advances in Learning.
Margo Seltzer, Herchel Smith Professor of Computer Science, flipped part of her course, CS161, “Operating Systems.”
What is a flipped classroom? Reversing the typical lecture and homework components of a course – students engage with video lectures/online materials in advance to free up class time for more experiential or hands-on activities.
The benefits: She’s sold on the benefits of flipping – significantly more student engagement, a better synthesis of the different parts that comprise a course, and more engagement with the students who can benefit most from instructor feedback.
The challenges: Preparing materials for a flipped class requires significantly more time and making the most of in-class time requires excellent teaching staff who can think on their feet and engage authentically with students.
Takeaways and best practices from Margo:
- Learning takes place by doing, not by listening to me.
- Pre-class Google Forms (like this one) are AWESOME. They let me engage with students in an entirely different way and gather lots of interesting data.
- Flipping is time intensive, but you don’t have to do for every single class – you can do it for one class, a few classes, one class a week, or the whole semester. In any case, try it!
- There will inevitably be hiccups. I’ve found that full transparency, honesty, and a lot of humility will help to mitigate the disasters that can happen.
Bottom line: After flipping, she is never going back. “Preparing the coordinated materials makes me think much more deeply about what I’m teaching, how I’m teaching, and why I’m teaching. The end product is therefore better thought out.”
Margo documented her first experience with the flipped classroom on her blog, MISinformation.
What inspired your experimentation with the flipped classroom in the first place?
For many years I have wanted to make my operating systems course, CS161, more interactive. I try very hard to engage students in the classroom, but let’s be honest – when they have been up all night trying to get their operating system to spawn processes, they just aren’t really up to talking much in class. And when they do, it’s the same set of characters and it’s difficult to figure out if the rest of the class is really following along or is totally lost. At the same time, we know some typical student behavior that makes the course more difficult than it needs to be. Shockingly, even though we give students three weeks to complete assignments, they leave 99% of the work until the last week (day). That makes for a rather painful semester. Similarly, we ask them to write design documents, but many sit down to write them the night before without fully understanding what they are trying to do. And when we ask them to read the code and answer questions, they tend to gloss over most of the code and whip off quick answers.
I’ve always been tempted to try some newer classroom techniques, such as peer instruction and flipped classroom. I’ve just always been a bit afraid of balancing the potential for deriving greater benefit from class time versus dumping too much work on them. So when I finally decided to take the plunge, I decided I would flip the classroom for the first two to three weeks, return to a more conventional classroom while the students are deep in the most challenging programming assignments, but flip at key times, when I believe that there is real value to doing so.
I took the material that I usually cover the first week and turned it into two videos (all the materials I’m talking about are linked from our syllabus). For pre-class work, I had them do part of what we ask them to do for the first assignment – get their work environment set up. Then, we spent class time letting them configure and build kernels for the first time. A few people ran into difficulty, and this was the beauty of doing it in class – we could help them right then and there, making sure that they weren’t stuck. So, within 10-15 minutes, every single student had configured and built a kernel. How great is that?
What did you learn?
First, teaching this way takes at least three times as much preparation as teaching “the regular way.” I still think it’s worth it, but I can tell that it’s going to take its toll. Second, in a programming course, preparing pre-class work and in-class work is a detail-oriented process, and if it goes wrong, it can go badly wrong.
So, how does that kind of preparation translate into my current situation? Taking last year’s notes, updating them, and then preparing the audio track requires at least a factor of two more time, perhaps even more now that I’m thinking deeply about it. Applying the same fixes I would have applied were I teaching conventionally takes about the same amount of time it would have.
I have noticed one other difference between this year and previous years: my staff seems to be thinking a lot more about teaching – what we teach, how we teach it, etc. It’s hard to attribute that to any one thing, because there are so many variables, but I do think that there is something about the setup that gives us more opportunity to think critically about what we’re doing. Also, the fact that we have some flexibility in how we present material means that we can be facile at adapting to the students, what’s working and what’s not. I have such respect for and appreciation of my teaching fellows who engage wholeheartedly in such discussions – they are close enough to having learned the material that they remember what is hard and they are enough past it to know what skills matter.
I am completely sold on the flipped classroom, and I will talk at great length about the benefits to anyone who will listen:
- The teaching staff can focus time and energy on those students who need it the most rather than those who are most vocal.
- Pre-class work gives me concrete data on how students are doing – what they know, what confuses them, what they don’t know. Because the pre-class work is built into the class structure, I have a mechanism to obtain immediate feedback on most everything.
- The pre-class work also gives me a way of staying connected with each student. I regularly check in on how partnerships are doing so that we can address any issues as early in the semester as possible. (It is worth noting that prior to flipping, we always had at least one divorce each semester; since flipping – 3 years now – we’ve had none.)
- The physicists demonstrated that peer instruction works, and this confirms it. The students learn a lot from each other.
- Flipping can be the great equalizer – if students already know half the material, they can skip the audio decks on those topics rather than having to sit through a lecture on them, just to get what is in the second half of that lecture.
- Preparing the coordinated materials makes me think much more deeply about what I’m teaching, how I’m teaching, and why I’m teaching. The end product is therefore better thought out.
- I’ve discovered that one becomes very sloppy while lecturing. You can walk into a class with lecture notes and wing it. However, I cannot wing recording an audio track. Because I can revise each slide track by itself, I will re-record until I have a very crisp, tight, clear explanation. I think this is a big win.
Tell us more about your strategy when things go wrong.
I believe that full transparency, honesty, and a lot of humility will help to mitigate the disasters that can happen any time you try something new in the classroom. At the start of each semester, I outline the class “contract” in my introductory slides, which I think is a wonderful transparency mechanism (you can see the contact below). When something goes awry in class and I feel as though I’ve violated my promise to make the best use of class time, I address the situation head on and apologize for not using my students’ time efficiently.
What if an instructor of a class larger than CS161 wants to experiment with flipping?
I can imagine that the classroom space is the first obstacle. I love teaching in the SEAS state-of-the-art classroom (Pierce 301) that has reconfigurable, mobile tables, traveling whiteboards, screens on both ends of the classroom, etc., but it only holds 54 students.
For larger classes that meet in lecture halls, I’d probably try to use some kind of online shared whiteboard-like tool since the students won’t be able to cluster around tables. That way students could bring laptops and work together in groups of 2-4. I would also want some way to do real-time data collection. I don’t think you need any special clickers – I would see if Google Forms work well enough in real time that people could submit answers and I could see the overall statistical picture of how students are answering.
The physical layout is going to make it difficult for the teaching staff to circulate – you can get to the edges of rows, but getting into the middle would be tricky. I’m not entire sure how to deal with that – I suppose the staff could join the online discussion, but it’s not the same as interacting with the students directly. This would seem to be one of the biggest obstacles – I just can’t see the teaching staff climbing over students to get into the rows; having the students get out of the rows to talk to the staff doesn’t sound better. I’m also not completely sure how the noise level is going to play out in a room with that many students. You really want them to be able to talk to one another, but a room of 50 sounds pretty chatty; I’m not sure how loud a room of 250 will sound.
So, those are my thoughts, but I think that the best thing would be to run an experiment. I plan to test this out in a larger (~150 students) course, CS61, this fall. Stay tuned!