Pair and Group Programming Standards and Requirements



In CS439, you will complete the beginning projects with a partner and later projects will be completed in groups of up to four. Programming with a partner or in a group is a great tool to help learn how to program and solve problems.

Pair programming means working on an assignment together, looking at the same code. One person drives (types at the keyboard) while the other person observes, comments, and makes suggestions to the driver. This form of programming can speed up the programming process by having a helper immediately available. It also reduces the likelihood of syntax and design errors, as there are two pairs of eyes watching for mistakes. If the driver tries out a flawed solution, the partner is there to provide constructive criticism and helpful alternatives. Pair programming does not mean taking an assignment and partitioning into two pieces and then having each person complete a piece.

Group programming is very similar, except now one person drives while the others observe, comment, and make suggestions. Everyone present should get a chance to drive, and the driver should change every 30 minutes.

Here are the requirements for pair and group programming in this course:

  1. Every team member present must act as a driver, and the driver must change every 30 minutes. Only the driver may input code, even if collaboration software is being used.

  2. At least 90% of your time must be spent working together collaboratively, with all members of the group present, in communication with each other, and looking at the same code. No one person may work individually for any more than 5% of the total time.

  3. During programming, the group must commit and push every thirty minutes, and each commit must be from the account of the group member that was driving. So that in your commit history we can see the commits rotate through the group members.

  4. Within the code place comments stating who was driving when the code was written. Example:

    #Michael driving now
    def main():    x = 0;
       y = 0;
       # more code
    
    # end of Michael driving, Kelly driving now 
    

    (except your code should be in C!)

    For blocks of code where more than one person drove, your comment may state something like:

    #Michael and Kelly drove here
    
  5. At each driver change, the driver who is completing their turn must commit and push the code to the project repository, which must be stored in the departmental GitLab instance and must also be shared with course staff. The commit must show the driver as the person who commited it or explain in a comment why that is not the case.
  6. Unless a log file has been provided for you, name your file pair_programming_log.txt and turned in with the rest of your materials. (make turnin will do this for you automatically.) For the Pintos projects, an appropriately named file is included in each project directory. Use that file. --->