CS351 - Design of Large Programs - Professor Ackley

Tuesday and Thursday: 11:00am - 12:15pm (Centennial B146) Labs: Monday (001) 1:00pm - 1:50pm and Thursday (005) 12:30pm - 1:20pm (Centennial B146)

Lab #11: Pair Programming

Goals

  • Introduction to pair programming
  • Pair program a shape changing GUI

Background

Agile software development is a movement that allowed programmers to move further away from a rigid and strict, heavily regulated implementation process, and draw more towards one where adaptability to the common bumps that arise. It seems almost impossible, even laughable, that programmers would try to predict the issues and complications that will be sure to come up during the process. However, the idea of a method that puts emphasis on responding to the change that is bound to happen seems like a much more logical way to program then being micromanaged by a third party client and/or boss who doesn't encounter the day-to-day issues.

According to Wikipedia (the greatest source on the net), "Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently." Since it is assumed that both programmers are at the same (relatively) technical level, the observer is available to suggest the "strategic" direction of the work, while the driver is free to concentrate specifically on the technical aspects of the implementation.

There are many benefits to pair programming including:

  • Reduced bugs.
  • Smaller programs.
  • More efficient implementation.
  • Shared knowledge of the code base.
  • Greater confidence in the correctness of the code.


//TODO

Divide up into teams of 2 (chosen by me, randomly) and pair program the described GUI. Make sure to switch frequently between driver and observer.