Michael Kölling
@kolling.uk
520 followers 110 following 27 posts
Computer Scientist, King's College London Blog: https://blogs.kcl.ac.uk/proged
Posts Media Videos Starter Packs
kolling.uk
It's out! Objects First With Java, 7th edition.

Now out in print and as e-text.

It has been 22 years since the first edition, and we're still going.

www.bluej.org/objects-first/
kolling.uk
Why is a bug called a bug?

The origin of the term is interesting, and often mis-attributed. The famous case is that of a moth found by Grace Murray Hopper inside a Mark II.

­Long before this, however, Thomas Edison was onto his “bugs”...

Continue here: blogs.kcl.ac.uk/proged/2025/...
Picture of what is known as "The First Computer Bug": a moth taped with sticky tape into an old notebook, surrounded by hand writing
kolling.uk
A Brief History of Java

This is a new chapter in our book "Objects First with Java".

In the book, it motivates why you should (or shouldn't) use specific language features.

It may be interesting to anyone interested in Java or the development of programming languages.

tinyurl.com/brief-java
kolling.uk
Attention: Computing teachers!

CKC 2025 will have a fantastic keynote: Don Syme @dsyme.bsky.social will talk about

Trends in AI-Assisted Software Development

Plus: a full day of presentations and workshops.

More information and sign up here: www.computingatschool.org.uk/events/2025/...
kolling.uk
Save the date!

On 5th July, we are hosting the CAS & King's Computing Conference for teachers. If you are a computing teacher and can come to London, have a look at this: a fantastic free event with great talks and workshops.

Open for registration now.

www.computingatschool.org.uk/events/2025/...
kolling.uk
Come and do a PhD with us!

Interested in programming languages, development tools, HCI and computing education?

@neilccbrown.bsky.social and I are jointly supervising a fully funded PhD. Theme: "Debugging and runtime visualisation in a frame-based system".

Details www.kcl.ac.uk/study-legacy...
Industry-funded studentship in Computer Science
3.5yr Studentship funding for a specific PhD project on Debugging and runtime visualisation in a frame-based system.
www.kcl.ac.uk
kolling.uk
I am very excited to tell you that we have started a collaboration with JetBrains @jetbrains.com , makers of IntelliJ IDEA @intellijidea.com and creators of the Kotlin language @kotlinlang.org, to integrate Kotlin into BlueJ @bluej.org.

This will bring Kotlin to millions of learners of programming!
kolling.uk
In the last few days, I have started revisiting guidelines for teaching programming, which I published 23 (!) years ago. I wanted to see how much is still relevant.

Frustratingly, almost everything is…

Read here: blogs.kcl.ac.uk/proged/
Programming Education Blog | Michael Kölling on BlueJ, Greenfoot, Stride, and other Programming Education Topics
blogs.kcl.ac.uk
kolling.uk
!!

Has to be a great paper that starts with "Elephants are a quintessential animal ..."
neilccbrown.bsky.social
Greatly intrigued by the field of Animal-Computer Interaction. Exhibit 1: "Play That Trunky Music: Development of an Auditory Enrichment Device for Elephants in Zoos" Open access paper here: dl.acm.org/doi/10.1145/...
Play That Trunky Music: Development of an Auditory Enrichment Device for Elephants in Zoos | Proceedings of the International Conference on Animal-Computer Interaction
dl.acm.org
kolling.uk
A new paper (a contribution in honour of Niklaus Wirth):

It's an easy read and should be of interest to anyone who cares about programming languages in education.

Relevant for the discussion of Java's status as a teaching language.

Here: infedu.vu.lt/journal/INFE...

@java-champions.bsky.social
kolling.uk
We have a cover design for the 7th Edition of our Objects First book!
Very exciting.
Image of the cover of the 7th edition of "Objects First with Java": an abstract pattern in blue, black and white, with the author names and title printed on top.
kolling.uk
Lesson of language design? Don't try to be clever!

JavaScript​:

0 == '0' -> true
0 == '' -> true
'0' == '' -> false

result: Transitivity of equality is broken!

a == b and b == c, so a == c ?

Not in JavaScript, it isn't!

Read: blogs.kcl.ac.uk/proged/2024/...
kolling.uk
How about this:

Integer a = new Integer(1);
Integer b = new Integer(1);
kolling.uk
Why is this one a good multiple choice question, but many others are not?

blogs.kcl.ac.uk/proged/2024/...

On my blog, I have written about my ongoing frustration with badly written MCQs, and what makes many of them so bad (and also an example of a better one).
kolling.uk
Yep. Nan is one option. But there is another …
kolling.uk
Here is a question I give my students in week 6 or so:

Can you write a declaration of variables a and b so that this code prints "false"?
kolling.uk

Last time walking over Waterloo Bridge to my programming lecture this term.

Always beautiful.
kolling.uk
The conclusion that developers are systematically ripping off their companies is obviously evidenced by the the fact that software companies with many developers (Google, MS, Meta, Oracle) are all struggling to survive…
kolling.uk
One of our newer projects. Have a look!
strype.org
Strype @strype.org · Dec 1
Coming soon...
kolling.uk
We have a new paper in pre-print: What makes a good hint for a stuck student programmer? How can you investigate this? And are Humans or LLMs better at delivering them?

Joint work with Neil (@neilccbrown.bsky.social), Pierre, Juho and Paul.

Read it here: arxiv.org/pdf/2411.18151
kolling.uk
Our original article about Frame-Based Editing has now got more than 40k downloads from our KCL research repository! That's a record in the department by orders of magnitude.

If you haven't seen it yet, it's here:
kclpure.kcl.ac.uk/portal/en/pu...
kolling.uk
With the latest releases, both BlueJ (@bluej.org) and Greenfoot (@greenfoot.org) are optimised for Raspberry Pi (@raspberrypi.bsky.social) again, and now have dedicated installers for this platform.

Get them here:

BlueJ v5.4.1: bluej.org
Greenfoot v3.9.0: greenfoot.org