Abstract
Many software development courses include both instruction in formal and informal techniques and application of those techniques on a team project. In teaching such a course, a dilemma arises in trying to present material in sufficient detail before students must apply the material in their projects. The students are not comfortable with a technique before they must use it. If the project is moved later in the course, the students do not have enough time to tackle a problem that is big enough to require many of the software development techniques. There must be a better approach to teaching the course without separating the material into two courses or dividing the course over two terms.This paper describes an iterative approach. Let the students develop an initial pass at the project using the techniques they know. Then, have them apply the techniques learned in this class to later iterations. They develop a reasonably large project and apply the techniques appropriately. In addition, they have an opportunity to modify and maintain their documents as they complete the project. This paper describes the approach, experiences using it, and what modifications might be useful.
- 1 V.R. Basili and A.J. Turner, "Iterative Enhancement: A Practical Technique for Software Development," IEEE Trans. on Software Engineering, Vol. 1, No. 4, December 1975, pp. 390-396.Google Scholar
Digital Library
- 2 F.P. Brooks, "No Silver Bullet: Essence and Accidents of Software Engineering,' IEEE Computer, Vol. 20, No. 4, April 1987, pp. 10-19. Google Scholar
Digital Library
Index Terms
Using iterative enhancement in undergraduate software engineering courses
Recommendations
Using iterative enhancement in undergraduate software engineering courses
SIGCSE '96: Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science educationMany software development courses include both instruction in formal and informal techniques and application of those techniques on a team project. In teaching such a course, a dilemma arises in trying to present material in sufficient detail before ...
Scaling Introductory Courses Using Undergraduate Teaching Assistants
SIGCSE '17: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science EducationUndergraduates are widely used in support of Computer Science (CS) departments' teaching missions as teaching assistants, peer mentors, section leaders, course assistants, and tutors. Those undergraduates engaged in teaching have the opportunity to ...
Redesigning an undergraduate software engineering course for a large cohort
ICSE-SEET '18: Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and TrainingTeaching Software Engineering on an undergraduate programme is challenging, particularly when dealing with large numbers of students. On one hand, a strong understanding of software and good programming skills are prerequisites. On the other hand, the ...






Comments