Software modeling techniques for a first course in software engineering: a workshop-based approach

Computer science studies in Spain are organized in such a way that software engineering courses normally appear in the last years. This situation establishes a programming-first approach in the overall curricular structure, and the resulting situation produces several unwanted side effects. One of the main problems is that students lack the abstraction capability they need in order to model software. For this reason, the practical classes of the first software engineering course have been organized in workshop sessions, where each session is devoted to a concrete modeling technique. A workshop session is built around a problem published on the teacher's website. The session is divided into two parts. In the first part, the students are organized into work groups, and they give an initial solution to the proposed modeling problem. In the second part of the session, one volunteer group presents its solution, and afterwards, in a moderated debate, the rest of the students discuss the proposed solution. Finally, the volunteer group writes a workshop session report that contains the final agreed-on solution. This approach has been successfully applied to the software modeling practical classes of a first software engineering course during the last five years, achieving important improvements in the students' abstraction capabilities, which is much needed in software modeling.

[1]  Lori L. Pollock,et al.  Integrating an intensive experience with communication skills development into a computer science course , 2001, SIGCSE '01.

[2]  Francisco José García Peñalvo,et al.  Plataforma CASE basada en componentes para la docencia de Ingeniería del Software , 2002 .

[3]  T. B. Hilburn,et al.  Software engineering education: a modest proposal , 1997 .

[4]  Annegret Goold,et al.  Foundation software engineering practices for capstone projects and beyond , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[5]  Orit Hazzan Teaching the human aspect of software engineering - a case study , 2001, SIGCSE '01.

[6]  Cindy Norris,et al.  Computer systems “conference” for teaching communication skills , 1999, SIGCSE '99.

[7]  Anthony I. Wasserman Toward a Discipline of Software Engineering , 1996, IEEE Softw..

[8]  Samuel A. Rebelsky,et al.  Real-world program design in CS2: the roles of a large-scale, multi-group class project , 2000, SIGCSE '00.

[9]  Roy J. Daigle,et al.  Integrating collaborative problem solving throughout the curriculum , 1996, SIGCSE '96.

[10]  Edward Yourdon,et al.  Modern structured analysis , 1989 .

[11]  Bob Walraet A Discipline of Software Engineering , 1992 .

[12]  David W. Johnson,et al.  Active Learning: Cooperation in the College Classroom , 2006 .

[13]  James V. Hansen,et al.  Database Management and Design , 1991 .

[14]  Christopher Alexander Notes on the Synthesis of Form , 1964 .

[15]  Mary Ann Robbert Enhancing the value of a project in the database course , 2000, SIGCSE '00.

[16]  Joseph Bergin,et al.  A pattern language for initial course design , 2001, SIGCSE '01.

[17]  James V. Hansen,et al.  Database management and design (2nd ed.) , 1995 .

[18]  Watts S. Humphrey,et al.  Introduction to the Personal Software Process , 1996 .

[19]  William M. Waite,et al.  Problem solving skills , 2000, 30th Annual Frontiers in Education Conference. Building on A Century of Progress in Engineering Education. Conference Proceedings (IEEE Cat. No.00CH37135).

[20]  Mark Michael Fostering and assessing communication skills in the computer science context , 2000, SIGCSE '00.

[21]  Jane Huffman Hayes,et al.  Energizing Software Engineering Education through Real-World Projects as Experimental Studies , 2002, CSEE&T.

[22]  Torgny Roxå,et al.  Encouraging students in large classes , 2000, SIGCSE '00.

[23]  Robert L. Baber Software engineering education: issues and alternatives , 1998, Ann. Softw. Eng..

[24]  Amer Diwan,et al.  An infrastructure for teaching skills for group decision making and problem solving in programming projects , 2002, SIGCSE '02.

[25]  Gerhard Fischer,et al.  Desert Island: Software Engineering—A Human Activity , 2003, Automated Software Engineering.

[26]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[27]  Jari Lavonen,et al.  Collaborative Problem Solving in a Control Technology Learning Environment, a Pilot Study , 2002 .

[28]  Joan Krone,et al.  When theory meets practice: enriching the CS curriculum through industrial case studies , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

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

[30]  Watts S. Humphrey,et al.  Introduction to the Team Software Process , 1999 .

[31]  A. T. Chamillard,et al.  The software engineering capstone: structure and tradeoffs , 2002, SIGCSE '02.

[32]  Kevin Treu To teach the unteachable class: an experimental course in web-based application design , 2002, SIGCSE '02.