courses
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.
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.
git Programming successfully with AI Monitoring & optimizing resource usage Continuous Integration & Deployment Reproducible research Fundamentals of data science Fundamentals of programming in Python
Best practices for programming for scientists
- 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
Version control with git for scientists
- What are the benefits of version control and why should all code be in version control?
- What is
git, what isGitHub? - 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
Given as a short course at EGU 2026, and it will be offered again at EGU 2027!
Beyond "vibe-coding": programming successfully with AI
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?
Monitoring and optimizing resource usage of scientific code
- 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
Introduction to Continuous Integration and Continuous Deployment
- Collaborating
- Automated documentation
- Code linting
- Automated testing
- Issue tracking
- Versioning
Making quantitative research reproducible
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) ortargets(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