Turns Out Remote Instruction Works

Lessons Learned from our first 160 hours of Zoom instruction

Jeff Olson
upperlinecode
20 min readJul 27, 2020

--

Photo by Rachmaddian Shotz on Unsplash

When Danny, our CEO, first told me back in February that he wanted to pilot a virtual class for summer 2020, I flat out said that I didn’t want to.

My stance has long been this:

“If remote learning worked, it’d already be the standard.”

That’s overly simplified, but what I’d been driving at was this idea that if remote learning could ever be as high-impact as a real, in-person classroom, then one of the many branded, media-darling, VC-backed startups would have figured it out by now. Ed-tech entrepreneurs have been after this philosopher’s stone for what feels like the better part of two decades, so in my mind, if it were possible to recreate classroom success in a virtual setting, education would already be transformed.

I realize that if everyone thought that way, we’d never see major innovations in any sphere, so I’m grateful that there are pie-in-the-sky dreamers out there. I’m just not one of them. I’d rather use the skillset that I’ve worked hard to develop and that I know works. That’s more appealing to me than chasing after a more scalable (i.e. more cost-effective / profitable) solution.

Then we entered a pandemic, and this style of instruction that I had no interest in learning how to do suddenly became the only path forward. So I called together a cohort of my 20 closest teacher friends and we did some sample lessons. We took turns teaching coding lessons to one another, trying to find ways to work in checks for understanding, turn-and-talks, predictions, and other strategies we knew to be most effective.

The first lessons crashed and burned, but over time we started to unearth some strategies that worked pretty reliably.

Overall, these strategies fall into one of three camps:

  1. Adaptations: Some of these strategies that are just digital analogs of their in-person counterparts, utilizing digital tools to do what we normally do in a physical space. For example, where we used to use turn-and-talks, we now do breakout rooms.
  2. Alternatives: Other strategies we have used were born out of the total failure of mechanisms we’re accustomed to relying on. For example, I used to ask a CFU (check for understanding) question to my class once every 45 seconds or so, providing enough think time to read the room and wait until every student was prepared to answer, but when you do this in a digital format, it simply doesn’t work. You can’t read the room, and even the volunteers stop volunteering after a few rounds. This led me to really scrutinize my CFUs and figure out which ones are necessary, and which ones I was just using to make myself feel better about monopolizing class time with my voice.
  3. Innovations: We stumbled onto a weird third category where moving to a digital format actually gives us better instruction via remote learning, and allows us to do things that were never possible in an in-person classroom. For example, we ask students to DM an instructor or a TA when they need more time. That allows for a lower-risk way of flagging that concern than I’ve ever been able to facilitate through in-person instruction.

If that list tells you nothing else, I hope it tells you this: remote learning is hard. You can’t just take what you do in person and do the same thing over VC — that only accounts for a third of what we’ve learned. It’s only because we have the luxury of starting with a new cohort of students at every week-long class and every 2-hour workshop that we’ve been able to iterate, refine, and innovate as much as we have.

That said, the luxury of iteration on our remote learning model has led us to a place where responses to the question “how likely are you to recommend an Upperline Code class to a friend” for our virtual classes are comparable to what we usually see for our in-person classes. Here’s what one student said after taking our remote Python course:

“[my favorite part was] how connected the class felt even though it was on a video call — It really felt like a real class.”

As a quick reminder, I walked into this whole experiment with the secret belief that it couldn’t be done, and it was only after I saw these metrics and testimonials that I started to come around.

So what follows below is a list of the concerns we had as we shifted to remote instruction, and how we ultimately answered each question.

How do we build community in our virtual classes?

This is central for us. In fact, we believe that community is what allows students to break free from a competitive mindset into a collaborative one.

