Lecturer(s)
|
-
Barabáš Vít, Mgr. Bc.
-
Konopa Michal, Mgr.
-
Jelínek Jiří, Ing. CSc.
|
Course content
|
Course contents and syllabus: 1. OOP - basic principles and mechanisms. 2. Relationships between objects - inheritance, polymorphism, interface, abstract class, exceptions, class diagram. 3. Genericity and its support in Java - type as a parameter. 4. Collection - Java Collection Framework, iterators. 5. Threads, synchronization parallelism. 6. Functional programming, lambda functions. 7. GUI - event-driven program, javax.swing, JavaFX. 8. Networking - support of network communication in Java, client, server. 9. Quality criteria for the design of cohesion classes and coherence. 10. Teamwork - repositories, Git. The practical part of the course (tutorials) copies the content of lectures. During the tutorials, students will apply and practice theoretical knowledge from lectures. The use of teamwork and project teaching is also expected.
|
Learning activities and teaching methods
|
Monologic (reading, lecture, briefing), Demonstration, Projection, Practical training, Case studies
- Class attendance
- 56 hours per semester
- Preparation for exam
- 26 hours per semester
- Semestral paper
- 26 hours per semester
- Preparation for classes
- 22 hours per semester
|
Learning outcomes
|
The course is the second part of the introductory course in object-oriented programming; it focuses on expanding the knowledge from the first part of the course and on the practical application of the knowledge acquired in it. Students are acquainted with the basics of OOP and typical concepts associated with this technique (inheritance, polymorphism, etc.). The following themes are an introduction to the principles of genericity, collections, working with threads, data flows and creating a network application and the use of functional programming and GUI creation.
The graduate of the course will be able to design and implement advanced applications with a graphical interface using libraries of the topics covered. They will learn how to use classes and interfaces to work with threads, data streams and to create network applications. The graduate will also be able to use advanced programming techniques and some selected design patterns.
|
Prerequisites
|
A prerequisite for this course is successful completion of the course OOP I (UAI/510).
|
Assessment methods and criteria
|
Written examination, Analysis of student's work activities (technical works), Combined exam, Test, Seminar work, Interim evaluation
To complete the course, the student has to solve continuously assigned tasks in tutorials, pass two theoretical tests, implement a semester project and pass an oral exam.
|
Recommended literature
|
-
DHURI, Debasish Ray. Java 9 Data Structures and Algorithms. Packt Publishing Ltd, 2017. ISBN 9781785888076.
-
EVANS, Ben; FLANAGAN, David. Java in a Nutshell: A Desktop Quick Reference. O'Reilly Media, 2018. ISBN 9781492037224.
-
PECINOVSKÝ, Rudolf. Java 14 - Kompletní příručka jazyka. Grada, 2020. ISBN 978-80-271-1369-9.
-
VIRIUS, Miroslav. Java 2. díl - Knihovny. CVUT Praha, 2020. ISBN 978-80-01-06753-6.
|