November 16, 2020
09:00 - 13:00
CodeRefinery workshops teach software best practices, tools and skills for efficiently developing and maintaining research software.
The key objective of a CodeRefinery workshop is to grow researchers’ software best practices skills to facilitate open and reproducible research. The workshops focus on methods to build modular, reusable, maintainable, sustainable, reproducible, testable, and robust software. It is assumed that participants already write code for their research, but no expertise is required. Some experience in navigating the file tree and editing files in a terminal session is recommended. Familiarity with Python programming basics is expected.
These workshops are usually attended by MSc and PhD students, postdocs, researchers’ and more senior staff from a wide range of scientific backgrounds and with different programming experiences.
Requirements: Participants must work on a computer with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) on which they have administrative privileges. They should have a few specific software packages installed. Please follow the videoconferencing setup guidelines.
More information about this event can be found on the workshop website.
Certification: For this workshop, upon request, we issue attendance certificates. The participation is equivalent to 2 GS or ECTS points.
Different solutions for implementing and deploying code documentation.
Modular code development.
What best practices can you recommend to arrive at well structured, modular code in your favourite programming language?
What would you recommend your colleague who starts in the same programming language?
How do you deal with code complexity in your projects?
Social Coding & Open Software
- Social Coding
- Software citation
Git Branch Design
Wat branching strategies are advisable to simplify collaboration and code maintenance.
- Rebase vs Merge
- Branch Hygiene
- Avoiding Conflicts
- Branching Models
Why testing needs to be part of the software development cycle and how such a cycle can be implemented.
A collaborative testing/code review workflow.