BIOINF4242 Advanced Java for Bioinformatics
Name | BIOINF4242 - Advanced Java for bioinformatics |
Lecturer | Prof. Daniel Huson and N.N. |
Venue | Thursdays, 8:15-10h, location C215, Sand 14 |
Tutorials | A) Mondays, 8:15-10h, C215, Sand 14 B) Thursdays, 16:15-18h, A302, Sand 13
|
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 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 17 and JavaFX 17
- 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
- Using AI systems to generate code
All topics will be taught in the context of a bioinformatics project.
Follow up course
In WS23/24 I plan to teach a second part to this course, namely "BIOINF4241 App Design for Bioinformatics". In that course, we will first focus on elements of UX design, then look the design of mobile devices, and will then use JavaFX and the Gluon framework to write a bioinformatics app that runs on iOS, Android and on desktops.
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 20.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... |
Apr 20 | 1. Introduction, scene graph | Assignment 1 |
Apr 27 | 2. Events and controls | Assignment 2 |
May 4 | 3. FXML and SceneBuilder | Assignment 3 |
May 11 | 4. Model-View-Presenter, 5. Shapes | Assignment 4 |
May 18 | no lecture | |
May 25 | 6. 3D-Shapes, 7. Properties | Assignment 5 |
no lectures | Project starts | |
Jun 15 | 8. Web client, 9. Concurreny | Project progress |
Jun 22 | 10. Selection, 11. Meshes | Project progress |
Jun 29 | 12. Animation, 13. Undo-redo | Project progress |
Jul 6 | 14. Charts, 15. CSS, 16. Canvas | Project progress |
Jul 13 | 17. WebView, 18. SQL | Project progress |
Jul 20 | Project presentations | Project due |
Jul 27 | no lecture | |
Aug 3 | Project presentations continued | |