Algorithmen der Bioinformatik

BIOINF4399 - Advanced Java for Bioinformatics

Title BIOINF4399 Advanced Java for bioinformatics
Lecturers Prof. Daniel HusonDr. Benjamin AlbrechtCaner Bagci and Klara Reichard
Venue Thursday, 8:15-10:00, Hörsaal 2, Sand 6/7
Problem sessions Tutorial A: Caner Bagci, Mondays, 12-14h, A301, Sand 14
Tutorial B: Benjamin Albrecht, Tuesdays, 12-14h, A104, Sand 14
Tutorial C: Klara Reichard, Wednesdays, C301, Sand 14
Grading Grades will be based on a project and a written exam.
Language English
Links CampusIlias


This course will cover the following topics:

- Java 8 and JavaFX 8

- Version control using GitHub

- Design patterns such as MVC

- Concurrent programming in Java

- GUI design, animation and 3D graphics using JavaFX

- Java web services

- Unit testing

All topics will be taught in the context of bioinformatics applications. 


We will write a lot of code, so a keen interest in programming is essential.

This is not an introduction to Java, you must already know Java to participate in this course.

Assignments and tutorials

Weekly assignments are handed out in class and are posted on this webpage. We will setup GitHub-classrooms to work with. 

We will discuss how to hand in your first assignment in the lecture on 19.10. Please enroll in the course using Ilias.

Tutorials will start in the week of October 30th.


In the second part of the course (after the Christmas break) you will work on a software project. The goal will be to develop a 3D protein viewer.


The following time-table is only an outline and is subject to changes.

Date Topic Assignments....
19.10.  1. Introduction See Ilias for assignments
Assignment 1
26.10. 2. Events and Controls Assignment 2
2.11. 3. Drawing stuff in 2D Assignment 3
9.11. 4. Animation Assignment 4
16.11.. 5. Design Patterns Assignment 5
23.11. 6.  3D graphics: Perspective camera, 3D shapes, 3D transforms and mouse interaction Assignment 6
30.11. 7. How to implement and use a selection model Assignment 7
7.12. 8. Undo-redo Assignment 8
14.12. 9.  Java Webservices Assignment 9
21.12. 10. FXML and CSS Project starts
11.1. 11. Meshes Discuss project with tutor
18.1. 12. Concurrent Programming
Worker, Task, Service
Discuss project with tutor
25.1. 13. Charts, WebView and Canvas Discuss project with tutor
1.2. Presentation of selected projects Project due
8.2.  Final exam 

Makeup exam: April, 29th, 8:30-10:00, Hörsaal 2, Sand 6/7


The introduction to JavaFX will be based on these books:

  • Anton Epple, JavaFX 8, Grundlagen und fortgeschrittene Techniken, dpunkt.verlag 2015
  • Herbert Schildt, Introducing JavaFX 8 Programming, Oracle Press, 2015
  • Kishori Sharan, Learn JavaFX 8, APress, 2015

Recommended IDE: Intellij

How to get credit for this course

  • Always participate in the weekly problem sessions and actively present your results. You must received at least 50% of possible points to take the exam.
  • Assignments are set every Thursday and are due on at the beginning of the lecture on the following Thursday.
  • Successfully implement the programming project requirements.
  •  Pass final exam.

Final Exam

The final exam will be a 30 minute oral exam or 90 minute written exam. The first half will cover concepts and constructs presented in the lectures and the second half will cover the structure and implementation of your software project.