250 likes | 482 Views
Pair Programming for JETT. Linda L. Werner, Ph.D. University of California, Santa Cruz. Who is learning more?. p < .05. Pair Programming in CS1. p < .001. p < .005. p < .05. p < .05. p < .05. p < .05. p < .005.
E N D
Pair Programming for JETT Linda L. Werner, Ph.D. University of California, Santa Cruz
p < .05 Pair Programming in CS1 p < .001 p < .005 p < .05 p < .05 p < .05 p < .05 p < .005 Statistically significant differences are indicated with relevant 2 p values.
Experienced and Inexperienced Programmers Tend to • be initially resistant to pair programming • find it very beneficial and enjoyable after initial period
Why Useful for Teachers? • Half of the programs to grade • Less questions from students • Students learn more • Happier students
Collaboration • Not divide and conquer – not just cooperation • Driver – uses mouse and keyboard • Navigator – continuous review • “Given enough eyeballs, all bugs are shallow.1” • Both point at screen 1. E.S. Raymond, The Cathedral and the Bazaar. 2000.
Overcome Initial Resistance • Small participation score based on survey in place at UCI www.ics.uci.edu/~kay/courses/i41/hw/paireval.txt • Document violation of guidelines
Laboratory Set Up • Provide sufficient space for pairs • Large monitor – 17 inch minimum • Driver in front of monitor • Navigator has clear view • Switch means slide keyboard and mouse OR get high-5’s and switch chairs • collaboration.csc.ncsu.edu/laurie/LCSD.htm
Partner Selection • Partner buy-in critical • Partners assigned based on preference list • With no-shows, reassignments made • Minimal three person groups allowed • Everyone wins • Pair somewhat by skill • Pair by gender – perhaps because of GIVE vs. TAKE protocols (9-13 year olds)
Preparation Activities • Read ‘Kindergarten’ paper by Williams and Kessler collaboration.csc.ncsu.edu/laurie/Papers/Kindergarten.PDF • Participate in PairDraw exercise www.industriallogic.com/games/pairdraw.html • View two scripts and create rules poster www.cse.ucsc.edu/~charlie/projects/pairprogramming/CATE.pdf
Guidelines for Students • Work together as much as possible • Work no more than 25% solo OR flush • Review line-by-line work done solo • Spend equal time in each role • Alternate roles every 30 min. or less • Spend at most 15 min. ‘cleaning up’ solo
Pair Programming Not Working? • Partners complete program together but violate one of 6 guidelines • Partners begin working together but cannot finish it together • Pair never gets together • Pair gets together but it doesn’t work (hogging or unprepared)
What to do? • Always document partner problem in log • If partner fails to show up - Email partner and cc instructor • If partner comes unprepared – talk to instructor • If partner is hogging – talk to instructor
What Do You Do if Your Partner Doesn’t Show Up, You Complete the Program, and Your Partner Hasn’t Yet Completed it? • Each completes and submits as solo - ‘Pair Split’ OR • Scrap solution & work paired - ‘Flush’ OR • Partner works alone and then …
What Do You Do if You Complete Program Solo and Partner Completes Solo? • Each submits solo -‘Pair Split’ OR • Scrap both and redo paired - ‘Flush’ OR • Combine into one, reviewing carefully
What Do You Do if You Work Solo But Don’t Complete? • Meet later as pair and complete as long as solo time is <= 25% total time OR • ‘Flush’ and rewrite with partner OR ‘pair split’
Scenario – you spend 2 hours solo but don’t finish. Tomorrow partner shows, you spend < 1 hour and finish. What do you do? • ‘Flush’ and rewrite OR • Add new code and spend 8 hours total OR • Turn in and document reason OR • Lie, get caught, and be disciplined
Pair Split • You spent time working together • You do not finish together – therefore partner’s name cannot be co-author • Include comment as follows: • “I spent 3 hours working with my previous partner, Joe Programmer. I spent another 1 hour finishing up alone.”
Resources on policy/guidelines • “Everything I Really Know about Pair Programming I Learned in Kindergarten”collaboration.csc.ncsu.edu/laurie/Papers/Kindergarten.PDF • “PairDraw”www.industriallogic.com/games/pairdraw.html • UCSC grading and programming guidelineswww.cse.ucsc.edu/classes/cmps012a/Fall04/hw/pairProgramming.html • UCSC TA suggested guidelineswww.cse.ucsc.edu/~charlie/pubs/cseet2002.pdf • Scripts for good vs. bad pair programmingwww.cse.ucsc.edu/~charlie/projects/pairprogramming/CATE.pdf • UCI survey used to grade pair programming www.ics.uci.edu/~kay/courses/i41/hw/paireval.txt • Laboratory set upcollaboration.csc.ncsu.edu/laurie/LCSD.htm
Research • Computing Research News article 2005 “Want to Increase Retention of Your Female Students?” www.cra.org/CRN/articles/march05/werner.html • ACM Journal of Educational Resouces in Computing published 2005 “Female Computer Science Students Who Pair Program Persist” www.cse.ucsc.edu/~charlie/pubs/jeric2005.pdf • ITiSCE 2004 “Program Quality with Pair Programming in CS1” www.cse.ucsc.edu/~charlie/pubs/iticse04.pdf • ICSE 2003 “The Impact of Pair Programming on Student Performance, Perception, and Persistence” www.cse.ucsc.edu/~charlie/pubs/icse2003.pdf • Link to most of the pair programming research at UCSC www.soe.ucsc.edu/~charlie/projects/pairprogramming
THANKS TO: Charlie McDowell, Heather Bullock, Julian Fernald, Jennifer Bevan (UCSC), Brian Hanks (Fort Lewis College), Jill Denner, Steve Bean, Shannon Campe (ETR), Michael Burke, Vladimir Drobot (SJSU), Susan Nerton, Ed Parrish (Cabrillo College), students at UCSC, SJSU, Cabrillo College, and New Brighton Middle School
This work was funded by National Science Foundation grants EIA-0089989 and DUE-0341276. Any opinions, findings, and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily reflect the views of the National Science Foundation.