Reflecting on Pedagogy
In this section, we review various computer science curricula and pedagogical approaches through the lens of newcomer socialization. The software development tasks we listed earlier—programming, working on bugs, testing, project management, documentation, specifications, tools and communications—are addressed to various degrees in university courses. Within each task, we can find Schein’s three components of belonging to an organization: function, hierarchy, and social networking. Three relatively recent and uncommon pedagogical approaches—pair programming, legitimate peripheral participation, and mentoring—address the hierarchical and social aspects of newcomer socialization in a university setting. We urge that these practices be more universally adopted.
Our participants were surprised at the degree of communication with their colleagues required for the software development process. Some aspects of this communication can be found in pair programming exercises. Two students are paired together, both acting as developers, creating, editing, and rationalizing the code in concert. Pair programming, whose impact in the workplace is explored by Laurie Williams in Chapter 17 of this book, has been shown to increase student performance and self-efficacy [McDowell et al. 2006]. It is less stressful and frustrating because of an increase in brainstorming, number of solutions explored, and the ability to defer to the partner to solve a problem when ...