
Introduction to object-oriented programming
- Class 30
- Practice 30
- Independent work 120
Course title
Introduction to object-oriented programming
Lecture type
Obligatory
Course code
22-01-506
Semester
2
ECTS
6
Lecturers and associates
Course overview
This module introduces students to basic object-oriented programming concepts, with emphasis more on usage and less on design.
This module is core to the Multimedia Computing programme of study. It builds on skills and knowledge gained in Programming module and provides the foundation for a few programming modules that follow in the following semesters. Skills learnt in this module will contribute significantly to students’ development as professionals in respecting fields.
Students will learn:
• About basic concepts of object-oriented programming (class, object, instantiation, inheritance, abstraction, etc.)
• How to design own hierarchy of classes with constructors and/or destructors.
• About abstract classes and methods.
• How to apply basic design patterns.
The module is taught in PHP programming language. The module assessment is based on solving a series of smaller practical tasks in the defined programming language and software development tool.
Literature
Essential reading:
1. Ivan Božajić: PHP programiranje. Zagreb : Algebra 2014.
2. Lerdorf, R., Tatroe, K. and MacIntyre, P. (2013) Programming PHP: Creating Dynamic Web Pages. Sebastopol: O'Reilly Media.
Minimal learning outcomes
- Apply concepts of object-oriented programming (class, object, instantiation, abstraction, encapsulation, polymorphism)
- Apply constructors and/or destructors in object-oriented programming
- Apply abstract classes and methods in object-oriented programming
- Apply inheritance and overrides in object-oriented programming
- Apply access control (public, private , protected) to attributes and methods in object-oriented programming
- Define common design patterns
Preferred learning outcomes
- Create a software solution that uses own hierarchy of user-defined data types
- Construct a solution to a complex problem using constructors and/or destructors
- Design own abstract classes and methods
- Design own classes with inheritance and overrides
- Construct a software solution with proper access controls to attributes and methods
- Apply given design pattern