Teaching Programming Across Disciplines

Teaching Programming Across Disciplines

a collection of articles on teaching coding kindly, openly, and together

Co-written by 75 authors.

Edited by Brittany Blankinship, Pawel Orzechowski, Charlotte Desvages, Kasia Banas, Umberto Noè, Chris Oldnall, Serveh Sharifi Far, Clare Llewellyn-MacRae, Beatrice Alex, Ozan Evkaya and Franziska McManus.

Project coordinated by Franziska McManus.

Buy a Printed Version of this Book

Watch Videos from our Book Launch Event

Source code for this book on Github

Table of Contents:

Copyright

Dedication

Who Are We and How Did We Get Here?

Welcome to the Book

Part I - Theories and Applications of Teaching Programming

Introduction to Part I

Theme — Pair Programming: What? How? Why?

Where Do I Even Start With Pair Programming in My Classroom? A Conversation With Seasoned Practitioners

Structured Group Work With Assigned Asymmetrical Roles and Switching: Lessons From Pair Programming Across Disciplines

Pair Programming in Practice: A PhD Tutor’s Reflections

Theme - Building Healthy Programming Habits

Brain Book Buddy Boss Break: A Practical Debugging Framework for Learners

A Guide on Empowering Students to Develop a Coding Mindset

It Depends: How to Develop Judgement in Programming

Theme - Programming in a World of Generative AI

Hype and The Need for Responsible Compute

An Optimistic Outlook on Teaching, Learning and Assessment for Coding With the Emergence of Generative AI

AI, Voice, and Style in Programming Education

How Teaching Programming Across Disciplines Can Instil Systems Thinking

Theme - Teaching Programming Courses: What Worked for Us

Computer Says No: Reducing Technical Barriers to Help Novice Programmers

Practices To Foster Inclusion and Accessibility in Programming Teaching

Overcoming Coding Anxiety: Lowering the Stakes and Making It Fun

3 Stars and 1 Wish: Small and Frequent Student Reflections Promote a Sense of Wonder and a Community of Vulnerability

Sequential vs. Simultaneous: Approaches to Learning Programming and Statistics

Part II - Teaching Programming in Context: Design and Practice

Introduction to Part II

Theme - Drawing on Group Dynamics for Programming Education

Peer Programming in Action: Pair Programming in Larger Groups

Leveraging the Heterogeneity: Teaching Computing Skills to a Multidisciplinary Cohort With a Variable Skill Level

Learning Together Across Modes: Online and On-Site Pair Programming in a Fusion Course

Theme - Teaching Programming to Novices: Python and Beyond

A Practical Guide to Teaching Python as a Computational Tool in an Introductory Data Analysis Course

Notebooks for Novices? Pros and Cons of Jupyter

Bridging Languages: Teaching C to Python Novices

Theme - Thinking Outside the Box: Designing Engaging Learning Experiences

Dungeon Crawlers and Anarchists: Co-Designing Programming Teaching Experiences

Removing Barriers by Programming Without Computers

Practical Approaches to Using Sound and Music in Programming Pedagogy

Ways to Teach Online: Lessons Learned Through Experience

Seeing Before Coding, Doodling Before Doing: How Teaching Data Visualisation Transforms the Way Students Think

Part III - Assessment and Feedback: Principles and Practice

Introduction to Part III

Theme - Frameworks for Assessment and Feedback

Developing a Skills-Based Framework for Assessments in Programming Courses

Managing the Rubik’s Cube of Assessment: The Action Feedback Protocol

Theme - Practical Methods for Assessing Programming

Assessment and Marking in an Introductory Programming Course for Physics Students

Generative AI in Assessments: Before, During, and After

Using Automated Marking in Programming Courses To Enhance Learning

Part IV - Case Studies

Introduction to Part IV

Theme - Building Learning Communities and Resources

A Gentle Introduction to Coding: Narratives From a Programming Summer School for Social Sciences and Humanities

Case Study From Scotland’s Rural College: The Wild(Life) Side of Pair Programming

Interdisciplinary by Design: The Centre for Data, Culture, & Society Training Programme

Changing Civil Engineering Students’ Mindset Toward Programming

Lost in Translation: Complexities and Good Practices of Translating Coding-Based Teaching Materials Across Multiple Human Languages

Authors and Images

Closing Remarks for This Book

Authors’ Biographies

Image Register

Bibliography