Concurrent Software Engineering and Robotics Education

This paper presents a new, multidisciplinary robotics programming course, reports initial results, and describes subsequent improvements. With equal emphasis on software engineering and robotics, the course teaches students how software engineering applies to robotics. Students learn independently and interactively and gain hands-on experience by implementing robotics algorithms on a real robot. To understand the effects of the course, we conducted an exit and an 8-month survey and measured software quality of the students' solutions. The analysis shows that the hands-on experience helped everyone learn and retain robotics well, but the students' knowledge gain in software engineering depended on their prior programming knowledge. Based on these findings, we propose improvements to the course. Lastly, we reflect our experience on andragogy, minimalism, and interactive learning.

[1]  Radu Bogdan Rusu,et al.  3D is here: Point Cloud Library (PCL) , 2011, 2011 IEEE International Conference on Robotics and Automation.

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

[3]  Douglas C. Schmidt,et al.  Patterns for concurrent and networked objects , 2000 .

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

[5]  Bertrand Meyer,et al.  Prototyping a Concurrency Model , 2013, 2013 13th International Conference on Application of Concurrency to System Design.

[6]  Sebastian Thrun,et al.  Probabilistic robotics , 2002, CACM.

[7]  Jared Jackson Microsoft robotics studio: A technical introduction , 2007, IEEE Robotics & Automation Magazine.

[8]  Bertrand Meyer,et al.  Simple concurrency for robotics with the Roboscoop framework , 2014, 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems.

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

[10]  Bertrand Meyer,et al.  Object-oriented software construction (2nd ed.) , 1997 .

[11]  Sebastian Thrun,et al.  Perspectives on standardization in mobile robot programming: the Carnegie Mellon Navigation (CARMEN) Toolkit , 2003, Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003) (Cat. No.03CH37453).

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  R. Grice Minimalism Beyond the Nurnberg Funnel , 1998 .

[14]  Piotr Nienaltowski,et al.  Practical framework for contract-based concurrent object-oriented programming , 2007 .

[15]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[16]  Michelene T. H. Chi,et al.  Active-Constructive-Interactive: A Conceptual Framework for Differentiating Learning Activities , 2009, Top. Cogn. Sci..

[17]  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).

[18]  Bertrand Meyer,et al.  Design of an empirical study for comparing the usability of concurrent programming languages , 2013, Inf. Softw. Technol..

[19]  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.

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

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

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

[23]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

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

[25]  Paul Newman MOOS - Mission Orientated Operating Suite , 2008 .

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

[27]  M. Knowles The Modern Practice of Adult Education: From Pedagogy to Andragogy , 1970 .

[28]  Jaakko Kurhila,et al.  Why using robots to teach computer science can be successful theoretical reflection to andragogy and minimalism , 2008, Koli Calling.

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

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

[31]  Ehud Rivlin,et al.  TangentBug: A Range-Sensor-Based Navigation Algorithm , 1998, Int. J. Robotics Res..