October 2023 Python Day by Richel

  • Teaching day: 2023-10-17
  • Topic: Python
  • Written on 2023-10-18

This was the original course schedule:

Time Topic Teacher
9.00 Syllabus Birgitte
9.10 Python in general Birgitte
9.20 Load modules and run Birgitte
9.45 Break .
10:00 Packages Richel
10.45 Break .
11.00 Isolated environments Richel
11:45 Break or informal chat Richel
12.00 Lunch .
13.00 Batch Birgitte
13:20 GPU Birgitte
13.30 Kebnekaise: Jupyter Birgitte
. Rackham: Jupyter Richel
13.45 Break .
14.00 Parallel and multithreaded functions Pedro
. Bianca: Conda, interactive Richel
14.25 Conclusion & Q/A Birgitte
14.45 Evaluation Richel
15.00 END .

What went well:

  • [W1] Working as a team
  • [W2] All students (that could log in) completed their exercises within time
  • [W3] We tried out something new: a new format for the evaluation
  • [W4] Collecting feedback during the lessons
  • [W5] Using a shared document

What could be improved:

  • [I1] Lengths of the course parts
  • [I2] Remember to schedule a moment for all students to help them log in
  • [I3] Evaluation before Q&A
  • [I4] Install Python package: actually install something in the demo
  • [I5] Me being a good team member
  • [I6] Tell students clearly what to do: observe or type along or do an exercise
  • [I7] No questions in Zoom chat, use shared doc only

To discuss:

  • [D1] Allow students that have not logged in yet?
  • [D2] Shouldn’t this material be at the regular UPPMAX website?

[W1] Working as a team

I was very happy to be part of this team of Birgitte, Björn and Pedro, as its members seems quite diverse:

  • Birgitte: most knowledge of general things
  • Björn: the most all-around-nice-guy
  • Pedro: most knowledgeable in parallel computing

As Björn was the only one to have sysadmin rights, he was the one to get learners to login, which he did as much as he could.

Both Birgitte and Björn impressed me by answering complex questions during lectures!

Also, already after the lecture, me and Björn discussed how to improve the course next time. We especially discussed learners that could not log in. Björn stated there are good reasons to allow these learners to participate in the course, so we chose not to disallow these. Instead, we think it would be a good idea to have a moment scheduled for the learners before the course, for those that could not log in yet.

[W2] All students (that could log in) completed their exercises within time

Between 10:00-10:45, all students (that could log in) had completed their exercises at 10:15.

Between 11:00-11:45, all students (that could log in) had completed their exercises at 11:30. Due to a request by Birgitte, they had to create another venv, which they then all did within a couple of minutes too.

At 13:30-13:45, I’d have had 15 mins to do Jupyter notebook on Rackham, which was moved to 13:45-13:55. I felt 15 mins would have been enough, 10 mins was too short.

At 14:00-14:25, I and the Rackham learners did an exercises on interactive and conda. I think it was enough time. Note that creating a new conda environment takes 13 minutes, which I used to talk about Python things with the learners.

[W3] We tried out something new: a new format for the evaluation

I am happy that the team tried out a new format for the evaluation. Already at the end of the day, we discussed already the pros and cons of it and we’ll try out another format directly the day after!

[W4] Collecting feedback during the lessons

During the exercises, I went through the Zoom rooms to check that all students knew what to do, had questions and/or have remarks.

Also the shared document helped to collect feedback during the lesson.

[W5] Using a shared document

The shared document helped to collect questions and feedback during the lesson.

[I1] Lengths of the course parts

Topic Was scheduled Actual time used Suggested time
packages 45 mins 15 mins 30 mins
venv 45 mins 15 mins 30 mins
Jupyter 15 mins 15 mins 15 mins
conda 25 mins 25 mins 30 mins

I/we could not predict the lengths of the topics. For ‘packages’ and ‘venv’, the learners had much time left. It is unsure if that is due to (1) me having too simple exercises, (2) my way of teaching compared to the previous time (but it is unclear in which way it differed) (3) the learners were quicker too learn this time. Maybe next time, we’ll find out :-)

[I2] Remember to schedule a moment for all students to help them log in

There were 4 students out of 28 that could not log in yet. Although they behaved well, it took away time of other students. Björn stated there are good reasons to allow these learners to participate in the course. However, we forgot to schedule a moment for the learners to log in before the course.

[I3] Evaluation before Q&A

During the Q&A, which was before the evaluation, a third of the students left, as there was only 1 person talking at the same time.

Note that at the end of the day, we discussed this and we would change the order the day after.

[I4] Install Python package: actually install something in the demo

