Personalized Programming Guidance based on Deep Programming Learning Style Capturing
<|reference_start|>Personalized Programming Guidance based on Deep Programming Learning Style Capturing: With the rapid development of big data and AI technology, programming is in high demand and has become an essential skill for students. Meanwhile, researchers also focus on boosting the online judging system's guidance ability to reduce students' dropout rates. Previous studies mainly targeted at enhancing learner engagement on online platforms by providing personalized recommendations. However, two significant challenges still need to be addressed in programming: C1) how to recognize complex programming behaviors; C2) how to capture intrinsic learning patterns that align with the actual learning process. To fill these gaps, in this paper, we propose a novel model called Programming Exercise Recommender with Learning Style (PERS), which simulates learners' intricate programming behaviors. Specifically, since programming is an iterative and trial-and-error process, we first introduce a positional encoding and a differentiating module to capture the changes of consecutive code submissions (which addresses C1). To better profile programming behaviors, we extend the Felder-Silverman learning style model, a classical pedagogical theory, to perceive intrinsic programming patterns. Based on this, we align three latent vectors to record and update programming ability, processing style, and understanding style, respectively (which addresses C2). We perform extensive experiments on two real-world datasets to verify the rationality of modeling programming learning styles and the effectiveness of PERS for personalized programming guidance.<|reference_end|>
@article{liu2024personalized,
    title={Personalized Programming Guidance based on Deep Programming Learning
  Style Capturing},
    author={Yingfan Liu, Renyu Zhu, Ming Gao},
    journal={arXiv preprint arXiv:2403.14638},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.14638},
    primaryClass={cs.CY cs.LG}
}