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, TBA B) Thursdays, 16:15-18h, TBA |
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 | Alma Ilias |
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 21
- 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
- Deploying Java programs to mobile devices (iOS, Android)
All topics will be taught in the context of a bioinformatics project.
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 17.4. Please enroll in the course using Ilias.
Project
In the second part of the course you will work on a bioinformatics software project. You will present your project on August 4.
Schedule
The following time-table is only an outline and is subject to changes
Date | Topic | Assignments... |
Apr 17 | 1. Introduction, scene graph | Assignment 1 |
Apr 24 | 2. Events and controls | Assignment 2 |
May 8 | 3. FXML and SceneBuilder | Assignment 3 |
May 15 | 4. Model-View-Presenter, 5. Shapes | Assignment 4 |
May 22 | 6. 3D-Shapes, 7. Properties | Assignment 5 |
Jun 5 | 8. Web client, 9. Concurreny | Project progress |
June 26 | 10. Selection, 11. Meshes | Project progress |
July 3 | 12. Animation, 13. Undo-redo | Project progress |
Jul 10 | 14. Charts, 15. CSS, 16. Canvas | Project progress |
Jul 24 | 17. WebView, 18. SQL | Project progress |
Aug 4 (8-12h) | Project presentations | Project due: Aug 3, 23:59 |