Lesson plan Autumn 2024¶
- Author: Richel
- Date: 2024-10-21
On Thursday I will be discussing:
- (after Lars, on object-oriented design) class design
- has-a relation
- expressive data type
- (after Lars, on modular programming) Implement the project as a package
To do:
- [x] Create issues to fix the learners' project
- [x] Create issues for learners that have broken the main branch
- This was apparently fixed by a learner. Yay!
- [ ] Determine order for tomorrow, no rush to work on the learners' project
- [ ] Tomorrow 8:00: Check Lars' work
I like it when a plan comes together.
A dude from the A team, with a cigar
That is how I felt during the lesson yesterday. Now I have only a couple of hours to update my material to the schedule. Let's plan things.
It is great to follow the pace of the learners, but now I am behind in schedule:
- [x] Look at Lars' work
I look at Lars' work and fixed the layout. Then there was a too complex merge conflict. I reverted my work on a document being worked on :-) . However, the exercise is too big of a leap: from never having created a class, to write a Factory Design Pattern: that is a big leap.
I will help him out. Ah, I see in his most recent commit he is working on that. Great!
- [x] Look at schedule, prioritize
I've made the schedule to this:
Thursday |09:00-10:00|Lars |[Object-oriented design](design_develop/OO_development.md)
Thursday |10:15-11:00|Richel |[Function design](function_design/README.md)
Thursday |11:15-12:00|Richel |[Class design](data_structures/class_design.md), [has-a relation](data_structures/has_a_relation.md), [expressive data type](data_structures/expressive_data_type.md)
Thursday |13:00-14:00|Lars |[Modular programming](./modularity/modular.md)
Thursday |14:15-15:00|Richel |[continuous integration](continuous_integration/README.md)
Thursday |15:15-16:00|Richel |[Implement the project as a package](package/README.md)
Thursday |15:40-16:00|Lars |Confidence and retrospect
Check status of the lesson and rearrange?
Yes, rearrange to:
- Function design: 8/10
- expressive data type
- has-a relation
- Class design
- continuous integration
- Implement the project as a package
Changed schedule to:
Thursday |09:00-10:00|Lars |[Object-oriented design](design_develop/OO_development.md)
Thursday |10:15-11:00|Richel |[Function design](function_design/README.md)
Thursday |11:15-12:00|Richel |[Expressive data type](data_structures/expressive_data_type.md), [has-a relation](data_structures/has_a_relation.md)
Thursday |13:00-14:00|Lars |[Modular programming](./modularity/modular.md)
Thursday |14:15-15:00|Richel |[Class design](data_structures/class_design.md),
Thursday |15:15-16:00|Richel |[Continuous integration](continuous_integration/README.md)
Thursday |15:40-16:00|Lars |Confidence and retrospect
|||||
Friday |09:00-10:00|Richel |[Implement the project as a package](package/README.md), [Optimisation misconceptions](optimisation/misconceptions.md), [Big O](optimisation/big_o.md), [runtime speed profiles](optimisation/runtime_speed_profiles.md)
Friday |10:15-11:00|Richel |[Optimisation misconceptions](optimisation/misconceptions.md), [Big O](optimisation/big_o.md), [runtime speed profiles](optimisation/runtime_speed_profiles.md)
Friday |11:00-13:30|Björn |[Deployment](deployment/deploy.md)
Friday |13:30-15:00|Björn |[Documentation](deployment/documentation.md)
Friday |15:15-15:40|Richel |Wrap-up
Friday |15:40-16:00|Richel |Confidence and retrospect
So, to check today:
- Function design: 8/10
- expressive data type 5/10
- has-a relation 5/10
- (after lunch) Class design 5/10
- Continuous integration 8/10
So, here is a schedule to fix this
- 6:15 expressive data type 7/10
- 7:15 has-a relation 7/10
- 7:45 (after lunch) Class design 7/10
- 8:30 coffee with Lars
I need to suggest a different schedule to Lars, which consists of switching the order of things:
4. Thursday |09:00-10:00|Lars |[Object-oriented design](design_develop/OO_development.md)
1. Thursday |10:15-11:00|Richel |[Function design](function_design/README.md)
2. Thursday |11:15-12:00|Richel |[Expressive data type](data_structures/expressive_data_type.md),
3. Thursday |11:15-12:00|Richel |[has-a relation](data_structures/has_a_relation.md)
LUNCH
6. Thursday |13:00-14:00|Lars |[Modular programming](./modularity/modular.md)
5. Thursday |14:15-15:00|Richel |[Class design](data_structures/class_design.md),
7. Thursday |15:15-16:00|Richel |[Continuous integration](continuous_integration/README.md)
I checked Lars' material, I think the current order will work :-)
-
[x] Evaluation question
-
I understand why function design is important
- I can give some features of good function design
- I can give a function a proper name
- I can criticise functions
- I can write a class to express what the data it contains
- I understand difference between composition and aggregation
- I understand the type of relation 'composition' is
- I understand the type of relation 'inheritance' is
- I can write a class that is composed of another class
- I understand what an invariant is
- I can write a class that protects an invariant
Some questions for Friday evaluation:
- git from command line or git from VS Code?
- name a maximal of 3 topics you want us to discuss to be removed
- name a maximal of 3 topics you want us to discuss to put more time in
- more theory or more exercises?
- more theory or more work on learners' project?