CS320n - PowerPoint PPT Presentation

About This Presentation
Title:

CS320n

Description:

CS320n Visual Programming. Class-level Methods and Inheritance Part 1. Mike Scott (Slides 4-3-1) Thanks to Wanda Dann, Steve ... Anecdote 2: Finding Nemo. ... – PowerPoint PPT presentation

Number of Views:102
Avg rating:3.0/5.0
Slides: 21
Provided by: sco1
Category:
Tags: cs320n | finding | nemo

less

Transcript and Presenter's Notes

Title: CS320n


1
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 for slides
2
Reminders
  • Assignment due tonight by 11 pm

3
What We Will Do Today
  • Learn about class level methods and inheritance
  • class work

4
Animated Actions
  • Some actions are more naturally associated with a
    specific class of objects rather than with the
    overall world.
  • Examples
  • A person walking
  • A wheel rolling
  • A fish swimming
  • If the action involves 2 or more objects in the
    world it should be a world level method

5
Class-level Methods
  • Write a method to add abilities / functions /
    actions / behaviors to a specific class of
    objects
  • class-level method
  • NOT world-level methods
  • Demo how to build class-level method

6
An Example
  • How can we create a skate method for ice skater
    objects?
  • We need to
  • create a new method for the ice skater
  • add code to the new method to make it look like
    the skater skates

7
Demo The solution
  • First, to associate the behavior with the ice
    skater
  • select the iceSkater tile in the Object Tree
  • select the methods tab in the details area
  • click on the "create new method" button

8
Storyboard for skate
Skate Do together move skater
forward 2 meters Do in order slide
on left leg slide on right leg
  • The slide actions
  • require several motion instructions
  • so well break these two actions into smaller
    pieces
  • a technique known as stepwise refinement (and
    abstraction)

9
An Aside
  • Shouldnt the skater already know how to skate?
  • Should people already know how to walk?
  • The objects in Alice are simply 3D models created
    in other programs
  • articulating, coloring, setting center point
  • When added to Alice all objects have certain
    basic behaviors, move, turn, roll,
  • programmers must write code for more complex
    behaviors
  • CLASS-LEVEL METHODS!

10
But This Seems So Hard
  • Anecdote 1 Show Kelly Scott anything cool the
    computer does
  • Anecdote 2 Finding Nemo. Making the viewer
    believe Dory can barely say what she is thinking
    and how sad she is
  • It is hard. It is complex. Take a look at the
    penguin method walk

11
Penguin Method Walk
and there is more after this. Bottom line.
Interesting behaviors are usually complex
12
Refined storyboard for skate

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
13
Writing the code
  • The next step is to translate the design into
    program code.
  • For the slideLeft method, a possible translation
    is
  • Design step Instruction
  • Lift the right leg turn the right
    thigh forward
  • Turn upper body forward turn the upper body
    forward
  • Lower the right leg turn the right thigh
    backward
  • Return the body upright turn the upper body
    backward

14
Demo
  • Demonstration of
  • slideLeft
  • slideRight
  • skate
  • Could we parametize slideLeft and slideRight?
  • should we?

15
Correspondence of design to code
Skate Do together move skater
forward 2 meters Do in order slide
on left leg slide on right leg

16
Question
  • Writing the methods to make an ice skater perform
    a skating motion is an intricate task.
  • Most likely, you would like to reuse these new
    methods in other worlds.
  • How can you make the skate method available for
    an ice skater in a different world?
  • any other ice skaters in this world DO NOT know
    how to skate

17
Answer Save out as a new class
1) Rename iceSkater as advancedSkater. 2) Save
out as a new class. Alice saves the new class as
AdcancedSkater.a2c
18
Inheritance
  • The AdvancedSkater 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.
  • object oriented programming. As opposed to
    procedural programming or functional programming
    o or

19
Using CleverSkater
  • An instance of the CleverSkater class can be
    added to a new world use FileImport.

20
Benefits of Inheritance
  • Inheritance supports
  • the reuse of program code -- allows the
    programmer to write code once and use it again
    later in different programs.
  • sharing code with others in a team project
  • The best code in your program is the code you
    didnt have to write!
Write a Comment
User Comments (0)
About PowerShow.com