ABSTRACT
Introductory computer science students rely on a trial and error approach to fixing errors and debugging for too long. Moving to a reflection in action strategy can help students become more successful. Traditional programming assignments are usually assessed in a way that ignores the skills needed for reflection in action, but software testing promotes the hypothesis-forming and experimental validation that are central to this mode of learning. By changing the way assignments are assessed--where students are responsible for demonstrating correctness through testing, and then assessed on how well they achieve this goal--it is possible to reinforce desired skills. Automated feedback can also play a valuable role in encouraging students while also showing them where they can improve.
- Allen, E., Cartwright, R., and Stoler, B. DrJava: a lightweight pedagogic environment for Java. In Proc. 33rd SIGCSE Technical Symp. Computer Science Education, ACM, 2002, pp. 137--141. Google ScholarDigital Library
- Beck, K. Test-Driven Development: By Example. Addison-Wesley, Boston, MA. 2003. Google ScholarDigital Library
- Bergin, J., Stehlik, M., Roberts, J., Pattis, R. Karel J. Robot: A Gentle Introduction to the Art of Object-Oriented Programming in Java. Unpublished manuscript available at: http://csis.pace.edu/~bergin/KarelJava2ed/ Google ScholarDigital Library
- Buck, D., and Stucki, D.J. Design early considered harmful: graduated exposure to complexity and structure based on levels of cognitive development. In Proc. 31st SIGCSE Technical Symp. Computer Science Education, ACM, 2000, pp. 75--79. Google ScholarDigital Library
- Buck, D., and Stucki, D.J. JKarelRobot: a case study in supporting levels of cognitive development in the computer science curriculum. In Proc. 32nd SIGCSE Technical Symp. Computer Science Education, ACM, 2001, pp. 16--20. Google ScholarDigital Library
- Comer, J., and Roggio, R. Teaching a Java-based CS1 course in an academically-diverse environment. In Proc. 33rd SIGCSE Technical Symp. Computer Science Education, ACM, 2002, pp. 142--146. Google ScholarDigital Library
- Cortex, Inc. Clover: a code coverage tool for Java. Web page accessed Mar. 21, 2003: http://www.thecortex.net/clover/Google Scholar
- Decker, R. and Hirshfield, S. The top 10 reasons why object-oriented programming can't be taught in CS 1. In Proc. 25th Annual SIGCSE Symp. Computer Science Education, ACM, 1994, pp. 51--55. Google ScholarDigital Library
- Edwards, S.H. Rethinking computer science education from a test-first perspective. In Addendum to the 2003 Proc. Conf. Object-oriented Programming, Systems, Languages, and Applications, ACM, to appear. Google ScholarDigital Library
- JUnit Home Page. Web page last accessed Mar. 21, 2003: http://www.junit.org/Google Scholar
- Kölling, M. BlueJ--The Interactive Java Environment. Web page, last accessed Mar. 21, 2003: http://www.bluej.org/Google Scholar
- Krause, K.L. Computer science in the Air Force Academy core curriculum. In Proc.13th SIGCSE Technical Symp. Computer Science Education, ACM, 1982, pp. 144--146. Google ScholarDigital Library
- Schön, D. The Reflecting Practitioner: How Professionals Think in Action. London: Temple Smith, 1983.Google Scholar
Index Terms
- Using software testing to move students from trial-and-error to reflection-in-action
Recommendations
Using software testing to move students from trial-and-error to reflection-in-action
Introductory computer science students rely on a trial and error approach to fixing errors and debugging for too long. Moving to a reflection in action strategy can help students become more successful. Traditional programming assignments are usually ...
Test-driven learning: intrinsic integration of testing into the CS/SE curriculum
Test-driven learning (TDL) is an approach to teaching computer programming that involves introducing and exploring new concepts through automated unit tests. TDL offers the potential of teaching testing for free, of improving programmer comprehension ...
Test-driven learning in early programming courses
SIGCSE 08Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a solution to improve both software design and testing. Test-driven learning (...
Comments