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. I am passionate about making complex topics accessible, fostering independent thinking, and designing courses that bridge theory with hands-on practice.Below I've listed the classes I've taught or contributed to:
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 the SQL databases. Second part of the course focuses on the no-SQL databases including MongoDB and Neo4j. The course finishes with the complete mini-project where students can exercise their skills across 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.
In the Italian system, PhD students need to take classes from the PhD school. Together with two other post-docs from the bioinformatics department, we have proposed a borad, crush data-analysis course aimed at people who already are full-time researchers and work with data. ~75 people signed up from different fields - including informatics. We presented the general principles and rules of data analysis, tools in python for manipulating data and plotting and the machine learning principles. Taking advantage of the diverse group of students, we encouraged the students to form interdisciplinary groups and apply the new knowledge to real-life datasets.
In Verona, the main class of the Bioinformatics masters program is Programming for Bioinformatics, taught by prof. Rosalba Giugno. I was invited for a week of classes to talk about metagenomics. I thought 16S rRNA data analysis, whole-genome and long-read metagenomics. Like in Tuebingen, the class ended with the project. I conducted a project on the microbiome analysis in the COVID-19 patients for the two students.
The Master's in Bioinformatics was a popular choice among the biology and biotechnology undergrads. But unfortunately, many of them didn't have the computational experience needed for Bioinformatics I and II classes. To help with this situation, I organised a group of fellow PhD students and prepared Vorkurs that took place a week before the classes started. During five days, we taught the essential computer skills: command line, git, and Linux, the basics of python, java and LATEX.
All bachelor students have to join one of the proserminars offered across the department. The course follows a flipped-classroom paradigm. The TA presents a list of topics and distribute them among the students. Students need to prepare a write-up and a presentation on the subject, then present it to the class. My role was to teach scientific writing, presentation, and how to provide structured feedback to the speaker. I conducted a metagenomics proseminar.
I've TA-ed the Visualization of biological data three times with three different teams. The lecture presented main visualisation principles, following the Visualization Analysis and Design book by Tamara Munzner. In the tutorials, I taught an interactive design using JavaScript and D3.js. The sessions followed a blended-learning approach, and the lecture ended with the group visualisation project and an oral exam from the theoretical part.
The group programming project was a university-wide, but de-centralised, class. Each research group proposed a topic and a programming language. Every year we came up with an exciting bioinformatic-specific programming project. The projects ran in a scrum manner. TAs were posing as product owners, and the role of the project manager was rotating through the group. In addition, the students needed to set up a repository, maintain documentation and finally present the results to the group. We carried out this project independently, reporting to the Professor during the group meetings.
This was a deep dive into Java, advanced programming, and visualisation in JavaFX. I created assignments and conducted the practical sessions that included code-review, UI design and design-patterns. At the end of the project, we conducted a group programming project to visualise the 3D structure of the biological molecules.
This course was an overview of sequence-related algorithmics, constituting the basis of the field of bioinformatics: pairwise and multiple sequence alignment, read-mapping, suffix trees, assembly, genome comparison, RNA-secondary structure prediction, gene prediction, RNA-seq etc. The course was obligatory for all first-year master students of Bioinformatics. We were teaching theoretical algorithmics, reading publications, programming (in python) and setting up pipelines and bioinformatics tools.