BIOINF4399 - Advanced Java for Bioinformatics
| Title | BIOINF4399 - Advanced Java for bioinformatics |
| Lecturer | Prof. Daniel Huson and Dr. Benjamin Albrecht, Sina Beier and Christopher Jürges (Email: use Ilias) |
| Venue | Thursday, 8:30-10:00, Hörsaal 1, Sand 6/7 |
| Problem sessions | Mondays, 14:30-16:00, Hörsaal 1, Sand 6/7 ( Tutor: Christopher Jürges) Tuesdays, 10:15-12:00, Hörsaal 1, Sand 6/7 (Tutor: Benjamin Albrecht ) Wednesdays, 8:15-10:00, Hörsaal 2, Sand 6/7 (Tutor: Sina Beier) |
| Grading | Grades will be based on a project and an oral or written exam. |
| Language | English |
| Links | Campus, Ilias |
Contents
This course will cover the following topics:
- Java 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 27.10. Please enroll in the course using Ilias.
Tutorials will start on October 31st.
Project
The second part of the course (after the Christmas break) you will work on a software project in which you will implement a viewer for protein sequences and three-dimension structure for PDB files.
Schedule
The following time-table is only an outline and is subject to changes.
| Date | Topic | Assignments.... |
|---|---|---|
| 20.10. | 1. Introduction | See Ilias for assignments Assignment 1 |
| 27.10. | 2. Events and Controls | Assignment 2 |
| 3.11. | 3. Simple JavaFX Controls | Assignment 3 |
| 10.11. | 4. Design Patterns and UML | Assignment 4 |
| 17.11. | 5. Advanced JavaFX Controls | Assignment 5 |
| 24.11. | 6. Drawing stuff in 2D | Assignment 6 |
| 1.12. | 7. Animation | Assignment 7 |
| 8.12. | 8. Introduction to 3D graphics: Perspective camera, 3D shapes, 3D transforms and mouse interaction | Assignment 8 |
| 15.12. | 3D graphics continued | Assignment 9 |
| 22.12. | 9. How to implement and use a selection model | Project starts |
| 12.1. | 10. Java Webservices | Discuss project with tutor |
| 19.1. | 11. Concurrent Programming Worker, Task, Service | Discuss project with tutor |
| 26.1. | 12. FXML and CSS | Discuss project with tutor |
| 2.2. | 13. Charts, WebView and Canvas | Project due |
| 9.2. | Final exam | |
Makeup exam: April, 6th, 8:30-10:00, Hörsaal 1, 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.