Pair Programming Guidelines
When working on programming assignments, both in Lab and on the PSAs, you will use the “Pair Programming” approach. In pair programming, two programmers share one computer. One student is the “driver,” who controls the keyboard and mouse. The other is the “navigator,” who observes, asks questions, suggests solutions, and thinks about slightly longer-term strategies. The two programmers switch roles about every 20 minutes. Working in pairs should make you much better at programming than working alone would. The resulting work of pair programming nearly always outshines that of the solitary programmer, with pairs producing better code in less time.
“[Pair programming] makes learning programming faster and more fun. I have had
previous experience working both alone and with partners. I definitely agree that
working with partners is more profitable.” – CS student
To “learn the do’s and don’ts” of pair programming and to see pairs in action, view this entertaining video about pair programming from North Carolina State University: An Introduction to Pair Programming for Students. However, the most important rule of pair programming is that you must work together, co-located, on the same part of the assignment at the same time. Splitting up the work on a PSA or Lab is considered cheating.
You will be assigned a different partner each week in lab. For the PSAs you will choose your own partner. You may choose to work with your lab partner, or you may choose a different partner from any of the 3 sections of CSE 8A. We recommend you use the Discussion Board to find a partner if you are having trouble. For the PSAs you may not work with the same partner more than twice. You will report who you will be working with during your lab section, so you must choose a partner before the end of lab.
You will need to arrange times to meet outside of class. We expect you will need at least 6 hours each week to work with your partner. We expect everyone to be flexible and professional in arranging those times as necessary; if your schedule is highly constrained, explore possible meeting times with your prospective partner before you commit to the partnership.
If it is absolutely infeasible for you to work with a partner, see the instructor. If the instructor determines that there is no other option, she or he may give you permission to work alone. This is rarely allowed. If applicable, you must report your solo status to course staff by the same date that pairs report their partnership.
“[Pair programming] makes learning programming faster and more fun. I have had
previous experience working both alone and with partners. I definitely agree that
working with partners is more profitable.” – CS student
To “learn the do’s and don’ts” of pair programming and to see pairs in action, view this entertaining video about pair programming from North Carolina State University: An Introduction to Pair Programming for Students. However, the most important rule of pair programming is that you must work together, co-located, on the same part of the assignment at the same time. Splitting up the work on a PSA or Lab is considered cheating.
You will be assigned a different partner each week in lab. For the PSAs you will choose your own partner. You may choose to work with your lab partner, or you may choose a different partner from any of the 3 sections of CSE 8A. We recommend you use the Discussion Board to find a partner if you are having trouble. For the PSAs you may not work with the same partner more than twice. You will report who you will be working with during your lab section, so you must choose a partner before the end of lab.
You will need to arrange times to meet outside of class. We expect you will need at least 6 hours each week to work with your partner. We expect everyone to be flexible and professional in arranging those times as necessary; if your schedule is highly constrained, explore possible meeting times with your prospective partner before you commit to the partnership.
If it is absolutely infeasible for you to work with a partner, see the instructor. If the instructor determines that there is no other option, she or he may give you permission to work alone. This is rarely allowed. If applicable, you must report your solo status to course staff by the same date that pairs report their partnership.
Choosing a partner
You should try to
pick a partner whose experience and skill level with programming is similar to
your own. This may not always be possible and it is sometimes hard to compare
skill levels, but students tell us (and other data support) that pairs are most
productive when the partners start at about the same level.
Still, people often pair up with another whose skills are different. This happens more often than not, as no two people have an identical skill set. The differences may be great or small, but this is exactly like most real-world working situations. Part of accomplishing a task is to get the most out of each member and make each member stronger and more productive on subsequent tasks.
Students bring different strengths to the process, regardless of how much experience they have had with programming. Both experienced and inexperienced students will need to draw on their reasoning and problem solving skills. A more experienced partner may sometimes feel frustrated or slowed down by a less experienced partner, but the experienced partner still benefits from the teamwork in many ways. The less experienced partner’s requests for clarification often uncover flaws in an approach or solution; the exercise of providing a clear explanation solidifies and deepens the explainer’s own understanding and the teamwork and communication skills they gain have great value in both the academic realm and the job market.
“My partner had never coded anything before so I was able to teach him
a little bit about how it worked. The teaching bit helped me a lot with
understanding the labs and passing the exams.” – CS student
The less experienced partner may feel that questions hold the other partner back or that there is no benefit to participating actively, but pair programming studies show that paired work is consistently better than work the stronger partner does alone.
It is each partner’s job to understand the whole task; that means asking questions when necessary and answering them when possible.
It may be instructive to read a selection of students’ partner evaluation comments from similar courses that have used pair programming; they give a picture of what good partnerships are like (and a few disasters, too). Read Pair Programming Evaluations from the University of California, Irvine Bren School of Information and Computer Sciences.
Still, people often pair up with another whose skills are different. This happens more often than not, as no two people have an identical skill set. The differences may be great or small, but this is exactly like most real-world working situations. Part of accomplishing a task is to get the most out of each member and make each member stronger and more productive on subsequent tasks.
Students bring different strengths to the process, regardless of how much experience they have had with programming. Both experienced and inexperienced students will need to draw on their reasoning and problem solving skills. A more experienced partner may sometimes feel frustrated or slowed down by a less experienced partner, but the experienced partner still benefits from the teamwork in many ways. The less experienced partner’s requests for clarification often uncover flaws in an approach or solution; the exercise of providing a clear explanation solidifies and deepens the explainer’s own understanding and the teamwork and communication skills they gain have great value in both the academic realm and the job market.
“My partner had never coded anything before so I was able to teach him
a little bit about how it worked. The teaching bit helped me a lot with
understanding the labs and passing the exams.” – CS student
The less experienced partner may feel that questions hold the other partner back or that there is no benefit to participating actively, but pair programming studies show that paired work is consistently better than work the stronger partner does alone.
It is each partner’s job to understand the whole task; that means asking questions when necessary and answering them when possible.
It may be instructive to read a selection of students’ partner evaluation comments from similar courses that have used pair programming; they give a picture of what good partnerships are like (and a few disasters, too). Read Pair Programming Evaluations from the University of California, Irvine Bren School of Information and Computer Sciences.
Dealing with Differences
If you believe your partner is not participating appropriately in pair programming (e.g., she or he does not keep in touch, does not come prepared to work on the assignment, or does not seem to be engaged in the process) please first address your concerns to your partner, and try to agree on what should be done to make the pair programming experience work well for both of you. If that approach is not successful, explain the issues to your teaching assistant or the instructor, who will work with you and your partner to improve the situation.
If your partner drops the course or otherwise stops participating, notify your instructor or teaching assistant immediately so he or she can pair you with another student. In some cases, you will be asked to complete the PSA alone for that week only.
If your partner drops the course or otherwise stops participating, notify your instructor or teaching assistant immediately so he or she can pair you with another student. In some cases, you will be asked to complete the PSA alone for that week only.
How Pair Programming Affects Your Grade
In lab, you and your partner will receive your own lab quiz scores, since the quizzes are completed individually. On the PSAs you and your partner will receive the same score on your code, but you will each receive a separate score on your interview, since again, the interviews are completed individually.
When in Doubt, Seek Clarification
Pair programming is shown to help, not hinder, your successful completion of the introductory course. It is important that you understand the processes and expectations up front so you can gain the most benefit. If you are unsure of any of the aspects of pair programming and how it is implemented in the course, see your instructor right away.