Course: Advanced programming for Java platform

» List of faculties » FM » ITE
Course title Advanced programming for Java platform
Course code ITE/PPJ
Organizational form of instruction Lecture + Lesson
Level of course Master
Year of study not specified
Semester Summer
Number of ECTS credits 5
Language of instruction Czech
Status of course Compulsory, Compulsory-optional
Form of instruction Face-to-face
Work placements Course does not contain work placement
Recommended optional programme components None
Lecturer(s)
  • Červa Petr, doc. Ing. Ph.D.
  • Smola Ondřej, Ing.
Course content
Seminars 1) Basic components of Java Virtual Machine (JVM), overview of current innovations in Java. Application servers for Java applications. 2) Basic structure of the project in Java, tools for managing the project lifecycle and dependencies (e.g., Maven), tools for automated deployment (e.g., Jenkins). 3) Java platform (Java SE, Java EE). Building of enterprise applications with Spring framework - an overview of the modules. Introduction to the Spring framework - Inversion of Control, Dependency injection. 4) Structure of an application in Spring - class configuration files and profiles (production, testing, development), testing of applications (e.g., JUnit). Principles of Test Driven Development (TDD). 5) Spring module Model View Controller (MVC) and practical basics of communication over HTTP (status codes, headers, versioning). 6) The use of relational databases in Spring, Spring JDBC module. Database versioning. 7) Object-relational mapping in Java for database abstraction, JPA specification, Hibernate. 8) Principles of NoSQL databases (MongoDB) and Spring Data module. Working with data in NoSQL databases (Map Reduce). 9) Methods of application integration: RPC, REST, SOAP, Messaging. 10) Module Spring REST, discovering API using HATEOS. 11) Messaging system (e.g., RabbitMQ), model producer-consumer, basic types of queues. 12) Security of applications, module Spring Security. 13) Application Management: logging, configuration, monitoring, profiling. 14) Alternative languages for the Java platform (Scala, Groovy, Clojure). Practicals 1) Seznámení s IDE (IntelliJ IDEA / Eclipse), úvod do práce s vybraným verzovacím systémem. 2) An example of Java application and its deployment to application server. 3) Management of project lifecycles using tools for automatization. 4) Creating an application in the Spring framework and setting of IoC container. 5) Configuration of profiles, test driven development, testing of applications. 6) Development of web application using Spring MVC. 7) Connection of an application to a relational database. 8) The use of object relation mapping - Spring JPA and Hibernate. 9) Working with NoSQL databases, Map Reduce task. 10) Integration of application with external application API. 11) Building of REST API. 12) Integrating of a messaging system. 13) Security of application using the module Spring Security. 14) Management of the application and logging.

Learning activities and teaching methods
Monological explanation (lecture, presentation,briefing)
  • Home preparation for classes - 50 hours per semester
  • Class attendance - 56 hours per semester
  • Preparation for exam - 44 hours per semester
Learning outcomes
The course introduces students to the principles and tools that are needed in practice for the development, management and testing of extensive and advanced software applications. In addition to the explanation of theoretical principles, an example database web application will also be gradually developed during seminars. The course will also be focused on tools necessary for project management, versioning, testing, logging, integration, automated management and automated dependency deployment. Development of applications will be performed on the Java platform using the Spring framework. However, applied and introduced technologies and principles can also be used under other frameworks such as .NET Framework.
Building of enterpise web and database applications in Spring framework, work with software tools for project management, versioning, testing, logging, integration, automated management of dependencies and automated deployment, basic knowledge of messaging systems, basic knowledge NoSQL databases.
Prerequisites
Basic knowledge of relational databases and programming in Java. Basic knowledge of English for reading documentation for various frameworks.

Assessment methods and criteria
Combined examination

Requirements for obtaing the credit are activity at the practicals /seminars and successful passing of the tests. Examination has form a written/oral test.
Recommended literature
  • Craig Walls. Spring in action: covers spring 5.0. 2019. ISBN 978-1-61729-494-5.
  • Nicholas S. Williams. Professional Java for Web Applications. ISBN 9781118656464.
  • Thomas Roy Fielding. Architectural Styles and the Design of Network-based Software Architectures.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Mechatronics, Informatics and Interdisciplinary Studies Study plan (Version): Information Technology (2013) Category: Informatics courses 1 Recommended year of study:1, Recommended semester: Summer