CS329e – Elements of Visual Programming

CS320n – Elements of Visual
Programming
Introduction to Alice
Mike Scott
(Slides 1-1)
What We Will Do Today
• look at the Alice programming environment
• create some simple programs in Alice
Visual Programming
Introduction to Alice
2
What is Alice?
• Named in honor of Lewis Carroll’s (pen
name) Alice in Wonderland
– Charles Lutwidge Dodgson was also a
mathematician and logician
• A modern programming tool
– purpose of tool, learn how to program, write
algorithms
– 3-D graphics
– 3-D models of objects
• Animation
– Objects can be made to move around virtual
world (a simulation or a video game. Simple
Pixar.)
Visual Programming
Introduction to Alice
3
Computer Programs
• General purpose programming languages
can be used for almost any task
• Alice is not a general purpose
programming language.
– It is an application specific language
– designed for a specific task, creating 3D
animations
– lots of application specific languages.
Example: language for working with DNA data
Visual Programming
Introduction to Alice
4
Fundamental Tools
•
All languages contain these elements
1. list of instructions – “Pack lunch, pack snack, put
homework in backpack.”
2. decision making – “If I didn’t shave yesterday, shave
today.”
3. repetition of behavior – “Do a load of laundry until
there is no more dirty laundry.”
4. modularization. Big rocks into little rocks. “To do a
load of laundry: gather clothes, get clothes rightside out, put clothes of similar color into washing
machine…”
5. Generalization: Solve many different problems with
one set of instructions
6. Compute a result – “How much is it going to cost to
fill up my car with gas?”
Visual Programming
Introduction to Alice
5
What does Alice run on?
• Alice is free.
• Alice is written in Java
– only working versions are for PCs and Macs
with OSX 10.3 or higher (relatively new, may
still have bugs)
– Sorry, no Linux, yet
– the book comes with a copy of Alice for
Windows machines
– www.alice.org
– also on the computers in the CS Elements lab
Visual Programming
Introduction to Alice
6
Fast Start Up
• Can quickly learn to create
– a simple animation in a matter of minutes
– a non-trivial animation in a few class periods
• Can learn to use the Alice interface in a
few class periods if you do a couple of
exercises at home
Visual Programming
Introduction to Alice
7
Installing Alice
• If you want to install Alice on you computer at home
– use the CD that comes with the textbook
• CD installation is straightforward
– download Alice from the web
• http://www.alice.org/downloads/authoringtool/
• file format is .zip
• must “unzip” file using a program such as winzip
• problems? post to newsgroup
Visual Programming
Introduction to Alice
8
Memory Management
• Alice automatically manages memory
• But, writing and testing an animation is an
intense load on the computing system
– a crash can occur.
• Best solution:
• Alice (the program) reminds you every so often
so save your work
• save your programs often!
• if working in lab when you logout the computer is
wiped -> save to your account or to a backup
system such as a memory stick
Visual Programming
Introduction to Alice
9
The Power of Alice
• Automatically keeps track of 3-D objects
– what objects are in the virtual world
– types of objects
– positions of objects in the world
Visual Programming
Introduction to Alice
10
Demo
•
•
•
•
•
Starting Alice
Loading a World
Running A World
Saving a World
How to Exit
Visual Programming
Introduction to Alice
11
The World
• Alice Programs / Movies take place in a
virtual world
• When you start a new world in Alice you
select the background
•The world consists
of a sky and the ground
•Can’t be changed after
creating the world
•the world is not infinite
DEMO
(I don’t like roller
coasters any more)
Visual Programming
Introduction to Alice
12
Objects in Alice
• Objects already exist. Hundreds of them
Visual Programming
Introduction to Alice
13
Program an Object
Visual Programming
Introduction to Alice
14
Where Do Objects Come From?
• They are pre built
– creating 3D objects is another area of computing and graphic
design
• Sources of 3D objects
– the local gallery that comes with the software
– Alice web gallery
• How are objects added to the world?
Visual Programming
Introduction to Alice
15
Adding Objects
• Click on the green “Add Objects” button
• World expands and local gallery displayed
Visual Programming
Introduction to Alice
16
Adding Objects
• Local gallery divided into a directory based
on subject
• add instances of objects to world by
– dragging and dropping or
– click on object and select add instance option
Visual Programming
Introduction to Alice
17
Objects in the World
• Can have multiple instances of objects
from the same class in the World
– class: like a cookie cutter
– objects: like the cookies
star cookie cutter
star cookie class
Visual Programming
star cookies
star cookie objects
Introduction to Alice
18
Objects in the World
penguin class
Visual Programming
penguin objects in a virtual world
Introduction to Alice
19
Objects in the World
• The Objects that are present in the current
world are listed in the Object Tree
• The top left panel in the Alice
programming environment
• Every world comes with a
light, a camera (point of
view for the movie when
played), and the ground
Visual Programming
Introduction to Alice
20
Object Dimensions
• Objects in Alice worlds are 3 dimensional
height
Visual Programming
width
Introduction to Alice
depth
21
Object Position
• Objects
– are positioned in 3-D space
– Have six degrees of freedom (directions of movement)
Visual Programming
Introduction to Alice
22
Objects “Know” Relative Directions
• Yellow box around
penguin is its
bounding box
• light blue line is
up/down
• pink line is
left/right
• dark blue line is
forward backward
• DEMO
Visual Programming
Introduction to Alice
23
Exercises
• if you want to work at home, install Alice on
your computer
• Complete Appendix A, Part 1, using Alice
– a walkthrough of using Alice
• Complete the tutorials that come with Alice
Visual Programming
Introduction to Alice
24
Starting Tutorials
Visual Programming
Introduction to Alice
25