---
# System prepended metadata

title: Train the trainer - Collab doc archive

---

# CodeRefinery train the trainer workshop - Archive

[TOC]


:::info
- Time: Every Tuesday 13.8-3.9 9-12 CEST
- This page: https://hackmd.io/@coderefinery/TTT24
- Connection details: https://cscfi.zoom.us/j/67293343928
- Teaching material: https://coderefinery.github.io/train-the-trainer/
- Registration: https://coderefinery.github.io/train-the-trainer/
- [Code of conduct](https://coderefinery.org/about/code-of-conduct/)
:::

## Day 1 -  About lesson design, deployment and iterative improvement 

### :calendar: Schedule

| Time (CEST)   | Title                                      | EEST (UTC+3)  | BST (UTC+1)   |
|---------------|--------------------------------------------|---------------|---------------|
| 8.45 - 9.00   | Connecting time                            | 9.45 - 10.00  | 7.45 - 8.00   |
| 9.00 - 9.15   | Intro and Icebreaker                       | 10.00 - 10.15 | 8.00 - 8.15   |
| 9.15 - 10.00  | Lesson design and development              | 10.15 - 11.00 | 8.15 - 9.00   |
| 10.00 - 10.15 | Break                                      | 11.00 - 11.15 | 9.00 - 9.15   |
| 10.15 - 11.00 | Lessons with version control               | 11.15 - 12.00 | 9.15 - 10.00  |
| 11.00 - 11.15 | Break                                      | 12.00 - 12.15 | 10.00 - 10.15 |
| 11.15 - 12.00 | How we collect feedback and measure impact | 12.15 - 13.00 | 10.15 - 11.00 |

### :icecream: Icebreaker



#### Check-in

Which emoji best describes your current state of mind? [Emoji cheat sheet](https://www.webfx.com/tools/emoji-cheat-sheet/)
- :Decaffed ... and going strong ...
- :coffee: 🤔
- :100: (ironically!) :coffee: intake happening
- :smile: 
- :tired_face: 
- :coffee: :party:
- :coffee: :happy:
- 😪
- just got zoom installed / before my coffee
- :smil- 
- :sweat_smile: (+)
- :yawning_face:
- :is it morning already? 
- :smile: 
- :yawning_face:
- :nerded_face:
- 🥵
- :smile:
- :sleeping:
- :sleepy: :coffee: :smiley_cat: 
- 🥳
- :coffee: 
- :coffee: 

#### Introduction in breakoutrooms.
 

- Name / Affiliation / Location
- priyanka / Amsterdam UMC / Netherlands
- Ali Asim Kazmi / Independent / Oslo Norway
- Nick Bearman / Independent GIS Trainer / Cornwall, UK
- Radovan Bast / UiT Tromso / Norway
- Richard Darst / Aalto University / Finland
- Shristi / Aalto university / Finland
- Sebastian Kuckuk / Erlangen National High Performance Computing Center / Germany
- Aurélie Vancraeyenest / CSC / Finland
- Thomas Pfau / Aalto / Finland
- Francesco Fiusco / ENCCS / Stockholm, Sweden
- Bjørn Lindi / NTNU / Norway
- Tuomas Rossi / CSC / Finland
- Zoa Le / Arcada University of Applied Sciences / Finland
- Ashwin Mohanan / ENCCS + RISE / Stockholm, Sweden
- pieter / UCLouvain / Belgium
- Ryan Kwan / Gothenburg University / Sweden
- Dhanya Pushpadas / University of Bergen / Norway
- Juan Herrera / EPCC, The University of Edinburgh / Scotland, UK
- Cumhur Erkut / Aalborg University Copenhagen / Denmark
- Raúl Ortiz / TU Delft / the Netherlands
- Michele Mesiti / Karlsruher Institut für Technologie / Karlsruhe, Germany
- Jez Cope (he/him/his) / The British Library / North Yorkshire, UK
- Christian Pfaab / University of Bremen / Germany
- Yassine Kaddouri / Yellow Method / Helsinki, Finland
- David Rowan / University of Bergen / Norway (sitting in UK)
- Peng Sun / Independent / Christchurch, New Zealand & Beijing, China
- Sara Shoghi / TU Delft / Netherlands
- Yonglei / NSC(LiU)/ENCCS / Sweden
- Laura Ribeiro / VTT / Finland 
- Margaret Duff / UKRI / UK



#### About teaching

What is the hardest thing about teaching for you?
- Knowing how "it's going", whether learners are happy or not (especially when teaching online) :+1:
- The preparation the night before.  It is always much more that I would hope, no matter how prepared I want it to be :+1: :+1:
- Managing groups with vastly different academic backgrounds
- Teaching wide spectrum of skill level at the same time. :+1: :+1: :+1: :+1:
- Time management! (Knowing how much can fit in a sessions) :+1: :+1: 
- General preparation time, how to fit it into the regular work schedule, and estimate how much time is needed for prep.
- How to reduce too much text into just the right amount
- Preparation of the session material and estimating the right amount of time for each section
- Getting learners to take the first step: sign up for and attend a workshop, when they don't think programming is a skill they can learn
- Getting learners to take the _second_ step: translating what they've learned in a workshop into something they can apply 
- preparation and time management
- Engaging with the students which was much easier for me when I used to coach
- Finding the right depth for an unknown audience for "my topic"
- education background of participants and their learning objectives


What is the best thing about teaching for you?
- Seeing when learner gets interested/curious about something and takes inspiration from the course. :+1:
- Seeing it works and someone can do something new.
- Motivated students grasping new stuff
- Students picking up and running with the matertial and skills I give them and using it for their own work. :+1:
- The "ah-ha!" moment when a student gets it! :+1::100: :+1:
- Learning from students who know about some topic more than you do. :+1:
- Being able to help people reach their goals, by showing them something new.
- Teaching is optimism acted out in the hope of making a difference both ways I suppose.
- The feeling of accomplishment when you see learning grow and implement the learnings :book: 
- mutual learning and impact on learners :+1:
- Results and feedbacks / Mutual interests and interesting discussions
- mutual learning and I can also learn lots of things and new ideas from participants
- 


### :question: Questions 

#### General / Practicalities

- Will the material be made available?
    - Materials are and will stay available at https://coderefinery.github.io/train-the-trainer/
        - Can I share them with a colleague
            - Yes please :) 
        - Can I resuse them in my own teaching?
            - Yes please :)
- Will these sessions be recorded?
    - No, but the materials (see above) should include everything needed for self-learning.
- Can I get a certificate for this workshop?
    - You can get a certificate of attendance after the workshop by sending an e-mail to support@coderefinery.org, telling us a bit about what you have learned and which sessions you attended.
- How often will we be talking in breakout rooms? I'm not in a place where I can talk, so if we're going to talk a lot I'll need to move offices
    - We'll have about one breakoutroom session per episode
- 
#### Episode 1: Lesson design and development 

Materials: https://coderefinery.github.io/train-the-trainer/lesson-development/
**Discussion:**

- When you start preparing a new lesson or training material, where do you start?
    - I look at existing materials on the same topic, but chose/refine topics based on the perceived needs/interests of the presumed audience
    - Outline of structure and Material collection for a new lesson :+1:    
    - What material I have already? (what other material is already out there?)
    - Start by looking for related resources (documents, videos, courses, etc) to have a base data and better understanding of what have been done around the topic
    - Know your audience
    - Review existing material
    - Think about learning objectives (to keep focus on essential things)
    - Think of three things simple enough that they will be remembered the next day.  Design around that.
    - I write down the thoughts that I have and then go back and structure it.

- What tricks help you with “writer’s block” or the empty page problem?
    - Write anything down that comes to mind, sometimes draw something, looking out the window :)
    - Do a mind map - what concepts do I want to get across?
    - Starting small, for example a list of headings and then building around it. :+1:
    - What does one know about the target audience and why should they be spending longer than 1 minute listening to what they will eventually get to hear?
    - Get some inspiration from another source. 
    - Start with the three things above
    - Start with the plan and the overview design 
    - Some kind of outline / main message(s)
    - Start with three things.  Three supporting points for each of these.
- Maybe you haven’t designed training material yet. But how do you start when creating a new presentation?
    - Think about the learning objectives and try to break them down into steps
    - Title, Objectives, target audience and Plan  
    - Some kind of outline / main message(s). Get as many images as I can, instead of words
    - Draft an outline and use chatgpt to fill in details
    - Example of how the teaching content is applied in a real-world context
