Encouraging Students to Adopt Software Engineering Methodologies: The Influence of Structured Group Labs on Beliefs and Attitudes
Landry, Jeffrey P., Pardue, J. Harold, Doran, Michael V., Daigle, Roy J., Journal of Engineering Education
This study proposes that structured labs using groups can help foster individual student acceptance of software engineering methodologies. The technology acceptance model (TAM) is employed in an empirical test using students in freshman and sophomore-level programming courses. Our findings suggest that a structured group lab experience does influence a students belief system regarding the usefulness of a software engineering methodology, leading to an individual decision to accept and use the methodology on a voluntary basis. On average, the software engineering methodology was accepted by the students sampled. We recommend that structured group labs be designed to use peer groups, reinforce successful results, and use an iterative process design with phase-by-phase deliverables.
In today's environment of increasingly complex and integrated systems, software engineering methodologies are vitally important for improving the quality and predictability of software development projects. Software engineering is widely viewed as a solution to the chronic crisis of poor software quality, missed deadlines, cost overruns, and abandoned projects . Success as a software engineering professional depends on a high level of competence and confidence in software engineering methodologies . To achieve this competence, students must be taught effectively and encouraged to use software engineering methodologies.
The task of motivating students to accept and use software engineering methodologies is a difficult one. The aphorism that "you can bring a horse to water, but you can't make it drink" seems especially pertinent. The challenge for educators is similar to that of industry: given time pressures and other constraints, what can be done to motivate students to use scientific, systematic, and disciplined approaches to software development? Far too often, students and developers rely on ad boc and undisciplined approaches . This challenge can be formally stated as: how can computer science educators influence students so that they are motivated to voluntarily adopt and use software engineering methodologies?
In this paper we present a pedagogical solution to the challenge of motivating students to adopt and use a structured, software engineering methodology. Our solution was based on research in the diffusion of innovations , social learning theory , and the technology acceptance model , and attempted to incorporate some of the best practices derived from research on group work and interaction. Our technique of structured group labs  involved the use of instructor-- facilitated, peer-to-peer interaction in small groups to affect student beliefs about the use of engineering methodologies.
A. Software Engineering Principles
Basic software engineering principles are taught early in the computer science curriculum. Most curricula present these principles as a variation of the traditional software development life cycle (SDLC). In this cycle, software development is modeled as an iterative, top-down progression of phases, each with clearly defined and verifiable deliverables. This life cycle is typically presented as a "formal" problem solving approach.
Student problem solving behavior can be classified along a continuum from impulsive to reflective . Reflective problem-solving is characterized by thoughtfulness and looking back . The SDLC typifies the reflective problem-solving approach. Impulsive problem-solving is characterized by a precipitous jump to an implemented solution without either sufficient reflection or thought. Although correct solutions can be conceived from an intuitive leap, standard practice prescribes reflective approaches to software development.
We believe there are at least two reasons why some students tend toward more-or-less impulsive problem-solving strategies . …