logging in or signing up RobotsMakeCSPersonal Jancis Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 195 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: January 03, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Robots can make Computer Science Education Personal: Robots can make Computer Science Education Personal Douglas Blank Computer Science Bryn Mawr CollegeOverview: Overview Who am I? What am I doing? How am I going to do that?Overview: Overview Who am I? What am I doing? How am I going to do that?Bryn Mawr College Computer Science: Bryn Mawr College Computer Science Dianna Xu Deepak Kumar Doug BlankBryn Mawr College Computer Science: Bryn Mawr College Computer Science Small, all women’s liberal arts college outside Philadelphia CS is newest major Computational Methods Minor 1 - 5 Majors, Minors each yearOverview: Overview Who am I? What am I doing? How am I going to do that?What am I doing?: What am I doing? Would like to create an artificial intelligence Needs a body, a physical presence And a whole lot of learning And a desire to learn Developmental RoboticsDevelopmental Robotics: Developmental Robotics What is thought? What is consciousness? What drives a system to want to learn? How can we create such a system?Developmental Robotics: Developmental Robotics I believe in strong AI Such an intelligence may be quite different from our own Will probably be as complex as our own intelligence, and just as hard to figure out how it works Will lead to conscious systems, within 50 yearsRobots Gone Berserk: Robots Gone BerserkOverview: Overview Who am I? What am I doing? How am I going to do that?Need a Robot: Need a RobotNeed Help: Need Help How can we explore such ideas, given that most of our students are just now encountering CS and robotics? Need Help: Need Help How can we explore such ideas, given that most of our students are just now encountering CS and robotics? Make them accessible.Pyro: Pyro Code for exploring robotics and AI, written in Python GUI, libraries, abstractions, and collection of teaching materials Robot, Device, OS, and Paradigm independent Designed for beginning AI students to jump-right-in, but to also pedagogically scale as the user gains experience A community of users, teachers and studentsPython: Python Looks like pseudo-code Indentation matters Object system built on top of functions Support for functional programming Large collection of libraries Interactive Can be easily integrated with other low-level languagesPyro: Pyro Pyro is the software component of a recently completed NSF grant, “Beyond LEGOs: Hardware, Software, and Curriculum for the Next Generation Robot Laboratory” Douglas Blank, Bryn Mawr College Deepak Kumar, Bryn Mawr College Lisa Meeden, Swarthmore College Holly Yanco, University of Massachusetts Lowell “Pythons all the way down”: “Pythons all the way down” GUI (Tkinter) Graphs, plots, bar charts, other visualizations Libraries and modules Neural networks, self-organizing map, backpropagation of error, genetic algorithm, genetic programming, mapping, RL, etc. Vision interface Display, and filter application Complete Simulator Sonar, Gripper, Camera, Lights, Bulbs, 2D/3DServers: Robots and Simulators: Servers: Robots and SimulatorsBrain: A Pyro Control Program: Brain: A Pyro Control Program from pyrobot.brain import Brain class Avoid(Brain): def step(self): self.robot.move(1, 0) def INIT(engine): return Avoid('My Avoid Brain', engine) Can run the same control programs: Can run the same control programsPyro, Python Robotics: Pyro, Python Robotics http://PyroRobotics.org Designed for advanced CS students Ability to do PhD topics easily as senior projects Modules for exploring many topics in AI and cognitive science Not appropriate for CS1Microsoft’s Educational Robot Initiative : Microsoft’s Educational Robot Initiative Develop an institute to explore robots and education Develop curricular materials for introductory computing courses Make them accessible Make them appeal to a broad range of studentsCommission on Professionals in Science and Technology : Commission on Professionals in Science and Technology “In computer science, the percentage of jobs held by women … was lower at the end of the 20 year period than it was in 1983. [Things were so bad] that even while women’s share of these jobs was declining, their absolute numbers continued to increase through the year 2000, but then started to decline.”By any measure, we’re failing: By any measure, we’re failingRobots could help?: Robots could help? Provides motivation to learn CS We had a better programming environment for beginning students Experience with making advanced robotics accessible Yes, Person Robots could help make CS personalInstitute for Personal Robots in Education: Institute for Personal Robots in Education Begun July, 2006 from a $1 million grant from Microsoft Research Apply the philosophy of making computer science relevant and accessible to CS101 Develop a robot, software, and curricular materials for CS1 and CS2 Foster the trend of putting the liberal arts into engineering and technology-related fieldsA Challenge: A Challenge How would you change CS education, if you were given a million dollars?Personal Robot: Personal Robot Gyro running Myro robot.turnLeft(.5) robot.speak(“Hello”)CS1: Introduction to Computing: CS1: Introduction to Computing CS2: Data Structures: CS2: Data StructuresApproach: Approach Robotics and computing interleaved. Robotics serves as the motivating context for the computing. To improve transfer To demonstrate relevance Start with the Project What can we ask students to do that they will find motivating and relevant? Then, what computing do we need (and in what order) to achieve that project?15 Chapter/Week Outline: 15 Chapter/Week Outline Chapter 1 The World of Robots Chapter 2 Robots: Personal or Otherwise Chapter 3 Sensing the World Chapter 4 Making Decisions Chapter 5 Behaviors Chapter 6 Control Paradigms Chapter 7 Making Music Chapter 8 Communication Chapter 9 Artificial Intelligence Chapter 10 Computing & Computation Chapter 11 Games: Soccer anyone? Chapter 12 Social Robots & Entertainment Chapter 13 Swarms Chapter 14 Robot Ethics Chapter 15 Smart Appliances Myro: Pyro, Reloaded: Myro: Pyro, Reloaded Implemented in .NET Use IronPython, but be language agnostic Simplified framework (“zero mystery”) Rework everything (including C++ code) into a single framework Sophisticated, yet extensible simulator Standardized protocols between levels Remain compatible with advanced robots and simulatorsPrototypes: Prototypes USB Bluetooth Dongle Bluetooth Serial Transmitter/ Receiver MyroParallax Scribbler: Parallax ScribblerParallax Scribbler: Parallax ScribblerIPRE Robot Kit: IPRE Robot KitScribblers: Day 1: Scribblers: Day 1Editing Environment (IDLE): Editing Environment (IDLE)More on Myro: More on Myro Pyro Functions Objects Movement Sensing Sounds IM Future MyroMyro, First Steps: Myro, First Steps >>> from myro import * Myro, (c) 2006 Institute for Personal Robots in Education [See http://www.roboteducation.org/ for more information] Version 0.8.0, Revision 1.80, ready! >>> robot = Scribbler(“com4”) Waking robot from sleep... Hello, I'm Scribby! >>> robot.beep(1, 800) >>> robot.joyStick() >>> ^D SimScribbler: SimScribblerFunctional Interface: Movement: Functional Interface: Movement initialize(“com4”) turnLeft(value) turnRight(value) forward(value) backward(value) stop() # values are between 0 and 1 Object Interface: Movement: Object Interface: Movement robot = Scribbler(“com4”) robot = SimScribbler() robot.turnLeft(value) robot.turnRight(value) robot.forward(value) robot.backward(value) robot.stop() Movement Interface, Advanced: Movement Interface, Advanced translate(value) rotate(value) move(tvalue, rvalue) robot.translate(value) robot.rotate(value) move(tvalue, rvalue) # values are between -1 and 1Functional Interface: Sensors: Functional Interface: Sensors getLight(position) getLine(position) getStall() getIR(position) getInfo() # returns dictionary getAll() # returns dictionary get(item, position) get(“light”, “left”) get(“stall”)Functional Interface: Sounds: Functional Interface: Sounds beep(duration, freq1) beep(duration, freq1, freq2) speak(“Hello world!”) getVoices() setVoice(“Fred”)Object Interface: Sounds: Object Interface: Sounds robot.beep(duration, freq1) computer.beep(duration, freq1) computer.speak(“Hello world!”) computer.getVoices() computer.setVoice(“Fred”) s1 = makeSong(“a5 1; b5 .5; c5 .5”) s2 = makeSong(“a5 a4 1; c4 c#4 1;”) robot.playSong(s1) robot.playSong(s2) Chat (IM) Interface: Chat (IM) Interface c1 = Chat(“sarah”, “password”) c2 = Chat(“joe”, “sEcrEt”) c1.send(“joe”, “Hi, what’s up?”) c2.receive() [(‘sara@myro.roboteducation.org', ‘Hi, what’s up?')]Chat Robot Remote Control: Chat Robot Remote Control >>> robot = Scribbler() >>> robot.setName(“Arnold”) >>> robot.initializeRemoteControl("mypassword") >>> robot.processRemoteControlLoop() # on a computer, far, far away: >>> chat = Chat("myname", “passwerd") >>> chat.send(“Arnold", "robot.turnLeft(.4)") >>> chat.receive() Reading the Light Sensors: Reading the Light Sensors robot.getLight(“left”) robot.getLight(“center”) robot.getLight(“right”) robot.getLight() [657, 1453, 1025] Light sensorsSecurity Guard: Security Guard from myro import * robot = Scribbler() vals = [0 for i in range(100)] # calibration: for i in range(100): vals[i] = robot.get("light", "left") avg = sum(vals)/100.0 # securing perimeter! # within some tolerance while abs(robot.get("light", "left") - avg) < 50: wait(1) # intruder alert! while 1: robot.beep(1, 1000) robot.beep(1, 500) Back to Karel the Robot?: Back to Karel the Robot?Modeling Animals: Modeling Animals How do animals sense light? Why do moths move to the light? How do they know which way to turn to get there? Let’s model light-seeking behaviorConnections to Biology and Psychology: Connections to Biology and PsychologySummary: Summary The IPRE hopes to support all robot-related educational activities, especially those appropriate for introductory courses that appeal to the non-traditional computing populations…Summary: Summary The IPRE hopes to support all robot-related educational activities, especially those appropriate for introductory courses that appeal to the non-traditional computing populations… so that we can make conscious robotsFurther information: Further information www.roboteducation.org blog.roboteducation.org wiki.roboteducation.org You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
RobotsMakeCSPersonal Jancis Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 195 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: January 03, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Robots can make Computer Science Education Personal: Robots can make Computer Science Education Personal Douglas Blank Computer Science Bryn Mawr CollegeOverview: Overview Who am I? What am I doing? How am I going to do that?Overview: Overview Who am I? What am I doing? How am I going to do that?Bryn Mawr College Computer Science: Bryn Mawr College Computer Science Dianna Xu Deepak Kumar Doug BlankBryn Mawr College Computer Science: Bryn Mawr College Computer Science Small, all women’s liberal arts college outside Philadelphia CS is newest major Computational Methods Minor 1 - 5 Majors, Minors each yearOverview: Overview Who am I? What am I doing? How am I going to do that?What am I doing?: What am I doing? Would like to create an artificial intelligence Needs a body, a physical presence And a whole lot of learning And a desire to learn Developmental RoboticsDevelopmental Robotics: Developmental Robotics What is thought? What is consciousness? What drives a system to want to learn? How can we create such a system?Developmental Robotics: Developmental Robotics I believe in strong AI Such an intelligence may be quite different from our own Will probably be as complex as our own intelligence, and just as hard to figure out how it works Will lead to conscious systems, within 50 yearsRobots Gone Berserk: Robots Gone BerserkOverview: Overview Who am I? What am I doing? How am I going to do that?Need a Robot: Need a RobotNeed Help: Need Help How can we explore such ideas, given that most of our students are just now encountering CS and robotics? Need Help: Need Help How can we explore such ideas, given that most of our students are just now encountering CS and robotics? Make them accessible.Pyro: Pyro Code for exploring robotics and AI, written in Python GUI, libraries, abstractions, and collection of teaching materials Robot, Device, OS, and Paradigm independent Designed for beginning AI students to jump-right-in, but to also pedagogically scale as the user gains experience A community of users, teachers and studentsPython: Python Looks like pseudo-code Indentation matters Object system built on top of functions Support for functional programming Large collection of libraries Interactive Can be easily integrated with other low-level languagesPyro: Pyro Pyro is the software component of a recently completed NSF grant, “Beyond LEGOs: Hardware, Software, and Curriculum for the Next Generation Robot Laboratory” Douglas Blank, Bryn Mawr College Deepak Kumar, Bryn Mawr College Lisa Meeden, Swarthmore College Holly Yanco, University of Massachusetts Lowell “Pythons all the way down”: “Pythons all the way down” GUI (Tkinter) Graphs, plots, bar charts, other visualizations Libraries and modules Neural networks, self-organizing map, backpropagation of error, genetic algorithm, genetic programming, mapping, RL, etc. Vision interface Display, and filter application Complete Simulator Sonar, Gripper, Camera, Lights, Bulbs, 2D/3DServers: Robots and Simulators: Servers: Robots and SimulatorsBrain: A Pyro Control Program: Brain: A Pyro Control Program from pyrobot.brain import Brain class Avoid(Brain): def step(self): self.robot.move(1, 0) def INIT(engine): return Avoid('My Avoid Brain', engine) Can run the same control programs: Can run the same control programsPyro, Python Robotics: Pyro, Python Robotics http://PyroRobotics.org Designed for advanced CS students Ability to do PhD topics easily as senior projects Modules for exploring many topics in AI and cognitive science Not appropriate for CS1Microsoft’s Educational Robot Initiative : Microsoft’s Educational Robot Initiative Develop an institute to explore robots and education Develop curricular materials for introductory computing courses Make them accessible Make them appeal to a broad range of studentsCommission on Professionals in Science and Technology : Commission on Professionals in Science and Technology “In computer science, the percentage of jobs held by women … was lower at the end of the 20 year period than it was in 1983. [Things were so bad] that even while women’s share of these jobs was declining, their absolute numbers continued to increase through the year 2000, but then started to decline.”By any measure, we’re failing: By any measure, we’re failingRobots could help?: Robots could help? Provides motivation to learn CS We had a better programming environment for beginning students Experience with making advanced robotics accessible Yes, Person Robots could help make CS personalInstitute for Personal Robots in Education: Institute for Personal Robots in Education Begun July, 2006 from a $1 million grant from Microsoft Research Apply the philosophy of making computer science relevant and accessible to CS101 Develop a robot, software, and curricular materials for CS1 and CS2 Foster the trend of putting the liberal arts into engineering and technology-related fieldsA Challenge: A Challenge How would you change CS education, if you were given a million dollars?Personal Robot: Personal Robot Gyro running Myro robot.turnLeft(.5) robot.speak(“Hello”)CS1: Introduction to Computing: CS1: Introduction to Computing CS2: Data Structures: CS2: Data StructuresApproach: Approach Robotics and computing interleaved. Robotics serves as the motivating context for the computing. To improve transfer To demonstrate relevance Start with the Project What can we ask students to do that they will find motivating and relevant? Then, what computing do we need (and in what order) to achieve that project?15 Chapter/Week Outline: 15 Chapter/Week Outline Chapter 1 The World of Robots Chapter 2 Robots: Personal or Otherwise Chapter 3 Sensing the World Chapter 4 Making Decisions Chapter 5 Behaviors Chapter 6 Control Paradigms Chapter 7 Making Music Chapter 8 Communication Chapter 9 Artificial Intelligence Chapter 10 Computing & Computation Chapter 11 Games: Soccer anyone? Chapter 12 Social Robots & Entertainment Chapter 13 Swarms Chapter 14 Robot Ethics Chapter 15 Smart Appliances Myro: Pyro, Reloaded: Myro: Pyro, Reloaded Implemented in .NET Use IronPython, but be language agnostic Simplified framework (“zero mystery”) Rework everything (including C++ code) into a single framework Sophisticated, yet extensible simulator Standardized protocols between levels Remain compatible with advanced robots and simulatorsPrototypes: Prototypes USB Bluetooth Dongle Bluetooth Serial Transmitter/ Receiver MyroParallax Scribbler: Parallax ScribblerParallax Scribbler: Parallax ScribblerIPRE Robot Kit: IPRE Robot KitScribblers: Day 1: Scribblers: Day 1Editing Environment (IDLE): Editing Environment (IDLE)More on Myro: More on Myro Pyro Functions Objects Movement Sensing Sounds IM Future MyroMyro, First Steps: Myro, First Steps >>> from myro import * Myro, (c) 2006 Institute for Personal Robots in Education [See http://www.roboteducation.org/ for more information] Version 0.8.0, Revision 1.80, ready! >>> robot = Scribbler(“com4”) Waking robot from sleep... Hello, I'm Scribby! >>> robot.beep(1, 800) >>> robot.joyStick() >>> ^D SimScribbler: SimScribblerFunctional Interface: Movement: Functional Interface: Movement initialize(“com4”) turnLeft(value) turnRight(value) forward(value) backward(value) stop() # values are between 0 and 1 Object Interface: Movement: Object Interface: Movement robot = Scribbler(“com4”) robot = SimScribbler() robot.turnLeft(value) robot.turnRight(value) robot.forward(value) robot.backward(value) robot.stop() Movement Interface, Advanced: Movement Interface, Advanced translate(value) rotate(value) move(tvalue, rvalue) robot.translate(value) robot.rotate(value) move(tvalue, rvalue) # values are between -1 and 1Functional Interface: Sensors: Functional Interface: Sensors getLight(position) getLine(position) getStall() getIR(position) getInfo() # returns dictionary getAll() # returns dictionary get(item, position) get(“light”, “left”) get(“stall”)Functional Interface: Sounds: Functional Interface: Sounds beep(duration, freq1) beep(duration, freq1, freq2) speak(“Hello world!”) getVoices() setVoice(“Fred”)Object Interface: Sounds: Object Interface: Sounds robot.beep(duration, freq1) computer.beep(duration, freq1) computer.speak(“Hello world!”) computer.getVoices() computer.setVoice(“Fred”) s1 = makeSong(“a5 1; b5 .5; c5 .5”) s2 = makeSong(“a5 a4 1; c4 c#4 1;”) robot.playSong(s1) robot.playSong(s2) Chat (IM) Interface: Chat (IM) Interface c1 = Chat(“sarah”, “password”) c2 = Chat(“joe”, “sEcrEt”) c1.send(“joe”, “Hi, what’s up?”) c2.receive() [(‘sara@myro.roboteducation.org', ‘Hi, what’s up?')]Chat Robot Remote Control: Chat Robot Remote Control >>> robot = Scribbler() >>> robot.setName(“Arnold”) >>> robot.initializeRemoteControl("mypassword") >>> robot.processRemoteControlLoop() # on a computer, far, far away: >>> chat = Chat("myname", “passwerd") >>> chat.send(“Arnold", "robot.turnLeft(.4)") >>> chat.receive() Reading the Light Sensors: Reading the Light Sensors robot.getLight(“left”) robot.getLight(“center”) robot.getLight(“right”) robot.getLight() [657, 1453, 1025] Light sensorsSecurity Guard: Security Guard from myro import * robot = Scribbler() vals = [0 for i in range(100)] # calibration: for i in range(100): vals[i] = robot.get("light", "left") avg = sum(vals)/100.0 # securing perimeter! # within some tolerance while abs(robot.get("light", "left") - avg) < 50: wait(1) # intruder alert! while 1: robot.beep(1, 1000) robot.beep(1, 500) Back to Karel the Robot?: Back to Karel the Robot?Modeling Animals: Modeling Animals How do animals sense light? Why do moths move to the light? How do they know which way to turn to get there? Let’s model light-seeking behaviorConnections to Biology and Psychology: Connections to Biology and PsychologySummary: Summary The IPRE hopes to support all robot-related educational activities, especially those appropriate for introductory courses that appeal to the non-traditional computing populations…Summary: Summary The IPRE hopes to support all robot-related educational activities, especially those appropriate for introductory courses that appeal to the non-traditional computing populations… so that we can make conscious robotsFurther information: Further information www.roboteducation.org blog.roboteducation.org wiki.roboteducation.org