Scratch-Rec: a novel Scratch recommendation approach adapting user preference and programming skill for enhancing learning to program
Abstract
Among teenagers, online programming learning platforms, such as Scratch, have obtained promising achievements for guiding beginners. However, with the ever-growing number of users, there is an urgent issue that learners are confused by the massive amounts of programming resources and cannot find projects that fulfill their tastes and programming skills. To tackle this issue, we propose Scratch-Rec, which is a novel Scratch recommendation model considering programming preferences and programming skills, to help users find suitable programming resources. In Scratch-Rec, we first design a project embedding scheme to convert projects into vectors that preserve source code features and semantic features. Based on the embeddings, we propose a water wave diffusion model to analyze users’ diverse preferences and aggregate their programming preferences along links in a user-project interaction graph. To track the evolving programming skills of users, we advance a programming skill learning model that combines long-short term memory networks (LSTM) with an attention network. LSTM models the time-dependency programming skills while the attention network weighs the importance of projects. Then, users’ programming preferences and programming skills are merged and input to multilayer perceptron neural networks for final probability predictions. Extensive experiments on the Scratch dataset show that Scratch-Rec performs better than other state-of-the-art models in recommending programming projects.
Collections
- Computer Science & Engineering [2402 items ]