How to teach online


  • Understand the benefits and disadvantage of online teaching, compared to in-person

  • Set up a good screen share

  • Understand the benefits and disadvantages of team teaching

  • Prepare for the teaching practice

Why teaching mechanics matter

  • When you teach, you are mainly showing a basic example for the learner to follow along

  • The learner has a lot more to think about than you do, so you need to minimize the possible distractions and unnecessary weirdness.

  • A learner will often only one small screen, limiting the number of things that they can think about.

  • You are must faster than learners (5 times possibly?) You have to do things to slow yourself down.

  • It’s easy to save these mechanics until the end, and then you run out of time.

Shell sharing

When doing any demonstration, there are difficulties:

  • If one misses something, you can’t rewind to see it - is there any way to catch up?

  • The learner must get oriented with the whole picture, while instructor knows precisely where to focus.

A good shell share has some of the following properties:

  • Large font

  • Shell history, available separately from the main shell window

  • Closely matches the type-along instructions

We have a collection of shell sharing systems:


The instructor will demonstrate several shell-sharing systems. You will use this in the teaching practice.

Screen sharing


Look at the various screen layouts in the CodeRefinery manuals. Use the HackMD to comment about what which are better or worse.

  • Many learners will have a smaller screen than you.

  • You should plan for learners with only one small screen.

  • A learner will need to focus on both your screen share and their work.

  • Sharing your a whole screen is almost always a bad idea, if you want the learners to do anything at the same time.

  • If you constrict yourself, then your experience is more similar to that of a learner.

Vertical sharing:

  • CodeRefinery has recently started trialing a vertical share system, where you share a vertical half of your screen.

  • This allows learners with one screen to display your screen side-by-side with their learn

  • Zoom provides a “Share a part of screen” that is good for this.


Don’t just teach, also make sure you guide the learners through the course.

  • You know what you just discussed, and what is coming next, but learners are often stuck thinking about now.

  • Give a lot of “meta-talk” that is not just about the topic you are teaching, but how you are teaching it.

  • Examples

    • Why you are doing each episode

    • What is the purpose of each exercise

    • Clearly state what someone should accomplish in each exercise and how long it will take - don’t assume this is obvious.

    • What is the point of each lesson. How much should people expect to get from it? Should you follow everything, or are some things advanced and optional? Make that clear.

Teach teaching

  • Demonstration-based teaching require two different types of focus:

    • Doing the mechanical steps as a demonstration

    • Explaining why you are doing it

  • This is a lot for one person to keep in mind, so can multiple people work together for this?

  • Team teaching idea:

    • One person is doing the demonstrations

    • One person is giving the commentary about what they are doing

    • The lecture becomes a discussion between two people instead.


  • This reduces the pressure on each person (reduces demo effect)

  • You are less likely to forget things

  • It slows you down in teaching

  • It makes the lesson more interesting to listen to

  • One person can follow questions

  • Great for introducing new instructors (which half is easier to start with?)


  • Requires two people’s time

  • Requires coordination when preparing (slows you down in preparation)

  • Unfamiliar concept to most people


  • Questions are great, and important for any practical and interactive class

  • But questions in main room doesn’t scale to very large rooms.

  • CodeRefinery strategy: HackMD for questions

    • Chat is not good enough, you can’t reply to old things

    • HackMD allows threaded replies and follow up later

    • You need some other helpers to watch HackMD and answer, and bring things up to you. And let you know how things are going.

    • Learners can ask anonymously

    • Learners don’t have to worry about interrupting the flow.

    • Disadvantage: can produce information overload, warn people to not follow too closely

    • With too few people, it can turn out to be very quiet.

  • We will learn more about HackMD questions tomorrow in Running a workshop: online.

See also

Teaching practice

In Teaching practice and feedback, you will break into groups and try to apply these strategies to a five-minute example session.

See also

In this lesson:

CodeRefinery manuals: