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.

  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.

  3. 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
    
  4. Maintain a log that records the date and time you work on your project, which team members were working on the project, and which team member was driving (typing). Example:

    9/17, 9:30a - 11:45a Michael, Kelly, Clare, and Emily, 2.25 hours
    Driver Order and Time Length:
    Michael, 30 minutes
    Clare, 30 minutes
    Emily, 30 minutes
    Kelly, 30 minutes
    Michael, 15 minutes

    9/17, 7:30p - 9:00p, Michael and Kelly, 1.5 hours
    Driver Order and Time Length:
    Kelly, 30 minutes
    Michael, 30 minutes
    Kelly, 30 minutes

    9/18, 8:00a - 11:00a, Michael, Kelly, Clare, and Emily, 3 hours
    Driver Order and Time Length:
    Clare, 30 minutes
    Emily, 30 minutes
    Michael, 30 minutes
    Kelly, 30 minutes
    Clare, 30 minutes
    Emily, 30 minutes

    9/18, 7:00p - 8:30p, Clare and Emily, 1.5 hours
    Driver Order and Time Length:
    Clare, 30 minutes
    Emily, 30 minutes
    Clare, 30 minutes

    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.