A Contributing Student Pedagogy (CSP) is a pedagogy that encourages students to contribute to the learning of others and to value the contributions of others. CSP in formal education is anticipatory of learning processes found in industry and research, in which the roles and responsibilities of ‘teacher’ and ‘student’ are fluid. Preparing students for this shift is one motivation for use of CSP. Further, CSP approaches are linked to constructivist and community theories of learning, and provide opportunities to engage students more deeply in subject material. In this paper we advance the concept of CSP and relate it to the particular needs of computer science. We present a number of characteristics of this approach, and use case studies from the available literature to illustrate these characteristics in practice. We discuss enabling technologies, provide guidance to instructors who would like to incorporate this approach in their teaching, and suggest some future directions for the study and evaluation of this technique. We conclude with an extensive bibliography of related research and case studies which exhibit elements of CSP.