Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Using software testing to move students from trial-and-error to reflection-in-action

Published: 01 March 2004 Publication History

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.

References

[1]
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.
[2]
Beck, K. Test-Driven Development: By Example. Addison-Wesley, Boston, MA. 2003.
[3]
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/
[4]
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.
[5]
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.
[6]
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.
[7]
Cortex, Inc. Clover: a code coverage tool for Java. Web page accessed Mar. 21, 2003: http://www.thecortex.net/clover/
[8]
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.
[9]
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.
[10]
JUnit Home Page. Web page last accessed Mar. 21, 2003: http://www.junit.org/
[11]
Kölling, M. BlueJ--The Interactive Java Environment. Web page, last accessed Mar. 21, 2003: http://www.bluej.org/
[12]
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.
[13]
Schön, D. The Reflecting Practitioner: How Professionals Think in Action. London: Temple Smith, 1983.

Cited By

View all
  • (2024)Recommendations for Improving End-User Programming Education: A Case Study with Undergraduate Chemistry StudentsJournal of Chemical Education10.1021/acs.jchemed.4c00219101:8(3085-3096)Online publication date: 5-Jul-2024
  • (2024)Unraveling the code: an in-depth empirical study on the impact of development practices in auxiliary functions implementationSoftware Quality Journal10.1007/s11219-024-09682-432:3(1137-1174)Online publication date: 1-Sep-2024
  • (2023)An experiment on software test creation: can EvoSuite help test teaching?Proceedings of the XXII Brazilian Symposium on Software Quality10.1145/3629479.3629499(281-290)Online publication date: 7-Nov-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGCSE Bulletin
ACM SIGCSE Bulletin  Volume 36, Issue 1
March 2004
501 pages
ISSN:0097-8418
DOI:10.1145/1028174
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science education
    March 2004
    544 pages
    ISBN:1581137982
    DOI:10.1145/971300
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 March 2004
Published in SIGCSE Volume 36, Issue 1

Check for updates

Author Tags

  1. CS1
  2. automated grading
  3. extreme programming
  4. pedagogy
  5. test-driven development

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)136
  • Downloads (Last 6 weeks)16
Reflects downloads up to 30 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Recommendations for Improving End-User Programming Education: A Case Study with Undergraduate Chemistry StudentsJournal of Chemical Education10.1021/acs.jchemed.4c00219101:8(3085-3096)Online publication date: 5-Jul-2024
  • (2024)Unraveling the code: an in-depth empirical study on the impact of development practices in auxiliary functions implementationSoftware Quality Journal10.1007/s11219-024-09682-432:3(1137-1174)Online publication date: 1-Sep-2024
  • (2023)An experiment on software test creation: can EvoSuite help test teaching?Proceedings of the XXII Brazilian Symposium on Software Quality10.1145/3629479.3629499(281-290)Online publication date: 7-Nov-2023
  • (2023)A Model of How Students Engineer Test Cases With FeedbackACM Transactions on Computing Education10.1145/362860424:1(1-31)Online publication date: 20-Oct-2023
  • (2023)Cognitive Reflection in Software Verification and TestingProceedings of the 45th International Conference on Software Engineering: Software Engineering Education and Training10.1109/ICSE-SEET58685.2023.00006(1-10)Online publication date: 17-May-2023
  • (2023)Utilizing Real-Time Descriptive Learning Analytics to Enhance Learning ProgrammingLearning, Design, and Technology10.1007/978-3-319-17461-7_117(3709-3729)Online publication date: 15-Oct-2023
  • (2022)Teaching Test-Writing As a Variably-Scaffolded Programming PatternProceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 110.1145/3502718.3524789(498-504)Online publication date: 7-Jul-2022
  • (2022)Executable Documentation: Test-First in ActionLeveraging Applications of Formal Methods, Verification and Validation. Software Engineering10.1007/978-3-031-19756-7_8(135-156)Online publication date: 17-Oct-2022
  • (2021)The Impact of Programming Project Milestones on Procrastination, Project Outcomes, and Course OutcomesProceedings of the 52nd ACM Technical Symposium on Computer Science Education10.1145/3408877.3432356(907-913)Online publication date: 3-Mar-2021
  • (2021)How do students test software units?Proceedings of the 43rd International Conference on Software Engineering: Joint Track on Software Engineering Education and Training10.1109/ICSE-SEET52601.2021.00029(189-198)Online publication date: 25-May-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media