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.
Alice is available for Microsoft Windows, Macintosh, and Linux. The Windows and Mac versions seem to work pretty well, whereas the Linux version seems to still have some problems (at least as far as the built-in tutorials are concerned). Since Windows is running as a guest operating system on our Linux lab machines, it might be a good idea to use the Windows version (at least until the bugs in the Linux version get fixed). This means that you will need to familiarize yourself with how to run Windows on our lab machines.
Note the following: If you will only be working in our computer laboratory you can skip this download step. You will need to follow these instructions if you will be working from your home computer.
Download and install the Alice Program. The Mac distribution is
available as a dmg (compressed disk image) file, and so
it installs in the usual manner. The Windows version does not install like a
normal program so you will need to follow these directions.
Right-click on the Alice download link, and select "Save Link As" (you can save it to the Desktop).
Go to the desktop and find the folder labeled AliceZip. Right-click on the folder and select Extract All
Follow the directions and extract all the files to a folder called Alice on the desktop
Go into the folder labeled Alice and double click on the icon named Alice to start the program.
Say "yes" if it asks if you want to run the program
Go into the folder called Alice that is on the Desktop. Double-click the Alice icon to get the program started. 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.