Teaching researchers in sustainable software development
March 17-19, 2020
Attendance is free of charge.
The CodeRefinery is an initiative within the Nordic e-Infrastructure Collaboration (NeIC), which in turn is an organization under NordForsk. CodeRefinery aims to reach out to diverse academic communities, who use and develop software in their research, and advocate more modern and efficient software development methods (such as collaborative distributed version control, automated testing, code documentation, managing code complexity, etc). For more information, please see https://coderefinery.org/.
SDU is a member of CodeRefinery, which is represented by Emiliano Molinaro from the eScience Center.
Contact
support@coderefinery.org
Format
Hands-on informal and interactive three-day event with type-along type of presentations, live coding and demos. Short tutorials alternate with practical exercises.
Software requirements
Please follow the links below and make sure that you install all the required software packages (why we ask you to do this). Note that, e.g., a working Python executable on your laptop is not sufficient – a version greater than 3.4 is strongly recommended and a number of extra packages need to be installed as detailed on the Python installation page.
Schedule
Day 1
- 9:00 – 9:30 Welcome and practical information (Radovan)
- 9:30 – 12:00 Introduction to version control – part 1/2 (Thor)
- 12:00 – 13:00 Lunch break
- 13:00 – 15:00 Introduction to version control – part 2/2 (Thor)
- 15:30 – 17:00 Social coding and open software (Max)
Day 2
- 9:00 – 10:30 Modular code development (Max)
- 11:00 – 12:00 Collaborative distributed version control 1/2 (Emiliano)
- 12:00 – 13:00 Lunch break
- 13:00 – 14:30 Collaborative distributed version control 2/2 (Emiliano)
- 15:00-17:00 Reproducible research and FAIR data (Thor)
Day 3
- 9:00 – 10:30 Documentation (Radovan)
- 11:00 – 12:00 Automated testing part 1/2 (Radovan)
- 12:00 – 13:00 Lunch break
- 13:00 – 14:00 Automated testing part 2/2 (Radovan)
- 14:30 – 16:30 Jupyter (Emiliano)
- 16:30 – 17:00 Concluding remarks and where to go from here (Radovan)
Location
Copenhagen
DTU campus, more details soon
Time
9:00 – 17:00
Price
Free of charge.
Course goals
The aim of this course is to demonstrate to and familiarize the workshop participants with best practices and tools in modern research software development. The main focus is on professional tools for efficiently writing and maintaining research software. Since most research code is developed in a collaborative setting, we will discuss tools and workflows which facilitate this process. Most of the content is also relevant to a single researcher.
Who the course is for
Are you doing any of these things below:
- 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.
If yes, then this course is for you. Most participants are not “professional code developers” or computer scientists.
If you develop research code and you know all the tools already, join us as a helper! It’s fun, and you always learn something new about a subject by teaching it.
What we will not teach
This is not a course about a specific programming language or the Linux/Unix terminal shell. We assume that you are familiar with the programming language that you use in your work and research. We try to keep the course as language-independent as possible but we will show some basic code examples in Python.
Prerequisites
- You should be able to navigate the file tree in a terminal session and edit text files in the terminal. This Linux shell crash course contains the essentials.
- Basics in one or more programming languages.
- You will need to bring a laptop.
- It is good if you have access to Eduroam.
- You need to install some software. Please follow links in the schedule.
- It is useful if you have a basic idea of how Git works. We will start from the basics, but please go through this Git-refresher material for a basic overview and important configuration steps.
Instructors
- Radovan Bast
- Max R. Eckardt
- Emiliano Molinaro
- Thor Wikfeldt
Helpers
- TBD