Review of Chapter 4 Sections 1 and 2 World-level methods involve two or more objects break a large problem into smaller, logical units follow a design.

Slides:



Advertisements
Similar presentations
CS320n –Visual Programming Class-level Methods and Inheritance – Part 1 Mike Scott (Slides 4-3-1) Thanks to Wanda Dann, Steve Cooper, and Susan Rodger.
Advertisements

Class-level Methods Alice. World / Class Method World method A general method that may refer to multiple objects; not closely associated with any particular.
Class-level Methods and Inheritance Part 1 Alice.
Class-level Methods Chapter 6. Class-level Method Is specific to a class of objects We can give a class new abilities/methods Only involves this one class.
Class-level Methods and Inheritance Alice. Class-level Methods Some actions are naturally associated with a specific class of objects. Examples A person.
Class-level Methods and Inheritance MMP 220 Multimedia Programming This adapted material was prepared for students in MMP220 as as part of a curriculum.
World-level Methods with Parameters Alice. Larger Programs As you become more skilled in writing programs, you will find that your programs quickly begin.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
Repetition Structures
While: Indefinite Loops Alice. Repetition In some situations, we don’t know exactly how many times a block of instructions should be repeated. All we.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Alice: A Visual Introduction to Programming Third Edition.
Repetition: Definite Loops Alice. Repetition In many kinds of animations, especially simulations and games, some actions happen again and again. Example:
Introducing While loops (and random numbers too) Alice.
Alice: A Visual Introduction to Programming Chapter 1 Part 2.
Classes, Objects, and World-level Methods Alice. Programming in Alice© 2006 Dr. Tim Margush2 Class / Object Class A template describing the characteristics.
Programming: Simple Control Structures Alice. Control Statements We have been using Do in order and Do together to control the way instructions are executed.
Classes, Objects, and World-level Methods
Today’s Agenda 1.Collect Pre-Lab 4 2.Alice Programming Assignment Storyboards 3.Classes 4.Objects 5.Methods 6.Assign pair programming teams and meet upstairs.
Classes, Objects, and World-level Methods Alice. Larger Programs As you become more skilled in writing programs, you will find that programs quickly increase.
Classes, Objects, and World-level Methods Alice. Larger Programs As you become more skilled in writing programs, you will find that programs quickly increase.
Class-level Methods Chapter 6 part 1. Classes and Objects Classes o In Alice, classes are predefined as 3D models Objects o An object is an instance of.
Tips & Techniques 4 Visible and Invisible Objects Alice.
Alice Learning to program: Part Three Camera Control, Invisibility, and 3-D Text By Ruthie Tucker and Jenna Hayes, Under the direction of Professor Rodger.
Alice Tips and Techniques. Tips and Techniques I suggest you read the tips and techniques sections at the ends of the chapters. Tells you how to do things.
Alice: A Visual Introduction to Programming Chapter 1 Part 2.
Writing Our Own Functions Alice. Functionality A function receives value(s), performs some computation on the value(s), and returns (sends back) a value.
What we will do today Learn about functions in Alice.
Functions Alice.
Classes, Objects, and World-level Methods Alice. Larger Programs As you become more skilled in writing programs, you will find that programs quickly increase.
Variables and Functions Alice. Naming is Important If you get a new pet one of the first things you do is name it Gives you a way to refer to the new.
Functions Sec 8-11 Web Design. Objectives The Student will: Understand what a function is Know the difference between a method and a function Be able.
Programming: Simple Control Structures
Questions Alice. Functionality A question receives value(s), performs some computation on the value(s), and returns (sends back) a value.
Class-level Methods and Inheritance Alice. Class-level Methods Some actions are naturally associated with a specific class of objects. Examples A person.
CompSci 4 Chap 4 Sec 3 Sept 23, 2010 Prof. Susan Rodger.
Headshots in Alice Duke University Professor Susan H. Rodger Gaetjens Lezin July 2008.
Class-level Methods and Inheritance Alice. Class-level Methods Some actions are naturally associated with a specific class of objects. Examples A person.
Variables and Inheritance Part 1 Alice. Review: Properties A class defines properties for its own kind of object. When an object is created (instantiated),
1 Quiz Show Programming Terms. 2 Alice - 3D Virtual Programming Vocabulary Quiz Board Chapter 1 Chapter 2a Chapter 2b Chapter 3 Chapter 4 $100 $200 $300.
Tips & Techniques 4 Visible and Invisible Objects
Classes, Objects, and World-level Methods
Functions Sec 51 Web Design.
Learn about functions in Alice
While: Indefinite Loops
Functions Sec 8-11 Web Design.
Classes, Objects, and World-level Methods
World-level Methods with Parameters
Learning Java with Alice 3.0 Game Design Kathy Bierscheid
CS320n –Visual Programming
Classes, Objects, and World-level Methods
Programming: Simple Control Structures
Class-level Methods Alice.
Classes, Objects, and World-level Methods
Programming: Simple Control Structures
Parameters and World-level methods
Programming: Putting Together the Pieces Built-in Functions and Expressions Alice.
Programming: Simple Control Structures
Programming: Simple Control Structures
Functions Alice.
Programming: Simple Control Structures
Learning to Program: Part 3 Camera Control, Invisibility and 3-D Text
Functions Alice.
Tips & Techniques 4 Visible and Invisible Objects
Programming: Simple Control Structures
Classes, Objects, and World-level Methods
Class-level Methods and Inheritance
Functions Alice.
Functions Alice.
Class-level Methods and Inheritance Part 2
Presentation transcript:

Review of Chapter 4 Sections 1 and 2 World-level methods involve two or more objects break a large problem into smaller, logical units follow a design process called stepwise refinement make the program more organized, easier to edit and debug, and allow the re-using of code (by calling the method more than once)

Parameters Allow methods to be “generic” i.e. reusable with different values Types are Number Boolean Object Other (such as sound or color)

Parameters The value to be used by the method is sent via an argument in the method call The “calling” method sends the specific value The method executes its code using that value

Class-level Methods and Inheritance Chapter 4, Section 3

Class-level Methods Some actions are naturally associated with a specific class of objects. Examples A person walking A wheel rolling We can write our own methods to define an action for a specific class of objects -- a class-level method.

An example (building technique) How can we create a skate method for ice skater objects? We need to: (1)tell Alice to associate the new method (the one we are about to write) with an ice skater, and (2)write a new method to animate the ice skater skating.

Demo: The solution First, to associate the animation with the ice skater select the iceSkater tile in the Object Tree select the methods tab in the details panel click on the create new method button

Storyboard for skate The slide actions each require several motion instructions, so we will break down these two actions into smaller steps Skate: Do together move skater forward 2 meters Do in order slide on left leg slide on right leg

Stepwise Refinement Refinement of slideLeft Do in order Lift right leg and turn upper body forward Lower right leg and return body upright Skate: Do together 1) move forward 2 meters 2) Do in order slideLeft slideRight Refinement of slideRight Do in order Lift left leg and turn upper body forward Lower left leg and return body upright

Demo Ch04Lec3Skater Concepts illustrated in this example world A method defined for a specific type of object defines an action for that object. A method can call other methods. In this example, the skate method calls slideRight and slideLeft.

Reuse Writing methods to make an ice skater perform a skating motion is an intricate task. We would like to have the iceSkater skate in other worlds without having to write the methods again. The idea of being able to use previously written program code in another program is known as reuse.

A new class 1) Rename iceSkater as cleverSkater. 2) Save out as a new class. Alice saves the new class as CleverSkater.a2c

Inheritance The CleverSkater class inherits all the properties and methods from the original IceSkater class, and also has the newly defined methods (skate, slideLeft, slideRight) In other programming languages, the concept of creating a new class based on a previously defined class is called inheritance.

Importing CleverSkater An instance of the CleverSkater class can be added to a new world – use File|Import.

Guidelines To avoid potential misuse of class-level methods, follow these guidelines: Avoid references to other objects Avoid calls to world-level methods Play a sound only if the sound has been imported and saved out as part of the new class If these guidelines are not followed and an instance of the new class is added to another world, Alice will open an Error dialog box to tell you something is wrong.

Bad Example What if there is no penguin in the new world where a cleverSkater object is imported?

Problem Suppose you really want to write a class-level method where another object is involved? For example, a method to make the skater skate around another object-- in this scene, the penguin.

Parameter A solution is to write a class-level method with an object parameter that allows you to pass in the specific object. cleverSkater.skateAround Parameter: whichObject Do in order Do together cleverSkater turn to face whichObject cleverSkater lift right leg cleverSkater move to whichObject cleverSkater turn around whichObject

Translation to Code Most of the skateAround storyboard design is straightforward and easy to code. One step, however, requires some thought: cleverSkater move to whichObject -- what distance should the cleverSkater move?

Calling a built-in function The instruction to move the skater to whichObject (penguin, in this example) would look like this: Unfortunately, the skater will collide with the penguin because the distance between two objects is measured center-to-center.

Expression To avoid a collision, use a math operator to create an expression that adjusts the distance. Math operators in Alice: addition + subtraction  multiplication * division / Example:

Demo Ch04Lec3SkateAround Concepts illustrated: A parameter acts as a placeholder for the object that will be passed in A call to the distance to function returns a number value A math expression can be created as part of an instruction

Tips & Techniques 4 Visible and Invisible Objects

Opacity Opacity is a measure of how "see- through" an image or an object is. The less opaque an object is, the more see- through it is. Opacity of 100%, cannot see through the object Opacity of 0%, object is transparent (like clear glass) In Alice, an object with an opacity of 0% is invisible.

Changing the Opacity A change in opacity can be used to simulate real world conditions. Example A fish swimming away from the camera should fade away because water blurs our vision of distant objects.

Demo Ch04Lec4LilfishOpacity Concepts illustrated in this example As opacity is gradually decreased, the fish becomes less visible. At an opacity of 0%, the object is still in the world (can still see it listed in the object tree) but is effectively invisible.

isShowing The isShowing property has a Boolean value, either true or false. Setting an object's isShowing property to false makes the object invisible in the world. Once again, the object is not removed from the world, it is simply not visible in the world.

Demo Ch04Lec4ChickenIsShowing Concepts illustrated in this example A billboard can be used to display a title screen for the animation. A 2-second wait gives the user time to read the billboard. Changing the isShowing property to false makes the title screen disappear.

Two properties isShowing and opacity are two different properties. isShowing works like an on/off switch opacity works like a dimmer switch Although each can be used to make an object invisible, changing one does not automatically change the value of the other!

Practical Uses of Invisible Objects An invisible object is sometimes useful as a stationary marker that creates a target for a move to instruction an external reference point for object rotational motion

Demos Ch04Lec4InvisibleTarget Invisible circle makes it possible to move the object to a landing target. Ch04Lec4InvisibleReferencePoint External reference point acts as a pivot for the rotational movement of each object.

Assignment Chapter 4, Section 3 Lab For next time: Read Chapter 5, Section 1 Create storyboard for Project 2Project 2