Skip to content

Meeting 2024-02-21

  • [Richel, 5 mins] Discuss the word 'theoretical':
    • the content of the course can be as practical or theoretical as Lars wants it to be. I have no problem with content being about theory.
    • teaching time consists out of lecturing and exercises. Here I misused the terms 'theoretical' for 'lecturing' and 'practical' for 'exercises'. Here we know that whatever the content is, there must be exercises, see among others [Bell, 2020] for an evidence-based 5 step model (1. Prior knowledge, 2. Present, 3. Challenge, 4. Feedback, 5. Repeat), that overlaps with [Hattie, 2008].
      • We agree :-)
  • [Richel, 5 mins] The course goals use 'understand' a lot. This is commonly mapped to the one-but-lowest level in Bloom's taxonomy (Wikipedia: https://en.wikipedia.org/wiki/Bloom%27s_taxonomy#Cognitive_domain_(knowledge-based), see 'Comprehension')(pretty picture: https://www.alfaandfriends.com/wp-content/uploads/2020/10/revised-blooms-taxonomy.jpg). Is this word really properly chosen? If not, could we use the right verbs? I feel we do aim at higher levels, but maybe I should change my teaching. In any case: how do we test for this level being achieved (spoiler: exercises)?
    • We tend to drift to the Apply level, yet also sometimes to Design. Some of us try to be more precise in writing down teaching goals.
    • We (intend to) teach at the Apply level and if there is more time, we go up higher
  • [VOTED] Vote for using MkDocs
  • [Björn, 20m] Discuss schedule below

    • Examples:
      • If two teacher on one day, we all agree to mix up the day itself
      • Merging Wed somehow: yes, will work!
      • shortening Thu if possible?: done!
      • shortening Fri if possible: done!
      • this is to fit with wrapping-up of project: done!
  • ToDos:

    • We are basically two teachers per day. Let's plan for 2-person meetings!
    • Björn
    • Lars
    • Richèl

Schedule

  • Remember: The initial aims for the course

    • give scientists with some experience in programming and scripting:
      • an understanding of the underlying principles of software development, design, and programming.
    • strengthen the understanding of:
      • more advanced programming concepts
      • ability to produce more reusable scripts through modular programming
      • enable a better understanding of how to evaluate a script or programs performance.
    • encourage the use of software development tools, like:
      • Unified Model Language
      • Git and Github
    • convince the benefits of sharing and social coding
  • So... practicals are very important but also the theory of whats and whys

Proposed schedule Björn modified from Richèl's, see below

Day Time Teacher Subject
Monday 09:00-12:00 Lars Parts from Björn's intro and Class design (in groups, on repo, using web interface only)
Monday 13:00-16:00 Björn Start project git basic on documents (no coding?) (in groups, on repo)
Tuesday 09:00-12:00 Lars Create project's class diagram (using git)
Tuesday 13:00-16:00 Richel pair programming + TDD
Wednesday 09:00-10:00 Björn understand git branches, git merge
Wednesday 10:15-11:00 Richel apply git branches
Wednesday 11:15-12:00 Björn understand git pull request with code review
Wednesday 13:00-14:00 Richel apply code review
Wednesday 14:15-15:00 Richel understand TDD (+data structures)
Wednesday 15:15-15:45 Richel apply TDD (+data structures)
Wednesday 15:45-16:00 Richel retrospect
Thursday 09:00-12:00 Richel Data structures (+ algorithms)
Thursday 13:00-16:00 R (+M) Algorithms + Optimisation
Friday 09:00-12:00 Lars Modular programming deep
Friday 13:00-16:00 Björn Deployment
  • Monday (Björn and Lars together)
    • overview
      • Lessons
        • Less "what is programming/scripting"
        • SDLCs
        • risk analys
        • modules intro
        • oo intro (students ready for Tue morning)
        • (paradigms/formalised devel)
        • tools (all presented) [name=Björn]
      • Activities
        • discussions
    • Start project with planning
      • Week Project with interspersed theory
        • initiate git/github [name=Björn]
        • UML, (pseudocode), design
        • object (early process)
        • initial documentation (how) [name=Björn]
  • Tuesday (Lars and Richèl together) (+ Björn?)

    • Class diagrams (45 theory)
    • reproducibility (part of everything) ([name=Lars] and all)
      • sharing etc
    • Pair programming
    • TDD (also overview of testing?)
      • Activities
        • coding
  • Wednesday (Richèl and Björn together)

    • git branches (merging, issues, pull requests)
      • activities
        • features?
    • More TDD (??) + code reviews (issues/pull requests)
    • These can be more or less merged?
    • Q: How much time is required here?
      • Can we move something from the last days here?
      • (Data structures)
  • Thursday (Richèl alone?)
    • (Data structures)
    • Algorithms
    • Optimisation
    • (Modular programming)
  • Friday (Lars and Richèl) (+ Björn?)
    • (Modular programming)
      • Packaging, virtualenv (do it!)
    • Deployment
      • Packaging, virtualenv (do it!)
    • (Wrap up with documentation and package)

Proposed schedule Richèl

Day Time Teacher Subject
Monday 09:00-12:00 Lars Class design (in groups, on repo, using web interface only)
Monday 13:00-16:00 Björn git basic (in groups, on repo)
Tueday 09:00-12:00 Lars Create project's class diagram (using git)
Tueday 13:00-16:00 Richel pair programming + TDD
Wednesday 09:00-12:00 Björn git branches
Wednesday 13:00-16:00 Richel TDD + Code reviews
Thursday 09:00-12:00 Richel Data structures
Thursday 13:00-16:00 Richel Algorithms
Friday 09:00-12:00 Lars Modular programming
Friday 13:00-16:00 R (M) Optimisation
  • Abbreviations: algos = algorithms, DP = Design patterns, DS = data structures, optimi = optimization, social = social coding, TDD = Test Driven Development
    • [name=Lars]:DP should mention refinment optimization of design through DP