Object Oriented Programming
Data is displayed for the academic year: 2024./2025.
Laboratory exercises
Course Description
Basic principles of object-oriented programming and design.
Modelling. Reusability. Frameworks for program development. Java
programming language. Java as a machine independent platform. Programming tools. Command line tools. Coding conventions. Refactoring. Abstraction. Encapsulation. Classes and objects. Static members. Access modifiers. Constructors. Class relationships. Memory management and garbage collectors. Inheritance. Polymorphism. Abstract classes. Interfaces. Introduction to design patterns. Exceptions. Files and streams. Collections. General collection algorithms. Simple and complex comparators. Generics. Multithreading and multithreaded applications. Events. Development of applications with graphical user interface.
Simple and complex graphical components. Development of custom graphical
components. Program testing. Program performance analysis. Program
optimization.
Prerequisites
It is expected that students know how to use basic constructs in programming (branches, loops, variables, functions/procedures).
Study Programmes
University undergraduate
[FER3-EN] Computing - study
(2. semester)
[FER3-EN] Electrical Engineering and Information Technology - study
(2. semester)
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
Forms of Teaching
Lectures
Materials and presentations are on course web page.
Exercisesdemonstrations of program solutions and tools; solving exercises
Independent assignmentsPreparation for laboratory exercises
Laboratorycomplex laboratory assignments which includes object oriented programming in Java
Grading Method
Continuous Assessment | Exam | |||||
---|---|---|---|---|---|---|
Type | Threshold | Percent of Grade | Threshold | Percent of Grade | ||
Laboratory Exercises | 0 % | 10 % | 0 % | 0 % | ||
Quizzes | 0 % | 10 % | 0 % | 0 % | ||
Mid Term Exam: Written | 25 % | 40 % | 0 % | |||
Final Exam: Written | 25 % | 40 % | ||||
Exam: Written | 50 % | 100 % |
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
Literature
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
General
ID 209629
Summer semester
8 ECTS
L3 English Level
L1 e-Learning
60 Lectures
0 Seminar
15 Exercises
18 Laboratory exercises
0 Project laboratory
0 Physical education excercises
Grading System
90 Excellent
80 Very Good
65 Good
50 Sufficient