In this course we'll be using Pair Programming for the labs. Pair programming is a practice that has been used with a lot of success both in industry as well as in Computer Science education. It's been tried succesfully in intro courses at other universities, and recently we've started using it in the intro courses here at UCSB. So far, it seems to be working well.
To get a sense of how pair programming works in an intro course, I would like to suggest that you watch the video "Pair Programming for Students", which can be found at this link:
http://agile.csc.ncsu.edu/pairlearning/educators.php
You may also find it helpful to read a bit about the role of pair programming in introductory courses.
I've put together a web page with some references to articles about pair programming in intro courses—you may find it helpful to read over these articles.
http://www.cs.ucsb.edu/~pconrad/csed/pair-programming/
But, if you don't have time to read the full articles, below are a few excerpts from the articles that may be particularly helpful. Please try to read these before your first lab----these are the paragraphs that seem to pertain most to things that TAs may find helpful to know.
And, if you don't have time to read even the excepts, here's what may be the most important single point:
Regards,
Phill Conrad
(For citations of articles, see http://www.cs.ucsb.edu/~pconrad/csed/pair-programming/ )
"The role of the laboratory instructor seems crucial to the success of the pair-programming protocol. When instructors explained and reinforced the pair programming protocol on a regular basis, students were more apt to assume appropriate roles as well as reverse roles when necessary. In labs where instructors forgot to ask students to reverse roles, no role reversal occurred. In labs where the instructor failed to enforce the pair-programming protocol, students opted for individual work. Students who chose to pair on their own did not follow the correct protocol. These students worked at their own computers while they engaged in some level of collaboration with no evidence of driver/navigator roles. Instructors that did enforce the pair-programming protocol, were more likely get students involved in team learning. Without instructor reinforcement, students very easily reverted to the individual work with which they are so accustomed."
...
"The watchful eye of a trained instructor or teaching assistant is essential for making sure that students are properly assuming the roles of driver and navigator, switching roles periodically, and that both students are engaged. Additionally, inexperienced students seem to have more difficulty meeting with their partners outside of class. Students with more experience pair programming are better able to manage meeting outside of class, but these students still seem to benefit from “bonding” with their partner by working on a joint project in a structured lab setting. We do not require any pair programming outside of the closed lab for our CS1 class."
...
"Additionally, we were having a problem with students arriving late for laboratory, wondering what to do with the student anxiously awaiting the arrival of a partner. We recommend that after a specified period of time (e.g. 10 minutes), a student is reassigned to a different pair if their partner does not arrive. A student who arrives late must work alone with a penalty on the lab assignment. "
...
"The teaching assistants (TA) need coaching and training on how to manage a pair programming lab. In the laboratory, they must look for dysfunctional pairs who are not working well together. The TAs must approach the pair and ask if they need help, and point them in the right direction for working together via driver/navigator roles. The TAs must ensure that the students switch roles periodically. In solo programming labs, the TAs spend all of their time answering questions of the students. In a paired lab, the role of the TA changes, to some degree, from technical assistant to proactive monitor. For the most part, the multitude of technical questions of the TAs in solo labs is reduced because pairs can usually figure out most aspects of an assignment together. Questions from pairs tend to be focused more on learning objectives and concepts rather than technical hang-ups, and may require more time per question (though this is time well-spent). With the remaining time, the TA needs to proactively visit the pairs, asking how they are doing, and ensuring that they are working together effectively."
...
"Guideline 2. Teaching staff must actively engage in the management of pair interactions. In solo programming labs, TAs spend most of their time answering questions of the students. In a paired lab, the role of the TA changes to some degree from technical assistant to proactive monitor. In paired labs, the number of technical questions put to the TAs is lower than in solo labs because pairs can usually figure out most aspects of an assignment together. Questions from pairs tend to be focused more on learning objectives and concepts rather than technical hang-ups, and may require more time per question (though this is time well-spent). With the remaining time, the TA needs to proactively visit the pairs, ask how they are doing, and ensure that they are working together effectively. The TA must look for dysfunctional pairs who are not working well together and take proactive steps to remedy the problem. The TA must also ensure that the students switch roles periodically. "
Observations. During the first pairing, it was obvious that most students were paired with partners that they did not know well. For the first few minutes, they exchanged general information about programming knowledge and interface building expertise. After about five minutes, the students settled into the assigned work with no prompting from the TA.
The TA was present throughout the pair programming sessions. He walked through the room, observing the pairs at work and answering any questions that arose. When appropriate, he would redirect questions to the pairs in hopes of helping them identify ways to find the answers themselves. "
...
"Additional Guideline 11. Teaching staff should encourage pairs to find answers on their own rather than providing them with answers.
The TA at Virginia Tech often would provide a general direction and would redirect questions to the pairs in hopes of helping them identify ways to find the answers themselves. In doing so, he could help the students gain confidence in their ability to work independently and to learn about searching for and finding answers. When students work alone, such question redirection might be frustrating. But, in pairs, students generally have good luck figuring out how to solve their problems together, particularly with general guidance provided by the TA. "