Skip to main content

10 May 2022

BlueJ - Meeting the programming scale up challenge with BlueJ

Written by Juljan Krause

Good programming skills are essential for a data-driven future but learning to code can be tough. A team at the Department of Informatics has developed a learning platform against robust educational research so that programming is engaging and fun to learn – and it’s proving a big success.

picture of a book cover with a blue j bird


Most countries in the world today face a considerable challenge to scale up the programming skills of their population. Many jobs of the future will require at least some skills at coding, and automation will be a key driver of economic success in the years to come: estimates suggest that AI alone may lead to an overall increase of 10% of GDP to the UK economy by 2030. While an ever-increasing number of school leavers and graduates require a solid programming education, the educational needs of learners are constantly evolving too.

Recent studies suggest that the private sector in the UK won’t be able to provide the level of on-the-job training that’d be required to get new starters up to speed and ready to tackle the IT challenges of the future. The UK, along with other leading economies, faces a significant digital skills gap. Nearly half of recently surveyed UK business leaders believe that this gap will have a considerable negative effect on their organisation in the years to come. Further down the line, the widely expected shift towards more automation and ubiquitous AI will only exacerbate the issue. While IT skills are in high demand across all sectors, significant barriers often make it difficult for underrepresented groups to upskill. The UK Government has recognised the problem and is developing a ‘digital skills policy’ to ensure that ‘digital education is prioritised and invested in to build a diverse pipeline of talent for the future’.

A team at King's College London Department of Informatics is firmly on the case: step forward BlueJ the brainchild of Professor of Computer Science Michael Kölling. BlueJ is a development platform for Java that is specifically designed for A-level and first-year university students from any discipline who want to learn the principles of programming. Rather than leaving learners to grapple with an inflexible platform, BlueJ is constantly evolving to reflect new research in programming education. To this day, BlueJ has been implemented by thousands of institutions worldwide and attracts 2 million new users every year. It’s one of the most successful academic systems out there and a key instrument to meet head on the programming scale up challenge that the UK and so many other countries face.

 Figure 1: Cover of the sixth edition of the BlueJ textbook.
Figure 1: Cover of the sixth edition of the BlueJ textbook.

Background: designing an interface against robust pedagogical principles

The beginnings of BlueJ go all the way back to 1999 when Professor Kölling developed a programming environment embedded in educational research as part of his doctoral degree. ‘Right from the start BlueJ was designed with introductory university level teaching in mind, because that’s where I teach myself. And so it started off from my own experience’, Professor Kölling explains. It’s this perspective on teaching and student learning that separates BlueJ from other professional tools in this space, which are primarily designed from a functional engineering perspective.

The key difference is that the functionality of BlueJ extends in line with the progress that learners make. Dr Neil Brown, BlueJ’s lead developer and Research Fellow at King's Informatics, explains how more complex features of BlueJ are being ‘revealed as users come to them’: conscious that hitting novice users with a busy and complicated interface may lead to significant frustration that only jeopardises the learning experience, BlueJ’s more advanced features are discovered as students progress on their learning journey.

Figure 2: Screenshot of BlueJ’s editor window. Colour highlighting separates code blocks, which makes the identification of errors much easier.
Figure 2: Screenshot of BlueJ’s editor window. Colour highlighting separates code blocks, which makes the identification of errors much easier.

With generous funding from Oracle, BlueJ has grown considerably over the years. It has evolved into an entire ecosystem and a large community of students and teachers. The program, which is open source and freely available to anyone, is accompanied by its own popular textbook and significant resources for teachers. Several extensions are also available. Thousands of teachers engage on BlueJ’s platform. All in all, Professor Kölling estimates that over the years more than 20 million learners have used BlueJ in their programming education. ‘It’s one of the most successful academic systems out there in terms of actual adoption’, Professor Kölling notes.

BlueJ at the Department of Informatics: big Strides towards a better learning experience

The BlueJ team moved to King’s about five years ago and has since been thoroughly embedded in the vibrant research culture at the department. The platform is used widely in undergraduate teaching across the department. While the interaction of first-year university students with BlueJ provides valuable insight into user behaviour, more advanced students actively connect BlueJ to their research projects. ‘Students can first get to know the system from a learner’s perspective, but then as they progress and maybe get involved in research projects, they actually contribute to improving the system’, Dr Brown explains.

While BlueJ is continuously developed against the backdrop of evolving learning theories and student feedback, it also provides significant input to the educational research community. Due to the scale of BlueJ’s deployment in teaching, the platform provides a rich source of data for researchers to advance program education. It’s this reciprocal embeddedness in the wider research community that sets BlueJ apart from other IDEs. Where permitted to do so, BlueJ collects data about user behaviour, e.g. how learners respond to errors or if they get stuck. This data is not just important to analyse tool use but also to reflect on larger tropes of how learners approach and frame programming education. ‘We’ve built a system to collect that data and make it available to other researchers – in fact, it’s one of the world’s largest available databases of programming tool interaction data’, Professor Kölling points out.

In its long-term strategy, the Department of Informatics considers work in human-system interaction a particular area worthy of expansion and investment. Implementing this vision, the team behind BlueJ makes their interaction data available to other researchers in this area. Being a huge resource of interaction data for the department and the wider academic community, Dr Brown notes that ‘there are over 20 papers from others based on this data’. The team also provides a number of post-doc positions for researchers on the project.

Figure 3: Example of the BlueJ environment and workflow.
Figure 3: Example of the BlueJ environment and workflow.

Presently, Professor Kölling and his team are fine-tuning a novel programming system they have developed in response to teachers’ needs, which is centred on a frame-based editing approach. Surveys among teachers revealed that young learners at primary schools are well served with block-based editing programs to learn coding, which are built on a drag-and-drop paradigm. However, many learners, particularly in secondary school, face challenges transitioning to fully text-based systems. Many teachers observe too big a jump in complexity moving from a block-based to a text-editing approach.

At King's, Professor Kölling and his team have developed a new programming language called Stride. The new frame-based editor allows students to create and manipulate Stride programs. Stride is designed so that semicolons and other syntax are unneeded, and brackets are always matched, meaning students won’t grind to a halt because of small syntax errors. Putting such worries aside, students can focus better on the issues that really matter, such as learning the principles of programming and developing their computational thinking. In any case, users can switch back and forth between Stride and the text-based Java language. Teachers report overwhelmingly that Stride makes for better engagement and more motivation among learners. So far, Stride has been taken up by more than 125,000 learners overall and the figure keeps rising.

Looking ahead

Given such positive feedback, it’s all hands on deck for Professor Kölling’s departmental team to make Stride even better for future versions of BlueJ and its sister platform Greenfoot, which was developed for primary and secondary school learners in particular. Learning Java early in a way that’s rewarding, engaging and fun supports the Government’s long-term vision of a highly-skilled, data-literate and programming-savvy population. Above all, BlueJ supports the upskilling of graduates so that they are ready for the challenges and opportunities that the labour market of the future will present. Learning Java, and learning it well with BlueJ, is a great place to start the programming journey. In fact, for James Gosling, the very creator of Java, BlueJ ‘is one of my favourite IDEs out there’.

In this story

Michael Kölling

Vice-Dean (Education) and Professor of Computer Science