Course: Object-oriented programming II

» List of faculties » FBI » UAI
Course title Object-oriented programming II
Course code UAI/520
Organizational form of instruction Lecture + Practice
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)
  • Jelínek Jiří, Ing. CSc.
Course content
Lecture content: 1. Genericity and its support in programming languages - type as a parameter 2. Creating a graphical interface 1 - basic tools 3. Creating a graphical interface 2 - advanced frameworks 4. Multithreaded applications - parallelism and synchronization 5. Programming network applications - TCP 6. Programming network applications - UDP, HTML 7. Functional programming 8. Lambda expressions - reduction, parallelism 9. Applications with databases 10. Processing specific data formats - XML, JSON 11. Design patterns 12. Applications with AI 13. Team collaboration - repositories, Git Exercise content: 1. - 2. Genericity - use of standard components, creation of custom classes and methods 3. - 4. GUI creation - GUI design and implementation using various frameworks 5. - 6. Multithreaded applications - design, implementation, synchronization tools 7. - P8. Network applications - HTTP, TCP, UDP protocols, client and server design 9. Use of functional programming, use of lambda expressions to create efficient code 10. Working with databases - data input and output, object mapping 11. Processing specific text formats 12. Working with AI - designing a simple chat application 13. Teamwork - working with GIT, other options for supporting teamwork

Learning activities and teaching methods
Monologic (reading, lecture, briefing), Dialogic (discussion, interview, brainstorming), Demonstration, Practical training
  • 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 recommended prerequisite for this course is successful completion of the course OOP I (UAI/510).

Assessment methods and criteria
Analysis of student's work activities (technical works), Combined exam, Test, Interim evaluation

To complete the course, the student has to solve continuously assigned tasks in tutorials, pass two theoretical tests, pass practical task and pass an oral exam. During both regular and make-up credit terms, as well as at every exam session, all aids are prohibited except those permitted by the instructor.
Recommended literature
  • ALBAHARI, Joseph; MUTH, Neil. C# 13 in a Nutshell: The Definitive Reference.. O'Reilly Media, Inc., 2024.
  • JONES, Oliver. unctional Programming in C#: Classic Programming Techniques for Modern Projects. Manning Publications, 2022. ISBN 9781617299827.
  • PRICE, Mark J. C# 13 and .NET 9 ? Modern Cross-Platform Development Fundamentals. Packt Publishing Ltd, 2024.
  • SMYTH, Neil. C# 13 Programming Essentials: .NET 9 Edition. 1. vyd.. Neill Smyth, 2024. ISBN 9781965764015.
  • VIRUS, Miroslav. Programování v C# od základů k profesionálnímu použití. Cosmopolis, 2020. ISBN 891092777.


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