I’m teaching one section of COMP 1010, the intro CS class at the University of Manitoba, and I have 160 students in my section. There are 600+ students in the whole class; three sections are synchronous remote learning and one of them is a distance ed section with no labs or synchronous meetings. For my synchronous remote learning section, I use team-based active learning in Gather.town on Tuesdays for 75 minutes and in Zoom on Thursdays for 75 minutes. The other two synchronous remote class sections are using Webex for class meetings.

Context: how I typically teach
I have taught in the fully-flipped, team-based, active learning style for many years. So students in my undergraduate classes always consume course content before coming to class by watching videos that I post online (and perhaps reading a textbook). Then they come to class and sit with their team and participate in active learning activities to engage with the material, and test their understanding by applying the content to answer questions and solve problems. My paper on lightweight teams gives details on this approach and another paper shows how this approach helps with retention.

Switching to remote learning
I have not changed what I am doing with the move to remote learning, I’ve just had to adapt and find ways to do those same types of team-based active learning activities online. The fact that I had already made videos for all the content in the class made the transition to remote learning much easier for me than for many others.

Problems with team-based learning on video conferencing platforms
So I looked around at the video-conferencing platforms and found them all lacking. There is one critical issue with Zoom, with Webex, and with Microsoft Teams, which are the three platforms I first investigated. All three of these platforms enable some form of breakout room (or team channel) where you can place students in groups and have them work together. That’s great. BUT, while they are in those rooms, you have almost no way to communicate with them as a larger group or share resources with them or show them anything. You can send a short text message in Zoom or Webex, which appears momentarily on student screens. So, if you want to interrupt an activity to give everyone some added context or extra information or share a demo, you have to pull everyone out of the breakout rooms, and then send them back to complete the task. This takes up SO much time. As an instructor, you can waste a lot of time just going in and out of the breakout rooms, though the process of switching between group channels is pretty fast in Microsoft Teams. When a student in a breakout room has a question, they have to summon you and then only the people in that room hear the question and answer. So, the ability to interact with the whole class (for example, ask everyone to be quiet for a second because a student has a question to ask that is relevant to the whole class) just gets lost on these platforms. Also, there is no ability for students to mingle and randomly meet other students in the class.

Then, in July, I found the Gather.town platform. It addresses most of the problems I’ve outlined above. Gather.town is a 2D world that looks like a 1990s-style 8-bit video game, but with video conferencing built in.

When people join the world, they are given an avatar that they can move around, and they can choose different avatars of various skin colours, hair styles, with wheelchair, etc. Oddly, the choice of shirt colour also changes the hair colour of the avatar. That’s a bit bizarre.

My learning assistants and I dancing in Gather.town (as denoted by the hearts above our heads). When our avatars are this close together, we can all see each other’s video streams and hear each other (though the video feeds are not visible in this zoomed-in screenshot.)

Spatialized Interaction

The video-conferencing interaction in Gather.town is much more like real life: when your avatar approaches another avatar, that person’s audio and video comes into focus, and you can talk to them. Groups of avatars can hang out together and chat. If your avatar is in between two groups of people talking, you can hears bits of both conversations. As you walk away from a group, their video streams and voices slowly fade away. There is a real sense of being in a space with other people, and during this time of COVID social distancing, that’s a really nice feeling. If you are trying to move your avatar around and there are lots of other avatars in your way, you can hold down the ‘g’ key and ‘ghost’ through them. I’m not much of a gamer, but I gather this is a pretty standard navigation feature. The other fun key to press is ‘z’, which makes your avatar dance and places a heart above your head. We use this in class as a substitute for clapping or cheering.

Private Spaces for Team Interaction

Team table on an area rug. Every avatar that moves onto the area rug joins a private video chat for the team, and the team can press ‘x’ to open the interactive whiteboard.

There are also ‘private spaces’, such as a table with chairs. When avatars sit in those chairs, they are in a private video chat that can’t be seen or heard by other avatars even if they are close by. There are also area rug private spaces where everyone on the area rug is in a private group video chat. I use this to allow students to sit together in teams. There are interactive whiteboards and so you can create a private space and give a group or team a whiteboard or an interactive Google Doc to work on together.

A Virtual Podium

