Algorithms in Bioinformatics

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

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 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