Skip to content

Latest commit

 

History

History
361 lines (239 loc) · 8.97 KB

2023-siam.md

File metadata and controls

361 lines (239 loc) · 8.97 KB

class: center, middle

CodeRefinery (SIAM CSE23)

What We Learned from Teaching Software Engineering Practices to Students and Researchers in Nordics and Beyond

Radovan Bast (UiT The Arctic University of Norway)

CodeRefinery logo   UiT RSE logo

CC-BY icon

FAIR principles and software

Researchers need to navigate many tools and concepts.

FAIR principles: findable, accessible, interoperable, reusable

.cite[(c) Scriberia for The Turing Way, CC-BY]


6 helpful steps for reproducible research: file organization, naming, documentation, version control, stabilizing computing environment, publishing cresearch outputs

.cite[Heidi Seibold, CC-BY 4.0, https://twitter.com/HeidiBaya/status/1579385587865649153]


Team and project: coderefinery.org

.left-column50[

  • Since 2016, now phase 3 until 2025
  • Over 2000 persons trained
  • Over 30 instructors/speakers
  • Over 100 exercise leads
  • Innovative teaching methods
  • Working in public
  • Lesson material
  • Video recordings
  • Manuals
  • Training network
  • Community

logos of CodeRefinery partners ]

.right-column50[ CodeRefinery bridging training by Carpentries and specialist training by computing centers ]


Course portfolio: it's all CC-BY

Typical format: 6 half-days, twice per year, online, free, live-streamed, recorded, archived asynchronous Q&A in collaborative document .left-column50[

  • Version control
  • Collaboration using Git
  • Testing
  • Documentation
  • Notebooks
  • Modular code development
  • Reproducible research
  • Software licensing
  • How to share and publish code
  • How to organize a code project
  • ... ]

.right-column50[ Next workshop March 21-23 and 28-30, 2023, register here: https://coderefinery.github.io/2023-03-21-workshop/

Lessons and recordings: https://coderefinery.org/lessons/ ]


Participating as a learner

.center[ Modes and benefits of participation in a CodeRefinery workshop for learners ]

.cite[(c) Samantha Wittke]


Workshop preparation

.center[ Pre- and post-workshop steps ]

.cite[(c) Samantha Wittke]


Pre-workshop survey: Who comes to our workshops?



Pre-workshop survey: Programming languages


Post-workshop survey: impact on usage of tools


Post-workshop survey: impact on code quality and collaboration

  • 284 answers


Participating as an organization

.center[ Modes of engaging with CodeRefinery as an organization ]

.cite[(c) Samantha Wittke]


What we have learned: .emph[Teaching together and learning together]

.left-column50[ Figher jet pilot

Captain and first officer ]

.right-column50[ Air traffic control tower ]

.cite[R. Darst "The Future of Teaching" (text, video)]


Streaming setup during Python for Scientific Computing

R. Darst's streaming setup during "Python for Scientific Computing".


Lesson design

  • Design lessons to .emph[learners' needs] not to what instructors find cool
  • Public-first

Tech

  • Ask and answer questions using collaborative document
  • Dedicate time to set up high-quality screen share
  • Screen share: .emph[portrait mode, not landscape]

Privacy

  • Make it impossible for audience to appear in voice or picture
  • We can publish recordings sooner
  • Recordings are most viewed on the same day

Community and coordination

  • .emph[Coordination effort] starts to outweigh lesson preparation and teaching
  • The importance of .emph[communicating value to organizations]
  • .emph[Outreach and marketing] takes time and work
  • Volunteer retention and building long lasting relationships takes effort

Follow-up

  • Need for mentor networks

Funding and reporting

  • Not everybody needs to be active during a course: make it easy for people to drop by for the parts they are interested in
  • Need to adapt how we measure participation

Where to start and how to progress? Code review

Example of a side-by-side code diff used during code review

.quote["but the code is not ready"]


.emph[Good enough practices] that are used better than perfect practices not applied

  • Too many commits better than too few commits
  • One branch better than no branches

Instead of "good for others": ".emph[good for your future you] and as side effect good for others"

  • Try a ReproHack: try to reproduce published work
  • Learn how to share work inside your group: "which versions have you used?"
  • Talk about licenses

Mentoring and support

  • Code review and feedback
  • Code reading sessions
  • Research software engineers
  • .emph[Office hours]

There are other projects in this space

Great overview by the INTERSECT project (INnovative Training Enabled by a Research Software Engineering Community of Trainers)

How can project collaborate across funding borders?

  • Cross-advertise
  • Link to material
  • We would like to encourage our project members to help out at other workshops and vice versa
  • Teach together

Future

.left-column70[

  • Towards being a non-profit or closer to a legal entity so that we can participate in funding applications

  • More collaboration with similar projects

  • Research groups can send their students and helpers to us instead of creating isolated material

  • Easier to participate as individual or organization, even short-term

  • Offer value for volunteers ]

.right-column30[ CodeRefinery logo ]


License and credit: CC-BY

Collaborators and inspiration

  • Richard Darst (design of the current workshop streaming format, developed many novel teaching techniques that we use)
  • Samantha Wittke (graphics explaining the concepts, developed workshop on-boarding scheme)
  • Matias Jääskeläinen (workshop coordination)
  • CodeRefinery team
  • Aalto RSE group
  • Nordic-RSE

Credits to external references

  • The Turing Way (FAIR image)
  • H. Seibold ("6 helpful steps for reproducible research" image)
  • Other images: Jet pilot: public domain. Captain and first officer: CC0. ATC tower: CC BY 2.0 (Peter R. Miller).

How you or your organization can participate

.emph[Next workshop] March 21-23 and 28-30, 2023, register here: https://coderefinery.github.io/2023-03-21-workshop/

  • Use our material and give feedback
  • Send one or more exercise teams
  • Join as observer to see how we teach and organize
  • Co-organize, co-create, co-teach with us

News, support, and social media