Continue learning Java Java 2

Programming in Java II builds on Programming in Java I and develops students' skills in programming and using commonly used technologies from the Java ecosystem.

Course Organisation and Conditions of Graduation

Scored assignments on exercises - minimum 10 out of 25

Starting with the first exercise (week of 2/17 - 2/21/2025), exercises will be scored. Thus, the exercises will always require a problem to be solved, for which points will be assigned similarly to Java I. There are 13 weeks in the semester, the last one will have a credit test, one exercise will be dropped due to Easter and Sports Day, (Thursday's two exercises will be dropped due to a public holiday) and one exercise will have a practical knowledge test. So 9-10 exercises, each of them will be possible to get 3 points. Only 25 points can be recorded, but the higher number will solve any normal frequency of absences due to illness and will not have to deal with substitute exercises. In the event of prolonged sickness, everything will be dealt with on an individual basis.

Homework minimum 0 points out of 10

Each scored exercise corresponds to one homework assignment for which 1 point may be earned. The homework is for practice and cannot be accurately verified, so only a limited number of points are awarded.

Practical knowledge test with a minimum of 7 points out of 15

During the week of 31.3.-4.4.2025, a practical knowledge test will be held, where you will create code according to the assignment (programming test) at the computer in the classroom.

Themes:

  • Logging, exception logging, efective logging
  • Lombok
  • java record
  • enum, switch, pattern mathing
  • Functionla Interfaces
  • JPA entity a JPA entity with relation
  • CriteriaQuery

Semester Project 10-25

The semester project must be submitted via the Kelvin or Edison system (to be specified) and defended individually during the exam period; dates will be announced. Project topics will involve creating a REST API server for storing data from a game or from a GUI developed in other courses.

Credit Test 10-25

The credit test will take place in the last week of the semester and will test theoretical knowledge in the form of an electronic test in the LMS.

Semester project

Create a web application (back end in Java—Spring/Quarkus) with a REST API, and a front end using any web technology or JavaFX.

Detailed description here

The deadline for submission is June 21, 2026, or prior to the project defense.

Part-time study

The requirements for part-time students are the same. The only difference is that they do not have graded tutorials, so the point distribution for the remaining assignments is different.

    Homework assignments (0–20) – there are 5 homework assignments, each worth 4 points
    Practical knowledge test (10–25) – will take place on April 25, 2025, at 7:15 a.m. during the tutorial
    Semester project (10–30)
    Midterm exam (10–25)

Translated with DeepL.com (free version)

Required tools

  • Java 25
  • Maven 3.9.12 (3.9.11)
  • SceneBuilder 25.0.x
  • IDE - Eclipse 2025-12 nebo IntelliJ idea2025.3 (required Ultimate for web development)
  • It is a good idea to keep to the versions to avoid problems.

 

Java 25

Java 25 - Can be dowloaded OpenJDK or on Oracle JDK

Instalation under Ubuntu

#Installation in command line
sudo apt update
sudo apt -y install openjdk-25-doc openjdk-25-jdk openjdk-25-jdk-headless openjdk-25-jre openjdk-25-jre-headless openjdk-25-source
#check success
java -version

Java installation under Windows

  1. Download the Oracle JDK installer
  2. Double click on the installer
  3. Next, Next, Next ...

Maven 3.9.6

Maven 3.9.6 - for download on  maven.

Maven installation for Ubuntu

sudo apt update
sudo apt install maven
#download and extraction most recent version
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.14-bin.tar.gz
tar -xvf apache-maven-3.9.14-bin.tar.gz
#on the end of file $HOME/.bashrc add:
PATH="$HOME/apache-maven-3.9.14/bin:$PATH"
#run new terminal window and chceck version of maven
mvn -version

Maven installation for Windows

  1. Download the package from the website
  2. Unzipping to the desired location
  3. Setting the path to run: Settings->About->Advanced System Settings->Environment Variables...
  4. For users, edit the Path variable and add a bin folder in the unzipped maven folder.
  5. Test in new console: mvn -version

SceneBuilder 25.0.x

Download here.

Installation using the installer. In windows doubleclick in Ubuntu for example:

sudo dpkg -i SceneBuilder-25.0.0.deb

Eclipse 2025-12

Eclipse - Download the installer here. When installing, select the option for "Java Developers". Or download the Eclipse for Java Developer package directly here.

Unzip the downloaded package and create icons in the system menu to run it. For windows, the installer is also available (Next, Next, Next)

Install the following plugins into eclipse from the Eclipse Marketplace:

In Window -> Preferences -> JavaFX set the path to SceneBuilder

Lombok 1.18.42

Download Lombok here. In the directory where you downloaded Lombok, run the command (in Windows, just double-click on the file):

  •     java -jar lombok.jar

Use the "Specify location ..." button. Select the eclipse location and use the "Install/Update" button to install Lombok support in Eclipse.

Creating a start menu icon for Eclipse in Ubuntu

#in folder $HOME/.local/share/applications create  file eclipse-2025-12.desktop
#With content:
[Desktop Entry]
Version=1.0
Name=2025-12 Eclipse Java
Comment=Eclipse 2025-12 My favorite development tool for my favorite language :-)
Exec=/path/to/my/eclipse/java-2025-12/eclipse/eclipse
Icon=/path/to/my/eclipse/java-2025-12/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Programming;Application;
Name[en_US]=Eclipse Java 2025-12

InteliJ IDEA

InteliJ IDEA can be downloaded here.

Install the plugins:

Video tutorial on installing all tools under Windows

Installing all tools under Windows

Video tutorial on installing all tools under Ubuntu

Installing all tools under Ubuntu

Předběžný nezávazný plán přednášek a cvičení

Týden Přednáška Cvičení Domácí úkol
1
17.2.-21.2.

maven
modules

maven maven
2
24.2.-28.2.

logging
static factory methods
builder
javabeans
equals/hashcode

modules modules
3
3.3.-7.3.

lombok
record
enums*
switch*
pattern matching
lambdas*

logging
builder
equals/hashcode

logging
4
10.3.-14.3.
jpa

lombok
record

lombok
5
17.4.-21.4.

jpa ql
JPA criteria query
cdi

JPA JPA
6
24.3.-28.3.

rest
Jax-rs*
JSON binding api
Spring – cdi, rest, component
Quarkus + panache

JPA - vazby

JPA - vazby
7
31.3.-4.4.

Concurrency
internacialization
bigInteger, Bigdecimal
Money

praktická písemka load JSON
8
7.4.-11.4.
Java NIO spring, rest spring+rest
9
14.4.-18.4.

networking
serialization

spring, teameleaf networking
10
21.4.-25.4.

velikonoce

concurency cryptography
11
28.4.-2.5.
reflection
security
cryptography

concurency

 

 
12
5.5.-9.5.

unit testy
mock objects

unit testy
konzultace projektů

 
13
12.5.-16.5.
zápočťák - teoretický test