I started the day by meeting two more of my coworkers.
Then, I decided to start working on a tuturial for looping through an array of objects. Since the book does a fairly thorough coverage of Alice's "For all in order" and "For all together" built-in loops, both of which, if I remember correctly, act on lists, I'm going to focus my tutorial on looping through an array using an index variable.
Before I had gotten too far on this tutorial though, I once again was frustrated by the fact that you have to construct Alice expressions from the outside-in because of the drag-and-drop paradigm, Therefore, I decided to make a brief tutorial on how to construct asimple 'if' statement in Alice, for a function that checks whether two objects in Alice are intersecting.
Around 12, before I finished my tutorial, the four of us started having a discussion about whether or not Alice helps novices learn programming, since Jenna and Ruth had both first learned programming using Alice. Here is some record of our discussions.
       
After lunch, I finished the tutorial on constructing Alice expressions, and helped Ruth set up her website.
I started working on my LoopArrays tutorial but then decided to hold off on that, since Ruth was working on a demonstration of arrays and I thought we could make a tutorial together based on her example.
I have also created a page with some suggestions and comments for Alice itself by my coworkers and myself, as well a page with some "helpful hints," which may eventually come with screenshots like the tutorials, or may develop into mini-tutorials.
       
In the afternoon, I had a discussion with Ruth about how we could use loops and arrays, and in what situations they could be used interchangeably. She experimented and we discovered that you can use a list much like an array (we were trying to manipulate parts of objects) if you have a helper method to conduct the action. Otherwise, Alice doesn't let you directly say part x of "item from list" move up ten meters. This syntax works for arrays but not for lists. The list substitute is to create a method that makes an object parameter's part perform the desired action, and pass the object from the list to that method.
While Ruth was finishing her example world, I decided to start working on a vehicle tutorial. When Ruth finished the example, I helped her upload it the compilation page and showed her how to export the Alice code to HTML, so she would be able to use the code in a description. I spent the rest of the day fixing some of the links in my website from all the moving around.
I started today by discussing some tutorial ideas with Ruth, and decided to make a vehicle example rather than a vehicle tutorial. Also, since Ruth had some old worlds that she had deleted, we attempted a file recovery on her computer. I started today by working on my Vehicle tutorial, and helping Ruth modify her website. Then, I took our newest coworker to get his login, and fixed some typos in my earlier tutorials that Deborah had discovered. After and during lunch, the five of us had a discussion and brainstormed some ideas for materials for us to work on. Some of those ideas can be found on this page. Then, I went to my vehicle tutorial and realized I had a problem because there is no way in Alice to control Mouse control events. That is, I can't tell Alice to only let the mouse control objects while some variable is true, because the "Let Mouse control Object" is an event. I decided just to make two copies of the world, one for just vehicle, and one for camera vehicle. These are available as examples on my tutorials page, and I am working on brief descriptions.
Also, I helped Gaetjens with the Alice learning.
I will pick up on the descriptions tomorrow and then start to create something for variables. After our discussion today, everyone had work to do, and our plan is to decide as a group what next to work on when someone is done with their stuff.
I started today by finishing up the vehicle examples. I don't think I will make a guided tutorial on this one, since it is literally three lines of code and the description lays this out.
I think I will download Storytelling Alice and see whether it might be useful for us, since I've meant to do it for a while and I've been putting it off to code tutorials.
I'm reading the description on the download page, and there seem to be a fair number of disclaimers about lack of support and lack of testing, so I think that, while we could potentially use it to build illustrative example worlds, we couldn't really push it to the teachers or students as a programming tool at this point. The interface of storytelling Alice actually appears to be more, rather than less complex than Alice 2. It can oepn worlds created in Alice 2, but there's a new idea of "scenes" and you can do "create new scene." Since the "create new scenes" button often gives an error though, it is essentially the same as Alice 2, except that characters have some extra methods built-in, and the gallery is smaller and organized a bit differently.
After listening to Professor Astrachan's extensive lecture, I returned to the office and asked Ruthie to look over my vehicle example and description. She mentioned that the conditionals seemed to put an extra and unnecessary prerequisite for using the vehicle property. I agreed, so I created a more basic version of the tutorial that had neither conditions nor user-created methods. I'm now working on an example world and a tutorial for using variables. As I worked on the example world, I looked over at the powerpoint tutorials that Ruthie was working on. I decided I still want to learn how to do the blue filter, truly interactive tutorials, so I spent about forty minutes looking over those XML stencils. The issue is that the numbers for the positions of various boxes and pop-up menus do not seem to be manually entered - most of them have 10+ digits. I emailed Dr. Dann to ask her about whether there's a utility that will generate those numbers.
At the end of the day, I wrapped up the variables example world, and starting on a description.
I spent most of the day today setting up the central website, writing HTML templates for each type of material we were developing, and trying to figure out how to make the powerpoints work with embedded links. There is an issue because when you create a link in a powerpoint, it likes to try to "open" the file and this does not work with Alice files. Eventually, I decided to let it go and just put the powerpoint tutorials in a zip file for download. Here is a link to the current main repository page, which only has Ruthie's right now. Note that only the link above will take you to to the compilation page - the link on my main Alice page points to a placeholder. I will move my stuff over a little bit later, particularly those tutorials that Deborah has already looked over. For now, I will continue working on my variables example. I finished the variables example, and I asked someone to look at my vehicles example. Both are now online. Please let me know if the present layout the cetral page is good. If it is fine, I will change it to index so that it links correctly from my main page, and also provide the link to the rest of the Alice people so they can all link it from their journals.
I started today by reading your email, and the recording the MAC addresses of a couple of people who had sent them. I also responded to one woman's query about how to find the MAC addresses on a Windows machine. Then, I decided to give Alice 2.2 a test run, since we will be using both during the workshop. So far, I've only been loading worlds created in Alice 2.0. The random number bug has definitely been resolved, but Alice 2.2 feels slower than 2.0 when you're editing preferences. I will spend an hour or so making a world from scratch in Alice 2.2, and post any bugs I find. I noticed something interesting about Alice 2.2 and Alice 2.0 as I was loading one and then the other. It appears that they share a settings file even though they're in completely different directories on my file system. When I change Alice 2.2 to Java style, Alice 2.0 shows up in Java style the next time it is loaded. Also, the web gallery appears to have beene expanded, although there is still no ROPE! Testing Alice 2.2, I observed that, in adding objects to the scene, 2.2 does not allow one to directly place the object on the ground, as 2.0 does. Instead, like the latest linux version of Alice, it forces the user to simply "drop" the object in the world, and let Alice decide where to place it. Also, the bug I showed you the yesterday, where the functions "ask the user for a string" always prompts when you edit the code rather than only when you play the world, is still alive and kicking in Alice 2.2. Here is a link to an example world. I have also made a post on my main Alice page under Bugs. Also, occasionally when you load Alice, you will see black screen in the world window instead of the world. Clicking add objects will restore the scene, but returning to editing the world will bring the black screen again. When the world is played, we get a white screen. The only way to fix this is to restart Alice. I've had this happen twice within an hour, and I will document it if I can find a way to reproduce it that always works. I've managed to produce it about five more times, but the next time, it worked fine. I'm going back to Alice 2.0, and I'm starting to look over some of the materials for the workshop. I will decide on my next Alice example or tutorial based on that, I think. I have to leave early today (need to go to Payroll to deal with tax issues), but I'll make up the hours tomorrow, since I'm working tomorrow anyways.
I started today by going through more of the workshop Powerpoints. I want to make sure I know about everything the teachers will be learning about, so I won't be stumped during the workshop, and also so I have more ideas for examples and tutorials. For example, I didn't realize that you could dynamically resize an object strictly in one dimension, since it's not something you can do when you place an object. When I visited the website again, I realized that the CMU people are probably working far more hours than we are - because more material was uploaded at a very rapid rate. After going through about 6 days worth of slides, I still have a lingering question. Is the primary object to bring Alice into the classroom as a tool for teaching other subjects, or to bring Alice into the classroom as a tool for teaching computer science? It feels like they're trying to do a little bit of both, but they never actually state it outright. I found the use of hidden markers with the vehicle property to track the falling of a ball rather clever - not something you would think of when you first looked at Alice. As I read over the slides on "Transition To Java," I saw a listing of topics Not Introduced in Alice, and I found that they rather precisely matched the tools we keep wishing we had as we work with Alice. =P It took me 3-4 hours to get through all the slides. I am going to start another example world on Variables. I have set up a scene for a wizard collecting gems in a dark, lightless world - unfortunately I seem to have run out of ideas for how to implement this game in a fun way, so I will leave it until Monday. I'm going to spend some time reading over the CS Unplugged Material, and begin compiling a list of materials for that. Also, I have only 7-8 MAC addresses right now. This could mean that most teachers don't plan on bringing laptops, or that they don't know how to find it and haven't gotten around to asking.