The Programming Software for Hands-on Robot Education

Similar documents
Mindstorms NXT. mindstorms.lego.com

The use of programmable robots in the education of programming

Robotic teaching for Malaysian gifted enrichment program

Learning serious knowledge while "playing"with robots

Team Project: A Surveillant Robot System

ROBOTC: Programming for All Ages

A Lego-Based Soccer-Playing Robot Competition For Teaching Design

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

MULTI-LAYERED HYBRID ARCHITECTURE TO SOLVE COMPLEX TASKS OF AN AUTONOMOUS MOBILE ROBOT

COSC343: Artificial Intelligence

Artificial Intelligence Planning and Decision Making

A Rubik s Cube Solving Robot Using Basic Lego Mindstorms NXT kit

Designing Toys That Come Alive: Curious Robots for Creative Play

INTERACTIVE BUILDING BLOCK SYSTEMS

Building Robots With Lego Mindstorms Nxt

WifiBotics. An Arduino Based Robotics Workshop

A New Approach to Control a Robot using Android Phone and Colour Detection Technique

AC : TECHNOLOGIES TO INTRODUCE EMBEDDED DESIGN EARLY IN ENGINEERING. Shekhar Sharad, National Instruments

TUTA/IOE/PCU All rights reserved. Printed in Nepal Fax: My First Humanoid Robot An Experience worth Sharing with Freshmen and Sophomore

Internet of Things with Arduino

Programming and Multi-Robot Communications

COMPETITION RULES. Last Revised: January 11 th, Table of Contents

Smart-M3-Based Robot Interaction in Cyber-Physical Systems

BIBLIOGRAFIA. Arkin, Ronald C. Behavior Based Robotics. The MIT Press, Cambridge, Massachusetts, pp

RUNNYMEDE COLLEGE & TECHTALENTS

Using Small Affordable Robots for Hybrid Simulation of Wireless Data Access Systems

A Learning System for a Computational Science Related Topic

MathWorks Announces Built-in Simulink Support for Arduino, BeagleBoard, and LEGO MINDSTORMS NXT

Intuitive Vision Robot Kit For Efficient Education

THE ARDUINO ENGINEERING KIT INFORMATION GUIDE ARDUINO.CC/EDUCATION

An IoT Based Real-Time Environmental Monitoring System Using Arduino and Cloud Service

ROBOTICS & IOT. Workshop Module

ROBOTICS & IOT. Workshop Module

Q Learning Behavior on Autonomous Navigation of Physical Robot

Physical Etoys: Freedom beyond the digital world

Proseminar Roboter und Aktivmedien. Outline of today s lecture. Acknowledgments. Educational robots achievements and challenging

Engaging Solutions for Applied Learning Programme

ROBOTICS. also enjoy buildi ng things with such manipulatives as Legos. Robotics was the. Real World. technology build engineering intuition.

Introduction to the VEX Robotics Platform and ROBOTC Software

1hr ACTIVITY GUIDE FOR FAMILIES. Hour of Code

AC : AN INTRODUCTION TO MECHATRONICS EXPERIMENT: LEGO MINDSTORMS NEXT URBAN CHALLENGE

ICTCM 28th International Conference on Technology in Collegiate Mathematics

Teleoperated Robot Controlling Interface: an Internet of Things Based Approach

Arduino STEAM Academy Arduino STEM Academy Art without Engineering is dreaming. Engineering without Art is calculating. - Steven K.

Mobile Robot Platform for Improving Experience of Learning Programming Languages

Teaching Children Proportional Control using ROBOLAB 2.9. By Dr C S Soh

UTILIZATION OF ROBOTICS AS CONTEMPORARY TECHNOLOGY AND AN EFFECTIVE TOOL IN TEACHING COMPUTER PROGRAMMING

Introducing 32-bit microcontroller technologies to a technology teacher training programme

WAVE 5000 EVERY DEVICE. EVERY NETWORK. EVERY TEAM. CONNECTED LIKE NEVER BEFORE.

