RobotsMakeCSPersonal

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Robots can make Computer Science Education Personal: 

Robots can make Computer Science Education Personal Douglas Blank Computer Science Bryn Mawr College

Overview: 

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 Blank

Bryn 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 year

Overview: 

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 Robotics

Developmental 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 years

Robots Gone Berserk: 

Robots Gone Berserk

Overview: 

Overview Who am I? What am I doing? How am I going to do that?

Need a Robot: 

Need a Robot

Need 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 students

Python: 

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

Pyro: 

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/3D

Servers: Robots and Simulators: 

Servers: Robots and Simulators

Brain: 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 programs

Pyro, 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 CS1

Microsoft’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 students

Commission 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 failing

Robots 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 personal

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

A 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 Structures

Approach: 

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 simulators

Prototypes: 

Prototypes USB Bluetooth Dongle Bluetooth Serial Transmitter/ Receiver Myro

Parallax Scribbler: 

Parallax Scribbler

Parallax Scribbler: 

Parallax Scribbler

IPRE Robot Kit: 

IPRE Robot Kit

Scribblers: Day 1: 

Scribblers: Day 1

Editing Environment (IDLE): 

Editing Environment (IDLE)

More on Myro: 

More on Myro Pyro Functions Objects Movement Sensing Sounds IM Future Myro

Myro, 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: 

SimScribbler

Functional 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 1

Functional 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 sensors

Security 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 behavior

Connections to Biology and Psychology: 

Connections to Biology and Psychology

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…

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 robots

Further information: 

Further information www.roboteducation.org blog.roboteducation.org wiki.roboteducation.org