본문 바로가기
KERD
논문KCI 등재

자연어 처리 모델을 활용한 블록 코드 생성 및 추천 모델 개발

Development of Block-based Code Generation and Recommendation Model Using Natural Language Processing Model

0

조회

0

다운로드

3

인용

0

참고문헌

키워드

초록

본 논문에서는 코딩 학습 중 학습자의 인지 부하 감소를 목적으로 자연어 처리 모델을 이용하여 전이학습 및 미세조정을 통해 블록 프로그래밍 환경에서 이미 이루어진 학습자의 블록을 학습하여 학습자에게 다음 단계에서 선택가능한 블록을 생성하고 추천해주는 머신러닝 기반 블록 코드 생성 및 추천 모델을 개발하였다. 모델 개발을 위해 훈련용 데이터셋은 블록 프로그래밍 언어인 ‘엔트리’ 사이트의 인기 프로젝트 50개의 블록 코드를 전 처리하여 제작하였으며, 훈련 데이터셋과 검증 데이터셋 및 테스트 데이터셋으로 나누어 LSTM, Seq2Seq, GPT-2 모델을 기반으로 블록 코드를 생성하는 모델을 개발하였다. 개발된 모델의 성능 평가 결과, GPT-2가 LSTM과 Seq2Seq 모델보다 문장의 유사도를 측정하는 BLEU와 ROUGE 지표에서 더 높은 성능을 보였다. GPT-2 모델을 통해 실제 생성된 데이터를 확인한 결과 블록의 개수가 1개 또는 17개인 경우를 제외하면 BLEU와 ROUGE 점수에서 비교적 유사한 성능을 내는 것을 알 수 있었다.

Abstract

In this paper, we develop a machine learning based block code generation and recommendation model for the purpose of reducing cognitive load of learners during coding education that learns the learners block that has been made in the block programming environment using natural processing model and fine-tuning and then gen­erates and recommends the selectable blocks for the next step. To develop the model, the training dataset was produced by pre-processing 50 block codes that were on the popular block programming language web site ‘Entry’. Also, after dividing the pre-processed blocks into training dataset, verification dataset and test dataset, we developed a model that generates block codes based on LSTM, Seq2Seq, and GPT-2 model. In the results of the performance evaluation of the developed model, GPT-2 showed a higher performance than the LSTM and Seq2Seq model in the BLEU and ROUGE scores which measure sentence similarity. The data results generated through the GPT-2 model, show that the performance was relatively similar in the BLEU and ROUGE scores ex­cept for the case where the number of blocks was 1 or 17.

