返回
Identifying algorithm in program code based on structural features using CNN classification model
DOI:10.1007/s10489-022-04078-y.png)
摘要
En 中文
In software, an algorithm is a well-organized sequence of actions that provides the optimal way to complete a task. Algorithmic thinking is also essential to break-down a problem and conceptualize solutions in some steps. The proper selection of an algorithm is pivotal to improve computational performance and software productivity as well as to programming learning. That is, determining a suitable algorithm from a given code is widely relevant in software engineering and programming education. However, both humans and machines find it difficult to identify algorithms from code without any meta-information. This study aims to propose a program code classification model that uses a convolutional neural network (CNN) to classify codes based on the algorithm. First, program codes are transformed into a sequence of structural features (SFs). Second, SFs are transformed into a one-hot binary matrix using several procedures. Third, different structures and hyperparameters of the CNN model are fine-tuned to identify the best model for the code classification task. To do so, 61,614 real-world program codes of different types of algorithms collected from an online judge system are used to train, validate, and evaluate the model. Finally, the experimental results show that the proposed model can identify algorithms and classify program codes with a high percentage of accuracy. The average precision, recall, and F-measure scores of the best CNN model are 95.65%, 95.85%, and 95.70%, respectively, indicating that it outperforms other baseline models.
Keyword:
Program code classification
Structural features
Algorithm identification
Program code
Programming education
Software engineering
Convolutional neural network
期刊
IF:
3.5
论文数:
7.6K
被引数:
1.7W
机构
引用论文
Curriculum, Teaching and Learning, and Assessments for Introductory Programming Course
IEEE ACCESS
IF3.6
A recommendation approach for programming online judges supported by data preprocessing techniques数据预处理技术支持的在线法官编程推荐方法
APPLIED INTELLIGENCE
IF3.5
An LSTM-Based Method with Attention Mechanism for Travel Time Prediction一种基于注意力机制的LSTM行程时间预测方法
SENSORS
IF3.5

