Thinking About Pair Programming
In addition to reviewing the Pair Programming Policy, choose one of the following to read:
- All I Really Need to Know about Pair Programming I Learned in Kindergarten
- Pair Programming Improves Student Retention, Confidence, and Program Quality
Reflecting on Pair Programming
Reflect on the following questions and make notes. Bring them with you to lab on Wednesday, where we'll discuss them in small groups.
- When you and your partner are in the middle of working on a homework, what searches would be smart uses of Google or Stack Overflow, and what on the web would cross the line into cheating or plagiarism?
- What are some of the benefits and costs of doing pair programming in CS 70?
- What are some ways to be a jerk to your partner? (That is, what are some specific behaviors to avoid?)
- What qualities will you be looking for in your pair-programming partners?
- What are the advantages of pair programming (in CS 70, or generally)? What are the disadvantages?
- How can “Pair Programming” skills improve with practice?
Pair Programming: Our Expectations
We recognize that as students, you're navigating the expectations, requirements, and norms of multiple disciplines all at once!
To help make sure we're all on the same page regarding how pair programming and academic integrity expectations overlap in CS70, let's consider some scenarios.
If you have any questions about these expectations, we're happy to discuss them!
And in general, if you're not sure if something (a resource, a behavior, etc.) is acceptable, it's always best to come ask us first! We're happy to help you navigate the expectations of computer science as a field (and of CS70 as a class), and that's always easier to do if you're open and proactive in your communication with us!
Scenario One
Students A and B are paired. They try to compile their code, and get the error
corroborate.cpp:213:1: error: C++ requires a type specifier for all
declarations
Seeing no obvious problems at line 213, column 1 of corroborate.cpp
, the students enter
“C++ requires a type specifier for all declarations”
(the generic part of the error message) into Google. The first hit leads them to a Stack Overflow post explaining how someone else encountered and fixed that error. A and B realize their code has the same problem; they fix it, and the error disappears.
Scenario Two
Students A and B are paired. They start up a Live Share session (so they can talk to each other), then decide to double their coding speed by editing two different files at the same time.
Scenario Three
A CS 70 homework assignment asks for an implementation of Red–Black Trees. This data structure seemed to make sense in class, but afterwards Student A realized that some parts still weren’t clear. Before starting the homework, A browses the web and reads some other high-level explanations of Red–Black Trees, being careful not to look at detailed implementation discussions or source code.
Scenario Four
Students A and B are paired. They grab a spot in the lab where they can both view and edit their code on one computer. A starts working on the CS 70 assignment. B has a history paper due at midnight, and wants to make progress on CS70 and the history paper, so B opens the history paper on their laptop and starts making small edits, while occasionally glancing up and making comments on A’s code.
Scenario Five
Students A and B are paired. Before they get very far, B falls ill. Several days later, just before the assignment is due, the professors are asked for an extension (because B was too sick all week to work).
Scenario Six
Students A and B are paired. They have a bug in their code they just can’t figure out. In a public Piazza post, they paste the lines of C++ code that they think are responsible and ask for help.
(When logged in, completion status appears here.)