Pair Programming for JETT

25
1 ACM/JETT Workshop - August 4-5, 2005 Pair Programming for JETT Linda L. Werner, Ph.D. University of California, Santa Cruz

description

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. - PowerPoint PPT Presentation

Transcript of Pair Programming for JETT

Page 1: Pair Programming for JETT

1 ACM/JETT Workshop - August 4-5, 2005

Pair Programming for JETT

Linda L. Werner, Ph.D.

University of California, Santa Cruz

Page 2: Pair Programming for JETT

2 ACM/JETT Workshop - August 4-5, 2005

Who is learning more?

Page 3: Pair Programming for JETT

3 ACM/JETT Workshop - August 4-5, 2005

Page 4: Pair Programming for JETT

4 ACM/JETT Workshop - August 4-5, 2005

Page 5: Pair Programming for JETT

5 ACM/JETT Workshop - August 4-5, 2005

Pair Programming in CS1

0%

10%

20%30%

40%

50%

60%70%

80%

90%

Passed AttemptedCS2

Passed CS21st Attempt

CS/CEMajor 1yr

later

All Pairs

All Solo

Fem Pairs

Fem Solo

Male Pairs

Male Solo

p < .05p < .05 p < .05

p < .005

p < .05

p < .001 p < .005

p < .05

Statistically significant differences are indicated with relevant 2 p values.

Page 6: Pair Programming for JETT

6 ACM/JETT Workshop - August 4-5, 2005

Experienced and Inexperienced

Programmers Tend to

• be initially resistant to pair programming

• find it very beneficial and enjoyable after initial period

Page 7: Pair Programming for JETT

7 ACM/JETT Workshop - August 4-5, 2005

Why Useful for Teachers?

• Half of the programs to grade

• Less questions from students

• Students learn more

• Happier students

Page 8: Pair Programming for JETT

8 ACM/JETT Workshop - August 4-5, 2005

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.

Page 9: Pair Programming for JETT

9 ACM/JETT Workshop - August 4-5, 2005

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

Page 10: Pair Programming for JETT

10 ACM/JETT Workshop - August 4-5, 2005

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

Page 11: Pair Programming for JETT

11 ACM/JETT Workshop - August 4-5, 2005

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)

Page 12: Pair Programming for JETT

12 ACM/JETT Workshop - August 4-5, 2005

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 posterwww.cse.ucsc.edu/~charlie/projects/

pairprogramming/CATE.pdf

Page 13: Pair Programming for JETT

13 ACM/JETT Workshop - August 4-5, 2005

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

Page 14: Pair Programming for JETT

14 ACM/JETT Workshop - August 4-5, 2005

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)

Page 15: Pair Programming for JETT

15 ACM/JETT Workshop - August 4-5, 2005

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

Page 16: Pair Programming for JETT

16 ACM/JETT Workshop - August 4-5, 2005

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 …

Page 17: Pair Programming for JETT

17 ACM/JETT Workshop - August 4-5, 2005

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

Page 18: Pair Programming for JETT

18 ACM/JETT Workshop - August 4-5, 2005

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’

Page 19: Pair Programming for JETT

19 ACM/JETT Workshop - August 4-5, 2005

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

Page 20: Pair Programming for JETT

20 ACM/JETT Workshop - August 4-5, 2005

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.”

Page 21: Pair Programming for JETT

21 ACM/JETT Workshop - August 4-5, 2005

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 guidelines

www.cse.ucsc.edu/classes/cmps012a/Fall04/hw/pairProgramming.html

• UCSC TA suggested guidelines www.cse.ucsc.edu/~charlie/pubs/cseet2002.pdf

• Scripts for good vs. bad pair programming www.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 up collaboration.csc.ncsu.edu/laurie/LCSD.htm

Page 22: Pair Programming for JETT

22 ACM/JETT Workshop - August 4-5, 2005

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

Page 23: Pair Programming for JETT

23 ACM/JETT Workshop - August 4-5, 2005

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

Page 24: Pair Programming for JETT

24 ACM/JETT Workshop - August 4-5, 2005

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.

Page 25: Pair Programming for JETT

25 ACM/JETT Workshop - August 4-5, 2005

Who is learning more?