Scratch, Alice, Greenfoot—What’s the difference?

Do you remember the feeling when you were a kid and you had the fantastically rare chance to go into a sweet shop (or, as the Americans among us would probably say: candy store), and you actually had a bit of money, and you could buy something, and there was just so much choice? Wow.

(I still get a similar feeling now – not so much with candy, but with chocolates. Hmmm, chocolate…)

This is what it seems like with educational programming software. Some ten years ago there was not very much around (at least not much that was in widespread use and had good resources), and now there is plenty. For a teacher of introductory programming, it’s a bit like being the kid in the sweet shop: So much here to look at, so much good stuff. But so hard to choose!

If you haven’t used any of the current educational programming environments before, it’s hard to get your head around what’s in them. Just like the well known box-of-chocolates problem. When I talk about Greenfoot, I often get the question “How does it compare to Scratch?” or “How is it different from Alice?”

To help a little with that situation, we organised a panel session at the last SIGCSE conference called Comparing Alice, Greenfoot and Scratch which compared these three environments. “We”, in this context, were Sally Fincher and Ian Utting who organised the session, and Steve Cooper (Alice), John Maloney (Scratch) and myself (Greenfoot) presenting the environments. I really enjoyed the session – it was great to get one of the leading people involved in each of the development teams to present the environments, and it was well received: the room was packed full and the feedback was good.

But panels are transient – no good record is available for those who were not there. So we are now working on a series of articles for a special issue of the Transactions on Computing Education doing the same in writing. They should be published together in a single issue later this year, and include a paper on each of the three environments and a discussion section where we talk about commonalities and differences.

To read it, you have to wait until it comes out. But as a teaser, here is a graphic that we made for the papers, showing the target age groups for each of the three systems.

Target age groups for Alice, Scratch and Greenfoot

Maybe this answers one of your questions already. For everything else, you’ll have to wait a little longer.

Workshops for SIGCSE due soon – Greenfoot?

A couple of days ago I received an email calling for workshop proposals for SIGCSE 2011.

I have given Greenfoot workshops there for the past few years (and BlueJ workshops before that). Now I am wondering whether I should do the same again.

I am definitely planning to propose a Greenfoot workshop, but I am uncertain about the level that I should aim at. Should I do the same beginners’ workshop (for people who haven’t seen Greenfoot before) or is it maybe time to do an advanced one to help people move forward who have seen the basics of Greenfoot?

I just received the feedback from this year’s workshop, and it was certainly popular. I got really nice, very positive comments (someone wrote “This was exactly the “killer app” that I had hoped to run across at this conference” – thanks!). So that workshop works well as it is. And the fact is without a doubt that the majority of participants at SIGCSE do not know Greenfoot.

On the other hand, we want to support our users. Teachers who have adopted Greenfoot in the past couple of years might like some further tips and opportunity for discussion.

At this stage I am undecided. I will have to make my mind up in the next couple of weeks. If you have an opinion – let me know.

Berlin – after one week

I have just reached the end of the first week of teaching here in Berlin, at the “Institut für Informatik“, part of the Freie Universität Berlin.

I am teaching a module called ProInformatik III: Objektorientierte Programmierung – a block course that runs every day with five hours of contact over four weeks.

So, what have I learned so far?

Apart from the fact that translating technical terms into German poses regular challenges (what’s the German word for Debugger?), that apparently my German sounds funny now (well, 18 years out of Germany have left their marks…) and that I can still use a blackboard with chalk (we had a power-out yesterday), one of the most interesting observations is that the students here are much more talkative, more engaged, and ask much more interesting questions than my students at home. Where does that come from?

Well, partly this comparison is unfair. This is a summer course that students can take as a taster before they start to study. If they pass it, and then enrol in the degree programme, they get full credit. This naturally leads to a selective audience. I would guess that it is much more likely that the well-motivated, organised, keen (and possible good) students participate in these voluntary summer courses, so I’m dealing with a subset that is probably easier to teach.

However, I wonder whether there is also another factor at work. In Germany – compared to UK – school starts a year later, and lasts a year longer (although that is just changing now, with most states in Germany changing from 13 years to 12 years of schooling). That means students enter university two years later.

Add to this the fact that Germany has compulsory military service (for males only) we get a situation – in this male dominated discipline – where many of our students are three years older than their UK counterparts.

In other words: Many start here at an age where UK students finish.

The effect is startling. Instead of dealing with kids, I’m dealing with young adults. I wonder whether another year of life before study wouldn’t be a good thing for UK students as well.

Greenfoot book out now in German

Now in German: Greenfoot!

The Greenfoot book, which teaches Java programming and object orientation with the Greenfoot environment, is now available in German (as well as the original English).

That’s great news: Germany is probably the country with most Greenfoot users outside the English speaking world, and having the book in German will make use of the book – be it adoption in the classroom or casual reading by hobbyists – much easier.

