Java is widely used as a teaching language in Universities around the world, but what wider problems does it present for novice programmers? Join us to discuss via a paper published in TOCE by Neil Brown, Pierre Weill-Tessier, Maksymilian Sekula, Alexandra-Lucia Costache and Michael Kölling.  From the abstract:
Objectives: Java is a popular programming language for use in computing education, but it is difficult to get a wide picture of the issues that it presents for novices, and most studies look only at the types or frequency of errors. In this observational study we aim to learn how novices use different features of the Java language. Participants: Users of the BlueJ development environment have been invited to opt-in to anonymously record their activity data for the past eight years. This dataset is called Blackbox, which was used as the basis for this study. BlueJ users are mostly novice programmers, predominantly male, with a median age of 16. Our data subset featured approximately 225,000 participants from around the world. Study Methods: We performed a secondary data analysis that used data from the Blackbox dataset. We examined over 320,000 Java projects collected over the course of eight years, and used source code analysis to investigate the prevalence of various specifically-selected Java programming usage patterns. As this was an observational study without specific hypotheses, we did not use significance tests; instead we present the results themselves with commentary, having applied seasonal trend decomposition to the data. Findings: We found many long-term trends in the data over the course of the eight years, most of which were monotonic. There was a notable reduction in the use of the main method (common in Java but unnecessary in BlueJ), and a general reduction in the complexity of the projects. We find that there are only a small number of frequently used types: int, String, double and boolean, but also a wide range of other infrequently used types. Conclusions: We find that programming usage patterns gradually change over a long period of time (a period where the Java language was not seeing major changes), once seasonal patterns are accounted for. Any changes are likely driven by instructors and the changing demographics of programming novices. The novices use a relatively restricted subset of Java, which implies that designers of languages specifically targeted at novices can satisfy their needs with a smaller set of language constructs and features. We provide detailed recommendations for the designers of educational programming languages and supporting development tools.
Neil C. C. Brown, Pierre Weill-Tessier, Maksymilian Sekula, Alexandra-Lucia Costache and Michael Kölling (2022) Novice use of the Java programming language ACM Transactions on Computing Education DOI:10.1145/3551393
What do employers want from Computer Science students and how good are Universities in producing graduates with what employers need? Join us to discuss via a paper by Roseanne English and Alan Hayes from UKICER 2022.  From the abstract:
In preparing computing science students for industry, degree content often focuses on technical skills such as programming. Such skills are essential for a successful post-study career in industry and is popular with students. However, industry notes that students are often limited in what can be referred to as graduate attributes or transferable skills. Such skills include effective teamwork, communication, and critical thinking amongst others. Similar gaps have also been demonstrated for computing science students more specifically, resulting in industry developing their own training programmes for graduates. To address this issue, graduate attributes could be incorporated more readily into computing curricula. Within the UK this is discussed in accreditation requirements as well as higher education frameworks. However, research which aims to explore how to achieve this is still comparatively limited. Building on existing work in this area, this paper presents a thematic analysis of graduate attributes at Russell Group Universities in the UK to identify the most common attribute themes, and uses the most frequent themes to begin to consider how these could be more readily embedded in CS curricula.
Rosanne English and Alan Hayes (2022) Towards Integrated Graduate Skills for UK Computing Science Students in UKICER ’22: Proceedings of the 2022 Conference on United Kingdom & Ireland Computing Education Research Pages 1–7 DOI:10.1145/3555009.3555018 (free version via https://pureportal.strath.ac.uk… )
Science is a broad church, full of narrow minds, trained to know ever more about even less. That’s according to Steve Jones , but in Computing Education Research (CER) are we being too narrow-minded about what counts (and what doesn’t count) as a contribution? Join us to discuss via a paper by Steve Draper and Joseph Maguire at the University of Glasgow recently published in TOCE . From the abstract:
The overall aim of this paper is to stimulate discussion about the activities within CER, and to develop a more thoughtful and explicit perspective on the different types of research activity within CER, and their relationships with each other. While theories may be the most valuable outputs of research to those wishing to apply them, for researchers themselves there are other kinds of contribution important to progress in the field. This is what relates it to the immediate subject of this special journal issue on theory in CER. We adopt as our criterion for value “contribution to knowledge”. This paper’s main contributions are: A set of 12 categories of contribution which together indicate the extent of this terrain of contributions to research. Leading into that is a collection of ideas and misconceptions which are drawn on in defining and motivating “ground rules”, which are hints and guidance on the need for various often neglected categories. These are also helpful in justifying some additional categories which make the set as a whole more useful in combination. These are followed by some suggested uses for the categories, and a discussion assessing how the success of the paper might be judged.
Teaching Assistants (both undergraduate UTA’s and graduate GTA’s) are crucial to enable teaching and learning in higher education. How can we make their jobs easier using automatic code corrections? Join us on Monday 1st August at 2pm to discuss via a paper recently published at CHI by Yana Malysheva and Caitlin Kelleher. 
Undergraduate Teaching Assistants(TAs) in Computer Science courses are often the first and only point of contact when a student gets stuck on a programming problem. But these TAs are often relative beginners themselves, both in programming and in teaching. In this paper, we examine the impact of availability of corrected code on TAs’ ability to find, fix, and address bugs in student code. We found that seeing a corrected version of the student code helps TAs debug code 29% faster, and write more accurate and complete student-facing explanations of the bugs (30% more likely to correctly address a given bug). We also observed that TAs do not generally struggle with the conceptual understanding of the underlying material. Rather, their difficulties seem more related to issues with working memory, attention, and overall high cognitive load.
Yana Malysheva and Caitlin Kelleher (2022) Assisting Teaching Assistants with Automatic Code Corrections CHI ’22: Proceedings of the 2022 CHI Conference on Human Factors in Computing SystemsApril 2022 Article No.: 231 Pages 1–18 DOI: 10.1145/3491102.3501820
Automatic code generators have been with us a while, but how do modern AI powered bots perform on introductory programming assignments? Join us to discuss the implications of the OpenAI Codex on introductory programming courses on Monday 4th July at 2pm BST. We’ll be discussing a paper by James Finnie-Ansley, Paul Denny, Brett A. Becker, Andrew Luxton-Reilly and James Prather  for our monthly SIGCSE journal club meetup on zoom. Here is the abstract:
Recent advances in artificial intelligence have been driven by an exponential growth in digitised data. Natural language processing, in particular, has been transformed by machine learning models such as OpenAI’s GPT-3 which generates human-like text so realistic that its developers have warned of the dangers of its misuse. In recent months OpenAI released Codex, a new deep learning model trained on Python code from more than 50 million GitHub repositories. Provided with a natural language description of a programming problem as input, Codex generates solution code as output. It can also explain (in English) input code, translate code between programming languages, and more. In this work, we explore how Codex performs on typical introductory programming problems. We report its performance on real questions taken from introductory programming exams and compare it to results from students who took these same exams under normal conditions, demonstrating that Codex outscores most students. We then explore how Codex handles subtle variations in problem wording using several published variants of the well-known “Rainfall Problem” along with one unpublished variant we have used in our teaching. We find the model passes many test cases for all variants. We also explore how much variation there is in the Codex generated solutions, observing that an identical input prompt frequently leads to very different solutions in terms of algorithmic approach and code length. Finally, we discuss the implications that such technology will have for computing education as it continues to evolve, including both challenges and opportunities. (see accompanying slides and sigarch.org/coping-with-copilot/)
James Finnie-Ansley, Paul Denny, Brett A. Becker, Andrew Luxton-Reilly, James Prather (2022) The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming ACE ’22: Australasian Computing Education Conference Pages 10–19 DOI:10.1145/3511861.3511863
print(’Hello World!’) is all very well but it doesn’t help physics students solve the Schrödinger equation. Join us for our next journal club meeting on Monday 13th June at 2pm BST where we’ll be discussing a paper by Lloyd Cawthorne from the Department of Physics and Astronomy on teaching programming to undergraduate Physics students. From the abstract:
Computer programming is a key component of any physical science or engineering degree and is a skill sought by employers. Coding can be very appealing to these students as it is logical and another setting where they can solve problems. However, many students can often be reluctant to engage with the material as it might not interest them or they might not see how it applies to their wider study. Here, I present lessons I have learned and recommendations to increase participation in programming courses for students majoring in the physical sciences or engineering. The discussion and examples are taken from my second-year core undergraduate physics module, Introduction to Programming for Physicists, taught at The University of Manchester, UK. Teaching this course, I have developed successful solutions that can be applied to undergraduate STEM courses.
Spatial skills can be beneficial in engineering and computing, but how are they connected? Why are spatial abilities beneficial in engineering? Join us to discuss this via a paper on spatial skills training by Jack Parkinson and friends at the University of Glasgow. Here is the abstract:
We have been training spatial skills for Computing Science students over several years with positive results, both in terms of the students’ spatial skills and their CS outcomes. The delivery and structure of the training has been modified over time and carried out at several institutions, resulting in variations across each intervention. This article describes six distinct case studies of training deliveries, highlighting the main challenges faced and some important takeaways. Our goal is to provide useful guidance based on our varied experience for any practitioner considering the adoption of spatial skills training for their students.
Jack Parkinson, Ryan Bockmon, Quintin Cutts, Michael Liut, Andrew Petersen and Sheryl Sorby (2021) Practice report: six studies of spatial skills training in introductory computer science, ACM Inroads Volume 12, issue 4, pp 18–29 DOI: 10.1145/3494574
Learning can be an emotional process and we often don’t realise when we are actually learning. When you’re listening to an expert explain something well, it’s easy to mistake the speaker’s smooth delivery for your own understanding. You might feel like you’re learning, but actual learning is often hard work and feels uncomfortable. Join us to discuss actual learning vs. feeling of learning via a paper by Louis Deslauriers, Logan S. McCarty, Kelly Miller, Kristina Callaghan, and Greg Kestin at Harvard University here is the abstract:
We compared students’ self-reported perception of learning with their actual learning under controlled conditions in large-enrollment introductory college physics courses taught using 1) active instruction (following best practices in the discipline) and 2) passive instruction (lectures by experienced and highly rated instructors). Both groups received identical class content and handouts, students were randomly assigned, and the instructor made no effort to persuade students of the benefit of either method. Students in active classrooms learned more (as would be expected based on prior research), but their perception of learning, while positive, was lower than that of their peers in passive environments. This suggests that attempts to evaluate instruction based on students’ perceptions of learning could inadvertently promote inferior (passive) pedagogical methods. For instance, a superstar lecturer could create such a positive feeling of learning that students would choose those lectures over active learning. Most importantly, these results suggest that when students experience the increased cognitive effort associated with active learning, they initially take that effort to signify poorer learning. That disconnect may have a detrimental effect on students’ motivation, engagement, and ability to self-regulate their own learning. Although students can, on their own, discover the increased value of being actively engaged during a semester-long course, their learning may be impaired during the initial part of the course. We discuss strategies that instructors can use, early in the semester, to improve students’ response to being actively engaged in the classroom.
Somewhere between the traditional division of non-programmers and programmers, there is a third category of conversational programmers. These are people who can (or want) to learn programming so that they can speak in the “programmer’s language” and work better with software engineers. Join us to discuss conversational programming via paper by Katie Cunningham et al.  This won a best paper award at SIGCSE 2022: 🏆
As the number of conversational programmers grows, computing educators are increasingly tasked with a paradox: to teach programming to people who want to communicate effectively about the internals of software, but not write code themselves. Designing instruction for conversational programmers is particularly challenging because their learning goals are not well understood, and few strategies exist for teaching to their needs. To address these gaps, we analyse the research on programming learning goals of conversational programmers from survey and interview studies of this population. We identify a major theme from these learners’ goals: they often involve making connections between code’s real-world purpose and various internal elements of software. To better understand the knowledge and skills conversational programmers require, we apply the Structure Behaviour Function framework to compare their learning goals to those of aspiring professional developers. Finally, we argue that instructional strategies for conversational programmers require a focus on high-level program behaviour that is not typically supported in introductory programming courses.
Kathryn Cunningham, Yike Qiao, Alex Feng and Eleanor O’Rourke (2022) Bringing “High-level” Down to Earth: Gaining Clarity in Conversational Programmer Learning Goals in SIGCSE 2022: Proceedings of the 53rd ACM Technical Symposium on Computer Science Education, Pages 551–557 DOI:10.1145/3478431.3499370
Computing is too important to be left to men, but where have all the women gone? While women continue to play a key role in computing they are currently under-represented in Computer Science. How can we change this and what evidence is there for practices that get more women into computing? Join us to discuss the subject via a paper by Briana Morrisonet al  on Monday 7th February at 2pm GMT. Here is the abstract of the paper:
Computing has, for many years, been one of the least demographically diverse STEM fields, particularly in terms of women’s participation. The last decade has seen a proliferation of research exploring new teaching techniques and their effect on the retention of students who have historically been excluded from computing. This research suggests interventions and practices that can affect the inclusiveness of the computer science classroom and potentially improve learning outcomes for all students. But research needs to be translated into practice, and practices need to be taken up in real classrooms. The current paper reports on the results of a focused systematic “state-of-the-art” review of recent empirical studies of teaching practices that have some explicit test of the impact on women in computing. Using the NCWIT Engagement Practices Framework as a means of organisation, we summarise this research, outline the practices that have the most empirical support, and suggest where additional research is needed.
All welcome, whatever your gender identity, gender expression or biological sex. As usual we’ll be meeting on zoom, details are in the slack channel sigcse.cs.manchester.ac.uk/join-us
Briana B. Morrison, Beth A. Quinn, Steven Bradley, Kevin Buffardi, Brian Harrington, Helen H. Hu, Maria Kallia, Fiona McNeill, Oluwakemi Ola, Miranda Parker, Jennifer Rosato and Jane Waite (2021) Evidence for Teaching Practices that Broaden Participation for Women in Computing in Proceedings of the 2021 Working Group Reports on Innovation and Technology in Computer Science Education DOI:10.1145/3502870.3506568