chapter 6: (expressions,) functions, and if/else first we had animations – they “ran”/played...

Download Chapter 6: (Expressions,) Functions, and If/Else First we had animations – They “ran”/played the same way every time. – Neat, but a bit boring Then we

If you can't read please download the document

Upload: jeffry-black

Post on 26-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

  • Slide 1
  • Chapter 6: (Expressions,) Functions, and If/Else First we had animations They ran/played the same way every time. Neat, but a bit boring Then we had events The user can directly control what happens. But, per event, what happens is the exact same thing (set of instructions) every time What if you want your world to react based on other characteristics? What if you want your plane to burst into flame if it tries to fly into the ground? Before we get to if statements, we need functions to allow us to calculate when or how things should happen
  • Slide 2
  • Chapter 6.1 Expressions and Functions
  • Slide 3
  • Pick the best description of the purpose of methods and functions in Alice MethodsFunctions APerform actions in the world Return a value B Perform actions in the world C Change the state of the world numerically D Perform actions in the world
  • Slide 4
  • A.Rotate in place, because the move method is called incorrectly B.Roll along, but not in a realistic fashion C.Roll along in a realistic fashion What does the code below do? It makes the ball (assume the ball is 1 meter wide)
  • Slide 5
  • Can a function have parameters? A.No, the goal of a function is to compute/return a value B.No, a function should always compute/return the same value, so it cannot be varied by a parameter to the function C.Yes, a function can compute/return a value that can be varied based on the parameters to the function
  • Slide 6
  • Chapter 6: (Expressions,) Functions, and If/Else What if you want your world to react based on other characteristics? What if you want your plane to burst into flame if it tries to fly into the ground? Before we get to if statements, we need functions to allow us to calculate when or how things should happen
  • Slide 7
  • H Hard-Coded: Not realistic Balls size important Use Expression to Represent math Hide Messy Expression In Function
  • Slide 8
  • Use Expression to Represent math
  • Slide 9
  • Sanity Check: A.Yes, it makes sense that the big ball turns less than the small ball B.No, weve messed something up, the small ball should turn less than the big ball C.I dont believe you you did the math wrong, the way its written the big ball WILL turn more!
  • Slide 10
  • First: Writing Expressions Whose Values Control Action Lets make sure we know the difference between expressions and instructions
  • Slide 11
  • How many of the underlined items result in values? A)1B) 2C)3D) 4E) Dont Know
  • Slide 12
  • An expression cannot stand alone Expressions are a part of an instruction tile Not an instruction all on their own They evaluate to a number like 2. What kind of instruction is 2? They GUIDE how an instruction tile behaves Just like expressions in English Parenthetical expressions are PART of an English sentence (not something you say by itself) The fruit fly, for example, can breed up to ten times in one hour* I was out all night and, consequently, didnt finish my homework *http://www.uhv.edu/ac/newsletters/writing/grammartip2006.08.29.htm AND: Its Purple!
  • Slide 13
  • Transactive Discourse: No monologue-ing! Ask for FeedbackParaphraseJustify Do you agree with and understand me? So, what you said was Why do you say that?
  • Slide 14
  • Use Expression to Represent math Hide Messy Expression In Function Mathematical Expressions: Use them and Hide them away in Functions
  • Slide 15
  • You just need to be able to translate from math format (written) to Alice code Order of operations is taken care of Alice fully parenthesizes 2 + 5* 4 / (4 - 2)
  • Slide 16
  • In Alice: Often you will create expressions with unnecessary parentheses: Its OK Demo (Part 1): Creating that value in Alice Suppose we want to move a hare forward by 2 + 5* 4 / (4 - 2). Start off creating a move forward tile for the hare, and set the amount (initially) to 2 meters. Click on the arrow next to the 2 meters parameter, and (in the drop down menu) Select math Select 2 + then say other and enter 5
  • Slide 17
  • In Alice: Often you will create expressions with unnecessary parentheses: Its OK Demo (cont): Creating that value in Alice Click on the arrow RIGHT next to the 5, select math * other and enter 4 Click on the arrow after this parenthesis select math / other 4 Click on the arrow RIGHT next to the last 4, select math - 2
  • Slide 18
  • Alice specifics: Where is the center? When one object move to another object, its center moves on top of the other objects center But centers vary by object
  • Slide 19
  • Alice specifics: Where is the center? Bee Center: Exact middle of height, width, depth Tulip Center: At base of stem
  • Slide 20
  • Read and Understand Expressions: The code below should make a bee fly to perch PERFECTLY on the top of a tulip If our tulip is 0.3 meters high and our fly is (very big) at 0.1 meters tall (high), how far UP will the bee move in the second instruction? A)0.2 meters B) 0.3 meters C)0.35 metersD) Its not possible to tell E) I dont know
  • Slide 21
  • In Discussion Someone Says: This code will always cause the bee to move up 0.35 meters, no matter how you design your tulip and bee objects A.I agree. The expression must always evaluate to 0.35 because thats the way we designed it B.I disagree. The expression will evaluate to different values based on the heights of our tulip and bee objects C.It depends. We cant tell if thats true or not
  • Slide 22
  • Why is this useful? Multiple Sized Tulip Demo We have a world with multiple tulips in it, they are of varying sizes. We want to USE THE SAME CODE (e.g. not have to write it multiple times) to have the bee fly to the top of any flower Well do it once per flower Write a bee-class method Parameter is what flower to fly to the top of Call that method three times
  • Slide 23
  • Write expression to move to stand with feet on ground Standing perfectly, Feet on ground Feedback Paraphrase Justify
  • Slide 24
  • Putting it all together To control some actions REALISTICALLY we need to calculate values based on objects in the world We write EXPRESSIONS to represent the calculation required Messy expressions can be hidden inside FUNCTIONS (sometimes needing parameters) 1 2 3
  • Slide 25
  • Expression -> Function Demo: Previously, we built up a kind of complex expression that returns a numerical value Create a function to hide away complexity World level function Returns Number Copy old expression to clipboard and drag back into function
  • Slide 26
  • Problem: How to make a RandomGuy walk up the side of a pyramid. Important 3-D facts: Pyramids center is in middle of base Height is the straight up and down height Width/2 forms a triangle with height Where the hypotenuse is the distance up the side of the pyramid a 2 + b 2 = c 2 height*height + width*width Length up side =
  • Slide 27
  • Problem: How to make a RandomGuy walk up the side of a pyramid. Important 3-D facts: Pyramids center is in middle of base Height is the straight up and down height Width/2 forms a triangle with height Where the hypotenuse is the distance up the side of the pyramid a 2 + b 2 = c 2 a b c
  • Slide 28
  • Demo Notes: (note I have started the guy in the correct place) 1) Try to walk up pyramid using pyramids height 2) Build expression to use as parameter to randomGuy.move forward Start with World function square root of pick a default value (like 1) Replace 1 with our expression left to right a bit at a time: pyramids height*pyramids height* (pyramids width / 2) * (pyramids width /2 ) 3) Create a function to hide the complexity Call it sideLength It returns a number Build the expression the exact same way, but replacing the 1 default in the return instruction/tile PLAY: It works!
  • Slide 29
  • The function we wrote
  • Slide 30
  • What is the BEST description of why we would write a function? A.Theres a set of complex actions that can be logically grouped together B.Theres a complex calculation that produces a value needed to control the action C.You need to calculate distances related to objects locations in 3-D space D.I dont know Feedback Paraphrase Justify
  • Slide 31