The learning goals for Week 37 are:
Mon (at 8.15): The Strategy pattern derived. Wed: Refactoring and Integration Testing. Mandatory Reflections. Definitions of Design Patterns.
Literature:
Slides:
Notes for this weekplan:
Due to sickness, the monday lecture was cancelled and replaced by last year's recording: find the link in the 'associated screencast' of W3-1.
Wednesday I will do a 11 slides recap of the Strategy pattern (W3-1a), talk further on the refactoring and finally reflect upon mandatory.
The UML presentation (W3-3) is one of those boring 'then-there-is-X-and-Y-and-Z' lectures so it is replaced by a screencast. But do not skip it, because it is important and you will use UML a lot for documenting design in your mandatory project ! While rather boring to remember the difference between a dashed and a full line, or the shape of a diamond and which end it should be at, it is vital that you get it right. It makes a huge difference if you say "The ocean is in the fish" but wanted to say "The fish is in the ocean". I see students at the exam describing their designs using incorrect UML ("The PayStation inherits from Receipt" kind of stuff), and it is not good.
Several modern languages avoid implementation inheritance but keeps (aspects) of the essential 'interface' and 'object implements interface' constructs that are essential to the Strategy pattern. If you want to see one way of implementing PayStation's RateStrategy in Go and Rust, you may have a look at my own katas:
Additional exercises:
7.5 7.6 9.1 9.3Rehearse a TDD exam situation. Spend 20-25 minutes to read and prepare a 10 minute oral presentation of one of the TDD exercises in the example exam question set: demo-question-final-2023.pdf.
Next, do a 10 minute presentation at the whiteboard in front of your team.
The team provides constructive feedback on the presentation: Is your presentation clear and understandable, do you discuss the concepts and terms correctly, is you Java example code correct, etc. Swap and ensure all in the team gets a chance to rehearse the situation.
Legend: The typography bold, normal, (brackets), above indicate my perception of how important the exercises are from high to optional. However, solve the mandatory project first!