Work in progress - testing right from the start - Murphy, M.C.; Yildirim, B. (2007 37th Annual Frontiers In Education Conference - Global Engineering: Knowledge Without Borders, Opportunities Without Passports, 2007)
Writing syntactically correct code and understanding algorithm development are two essential skills mastered by most introductory computer science students. Another important component of professional programming is thorough testing to verify correct design and accurate coding; however this topic is frequently covered with less emphasis than it deserves in the core programming curricula. In this paper we describe instructional software that we are developing to support introductory level programming students in collaboratively and incrementally developing test cases for the class libraries they implement, as well as to automatically validate their implementations. This software is structured as an Internet application with a simplified user interface that allows distributed generation of a common library of test cases as well as remote testing of each student's individual implementation. By integrating testing and validation into the earliest stages of programming instruction, we anticipate that students will develop a better understanding of not only the syntax of the programming languages they are using but, more importantly, a deeper understanding of the semantics of the code they author and better success in debugging initial versions of their program solutions. Furthermore, using an Internet based infrastructure allows students to become familiar with having different aspects of the program development process itself performed by different (teams) of individuals, each of whom might be geographically distributed: an important practical component of global software engineering. A fully functional on-line version of our software is expected by the end of Summer 2007 and Human Subjects Protocol approval is expected for Fall 2007 evaluation of the effectiveness of our software in instructing introductory level programming students.