Computer Science Students and Collaboration
+ How Computer Science Students Learn
@murphy-hill2014 starts by stating that humans have always learned through social interactions. They want to explore how much they can leverage that with the advances in modern technology. In Computer Science, this takes the shape of pair programming where two students sit together at one computer and problem-solve collaboratively. This can also be done synchronously online with what the author refers to as continuous screencasting. @murphy-hill2014 posits nine principles of effective social learning: recording efficiency, learning efficiency, privacy preservation, targeting, trust, rationale, feedback efficiency, bootstrapping, and generality. Sites like Stack Overflow and GitHub are built with social interactivity and learning at their core. There are many reasons why developers might hesitate to use new tools, but @murphy-hill2014 states that the discoverability of new tools and how to use those tools can be solved by turning to one's peers.
One developer can learn from another simply by engaging in a pair programming session with them (Fitzgerald et al., 2010, p. 395; Murphy-Hill, 2014). By having to explain their thought process out loud to their peer, they are forced to create a mental trace model of how the code is being executed. This will also expose the student to a variety of approaches. This collaboration also builds trust in the team which can lead to enhancing the learning experience. The students would work individually on a program and then collaborate with peers to identify potential bugs before executing the program. Then they would work together to solve any bugs after the program execution (Chmiel & Loui, 2004, p. 18).
@marques2018 also studied the effects of collaboration on Software Engineering students. They used a formative monitoring tool called Reflexive Weekly Monitoring (RWM) while doing team projects to see how much students were aware of their effectiveness on the team. By using this RWM tool, the authors hoped that the students would employ self-reflective and collaborative practices to monitor if their contributions to the team were valuable. The reflection process had students question the team's main weaknesses and had them come up with answers to why the team was behind schedule. The nine-semester long study took place with a total of 205 students divided into thirty-two teams. The teams had to follow agile software development practices which is common in the industry. The results of the study concluded that the use of RWM is effective and that having students engage in the cognitive processes of collaboration and self-reflection almost always leads to a more successful end product. Teams that did not use the RWM had trouble meetings deadlines and identifying what the problems were in the team. @marques2018 finish the article with an acknowledgment that more research is to be done in this area to more closely follow the individual productivity of each student.