At the moment we are facing issues with a certain GitLab CI Runner (hifis-runner-manager-1) that execute your GitLab CI pipelines. We are working on it to bring them back to service again. Please excuse the inconveniences.

2020-04-17-online-swc-at-hzdr.md 12.3 KB
Newer Older
1
---
2
title: "Our First Online SWC Workshop"
3
date: 2020-04-17
4
5
authors:
  - erxleben
6
7
  - huste
  - hueser
8
9
10
11
12
13
14
15
16
17
layout: blogpost
title_image: default
categories:
  - report
tags:
  - workshop
excerpt:
    "
    It was supposed to be our first Software Carpentries workshop at the HZDR.
    We were in full swing organizing a live event until it became clear that we
18
    would have to move online. <em>Challenge accepted!</em>
19
20
21
    "
---

22
23
24
25
26
27
### Contents
{: .no_toc}

1. TOC
{:toc}

28
29


30
31
# Planning Phase

32
Our first own [Software Carpentry](https://software-carpentry.org/) workshop was
33
supposed to be a live event.
34
We intended to take it easy, learn a few lessons and then build upon these.
35
36
With these goals in mind we set out to plan an two-day workshop for the
31st of March and the 1st of April 2020.
37
In the beginning of March it became clear that the effects of the Covid-19
38
39
40
41
42
pandemic would reach us long before this date.
It was unanimously decided to switch the workshop to an online event instead of
cancelling it — even though this would mean a lot of organizational work with an
increasingly tight deadline.

43
44
## Our Original Approach

45
As it was expected to be a first experience for us as instructors, organizers
46
and helpers, we advertised 25 workshop seats on the PhD mailing list of
47
48
49
50
51
52
53
our institute.
To our complete surprise the event became booked out within the day.
As a reaction we created a second "event" in our system to act as a waiting
list and to be worked off in follow-up workshops.
The side effect was that we got a first glimpse of the huge demand for training
opportunities by our scientific staff.

54
Our initial plan was to split the first workshop day equally between the
55
56
_Shell_ (the [_Bash_](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) to be
precise) and _Git_ lessons and use the complete
57
second day for _Python_.
58

59
60
We did however estimate that we might have to cut later episodes from these
lessons, depending on the learners' speed.
61
62

## Switch to Online
63
64
65
66
67
68
69
70
71

When we decided to switch to an online event it was clear that there are
additional unknowns to be expected.
For this reason we decided to reduce the number of participants for the first
iteration of the workshop to only 9 persons.
As we had no prior experience with online teaching it seemed better to start
with a conservative amount of participants and increase the number in future
workshops if everything went well.

72
Therefore we set up a separate event in our system and transferred the planned
73
74
75
76
77
78
amount of participants over, based on the first-come-first-serve principle.
The remaining participants will be enrolled with priority into a follow-up
workshop in April 2020.

Additional time had to be spent on selecting and organizing a suitable
video-conferencing system.
79

80
{:.treat-as-figure}
81
![Image: Example Setup]({{ site.directory.images | relative_url }}/2020-04-17-online-swc-at-hzdr/view_from_home.jpg "Example Setup")
82
83
An example setup. The second monitor proved very useful.

84
# Role Call
85

86
87
88
89
While in the live-setting one _instructor_ is supported by one or multiple
_helpers_, the online environment also demands one of the helpers to
additionally take on the role of the _host_.
The roles can change from lesson to lesson since especially the instructor has a
90
91
high cognitive load and may be subject to a strained voice after prolonged
periods of teaching.
92

93
94
95
## Instructor
The primary task of instructors is to lead the workshop.
They present the content of the teaching material, determine the pace of the
96
workshop and coordinate with the hosts and helpers.
97
Thus, it is especially important for them to familiarize with the workshop
98
99
materials and manage the time required for teaching episodes, exercises and
breaks.
100

101
## Host
102
Running a workshop also requires to complete a lot of organizational side-tasks
103
104
105
106
during the event.
The nature of these tasks changes significantly when switching from a live event
to an online workshop.
Notably, video-conferencing tools tend to determine one person as _host_ who has
107
the full management rights for the event.
108
To reduce the instructors' workload, a seperate person fulfils the role of the
109
_host_ who can take over these tasks during the session:
110
111
112
113
114
115

* Prepare and open breakout rooms
* Monitor the chat (together with the helpers)
* Keep an eye on the time
* Observe the participants reactions
* Organize quick polls for feedback or exercises
116
* Manage shared documents and insert exercise questions on demand
117
118
119

In general the host is less focused on the participants but on the instructor
and helpers, taking note of the lesson progress and anticipating required
120
organizational actions.
121
122
123
124
125
126
127
128

## Helper
Helpers are the backbone of a successful workshop.
They monitor the participants and proactively interact with participants that
have questions, may fall behind or have technical issues.
Questions may either be answered by helpers directly or be forwarded to the
instructor in an opportune moment if they are of more general concern.

129
## The Workshop Team
130
We split our workshop into the three parts _Shell_, _Git_ and _Python_ between
131
132
133
our three instructors.
The two instructors who were not actively teaching, assumed the roles of host
and helper respectively.
134
We further expanded our team by three helpers which allowed us to
135
136
respond to questions without delay.

137
138
# The Tools

139
140
141
142
The choice of tools significantly affects the organizational effort and workshop
quality perceived by the participants.
In the following our selected tools will be shortly introduced.

143
## Indico
144

145
146
We employed [our self-hosted _Indico_ instance](https://hifis-events.hzdr.de)
as the event planning and registration tool.
147
It proved to be a good choice to facilitate the registration procedure and
148
149
allows to message selected (or all) event participants directly which turned out
to be very useful when switching the workshops to the online version.
150
151
152
153

One drawback was the limited capability to transfer registrations from one event
to another, which had to be done manually, since the provided _export_ and
_import_ features did not support a common data layout.
154

155
156
> [Official Indico Website](https://getindico.io/)

157
158
## GitLab

159
It appeared to be a good idea to extend the _Git_-lesson and also give a quick
160
161
162
163
look at _GitLab_ as an example of a well-known web-based collaborative software
life-cycle tool.
Thereby, the participants were able to apply their acquired _Git_ knowledge to
the User-Interfaces of _GitLab_.
164
165
As most of our participants were members of the HZDR and we also had the
sufficient administrative rights to allow access for all other participants, we
166
167
chose to use the [institute-local _GitLab_ instance](https://gitlab.hzdr.de)
for this purpose.
168
In future workshops with participants from other institutions we might switch to
169
170
171
172
[_gitlab.com_](https://www.gitlab.com) for this exercise.

It is worth mentioning that people who signed in via a third-party provider need
to use an access-token when cloning via _https_.
173
This can also be the case on _gitlab.com_ and forces the organizers to plan some
174
time to get this set up for all affected participants.
175

176
177
## HackMD

178
179
Amongst the many collaborative online editors that were availabe we chose
_HackMD_ for its plentiful characteristics:
180

181
* Ease-of-use
182
* Markdown formatting capabilities
183
184
185
186
187
188
189
190
* Code / syntax highlighting
* Side-by-side editing and preview

Even though our participants had no previous experience with markdown documents,
they quickly adopted its basics.
Some exercises required the solutions to be put into code blocks or tables which
were either copied and pasted from prepared examples or formatted by the
helpers.
191

192
193
> [Official HackMD Website](https://hackmd.io)

194
## Zoom
195
196
197
198

The choice for a video-conferencing tool was probably the most important
decision during the switching to online.
We were already familiar with Zoom from the Carpentry instructor lessons and had
199
200
201
the good fortune to be offered a share in a Zoom-Account by another member of
the Carpentries for the purpose of holding workshops until we could organize our
own account.
202
There was not enough time to get a _BigBlueButton_ or _Jitsi_-instance
203
204
205
206
installed and evaluated properly.

During the workshop we could make good use of the offered features and
experienced good video and audio quality.
207
208
We prefixed the screen names of helpers and instructors with their respective
role to make them easier to distinguish by name alone.
209
210
211
212
213

In the light of rising security and data protection concerns regarding Zoom we
continue to monitor the situation and keep exploring alternatives with the aim
to offer the best possible workshop experience to our participants in a
privacy-friendly way.
214
215
216

## IPython

217
For teaching the basics of _Python_ we went with _IPython_.
218
219
220
It offers syntax highlighting to aid the learner.
Since it is an interpreter, the participants get instant feedback if the entered
line is valid python.
221
The command-line based approach significantly reduces the amount of objects on
222
223
224
225
226
the screen and aids to focus the learners attention on the code itself.

The tool comes with the standard installation of the _Anaconda_ packages as
recommended in the setup instructions by the Carpentries.

227
228
# How it Went

229
230
231
232
233
It became clear early on that an online workshop progresses notably slower
in comparison to a live version.
Due to the lack of non-verbal communication, it is more often required to assess
the learners progress and also, in the case of helpers, to interact with each
learner individually.
234
235
236
Sometimes communication can also be impeded by low quality audio transfers
making it necessary to repeat parts of sentences or write things down in a chat
or shared document.
237
238
239
240
We enjoyed a mostly stable connection with good quality and the participants
were very cooperative and disciplined, muting themselves if they did not wish to
speak.

241
242
243
244
245
246
To encourage users to use the shared document and signal that they are allowed
and expected to modify it, we included a warm-up exercise which asked the
participants to note down their attendance together with a short statement about
themselves.
"What is your favourite cake?" turned out to be a suitable icebreaker question.

247
248
249
250
251
252
The first quarter of the second day was used for a quick recap of the _Git_ and
_Shell_ lessons, followed by the _Git_ collaboration exercise with the aid of a
_GitLab_ repository.

The _Python_ part did not progress as fast as intended and led to the lessons
being compressed towards the end.
253
254
255

## Issues Encountered

256
### Operating System Differences
257
{: .no_toc}
258

259
260
261
262
The participants were, with one exception, using Windows.
While this required some additional research effort for the helpers on some
occasions it kept the overall effort low, since participants could also help
each other out if necessary.
263

264
265
266
Particular issues, for example accomodating for the different line ending
encodings, that would arise were also covered by the Carpentries' lecture
materials and could thus quickly be solved.
267

268
### Handling More Challenging Problems
269
{: .no_toc}
270
271
272
273
274
275
276
277
278
279
280
281
282
283

Two more complex issues could be solved by the host assigning the participant in
question to a breakout room together with a helper.
This way the lessons could progress for the unaffected participants and the
breakout room was joined back once the issues were resolved.

From the experiences made we would reserve such procedures only for the most
dire of problems since the involved learners lose the connection to the workshop
and may have trouble getting back on track.

It is preferrable to try helping in the shared online environment first, to
allow the other participants to either learn something new for themselves or
contribute on their own.

284
## Feedback, Reactions and Lessons Learned
285

286
287
288
289
The post-workshop survey determined that the participants viewed the event in a
positive light.
Compared to the pre-workshop survey, most participants felt enabled to make
first steps towards improving their workflows.
290

291
292
293
A general consensus between participants and organizers alike was the need to
plan more time for the workshop content as well as the demand for follow-up
workshops covering more advanced topics.
294

295
296
As organizers we consider this first event a success and a good foundation upon
which to build our future events.
297
298
299
300

## Acknowledgements

{% assign instructors="steinbach / huste / erxleben" | split: " / "%}
301
{% assign helpers="Lokamani / hueser" | split: " / "%}
302
303
304
305
306
307
308

We want to thank our **instructors**
{% include team_card_mini_bundle.html persons=instructors %}

and **helpers**
{% include team_card_mini_bundle.html persons=helpers %}

309
310
for organizing and holding the workshop, as well as our **participants** for
being awesome learners.
311
312

_Until next time!_