We spent only 25 minutes teaching students how to write test cases, and more
than 70% of the students came up with test cases in the classroom. We collected
students’ projects and measured the quality of the program by applying the same test
suites to both sections’ code. Student feedback was very positive about our model.
We have not completed the experiment in this semester yet. We will run the
same experiment again in next semester. However, our initial finding shows
significant improvements in students’ program quality. We found teaching basic
concepts and terminology of software testing, does not take much time. Our approach
helps students to understand the problem better. Students like testing their code and it
boost their confidence.
4 Conclusions
In this paper, we proposed two different models for two introductory programming
classes. In the first model, course CS-I students would get a preliminary idea about
how to write test cases and test program. In our experiment, the same instructor
teaches the same course in two different sections. We eliminated many factors that
vary from instructor to instructor. One section instructor followed our model used
testing as a prerequisite of writing code and other section did not. Keeping all factors
the same, we measured how our model can play a role in improving programming
quality.
Our initial experimental result shows that our model can be successful. We found
that our approach helps students to understand the problem and improves software
quality. We also found that teaching basic concepts of software testing to beginner
students does not take much time, and student feedback was very positive.
References
1. McCracken, M., Almstrum, V., Laxer, C., and others: A Multi-national, multi-institutional
study of assessment of programming skills of first year CS students, volume 33, issue
COLUMN: ITiCSE 2001 working group reports, Pages: 125 – 180, 2001
2. Townhidnejad, Hilburn: Software quality: a curriculum postscript?, Technical Symposium
on Computer Science Education, Proceedings of the thirty-first SIGCSE technical
symposium on Computer science education, Austin, Texas, United States Pages: 167 –
171, 2000
3. Nagappan, N., William, L., Ferzil, M., Wiebe, E., Yang, K., Miller, C., and Balik, S.:
Improving the CS1 Experience with Pair Programming. Proceedings of the 34
th SIGCSE
Technical Sympoisum on Computer Science Education, Reno, Nevada, USA, March 2003.
4.
Hermann, N., Popyack, J., Char, B., Zoski, P., Cera, C., and Lass, R.N.: Redesigning
computer programming using multilevel online modules for mixed audience. Proceedings
of the 34th SIGCSE Technical Symposium on Computer Science Education, Reno,
Nevada, USA, March 2003.
5. Edwards, E.: Using test-driven development in the classroom: Providing students with
concrete feedback on performance. In Proceedings of the EISTA'03, August 2003
128