That means students need to see one another as human as quickly as possible, and they need opportunities to connect with one another. Here’s how we make that happen:

  • Require at least video or audio (and possibly both) from all students. Do this in the first 5 minutes of class, and normalize it as quickly as possible. Say thank you to each student who does this, and wait on each student who doesn’t. Since some of them might need to call in from their bedrooms or other private spaces, you’ll also have to normalize the use of backgrounds, wearing hats, and other personal boundaries students will put in place for their sense of safety. But making sure they actually SEE one another is a really useful way of making sure they treat each other like classmates, and not like anonymous strangers on the internet.
    Share your rationale honestly, openly, and often, and reach out to students who have difficulties like broken webcams or malfunctioning mics and help them brainstorm solutions (like calling in from their phone, shipping them a pair of $8 headphones, etc).
    Note: There’s also a safety element here —video and audio are the only ways we’ve come up with to be certain that the person dialed into your call is really your student and not someone else.
  • Play music when students enter the classroom. We do this in person too, and not only does it cut the awkward silence while you wait for people to arrive, it allows you to integrate song requests from students into a playlist over time, and let each class make it their own. Make sure you know how to share audio from your computer in Zoom, in Google Meet, or in whatever platform you’re using, as sharing audio is a lot less echoey and more genuinely enjoyable than just playing music through your microphone.
  • Have a relentlessly positive affect. Your energy and enthusiasm is your students’ energy and enthusiasm. If you’re going to have them stand up to start the class, do it with exuberance and most of them will get on board and follow your lead. If you’re genuinely excited to see them, they’ll get genuinely excited to see you.
  • Make sure all voices are heard in the first 5 minutes. We always open with a whip around — some prompt of the day like “Please share four things: your name, your pronouns, where you’re calling from, and your favorite flavor of ice cream!” The faster you can normalize participation, and that you’ll be calling on people throughout the lesson, the more fearlessly you can rely on these tactics because students have seen this is a judgement-free zone.

How do we check for understanding?

In an in-person class, a good teacher is checking for understanding constantly — by circulating the class to see what students have (or haven’t) written down or typed out; by asking questions and having students turn and talk, write their answers on a whiteboard, or chant back their answers on a count of 5. At a more basic level, we’re used to reading the room to see how our lessons are going, but in a virtual classroom this simply doesn’t work.

One important thing that we realized is that not all Checks for Understanding (CFUs) are created equal. Some of our CFUs were genuinely checking for understanding so we could adjust our lessons if necessary, but others were actually just engagement tactics. When a teacher realizes they are lecturing, they might have a gut instinct to add a CFU so that it’s not all their voice, but we quickly realized that while this can work to cover too much talking in the classroom, it only works 1–2 times in a virtual classroom. After that students get bored of contributing their voices to cover for your talk-heavy lecture, and they stop responding.

So while we use ~20 questions in a 30-minute lesson in person, we might use only 3–5 questions in a remote version of that same lesson. As a result, we’re able to finish that lesson a bit faster, perhaps in only 15 minutes. When you take 20 questions and are forced to trim out 75% of them, you’re left with only the most important ones.

Once you’re sure you’ve narrowed down your CFUs to only the high-leverage ones, we’ve found a number of really great ways to solicit student responses to those questions:

  • Answer in a chat waterfall. Have students type their answer in chat, but ask them to wait before pressing send. Give ample think time, and then count down from 3, and have everyone press send together when you reach zero. This means that no ones answer is tainted or influenced by anyone else’s, and generally 80%+ of your students will respond. Use this for small questions like “What would you prefer we named this variable?” or “What feature should we add next?” — If you get only a few answers, that’s great feedback for you that your question wasn’t leveled properly, or that your think time wasn’t long enough.
  • Answer in a DM to me. Have students type their answers in a direct message to you. This is especially good for when you want students to answer a question with a clear right/wrong answer, and don’t want to air incorrect answers publicly.
    This also makes space for warm calling, which allows you to elevate exemplary answers (especially from students who might be dealing with some imposter syndrome) with the affirmation that their answer is right before they had to share it with the class i.e. “Emmy, your answer was so well thought out, can you unmute yourself and explain what you were thinking?”
  • Use in-platform tools for 100% engagement. Zoom has participant hand raising in even its most basic tier, and the upgraded versions which are free for most educators include tools like yes/no checkmarks and the go faster/slower arrows, e.g. “If you like this new way better than the old way, click the green yes checkmark. If you don’t like this way better, give me a red no x. If aren’t sure which way you like better, give me a hand raise.”
    Since these indicators don’t disappear, you can wait until 100% of your students have responded, offering gentle nudges if it seems like someone missed the directions. You can then use these tools to make space for not-completely-cold calls on opinion/evaluation questions, e.g. “Brian, I saw you liked the new way better — would you unmute yourself and let me know why?”
    If you’re using a different platform with fewer of these features, you may want to opt for something else like Pear Deck or Nearpod as your presentation medium (instead of Google Slides or PowerPoint), as those online platforms have CFUs and surveys built right in.
  • Use teletype (i.e. “live”) collaboration to see student screens. We’re used to circulating the classroom to ensure that every student was able to keep up with us, but that’s not possible in quite the same way over VC. Sure, you could have each student screenshare one at a time, but that’s both time consuming and stressful, since all other students have to watch as you go through the rounds.
    However, if you’re using a platform with teletype collaboration like Glitch’s “invite to edit” or Repl.it’s “Multiplayer” mode, use that to your advantage. Have all students (or even just the few you know will need the most support) share their workspace with you via DM, or a sheet, or a form. Then, at any point in time you can open up their workspace behind the scenes and see whether you’re moving too fast. This opens the door for you to address any misconceptions anonymously. If you notice that the first two workspaces you’ve opened are doing their indentations incorrectly, you can stop and show EVERYONE how to fix that without ever elevating any one person’s mistake to the front of the room.

