Teaching coding across disciplines
Coding by whom? Coding for whom? Coding with whose interests in mind?
This is the research, background reading and resources related to the talk I’m giving at Teaching Programming across Disciplines at the University of Edinburgh Winter School 2025. Here’s the pdf of the presentation slides on GitHub.
Read the abstract for this talk below.
Coding by whom? Coding for whom? Coding with whose interests in mind?
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 (“2. Digital skills and inclusion - giving everyone access to the digital skills they need,” n.d.). 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!
Motivation and background
To read about why this topic is important to me, and to learn my personal outlook, please read my blog post.
Texts
Instead of giving my entire bibliography straight off the bat, I’m going to list a few different sources in the order I came to them. Some of these are websites, some are blogs, some are academic articles and textbooks. I will add to this as I continue to build the talk slides; please excuse any unintentional omissions. Also please feel free to continue the discussion/suggested sources here using the Hypothesis commenting platform.
Firstly, it was reading Data Feminism by D’Ignazio and Klein (2020) that solidified a lot of feelings I had that I wasn’t able to express succinctly, and hadn’t fully externalised. This reintroduced concepts to me that I had met before, but put them squarely in the context of data science (and I felt research computing too), specifically data science through the lens of intersectional feminism as coined by Professor Kimberlé W. Crenshaw (Crenshaw 1991), and then the matrix of domination described by Professor Patricia Hill Collins (Collins 2002). I also cannot recommend the book Design Justice by Costanza-Chock (2020) enough.
Texts on feminist teaching, feminist approaches to data science, coding etc.
Academia and experiences within it
- Ableism in academia: Theorising experiences of disabilities and chronic illnesses in higher education (Brown and Leigh 2020)
- “If you aren’t White, Asian or Indian, you aren’t an engineer”: racial microaggressions in STEM education (Lee et al. 2020)
- It Is Time to Address Ableism in Academia: A Systematic Review of the Experiences and Impact of Ableism among Faculty and Staff (Lindsay and Fuentes 2022)
- Addressing sexual misconduct in higher education, part one: prevention (“Addressing sexual misconduct in higher education, part one: prevention” 2024)
Live coding
- Ten quick tips for teaching with participatory live coding (Nederbragt et al. 2020)
- Comparing the experiences of live coding versus static code examples for students and instructors (Watkins, Miller, and Settle 2024)
- The effectiveness of live-coding to teach introductory programming (Rubin 2013)
- Live coding: A review of the literature (Selvaraj et al. 2021)
- An empirical evaluation of live coding in CS1 (Shah et al. 2023)
Cognitive apprenticeship and extreme apprenticeship
- Extreme apprenticeship method in teaching programming for beginners (Vihavainen, Paksula, and Luukkainen 2011)
- How measuring student performances allows for measuring blended extreme apprenticeship for learning Bash programming (Del Fatto, Dodero, and Gennari 2016)
Blended learning models
- Blended learning models for introductory programming courses: A systematic review (Alammary 2019)
Other papers on teaching
- Cracking the code: An evidence-based approach to teaching Python in an undergraduate earth science setting (Campbell et al. 2024)
- Experiences with efficient methodologies for teaching computer programming to geoscientists (Jacobs et al. 2016)
Other sources referenced in the talk
Other references include: Brown and Leigh (2020); Dupas et al. (2021); Llorens et al. (2021); Owen, De Bruin, and Wu (2024); Aragón, Pietri, and Powell (2023).
References
Citation
@online{murphy_quinlan2025,
author = {Murphy Quinlan, Maeve},
title = {Teaching Coding Across Disciplines},
date = {2025-01-05},
url = {https://murphyqm.github.io/docs/talks/code-for-whom},
langid = {en}
}