On This Page:
About the Winter School:
Online joining instructions were emailed to you if you registered. If you have any urgent questions you can contact pairprogramming@ed.ac.uk – we’ll try to keep an eye on that email during the day.
On Wednesday 8th January 2025 we are organising a follow up to our very successful winter school Teaching Programming to Non-Programmers: Edinburgh Winter School 2024. Last year we were joined by 60 in person and 70 online participants, read on to find out what is coming in 2025.
Event Schedule, Videos & Slides
Slides and Photos:
Click here to see final version of all slides and photos. (including keynotes)
Videos:
alternative link to the video playlist (works better on smartphones)
Schedule:
đź“Ť Where: Room Usher Enlighten 1, Ground Floor, Usher Building (BioQuarter, Little France, University of Edinburgh) and online
09:30 – 10:00 | Arrival and refreshments – 30 mins |
10:00 – 10:10 (recording) | Welcome – 10 mins |
10:10 – 10:40 (recording) | Demo – 30 mins |
10:40 – 11:00 | Long Talks 1 – 20 mins |
Areti Manataki – Teaching Health Data Science at scale (recording) | How can you teach health data science to thousands of people around the world? People that come from different educational backgrounds, with different skillsets and different motivations? And at a time when health data science is so new that there are very few teaching materials available? In this talk, I will discuss our experience from designing and delivering the Data Science in Stratified Healthcare and Precision Medicine MOOC on Coursera back in 2018. I will discuss considerations, challenges and success stories. |
Rob Young – How do biomedical scientists feel about learning computer programming? (recording) | Students frequently report feeling nervous or anxious about interacting with computers. Here I present the results of our surveys into students’ attitudes towards learning computer programming. We find differences in both feelings and attitudes towards programming across our related Integrative Biomedical Sciences and Biomedical Informatics degree programmes. Students with more prior knowledge also feel more positivye. Going forward, we plan to further explore whether the experience of learning programming has an effect on how students feel. |
11:00 – 11:05 | *BREAK – 5 mins |
11:05 – 11:45 | Long Talks 2 – 40 mins |
Samantha Ahern – To customise, or not to customise? What is the trade-off for learning. (recording) | Is it always the right think to customise examples and data to our learners? Tales from the teaching room on when this has been successful, and when it has not. What can we learn about our pedagogic approaches? |
Maeve Murphy Quinlan – Coding by whom? Coding for whom? Coding with whose interests in mind? (recording) | Research computing competency and specifically programming skills are becoming ever more important in our data-driven world: Jacobs et al. (2016) argues that “we are rapidly approaching a point where innovations [in research] will primarily come from those who are able to translate an idea into an algorithm, and then into computer code.” With the proliferation of algorithmic approaches in every aspect in our lives (not just in research methods), it is ever more important to strive for justice and equity in programming education. According to the UK Government Digital Strategy policy paper, despite women making up almost half of the workforce, we are under-represented in the tech sector: just 17% of people who work in the tech sector and only 9.5% of students taking computer science A level courses are women (https://www.gov.uk/government/publications/uk-digital-strategy/2-digital-skills-and-inclusion-giving-everyone-access-to-the-digital-skills-they-need). This glaring disparity is also apparent for other minoritised groups, and is compounded for women of colour (Cook 2021). As D’Ignazio and Klein (2020) succinctly state in the opening of their book Data Feminism, “Data science by whom? Data science for whom? Data science with whose interests in mind?”, this inequity has far-reaching impacts on society. In the context of teaching coding, how do currently accepted practices reinforce and uphold unjust power structures? How can we use our varied institutional power to work towards justice in digital skills? Education can both be a mechanism for empowerment and transformation (D’Ignazio and Klein 2020) or can serve to compound existing inequities (Collis 1985). In this talk, I combine reviews of teaching practices (Campbell et al. 2024; Jacobs et al. 2016; Alammary 2019), studies and projects using alternative teaching methods (Fabic, Mitrovic, and Neshatian 2018; Williams 2022; Gan and Ouh 2022; “Code4000” 2022), and personal experience in learning, teaching, and developing educational materials. I hope to prompt an on-going discussion on equitable teaching practices in programming! |
Christopher Aldous Oldnall – Who takes the burden? Navigating the teaching of ML in a world full of open-source packages. (recording) | As machine learning (ML) and artificial intelligence (AI) permeate nearly every discipline, higher education has increasingly sought to equip students with the skills to engage with and develop ML systems. However, the growing emphasis on programming ML raises a critical question: Who bears the ethical and practical burdens of this education? In this talk, I will explore the roles of four key groups—developers, distributors, teachers, and students—who each play a part in the teaching and learning of machine learning programming. By examining how responsibility and ethical considerations may (or may not) be distributed across these groups, this talk will provoke reflection on overlooked challenges, such as equity, accessibility, and the unseen labour underpinning ML education. Rather than prescribing definitive answers to this complex question, the session aims to provide a framework of considerations and thought-provoking questions for educators, developers, and institutions to carry into their own practices. |
Jarek Bryk – Old man yells at cloud: what to do when students do not care? (recording) | Spoiler alert: I don’t know! In this talk, I will present our experience in teaching data analysis with R to year 2 students of biological and biomedical courses at the University of Huddersfield in the north of England. I will also discuss challenges in persuading students who have never programmed before and see little point of it in engaging with a completely new way of working and thinking (in R) early enough and consistently enough to succeed in self-driven open-ended data analysis project (and beyond). Finally, I will offer some hypotheses for the reasons why we face difficulties – and ask the audience for help. |
11:45 – 12:15 | Lightning talks 1 – 30 mins |
Kasia Banas – Let’s write a book! (recording) | Idea in a nutshell: edited book with short chapters and lots of contributors. Teamwork is dreamwork. |
Rebecca Colquhoun – “Oh, you just save everything in the same place?” The case for teaching directory structure in introductory programming classes (recording) | In supervising independent projects, it is clear that students often struggle to store code, data and results in an orderly manner. In this talk I will discuss how we have modelled this behaviour in an undergraduate introductory programming class and how and why directory structures present a challenge for students. |
Umberto Noe – Peer contribution rating to foster engagement in pair programming (recording) | When pair programming principles are extended to groups larger than two, some students may disengage, allowing others to dominate the contribution. In my course, which includes both a practice report and an assessed report, I introduced a peer rating system for the assessed report to enhance student engagement. This initiative led to more active participation, with previously silent students taking on greater responsibility and contributing more to group discussions and tasks. In this talk, I will share a couple of practical tips on implementing peer contribution ratings and discuss the lessons learnt from this approach. |
Kathryn Campbell – Identifying and Addressing Bioinformatics Training Needs in Different Settings (recording) | As the demand for bioinformatics expertise continues to grow, it is crucial to ensure these skills are widely accessible. In this talk, I will explore three key approaches I have taken to address this challenge: inspiring interest in bioinformatics from a young age, upskilling current researchers, and promoting inclusion in low- and middle-income countries (LMICs). Each of these contexts presents unique needs, challenges, and opportunities, which I will discuss while sharing insights from my experiences. |
Mar Doig – From 0 to Software Engineer in 12 weeks (recording) | What are the keys skills needed to be a good programmer? The challenges and successes of teaching a software bootcamp to students with non-technical backgrounds. |
James Bartlett – Rapidly teaching programming and reproducible research practices (recording) | Several UK psychology departments teach students research methods and statistics using R/RStudio. Common worries for departments considering a shift are not having the time and that students outside computer science degrees will not be able to develop programming skills. In our MSc conversion programme, students develop reproducible research practices and programming skills using R/RStudio in a 10-week course. In this short talk, I will outline our approach to rapidly teaching these skills and note what works well and not so well. Our take-home message is that psychology students can rapidly learn programming and reproducible research practices with the right support and resources. |
12:15 – 12:20 | *BREAK – 5 mins |
12:20 – 13:10 | 🌟 Keynote – Felienne Hermans – 50 mins |
Felienne Hermans – A case for feminism in programming language design (recording) | We’re huge fans of Felienne’s work at the intersection of computer science, education, and cognitive psychology. Felienne’s is a full professor of Computer Science Education at the Vrije Universiteit Amsterdam and the title of the talk will be clarified soon. See list of Felienne’s previous presentations: https://www.felienne.com/public-appearances. |
13:10 – 14:00 | *BREAK – LUNCH – 50 mins |
14:00 – 14:50 | 🌟 Keynote – Greg Wilson and Yanina Bellini Saibene – 50 mins |
Greg Wilson and Yanina Bellini Saibene – Teaching Tech Together: What’s Worked, What Hasn’t and What’s Next (recording) | You’ve heard us quote THE RULES from Teaching Tech Together last year a lot (“Be kind: all else is details” or “Never hesitate to sacrifice truth for clarity.“)(https://teachtogether.tech/en/index.html#the-rules). If you don’t know them yet, then you’re in for a wonderful discovery. Greg Wilson and Yanina Bellini Saibene will share with us their journey or creating this great resource, and translating it into different languages and contexts. ; Book: https://teachtogether.tech/ ; Greg Wilson: https://third-bit.com/ ; Yanina Bellini Saibene: https://yabellini.netlify.app/ https://www.linkedin.com/in/yabellini |
14:50 – 15:00 | *BREAK – 10 mins |
15:00- 15:55 | Lightning talks 2 – 55 mins |
David Cutting – The power of metaphor in programming education (recording) | Programming consists of complex and often abstract ideas which can be difficult to conceptualise, especially for begingers. One of the tools educators use to try and bridge this gap is metaphor, sometimes imperfect but often very effective to help generate a common language of understanding. In this talk I will identify some of the common metaphors we use, how these can help (or perhaps hinder) understanding and why they remain a key part of my toolkit to help introductory programming courses. |
John Wilson – Git is like track Changes (recording) | GIT’s just like ‘track changes’… promise! |
Lucia Michielin – Teaching with Served-based tools: Friends or foes (recording) | The proliferation of served-based tool to run notebooks such as Google Colab, Noteable, and Posit has changed the way we approach teaching coding to novices. In theory, using these platforms should fix dependencies and paths issues making the first interactions with coding environment less frustrating but the reality of using them in a classroom is much more nuanced. This short talk will explore pro and cons of adopting these tools in a classroom environment. |
Rhys Maredudd Davies – Cooking with code (recording) | How do we help students code with confidence? I believe culinary metaphors may help us. This talk will be about exploring ways of helping students go beyond coding recipies to being a coding chef! |
Ibrahim Lawan – Empowering Undergrad Biologists with R Practical Skills for Data-Driven Learning (recording) | This talk presents how R programming is integrated into undergraduate biology curricula to enhance students’ engagement, applied learning, and skill development. Key approaches include interactive practicals, collaborative projects, and personalised support to equip students for data-driven research careers. |
Katie Muth – From cut-up to algorithms: using poetry to introduce programming principles (recording) | This talk outlines how I’ve used cut-up poetry, combinatorics, and an interactive storywriting platform to introduce arts and humanities students with zero coding experience to basic programming principles. |
Derek Somerville – Mocking (recording) | A talk on an interative method to teach mocking. |
Hebatallah Shoukry – Developing a teaching approach for GA that combine practical and theoretical aspects. Can programming assist in understanding Mathematical based courses ? (recording) | This work explores the develop a teaching approach for the graduate apprentices that combines practical and theoretical aspects. One of the benefits of graduate apprenticeships, students choose graduate apprenticeship programme because of its integration to the work experience. However, developing this teaching approach for core courses is a challenge because these courses are heavily centred on theory and also due to the apprentice’s diversity in their experiences, skills, educational and professional background and also qualifications. One example of the core courses is mathematics. We want to investigate whether programming can assist in understanding mathematical based courses. This work exploits an analogy to the zone of proximal development. Software programming such as Matlab, Python was introduced in the course design to help the apprentices learn, understand, and visualise the mathematical concepts. Specifically, apprentices were asked to solve a mathematical problem analytically and numerically, reflect the similarities and differences between the two solutions and plot the functions for better understanding and visualisation. |
Agnes Cameron – Many Ways to do the Same Thing (recording) | In this talk, I will share my experiences of organising the Technical Skills Workshop programme at UAL’s Creative Computing Institute. These workshops are extra-curricular, and are inteded to teach ‘meta-skills’ that students can apply across their classes, and help students develop an agential relationship to technology. These include classic Carpentries-style workshops such as intros to git and github, and command line programming, but also include teardowns of consumer electronics, web scraping and bike repair. |
Itamar Kastner – Authentic assessment, alternative assessment and programming (recording) | Teaching involves finding the balance between the learner’s internal motivation on the one hand, and whatever external incentives we want to use or are required to use on the other hand. Much work within education and pedagogy has explored forms of alternative assessment, in which the goal is focus on growth and feedback, rather than grades. Another strand of work explores authentic assessment, where the assignment mirrors what learners actually do with the skill. I’ll invite discussion of how we evaluate progress in learning to code, what we can teach other disciplines, and what we might learn from them. |
15:55 – 16:05 | *BREAK – 10 mins |
16:05 – 16:45 (recording) | Q&A Panel – 40 mins |
16:45 – 17:00 (recording) | Closing remarks & Goodbye – 15 mins |
17:00 – 18:00 | *RECEPTION |
About the Winter School
Join us on January 8th, 2025, from 9:00 to 17:00, for an enriching experience at the University of Edinburgh. This is a hybrid event, offering both in-person and online options!
Discover innovative techniques for teaching programming in diverse fields such as psychology, medicine, mathematics, and engineering. Dive into industry-tested approaches like rubber-duck debugging and pair programming, exploring their effectiveness in educational settings. Delve into discussions on large class and online environment strategies, ensuring your programming courses are both efficient and inclusive.
Don’t miss the chance to share your insights! The event invites lightning and longer talks, allowing participants to showcase practices and experiences in a quick, dynamic format. Network with like-minded professionals, exchange knowledge, and gain strategic and technical insights that can revolutionize your teaching methods.
More info will be on the page, as we know it. For now we just want to share with you all that we had two exciting Keynotes:
Travel Instructions – Bike, Bus, Train, Car
The Winter School will take place in the Usher Building, which is part of the Edinburgh BioQuarter – the medical campus of the University, based in the South of the city. The address is 5 Little France Rd, Edinburgh EH16 4UX.
Here are links to a campus map and detailed instructions of how to get here https://usher.ed.ac.uk/contact/find-us
Here are a few additional notes:
- BY BIKE: If you get to the building by bike, there are plenty of bike racks to use. We also have showers and lockers, though you may need to ask the organisers for access instructions.
- BY BUS: A number of buses stop within the BioQuarter campus, and would only require a short walk to the building. Google Maps work very well in Edinburgh, or you can use the Lothian Buses app to get schedules and live bus times. A single ticket costs ÂŁ2, and you can pay by tapping your bank card.
- BY TRAIN: If you travel from further afar, you’ll need to get off at the Edinburgh Waverley train station, and take a bus from there. The bus journey is about 30 minutes.
- BY CAR: There is a free carpark by the Royal Infirmary Edinburgh hospital which is 4 mins walk away. Alternatively, you can park at the Sheriffhall Park and Ride, and take a bus from there. The bus journey is 15 minutes and a single ticket costs ÂŁ2.
- Note about accommodation, if you’re coming to Edinburgh for the Winter School. We recommend you book your accommodation in the city centre, and take the local bus to the Usher campus. (there are more fun things to do in the centre).
More about our Keynotes: Felienne Hermans; Greg Wilson & Yanina Bellini Saibene
More info will be on the page, as we know it. For now we just want to share with you all that we had two exciting keynotes:
🌟 Keynote 1: Felienne Hermans: A case for feminism in programming language design
We’re huge fans of Felienne’s work at the intersection of computer science, education, and cognitive psychology. Felienne’s is a full professor of Computer Science Education at the Vrije Universiteit Amsterdam and the title of the talk will be clarified soon. See list of Felienne’s previous presentations: https://www.felienne.com/public-appearances.

Felienne Hermans: https://www.felienne.com
🌟🌟 Keynotes 2: Greg Wilson and Yanina Bellini Saibene
Title: Teaching Tech Together: What’s Worked, What Hasn’t and What’s Next
You’ve heard us quote THE RULES from Teaching Tech Together last year a lot (“Be kind: all else is details” or “Never hesitate to sacrifice truth for clarity.“)(https://teachtogether.tech/en/index.html#the-rules). If you don’t know them yet, then you’re in for a wonderful discovery. Greg Wilson and Yanina Bellini Saibene will share with us their journey or creating this great resource, and translating it into different languages and contexts.


Book: https://teachtogether.tech/
Greg Wilson: https://third-bit.com/
Yanina Bellini Saibene: https://yabellini.netlify.app/ https://www.linkedin.com/in/yabellini
This event provides opportunities to:
- Discuss techniques for teaching programming to learners in various disciplines where coding is not a core learning skill (including psychology, medicine, mathematics, engineering, etc.)
- Learn about how industry approaches such as rubber-duck debugging, or pair programming can be used in teaching
- Discuss how programming can be taught effectively and efficiently in large classes and/or online environments
- Discuss how to teach programming inclusively
- Share practices and insights in a short talk
- Network, share knowledge, share strategic and technical insights
- and much more.
Who should attend this event?
- Educators involved in teaching programming in any university department
- Teaching assistants and tutors who run practical programming labs
- Instructors involved in teaching the Carpentries curriculum or similar programmes
- Research Software Engineers who run training events
NOTE: The event is meant primarily for people who are already actively teaching programming in some capacity. If you are not teaching now, but planning to do so in the future, please make this clear in the application, and you may be invited to join the waiting list if we are oversubscribed.
Questions, Suggestions and Enquiries
If you have any questions you can email pairprogramming@ed.ac.uk
Read more about last year’s Winter School:
Meanwhile here’s a few blogs about last year’s event feedback:
Feedback and Learnings: Winter School: Thoughts and graphs from the post-event feedback
Reflections: Reflections from the Edinburgh Winter School 2024
Photos, Slides and 2024 Event: Teaching Programming to Non-Programmers: Edinburgh Winter School 2024