Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Test Driven Development: By Example
Test Driven Development: By Example
DrScheme: A Pedagogic Programming Environment for Scheme
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Rethinking computer science education from a test-first perspective
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ProfessorJ: a gradual introduction to Java through language levels
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using software testing to move students from trial-and-error to reflection-in-action
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Java IO and testing made simple
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Apprenticeship agility in academia
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Design of class hierarchies: an introduction to OO program design
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Helping students appreciate test-driven development (TDD)
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Objects First With Java: A Practical Introduction Using BlueJ (3rd Edition)
Objects First With Java: A Practical Introduction Using BlueJ (3rd Edition)
Integrating agility in the cs curriculum: practices through values
Proceedings of the 39th SIGCSE technical symposium on Computer science education
A principled approach to teaching OO first
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Test-driven learning in early programming courses
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Supporting student-written tests of gui programs
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Test-driven design in Java for novice programmers
Journal of Computing Sciences in Colleges
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Test-first design pedagogy and support for introductory OO programming: tutorial presentation
Journal of Computing Sciences in Colleges
From phenomenography study to planning teaching
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Soundlib: a music library for a novice Java programmer
Journal of Computing Sciences in Colleges
Introductory computing: the design discipline
ISSEP'11 Proceedings of the 5th international conference on Informatics in Schools: situation, Evolution and Perspectives
Software testing (in Java) from the beginning
Journal of Computing Sciences in Colleges
Test-first design in introductory Java programming (abstract only)
Proceeding of the 44th ACM technical symposium on Computer science education
Test-first design pedagogy in introductory Java programming
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
Test-Driven Design (TDD) has been shown to increase the productivity of programming teams and improve the quality of the code they produce. However, most of the introductory curricula provide no introduction to test design, no support for defining the tests, and do not insist on a comprehensive test coverage that is the driving force of the TDD. This paper presents a curriculum, pedagogy, and the software support for introductory object-oriented program design that uses the TDD consistently from the very beginning. The testing software does not increase the program complexity and is designed to work with the simplest programs. It has been used by hundreds of students at several colleges and is freely available on the web. Our experiences show that besides improving the quality of code students produce, TDD combined with the novice-appropriate test libraries reinforces students' understanding of the object oriented program design.