Realistic Robot Simulator Nicolas Ward '05 Advisor: Prof. Maxwell

Design & Development of a Robotic System Using LEGO Mindstorm

EDUCATORS INFORMATION GUIDE

Behaviour-Based Control. IAR Lecture 5 Barbara Webb

Subsumption Architecture in Swarm Robotics. Cuong Nguyen Viet 16/11/2015

BEYOND TOYS. Wireless sensor extension pack. Tom Frissen s

Kids Learning Engineering Science Using LEGO and the Programmable Brick

Engaging Students with Visual Impairments in Engineering and Computer Science through Robotic Game Programming (research-to-practice)

AGENT PLATFORM FOR ROBOT CONTROL IN REAL-TIME DYNAMIC ENVIRONMENTS. Nuno Sousa Eugénio Oliveira

Developing Novel Extensions to Support Prototyping for Interactive Social Robots

OPEN SOURCES-BASED COURSE «ROBOTICS» FOR INCLUSIVE SCHOOLS IN BELARUS

MAKER: Development of Smart Mobile Robot System to Help Middle School Students Learn about Robot Perception

Assisted Creative Robot Arm Assembly and Control Program Design

project gnosis tech ed development centre Teaching Kids since 2013

Digital Devices in the Digital Technologies curriculum

University of Toronto. Companion Robot Security. ECE1778 Winter Wei Hao Chang Apper Alexander Hong Programmer

Automata Depository Model with Autonomous Robots

Medical Robotics Applications & Design Considerations (Part 1) Dr. James Smith

Autonomous Mobile Robot Design. Dr. Kostas Alexis (CSE)

Robotics will be very important for the humanity in the next 10 years and this ebook is an effort to help in this way.

Embedded Systems & Robotics (Winter Training Program) 6 Weeks/45 Days

BOX, Floor 5, Tower 3, Clements Inn, London WC2A 2AZ, United Kingdom

UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA SUPERIOR

Dr. Vincent Lau

ACTIVE LEARNING USING MECHATRONICS IN A FRESHMAN INFORMATION TECHNOLOGY COURSE

Instructors. Manual GEARED. After-School Robotics Program By Haley Hanson

Closed-Loop Transportation Simulation. Outlines

Intelligent Robotics Assignments

Parallelism Across the Curriculum

understanding sensors

Agent-based/Robotics Programming Lab II

Program.

Training Schedule. Robotic System Design using Arduino Platform

Available online at ScienceDirect. Procedia Computer Science 76 (2015 ) 2 8

Quanser Products and solutions

Course: STEM Robotics Engineering Total Framework Hours up to: 600 CIP Code: Exploratory Preparatory

Integrated Driving Aware System in the Real-World: Sensing, Computing and Feedback

Formation and Cooperation for SWARMed Intelligent Robots

CONTROLLING METHODS AND CHALLENGES OF ROBOTIC ARM

Fabrication of the kinect remote-controlled cars and planning of the motion interaction courses

Lab 7: Introduction to Webots and Sensor Modeling

1 Lab + Hwk 4: Introduction to the e-puck Robot

INCLINED PLANE RIG LABORATORY USER GUIDE VERSION 1.3

School of Engineering SUMMER CAMPS PROGRAMMING : STEP BY STEP ROBOTICS & BASICS OF PROGRAMMING. INTERNET OF THINGS IoT, SMARTPHONE APPLICATIONS

Welcome to EGN-1935: Electrical & Computer Engineering (Ad)Ventures

Fuzzy Logic Controlled Miniature LEGO Robot for Undergraduate Training System

Space Research expeditions and open space work. Education & Research Teaching and laboratory facilities. Medical Assistance for people

AC : THE UBIQUITOUS MICROCONTROLLER IN MECHANICAL ENGINEERING: MEASUREMENT SYSTEMS

Mobile Robot Navigation Contest for Undergraduate Design and K-12 Outreach

Team Project: A Surveillant Robot System

Available online at ScienceDirect. Procedia Technology 14 (2014 )

Transcription:

