In this session we report on the design of PyTutor, an Open Education Resource (OER) for studying computer science (CS) online. PyTutor, a web-based learning platform, is open across several dimensions: its code is released under a Free Software license and hosted publicly on GitHub; CS tasks and solutions, as in a wiki, can be modified by all users, and are released with a Creative Commons license; and, when the site opens to the public, it will be free of charge. Further, PyTutor is a design experiment in ways peer tutoring fosters open learning. The computational thinking movement makes strong arguments for teaching computer science to wider audiences grown in importance in recent years (Grover & Pea, 2013), and CS has been a robust area for MOOCs and other OER. Yet, informal online learning, and MOOCs specifically, have been justly criticized for their poor record of supporting struggling students and attracting non-traditional students. This problem is confounded in CS, where traditional classes face similar concerns. We believe that well designed support for peer tutoring can address this problem.
PyTutor incorporates social media functionality to engage students and create a community of peer-learners. Artificial intelligence (AI) “tutoring” has shown success in teaching CS novices. Typically, learners work through programming challenges. Errors are remediated using “intelligent” or “cognitive” tutoring algorithms (Anderson & Reiser, 1985; Desmarais & Baker, 2012), offering just-in-time learning. PyTutor’s support comes from peer tutoring rather than AI. PyTutor’s users connect through a Facebook-like social network. When facing a difficult problem, users can send a help request to their social network, or post a site-wide request for help. A friend then contacts them through in-site tools (e.g. chat) or 3rd party means (e.g. Skype). Peer tutoring has benefits for tutors and learners (Crouch & Mazur, 2001) and may offer scalable, sustainable alternatives to AI-based tutoring for OER.
PyTutor engages a wide pool of users in designing the learning experiences. The processes of collaborative content development and peer learning make PyTutor a supportive and adaptable tool for variety of already existing resources, including traditional courses, MOOCs, and other online programs of study. In this way, PyTutor acts as a valuable crossroad for sharing learning experiences, external texts, and varied interpretations in a contextualized network.
Anderson, J. R., & Reiser, B. J. (1985). The LISP tutor: it approaches the effectiveness of a human tutor. BYTE, 10(4), 159–175.
Desmarais, M. C., & Baker, R. (2012). A review of recent advances in learner and skill modeling in intelligent learning environments. User Modeling and User-Adapted Interaction, 22(1-2), 9–38.
Grover, S., & Pea, R. (2013). Computational Thinking in K–12 A Review of the State of the Field. Educational Researcher, 42(1), 38–43. doi:10.3102/0013189X12463051
Crouch, C. H., & Mazur, E. (2001). Peer instruction: Ten years of experience and results. American Journal of Physics, 69(9), 970–977.
Topping, K. J. (1996). The Effectiveness of Peer Tutoring in Further and Higher Education: A Typology and Review of the Literature. Higher Education, 32(3), 321–345.