Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction...

26
8/28/2012 1 Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides Credit: Joel Adams, Alice in Action CS120 Lecture 01 28 August, 2012 Alice A modern programming tool 3-D graphics 3-D models of objects Animation Objects can be made to move around the virtual world (a video game or simulation implemented in 3-D) Two kinds of animations: Movie: passive user watches the animation Interactive: active user clicks on mouse, types a key on keyboard … Actions of user are called events

Transcript of Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction...

Page 1: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

1

Introduction to Alice

Alice is named in honor of

Lewis Carroll’s Alice in Wonderland

Slides Credit: Joel Adams, Alice in Action

CS120 Lecture 01

28 August, 2012

Alice A modern programming tool

3-D graphics

3-D models of objects

Animation

Objects can be made to move around the

virtual world (a video game or simulation

implemented in 3-D)

Two kinds of animations:

Movie: passive user watches the animation

Interactive: active user clicks on mouse, types a key

on keyboard …

Actions of user are called events

Page 2: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

2

Demo: Getting started

Starting Alice

Load and run a world

FairyCourt(movie)

HelicopterSimulation(interactive)

First program: Alice and

WhiteRabbit welcome us to their

world (movie)

4

Getting and Running Alice

Alice software is freely distributed

Downloading Alice

Go to the website: http://www.alice.org

Click the link Get Alice 2.2

Click download link specific to your operating system

Save Alice.zip (or Alice.dmg) to your PC

Installing and running Alice

Extract Alice from Alice.zip (or Alice.dmg) file

Create desktop shortcut (alias) to Alice.exe

Double-click Alice icon to launch Alice application

Page 3: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

3

5

The Alice Tutorials (continued)

Go through the

tutorials to learn the

basics of Alice

Alice in Action with Java 6

Program Design We don’t start with writing program code,

very much the same as filmmaker don’t

start with filming, rocket scientists don’t start

with building rockets

We start with design!

Design is very important and affects the

correctness and efficiency of the solution

Design needs to revised, improved…

Page 4: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

4

Alice in Action with Java 7

User Stories Contain

Basic description of what happens when program

runs

Nouns in story (Alice, the White Rabbit) correspond to

objects

Verbs correspond to actions, responses to messages

Chronological flow describes the sequence of the

actions

When the program begins, Alice and the White Rabbit are facing

each other, Alice on the left and the White Rabbit on the right.

Alice turns her head and then greets us. The White Rabbit also

turns and then greets us. Alice and the White Rabbit introduce

themselves. Simultaneously, Alice and the White Rabbit say

“Welcome to our world.”

Alice in Action with Java 8

The Flow of User Story A numbered sequence of objects and actions

1. Alice turns her head toward the user

2. Alice greets the user

3. The white rabbit turns toward the user

4. The white rabbit greets the user

5. Alice introduces herself

6. The white rabbit introduces himself

7. Simultaneously, Alice and the white rabbit say

“Welcome to our world.”

Page 5: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

5

Alice in Action with Java 9

Algorithms An algorithm is a sequence of step to solve a problem or perform a

task

Example algorithms:

The flow of a user story

Driving directions

Cooking instructions

Installation instructions

Algorithms for search of records in phonebook, database, web…

Algorithms for displaying, editing, animating pictures…

Algorithms are generally not tied to programming languages

Their implementations do

Alice in Action with Java 11

Transition Diagrams

Link the multiple storyboard-sketches

In a movie, transition diagram is a linear

sequence

In the first Alice program, there will be

7 actions

Page 6: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

6

Alice in Action with Java 12

Programming Implementation in Alice

Templates provide a basic world environment

Sample program is based on the “grass” Template

Areas in the Alice window

Menus: includes File, Edit, Tools, and Help

Buttons: includes Play, Undo, and Redo

Object tree: lists all world objects; e.g., ground

Details area: includes properties, methods, functions

World window: displays graphic objects in a program

Editing area: includes editing space and controls

Events area: contains actions responding to events

Alice in Action with Java 13

Programming Implementation in Alice

(continued)

Page 7: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

7

Alice in Action with Java 14

Program Style Change program display styles in Preferences