I have just received my copy, and it looks great. The publisher has done a great job with full colour printing and good quality paper.

The translation is great, too – it was done by Carsten Schulte from the Freie Universität Berlin. I was really lucky that the publisher found such an excellent translator. It shows that he’s a computer scientist and an educator as well. His deep understanding of the concepts has clearly led to a much better translation than someone without subject knowledge could have produced.

I’m happy to see it out, and to see it end up looking this nice.

Royal Society report on the state of computing in UK schools

A few days ago, the Royal Society has announced a study on the state of computing education in UK schools, its problems and possible solutions. This has been quite widely reported in the press, for example here. The announcement itself makes for interesting reading. Its introduction starts:

Numbers of students studying computing are plummeting across the UK, with a fall of 33% in just three years in ICT GCSE students, a fall of 33% in six years in A level ICT and 57% in eight years in A level Computing students in England and similar declines found elsewhere in the UK.

It contains some good quotes from a range of people, such as this by Matthew Harrison, Director of Education at The Royal Academy of Engineering

“Young people have huge appetites for the computing devices they use outside of school. Yet ICT and Computer Science in school seem to turn these young people off. We need school curricula to engage them better if the next generation are to engineer technology and not just consume it.”

This is the latest development in a growing trend in the UK that recognises the dismal state of computer science education in UK schools, and starts to work on finding solutions. I became involved in this topic a couple of years ago, through the Computing At Schools (CAS) group, a fantastic movement of really motivated and smart individuals initiated by Simon Peyton-Jones. This has grown over the years with initiatives such as developing curriculum for schools, organising computing teacher conferences, and founding a computing teachers association.

While the announcement of the study contains little new to those who already had an interest in the topic, it’s great to see that the Royal Society is getting interested and getting involved. This helps getting more organisations on board with making a change (already apparent from the announcement) and will push the issue higher on the agenda of those who are in the position to make decisions.

There is no doubt at all in my mind that such change is urgently needed and important. Currently, there is a whole generation of kids, some of whom would make great and enthusiastic computer scientists, who never find out about the possibilities and joys of this exciting discipline.

Altogether a great development.

On Sabbatical

I am on sabbatical. Yes, I will have one year study leave without teaching at home! This is the first time I have done this. As of now, I officially have time to concentrate on my research for a while.

I fear that I might have too much planned already. What started out as a thought of a quieter, less busy year is already turning into what looks like a very busy time. But that’s okay – there are things coming up that I enjoy doing.

First, from today, I will be in Berlin for a while, teaching a block course at the Freie Universität Berlin. I will then teach the same material there again in long form in Spring next year, when I’ll spend three-and-a-half months in Berlin. During my time there, I am planning to work with the department on improving teaching techniques, material and tools.

After my initial Berlin stint, I am planning to spend some time trying to build up a network of Greenfoot Hubs and to write – jointly with David Barnes – a new edition of the BlueJ book. And we are planning a lot of work on Greenfoot as well. More on all of that later, I hope.

Who knows, maybe this also means that I will be able to update this blog more often, and to provide a little more regular updates of what we are working on.

For now, it’s time to dust of my slightly rusty German. My plane lands in an hour, and there should be a good German beer waiting for me somewhere.

Security and unintended leakage of information


[image of code keypad]

A security access keypad

An interesting aspect of online security is how information leaks out of systems in unintended and unexpected ways. The problem is not, of course, limited to online security – it exists in the physical world as well.

Here is an image of a security access keypad. It controls access to a private parking area at the back of my house.

Maybe not quite as secure as intended…

BlueJ 3.0 – What’s new

We’ve been working on it for the last eight months, and now it’s finally here: BlueJ 3.0.

Version 3.0 of BlueJ includes the most significant set of updates to BlueJ functionality since version 2.0 was released in 2004. (Yes – 2004! That was when we had no Google maps, no Facebook, no Twitter. It’s really that long ago…)

It might be good to summarise the most important of them.

The one thing that many people will notice first is an interface update:

The BlueJ 3.0 main window

The BlueJ 3.0 main window

The interface had a slight update and polish. Nothing too significant – we aimed at providing a slightly more modern appearance while still retaining the instantly recognisable “BlueJ look”. As part of the interface update, object inspectors have also changed in looks:

An object inspector

An object inspector

The inspector now looks like a magnified version of an object on the object bench. This emphasises that this is just another view of the same thing (just with additional detail provided).

The functionality of the object inspector is unchanged: fields can still be inspected further, static fields can be displayed, and so on.

The main changes in BlueJ 3.0, however, are not its looks. Our main effort has gone into improving the editor.

The BlueJ editor has always been fairly simple. 10 years ago, when it was originally written, it was simple and mainstream. Today, it was just embarrassingly simple.

