ROBOTC: Programming for All Ages

Similar documents
Table of Contents. Sample Pages - get the whole book at

Indiana K-12 Computer Science Standards

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

Programming Design ROBOTC Software

Program.

Programming Design. ROBOTC Software

Programming and Multi-Robot Communications

CSTA K- 12 Computer Science Standards: Mapped to STEM, Common Core, and Partnership for the 21 st Century Standards

INTEL INNOVATION GENERATION

MECHATRONICS IN A BOX

Engineering Diploma Resource Guide ST150 ETP Research & Design (Engineering)

Introduction to Programming. June 4 June 8, and July 9 July 13 Mo-Fr., 8:30AM - 3:30PM

Engaging Solutions for Applied Learning Programme

West Windsor-Plainsboro Regional School District Computer Programming Grade 8

Technology Plan

Overview for VEX educational Platform and Competition. (All you need to know to start)

Introduction to Computer Science - PLTW #9340

STRATEGIC FRAMEWORK Updated August 2017

Cross Linking Research and Education and Entrepreneurship

Week Lesson Assignment SD Technology Standards. SPA Handout. Handouts. Handouts/quiz. Video/handout. Handout. Video, handout.

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

Medb ot. Medbot. Learn about robot behaviors as you transport medicine in a hospital with Medbot!

Scratching the Surface of Pong: Enriching Linear Equations with Computer Programming

CREATING A MINDSET FOR INNOVATION Paul Skaggs, Richard Fry, and Geoff Wright Brigham Young University /

Introductory Lesson 2 Internet of Things

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

ROBOTICS TODAY THE LATEST IN SCIENCE, RESEARCH AND CONSUMER ROBOTICS NOVEMBER 2012 DEVELOPED BY: CARNEGIE MELLON ROBOTICS ACADEMY

WeDo STEM. Colleen

Paula Keener, Marine Biologist Director, Education Program NOAA Office of Ocean Exploration and Research

Robotics Initiative at IIT IPRO 316. Fall 2003

RUNNYMEDE COLLEGE & TECHTALENTS

Vision Ques t. Vision Quest. Use the Vision Sensor to drive your robot in Vision Quest!

RCJ Rescue B. RCJ Rescue B Primary Team Branchburg, NJ USA. Storming Robots in Branchburg, NJ, USA. SR-chitect / Storming Robots

Start a Robotics Elective at Your School

Line Detection. Duration Minutes. Di culty Intermediate. Learning Objectives Students will:

Issues in Information Systems Volume 13, Issue 2, pp , 2012

ICTCM 28th International Conference on Technology in Collegiate Mathematics

Course Overview. Course Requirements. Key Concepts. Age Restrictions Subject Objective Duration. Prerequisite Skills Hardware equipment

Total Hours Registration through Website or for further details please visit (Refer Upcoming Events Section)

Introduction to the VEX Robotics Platform and ROBOTC Software

Part of: Inquiry Science with Dartmouth

2016 Massachusetts Digital Literacy and Computer Science (DLCS) Curriculum Framework

AIEDAM Special Issue: Sketching, and Pen-based Design Interaction Edited by: Maria C. Yang and Levent Burak Kara

Downloading a ROBOTC Sample Program

BSc in Music, Media & Performance Technology

in the New Zealand Curriculum

INTRODUCTION OF SOME APPROACHES FOR EDUCATIONS OF ROBOT DESIGN AND MANUFACTURING

Development of a Laboratory Kit for Robotics Engineering Education

2009 New Jersey Core Curriculum Content Standards - Technology

Robotics Engineering DoDEA Career Technology Education Robot Programming

VEX Robotics Platform and ROBOTC Software. Introduction

IMPLEMENTATION AND DESIGN OF TEMPERATURE CONTROLLER UTILIZING PC BASED DATA ACQUISITION SYSTEM

Chapter 1 An Introduction to Computers and Problem Solving

About Cojag:-

