Latest entry

0061 is up

We have released 0061.

Release notes:

  • Installer for Linux (Sims and all)
  • Key events now can check for which key was pressed
  • NetBeans plugin code generation for events
  • NetBeans plugin fix for code generation of fields declared as getters and setters in Java (e.g. get/setColor)
  • General bug fixing


Creating a Method on a Class

Things have changed a bit in Alice as we try to separate classes and instances. The following screencast shows you how to create a method on a class in the latest version.

You can also download this video in MPEG-4 format for offline viewing:Creating a method on a class (8.2MB)



future of alice: interacting with off-screen objects via their insets

There are a lot of reasons why Alice is still in beta. Gabe and I estimated that if we can make 1001 improvements, then Alice3 will cross over into the “good” realm. To date, I’ve gotten 3 of the 1001, so there’s still a long ways to go. For most of the problems with Alice, I have a plan. Sadly, implementing that plan is taking seemingly forever. I’m going to try to start to put some of that plan into words so everyone can:

  1. be alerted to problems in the system
  2. get a sense for what is coming
  3. raise objections and/or suggest improvements

Problem #643: It is really easy to lose objects in the 3D scene.

This, like a lot of problems in Alice, primarily arises from things that land squarely in the “well duh” category that we just simply haven’t gotten to yet. When you create an object from the gallery it sometimes comes in at a seemingly arbitrary location. Obviously, creating an instance by dragging them in and placing them directly (a la Alice2) is on the list. If someone just clicks on the gallery model and Alice needs to place it somewhere, then “front and center” is far better than wherever it happened to be when it was converted from the Alice2 gallery. So take for granted that we’re going to do all that.

Yet, further problems can arise when you are simply trying to move objects around the scene. It is still all too easy when dragging an object to lose it somewhere far, far away on the horizon. Preventing this unwanted, unfortunate plane projection is, of course, the first step. Providing undo will also serve as a great catchall band-aid. But even given that we are going do all of that work, I believe there is still room to improve interacting with off-screen, small, or distant objects via insets.

Let’s say you have a project with a penguin, but it is off-screen.

offscreen penguin

If you were to select the off-screen penguin, we could provide a little inset. Beyond just being able to view the object and get a sense of where it is, you could interact with the object via the inset (for example: you could drag it back into view if you wanted).

offscreen selected penguin

This also could be useful for objects that appeared small in view (due to it’s inherent small size or because it is far away).

off in the distance selected penguin with inset

We could also provide an inset if the penguin was occluded (say, behind or inside the igloo).

Of course, we don’t want to clutter the window with insets for all objects that are off-screen or small, so this would only happen when the object in question is selected.

This is not by any stretch of the imagination the biggest or most important problem in Alice. It is one of a thousand planned improvements that will (hopefully) make Alice a pleasant and useful system.



gearing up for the fall

0060 is up.  For the first time in Alice 3’s brief history (brief on an astronomical time scale, anyway) one should be able to teach a semester long without the absolute necessity of being able to update the system mid-semester.  We will still be fixing bug reports and making updates, of course.  However, the hope is that one could theoretically make it all the way through a semester with what we have available today.

What I am personally excited about is that we can now afford to branch the code at semester boundaries and make big leaps again.  As you might imagine, having the well-being of so many students tied to your updates is more than a bit daunting.  It tends to keep one from making ambitious changes mid-semester.



Installing the NetBeans Plugin Screencast

Recorded by Dave Culyba.

You can also download this video in MPEG-4 format for offline viewing:
Installing the NetBeans Plugin Screencast (9.12MB)



Pictures from JavaOne

Pictures of the recent Alice team excursion to JavaOne, held at the Moscone Center in San Francisco, CA, June 2 – 5, 2009. Here Alice received the Duke’s Choice Award, which celebrate …extreme innovation in the world of Java technology… Winners are selected by James Gosling and the Java technology leadership team.
Receiving the Dukes Choice Award

Receiving the Duke's Choice Award

Alice Team with the Duke

Alice Team with the Duke

The Duke Citation for Alice

Citation for the Award

