As a university student and a private programming teacher, I have experience in both sides of the screen of an online class. I've been fortunate that most of my teachers have adapted well, but I know that not everyone can say the same. From experiences of my professors, other private teachers in my circle and myself, I've tried to compile some advice on teaching online programming and CS lessons.
Even if programming only requires your code editor, nothing can replace a drawing board when you want to explain algorithms, data structures or math. Let me say, even if you have slides, its extremely rare that they are more visual than drawing something in front of the student.
Your best options, from better to worse, are:
A graphic tablet and screen sharing.
This is the most natural way to integrate your writing and drawing into an online class. The main disadvantage is that a graphic tablet is an investment not everyone can or want to make.
A second webcam pointing to your desktop.
This is what I do with my own students. I attached an old webcam I had to a piece of cardboard and used it to draw in a paper in front of it.
Before your class, you may want to try the following.
- Check if the platform allows you to rotate the image so the student can see the paper the same orientation you do.
- Learn the fastest way to switch cameras. Some platforms have shortcuts for that, but if they don't, memorize where to find the configuration to do it as fast as possible.
A physical board
If you have your own blackboard or whiteboard, you can always keep it at hand and use it in front of the camera. It isn't the most comfortable option to use with a computer, but it is still the best one for those less techy teachers (not as unusual in our field as it sounds).
With this methods you avoid things that waste your time and the attention of your students like:
- Drawing with the mouse. If it is absolutely necessary, do it, but it is so slow and complicated that usually is not worth it.
- Writing math in plain text. If we're talking about basic stuff, it may be possible (maybe even with the help of LaTex) but the simplest level of complexity, like matrix operations, sub and super indices, etc, will drastically drop its quality.
Sharing screen is a basic activity in almost any online lesson, so you need to keep two things in mind:
- You have to help your students focus on what they have to.
- If you are sharing slides, do it in fullscreen mode.
- If you show code, zoom in the editor or make the font bigger, to make sure that your students can read it easily.
- Have your desktop and browser tabs as clean as possible, so your students don't get distracted by them (and to protect your own privacy if you use online resources).
- In most platforms, sharing screen means you can't see the classroom chat, so tell the students how they can call your attention. Either activating they microphone or keeping their questions for the end, but make sure they know what to do if they don't understand, because the feeling of disconnection with the teacher can make you lose their attention.
- If not all students have microphone, another option is to have one student (who does have one) in charge of reading the questions of the others. Sometimes they take that initiative themselves, but it is good to suggest it yourself, in case they don't.
If you are going to use them, then you can't do it the same way you would in person. In a face-to-face classroom, they are not the main focus of attention, because your physical presence plays that role. In an online classroom, on the other hand, students don't have you but a flat screen to look at.
For this reason, they shouldn't feel scared nor bored when looking at it. What level do your students have? Make sure they don't see at once a lot of unknown or trivial information. Make it appear as you talk and pace it to their understanding. An evolving screen keeps them engaged.
As the teacher, you will also have a flat screen in front of you instead of your students. In person you can perceive their feedback more easily and they might feel more comfortable rising their hands or answering a question.
But online, you don't always see them, so don't assume that they just will interrupt you to ask. Make periodic pauses for them to raise their questions or even to check they have listened what you just explained.
It is hard to feel that you are talking to a wall. So verbally greet the students that speak to you or that activate their webcam when doing it. Not only it is a nice gesture to you, but also helps them feel more involved.
If there is no difference between your lesson and a recorded video, your students feel discouraged from participating.
Finally, take into account that your students, almost always, will be using the same computer to attend your class and to work, if you are giving practical lessons. This can be a problem if you make them use software that consumes a lot of resources (some IDEs, emulators or VMs, 3D engines, etc) and their computer is not powerful enough to have it running and reproduce the lesson at the same time.
If this is your case, separate the instructions for the practical sessions and the sessions themselves and have a lighter alternative of communicating during them, like a forum or a chat. Students might feel helpless if you are streaming your class and they can't follow you because their computer is about to melt.
I hope you found this useful. Do you have any other tips? I'd love to know what is your experience with online classes!