Teachers
- Supervisor, lectures:
- Labs:
Goal
Students will gain knowledge about the principles of object-oriented programming. They will acquire programming skills in object-oriented design and implementation of software systems using object-oriented programming languages, design patterns, and generic programming.
Syllabus
- Object-oriented principles
- Abstraction, encapsulation, information hiding, subtyping, inheritance, polymorphism
- Liskov substitution principle (LSP)
- Generic programming
- Parametric type, generics and class templates
- Lambda expressions
- The concept of anonymous functions
- Functional approach to programming in imperative object-oriented languages
- Exceptions handling
- Design patterns and software frameworks
- Principles of reusability, extensibility and the Open-Closed Principle (OCP) in programming
- Fundamentals of object-oriented modeling
- UML language in the design of object-oriented systems
Assessment
- Continuous assessment (credit) - 40 points (min. 21)
- Attending lectures and lab sessions.
- Working out labs.
- Final assessment (exam) - 60 points (min. 31)
- Working out final lab.
- Test.
- Overall assessment - 100 points (min. 51)