Academic education of software engineering practices: towards planning and improving capstone courses based upon intensive coaching and team routines (original) (raw)

Developing the software engineering team

… of the 7th Australasian conference on …, 2005

Teamwork is often considered one of the most important "generic skills" that we can provide to graduates entering the information technology profession. Often though, through the rush of covering important content, we short change our students by giving them limited opportunities to learn how to work effectively in teams. Students also often complain that although they are expected to work in teams on projects, they are never given any advice or guidance on how to work in a team (Hart and Stone, 2002). Or, if they are given guidance, it is often from a business perspective that students find difficult to integrate into their software development practice. In this paper we discuss a course-spanning initiative to help students learn teamwork skills. This initiative starts in first year by emphasising a core set of skills directly related to working in teams. These skills are applied in small software development teams, with close tutor supervision focusing students on teamwork rather than upon individual software development. The theme then continues into second and third year where the growing sophistication of the students' teamwork skills is complemented by increasing their independence and requiring students to apply a professional software engineering process as a development team. By the end of their course students are then in a position to work together effectively solving complex problems for a real industry client.

A Process Model for Software Development Amongst Students

2009

Agility is the keyword if one needs to survive in this rapidly changing world, keeping pace and at the same time not loosing balance or control which could result in loss of quality of performance. No wonder agile methods have emerged in the field of software development as well, and they are gaining popularity in academics also. The bunches of agile methods evolved so far are not only able to deliver software products quickly and easily but also make the agile team to think quickly and in an intelligent way. Agile methods are people centric or people driven software process. The objective of this study is to survey groups of students and gather an opinion regarding their program development techniques, their preferences in choosing programming partners, their views about what affects quality of a product. The ultimate aim is to identify a pattern which we claim is agile like, although most students are unaware of the existence of agile process models.

SOFTWARE ENGINEERING PROCESS AND ITS IMPROVEMENT IN THE ACADEMY 1

Changes in software technology and models for software development require commensurate change in the education of software developers. One way of teaching software engineering is to organize a course around a project similar to a real industrial project. The educational community itself is increasingly moving from lecture-format courses to team projects, problem-solving, direct involvement with actual development, and other formats that require students to exercise the ideas they are learning. In this paper we investigate the software engineering process improvement at Kaunas University of Technology to let students experience the realistic software engineering problems and environments during their software engineering education. Organizing the software engineering process we implemented some key practices of repeatable level of Capability Maturity Model.

A Study of Individual Learning in Software Engineering Team Projects

2012 ASEE Annual Conference & Exposition Proceedings

where he is the Director Engineering Programs. Neill has developed and taught more than a dozen courses in support of the graduate programs in software engineering, systems engineering, engineering management, and information science in topics including software systems design, system architecture, project management, and systems thinking. He has published more than 70 articles in refereed journals and conference proceedings, including

Software Engineering Process and its Improvement in the Academy

… technology and control, …, 2005

Changes in software technology and models for software development require commensurate change in the education of software developers. One way of teaching software engineering is to organize a course around a project similar to a real industrial project. The educational community itself is increasingly moving from lecture-format courses to team projects, problem-solving, direct involvement with actual development, and other formats that require students to exercise the ideas they are learning. In this paper we investigate the software engineering process improvement at Kaunas University of Technology to let students experience the realistic software engineering problems and environments during their software engineering education. Organizing the software engineering process we implemented some key practices of repeatable level of Capability Maturity Model.

SIGCSE: G: Monitoring-An Intervention to Improve Team Results in Software Engineering Education

2016

Software engineering education is currently being taught in many universities with a hands-on approach. Students develop software in teams, intending to simulate industry, in order to minimize the gap between what universities teach and what industry needs. The industry “simulation” that a university performs in software engineering courses is a good approach but it is normally undermined by student bad behaviors (free-riding, social loafing and student syndrome). In this work I propose the use of reflexive weekly monitoring (RWM) to mitigate these students’ bad behaviors that can disrupt team results and learning. The use of the RWM in the past five semesters in a software engineering course, has improved teams’ results in terms of both, project deployment rate and final grades.

A structured approach for managing a practical software engineering course

30th Annual Frontiers in Education Conference. Building on A Century of Progress in Engineering Education. Conference Proceedings (IEEE Cat. No.00CH37135)

The challenges to teaching software engineering include achieving functioning teams, enforcing individual accountability, ensuring progress of the students, and evaluating quality of the product. The two-semester, software engineering course at the University of Texas at El Paso incorporates a cooperative group method and an improvement process model that enables learning from past results. The course centers on a cross-disciplinary, largescale project that provides students with an opportunity to deal with the challenges of developing a real-world product. The experience of working with incomplete, ambiguous and changing requirements motivates the need for applying software engineering techniques and approaches to the project. In the first semester, students perform analysis and define requirements specifications for the proposed system. The second semester course covers design, implementation, and testing. This paper details the structure of the course. Specifically, it outlines how cooperative teams are structured, how students learn the importance of process refinement and improvement, and how the project is presented and managed while achieving individual accountability.

Improving Individual Learning in Software Engineering Team Projects

2013 ASEE Annual Conference & Exposition Proceedings

and Ph.D. in Computer and Information Science from the New Jersey Institute of Technology. She is a member of ASEE and has had numerous publications in journals and conference proceedings. She is also on the curriculum advisory board for a local technical high school.

Integrating process improvement practices into an undergraduate software engineering course

FIE '98. 28th Annual Frontiers in Education Conference. Moving from 'Teacher-Centered' to 'Learner-Centered' Education. Conference Proceedings (Cat. No.98CH36214)

Most software development organizations are attempting to improve their practices in response to increasing competitive pressures to shorten development cycle time and increase quality. Their success is dependent upon the effectiveness of their software process improvement methodology. Software development teams must understand and be committed to this methodology for improvements to occur. This paper describes the introduction of software process improvement practices in an undergraduate software-engineering course. The course requires students to work in teams of 5-6 persons to develop a software application in a one-semester time frame following a systematic development process. Software process improvement practices are integrated throughout the course in terms of both lecture material and team exercises. Teams are continuously challenged to examine their development practices for areas of improvement. This activity is facilitated through the use of previous class postmortem reports, a mid-stream process improvement exercise and the writing of a their own post-mortem report upon completing their project. The results of applying these software process improvement practices are described along with examples of process improvements from the student teams.

Process improvement of software engineering education

Proceedings of the first Australasian conference on Computer science education - ACSE '96, 1996

This paper discusses the approach and philosophy of teaching software engineering at the University of Adelaide. The advantages and the difficulties of the approach are discussed. Planned improvements to rectify some of the difficulties are addressed along with a discussion of the additional benefits that are to be had. The proposed improvements require minimal additional work for either staff or students, but offer promising improvements to the course and the quality of the graduates produced.