In the YouTube video, the install failed, due to package version conflicts. Make a new video where something is actually installed

[I5] Me being a good team member

I was doing so much teaching, that I only had a third of the time needed to prepare. I decided to prepare ruthlessly, ignoring email and other comms for some weeks. I knew this would be annoying to the team, yet I trusted the team would make the right decisions without me.

[I6] Tell students clearly what to do: observe or type along or do an exercise

There was this feedback given during the lesson: a student asked to another instructor: ‘Should we watch or type along?’. I agree with her that this always should be clear. I thanked her in a breakout room for this. I know I am imperfect on this too.

[I7] No questions in Zoom chat, use shared doc only

The course used two communication channels: the Zoom chat and the shared doc. This was needlessly confusing. Next time, only use the shared doc.

Feedback

Spoken evaluation 2023-10-19

  • Number of learners: 12

Feedback:

  • 2x The course is well organized!
  • Teachers do not distinguish enough between the different UPPMAX clusters on the first day, however, this was fixed on day 3 :-)
  • Day 3 was slightly better than Day 1 (both were good!), with the advice: on Day 1, take more for ThinLinc and interactive
  • Everything was quite good, especially SLURM, better than some other UPPMAX course. This was mostly due to, today, doing exercises step by step and having enough time to follow
  • ThinLinc was of correct length today, on Day 1 indeed a little bit too short
  • All the instructors should use the same R version, because else you need to load a different R module

Google Form evaluations

These are the results of the Google Forms evaluation. The responses are sorted alphabetically or in other ways that make sense.

Note that the anonymous evaluation overlaps quite well with the anonymous Google Form.

Overall, how would you rate today’s training event?

  • 5: 1x
  • 6: 3x
  • 7: 5x
  • 8: 1x
  • 9: 2x

Hmmm that is quite some variation there…

Today’s content and feedback to the lecturers (e.g. materials, exercises, structure): – What did you like best?

  • Cou[r]se materials are really nicely put together
  • Formatted ReadTheDocs
  • Good material
  • I liked how easy it was to ask questions, how friendly the lecturers / organizers were and that there was time for trying it yourself. The course material is really nice to read and helpful.

This is nice to hear!

  • I liked the ‘code along’ parts, when it worked and was an appropriate pace one could actually follow.

Unsure if this about mine or Birgittes parts :-|

  • Materials
  • That materials were extensive and provided (both in advance and during the day). The break-out session was good to let me ask the stupid questions to fellows that could help out or make me catch up.

The goal of the break-out sessions has been achieved :-)

  • The instructions and code given in the course material on GitHub
  • Very good material, but a bit chaotic

Unsure what this is about. I assume it is about my course material that was not embedded in the existing course material. I will fix this in the future.

  • materials
  • structure

Today’s content and feedback to the lecturers (e.g. materials, exercises, structure): – Where should we improve?

  • Create one single entrance point for all the material where links to the rest are to be found. I got lost with five or more different links, folders and the information overflow as it got started. I also missed the big picture of the super computer (no previous experience), how the different systems are related, the main difference of Rackham and hp2cn/kebnekaise and so on. I felt I have too little information to make informed choices. For example, it would be easier if everybody used the same server, and only one…

I agree I should harmonize the course material more.

  • For some tasks, there was too much time allocated, for example for the pip installs at the start. I would suggest checking in with students more frequently about if they are done or not, and then continuing. Or students could be instructed to join the main room again when they are done. This way, if someone takes longer, you could see who is left in the breakout rooms and check in with them.

I agree that we mistimed some sessions and we already plan to change that. The Zoom breakout room setup is intentional: we do checkup regularly with the students and we do not call the students back when all are done earlier. I feel this gives rest and clarity to the course.

  • It looked like everything was rushed up and it was not clear what we were supposed to do in the breakout rooms

After each exercise, the instructors always checked if the learners understood what to do. Most students usually knew what to do.

  • It will be good if you give a small introduction about different uppmax servers and what are the differences at the beginning of the course.

Maybe.

  • Lectures should be given more time (or the contents reduced). Unfortunately it was at times a hard to follow. Perhaps, also, make it a bit more clear what is expected from the exercises.

  • Maybe actually follow the material that is there. It’s hard for us to do exercises and go back and check later when one of the presenters just had his own material. Also, maybe make actual parallel sessions instead of going break rooms. Too much time in break rooms in general, and then other sections got rushed.

I agree, I should harmonize the materials.

  • Maybe have two streams, since most Python programmers already know about venv, etc.