How to access Preferences dialog box

Click the Edit menu

Click the Preferences choice

Selecting a display style in Preferences dialog

Click next to “display my program” in General tab

Select a style

Style recommended for course: Java Style in

Color

Alice in Action with Java 15

Program Style (continued)

(We are aware of a problem with this setting. It’s ok to

keep it as Alice style.)

Page 8: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

8

Demo: A new world

Create a new world

File New

Choose template

Objects

An "object" is

any thing that can be identified as unique from other things

How is an object unique?

has a name

has properties: width, height, color, location

can perform actions (methods): associated actions it can perform

tasks it can carry out

Page 9: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

9

Object Parts

Objects may be composed of parts

Class Objects are categorized into classes

Each object is

an instance of the class.

All objects in a class have similar properties and generally can perform the same tasks.

Person

Dogs

peter

mary

paul

spike

scottie

fluffy

Page 10: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

10

Alice in Action with Java 20

Adding Objects to Alice

Class: blueprint for an object

How to populate Alice world with objects

Click Add Objects button in world window

Locate class specifying the object in the Alice Gallery

Right-click class and select “Add instance to world”

Objects in sample world: aliceLiddell and whiteRabbit

Naming conventions for objects and classes

Class: capitalize all words; e.g., AliceLiddell

Object: capitalize all but first word; e.g., aliceLiddell

Objects can be renamed from the object tree

Demo: Adding objects

Page 11: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

11

Galleries

Classes (3D models) are found in the galleries

Local gallery (installed with the software)

Minimum or complete options

Web gallery

Alice in Action with Java 23

Adding Objects to Alice (continued)

Page 12: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

12

Demo: Saving a world

Writing and testing an animation is an

intense load on the computing system – a

crash can occur.

Best solution: save your world every 15 minutes

(Or at least every half hour)

also save to a backup system

(for example, a zip disk or memory key)

Alice in Action with Java 25

Accessing Object Subparts

Bounding box: encloses any Alice object

Impact of selecting an object in the object tree Bounding box is drawn around object in world window

Details area adapts to the selected object

First action to program: Alice turns head to user

First set of programming steps Select + sign next to aliceLiddell in object tree

Select + sign next to neck subpart

Select head (bounding box is drawn, details change)

Drag doInOrder control to top of editing window

Page 13: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

13

Alice in Action with Java 26

Accessing Object Subparts

(continued)

Alice in Action with Java 27

Accessing Object Subparts

(continued)

Page 14: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

14

Alice in Action with Java 28

Sending Messages

Alice programs rely on sending messages to

objects

Objects’ methods deliver actions in response to

messages

Programming Alice’s head to turn

Select Alice Liddell’s head in the object tree

Scan through the methods in the details area

Click on pointAt()

Drag pointAt()to the editing area and drop it

Specify camera as the target

Alice in Action with Java 29

Sending Messages (continued)

Page 15: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

15

Alice in Action with Java 30

Testing and Debugging

Bug: error interfering with normal program

functions

Debugging: process of removing program

bugs

Click the Play button to test Alice Liddell

application

Alice Liddell’s head will turn toward the user

Alice in Action with Java 31

Testing and Debugging (continued)

Page 16: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

16

Alice in Action with Java 32

Coding the Other Actions

say() message

Displays dialog for an object

Text can be customized by selecting other…

Task: complete first Alice Liddell application

Add Alice Liddell’s initial greeting

Point the white rabbit to the user

Have Alice Liddell introduce herself

Have the white rabbit introduce himself

Customize messages by selecting from more…

Example: adjust fontSize of message text to 25

Alice in Action with Java 33

Coding the Other Actions (continued)

Page 17: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

17

Alice in Action with Java 34

Statements/Instructions

Statement/instruction: a line or control structure

in a program that executes (is carried out by

computer at runtime)

Program: a set of instructions that tell the

computer what to do

Basic format of a line in an Alice program

object.message(value); more...

Control structures manage other statements

Example: doInOrder contains other statements

Alice in Action with Java 35

The Final Action

Sequential execution

Actions are performed consecutively

Example: actions executed in doInOrder structures

Simultaneous execution

