Transcript Slide 1
•
“Myth” of programming is too hard out of the equation
•
Students have a visual of what “their” program is doing
•
Syntax frustration is eliminated
•
Allows for more complex algorithm development earlier
Created: June 2008 2
• FREE: Download www.Alice.org
• Installation Options: – load to the computers hard drive and have students save their “
worlds
” on a flash drive – Save Alice and “worlds” on a flash drive Created: June 2008 3
Created: June 2008 4
Created: June 2008 5
This will be your ground or world
Created: June 2008 6
Object Tree Details Panel Create objects Event Editor Code Editor
Created: June 2008 7
• Library of Models are built in 3D • All objects have built in methods and behaviors; but new methods can be added Created: June 2008 8
DRAG & DROP Click on picture then add instance…
Created: June 2008 9
Created: June 2008 10
Created: June 2008 11
• Students can spend too much time designing the “perfect” world…..
• Remember the purpose is….
– Programming – Problem solving Created: June 2008 12
• The yellow box that surrounds the object is called the “bounding box” • Where the lines intersect is the objects center point • Every object has it’s own frame of reference – Forward, backward, up, down, left, right Created: June 2008 13
RIGHT UP CENTER POINT FORWARD
Created: June 2008 14
Created: June 2008 15
1 2 3 4 5 1 2 3 4 5 7 6 7 6
Created: June 2008 16
• Objects do have subparts —check frame of reference • By selecting affect subparts —allows movement of only that part Created: June 2008 17
Larger wing?
Created: June 2008 18
• View relative positions of objects Created: June 2008 19
• Use
Scroll
to center objects • Use
Zoom
to get a bigger point of view Created: June 2008 20
• Add bee – Web gallery Animals Bugs • Add flowers – Local gallery Nature
Flower
class – Move flowers below the ground • How do you simulate “growing”?
• Move down underground and then disappear Created: June 2008 21
Option 1 Option 2
Created: June 2008 22
• The flowers need to appear as if they are growing – flowers move up – get bigger – become visible • Flowers need to be invisible first – click on each flower – click the properties tab – Opacity change from 100% to 0% Created: June 2008 23
• Click on the DONE button to return to the programming view.
Created: June 2008 24
• Solution to the scenario is now composed in the method and event editors. Created: June 2008 25
• A bee is above a green field • Daisies begin growing • The bee flies to the nearest daisy and devours it (yes, we have a mutant bee) • Have the bee turn to face the camera, the flowers begin to grow and the bee buzzes from flower to flower.
Created: June 2008 26
• Select the world object from the object tree • All worlds start with a single method referred to “my first method: – This would be the main in a Java program Created: June 2008 27
• Methods/commands are added by dragging and dropping from the detail panel to the code editor • Select the bee from the object tree • Drag the turn to face method into the code editor Created: June 2008 28
• When adding a method to the code editor if a parameter is required a menu pops up to select the arguments.
• For this scenario chose the camera Created: June 2008 29
• Your program begins: “my first method” should look like this: • Click on the “more” options to see the “other” parameters that can be changed.
Created: June 2008 30
• Click the play button to test your program/view the output What will execute? “my first method” because it is the only event at this point of the program Created: June 2008 31
• The bee will buzz around while the flowers grow.
• Methods are either
world level
or
class level
–
World level methods: can be used by any object
–
Class level methods: are used by only ONE object
Created: June 2008 32
• Create a buz method • Select the bee from the object tree and click on the create method button in the details panel.
Created: June 2008 33
• A naming window pops up for the new method – Illegal names will appear in
RED
• Notice a new tab pops up in the code editor next to your “my first method” • Should your method have parameters?
Created: June 2008 34
• How far to buz and how long to buz Click on the
create new parameter
code editor button in the Created: June 2008 35
• Name the parameter and choose from the list the data type • distance NUMBER • time NUMBER • The buz method now requires 2 parameters Created: June 2008 36
• To buz the bee will move up and then move down • Drag the bee ROLL command into the hop method and fill in the parameters (up) • Drag another move command (down) Created: June 2008 37
• Change the duration of the move to half of the time parameter • Click on the triangle to open the drop down menu • Select math and divide time by 2 Created: June 2008 38
Created: June 2008 39
Created: June 2008 40
• The bee should buz while the flowers grow – Initially the flowers are below the ground and invisible • The flowers will grow by – Appearing above ground – Resizing – Making them visible Created: June 2008 41
• Three different ways to create grow: – You could repeat the actions to grow for each flower and put it in a method – Could make a class level method and then save as a new type of flower – Could make a world level method and send each flower as a parameter. Created: June 2008 42
• Create a new world level method named grow • Add a parameter type object • Make sure you are on the world tab and that you choose the correct TYPE of parameter.
Created: June 2008 43
• Move up, resize, make visible must happen at the same time. • The default in programming is top to bottom in order •
Do together
is a primitive that executes commands together • Drag and drop this structure into the
grow method
Created: June 2008 44
• A Do together Block will execute together • Drag and drop the parameter (flowerToGrow) into the Do together block and select the methods to move up and resize • Change the duration?
Created: June 2008 45
• Choose any object from the object tree – Choose the properties tab • Drag and drop the OPACITY property into the program and change to 100% Created: June 2008 46
• Replace the object (Bee) with the parameter (flowerToGrow). Created: June 2008 47
Created: June 2008 48
• The bee can buz and the flowers can grow (The first part of the storyboard is complete) • Now have the bee turn to face the camera and have the bee buz and the flowers to grow
at the same time Do together
Created: June 2008 49
• Drag the grow method into the Do together block for each flower created.
Created: June 2008 50
• Test the program by pressing the
play
button Is anything wrong?
Created: June 2008 51
• Go to the grow method and alter the amount to move up that makes the flower appear below the bee.
• Flowers take 5 seconds to grow • Have the bee move up and down .25 meters at .05 seconds • How many times will the bee buzz?
Created: June 2008 52
• Drag a
Loop
into the
Do together
block • How many times do you want to Loop?
Created: June 2008 53
Drag and drop and buz method into the loop Select 0.25 meters for distance to buz and 0.5 seconds for time Test Created: June 2008 54
• The bee should turn to face the closet flower and devour it.
• Which flower is closest?
• Create a
function
Created: June 2008 55
• Functions return an answer (we are asking a question that will return an answer) • Create a function to return the flower that is closest to the bee.
• Select world in the object tree and the function tab Created: June 2008 56
• Click the
create new function
button • Give a name • Choose the data type What type?
Created: June 2008 57
• Decision making time • When is flower vs flower2 closest?
• Drag an
If/Else
into the function • Initial condition doesn’t matter Created: June 2008 58
• Select world in object tree • Replace true in If/Else with a
• Click on flower in the object tree • Replace the first value in the a
flower distance to
• Select the bee as the parameter Created: June 2008 60
• Replace the second value of a
• In the else, repeat for flower 2 • The last return should be the last flower Created: June 2008 62
• Go to my first method • Select the bee and drag a turn to face • Pick expressions and then use the function:
closestFlower
Created: June 2008 63
Created: June 2008 64
• Create a method called buzForward • Parameter for total distance (many options; different ways to complete this task) Created: June 2008 65
• Go to my first method and call the bee move method • Pick a dummy value for totalDistance • Replace value with distance from bee to closestFlower minus some offset (do not collide with the flower) Created: June 2008 66
• Make the closestFlower disappear • Could add motion or sound as the flower is consumed.
Created: June 2008 67
Created: June 2008 68
• Expand the program – Add sounds – Add scenery – Add events • Interactive programming can be created by adding events that the program will respond to Created: June 2008 69
•
Create a world with 3 penguins
•
Line the penguins up side by side
•
Add other objects: a lake, trees, other animals
Created: June 2008 70
•
Penguin #1 will flap his wings
•
Now have all 3 penguins flap their wings. You have just completed a Do Together
•
Add on: Have all 3 penguins move forward 2 times
Created: June 2008 71
• Three (3) penguins have planned a surprise party — for each other. A cake mysteriously appears on a table. The penguins each take credit for the cake; instead of fighting they perform an original dance once they realize the party is for all.
• Abstraction must be broken down into small steps Created: June 2008 72
Step 1
: Cake materializes:
Step 2
: Each penguin wants to take credit for the cake and surprise party
Step 3
: Chaos ensues and disaster is averted.
Step 4
: Each penguin celebrates with his own unique dance.
Created: June 2008 73
Step 2
:
CAKE MATERIALIZES
This will be a world method. Actually it is a property of the cake; we want to appear as if the cake is not there…so we will need to This will give the appearance of the cake not being there; then we will need to: This will make it “magically” appear Created: June 2008 74
Step 2
:
TAKING CREDIT Each penguin will have an expression for why the cake appeared (a String is created) the method is: say
Created: June 2008 75
Step 3
:
CHAOS ENSUES
This will be a world method. As we want all the penguins to be able to use this method. We can incorporate parameters (1)
whichPenguin
(2)
whichColor
(3)
distance
Even though all penguins will do the same thing the appearance of doing something different.
Created: June 2008 76
Step 4
:
CELEBRATION
This will be a
class
method. We want each penguin to have a unique dance. A partyDance method will be created for each penguin.
PENGUIN #1 DANCE ROUTINE
Created: June 2008 77
•
Allows the user to determine what will happen during the program.
•
Allowing music to begin at the start of the program: save music and then import into the program.
•
Simple event handler allowing the user to move the camera
Created: June 2008 78
• •
Introduce a concept with Alice
– –
Methods Parameters
Use other environments to reinforce the concept
– – – –
Jeroo Python Scratch Java
Created: June 2008 79
Module 1 —Scratch Module 2 —Alice 2.2—Alice 3.0
Module 3 —Jeroo Module 4 —Robotics Module 5 —Python Module 6 —Hardware,Software,Networks Module 7 —Java Module 8 —Flash Created: June 2008 80
• Stacey Armstrong— – [email protected]
• Cathy Austin— – [email protected]
Created: June 2008 81