# Community teaching workshop, June 21, 2022 :::info - Time: 13:00-16:00 EEST - This page: https://hackmd.io/@coderefinery/community-teaching-2022-summer - Teaching material: https://coderefinery.github.io/community-teaching/ - Registration: https://indico.neic.no/event/228/ - Anyone may attend the first livestream portion (https://twitch.tv/coderefinery). Please register to get the Zoom link for the hands-on activities. - Live stream (first hour): https://twitch.tv/coderefinery - Hands-on/discussion (hour 2 and 3): https://uit.zoom.us/j/68521373378 - [Code of conduct](https://coderefinery.github.io/community-teaching/welcome/#code-of-conduct) ::: It's dangerous to go alone, take each other! Remote work has transformed interactive teaching from something that exists in one room to something that can be a community event. While online misses physical presence, by using the practices CodeRefinery has developed, we can keep it reasonably interactive and take advantage of a huge number of other benefits, such as more collaboration, more ways to learn (for different needs), and more large-scale interaction. This mini-workshop will try to discuss (and demonstrate) some of the best practices that CodeRefinery (https://coderefinery.org) has learned during remote teaching, and provides a hands-on way of getting some experience with them. At only three hours, this is more of a preview and discussion than an intensive training event (and we hope to have a longer event sometime in mid-late 2022). ## Schedule Starts at 12:00 CEST / 13:00 EEST / [other timezones](https://arewemeetingyet.com/Helsinki/2022-06-21/13:00/Community%20teaching%20workshop#eyJ1cmwiOiJodHRwczovL2hhY2ttZC5pby9AY29kZXJlZmluZXJ5L2NvbW11bml0eS10ZWFjaGluZy0yMDIyLXN1bW1lciJ9), 21 June 2022 This is a interactive, discussion-based workshop. We don't have a perfect program yet, but we do have many topics and exercises and activities to do. We will roughly cover the topics seen here: https://coderefinery.github.io/community-teaching/ - T+0:00: **Community teaching: the lesson**, taught by demo of livestream teaching (Livestream; anyone may attend, includes HackMD Q&A; recorded) - Introduction round and introducing the live stream (not recorded) - Intro to the workshop: Richard and Radovan (5 min) - Teaching tools: Richard and Radovan (15 min) - Workshop organization: Radovan and Johan (10 min) - Socio-technical factors and collaborative lesson development: Richard and Johan - Socio-technical factors: (5 min) - Collaborative lesson development: (10 min) - T+1:00: **Setting up a high-quality teaching:** screenshare for terminals, slides, websites, and collaborative documents (Zoom and HackMD; discussion and workshop; not recorded) [Radovan Bast, plus co-teachers] - Motivation for configuring a quality screenshare - Rate examples: https://coderefinery.github.io/manuals/instructor-tech-online/#screen-share-examples - Screenshare aspect: landscape or portrait - Managing screen "real estate" - Switching and scrolling - Teaching with tiling or non-tiling window managers: pros and cons - [Sharing history](https://coderefinery.github.io/manuals/instructor-tech-setup/) - Adjusting the shell prompt for teaching: host name and path - Use of terminal colors - Possibly we demonstrate a lesson segment from https://coderefinery.github.io/jupyter/ (Johan and ???) - Exercises: - try to set up a screenshare and get feedback - https://coderefinery.github.io/community-teaching/exercises/ - T+2:00: **Sharing lessons learned from online collaborative teaching (and/or further discussion from the first hour)** (Zoom and HackMD; discussion and demo; not recorded) [Diana Iusan and everyone else] - Questions for discussion session are below - T+3:00: End Breaks every xx:50-xx:00 ## Suggested questions for the discussion session 1. Warm-up question/intro: Which courses are you or your institution offering? Format and time length? 2. Why should an organization open up to teaching together with other organizations? Benefits and challenges. 3. Engaging the audience in online workshops - what works? is it a must? 4. Your preferred platform/tool for Q&A. 5. How do you present the course material? Free-flow, power-point style, other? 6. Co-instructing: are you using this approach in your workshops and how do you prepare for it? 7. Going big. Pros and cons. Or what makes a good size for an online workshop? 8. Big workshops = many helpers. How do you tackle workshop organization? 9. Livestreaming - is this something you're using for your workshops or would like to know how-to? 10. Credit assignments for online courses? Any good strategies? 11. Teaching vs mentoring: what do you do, which is needed? And how can we provide both given limited resources? 12. Is the amount of non-degree-program teaching you need to do increasing these days? ## Attendee icebreakers HackMD basics: use it as chat, write at bottom, go to edit mode at least once to make sure it updates live. Which courses are you or your institution offering? Format and time length? - Introductory courses to high-performance computing - Python courses - Intro to high performance computing, online, halfday - Summer school on high performance computings, onsite two weeks - Intro to HPC/scientific computing. Livestream format. - Numerical methods, parallel prog., AI (all academic, weekly lecture + hands-on). Need to restructure some of them for intensive training. Audience is physics/STEM students and scientists. - Providing courses to Humanities researchers to be able to implement AI solutions in their research. Currently the design is based on on-demand online courses. Tip: View Twitch in theater mode, you may then have the HackMD window to the side. ## Questions? 1. "Is video buffering?" message on screen (right lower corner, it has inactive "close" button) - is it your side? Thanks. - Looks good to me. - UPDATE: it goes away after (and only after) closing/ restarting the tab, so looks like Twitch UI bug on Firefox. ## Community teaching ### Welcome https://coderefinery.github.io/community-teaching/welcome/ ### About CodeRefinery https://coderefinery.github.io/community-teaching/about-coderefinery/ ### Teaching tools Assorted topics under here "Teaching tools": https://coderefinery.github.io/community-teaching/ Advantages of online teaching: - no need to travel +1 - more accessible to everyone - More instructors available if you ask +1 - easier to teach together +1 - anonymous questions - break-out rooms with no interactions with other "disturbing" groups. Disadvantages of online teaching: - no informal discussions in breaks - Complicated to ensure active participation/ engagement - People leave and it's hard to follow up - Difficult to keep track of the pace and reception of the lesson (social interaction and visual feedback from the learners) - miss live interaction - There are more distractions on the participant side 2. co-teaching is VERY confusing +1 - it's not like commenting sports games, sorry - it's scary for newcomers - it feels more like you're doing an interview, but interviewing eachother 3. Sometimes it feels like if the instructors are just chatting together, and not really teching. But this can be modulated having it in mind beforehand. - [name=rkdarst] yeah, we do that sometime. The idea is to make it more interesting, than one person info-dumping, which you can find anywhere 4. The problem I see with HackMD vs eg etherpad is that it takes **double** horizontal screen space. 5. Markup syntax may be an overhead for some people -> cognitive overload: split-screen for editing + Markdown... 6. "Great way to onboard new instructors - extensive training and preparation no longer needed." How is that a benefit? Quality has to come from somewhere. - [name=rkdarst] Two people allow on-the-job training and two people can better make quality than one alone. - In this case a caution must be used to not make learning experience a beta-testing for instructor training. I'd suggest to rephrase the statement in the future to clarify that. 7. Presentations in CodeRefinery contain good information, but is troublesome to see presented a bunch of text that presenter jumps back and forth in on a page. I would really appreciate presentation using MARP https://marp.app/ that shows MD converted to slides. - Yeah, this is a good point. Free-flowing or slide-based? For the current case, free flowing is a bit strange. One way to look at it is we optimize for later consumption, not presentation. 8. In person teams with local helpers worked really well last CodeRefinery Workshop 9. BTW, your images hide part of the URL +1 - aha. thanks! - better? yes :) 10. Can't agree more with the terminal tips. Yes! +1 11. Yeah, teaching is just not taken seriously -- by FILL_IN. --> some like to clap on their shoulders how much teaching is provided but not providing enough time to teachers to learn, to prepare, ... ### Workshop organization https://coderefinery.github.io/community-teaching/why-teach-together/ 12. More coordination, but also more people. It's a different kind of challenge and I [name=rkdarst] find that large livestream is easier, since I just coordinate and others teach. Teachers find it easier, since they "just teach". https://coderefinery.github.io/community-teaching/collaboration-models/ https://coderefinery.github.io/community-teaching/workshop-roles/ 13. In the spirit of "voice of the audience", wouldn't it be natural for the co-teacher to also be the HackMD "watcher"? - Yes. Usually one co-teacher would closely watch HackMD. But there is another role that does things like formatting: adding the question numbers, answering questions which don't need to be answered by voice (useful in a large enough workshop). - Oh, ok, this seems reasonable, yes. - if there are too many questions, HackMD watcher can answer most and help the co-teacher see which are unanswered and most important ### Social-technical considerations https://coderefinery.github.io/community-teaching/why-are-computers-hard/ https://coderefinery.github.io/community-teaching/diversity-and-inclusion/ ### Lesson design and development https://coderefinery.github.io/community-teaching/lessons-with-version-control/ 14. Regarding the template, last CRW (Code Refinery Workshop) I myself was struggling with getting rid somehow of the sidebar. Just zooming in does it, but it took me a while to discover this. Again, screen space is a problem when in person with laptops. - I agree, I wish there was a button. We should look at better themes rather than sphinx_rtd_theme. Anyone want to help? - When looking on how to do it I remember I found some template with a hide sidebar button, on the line like "RTD with hide sidebar" or so. - https://github.com/readthedocs/sphinx_rtd_theme/issues/987 https://coderefinery.github.io/community-teaching/backward-lesson-design/ 15. I agree with Richard on the max three points for the learners ### Outro https://coderefinery.github.io/community-teaching/future/ ## Break, then zoom - Break until xx:15 - Then we move to our learner Zoom for interactive parts: https://uit.zoom.us/j/68521373378 How was the speed in session 1: (you can vote by adding a "o") - too fast: ooo - too slow: - too confusing: oo - just right: oooooo Other tools you use to get feedback during the lesson: Comments and Q&A 16. maybe not mention that there is too much material to cover and just present what you find suitable. 17. hard sometimes to focus both on screen and what the instructor is talking about - but for some it is important to have the material visible as well instead of just listening - different strategies work for different people - good to accomodate for that ## Setting up a high-quality teaching Exercises for inspiration: https://coderefinery.github.io/community-teaching/exercises/ Screen share examples S1 - S10: https://coderefinery.github.io/manuals/instructor-tech-online/#screen-share-examples What do you like and what could be improved in examples S1 to S10? S1: - ... - Con: terminal font too large +2 - Con: FullHD, needs to be scaled down a lot (at least font is large?) - Con: Dock takes space from the screen - Pro: colour difference helps orient what window you are looking at - Pro: light colors +1 - Con: system bar unnecesary S2: - Pro: shell terminal history present +1 - Pro: two-line prompt easy to see, doesn't wrap - Con: lots of text color, some are hard to read - Con: very small text on my screen - Con: lots of wasted space in the middle - Con: web browser window menus unnecesary - Con: Unnecessary decorations on windows S3: - ... - Con: cramped layout, UI not ready for such space-starvation +1 - left hand side of interface unnecessary - Things like Jupyter/browsers should have a presentation mode (JupyterLab has one, right?) -> Yes, with RISE extension https://rise.readthedocs.io/en/stable/ S4: - Terminal color scheme not ideal (I think I have seen it as a default of some env.) - Con: Too wide shell prompt S5: - Pro: the little table of contents seems interesting - Con: too long shell prompt. - Con: command you type don't stand out - con: very small text. Hard to read especially on right hand side panel.+1 S8: - ... - some colors are very low contrast to the white - Con: instructor webcams are too intrusive S9: - ... - Con: terminal font too small :) may look different on a half-screen than here, but generally good choice shows right away. S10: - the history of commands feels in a strange place, it might also cover some content in the terminal? - pro good color choices (good contrast) - vertical sharing - good font size - Con: terminal background is dull/boring - Con: If instructors hide address bar, just remove it. Same for tabs - https://github.com/rkdarst/prompt-log is colors + prompt + window # Questions - continued 18. Good comment on preparing. I've had on-line, on-site (through projectors) and on-site (hands-on) lesson modes and everyone requires different font sizes, sometimes color schemes (projectors are flawed) and so on. 19. How often do you rehearse and how long before the actual course? - I try to the day before, but have done it a lot (often it takes a day to fix final problem anyway)! - I would say, prepare a few days in advance and talk to instructor. 20. Suggestion: when doing tests for the terminal setup **write down** the one you finally go for and have it at hand (exact color profiles, font size, number of rowsxcolumns, etc). Same goes for screen resolution etc. 21. +1 for solarized ligth -> solarized is designed with readibility in mind. 22. I like the light grey background 23. Have you tried monospace comic sans as a terminal font (question by a regular user. Would recommend.) - I don't think anyone has, would you recommend it? - I really like Hack font 24. I like it when all the instructors use the same screen sharing setup. Did you have an on-boarding with all the instructors? 25. Agree with no path in the prompt. It will end up taking too much space. 26. How do you set the path to the terminal title? - prompt-log (link above) tries to do this. 27. I prefer seeing diversity to understand the teachers' personal preferences better - Seeing (slightly) different terminals helps to learn (relatively) new users to separate UI and content within terminal, because for the uninitiated it is just a wall of text symbols. - +2 Diversity, depending on the learners level. For very basic workshops as less as possible, for more advanced learners it can be ok as they can make wider connections based on their underlying knowledge and they already have some mental model of the matter at stake. 29. About shell history I planned to show later shellshare https://shellshare.net/ "live terminal broadcast". Just check it, it's really trivial to use. 30. Nice to hear about screen sharing, but what about the screen behind the scene? That's important for instructors too, what do you have in your secret screen and how is it arranged? - e.g. if you are in portrait mode, do you keep the lesson skeleton next to it, to make sure you stay on track? Or what do you keep next to it? - instructor chat, additional browser windows with content I might need to present during the lesson; but I try to close everything that I know will not need to reduce cluttering as much as possible - In my secret/second screen, the lesson!! X-D - Teleprompter, you mean. :P. Yes! X-DD 31. I'd say looking in the wrong direction and that kind of camera problem is a lot less annoying than bad sound quality +2 **strongly agree**. When screen sharing you're not very visible anyway. And it's so HARD to know what you sound like. 32. What can we do to promote better setups after this course - should we? Dedicated presentation on it? Is there any way to teach this in general? ## Hour 3 33. In an ideal world, how would you like to split your time for working on a topic (i.e., becoming an expert or staying an expert) and for teaching about that topic? - 3:1 at first, then taper to 2:2 or even 1:3 if you know the subject backwards. ## Sharing lessons learned from online collaborative teaching We won't have time to discuss all of them. Please vote for your preferred ones. Also, feel free to add comments after each question. - Why should an organization open up to teaching together with other organizations? Benefits and challenges. +2 - Aalto story: we opened Python for SciComp, and got a large number of instructors - in the end it was less work for teaching, better quality (more minds preparing it), and most importantly more fun overall. - Challenge: who gets the credit when reporting. It can be challenging to communicate well where credit is due. - Benefit: watch other intructors techniques, tips, etc. from outside your community, which can follow similar practices. - Challenge: Situations might be different at the different sites of the collaborators, how to handle loss of specificity - benefits: learn from others and also get networking - challenges: some organizations might have the "not-invented-here" syndrome and seeing this open collaboration with others as "giving for free" their people / skills without enough credits - +1, big factor! - Co-instructing: are you using this approach in your workshops and how do you prepare for it? +2 - facilitates showing how to recover from mistakes - Credit assignments for online courses? Any good strategies? +3 - I liked last Code Refinery Workshop idea. It was a bit specific for the worskhop, but it could be adapted https://coderefinery.github.io/2022-03-22-workshop/#certificates-and-credits - At least it makes us think that attendance is not all that is required for the credits - From my experience in teaching at university, if I gave credits from exercises sessions, many students showed up only for collecting points and didn't focus that much on learning... but on the other side, they were required to complete the course to get a degree, for a free optional workshop, you maybe have less than this problem and it's fair to give recognition for the time and effort spent at the workshop - Giving credits for our courses I find problematic. I'm not a member of the (teaching) faculty. - registering as team or organization can make this easier as this can be delegated to the team representative/lead since they better know/"see" who is there and who is participating - We did exctly this for out local in-person teams. - a standardized quiz could be an approach - But also novice people may not pass the quiz, even though they may have learnt a lot! - making sure people don't cheat would be even harder than in-person - Livestreaming - is this something you're using for your workshops or would like to know how-to? +1 - Interesting idea, that's one of the things I actually noted to follow-up in the 1st hour. - more technical question, why did you lean towards twitch instead of youtube for live streaming? - Your preferred platform/tool for Q&A or interacting with the audience. +1 - hackmd - pigeonhole.at is pretty nice too, but I think that's not free (and doesn't have that many advantages over hackmd, except maybe slightly more intuitive user interface) - Good ol etherpad for novices at least. This worked ok for ~50 people. - I actually use the zoom chat a lot. But it's really bad :( (and worse for larger numbers of participants) - hackmd good for code examples and sharing error messages - google doc feels less anonymous (but it is possible to edit via private mode browser) - hackmd/md allows more focus on content and less thinking about formatting - I'd like to emphasize, I think hackmd clearly contributes to congnitive overload, and does not contribute to anything lesson related (even if the rendering for the non-initiated is nice :-). - this always pops out every now and then, so it must be true, but markdown is nearly plain text, so I am always a little surprised when I hear this) - Is nearly plain-text, yes. The problem is the *nearly* :-) - ok fair enough, I guess I have used markdown so much that I don't remember if/how much I was confused at the beginning - Not *much* confusing I guess, but everything contributes +1 - very interesting comment. I found that for me gdoc has too much cognitive overload and I found md more focused. It is very useful for me to see that this is different for others. - agree, for me any tool (like google docs) with a lot of graphical formatting is a lot more distracting. HackMD is easier on my brain. - I guess it depends on the background, for people with more CS background, plain typing tools like markdown can feel more intuitive and less mentally exhausting, but I guess for people who come from a different background GUIs and click, drag-drop workflows feel more intuitive. - About "too many questions" Iagree, we nee to carefully prepare learners: [Kickstart course parcticalities](https://scicomp.aalto.fi/training/kickstart/intro/#practicalities) - Engaging the audience in online workshops - what works? is it a must? +3 - parallel chat. During Q&A we look at it and see questions, and highlight and discuss important ones - I think it makes for a lot better learning, and for me as an instructor it's essential because otherwise I just get so bored I want to die. But I don't always succeed here. - asking questions/polls that learners can answer - showing learners that their input/feedback is taken into consideration (either live or for the next day) - How do you present the course material? Free-flow, power-point style, other? +1 - Slides for prepared-in-advance content, mixed with free-flow demos. The former help students to remember lesson structure. (Of course, I am porting content from live lectures...) Exercises have their own session in academic courses. +2 - Same here: slides for the big picture interleaved with type-along parts. - for any teaching of coding I think type along works a lot better, at least for what I do. +1 - Going big. Pros and cons. Or what makes a good size for an online workshop? - You need a certain number of participants to make a tool like HackMD work - too few people and it's just too slow. It's then easier to have people just talk out load, but this can also make for a bit low energy in the room. On the other hand, in a larger group it's easy to miss that some people are not keeping up. - 20 to 100 participants - worked with small audiences (~10) so far, but I think larger would be easier (more people that can interact) - $<$20 people, then just a regular zoom call has been working quite well (but far from optimal) - size depends on topic of workshop, audience - Big workshops = many helpers. How do you tackle workshop organization? - I would say big workshops $\stackrel{?}{=}$ many helpers. The challenge is to find enough helpers. (And if you find enough, also coordinate all of those has its own organizational challenge of course) - I somehow disagree (to when in zoom was mentioned that big events feel more engaging), for me e.g. big conferences / online events feel much drier, because there are a lot of people and hence less room for small-group interactions. Opposed to that, I find small events (e.g. this one) more cozy and better for connecting with people. Well, you can still have great community feeling in big events, but it doesn't come for free and it takes way more effort to achieve the same level of "connection" you could get in a small group. - Teaching vs mentoring: what do you do, which is needed? And how can we provide both given limited resources? - More teaching for novices (they learn tools along with content), more mentoring for advanced users (where "how?" can be skipped in favor of "what?" and "why?"). +2 - mentoring can be beneficial for novices too, but I agree it's less critical for them than for advanced users and at some point you need to cope with limited resources - There seems to be a lot of emphasis of hands-on. I'm wondering if we could emphasize demos more, if people can do the activities later. - I'd say that it depends on the kind of course. If is an online workshop hands-on "forces" them to type through the lesson. Delegating this to later exercices...well, it happens to me, many times they end up as just good intentions, never fullfilled. For eg more traditional university lessons are different as you can treat them as assignments. - Agree on activities not done during a workshop tend to not get done. So just demo is maybe interesting but probably not as useful. - Is the amount of non-degree-program teaching you need to do increasing these days? - I would see yes, and this has both opportunities and threats. The obvious good side is that it makes what you need and valuable knowledge / skills available (for free). The tricky part is that as teaching becomes decentralized, there will be both good and "not-that-good" resources and might be not trivial to distinguish between those, of course institutions will lock on the 1-2 "not-that-good" to oppose and slow down this more open form of teaching. ## Feedback This workshop had (multi-choice): - too much material o - too little material - just right ooo - material wasn't on-topic: voted just right but honestly, there's still a lot to discuss. Thanks for letting us have this discussion! +1 One good thing about today: - The general discussion was very good and I found it all in all productive - very interesting discussions and comments - Interesting discussions! Much food for thought - very interesting discussion. learnt alot - The experiences you've shared in what has worked or not. Especially the idea about the vertical screenshare and setting up the look of the Shell One thing to improve for next time: - Richard's sound :-) mmm not sure, I think is the audio/mic setup - All things flows better second or third (or fourth) time. - This is mostly a preparation issue, but the delivery could be tighter. Even with caveats about multiple instructors, spontaneous communication etc., asking "would anyone else like to comment on that?" 15 times in an hour probably just means that there were too many topics planned during that hour. +1 - It was a lot of different inputs, at times you were sharing 2--3 windows, with a lot of content (especially) text on each, there were 2 people talking and then I had hackMD up on the other side of the screen where people were writing in a few different places. I felt that I didn't really listen at all and I'm very tired mentally now. If it weren't for the breaks I wouldn't have managed that well even. +2 Other comments: - Can we have a one-page overview of the courses taught together? So you know where to join, or what pieces are missing? - Learning path for someone starting out in HPC - https://hands-on.coderefinery.org/ - Aalto project, haven't had time to make it larger yet. - Is there any date for this? - It's always available and can be done async. - Helping people get started with community teaching - teaching hackathon for developing material / setup etc. sounds a very funny idea (like coding day, but with focus on teaching). - reminds me of a coding day where I was once. People showed up with buggy code or application ideas and were matched with experienced users to make the code better, get into specific aspects of the language etc. Something similar, bring your teaching material, discuss on how to make it better + small simulation to get feedback on screen sharing setup, etc. Well, I guess this would be *a lot* of work to plan - would love to come to a teaching hackaton - About hackmd, related to previous comment, in a live coding situation you can not keep up with everything. In our (Carpentry) workshops we tend to use it (well, etherpad) just for someone taking notes in case people get lost, and also interacting with more advanced lerners who are "bored" and ask more advanced lessons. Keeping an eye on the lesson, the instructor terminal, and your terminal, is definitely tough. - How do we get a certificate? X-DD - ha! - ... Many thanks! This was really interesting!!! Thank you! Very interesting! --- Please always write above this line, at the end of the document.