320 likes | 522 Views
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
E N D
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 droppedto 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
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
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
/** * Method to negate the picture */ public void negate() { Pixel[] pixelArray = this.getPixels(); Pixel pixelObj = null; int redValue, blueValue, greenValue = 0; // loop through all the pixels for (int i = 0; i < pixelArray.length; i++) { // get the current pixel pixelObj = pixelArray[i]; // get the values redValue = pixelObj.getRed(); greenValue = pixelObj.getGreen(); blueValue = pixelObj.getBlue(); // set the pixel's color pixelObj.setColor( new Color(255 - redValue, 255 - greenValue, 255 - blueValue)); } } Negate Method in Java
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
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 RIS 2.0 • A kit for creating and programming robots built with LEGOs
$250 or with software for $279 431 elements 3 motors (with built-in rotation sensors) Storage bin with two sorting trays 2 touch sensors, 1 light sensor, 1 sound sensor, 1 ultrasonic sensor, 3 lamps Comes with rechargeable battery $200 for team challenge set software separate for $69 717 elements 2 motors (rotation sensors are extra) Have to buy sorting trays 2 touch sensors, 1 light sensor Mindstorms NXT vs RIS
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
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