Pair Programming in CS5
Typically, in each homework assignment, there will be a Pair Programming
Problem, meaning that it should be worked on in teams of two.
For those of you who are not working ahead but feel you simply must
work alone, you can do so, but first clear this with B (talk to her after class or
send her email and explain why this choice makes sense for you).
For those of you who are working ahead, you can either find another person
working ahead on the same problem and work with them in a pair or you
can work alone (in this case you don't need to clear working alone with B).
Why pair programming?
Although there are stereotypes to the contrary,
computer science and software development are fundamentally interactive and
human endeavors. Software development is translation: from human ideas into
a program's formal language. Programming in a pair helps each partner
clarify ideas; it also catches small errors before they cost time and effort. It has been
widely accepted by professionals, e.g., as
Extreme Programming. Besides, regardless of your eventual major, you will be working
in lab teams, clinic teams, or research teams in which you'll be developing
computational models and analysis in the future---pair programming gives you
that much more experience developing code with another.
Guidelines for working in pairs:
- Each student in the pair must "drive" (that is, sit at the
keyboard and type) about 50% of the time for the course of the problem.
- By the same token, each student in the pair must "review" (that is,
actively check and anticipate the ongoing work) about 50% of the time.
The reviewer must be an active, engaged part of the process -- in particular,
the reviewer must be present during coding. Reviewers provide continuous
analysis, design, and code review; they often catch errors and style
problems immediately, saving substantial time later.
- The team must take joint ownership of the resulting program -- only one program
should be submitted (under either name), and both students should be listed
as the authors. The students will receive the same grade on the problem.
- A joint submission must include a few sentences in the top of the file
commenting on how the pair programming went. Mention the time spent, the
difficulty of the programming, and what worked well and what might not have
worked well with your team's approach. We are especially interested in hearing
the impact that working on this problem as a team had on your experience:
Do you have any advice for others programming in a pair? What aspects of the
pair enhanced your learning? What things could have been learned better alone?
etc.
Guidelines for submitting if you've gotten permission to work alone:
-
A solo submission must include a few sentences in the top of the file
commenting on how the solo enterprise went. Mention the time spent, the
difficulty of the programming, and what worked well and what might not have
worked well with your working alone. We are especially interested in hearing
the impact that working on this problem in isolation had on your experience:
What aspects of working alone enhanced your learning? What things might you
have better learned if you'd had a partner? etc.