BIOINF4399 Advanced Java for Bioinformatics
Name | BIOINF4399 - Advanced Java for bioinformatics |
Lecturer | Prof. Daniel Huson, Banu Cetinkaya and Anupam Gautam |
Venue | Thursdays, 8:15-10:00, A301, Sand 1 Mondays, 16-17h, Q&A via Zoom |
Tutorials | A) Thursdays, 16:15-18h, C118, Sand 14 B) Mondays, 8:15-10, C118, Sand 14 |
Info | This course is intended for MSc students in bioinformatics and medical informatics. Students in other programs will be admitted if space permits. Grades will be based on the quality of a software project that you will undertake in this course. |
Language | English |
Links |
Contents
In this course, we we learn how to build a fully featured, fully functional bioinformatics application. This will include fundamentals such implementing menus, toolbars, undo-redo, copy and paste, open and save. We will also learn how to implement visualization and interaction, including 3D visualization, animation and meshes.
This course will cover the following topics:
- Java 18 and JavaFX 18
- Coding using Intellij
- Version control using GitHub
- Design patterns such as MVP
- Concurrent programming in Java
- GUI design, animation and 3D graphics using JavaFX
-RESTful web services, client and server
All topics will be taught in the context of a bioinformatics project.
The topic will be implementing an advanced viewer for phylogenetic trees, including novel, interactive+animated 3D visualizations.
Alternatively, we will look into developing an application that connects to and uses an alpha-fold web server.
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 some Java to participate in this course.
Assignments and tutorials
Weekly assignments are handed out in class and are posted on this webpage. In the second half of the course, you will work on a project and the resulting code will be the basis of your grade.
We will setup GitHub-classrooms to work with.
We will discuss how to hand in your first assignment in the lecture on 21.4. Please enroll in the course using Ilias.
Project
In the second part of the course you will work on a bioinformatics software project.
Schedule
The following time-table is only an outline and is subject to changes
Date | Topic | Assignments... |
21.04.2022 | 1. Introduction, scene graph | Assignment 1 |
28.04.2022 | 2. Events and controls | Assignment 2 Deadline: Wed., 4-May, 10am |
05.05.2022 | 3. FXML and SceneBuilder | Assignment 3 Deadline: Wed., 11-May, 10am |
12.05.2022 | 4. Model View-Presenter, 5. Shapes | Assignment 4 Deadline: Wed., 18-May, 10am |
19.05.2022 | 6. 3D-Shapes, 7. Properties | Assignment 5 Deadline: Wed., 25-May, 10am |
Assignment 6 Deadline: Wed., 1-June, 10am | ||
02.06.2022 | 8. Meshes, 9.Services and concurreny | Start project |
23.06.2022 | 10. Selection model, 11. Undo-redo | Project progress |
30.06.2022 | 12. Web client 13. CSS | Project progress |
07.07.2022 | 14. Charts, 15. Canvas | Project progress |
14.07.2022 | 16. Animation, 17. WebView | Project progress |
21.07.2022 | 18. Web server, 19. SQL | Project due |
28.07.2022 | Project presentations | |