---
tags: workshop-2022-March
title: Exercise Leader onboarding 2022
---
# Thanks for being an exercise leader :heart:
Without you, these large online workshops would not be possible!
## Agenda
1. Introduction and Icebreaker
2. Reviewing learners survey
3. Short overview on what will happen in workshop
- teams
- stream vs zoom
- main session vs breakoutrooms
- HackMD and expert helpers
4. [How to be an exercise leader](https://coderefinery.github.io/manuals/helping-and-teaching/)
- Code of conduct
- positive learning environment
- things to avoid
5. [In breakoutrooms](https://coderefinery.github.io/manuals/breakout-rooms-helping/#helpers-in-breakout-rooms)
- Helper as moderator and time keeper
- breakoutroom strategies
- common problems
6. Path ahead with CodeRefinery
7. Open questions
8. Transition to installation help
---
### 1. Introduction, Icebreaker, Zulip
> CodeRefinery: We are working with students, researchers, and research software engineers from all disciplines to advance FAIRness of software management and development practices so that research groups can collaboratively develop, review, discuss, test, share and reuse their codes.
* Get familiar with HackMD [Exercise Leader HackMD](https://hackmd.io/@coderefinery/EL_hackmd_22) -> Icebreaker
[HackMD Mechanics](https://coderefinery.github.io/manuals/hackmd-mechanics/)
* Shortly introduce yourself in zoom
* Who are you?
* What do you do?
* Where are you connecting from?
* If you want to, sign up for our [zulip chat](https://coderefinery.zulipchat.com) to ask us anything, anytime. Use `#tools-workshop` during the workshop itself (you need to join the stream)
---
### 2. Learners survey
Executive summary of the survey results:
- half the participants are graduate students
- half the participants use Windows
- half the participants use Git
- programming languages: 71% Python, 12% R, 12% Matlab, 10% Fortran, 8% C++
- half the participants use GitHub
- most people have some programming experience
- 20% are new to command line
- 40% have learned about workshop from a friend/colleague
Answers to "What do you expect to get from this course?"
Simplifying my life with version control. Changed one line of code that broke and do not ever wish to search for the error again (through lines and lines) - would rather mark changes with git and be able to simply revert back to original/better track modifications. SO excited for this workshop!
I might start using version control again and implement automated testing.
A good understanding of the best practices when it comes to version control and reproducibility in code/data analysis
To improve my coding efficiency and documentation skills.
In particular, be fluent in git managing branches in collaborative software and improve the software design to make it easier for the rest of collaborators
To be a better programmer
How to improve reproducible research and get better at Git.
Improve my code, make it more reusable, distribute it and make easier to collaborate.
Be introduced and obtain new overall knowledge that will help me transition from beginner to a more intermediate level with respect to writing, adjusting and managing code (my own and others that I collaborate with). Hope that it will make me more efficient and organized in my job :-)
A better understanding of the functions of web-based repositories and better code practice when working on larger projects with multiple contributors.
a wider base of general knowledge
I expect to get enough experience to start using github version control on my proyects. Plus, I expect to get some additional information on automated testing.
skills and tools that help me organize my work as a student and in a job later on
Practicalities to adopt.
Mostly some hints of how to use Git(hub) in a good way..
better getting to know software management tools, code organization advice, code structure tips, learning how to better document my code
I am looking to improve code documentation, modularity, and collaboration in my projects. I am also trying to understand code better.
New skills
refresh
I expect at least to start using GitHub for creating code web-based repositories and for managing version control, as it is now mandatory for reproducible research
I already have quite some experience coding but I would like to learn more about version control, collaborative platforms to code with other researchers, and, in general, improve my coding skills to have more efficient codes that are also easier to understand by others
To get a better understanding on how to seamlessly integrate testing procedures into my code.
A better structure for my version control and since multiple PhD'ers from my group are taking the course, we hope to use it as kick-start to some more collaborative code development in our commonly used numerical C++ toolbox
1. Familiarity with Git for version control 2. Better programming practices
1. Familiarity with Git for version control 2. Better programming practices
I hope to learn how to structure my coding (workflow) better and learn some good-practice habits for this. If applicable I would also like to learn to write more clean and reproducible code.
Learn good practices of coding and code management, for single-author repositories, but also how to collaborate on repositories effectively and structured/well-managed.
Enough experience to start using GitHub confidently and to start writing code properly so that I can take part in larger projects
learn better coding practices; learn how to best collaborate on github; how to make research reproducible
Learn about professional development of scientific software and how to organize our study programs so that students will learn this.
Improve my workflow and cross-PC compatibility, and better long-term use and re-use of my code
Learn to use Git more efficiently, learn how to balance the need for testing against constraints on the code development time, learn the most important best practices of research code development.
Improving a bit my programming skills and also learning where and how I can find/modify codes that already exist.
To learn the best pratices in version control. To be able to develop a workflow that speeds up my work. To learn how to develop modular code To learn how to document my code.
How to best organize/set up my programs/scripts in a reproducible way, how to back them up and test them correctly, and how to most efficiently collaborate on them with peers.
I expect to get the part of essential knowledge for programming that one does not get during studies as a physicist
I would like to learn how github, gitlab and this kind of tools work, the options they have and how to use them. Also learn how to do automated testing of a code.
To be better at coding. Learning about how to document correctly, saving versions of the code and not ruin them permanently and to work with other people with the same code. I once tried to use SVN but I did not understand it
I hope to learn more about how to use Git in an efficient way in collaborative projects - right now I use it for my own project but without branches etc. I am also very interested in getting into better coding practice and standards that make it easier to share the code, so regarding open source and usefulness to oth
ers.
To handle git better and know more about how to use common tools for developing such as automated testing, git services (continuous integration) and so on.
I don't want to spend hours figuring out what did I do two weeks ago in my scripts.
I hope to learn more about version control. Probably there are a lot more other things to learn that I do not even know about.
Learn how to git
Have a better overview of version control, Git mechanisms, software licensing and general insights on how to have handle better complex codes
I hope that this course will help me perform better version control and more modular code packaging for my pipeline development project.
---
### 3. What will happen during workshop?
[Schedule](https://coderefinery.org/2022-03-22-workshop/#schedule) with link to lesson material and exercises
---
#### Interactive stream?
* Instructor zoom is streamed
* watch material, watch demo, type along
* Learner zoom for exercise sessions in breakoutroom
* Stream for everyone
* interaction of everyone via HackMD
### 4. Exercise sessions
* instructor should clearly tell which exercises and for how long
#### Teams?
* learners could sign up as team
* every learner will be put in team
* we **try** to keep teams together during whole workshop, and ask if merge is needed
#### Want extra help?
:::warning
**It is ok to not know something!**
:::
We have structures in place to help you if there is questions that you cannot answer (HackMD, expert helpers)
Use HackMD:

* to ask (and answer) general questions that came up in your room
* to call for more help from our expert helpers
#### During exercise sessions
[Helping in breakoutrooms](https://coderefinery.github.io/manuals/breakout-rooms-helping/#helpers-in-breakout-rooms)
* keep people talking and interacting, understand their difficulties, and encourage them to work on the exercises together.
* Greeting
* cameras
* Chat to “Everyone” in a breakout room only means people in that room.
* read the room and see what they want, but do provide encouragement to do something.
* keep time and ask for extra help with debugging
---
##### Strategies
**Strategy 1:** Encourage to share screen
**Strategy 2:** Everyone does exercise themselves and ask if there is questions
**Strategy 3:** Share screen
---
##### Common problems
* one person asking a lot
* larger / technical problems
* too little time
---
##### How to be an exercise leader
[How to be an exercise leader](https://coderefinery.github.io/manuals/exercise-leaders/)
---
#### Before
* check out the exercises
* every lesson has a "List of Exercises" under "References"
* note that some exercises are optional (and will probably not be done during workshop unless people are very fast)
> think about what you would like to convey as exercise leader to the classroom. How did (or does) CodeRefinery help you?
* if interested, check out instructor guide of lessons
----
#### During
* [Code of Conduct](https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html)
* Positive learning environment
* encourage learning from each other
* acknowledge difficulties and confusions
* introductory round and camera
* Rename yourself in zoom to reflect your team name and that you are EL
----
#### Please do not
* Take over keyboard, you can share commands in chat
* Criticize certain programs, operating systems, or GUI applications, or learners who use them. (Excel, Windows, etc.)
* Talk contemptuously or with scorn about any tool.
* Dive into complex or detailed technical discussions
* Pretend to know more than you do. Better to put a question on HackMD then. Trust.
* Use “just”, “easy”, "simply", "basic", "trivial" or other demotivating words.
* “I can’t believe you don’t know X”
---
### 6. Path ahead
Would you like to
* become an instructor?
* help organizing a workshop?
* contribute to lesson material?
* have any other ideas to contribute?
* community calls in future: see https://coderefinery.org/organization/meetings/
See our [website](https://coderefinery.org/get-involved/) and [Manuals](https://coderefinery.github.io/manuals/contributing/)
Best way to get started is to join the [zulip chat](https://coderefinery.zulipchat.com)
---
### 7. Open questions?
---
### 8. Installation help
...coming up after this session:
Please stick around, in case learners show up with installation issues, you may also observe
---