Subjects and dates
-
Focus on Git and GitHub
Week 1, 9-11 September
With exercises.
-
Reproducible Research
17 September
Preparing code to be usable by you and others in the future. We focus here on 3 aspects of reproducible programs and computations: documenting dependencies, environments, and computational steps in a reproducible way. We touch on containers.
-
Social coding and open software
24 September
What can you do to get credit for your code and to allow reuse. We motivate and give an overview over software and data licensing and software citation best practices.
-
How to document your research code
1 October
Here we give an overview of the different ways how a code project can be documented: from small projects to larger projects. Markdown and Sphinx are central tools in this lesson.
-
Jupyter Notebooks
8 October
A tool to write and share executable notebooks and data visualization. This lesson gives an overview of what Jupyter notebooks are, when they can be particularly useful, and shows best practices for reusable and reproducible notebooks.
-
Automated testing
15 October
Preventing yourself and others from breaking your functioning code. In this lesson we talk about motivation for testing, about test design, but also about some tools that are typically used for automated testing of software.
-
Modular code development
22 October
Making reusing parts of your code easier. The focus of this lesson is how to partition and organize projects as they grow from one screen-full to larger and how to make code portions reusable across projects and across notebooks.