Skip to content

Latest commit

 

History

History
228 lines (159 loc) · 6.78 KB

2024-eSSENCE.md

File metadata and controls

228 lines (159 loc) · 6.78 KB

class: center, middle, gray-background

CodeRefinery logo

What can CodeRefinery do for code developers?

Diana Iuşan

Uppsala University

Talk at the Swedish e-Science Academy, 2024-10-17


Team and project: https://coderefinery.org

What is CodeRefinery?

  • A hub for FAIR research software practices
  • A project since 2016, currently funded by NeIC
  • Training network
  • Reusable lesson materials
  • Community

.left-column50[

What we do

  • We teach and co-organize
  • Share lessons, video recordings, manuals
  • All open source ]

.right-column50[ Pyramid image with Carpentries as base, in the middle CodeRefinery providing expert training, and on top: specialist training ]


Collaboration across funding borders

0.9 FTE (2 persons) + 10 persons in-kind + volunteers

logo: Aalto Scientific Computing

logo: CSC - IT Center for Science

logo: Center for Humanities Computing

logo: Danish e-Infrastructure Consortium

logo: EuroCC National Competence Center Sweden (ENCCS)

logo: National Academic Infrastructure for Super­computing in Sweden (NAISS)

logo: NRIS/Sigma2

logo: NRIS/Sigma2

Co-advertize and co-organize with us

TU Delft logo The Netherlands eScience Center logo VU Amsterdam logo


.center[ Visual representation of CodeRefinery lessons: introduction and collaborative version control, reproducible research, social coding and open software, documentation, Jupyter notebooks, automated testing, modular code development

All lessons are open source (CC-BY) and recordings are available ]


  • Introduction to version control: Git and GitHub for own projects
  • Collaborative version control: Branching, pull/merge requests, forks, and collaboration.
  • Reproducible research: Reproducible dependencies, environments, and computational steps.
  • Social coding and open software: Software and data licensing and software citation.
  • How to document your research software
  • Reusable and reproducible Jupyter notebooks
  • Automated testing: Motivation, test design, and tools.
  • Modular code development: Organizing projects as they grow.

Lesson example: Testing

We use Sphinx/sphinx-lesson to build our lessons from Markdown.

.center[ Screenshot of a lesson in Sphinx format, showing tabs for different programming languages ]

We demonstrate GitHub actions for automated testing.


Another example: Git lesson

.center[ Screenshot of a the Git lesson in Sphinx format offering 4 tabs for different paths ]

You can try our lesson template


Workshop setup

Graphics that summarizes how learners can participate a CodeRefinery workshop

  • lessons are streamed
  • individual learners:
    • do the exercises on their own
    • interact via the collaborative document
  • teams or classrooms, may be remote or on-site
    • do exercises together
    • interact with the team leader, helpers, and instructors via the collaborative document

Workshop setup

Air traffic control tower Streaming setup during Python for Scientific Computing


Collaborative document: Markdown

  • Interactive, anonymous, parallel, async
  • New question every 1-2 minutes!
  • ASCII-graph feedback

Screenshot of exercise title and questions in collaborative notes

We publish Q&A for each workshop: Example


  • Sent out to workshop participants from 2022 and 2023
  • 129 answers

Plot estimating time saving


Plot about whether code is more reusable

Plot about whether collaboration is easier


Plot about whether colleagues have been introduced

How likely are you to recommend?


Number of responses by academic discipline


Workshops

10 online and 28 in-person "standard" workshops


.center[

Thank you for your attention!

CodeRefinery logo

]