Bridging the Academia-Industry Gap in Software Engineering: A Client-Oriented Open Source Software Projects Course

Too often, computer science programs offer a software engineering course that emphasizes concepts, principles, and practical techniques, but fails to engage students in real-world software experiences. The authors have developed an approach to teaching undergraduate software engineering courses that integrates client-oriented project development and open source development practice. They call this approach the Client-Oriented Open Source Software (CO-FOSS) model. The advantages of this approach are that students are involved directly with a client, nonprofits gain a useful software application, and the project is available as open source for other students or organizations to extend and adapt. This chapter describes the motivation, elaborates the approach, and presents the results in substantial detail. The process is agile and the development framework is transferrable to other one-semester software engineering courses in a wide range of institutions.

[1]  Gregory W. Hislop,et al.  An approach for evaluating FOSS projects for student participation , 2012, SIGCSE '12.

[2]  Pamela B. Lawhead,et al.  Evaluating individuals in team projects , 2000, SIGCSE '00.

[3]  Thomas Way A company-based framework for a software engineering course , 2005 .

[4]  Dean Sanders,et al.  Using Scrum to manage student projects , 2007 .

[5]  Vivienne Farrell,et al.  Capstone project: fair, just and accountable assessment , 2012, ITiCSE '12.

[6]  Maria Meletiou-Mavrotheris,et al.  Flying a math class? Using web-based simulations in primary teacher training and education , 2014 .

[7]  Debbie Richards,et al.  Designing Project-Based Courses with a Focus on Group Formation and Assessment , 2009, TOCE.

[8]  Shankar Venkatagiri,et al.  Engineering the software requirements of nonprofits: a service-learning approach , 2006, ICSE.

[9]  Andrew Meneely,et al.  ROSE: a repository of education-friendly open-source projects , 2008, SIGCSE 2008.

[10]  Panagiotis K. Linos,et al.  A service-learning program for computer science and software engineering , 2003 .

[11]  Peter J. Nürnberg,et al.  Calliope: supporting high-level documentation of open-source projects , 2005, MIS '05.

[12]  Yam San Chee,et al.  Gestural Articulations of Embodied Spatiality: What Gestures Reveal about Students' Sense-Making of Charged Particle Dynamics in a 3D Game World , 2013, Int. J. Gaming Comput. Mediat. Simulations.

[13]  J. Peizer Open Source Technology and Ideology in the Nonprofi t Context , 2007 .

[14]  Yu-Wei Lin,et al.  Hacker Culture and the FLOSS Innovation , 2012, Int. J. Open Source Softw. Process..

[15]  Jeffrey J. McConnell Active and cooperative learning: further tips and tricks (part 3) , 2006, SGCS.

[16]  Pei-Di Shen,et al.  Applying Open Course Ware to Improve Non-Information Majors' Computer Skills and Self-Directed Learning , 2012, Int. J. Open Source Softw. Process..

[17]  Daniel Port,et al.  Evaluating individual contribution toward group software engineering projects , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[18]  Jürgen Börstler,et al.  Client sponsored projects in software engineering courses , 2003, SIGCSE.

[19]  Reidar Conradi,et al.  Adoption of open source software in software-intensive organizations - A systematic literature review , 2010, Inf. Softw. Technol..

[20]  T. Reichlmayr,et al.  The agile approach in an undergraduate software engineering course project , 2003, 33rd Annual Frontiers in Education, 2003. FIE 2003..

[21]  Melissa Dark,et al.  A multi-expertise application-driven class , 2007, SIGCSE '07.

[22]  J McConnellJeffrey Active and cooperative learning , 2005 .

[23]  Robert M. Marmorstein Open source contribution as an effective software engineering class project , 2011, ITiCSE '11.

[24]  Lisa Lancor,et al.  Analyzing PHP frameworks for use in a project-based software engineering course , 2013, SIGCSE '13.

[25]  Bonnie MacKellar Analyzing coordination among students in a software engineering project course , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[26]  K. Shirahada,et al.  New Trends in Service Science and Education for Service Innovation , 2014 .

[27]  Delbert Hart A survey of source code management tools for programming courses , 2009 .

[28]  Ralph Morelli,et al.  Holistic Software Engineering Education Based on a Humanitarian Open Source Project , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[29]  John C. Grundy A comparative analysis of design principles for project-based IT courses , 1997, ACSE '97.

