Object Oriented Programming
- 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
Forms of Teaching
Materials and presentations are on course web page.Exercises
demonstrations of program solutions and tools; solving exercisesIndependent assignments
Preparation for laboratory exercisesLaboratory
complex laboratory assignments which includes object oriented programming in Java
By decision of the Faculty Council, in the academic year 2019/2020. the midterm exams are cancelled and the points assigned to that component are transferred to the final exam, unless the teachers have reassigned the points and the grading components differently. See the news for each course for information on knowledge rating.
|Type||Threshold||Percent of Grade||Threshold||Percent of Grade|
|Laboratory Exercises||50 %||50 %||0 %||50 %|
|Mid Term Exam: Written||40 %||25 %||0 %|
|Final Exam: Written||40 %||25 %|
|Exam: Written||50 %||50 %|
Week by Week Schedule
- 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.
Electrical Engineering and Information Technology and Computing (study)(2. semester)
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 & 9 in Action, Pearson Professional
Walter Savitch, Kenrick Mock (2015.), Absolute Java, Global Edition, Pearson Higher Ed
L3 English Level
18 Laboratory exercises
0 Project laboratory
80 Very Good