Software configuration management: coordination for team productivity
Software configuration management: coordination for team productivity
Peopleware (2nd ed.): productive projects and teams
Peopleware (2nd ed.): productive projects and teams
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Project retrospectives: a handbook for team reviews
Project retrospectives: a handbook for team reviews
Case study: extreme programming in a university environment
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Extreme programming applied: playing to win
Extreme programming applied: playing to win
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process
Extreme Programming Installed
Test Driven Development: By Example
Test Driven Development: By Example
The 4+1 View Model of Architecture
IEEE Software
Design Patterns: Abstraction and Reuse of Object-Oriented Design
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Summary of the subworkshop on extreme programming
Nordic Journal of Computing
Introducing software engineering by means of Extreme Programming
Proceedings of the 25th International Conference on Software Engineering
eXtreme Programming at universities: an educational perspective
Proceedings of the 25th International Conference on Software Engineering
The impact of pair programming on student performance, perception and persistence
Proceedings of the 25th International Conference on Software Engineering
Extreme programming for software engineering education?
FIE '01 Proceedings of the Frontiers in Education Conference, 2001. on 31st Annual - Volume 01
Five challenges in teaching XP
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Using metaphors in extreme programming projects
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Towards a suite of software configuration management metrics
Proceedings of the 12th international workshop on Software configuration management
Controlled experimentation on adaptations of pair programming
Information Technology and Management
Test-driven development in education: experiences with critical viewpoints
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Agile systems development and stakeholder satisfaction: a South African empirical study
Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology
Evaluating the effectiveness of VOSDM: a vision oriented approach
ACM SIGSOFT Software Engineering Notes
ComTest: a tool to impart TDD and unit testing to introductory level programming
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Critical issues on test-driven development
PROFES'11 Proceedings of the 12th international conference on Product-focused software process improvement
Software process improvement with agile practices in a large telecom company
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
Hi-index | 0.00 |
We find the extreme programming methodology highly suitable for introducing undergraduate students to software engineering. To be able to apply this methodology at a reasonable teaching cost for large student groups, we have developed two courses that work in tandem: a team programming course taken by more than 100 students, and a coaching course taken by around 25 students. In this paper we describe our view of how extreme programming fits into the software engineering curriculum, our approach to teaching it, and our experiences, based on two years of running these courses. Particularly important aspects of our set up include team coaching (by older students), fixed working hours, and colocation during development. Our experiences so far are very positive, and we see that students get a good basic understanding of the important concepts in software engineering, rooted in their own practical experience.