Study

Computing

Object Oriented Programming

  • Class 60
  • Practice 33
  • Independent work 147
Total 240

Course title

Object Oriented Programming

Lecture type

Obligatory

Course code

183371

Semester

2

ECTS

8

Lecturers and associates

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

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
SHARE : Facebook Twitter