alice in action with java - karlstad university · alice in action with java 2 ... – click...

45
Alice in Action with Java Chapter 1 Getting Started with Alice

Upload: phambao

Post on 27-Jul-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Alice in Action with Java

Chapter 1Getting Started with Alice

Alice in Action with Java 2

Objectives

• Design a simple Alice program• Build a simple Alice program• Animate Alice objects by sending them messages

• Use the Alice doInOrder and doTogether controls

Alice in Action with Java 3

Objectives (continued)

• Change an object’s properties from within a program• Use Alice’s quad view to position objects near one

another

Alice in Action with Java 4

Getting and Running Alice

• Alice software is freely distributed• Downloading Alice

– Go to the website: http://alice.org – Click the link Get Alice 2.0– 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

Alice in Action with Java 5

The Alice Tutorials

• Four interactive tutorials teach the basics of Alice • Work through tutorials before continuing in chapter• Access tutorials from Tutorial tab of startup dialog

• Developing programs involves art and science

• Active learning: implementing designs as you read

Alice in Action with Java 6

The Alice Tutorials (continued)

Alice in Action with Java 7

Program Design

• Programming in Alice is similar to filmmaking • Filmmaking terms

– Treatment: short prose version of a film

– Screenplay: written version of film that includes dialog – Scene: a piece of the story usually set in one location– Shot: part of scene told with camera in one position– Viewpoint: perspective of camera for a given shot– Storyboard: drawing that provides blueprint for a shot

Alice in Action with Java 8

User Stories

• Prose versions of programs from user perspective• Critical components of a user story

– A basic description of events taking place in the story

– Nouns in the story (which correspond to objects)– Verbs in the story (which correspond to actions)– Chronological flow of actions (algorithm)

• User story is the foundation of good software• The user story plays a role similar to a screenplay

• Guideline: number actions according to their flow

Alice in Action with Java 9

User Stories (continued)

Alice in Action with Java 10

Storyboard-Sketches

• Storyboard– Detailed drawing of a shot– Arrows show movements of characters or camera

• Collection of storyboards helps actors visualize film

• Storyboard-sketch: storyboard for application screen

• Components of a storyboard-sketch:– Object’s position (location)– Object’s pose (position of limbs, if it has any)

– Object’s orientation (direction it is facing) – Camera’s viewpoint

Alice in Action with Java 11

Storyboard-Sketches (continued)

Alice in Action with Java 12

Transition Diagrams

• Link the multiple storyboard-sketches• In a movie, transition diagram is a linear sequence

Alice in Action with Java 13

Transition Diagrams (continued)

Alice in Action with Java 14

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 15

Programming Implementation in Alice (continued)

Alice in Action with Java 16

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 17

Program Style (continued)

Alice in Action with Java 18

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

Alice in Action with Java 19

Adding Objects to Alice (continued)

Alice in Action with Java 20

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

Alice in Action with Java 21

Accessing Object Subparts (continued)

Alice in Action with Java 22

Accessing Object Subparts (continued)

Alice in Action with Java 23

Sending Messages

• Programs rely on sending messages to objects• Method: behavior-producing message • 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 24

Sending Messages (continued)

Alice in Action with Java 25

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 26

Testing and Debugging (continued)

Alice in Action with Java 27

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 30

Alice in Action with Java 28

Coding the Other Actions (continued)

Alice in Action with Java 29

Statements

• Statement: a line or control structure in a program• Computer program is a collection of statements• Basic format of a line in a program

– object.message(value); more...

• Control structures manage other statements– Example: doInOrder contains other statements

Alice in Action with Java 30

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

Alice in Action with Java 31

The Final Action (continued)

Alice in Action with Java 32

Final Testing

• First set of actions are performed separately• Final actions are performed simultaneously

Alice in Action with Java 33

Final Testing (continued)

Alice in Action with Java 34

The Software Engineering Process

• A methodical approach to constructing programs

• Two parts: design and implementation and testing• 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

Alice in Action with Java 35

Alice’s Details Area

• Reflects attributes and behaviors of selected object• Three panes: properties, methods, and functions

Alice in Action with Java 36

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

Alice in Action with Java 37

The properties Pane (continued)

Alice in Action with Java 38

The methods Pane

• Provides a list of behavior-generating messages• Objects respond to set of predefined basic messages

– Example: the resize( ) message

• Some classes provide advanced methods– Examples: Frog, Monkey, Penguin

• You can build complex animations using methods

Alice in Action with Java 39

The methods Pane

Alice in Action with Java 40

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 41

The functions Pane (continued)

Alice in Action with Java 42

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 43

Alice Tip: Positioning Objects Using Quad View (continued)

Alice in Action with Java 44

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

Alice in Action with Java 45

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