Advanced Java 1000-2M22ZJ
The aim of this course is to familiarize students with advanced aspects of Java (reflection, annotations, classloaders, dynamic proxy) and their practical use in libraries and frameworks.
As part of the lecture, we will learn about the construction of a servlet container and we will try to implement it in teams of several people. Then we will test it efficiently, we will try to determine the bottlenecks of our solution and tune it’s performance. We will not use ready-made solutions and libraries, but implement our own in Java SE following the example of the existing ones.
Similarly, for the jax-rs and jpa specifications - we will implement a simplified version of the library supporting the creation of rest services and a solution supporting object-relational mapping (ORM).
All of this with the use of git, unit testing, integration and CI / CD.
In the laboratory part, we will check how artificial intelligence based on a neural network or a genetic algorithm can cope with the fight at https://www.codingame.com/multiplayer/bot-programming with programs based on heuristics, Minimax or the Monte Carlo method.
Type of course
Course coordinators
Learning outcomes
Knowledge
The students know in detail a selected tool or programming language [K_W02, K_W09, K_W10].
Skills
The students are able to complete programming projects in a selected tool or programming language [K_U05].
Competences
The students are able to acquire and develop on their own the knowledge concerning a selected tool or programming language [K_K04].
Assessment criteria
Credit for the lecture:
by team writing a web server similar to a servlet container, a library supporting the creation of rest sites and a library supporting object-relational mapping.
Laboratory credit:
by writing several small programs (5-6) playing on https://www.codingame.com/multiplayer/bot-programming
Bibliography
JSR 340: Java Servlet 3.1 Specification
JSR-000370 Java API for RESTful Web Services 2.1 Specification Final Release
JSR 338: JavaTM Persistence 2.2
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
- Bachelor's degree, first cycle programme, Computer Science
- Master's degree, second cycle programme, Computer Science
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: