Alice 2 Project Notes
Jeanne Stork
for Blue Marble University’s course:
Virtual Worlds Two
Development Process:
For the most part, these notes were written as I worked on the virtual world project. I want the reader to see my process and the resources that I used in the order that I used them. I did very little cleaning up of this document to enable me to present a more authentic presentation of my process. I decided to include the entire URL for each of my links. These URLs serve as a quick list of my references.
Alice 2, by Carnegie Mellon University, was downloaded from https://www.alice.org/get-alice/alice-2/.
This project began with the “Shark Attack!” tutorial then gradually expanded. Occasionally, a few of my students participated in helping to create this world, but it was too complicated for most of them, especially given the brief amount of time that I had to instruct them in what needed to be done. I had to do most of the problem solving, research, and reading myself, but I think that two classes could have participated more fully if I had the time to break down each step into a separate lesson and could spend a semester or the entire school year teaching the students how to create a project in Alice 2. My computer lab is an English Language Arts lab and the same students who would benefit from an Alice 2 project also benefit from their reading program, Imagine Learning. Imagine Learning is only instructional if students use it on a regular basis, so I do not interrupt their routine very often.
I decided not to include a copy of my html export here with my notes because the purpose of Alice is to learn the logic and basic procedures behind programming and virtual world creation. I also do not want anyone to copy my printout and claim this world as their own, but I would be honored if my work helped someone and was included in his or her references. Likewise, I have included all of my sources below and mixed in my personal notes where appropriate.
Alice Tutorials: https://www2.cs.duke.edu/csed/alice09/tutorials.php#essentials
“Name: Shark Attack! (2013)
Level: Beginner
Time: 30 min.
Date: July 2013 (Updated June 2015)
Corresponding Tutorials: Shark Attack!, An Introduction to Alice, and/or Getting Started with Alice
Description: An incomplete “Carnival” world challenges students to write in or fix code to make the world work using concepts learned in the introduction tutorials. There are also five short multiple choice assessments.” https://www2.cs.duke.edu/csed/alice09/tutorials/gettingStartedTutorials/sharkAttack/SharkAttack_v2_handout.pdf
Quad View: https://www2.cs.duke.edu/csed/alice08/MotionOrientation/movement.pdf I quickly noticed that none of my shells and seaweed were rooted in place. They flew off into the air and escaped the island when I moved the kayak. I was unable to find a tutorial for attaching items to the land, but this tutorial included information on Alice 2’s quad view, which helped me very much.
Sunset:
I thought that the background was boring, so I added a sunset. Then, everything was too dark, so I lightened the scene. Lightening the scene turned the kayak red, and I decided that I liked the contrast of a red boat on a blue sea. I also like that the sky is a little grayer during the opening sequence when the camera is focused on the shark than when the camera is focused on the island.
True/False Decisions:
“Name: How Tall Are You? Introducing Decisions and the use of Functions
Level: Beginner
Time: 30 minutes
Date: July 2008 (Updated June 2014)
Prerequisites: one-hour beginner tutorial, or 4 part beginner tutorial
Description: This tutorial shows you how to make a decision by asking a question whose answer is true or false. If the answer is true, you can do one action, if the answer is false, you can do another action. You will make a decision with an IF/ELSE statement and using functions height and distance. You will help the guy and the penguin figure out who is the tallest. The tallest will then indicate they are the tallest.” https://www2.cs.duke.edu/csed/alice09/tutorials/gettingStartedTutorials/introFunctionsTutorial/introFunctionsTutorialHandout.pdf
Avoiding Collisions:
“Name: Checking for Collisions (2 objects)
Level: Intermediate
Time: 30 Minutes
Date: July 2008
Prerequisites: 4-Part Introduction Tutorial, Introduction to Functions
Description: This tutorial explains how to create and use a function that tests for the collision between two objects in Alice. Concepts used include functions.” https://www2.cs.duke.edu/csed/web/alice09/tutorials/advancedTutorials/checkCollisionsTutorial/checkCollisionsHandout.pdf
Another Collision Method:
https://www2.cs.duke.edu/csed/web/alice09/tutorials/advancedTutorials/simpleCollisionDetection/simpleCollisionDetection.pdf
These directions use lists and While the World Is Running instead of multiple collision functions (island, shark, and lighthouse) and an infinity loop.
I was unable to move the Move Kayak method into the if/then statement, so I devised a system of combining both sets of collision detection methods.
Two of my advanced students get very angry when they think that they have made a mistake; this can lead to anything from breaking the headphones (or even the computer’s monitor) to pounding their own heads with their fits. I thought about showing this project to their classes before adding the collision detection method. After consulting with one of their teachers, I decided to try the collision but I did not add any indicator of incorrect motion. I was informed that even a simple “nice try” or “try again” could bring on aggressive behaviors. I also have the scene wait a few seconds before the collision method begins to allow for a potential initial collision. Both students were fine with this approach.
My original attempt to modify a previous method did not work, so I hid my previous method related to the collision and started again by adding a new method. I then ran into another problem – the directions said to find the object’s width in the properties tab, but I found width in the functions tab. As with many of the tutorials, specific instructions may not have been updated but a creative person can often find a solution.
Loops: https://www.cs.bu.edu/courses/cs101/slides/CS101.Lect22.Alice.Repetition.pdf
This method worked well when I stopped pressing an arrow during a collision but allowed me to steer the kayak through objects so long as I kept pressure on one of the computer’s arrow keys.
Adding Music: https://www2.cs.duke.edu/csed/web/alice09/tutorials/advancedTutorials/sound/soundTutorial4.pdf
A problem with some mp3 files is mentioned. I switched to the wave format, and the sound now plays throughout instead of stopping after only a few seconds.
https://www.alice.org/resources/alice-2-audiolibrary/
Jaws music was purchased in iTunes and the bird-song was downloaded from https://www.bird-sounds.net/blue-grosbeak/. I edited both of these sounds using Apple’s Garage Band so that they were a length and format (.wav) that Alice 2 could easily use. I will remove the Jaws theme music from the version that I post on YouTube because of copyright issues. I have recently read many articles warning teachers about posting even educational videos with background music. This article explains the issues in easily understood (non-legalese) language: http://schoolvideonews.com/Copyright/Copyright-issues-when-using-music-in-videos.
Walking: I had some extra time, so I decided that my people should walk into place along the edge of the island rather than simply gliding with the move motion. The scuba diver had a walk function, so I began with him. I only had to figure out how far to make him walk, how to get him to follow the land’s curve (not go off into the air or drop into the sand), and how to walk both forward and sideways (so that he could get into the boat later on as realistically as possible). The following tutorial helped me with the ballerina, but I had to greatly modify it. https://www2.cs.duke.edu/csed/web/alice09/tutorials/gettingStartedTutorials/methodsTutorial/methodsTutorial.pdf
Sometimes, one refinement disrupted another formally finished movement. For instance, when the scuba diver just moved into place at the edge of the island, I had him lower his arms as the ballerina was lowering her arms. Once I had the scuba diver walk to his location, the movement that was used to lower his arms made him cross both of his arms behind his back so that his hands stuck out on the opposite sides from where they once were. This was fixed by locating and removing the previous arm-lowering commands.
Last (or so I thought), I adapted the walking procedure to make the bird flap its wings.
Student Interaction with this Virtual World:
At this point, several of my classes tested my Alice 2 virtual world. Students interacted with Kayakers and Shark Virtual World in Alice 2 between one and five minutes each; depending on their age, abilities, and interests. When I showed the project to one of my students who can talk well but does not remember academic concepts such as letters and numbers, he promptly declared, “This is boring.” Students today are used to games with richer visual and animation aspects. Many of the educational games that are used by both non-readers and students who can read are more immersive than a simple Alice 2 project. My more advanced students who could participate in building the world and follow its story and directions enjoyed the project very much. One nine-year-old student with severe autism who has only been talking for about a year recognized the Jaws theme music. Another student in his class who knows how to read told the characters to “stay island;” he agrees with the original tutorial that the people would be safer on the island than in the water, but the coconut that flew up into the tree and the shell that flew into the ballerina’s hand did not phase him at all.
Several of my students discovered that the sunset and water do not last forever. First, the sunset disappears then the water disappears if the kayak is moved too far from the island. This happens when students press the forward or backward arrow too long. They also discovered that before they run out of scenery, the kayak moves too far away from the island to find its way back again. A couple of students kept the kayak going until it ran out of sea (blue water).
Alice was developed to help students learn coding basics and not for teachers to use to develop their own activities. Although it can be used for the latter if a teacher has enough time, I strongly feel that its strength remains as a tool to introduce students to coding concepts.
My Final Improvement:
I showed this project to my mother and she wanted to see the shell hit the shark. Originally, the ballerina threw the shell in the direction of the off-camera shark, and the shell flew out of the scene toward the shark. Even though none of my students complained (they probably never even noticed), I decided that this would be a nice challenge to see the shell hit the shark. It took a bit of work to make this happen in a method that I liked, but I finally succeeded in having the shell hit the shark, making the shark react, and having the camera watch the event then return to the island.
I think that I am finished with this virtual world, but one can never be sure. I may make additional modifications in the future or I may use this as part of an Hour of Code lesson and allow my students to make modifications. I will make sure to keep the original file just in case the students’ “improvements” cause something to fail.
Video:
I am unable to upload my Alice 2 world to WordPress, so I decided to create a video of it in motion. This also prevents anyone from completely stealing my ideas because I never show the entire code. While I am grateful to the numerous people who post Alice tutorials and offer their assistance, I would not want anyone to copy my entire project.
I had to record the video and the audio separately because Alice has started overheating my personal computer. The activity monitor says that Alice 2 uses anywhere from 90% to 107% of my CPU (central processing unit) capacity even though I have a quad i7, 16 MB RAM MacBook Pro that exceeds the operating requirements of Alice 2. This appears to be a known issue, but the fix listed at http://www.alice.org/community/showthread.php?t=7216 is not available in my version of Alice (2.5). For now, it is enough to know that I do not want my computer’s fan to be recorded with my voice.
YouTube Link: https://youtu.be/lyWc7Ucm8oE
Questions?
If you have specific questions about how I did something, submit them using the comment section below. I am not willing to give anyone my entire coding printout, but I will answer simple questions.
Student Challenges Worksheet:
Kayakers and Shark in Alice Challenges, Jeanne Stork, Adapted from https://www2.cs.duke.edu/csed/alice09/tutorials/gettingStartedTutorials/sharkAttack/SharkAttack_v2_handout.pdf
Challenge 1: Return to the front of the island.
Challenge 2: Use the arrow keys to move the boat around the island.
2A. Circle just the island by going between the lighthouse and the island.
2B. Make one large circle around both the lighthouse and the island by keeping both items in the center of the circle.
Challenge 3: Use the arrow keys to make an eight or an infinity sign as you move the boat around the island the island and the lighthouse. You will have to go around the island in one direction and around the lighthouse the other way.
Advanced: Complete challenges 1 – 3 without bumping into the kayak into the island, the shark, or the lighthouse.
Challenge 4: Move the boat to the front of the island so that the bird clearly faces you. Figure out what letters move the bird in each direction (left, right, up down, forward, and backward).
Letter Bird Moves:
____ ____________________________
____ ____________________________
____ ____________________________
____ ____________________________
____ ____________________________
____ ____________________________
Challenge 5: Open the coding blocks and change what the characters say.