- If your design process has changed over time, please describe what you used to do and what you do now instead.
    - I look more at existing materials and try to get more information about the audience. Unfortunately getting information about the audience before the event is hard
    - I used to start from the begginning and get from there but that often meant a very polished start and a rushed end. Now I try an overview first, then fil out sparsed details at every section
    - Updating the data and tweak the presentation
    - If I am teaching a small group (or one to one) talk to them before hand - find out what they know already, what they want to learn. 
- What do you know now about preparing lessons/training/presentations that you wish you knew earlier?
    - less is more. It's better to have 2-3 main messages rather than trying to show everything in one go :+1: :+1: :+1: :+1:
    - how much practice time the learners need to master what's taught
    - Don't worry about something going wrong. It often makes the lesson (and thus the material) more presistent in memory. :+1:
    - Try and remove everything except what you want the person to learn
        - That's a very tough part for me in the sense that I never know how much of an underlying "black box" is still ok.... 
    - Designing intermediate materials is hard, and requires putting some "gatekeeping" making sure that learners are directed to appropriate courses
    - When I see a cool graphic, concept, slide, etc., download it and save it in my 'new-materials' folder to use later on!
    - I have come to the conclusion that perhaps a more "agile" approach to developing materials (try to do design/teaching iterations quickly) might be the best way to go, but there are risks with this approach too

**Questions**

