Pair programming is the Software Engineering term for when two people collaborate and interact to create a software solution. Both partners must take equal responsibility for reading the class notes, reading the assignment requirements, typing code, reviewing their partner's code, planning the direction of the project, etc. For the purposes of our course, pair programming requires that all of your work is done with your partner at the same computer at the same time. One person should be typing, one person should be directing; each person is responsible for all parts of the project. It is not allowable to have one person work on the first half and the other work on the second. Again, both partners must be actively working together at the same time for all aspects of the problem set.
Working in a Team can be more than twice as effective as working alone. You can feed off of each others knowledge and excitement. You can help each other when things go wrong. You can learn from each other and study twice as much material. Sometimes you can finish assignments in less than half the time a single person would take!
We will refer to our partnerships as "Pair Programming". Pair programming is a technique where two programmers sit side by side helping each other to complete a project. By working together, syntax errors are more easily avoided, and more importantly logic errors can often be caught before running the program.
In Pair Programming, one programmer is the driver and the other is the navigator. While the driver is typing (i.e., coding) the navigator is making strategic plans and correcting tactical (logical) errors.
Each partner should actively communicate with the other, bouncing ideas off one another, searching for information in the notes or book to solve the current problem (together), reviewing each others typing (in real time), etc. By being able to "multi-task", each partner bringing their own view and expertise, the partnership will enable both partners to learn more, and learn "better".
When pair up, you will gain certain rights and be held to certain responsibilities.
You are allowed to (and required to) talk over all aspects of the program with your partner.
You can meet with other groups/individuals away from the computer if you need to reason about and discuss the program on a high level. While you are actually programming, you should work exclusively with your partner.
You should learn from your partner and help your partner to learn... if you find yourself in a one-sided partnership, you should choose a new partner for the next assignment.
Written work or analysis (when specified by the assignment) is to be done separately! Thus if the assignment requires a written report, both partners should complete their own.
You must choose your partner at least 4 days before the assignment is due or you will be required to work on your own until the next programming assignment. In other words, you are not allowed to join someone who has already completed (or mostly completed) the assignment without you.
You and your partner must both be present when you are entering your solution into the computer. You are not allowed to divide the program into sections and each complete separate work. This defeats the goals of pair programming.
You must strive to contribute an equal amount to your group.
Again, you are not allowed to let one partner do "half" the work and you the other "half". You both must work together in all aspects of the design and coding of the program.
You must take equal turns driving (typing at the computer) and navigating (from the chair next to the computer). In fact, you should endeavor to switch every 15 minutes or less.
You are both required to keep a copy of the solution.
One of you should turn in all the files. The other should only turn in the i_worked_with file and the partner evaluation file (and any written work that is required as an individual).
Only two people may work as a partnership. No groups of 3, 4, etc...
You must evaluate your partner.
We will not force you to partner up initially, but we will highly recommend it. How you find your partner is up to you; look around in class and in the lab and talk to your peers, try the partner forum on the web page.
If you choose not to work with a partner, you must handin a "why_i_didnt_work_with_a_partner" file (see below).
You and your partner should immediately create a text file in your working directories with the file name 'i_worked_with'. This file should simply contain your name and your partners name, the name of the assignment, and the current date.
------- i_worked_with file ------- Homework X - Partner Declaration My Name: Jim de St. Germain, germain@eng.utah.edu Partner: Dav de St. Germain, dav@eng.utah.edu Date: The current date ----------------------------------
Each of you should immediately submit this file to the current homework web page.
Once your programming project is complete, you should, separately from your partner, create another text file called "partner_evaluation". This file should contain your name. Your partners name. A ranking from 1-5 detailing how much your partner contributed. Here are the possible values:
Additionally, the file should contain a short paragraph describing the strengths and weaknesses of your team and how it worked/didn't work. This file should also contain the number hours you worked on the project, so please keep careful track of how much time you are working (Note: Do not report the number of hours combined that you and your partner worked, just your hours).
---- partner evaluation file ----- Homework X - Partner Evaluation My Name: Jim de St. Germain, germain Partner: Dav de St. Germain, dav Date: The current date Hours Worked on Project: 8 hours Partner Score: # - Parter did ..... Group Analysis: Our group worked/didn't work because..... ----------------------------------
If you work with the same partner more than once, you should comment on how your partner ship is "maturing" or growing, and what went better the 2nd time around, etc.
Alternatively, it is to your advantage to work with several partners over the course of the semester to be able to learn from the strengths of other people. Don't feel that you have to stay with the same partner every week.
A final note: I suggest you remove your partner_evaluation file from your directory after confirming that it was indeed handed in (so you can be honest with your analysis without worrying about offending your partner).
If for some reason you are not able to work with a partner you must write a one page (500 word) essay on why it was impossible for you to find and work with a partner. Call this file "why_i_didnt_work_with_a_partner" and submit it along with your homework. Remember, partners will learn more, learn more quickly, and retain more.
This file should also contain the number hours you worked on the project, so please keep careful track of how much time you are working (Note: Do not report the number of hours combined that you and your partner worked, just your hours).
The first homework for which partners are allowed is exempt from the 500 word essay. Use the time you would have to write the essay finding a partner for the next assignment.
---- why i didn't work with a partner ----- Homework X My Name: Jim de St. Germain, germain Date: The current date Hours Worked on Project: 8 hours 500 words on why I didn't work with a partner (first project exempt) ----------------------------------