Teaching from Home via Zoom
CS50 is Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming, a course that can be taken both on campus and off. The course is unusual, perhaps, for its “production value,” which is part of its pedagogy, so that students watching videos asynchronously online feel no less a part of the classroom than students on campus. With all students now off campus, though, and all classes online, the course has aspired to optimize students’ synchronous experiences via Zoom as well. In this post, a look at the hardware and software with which we have experimented at home, including links so that others might adopt a solution like ours in whole or in part.
CS50 has long used Zoom to hold classes for students online, including sections and office hours for students at Harvard Extension School and supersections (i.e., extra-help sessions) for students at Harvard College. And some colleagues and I also use it with cohorts of students in the Harvard Business Analytics Program.
But even though Zoom enables one to teach from anywhere, internet permitting, I tend to prefer teaching on campus (even when students themselves are online), where a studio-like setup allows us to stream better audio and video to students. Even if the audio and video from students isn’t as good, the intent of that setup is to optimize, at least, the instructor’s, so that instruction in speaker view is ideally closer to in-person quality than it is to webcam quality. In gallery view, when everyone’s a small tile, the quality perhaps matters less. In both views does the actual pedagogy on camera matter as much as it does on campus. But the focus herein is on the technology that enables and amplifies the same.
Until recently, only on two occasions had I taught without that studio-like setup: once (in my kitchen) at home during a snowstorm and once at Google while traveling. (We were visiting YouTube that day, and, suffice it to say, they had good internet!) In those cases was Zoom (or, really, video conferencing itself) game-changing, allowing us to hold class no matter the circumstances. But the results weren’t as good with a MacBook Pro’s built-in camera and mic alone, not to mention the overhead lighting at home and at Google. As for the ergonomics, I think my laptop at home was propped up at eye level with a cardboard box and, at Google, on reams of paper instead.
When the pandemic drove everyone off campus and all classes online, we aspired to preserve as much of that on-campus quality as we could. With classes potentially online-only for the next year, we aspired to recreate at home approximations of the studio we’d left behind. With Zoom itself (or, really, internet bandwidth) the ultimate constraint, we optimized the components we could.
Here’s what we did, all in my kitchen (which happens to have the most ceiling height). To be fair, it’s not been a huge loss. Indeed, I’m hopefully better at teaching than I am at cooking.
Implementation Details
Hardware
Atop my kitchen counter is a standing desk converter, which allows me to sit down for meetings and stand up for classes. (I find I bring more energy to classes if on my feet, even if constrained by a camera from walking around.) Atop that converter sits my MacBook Pro, which is connected via both Wi-Fi and Cat6 to a nearby home router. Perched just above my laptop, wired with USB-C, is a Logitech BRIO, a 4K webcam atop a gooseneck stand that’s clamped to the converter so that it follows me up or down when standing or sitting. Also connected via USB-C is wireless receiver that allows me to wear a lavalier mic, without any tether, that yields better audio than does the laptop’s own built-in mic. And so that the receiver doesn’t occlude multiple USB-C ports, we dangle it via a dongle. To the left and right of all this are a pair of short LED lights on short stands. Behind me, meanwhile, is an 8'-by-8' white backdrop (that also includes green, blue, and gray sides), lit by another pair of tall LED lights on tall stands weighted with sand bags.
It’s not inexpensive, but, after discounts online, the added hardware is about the cost of a (higher-end) laptop. Indeed, much less than a typical studio! And even fewer components might suffice in other (non-kitchen) environments.
Here are an artist’s renditions of everything but the kitchen sink (literally):
The end result is high-resolution, minimalist video (with no pots and pans in sight) that also stands out in gallery view because of the backdrop. And with a green instead of white backdrop could the video’s background even be chroma keyed, yielding more realistic virtual backgrounds.
But the result is even better with the right software.
Software
I’ll admit I’m not a fan of how Zoom implements screen sharing, relegating the presenter to a single, small tile alongside their screen, as in the below. Indeed, in slide-heavy or, in our case, code-heavy classes, that layout might be students’ experience the entire time. I daresay it rather defeats the point of having video at all.
Granted, in speaker view, you can resize the two, shrinking the slides (or code) to grow the presenter. But why make the user do what we could do for them? Plus, space is still wasted. Indeed, it’s not even picture in picture, with the presenter inset, it’s picture and picture. We should do better.
And we can, thanks to OBS Studio, which is free, open-source software that allows you to lay out “scenes” using “sources” like your camera and windows, as in the below.
Thanks to open-source plugins for macOS, Windows, and Linux can you then output those scenes as a “virtual camera” that appears in Zoom’s settings like an actual camera that you can select in the usual way.
Here, then, is the end result that students experience (in speaker view)!
Lessons Learned
To be fair, it took us a while to figure all of this out.
Our first attempt at a backdrop proved too small and logistically limiting. One edge or another was often in frame. And moving my laptop up and down, as for classes or meetings, required constant adjustments. Worse yet, even when weighted down with a sand bag, I worried its stand would tip over. We alternatively considered a cloth backdrop on a frame, but it likely would have required steaming to avoid wrinkles.
We relied initially on my laptop’s built-in microphone for audio. But particularly when standing up and moving around (if only a bit), my voice would noticeably fade in or out. The lavalier mic, by contrast, ensures a constant distance from my mouth.
To minimize clutter, we initially tried a single long light for back lighting, positioned horizontally along the bottom of the backdrop and aimed upward. But that yielded too much of a white-to-gray gradient (and would have precluded a successful chroma key when using a green backdrop).
To free up space on the kitchen counter, we considered a laptop stand for my laptop. But that would have proved wobbly, with no room for my teaching notes.
As for software, we initially tried ManyCam, which seemed more user-friendly than OBS Studio. But it tended to be temperamental, with some settings not sticking. And it wouldn’t have been free.
That the end result is so seamless is ultimately the result of both hardware and software. But OBS Studio can certainly be used without added hardware; scenes can instead use built-in webcams and mics as their sources. The added hardware, meanwhile, can certainly be used with just Zoom, sans added software.
Acknowledgements
Special thanks to CS50’s own Ian Sexton, Tara Kavanaugh, Andrew Markham, Rongxin Liu, Arturo Real, Valerie Coffee, and Colton Ogden, who figured all of this out!