The Programming Software for Hands-on Robot Education Tsung-Han Hsieh Department of Research and Development, CAVE Education Taipei, Taiwan, ROC e-mail: hsnu1152@cavedu.com Abstract LEGO MINDSTORMS intelligent robot has played a leading role in robot education for more than a decade; it brought math, science and engineering learning combined with hands-on opportunities to form a problem-solving atmosphere in the classroom. The underlying concept has proved its effectiveness to motivate students to learn related subjects. Furthermore, the hands-on nature of the LEGO set also increases students creativity and originality; although it was initially aimed to appeal elementary school students, its versatility and multi-functionalities led to a much wider range of applications. Since then, there have been many computer languages or software designed to be compatible with LEGO brick, in order to support different needs. In regard to this topic, we are going to explore and discuss the variety of software tools that were used, their capability and the adaptation of each tool for different levels of students from primary schools to universities. Benefits and drawbacks in using text-based and graphical programming environments will be discussed in relation to this topic, including NXT-G, app inventor, LabVIEW, NXC, RobotC and LeJOS. Keywords: robot education; app inventor; LabVIEW; NXC I. INTRODUCTION The development of computer language for educational purpose can be dated back to the 1960s, when a research group at the Massachusetts Institute of Technology (MIT) created the Logo programming language. Designed as a learning tool to stimulate students, the programming activities have led to applications in a variety of fields, such as mathematics, robotics, science, etc [1]. The innovative concept soon spread worldwide through the 1980s. With the cooperation of the LEGO Company in the mid-eighties, the Logo computer language was combined with LEGO building blocks to form the LEGO/Logo system, which not only provided a programming environment for children to learn, but also enabled greater creativity in machine design [2]. The success continued to garner more achievements during the 1990s, as the LEGO brick became programmable [3], leading to new horizons in robot education, and brought math, science and engineering into classroom with hands-on experience. Further cooperation between the LEGO Company and National Instruments in the late 1990s brought a new software tool, ROBOLAB, which was written in Lab- VIEW; it provided an intuitive graphical programming environment to students, and enabled even more possibilities. Since then, the LEGO MINDSTORMS robot set Chi-Hung Tseng Department of Research and Development, CAVE Education Taipei, Taiwan, ROC e-mail: nissin@cavedu.com has become one of the most popular tools for robot education. Although the programmable brick was initially designed for children, the versatility of the robot set made it not only accessible to children, but also supported the development of complicated projects for experienced users. As a result, besides the original graphical programming language, several custom programming languages were developed for more advanced needs. In the United States, some prestigious institutes are dedicated to promoting robot education in order to improve engineering education in the classroom. The Center for Engineering Education and Outreach (CEEO) of Tufts University has used the LEGO MINDSTORMS robot set and the graphical programming software as learning tools for more than a decade, targeting students from kindergarten to graduate school [4]-[6]. Another approach form the Robot Academy, an educational outreach of Carnegie Mellon University (CMU), developed curricula for middle and high school students, using a custom text-based programming tool [7]. This paper is organized as follows. In Section II, the overview progress of robot education in Taiwan will be discussed. Different programming languages that are compatible with LEGO MINDSTORMS robot will be discussed in Sections III and IV; Section III focuses on graphic-based programming languages, and Section IV focuses on text-based programming languages. The summary and conclusion are given in Section V. This paper aims to provide a reference for students and teachers or others who are interested when they have to decide on an environment in which to develop their robot. II. ROBOTICS IN EDUCATION Unlike the United States, which needs more students with science, technology, engineering and mathematics (STEM) degrees [8], students in Taiwan always regard STEM-related departments as their first choice when entering university. This trend is driven by the industrial structure of Taiwan and the traditional value of Taiwanese culture, rather than students own interests. Furthermore, the education system in Taiwan has often emphasized theoretical learning over practice, tough math and memorizing over creative thinking, as well as exams over group projects. As a long term result, students learned in a passive mode. Knowing the benefits of using the robot as an educational tool, which is able to

