
Computing
Object Oriented Programming
- Class 60
- Practice 33
- Independent work 147
Course title
Object Oriented Programming
Lecture type
Obligatory
Course code
183371
Semester
2
ECTS
8
Lecturers and associates
- Full Professor PhD Mario Kušek
- Associate Professor PhD Boris Milašinović
- Associate Professor PhD Krešimir Pripužić
- Associate Professor PhD Mirko Randić
Course objectives
Simple numerical algorithms, such as computing the average of a list of numbers, finding the min, max, and mode in a list, approximating the square root of a number, or finding the greatest common divisor; Strings and string processing.
Records/structs (heterogeneous aggregates); Memory management and garbage collectors; Definition of classes: fields, methods, and constructors; Object-oriented idioms for encapsulation.
Subclasses, inheritance, and method overriding.
Abstract classes and interfaces, inheritance, polymorphism.
Dynamic dispatch: definition of method-call; Subtyping.
Linear data structures: arrays and lists; Abstract data types and their implementation (stacks, queues, priority queues, sets, maps).
Writing and reading of files and streams.
Midterm exam.
Nested and inner classes and functions; Closures.
Using collection classes, iterators, and other common library components.
Using collection classes, iterators, and other common library components; Classes, methods and functions as first-class objects.
Sequential and binary search algorithms; Classes, methods and functions as first-class objects.
Development of applications with graphical user interface.
Multi-threading and multi-threaded applications; Development of applications with graphical user interface.
Final exam.
Required reading
Herbert Schildt (2017.), Java: The Complete Reference, Tenth Edition, McGraw Hill Professional
Marko Čupić (.), Programiranje u Javi, FER, knjiga u nastajanju
Mario Kušek, Marko Topolnik (.), Uvod u programski jezik Java, FER, interna skripta
Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft (2018.), Java 8 and 9 in Action, Pearson Professional
Walter Savitch, Kenrick Mock (2015.), Absolute Java, Global Edition, Pearson Higher Ed
Online education during epidemiological measures
- Study program duration
- 6 semesters (3 years)
- Semester duration
- 15 weeks of active teaching + 5 examination weeks
- Total number of ECTS points
- 180
- Title
- Bacc.ing.comp (Bachelor of Science in Computing)
Academic calendar
Minimal learning outcomes
- Describe the principles of the object oriented programming paradigm
- Apply the concepts of abstraction, data encapsulation, inheritance and polymorphism to software design
- Use an object oriented programming language, and associated class libraries, to develop programs
- Design, develop, test, and debug programs using object oriented principles in conjuncture with an integrated development environment
- Design and develop programs with Graphical User Interfaces capabilities
- Apply multi-threading for creation of responsive user interfaces
- Describe and explain the factors that contribute to a good object oriented solution