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

skip to main content
article

Testing first: emphasizing testing in early programming courses

Published: 27 June 2005 Publication History

Abstract

The complexity of languages like Java and C++ can make introductory programming classes in these languages extremely challenging for many students. Part of the complexity comes from the large number of concepts and language features that students are expected to learn while having little time for adequate practice or examples. A second source of difficulty is the emphasis that object-oriented programming places on abstraction. We believe that by placing a larger emphasis on testing in programming assignments in these introductory courses, students have an opportunity for extra practice with the language, and this affords them a gentler transition into the abstract thinking needed for programming. In this paper we describe how we emphasized testing in introductory programming assignments by requiring that students design and implement tests before starting on the program itself. We also provide some preliminary results and student reactions.

References

[1]
M. Alford, P. Hsia, and F. Petry. A software engineering approach to introductory programming courses. In Proceedings of the 7th SIGCSE Technical Symposium on Computer Education, pages 157--161, 1977.
[2]
J. Bergin, J. Caristi, Y. Dubinsky, O. Hazzan, and L. Williams. Teaching software development methods: The case of extreme programming. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, pages 448--449, 2004.
[3]
S. Edwards. Rethinking computer science education from a test-first perspective. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 148--155, 2003.
[4]
A. Gittleman. Computing with Java: Programs, Objects, Graphics, Second Alternate Edition. Scott/Jones Publishers, 2002.
[5]
M. Goldwasser. A gimmick to integrate software testing throughout the curriculum. In Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education, pages 271--275, 2002.
[6]
The Joint Task Force on Computing Curricula. Computing Curricula 2001 Computer Science, December 2001. Available at http://www.computer.org/education/cc2001/cc2001.pdf.
[7]
G. M. Schneider. The introductory programming course in computer science -- ten principles. In Papers of the SIGCSE/CSA Technical Symposium on Computer Science Education, pages 107--114, 1978.
[8]
School of Computer Science, Telecommunications, and Information Systems, DePaul University. http://www.cti.depaul.edu, 2004.
[9]
C. T. Wu. An Introduction to Object-Oriented Programming with Java, 3rd Edition Update (Java 1.5 Update). McGraw Hill, 2004.

Cited By

View all
  • (2024)Testing and Debugging Habits of Intermediate Student Programmers2024 IEEE Global Engineering Education Conference (EDUCON)10.1109/EDUCON60312.2024.10578650(1-10)Online publication date: 8-May-2024
  • (2021)Software Testing Education Experiences Using Collaborative PlatformsSmart Education and e-Learning 202110.1007/978-981-16-2834-4_13(149-159)Online publication date: 6-Jun-2021
  • (2019)Pragmatic Software Testing EducationProceedings of the 50th ACM Technical Symposium on Computer Science Education10.1145/3287324.3287461(414-420)Online publication date: 22-Feb-2019
  • 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 37, Issue 3
September 2005
418 pages
ISSN:0097-8418
DOI:10.1145/1151954
Issue’s Table of Contents
  • cover image ACM Conferences
    ITiCSE '05: Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
    June 2005
    440 pages
    ISBN:1595930248
    DOI:10.1145/1067445
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: 27 June 2005
Published in SIGCSE Volume 37, Issue 3

Check for updates

Author Tags

  1. CS1
  2. CS2
  3. TDD
  4. testing

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)3
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Testing and Debugging Habits of Intermediate Student Programmers2024 IEEE Global Engineering Education Conference (EDUCON)10.1109/EDUCON60312.2024.10578650(1-10)Online publication date: 8-May-2024
  • (2021)Software Testing Education Experiences Using Collaborative PlatformsSmart Education and e-Learning 202110.1007/978-981-16-2834-4_13(149-159)Online publication date: 6-Jun-2021
  • (2019)Pragmatic Software Testing EducationProceedings of the 50th ACM Technical Symposium on Computer Science Education10.1145/3287324.3287461(414-420)Online publication date: 22-Feb-2019
  • (2017)Onboarding inexperienced developersSoftware Quality Journal10.1007/s11219-016-9333-725:4(1239-1268)Online publication date: 1-Dec-2017
  • (2016)Impact of Automated Software Testing Tools on Reflective Thinking and Student Performance in Introductory Computer Science Programming ClassesInternational Journal of Information and Communication Technology Education10.4018/IJICTE.201601010312:1(22-37)Online publication date: 1-Jan-2016
  • (2016)Benefits of a Testing Framework in Undergraduate C Programming CoursesProcedia - Social and Behavioral Sciences10.1016/j.sbspro.2016.07.032228(215-221)Online publication date: Jul-2016
  • (2015)Can the Security Mindset Make Students Better Testers?Proceedings of the 46th ACM Technical Symposium on Computer Science Education10.1145/2676723.2677268(404-409)Online publication date: 24-Feb-2015
  • (2013)A preliminary review of undergraduate programming students' perspectives on writing tests, working with others, & using peer testingProceedings of the 14th annual ACM SIGITE conference on Information technology education10.1145/2512276.2512301(109-114)Online publication date: 2-Oct-2013
  • (2013)Evaluating the Synergies of Integrating E-Assessment and Software TestingInformation Systems Development10.1007/978-1-4614-4951-5_15(179-193)Online publication date: 12-Apr-2013
  • (2012)Running students' software tests against each others' codeProceedings of the 43rd ACM technical symposium on Computer Science Education10.1145/2157136.2157202(221-226)Online publication date: 29-Feb-2012
  • 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