I believe the best way to teach data-heavy disciplines is by working through real datasets and real problems, not toy examples. My courses combine solid theoretical foundations with hands-on programming, and I try to bring in the same clinical and biological questions that drive my own research, so students see how the methods they're learning get used in practice.
Teaching and knowledge-sharing have always been a core part of my academic journey. From my early years as a teaching assistant in Tübingen, through guest lectures in Verona, to leading my own courses in Wrocław, I have had the privilege of working with students across a wide range of disciplines: bioinformatics, medical informatics, data science, and clinical research. Below I've listed the classes I've taught or contributed to.
I am also a member of the Programme Committee for the Medical Informatics engineering programme at Politechnika Wrocławska, helping shape the curriculum for this interdisciplinary degree at the intersection of computer science and healthcare.
I am a member of the Programme Committee for the Medical Informatics engineering programme at Politechnika Wrocławska, an interdisciplinary degree at the intersection of computer science and healthcare, run jointly by the Department of Biomedical Engineering within the Faculty of Fundamental Problems of Technology.
This course provides a comprehensive introduction to evidence-based medicine and clinical research methodology. Students explore the full spectrum of clinical study designs, from observational to interventional trials, including platform and adaptive platform studies, alongside essential statistical methods and hands-on programming in R. The curriculum covers clinical data standardization frameworks (OMOP, SNOMED-CT, LOINC) and FAIR principles, practical data collection using electronic Case Report Forms (eCRFs) and tools such as REDCap, as well as heuristic methods including the Delphi method and 1000-minds. Further topics include systematic reviews and meta-analyses, Cochrane methodology, clinical algorithms, and an overview of research funding landscapes in Poland and internationally.
This course offers a practical introduction to data science programming, with a focus on Python and core concepts such as data types, representations, and programming paradigms. Students gain hands-on experience with numerical data analysis libraries before moving into image processing, similarity and distance measures, and nearest-neighbor search. The curriculum then covers unsupervised learning techniques, including clustering algorithms and dimensionality reduction, alongside data visualization methods. Later topics address data storage and collection, large-scale data analysis using streams and functional programming patterns (map, filter, reduce), and graph-based data representations including trees and networks.
This course provides an introduction to fundamental programming concepts and the practice of writing code in Java. Students learn key principles such as variables, control structures, methods, and object-oriented programming, while gaining hands-on experience through practical exercises and projects. By the end of the course, students will be able to design, implement, and debug basic Java programs, building a strong foundation for further study in computer science and software development.
A large course covering the theoretical and practical basis of SQL databases. The second part of the course focuses on NoSQL databases including MongoDB and Neo4j. The course finishes with a complete mini-project where students exercise their skills across the entire product-development path.
I co-created this concise, 8-hour course designed for an interdisciplinary group of PhD students. The course focused on explaining the methodology of transnational research, with a particular emphasis on its application to infectious diseases, especially in the context of the COVID-19 era.
Together with two other post-docs from the bioinformatics department, we proposed a broad, crash data-analysis course aimed at full-time researchers working with data. ~75 people signed up from different fields. We presented general principles of data analysis, Python tools for data manipulation and plotting, and machine learning principles. Taking advantage of the diverse group, we encouraged students to form interdisciplinary groups and apply new knowledge to real-life datasets.
Invited for a week of classes in the Bioinformatics master's program taught by Prof. Rosalba Giugno to talk about metagenomics, covering 16S rRNA data analysis, whole-genome and long-read metagenomics. The class ended with a project on microbiome analysis in COVID-19 patients.
I organised a group of fellow PhD students and prepared a Vorkurs for biology/biotechnology undergrads entering the Bioinformatics master's program. During five days, we taught essential computer skills: command line, git, Linux, basics of Python, Java, and LaTeX.
A flipped-classroom proseminar for bachelor students. I distributed topics among students, who prepared write-ups and presentations. My role was to teach scientific writing, presentation skills, and how to provide structured feedback. I conducted a metagenomics proseminar.
TA for the Visualization of biological data course (three editions). The lecture followed the Visualization Analysis and Design book by Tamara Munzner. In tutorials I taught interactive design using JavaScript and D3.js. Sessions followed a blended-learning approach and ended with a group visualisation project and oral exam.
University-wide group programming projects run in a scrum manner, with TAs as product owners and a rotating project manager role. Students set up repositories, maintained documentation, and presented results. Projects covered exciting bioinformatics-specific programming topics each year.
A deep dive into Java, advanced programming, and visualisation in JavaFX. I created assignments and conducted practical sessions covering code review, UI design, and design patterns. The course ended with a group project to visualise 3D structures of biological molecules.
Obligatory course for all first-year Bioinformatics master students, covering sequence-related algorithmics: pairwise and multiple sequence alignment, read-mapping, suffix trees, assembly, genome comparison, RNA secondary structure prediction, gene prediction, RNA-seq and more. Teaching covered theoretical algorithmics, reading publications, programming in Python, and setting up pipelines and bioinformatics tools.