PDA

View Full Version : Solutions to many problems are in Storytelling Alice


DickBaldwin
08-20-2007, 10:47 AM
Many of the projects that people post questions about here may be much easier to create using "Storytelling Alice" (STA) See http://www.alice.org/kelleher/storytelling/download.html to download.

Although I haven't spent a lot of time looking at it, STA provides a lot of capabilities that are not included in Alice 2.0.

For example, there are a lot more characters and scenes. In addition, there are a lot more higher-level methods for each character than is the case for Alice 2.0. There may also be some capabilities in Alice 2.0 that are not included in STA, but if so, I haven't identified them.

For example, a quick scan shows the following additional methods for the Coach character:

Custom Methods
do jumping jacks
do toe touches
cheer

Primitive Methods
walk to
walk offscreen
walk
sit on
lie down
kneel
fall down
straighten up
look at
look
turn away from
touch
keep touching
constrain to face away
constrain to point at

Apparently all of the characters have the above set of new primitive methods. Different characters have different custom methods. For example, the DewdropWillowwind character has the following custom methods:

wink
look embarassed
look happy
look angry
blink
shrug
close eyes
look disappointed
flapWings

In addition, STA has a new capability that allows you to incorporate multiple scenes into the world.

Problems

Occasionally, I am unable to get either Alice.exe or SlowAndSteadyAlice.exe to load. When that happens, I have to go to the task manager, end the task manually, and try again.

There is also a file in the Required folder named IfAliceVailsTryThis.exe.

Nothing obvious happens when I run it, so I don't know what it does.


I will be interested in hearing what others learn when they start using STA.

Dick Baldwin

DrJim
08-20-2007, 11:10 AM
I was a bit surprised to see that my experience when I first used it was essentially the same as that Caitlin Kelleher observed with her trial groups - namely that I spent more time programming and less time positioning objects on the screen than a I did with regular Alice. Since I'm about as far from the demographics of the test group as you can get, I suspect she has discovered something pretty basic.

DickBaldwin
08-20-2007, 11:24 AM
The thing that made me think about it was reading another posting this morning where someone was complaining that his Ninja wouldn't fall down reliably. I remembered that StorytellingAlice has a primitive method to cause a character to fall down, plus lots of other primitive methods to control the behavior of characters.

Dick Baldwin

lanceA
08-20-2007, 02:39 PM
Are you suggesting that possibly StoryTelling Alice would be a better introductory tool to use for CS1 ? I've always viewed it as a tool for young children - middle school or younger.

islandfever
08-20-2007, 02:54 PM
STA sounds cool and useful, but it can make video games too?

DickBaldwin
08-20-2007, 03:19 PM
No, I'm not suggesting that at all.

Many of the questions that I see posted on this forum are posted by people who appear to be trying to create the next Doom game using Alice. I'm not sure what their status as a student is, or if they are even students at all.

Many of the things that they seem to want to do and ask questions about are already coded as primitive or custom methods in Storytelling Alice. This includes questions about writing code to make a character walk, or fall down, etc. I'm simply suggesting that Storytelling Alice may be a better platform for that sort of thing than Alice 2.0. At least, Storytelling Alice makes it possible to create more animation with less code.

I don't see those high-level methods as being beneficial for use as a teaching tool for CS0, although I suppose that having them available doesn't do any harm either. They may be useful for demo purposes to show what can be achieved by someone who is willing to expend the effort to write complex methods for walking, etc.

Note that I changed the nomenclature from CS1 to CS0 (CS-zero). Although the course that I teach using Alice is referred to as CS1 in some quarters, it clearly doesn't prepare a student to pass the College Board AP exam for CS1 credit. Therefore, I consider it to be a CS0 course. If I were teaching a true CS1 course, I would want to teach it using Java because the AP exam is based on Java.

I too have tended to think of Storytelling Alice as having a younger target audience than Alice 2.0 because it was apparently developed with a younger audience in mind. However, it is probably more accurate to say that it has a more specific target audience, not necessarily a younger audience. For example, given the ability to convert the animation into an online movie (using movie capture software), it could be very useful for an adult who wants to produce online animated political comic strips (such as an animated version of Doonsberry).

I haven't spent any significant amount of time with Storytelling Alice, but so far I haven't identified any V2.0 capabiities that were excluded from Storytelling Alice (although there may be many). If no V2.0 capabilities were excluded, then it's probably safe to say that Storytelling Alice is capable of being used for any program that can be written using V2.0, plus it has many more primitive methods and some additional capabilities (such as multiple scenes). (However, the gallery may be much smaller.)

