Journal on Educational Resources in Computing (JERIC)
Computing with Java: programs, objects, graphics
Computing with Java: programs, objects, graphics
An Introduction to Object-Oriented Programming with Java 2nd Edition
An Introduction to Object-Oriented Programming with Java 2nd Edition
A gimmick to integrate software testing throughout the curriculum
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
A software engineering approach to introductory programming courses
SIGCSE '77 Proceedings of the seventh SIGCSE technical symposium on Computer science 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
Teaching software development methods: the case of extreme programming
Proceedings of the 35th SIGCSE technical symposium on Computer science education
The introductory programming course in computer science: ten principles
SIGCSE '78 Papers of the SIGCSE/CSA technical symposium on Computer science education
A software testing course for computer science majors
ACM SIGCSE Bulletin
New algorithms research for first year students
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in 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
Bug Hunt: Making Early Software Testing Lessons Engaging and Affordable
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A TDD approach to introducing students to embedded programming
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Test-driven development in education: experiences with critical viewpoints
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Successful and unsuccessful problem solving approaches of novice programmers
Proceedings of the 40th ACM technical symposium on Computer science education
Test-driven data structures: revitalizing CS2
Proceedings of the 40th ACM technical symposium on Computer science education
Understanding TDD in academic environment: experiences from two experiments
Koli '08 Proceedings of the 8th International Conference on Computing Education Research
ComTest: a tool to impart TDD and unit testing to introductory level programming
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Mutation analysis vs. code coverage in automated assessment of students' testing skills
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Running students' software tests against each others' code: new life for an old "gimmick"
Proceedings of the 43rd ACM technical symposium on Computer Science Education
A unit testing approach to building novice programmers' skills and confidence
ACE '11 Proceedings of the Thirteenth Australasian Computing Education Conference - Volume 114
Proceedings of the 14th annual ACM SIGITE conference on Information technology education
Hi-index | 0.00 |
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.