- From zoom chat: Can you expand on what a learner persona is?
    - A defined example person described in terms of the materials you are preparing, making up a story about the background and interest of t
    - Answer from chat: A learner persona is a blackbox which has a very simple algorithm inside: GIGO.
    - Answer from chat: I think it's the same as ICP (Ideal customer persona) where you describe the learner as a customer
    - Answer from chat: I'm a big fan of "How Learning Works" by Ambrose et al https://bookshop.org/p/books/how-learning-works-eight-research-based-principles-for-smart-teaching-michele-dipietro/18640868?ean=9781119861690
    - See also book: [Teaching tech together](http://teachtogether.tech/)
> CodeRefinery lessons: https://coderefinery.org/lessons/
- From chat: Do you have an example of an instructor guide?
    - One example from our [reproducible research lesson](https://coderefinery.github.io/reproducible-research/guide/)
    - Another from git intro: https://coderefinery.github.io/git-intro/guide/
- From zoom chat: Do you have a "measure" of how better are the new lesson compared to the old ones? Does it make sense to talk about measurements here? 
    - So far we only have daily feedback that we collect at the end of the day and we can compare that to earlier daily feedbacks. More about that in the last episode of today. But measuring this is indeed not easy and it also takes time to capture the effect during longer-term surveys. Some of the changes were more leap-of-faith than based on data.
    - I guess that sometimes one can use "compelling arguments" instead of data to justify a decision
- Software Carpentry does teach using the command line, and gives a session on the command line before. What do you think about this approach? Are you stating that a 3-hour lesson about CLI is not sufficient to make people comfortable enough to use that for version control?
    - Yes, good question. For CR we consider it a more advanced step: we do think people should learn command line, but it's for a different course.  We accept some people might not know it or want to know it so adapt to that.
    - In general, we've found the "you need X, but have to learn A, B, and C first" approach should be avoided if possible: people are busy, try to reach people where they are.

:::danger
[Exercise](https://coderefinery.github.io/train-the-trainer/lesson-development/#exercise-discussion-about-learning-objectives-and-exercise-design) in breakoutrooms 
:::

- Room 1
    - Research data management
    - Objectives
        - Research life cycle
        - FAIR principles (Findable, Accessible, Interoperable, Reusable)
    - Exercise
        - develop a data management plan (DMP) that outlines how their research data will be handled throughout its lifecycle.
        
- Room 2: What is the difference between eating breakfast and sitting through a lecture? (Tip: Start by listing the similarities ...)
-  Room2 : Making papers in LaTeX
        - What is LaTex and how is it different from editors like Word
        - Basic Structures
        - How to find and use a template 
        - Including figure & table
        - How to use references and labels 
        - Exercise: to create a new LaTeX document & edit it
        - Excercise: common error messages: can you find the error in this code? 
        - Exce
- Room 3
    - GPU Programming (1 hour intro)
    - Learning objectives: 
        - What is GPU programming.
        - When is it usable, beneficial to use GPU programming? 
        - What are technologies to do GPU programming?
        - [What are and how to manage typical issues]

- Room 4
    - Git / Figures / Project management / data cleaning
    - Chose data cleaning
    - Three learning objectives: 
        1. What do we mean by "clean"? How to identify it?
        2. Identify some common problems in a dataset
        3. Identifying and handling missing values/fields
    - Exercise
        1. Discuss problems, find the most common ones
            - In small groups
            - What problems have you run into with datasets you've worked with?
            - What problems can you imagine, or have you heard about from colleagues/news/social media?
            - Report back, instructor collects all problems into a list
        2. Have a dataset to clean; a clean and a messy example
            - (identifying) Using a visualisation or overviewing tool?

- Room 5
    - Jupyter Notebooks
    - Learning Objectives
        - Can setup an enviroment you can reuse / can share with others / a project.
        - The order you run the commands in needs to match the order of the code in the Notebook - otherwise you end up in a pickle. 
        - Why use a Jupyter Notebook? What are the advantages? Easy to use environment.
    - Exercise
        - Print variable assignments from different cells - show that the order you run the code is important.
        - hand out a domain specific notebook that does some calculations and visualization to run and modify, to show that you can share easily
        - show !pip install to add dependencies/features
- Room 6
    - Using GitHub without the command line
    - Learning Outcomes:
        - Be able to discuss changes before merging changes into the main repository.
        - Publish a personal repository page ( I think its called intro repository)
        - Share their script/notebook/code/small data on GitHub
        - Homepage using GitHub pages or the README that becomes the "index page" of the GitHub user account page
    - Learner personas:
        - Check the Personas of the learners
          - Somebody who has seen/heard of GitHub but hasn't used it yet
          - Someone using it for their own work but struggling with collaboration
    - Exercises:
        - Upload/share an example dataset or script
        - Review another collaborators pull request.
        - Take part in the discussion on a pull request.
- Room 7
  Linux shell basics: why do we want to teach them?
  (this took most of the time for the discussion)
  - Learning objectives:
    1. Filesystem: Directory (CLI) - Folder (GUI) analogy 
    1. Basic commands (which commands are basic? make a survey of shell histories and get the most common ones)
    1. Basic constructs (e.g., for loops, pipes, while loops... which ones are basic? See above)
      
> Note from chat: Zoom timer: https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0068677

## Episode 2: Lessons with version control

Materials: https://coderefinery.github.io/train-the-trainer/lessons-with-git/

Poll options: I want to hear about: 
- A: Why use version control for teaching materials
- B: Different template options
- C: How CodeRefinery does it; CodeRefinerys lesson template

Poll vote (multi-select): add a `o` to your answer
    - A: ooo
    - B: oooooo
    - C: oooooooo :ghost: 

Question to audience: if someone wants to make a tiny fix to your material, how hard is it?
- If my material is only in pdf format which is not online, then it is hard.
- I hope it is easy - my material is in GitHub. Nobody has ever done that though! 
- Slides: hard to find, easy to edit; Git repos somewhat easy, unless they have to be built locally or with an action; HackMD easiest to edit.
    - if you use something like google slides they are not that difficult to find
    - known permanent address. Google docs et al fail on that/same for many pads. 
- For this material today - very easy! e.g. https://github.com/coderefinery/train-the-trainer/pull/128
- Template with an edit button in the HTML pointing to the source-code in the repo.

**Questions/Discussion topics**
> Upcoming CodeRefinery workshop in September: https://coderefinery.github.io/2024-09-10-workshop/
> Please share with your networks, and let us know if you would like to co-teach a lesson (to support@coderefinery.org or in our [Zulip chat](https://coderefinery.zulipchat.com/))

- Changes to the material are sometimes not just tiny fixes. For example, one wants to present a slightly different selection of topics, but maybe some topics are "coupled" (perhaps naturally or perhaps just because of how they are presented), or change the general "theme" (e.g., life sciences vs theoretical physics) while keeping the actual topics the same. How could a lesson be developed to avoid having to do a huge rewrite?
    - You can try to modularize your material and keep non topic specific parts non themed. E.g. where you explain the functionality, don't make reference to the example (not simple), so the example can be changed depending on the audience.
- What are the pros/cons of renaming a course / changing a repo name in GitHub?
    - It should be relatively unproblematic since GitHub will forward to the new name. 
        - How long does Github keep the "old" name linked? Is there a max time it's blocked, or changed as soon as a new one appears with the name?
            - in my experience it forwards "forever" until I create a new repo with the old name which will break the forward 
- what should be in the readme for the git repo? (canonical address? contact points? license!)
    - https://coderefinery.github.io/mini-workshop/2/documentation/#often-a-readme-is-enough-checklist 
        - I miss the url to the (main) repo in the readme
            - Do you mean the link to the rendered (lesson) page?
    - Link to rendered page: We often have this in the "about" section of the readme (see up right: https://github.com/coderefinery/train-the-trainer)
    - this gets lost in a fork, doesn't it? so 20 folks forking and or reuploading the repo somewhere means the url gets lost?
        - True, but they might want to have their own version rendered?
            - yes, I have had issues finding and contributing to the "master" repo so all benefit. Else it gets cluttered. Both is valid
                - Good point though, the link to rendered page should probably also be included in the readme for completeness; ah and the link to the repository too, yes 
                    - so realistically we need a content folder and some more next to the readme as a best practice. sounds good!
- Is myst (markdown renderer) enabled by default in sphinx now?
  - to my knowledge no. we add the "myst_parser" extension to conf.py.

> Cicero: https://cicero.readthedocs.io/
> Sphinx documentation: https://www.sphinx-doc.org/en/master/
> Carpentries workbench for creating Carpentries lessons: https://carpentries.github.io/workbench/
> This is the testing lesson Richard showed: https://coderefinery.github.io/testing/
> And the corresponding repository: https://github.com/coderefinery/testing
> You can lean back and watch, exercise coming in a bit :)
> Richard will now edit our train the trainer material repository: https://github.com/coderefinery/train-the-trainer
> The Sphinx extension for CodeRefinery lessons: https://github.com/coderefinery/sphinx-lesson
> Empty lesson template to build your own lesson: https://github.com/coderefinery/sphinx-lesson-template

**More questions**
- Does the coderefinery.org page built on sphinx?
    - It's built also from markdown but it uses https://www.getzola.org/ (which is more optimized to render websites, but we could do teaching also with Zola or create the project page using Sphinx)

- Is there a way to build and preview CR lessons without the command line?
    - The GitHub workflow we use creates HTML from all branches. This means that one can push a branch to GitHub, preview it there, and then open a pull request. One thing that would be nice but we don't have yet is if a bot automatically posts the link to the preview to a pull request.

- For VCS-2, for the Carpentries Linux shell example, Lesson, Github repo, to me it seemed as though the Sandpaper setup they have makes a very nice interface, complicates the relationship between source and output. E.g on the soucre page https://github.com/swcarpentry/shell-novice/blob/main/index.md I could only see to 'Prerequisits' and not 'Download files' on the page https://swcarpentry.github.io/shell-novice/. Perhaps I have missed something?
    - I am sorry I don't know the new Sandpaper setup well enough to answer this question.

- Do we have the instructions to build the lessons available somewhere to try out later?
    - https://github.com/coderefinery/sphinx-lesson
 
:::danger
### Exercise VCS-1 (and VCS-2 (if time)) (https://coderefinery.github.io/train-the-trainer/lessons-with-git/#exercises) in breakoutrooms until xx:05

then short summary in main room and then break.

Use the notes below.  Collect a list of lesson formats and discuss what you like about each of them.
:::

- PDF slides by a presentation program
- pdf slides with beamer in latex under source control.
- Markdown slides via Github
- CodeRefinery template
- Carpentries template
- Google Slides
- git-book
- [Jupyter Book](https://jupyterbook.org/) - allows creating a structured reference website using RST/Markdown, including Jupyter Notebooks to show result of running code
- [mdbook](https://rust-lang.github.io/mdBook/) - create simple/minimal website using Markdown
- [Binder](https://mybinder.org) - allows learners to run their own live version of a github repository with Jupyter Notebooks, with only a web browser
- Jupyter notebooks and jupyterhub platform
- Jupyter + Nbviewer and custom css (read only) + Binder link (hands on)
- RMarkdown 
- Quarto Slides
- [Reveal.js](https://revealjs.com/) - write slides in HTML (also supports markdown)
    - Example: https://bl-presentations.erambler.co.uk/2024-02-21-idcc24/
- [Remark.js](https://remarkjs.com/) - write slides in markdown
    - Example: https://bl-presentations.erambler.co.uk/2024-02-19-idcc-pids-workshop/


Room discussions:
- Room 1
    - (https://smc-aau-cph.github.io/SPIS/README.html) 
    - CodeRefinery template
    - Shared notes & blogs

- Room 2
    - demo the exercise 

- Room 3
    - Mix of JupyterLab, Terminal within that, and traditional slides
    - Jupyter + RISE (benefit: slides that are editable and executable live)
    - Challenges
        - present code in an interactive way
        - handle lots of images/ figures without too much additional overhead when setting up the material

- Room 4
    - Material and tools depend on instructors
    - Some slide building tools
        - https://revealjs.com/
        - https://remarkjs.com/
        - https://github.com/rust-lang/mdBook
    - Using flat git repos without fancy styling to make it easier to edit but still version controlled

- Room 5
    - Using R as a GIS: https://github.com/nickbearman/intro-r-spatial-analysis
        - Workbook: RMarkdown, Slides: Quarto
        - No continuous intergration
    - Having a jupyter nbinder link to test the notebook
    - repo lives on codeberg in this example 
    
- Room 7
    - Ex 1:
        - Sphinx, similar to CR
        - Sometimes pdfs generated with beamer package (or from pptx and odt), but blows up repository size if in version control
    - Ex 2:
        - Content
            - CR: Content commonly found int the content folder 
            - SC: Mostly under episodes
    - Question that came up:
        - is CR/Sphinx approach mostly for technical topics? What about language. 
        - I guess by our nature it's focused there.  But probably could be used for others (I guess it it's much easier to use git in a technical audience.)


## Episode 3: How we collect feedback and measure impact

Materials: https://coderefinery.github.io/train-the-trainer/feedback-and-impact/

**Questions to audience**

- What tricks/techniques have you tried in your teaching or seen in someone else's teaching that you think have been particularly effective in collecting feedback from learners?
   - preparing a survey and emailing it to participants as soon as the event ends (usually get <50% of answers but it's a representative enough sample)
   - do engage with the audience, give them the time to get the courage to speak up
   - Be the audience yourself
      - yes! some problems/issues I don't notice as instructor, only as listener 
   - Have time (e.g. 5 min) in the session to fill out the feedback form
   - If the course/workshop has several days/sections do a couple questions every change, then a full one afterwards
   - "Traffic light" feedback (e.g. for pacing or progress on exercises): give each learner two different coloured post-it notes for in-person, or use emoji for online, to indicate a current status
- Can you give tips or share your experiences about how to convert feedback into changes or actionable items?
   - ask questions about things you know you don't know
   - “Don’t let the noise of others’ opinions drown out your own inner voice.” — Steve Jobs
- When people ask questions / get stuck with a specific step. Is there a typo I can change there and then in the workbook? 
    - Being able to fix small things on the fly helps sometimes, otherwise open issues if working on github
    - If multiple people have the same question, then this is an indication that I should look at this in more detail
- How do you measure the impact of your teaching? Any tips or experiences about what you have tried or seen other courses do?
   - "How likely are you to recommend this workshop to others? (0/5)"
   - Check the 'Garbage Out' bin, what you find there will be what went across. The rest will be history...
- Anybody knows of good resources on survey design? Please link them here.
   - "Our job is to figure out what they're going to want before they do... Our task is to read things that are not yet on the page." - Steve Jobs

**Questions/Discussion points**

- Feedback is necessary to design good lessons. Improvement can only be done iteratively. So the faster the iteration (design/teach), the better. But on the other hand, I cannot constantly bomb our community with training event emails. So I would like to try proposing a course many times a year, but I don't want to spam everybody many times a year.
    - :+1: 
    - With CR we also have a calendar that can be imported to different calendar applications, where we add all workshops: https://github.com/coderefinery/calendar/
- Does an even split of too fast / too slow mean speed is about right?!
  - I take it to mean "it's roughly where it should be".  Would be better to accomdate the sides better though... (we do try to design for a broad audience: some easy stuff, some advanced stuff, so people can make their own path)
  - It could also indicate that the prerequisites/scope are not well defined :+1: 
      - Based on long term surveys we also know though that even though the workshop might have been to fast, people appreciate having "heard things before and know where to find them later"
  - perhaps the even split between too fast/too slow is ok only if the majority of votes goes for "just right" :+1:
- One of the most important disciplines in journalism is to challenge your working premises. (Bill Keller) This applies equally to learning as well.
    - Participants can be encouraged to write some posts on LinkedIn. If it is helpful some blurbs can be created for pre and post-workshop to generate more traction for Code Refinery and future participation.
    - Ask participants if they use Dev.to, hashnode etc to blog their work or use twitter etc to have a memory of their work.
- Do you have any suggestions for prerequisites? I try to make them clear, but occasionally people attend who clearly do not meet them. :+1: 
    - I guess it depends how much it matters for the workshop itself. If you have group exercises etc, it probably matters? , lecture style maybe not so much?; important is that the participants themselves know that prerequisites exist and if they meet them
    - Sometimese people that do not meet the prerequisites join to get to "know what they don't know", find out where to find information on topics they might get interested in future etc 
    - Other suggestions? Viewpoints? :) 
    - Thank you - things for me to think about there :-)
    - With CR's latest ideas, we try to make the prerequisites clear, but there is no capicity limit: it's OK if people drop by and are less than prepared: it's livestream, anyone can come.  We try to have something for these people, too: learn what you are missing, why you might want to study more in the future.
    - Any thoughts on applying this to a more practical focused course, with a total capacity limit (i.e. not like CodeRefinery). 
- Everytime you do a course on CodeRefinery, think of it as trying to bake a new cake with an old recipe with no idea about the individual taste preferences of the one you bake the cake for. Then, you will not experience too many surprises. Fine-tuning the recipe for one cohort still remains the 'old recipe' as far as the next 'new cohort' will be concerned. C'est la vie.
   - nice analogy!
- Question from chat: For examples 2 & 4, would you also consider using something like a Likert scale? E.g. Rate how well you agree with the statement "My code is more reusable as a result of attending a CodeRefinery workshop" (from 1 Strongly disagree to 5 Strongly agree)
    - Thanks! I am new to Likert scale and will read up on it. In my experience numbered answers can be useful for reporting. But I also like questions where we ask for what actually to change.
- Comment from chat: Richard, your point crowns the point of having CodeRefinery, With Radovan's and Samantha's acquiescence assured, I would like to suggest you wear a crown going forward, especially for the CodeRefinery session. Do we have a deal ?
    - I don't quite understand this
    - I *think* it's a tongue-in-cheek-comment (joke) but I am not sure.....
- What is the ideal way to allow people to interact while course is going on in the main online session, i.e. without a breakout room? Taking a pause or discussion in the background?
    - I've had some success with WhatsApp groups for a course - particually ones that run over 4 (or 2) sessions.
    - A quick survey/quiz
    - Question to the audience that we take time to answer but it helps to show the answers
---

## Wrapup

- Thank you for active participation :) 
    - We'll continue answering questions after the workshop and make the cleaned up (no names etc) available from the materials
- Next session **Tuesday August 20, 9 CEST: Tools and techniques adopted in CodeRefinery workshops**
  - we will talk about on-boarding, install help, roles, screensharing, sound, collaborative notes 
- All workshop materials will stay available (after the full workshop also on Zenodo :tools:)
- CodeRefinery community: https://coderefinery.zulipchat.com/
- If you want to co-teach with us in the upcoming (or next) CodeRefinery workshop (https://coderefinery.github.io/2024-09-10-workshop/); or just want to learn more about this opportunity: Send your name and e-mail address to support@coderefinery.org; we will contact you!

## Feedback about todays session

What one thing was the most valuable/useful thing you learned today? Or generally one thing you liked about this session:
- Lesson design approach
- I liked the backwards lesson design, gives a name to a practice I've already been doing :+1: :+1:
- Lessons from code refinery on lesson design. Learning about Sphinx. 
- Collaborative notes and anonymized archive of notes.
- it's nice to have a community to discuss these kinds of problems
- Hearing the variety of tools people use for slides (PDF, Quarto, Beamer etc.)
- Good intro of the tools, the jargon and the pedagogical philosophy of teaching tech.
- The absolute openess in having everything publicly available - materials ofc but also questions, discussions, feedback, ...
- Thinking about all content being available publicly and as a git repo
- Thanks for explaining the HedgeDoc interface, with view and edit options
    - Is there anyway to come back to this document later (e.g. tomorrow) and see what has changed since now? So I can see if any other questions have been asked/answered?
        - There is a "revision" point under "Menu" up right, which shows you different versions of this document
- Modesty: the gentle art of enhancing your charm by pretending not to be aware of it. - Oliver Herford
- 



What one thing would you improve about this session?
- Perhaps some more interactivity but can be hard to plan and time
    - We'll see what we can do. 
- _Maybe_ mix the breakout groups up for each breakout session (although there are advantages to consistency too) :+1: 
    - yes, pros and cons! For me, having consistency worked well this time. 
    - Likely we will have different participants next week, and a bit of mixing will happen naturally. 
- The pace of the presentations could be a little tighter (the pace is good for a discussion though)
- Richard's voice was only 80% audible
    - Sorry to hear that. It seemed fine on my end. Will check better for next session.
- Hands on simulation and collaborative notes
- I found it difficult to follow the presentation and the collaborative notes at the same time
    - We will highlight the collaborative notes more in the next session. Our strategy usually is to say to focus on the "teaching part" and use the notes only when needed. Since you can go back and also check the notes later.
        - My problem is that I want to follow both since I don't want to miss out on anything. As such, I have both windows (zoom and the notes) open side-by-side. Since there is near-constant real-time typing in the editor, and as such visible movement on screen, I get constantly distracted. This makes following the event quite exhausting.
- Heads up to participants on using the break out rooms on voice interaction and screen sharing.
    - Do you mean that we should have mentioned it more clearly in the pre workshop email?
- I found it hard to follow with so many things going on at once...
    - A collaborative document being changed at the same time as...
    - Someone speaking and explaining content at the same time as...
    - Chat in a different application at the same time as...
    - Content changing in a termin application. 
        - Thank you for the feedback. We will remove the Zoom chat out for the next session and explain the use of the collaborative notes more.
- Make more use of defining and then making sure the learning objectives are met
    - True we did not talk about them much, will pick that up better for next session.
- UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. - Dennis Ritchie. You need to do a lot to prove that to be wrong, simply put.
- Allocate some time for learners to type in the answers so that we don't have to listen and type at the same time.

Any other comments?
- It's great to hear other people's experience
    - Good to hear :)
- Looking to meet you onsite if there are any events and get more emails from you :) 
    - We will keep you informed :)
- Thanks for putting this together, I got a lot of inspiration for my own courses
    - Good to hear :)
- I didn't know where to ask questions. It would work best *for me* to do it in zoom chat as that's the application that I'm watching in..
    - Sorry for that, just to figure out why: Did you join a bit late?
        - No. Perhaps I just missed that or it was too quick for me or something?
            - Ok, sorry. Will try to make this more clear in next session. 
        - Perhaps also because there were so many things going on and jumping around. For me, the zoom chat is the constant (and obvious) place to ask questions while watching a shared screen, trying to find the right place in a moving collaborative document is difficult. It tears my attention into too many pieces. :+1:
- Had a lot of content that assumed extant knowledge that I didn’t have. This wasn’t in the pre-requisites.
    - Do you have examples?
        - Yes! The code refinery templates and even just the way of doing that. I was expecting more on "when designing a lesson you should think about these steps" rather than this is how we do it and this is our tool for doing it. I guess I should have read the pre-workshop content better?
        - Ok, thank you for your feedback. You are right that we actually had some content that for sure would have been easier to follow for people with background knowledge about a certain topic. 
        - "If you are in CodeRefinery TTT, you probably know what version control is and why it is important." - extant knowledge, why not just add a sentence or two?
            - Please can you update in preparation for the next workshops so that I can decide whether or not they will be right for me?
                - Yes, we will think more thoroughly about this and send the info in the next email going out Wed/Thu
                    - Thank you!
- Lots of the content was relevant to code refinery but not the wider topic (e.g. it was how to design a code refinery lesson and not how to design a lesson as stated in the session title)
    - We thought of the content of showing one way of doing things, ie "what we have learned", if you have suggestions on how we could make that more clear on the event page, please let us know :) 
        - "in a code refinery lesson" in the lesson/workshop description?
- When you have pre-written “thank you for your active participation” it feels fake!
    - He, that is true, did not think about that. Thank you for the feedback. I would not have added it if Radovan and Richard would not have provided good feedback from circling the rooms. 
- I found it vague and disorganised and difficult to follow. It felt like the instructors were presenting the content for the first time and didn't know what to do next.
    - Thank you for your feedback. This is not the first time we have this training, but it is the first time in this constellation/way. The way of teaching may also sometimes make it seem new to instructors.
- I really liked the active exchange with other participants, but I also would have enjoyed a bit more technical content in the presentations. In a sense it felt less like a 'training' and more like a get-together :+1:.
    - Thank you for your feedback. We thought the name "workshop" would combine the training and exchange nature of this event. But maybe it didn't do so enough? Do you have suggestions on how to clarify it on the event page?
        - Well, the 'train the trainer' title created the anticipation of being trained ;) don't get me wrong, I liked the exchange, but I felt that the training aspect fell a little short. imho the workshop would benefit from a little more (instructional) content that is presented in a more structured way by the instructors (as opposed to 'crowd-sourced knowledge' that is collated in a loose collection of questions, notes and links)
        - Other than that, you could add another section on the main page, sth like 'Workshop structure: we aim for a mix of modular presentations and work in small groups. The latter will be done in breakout rooms - be prepared to switch on your camera and have a fruitful exchange with fellow participants!'
            - Thank you for the suggestions, will add something like this :tools:
                - > Added : https://github.com/coderefinery/train-the-trainer/commit/03308595436e636b3bb37ed9d1f0dee39eeccd0f
- My understanding (so far) of what (unlike the competition) CodeRefinery DOES NOT seek to exemplify - 
https://images.ctfassets.net/rxqefefl3t5b/2k45BFtw4sBMlBfjr1OZ90/5c6ecd3628a43b0cdc79815f665e224a/Screenshot_2023-05-02_at_09.35.23.png?fl=progressive&q=80
- My understanding of what (unlike the competition) today's session of CodeRefinery DID exemplify - Definition of 'Workshop' from the Oxford dictionary of the English language "a period of discussion and practical work on a particular subject, in which a group of people share their knowledge and experience"
- In my experience, even for the most seasoned Programmer coding, by its very nature, is nothing trivial, this being a simple straightforward fact just like there is no such thing as an egg which is a cube. I mean there is a reason why not just about everybody is a poet either. But, other minds have pointed this out without having to first explain why the universe is what it is in a way that could be understood without effort ... https://i.pinimg.com/originals/7b/7e/c4/7b7ec4b91d2cf9d8e1b064678d205467.jpg
- The inclusive environment feels very welcoming. Keep up the good work!

**Thank you all for your feedback! Highly appreciated!**

## Day 2 - Tools and techniques adopted in CodeRefinery workshops 

### :calendar: Schedule

| Time (CEST)   | Title                                 | EEST (UTC+3)  | BST (UTC+1)   |
|---------------|---------------------------------------|---------------|---------------|
|  8.45 -  9.00 | Connecting time                       |  9.45 - 10.00 |  7.45 -  8.00 |
|  9.00 -  9.15 | Intro and Icebreaker                  | 10.00 - 10.15 |  8.00 -  8.15 |
|  9.15 -  9.25 | About CodeRefinery workshops          | 10.15 - 10.25 |  8.15 -  8.25 |
|  9.25 -  9.55 | Collaborative notes and interaction   | 10.25 - 10.55 |  8.25 -  8.55 |
|  9.55 - 10.10 | Break                                 | 10.55 - 11.10 |  8.55 -  9.10 |
| 10.10 - 10.45 | Workshop overview, roles, onboarding  | 11.10 - 11.45 |  9.10 -  9.45 |
| 10.45 - 11.05 | Sound                                 | 11.45 - 12.05 |  9.45 - 10.05 |
| 11.05 - 11.20 | Break                                 | 12.05 - 12.20 | 10.05 - 10.20 |
| 11.20 - 11.50 | How to prepare a quality screen-share | 12.20 - 12.50 | 10.20 - 10.50 |
| 11.50 - 12.00 | Outro and feedback                    | 12.50 - 13.00 | 10.50 - 11.00 |


### :icecream: Icebreaker

#### Check-in

Which emoji best describes your current state of mind? [Emoji cheat sheet](https://www.webfx.com/tools/emoji-cheat-sheet/)
- :-)
- https://media.istockphoto.com/id/148421550/vector/bored-emoticon.jpg?s=612x612&w=0&k=20&c=uo5KBTqdJZbBQb_Xldhzuovx5t08fHfGR7dw7TCk90I=
- :saluting_face:
- :sleepy: 
- :coffee: 
- :umbrella: 
- :cocktail: :coffee: 
- :seedling:
- :tired_face: 
- :sun_with_face: 
- 🥴 (:woozy_face: not converted?)
- :coffee:
- :sunflower: :book: 
- :satisfied: 
- :coffee:
- :coffee:
- 🥱:tired_face: 
- :bread: - I am baking bread today so I have been kneading dough while listening!






#### Introduction in breakoutrooms
 
Name / Affiliation / Location
- Bjørn Lindi / NTNU / Trondheim, Norway
- Bryn Noel Ubald / British Antarctic Survey / London, UK
- Yassine Kaddouri / Yellow method/ Helsinki, Finland
- Stepas Toliautas / Vilnius University / Vilnius, Lithuania
- Dhanya Pushpadas / University of Bergen /Norway
- Sebastian Kuckuk / Erlangen National High Performance Computing Center / Germany
- Ali Asim Kazmi / Independent / Oslo , Norway 
- Raúl Ortiz / TU Delft / the Netherlands
- Nick Bearman / freelance & UCL Geography / Cornwall, UK
- Enrico Glerean / Aalto / Espoo, FI
- Sara Shoghi / TU Delft / Netherlands
- Zoa Le / Arcada - Aalto / Helsinki, FI
- Hossein Firooz / Aalto / Helsinki, FI
- Yu Tian / Helsinki,FI
- Peng Sun/ Independent /Christchurch, New Zealand
- Aurélie Vancraeyenest / CSC / Helsinki, Finland
- Zuhair Iftikhar / CSC / Helsinki, Finland
- pieter / Louvain-la-Neuve / Belgium
- Laura Ribeiro, VTT Finland
- Priyanka Ojha, Amsterdam UMC, Netherlands
- Michele Mesiti (Karlsruher Institut für Technologie, Germany)
- Jez Cope (he/him) / The British Library / North Yorkshire, United Kingdom / https://erambler.co.uk
- Heidi Reiman / CSC / Helsinki, Finland
- Margaret Duff/ STFC- UKRI/ United Kingdom 

#### Teaching

- Do you teach and organize teaching alone or with others? What would you prefer and why?
    - Coming together is a beginning; keeping together is progress; working together is success. – Edward Everett Hale
    - These days always with others.  Alone is easier to prepare but almost always is harder during it.
    - Teaching with very diverse partners, it can be challenging to find a common language with people very different than you.
    - I teach alone, in the future there will be more collaboration with multiple team members. Both approaches have their pros and cons. 
    - Both has its own distinct advantages
    - Most of my teaching is on my own, as a freelancer its more expensive to work with colleagues than to deliever a course on my own.
    - Teaching together, learns from each other, feedbacks to improve
    - Not formally taught yet, only given presentations actually .
    - collective teaching would benefit the teachers with collaborative curriculumn and experiences sharing. 
    
    
- If applicable, have you seen any challenges when teaching together and how to overcome them?
    - It actually requires preparation, 
    - Is it about teaching or about inspiring ? Discover the answer and get inspired ...
    - It's like being in a band: you might be great at improvising and your band-partners might be great at improvising too, but a bit of rehearsing makes even the impro gig much better
    - Need to plan before session, difficult if people don't 'plan' in the same way, e.g. with the same time frame.
    - Heterogeneity in learners make it impossible to get the same result from everyone.
        - In fact, the same applies to teachers :D
    - Teaching together requires to have similar opinions on how to teach. I share vews only with ~40% of my colleagues I think.
- No Teaching experience but it is good to give the outline of the lessons beforehand and learning goals.


---

### :question: Questions 

#### General / Practicalities

- What is this document for?
    - Asking questions, collecting discussion points, taking collaborative notes (Zoom chat deactivated, can only be used for communication with the hosts)
- Will the material be made available?
    - Materials are and will stay available at https://coderefinery.github.io/train-the-trainer/
        - Can I share them with a colleague
            - Yes please :) 
        - Can I resuse them in my own teaching?
            - Yes please :)
- Will these sessions be recorded?
    - No, but the materials (see above) should include everything needed for self-learning.
- Can I get a certificate for this workshop?
    - You can get a certificate of attendance after the workshop by sending an e-mail to support@coderefinery.org, telling us a bit about what you have learned and which sessions you attended.
- How often will we be talking in breakout rooms? 
    - We'll have about one breakoutroom session per episode
    - Enrico, BR 1 : The Zoom chat does not work for the breakout room so we should take note of that. No webcam/mic = expect silence.
        - Thanks for notifying! This was not intended. Turned the chat back on. 




---

## Session 2: Tools and techniques adopted in CodeRefinery workshops

### Episode 1: CodeRefinery

Materials: https://coderefinery.github.io/train-the-trainer/coderefinery-intro/  

- (questions continue here)
- Is there the plan to build capacity / be paid to deliever courses?
  - We've discussed it but right now we don't have many people who could accept money to do this (and maybe shouldn't, because of their jobs).  But, we would encourage others to use our materials as "independents" to deliver paid courses
  - One idea we have had is that paid courses could be delivered through the DRA (link below), who we know.  Basically, DRA could find instructors and handle the money transfers (If someone wanted a paid course, we could help find someone to do it through DRA or independently)
  - :smile:
- Have you come across DRA, https://digital-research.academy/, Heidi Seibold, Joyce Kao who are doing similar work? I can connect you if you like.
    - Yes we have been discussing about possible future collaborations and are already sending possible clients their way (we, as a project cannot take money) :+1:
        - Excellent! :-D :smile:
- .

### Episode 2: Collaborative Notes

Materials: https://coderefinery.github.io/train-the-trainer/collaborative-notes/

- So anyone can type anonymously?
    - Yes, as long as you do not log in, you are Guest XXX
    - And at least in our hedgedoc case you cannot log in so you will always be anonymous. You can do [name=Samantha], to add your name to a comment

- Test of +1
    - +1 :+1: :+1: 
    - :-1: a test

- You are hosting your own version of HedgeDoc, and Hackmd.io is a similar (free) option. What are the limitations of the free hackmd.io? Should each center install their own HedgeDoc instance?
    - It **seems** the free version of HackMD has gotten worse lately. It works still well enough with a few people editing at the same time. 

- Have there every been problems with the anonymity and CoC?
    - We haven't had any issues so far. 
    - With a different anonymous tool in a bachelor course, we had issues with anonymous participants (participants were posting slurs and unsafe links). The course organiser decided to stop allowing anonymous tools.

- Why not google documents?
    - Google documents are actually setting a hard limit for simultaneous writing, no more than 100 concucurrent editors. I am unsure if microsoft onedrive word documents would allow more users writing at the same time. 

- What's the most people you have every had on HackMD / Hedgedoc?
    - I believe about 200 active participants?
    
- What are your thoughts on using the build-in Zoom Q&A?
    - We haven't tried this, in part because the way we do streaming now (you'll see in session 4), participants aren't in Zoom so don't have access to that. The doc-format works pretty well though, when we keep it in this limited "write at end" format.

- How do you see what has changed? e.g. if leave the session at the end, can I come back tomorrow and see X has been added? e.g. a diff for this maybe?
    - In the menu up right there is revision, it does show the document and changes at different time step :+1: Thanks!
    - We recommend people only write at the bottom (and since we answer things live), so as a first level approximation you find where you were and read below that.  Think of it more like chat than a full document.  (Yes, we do revise questions at the end)

- How about flinga boards or similar tools?
    - My take is that the simplicity of a simple text document wins over free-form in-person-workshop-like tools.
    - There's miro, can be a bit confusing though

- How does this work with small groups, e.g. 10-15 people?
  - Good question: it can be hard if people aren't rigorous about it, people start only using chat/voice.  So there seems to be some lower bound in size but we haven't tested this much
  - And if the instructors never screenshare it to show what goes on it, then seems to be less used.
  - And if there aren't other people to read/answer it during the session (perhaps less likely in a small course), it seems to be less used.


:::info 
Breakoutrooms until xx:55

Exercise/discussion: https://coderefinery.github.io/train-the-trainer/collaborative-notes/#exercise
:::

- Breakout room 1:
  * Use of etherpad for collaborative discussion.
  * Use of slido for polling and quizzing.
  * Presemo as a slido alternative (https://www.aalto.fi/en/services/presemo-a-fully-web-based-classroom-participation-system)
  * Use of text based approach for questions rather than live can be helpful if there is a language barrier issue.
  - A good teaching session which had many questions coming spontaneously to the teacher is a non-entity of sorts. If the overall flow of feedback / questions increases it could indicate that the session will not prove to be a helpful experience. A signal that generates noise is, well, noise, if calling a spade a spade signals anything. Note that the 'overall' bit and the 'to the teacher' aspect are important. Both the best and the worst teaching session have two things in common: a teacher, and the fact that NO Materials of any kind are used, ie speech is the only channel of communication via a common language. The only difference is that it is not the same teacher, at least not in the same session at the same time.

  Another less mentioned, but perhaps more relevant indicator of a great session is the simple fact that at the end of the session EVERYONE feels empowered, NOT tired. This is not an easy to quantify thing, but screams out the quality of the experience loud. More often then not, such sessions differ little from each other, apart from in terms of the theme / topic and the participant mix. It ends up being the 'keep your cake and eat it too,' of sorts, not quite the far less amusing post-bombardment devastation scenario in the wake of a take it or leave it go at anything. 
 
  - profanity in collaborative documents where people can add content anonymously could be a problem (happens very rarely, fortunately and somewhat surprisingly)

- Breakout Room 2:
    - Good experiences with Zoom polls
    - Handling questions in hybrid setups: all participants (on-site and online) ask questions in written form
    - Collaborative notes can be challenging when conducting a course alone (without teaching assistants) :+1:
    - Providing a method to ask questions anonymously can make asking easier for shy participants
    - Questions can give valuable feedback on how the course is going
    - Online collaborative whiteboarding platforms such as Miro
        - Large monitors are useful for this not to have to drag a "periscope" around




- Room 4
    - good experience with whatsapp chat for questions. since most learners have the app already and one thing less to install and set up
      - reply to question is a way to handle multiple questions at the same time but it works well for smaller groups
  - experience with collaborative docs in in-person workshops: voice questions might "win" over the document
  - "seeding" questions may help to not have an empty document
  - it can help somebody to start and create a structure which helps others to see and follow
  - we discussed the Carpentries sticky notes system (red sticky note: signal tech issues and use for feedback, green sticky note: signal that exercise worked and for positive feedback) 
    - Nice summary of sticky notes system: https://teachtogether.tech/en/#s:classroom-sticky-notes :+1:
  - What is the success rate of in-person workshops after COVID? Discussion: Teachers prefer in person and learners prefer remote or recorded to spool back and relearn.


- Room 5 

    - Good experience with Collaborative tools as HackMD and HedgeDoc while teaching with no bad feedback 
        - When used with smaller groups works best as one-way, like sharing links with students and so on
        - Needs to be done as a team, quite difficult if teaching alone
        - Most useful when online/hybrid
    - Anonymisity is important for transparent feedback and no biasis in classrooms
    - Not very collaborative but useful to share history or jupyter notebooks live https://github.com/mwakok/software_carpentries?tab=readme-ov-file#set-up-gitautopush
    - Used Flinga before that seems like Figma and also onsite teaching using sticky notes
        - There's miro.com but can be a bit confusing, more for brainstorming than for teaching
    - Using quizzes apps like Kahoot is beneficial while teaching to have more engaging students 
    - 

- Room 6
    - teaching teenagers (in presence) but using shared pad becomes quickly very chaotic, so only usable for short moments when answering very precise questions
        - Yeah, I can imagine.  For CR we try to keep it in this very limited format (all questions bullet points, only add to the end) and I think that helps.
    - using shared notepad for small workshop (5-10 people) to explore common thematic (mainly technical) to keep a shared notes and condense aftwerward (and publish on wiki to archive)
    - Difference between teaching in person and online. Some people prefer in-person and sometimes you have no option but to organise it online.
    - There are sometimes cultural differences and learners feel shy to ask / question the knowledge of the Teacher, so shared notes are a good way to safely ask questions.


Questions continue:

- Have we demonstrated how we do polls in HedgeDoc? Add your vote by adding an `o`
    - yes: oooo *(in session 1)*
    - no: 
    - :smile:
    - not sure: o


### Episode 3: One workshop, many perspectives

Materials: https://coderefinery.github.io/train-the-trainer/overview/
Next CodeRefinery workshop in September: https://coderefinery.github.io/2024-09-10-workshop/


:::info
#### Exercise until xx:39
https://coderefinery.github.io/train-the-trainer/overview/#discussion
:::
- Room 1
    - Send pre-workshop email with pre-requisite instructions on what should be set-up beforehand.
        - But, also mention that if help is needed for set-up, we will be ready before the session officially starts.
    - Discussion on whether we push to work in a pre-ready environment (e.g. Binder, Colab) or in their own environment.
    - Lots of help needed both before and after.
    - Installations: as much as we can provide ready made environments for the learners, maybe installations will be something that the learners will face sooner or later. Maybe one should teach more about installations?
    - My only cherished role in a teaching-learning session is the that of one who is living the moment as if there were no tomorrow. What cuts all ways really is that “By failing to prepare, you are preparing to fail.” ― Benjamin Franklin. A helpful motto: “When one teaches, two learn.” — Robert Heinlein. The best experience cannot be given, it can only be allowed to flow its way, so get out of its way.


- Room 2
    - Frequently, a single person fills all the roles for a single or multi-day workshop
    - Collaboration with different centers/ universities can be challenging
    - Preparing participants: it's essential for the instructor to go through the demos and be sure that they will work (no unpleasant surprises live). This can be extended to advance-prep for participants.
    - Best experience is to hear (live or in feedback notes) some positive things directed at you :)
    - Fully prepared environments (eg self-hosted JupyterHub) can make preparation for participants easy


- Room 3
    - Some students have problems with setuping the environment. Maybe having a step by step instructions could help. But some students don't want to "start" the course before hand.
    - Preparing the environemnt before hand ensures everyone is onboard from day 1. The same thing happend in CSC training sessions and another session Peng attended.

    - Had experience in attending as teacher and student in previous workshops

- Room 4
    - knowing the background of the audience is helpful
        - Try and ask in advance of the background of the audience. Do a poll at the start of the workshop. In person one can do it interactive.
    - among co-instructors: discuss topics and flow
    - if more people are involved, it can help changing roles from time to time to see different perspectives
    - preparation is key
    - Circulate instructions beforehand
        - Do a poll before session: Have you installed (QGIS) successfully? 
        - Push hard to do this in the welcome email
    - communicate clearly to the participants
    - 
- Room 5
    - We've all taken most roles
    - How to prepare in advance?
        - Meet and discuss once or twice
        - Make a pre-survey to check for interest and background
        - Going through the materials
        - Checking the toolkit (zoom)
        - Agree on the reponsibilities and back-up plans (bit of scenarios planning)
    - How to prepare trainings in advance?
        - Collect resources and prepare the workshop plan
        - Having the material readily available online ans sharing it
        - Making a pre-survey
    - What was the best workshop experience for you as learner, helper or instructor? What made it great? 
        - learner
            - Engaging and practical workshop with more exercices and follow-up theoretical part explanations
        - helper
            - When the instructor is well prepared and as helper ther's only typos to fix and interesting questions to answer
            - Assist the instructor, coordinate the collaborative notes, and make sure that the time is respected
        - instructor
            - I have a colleague whom I've ran the same workshop a few times already, goes quite smoothly now and we've made a few changes. Hard to reach that point with new colleagues but getting there
            - Students/participants were engaging with the material and many good feedback collected even some of them asked for the next workshop 


- Room 6
    - What has made a great experience for you as a learner/helper/instructor?
    - Common ground between learners & teachers
        - 
    - Motivation
        - Teaching is much more enjoyable when the learners want to be there
        - I ([name=Jez]) spend a lot of time at the start of a workshop making sure learners feel that the content is possible for them to understand and master


Poll: I have joined a CodeRefinery workshop before: (add an `o` for your answer)
- yes (within last 2 years): ooooooo
- yes (longer time ago): oo
- no: oooooooo
- 


(questions would continue below:)
- What is the motivation / advantages of streaming workshop versus using zoom?
  - We'll cover this more in week 4, but roughly: zoom became unmanageable and essentially quiet once things got big.  Streaming allowed "one to many" communication with no limit, and collab notes allowed better interaction anyway.  By separating the rooms, it was more pleasant to teach.  Videos could be released immediately since there was no risk of privacy of participants.  There could still be in-person/online small groups who have "watching parties."
- What are the blue red and green font colors here, does it symbolify anything or just a convention HedgeDoc uses?
    - Visual separation of formatting, mostly. (It helps to quickly realize you've missed/ mistyped a control Markdown symbol etc.)
    - Yeah, it's bascically "code highlighting" for markdown.  No special meaning but quite convenient for us.
- Is this next workshop only for team leads or also open for helpers and coordinators?
    - You mean the next session of this workshop or the upcoming "CodeRefinery workshop"(this one: https://coderefinery.github.io/2024-09-10-workshop/)?
        - The upcoming workshop coordinators are alredy working, but can be joined if you are interested
        - As helper roles we currently only have "collaborative notes helper", which is all about helping to answer questions in the collaborative notes
        - We do have some co-teaching slots open :)
        - If interested: join the discussion in our chat: https://coderefinery.zulipchat.com/#narrow/stream/316508-coderefinery-tools-workshop/topic/Fall.202024.20CodeRefinery.20workshop

- Can a person have multiple roles in a workshop as a helper and a teacher?
    - Yes, many teachers also contribute to the rest of the workshop by answering questions in collaborative notes. :+1:
    - Some teachers also host a local classroom in week one and do their teaching in week two of the workshop 
    - Roles that do not go well together are broadcaster/director/host and instructor (goes well until there is a problem; co-teaching solves that partly)


### Sound
https://coderefinery.github.io/train-the-trainer/sound/

- To me, Richard is a bit quieter than the other two :+1: :+1: :+1:
  - to elaborate: I think that the audio coming from him is missing some mids
  - Do you have any links about this kind of evaluation and adjustment?

- Do you suggest / recommend a specific headset(s) with mounted microphone?
    - in our experience headsets with a microphone will almost always be better than a separate microphone sitting on the desk or in the monitor
    - 

- Speakers have different tones of voice and speaking styles, is there a recommendation or experience from CR workshops for how this is adjusted and catered to environemnts for listeners? 
    - Yeah, people's voices are different and we haven't gone as far as voice training or improving.

- How to change the volume for speakers? Tried Zoom settings and system settings and didn't help.
    - From linux I can use different pulsemixers `pavucontrol`, `pulsemixer` to set the gain to above 100%.  I'm not sure the equivalent on other OSs but 

---

:::info

Exercise until xx:10
https://coderefinery.github.io/train-the-trainer/sound/#exercises
:::

- room 1

  - Practically, no typical headset is designed or can capture the technical purity of human voice within its natural environment. But one needs to understand the polar pattern of the (specific) microphone or how much of the signal will be picked up by the microphone from different directions, a sine qua non when it comes to mitigating unwanted sound sources to bleed into the signal.

For best results, keep the right direction & distance to your (directional) mic. Usually, that’s between 15-30 cm to get get a natural sound. A microphone records everything it can, also silence, so check the headphone output BEFORE adjusting the gain, in some specific cases aim for a dry sound, ie the influence of the room or how audible the room is on the recording ! Finally, adjust the mix between dry and room sound, or change the frequency response in tandem using a compressor to reduce the dynamic range of a signal for a more consistent listening experience = the quietest parts of your signal will appear louder by reducing the loudest parts. 

It is all about one thing and one thing only - love your voice, let people fall in love with the acoustic quality of your charm. So remember: GIGO, it matters!

- Room 3
    - Had different headsets and we could see the difference (bluetooth low quality)
    - How to change the volume?
        - It's surprisingly hard to get more control than the basic slider you see in the apps!  You need to look.

- room 4
   - headset is probably better listening experience but they can be uncomfortable to wear during long meeting days :+1:
     - Yeah.  Luckily only instructors 
     - Therefore breaks are non-negotiable 
   - loud keyboard can be an issue
   - if one has a silent room that does not echo, it can be ok to teach without headset
   - on Linux I am using `pulsemixer` to adjust levels and `pavucontrol` to change outputs/sources
   - mic modes on mac 
   - check default microphone for zoom.
 
 - room 5
     - Most tricks help tuning yourself but hard to do it as a group. Perhaps doing a short recording.
         - Yeah.  Some independent recording/playing aronud, but also asking for advice.  I would do small group/one-on-one things.
     - Background noises cancellation tools or wise choice of quiet environments
     - Audio check with colleagues or through the app with the audience saying numbers for example
     - Zoom or Teams have sound checks but work different in the app than the browser. They also work different across Operating systems
     - Some sound issues might be related to network speed or stability, also to RAM available. Worthwhile to try and control those as well
     - Make it welcoming for the audience to give you feedback on the audio and other settings, give reminders
 

## Episode 5: How to prepare a quality screen-share

Materials: https://coderefinery.github.io/train-the-trainer/screenshare/

- If your Zoom does not support "share portion of screen", sharing a tab and resizing it to portrait for yourself is a possible workaround (this at least works when joining the call from Chromium browser)
    - Another workaround is to use an editor/IDE that displays multiple panels in one window and can show a web page, code files and terminal session +10
- Is 'share a portion of your screen' where you draw a box in Zoom to share a section?
    - yes :+1: 


- When using zsh, one can run something like this in a terminal
  ```
  tail -n $NLASTCOMMANDS -f ~/.zsh_history | sed 's/^.............../LAST COMMAND:/g'
  ```
  (I place this in a window under the main terminal, I use i3)

- I am a bit confused on what platform you are putting this code?
  - Radovan is using Linux with (I think) the "i3 window manager".  It can be quite involved and there is lots of personal customization here.
- When teaching with a custom prompt, is it worth starting with the default (that your learners will see) and explicitly mentioning "I change these things to make it clearer when teaching"
    - One should always comment on what may be different.  Thing is "default" may look different for many people :+1:
    - "I am _not_ going to teach you how to customise your prompt, but here's an online tutorial, be prepared to lose several days of your life..." :laughing:


- Now I can't see the last line in the terminal
  - Yep, that's a problem.  It can be good to keep a buffer on the bottom of the screen.
  - If you move your mouse outside the Zoom window, the controls should go away. But still a good note. 
    - My mouse was on another screen. 
    - Ok, thanks.
  - I think one can also make the zoom bars not auto-hide (then it won't display under), but that is annoying also since it wastes space.


- Does anybody still use shellshare? Does it work?
  - We in CR haven't used it much but we have seen it.

- Does the stacking of the screens work on windows?



:::info
Exercises (done together)
https://coderefinery.github.io/train-the-trainer/screenshare/#exercises

Write your cool tips and ideas below.
Stay after xx:00, to 
:::

- To be safe, I have created on my computer an account that I use only for teaching, so I do not need to do any manual set up
- share history or jupyter notebooks live (5-10 secs refresh rate) into a git repo. Share the link with the learners so they can catch up https://github.com/mwakok/software_carpentries?tab=readme-ov-file#set-up-gitautopush

---

## Wrapup

- Next session Tuesday August 27 9 CEST: About teaching & cool things we all would like to share
- All workshop materials will stay available (and be put on Zenodo right after the workshop, currently other epsisodes are still in development)
- CodeRefinery community: https://coderefinery.zulipchat.com/
- Cool gems session: If you want to share something, please edit your registration and fill it in there (link to modify in registration confirmation); or e-mail to support@coderefinery.org
- If you want to co-teach with us in the upcoming (or any future) CodeRefinery workshop; or just want to learn more about this opportunity: Let us know in chat, send an e-mail to support@coderefinery.org, or join any of the upcoming Monday planning meetings at 14:00 (Europe/Stockholm time)  


## Feedback about todays session

What one thing was the most valuable/useful thing you learned today? Or generally one thing you liked about this session:
- Sound and screen share optimization as well as relevant tools and good practices for online instruction. “While you may be unable to control your users’ mindset, you can anticipate it, and make sure that your user experience caters to it.” - Jonathan Cherki 
- Nice opportunity to (re)think about my online teaching setup :+1: :+1: :+1:
- Other ways to display command history :+1: 
- Did not know that bluetooth gear had so much latency! :+1: 
- A good reminder about headsets with microphones
- Nice and friendly teaching. Thank you!
- Screen share with command history and terminal customisation
- Really useful tips on sound and screen sharing :+1: 
- Nice experience share
- very useful and practical tips!
- Easy to follow along and filled with useful tips on sound, video etc.
- 

What one thing would you improve about this session?
- Just digging to find something: I have read some of the things you have talked about here already in some blog posts, so perhaps these sessions are not as shokingly full of new content as I imagined (but actually sharing experiences is something I can't do by reading a blog post)
    - Perhaps: could you link some blog posts or other sources for what you have discussed so far? If it makes sense. Not sure.
- Talking about interface optimization approaches, which applies to sound as much as to visuals or any other aspect either for that matter, it might offer a perspective to bear in mind the concept of introducing asymptotic complexity increment. The latter would mean the goal is measuring how fast the effort of engaging, on one or more of the three parallel levels of interaction, must change to reach higher levels of partial certainty on the correctness of the implementation of the method in question, in this case the pedagogical paradigm. For the former, lower is better I guess, or in this case, in the intended sense, slower is faster. Let us consider an abstract example: People liked using the search engine Google (a Google session to put it in a fancy way) in the early days because it was as simple as it could get, a literally featureless entry point with no bells and whistles. That was the level of its visible complexity, or rather Google set a bar as low as it one could have, and then any higher point of VISIBLE complexity that was to be introduced, such a move would only be on the path of an asymptotic curve curving towards the set bar, never reaching it, as far as the entry point is concerned. We still see the same level of complexity when we fire up google and we never feel distracted to start with, except for the rather forgivable nuisance of the GDPR conformity pop-up notice which appears only AFTER the first move has been made, and thankfully it works plain and simple from there on (unless one starts feeling lucky, pun intended). Now, think about Youtube ... the user experience complexity is a totally different matter, the same company today (unfortunately) yet one now has a steadily worsening engagement experience. Good learning sessions tend to be more of the Google search engine experience and a far cry from the current Youtube trend I would opine. Or, to sum it up and keep it sweet and simple, it helps to identify the limits of human-human and human-technology interaction, within the framework of any applicable technology-technology interaction and joy is the result of respecting those limits. Wishful thinking ?
- Bring the cat back!
    - I wish it came, but it's been resting all morning!  I don't bother it or stage apperances...
- Maybe having a digest/ summary of previous iterations of this session might be interesting. I feel a lot of experiences have been exchanged and a lot of techniques/ tools have been mentioned. Spending some time in compiling this into a selected list and adding it as content to the course itself might be worthwhile.
    - Good idea! We will write a blog post about this workshop and will include a summary of all discussions there :) 
- Possibly have some command line examples from Windows rather than (just) *nix? I will look at the screenshots after the session. :+1: :+1: 
    - Also, a thought if you do do breakout sessions with this work, do one for Unix, one for Windows, one for Mac as an option. 
- I could not follow the part Radovan showed codes (Radovan is using Linux with (I think) the "i3 window manager".)
- ..

Any other comments?
- Looking forward to the topics of following sessions.
- Looking forward to the next sessions!
- Thank you!
- Relax, nothing else matters, live a life and have fun ! If you obey all the rules you may end up missing all the fun. 'The best way to predict your future is to create it.' - Abraham Lincoln :+1: 

