BIOINF4399 - Advanced Java for Bioinformatics
Title | BIOINF4399 - Advanced Java for bioinformatics |
Lecturers | Prof. Daniel Huson, Dr. Benjamin Albrecht, Caner 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 | Campus, Ilias |
Contents
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.
Note
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.
Project
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.
Schedule
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 Movie |
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
Literature
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.