참고문헌 (36)

  1. Ala-Mutka, K. M., "A survey of automated assessment approaches for programming assignments", Computer science education, 15(2), pp.83~102 (2005)
  2. Bahdanau, D., "Neural machine translation by jointly learning to align and translate", arXiv preprint arXiv:1409.0473, ~ (2014)
  3. Chow, K., "Development of visual feedback training using functional electrical stimulation therapy for balance rehabilitation", STEM Fellowship Journal, 3(2), pp.1~2 (2017)
  4. Crow, T., "Intelligent tutoring systems for programming education: a systematic review", Proceedings of the 20th Australasian Computing Education Conference, pp.53~62 (2018)
  5. Devlin, J., "Bert : Pre-training of deep bidirectional transformers for language understanding", arXiv preprint arXiv:1810.04805, ~ (2018)
  6. Edwards, S. H., "Web-CAT: automatically grading programming assignments", Proceedings of the 13th annual conference on Innovation and technology in computer science education, pp.328~328 (2008)
  7. Guo, D., "GraphCodeBERT: Pre-training Code Representations with Data Flow", arXiv 2021, arXiv:2009.08366v3, ~ (2021)
  8. Guo, T., "Content Enhanced BERT-based Text-to-SQL Generation", arXiv 2020, arXiv:1910.07179v5, ~ (2020)
  9. Harvey, B., "Bringing “no ceiling” to scratch: Can one language serve kids and computer scientists", Proc. Constructionism, pp.1~10 (2010)
  10. Ifenthaler, D., "Are higher education institutions prepared for learning analytics", TechTrends, 61(4), pp.366~371 (2017)
  11. Jeon, I. S., "The Effect of learning analytics system towards learner's computational thinking capabilities", Proceedings of the 2019 11th International Conference on Computer and Automation Engineering, pp.12~16 (2019)
  12. Keuning, H., "A tutoring system to learn code refactoring", Proceedings of the 52nd ACM Technical Symposium on Computer Science Education, pp.562~568 (2021)
  13. 김수환, "Computational Thinking 교육에서 나타난 컴퓨터 비전공 학습자들의 어려움 분석", 컴퓨터교육학회 논문지, 18(3), pp.49~57 (2015), 한국컴퓨터교육학회[DOI]
  14. Koyya, P., "Feedback for programming assignments using software-metrics and reference code", International Scholarly Research Notices, ~ (2013)
  15. Lamb, A., "Scratch : computer programming for 21st century learners", Teacher Librarian, 38, pp.64~68 (2011)
  16. Le, N. T., "A review of AI-supported tutoring approaches for learning programmin", Advanced Computational Methods for Knowledge Engineering, pp.267~279 (2013)
  17. 이재영, "텍스트 기반 프로그램 평가에서 부분점수 구성에 관한 고찰", 컴퓨터교육학회 논문지, 22(2), pp.29~38 (2019), 한국컴퓨터교육학회[DOI]
  18. Lin, C. Y., "Text summarization branches out", pp.74~81 (2004)
  19. Lister, R., "Computing education research programming, syntax and cognitive load", ACM Inroads, 2(2), pp.21~22 (2011)
  20. Maloney, J. H., "Programming by choice : urban youth learning programming with scratch. In Proceedings of the 39th SIGCSE technical symposium on Computer science education", 367-37, 1 (2008)
  21. Maloney, J., "The scratch programming language and environment", ACM Transactions on Computing Education, 10(4), pp.1~15 (2010)
  22. family)and Information curriculum, "Practical(technical", pp.2015, Ministry of Education.
  23. Moreno-León, J., "Dr. Scratch : análisis automático de proyectos Scratch para evaluar y fomentar el Pensamiento Computacional", Revista de Educación a Distancia(RED), 46 (2015)
  24. Krogstie, J., "Conceptual Modeling in Information Systems Engineering" (2007), Springer
  25. Papineni, K., "Bleu: a method for automatic evaluation of machine translation", Proceedings of the 40th annual meeting of the Association for Computational Linguistics, pp.311~318 (2002)
  26. Price, T. W., "Position paper: Block-based programming should offer intelligent support for learners", 2017 IEEE Blocks and Beyond Workshop (B&B), pp.65~68 (2017)
  27. Radford, A., "Language models are unsupervised multitask learners", OpenAI blog, 1(8), pp.9~ (2019)
  28. 서정현, "성찰일지를 활용한 PBL 기반 초등학교 프로그래밍교육 교수·학습 전략 개발 및 적용", 정보교육학회논문지, 20(5), pp.465~474 (2016), 한국정보교육학회
  29. A Study on the Development Policy of AI and SW Talent in the Fourth Industrial Revolution, "Song, J. H.", SPRI, ~, pp.Reserch Report RE-101 (2021)
  30. Spacco, J., "Helping students appreciate test-driven development (TDD)", Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, pp.907~913 (2006)
  31. Sun, Z., "TreeGen: A Tree-Based Transformer Architecture for Code Generation", arXiv 2019, arXiv:1911.09983v2, ~ (2019)
  32. Sutskever, I., "Sequence to sequence learning with neural networks", Advances in neural information processing systems, pp.3104~3112 (2014)
  33. Trower, J., "Blockly language creation and applications: Visual programming for media computation and bluetooth robotics control", Proceedings of the 46th ACM Technical Symposium on Computer Science Education, pp.5~5 (2015)
  34. Vaswani, A., "Attention is all you need", Advances in neural information processing systems, pp.5998~6008 (2017)
  35. Von Wangenheim, C. G., "CodeMaster--Automatic Assessment and Grading of App Inventor and Snap! Programs", Informatics in Education, 17(1), pp.117~150 (2018)
  36. Vujošević-Janičić, M., "Software verification and graph similarity for automated evaluation of students’ assignments", Information and Software Technology, 55(6), pp.1004~1016 (2013)

관련 논문AI추천

이 간행물의 다른 논문 (6건)