Activity Template. Subject Area(s): Science and Technology Activity Title: Header. Grade Level: 9-12 Time Required: Group Size:

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

Professional Development

Advanced Computer Aided Design COURSE OUTLINE

UC DAVIS CENTER FOR INTEGRATED COMPUTING AND STEM EDUCATION (C STEM) Implementation Brochure /2018. c-stem.ucdavis.edu

2014 New Jersey Core Curriculum Content Standards - Technology

MADISON PUBLIC SCHOOL DISTRICT. GRADE 7 Robotics Cycle

Building a comprehensive lab sequence for an undergraduate mechatronics program

An ICE SCULPTURE FAIR Integrated Elementary STEM Project

2016 Massachusetts Digital Literacy and Computer Science (DLCS) Curriculum Framework

Development of a MATLAB Data Acquisition and Control Toolbox for BASIC Stamp Microcontrollers

Science, Technology, Engineering and Mathematics (STEM) Update. Education Development Committee Meeting March 10, 2015

Saturday Academy Program

AC : THE UBIQUITOUS MICROCONTROLLER IN MECHANICAL ENGINEERING: MEASUREMENT SYSTEMS

the cad academy Introduction

A comprehensive guide to digital badges.

Required Course Numbers. Test Content Categories. Computer Science 8 12 Curriculum Crosswalk Page 2 of 14

STEM EDUCATION: OPENING THE DOOR TO THE FUTURE. Presenter: Dr. Angela Andersson April 25, 2012

Facilitator s Guide to Getting Started

Creating a Mindset for Innovation

March 06, 2017 Page 1 of 17. Two Day Workshop ARDUINO AND ITS PROGRAMMING. 03. MARCH.2017 to 04.MARCH.2017

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

THE ARDUINO ENGINEERING KIT INFORMATION GUIDE ARDUINO.CC/EDUCATION

Robot Task-Level Programming Language and Simulation

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

Mechanical Engineering

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

Quanser Products and solutions

A User s Guide to the Robot Virtual Worlds App RVW APP. ROBOTC Graphical Programming. Virtual Programming Challenges to Foster Computational Thinking

BUILDING DIGITAL COMPETENCIES TO BENEFIT FROM EXISTING AND EMERGING TECHNOLOGIES, WITH A SPECIAL FOCUS ON GENDER AND YOUTH DIMENSIONS

Sensing the World Around Us. Exploring Foundational Biology Concepts through Robotics & Programming

THE LATEST IN SCIENCE, RESEARCH AND CONSUMER ROBOTICS

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

Automatic Headlights

Arduino Platform Capabilities in Multitasking. environment.

KI-SUNG SUH USING NAO INTRODUCTION TO INTERACTIVE HUMANOID ROBOTS

Welcome to Arduino Day 2016

LEADING DIGITAL TRANSFORMATION AND INNOVATION. Program by Hasso Plattner Institute and the Stanford Center for Professional Development

Ultimatum. Robotics Unit Lesson 5. Overview

200 West Baltimore Street Baltimore, MD TTY/TDD marylandpublicschools.org

Implementation of Conventional and Neural Controllers Using Position and Velocity Feedback

Saphira Robot Control Architecture

Foundation - 2. Exploring how local products, services and environments are designed by people for a purpose and meet social needs

Embedded & Robotics Training

UN GA TECHNOLOGY DIALOGUES, APRIL JUNE

GameBlocks: an Entry Point to ICT for Pre-School Children

Transcription:

z ROBOTC: Programming for All Ages

