Jump to content

Greenfoot (and other Educational Programming Languages)


Pangloss

Recommended Posts

We've been using Alice (the IDE, not the language) to teach introductory programming, but I've always found the interface clunky and confusing, and so far from what the students end up doing later as to almost render the experience moot. Our students seem to have trouble separating what they learn about programming from what they've learned about Alice in particular. The next class they take introduces them to writing Windows apps in Visual Basic, which is just a whole different ball of wax. (From there they go to an advanced Windows forms class, then my ASP.NET course, where they learn some C# to compliment their VB knowledge.)

 

For a long time we taught them pseudocode using Microsoft's cheesy old PS "compiler", but that thing is no longer supported and I haven't seen a textbook for it in years. There're a lot of textbooks out there on Visual Basic, but I haven't seen any that focus on programming fundamentals -- they're about teaching Visual Basic (which is kind of a sucky language to learn fundamentals in anyway).

 

I'm just curious if anyone here might have any suggestions. The Wikipedia has an article on Educational Programming Languages, which has been somewhat useful in my explorations.

 

http://en.wikipedia.org/wiki/Educational_programming_language

 

One that struck me as interetsing is Greenfoot. It's an IDE based on BlueJ, which is an EPL based on Java, which of course presents a little bit of a conflict (since they go to VB next), but we're considering dumping VB for C# anyway, which uses the same syntax.

 

Typical Greenfoot screenshot:

 

Greenfoot.jpg

 

That is both the IDE and the run-time module, which means you get some real-time manipulation of the code, which is really useful for educational purposes. Code is typed into a separate window that you call up by double-clicking on the class object. At that point it looks like normal Java, which is supplemented and simplified by the BlueJ and Greenfoot libraries. Some typical code:

 

    /**
    * Let the gravity change the speed.
    */
   private void applyGravity() {
       speed += moon.getGravity();
   }

   /**
    * Whether we have touched the landing platform yet.
    */
   private boolean isLanding() {
       Color leftColor = moon.getColorAt(getX() + leftX, getY() + bottom);
       Color rightColor = moon.getColorAt(getX() + rightX, getY() + bottom);
       return (speed <= MAX_LANDING_SPEED) && leftColor.equals(moon.getLandingColor()) && rightColor.equals(moon.getLandingColor());
   }

 

So I'm checking it out and it looks useful so far (and especially attractive now that Prentiss Hall is coming out with a textbook on it next month). But I wanted to check here and see if anybody had any suggestions or ideas, especially with regard to Greenfoot (experiences, problems, etc). Thanks!

Edited by Pangloss
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.