Bringing the Benefits of Agile Techniques Inside the Classroom: A Practical Guide

Besides professional programmers, many “end-user programmers” write code in their daily life. Given that so much of end-user-created software suffers from quality problems, Software Engineering (SE) is no longer solely applicable to the professional context: a clear computational processing can be useful in everyday life. While the expansion of programming skills acquisition initiatives in K-12 (i.e., primary and secondary schools) has contributed to improving learners’ coding ability, there have not been many studies devoted to the teaching/learning of SE concepts. In this chapter, we focus on understanding how it is possible to bring the benefits of Agile techniques inside the classroom. Moreover, our goal is to show how each selected practice (such as user stories and pair programming) can be leveraged or adapted to the educational context; to this end, tools already adopted in schools are considered as possible substitutes of professional ones.

[1]  Ilenia Fronza,et al.  Teaching Software Design Engineering Across the K-12 Curriculum: Using Visual Thinking and Computational Thinking , 2016, SIGITE.

[2]  Giancarlo Succi,et al.  Modeling Spontaneous Pair Programming When New Developers Join a Team , 2009, XP.

[3]  Clarisse Sieckenius de Souza,et al.  Signifying software engineering to computational thinking learners with AgentSheets and PoliFacets , 2017, J. Vis. Lang. Comput..

[4]  Hongfang Liu,et al.  Teaching software engineering to end-users , 2008, WEUSE '08.

[5]  Kevin Kidder,et al.  Evaluating Agile Principles in Active and Cooperative Learning , 2009 .

[6]  Morgan Ericsson,et al.  Teaching Agile - Addressing the Conflict between Project Delivery and Application of Agile Methods , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[7]  Ralf Romeike,et al.  Starting out with Projects: Experiences with Agile Software Development in High Schools , 2016, WiPSCE.

[8]  Ilenia Fronza,et al.  Computational Thinking Through Mobile Programming - A Case Study in a Liberal Education Context , 2016, MobiWIS.

[9]  Margaret M. Burnett,et al.  Future of end-user software engineering: beyond the silos , 2014, FOSE.

[10]  Ilenia Fronza,et al.  Students Want to Create Apps: Leveraging Computational Thinking to Teach Mobile Software Development , 2015, SIGITE.

[11]  Viljan Mahnic,et al.  A Capstone Course on Agile Software Development Using Scrum , 2012, IEEE Transactions on Education.

[12]  Pamela S. Lottero-Perdue,et al.  Perspectives on Failure in the Classroom by Elementary Teachers New to Teaching Engineering , 2014 .

[13]  Joseph Krajcik,et al.  The Cambridge Handbook of the Learning Sciences: Project-Based Learning , 2005 .

[14]  Owen Astrachan,et al.  Bringing Extreme Programming to the Classroom , 2001 .

[15]  Orni Meerbaum-Salant,et al.  An Agile Constructionist Mentoring Methodology for Software Projects in the High School , 2010, TOCE.

[16]  K. Patricia Cross,et al.  Collaborative Learning Techniques: A Handbook for College Faculty , 2004 .

[17]  Sridhar Chimalakonda,et al.  What makes it hard to teach software engineering to end users? some directions from adaptive and personalized learning , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[18]  M. Sheelagh T. Carpendale,et al.  Visual Thinking In Action: Visualizations As Used On Whiteboards , 2011, IEEE Transactions on Visualization and Computer Graphics.

[19]  Bill Buxton,et al.  Sketching User Experiences: Getting the Design Right and the Right Design , 2007 .

[20]  Margaret M. Burnett What Is End-User Software Engineering and Why Does It Matter? , 2009, IS-EUD.

[21]  Ilenia Fronza,et al.  Teaching Computational Thinking Using Agile Software Engineering Methods , 2017, ACM Trans. Comput. Educ..

[22]  F. Mikre Review Article: The roles of assessment in curriculum practice and enhancement of learning , 2011 .

[23]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[24]  Leon Moonen,et al.  Java quality assurance by detecting code smells , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[25]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[26]  Casper Lassenius,et al.  Teaching students scrum using LEGO blocks , 2014, ICSE Companion.

[27]  Piero Mussio,et al.  End users as unwitting software developers , 2008, WEUSE '08.

[28]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

[29]  Torgeir Dingsøyr,et al.  A decade of agile methodologies: Towards explaining agile software development , 2012, J. Syst. Softw..

[30]  Ilenia Fronza,et al.  Blending Mobile Programming and Liberal Education in a Social-Economic High School , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[31]  Mike Cohn,et al.  Agile Estimating and Planning , 2005 .

[32]  Caitlin Kelleher,et al.  A code reuse interface for non-programmer middle school students , 2010, IUI '10.

[33]  Corrie van der Lelie,et al.  The value of storyboards in the product design process , 2006, Personal and Ubiquitous Computing.

[34]  Alberto Sillitti,et al.  Pair Programming and Software Defects--A Large, Industrial Case Study , 2013, IEEE Transactions on Software Engineering.

[35]  Yvonne Rogers,et al.  Using 'tangibles' to promote novel forms of playful learning , 2003, Interact. Comput..

[36]  X. Fang,et al.  Using a coding standard to improve program quality , 2001, Proceedings Second Asia-Pacific Conference on Quality Software.

[37]  Andreas Meier,et al.  Teaching agile software development at university level: Values, management, and craftsmanship , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[38]  Mario Cardinal Executable Specifications with Scrum: A Practical Guide to Agile Requirements Discovery , 2013 .

[39]  Brian Traynor Rapid paper prototyping: 100 Design sketches in 10 minutes, 18 designs presented, 6 prototypes tested, student engagement - Priceless! , 2012, 2012 IEEE International Professional Communication Conference.

[40]  Ralf Romeike,et al.  Agile projects in high school computing education: emphasizing a learners' perspective , 2012, WiPSCE.

[41]  Gerhard Fischer,et al.  Designing for Participation in Socio-technical Software Systems , 2007, HCI.