ROBOTC: Programming for All Ages ROBOTC is a C-based, robot-agnostic programming IDEA IN BRIEF language with a Windows environment for writing and debugging programs. Although courses could be designed Schools often wonder which solely around ROBOTC, Robomatter Incorporated programming language or software develops its robotics-focused courses to utilize ROBOTC to adopt in order to have their as a tool to be used in activities and projects that can both introduce and deepen students programming skills, students develop advanced, marketable programming computer science concepts, computational and experience. One of the biggest algorithmic problem solving abilities, as well as other concerns is the transition from skills. Robomatter s internal development of ROBOTC simpler (novice-targeted) to more as a tool guarantees not only control over the interface complex (professional) languages. and its features, but also that its curriculum will remain up-to-date. New features within ROBOTC can be ROBOTC is unique in offering three different forms of its anticipated and the curriculum can be updated programming language in order to concurrently to offer schools the most recent versions of foster those transitions as students both, should the need arise. develop increasingly sophisticated As a cross-platform solution, ROBOTC allows students skills. Its low-entry graphical form to learn the type of C-based programming used in allows novices to focus on the advanced educational and professional applications. It was fundamental concepts (e.g., developed in collaboration with Carnegie Mellon s sequences, systems thinking, etc.); Robotics Academy and launched in 2006. With whereas the full-text form allows subsequent developments, ROBOTC was enhanced with more advanced students to program the capability to program both physical and virtual like professionals. robots, by adding Robot Virtual Worlds (RVW). Through ROBOTC, RVW allows students to test and run their programs virtually, and also offers different types of game-based robotics learning. ROBOTC is offered in a graphical form (block-based; i.e., ROBOTC Graphical), a text-based form with natural language (ROBOTC Natural Language), and a full-text form (ROBOTC) as an advanced source code editor using industry standard C-programming language. Each form of ROBOTC allows its learners to succeed in programming because they are approaching programming with a tool that is accessible to them (within their zone of proximal development). The interfaces of the different forms of ROBOTC were designed to be as user-friendly to a young learner as they are to an advanced programmer, and all forms include the easiest editor possible along with an easy-to-use compiler which is capable of detecting and drawing attention to errors before Robomatter Inc. 2

sending the program to the robot. All forms of ROBOTC also have sample programs that are available to help students to get started more easily. ROBOTC Graphical was developed because many novice programmers struggle with the syntax required within more traditional programming. By allowing students to use prepared blocks of code, students can focus on the commands within the program and its overall structure rather than on the syntax of each command or group of commands. Additionally, the application s toolbar is mostly icon-based so that students can easily find the controls that they need to use, like those for debugging, compiling, etc. There is even a converter that can show students what their programs would look like if written in text instead of the graphical language. That converter should help prepare students for writing text-based programs. ROBOTC Natural Language s text-based form allows students to become familiar with text-based programming but do so with the ease of natural language. There are debugging tools, a function library, and an automatic format fixing tool (magic wand) for building more successful programs. The compiler s capacity for detecting errors in the program is especially useful at this level when students programs can often contain misspellings and typos. ROBOTC, the full-text form, takes students programming experiences further and offers them three levels: Basic, Expert, and Super User. Students, or users, write syntax-dependent code and thereby program as professionals do. By having these multiple forms (graphical, natural language, and full-text) and applications (physical and virtual), ROBOTC can be adopted for classrooms with wide ranges of students and experience levels. The question is whether it is utilized as broadly as its capabilities allow. In order to answer that question, Robomatter Incorporated visited with teachers in three different settings to find out how they are using ROBOTC. Three Different Levels of Classrooms Sales records for ROBOTC can only reveal so much about how it is being used. Competition teams and camps, as well as schools, purchase ROBOTC licenses for their students but likely all have different intentions for doing so. Because ROBOTC is designed to be educational as well as functional, Robomatter set out to investigate how and specifically why, ROBOTC is being adopted in educational settings. Teachers from local elementary/middle schools, high schools, and colleges were surveyed on how and why they use ROBOTC. Robomatter Inc. 3