Then there is the spotlight or podium feature — this enables a person with moderator privileges to spotlight themselves and essentially join every private group simultaneously. When I spotlight myself or stand at a Podium, I project myself into every team and can talk to them just like I’m talking to the whole class. It doesn’t become a gigantic group chat — the audio channel only goes one way — they can hear me, but I can’t hear them (though I can see their muted video streams). This enables me to interrupt their team work, provide extra information, clarify activity requirements, etc., all without pulling them out of breakout rooms. And, there is a hand-raising feature. So, if a student in a group raises their hand, I can spotlight myself and spotlight that student, and then they can ask a question, so the whole class hears the question and my answer, while they are still in their team spaces. No wasting time pulling students out of breakout rooms and then sending them back to breakout rooms.

My active learning classroom has 32 numbered tables with five chairs and an interactive whiteboard at each table. The central area has whiteboards, too, and there is a help poster at the back of the room.

The gather.town worlds are customizable, and so I have designed an online active learning world that is better than any actual classroom available for teaching large classes at my institution. My space is called “DrCelinesClass” and it contains a large active learning classroom, a video room, my office, a smaller lab/tutorial room, and a big lobby with lots of lounging furniture. There’s also an outdoor space to explore, with a beach (that’s something my university definitely doesn’t offer!). My customized Active Learning Classroom has 32 numbered tables (numbered 0–31, of course!) and each table has 5 chairs, and is also on an area rug. What this means is that when the five students on a team are at their table, they are in a private video conversation (similar to a breakout room). But other people can move their avatars onto the area rug and join the conversation of that team. So, it’s easy for me as instructor to say something like: “Send one emissary from your table to the table that is numbered one higher than yours, and have them do ….”. Or, when I am doing peer instruction clicker quizzes, and the answer distribution is all over the place, I can tell the whole class, “Get up and wander around! Bump into someone new, discuss the question and convince that person your answer is right! Then I will re-poll the question”. This mimics the way I run my face-to-face classroom, and Gather.town totally wins for providing this kind of interaction. When I see more than 100 avatars suddenly moving around in the space, it’s kind of magical. The only thing that is missing for me is the audible classroom buzz.

A zoomed in view showing my avatar and my own video conferencing window. When I move my avatar onto a team area occupied by students, their video feeds appear across the top of the screen.

Students in their teams can share their screens to show each other how they are coding something. The platform also has standard functions such as built-in text chat, and the ability for someone to raise their hand. Participants with hands raised rise to the top of the participant list on the right, so it’s easy for me to find them and spotlight them. There is local chat (for conversing with avatars nearby), global chat (which goes to everyone in the whole space) and also private chat. I can click on any student’s name in the participant list and text chat with them directly.

If you click on someone’s name in the participant list, you can chat with them via text, you can spotlight them so they can ask a question in front of the whole class, or you can locate them, which draws a line between your avatars.

I can also click on a participant’s name in the participant list and ‘locate’ them, and that will draw a line between my avatar and theirs so that I can go and talk to them locally. This is actually kind of a fun function. It may seem unnecessary, but when there are over 160 avatars scurrying around, it’s actually really helpful.

My online office, with waiting room. The inner office is a private space, so conversations in there can’t be heard by people in the waiting area. Students sign-in at the board to create a queue for help.

As part of the online world I’ve built, I’ve also been able to have an online office space. The office is split into two parts: a waiting area and the inner office. Students who come to office hours can see whether someone is in the office with me, and they wait outside, just like in real life. My inner office has some decorative furniture, but the whole office is a private space and students in the outer office can’t hear the conversation I am having with a student in the inner office. My inner office also has an interactive white board I can use when working with students.

In the outer office, I have put up another whiteboard with instructions for students to add their names to the list as they come in and then sit at the tables and chat with one another. I also ask them to identify what they want help with. When I am done with one student, I know who is next in line, and I can see at a glance if there are multiple students needing help with the same concept or issue. I can then invite them all in to my inner office together. The nice thing about the waiting room is that it can be a social space. I have often found in real life that students sitting in the hall outside my office during office hours chat, get to know one another, and help each other out. It’s also really nice for students to see that there are others who are also needing to seek help. The waiting rooms on Zoom are empty voids in comparison.

Tutorial room used for pre-test study sessions run by learning assistants.

I have a smaller lab-type room in my Gather.town space that is called the Tutorial Room. This is being used by the learning assistants to hold study sessions prior to the tests. It’s a slightly more intimate space than the huge active learning classroom and students can study together in groups of various sizes. This room actually has a virtual podium near the door, and any avatar who stands at the podium is able to project to everyone in the room.