How do we maintain a high ratio of student-time to teacher-time?

At Upperline Code, we care a lot about the concept of ratio.

We use the term ratio specifically to refer to the ratio of teacher time to student time. This can actually take a lot of different forms. For example, if a teacher lectures for 30 minutes, but 10 of those minutes are spent letting students run code and make predictions about their code, the ratio is 2:1. If a teacher lectures for 15 minutes and then sends students off to work in smaller groups for 45 minutes, their ratio is 1:3. We’ve found that the optimal ratio for most students and teachers to be for every 1 minute of teacher time, there should be 2–4 minutes of student time (in other words, somewhere between 1:2 and 1:4).

In our in-person classes, we tend to coach teachers to rely on questioning strategies (including soliciting predictions) and small spurts of independent practice during a lecture to improve their ratio, but we’ve found that those don’t work nearly as well in a remote setting. However, just because we’ve realized that questioning tactics aren’t going to be the key to ratio in remote learning doesn’t mean we’ve let go of our ratio dreams. We’ve found a few key practices to help improve ratio.

  • Teach in chunks of 2+ hours. This one surprised us — we really thought that student stamina for videoconferences would be lower than our own. But in our first weeklong class, the single most consistent piece of daily feedback was “I wish the class day were a little bit longer.”
    Part of what we found was that no matter how long the class was, it took us 15 minutes to settle in and get started and make sure everyone’s IDE was working. Then it was usually another 15–30 minutes to introduce whatever concept we’re teaching that day, and in a one hour block, that might leave as little as 15 minutes for students to code.
    Those 30–45 minutes of teacher-led time are much more palatable when they are followed by another 1+ hours of collaborative work time for students. Break that up with a game and a bio-break, and you’ve made time for students to really feel seen during their partner work time, rather than just lectured.
  • Establish code-along protocols. Watching a code-along has always been boring, so if you’re going to turn these things interactive, you need to be clear about how you want students to engage.
    Are students just watching you code? If so, what are you doing to elevate this above passive learning? What questions are you asking and how are students responding as you go?
    Or, on the other hand, are students typing everything along with you? If so, do they know they’re supposed to be doing this? Are you having them split their screens, and if so, is the code still legible when it’s been shrunk that small?
    Are you moving a speed where 100% of your students can follow along? Or are you giving them ample time to catch up between spurts of code? Are you running the code often enough for them to troubleshoot bugs? Are you taking the time to fix those bugs? Do students feel safe flagging those bugs up to you?
    The sooner you can normalize all of these protocols, the less time you’ll have to spend trying to guess what your students are doing on the other end of a videocall.
  • Shorten your lectures. In a classroom, we can read the room. In a videoconference, especially when some cameras are off and you’re sharing your screen, you simply cannot tell how your lesson is going. It often feels like you’re teaching to an abyss that isn’t listening and doesn’t care. We haven’t found a fix to this other than to simply talk less and get to practice sooner.
    We’ve always known that was best practice anyways, and the harsh reality of talking into a digital void makes that all the more clear, and holds us more accountable.
  • Give yourself & your students time to acclimate. Look, the first lesson will be weird. Things will go wrong and you’ll lose track of tabs you need. It will take you too long to assign and activate breakout rooms, and at some point you’ll spend 5 minutes presenting from a screen you thought you were sharing, but in fact were not.
    Don’t worry. It happens. Over time you and your students will develop some facility with these tools, so make time for this inertia and be patient with yourself and with your students as you settle in.

How do we foster engagement?

None of our classes would even come close to our in person without some way to foster engagement, and the secret sauce of engagement and collaboration in a virtual classroom is simple: use breakout rooms. We’re not the only ones who feel this as strongly as we do, and we’ve started to converge on a model that works.

Use breakout rooms for pair work:

