Training materials
Our workshops are based on high-quality materials from Software Carpentry, Data Carpentry and Code Refinery as well as materials developed at the Center. All materials are collaboratively developed with the research community and are openly available.
Use our training materials
Do you want to teach digital skills workshops using our training materials? All materials that we develop are open-source, freely available and are co-developed with experts around the globe. Have a look at our material below.
Are you planning on using our material in your teaching? Send us an email at . We can offer help on the best approach. In addition, we are always looking for feedback on our training materials.
Our training materials
The Netherlands eScience Center actively develops new lessons in the areas of our expertise. Click on some of the topics below to learn more.
Reproducible research with R packages
Chances are that you used R packages before, but did you know you can write your own? Moreover, did you know that this can be a brilliant idea? Packaging helps you creating a more robust, more reproducible, and more enjoyable scientific coding experience. And by contributing a package, you will add to the ever growing capabilities of the R language!
This lesson teaches the basics for writing your own packages in R.
GPU Programming
These materials provide learners with the fundamental knowledge that they need to start their journey into the world of programming GPUs. After a brief introduction to the specificities of GPUs and how they differ from traditional processors, participants will experience various ways of using them with Python.
Introduction to Deep Learning
This workshop gives an introduction to deep learning for researchers who are familiar with the basics of (non-deep) machine learning. The material teaches how to prepare data for deep learning, implement a basic deep learning model in Python with Keras, monitor and troubleshoot the training process and implement different layer types, such as convolutional layers.
Geospatial Python
Teaches how to deal with geospatial raster and vector data in Python. The lesson introduces a set of tools from the Python ecosystem and show how these can be used to carry out practical geospatial data analysis tasks.
In particular, the lesson considers satellite images and public geo-datasets and demonstrate how these can be opened, explored, manipulated, combined, and visualized using Python.
Medical Image Processing
Did you know you can write your own programs and scripts to examine and manipulate images? Image processing is critical to many disciplines, ranging from health and biology to art history and astronomy.
With code you can do your work in a much more efficient manner, whether you need to count bacteria on a plate, find pulmonary nodules in patient’s lungs, or examine trends over time in museum catalogues.
Natural Language Processing
This is a hands-on introduction to Natural Language Processing (or NLP), a set of techniques involving the application of statistical methods, with or without insights from linguistics, to understand natural (i.e, human) language for the sake of solving real-world tasks.
This course is designed to equip researchers in the humanities and social sciences with the foundational skills needed to carry out text-based research projects.
Research Software Support Platform
In the Research Software Support modules we provide a comprehensive overview of the different aspects of research software support, such as FAIR software, software licenses, software citation, software testing and Software Management Plans (SMPs). The target audience for this material is university management and support staff.
Efficient computing with Julia
Julia is a promising new language that: Has native performance, close to or sometimes even exceeding C++ or Fortran; Solves the multiple language issue, one language for everything (including GPU); Is as easy to get into as Python or R; Is designed for parallel computing.
This lesson teaches how to do efficient computation with Julia.
Good practices in research software development
This lesson teaches best practices to build modular, reusable, maintainable, sustainable, reproducible, testable, and robust software.
The lesson is heavily based on existing material from CodeRefinery, but adjusted to our way of teaching. We often teach it in a 2-day course together with Collaborative version control with Git and GitHub.
Collaborative version control with Git and GitHub
This lesson introduces version control with Git and teaches you how to collaborate using Git and GitHub.
The lesson is heavily based on existing material from Code Refinery and The Carpentries, but adjusted to our way of teaching. We often teach it in a 2-day course together with Good practices in research software development.
Intermediate research software development
This lesson aims to teach a core set of established, intermediate-level software development skills and best practices for working as part of a team in a research environment using Python as an example programming language.
This is a community-effort led by UK’s Software Sustainability Institute. We contribute to the lesson since 2024.
AI-assisted Coding with Codeium / GitHub Copilot
This is a short lesson that teaches how to use coding assistants like GitHub Co-Pilot or Codeium in research software development.
We develop the lesson together with NWO-I
Machine Learning in Python with Scikit-learn
Machine learning is the field devoted to methods and algorithms that ‘learn’ from data. It can be applied to a vast range of different domains, from linguistics to physics and from medical imaging to history.
We adapted the official open-source lesson material of scikit-learn to a 2-day workshop that is fit to researchers.
Parallel Programming
This is an intermediate level course on the basics of parallel programming with Python. Learners will learn to recognize problems that are suitable for parallel processing and get hands-on experience with optimizing inner loops and abstracting parallelism using Dask, Numba and Asyncio.
Reproducible research through reusable code in 1 day
This lesson teaches you the skills to make your code reusable by others. In one day you will share your coding project on GitHub and work on the minimal requirements needed for others to run your code. At the end of the day we will do a short reusability check of each other’s repository.
Other training materials

Software Carpentry
Software Carpentry lessons introduce basic lab skills for research computing. They cover three core topics: the Unix shell, version control with Git, and a programming language (Python or R).

Data Carpentry
Data Carpentry lessons focus on foundational skills needed to work effectively and reproducibly with data and code. They are domain-specific, teaching researchers the skills most relevant to their domain and using examples from their type of work. There are several types of data carpentry workshops for which the curriculum is organized by domain.

CodeRefinery
CodeRefinery lessons aim to boost researchers’ good software practices and to consolidate knowledge from Carpentries (Software, Data and Library Carpentry) workshops or prior experience. The focus is on tools for efficiently developing and maintaining research software.