Teaching Software Engineering through Robotics

This paper presents a newly-developed robotics programming course and reports the initial results of software engineering education in robotics context. Robotics programming, as a multidisciplinary course, puts equal emphasis on software engineering and robotics. It teaches students proper software engineering -- in particular, modularity and documentation -- by having them implement four core robotics algorithms for an educational robot. To evaluate the effect of software engineering education in robotics context, we analyze pre- and post-class survey data and the four assignments our students completed for the course. The analysis suggests that the students acquired an understanding of software engineering techniques and principles.

[1]  Wolfram Burgard,et al.  Probabilistic Robotics (Intelligent Robotics and Autonomous Agents) , 2005 .

[2]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[3]  Bertrand Meyer,et al.  Design of an Empirical Study for Comparing the Usability of Concurrent Programming Languages , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[4]  Randall D. Beer,et al.  Using autonomous robotics to teach science and engineering , 1999, Commun. ACM.

[5]  Nikolaus Correll,et al.  A One-Year Introductory Robotics Curriculum for Computer Science Upperclassmen , 2013, IEEE Transactions on Education.

[6]  Tucker R. Balch,et al.  Personalizing CS1 with robots , 2009, SIGCSE '09.

[7]  K. N. King,et al.  Using personal robots in CS1: experiences, outcomes, and attitudinal influences , 2010, ITiCSE '10.

[8]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[9]  Swapna S. Gokhale,et al.  Evaluating an early software engineering course with projects and tools from open source software , 2012, ICER '12.

[10]  Steven M. LaValle,et al.  Planning algorithms , 2006 .

[11]  Janice Singer,et al.  Studying Software Engineers: Data Collection Techniques for Software Field Studies , 2005, Empirical Software Engineering.

[12]  D.A. Gustafson Using robotics to teach software engineering , 1998, FIE '98. 28th Annual Frontiers in Education Conference. Moving from 'Teacher-Centered' to 'Learner-Centered' Education. Conference Proceedings (Cat. No.98CH36214).

[13]  Nathan Hotaling,et al.  A Quantitative Analysis of the Effects of a Multidisciplinary Engineering Capstone Design Course , 2012 .

[14]  Roland Siegwart,et al.  Introduction to Autonomous Mobile Robots , 2004 .

[15]  Erwin Prassler,et al.  Software Engineering for Robotics , 2009 .

[16]  Monica McGill,et al.  Learning to Program with Personal Robots: Influences on Student Motivation , 2012, TOCE.

[17]  Jerry B. Weinberg,et al.  A Multidisciplinary Model for Using Robotics in Engineering Education , 2001 .

[18]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[19]  Barry S. Fagin,et al.  Measuring the effectiveness of robots in teaching computer science , 2003, SIGCSE.

[20]  Illah R. Nourbakhsh,et al.  Mobile robot programming in education , 2006, Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006..

[21]  Lee,et al.  Engineering an Education for the Future , .