Storytelling Alice appears to based on Java v1.5 whereas V2.0, as I recall, is based on Java v1.3. That is probably a positive sign.

On the downside, there is no support for Storytelling Alice and there are no textbooks. However, I haven't been overwhelmed by the amount of support that is available for V2.0 and I tend to develop all of my own curricular materials anyway so neither of those would be a show stopper for me.

I guess that's about it. I just wanted to point out that if someone is writing a program that involves a lot of character activities that match the following methods (plus many other character-specific custom methods), Storytelling Alice may be worth looking at.

walk to
walk offscreen
walk
sit on
lie down
kneel
fall down
straighten up
look at
look
turn away from
touch
keep touching
constrain to face away


Dick Baldwin

DickBaldwin
08-20-2007, 04:46 PM
IslandFever wrote "STA sounds cool and useful, but can it make video games too?"

As far as I know right now, Storytelling Alice can be used to program any project that can be programmed with v2.0 (except that the gallery is smaller.)

However, I haven't made an extensive comparison between the two. I will be interested in hearing what others determine in this regard.

Gabe, do you know if any V2.0 capabilities were excluded from Storytelling Alice?

Dick Baldwin

hgs
08-21-2007, 05:14 AM
Agreed, a lot of the higher level functionality available makes animation much easier, in particular avoiding that tedious mucking about with joint angles. But there are weaknesses in this as a teaching tool for programming, I believe, but that said there are plenty of similar weaknesses in other languages used for teaching.

In particular: There are no lights, making interesting illumination difficult, constraining what can be seen from certain positions. The lamp model in the gallery can't be turned on.

At the programming level, whilst the humanoid characters have more methods, and have them in common with other humanoid characters, methods specific to a role are tied to that instance. For example, the brainwashing method of the lunch lady cannot be given to the Mrs Miller character. This seems like a missed opportunity to provide Ruby-like modules for mixing in, or some other inheritance model.

One important thing to learn about programming is the Don't Repeat Yourself (DRY), or Single Point Of Truth (SPOT) rule, because this removes tedium from development, writing code twice or more, debugging it in two or more places. It seems difficult to create a method that would apply to all humanoids, even given the uniformity improvements in body structures, without writing it more than once.

The only other thing that would help in this regard would be to get the programs in and out as plain text when one wishes to. Then if one had to copy and paste methods about the place, one could at least write some code to manipulate the text before re-importing it, to change the character it refers to. This would open up scope for metaprogramming. Yes, it would
introduce the possibility of syntax errors, which is maybe why it is not available.

Being able to pass functions around, or use blocks would be nice as well, but too advanced a concept for the target audience, possibly, although I think Logo has this.

I still think it is an impressive tool. It will be interesting to see what lessons the developers of Alice 3 took from both of these.

DickBaldwin
08-21-2007, 09:22 AM
To hgs.

Good information.

By the way, since writing my earlier post, I have determined that Storytelling Alice suffers more problems in the array area than v2.0. However, because of the array problems in v2.0, I don't consider v2.0 to be very useful for teaching arrays in a CS0 course. (I posted some info on the array problems earlier. They will be in the archives if anyone is interested.)

Thanks,
Dick Baldwin

DrJim
08-21-2007, 07:42 PM
Since I don't teach CS or really have much to do with CS education in general (other than paying school taxe$$ - unfortunately nobody around here wants to teach for free), I generally don't comment on this subject. In this case, however, I have put in a good bit of time working with Storytelling Alice and therefore am going to add a couple of comments that might help others evaluate the various options without having to invest a similar amount of time.

First - while I very much like Storytelling Alice - it is the type of code one develops for a thesis, not code that is intended for a general teaching tool. The notes with the release make that perfectly clear and also highlight one of the problems - it is targeted for a specific machine and software package. There are also inconsistancies in the internal structure that are (probably) due to experiments to find the best implementation options for various features - again great for thesis research, but probably a problem in a general teaching environment.

I also get the impression Storytelling Alice crashes even more than regular Alice, which itself is pretty bad. (If you disagree, try working with another memory intensive application program for a while (say Photoshop with 20M image files) and then come back to Alice. Speaking for myself, I find it a shock every time I do.) Bottom line, even if you like some of the (great) feature in Storytelling Alice - I would strongly recommend waiting for Alice 3.0 for classroom use (and even then, don't use it if your primary goal is to teach game design - or make cartoons - since there are much better tools. But that's another discussion).

