Organizing a CodeRefinery workshop
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.
CodeRefinery maintains a number of workshop manuals
with practical tips and checklists. We will be referring to this material below.
- Select workshop coordinator
- Instructors and helpers
- Lecture room
- Advertising the workshop
- Communication with registered participants
Set up a workshop webpage
- Go to the workshop template repository.
- Click the green “Use this template” button to import the template to your own account.
Name the new repository to include a date and a location, e.g. “2019-12-24-stockholm”.
- Clone the new repository and inspect the files. Open
index.md, update some fields and commit the changes.
- Push the commits. The workshop page should now be served on GitHub Pages
It is very useful to ask future workshop participants to fill a pre-workshop survey before
attending a workshop. The survey should probe the participants’ previous experience
with different tools and programming practices, which operating system the participants use
and what lessons they are most interested in.
The questions that are currently asked in the CodeRefinery
are the following:
- What is the operating system that you will use during the course (on your laptop)?
- Which version of operating system are you using? If your operating system is Linux, which distribution are you using?
- Are you using version control? If yes, which?
- Which programming languages are you using or will you use in your projects?
- Are you using automated testing in your programming project(s)?
- Are you using code coverage analysis in your programming project(s)? These are tools and services like Gcov, Cobertura, Codecov, Coveralls, Code Climate, etc.
- Are you employing code review in your programming project(s)?
- Are you using the Travis or Jenkins or GitLab CI continuous integration service in your programming project(s)?
- How do you document your code?
- Are you using a web-based repository for your code(s)? Which ones?
- How would you describe your programming experience?
- How comfortable are you with the Unix/Linux command line working in a terminal window?
- Are you using an integrated development environment (IDE) for your programming project(s)?
- Please specify your main academic discipline. Please take the entry which is closest to your main field of study/work.
- Please select the sessions that you are most interested in.
- What do you expect to get from this course?
Discussion: Pre-workshop survey questions and results
- Take a moment to read the survey questions. Is there anything you would want to add? Or remove?
- How do you think the survey results look like for past workshops? Have a look at the
survey repository which shows the
main results, and compare them with your expectations.
- 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.
- Give an introductory talk, 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.
- Wrap up,
say what you taught and why, and what comes next.
End of workshop
- Give credit to those who contributed and helped.
- Say some final words.
- Process final feedback and distribute to co-instructors (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.
The survey currently contains the following questions:
- Which workshop did you attend?
- What is your current position?
- How has your usage of the following tools/services changed after attending the workshop? (possible answers: 1. I started using this tool; 2. I don’t use this tool; 3. I’m using this tool in the same way as before; 4. I’m using this tool better than before)
- Version control
- Automated testing
- Travis CI
- Code coverage analysis
- Jupyter Notebooks
- Code review
- Read the Docs or GitHub/GitLab/BitBucket Pages
- Would you judge your code to have become more reusable/reproducible/modular/documented after attending the workshop? (yes/no questions)
- Has it become easier for you to collaborate on software development with your colleagues and collaborators?
- Have you introduced one or more of your colleagues to new tools or practices as a result of the workshop?