Skip to content

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?