Michael Kölling's Avatar

Michael Kölling

@kolling.uk

Computer Scientist, King's College London Blog: https://blogs.kcl.ac.uk/proged

526
Followers
113
Following
27
Posts
21.08.2024
Joined
Posts Following

Latest posts by Michael Kölling @kolling.uk

Post image

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/

03.08.2025 16:43 👍 3 🔁 1 💬 0 📌 0
Picture of what is known as "The First Computer Bug": a moth taped with sticky tape into an old notebook, surrounded by hand writing

Picture of what is known as "The First Computer Bug": a moth taped with sticky tape into an old notebook, surrounded by hand writing

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

30.05.2025 10:24 👍 3 🔁 1 💬 0 📌 0
Post image

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

30.05.2025 08:10 👍 2 🔁 0 💬 0 📌 0
Post image

ATTENTION: Free Computing Teachers Conference

Our speakers are now confirmed for CKC 2025:

@dsyme.bsky.social @megjlow.bsky.social @beckyfranks.bsky.social @tracygardner.bsky.social @lollypopstar.bsky.social @neilccbrown.bsky.social @suesentance.bsky.social

Sign up here: tinyurl.com/CKC-Kings

24.05.2025 16:33 👍 5 🔁 4 💬 0 📌 0
Post image

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

13.05.2025 11:21 👍 1 🔁 0 💬 0 📌 0
Post image

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

01.05.2025 21:27 👍 4 🔁 2 💬 0 📌 0
Preview
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.

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

22.02.2025 16:38 👍 2 🔁 2 💬 1 📌 0

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!

29.01.2025 15:48 👍 6 🔁 1 💬 0 📌 0
Objects First with Java: A Practical Introduction Using BlueJ, Global Edition: Amazon.co.uk: Barnes, David, Kölling, Michael: 9781292463599: Books Buy Objects First with Java: A Practical Introduction Using BlueJ, Global Edition 7 by Barnes, David, Kölling, Michael (ISBN: 9781292463599) from Amazon's Book Store. Everyday low prices and free deli...

Very exciting: the new edition of our book has now appeared (for pre-order) on Amazon:

www.amazon.co.uk/gp/aw/d/1292...

The release date is given as 2 July, but I still hope we can get it out by May.

13.01.2025 05:40 👍 1 🔁 1 💬 0 📌 0
Programming Education Blog | Michael Kölling on BlueJ, Greenfoot, Stride, and other Programming Education Topics

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/

20.12.2024 13:36 👍 3 🔁 0 💬 1 📌 0

!!

Has to be a great paper that starts with "Elephants are a quintessential animal ..."

11.12.2024 22:06 👍 0 🔁 0 💬 0 📌 0
Post image

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

11.12.2024 20:31 👍 3 🔁 0 💬 1 📌 0
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.

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.

We have a cover design for the 7th Edition of our Objects First book!
Very exciting.

11.12.2024 17:29 👍 2 🔁 0 💬 0 📌 0
Video thumbnail

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

08.12.2024 13:04 👍 8 🔁 0 💬 1 📌 0

How about this:

Integer a = new Integer(1);
Integer b = new Integer(1);

07.12.2024 22:02 👍 0 🔁 0 💬 0 📌 0
Post image

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

06.12.2024 12:23 👍 1 🔁 0 💬 0 📌 0

Yep. Nan is one option. But there is another …

05.12.2024 23:05 👍 0 🔁 0 💬 1 📌 0
Post image

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"?

05.12.2024 22:45 👍 1 🔁 0 💬 2 📌 0
Post image


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

Always beautiful.

04.12.2024 09:46 👍 3 🔁 1 💬 0 📌 0

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…

03.12.2024 02:01 👍 4 🔁 0 💬 0 📌 0

One of our newer projects. Have a look!

01.12.2024 17:41 👍 2 🔁 1 💬 0 📌 0

Welcome Jens!

29.11.2024 14:38 👍 1 🔁 0 💬 0 📌 0
Post image

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

29.11.2024 14:33 👍 2 🔁 0 💬 0 📌 0
Post image

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

24.11.2024 16:01 👍 1 🔁 0 💬 0 📌 0
Post image

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

20.11.2024 19:03 👍 4 🔁 2 💬 0 📌 0
BlueJ

BlueJ optimised for Raspberry Pi again!

As of BlueJ Version 5.4, we have added two new installers: One for Apple Silicon on MacOS (M1/M2 chips) and one optimised for Raspberry Pi @raspberrypi.bsky.social .

Get it here: bluej.org

17.11.2024 21:03 👍 2 🔁 1 💬 0 📌 0
Preview
Automated Grading and Feedback Tools for Programming Education: A Systematic Review

A recent bit of work:

Automated Grading and Feedback Tools for Programming Education: A Systematic Review

A great piece of work by my PhD student Marcus Messer, published in TOCE, now selected for presentation at the SIGCSE Symposium.

Well worth a look.

17.11.2024 20:23 👍 4 🔁 1 💬 0 📌 0

While you're on magic type inference, did you know you can also write

var list = new ArrayList<>();

What do you think is the type? (Hint: It's not what you think, no matter what you think...)

15.11.2024 15:15 👍 5 🔁 0 💬 2 📌 0