|
ABSTRACT
Despite our best efforts and intentions as educators, student programmers continue to struggle in acquiring comprehension and analysis skills. Students believe that once a program runs on sample data, it is correct; most programming errors are reported by the compiler; when a program misbehaves, shuffling statements and tweaking expressions to see what happens is the best debugging approach. This paper presents a new vision for computer science education centered around the use of test-driven development in all programming assignments, from the beginning of CS1. A key element to the strategy is comprehensive, automated evaluation of student work, in terms of correctness, the thoroughness and validity of the student's tests, and an automatic coding style assessment performed using industrial-strength tools. By systematically applying the strategy across the curriculum as part of a student's regular programming activities, and by providing rapid, concrete, useful feedback that students find valuable, it is possible to induce a cultural shift in how students behave.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
 |
2
|
|
| |
3
|
|
| |
4
|
|
 |
5
|
|
 |
6
|
Joseph Bergin , Amruth Kumar , Viera K. Proulx , Myles McNally , Alyce Faulstich Brady , David Mutchler , Stephen Hartley , Richard Rasala , Charles Kelemen , Rocky Ross , Frank Klassner, Resources for Next Generation Introductory CS Courses: Report of the ITiCSE'99 Working Group on Resources for the Next Generation CS 1 Course, ACM SIGCSE Bulletin, v.31 n.4, p.101-105, Dec. 1999
|
| |
7
|
|
| |
8
|
Bloom, B.S., et al. Taxonomy of Educational Objectives: Handbook I: Cognitive Domain. Longmans, Green and Co., 1956.
|
 |
9
|
|
 |
10
|
|
| |
11
|
Checkstyle home page. http://checkstyle.sourceforge.net/.
|
 |
12
|
|
 |
13
|
|
| |
14
|
Clover: a code coverage tool for Java. http://www.thecortex.net/clover/.
|
 |
15
|
|
 |
16
|
|
 |
17
|
|
| |
18
|
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
| |
22
|
Jones, E.L. An experiential approach to incorporating software testing into the computer science curriculum. In Proc. 2001 Frontiers in Education Conf. (FiE 2001), 2001, pp. F3D7-F3D11.
|
| |
23
|
|
| |
24
|
JUnit home page. http://www.junit.org/.
|
 |
25
|
|
| |
26
|
Kolling, M. and Rosenberg, J. BlueJ-the hitchhiker's guide to object orientation. Maersk Mc-Kinney Moller Institute for Production Technology, Univ. Southern Denmark, Tech. Report 2002, No. 2, ISSN No. 1601-4219. http://www.mip.sdu.dk/~mik/papers/hitch-hiker.pdf.
|
| |
27
|
Kolling, M. BlueJ-The Interactive Java Environment. http://www.bluej.org/.
|
 |
28
|
Kenneth L. Krause , Robert E. Sampsell , Samuel L. Grier, Computer science in the Air Force Academy core curriculum, Proceedings of the thirteenth SIGCSE technical symposium on Computer science education, p.144-146, February 11-12, 1982, Indianapolis, Indiana, United States
|
 |
29
|
Renée A. McCauley , Clark Archer , Nell Dale , Rym Mili , James Robergé , Harriet Taylor, The effective integration of software engineering principles throughout the undergraduate computer science curriculum (abstract), Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education, p.364-365, March 02-04, 1995, Nashville, Tennessee, United States
|
 |
30
|
Reneée McCauley , Nell Dale , Thomas Hilburn , Susan Mengel , Branson W. Murrill, The assimilation of software engineering into the undergraduate computer science curriculum (panel session), Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, p.423-424, March 07-12, 2000, Austin, Texas, United States
|
 |
31
|
|
| |
32
|
|
 |
33
|
Nachiappan Nagappan , Laurie Williams , Miriam Ferzli , Eric Wiebe , Kai Yang , Carol Miller , Suzanne Balik, Improving the CS1 experience with pair programming, Proceedings of the 34th SIGCSE technical symposium on Computer science education, February 19-23, 2003, Reno, Navada, USA
|
| |
34
|
PMD home page. http://pmd.sourceforge.net/.
|
 |
35
|
|
 |
36
|
|
 |
37
|
|
 |
38
|
|
 |
39
|
|
CITED BY 25
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jaime Spacco , William Pugh , Nat Ayewah , David Hovemeyer, The Marmoset project: an automated snapshot, submission, and testing system, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
Jaime Spacco , William Pugh, Helping students appreciate test-driven development (TDD), Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|