March 17 and 24, 2021, 9:00-12:30 CET
Bring your code and start writing tests with the help of a mentor!
Sign up here!
Soft deadline on March 3! To make it easier for hackathon mentors
to prepare we prioritize early registration. If there are still free seats
after March 3 we will keep accepting participants.
Who the event is for
Are you doing any of these things?
- You write scripts to process data.
- You change scripts written by your colleagues.
- You write code that is used in research by you or others.
- You are not already extensively testing your code or scripts.
If yes, then the CodeRefinery testing workshop and hackathon is for you!
Goals and format
In this event, you will become familiar with tools and best practices
for testing research software and get help in adopting these in your
Day 1: Workshop
Day 1 will be devoted to learning - we go through the CodeRefinery
lesson on automated testing
and work on exercises in breakout rooms where you can use your
favorite programming language.
It is possible to only attend day 1 and not take part in the
At the end of day 1, hackathon participants will be paired up with a
mentor and pitch their projects in small groups.
Between Day 1 and Day 2
In between the workshop and hackathon days you will get help from
your mentor to design tests, implement them in your code or set up
automated testing. Participants can communicate with mentors by email,
Zoom meetings or the CodeRefinery
Zulipchat and ask
You will be expected to spend at least 5 hours on
your project during this time.
Day 2: Hackathon
During the hackathon on day 2, we split participants into groups and
they work in a sprint together with their mentor. At the end of day
2, we briefly summarize the progress made for each project and discuss
Participants in teams will be together in a breakout room.
How to join
Either A. Both workshop and hackathon, or B. Only workshop
Participation as a team
- If you collaborate with other people on writing code, we recommend
that you all register to the event as a team. You can also sign up
as a team even if you don't directly collaborate on coding.
- Teams will be working together in breakout rooms during the event
and get paired with the same mentor. Team members should preferably
use the same programming language.
- Decide a team name, and when registering, everyone enters this team
name so that we can link you together. Note that everyone on the
team must register separately.
Participation as a single learner
- Single learners are welcome! You don't have to write anything to the
"team name" question in the registration form.
- During the exercise sessions in the workshop, 5-6 single learners
are grouped into a breakout room to work together. Our instructors
and mentors will be jumping around breakout rooms and answer any
- However, please note that hackathon participants in teams will get
more mentor time than single participants.
To maximize benefit of the Hackathon
- When registering, please write a description of the project you want
to work on together with a mentor. Write what your code does, what
language it's expressed in, whether it already has some tests, and
what you would like to accomplish in the hackathon.
- To derive maximum benefit from the hackathon, we recommend that you
make your code available in some form so that mentors can prepare.
- In the registration form you can provide a web address to your code
repository if it's publicly available. If your code is not public,
we will ask you to share it with a mentor before the hackathon.
- If you will attend the Hackathon, you are expected to bring a code
project to the event in which you want to implement testing
functionality. It does not need to be a large complicated codebase,
just something you use or intend to use in your research. If it's
not your own code, make sure that it has a license which allows you
to modify it.
- You may need to install some software - see the Software
Requirements section on below.
- It is somewhat important that you have a basic idea of how Git
works. Please go through this Git-refresher
material for a basic
overview and important configuration steps.
You are assumed to have everything installed that you need for running
code in your preferred programming language, e.g. Python, Matlab or R
interpreters, or compilers for C/C++, Fortran, Julia, Rust, Go etc.
You also need to have a testing framework available for your preferred
language. Some languages need a package installation while others have
a framework built into their standard libraries. A list of recommended
tools and frameworks will be published here soon.
Day 1, March 17
- 9:00 - 9:15
Welcome and practical information
- 9:30 - 12:00
Software testing workshop
Project pitching and introductory meeting with mentors
Day 2, March 24
- 9:00 - 09:20
- 9:20 - 12:00
Project work with mentors
- 12:00 - 12:30
Presentations of progress made and lessons learned
The hackathon will be held online, a Zoom link will be sent to accepted participants.
Price and priority policy
Free of charge, funded by the Nordic e-Infrastructure
Collaboration and the EuroCC National Competence
When we have more sign-ups than our capacity allows, the following
priority criteria apply.
- National universities or research institutes in Nordic countries
- Private companies and government agencies in Nordic countries or
- European national universities or research institutes from outside the Nordics.
Therefore it is very important that you use an email address
corresponding to your affiliation.
Instructors and mentors
- Anne Fouilloux
- Diana Iusan
- Emilia Lipponen
- Johan Hellsvik
- Mark Abraham
- Qiang Li
- Radovan Bast
- Roberto Di Remigio
- Samantha Wittke
- Thor Wikfeldt
Coordinator and host
Why should I join with a team? If you will work together later,
learning the tools at the same time is a great way to do it.
How does the waitlist work? Anyone can register, but everyone goes to the waitlist. After the 3rd March, We'll continually approve people as we get space.
Does it matter where I work or study? Because of the Nordic funding of
CodeRefinery by NeIC and Swedish funding of
ENCCS we need to have a priority list described above.