Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

content/2023/large-course-registration: Draft post #6

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
185 changes: 185 additions & 0 deletions content/2023/large-course-registration.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
:blogpost: true
:date: 2023-06-21
:author: Richard Darst
:category:


How we do large course registration
===================================

It's recently been asked how we (Aalto Scientific Computing) do
registration for large courses, so this explains it. This is in
particular about our large MOOC-like livestreamed courses, where we
accept registrations from anywhere in the world. This isn't quite
what `CodeRefinery <https://coderefinery.org/>`__ does, but there are
some similarities (CodeRefinery is more ambitious).

There is a basic trade-off of "many people registering, high no-show rate,
low interaction" and "low no-show rate, but fewer people registering, users
very motivated". It would be nice to not have to choose between these
two options... let's get back to this.



Basic registration
------------------

Our basic principle is to have a registration form open to the whole
world, and anyone is welcome to sign up. Registering only promises to
give you emails about the course - the extra things listed below that
provide more interaction are optional and may be restricted to certain
categories. We also try to put all necessary information onto the
course website (updated each day with the end-of-day / prepare for the
next day info), so that someone can follow along without registering.
This is an explicit goal: the course can be followed for free, without
even giving personal information to us.

And that's basically it. Follow the course, or don't. Sign up to get
emails with information or check the website yourself. No one will
know if you register and don't attend (nor does it take a seat from
anyone else). It's OK to register just because you are interested and
might follow the material later on (you could call this the
`r-selection strategy
<https://en.wikipedia.org/wiki/R/K_selection_theory>`__: go for number
of registrations, not the percentage who show up).

The basic concept scales to however many people with no extra effort
on our part.



Optional extras
---------------

The above isn't necessarily a very interactive course, so our
registration can be complemented by the following things. There is no
extra registration form or field based on this: you get a different
version of the email including these if your info (affiliation)
matches the target audiences:

* **Collaborative notes** (`info
<https://coderefinery.github.io/manuals/coderefinery-mooc/>`__):
this is our core way of interaction. Our anti-troll strategy is to
not give the notes document publicly, but only for (a) anyone
registering or (b) anyone registering from a partner. The live
notes are not linked on the course website or provided on the stream
(though sometimes they get leaked, or we straight up provide on the
livestream chat).

People who do *not* have access to the notes can still see them when
they are shared on the livestream. They also have access to the
archive notes (read-only archived version after each day), which are
linked on the course website.

We've usually done (a) in many courses. We've never had a problem
with collaborative notes trolls so far.

The notes are still an r-strategy: as many people as want them can
get them, and low attendance is OK.

* **Zoom exercise room**: based on registration email, we offer to
people at Aalto and other partners the opportunity for more
interaction in Zoom. This is something for live support during the
exercise times of the course.

In practice, there usually aren't that many people that are in Zoom,
and handling all the questions we might get is pretty easy. Thus,
this is still an r-strategy (offer to as many people as possible
*within the selected group* and see who comes). It's possible we
would have to change this sometime.

Usually, this would be offered for anyone from a country of one of
the organizing partners (the usual suspects are Finland, Sweden,
Norway).

* **In-person exercise session**: Offered to those from Aalto (or
really, from all Finnish universities). There have been anywhere
from ~3 people to a busy room of ~15 (for a course with hundreds of
registrations). We have always made this a "drop-in" thing with no
special sign-up needed, and supermarket snacks provided (so that we
can buy plenty cheaply, save them, and not have to worry about
no-shows).

Others in other locations could easily do this, too.

So far, this has also been a "as many people as possible" thing.
While we've never hit the limit, it might also be self-regulating:
if it's too busy on one day, the people who least need it wouldn't
come future days.



What else could be done
-----------------------

These take more work from us and active advance preparation on the
part of the participants, thus are not as scaleable.

* **Teams (organized)** (`info
<https://coderefinery.github.io/manuals/coderefinery-mooc/>`__):
What we *don't* do in our courses is teams in the way that
CodeRefinery accomplished in 2020-2021 (which involves
custom-creating small groups of people with a trained team leader).
This worked very well when it worked, but is usually beyond the
amount of coordination time we have for our (Aalto) courses.

This is definitely a `K-selection strategy
<https://en.wikipedia.org/wiki/R/K_selection_theory>`__ (low number,
high attendance): we need fewer people registered here, there must
be high attendance (since an empty team is a bad experience for
other learners and the trained team leader), and it requires lots of
coordination effort. We'd hope that the high amount of personal
effort put into leads to a low no-show rate.

* **Teams (self-organized)**: We also encourage learners to form their
own teams and work together (like watching and doing exercises
together in a meeting room). We know some people do this, but don't
really have ways to know just how many do so (since we can't rely on
our polls). While this is listed on the website, we haven't done
much to support this otherwise (but interested people could be
invited to our team leader onboarding sessions).

These *could* be scaled by getting other partners to handle the teams
for their own communities, probably in conjunction with their local
Zoom/In-person/etc.



How to balance high attendance with low no-show rate?
-----------------------------------------------------

If it's not clear yet, by having these different categories of
registrations, one can keep a course open for all but hopefully narrow
down to a highly interactive group of those people who want high
interaction. This is all part of the `CodeRefinery MOOC strategy
<https://coderefinery.github.io/manuals/coderefinery-mooc/>`__.



Sharing registration data
-------------------------

To make some of these possible, we need to share registration data
with others so that they can announce things like local in-person
rooms / Zoom sessions. What we have said in our privacy notice lately
is during the registration that we may share registrations with
partners for these type of local things, but doesn't scale to many
partners (for data protection reasons). In practice, this has only
been CodeRefinery partners for the obvious reason, and probably won't
go beyond that.

* **Local partner registration**: When a local partner forwards the
message to their own audience, they could change the registration
form to their own, or give *both* registration forms, so they get
emails both from us and from the local partner. We still need to
figure out a way to do this well with the least amount of confusion
for the audience.

In practice, signing up for either one or the other would work, so
it doesn't matter that much.

We also list all local activities on the website, so that the audience
could use the registration forms of these other partners directly. We
can also mention these partners in our general emails. This is more
scaleable, since we don't have to worry about sharing personal data,
but also means that some of these opportunities might be missed.