Pair work is the anti-conference. Many of us feel on edge, under a microscope, and tired in a 10-person meeting. By contrast, breakout rooms — where you’re working with a partner in a lower risk situation — is where community forms.

  • Think, Pair, Shares. Send students to a breakout room with a puzzle, a question, or an unplugged challenge. Be sure to send them with instructions for an introduction, including who starts. If you want them to share something when they come back to the main room, have one student take notes so they can post it in chat later. Do this for any pair-share longer than about 2 minutes.
  • Pair Programming. Send students to a breakout room with clear instructions for how to break the ice, how to decide who will screen share, what they’re to work on, and what to do if they finish or get stuck. Give students about 2 minutes to settle in, and then visit each room to ask if they were able to get the screen shared. Stay in each room until one student’s screen is shared — this is critical. Without one student’s code on screen, you have not created collaboration; you’ve created a study hall where two students are working alone together.
  • Keep it to pairs. You will absolutely be tempted to try a group of 4, or small groups of 6. Don’t do this. The larger each group becomes, the more difficult it is to facilitate conversation and collaboration—two students will collaborate, so might a third if you’re lucky, and all additional students will either passively watch or just disengage.

Use breakout rooms for gradual release & differentiation:

Handling a class with a wide spread of mastery is actually easier over Zoom than it is in a classroom.

  • Sign-up sheets. If you have students of all different levels, share out a Google Doc with them all at the start of class, and have students sign in to different topics or activities. Have them self identify as in their comfort, learning, or panic zones; have them put their names under HTML, CSS, or JS; have them sign in as a freshman, sophomore, or junior — any sorting mechanism is fine as long as you’re sure students feel safe enough in your class to self-identify judgement free.
  • Raise hands to go. After you finish teaching, ask students to use the hand raise feature if they are ready to work independently, and leave their hands lowered if they want to go through a concept again together. Then set up breakout rooms and assign anyone with their hands raised to start pair work with explicit instructions on how to get started. This leaves you with a smaller cohort of students who will feel safer asking their questions in a judgement-free zone, since everyone else in the room also self-identified as needing more support before they could get started.

Use breakout rooms for 1:1 interventions:

This works especially well if you’re teaching an odd number — it lets you ask ahead of time “Hey, Sam, we’ve got an odd number — is it okay if I send you to a room to work mostly independently if I promise to check in?”

  • If a student falls behind in steps. This is something as simple as “my IDE won’t load” or “my internet went out, what did we just do?” Ask the student and a TA (or an advanced peer, if they’ve agreed to be a peer tutor) if you can send them into a breakout room together, and come back when they’re caught up.
  • If a student feels lost. This requires a little more thoughtfulness, and is best not left to a TA unless you really trust that TA to do both the technical work of catching them up, and the emotional work of reassuring them that it’s normal, allowed, and even healthy to feel a little behind at times.
  • If a student needs a check-in. Sometimes you just need a moment to ask how things are going — are they enjoying the class? Did they sleep okay? Do they want to work on something else? Is everyone at home safe & healthy? As a teacher you know these signs, and while you can probably read them better in person, you may not have realized that breakout rooms where a few students are working solo give you a really powerful opportunity to see and respond to them more immediately.

Do we need TAs? If so, what do they do?

TAs have turned out to be an incredible help, but if like most teachers you don’t actually have TA, a co-teacher, or a support teacher, that’s okay! You can designate a student for this role in both unofficial and official capacities. I’ve found that as long as you gain consent from this student in advance, and brief them on what you need done, a peer tutor can be even more helpful than a teaching assistant.

  • Chat support. I have a TA or student monitor chat. If someone asks for help, or falls behind, I make sure my designated chat support knows to unmute, ask me to pause, and read the question aloud to me. This lets me focus on the lesson without worrying that I’ll miss any urgent needs that arise in chat.
  • Breakout rooms monitor (as a Zoom co-host). If you make your TA a co-host in Zoom and then assign them to a breakout room, they can hop between rooms. To make this simple, I usually Slack my support teacher and we split the rooms. One of us will take even-numbered rooms and the other will take the odd ones. If your TA doesn’t have a ton of expertise, that’s okay! They can just go into the rooms, make sure student code is being shared on screen, and then if there are technical questions, they can backchannel those concerns to you.
  • CFUs on the DL. I usually name that students are allowed to Direct Message (DM) me or my TA at any time. I also ask questions like “What data type is in the variable name? Please DM me your answer so you don’t spoil it for someone else who is guessing.” This has proven one of the best ways to do a CFU where no one worries they’ll be judged by their peers.
  • Facilitate a whip around while you host. I launch my class with a question of the day; something like “what’s a piece of media (a book, show, song, or movie) you’ve been enjoying lately that you’d recommend?” Doing this in Zoom requires calling on each person, otherwise the order of who speaks next is unclear. But that process doesn’t have to be your concern — a TA can facilitate the whip-around while you take attendance, call an absent student, or whatever behind-the-scenes work you need to do.

