Join us to discuss the broken software engineering pipeline on Monday 1st of July at 2pm BST

Pipeline icon via flaticon.com

Many employers struggle to recruit and retain software engineers with the skills needed to contribute to the modern workplace. What do employers and educators need to do to address this wicked problem? Join us to discuss the broken pipeline problem and its potential solutions in cybersecurity and beyond on Monday 1st July at 2pm BST. We’ll be joined by Shamal Faily and James Sharp from the Defence Science and Technology Laboratory (DSTL – an executive agency of the UK Ministry of Defence – MoD) who will give a lightning talk summary of their paper published at the High Integrity Software Conference (HISC) in 2024. From the abstract:

Industry sectors producing High Integrity software, like Defence and Aerospace, require a consistent and reliable supply of software engineering suitably qualified and experienced persons (SQEP). Much of this SQEP is drawn from UK Computer Science undergraduate programmes. However, these sectors face several challenges meeting the quantity and quality of the desired supply. First, classic but relevant material on Software Engineering is slowly being de-emphasised from Academic Computing programmes, and even removed from specialist programmes such as Cyber Security. For example, at several institutions, modules on Software Engineering have been replaced with more restricted material on Software Design, often delivered in the first year of a degree programme. Second, because of how degree and apprenticeship accreditation criteria are interpreted, foundational topics on software requirements and specifications are delivered inconsistently. On some programmes, user needs and software requirements are considered to be synonymous. On others, material that is covered early in the curriculum is not reinforced in later years, once students begin to encounter non-trivial systems. Third, as Software Engineering is no longer an active area of research in the UK, the SQEP available to deliver best practice and research results in Software Engineering is becoming eroded. This has implications on the ability to teach material such as Model-Driven Software Engineering, but also on what ‘software engineering’ is understood to be. For example, many ICT projects employ agile methods where code is valued over documentation. Software for many critical systems is too complex to reason about independently, and – given the life span of such systems – non-software artefacts are essential for activities like validation, knowledge exchange, and certification. To begin addressing these challenges at scale, we propose three possible solutions. First, we must talk more widely about the Software Engineering SQEP pipeline problem. The more awareness there is of this pipeline problem, the more likely it is different stakeholders will start collaborating to strengthen the pipeline. Second, to halt further erosion of the Software Engineering curricula, degree accreditors need to be prepared to identify and call out anti-patterns in Software Engineering education. This should not be a punitive process, but a vehicle for proposing remediations, albeit as a pre-requisite for continued accreditation. Third, material on software certification should be embodied into the Software Engineering curriculum for all Computer Science course derivatives. Safety and Security is increasing expected by consumers in systems of all shapes and sizes, driven by a need to introduce automation throughout everyday life. Introducing a focus on certification will encourage innovation research and education around how to do this at the same pace as modern software engineering. Moreover, those with cogent knowledge should also be prepared to share it, to ensure a certification curricula can be delivered at scale across all UK HEIs.

All welcome, as usual, we’ll be meeting online joining details at sigcse.cs.manchester.ac.uk/join-us

References

  1. Faily, S and Sharp, J (2024) The Software Engineering SQEP Pipeline Problem: Challenges and Opportunities his-conference.co.uk/session/the-software-engineering-sqep-pipeline-problem-challenges-and-opportunities (slides and abstract available online)

Join us to discuss using agile group projects to develop more employable graduates on Monday 13th May at 2pm BST

CC licensed agile image from flaticon.com

Employers often love academic group projects while students often loathe them. How can Agile group projects be used to develop students skills, both hard technical skills and softer people skills? Join us on Monday 13th May at 2pm BST to discuss a paper on this published by Jordan Allison and his collaborators at the University of Gloucestershire and the University of Bristol in the Journal of Further and Higher Education. [1] From the abstract:

This article presents the usage of Integrated Course Design (ICD) in the design and evaluation of applying agile methodologies within an undergraduate module of study to foster the development of computer science students employability skills. Undergraduate programs of computer science typically follow traditional educational methods which can lead to students unable to connect knowledge learned in class to actual situations and students are often assessed individually, whereas collaborative group projects are more akin to industry practice. The teaching experience reported gives students the opportunity to relate concepts learnt in class to a practical group-based project. Students must meet the requirements of a ‘client’ who will provide feedback and additional challenges for students while following the Agile framework SCRUM. Positive student feedback and module grades 7.70% higher than the department average over a four year period indicates the teaching structure and assessment presented is an effective method to foster the development of technical and soft skills of undergraduate computer science students.

We’ll be joined by the co-authors who will give us a five-minute lightning talk summary of their paper to kick-off our discussion. All welcome, joining details at sigcse.cs.manchester.ac.uk/join-us

References

  1. Jordan Allison, Abu Alam, Luke Gassmann, Gareth Nelson & Kamal Zidan (2024): Fostering the development of computer science graduate employability through agile projects, Journal of Further and Higher Education, DOI: 10.1080/0309877X.2024.2340642

Join us on zoom to discuss the implications of programming getting easier, Monday 15th May at 2pm BST

Programming is hard, or at least it used to be. AI code generators like Amazon’s CodeWhisperer, DeepMind’s AlphaCode, GitHub’s CoPilot, Replit’s Ghostwriter and many others now make programming easier, at least for some people, some of the time. What opportunities and challenges do these new tools present for educators? Join us on Zoom to discuss an award winning paper by Brett Becker, Paul Denny, James Finnie-Ansley, Andrew Luxton-Reilly, James Prather and Eddie Antonio Santos at University College Dublin, the University of Auckland and Abilene Christian University on this very topic. [1] We’ll be joined by two of the co-authors who will present a lightning talk to kick-off our discussion, for our monthly ACM journal club meetup. Here’s the abstract of his paper:

The introductory programming sequence has been the focus of much research in computing education. The recent advent of several viable and freely-available AI-driven code generation tools present several immediate opportunities and challenges in this domain. In this position paper we argue that the community needs to act quickly in deciding what possible opportunities can and should be leveraged and how, while also working on overcoming otherwise mitigating the possible challenges. Assuming that the effectiveness and proliferation of these tools will continue to progress rapidly, without quick, deliberate, and concerted efforts, educators will lose advantage in helping shape what opportunities come to be, and what challenges will endure. With this paper we aim to seed this discussion within the computing education community.

All welcome, as usual we’ll be meeting on zoom at 2pm BST (UTC+1), details at sigcse.cs.manchester.ac.uk/join-us. Thanks to Sue Sentance at the University of Cambridge for nominating this paper for discussion.

See also linkedin.com/posts/duncanhull_ai-codewhisperer-alphacode-activity-7051921278923915264-7i_5

References

  1. Brett A. Becker, Paul Denny, James Finnie-Ansley, Andrew Luxton-Reilly, James Prather, Eddie Antonio Santos (2023) Programming Is Hard – Or at Least It Used to Be: Educational Opportunities and Challenges of AI Code Generation in Proceedings of the 54th ACM Technical Symposium on Computer Science Education: SIGCSE 2023, pages 500–506, DOI: 10.1145/3545945.3569759

Join us to discuss Collaborative Coding in the Cloud on Monday 6th February at 2pm GMT

Creative Commons cloud image by flaticon.com

More and more software development tools are available in the cloud, with tools like Replit, CodingRooms, GitHub Codespaces, Amazon Web Services Cloud9, JetBrains and Eclipse all offering online tools for developers to code collaboratively in the cloud. Integrated Development Environments (IDEs) which have traditionally been available as “fatter” clients are increasingly available as “thinner” web-based clients running in a browser. These tools can lower some of the barriers to installation and maintenance for their users. What are the strengths and weaknesses of these new tools for teaching introductory programming courses? Join us on Monday 6th February at 2pm GMT to discuss a paper by Phil Hackett and his colleagues at the Open University on this very topic [1], from the abstract:

