- Class 30
- Practice 15
- Independent work 105
Lecturers and associates
Introduction to object oriented design; Overview of UML; Structure diagrams.
Dynamic dispatch: definition of method-call; Subtyping; Object-oriented idioms for encapsulation; Data layout for objects and activation records.
Simplicity, regularity, orthogonality.
Introduction to software design patterns; Design patterns; Refactoring designs using design patterns.
Structural patterns; Eager vs. delayed evaluation.
Creational patterns; Static and dynamic linking.
(.), Design Patterns. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley Professional. 2009.,(.), Agile Software Development: Principles, Patterns, and Practices. Robert C. Martin. Prentice Hall. 2003,
Online education during epidemiological measures
- Study program duration
- 6 semesters (3 years)
- Semester duration
- 15 weeks of active teaching + 5 examination weeks
- Total number of ECTS points
- Bacc.ing.comp (Bachelor of Science in Computing)
Minimal learning outcomes
- Recognize symptoms of inadequate software design
- Discuss advantages of dynamic polymorphism, templates, and duck typing
- Explain the major principles of software design and recognize cases of their violation
- Evaluate the quality of multiple software designs based key design principles
- Recognize different design patterns in uncommented code
- Compare the adequateness of different design patterns in the context of a given design problem
- Apply design principles for conceiving high-quality software components