arouse students interest in learning STEM with hands-on experience, CAVE Education, founded in 2008, is devoted to promoting robot education in Taiwan, and is extensively cooperating with schools ranging from elementary level to universities. The authors of this article, as members of CAVE Education, have held many robotics workshops throughout the nation. The goal of CAVE Education is not only to appeal to students interest in learning STEM, but to help those who want to enter robot industry to be well trained with relevant skills and problem solving abilities. III. GRAPHIC-BASED PROGRAMMING TOOLS A. NXT-G The NXT-G programming language came with the new LEGO MINDSTORMS robot set in 2006, in which the programmable brick was called NXT. Inherited from ROBOLAB, NXT-G provided an intuitive environment appropriate for children and novices new to the robot set (Fig. 1). The most distinguished feature of NXT-G that is different from ROBOLAB is the data wire programming technique (Fig. 2). The data wire model is similar to the concept of dataflow in LabVIEW programming. Using data wires in programming is considered as a more advanced skill during the learning process and is often introduced to students after the basic concepts are well established. In addition, the education version of the NXT-G software also provides a data logging tool for sensor measurement; it is an excellent tool for children to understand the basic concepts of sensing and measurement. Although NXT-G provides a great environment for children to develop robot programs, due to the limited function of the programming language, it is hard to implement algorithms that are more complicated for higher level education. Furthermore, as the program become bigger, it will be harder to manage and more difficult to understand. As a result, NXT-G is suitable for primary education, but for high school or university, other programming tools are recommended. Since NXT-G comes with the LEGO MINDSTORMS robot set, it is the most widely used programming language for NXT programming. Recently, it has even been listed as the top 20 th popular programming language by the TIOBE Programming Community Index [9]. Fig. 1. The NXT-G software is intuitive and suitable for children and novices that are new to the robot set. Fig. 2. Data wire is a special feature of NXT-G that provides students with the concept of data flow. B. LabVIEW LabVIEW is a product from National Instruments (NI), which is one of the most popular graphical programming languages used extensively in industrial as well as academic environments. The cooperation of NI and LEGO gave the birth of ROBOLAB and NXT-G. However, using LabVIEW to program the LEGO brick directly was not possible until 2008, when the LabVIEW toolkit for LEGO MINDSTORMS NXT came out; it became the standard module in the LabVIEW environment several years later. The combination of LabVIEW and NXT enabled it to become an appropriate tool for higher level education. Using LabVIEW to program the NXT brick can be accomplished under two modes: direct mode and remote mode. For remote mode, the program will be downloaded into the NXT, and for direct mode, the program will run by computer companion with a shield running on NXT. Under direct mode, the NXT robot can be considered as the computer actuator, with the computer playing the role of the brain. Therefore, under direct mode, the students can have full access to all the LabVIEW functions, including mathematic functions that are far more advanced then NXT-G, and even some professional modules and toolkits, like signal processing and image processing. Understanding the powerful potential of LabVIEW as a learning tool, CAVE Education group published a comprehensive book, LabVIEW: Advance programming for robots ( LabVIEW 高階機器人教戰手冊 in Chinese), in order to introduce the tool, from fundamental concept to advanced applications. The authors of this article have taught robotics and engineering with this book for students of Electrical Engineering, Mechanical Engineering and Computer Science and Information Engineering Departments of TamKang University, Ching Yun University and Vanung University. The course lasted for at least 6 weeks (3 hours each class) for a whole semester. Students built up many skills, such as signal processing/analyzing and mechanical design to complete many robot projects. For instance, students had to calculate the variation of acceleration according to the motor encoder value, or determine where the robot should go by the object position from the returning webcam images.