What were we wrong about? What surprised us?

With all these learnings, there were a few things we didn’t realize we’d struggle with, and there were others that ended up being easier or better than we expected.

  • We’ve always known offline breaks were important — we didn’t realize how hard it would be to hold ourselves accountable to doing them. Something about working remotely re-awakened that first-year-teacher instinct to “cover all the concepts,” and the first schedule item to fall by the wayside in that pursuit are breaks. You’ll DEFINITELY need breaks if you’re planning 2+ hour lessons, and you’ll also find that you weirdly want to skip them. Resist that urge and commit to your breaks as sacred. Also, the magic windows seem to be about 5–15 minutes, done once every hour or so. When we did longer breaks (like 30 minutes), we usually got the student feedback that they’d have preferred to just power through and keep working.
  • Double your breaks. Building off that point, we used to be able to take game breaks for two purposes: to give students time away from screens, and to build community. Now screens are weirdly a requisite part of community, so we need to allot about twice as much time to breaks as we did in our in-person classes. Where we’d normally take 15 minutes for a game break away from screens, we now need 30 — fifteen for a community-building game, and fifteen for time away from the screen.
  • You can create asynchronous resources, but they won’t substitute for class, and only about 25% of students will use them. It feels like this is the mythical unicorn of remote learning. It feels so obvious — you’re already at home, your students are too, so why not just record all your lessons and let everyone learn at their own pace? You’re already teaching these lessons, why not record them? You can absolutely do all these things, but in our experience, when you share them out with students later, about 20–25% of students will want to use them. If you want them to be utilized more broadly, you have to model what this looks like, so if you’re hosting office hours and a student asks for help, don’t just send them the video — sit there with the student and watch the video together. Show them that it’s a code-along, and ask to see their code — notice when they miss a step and call their attention to it. Model that process once and students will start to see the power in it. Share them out without modeling, and those videos feel at best like a passive resource, or worse like just additional homework.
    Ultimately, I think a lot of school and learning is billed as delayed gratification — “do this homework now so you can get into a good school / get a good job / live a better life later” —and while there’s some truth there, remember that not everyone is motivated by that, and not everyone has reason to believe it.
    One beautiful, immediate upside to school is the sense of community you get to build with your peers. You get to do that right away, every day. So it’s no surprise to me that we lose a lot of buy in when we switch to asynchronous learning and strip away that part of school where they get to meet and talk to and work with peers.
  • As the group size changes, so does your entire teaching strategy. If I’m teaching a group of 16–24, almost everything we’ve written here works really well. But for a large group (of say 50, 75, or 100+), I’ll have to make peace with the fact that I can’t visit all the breakout rooms in the time you have. With that said, I have found that I can rely on chat in a large group to drive the energy in the room. When I have 20 students, only 4 will proactively contribute to chat without prompting, but when I have 100, the 20 who want to use chat will drive that for the whole class — they’ll set the standard and others will rise to meet it.
    For a particularly small group (usually less than 6), some of the tactics listed here like the chat waterfall or the DMs simply don’t work. They rely on momentum in chat that is hard to generate. I usually try to normalize simply leaving volume on so that it’s more a conversation, or doing cold-calls and/or whip-arounds after every question.
  • We’ve always known parent communication matters, but it’s harder than ever to remember to do it. Something about working with students over VC makes parent communication feel less natural or necessary. Maybe it’s because students are already at home, so it feels weird to call into the same space where you were videocalling moments ago. Maybe it’s because I used to make those calls at school, and it’s harder to do them from home. The reason it’s hard doesn’t matter — it’s important, and I have to remind myself to prioritize it.

Final Thoughts

Virtual/remote instruction is hard, no one has figured it out perfectly, and we’re so impressed by the resourcefulness of our teachers at Upperline Code, and incredibly proud of all the teachers in our broader network. We’re all still learning, we’re all getting better, and we’re grateful to be figuring this out in such great company.

Thank you for all the work you do to make remote instruction meaningful for students.

I know that each teacher’s context is wildly different, so the purpose of this post is not to say “you should be experiencing success, why aren’t you?” — If I’ve learned anything from my years in teaching, it’s that no two teaching contexts are the same, and I honestly wouldn’t dare presume to tell you how to fix your classroom, whether that’s even possible, or if it’s even broken.

But if you’re where I was six months ago (irritated, defeated, and frustrated), I offer this as a starting place, and I hope that my ideas prove helpful, even if only to spark some of your own.

--

--