Recently, I wrote a blog post about my set-up for teaching a class of 20 - 25 virtually. I thought writing about my set-up for how I teach the same class in person could be a nice contrast.
I’ve done a lot of teaching in the last 8 - 9 years, and a lot of trial and error has gone into figuring out the most seamless experience for me, the teacher, as well as the students following along.
When I am teaching a class full of people to code there are several things to consider:
- What do I do if a student falls behind?
- How do I keep everyone engaged while just staring at a screen?
- I need to share a screen with students for them to follow along with my code
- I need to have my notes and next steps open, but hidden from students
- I need to have a means of sharing static images, code snippets, etc.
Do not use screen mirroring. This is such a rookie mistake, I should know, I’ve done it.
Here’s the problem with screen mirroring:
- This means that you are going to be constantly switching between your notes and the code you are writing. This is a really annoying experience for you and the students. Seriously, you’ll give everyone whiplash watching your screen.
- You students will type slower than you, and while they are catching up it is really useful to be able to read ahead in your notes. You can’t do that if it is all on one screen.
- I constantly flick to Slack to send longer code snippets or links, but I also use Slack to message the other mentors or team members. These are not chats that I want flashed on the screen all the time (see the photo in the post about teaching virtually 😂). It’s much better to keep them on a separate screen.
So instead I have two separate displays. Although there is a gotcha here: this requires you to physically be positioned somewhere in the class where you can actually see the screen. Almost always you will end up nearly parallel with the projector, which means you will be typing in front of you, while watching a screen beside you. I can assure you, this is much more difficult than you would expect, which is why you might be tempted to go back to screen mirroring. Stick with it! It just takes a bit of practice, and besides, you will be typing a lot faster than people learning code syntax for the first time anyway, so who cares if you are a bit slower and make more mistakes than usual?
How does it look in practice?
Here’s the screen I can see on my laptop:
Meanwhile here’s what the students can see on the projector:
Keeping a class engaged
Honestly this is actually a bit harder in person. When everyone is sitting in a classroom it’s so easy for someone to turn to the person beside them and just start chatting. It’s also really easy for students to spot when another student is disengaged and got up to get a glass of water - that usually sets off a whole chain reaction.
My advice for teaching in person is much as the same as teaching on zoom: just keep it high energy and have frequent breaks. On top of this, get comfortable with someone chatting while you are teaching, there is no way around this, us humans are social creatures, just let it happen. Generally if you start talking about something vaguely important, people stop talking and start listening anyway 🤷♀️
Wrapping it all up 🎁
Teaching a class in person does have one big advantage over teaching via zoom (other than the human interaction), which is when you are teaching in person with mentors wandering around, it doesn’t matter so much if someone falls behind. The person next to them or a mentor will help catch them up. You don’t need to pause the class for one or two people constantly. For this reason, you can get through so much more content in person that you can online.
Of course, it is also not as socially acceptable to teach in PJs in person compared to while you're teaching from home on Zoom, so you know, apples and oranges.