Alice in Action with Java Chapter 1 Getting Started with Alice 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 • 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 2 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 3 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 4 The Alice Tutorials (continued) Alice in Action with Java 5 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 6 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 7 User Stories (continued) Alice in Action with Java 8 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 9 Storyboard-Sketches (continued) Alice in Action with Java 10 Transition Diagrams • Link the multiple storyboard-sketches • In a movie, transition diagram is a linear sequence Alice in Action with Java 11 Transition Diagrams (continued) 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) 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) Alice in Action with Java 16 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 17 Adding Objects to Alice (continued) Alice in Action with Java 18 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 19 Accessing Object Subparts (continued) Alice in Action with Java 20 Accessing Object Subparts (continued) Alice in Action with Java 21 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 22 Sending Messages (continued) Alice in Action with Java 23 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 24 Testing and Debugging (continued) Alice in Action with Java 25 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 26 Coding the Other Actions (continued) Alice in Action with Java 27 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 28 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 29 The Final Action (continued) Alice in Action with Java 30 Final Testing • First set of actions are performed separately • Final actions are performed simultaneously Alice in Action with Java 31 Final Testing (continued) Alice in Action with Java 32 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 33 Alice’s Details Area • Reflects attributes and behaviors of selected object • Three panes: properties, methods, and functions Alice in Action with Java 34 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 35 The properties Pane (continued) Alice in Action with Java 36 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 37 The methods Pane Alice in Action with Java 38 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 39 The functions Pane (continued) Alice in Action with Java 40 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 41 Alice Tip: Positioning Objects Using Quad View (continued) Alice in Action with Java 42 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 43 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 Alice in Action with Java 44