Fig. 4. App Inventor lowers the barrier of mobile programming by making the traditional Java code more visual and straightforward. Fig. 3. The LabVIEW book for NXT programming. This book was used as teaching material for TamKang University, Ching Yun University and Vanung University. C. App Inventor App Inventor was first announced as a small project of Google Lab in late 2010, and was transferred to Mobile Learning Center of MIT for public use under the spirit of open sources. By logging into the MIT App Inventor server [10], users can access worldwide projects and share ideas with others. App Inventor is a graphical and online programming environment which lets users build up their Android applications. Students can develop applications for Android phones and tablets using a web browser. Furthermore, since the App Inventor server will periodically store the project, the user can log into App Inventor server and then continue the work anytime and anywhere with a computer. App Inventor undoubtedly lowers the barrier of mobile programming by making the traditional Java code more visual and straightforward. For instance, a portion of a program is shown in Fig. 4; this portion of the program will check if the value of x is greater than zero when the button is clicked, which is intuitively understood; this is the reason why primary level teachers welcome the App Inventor as a learning tool for primary school students worldwide. For more accessibility, the authors of this article established the App Inventor TW website for the Chinese community (http://www.appinventor.tw/); all who are interested in Android programming can access tutorials and share their ideas. The App Inventor TW website integrated population and resources of mobile learning and information education. Since it opened in October 2011, App Inventor TW has daily traffic of more than 200 visits, which means more than 6,000 visits monthly. Furthermore, CAVE Education group published Easy Android Programming App Inventor ( Android 手機程式超簡單 App Inventor in Chinese). This book is written for anyone who wishes to try mobile programming but lacks coding skills (Fig. 5). Fig. 5. The App Inventor book for Android programming. IV. TEXT-BASED PROGRAMMING TOOLS A. Not exactly C The Not exactly C (NXC) programming language is a high level C-like programming language for NXT, and is currently maintained by John C. Hansen. The NXC can be compiled via the Bricx Command Center (BricxCC), which is an integrated development environment (IDE) originally developed by Mark Overmars [11]. Since C programming language is used extensively globally, using NXC as a learning tool not only can stimulate students, but also establish a fundamental experience for further learning. Moreover, with the enhanced NBC/NXC firmware installed on NXT, the brick can access many other powerful features. For those who would like to have more detailed control on the robots, NXC provided many low-level commands, such as pulse-width modulation (PWM), I 2 C communication protocol and byte-array streaming for Bluetooth communication; these are rarely seen in other platforms and are significantly useful in advanced topics. For example, users can check motors impedance to determine whether the robot had bumped into something. The authors published a book, The new horizon of robotics: NXC & NXT ( 機器人新視界 : NXT & NXC in Chinese), as the learning material. This book was used as the guidebook of the Robots Programming in C course, for students in the Department of Applied Electronic Technology, National Taiwan Normal University. Students had to develop middle-scale robotics projects and demonstrate them at the end of the semester. Please refer to Robots Programming in C website (https://sites.google.com/site/nxtnxc/home) for more teaching material.

Fig. 6. The NXC book for NXT, published by the authors of this article. This book was used as the teaching material for National Taiwan Normal University. B. RobotC RobotC is a C-based programming language developed by the Robotics Academy of CMU as a learning tool for middle and high school students. Unlike BricxCC, which is an open source project that anyone can access, RobotC is a commercial product that needs a license to access. However, the Robotics Academy provides many learning resources and curricula for both teachers and students. The most distinguished feature of RobotC is the Robot Virtual Worlds [12], which allows students to test the program of the robot in a simulated environment (Fig. 7). Therefore, the robot does not need to be physically constructed. In addition, to make programming even more appealing to students, the virtual worlds provides different simulate environments from official robot competition to natural scenes. C. LeJOS (JAVA) LeJOS is the abbreviation of Lego Java Operation System, which is a replacement firmware for the Lego MINDSTORMS brick, a JVM that fits within the 32kb on the NXT. Users can use standard Java instructions to control NXT robots with more robotics APIs. LeJOS is an open source project hosted in the sourceforge repository. It was originally created from the TinyVM project that implemented a Java VM for the LEGO Mindstorms RCX system. The original author of TinyVM and the RCX version of LeJOS was Jose Solorzano [13]. Fig. 7. RobotC enabled students to test the program in a virtual environment. Source: [12] There are many advantages to using LeJOS NXJ as a learning tool; below is the discussion on the three categories: communications, artificial intelligence and integration with other systems: 1) Communications: LeJOS Project was created to support Java for the hardware LEGO MINDSTORMS RCX and NXT. With both products it is possible to develop software which manages the robot via computer. With RCX, the robot was managed using IR connection, and with NXT the brick can be managed using either USB or a Bluetooth connection. 2) Artificial intelligence: With LeJOS Project, students will learn some concepts about artificial intelligence related to robotics fields. The areas explored in this field are: 1. Classic navigation 2. Probabilistic navigation 3. Behavior control With LeJOS, students will learn how to use classic navigation based on odometry. Lego MINDSTORMS NXT incorporates the motor which offers data from an encoder and that data could be used in odometry calculus. Odometry is the use of data from the movement of actuators to estimate changes in position over time; this allows the robot to estimate (not determine) its position relative to a starting location. This method is sensitive to errors due to the integration of velocity measurements over time to give position estimates. LeJOS Project is also a unique platform which incorporates support for probabilistic theories for robots. With LeJOS, students can learn classic navigation techniques or advanced navigation techniques based on probabilistic techniques. LeJOS Project incorporates behavior control using Subsumption architecture, the classic theory from Rodney Brooks s [14]. Subsumption architecture is a way of decomposing complicated intelligent behavior into many "simple" behavior modules, which in turn are organized into layers. Each layer implements a particular goal of the agent, and higher layers are increasingly abstract. Each layer's goal subsumes that of the underlying layers, e.g., the decision to move forward by the eat-food layer takes into account the decision of the lowest obstacle-avoidance layer. As opposed to more traditional artificial intelligence approaches, subsumption architecture uses a bottom-up design. 3) Integration with other systems: LeJOS Project allows integration of one s robots based on Lego MINDSTORMS NXT with other systems or devices. Some systems or devices integrated are: 1. PC/Laptop/Netbook 2. Smartphones with Android OS 3. Bluetooth Devices With LeJOS Project it easy to use a PC, Laptop or a Netbook to move data to/from a NXT brick with LeJOS firmware. The LeJOS Project has a reliable communication library to make the connection which can be estab-