This paper discusses a pilot research project, which investigated the use of online collaborative IDEs (Integrated development environments) during a first-year computing degree course. The IDEs used can be described as virtual computing labs because they replicate some of the actions possible in physical computing labs. Students were supported by a tutor with real-time help and feedback provided, whilst they were programming, without being collocated. The use of two different platforms is considered with the benefits and drawbacks discussed. Students and tutors indicated that they would like to use a virtual computing lab approach in the future.

We’ll be joined by the lead author of the paper Phil Hackett, who’ll give us a lightning talk summary of the paper to kick-off our journal club discussion. The paper was presented at Computing Education Practice (CEP) in Durham earlier this month. [1]

All welcome, as usual we’ll be meeting on zoom, details at sigcse.cs.manchester.ac.uk/join-us

References

  1. Phil Hackett, Michel Wermelinger, Karen Kear and Chris Douce (2023) Using a Virtual Computing Lab to Teach Programming at a Distance in CEP ’23: Proceedings of 7th Conference on Computing Education Practice Pages 5–8 DOI:10.1145/3573260.3573262

Join us to discuss novice use of Java on Monday 7th November at 2pm GMT

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. [1] 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.

All welcome, as usual we’ll be meeting on zoom, details at sigcse.cs.manchester.ac.uk/join-us

References

  1. 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

Join us to discuss the implications of the Open AI codex on introductory programming Monday 4th July at 2pm BST


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 [1] 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/)

All welcome, details at sigcse.cs.manchester.ac.uk/join-us. Thanks to Jim Paterson at Glasgow Caledonian University for nominating this months paper.

References

  1. 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

Join us to discuss spatial skills in engineering on Monday 9th May at 2pm BST

CC BY-SA licensed image of a Rubik’s cube via by Booyabazooka Wikimedia Commons w.wiki/He9

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.

see [1]

All welcome. As usual we’ll be meeting on zoom, details are in the slack channel sigcse.cs.manchester.ac.uk/join-us. Thanks to Steven Bradley for suggesting the paper

References

  1. 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

Join us to discuss learning git on Monday 5th October at 2pm

The use of git is widespread in software engineering, however many novices struggle to get to grips with its complex distributed information model, challenging command line syntax and leaky abstractions. To investigate these pitfalls, we’ll be talking about a paper published by Santiago Perez De Rosso and Daniel Jackson on Purposes, Concepts, Misfits, and a Redesign of Git at OOPSLA. [1] From the abstract:

Git is a widely used version control system that is powerful but complicated. Its complexity may not be an inevitable consequence of its power but rather evidence of flaws in its design. To explore this hypothesis, we analysed the design of Git using a theory that identifies concepts, purposes, and misfits. Some well-known difficulties with Git are described, and explained as misfits in which underlying concepts fail to meet their intended purpose. Based on this analysis, we designed a reworking of Git (called Gitless) that attempts to remedy these flaws.

To correlate misfits with issues reported by users, we conducted a study of Stack Overflow questions. And to determine whether users experienced fewer complications using Gitless in place of Git, we conducted a small user study. Results suggest our approach can be profitable in identifying, analysing, and fixing design problems.

So what’s wrong with git?

Santiago’s presentation on What’s Wrong With Git? at Git Merge in 2017

Details of the zoom meeting have been posted on our slack workspace, see sigcse.cs.manchester.ac.uk/join-us for further information. Thanks to Juha Sorva at Aalto University for recommending this paper.

Journal club dates for your diary

We’ll be meeting on the first Monday of every month throughout autumn, so if you’d like to join us next month or a subsequent month, add these journal club dates to your diary:

  • Monday 5th October at 2pm
  • Monday 2nd November at 2pm
  • Monday 7th December at 2pm

References

  1. Santiago Perez De Rosso and Daniel Jackson (2016) Purposes, Concepts, Misfits, and a Redesign of Git in Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, (OOPSLA), pages 292–310 DOI: 10.1145/2983990.2984018