Alas, all is not perfect in Gather.town. There is one technical limitation that is definitely problematic. The screen share feature is in beta, and while it works perfectly well in small groups (like when students are at their team tables or I’m working with a student in my office), it completely chokes when I am spotlighted and trying to screen share with the whole class. When I do that, students tell me that my audio feed completely breaks down and the slides don’t appear to advance, etc. Luckily, since I am doing a fully-flipped class, I’m not trying to lecture. But, this means I can’t share my screen in gather.town when I’m trying to run clicker questions for peer instruction. So, I have to use the iClicker software to send a screenshot of the question, and this limitation doesn’t allow me to demo any interactive code (which is a shame because we use Processing and there is so much pretty and fun code to demo!!!). I also tried plugging in a doc cam and replacing my own video feed with that feed— my thinking was I could sketch things out to explain misconceptions, and if I wanted to show some announcements, I could print a slide and share it through my video feed. Unfortunately, the camera feed is the standard setup, and so text from my doc-cam is reversed. There is no video mirroring setting.

Researching the Student Experience

I’m conducting research on the student’s experience of this platform. As mentioned earlier, I have students in Gather.town on Tuesdays and in Zoom on Thursdays. You might wonder why I’m using two different platforms. The main reason is just that Gather.town seemed to me to be a pretty new and untested platform when it comes to online education. It has mostly been used for hosting conferences. I didn’t want to plan my entire course around a platform that I didn’t have 100% faith in. So on Tuesdays students are in Gather.town, doing iClicker questions and problem-solving and code-writing on the whiteboards. On Thursdays students are in larger breakout rooms (table teams from Tuesday are paired into groups of 10 on Thursday), and they work on ungraded programming exercises, each student working on their own computer but talking through the exercises and helping each other out in the breakout rooms. Having students use two platforms allows me to ask questions that compare the experience across the two. I’m working with staff from our Centre for the Advancement of Teaching and Learning to conduct the research, so that someone unbiased is conducting interviews with the students, and I won’t see which students participate or not. We are also doing an anonymous survey. It will be interesting to see what students think.

The MapMaker

The MapMaker interface for Gather.town.

One of the Gather.town employees initially built my university world. They built it based on their demo university world, which you can visit. Their demo university world has an enormous lecture hall in it (Yuck!!!), and I had them transform that big room into my big active learning classroom. But then I had to go in and make adjustments. I wanted some posters in the space to show classroom information (did I mention you can decorate your space with posters? and i-frames? and videos?). I have to say, as a person with an HCI background, the mapmaker interface is one of the worst I’ve had to use. It’s truly terrible. For example, if I want to edit a text label I’ve laid down on the map, I have to delete it and recreate it. During the short time I’ve been using Gather.town their MapMaker interface has actually improved. I would say it has graduated from horrendous to terrible.


I discovered Gather.town in July of 2020 and used it for my class starting the second week of September. From my perspective, the interaction between students and instructors/learning assistants is awesome. It is by far the closest thing to being in a real class with students, and beats the standard video-conferencing platforms hands-down for team-based learning. The biggest downside is the inability to screen share with more than 100 people, and I know the folks at Gather.town are working to fix that. I’m managing to work around it, but it’s definitely problematic. I’m glad I’m in Zoom on Thursdays, so I can run quick code demos there and share my screen effectively. The MapMaker interface is a pain, but that’s a problem you can throw money at — just pay them to customize the world to your exact specifications and you never have to use it. I’m just the kind of person who wants to play and tweak, so it was worth it to me to figure out how to use it. Bottom line — if they can fix the screen-sharing issue, I will absolutely continue to use this platform for teaching in the Winter 2021 semester, when we will be doing remote learning again and I’ll be trying to convince my colleagues to join me. My gather.town space is open 24–7, and students can hang out in there anytime. Wouldn’t it be cool if they went to my class, then hung out in the lounge area, and then wandered into my colleague’s class through the next door? It’s a virtual world — we can add as many doors and rooms as we want, and it’s way cheaper than building active learning classrooms in the real world.

March 2021 Update: I’m still teaching in Gather.Town — two classes in the same university space this semester. I’ve also just created a slack channel for people who are teaching in gather.town. Email me if you’d like to be invited to the channel!

Associate Professor of Computer Science @ University of Manitoba. Passionate about engaged pedagogy, and about studying older adults and technology.