Remote Lab Sessions: An Experience Report

| 5 minutes

It’s back. After a few months of uncertainty and vague rumors, the lockdown has made its comeback to France. After a first iteration that ended in May 2020 and that came with its set of complaints, surprises, and deceptions, we have to adapt to the new restrictions and learn from our experience to overcome the ever-increasing number of challenges that the current global epidemic throws at us every day.

I started taking classes for my last year of Master’s back in September when I was offered the opportunity to be a TA in the compilation class at ENS Rennes. I took this as a chance to get my first teaching experience in front of real students, and it has been a great experience! However, lab sessions will be very different for my students and me, with the new lockdown coming into effect. Luckily, I already had a chance to get my hands dirty on the topic of remote teaching: a few weeks ago, I had to stay at home for a week because I had been in contact with a person that later got a positive Covid-test result. During this week, I gave one lab session entirely remotely.

This post tries to give an overview of my experience with conducting a remote lab in computer science. I go over what went well, what did not, and what could be improved. The idea for this writeup originated from Martin Quinson, a professor at ENS Rennes; you can find his blog post (in French) here.

Setup

We use Discord as our main platform to exchange online information about classes and communicate with students. The CS department manages a server that groups all students from the same year, with separate text channels for each curriculum course. In addition to these textual channels, there are vocal rooms where students and teachers can connect to communicate via audio and/or video.

Since the labs have to be done in groups of two students, we dedicated each vocal room to a different group with one person sharing their screen to make it easier to follow. By doing so, I was able to go from group to group, answering questions and checking on the status of their code. We also used the course’s dedicated text chat for students to ask general questions. Whenever they had more specific questions, students would send me a private message to ask whether I could join their vocal room, and we would proceed from there.

I used my regular audio and video setup: Sennheiser HD 558 headphones, coupled with a Logitech webcam with high definition video and audio. Whenever I had to draw something, students suggested I use AWW App. I’m not a huge fan of the interface and the fact that you need a premium account to access all of its features. If I ever need a better virtual blackboard, I may take some time to do a little more research.

How did it go?

Overall, this first remote lab session went really well for me. I asked students how they felt about it, and most of them gave positive feedback. The next paragraphs summarize what went well, what did not, and how I could improve my following labs.

The use of one vocal room per student group was beneficial for both the students and for me. This layout is close to the experience they have when doing labs in person and naturally leads to pair programming through the shared screen. Some students even took the initiative to use their text editors’ collaborative code editing capabilities (most of them were using VS Code), working remotely on the same copy of the code. The text chat provided nice interactions, with students sometimes switching between vocal rooms to answer or answering directly in the text channel when I was busy with another group. Writing code in a message is also tremendously helpful compared to in-person labs, where code examples are quite cumbersome to give on a blackboard.

As with all remote calls, there were some technical difficulties we had to solve before everything could run smoothly. Microphones and webcams were not always correctly configured, leading to a lot of white noise and fiddling with each student’s audio volume. Some students were also unable to connect to the Discord vocal rooms, probably because of paranoid port filtering on their network. This issue has been reported for some of the WiFi networks provided by the university in student housing. I’m not sure if this will be fixed one day.

The setup we used for this remote lab session turned out to work quite nicely. For future sessions, I would like to encourage students to interact more in the text channel, even when they have individual questions. This would certainly help smooth out each group’s progression, those who have done more work already being able to help others. One can quickly get buried under a mountain of private messages, which can be hard to follow. I also wish to improve how I handled progress reports, maybe by asking each group to do a quick recap of their progress at the end of the session. I have a generally good idea of what each group is doing individually. Still, it could be beneficial for the students to get some perspective on their work and others’ work to plan the next lab session accordingly.

Conclusion

The setup we used for this remote lab session turned out to work quite nicely. I was skeptical at first, most notably regarding interactivity, but I do not think that the latter was impacted by the session’s remote setup. Encouraging regular progress reports and keeping track of each group’s progression proves to be a key element in planning and adapting lab sessions. Remote work makes it more difficult to get direct feedback from students, and they often do not give any feedback unless asked for it.

I still have a lot to learn and improve, but I’m confident that we will eventually converge on a solution that works well for everybody!