Course: Object-oriented programming II for AI

» List of faculties » FPR » UAI
Course title Object-oriented programming II for AI
Course code UAI/520
Organizational form of instruction Lecture + Lesson
Level of course Bachelor
Year of study not specified
Frequency of the course In each academic year, in the summer semester.
Semester Summer
Number of ECTS credits 5
Language of instruction Czech
Status of course Compulsory
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
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.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester