In today's project we are going to be using a piece of software developed by the late Randy Pausch[*] of Carnegie-Mellon University[**]. The purpose of this piece of software is to allow you to get a basic sense of how to design and implement programs and algorithms in the context of of a 3D animation interface.
At the core of much of computer science lies the problem of desigining algorithms. An algorithm is simply the sequence of steps you need to follow to complete some task. For example, if I wanted to get to LaGuardia Airport, one possible sequence of instructions might include:
Call cab
Get in cab
Wait until cab gets to airport
Get out of cab
Pay driver
This sequence of steps is a good set of instructions and as given they might be useful for most people. However, if you wanted to you could take any one of the steps above and expand it into its own sequence of steps. Thus calling the cab might consist of these steps:
Get phone
Find number of nearby cab company
Dial number on phone
Ask for cab to pick you up at your current address
Hang up phone
The challenge in developing a computer program is to both create the algorithms you need and then break them down into smaller and smaller pieces until they finally get to things the computer can understand.
In the software program called Alice, we are given lots of pieces of things that the computer already knows how to do and we try to put them together in interesting ways to create some sort of story. Alice organizes the things a computer can do in an interesting way. It creates different objects that can exists such as a "Skater", "A Rabbit", "A Cellphone", and (especially) "The World." Each of these objects then has a set of parts that either are things it can do (a rabbit can hop) or other parts of it that can do things (a rabbit has an arm which you have the ability to move). With this organization we can easily create new actions that our objects can do and when we get very sophisticated we can actually create new objects.
The most recent version (Alice 3) suffers one disadvantage, namely, that it does not include a built-in tutorial. Hence, we will be using the older version (Alice 2), which we will simply call "Alice".
Alice is available for Linux, Macintosh, and Microsoft Windows. We have installed the Linux version of Alice on erdos, as well as on all of the lab machines. If you want to use Alice on another computer, visit the web page for downloading Alice 2.4, and follow the directions given there.
It's fairly straightforward to launch the Alice program. If you're using one of the Linux machines in our computer lab (Room 812), here's what you do (after you log in, of course):
Alice
icon on your desktop, simply
double-click it.alice &
If you're not using one of the Linux machines in the computer lab (i.e., if you're working at home), then you'll need to adjust your workflow; this will be somewhat similar to what you had to do if you were using Kompozer remotely when working on the web project.
Now in the program, click on the Tutorial tab, and then click and open Tutorial 1. Complete the Tutorial, and then return here and write up answers to the following questions.
Name the object that you worked with in Tutorial 1.
What was the name Alice gave to the things that objects could do?
What are some of the things the object in Tutorial 1 could do?
How did you select the object you wanted to work with?
How did you add new actions to the current skating routine?
Now go back and do Tutorial 2 (you can always find the tutorials by looking under the help menu). Then return here and answer the following questions about Part 2:
Name the three objects that were involved with Tutorial 2.
What is the name of the method you created?
What is the name of the method you edited?
What were the set of steps in the method that you create?
Where did the method you created get used?
Once you have answered these questions, email them to me at agw ATSIGN dsm.fordham.edu (sorry about the obfuscation---it should help with spam).
Once you have completed the tutorial, you might want to read this brief overview about Alice programming.
End of Part I. Continue to Part II.
[*] Randy Pausch was Professor of Computer Science, Human-Computer Interaction and Design at Carnegie-Mellon University. His last lecture ("Really Achieving Your Childhood Dreams") has garnered world-wide praise; a book version of same has been in the #1 slot on the New York Times bestseller list.
[**] Disclaimer: Your instructor is a Carnegie-Mellon alumnus, but has no conenction with the Alice project.