OBJECT-ORIENTED PROGRAMMING PART 2
Abstract of the academic discipline
The purpose of studying the discipline: The course introduces the development of corporate applications in the Java programming language using the Spring framework. The course explores the Spring philosophy, focuses on the internals of the Spring engine, and covers some of the most popular add-on packages that extend the framework. The course includes hands-on work and term paper writing, ensuring that participants will have all the information and practical skills they need to become familiar with the framework and be able to successfully apply it in their projects.
Practical significance and use of the acquired knowledge:
Familiarization with flexible software development methodologies. Gain application development skills using the Spring framework and the Jakarta EE technology stack. Gaining skills to create client-server applications using monolithic and microservice architecture. Acquisition of skills in designing architectures of distributed applications and skills in working with tools for designing and implementing cross-platform applications.
Main learning outcomes:
PRN#1. Apply knowledge of the basic forms and laws of abstract and logical thinking, the basics of the methodology of scientific knowledge, the forms and methods of extracting, analyzing, processing and synthesizing information in the subject area of computer science.
PRN#5. Design, develop and analyze algorithms for solving computational and logical problems, evaluate the efficiency and complexity of algorithms based on the application of formal models of algorithms and calculated functions.
PRN#9. To develop software models of subject environments, to choose a programming paradigm from the standpoint of convenience and quality of application for the implementation of methods and algorithms for solving problems in the field of computer science.
Subjects and types of educational classes
1 week.
Lecture #1
"Client-server architecture. Sockets. JavaServlet technology".
Obtaining the task for the course work.
Lecture #2
"Inversion of control and implementation of dependencies. JavaBeans technology. The SpringBoot project. Structure of a Spring application.
Laboratory lesson #1
"Flexible methodologies, Scrum methodology. User stories. Writing user stories for term paper.
Performance of course work. Part 1.
3 week.
Lecture #3
"How the Internet works. HTTP and HTTPS protocols. REST architectural style and GraphQL engine. RESTful web services".
Performance of course work. Part 1
4 week.
Lecture #4
"REST controllers in JavaSpring. JSON format. Postman Software”.
Laboratory lesson #2
"Writing REST controllers in Spring. Passing parameters in REST requests. Processing JSON".
Performance of course work. Part 1.
5 week.
Lecture #5
"Integration of databases. ORM technology. Hibernate framework. Spring Data JPA module".
Performance of course work. Part 1.
6 week.
Lecture #6
"Developing web applications using the Spring MVC framework."
Laboratory lesson #3
"Creating a framework of a web application for a course work."
Performance of course work. Part 1.
7 week.
Lecture #7
"Creating views of a web application using the Thymeleaf framework".
Performance of course work. Part 1.
Modular test (control work) #1
8 week.
Lecture #8
"Aspect-oriented programming. Implementing logging in Spring".
Laboratory lesson #4
"Implementation of journaling in coursework".
Performance of course work. Part 2.
9 week.
Lecture #9
"Spring Security framework. Authentication and Authorization".
Performance of course work. Part 2.
10 week.
Lecture #10
"Spring Security framework. Sessions, Cookies and JWTs. OAuth2 protocol".
Laboratory lesson #5
"Ensuring authentication and authorization in course work".
Performance of course work. Part 2.
11 week.
Lecture #11
"Refactoring, code smells".
Performance of course work. Part 2.
12 week.
Lecture #12
"Testing in Java Spring".
Laboratory lesson #6
"Implementation of module testing in the coursework".
Performance of course work. Part 2.
13 week.
Lecture #13
"Deployment of Java Spring applications".
Performance of course work. Part 2.
14 week.
Lecture # 14
"Principles of SOLID".
Laboratory lesson #7
"Deployment of coursework software. Protection of coursework".
Performance of course work. Part 2.
15 week.
Lecture #15
“Design patterns of corporate applications”.
Defense of course work.
Individual work of the applicant takes place during the semester and consists of preparation for classroom classes, control measures, individual tasks.
Consultations: are carried out by the teacher during the semester according to the schedule.
Assessment of learning outcomes:
Module 1
Performance of laboratory work - 8 points for each laboratory work = maximum 24 points.
Modular test 1 – perfect execution maximum 26 points (in each task of the modular test, the maximum number of points for each task is given).
Course work. Part 1 - performance assessment - 30 points.
Module 2
Performance of laboratory works - 7 points for each laboratory work = maximum 28 points.
Modular test 2 – perfect execution maximum 22 points (in each task of the modular test, the maximum number of points for each task is given).
Course work. Part 2 – performance assessment – 20 points.
Defense of Course work - 50 points.
Links to recommended sources of information
1. Spring Framework Documentation. URL: https://docs.spring.io/spring-framework/docs/current/reference/html/ (дата звернення 01.08.2022).
2. Baeldung – Spring. URL: https://www.baeldung.com/spring-tutorial(дата звернення 01.08.2022).
3. Spring Guides. URL: https://spring.io/guides (дата звернення 01.08.2022).
4. Tutorialspoint – Spring Guides. URL: https://www.tutorialspoint.com/spring/index.htm (дата звернення 01.08.2022).
5. Edureka! Spring Tutorial. URL: https://www.edureka.co/blog/spring-tutorial/ (дата звернення 01.08.2022).