Asee peer logo

Using The Ruby Language As A Programming Environment For A Robotics Lab Based Class

Download Paper |


2007 Annual Conference & Exposition


Honolulu, Hawaii

Publication Date

June 24, 2007

Start Date

June 24, 2007

End Date

June 27, 2007



Conference Session

Electrical Engineering Technology Curriculum

Tagged Division

Engineering Technology

Page Count


Page Numbers

12.1572.1 - 12.1572.9



Permanent URL

Download Count


Request a correction

Paper Authors


C. Richard Helps Brigham Young University

visit author page

Richard Helps is the Program Chair of the Information Technology program at BYU and has been a faculty member in the School of Technology since 1986. His primary scholarly interests are in embedded and real-time computing and in technology education. He also has interests in human-computer interfacing. He has been involved in ABET accreditation for about 8 years and is a Commissioner of CAC-ABET and a CAC accreditation team chair. He is a SIGITE executive committee member and an ASEE Section Chair. He spent ten years in industry designing industrial automation systems and in telecommunications. Professional memberships include IEEE, IEEE-CS, ACM, SIGITE, ASEE.

visit author page


Andrew Arnott Brigham Young University

visit author page

Andrew Arnott was a student at Brigham Young University with a strong interest in applications of the Ruby language. He is currently working for Microsoft Corp.

visit author page

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Using the Ruby Language as a Programming Environment for a Robotics Lab-Based Class Abstract The object-oriented, scripting language Ruby, is becoming popular in information technology and computer-oriented educational programs. Yukihiro Matsumoto has indicated that the language was designed with the principle of “least surprise” to help programmers convert ideas into working programs quickly and to have fun. Ruby was designed for applications in many of the modern application areas of software development, including text processing, network programming, interfacing to CGI and XML and addressing Internet-oriented applications. It is also intended to make programming fun for students.

Ruby can also be used for embedded system programming. The general advantages of Ruby programming also apply to this domain. The Ruby interpreter allows rapid development and testing, including wireless tele-operation of mobile robots for prototyping. Since Ruby was not primarily designed for this type of application some adaptations are necessary. Extensions to the language are necessary to allow for real-time interfacing. These and related topics are discussed in the paper.

This paper discusses a semester-long experience of adapting Ruby to serve the needs of a robotics-design, lab-oriented course and evaluates the benefits and disadvantages of Ruby both for embedded development in general and as a teaching tool.

Introduction Although desktop and laptop computers are ubiquitous they are outnumbered by at least an order of magnitude by embedded computer systems. These embedded systems appear in devices ranging from microwave ovens and cars to PDAs, cell-phones and even network routers and switchers. Embedded systems were once dominated by small 8-bit microcontroller systems, with kilobytes or less of memory; Megahertz or slower CPU clocks and were programmed in assembly-language or in C. However as systems have been developed for small low-power, low- cost, high-capability devices, such as cell-phones and PDAs so 32 bit processing power with megabytes of memory; complete operating systems; networking and object-oriented languages, have started to appear even in small embedded systems. This trend has been further accelerated as notebook computers, and the compact low-power technologies they need, have overtaken desktops in sales7. These low-power, high performance, compact technologies also become available for embedded systems development. BYU has offered courses in embedded systems for some years. These elective courses are targeted at students who wish to explore computer applications beyond the traditional desktop or laptop environment. Over recent years this class has, like the marketplace, moved its focus from small 8-bit system to modern operating systems and programming environments3, but is still focused on physically small, mobile systems with real-time needs and IO capabilities far beyond the traditional keyboard/mouse/monitor peripherals.

Helps, C. R., & Arnott, A. (2007, June), Using The Ruby Language As A Programming Environment For A Robotics Lab Based Class Paper presented at 2007 Annual Conference & Exposition, Honolulu, Hawaii. 10.18260/1-2--2185

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2007 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015