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