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.