Actions are performed in parallel

Example: actions performed in doTogether structure

Finishing the first program

Add doTogether control structure to application

Send say( )to aliceLiddell and whiteRabbit

Message value: Welcome to our world

Page 18: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

18

Alice in Action with Java 36

The Final Action (continued)

Alice in Action with Java 37

Final Testing

First set of actions are performed

separately

Final actions are performed

simultaneously

Page 19: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

19

Alice in Action with Java 38

Final Testing (continued)

Alice in Action with Java 39

The Software Engineering Process

A methodical, disciplined approach to constructing programs

Multiple parts

(problem specification,) design, implementation, testing (, revising..)

Elements of software design

Write the user story

Organize nouns and verbs into an algorithm

Create storyboard-sketches and the transition diagram

Elements of software implementation and testing

For each noun in the story, add an object to Alice world

Match message to verb and send message to object

Test message to determine if it produces desired action

Page 20: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

20

Alice in Action with Java 40

Alice’s Details Area

Reflects attributes and behaviors of

selected object

Three panes: properties, methods, and

functions

Alice in Action with Java 41

The properties Pane

Includes attributes such as color, opacity, visibility

Change values to alter object appearance/behavior

Example: make the White Rabbit disappear

Click opacity in the properties pane

Drag opacity to the editing area

Set opacity to 0

Change the duration to 2 seconds

How a program changes when a property is altered

New message is added to editing area

In the example above, a set () message is added

Page 21: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

21

Alice in Action with Java 42

The properties Pane (continued)

Alice in Action with Java 43

The methods Pane

Provides a list of behavior-generating

messages

In Object Oriented Programming, an

instruction targeting an object is said to be

a method.

To get an object to perform a behavior, send

that object a message that asks it to produce

that behavior

E.g. aliceLiddle.say(…)

Page 22: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

22

Alice in Action with Java 44

Methods

Alice Objects have predefined

methods for basic tasks

Additional methods may also be

created by Alice developers Two reasons for building your own methods

To organize your story into more manageable pieces

To provide an object with additional behaviors

Alice in Action with Java 45

The methods Pane

Page 23: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

23

Alice in Action with Java 46

The functions Pane

Provides list of information returning messages

Differentiate functions from methods

Functions return data, messages produce behavior

Type of information returned by functions

Proximity to another object

Size in terms of height, width, or depth

Spatial relation to another object

Point of view (position and orientation in the world)

Subparts

world object responds to different set of functions

Alice in Action with Java 47

The functions Pane (continued)

Page 24: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

24

Alice in Action with Java 48

Alice Tip: Positioning Objects

Using Quad View Actions performed after pressing ADD OBJECTS

Navigate the Alice Gallery

Locate classes

Use classes to add objects to the world

Two views: single view and quad view

quad view

World window

View from the top

View from the right

View from the front

Alice in Action with Java 49

Alice Tip: Positioning Objects Using

Quad View (continued)

Page 25: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

25

Techniques and Tools

Mouse is used to approximately position objects in the scene

Camera Navigation is used to set the camera point of view

Drop-down menu methods are used to resize objects

more precisely position objects in the scene

Quadview is used to position one object relative to another object

Alice in Action with Java 51

Summary

Alice: software tool used to create virtual worlds

User story: prose description of program form the user’s

point of view

Shot: component of a scene with the camera at one

viewpoint

Algorithm: flow of actions that solves a problem

Storyboard-sketch: drawing of a distinct screen in a

computer application

Page 26: Introduction to Alice - Department of Mathematics and ...jmagee/cs120/slides/cs... · Introduction to Alice Alice is named in honor of Lewis Carroll’s Alice in Wonderland Slides

8/28/2012

26

Alice in Action with Java 52

Summary (continued)

Alice window: menus, buttons, object tree, details

area, world window, editing area, and events

area

Class: blueprint for an object

Method: behavior-producing message

Function: message that returns information

Software engineering encompasses software

design, and implementation and testing

Student To-Do

Install Alice 2.2 or 2.3 on your own

computer.

Read Chapter 1 (Adams)

Complete the Alice tutorials

Create your own hello world program