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
|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