ch01 - Computer Science

advertisement
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
Download