Anyone can organize a CodeRefinery workshop and teach the CodeRefinery lessons which are licensed under CC-BY. However, making it a successful workshop requires careful planning and preparation. Here we will go through practical aspects of organizing a workshop.
A collection of email templates:
:maxdepth: 1
:glob: true
templates/*
When adding new ones, add to an existing page (make a new section) or. Try to avoid too much markdown formatting, so that a rendered version can be copied to plain text email easily still.
One or two persons coordinate the workshop preparation and debrief. This does not mean that they do all the work - they are encouraged to delegate tasks - but they make sure that nothing gets forgotten.
- Workshop organization overview: https://github.com/orgs/coderefinery/projects/4
- Instructions on how to set up a registration page in Indico (for NeIC affiliated staff):
{doc}
/indico/index
- Email templates for workshop communication:
- Recruit instructors - having at least 3 instructors is highly recommended.
- Find 1-2 workshop helpers with an appropriate background.
- Reserve dates (coordinate this with the instructors)
- Reserve room
- Select a workshop coordinator
- Workshop coordinator creates a ticket with a checklist on https://github.com/orgs/coderefinery/projects/4 and takes it (self-assigns)
- Start looking for an appropriate lecture room early.
- See this list of requirements for the lecture room.
- Import the template at https://github.com/coderefinery/template-workshop-webpage to your username or the coderefinery organization, and name it like "2019-10-16-somecity".
- Update the required fields in
index.md
and push the commits. The page should now be served at username.github.io/2019-10-16-somecity/. - If the workshop will be customized to the needs of a particular audience, modify the schedule accordingly.
- If the workshop should be listed on https://coderefinery.org:
- (Fork and) clone https://github.com/coderefinery/coderefinery.org
- Under
coderefinery.org/_workshops/
, add a file named like2019-10-16-somecity.md
which contains the fields permalink, city and dates. For example:--- permalink: https://username.github.io/2019-10-16-city/ city: Somecity dates: October 16-18, 2019 ---
- send a pull request with your new file.
- Create a registration form following {doc}
/indico/setup
. - Open and test registration
- Email persons who registered to notify-me form
- Use local mailing lists and all channels possible
For self-organized workshops:
- Write an email to [email protected] to get a pre-workshop survey link and registration form on https://indico.neic.no
- Make sure lessons are distributed
- Go through the lesson material you will be teaching and think about how you intend to teach it, and how much time you will be spending on each episode.
- Are there any unsolved issues that you can fix?
- Go through the instructor guides of the lessons you will be teaching.
- Review the intended learning outcomes, and try to keep these in mind while teaching.
- Try to memorize the typical pitfalls and common questions.
- Go through the lesson presentation hints.
- Go through the helping and teaching guide, and request all helpers to go through it too.
- Order catering (coffee, tea, water, fruit, something sweet, etc.)
- Organize sticky notes
- Organize extension cables if needed
- Organize alternative wireless for those without Eduroam (if any)
- Send out practical information, including installation instructions, around 2 weeks ahead. Here is a template.
- Emphasize that all software should be installed before the workshop starts, and point out the configuration problems and solutions.
- Remind registered participants that they are either expected to show up or to cancel participation
- Also ask those without Eduroam to speak up.
- Maintain waiting list if needed
- Make sure we have enough pre-survey answers
- Close registration on the workshop page
- Workshop coordinator organizes a call with all instructors and helpers to discuss the schedule to leave no doubts about timing. Also discuss the survey results.
- Point helpers (and instructors) to the tips for helpers.
- Prepare a shared Google doc or https://hackmd.io with global write permissions, consider creating a memorable short-link (e.g. bit.ly)
- The collaborative Git lesson requires exercise repositories to be set up. For this follow the instructor guide in the lesson material.
- This checklist can be set up as an issue under
https://github.com/coderefinery/coderefinery.org/ or on another
repository to keep track of the progress
- [ ] reserve dates - [ ] decide workshop organizer - [ ] (online) prepare Zoom link or (in-person) book lecture room - [ ] announce (twitter, notify-me, mailing lists) - [ ] team of instructors complete - [ ] workshop website up - [ ] lessons distributed - [ ] prepare lessons - [ ] create exercise repositories - [ ] (in-person) prepare practicals (coffee/tea, sticky notes, extension cacles) - [ ] (online) Zoom roles distributed - [ ] registration open - [ ] team of helpers complete - [ ] registration closed - [ ] enough pre-survey answers - [ ] install instructions sent - [ ] pre-workshop briefing held, helper training - [ ] survey results shared with co-instructors/helpers
- Emphasize to participants that you need to sit with someone - don't work alone.
- Try to have participants sit next to someone with a similar operating system if they have no preference, since they will face similar problems.
- See https://github.com/coderefinery/workshop-intro
- Have a 10 minute ice-breaker session where participants and instructors introduce themselves and either describe their research in 2-3 sentences or what they hope to get out of the workshop.
- While teaching, keep these tips in mind
- Don't start off with tech details, say why this is important.
- Try to stick to the material, although some excursions are useful.
- Keep up interactive feel by encouraging and asking questions
- Keep time
- For presentations which have shell commands, create a cheatsheet/reference on the board in real time.
- Remind participants about sticky notes.
- Make sure we take regular breaks (at least a short break each hour)
- Give participants some time to also experiment (do not rush the classroom through exercises)
- Encourage optional feedback at the end of each day or end of each lesson on sticky notes. Process the feedback immediately and adjust your teaching (pace etc) accordingly
- Create GitHub issues for points which are confusing or problematic
- Take active part even in the lessons you're not teaching, e.g. by asking questions and (politely) interject with clarifications when you think something is confusing to the learners
- Wrap up, say what you taught and why, and what comes next.
- Give credit to those who contributed and helped
- Use https://github.com/coderefinery/workshop-outro
- Process and distribute feedback to co-instructors and others (e.g. type up in shared document)
- Debrief with instructors
- Process certificate requests
To measure the long-term impact of CodeRefinery workshops it's useful to send out a post-workshop survey. This survey can identify which topics taught in workshops are particularly useful and which have less benefits for the participants.