Profiling Programming Language Learning

被引:0
|
作者
Crichton, Will [1 ]
Krishnamurthi, Shriram [1 ]
机构
[1] Brown Univ, Dept Comp Sci, Providence, RI 02912 USA
来源
关键词
rust education; digital textbooks; item response theory; QUESTIONS;
D O I
10.1145/3649812
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 difficult questions. We find that on average, interventions improved quiz scores on the targeted questions by +20%. Fourth, we show that our technique can likely generalize to languages with smaller user bases by simulating our statistical inferences on small N. These results demonstrate that quizzes are a simple and useful technique for understanding language learning at all scales.
引用
收藏
页数:26
相关论文
共 50 条
  • [1] Learning a programming language
    Iskrenovic-Momcilovic, Olivera
    [J]. INTERNATIONAL JOURNAL OF ELECTRICAL ENGINEERING EDUCATION, 2018, 55 (04) : 324 - 333
  • [2] The tutorial for learning programming language
    Borza, S.
    Simion, C.
    [J]. 3rd Balkan Region Conference on Engineering Education, Conference Proceedings: ADVANCING ENGINEERING EDUCATION, 2005, : 226 - 229
  • [3] Gradually Learning Programming Supported by a Growable Programming Language
    Cazzola, Walter
    Olivares, Diego Mathias
    [J]. 39TH ANNUAL IEEE COMPUTERS, SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC 2015), VOL 2, 2015, : 857 - 857
  • [4] Gradually Learning Programming Supported by a Growable Programming Language
    Cazzola, Walter
    Olivares, Diego Mathias
    [J]. IEEE TRANSACTIONS ON EMERGING TOPICS IN COMPUTING, 2016, 4 (03) : 404 - 415
  • [5] Automatic Generation of Programming Exercises for Learning Programming Language
    Wakatani, Akiyoshi
    Maeda, Toshiyuki
    [J]. 2015 IEEE/ACIS 14TH INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION SCIENCE (ICIS), 2015, : 461 - 465
  • [6] Learning C language Programming with executable flowchart language
    Cho Sehyeong
    Yeonseung Ryu
    Sang-Kyun Kim
    [J]. 2014 ASEE ANNUAL CONFERENCE, 2014,
  • [7] A Learning Theory of Programming Language Acquisition
    Zabner, David
    [J]. PROCEEDINGS OF THE 2024 CONFERENCE INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, VOL 2, ITICSE 2024, 2024, : 838 - 839
  • [8] Integrating Reinforcement Learning into a Programming Language
    Simpkins, Christopher L.
    [J]. PROCEEDINGS OF THE TWENTY-FOURTH AAAI CONFERENCE ON ARTIFICIAL INTELLIGENCE (AAAI-10), 2010, : 1996 - 1997
  • [9] ISETL: A programming language for learning mathematics
    Dubinsky, E
    [J]. COMMUNICATIONS ON PURE AND APPLIED MATHEMATICS, 1995, 48 (9-10) : 1027 - 1051
  • [10] Learning and reuse of a visual programming language
    Rosson, MB
    Seals, C
    [J]. 2000 IEEE INTERNATIONAL SYMPOSIUM ON VISUAL LANGUAGES, PROCEEDINGS, 2000, : 85 - 86