Learning Path Recommendation System for Programming Education Based on Neural Networks

Learning Path Recommendation System for Programming Education Based on Neural Networks

Tomohiro Saito, Yutaka Watanobe
Copyright: © 2020 |Pages: 29
DOI: 10.4018/IJDET.2020010103
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Programming education has recently received increased attention due to growing demand for programming and information technology skills. However, a lack of teaching materials and human resources presents a major challenge to meeting this demand. One way to compensate for a shortage of trained teachers is to use machine learning techniques to assist learners. This article proposes a learning path recommendation system that applies a recurrent neural network to a learner's ability chart, which displays the learner's scores. In brief, a learning path is constructed from a learner's submission history using a trial-and-error process, and the learner's ability chart is used as an indicator of their current knowledge. An approach for constructing a learning path recommendation system using ability charts and its implementation based on a sequential prediction model and a recurrent neural network, are presented. Experimental evaluation is conducted with data from an e-learning system.
Article Preview
Top

Introduction

Computer science skills, once only required for people who specialize in information and technology fields, are now incorporated in school curricula sometimes even in elementary school (Joint Task Force on Computing Curricula, Association for Computing Machinery (ACM) and IEEE Computer Society, 2013). In programming education, it is important to learn not only language constructs but also algorithms and data structures, because they are basis of modern applications, including those related to artificial intelligence, data analysis, combinatorics, geometrics, and numerical analysis. The classification of teaching materials is highly desirable because it would allow programming learners to determine what they want to learn and what they should avoid. Some e-learning systems allow problems and materials to be tagged to categorize them for a computer science curriculum. There is a large amount of learning materials related to this field, so people should be able to effectively study toward their individual goals. It is also important to consider the learning process to make learning more meaningful for students. However, in the computer science education, few ideas and services focus on teaching algorithms and data structures. Learning order could be critical for self-learners, especially for programming education, because syntax, data structures, and programming techniques, such as recursive algorithms, should be learned in the appropriate order.

Many online judge (OJ) systems, which are online environments that test the validity of computer programs, have been established. They are used by students and engineers to learn programming skills (Wasik, Antczak, Badura, Laskowski, and Sternal, 2016). A key point when studying programming with OJ systems is the selection of suitable problems. By considering the user's past actions, current skills, and objectives in a specific field, awareness computing can help users avoid wasting time on problems that are too difficult and thus frustrating. Users do not need to be experts in all fields of programming. They should study programming according to their software development needs or interests in a specific field. For this task, OJ systems can support learners according to their needs and provide guidelines.

For Aizu Online Judge (AOJ) system1 (Aizu Online Judge, 2004-2018; Watanobe, 2015), which is the main focus of this research, around 2,000 problems have been registered so far, and there is a function to tag problems with a genre. The user can thus find specific problems using tag. In addition, for UVa Online Judge (UVaOJ) system2 (Valladolid, 1995-2018), about 4,300 problems have been registered. They are categorized with specific problem classification into various problem types. For example, AOAPC I: Beginning Algorithm Contests, a course on UVaOJ, contains over 300 problems, each of which is in a specific category. In general, it is difficult to find specific problems on an OJ if there is no index of categories because typical OJ systems have a huge number of problem sets from past programming contests.

This paper proposes a recommendation system that identifies problems based not only on the user's past actions recorded by the OJ system but also on the user's objectives and desired learning path.

Specifically, current abilities and objectives of users in OJ system for each field are considered in the recommendation. By considering the current abilities of both the target user and other users, a more personalized recommendation system can be realized. However, due to the complexity of the relationship between users and problems, the recommendation scenario in an OJ system is different from that for typical e-commerce recommendation (Toledo, Mota, and Martinez, 2018).

Complete Article List

Search this Journal:
Reset
Volume 22: 1 Issue (2024)
Volume 21: 2 Issues (2023)
Volume 20: 4 Issues (2022): 1 Released, 3 Forthcoming
Volume 19: 4 Issues (2021)
Volume 18: 4 Issues (2020)
Volume 17: 4 Issues (2019)
Volume 16: 4 Issues (2018)
Volume 15: 4 Issues (2017)
Volume 14: 4 Issues (2016)
Volume 13: 4 Issues (2015)
Volume 12: 4 Issues (2014)
Volume 11: 4 Issues (2013)
Volume 10: 4 Issues (2012)
Volume 9: 4 Issues (2011)
Volume 8: 4 Issues (2010)
Volume 7: 4 Issues (2009)
Volume 6: 4 Issues (2008)
Volume 5: 4 Issues (2007)
Volume 4: 4 Issues (2006)
Volume 3: 4 Issues (2005)
Volume 2: 4 Issues (2004)
Volume 1: 4 Issues (2003)
View Complete Journal Contents Listing