We cannot. There are plans to teach other courses at two different levels, so that we split absolute beginners from the more advanced students.

  • Much more time spent on code along and instructions, this would improve the course a lot I think! I understand and respect that for you this is very clear and it flows really easily. But for us who is watching over zoom: scrolling up and down fast while screen sharing makes it impossible to follow; as it is over zoom the instructions for the exercise part needs to be much clearer in my view, also do this - BEFORE - entering breakout rooms; additional thought about exercises is what really are the exercises, the ones stated at the end of each lecture part or the text/instructions embedded in the ‘slides’ in the instruction pages; the ‘messages’ that can be sent out to the breakout rooms are hard to notice sometimes while working on exercise, perhaps paste this in chat and/or document so one can re-read; please specify clearly how long a task ‘should’ take approx. (is the whole time in breakout rooms dedicated to the assigned task, or is the time also there for break); specify in start of each part/‘lecture’ what the plan is maybe?; ‘slides’ can be a bit clearer I would say. Thank you, though! I understand that this is no easy feat to lecture and teach HPC over zoom. You didi a great job, but these are things I wish for at least.

I like this extensive feedback! To compensate for unclear instructions (to some) for a breakout-room exercise, we teachers always visited the break-out rooms directly after the exercise started. I remember being unclear with the time on purpose (or was that another course?) and I felt it was preferred to be vague over setting a time that would possible be changed, to add to the tranquility.

Comment from 2024-01-24: I am happy to see I took this feedback seriously, practiced this and forgot it was based on this! Now I always show the exercise before sending the learners to a breakout room :-)

  • The first should be how to run a simple script. “batch mode” should come before “virtual environments”. Also, avoid “pip” at the start, take that later since modules are enough for standard tasks

I like this suggestion!

  • a little bit too much information too fast during the zoom call. It’s not possible to fit in all your superb infos from the material in the course itself
  • materials

Length of teaching today was

  • Too short: 2x
  • Adequate: 9x
  • Too long: 1x

Depth of content was

  • Too superficial: 2x
  • Adequate: 10x

The pace of teaching was

  • Too slow: 3x
  • Adequate: 3x
  • Too fast: 6x

Teaching aids used (e.g. slides) were well prepared

  • Disagree: 1x
  • No strong feelings: 1x
  • Agree: 5x
  • Agree completely: 5x

Hands-on exercises and demonstrations were

  • Too few: 6x
  • Adequate: 6x

Hands-on exercises and demonstrations were well prepared

  • Disagree: 1x
  • No strong feelings: 2x
  • Agree: 8x
  • Agree completely: 1x

How would you rate the instructors overall teaching performances?

Grade|Python (Day 1)(today)|R (Day 3) 5 |1x |1x 6 |3x |2x 7 |3x |1x 8 |4x |3x 9 |1x |2x 10 |0x |2x Avg |7.1 |7.8

Quite a variation here too, like at Day 3. However, Day 3 rated the average instructor performance 10% higher.

Do you feel you achieved your desired learning outcome?

  • Yes: 8x
  • Not sure: 4x

Did today’s course meet your expectation?

  • Yes: 8x
  • Not sure: 4x

Do you have any additional comments?

  • Confusing with different setups for Umeå and Uppsala

I agree. This is unavoidable.

  • Drop the break out rooms and having people go there for exercises. Or just make a silent room for those that don’t want to discuss and rest can stay in main room. Wastes time.

Assuming this was about me putting people in breakout rooms: I will not do this. I think it is very important to put people in different smaller groups, so that people can discuss and a teacher can check.

  • NA
  • No
  • Overall nicely put together course
  • Thanks!
  • generally, the teaching speed was a bit high and then lots of waiting time in-between, but if you get lost, it’s hard to catch up later when all is presented in a serial way. If the entire chain is provided (and I as participant know the path we are following), I could potentially use the breaks to catch up later and jump back in.

My parts indeed needed less time. We’ll adept :-)

Post-course meeting of 2023-11-08

  • Suggest different lengths:
Topic Was scheduled Actual time used Suggested time
packages 45 mins 15 mins 30 mins
venv 45 mins 15 mins 30 mins
Jupyter 15 mins 15 mins 15 mins
conda 25 mins 25 mins 30 mins
  • Have a pre-course login session for those that need it
  • No Zoom chat, only use shared document
  • No anonymous evaluation needed if the Google Form is so good
  • Suggest to follow this students’ suggestion: ‘The first should be how to run a simple script. “batch mode” should come before “virtual environments”. Also, avoid “pip” at the start, take that later since modules are enough for standard tasks’
  • I will: schedule more time to prepare, due to that have the time to communicate with the team more and merge/harmonize course materials