Integration and Assessment of Pair Programming,
Test-Driven Development and Lab Practica
in an Introductory Computer Science Course
| Grant Braught | Tim Wahls | Louis Ziantz |
This page collects and summarizes our work on the design, implementation and assessment of a new introductory computer science course at Dickinson College. Work on this project has been funded in part by award DUE-0511264 through the NSF CCLI-A&I program.
The objective of this project is the design, implementation and assessment of a new introductory computer science course at Dickinson College. Current and past versions of this course have struggled with two significant challenges. First, it has been difficult to balance the tradeoff between the development of individual programming ability and competing factors such as the benefits of collaborative learning and of providing significant design and debugging assistance for novice programmers. Second, given the limited size and complexity of introductory programming assignments, it has been difficult to motivate the use of a well-defined development methodology. This project focuses on addressing these difficulties in our introductory computer science course through the adaptation and implementation of three exemplary practices: test-driven development, pair programming and laboratory practica.
Each of these exemplary practices plays a complementary role in addressing the difficulties that we have experienced with our introductory course. The use of Test-Driven-Development (TDD) motivates students to adopt a systematic approach to developing and testing their programs by advocating the incremental creation and testing of software. Pair programming provides design and debugging assistance while leveraging the benefits of collaborative learning by having two students use a well-defined collaboration protocol to complete programming assignments. Laboratory practica increase students' motivation to develop their individual programming skills by requiring them to demonstrate these skills under controlled exam-like conditions. Also, because these practica provide an accurate gauge of individual programming ability, their use presents a valuable assessment tool.
The goals that were established for this project were: (1) Adapt and integrate pair programming, TDD and the use of lab practica in the creation of a new introductory computer science course at Dickinson College. (2) Assess (a) the success and retention rate of students, particularly women and minorities, in the introductory and subsequent courses, (b) the development of students' individual programming skills, (c) students' use and mastery of the TDD methodology and (d) the effects of pair programming on (a), (b) and (c). (3) Refine and disseminate the materials developed for our course in order to facilitate further adaptation and implementation of these exemplary practices.
Braught, G., Eby, L. & Wahls, T. (2009) The Case for Pair Programming in the Computer Science Classroom. Submitted to Transactions on Computing Education (ToCE). Under review, submitted 7/16/2009.
MacCormick, J., Braught, G. & Wahls, T. (2010) The benefits of pairing by ability for pair programming assignments. To appear in SIGCSE 2010.
Braught, G., Eby, L. & Wahls, T. (2008). The Effects of Pair-Programming on Individual Programming Skills. In Proceedings of the thirty ninth ACM-SIGCSE Technical Symposium on Computer Science Education. (pp. 200-204). (Also appears in: ACM SIGCSE Bulletin, 40(1), 200-204.)
Braught, G. & Wahls, T. (2008). Teaching Objects in Context. Journal of Computing Sciences in Colleges, 23(5), 101-109.
Braught, G., Wahls, T. and Ziantz, L. (2007). Assessing The Effects of Pair-Programming on Individual Ability: Results from the First Year of a Two-Year Study. Faculty Poster Session, The thirty eighth ACM-SIGCSE Technical Symposium on Computer Science Education. Covington KY, March 7-10, 2007.
G. Braught, T. Wahls & Ziantz, L. Integration and Assessment of Pair Programming, Unit Testing and Lab Practica in an Introductory Computer Science Course. NSF CCLI Showcase at SIGCSE07, Covington, KY, March 7-10, 2007.
| All of the materials from our course may be freely adopted and/or adapted under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. |
|
| The pre/post semester student attitude surveys that were used in our study may be freely adopted and/or adapted under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. |
|
| All of the data collected during our study has been anonymized and is provided here under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License. |
|
We would like to thank Marlin Eby, from Messiah College, for his discussions that were helpful in designing our study and for his invaluable expertise in analyzing the results.
We would also like to thank Stephen Edwards, from Virginia Tech, for supporting our integration of Test-Driven-Development by hosting our courses on his Web-CAT server.
Finally, we would like to thank all of the students who were gracious enough to participate in this study.