Presentation on theme: "Created: June 2008 2 “Myth” of programming is too hard out of the equation Students have a visual of what “their” program is doing Syntax frustration."— Presentation transcript:
Created: June 2008 2 “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 3 FREE: Download www.Alice.orgwww.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 12 Students can spend too much time designing the “perfect” world….. Remember the purpose is…. –Programming –Problem solving
Created: June 2008 13 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 14 UP RIGHT FORWARD CENTER POINT
Created: June 2008 19 View relative positions of objects
Created: June 2008 20 Use Scroll to center objects Use Zoom to get a bigger point of view
Created: June 2008 21 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 23 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 24 Click on the DONE button to return to the programming view.
Created: June 2008 25 Solution to the scenario is now composed in the method and event editors.
Created: June 2008 26 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 27 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 28 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 29 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 30 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 31 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 32 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 33 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 34 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 35 How far to buz and how long to buz Click on the create new parameter button in the code editor
Created: June 2008 36 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 37 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 38 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 41 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 42 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 43 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 44 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 45 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 46 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 47 Replace the object (Bee) with the parameter (flowerToGrow).
Created: June 2008 49 The bee can buz and the flowers can grow (The first part of the storyboard is complete) at the same timeNow 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 50 Drag the grow method into the Do together block for each flower created.
Created: June 2008 51 Test the program by pressing the play button Is anything wrong?
Created: June 2008 52 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 53 Drag a Loop into the Do together block How many times do you want to Loop?
Created: June 2008 54 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 55 The bee should turn to face the closet flower and devour it. Which flower is closest? Create a function
Created: June 2008 56 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 57 Click the create new function button Give a name Choose the data type What type?
Created: June 2008 58 Decision making time When is flower vs flower2 closest? Drag an If/Else into the function Initial condition doesn’t matter
Created: June 2008 59 Select world in object tree Replace true in If/Else with a
"name": "Created: June 2008 59 Select world in object tree Replace true in If/Else with a
Created: June 2008 60 Click on flower in the object tree Replace the first value in the a
"name": "Created: June 2008 60 Click on flower in the object tree Replace the first value in the a
Created: June 2008 61 Replace the second value of a
"name": "Created: June 2008 61 Replace the second value of a
Created: June 2008 62 In the else, repeat for flower 2 The last return should be the last flower
Created: June 2008 63 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 65 Create a method called buzForward Parameter for total distance (many options; different ways to complete this task)
Created: June 2008 66 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 67 Make the closestFlower disappear Could add motion or sound as the flower is consumed.
Created: June 2008 69 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 70 Create a world with 3 penguins Line the penguins up side by side Add other objects: a lake, trees, other animals
Created: June 2008 71 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 72 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 73 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 74 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 75 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 76 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 77 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 78 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 79 Introduce a concept with Alice –Methods –Parameters Use other environments to reinforce the concept –Jeroo –Python –Scratch –Java