Davin McCall, one of our senior developers on the BlueJ team, has implemented a new parser for BlueJ that forms the basis for much of the new editor functionality that you can see in 3.0, and also for some future features that will appear over the next few months. The most interesting of the new editor features are:

  • Scope highlighting,
  • the navigation view, and
  • code completion.

Let’s briefly look at them.

Scope highlighting

We have added background colouring to the editor to highlight scopes:

The new BlueJ 3.0 editor

The highlight makes it easier to see when brackets are missing or mismatched, and thus makes some errors more obvious. It hopefully helps students understand the concept of nested scopes.

The Navigation View

The Navigation View

The Navigation View

To the right of the editor is the “Navigation View”.

The navigation view shows a miniature version of the full class text, and highlights the currently selected viewport.

It is usable like a scroll bar: The view can be dragged, clicked, moved with a mouse wheel, etc. This gives a better overview over a source file for easier navigation.

When the mouse hovers over the navigation view, tool tips show relevant method names – this makes jumping to specific methods quicker than before.

The idea for the navigation view is taken from the “Fluid Source Code Editor” by Michael Desmond, which I saw presented at the PPIG workshop by Chris Exton.

Code completion

One of the most contentious non-features of BlueJ was, and always has been, code completion.

Almost from the very beginning, when BlueJ 1.0 was released in 1999, people have asked for code completion. Other people have been tearing their hair out in horror at the mere mention of the possibility of code completion ever being added to BlueJ. The discussions at the First Vatican Council were just a chat over coffee in comparison.

In the past, we have sided with the contra faction. (Okay, I admit: we have pretty much led the contra faction.)

But, as Konrad Adenauer, the first German post-war chancellor, said: “Was kümmert mich mein Geschwätz von gestern”.

Fact is: we have always aimed at providing tools that can be taken for granted in all reasonably modern development environments. 10 years ago, this included compilers and debuggers, but not code completion.

Code completion, back then, was still a “cool feature” that only a few high end environments provided. We did not want to create reliance on a feature that might be absent later in other environments, which meant that students could not look up documentation competently.

This has now clearly changed. Code completion is now a standard feature in mainstream environments, and the arguments against using it have grown weaker than my grandmother’s bed time cup of tea.

So, in short: code completion is finally here.

Code completion

In the BlueJ editor: code completion

In contrast to other environments, the code completion pane does not pop up automatically, but has to be activated explicitly (Ctrl-Space, by default). This means that the code completion function will not pop up unexpectedly and frighten beginners into spilling their Dr Pepper over their keyboards.

And wait, there’s more…

There is more good stuff to find in the latest BlueJ release. If you are interested, have a look at the BlueJ change log or — better still — download it and give it a run around the block.

You might like it.

(Images in this post are produced by the author and are hereby placed in the public domain.)

The Greenroom is open

Our Greenfoot project has been going well for a while. The software has been stable for a couple of years now, whenever we presented it we got excellent feedback, and user number have steadily grown (to about 20,000 downloads a month at the moment).

There was, however, one big gaping hole: easy availability of good teaching material. Educational software in itself actually has very little impact – no matter how good it is – if there is not also teaching material available that teachers can easily take and use.

The first step in addressing this was the writing of the Greenfoot textbook. This is done now and was published last year. But we wanted to go a step further. So now we have:

The Greenroom

The Greenroom is a community web site, where teachers can find and share teaching material, discuss ideas or problems, and communicate with each other and the Greenfoot development team.

We have adopted a wiki-style ownership model for teaching resources on that site: Instead of resources being owned by their original creator (as is the case in other resource repositories), here they are owned by “the community”.

Of course, proper credit is given to the creator (and all other contributors), but any resource is editable by anyone on the site. We hope that this may lead to collaborative development of resources. Maybe someone has a worksheet that they can upload, others can improve is, add exercises, translate it to other languages, or add ideas.

Resources may even be just an initial project idea, where another Greenroom member then might take up the idea and develop a small project, someone else might add exercises, and so on.

The idea of this style of collaborative development is quite ambitious, and it is not at all clear whether it will work. But one can always hope!

So far, the beginnings are looking promising: We opened the Greenroom less than three weeks ago, and so far there are already more than 200 teachers subscribed, and more than 20 different resources available. I am carefully optimistic.

In future, we plan to extend the Greenroom to add more local information, so that members can see groups and events in their local area that might be relevant to them.

Let’s see where it goes. For now, I just find it exciting to watch how people start to communicate in the Greenroom.

Alan Turing finally receives an apology

Alan-Turing-mathematician-001
Alan Turing (Photograph: Public Domain)

Alan Turing, one of the true great minds of computing history, has finally received an official apology from the UK government. There is no doubt that he shaped computing history, that he was hugely influential in the code breaking efforts in the UK in the second world war, and that his treatment by official institutions after the war was appalling.

It is great to see both his contributions and the injustice done to him openly recognised.

Now we just need to go on to save Bletchley Park