OBJECT-ORIENTED PROGRAMMING PART 1
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
"Introduction to object-oriented programming. History and prerequisites of the object-oriented approach. Basic concepts and tasks of the object-oriented approach. Advantages and disadvantages of the object-oriented approach. Basic concepts of object-oriented programming".".
Laboratory lesson #1
"Basic Java Syntax".
2 week.
Lecture #2
"Creating objects. Primitive and reference types. Designer. The this keyword. Basics of UML. UML class diagram".
Laboratory lesson #2
"Class announcements, fields and methods, constructors. UML Class Diagram Notation”.
3 week.
Lecture #3
"Basic principles of OOP. Concept of encapsulation. Interface and implementation. Encapsulation in Java. Getters and setters. Encapsulation in class design".
Laboratory lesson #3
"Access modifiers, getters and setters, creating classes with encapsulation in mind."
4 week.
Lecture #4
"Code reuse. Composition and inheritance. Object class. Comparison of composition and inheritance".
Laboratory lesson #4
"Inheritance and composition in Java. Chain of constructor calls. The keyword is super. Inheritance and composition in the UML class diagram".
5 week.
Lecture #5
"Polymorphism and its types. Static and dynamic binding. Method overloading. Redefining the method".
Laboratory lesson #5
"Overloading and overriding methods in Java. The practical purpose of polymorphism".
6 week.
Lecture #6
"The principle of abstraction. Additional principles of OOP. Abstract classes and interfaces".
Laboratory lesson #6
"Abstract classes in Java. Interfaces in Java (before and after Java 1.8). Abstract Classes and Interfaces: Use Cases".
7 week.
Lecture #7
"Anonymous objects, classes and methods. Lambda expressions and functional interfaces".
Laboratory lesson #7
"Syntax of anonymous objects and classes, use cases. Syntax and use cases of lambda expressions".
8 week.
Lecture # 8
"Generalized programming. Autopacking and autounpacking of types. Generalized class, interface, method, constructor. Erasure of types".
Laboratory lesson #8
"Syntax of generalized programming in Java. Autopacking and autounpacking in Java. Type erasure in Java".
Modular test (control work) 1.
9 week.
Lecture # 9
"Collections. Lists and queues. Classes Collections and Arrays".
Laboratory lesson #9
"Collections and arrays: use cases and the difference. Creation of collection instances. Workshop with lists and queues".
10 week.
Lecture #10
"Collections. Sets and Dictionaries. Some useful collection methods. Template 'Iterator'".
Laboratory lesson #10
"Practicum with plurals and dictionaries. Scenarios for using the 'Iterator' template".
11 week.
Lecture #11
"Streams in Java. Interaction between streams. Creation and management of flows".
Laboratory lesson #11
"Practical data processing using data flows".
12 week.
Lecture #12
"Debugging and error handling. Exception mechanism in Java. Checked vs. Unchecked Exceptions."
Laboratory lesson #12
"Exceptions in Java: the try-catch-finally procedure. "try-with-resources" mechanism.
13 week.
Lecture #13
"Static fields, methods and classes. Variable-Length Enumerations and Arguments".
Laboratory lesson #13
"Use cases of static fields, methods and classes. Enumerations and Constants: Difference and Examples of Use”.
14 week.
Lecture #14
"Input and output in Java. Java I/O, NIO and NIO.2. Serialization and deserialization".
Laboratory lesson #14
"Practicum on streams and working with files and directories. Serialization and Deserialization in Java".
15 week.
Lecture #15
"How Java works. JRE and JVM. Class loaders. Garbage collection. Reference Types in Java".
Laboratory lesson #15
"Practical workshop on the topics of previous laboratory work".
Modular control work 2.
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:
The evaluation of the results of studies in the discipline is carried out according to the accumulative system, which allows the applicant to receive a maximum of 100 points during the semester.
Module 1
Performance of laboratory work - 3 points for each laboratory work (24 points in total).
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).
Module 2
Performing of laboratory work - 4 points for each laboratory work (28 points in total).
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).
Links to recommended sources of information
1. Онлайн-курс JavaRush. URL: https://javarush.com/ua/ (дата звернення 01.08.2022).
2. W3Schools – Java OOP. URL: https://www.w3schools.com/java/java_oop.asp(дата звернення 01.08.2022).
3. Oracle – The Java Tutorials. URL: https://docs.oracle.com/javase/tutorial/ (дата звернення 01.08.2022).
4. JavaTPoint – Java Tutorial. URL: https://www.javatpoint.com/java-tutorial (дата звернення 01.08.2022).
5. GeeksForGeeks – Java Programming Language. URL: https://www.geeksforgeeks.org/java/ (дата звернення 01.08.2022).