Our Friends form Sun with the Duke

Our Friends from Sun with the Duke



Kodu is available

I first got a chance to see Kodu in action at this year’s SIGCSE conference.  It was easily the most exciting thing I saw at the conference (and yes, that includes Alice3 :-) .

Kodu is a project created at Microsoft Research now available via Xbox LIVE for the 360. I had the chance to check it out a bit last night and it is just as sweet to use as the demo led us all to believe.

First of all, you edit the code of a single object and that object reacts to when things happen.

Honestly, there are a lot of things in Kodu that I’ve been thinking about for some time, now.  Flipping back and forth between the 3d scene and the code in the overlay.  Providing a Games API for Alice3 that emphasizes events.  Starting out student with editing a class for a while (as opposed to orchestrating a scene) to see if we can better address the classes/instances problem.  Please don’t take “I’ve been thinking along these lines…” as a dismissive “I’ve thought of all this already and just haven’t gotten to it.”   Believe me, nothing could be further from the truth.  There is a vast chasm between saying “the Games API will emphasize events” and designing and building something as complete and sweet and effective as Kodu.  While I don’t think that Alice will ever emulate the program construction of Kudo, it is really encouraging/exciting/inspiring to see what a great job the Kodu team has done.  I believe they have built a system that has both a low barrier to entry and a very high ceiling.

In case you can’t tell, I’m really, REALLY impressed with Kodu. :)

Some quick thoughts:

Many actions loop by default.  One can then customize that action to fire only “one time” if desired.  Interesting.  I couldn’t immediately find a way to do controlled loops (I was surprised that I couldn’t say “do this action 3 times”, for example) but they may have sidestepped the need for explicitly creating separate loop structures.  Like so many things in Kodu, I am very interested in seeing how it is received/works out.

Users can create code on separate pages and switch to those pages.  I watched Gabe as he quite effectively used pages to reuse a bit of code.  Update: these pages are not really like “invoking a subroutine” so much as “switching to a different logic set”.

They provide some really great constructs.  Things like “when in doubt wander” came in pretty handy when I was trying to deal with tricky edge cases.

Anyway, enough of me babbling on about how great Kodu is.  If you have an Xbox360/XboxLIVE you should definitely check it out.  It will set you back a mere $5.  I believe a Windows version is in the works.  I would be very interested to hear the opinions of people who teach intro to c.s.  Who knows, maybe someday we will see a Learning to Program with Kodu curriculum.



Alice vs Scratch

On the ap-computerscience listserv, there has recently been a discussion thread discussing the relative merits of Alice and Scratch. I think the analysis of the difference between Scratch and Alice for students has been fair and accurate.

The general observation is that students find Scratch to be very accessible, and can do many cool things very quickly. The downside is that they will hit the limits of Scratch relatively soon. Alice has a richer set of capabilities but that students need a lot more initial support and training to fully utilize its capabilities.

I believe that this reflects the original goals of the groups responsible for the design of both tools. I do not wish to speak too strongly for the Scratch team, but my understanding is that Scratch was initially designed with informal educational settings in mind (after-school tech club houses, etc.), and Alice was specifically signed to be a more part of a CS 0 course offering.

The Alice team recognized the need for great support materials for teachers, which led to the development of the text “Learning to Program with Alice” by Dann, Cooper, and Pausch, and the creation of a website http://www.aliceprogramming.net which contains sample syllabi, lecture notes, lab assignments, sample exams and test banks, with accompanying solutions, so that teachers who wish to use Alice are able to provide the guidance they need.

(And actually, it turns out that once some basic, almost minimal guidance is provided, students can go a long way.)

The distinction between informal and formal educational settings is interesting and important, and yet we are finding that Scratch is starting to be used in more formal settings (as the ap-cs listserv thread clearly illustrates), and we are also finding Alice being used in more informal settings (such as the Citizen’s School project in New York City last fall.)

