온라인 평가 시스템에서 코딩 스타일 검사 시스템 구현
Implementation of a Coding Style Checking System in an Online Judge System
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
코딩 스타일을 준수하는 것은 코드의 가독성이 좋아지고, 테스트 및 유지 보수에 필요한 비용을 줄일 수 있어 기업과 개발자 모두에게 중요하다. 하지만 프로그래밍 언어 수업에서 코딩 스타일을 교육하는 데 어려움이 있다. 왜냐하면 코딩 스타일 학습을 위한 환경 구축도 힘들고, 초보자를위한 코딩 스타일 규칙이 따로 정의되어 있지 않다. 학습자 측에서는 코딩 스타일을 준수하지 않더라도 학점에 반영되지 않으므로, 학습의 필요성이별로 와닿지 않는다. 본 논문에서는 온라인 평가 시스템을 위한 코딩 스타일 검사 시스템을 소개한다. 제안 시스템은 C와 Java, Python 코딩 스타일을검사하고 평가할 수 있도록 구현하였다. 또한, 언어별 도구에서 제공하는 규칙 1,023개 중 23.08%인 234개를 반영하여 수업 진도에 따라 코딩스타일 규칙을 적용할 수 있게 하였으며, 기본 점수에 품질 점수를 추가로 부여하여 학습자들의 코딩 스타일 학습 동기를 부여하였다. 코딩 스타일교육 시스템을 도입한 후 최초 제출 시 점수가 1주 차에서 25점 이상을 받은 학생이 18명이었지만, 6주 차에서 44명으로 149.47% 증가했다. 학습자는코딩 스타일 검사 시스템을 이용하여 코딩 스타일 규칙을 적용하는 방법을 학습하고, 이후 코드를 구현할 때 제시한 코딩 스타일을 준수하여 코드를구현할 수 있었다.
Abstract
Adhering to coding style guidelines is crucial for both companies and developers as it improves code readability and reduces thecosts associated with testing and maintenance. However, teaching coding style in programming courses poses challenges. Setting up anenvironment for learning coding styles is hard, and there are no predefined coding style rules for beginners. From the learners' perspective,since adherence to coding styles does not affect their grades, they do not feel a strong need to learn them. This paper introduces acoding style checking system for an online evaluation system. The proposed system is implemented to check and evaluate coding stylesin C, Java, and Python. Additionally, we applied 234 out of the 1,023 rules provided by the language-specific tools, which is 23.08%,allowing for the application of coding style rules according to the course progression. Moreover, we motivated learners to improve theircoding style by adding quality scores to their basic scores. After introducing the coding style education system, the number of studentsscoring over 25 points on their initial submissions increased by 149.47%, from 18 students in the first week to 44 students in the sixthweek. Learners used the coding style checking system to learn how to apply coding style rules and subsequently implemented their codein adherence to the specified coding styles.
참고문헌 (23)
- X. Fang, "Using a coding standard to improve program quality", Proceedings Second Asia-Pacific Conference on Quality Software, pp.73~78 (2001)
- B. Boehm, "Software defect reduction top 10 list", Software engineering : Barry W. Boehm's Lifetime Contributions to Software Development, Management, and Research, 34(1), pp.75~78 (2007)
- R. E. Berry, "A style analysis of C programs", Communications of the ACM, 28(1), pp.80~88 (1985)
- T. D. LaToza, "Maintaining mental models : a study of developer work habits", Proceedings of the 28th International Conference on Software Engineering, pp.492~501 (2006)
- Y. Prokop, "Developing students’ code style skills", 2023 IEEE 18th International Conference on Computer Science and Information Technologies (CSIT), pp.1~4 (2023)
- T. C. Wooten, "Factors influencing student learning in introductory accounting classes : A comparison of tradi"tional and nontraditional students", Issues in Accounting Education, 13(2), pp.357~373 (1998)
- I. S. Seol, "Impact of a participative grading policy on students' effort for learning : A preliminary investigation", Journal of Social Sciences, 14(2), pp.263~276 (2008)
- "Cppcheck"[URL]
- "PC-lint Plus"[URL]
- "PMD"[URL]
- "Checkstyle"[URL]
- "Pylint"[URL]
- "Pyflakes"[URL]
- "DOMjudge"[URL]
- "HUSTOJ"[URL]
- X. Liu, "NeoESPA-A new evaluation system for programming assignments", Proceedings of the 14th International Conference on Electronics, Information, and Communication(ICEIC 2015) (2015)
- "Baekjoon Online Judge"[URL]
- "LeetCode"[URL]
- "programmers"[URL]
- "CodeSignal"[URL]
- "goormide"[URL]
- "LiveCode"[URL]
- "OneCompiler"[URL]
