Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver who writes the code while the other, the observer, pointer or navigator which reaserch each line of code as it is typed in. The two programmers switch roles frequently.
While reviewing, the observer also considers the "strategic" direction of the work, coming up with ideas for improvements and likely future problems to address. This frees the driver to focus all of his or her attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.
Also, Pair Programming makes internship more valuable, rewarding and fun for everyone..