Teaching Computing by QUxwB7

VIEWS: 7 PAGES: 32

									Teaching Computer Concepts with
Robots, Animation, and Multi-Media



         Barbara Ericson
              Georgia Tech
         ericson@cc.gatech.edu
   http://coweb.cc.gatech.edu/ice-gt/
There is a Shortage of CS Students
   The number of CS majors has dropped
    40% since 2001
    • Nationwide
   The percentage of women has dropped to
    about 15%
    • From a high of about 40% in the early 80s
   Projections of 46% job growth over the
    next 10 years!
    • Microsoft currently has 5,000 unfilled jobs
    Why the Huge Drop in Students?
   Myth #1
    • All computing jobs are going overseas
         Only about 2-3% have
         There are actually more jobs now in this
          area than in 2001
         The US Labor Department predicts that
          computer software engineers and computer
          systems designers will be among the fastest
          growing occupations in 2002-2012
    Why the Huge Drop in Students?
   Myth #2
    • Only geeks do well in computing
Who is in Computer Science?


      They all are!
    Why the Huge Drop in Students?
   Myth #3
    • You have to like to play computer
      games
   Professionals in computing
    • Say that you should like:
         Problem solving
         Working with others in a team
         Being creative
    Why the Huge Drop in Students?
   Myth #4
    • The job is boring!
    • Introductory classes are often boring
         Students find the examples irrelevant, and
          tedious
    • Computer Science juniors are often
      surprised how creative it is
         Once you are past the early classes
         Example: Digital Video Special Effects
Interesting, Creative, Lucrative Job
   Money Magazine rated software
    engineer the #1 job in 2006
    • Flexibility: pick your hours
    • Creativity: highest grade of any job
    • Growth 44,800 average job openings a
      year
    • Average Pay: $80,500 to 6 figures
   Computer IT Analyst was #7
    Making Computing Interesting
   Free software for creating animations and
    games using drag-and-drop programming
   Free software for multi-media
    programming
    • in Python or Java
   Robots
    • LEGO robots
    • PicoCrickets
    • Scratch Boards
                 Scratch Video
   Free software
    • from MIT
   Used to
    create 2D
    animations
    and games
   Drag-and-
    drop
    programming
Sample Student Work
    What can you teach with Scratch?
   variables
   loops
   conditionals
   event-driven programming
   message passing
   complex Booleans (and, or, not)
   geometry concepts
                    Alice
   Free software
    • from CMU
   Used to create 3D
    animations and
    games
   Drag-and-drop
    programming
Sample Student Work
        What can you teach using Alice?
   Basics of Object-Oriented Programming
    •   Objects and Classes
    •   Methods and Parameters
    •   Sequential and parallel execution
    •   Inheritance
    •   Iteration (looping)
    •   Conditionals
    •   Recursion
    •   Lists and list processing
    •   Arrays
    •   Algorithm design, implementation, and testing
   Basics of Event-driven programming
           Future of Alice v3.0
   Adding Sims
    characters from EA
    • the best selling
      game of all time
   Will be in Java
    • Can still do drag-
      and-drop
   Beta by Dec 2008
             Media Computation
   Teaching computing
    concepts using programs
    that manipulate media
    • Iteration as a way to
      modify all pixels in a
      picture to negate the
      picture
    • Conditionals as a way to
      remove red eye from a
      picture or to do
      chromakey
   Covers CS1 and CS2 topics
   Developed at Georgia Tech
   Can use Python or Java
         Negate Method in Java
/**                                {
 * Method to negate the picture         // get the current pixel
 */                                     pixelObj = pixelArray[i];
public void negate()
                                        // get the values
{                                       redValue = pixelObj.getRed();
   Pixel[] pixelArray =                 greenValue =
    this.getPixels();                               pixelObj.getGreen();
   Pixel pixelObj = null;               blueValue = pixelObj.getBlue();
   int redValue, blueValue,
    greenValue = 0;                      // set the pixel's color
                                       pixelObj.setColor(
  // loop through all the pixels              new Color(255 - redValue,
  for (int i = 0; i <                                    255 - greenValue,
  pixelArray.length; i++)                                255 - blueValue));
                                       }
                                   }
   Negate Method in Python
def negative(picture):
 for px in getPixels(picture):
   red=getRed(px)
   green=getGreen(px)
   blue=getBlue(px)
   negColor=makeColor(255-red,255-
         green,255-blue)
   setColor(px,negColor)
          What can you teach using Media
                  Computation?
   CS1 (AP CS A) or CS2 (AB CS AB) content:
    •   Objects and Classes
    •   Methods and Parameters
    •   Inheritance
    •   Interfaces
    •   Iteration (looping)
    •   Conditionals
    •   Recursion
    •   Lists and list processing
    •   Arrays
    •   Algorithm design, implementation, and testing
    •   Software engineering concepts
    •   Data Structures
                   Greenfoot
   Free software from
    the University of Kent
   Use to create 2D
    simulations and
    games in Java
   Can run GridWorld in
    it
   Don't have to stick to
    a grid
   Runs on top of BlueJ
Greenfoot Scenarios
    What can you teach with Greenfoot?

   CS1 (AP CS A) and CS2 (AP CS AB)
    content
   Simulations
   Key event handling
   Object-oriented programming
    • objects, classes, inheritance,
      polymorphism
   Java
LEGO Mindstorms NXT
     LEGO Mindstorms RIS 2.0
   A kit for creating and programming
    robots built with LEGOs
        Mindstorms NXT vs RIS
   $250 or with software        $200 for team
    for $279                      challenge set
                                  • software separate for
   431 elements                    $69
   3 motors (with built-in      717 elements
    rotation sensors)
                                 2 motors (rotation
   Storage bin with two          sensors are extra)
    sorting trays
                                 Have to buy sorting
   2 touch sensors, 1            trays
    light sensor, 1 sound
    sensor, 1 ultrasonic         2 touch sensors, 1
    sensor, 3 lamps               light sensor
   Comes with
    rechargeable battery
    What can you teach with LEGO Robots?

   Procedural programming
    • variables
    • loops
    • conditionals
    • creating your own blocks (functions or
      methods)
    • parameters
    • debugging
    • testing
                PicoCrickets
   Arts and Crafts kit
    for the digital age
   Based on research
    at MIT
    • on programmable
      bricks
    • same origin as
      LEGO Mindstorms
      robots
   Sells for $250
Ideas for Cricket Projects
What can you teach with Crickets?
   Loops
   Conditionals
   Variables
   Input and output
   Problem solving
   Testing
   Multiple threading
                 Scratch Board
   Board to add input
    to Scratch
    programs
    •   light sensor
    •   touch button
    •   sound sensor
    •   resistance sensors
    •   slider
   Costs $25 a board
    • plus $5 shipping
      per order
         Computing Resources
   Scratch http://scratch.mit.edu
   Alice http://www.alice.org
   Media Computation
    • http://coweb.cc.gatech.edu/mediaComp-teach
   Greenfoot http://www.greenfoot.org
   LEGO Mindstorms
    • http://www.lego.com/eng/education/mindstorms/
   PicoCrickets http://www.picocricket.com/
   Lending Libraries at Georgia Tech
    • http://coweb.cc.gatech.edu/ice-gt/500
   Teacher workshops at Georgia Tech
    • http://coweb.cc.gatech.edu/ice-gt/
    • Barb Ericson ericson@cc.gatech.edu

								
To top