Undergraduate study programme

Back   Schedule   Hrvatski

Object-oriented software development principles PR402-18

ECTS 5.5 | P 30 | A 15 | L 30 | K 0 | ISVU 174568 190689 | Academic year: 2019./2020.

Course groups

Prikaži sve grupe na predmetu

Course lecturers

ZORIĆ BRUNO, Associate


The aim of this course is to enable students to employ advanced, language independent, object-oriented programming concepts in software development. The employed principles enable code reuse and modification, easier testing and software maintenance. Primarily, this concerns layered modelling, the S.O.L.I.D. principles and design patterns that enable the fulfilment of the former. The utilised language is C# and knowledge acquired during this course extends on the knowledge acquired on the courses Programming I and II and Object-oriented programming.

Conditions for enrollment

Requirements met for enrolling in the study programme

Course description

Introduction. Fundamentals of OOP. The principles of object-oriented software design (S.O.L.I.D.). Layered modelling. Clean code. Naming, commenting, formatting. Code smells. Heuristics. Creational patterns (factory method, abstract factory, builder, prototype, singleton). Structural patterns (adapter, bridge, composite, decorator, façade, proxy, flyweight). Behavioural patterns (chain of responsibility, command, iterator, mediator, memento, observer, strategy, visitor). Refactoring tools and techniques. Object relational mapping. ORM tools. LINQ.

Student requirements

Defined by the Student evaluation criteria of the Faculty of Electrical Engineering, Computer Science and Information Technology Osijek and paragraph 1.9

Monitoring of students

Defined by the Student evaluation criteria of the Faculty of Electrical Engineering, Computer Science and Information Technology Osijek and paragraph 1.9

Obligatory literature

1. 1 E. Freeman et al. Head First Design Patterns O Reilly Media, 2004.

2. 2 E. Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley Professional, 1998.

3. 3 R. C. Martin Clean Code: A Handbook of Agile Software Craftsmanship Prentice Hall, 2008.

Pretraži literaturu na:

Recommended additional literature

1. 1 M. Fowler Refactoring Addison-Wesley, 2001.

2. 2 R. C. Martin Agile Software Development: Principles, Patterns, and Practices Prentice Hall, 2002.

Course assessment

Conducting university questionnaires on teachers (student-teacher relationship, transparency of assessment criteria, motivation for teaching, teaching clarity, etc.). Conducting Faculty surveys on courses (upon passing the exam, student self-assessment of the adopted learning outcomes and student workload in relation to the number of ECTS credits allocated to activities and courses as a whole).

Overview of course assesment

Learning outcomes
Upon successful completion of the course, students will be able to:

1. describe the basic principles important in object-oriented software development

2. describe and use the S.O.L.I.D. principles when developing software

3. describe and outline various often employed design patterns and explain the problems they solve

4. explain more complex problems solved by a specific design pattern

5. identify the design pattern applied in the given code and the one appropriate for a specific problem

6. apply the design patterns while developing software

7. connect different design patterns and utilise them when constructing complex software solutions

Aktivnosti studenta: Vidi tablicu aktivnosti