Course title, code: Java Applications, GAINBAN-JAVAALKA-1

Name and type of the study programme: Computer science engineering, BSc
Curriculum: 2021
Number of classes per week (lectures+seminars+labs): 2+0+2
Credits: 5
Theory: 50 %
Practice: 50 %
Recommended semester: 5
Study mode: full-time
Prerequisites: Programming Paradigms and Techniques + 100 cr
Evaluation type: term mark
Course category: required optional
Language: english
Responsible instructor: Dr. Subecz Zoltán
Responsible department: Department of Information Technologies
Instructor(s): Dr. Subecz Zoltán
Course objectives:
Getting to know the Java programming language, the Java Spring framework, Creating graphical applications with JavaFX, learning to use a modern development environment (IntelliJ, NetBeans, Eclipse).
Course content - lectures:

- Java basics, loops types, methods, file management, - Complex data structures, Array, List, Map, Set. - Object oriented programming in Java - Database management, JDBC, ORM, Hibernate, JPA - Graphic programming with JavaFX - Graphical programming with a database - Graphical programming menu use, graph creation - SOAP client - REST client - Creating a currency trading client on a graphical interface - Data mining, Machine learning, main algorithms, classification with decision tree - Data mining, Machine learning, Cross validation and classification with other algorithms - Lambda expression, Stream, Functional programming


Course content - labs:

- Java basics, loops, types, methods, file management, - Complex data structures, Array, List, Map, Set. - Object oriented programming in Java - Database management, JDBC, ORM, Hibernate, JPA - Database management tasks with multiple tables - Server-side programming, Java Spring, Java Spring Boot, MVC, Annotations - Development of server-side applications - Thymeleaf template engine, Forms, Server-side validation, - Java Persistence API, Hibernate, ORM, - Dependency injection, CRUD operations. - Spring Boot Security, - Authentication and Authorization, - RESTful API,

Acquired competences:
Knowledge:

- He/she knows the operations of hardware and software elements, the technology of their implementation, how to solve problems related to their operation and the possibilities of the interconnection of IT and other technical systems. - He/she knows the main programming paradigms, programming languages, development tools. His/her knowledge covers the modelling of IT systems, creation of database based systems, as well as the structure, operation and implementation of computer networks. His/her knowledge covers the characteristics of intelligent systems, the specificity of mobile application development, the management of state-of-the art general purpose operating systems, as well as the aspects of IT security. - He/she is familiar with the important software development methodologies, and the notation systems for IT designs and documentation. - He knows the vocabulary and special terms of the engineering profession in the Hungarian and English languages at least on the basic level.

Skills:

- He/she is able to develop applications, program client-server and WEB, mobile operating systems, develop multiplatform systems. He/she can apply his/her knowledge acquired during his/her study to acquire deeper knowledge in the field of information engineering and to process special literature and solve problems related to information technology. - He/she constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.

Attitude:

- He/she is open to acquire new methods, programming languages and develop skills to use them. - He/she makes an effort to work efficiently and to high standards.

Autonomy and responsibilities:

- He/she has a security-conscious attitude in posession of his/her professional knowledge, and is aware of potential threats and opportunities for attack, as well as is prepared to prevent them.

Additional professional competences:


Requirements, evaluation, grading:
Mid-term study requirements:
Participation in practical sessions. Solving the tasks given by the practice leader during the practical session, on the computer. During the semester, students prepare a 30-point Homework during the lecture. Two 25-point computer-based exams and a 20-point Homework are prepared in the laboratory. Conditions for a successful semester: achieving at least 50% in each of the Homeworks, and at least 50% in the computer-based exams in total.
Exam requirements:

Study aids, laboratory background:

Learning materials uploaded to Teams. All students are provided with separate, modern computer access in the laboratories. Internet resources are available in the computer service room reserved for students.

Compulsory readings:

[1] Dr. Seán Kennedy, Maaike van Putten: Learn Java with Projects, Packt Publishing; 2023, ISBN 1837637180 [2] Aaron Ploetz: Code with Java 21, BPB Publications, 2024, ISBN 9355519990

Recommended readings:

https://www.w3schools.com/java/ https://www.programiz.com/java-programming https://www.geeksforgeeks.org/java/ https://www.javatpoint.com/java-tutorial https://www.codecademy.com/learn/learn-java https://docs.oracle.com/javase/tutorial/index.html