lished by USB or Bluetooth communication. In 2011, LeJOS Project added support to manage NXT brick via mobile phones with JavaME and mobile phones with Android OS from Google. Android OS is a great advance for LeJOS Project since it adds a small component for the robot and allows it to connect to internet easily. By using smartphone with Android OS, students can develop an application which creates a Bluetooth connection with NXT brick. Utilizing NXT and Android smartphone with LeJOS Project can achieve features such as internet access, digital camera, GPS, accelerometer and larger storage (Fig. 8). To introduce the concepts and the techniques for programming NXT and Android together, CAVE Education had published a book, Android versus NXT: using smartphone to control robots (Android/NXT 機器人大戰 : 智慧型手機控制機器人 in Chinese) (Fig. 9). This book is adapted as one of the guide books in the course, Integration of Mobile Devices and Robot, for junior students of the Department of Electrical Engineering, Tamkang University, 2012. LeJOS Project has rich support for Bluetooth so it is easy to establish a connection with any other electronic devices which have Bluetooth support with serial connection enabled, such as Arduino or some actuator systems. Arduino is a very popular open source project which has a version with Bluetooth. Arduino is a perfect device to connect with NXT and LeJOS Project if the project needs an electronic sensor or actuators that are not available in the NXT market. Fig. 8. Combining Android smartphone and NXT can enable the robot to access the sensors and some features from smartphone. Fig. 9. The Android book for remote control Lego robots, which provided comprehensive introduction of Android devices. Fig. 10. The JAVA book for NXT programming, which was published by CAVE Education group. The book was used as the teaching material in Tamkang University. In addition, the authors of this article gave a course, Robot Programming in Java, for junior students of the department of Electrical Engineering, Tamkang University, 2011. Please refer to the course website for more information. (http://sites.google.com/site/javanxt). The teaching material is Robotics Programming and Design ( 機器人程式設計與實作 : 使用 Java in Chinese) (Fig. 10). V. CONCLUSION In this paper, several programming languages that are compatible with the LEGO MINDSTORMS robot were discussed, including both graphic-based and text-based programming languages. Graphic based programming language, including NXT-G, LabVIEW and App Inventor, share the same advantage which is intuitive to students. Among them, NXT-G is suitable for middle school students that are new to the robot set. LabVEIW, on the other hand, can serve as an advanced tool for more specific topics for advanced users; it can be integrated with computer for applications such as signal acquisition, real-time processing, FPGA and computer vision. The most attractive feature of using App Inventor is that users can build up their Android apps in combination of smartphone s features, such as GPS, to develop the robot that can perform automatic navigation. In addition, the easy-to-use feature of App Inventor makes it suitable for primary level school students. However, text-based programming languages are still welcomed for advanced users and students from middle schools to universities. Text-based programming languages are easier to manage compared to graphic-based languages. Among them, NXC and RobotC are both C-based programming languages, which can provide the robot with more detailed I/O and low-level communication instructions. In addition, the virtual environment provided by RobotC makes it easier for students to test the robot s behavior before actually constructing the robot, and the versatility of the virtual environment may also increase students interest. LeJOS provides extensive support for both hardware and software, which led to more applications, including combining custom

hardware to Android OS. There is no the best programming tool, only the most-suitable. Users have to consider their programming skills, available resources and budget to select appropriate software to develop their robot. From an education perspective, we encourage students to try as many kinds of programming environments as possible, as well as evaluating their project in different dimensions. This will be good practice for them in the future. REFERENCES [1] B. Harvey, Computer Science Logo Style. Cambridge, MA: MIT Press, 1985. [2] M. Resnick, and S. Ocko, LEGO/Logo: Learning through and about design, Constructionism, Norwood, NJ: Ablex Publishing, 1991. [3] M. Resnick, F. Martin, R. Sargent, and B. Silverman, Programmable bricks: Toys to think with, IBM Syst. J., vol. 35, no. 3 4, pp. 443 452, 1996. [4] B. Erwin, M. Cyr, and C. Rogers, LEGO engineer and ROBOLAB: Teaching engineering with LabVIEW from kindergarten to graduate school, Int. J. Eng. Educ., vol. 16, pp. 1 12, 2000. [5] S. McNamara, M. Cyr, C. Rogers, and B. Bratzel, LEGO brick sculptures and robotics in education, presented at the Amer. Soc. Eng. Educ. Annu. Conf. Expo., Charlotte, NC, 1999. [6] K. Lau, H. K. Tang, B. Erwin, and P. Ptrovic, Creative learning in school with LEGO programmable robotics products, presented at the ASEE/IEEE Front. Educ. Conf., San Juan, Puerto Rico, 1999. [7] Robotics Academy, Carnegie Mellon University, 2012. [Online]. Available: http://www.education.rec.ri.cmu.edu [8] Engage to excel: Producing one million additional college graduates with degrees in science, technology, engineering, and mathematics, PCAST, Executive Office of the President, 2012. [Online]. Available: http://www.whitehouse.gov/administration/ eop/ostp/pcast/docsreports [9] TIOBE Programming Community Index, TIOBE software, 2012. [Online]. Available: http://www.tiobe.com [10] MIT App Inventor, Massachusetts Institute of Technology, 2012. [Online]. Available: http://www.appinventor.mit.edu [11] Bricx Command Center 3.3, 2012. [Online]. Available: http://bricxcc.sourceforge.net [12] RobotC.net, Robomatter, Inc., 2012. [Online]. Available: http://www.robotc.net. [13] LeJOS, Java for Lego Mindstorms, 2012. [Online]. Available: http://lejos.sourceforge.net [14] R. Brooks, A robust layered control system for a mobile robot, IEEE J. Robotic. Autom., vol. 2, pp. 14 23, Mar. 1986.