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/
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/
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/...
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
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
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/...
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/...
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...
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!
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.
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/
!!
Has to be a great paper that starts with "Elephants are a quintessential animal ..."
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
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.
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/...
How about this:
Integer a = new Integer(1);
Integer b = new Integer(1);
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).
Yep. Nan is one option. But there is another …
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"?
Last time walking over Waterloo Bridge to my programming lecture this term.
Always beautiful.
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…
One of our newer projects. Have a look!
Welcome Jens!
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
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...
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
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
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.
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...)