A programming language affords learners with a great variety of educational experiences. Which are particularly meaningful to teachers? How do the intentions of elementary school teachers using ROBOTC differ from those of college professors, or are they similar? Case studies of classes at elementary and middle school, high school, and university levels were conducted to determine how and why ROBOTC enhances these different classroom experiences. How are students using ROBOTC? As a broadly accessible programming language, ROBOTC affords users with many opportunities to apply computational, algorithmic, mathematical, and scientific skills in the interests of programming. The teachers interviewed all expressed a deep commitment to using ROBOTC for those very reasons: 1) Students with varying levels of experience can use ROBOTC effectively because of the different forms of ROBOTC offered and because of the sample programs and templates provided within the program, and 2) Programming in ROBOTC allows students at different academic levels to focus on their applications of skills the more important part of the class - rather than on the challenges of programming that are found with other programming languages. ROBOTC allows classes to: Elementary / Middle High School College Use breakout boards to engineer their own robots Solve truly professional-level problems Develop function libraries Recognize ROBOTC as an IDE Consider real-world science Apply mathematics Simplify program with pseudocode in comments Robomatter Inc. 4

Practice algorithmic thinking Develop computational thinking skills Develop/deepen programming skills Develop/deepen computer science knowledge At the elementary and middle school level, ROBOTC is used to introduce, apply, and deepen computer science content (e.g., coding, cybersecurity, etc.), computational thinking skills (e.g., decomposition, abstraction, etc.), algorithmic thinking, and the basic programming skills like sequencing and debugging that are important to students future academic pursuits. The use of pseudocode in comments within ROBOTC is recognized by teachers as essential to students development of competencies something echoed at the high school level as well. Additionally, the calculations required for programming in ROBOTC necessitate applying mathematic skills and concepts like, but not limited to: geometric shapes, circumference, proportional reasoning, distance conversions, and angles and their degrees. ROBOTC also allows teachers to introduce real-world science. For example, students learn to collect, track, and apply data through the use of sensors and data logging in ROBOTC. At the high school level, ROBOTC allows students to apply and deepen their foundational programming skills (e.g., looped behaviors, conditional statements, variables, etc.) and their computational and algorithmic thinking skills to solve more complex problems through the use of flowcharts, pseudocode, and comments within their programs. They might also discuss software applications like ROBOTC as more than merely a programming language but also as an integrated Robomatter Inc. 5

development environment (IDE) like those used by software developers to write and manage their source code. They also learn to use functions and the function libraries. One teacher explained that because ROBOTC harnesses the full power of C programming, the sky is the limit when it comes to programming and creating computational artifacts. That potential is being fully realized in university classrooms when students are better equipped to develop more demanding projects. At the college level, university classrooms, at Carnegie Mellon University in this case, are using it for creatively demanding projects like tele-operated Urban Search and Rescue challenges and other professional-level projects that require autonomous robots. Because the complexity of the projects at the college level are similar if not identical to those faced by professional engineers, the math required for programming these projects is also sophisticated. While working in ROBOTC to complete their projects, students rely on applications of their calculus-based math skills (e.g., disderivatives crete, integrals, the Runge-Kutta method, etc.). During the course, students use ROBOTC to show proficiencies in many different robotics programming skills including but not limited to the following: wheel-free locomotion (e.g., ladder climbing), line-following, odometry/dead reckoning, path planning (waypoints or wavefront), control of an inverted pendulum robot via a proportional integral derivative controller (PID), localization by using the Kalman filter, kinematics of a robot arm, etc. Forms of Programming and Types of Robots Most often, students at the elementary and middle school level are using ROBOTC Graphical to learn to code both physical and virtual robots. One teacher told us that her students use ROBOTC Graphical to program both virtual and physical robots during each project because doing so allows students to test their programs virtually before running them physically. That encourages students to differentiate when a bug (problem) is in the program and when it might be in the hardware (the build). It also allows students to test their programs in a low-stakes context because students are often fearful of risking failure in front of their classmates; so, Robot Virtual Worlds (RVW) allows students to test out their programs before classmates can see. Additionally, more advanced students might begin the transition to ROBOTC Natural Language as they near the end of middle school. Robomatter Inc. 6

