Main page | Study Branches/Specializations | Groups of Courses | All Courses | Roles                Instructions

A course is the basic teaching unit, it's design as a medium for a student to acquire comprehensive knowledge and skills indispensable in the given field. A course guarantor is responsible for the factual content of the course.
For each course, there is a department responsible for the course organisation. A person responsible for timetabling for a given department sets a time schedule of teaching and for each class, s/he assigns an instructor and/or an examiner.
Expected time consumption of the course is expressed by a course attribute extent of teaching. For example, extent = 2 +2 indicates two teaching hours of lectures and two teaching hours of seminar (lab) per week.
At the end of each semester, the course instructor has to evaluate the extent to which a student has acquired the expected knowledge and skills. The type of this evaluation is indicated by the attribute completion. So, a course can be completed by just an assessment ('pouze zápočet'), by a graded assessment ('klasifikovaný zápočet'), or by just an examination ('pouze zkouška') or by an assessment and examination ('zápočet a zkouška') .
The difficulty of a given course is evaluated by the amount of ECTS credits.
The course is in session (cf. teaching is going on) during a semester. Each course is offered either in the winter ('zimní') or summer ('letní') semester of an academic year. Exceptionally, a course might be offered in both semesters.
The subject matter of a course is described in various texts.

BIE-TJV.21 Java Technology Extent of teaching: 2P+2C
Instructor: Guth O. Completion: Z,ZK
Department: 18102 Credits: 5 Semester: Z

Annotation:
The aim of the course is to provide knowledge and skills needed for the development of smaller and larger information systems. Students will get acquainted with general theoretical concepts and will be able to apply these concepts using libraries and tools from the ecosystem of the Java programming language. After completing the course students will be able to participate in the development of software systems on the Java platform. Students are assumed to be acquainted with the following topics (they are used and not taught in this course): Java language syntax, SQL, git version control system, Docker, continuous integration.

Lecture syllabus:
1. Software applications, typical layers used in design and implementation of SW applications.
2. Application frameworks. Principles of Inversion of control and of Dependency Injection used in creation of object-based applications.
3. Build of SW applications.
4. Automatic testing of SW applications.
5. Data layer. Use of relational databases, object-oriented mapping.
6. Web layer of SW applications, web container/server.
7. Handling of RESTful web services, protocol HTTP.
8. SOAP web services.
9. Logging of SW applications.
10. Security of SW applications, authentication and authorization in SW applications.
11. Application servers and their utilization, the JavaEE/JakartaEE specification, Enterprise Java Beans (EJB).
12. Architectures of SW applications.
13. Microservices and the concept of SE applications based on microservices.

Seminar syllabus:
1. Programming in Java IDE.
2. Spring inversion of control and dependency injection, annotations.
3. Spring Boot.
4. Build tools (Gradle, Maven).
5. JUnit.
6. Spring ORM, transactions.
7. Web layer.
8. RESTful web service.
9. RESTful API client.
10. Logging.
11. Spring security.
12. Submitting of semestral project.
13. Submitting of semestral project.

Literature:
1. de Oliveira C. E., Rajput D., Rajesh R. V. : BI-PJP. Packt Publishing, 2018. ISBN 978-1789959666.
2. Enriquez R., Salazar A. : Software Architecture with Spring 5.0: Design and architect highly scalable, robust, and high-performance Java applications. Packt Publishing, 2018. ISBN 978-1788992992.
3. Urma R. G., Fusco M., Mycroft A. : Modern Java in Action: Lambdas, streams, functional and reactive programming (2nd Edition). Manning Publications, 2018. ISBN 978 1617293566.
4. Mahajan A., Gupta M. K., Sundar S. : Cloud-Native Applications in Java: Build microservice-based cloud-native applications that dynamically scale. Packt Publishing, 2017. ISBN 978-1787124349.

Requirements:
Entry knowledge: object-oriented programming, relational databases and SQL, git version control system, virtualization containers and Docker, and continuous integration. Knowledge of Java programming language is recommended.

Information about the course and courseware are available at https://courses.fit.cvut.cz/BIE-TJV

The course is also part of the following Study plans:
Study Plan Study Branch/Specialization Role Recommended semester
BIE-TI.21 Computer Science 2021 V 3
BIE-PS.21 Computer Networks and Internet 2021 VO 3
BIE-SI.21 Software Engineering 2021 PS 3
BIE-PV.21 Computer Systems and Virtualization 2021 V 3
BIE-IB.21 Information Security 2021 (Bachelor in English) V 3
BIE-PI.21 Computer Engineering 2021 V 3


Page updated 29. 3. 2024, semester: L/2021-2, Z,L/2023-4, Z/2021-2, Z/2020-1, Z/2019-20, L/2020-1, Z,L/2022-3, L/2019-20, Send comments to the content presented here to Administrator of study plans Design and implementation: J. Novák, I. Halaška