Design Patterns (5 cr)
Code: TX00EY29-3004
General information
Enrollment
27.11.2023 - 14.01.2024
Timing
15.01.2024 - 12.05.2024
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
School of ICT
Campus
Myllypurontie 1
Teaching languages
- Finnish
Seats
0 - 35
Degree programmes
- Information and Communication Technology
Teachers
- Simo Silander
Groups
-
TVT22-OOhjelmistotuotanto
Objective
The student is familiar with the most common object-oriented design models (so called Gamma's models) and their significance in the design of reusable software. In particular, the student learns the importance of interface thinking in the design of object-oriented software and acquires tools for implementing both structurally and functionally sustainable solutions.
Content
Gamma's creational, structural and behavioral patterns, paying particular attention to the following aspects:
- the relationship between application frameworks and design patterns
- programming against interfaces (or abstractions)
- inheritance and aggregation as re-use options
- delegation as an implementation mechanism for service provision
- the importance of creational patterns as an enhancer of code reusability
- abstract classes as enablers of shared code
- the difference between the traditional control flow and the inversion of control
- shared objects as a resource saving mechanism
- centralized vs. decentralized decision making
- tight vs. loose coupling of objects
- push and pull models as communication technologies in object communication
- deep copying vs. shallow copying of objects.
Evaluation scale
0-5
Assessment criteria, satisfactory (1)
Student knows best practices and design patterns.
Assessment criteria, good (3)
Student is able to design and implement programs using best practices and design patterns.
Assessment criteria, excellent (5)
Student is able to diversely design and implement programs using best practices and design patterns.
Assessment criteria, approved/failed
Student knows best practices and design patterns.
Prerequisites
Object-oriented programming