courses

Courses & workshops for research groups

Learning coding topics in the age of AI?
Yes!

Even with agentic coding, it's crucial to know the key fundamentals of clean and robust software engineering. I distilled the most important aspects of software engineering for scientists: from git version control, over code-testing, common bugs and pitfalls, to reproducible workflow pipelines.

  Get in touch
Lund University
University of California, Berkeley
European Geosciences Union
Technical University of Munich

In-person or online

Courses usually consist of a presentation part and a hands-on workshop part.

Fully customizable

Topics are adapted to your group's needs, as not all aspects may be relevant for everyone.

Interactive

Even the presentation-heavy courses include quizzes and small tasks.

AI-ready

I show how to use AI tools effectively in technical tasks, where universities are still far behind what could be done.

From my experience, the Best practices for programming for scientists and Fundamentals of data science courses are highly useful for most research groups. They are mostly presentations, but still interactive, with quizzes and small tasks. The other courses contain both presentation and hands-on workshop parts.

Debugging in an IDE

Best practices for programming for scientists

2 × 2h Presentation Most popular
Part of this class includes showing how to use a software IDE to efficiently debug your code.
  • Coding pitfalls (classic bugs you need to know about)
  • Programming paradigms (writing maintainable code)
  • Using Integrated Development Environments (IDEs) for fast and efficient programming
  • Debugging code
  • Version control with git
  • Testing your code
  • Leveraging AI tools
A git commit history

Version control with git for scientists

4h total Presentation Hands-on workshop Again at EGU 2027
  • What are the benefits of version control and why should all code be in version control?
  • What is git, what is GitHub?
  • Setting everything up
  • Understanding the benefits of version control and how to make use of it
  • How to properly use git: commits, branches, merging, checking what has changed
Chatting with an AI assistant

Beyond "vibe-coding": programming successfully with AI

~3h Presentation Optional workshop
New AI tools are here to help with coding. But they should be used wisely!

AI is here to stay and you'd have a competitive disadvantage if you didn't use it. Anyone can ask ChatGPT to write them some code. But do you just "vibe-code" or use the tools at hand efficiently? In this workshop, we will look into:

  • How to efficiently program with AI tools
  • How to make sure AI-generated or AI-influenced code is correct
  • How can teachers detect AI-generated code?
Memory profile of a Python script

Monitoring and optimizing resource usage of scientific code

~3h Presentation Optional workshop
Profiling a Python script to find memory leaks.
  • Understanding the memory architecture of computers
  • How to monitor total usage of computer programs
  • Professional profiling tools
  • A brief introduction to data structures and runtime analysis (O-notation)
  • Programming memory-efficiently: chunking, data types, lazy loading, in-place operations
A CI pipeline

Introduction to Continuous Integration and Continuous Deployment

~1h Presentation
CI offers numerous tools to automatically ensure the quality of your code and to foster collaboration.
  • Collaborating
  • Automated documentation
  • Code linting
  • Automated testing
  • Issue tracking
  • Versioning
A snakemake workflow graph

Making quantitative research reproducible

2h Presentation Optional workshop
Tools like snakemake can help make your workflows 100% reproducible. This figure shows the automated pipeline from my ISIMIP project, including downloading, cropping, merging, and mapping data, and combining it to model input files.
  • Making scientific workflows reproducible with snakemake (Python) or targets (R)
  • Dockerize your code to make it run anywhere

Fundamentals of data science

Highly useful for most research groups. Mostly a presentation, but interactive with quizzes and small tasks.

Fundamentals of programming in Python

An introduction to programming in Python.

Interested in a course for your group?

Do not hesitate to reach out and we can discuss potential courses tailored to your group's needs!

  Write me an e-mail