[30]  Karen Anewalt Dynamic group management in a software projects course , 2009 .

[31]  Linda Sherrell,et al.  Pair programming and agile software development: experiences in a college setting , 2006 .

[32]  Allen B. Tucker,et al.  Software Development: An Open Source Approach , 2011 .

[33]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[34]  Wilson P. Paula Filho,et al.  A software process for time-constrained course projects , 2006, ICSE.

[35]  Lisa Lancor Collaboration tools in a one-semester software engineering course: what worked? what didn't? , 2008 .

[36]  Mihaela Sabin,et al.  Scaling a framework for client-driven open source software projects: a report from three schools , 2013 .

[37]  W. Oakes,et al.  EPICS: engineering projects in community service , 2004, 34th Annual Frontiers in Education, 2004. FIE 2004..

[38]  Joo Tan,et al.  An evaluation of tools supporting enhanced student collaboration , 2008, 2008 38th Annual Frontiers in Education Conference.

[39]  Richard Mitchell,et al.  Self-grading in a project-based software engineering course , 2004, 17th Conference on Software Engineering Education and Training, 2004. Proceedings..

[40]  Jon Beck Using the CVS version management system in a software engineering course , 2005 .

[41]  Brian A. Nejmeh The Humanitarian Free and Open‐Source Software Project: Engaging Students in Service‐Learning through Building Software , 2012 .

[42]  Judi Simmons Estes,et al.  Mathematics Acquisition and Immigrant Children , 2014 .

[43]  Janet Mei-Chuen Lin,et al.  A Constrained and Guided Approach for Managing Software Engineering Course Projects , 2010, IEEE Transactions on Education.

[44]  Massood Towhidnejad,et al.  Best practices in software engineering project class management , 2009, SIGCSE '09.

[45]  Till G. Bay,et al.  Open source projects in programming courses , 2007, SIGCSE '07.

[46]  Michael V. Stein Using large vs. small group projects in capstone and software engineering courses , 2002 .

[47]  Nasser Tadayon Software engineering based on the team software process with a real world project , 2004 .

[48]  G.W. Hislop,et al.  Work in progress - challenges to educating students within the Community of Open Source Software for Humanity , 2008, 2008 38th Annual Frontiers in Education Conference.

[49]  Mario Schaarschmidt,et al.  Open Scientific Entrepreneurship: How the Open Source Paradigm Can Foster Entrepreneurial Activities in Scientific Institutions , 2010, Int. J. Open Source Softw. Process..

[50]  Anne L. Olsen A service learning project for a software engineering course , 2008 .

[51]  Edward F. Gehringer,et al.  From the manager's perspective: Classroom contributions to open-source projects , 2011, 2011 Frontiers in Education Conference (FIE).

[52]  Holger Giese,et al.  Reporting about industrial strength software engineering courses for undergraduates , 2002, ICSE '02.

[53]  Georgios Stylianou,et al.  Using Smartphones for Orientation Training for the Visually Impaired , 2015 .

[54]  Jaakko Kurhila,et al.  Discovering high-impact success factors in capstone software projects , 2009, SIGITE '09.

[55]  David Coppit,et al.  Large team projects in software engineering courses , 2005 .

[56]  Tracy Goodson-Espy,et al.  Using Technology to Rethink the Intersection of Statistics Education and Social Justice , 2016 .

[57]  Mark Jones,et al.  A case study of classroom experience with client-based team projects , 2008 .

[58]  Danny Krizanc,et al.  Revitalizing computing education through free and open source software for humanity , 2009, Commun. ACM.

[59]  Chang Liu Enriching software engineering courses with service-learning projects and the open-source approach , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[60]  Frances Bailie,et al.  Student perspectives on a real world project , 2006 .

[61]  Carole Haeusler,et al.  Developing Scientific Literacy: Introducing Primary-Aged Children to Atomic-Molecular Theory , 2015 .

[62]  Allen B. Tucker Teaching client-driven software development , 2009 .

[63]  Bonnie MacKellar A software engineering course with a large-scale project and diverse roles for students , 2011 .

[64]  Brian Hand,et al.  Analysis of Discourse Practices in Elementary Science Classrooms using Argument-Based Inquiry during Whole-Class Dialogue , 2013 .

[65]  Alejandra Salinas,et al.  Mathematics Gaming in Early Childhood: Describing Teacher Moves for Effective and Appropriate Implementation , 2015 .