Tools and Resources for Teaching Programming


What are personas?

To help us identify features needed by the tools and templates for teaching programming, we are developing personas. Personas are imaginary users for a project. By articulating their background, the problem they face, and how your project is going to help them, personas provide a way to determine the scope of your project, identify use cases, and essential features. The Carpentries use this approach when designing new lessons.

The personas

The lesson creators

  • Robin is a graduate student in neurosciences and has developed a Python library for image analysis. They want to create a tutorial for this library that they will teach to other students and postdocs at an international conference. Robin wants to make this tutorial and the notes for this workshop available online, but they don’t have time to create a template that looks good.

  • Stacey has been using R for 10+ years and teaches a semester-long course in statistics (using R) to graduate students in social sciences. She uses a flipped-classroom setting: the students go through the lecture notes and short-exercises (formative assessments) outside of class. They come to class to ask questions and work on problems that integrate the skills taught in the lessons.

The lesson contributors

  • Sam enjoyed attending Robin’s workshop. He is a postdoc who published a paper that used Robin’s Python library. He would like to contribute to Robin’s tutorial by adding some tips on how to get started based on his own experience with this library. He knows how to create a pull request on GitHub, and uses markdown regularly to type his ideas, and notes.

  • Rosa is a teaching assistant for Stacey’s class. One of her responsibilities is to propose updates on the lectures and exercises students go through on their own based on the questions they ask in class. She has been using R for just over a year. Stacey values her perspective to make the lecture notes more approachable to beginners. She’s just learned how to submit pull requests.

The lessons adapters and the teachers

  • Pinja found Robin’s tutorial online started using this library for her work. She will teach the tutorial to people in her lab, but wants to switch the dataset to something more relevant to their research. Robin has integrated extensive notes in the tutorial that will be helpful for Pinja to prepare. She wants to see the notes as she’s teaching but she thinks they will be too distracting for people attending the workshop to see.

  • Norma, who is starting as a new professor at the same university as Stacey, wants to use a flipped-classroom approach to the statistics class she will be teaching to biologists. Stacey encourages her to use her lesson as a starting point. Norma finds that adapting the lessons for her own needs saved her a lot of time, and allowed her to provide feedback on the pedagogical approach taken by Stacey.

The learners

  • Sofie is attending Robin’s workshop and has just started grad school. She has taken a few Python tutorials online. She wants to make sure that she will be able to reproduce the analyses demonstrated during the workshop on her own, and use the dataset provided in the workshop to learn other data manipulation and visualization skills, as she hasn’t generated her own data yet.

  • Ayoub has discovered the website for Stacey’s class as he was looking up how to perform an ANCOVA in R for his senior thesis in social sciences. He found that this website contained information that complemented the general statistics course he took the previous year. The learning objectives at the beginning of each lesson, the regular exercises to check that he is understanding each concept, and the summary of the keypoints covered in the lesson, are improving his understanding of the connections among the different concepts. The glossary also helps him to understand the technical found in the lesson.