In fact Dr. Caitlin Kelleher’s research, and the development of Storytelling Alice, specifically targeted informal settings, working with Girl Scouts in the Pittsburgh area.  Dr. Kelleher, now at Washington University in St. Louis is continuing to push on this front in her work, leading the development of Looking Glass, which parallels our work at Carnegie Mellon in the development of Alice 3.0. Alice 3.0 is very specifically targeting formal eduction in CS 1 settings, and my understanding of Looking Glass is that it is pushing on use in informal educational settings.



What version of Alice should you use?

A lot of people have been asking if they should jump right in and use Alice3 for the upcoming Fall Semester. My answer would be “Today’s version of Alice3 is certainly not for everyone.” As many of you know, Alice3 is in beta… and not some perfectly functional beta like Gmail. It is seriously lacking in some areas. There are no tutorials, no textbooks, the gallery is a mess, we’ve only scratched the surface on the capabilities of the Sims, there’s no undo… Holy smokes! THERE’S NO UNDO!!!

For these and many other reasons, we have added a warning dialog:

Alice3 is not for the faint of heart.

Someday, Alice3 and Looking Glass will completely replace the need for Alice2 and Storytelling Alice. As it stands, I think we have a system which shows a great deal of potential. Yet, while there are a lot of plans on how to achieve that potential… plans and potential don’t help students today.

If I had to guess, the people who are most likely to adopt Alice3 right away will be those who are drawn by the smoother transition to Java. Even in its infancy, Alice3 really has a leg up on Alice2 in this regard. For those of you who have no interest in transitioning to Java (and there are a lot of you out there), I expect that you will want to stay w/ Alice2 or Storytelling Alice for now. Further, I’d bet that even many of you who really want to leverage the transition to Java will decide to wait for Alice3 to mature. This is a perfectly fine decision. We don’t expect or even want everyone to jump ship from Alice2, right now.

The beta of Alice3 is available right now because the system cannot operate in a vacuum. The pedagogy needs to be developed and we’d rather let a few brave souls “have at it” so they can:

  1. start to figure out how they want to teach with it

  2. give us feedback

On that note, I would like to encourage *everyone* to try it out and let us know what you think.

For those of you in the non-transition-to-Java camp, please check out my community post on Looking Glass.



Alice3-Beta at JavaOne

The Alice team is back from our trip to JavaOne in San Francisco.

Our friends at Sun set us up w/ a station in the Change (Y)our World Playground where we demoed what I tried to describe as “a sneak peak at the future of Alice”.  I’m not sure how accurate the desciption of “sneak peak” was since we were handing out USB drives with the latest bits and it’s up on the web… but hopefully people will forgive me for trying to manage expectations at least a little.

We got a lot of traffic in the playground and seemed to generate genuine interest.  The most exciting thing was just how many people came up to tell us how much their children or grandchildren love Alice2 and Storytelling Alice.  The Sun folks had all of these Alice t-shirts made up for us to give out and we whisked through all of the smalls in no time.  When we ran out of those, parents accepted mediums for their young Alice users at home.  Imagine going to a computer science conference and having tons of left over larges and extra larges and no smalls or mediums!

In other news from JavaOne, the Dean of the School of Computer Science, Randy Bryant got to go on stage during the keynote to accept the Duke’s Choice Award for Alice3.  I’m going to go out on a limb and say that it was the first time Dr. Bryant has ever followed up the launching of t-shirts into a crowd at a conference.

We also held a Birds of a Feather which generated some good discussion and gave my personal favorite: a lightning talk.  Is there any better speaking format?  With a limit of 5-7 minutes you are basically given license to talk as fast as you want.  All you have to do is demo Alice for 90% of your allotted time and you’re guaranteed to have a happy audience.  Hmm… I guess there is one better format.  Perhaps I can make a “History of Alice” post soon about the Web 3D Round Up.

Our lightning talk was followed up by Ian Utting from the Greenfoot team which makes for a nice pairing, I think.  As a bonus, we were right next to the Greenfoot booth in the playground so we got a chance to chat with Ian and Poul Henriksen and Davin McCall throughout the week.  We agreed to discuss some sort of closer integration of our two tools someday when things calm down.  While I’m sure things will never actually calm down, I do expect this to bubble to the top someday.