chapter suggestions

Chapter Titles gathered during the Winter School

Below are various chapter titles gathered during the winter schools 24 and 25. In Early 2025 during a number of writing retreats they will be used to create chapter Teams, which will write Pitches and then Chapters themselves.

If you’d like to join one of the chapter teams, or start your own, do have a look at the ‘call for Pitches’.

Theme: accessibility-and-inclusion

• Co-design, participatory design, and feminist pedagogy as methods for designing code modules
• Teaching programming to students with different backgrounds and levels
• Accessibility and inclusion in teaching programming
• Eliminating hierarchy in the classroom

Theme: Anxiety

• Overcoming coding anxiety: learnings and strategies

Theme: Assessment and Feedback

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

Theme: Coding Skills

• Teaching debugging beyond the debugger (how to get unstuck)
• What makes good testing?
• Learning from errors
• Organisation of code / best practice

Theme: Computer Skills

• Pre-coding 101: Teaching nuts and bolts (file systems and the unspoken paradigms for techy stuff)
• Removing technological barriers in coding courses (getting all students set up and running code)
• Common misconceptions in programming and how to remedy them (e.g. the misconception that the IDE automatically opens in directory where people want to work in – working directory vs the directory where the data etc is)

Theme: Curriculum Design

• A written unwritten curriculum
• What does a “programming” curriculum look like?
• Combination of case studies from Glasgow and a general question of how much time do you need to introduce non-programming students to programming / statistics
• Incorporating reproducibility in the curriculum
• What does higher education need to do in terms of policy and leadership to support mainstreaming coding teaching

Theme: Ethics and Responsible Programming

• Enabling criticality in novice programmers: How to be critical when you don’t know the basics
• Responsible compute: When and how to introduce considerations of societal impact and ethics
• Bias when working with data: The data doesn’t speak for itself

Theme: Feedback and Assessment

• Peer assessment for learning code quality
• The use of automatic marking to enhance learning
• How to create evaluation rubrics for programming assessments
• Feedback and assessment (probably several chapters)

Theme: GenAI

• High and low sides of using genAI to learn programming
• Potential of AI in teaching programming

Theme: Motivation and Engagement

• Motivation through interactive notebooks
• Programming and motivation: Making music with code
• Engaging students who can’t be bothered with programming
• Visual results as key for motivating learning to program/strategies for adoption of a visual context for teaching coding
• Developing a coding mindset – to encourage students who have never coded before
• How to effectively cultivate curiosity in programming (AKA an idiot’s guide to infectious curiosity)
• You probably already code! An example with Excel

Theme: Pair Programming

• Lessons learned from teaching pair programming at the Edinburgh Futures Institute
• Pair programming with online distance learners
• Extending pair programming principles to larger groups
• Pair programming – structured student group work for practical programming labs
• 8 ways Pair-Programming classrooms vary: choose your own pair-programming adventure

Theme: Pedagogy

• Literature review of general principles for teaching programming
• Training/mentoring TAs/tutors, maybe also with perspectives from current TAs
• Programming before stats vs programming while learning stats
• Programming and pedagogy

Theme: Practical Tips for Teaching Programming

• What works? Classroom activities for teaching programming
• Supporting as a tutor or demonstrator on programming courses
• Teaching coding as a non-coder
• Teaching programming in online and hybrid settings
• Programming without computers
• Learning together in the Fusion / Hybrid course – interactions between on-line and in-person students
• Learning Badges – micro and macro patterns for modular course design

Theme: Programming Across Disciplines

• The evolution of teaching R in a community: a case study from NHS-R Community
• A change in mindset of civil engineering students toward programming
• Translating programming terminology for non-programmers from different fields
• Teaching programming as part of Citizen Science and Outreach initiatives
• Find the Humanities in programming: Challenging the STEM vs. Humanities paradigm
• “A medium not a tool”: Teaching programming to artists
• Teaching multidisciplinary audiences
• Why should we even teach programming across disciplines (i.e. how is it useful)?
• CDCS Digital Skills programme as a case study

Theme: Programming Across Languages

• Creating teaching materials in multiple languages
• Teaching programming in multilingual contexts (or to non-English speakers)
• How to demonstrate the benefits of programming to students? (various fields, everyday life)

Theme: Programming Beyond Degree

• How to communicate the career benefits of programming to students
• Coding for pre-university students – preparing for the inevitable
• Programming as a life skill: Beyond the next few modules of your degree

Theme: Tools for Teaching

• Immediate outputs: Using devices to teach programming (microbits, etc)
• Notebooks for novices? Pros and cons of Jupyter
• Julia as a language for incrementally building programming concepts (via Type incrementation etc)
• Teaching low-level languages to students with introductory Python: Experiences and reflection
• Version control and its role in making labour visible (as an alternative motivator for teaching students)
• Using GitHub and benefits of early integration while coding
• Using simulation to teach concepts