The second set of comments applies to the characterization of Storytelling Alice as "a tool for young children - middle school or younger." I think this characterization tends to obscure the key result from Catlin Kelleher's research - namely when students are provided with higher level programming construsts, they spend more time programming and less time manipulating the application data directly. I believe this will be found to be true regardless of the age of the student - I certainly found it true and I haven't been a middle school student for over half a century.

Also, if Alice 3.0 is going to specifically target the "middle school and younger" group (which I don't really think it is), it should follow Scratch's lead and stick to 2D geometry, etc. Why we would need two tools to address this age group, however, is beyond me, particularly when Scratch itself is free - and a wide range of excellent, free and age-appropriate support materials (that won't be outdated in a year or two) are also available.

I would suggest that the better target groups for Alice as it evolves are (1) high school and first year college students, especially those who are not interested (at least at the time) in becoming CS majors and (2) continuing education students who work in other fields, but who would like to pick up some more advanced computer concepts. As is is, many in these groups really have no good options other than Alice 2.0.

Forcing everyone in these groups to jump into C# or Java - though a necessity (in my opinion) for CS majors - makes everyone suffer through memorizing endless obscure (but important) syntax conventions, typing and scope issues, task scheduling, IDE and/or compiler conventions, etc. - all the things that characterize a modern high level programming language and it's associated support environment but are of little interest to the non-programmer. (Note Alice would still be useful for CS majors, but in parallel with learning the "nuts and bolts" of Java or C# in a separate portion of the cirriculum.)

It seems to me that it would be better to offer these particular groups an exposure to the power of some advanced programming options through a user friendly environment such as Alice. It won't make most them programmers - but it might give them a better idea of what good programs (and good programmers) can do for them. It might also give them some ideas for more efficient use of the application programs that they do use (say custom scripting) - or (who knows) even interest them in exploring higher level programming concepts.

gabe
08-21-2007, 07:55 PM
The Alice team believes very highly in Caitlin's thesis work -- so highly that Alice 3.0 will be more a logical progression of Storytelling Alice than 2.0. While Storytelling Alice was primarily tested on middle school girls, we believe the results will carry over to higher level education.

Higher level primitives will be a major feature of Alice 3.0.

DrJim
08-24-2007, 12:18 AM
I'm a little puzzled by the comment that there are no lights in Storytelling Alice. Just did a few experiments and they seemed to work about the same as in regular Alice, or maybe even a bit better. The spotlight and point light (light bulb) from the web gallery worked great - in fact they brought out the features of the new characters quite well and the ambient (world) light worked normally. The effects of the directional lights (both the default and one from the web gallery) were hard to predict, as always, but that's nothing new - and they work fine for fills if you finally get them in the right place.

hgs
08-24-2007, 06:56 AM
@Dr Jim:
Are there spot and point lights in Storytelling Alice itself? I can see the ones in the (Alice2.0) web gallery from this machine, but could not see any in the local gallery. I've been using it on a machine which is not online, and I think having lights available out of the box is important.

I've not tried adding standard Alice2 models to Storytelling Alice, but given the lack of an inheritance model I wouldn't expect too many problems, just the lack of new methods.

Thank you.

DrJim
08-24-2007, 12:11 PM
There are no lights supplied in the gallery with SA but I assume it wouldn't be difficult to download them or export them into SA's Required/Gallery folder. Haven't tried that, however.

(Edit Note: See later posting.)

Standard Alice characters seem to work fine, but without any of the new methods, of course.

DrJim
08-24-2007, 01:51 PM
Must have been a bit brain dead when I wrote the previous message. There is no need to go to the web for anything you already have on your hard disk - just copy it from the regular required/gallery to the SA required/gallery directory and it will appear automatically when you start SA. Just tested this with both the lights and the shapes folders and it works fine.

(Note the commands you can use on objects without running methods are a bit different in SA.)

hgs
08-28-2007, 12:31 PM
Thank you. I realized I could copy them, but I wondered if I'd missed some. Also, I'm hoping the developers see this and include a few kinds of light in Alice 3. [Again, I'd expect them to, and lights were probably only missing from Storytelling Alice because it was a research project, and lighting wasn't the focus of the research.]

Thank you.