Profiling Programming Language Learning
Will Crichton, Shriram Krishnamurthi

TL;DR
This study used interactive quizzes embedded in the Rust programming language book over a year to analyze learning trajectories, question characteristics, and intervention effects, providing insights into improving programming education.
Contribution
It introduces a data-driven approach to profiling programming language learning using quizzes, revealing factors affecting dropout and question effectiveness.
Findings
Many readers drop out early when facing complex concepts.
Conceptual questions are more effective than factual ones.
Interventions increased quiz scores by approximately 20%.
Abstract
This paper documents a year-long experiment to "profile" the process of learning a programming language: gathering data to understand what makes a language hard to learn, and using that data to improve the learning process. We added interactive quizzes to The Rust Programming Language, the official textbook for learning Rust. Over 13 months, 62,526 readers answered questions 1,140,202 times. First, we analyze the trajectories of readers. We find that many readers drop-out of the book early when faced with difficult language concepts like Rust's ownership types. Second, we use classical test theory and item response theory to analyze the characteristics of quiz questions. We find that better questions are more conceptual in nature, such as asking why a program does not compile vs. whether a program compiles. Third, we performed 12 interventions into the book to help readers with…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Online Learning and Analytics · Teaching and Learning Programming