Students at the high school level are most often using either the ROBOTC Natural Language or ROBOTC (full-text). However, in some cases, students who are new to programming are starting with the graphical form as part of an introductory set of lessons or courses. Students who continue through their last years often make the transition to ROBOTC (full-text) after they have advanced levels of programming skills. High school teachers report that the transition is facilitated by the hover-over and autocomplete features available in ROBOTC for assisting students. High school teachers generally report using ROBOTC to program both the physical and virtual robots for the same reasons as elementary and middle school teachers do. However, some have added that students programming with ROBOTC in RVW can accomplish more in less time. Also, RVW allows students to develop their projects in parallel to other students who are developing physicallybased projects. This is especially helpful in schools where resources might be limited. Students at the college level who are applying calculus to their solutions are most often using ROBOTC (full-text); however, introductory robotics courses at the college level sometimes start with ROBOTC Natural Language, or even ROBOTC Graphical for true novices to programming. Although some college classrooms might include some programming in ROBOTC for RVW, most of the programming in ROBOTC is for physical robots. In fact, some college classrooms are using ROBOTC to program breakout boards so that students can also design their own hardware. Forms of ROBOTC used: Novices Experienced Advanced ROBOTC Graphical ROBOTC Natural Language ROBOTC (Full-Text) Connections between Programs and Hardware An important feature of ROBOTC is helping students to recognize how the programming affects the robot s behaviors. This is especially important for younger learners and novice programmers and in fact, the teachers at the elementary, middle, and high school levels reported that one of the most Robomatter Inc. 7

important features of ROBOTC was its ability to highlight the relationships between programming and hardware behavior. Starting with the setup of the motors and sensors in ROBOTC, teachers remarked that students more readily recognized how input/output were related. The real-time feedback and debugging afforded by ROBOTC further highlighted the connections between programs and hardware in these classrooms. Because ROBOTC is a realistic programming language, even in graphical form, teachers reported that students were able to see the connections of their programs to their robots, their devices, and to the Internet of Things (IoT). Presumably, most college students recognize the connections between their programs and hardware. Teachers at this level did not report the need for ROBOTC to highlight those connections but it seems reasonable to assume that novices to programming might be benefiting from the same ROBOTC features (hardware setups, feedback, debugging, etc.) that younger students do. However, because the projects required at the college level are much more challenging and often require students to engineer their own hardware, those connections are prerequisite to effectively solving challenges like those within ping-pong duels, robot tag, stair climbing, etc. Development of Generally Useful Skills One important commonality across the three levels of classrooms using ROBOTC was that teachers all recognized ROBOTC, and the activities contextualized in and around ROBOTC, as valuable opportunities for students to develop skills that are related to, but not exclusive to, robotics. Teachers reported that they were using ROBOTC, in part, to help students to build computational thinking skills (e.g., decomposition, sequencing, debugging, systems thinking, etc.). Additionally, they reportedly value ROBOTC-centered activities and projects for being realistic and complex because those projects necessitate that students learn to persevere in the face of challenges, and to effectively collaborate. These were identified by teachers as generally useful skills Robomatter Inc. 8

that teachers wanted students to develop in order to prepare them, not only for subsequent robotics or computer science courses but also for productive, successful futures. Summary ROBOTC is being effectively used to engage, challenge, and educate students who range in ages and experience levels from the elementary-school level to the college level, and from novice to advanced. Its availability in three different forms (graphical, text-based with natural language, and full-text) allow ROBOTC to afford teachers and students with ample opportunities to learn how to effectively program both physical and virtual robots, to develop deep computational thinking skills, to solve complex real-world problems, and to progress from block-based to full-text programming as the students develop more sophisticated skills. As one teacher simply stated, With the full power of C [programming language underlying ROBOTC], the sky is the limit! About Robomatter Robomatter Incorporated is a technology and engineering curriculum solutions provider focused on bringing STEM experiences to students by leveraging the motivational effects of computer science and robotics. Robomatter's solutions include research-backed curricula, interactive technology tools, STEM teacher professional development programs, and certification programs through a partnership with Carnegie Mellon's Robotics Academy. Robomatter Inc. 9