WeBWorK for programming fundamentals
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
Preface to the special issue on automated assessment of programming assignments
Journal on Educational Resources in Computing (JERIC)
Proceedings of the 5th international symposium on Principles and practice of programming in Java
WBED'07 Proceedings of the sixth conference on IASTED International Conference Web-Based Education - Volume 2
Proceedings of the ACM 2009 international conference on Supporting group work
An analysis of the common body of knowledge of software assurance
Proceedings of the 2010 ACM conference on Information technology education
Review of recent systems for automatic assessment of programming assignments
Proceedings of the 10th Koli Calling International Conference on Computing Education Research
Tools for "contributing student learning"
ACM Inroads
Tools for "contributing student learning"
Proceedings of the 2010 ITiCSE working group reports
Using a real world project in a software testing course
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
This paper presents a novel and innovative pedagogical approach for teaching software quality assurance in the undergraduate computer science curriculum. The approach is based on students contributing programming problems to an open source web-based system that is used for student practice and instructor assessment of assignments. WeBWorK, and some of the latest web-based systems, use a mechanism based on unit testing to account for variation in the way in which the same problem can be answered in an accurate manner, making such systems highly appealing for education. Tackling open-ended programming problems within WeBWorK therefore requires students to write a code fragment that is then checked for semantic correctness. Given that WeBWorK is open source, the teaching approach that we have evolved revolves around students creating their own problems for other students to practice with. This requires students to construct comprehensive unit tests that can assure both the usability and accuracy of their work prior to deployment. The paper describes this approach, gives examples of student work, presents findings from the experience of using the approach in the classroom, and discusses broader lessons and reasons for integrating software quality assurance practices into the computer science curriculum.