---
# System prepended metadata

title: 'CodeRefinery workshop Gothenburg 27-29 August, 2024'

---


# CodeRefinery workshop Gothenburg 27-29 August, 2024

[toc]

## Links

- [Workshop page](https://coderefinery.github.io/2024-08-27-gothenburg/) https://coderefinery.github.io/2024-08-27-gothenburg/
- [This document](https://hackmd.io/@coderefinery/2024-aug-gbg-ws-planning) https://hackmd.io/@coderefinery/2024-aug-gbg-ws-planning
- [Q&A document]()
- [Archive Q&A document]()
- [Emails and communication]()

:::danger
Add missing links! :arrow_up:
:::

## Venue

- Room booked at Chalmers 8:00 - 17:00 for Tue 27 Aug - Thu 29 Aug. Seats 26 persons (VR)

## Event webpage
- Edited on GitHub https://github.com/coderefinery/2024-08-27-gothenburg (JH)
- Published on https://coderefinery.github.io/2024-08-27-gothenburg/


## Announcing and marketing
  - See checklist below for suggestion on marketing channels (JH)
  - contact Joachim Hein for coordination and announcement on NAISS training newsletter (VR)

## Registration
  - [Microsoft forms @ Chalmers](https://forms.office.com/e/ZpNzj9xStM) (VR)
  - [X] Check for aggregated data on CR webpages for suggestion multiple choice alternatives (JH, VR)
  
## Workshop roles

- Overview of the roles: https://coderefinery.github.io/manuals/roles-overview/

### Instructors
([Description](https://coderefinery.github.io/manuals/instructors/))

**Online installation help session Tuesday 20 August, 14:00 - 15:00**

- [ ] day 1 - git-intro:                BC, JH
- [ ] day 1 - git-intro:                BC, YW
- [ ] day 2 - git-collab:               BC, JH
- [ ] day 2 - reproducible research:    JH/YW, YW/VR
- [ ] day 2 - social coding:            JH/YW, YW/VR
- [ ] day 3 - jupyter:                  VR, JH/YW
- [ ] day 3 - documentation:            JH/YW, VR/VR
- [ ] day 3 - testing:                  JH/VR, VR/YR
- [ ] day 3 - modular code development: VR, Leon 


### Managing collaborative document
([description](https://coderefinery.github.io/manuals/hackmd-helper/#hackmd-manager))

Keep the document organized, check for unanswered questions, and archive notes each day.

- [ ] preparation before workshop:
- [ ] day 1 - git-intro:                ???, ???, ...
- [ ] day 1 - git-intro:                ???, ???, ...
- [ ] day 2 - git-collab:               ???, ???, ...
- [ ] day 2 - reproducible research:    ???, ???, ...
- [ ] day 2 - social coding:            ???, ???, ...
- [ ] day 3 - jupyter:                  ???, ???, ...
- [ ] day 3 - documentation:            ???, ???, ...
- [ ] day 3 - testing:                  ???, ???, ...
- [ ] day 3 - modular code development: ???, ???, ...

## Workshop organization; roles "behind the scenes"

Organiser roles and their responsibilities. This does not mean that a person will do
everything that is part of their responsibility, but they will make sure that
their responsibilities are followed-up and not forgotten.


### Event director
([description](https://coderefinery.github.io/manuals/director/))

- lead:
- backup:

:::spoiler Checklist
- Before workshop
  - [ ] Create planning document by copying this template
  - [ ] Distribute roles using this document
    - [ ] Ask collaborators/stakeholders to pick roles
  - [ ] Add all sessions to [CodeRefinery calendar](https://github.com/coderefinery/calendar) separately
  - [ ] Send calendar invite to all organizers, instructors, expert helpers, with all relevant links
  - [ ] Decide if certificates will be possible and what is needed for getting a certificate/credits (ask from partner universities)
  - [ ] Remind co-organizers to register
  - [ ] Send summary email to all co-organizers will all important links in one place
- After the workshop:
  - [ ] Summarize lessons learned and make it a blog post in [coderefinery.org repo](https://github.com/coderefinery/coderefinery.org)
  - [ ] Coordinate post-workshop survey eg. in Indico
  - [ ] Merge new edits from here (no names ofc) to the [Playbook](https://github.com/coderefinery/manuals/blob/master/workshop-playbook.md)
  - [ ] Port changes from workshop page to [template page](https://github.com/coderefinery/template-workshop-webpage)
  - [ ] On CR website move from ["upcoming"](https://github.com/coderefinery/coderefinery.org/blob/main/content/workshops/upcoming.md) to ["past"](https://github.com/coderefinery/coderefinery.org/blob/main/content/workshops/past.md)
:::


### Registration coordinator
([description](https://coderefinery.github.io/manuals/registration-coordinator))

- lead:
- backup:

:::spoiler Checklist
- **ca. 2 months before = When workshop details are set:**
  - [ ] Create [Indico registration page](https://indico.neic.no/category/5/) for the event
    - [ ] Include event information
    - [ ] Customise the registration form
    - [ ] Customise the confirmation email (with outreach and marketing coordinator)
      - [ ] Add Zoom link if any
      - [ ] Point to workshop page
      - [ ] Add collaborative document link if any
  - [ ] Set up a workshop page from [template page](https://github.com/coderefinery/template-workshop-webpage)
  - [ ] Add workshop to ["upcoming courses"](https://github.com/coderefinery/coderefinery.org/blob/main/content/workshops/upcoming.md)
      - Remember to add all the emails to workshop page
  - [ ] Open the registration
- **Every day:**
  - Check [support email (Freshdesk)](https://coderefinery.zulipchat.com/#narrow/stream/215460-coderefinery/topic/freshdesk.20procedures) for requests/questions
- **Every week:**
  - Check registrations for problems and read notes to organizers
    - Identify if need to do something – basically, "playing" with the registration data to not forget anybody and not to forget follow-up
  - Update [stats](https://github.com/coderefinery/workshop-stats)
  - Update workshop-webpage if new local organisations
- **ca. 1 month before:**
  - [ ] Reach out to participants ([examples from Mar 2023](https://github.com/coderefinery/2023-03-21-workshop/tree/main/content/communication))
    - [ ] [Team leaders](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/email-to-team-leads.md)
    - [ ] [Those who indicated interest in co-organizing and co-teaching](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/email-to-co-org-helpers.md)
    - [ ] [Communicate about self organising teams](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/exercise-teams-2023-03-09.md)
- **Two weeks before**
  - [ ] [Send general information to all](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/practical-info-2023-03-09.md)
    - Next steps, onboarding, installation
    - Those who have a team, please organize your own zoom/video
  - [ ] [Inform those who want in-person about known LOs](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/local-groups-2023-03-09.md)
  - [ ] Try to match up learners and helpers who want to be part of a team
- **ca. 1 week before**
  - [ ] Update Ondico auto-reply for last minute registrations
  - [ ] Send [email with all links](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/links-2023-03-15.md)
- **1 day before!**
  - [ ] Send a [reminder with links](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/links-2023-03-20.md)
- **During the workshop**
  - [ ] Send [daily summaries](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/summary-day1.md) (with exercise coordinator)
    - [Some of them have also preparation instructions!](https://github.com/coderefinery/2023-03-21-workshop/blob/main/content/communication/summary-day2%2Bprep-day3.md)
- **After the workshop:**
  - [ ] Add viewing statistics to [CodeRefinery webpage](https://github.com/coderefinery/coderefinery.org/tree/main/content/about/statistics)
    - [ ] Use [statistics repo](https://github.com/coderefinery/workshop-stats) (feel free to edit)
  - [ ] Close registration
:::


### Outreach and marketing coordinator
([description](https://coderefinery.github.io/manuals/workshop-marketing/))

- lead:
- backup:

:::spoiler Checklist
- [ ] Create/update [advertising texts](https://github.com/coderefinery/template-workshop-webpage/tree/main/content/communication) and relevant news on the workshop page
- [ ] Newsletter
  - https://tinyletter.com/coderefinery/archive
  - draft: https://hackmd.io/@coderefinery/CRnewsletter_1_2023
- [ ] Advertising texts on the workshop page
  - https://coderefinery.github.io/2023-03-21-workshop/communication/
  - https://github.com/coderefinery/2023-03-21-workshop/tree/main/content/communication
- [ ] CodeRefinery Twitter
  - https://coderefinery.zulipchat.com/#narrow/stream/119815-general/topic/tweet-toot-suggestions
- [ ] CodeRefinery Mastodon
  - https://coderefinery.zulipchat.com/#narrow/stream/119815-general/topic/tweet-toot-suggestions
- [ ] CodeRefinery LinkedIn
  - https://www.linkedin.com/events/coderefineryworkshopmarch21-23a7031623728480272384/comments/
- [ ] CHCAA LinkedIn (Aarhus University)
- [ ] Partner Twitter, retweet and own tweets
  - [ ] Aalto Scientific Computing
- [ ] Partner newsletters
  - [ ] Sigma2
  - [ ] SNIC/NAISS
  - [ ] ENCCS
  - [ ] CSC
- [ ] Partner websites training calendars
  - [ ] CSC
  - [ ] ENCCS
  - [ ] UiB
  - [ ] AU (Aarhus University)
- [ ] Partner and other email lists
  - [ ] Aalto STEM students
  - [ ] Aalto triton users
  - [ ] Delta doctoral network
  - [ ] UiB researcher
  - [ ] UiB HPC
  - [ ] NERSC Bergen
  - [ ] Bjerknes Bergen
  - [ ] University of Oslo computational biology
  - [ ] University of Oslo Phd and Postdocs
  - [ ] University of Oslo Dcince contact (?)
  - [ ] Research institutes in all countries
- [ ] Partner posters
  - [ ] Aalto (CS,U,NBE,PHYS,VAARE)
:::


### Certificate coordinator

**Update link** <https://coderefinery.github.io/2024-08-27-gothenburg/certificates/>

- lead:
- backup: ASC team (the process can be run by anyone and we are now using a ticketing system to track requests)

:::spoiler Checklist
- [ ] Make sure that instructions on certificates are disseminated multiple times
  - [ ] Workshop page, emails
        ```
        - Learner sends materials to scip _at_ aalto.fi. This opens a ticket in Aalto "esupport" system
        - The person who generates the certificate verifies quickly that the tasks were completed.
        - We then work with https://github.com/coderefinery/generate-certificates to generate PDF certificates
        - Certificate is sent to the person and ticket is closed
        - Aalto specific:
            - The local version of that repository is at /scratch/rse/generate-certificates/. The commands were slightly modified so that the default working directory is not the home folder
            - Aalto students can also obtain directly the 1 ECTS credit. See internal process at ASC pages.
        ```
::: 
        
## Detailed schedules
### Tuesday 
#### Git morning
Start | Length   |Topic     | Main teacher| Pair teacher
------|----|----------|-------------| -------
08:50| **10** | Soft start and icebreaker question|JH| BC
09:00| **15** | Welcome and practical information|JH?| 
09:15| **05** | [Intro to day](https://coderefinery.github.io/git-intro/)|BC| JH
09:20| **10** | [Motivation](https://coderefinery.github.io/git-intro/motivation/)|BC| JH
09:30| **30+10** | [Copy and browse an existing project](https://coderefinery.github.io/git-intro/browsing/)|BC| JH
-|25->20|Exercise (alone) 
-||note that to see issues and PR choose another repo, like git-intro
10:00| **15**| Break
10:25| **35**| [Committing changes](https://coderefinery.github.io/git-intro/commits/)|BC| JH
-|20|Exercise (alone) 
11:00|5| Break
11:05| 40 | [Merging changes and contributing to the project](https://coderefinery.github.io/git-intro/merging/)|BC| JH
-||Exercise (alone as preview)20 m
-|| Demo: resolving conflict or wait for collab
11:45| 145| Q&A |BC| JH+YW

- also?
    - create new branch (coderefinery/other repo) and open pull requests 
    - look at pull requests
    - try to merge conflicting
    - VS code??
    - Q/A


#### LUNCH 12-13

#### Git afternoon
Start| Length  |Topic     | Main teacher| Co-teacher
-----|---------|----------|-------------| -------
13:00| 5 | Intro talk
13:05| 50 | [Cloning a Git repository and working locally (command line)](https://coderefinery.github.io/git-intro/local-workflow/)|BC|YW
-|25 m| Exercise (alone)
-|| Students should follow the walk-through
13:55| 5 | Break
14:00| 45 | [Inspecting history](https://coderefinery.github.io/git-intro/archaeology/)|BC|YW
-|| Long Demo
-|25-->20|Exercise 
-|| Just mention bisect
14:45| 15 |Break
15:00| 40 | [How to turn your project to a Git repo and share it](https://coderefinery.github.io/git-intro/sharing/)|BC|YW
-|25->20|Exercise 
15:40| 10 | [Practical advise](https://coderefinery.github.io/git-intro/level/)|BC|YW
15:50|  10| Q&A, feedback, and what will we be doing tomorrow?
- Also??
    - .gitignore
    - branch design
    - what to avoid
    - feedback and more discussion
    - preparation for next day



### Wednesday
#### Github
Start|Actually| Length  |Topic     | Main teacher| Co-teacher
-----|-|---------|----------|-------------| -------
08:50 |-| 10 |Icebreaker |BC| JH
09:00 |-| 10 |Recap and Intro|BC| JH
-|| git avoid
09:10 |-| 15 |[Concepts around collaboration](https://coder-|efinery.github.io/git-collaborative/concepts/)	|BC| JH
09:25 |-| 30+20 |[Collaborating within the same repository](https://coderefinery.github.io/git-collabo-|rative/same-repository/)		|BC| JH
-|-|10|In-|tro
-|-|| Add Yonglei
-|-|25-->**20**|Exercise
-|-||In groups from template. Everyone can both review and pull request. Circle or pair
9:55|10:00-|-| 15| Break
10:10|-|20|~~Demo~~->ex cont'd and Q/A|BC|
10:30|-| 30 | [Practicing code review](https://coderefinery.github.io/git-collaborative/code-review/)	|BC| JH
-|-|10|Intro 
-|-|20|Exercise continue after break
11:00|11:05|5| break
11:05|11:20|~~55~~ 30 |[How to contribute changes to repositories that belong to others](https://coderefinery.github.io/git-collaborative/forking-workflow/)	|BC| JH
-|-|5|Intro and ~~demo~~ 
-|-|33 longer than 25 min |Exercise  
-|-||Comments 5 m
11:50|11:55|10|15-30|  Wrap-up					
Q/A interweaved
#### 









