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


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:
During the semester, students take two 20-point computer-based exams in the laboratory, and at home they complete a 30-point Homework assignment from the lecture topics and a 30-point Homework assignment from the laboratory topics. The conditions for a successful semester are: achieving a total of at least 20 points on the two computer-based exams, at least 15 points on the lecture Homework assignment, and at least 15 points on the lab Homework assignment. In the first week of the semester, the instructor informs the students about the venue and time of the exams and information about the Homeworks.
Exam requirements:

Generative AI usage:

1st position: The use of GAI tools is not permitted when solving tasks. This means that GAI tools cannot be used when creating or solving formative or summative assessment elements, and the use of generative AI constitutes academic misconduct. The use of AI tools for language and spelling checking is not subject to the complete ban under the 1st position.

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] Joshua Bloch: Effective Java, Addison-Wesley Professional, 2023, ISBN: 0134686047 {2} Herbert Schildt, Danny Coward: The Complete Reference, MCGRAW HILL BOOK CO, 2023, ISBN: 1265058431 [3] AJ Henley Jr, Dave Wolf: Introduction to Java Spring Boot: Learning By Coding, Independently Published, 2023 ISBN: 1088797245 [4] Juha Hinkula: Full Stack Development with Spring Boot 3 and React, Packt Publishing Ltd, 2023, ISBN: 1805126814

Recommended readings:

Online sources: https://www.w3schools.com/java/java_intro.asp https://www.geeksforgeeks.org/java/java/ https://www.java.com/en/ https://www.programiz.com/java-programming https://www.w3schools.com/java/ https://spring.io/ https://www.geeksforgeeks.org/advance-java/spring-boot/ https://www.baeldung.com/spring-boot https://www.tutorialspoint.com/spring_boot/index.htm