Code-Refinery

Netherlands eScience Center

Online

Nov 16-19, 2020

9:00 - 13:00

Instructors: Johan Hidding, Jens Wehner

Helpers: Mateusz Kuzak

Some adblockers block the registration window. If you do not see the registration box below, please check your adblocker settings.

General Information

The key objective ofCode refinery 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. Those 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.

Who: The course is aimed at graduate students and other researchers. 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. Basis Familiarity in Git is advantageous.

Where: This training will take place online. The instructors will provide you with the information you will need to connect to this meeting.

When: Nov 16-19, 2020. Add to your Google Calendar.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below).

Accessibility: We are dedicated to providing a positive and accessible learning environment for all. Please notify the instructors in advance of the workshop if you require any accommodations or if there is anything we can do to make this workshop more accessible to you.

Contact: Please email training@esciencecenter.nl for more information.


Code of Conduct

Participants are expected to follow those guidelines:

Collaborative Notes

We will use this collaborative document for chatting, taking notes, and sharing URLs and bits of code.


Schedule

Day 1 . Nov 16th

09:00 Welcome
09:15 Social Coding
09:30 Open repositories
10:00 Licenses
10:45 Coffee break
11:00 Registries
11:30 Citations
12:00 Coffee break
12:15 Checklists
12:45 Wrap-up
13:00 END
14:00 (optional) Git
16:00 Git End

Day 2. Nov 17th

09:00 Welcome
09:15 Reproducible Research
09:30 Recording Dependencies
10:15 Coffee break
10:30 Workflows
11:30 Coffee break
11:45 Sharing code and data
12:45 Wrap-up
13:00 END

Day 3. Nov 18th

09:00 Welcome
09:15 Documentation I
10:15 Coffee break
10:30 Documentation II
11:30 Coffee break
11:45 Git Branch Design
12:45 Wrap-up
13:00 END

Day 4. Nov 19th

09:00 Welcome
09:15 Testing
10:15 Coffee break
10:30 Automated Testing
11:30 Coffee break
11:45 Modular Code Development
12:45 Wrap-up
13:00 END

Syllabus

Modular Code Development

  • Pure Functions
  • Limitting side effects of functions and data
  • The Zen of Python
  • Single- vs multi-purpose functions

Setup

To participate in a Code Refinery workshop, you will need access to the software described below. In addition, you will need an up-to-date web browser.

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.

Install the videoconferencing client

If you haven't used Zoom before, go to the official website to download and install the Zoom client for your computer.

Set up your workspace

Like other Carpentries workshops, you will be learning by "coding along" with the Instructors. To do this, you will need to have both the window for the tool you will be learning about (a terminal, RStudio, your web browser, etc..) and the window for the Zoom video conference client open. In order to see both at once, we recommend using one of the following set up options:

This blog post includes detailed information on how to set up your screen to follow along during the workshop.

Install following software

Python and required packages

Follow Python installation instructiions.

Bash

Foollow Bash installarion instructions.

Git

Follow Git isntallation cofigure and verify it.

GitHub

Create GitHub account.