I have been teaching online from September 2020 till March 2021. During this time, I started two new courses - Advanced Network Programming and Storage Systems, and continued running a paper reading seminar Advanced Topics in Distributed Systems. Due to their nature (seminar, lecture with programming homework), all three courses entailed a very different nature of interaction with students. Let me summarize my experience with these classes and my general experience and struggles.
Advanced Network Programming (September-October 2020) is a medium enrollment BSc. class (~70 students). As this was my first bachelors class, I had to understand the expectations, the expertise of the students, and the kind of details the students expected in the class. Furthermore, to make the matter complicated, we did not get any teaching assistants in this cycle. Hence, Lin Wang and I ran the course completely by ourselves. In a typical lecture session (1:45hrs), between 30 and 50 students joined. They were vocal, and eager to ask questions during the lecture, and give feedback on what can be improved with the teaching. However, almost all of them had their cameras off, hence, it was very hard to gauge the understanding in the class. This setting meant that many weaker students struggled to keep up with the course material and the project. The course also had a group project in which the students had to develop their own TCP/IP stack in userspace and test against a Linux server. We gave flexibility in the deployment, which in turn meant that I had to provide additional debugging instructions for network debugging (IP forwarding, TUN/TAP devices, tcpdump) various flavors of Linux and sometimes surprisingly for the Windows Linux subsystem and Cygwin. It was doable, but not scalable. Due to the lack of teaching staff, the project evaluation was done in a limited time as an online group interview. I felt that the students struggled with the format as they were not used to being bombarded with questions in a short duration. Some felt anxiety and were nervous in the online setting, which could be seen in the length of their answers. As there was a little flexibility with the schedule, I had to learn how to quickly interrupt students when they went off track, and to ask specific questions. On the plus side, the student feedback was good. Many appreciated the complex, unstructured coding that they had to do in a real world networking setting, however, some struggled as well. A few mentioned that they enjoyed reading the RFC 793 - whoever you are, you are my heroes and heroines! But almost all of them mentioned that the course covered too many topics and at times was hard to follow. We agree and we plan to revise the course load next time.
Storage Systems (November-December 2020) was a selective enrollment master class (~25 students), about 10-15 followed the class regularly. From my experience running the ANP class, I put in an additional effort to provide detailed, clear deployment and debugging instructions on the projects. The setting in the storage system was also a bit easier as there was less ambiguity in the deployment - QEMU vm with an open-channel storage device. Also, the expertise of master-level is different; the students were more independent and were happy to help each other out online, and they were more engaging on the class discussion forum. I also felt that due to the novelty of the topic (NVM storage), many students felt at ease to ask questions about anything they did not understand. In the networking class, there was an “unspoken” expectation regarding the expertise and knowledge of the students on the topics of networking. In the lectures, the students had their cameras on, and I could see and remember their names and faces. This gave me a better feeling regarding the overall tone and status of the class. A small enrollment also helped to make the experience more like a real class than just yet another online class.
Lastly, from February to March 2021, I ran a flipped classroom paper reading seminar - Advanced Topics in Distributed Systems. This was a selective enrollment, thus only a small number of students participated (less than 10). By this time, I started to feel the dreariness and monotony of online teaching. The interactive (instead of lecture) format of the class helped, also with a nice selection of eager students who wanted to learn and understand the paper reading and reviewing process. For me it was a lot of fun, but for the students it was challenging at the start. Based on the student feedback, I also revised the format of the course to decrease the number of reviews, and instead put a mini-survey at the end of the course. Flexibility helps, and that is the top insight into my online teaching experience.
Plan ahead with details: Online courses require more detailed planning and instructions, as the opportunities of asking questions are restricted. Thus planning, course schedule, deadlines, grading criterias, assignment handbooks – all should be ready and shared on day one of the class. Aim to do minimum changes to the timetable as it just creates more load for the students to keep track of changes.
Be responsive, open, and approachable online. Messages and online posts are the only way students can currently reach us. I aim to reply within a few hours to any questions asked. Do not treat course emails as the best effort service. It hampers a student’s learning experience. Furthermore, put a bit of effort to come across as warm and approachable. These are difficult times for many of us, so a bit of flexibility, openness, and warm welcome to the online class goes a long way.
Put pause slides. In order to break the monotony of online lectures, put explicit pause slides with questions or statements that can start student interaction or discussion. This way you can catch a break, and give students a chance to speak up. Otherwise, I often find myself talking for a long and extended period (not recommended).
Provide lecture recordings. My preference is to record the lecture while giving them, instead of providing pre-recorded lectures. This way, there is spontaneity and opportunity to adjust the tone, pace, and details of the lectures based on the student feedback and questions. In any case of your choice, make sure that a lecture recording is available online for students to re-watch.
Think of the shy students. Students can be shy in an online setting, especially if they have to ask questions in front of the whole class. Typically, these students will come to me after the class to have a discussion, which was not possible anymore in an online setting. Hence, I encouraged them to send me emails and set up separate meetings. A few took me up on that offer. Again, doable this time, but not scalable for every class.
Share all details with all students. Naturally, during the interaction with students often new details come up which I have missed in the project, or the class. So instead of only those students knowing about it, I typically make sure to post a summary of such discussions on the class forum for everyone to benefit. This way I ensure to be fair to all students.
How do you plan to take the exam? We need to seriously think about how we grade students and take exams. Online proctored exams are intrusive, and stressful. Often they can also lead to false positives, which adds an additional layer of stress for students. If possible, simplify the exam format. For the last round I offered an objective, pick-1-out-of-4-options exam. However, there are more possibilities to make the final assessment more interesting and less stressful for students. At the same time, we need to make sure of the quality of the assessment and not to overload teachers. I do not have a winning formula yet.
Know your teaching platform. Find out capabilities of the platform that you use for teaching - shared posting forums, online chats, material sharing, exams. Check the default notification settings. For example, in one of the courses, the default platform setting was not to generate notifications when there was a new post in the online forum. The students missed out getting timely information due to that. It was bad, completely my mistake. Now, I announce at the start of the class to enable notification settings and look for enabling notifications in the settings. It eliminates much confusion.
Create a habit of predictable communication. Students take multiple courses, and just like us are overloaded with emails from the courses, notifications from the university, admin stuff, COVID-19 updates. Hence, it is important not to overload them with frequent announcement emails on a daily basis. If possible, create a pattern of predictable communication. Weekly or bi-weekly updates, for instance. I tried to recap important notifications at the start of the lecture and reminded them to check the notification board.
Be aware of Auxiliary activities. Activities such as forming a project group, doing a group study together, preparing a demo can be hard in general. Doing an online group project is even harder. Especially for courses at the start of the academic year. For example, ANP was the first course in the new academic sessions, some students struggled to find partners (because they did not already know other students). We ran a basic match-making process, but I feel it was inadequate and definitely hampered the learning experience. Plan for this upfront and help students to form a group more actively, perhaps host a separate session to facilitate introductions.
I struggled with:
Time management: I overran students many times with details and overestimated the level of concentration they might have when they joined my online class. I will decrease the number of topics covered in the course, slow down the tone of delivery, provide additional reading material (instead of covering everything in the class), and make appropriate breaks. Typically in a class, you can see on the faces of the students what they get and what they do not. It was hard to judge the tone of the class online.
Online environment: In my opinion, there is no good software to replicate classroom settings online. I mostly used zoom, but as soon as I share the screen for presentation, all the participants’ faces diminish on the side. I cannot see the slides and all the class participants simultaneously. Plus, there is an explosion in the number of tools I have to use for different purposes: zoom, canvas, skype, hangouts, slack, teams, mentimeters - I am at the limit of what I can handle online. I typically walk around in my class when giving lectures and interacting with students (also to control my own jitters), which clearly was not possible in an online setting. My home office only has rudimentary basic A/V hardware, where I have to put my laptop on a stack of books to keep it on my eye level. At the end of the day, sitting more than 10+ hours in front of the computer, I felt drained.
Monotony: I can hardly remember if any online class was different from the others. All just started and ended in the same manner. There is a monotony in this interaction. But all of them took more energy and effort from me to keep them interesting and engaging. The students are also getting bored sitting in yet another online lecture, hence, the onus is on us to keep the lectures interesting and high-energy. Hence, I always felt doubly tired and drained after each lecture than after a usual lecture. The last 6 months have been taxing.
Let’s hope for a better world in the coming months, and years! Meanwhile, everyone stay safe and healthy.