How I’m lecturing during emergency remote teaching

April 6, 2020 at 7:00 am 5 comments

Alfred Thompson (whom most of my readers already know) has a recent blog post requesting: Please blog about your emergency remote teaching (see post here). Alfred is right. We ought to be talking about what we’re doing and sharing our practices, so we get better at it. Reflecting and sharing our teaching practices is a terrific way to improve CS teaching, which Josh Tenenberg and Sally Fincher told us about in their Disciplinary Commons

My CACM Blog Post this month is on our contingency plan that we created to give students an “out” in case they become ill or just can’t continue with the class — see post here. I encourage all my readers who are CS teachers to create such a contingency plan and make it explicit to your students.

I am writing to tell you what I’m doing in my lectures with my co-instructor Sai R. Gouravajhala. I can’t argue that this is a “best” practice. This stuff is hard. Eugene Wallingford has been blogging about his emergency remote teaching practice (see post here). The Chronicle of Higher Education recently ran an article about how difficult it is to teach via online video like Zoom or BlueJeans (see article here). We’re all being forced into this situation with little preparation. We just deal with it based on our goals for our teaching practice.

For me, keeping peer instruction was my top priority. I use the recommended peer instruction (PI) protocol from Eric Mazur’s group at Harvard, as was taught to me by Beth Simon, Leo Porter, and Cynthia Lee (see I pose a question for everybody, then I encourage class discussion, then I pose the question again and ask for consensus answers. I use participation in that second question (typically gathered via app or clicker device) towards a participation grade in the class — not correct/incorrect, just participating. 

My plan was to do all of this in a synchronous lecture with Google Forms, based on a great recommendation from Chinmay Kulkarni. I would have a Google Form that everyone answered, then I’d encourage discussion. Students are working on team projects, and we have a campus license for Microsoft Teams, so I encouraged students to set that up before lecture and discuss with their teams. On a second Google Form with the same question, I also collect their email addresses. I wrote a script to give them participation credit if I get their email address at least once during the class PI questions.

Then the day before my first lecture, I was convinced on Twitter by David Feldon and Justin Reich that I should provide an asynchronous option (see thread here). I know that I have students who are back home overseas and are not in my timezone. They need to be able to watch the video at another time. I now know that I have students with little Internet access. So, I do all the same things, but I record the lecture and I leave the Google Forms open for 24 hours after the last class. The links to the Google Forms are in the posted slides and in the recorded lectures. To fill out the PI questions for participation, they would have to at least look at that the lecture.

I’m so glad that I did. As I tweeted, I had 188 responses to the PI questions after the lectures ended. 24 hours later, I had 233 responses. About 20% of my students didn’t get the synchronous lecture, but still got some opportunity to learn through the asynchronous component. The numbers have been similar for every lecture since that first.

I lecture, but typically only for 10-15 minutes between questions. I have 4-5 questions in an 85 minute lecture. The questions take longer now. I can’t just move the lecture along when most of the students answer, as I could with clickers. I typically give the 130+ students 90 seconds to get the link entered and answer the question. 

I have wondered if I should just go to a fully asynchronous lecture, so I asked my students via a PI question. 85% say that they want to see the lecturer in the video. They like that I can respond to chat and to answers in Google Forms. (I appreciate how Google Forms lets me see a summary of answers in real-time, so that I can respond to answers.) I’d love to have a real, synchronous give-and-take discussion, but my class is just too big. I typically get 130+ students synchronously participating in a lecture. It’s hard to have that many students participate in the chat, let alone see video streams for all of them.

We’re down to the last week of lecture, then we’ll have presentations of their final projects. They will prepare videos of their presentations, and receive peer comments. Each student has been assigned four teams to provide peer feedback on. Each team has a Google Doc to collect feedback on their project.

So, that’s my practice. In the comments, I’d welcome advice on improving the practice (though I do hope not to have to do this again anytime soon!), and your description of your practice. Let’s share.

Entry filed under: Uncategorized. Tags: , , .

So much to learn about emergency remote teaching, but so little to claim about online learning Checking our hubris with checklists: Learning a lesson from the XO Laptop

5 Comments Add your own

  • 1. Robert Gotwals  |  April 6, 2020 at 7:15 am

    I have been using “specifications grading” now for a year or two, and it has been a godsend given recent events. All activities have to meet “specs”, mine are based on professional-looking documents, content accuracy/completeness, and on-time delivery. Students get “tokens” that they can use to re-do assignments or even opt-out of an assignment. When our administration asked us (correctly, IMHO) to modify our courses, I was able to decrease the rigor of my specifications (but not so much as to water-down the course). I teach high school, and our state board of education just passed an edict allowing seniors to basically stop taking classes now and get whatever grade they had on March 13. I have a bunch of seniors, so I’m trying to encourage them to finish out the courses.

  • 2. acdalal  |  April 6, 2020 at 12:13 pm

    We’re on quarters, and spring term starts today, so I don’t have any live reports yet on how it’s going. But I can share how I thought about how I structured my course to be delivered fully online (and I’m blogging about it too). We were encouraged to go pretty much full-on asynchronous, due to discrepancies in time zones and Internet connectivity. I have one half-hour synchronous meeting with my class per week, during our scheduled time on Wednesdays, for anyone who can make it. I’m planning to use that mainly for Q&A and maybe some small group discussions. The rest is a mix of targeted readings/quizzes, short lectures, and short asynchronous discussions or activities, many of these in small groups. I’m currently putting students into stable teams that will be their project teams and their small group discussion/activity teams for the entire term. I’m basing team membership (4 students per team) around time zones and time-of-day working preferences, in the hopes that this will make it easier for students to coordinate with each other. Carleton moved to mandatory S/Cr/NC (our pass-fail, basically) for the term, but I’d already converted my rubrics to something more specifications-like, so that’s how I’m evaluating work.

    I am hanging out on Slack during scheduled class meeting time, in case students have questions in real time about the lectures/readings/activities.

    For office hours, I have 2 hours of drop-in help via Google Hangouts and 2 hours of schedulable blocks for one-on-one meetings.

  • 3. Andrew  |  May 8, 2020 at 8:12 pm

    Hi Mark, this seems like the best format for asynchronous polling I’ve come across so far.

    Is there any chance I could use that script to check for participation on the Google forms?

    • 4. Mark Guzdial  |  May 13, 2020 at 11:16 am

      Hi Andrew — I have to give that some thought. It’s a LiveCode stack (not a shell script), and it’s pretty U-M specific (e.g., you define the students by copy-pasting from the University format registration spreadsheet). I’d have to figure out a way to convey what the format is, without providing any examples that divulge student data (FERPA concerns). That’ll take some time and effort.

      TL;DR: I’m happy to share the script, but it’ll take some effort on my part to document it in a useful way that doesn’t compromise student data by providing examples.

  • […] Peer instruction (PI) is a technical term meaning a very specific protocol. Digital Promise and UTeach are creating a set of CS teaching micro credentials, and the one that they have on PI defines it well (see link here). PI is where the teacher poses a question for the class for individual responses, students discuss their answers, students respond again, and the teacher reveals the answer and explains the answer. The evidence suggesting that PI really works is overwhelming, and it can be used in any CS class — see for more information on how to do it. I use it regularly in Senior-level undergraduate courses and graduate courses. There are ways to do PI when teaching remotely, as I talked about in this post. […]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 7,966 other followers


Recent Posts

Blog Stats

  • 1,783,874 hits
April 2020

CS Teaching Tips

%d bloggers like this: