Instructor training workshop in Stockholm

Learning to teach tools and best practices in research software development

November 4-5, 2019, KTH Main Campus

We start Monday with lunch and conclude Tuesday afternoon

Location: Fantum room, Lindstedtsvägen 24, F-huset, floor 5, KTH Main Campus.

Workshop for present and future instructors

Do you (want to) teach researchers or independent students best practices of scientific software? Are you teaching a university course and would like to include aspects of best practices in software engineering in the course? Or would you simply like to educate your friends and colleagues in how to write more reusable, reproducible and better documented code?

If you answered yes to any of the above questions, we welcome you to join the first CodeRefinery instructor training workshop! This workshop will focus on how to teach technical topics (e.g. version control with Git, automated testing or programming languages) in general, and CodeRefinery lessons in particular. We will cover key pedagogical ideas and teaching methods, and what you need to know in order to teach the CodeRefinery lessons. All the material will be firmly grounded in the experience that CodeRefinery staff has acquired after teaching over 25 workshops to over 600 participants and the published best practices of the Software Carpentry organization.

One purpose of this workshop is to train CodeRefinery instructors, but being (or becoming) a CodeRefinery instructor is not required. People are equally welcome to learn our tips and tricks and join our informal Nordic network. Put another way: anyone involved in improving the quality of research code should be here!

This instructor training workshop will immediate precede a hackathon event at KTH where researchers are invited to bring their code and data and work on it collaboratively with other participants. We would like to bring over ideas from the instructor workshop to the hackathon, so participants of this workshop are especially encouraged to attend also the hackathon to work on lesson improvement and development of new CodeRefinery lessons!


  • Lesson material (for each of the items below) can be found at
  • Each individual lesson can be found at
  • CodeRefinery Github can be found at

Monday, November 4

The first day is focused on generalities of teaching and lesson design.

Tuesday, November 5

The second day is focused on going through lessons to revise and develop teaching strategies. The goal of this day is to review objectives, keypoints, and exercises, to identify sections/exercises that could be optional, and to adjust timing.

Each lesson discussion is led by 2-3 CodeRefiners. Their task is to prepare the following in the instructor guides before these sessions: 1) Why do we teach this lesson, 2) intended learning outcomes, and 3) how it is presented.

  • 9:00 - 10:30: Lesson discussion (3 groups)
    • Group 1: Git intro (Sabry, Thor, Jarno, João)
    • Group 2: Modular code development (Radovan, Max)
    • Group 3: Reproducible research (Anne, Richard, Emiliano, Juho)
  • 10:30 - 11:00: Morning break
  • 11:00 - 12:30: Lesson discussion (3 groups)
    • Group 1: Documentation (Anne, Sabry, Jarno)
    • Group 2: Jupyter (Thor, Emiliano, Juho)
    • Group 3: Social coding (Richard, Radovan, Max, João)
  • 12:30 - 13:30: Lunch
    • Place TBA
  • 13:30 - 15:00: Lesson discussion (3 groups)
    • Group 1: Automated testing (Bjørn, Radovan, Emiliano, João)
    • Group 2: Collaborative Git (Juho, Sabry, Jarno)
    • Group 3: To be decided by popular vote (Anne, Richard)
  • 15:00 - 15:30: Afternoon break
  • 15:30 - 17:00: Future


  • Thor Wikfeldt
  • Anne-Claire Fouilloux
  • Radovan Bast



CodeRefinery is a project within the Nordic e-Infrastructure Collaboration (NeIC). NeIC is an organisational unit under NordForsk.

GitHub and Twitter


Radovan Bast
High Performance Computing Group
UiT The Arctic University of Norway
+47 776 44117