590 likes | 768 Views
Robots can make Computer Science Education Personal. Douglas Blank Computer Science Bryn Mawr College. Overview. Who am I? What am I doing? How am I going to do that?. Overview. Who am I? What am I doing? How am I going to do that?. Bryn Mawr College Computer Science. Deepak Kumar.
E N D
Robots can make Computer Science Education Personal Douglas Blank Computer Science Bryn Mawr College Bryn Mawr College Institute for Personal Robots in Education
Overview • Who am I? • What am I doing? • How am I going to do that? Bryn Mawr College Institute for Personal Robots in Education
Overview • Who am I? • What am I doing? • How am I going to do that? Bryn Mawr College Institute for Personal Robots in Education
Bryn Mawr College Computer Science Deepak Kumar Dianna Xu Doug Blank Bryn Mawr College Institute for Personal Robots in Education
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 year Bryn Mawr College Institute for Personal Robots in Education
Overview • Who am I? • What am I doing? • How am I going to do that? Bryn Mawr College Institute for Personal Robots in Education
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 learnDevelopmental Robotics Bryn Mawr College Institute for Personal Robots in Education
What is thought? What is consciousness? What drives a system to want to learn? How can we create such a system? Developmental Robotics Bryn Mawr College Institute for Personal Robots in Education
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 years Bryn Mawr College Institute for Personal Robots in Education
Robots Gone Berserk Bryn Mawr College Institute for Personal Robots in Education
Overview • Who am I? • What am I doing? • How am I going to do that? Bryn Mawr College Institute for Personal Robots in Education
Need a Robot Bryn Mawr College Institute for Personal Robots in Education
How can we explore such ideas, given that most of our students are just now encountering CS and robotics? Need Help Bryn Mawr College Institute for Personal Robots in Education
How can we explore such ideas, given that most of our students are just now encountering CS and robotics? Make them accessible. Need Help Bryn Mawr College Institute for Personal Robots in Education
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 students Bryn Mawr College Institute for Personal Robots in Education
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 languages Bryn Mawr College Institute for Personal Robots in Education
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 Pyro Bryn Mawr College Institute for Personal Robots in Education
“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/3D Bryn Mawr College Institute for Personal Robots in Education
Servers: Robots and Simulators Bryn Mawr College Institute for Personal Robots in Education
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) Brain: A Pyro Control Program Bryn Mawr College Institute for Personal Robots in Education
Can run the same control programs Bryn Mawr College Institute for Personal Robots in Education
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 CS1 Bryn Mawr College Institute for Personal Robots in Education
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 students Bryn Mawr College Institute for Personal Robots in Education
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.” Bryn Mawr College Institute for Personal Robots in Education
By any measure, we’re failing Bryn Mawr College Institute for Personal Robots in Education
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 personal Bryn Mawr College Institute 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 fields Bryn Mawr College Institute for Personal Robots in Education
A Challenge How would you change CS education, if you were given a million dollars? Bryn Mawr College Institute for Personal Robots in Education
Personal Robot robot.turnLeft(.5) robot.speak(“Hello”) Gyro running Myro Bryn Mawr College Institute for Personal Robots in Education
CS1: Introduction to Computing Bryn Mawr College Institute for Personal Robots in Education
CS2: Data Structures Bryn Mawr College Institute for Personal Robots in Education
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? Bryn Mawr College Institute for Personal Robots in Education
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 Bryn Mawr College Institute for Personal Robots in Education
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 simulators Bryn Mawr College Institute for Personal Robots in Education
Prototypes Bluetooth Serial Transmitter/ Receiver Myro USB Bluetooth Dongle Bryn Mawr College Institute for Personal Robots in Education
Parallax Scribbler Bryn Mawr College Institute for Personal Robots in Education
Parallax Scribbler Bryn Mawr College Institute for Personal Robots in Education
IPRE Robot Kit Bryn Mawr College Institute for Personal Robots in Education
Scribblers: Day 1 Bryn Mawr College Institute for Personal Robots in Education
Editing Environment (IDLE) Bryn Mawr College Institute for Personal Robots in Education
More on Myro • Pyro • Functions • Objects • Movement • Sensing • Sounds • IM • Future Myro Bryn Mawr College Institute for Personal Robots in Education
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 Bryn Mawr College Institute for Personal Robots in Education
SimScribbler Bryn Mawr College Institute for Personal Robots in Education
Functional Interface: Movement initialize(“com4”) turnLeft(value) turnRight(value) forward(value) backward(value) stop() # values are between 0 and 1 Bryn Mawr College Institute for Personal Robots in Education
Object Interface: Movement robot = Scribbler(“com4”) robot = SimScribbler() robot.turnLeft(value) robot.turnRight(value) robot.forward(value) robot.backward(value) robot.stop() Bryn Mawr College Institute for Personal Robots in Education
Movement Interface, Advanced translate(value) rotate(value) move(tvalue, rvalue) robot.translate(value) robot.rotate(value) move(tvalue, rvalue) # values are between -1 and 1 Bryn Mawr College Institute for Personal Robots in Education
Functional Interface: Sensors getLight(position) getLine(position) getStall() getIR(position) getInfo() # returns dictionary getAll() # returns dictionary get(item, position) get(“light”, “left”) get(“stall”) Bryn Mawr College Institute for Personal Robots in Education
Functional Interface: Sounds beep(duration, freq1) beep(duration, freq1, freq2) speak(“Hello world!”) getVoices() setVoice(“Fred”) Bryn Mawr College Institute for Personal Robots in Education
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) Bryn Mawr College Institute for Personal Robots in Education
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?')] Bryn Mawr College Institute for Personal Robots in Education