Readily Available Learning Experiences in Production Code

Public Deposited

Online platforms for learning to code such as Coursera, CodeCademy, and CodeSchool attract millions of learners and significantly expand the pool of self-starting developers, yet critical gaps in knowledge and experience remain between inexperienced learners and professionals. With vast amounts of professionally-authored source code made readily available by the client-server architecture of the web, design patterns and implementation decisions found in source code can be used to provide on-demand learning experiences for users seeking to advance their skills in professional web development. Specifically, this thesis focuses on creating Readily Available Learning Experiences (RALE) for inexperienced learners who wish to become professional contributors but lack the means necessary to advance beyond their gaps in knowledge. The central claims of RALE are (1) surfacing hidden design patterns, code constructs, and relationships (both direct and indirect) from professional websites, (2) minimizing learning barriers while supporting personalized exploration of unfamiliar website code, (3) scaffolding mixed-initiative sensemaking to help users walk through unfamiliar complexities, and (4) scaling the conversion of examples into learning resources without additional authorship or maintenance. Specifically, I propose to transform the entire domain of professional websites into opportunities for authentic learning. Professional websites offer rich details missing from training examples, providing real-world content and opportunities to think in the modes of the discipline. They embed programming concepts and implementation techniques that are used by professionals and are continually updated as new solutions arise. However, despite the abundant availability of web client source code, professional website source is complex and difficult for learners to understand. This thesis contributes three technical contributions to support RALE on the open web: (1) an API Harness for surfacing relevant code that modifies the DOM, (2) a Wisat architecture and Sleight-of-Hand technique to enable source instrumentation on production websites, and (3) a Serialized Deanonymization technique to expose hidden asynchronous links between logical JavaScript components. With these techniques for transforming websites into learning experiences, aspiring web developers have immediate opportunities to gain authentic practice in professional web development beyond what authored learning materials currently provide.

Last modified
  • 10/12/2018
Date created
Resource type
Rights statement