The introductory R course at the University of Bern's Department of Biomedical Research (DBMR) provides students with a foundational understanding of R programming and its applications in the field of biomedical research. This course offers an immersive learning experience, equipping participants with the essential skills needed to manipulate data, perform statistical analysis, and generate visualizations using the R programming language. Through hands-on exercises and practical examples tailored to the specific needs of biomedical research, students gain proficiency in data analysis techniques, enabling them to make informed decisions and contribute effectively to scientific research endeavors. The DBMR's introductory R course serves as a valuable resource for students aspiring to excel in the intersection of programming and biomedical sciences.
Course Title:
Introduction to R for Biologists (Sept–Dec)
Schedule: 1 hour/week (Mondays) Duration: September 9 – December 16, 2025 Exam: January 13, 2026 Instructors: Daniel, Hugo, Tural, Ali
Course Overview This course introduces R programming to biology students with little or no coding experience. By the end, participants will: Understand R syntax, data structures, and visualization tools. Apply programming logic (loops, conditionals, functions). Perform basic data cleaning and analysis. Visualize biological data using ggplot2. Explore real-life biological datasets in R.
| Date | Topic | Instructor(s) | Learning Goals / Activities |
|---|---|---|---|
| Sept 9 | Introduction to R | Daniel | • Overview of R & RStudio • Installing packages • Basic operations, variables, help system • Simple math and plotting |
| Sept 16 | Vectors and Matrices – Part 1 | Hugo | • Creating and manipulating vectors • Vectorized operations • Indexing and subsetting |
| Sept 23 | Vectors and Matrices – Part 2 | Hugo | • Matrices and basic matrix operations • Applying functions ( apply, colMeans, etc.)• Hands-on biological examples (gene expression matrices) |
| Sept 30 | data.frames and lists | Ali | • Creating and exploring data frames • Accessing and modifying data • Lists and nested data structures • Small biological dataset example |
| Oct 7 | Conditionals and Loops – Part 1 | Daniel | • if, else, ifelse statements• For and while loops • Iterating over simple datasets |
| Oct 14 | Conditionals and Loops – Part 2 | Daniel & Tural | • Combining loops and conditionals • Using loops for repetitive biological calculations (e.g., gene filtering) |
| Oct 21 | ggplot2 – Part 1 | Daniel | • Introduction to grammar of graphics • Basic plots (scatter, bar, histogram) • Customizing themes |
| Oct 28 | ggplot2 – Part 2 | Tural | • Facets, color scales, labeling • Aesthetics and layers • Practice with small biological dataset |
| Nov 4 | ggplot2 – Part 3 (Group Activity) | Group | • Collaborative plotting challenge • Visualizing expression or growth data • Peer discussion of plots |
| Nov 11 | Functions | Tural | • Writing custom functions • Arguments, return values, and scope • Reusing code for biological workflows |
| Nov 18 | Data Cleaning | Ali | • Handling missing data • String and factor handling • Tidy data concept • Cleaning real biological dataset (e.g., gene table) |
| Nov 25 | R for Life Sciences – Part 1 | Daniel | • Introduction to biological datasets • Importing CSV/Excel data • Overview of packages like tidyverse, Bioconductor |
| Dec 2 | R for Life Sciences – Part 2 | Tural | • Working with gene expression or qPCR data • Calculating descriptive statistics • Simple differential comparisons |
| Dec 9 | R for Life Sciences – Part 3 | Tural / Hugo | • Biological dataset visualization and interpretation • Integrating ggplot2, tidyverse, and control structures |
| Dec 16 | R for Life Sciences – Part 4 | Ali | • Mini project: analysis pipeline on a biological dataset • From import → cleaning → analysis → visualization |
| Jan 13 | Final Exam / Project Presentation | All | • Short project presentation or quiz • Assess understanding of coding logic and biological application |
Teaching Style Short theoretical introduction (15–20 min) Hands-on coding (30–40 min) Q&A and wrap-up (10 min)
Assessment 50% Weekly participation (mini-tasks, coding exercises) 50% Final exam or mini-project presentation (Jan 13)
University of Bern