Skip to content

Course reflection autumn 2023

Here I reflect on the course as a whole, starting with my own thoughts, than using the Retrospective.

I think the course is moving in the right direction: I have spent multiple hours with Jon and Lars to align our course ideas, which achieved exactly that goal.

I regret the lack of exercises in the earlier days, which caused me to do catch-up in mine. I have -and should!- taken the hit for the team, at the cost of deepening my own materials. I need to make a list of exercises the learners need to have done on the other days. Here goes:

  • Become a member of the GitHub team. Goals: (1) to make sure all learners have a GitHub account, (2) to make sure all learners can work on the shared repo
  • Do a basic git workflow from the command-line. Goal: to make sure all learners can actually push to the shared repo: there will be things that don't work smoothly
  • Do a git workflow with branches from the command-line. Goal: the make sure learners can work with branches and understand what 'a pull request from a topic branch to develop, by code review' means
  • Put a use-case diagram of the shared project on the repository. Goal: to allow the learners to make a class diagram
  • Put the class diagram of the shared project on the repository. Goal: this allows the learners to start programming the classes at the same time

The idea of gradually building up a shared repo seems The Dream to me: starting from informal development to formal.

The order of lectures and exercises can be improved. If I would be boss:

  • Pair programming first: this is the basis of everything; helps form a learning community (note I would like to have formal project roles!)
  • Basic git workflow and getting a use case diagram early
  • Do the social code review after having practiced with branches
  • Class design after algorithms are programmed to work on the data structures
  • Do design patterns after classes have been programmed

Or: as teachers, agree on exercises to be done, not which content is discussed.

Except for these points, spending some more time with the course material will improve the course.

Let's see what the learners thought ...

What went well?

  • Pair programming +3
  • Provided an opportunity for more social programming, including working in a live github repository where other people are working +1
  • Good level of social interaction +1
  • chatting during breaks +1
  • Time for questions and answers

It seems the social part of the course was appreciated strongly :-)

  • Lots of exercises +2

Same as last year: indeed, more exercises would be better :-)

  • Hand-on demos that can be used in the future +3
  • teachers are enthusiastic and seem to know what they're talking about
  • Well experienced teachers +1
  • providing references

It is nice to hear we teachers seems to be competent.

  • Frequent breaks +3

My scheduling seems to be appreciated :-)

  • Github workflow (CI) +2

Unexpected that this would be appreciated that much: it is a Programming Formalisms course, so this would seem to be on the more practical side of things.

  • cats +4
  • Windows XP background -1

Those cheeky students with their funky jokes :-)

What held us back?

  • Lars rushed through the last parts of his lectures
  • (Still) too many lectures -- Zoom fatigue
  • Presentations
  • Balance between lectures and exercises.
  • Too low tempo, especially in the lectures. +1

I feel this is not me: I feel that in my part the balance between lecturing and exercises is good. I will ignore.

  • Some exercises could be explained better. We spent a lot of time just discussing what we were supposed to do. +1
  • Unclear desciption and explanation of exercises +5

I am one of the offenders here and I agree.

  • Skipping over content throughout the course; it gets confusing

I think this is not me, as I have skipped nothing; I am most ruthless in cutting content. Will ignore.

  • might be helpful to do the git stuff all together

Agreed, I suggest that too :-)

  • Some parts of the pair programming seems not needed

Unsure what this is about ... too bad :-|

  • less reading documents after Wed.

Agreed, I was focusing on exercises and catching up. More time with course materials will improve this next time.

  • Different levels of preparation, everyone does not fulfill course prerequisites or preparations from last friday

I think working always in pairs from the first day will help everyone get to speed quickly.

  • too manny cats -6
  • too often told to not point fingers :finger_gun:

Haha :-)

What can we improve?

  • The coures was 'top-heavy'. The beginning (in my opinion) should be more interactive and with more utilities, like git, being taught. After the first day, then you can bring in more and more theory.

Agreed.

  • More focus on a project to try out all the things taught in the course. Design -> Tests -> Implementation -> Iterations

This is very close The Dream!

  • If exercises or examples are related with published papers

Unsure if this is on me: I do have links to the literature.

  • Personally, I felt that the course was held at too low level. I was expecting more details and technical discussion, especially in the algorithm and data structure sections and I was familiar with most of the course content. In the future I would suggest that you should make it more clear what level of material to expect. +1 (but in the opposite direction - found a lot was very technical)

I'd agree we could have gone deeper. I have the idea it can be done, for example, would Day 3 not be a catching-up day, I would have gone deeper. OTOH, even then time was short.

  • If there is an opportunity giving small group project and make presentation at the final day

I like this alternative idea, yet I do feel having a shared project helps feel social coding.

  • The course website should be keep maintaining
  • provide the correct/complete presentation PDFs on GitHub

I agree and think this is a detail: we do maintain the course website. The only thing not done by me is to update the PDFs of the slides. Yes, we should provide these. I chose not to update these, as my lessons have exercises that practice the theory.

  • No need to attempt completeness, one week is not enough -- material on top of what is discussed in documentation on GitHub -- more exercises, less lectures

Agreed!

  • I think when it is online, the course is limited in several certain ways. MAybe consider on-site class?

Impossible.

  • it would be nice to survey attendees beforehand for their favourite languages and experience with specific parts of the course - e.g some are gitmasters, some have never used git before and found it confusing af - and tailor classes appropriately

More pairs would help this. AFAIK, we already survey skills of the learners...?

  • Show more "good" github repos

Interesting, may do.

  • More examples of how these things are practiced in an academic setting

Yup, maybe a preregistered study would be better?

  • more on design of larger program projects

Would be nice, not in my hands.

  • if possible, work only on example project (no planets,no bacteria)

Unsure. Agreed to have few repos.

  • 🐱🐱🐱 more cats 🐱🐱🐱 +2
  • additional animals +3
  • Additional materials
  • more dogs 🐕

Haha!

My final thoughts: I am happy the learners and I are on the same page. I will help convey the ideas of this cohort to the next 👍