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.