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-anddrop 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 dragand-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 */ public void negate() { Pixel[] pixelArray = this.getPixels(); Pixel pixelObj = null; int redValue, blueValue, greenValue = 0; { // get the current pixel pixelObj = pixelArray[i]; // get the values redValue = pixelObj.getRed(); greenValue = pixelObj.getGreen(); blueValue = pixelObj.getBlue(); // loop through all the pixels for (int i = 0; i < pixelArray.length; i++) } // set the pixel's color pixelObj.setColor( new Color(255 - redValue, 255 - greenValue, 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,255green,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 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 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