Skip to content

Latest commit

 

History

History
370 lines (224 loc) · 9.41 KB

File metadata and controls

370 lines (224 loc) · 9.41 KB

class: center, middle, gray-background

CodeRefinery logo

CodeRefinery - Training for Sustainable and Collaborative Research Software Development

Samantha Wittke, CSC - IT Center for Science, Finland

PASC25 - MS5G


Content for today


  • The CodeRefinery project

  • CodeRefinery workshops

  • The community

  • How you can engage, contribute to, and benefit from our resources


The context - Sustainable research software development



.center[

Sustainable: Here not "green”, but the software’s ability to endure, evolve, and remain useful over time.

]


Research software challenges


  • Many researchers write code but lack formal training

  • Good/Reproducible coding practices don't have immediate rewards

  • Collaboration on / reuse of code can be frustrating and inefficient

-> Research code is often poorly documented and non-reproducible


.center[.remark["I put the code on GitHub and then it can be reused, no?"]]

.center[.remark["It works on my machine"]]


Enter, CodeRefinery

Our mission since 2016:

  • A community-driven, publicly funded project
  • Hands-on training in practical coding tools and techniques for researchers
  • Focus on “good enough” software engineering practices to improve efficiency in small steps
  • Support for Open Science and FAIR software development

.center[ Pyramid image with data science and programming as base, in the middle CodeRefinery providing advanced training, and on top: specialist training ]

Similar efforts: DIGITAL RESEARCH ACADEMY,INTERSECT, SURESOFT and many more ...


Collaboration across funding borders

Air traffic control tower Streaming setup during Python for Scientific Computing

~ 15 persons in-kind + volunteers

logo: NeiC

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

logo: University of Iceland

logo: Oslo University


We teach practical skills for researchers



.remark[Topics which are helpful for researchers and essential for Research Software Engineers (RSE).]



.center[ From researcher to researcher who codes to CodeRefinery to Research Software Engineer ]


.left-column50[

  • Introduction to version control

  • Collaborative version control

  • Reproducible research

  • Social coding and open software

]

.right-column50[

  • Documentation

  • Reusable and reproducible Jupyter notebooks

  • Automated testing

  • Modular code development ]



.center[ All modular lesson materials available under CC BY 4.0 license + youtube recordings of every workshop. ]


Modular lesson material

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 ]


Our workshops - interactive & hands-on

Graphical representation of the setup of a CodeRefinery workshop with lessons on stream, learners individual, in a team or local classroom and interaction via notes

  • Format: Online first
  • Hands-on exercises - Not just lectures, but hands-on tool experience
  • Bring your own team/classroom - Learn alongside peers with local support
  • Programming language and domain agnostic - is the goal
  • Beginner-friendly - No prior experience with the tools we teach required!

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


Success stories and impact

.remark["Thank you for six great days of learning Git, testing, modular code, Sphinx (!) and more. I already started incorporating Sphinx in my current project."]

.remark["I write my codes now in such a way that the person who will be taking over my job would have less time figuring out what is going on."]


  • 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?


Beyond the workshop - the community

.center[ The CodeRefinery community in hand drawn pictures: CR workshop teaching, chat, meetings, other teaching ]

  • Networking - Connect with peers and experts.
  • Collaborative projects - Work with others on teaching and outreach.
  • Specialized workshops - Covering High-Performance Computing (HPC) and more.

.remark[You can join the community too - It's not limited to the Nordics!]


How you can benefit



✅ Join a workshop as a learner or observer

✅ Use lesson materials and recordings for self-learning

✅ Bring your team and learn together

✅ Host a local classroom for others to learn together

✅ Use CodeRefinery materials for your own training


How you can contribute



  • Teach with us - Become a co-instructor

  • Contribute to lesson materials - Improve and expand lesson content

  • Provide feedback - Help us refine teaching and materials

  • Connect - Join the community and help us connect to others too


Follow or get involved!


Next CodeRefinery workshop

.center[ QR code linking to CodeRefinery newsletter ]



  • September 9-11 2025 + 6 following Wednesdays
  • For free and online
  • Some locations with in-person classrooms
  • Registration will open soon -> Follow our newsletter to get latest news

class: center, middle, inverse

QR code linking to this minisymposiums materials

These slides are part of: 10.5281/zenodo.15669981


Credits and license

Text

  • All text: CodeRefinery project, CC-BY 4.0

Images

  • Slide 6: ATC tower, P. R. Miller, CC-BY 2.0
  • Slide 6: Monitor setup, R. Darst
  • Slide 6: Logos, (c) respective organizations
  • All other images: CodeRefinery project, CC-BY 4.0