A gimmick to integrate software testing throughout the curriculum

We discuss our experiences in which students of a programming course were asked to submit both an implementation as well as a test set. A portion of a student's grade was then devoted both to the validity of a student's program on others' test sets, as well as how that student's test set performed in uncovering flaws in others' programs. The advantages are many, as this introduces implicit principles of software testing together with a bit of fun competition. The major complication is that such an all-pairs execution of tests grows quadratically with the number of participants, necessitating a fully automated scoring system.

[1]  Edward L. Jones Grading student programs - a software testing approach , 2001 .

[2]  Massood Towhidnejad,et al.  Software quality: a curriculum postscript? , 2000, SIGCSE '00.

[3]  Nell B. Dale,et al.  The assimilation of software engineering into the undergraduate computer science curriculum (panel session) , 2000, SIGCSE '00.

[4]  Bill Z. Manaris,et al.  Strategies for effective integration of software engineering concepts and techniques into the undergraduate computer science curriculum , 1997, SIGCSE '97.

[5]  James Robergé,et al.  Using laboratories to teach software engineering principles in the introductory computer science curriculum , 1994, SIGCSE '94.

[6]  Roy P. Pargas,et al.  Tournament play in CS1 , 1997, SIGCSE '97.

[7]  Terry Scott,et al.  Automated grading assistance for student programs , 1994, SIGCSE '94.

[8]  Michael T. Goodrich,et al.  Testers and visualizers for teaching data structures , 1999, SIGCSE '99.

[9]  Clark B. Archer,et al.  The effective integration of software engineering principles throughout the undergraduate computer science curriculum (abstract) , 1995, SIGCSE '95.

[10]  Edward L. Jones,et al.  Integrating testing into the curriculum — arsenic in small doses , 2001, SIGCSE '01.

[11]  Kenneth A. Reek,et al.  The TRY system -or- how to avoid testing student programs , 1989, SIGCSE '89.

[12]  Renée A. McCauley,et al.  Teaching software engineering early - Experiences and results , 1998, FIE '98. 28th Annual Frontiers in Education Conference. Moving from 'Teacher-Centered' to 'Learner-Centered' Education. Conference Proceedings (Cat. No.98CH36214).

[13]  Judith L. Gersting A software engineering “frosting” on a traditional CS-1 course , 1994, SIGCSE '94.

[14]  Thomas B. Hilburn Software engineering-from the beginning , 1996, Proceedings of 9th Conference on Software Engineering Education.

[15]  Lewis E. Hitchner An automatic testing and grading method for a C++ list class , 1999, SGCS.

[16]  David Jackson,et al.  Grading student programs using ASSYST , 1997, SIGCSE '97.

[17]  Michael T. Goodrich,et al.  Data Structures and Algorithms in Java with Cdrom , 1998 .