June 26, 2011
June 26, 2011
June 29, 2011
Software Engineering Constituent Committee
22.1413.1 - 22.1413.12
Teams Battling Teams: Introducing Software Engineering Education in the First Year with ROBOCODEIn many computer science programs, the acquisition of software engineering skills is limited toonly a few discrete curricular points, such as introductory software engineering and capstonecourses. This presents two significant challenges: First, the study of software engineeringbecomes overly focused within isolated courses. Second, when students do first encounter thechallenges of software engineering learning activities in these courses, they are generallyunprepared.In order to address these difficulties, we have introduced a challenging and engaging teamsoftware engineering project into our first-year introductory programming sequence. Using theROBOCODE robotic combat simulator  (see Figure 1), students work on developing acooperative team of robots that competes in tournaments against teams built by their fellowstudents. Key goals with this curricular enhancement are to better integrate software engineeringeducation in the entirety of our program and to first introduce team- and project-based softwareengineering activities in a low-risk setting in order to create a smoother student learning curve.The ROBOCODE simulator allows students to hone their JAVA programming skills by buildingautonomous robots that fight on a simulated battlefield. While ROBOCODE is conventionally usedfor individual programming projects , our work is a novel divergence that leverages thesimulator’s support for the development of robot teams in which robots of the same team maycoordinate their actions in addition to collecting concrete evaluative data. We strongly espouse aproblem-based and experiential learning approach [5, 3], and fostering a friendly competitionsetting significantly increases the degree of student involvement and commitment that is a keyfactor in fostering student learning .Our novel team- and problem-based project is integrated into the final six weeks of our first-yearprogramming language sequence. While under close instructor supervision over groupingconcerns, students engage in such software engineering activities as the elaboration ofrequirements, creation of prototype robots, implementation and testing of final executable robots,and giving short presentations on their robot design. The project is grounded in two tournament-style competitions: Students use their early prototypes in a preliminary tournament, whichprovides insight into their competitors’ behaviors and motivates students to improve their ownrobots, while a final tournament battle allows the most effective robotic teams to emerge.Based on quantitative and qualitative results from surveys of participating students in two termsas well as from our own observations, we have found this project to be quite effective. Forexample, 75% of students agreed or strongly agreed that this assignment made them moreenthusiastic about the course material. One student reported a favorite part of the assignment as“designing modular classes and just thinking how the thing itself will come together” whileanother found the most useful element of the project to be the “notion of team programming aswell as designing behaviors.”Perhaps most importantly, the project fostered a high degree of student involvement andenthusiasm: Tournaments were active and entertaining, with students cheering for teams andcongratulating each other on victories. One student said that the project is a “cool idea;Robocode is addictive.” Some less positive results included the perception by some students thatthe project was simply too time-consuming, especially in terms of teamwork overhead. Whilethese criticisms are somewhat expected for an undergraduate team project, we are carefullyconsidering these formative assessment results for future course offerings. Selected Figures Figure 1: A screenshot of a ROBOCODE team battle in progress. Selected References Astin, A.W. 1993. What Matters in College? Four Critical Years Revisited. Jossey-Bass. O’Kelly, J. and Gibson, J.P. 2006. RoboCode and problem-based learning: a non-prescriptive approach to teaching. In Proceedings of the 11th Annual SIGCSE Conference onInnovation and Technology in Computer Science Education, pg. 217-221. Race, P. 1998. Teaching: Creating a Thirst for Learning. In Brown, S., Armstrong, S.,and Thomson, G. (eds). Motivating Students, pg. 47-57, Kogan Page. http://robocode.sourceforge.net/ Woods, D.R., Hrymak, A.N., Marshall, R.R., Wood, P.E., Crowe, C.M., Hoffman, T.W.,Wright, J.D., Taylor, P.A., Woodhouse, K.A., and Bouchard, C.G. 1997. Developing ProblemSolving Skills: The McMaster Problem Solving Program. Journal of Engineering Education,86(2), pg. 75-91.
Georgas, J. C. (2011, June), Teams Battling Teams: Introducing Software Engineering Education in the First-Year with RoboCode Paper presented at 2011 ASEE Annual Conference & Exposition, Vancouver, BC. 10.18260/1-2--18925
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: © 2011 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