DOI QR코드

DOI QR Code

A Study on the Intelligent Online Judging System Using User-Based Collaborative Filtering

  • Hyun Woo Kim (Songhak Elementary School) ;
  • Hye Jin Yun (Dept. of AI Convergence Education, Korea National University of Education) ;
  • Kwihoon Kim (Dept. of AI Convergence Education, Korea National University of Education)
  • Received : 2023.11.02
  • Accepted : 2023.12.14
  • Published : 2024.01.31

Abstract

With the active utilization of Online Judge (OJ) systems in the field of education, various studies utilizing learner data have emerged. This research proposes a problem recommendation based on a user-based collaborative filtering approach with learner data to support learners in their problem selection. Assistance in learners' problem selection within the OJ system is crucial for enhancing the effectiveness of education as it impacts the learning path. To achieve this, this system identifies learners with similar problem-solving tendencies and utilizes their problem-solving history. The proposed technique has been implemented on an OJ site in the fields of algorithms and programming, operated by the Chungbuk Education Research and Information Institute. The technique's service utility and usability were assessed through expert reviews using the Delphi technique. Additionally, it was piloted with site users, and an analysis of the ratio of correctness revealed approximately a 16% higher submission rate for recommended problems compared to the overall submissions. A survey targeting users who used the recommended problems yielded a 78% response rate, with the majority indicating that the feature was helpful. However, low selection rates of recommended problems and low response rates within the subset of users who used recommended problems highlight the need for future research focusing on improving accessibility, enhancing user feedback collection, and diversifying learner data analysis.

교육 분야에서 온라인 저지 시스템이 활발하게 활용됨에 따라 학습자 데이터를 활용하는 다양한 연구가 진행되고 있다. 본 연구에서는 학습자 데이터를 활용하여 학습자의 문제 선택을 지원할 수 있는 사용자 기반 협업 필터링 방식의 문제추천 기능을 제안한다. 온라인 저지 시스템에서 학습자의 문제 선택을 위한 지원은 그들의 향후 학습에 영향을 미치므로 교육의 효과성 제고를 위해 필요하다. 이를 위해 학습자의 문제풀이 성향과 유사한 학습자를 식별하고 그들의 문제풀이 이력을 활용한다. 제안 기능은 충북교육연구정보원에서 운영하는 알고리즘과 프로그래밍 관련 온라인 저지 사이트에 구현됐고, 서비스 유용성과 사용 편이성 측면에서 델파이 기법을 통한 전문가 검토를 수행했다. 또한 사이트 사용자 대상 시범 운영에서 바른코드 제출 비율을 분석한 결과 추천문제에 대해 제출한 경우가 전체 제출에 비해 16% 정도 높았고, 추천문제 사용자 대상 설문조사에서 '도움 된다' 응답은 78%였다. 시범 운영에서는 추천문제 선택과 사용자 피드백 관련 설문 응답 비율이 낮았으므로, 향후 연구과제로 제안 기능의 접근성 향상, 사용자 피드백 수집 및 학습자 데이터 분석 다각화 등을 제시했다.

Keywords

I. Introduction

온라인 저지(Online Judge) 시스템은 다양한 지역의 학습자에게 웹 기반의 안정적이고 신뢰할 수 있는 방식의 평가를 지속해서 제공할 목적으로 구축된다. 이와 같은 시스템이 개발되고 적용된 기간은 50년 이상이 되었지만, 활발한 활용은 최근 10여 년 동안 이루어졌다. 온라인 저지 시스템은 웹 응용 프로그램의 형태로 경진대회와 교육을 위한 도구로 확산됐는데, 이는 시스템 구축의 기반이 되는 다양한 플랫폼의 지원과 충분한 속도를 지원하는 안정적인 인터넷 환경으로 누구나 손쉽게 시스템에 접속할 수 있게 되었기 때문이다[1]. 온라인 저지 시스템은 기출 문제와 해당 답안, 학습자의 문제풀이 이력을 효율적으로 관리할 수 있도록 한다[2]. 따라서 학습자들은 온라인 저지 시스템에 접속할 수 있는 환경이라면 언제든지 다양한 학습 문제에 도전하여 실력을 향상시킬 수 있다.

온라인 저지 시스템의 특징으로 학습자 제출물에 대한 자동 채점과 일관되고 정확한 평가를 들 수 있다. 이는 온라인 저지 시스템의 교육적 활용에 대한 높은 관심으로 이어진다. 일반적으로 온라인 저지 시스템의 평가 절차는 제출-평가-채점의 세 단계로 구성된다. 각 단계를 간단히 살펴보면, ‘제출’ 단계에서 학습자가 제출한 코드에 대해 평가 환경에서 성공적으로 실행되는지를 검증한다. ‘평가’ 단계에서 제시된 문제의 테스트 사례를 기반으로 실행 과정에서의 오류 여부, 리소스 제한 및 출력 결과가 문제 정의에 따른 규칙 준수 여부를 확인한다. 이는 과제를 성공적으로 수행했는지를 판단할 수 있는 루브릭으로 작용한다. 마지막으로 ‘채점’ 단계에서는 평가 단계의 루브릭 기반의 채점 데이터를 바탕으로 점수를 집계한다. 이 과정에서 교정적인 피드백을 제공할 수 있다[1-5].

한편 교육 평가는 정확성과 함께 교육적 역할을 고려해야 한다. 학습자의 교육 목표 도달 정도의 확인, 평가 결과에 대한 적절한 정보 제공, 학습에서 부족한 부분의 보충 등이 교수·학습 질 개선을 위한 평가의 교육적 역할에 해당된다[6]. 이와 같은 측면에서, Han et al.은 온라인 저지 시스템에서 학습자의 수준과 시스템의 활용 목적 및 교육 과정을 고려한 평가 기법을 제안했다[7]. Chang은 온라인 저지 시스템을 프로그래밍 교육에 활용할 때 사고력뿐만 아니라 자기효능감 및 몰입과 같은 학습 동기에 긍정적인 영향을 미치는 교육 효과를 기대할 수 있다고 했다[3].

교육 효과성 제고를 위해 온라인 저지 시스템에 학습자가 활동할 때마다 축적되는 활동 기록과 응시한 문제의 평가 결과 등의 데이터를 활용하여 학습자를 분석하고, 그 결과를 활용하고자 하는 다양한 연구가 있다. 그중에는 학습자에게 문제를 추천하기 위한 연구가 있다[8-10]. 온라인 저지 시스템에는 수많은 문제가 탑재되어 있으므로 그 중에서 학습자에게 적절한 문제를 추천할 필요가 있기 때문이다. 특히 학습자가 스스로 문제를 선택하는 시스템이라면 어떤 문제가 추천되느냐에 따라 학습자의 향후 학습을 위한 문제 선택에 영향을 미치므로, 학습자가 스스로 적절한 문제를 선택할 수 있게 하는 지원이 필요하다.

본 논문에서는 학습자의 학습 문제 선택을 지원하는 방안으로 학습자 간의 문제 풀이 결과의 유사도를 활용하는 문제추천 기능을 제안한다. 제안 기능은 학습 문제를 선택하고자 하는 학습자와 유사한 학습 결과를 보이는 다른 학습자의 문제 풀이 결과를 이용한다. 이를 위해 사용자 기반 협업 필터링 기능을 활용한다. 협업 필터링(collaborative filtering) 기법은 시스템 내의 다른 사용자의 취향 정보나 선택 이력을 바탕으로 각 개인의 관심사가 될 항목을 예측한다. 사용자 기반 협업 필터링 시스템은 아이템의 특성 정보가 부족한 경우에도 추천할 수 있고, 색다른 아이템이 추천 목록에 오를 수 있어 추천의 참신성과 다양성을 높일 수 있다는 장점이 있다[11, 12]. 제안 기능은 충북교육연구정보원에서 운영하는 온라인 저지 시스템인 bitCode에 구현하고 시범 적용한다.

제안 기능은 다음과 같은 상황에서 활용할 수 있다. 첫째, 온라인 저지 시스템의 운영 정책 관점에서 시스템이 관리하는 문제의 특성이 매우 다양한 경우이다. 시스템의 문제 특성이 문제의 내용이나 출제자 등의 측면에서 다양하다면, 전체 문제에 대한 일괄적인 특성 정보를 부여하기에 어려움이 있기 때문이다. 둘째, 사용자의 가입·탈퇴·활동의 자유도가 높은 경우인데, 이 같은 경우 시스템에 누적되는 사용자 정보가 제한적이기 때문이다. 셋째, 기존의 문제 출제자가 정한 문제 추천 유형을 보완하여, 학습자의 학습 문제 선택 기준을 다양화하고자 하는 경우이다. 대부분의 온라인 저지 시스템은 주제나 난이도에 따라 문제를 범주화하여 학습자에게 제시하는데, 제안 기능을 통해 학습자 측면이 고려된 학습 문제의 선택 기준을 추가로 제공할 수 있다.

이 논문의 구성은 다음과 같다. 2장에서는 관련 연구에 관해 기술한다. 3장에서는 본 논문에서 제안하는 사용자 기반 협업 필터링 방식의 문제추천 기능의 구현에 관해 기술한다. 4장에서는 제안 기능을 적용한 결과로서 구현된 제안 기능에 대한 전문가 의견 수렴 결과와 시범 운영에 따른 기능 평가 결과를 제시한다. 마지막으로 5장에서 결론을 맺는다.

II. Related Works

1. Recommendation of the online teaching and learning system

온라인 저지를 비롯한 온라인 기반의 교수·학습 시스템에서 학습자를 위한 추천기능이 다양하게 제안되었다.

Lee는 협업적 문제추천 기능과 동적 출제 기능을 구현한 수학 교육을 위한 그래프 문제은행 시스템을 제안했다. 이 연구에서는 수학 과목의 그래프 영역의 학습 문제를 6가지 문제 유형과 유형별로 난이도를 상·중·하로 구분했다. 학습자 간 유사도를 나타낼 학습자별 벡터의 성분 값을 각 유형당 난이도별로 구했다. 이를 바탕으로 가장 유사도가 높은 3명을 선별하여 그들의 문제 풀이 이력을 참조하여 문제추천에 활용했다. 이 연구에서는 학습자를 대상으로 교사 추천 문제와 시스템 추천 문제에 대해 ‘본인의 실력에 도움이 되는 문제인지’ 여부와 ‘해당 문제를 다시 풀어 볼 필요가 있는지’ 여부를 설문조사했다[13].

Jun et al.은 협업 필터링을 활용하여 대학의 비교과 프로그램 추천 기법을 제안했다. 이를 위해 유사도 기반 기법인 아이템 기반과 사용자 기반 협업 필터링, 잠재 요인 기반의 행렬 인수분해 기법 3가지를 구현하고 비교했다. 해당 대학의 비교과 관련하여 기존에 등록 및 관리되고 있는 데이터를 실험 데이터로 활용했다. 연구에서 구현한 세모델의 추천 결과를 평균 제곱근 오차(root mean square error, RMSE)로 비교하여 해당 대학 데이터에 가장 적합한 모델을 제시하고자 했다[11].

Prisco et al.은 게임 플레이어 간에 승패에 따라 평점을 계산하는 Elo 평점(Elo rating) 시스템 기반의 확률 모델을 사용하여 학습자와 문제 관계를 모델링했다. 이 연구에서는 학생의 문제 풀이 제출을 한 건의 게임으로 간주하여 각 문제와 학습자의 Elo 평점을 계산하고, 학습자가 문제 풀이 결과를 제출할 때마다 그 제출물을 평가하여 Elo 평점을 업데이트했다. 그리고 이 평점 시스템을 기반으로 학습자에게 문제를 추천했다. 제안된 문제추천 기능은 컴퓨터공학과 1학년 학생 42명을 대상으로 알고리즘 분야 수업에 적용했다[9]. 이 기능은 개별 학습자와 각 문제 간의 상호 작용을 추적하여 평가하여 활용함으로써 개별 학습자의 문제 풀이 이력에 따라 문제를 추천한다.

Min은 블록체인 기반 스마트 컨트랙트(smart contract)를 적용한 학습자별 문제추천 시스템을 제안했다. 개별 학습자의 데이터 패턴을 분석하기 위해 학습자의 학습 데이터를 수집하고, 기준에 의해 학습 데이터 유효성 검증 및 학습패턴 데이터의 가중치를 계산하여 관리한다. 이렇게 관리된 학습자별 학습패턴 데이터를 바탕으로 문제를 추쳔한다. 제안 시스템은 C 프로그래밍 기초 과목을 수강하는 150명의 수강생에게 적용했다. 시스템에 탑재된 문제는 상·중·하의 난이도로 구분되고, 난이도별로 단답식, 객관식, 주관식으로 구성되었다. 학습자를 대상으로 ‘학습만족도’와 ‘문제추천 가이드의 유용성’에 대한 설문조사를 실시하고, 시스템에서 문항당 문제 해결시간과 데이터 처리 시간을 분석했다[10].

앞에 제시한 연구를 요약한 내용은 Table 1과 같다. 이상의 연구에서 추천기능을 구현할 때 대상 시스템에 누적된 사용자의 활동 정보를 다양한 방식으로 활용하고 있음을 알 수 있다. 즉, 사용자 간 정보를 활용하는 방식[11, 13]이나 사용자 내 정보를 활용하는 방식[9, 10] 등이다. 추천기능을 어떻게 구현할지는 온라인 교수·학습 시스템의 특성과 활용할 수 있는 데이터의 종류 및 특성, 그리고 구현하고자 하는 추천기능의 목적 등에 영향을 받게 된다.

Table 1. Summary of related works.

CPTSCQ_2024_v29n1_273_t0001.png 이미지

2. User-based collaborative filtering and cosine similarity

온라인의 다양한 유·무형 상품 유통 시스템에서는 추천시스템을 활용하고 있다. 목적은 사용자 취향에 근거한 상품 추천으로 사용자에게는 편리함을 제공하고, 판매자에게는 상품 홍보의 기회를 제공하기 위함이다. 추천 기법은 사용자 개인에게 맞게 필터링된 정보를 제공하여 사용자가 방대한 아이템 가운데서 자신이 원하는 아이템을 쉽게 찾을 수 있도록 한다. 다양한 추천 기법 중에 크게는 내용 기반(content-based) 추천과 협업 필터링 추천이 있다. 협업 필터링 추천은 가장 널리 사용되는 기법이며 타 사용자의 선택과 선호도를 기반으로 각 개인에게 선택 가능성이 큰 아이템을 추천한다. 협업 필터링 기법은 이웃 기반(neighborhood-based) 추천과 모델 기반(model-based) 추천으로 나뉜다. 이웃 기반 추천은 다시 사용자 기반(user-based) 추천과 아이템 기반(item-based) 추천으로 구분할 수 있다[12].

협업 필터링 추천은 두 사용자 u와 v가 다수의 아이템에 대해 유사하게 평가했다면, 새로운 아이템 i에 대한 u의 평점은 이 아이템에 대한 v의 평점과 유사할 것으로 가정한다. 이 방식의 장점은 아이템의 특성 정보가 충분치 않을 때도 타 사용자의 선택 이력 등을 통해 추천할 수 있고, 아이템 정보와 함께 타 사용자의 선택 이력을 활용하므로 선택에 대한 품질이 일정 정도 보장되며, 색다른 아이템이 추천될 여지가 있다는 점 등이 있다. 이 중에서 사용자 기반 추천은 사용자 u에게 아이템 i에 대한 추천 여부를 판단할 때 다른 아이템에 대한 평가 성향이 u와 가장 비슷한 유사 사용자들(neighbors)을 선정하고, 이들의 아이템 i에 대한 평점을 참고한다[12, 14, 15].

사용자 기반 협업 필터링 추천의 동작 방식은 다음과 같다. 첫째, 사용자-아이템 행렬을 구성한다. 이는 사용자와 아이템 간의 평점을 2차원 행렬화한 것이다. 둘째, 유사 사용자를 선정한다. 앞에서의 사용자-아이템 행렬을 이용하여 사용자 간의 유사도를 계산한다. 각 사용자 u에 대해 유사도가 가장 큰 순서대로 k명(k-Nearest Neighbor)을 선정한다. 마지막으로, 아이템을 추천한다. 앞에서 선정한 이웃 사용자 k명이 높은 평점을 주었던 아이템을 추천 후보로 선정하고 순서대로 추천한다. 추천 후보는 사용자 u의 구매 이력에 포함되지 않은 아이템에 한한다[15-17].

협업 필터링 추천 시스템의 핵심 단계는 유사 사용자 선정 단계이다. 유사 사용자 선정을 위해 사용자 간 유사도를 측정해야 하며, 주로 피어슨 유사도, 코사인 유사도, 자카드 유사도 등을 사용한다[16, 17]. 데이터 특성에 따라 이 중에서 적합한 유사도 측정 방법을 선택하게 된다.

이 중에서 코사인 유사도는 비교하려는 두 데이터를 공간의 벡터로 표시할 수 있을 때 두 벡터가 이루는 각도의 코사인 값으로 유사도를 측정한다. 사용자 u와 v 모두가 평가한 q개 아이템에 대한 평점 데이터가 있다면, 이를 q차원의 벡터 \(\begin{align}\vec{u}\end{align}\)\(\begin{align}\vec{v}\end{align}\)라고 할 수 있다. 이 두 벡터 사이의 코사인 유사도를 구하는 수식은 다음과 같다[12, 16].

\(\begin{align}\cos (\vec{u}, \vec{v})=\frac{\vec{u} \cdot \vec{v}}{\|\vec{u}\| \times\|\vec{v}\|}\end{align}\)

Eq. 1. Cosine similarity[12].

여기에서 \(\begin{align}\vec{u} \cdot \vec{v}=\sum_{i=1}^{q}\left(r_{u i} \times r_{v i}\right)\end{align}\)는 두 벡터의 내적을 의미하고, \(\begin{align}\|\vec{u}\|=\sqrt{\sum_{i=1}^{q} r_{u i}^{2}}, \quad\|\vec{v}\|=\sqrt{\sum_{i=1}^{q} r_{v i}^{2}}\end{align}\)는 각 벡터의 크기를 의미한다. rui,rvi(1≤i≤q)는 벡터 \(\begin{align}\vec{u}\end{align}\)\(\begin{align}\vec{v}\end{align}\)의 각 성분 값을 의미한다. 코사인 값의 범위는 –1 ~ +1인데, +1에 가까울수록 유사도가 높다. 코사인 유사도는 벡터의 차원이 높아져도 적용할 수 있고, 비교 대상 벡터의 방향만을 고려하므로 벡터의 크기 차이가 큰 상황에도 사용할 수 있는 것이 장점이다[12, 18].

III. The Proposed Scheme

1. ‘bitCode’, the Online Judge Site of Chungcheongbuk-do

충북교육연구정보원에서는 학생들의 알고리즘·프로그래밍 학습과 충북정보올림피아드(Chungcheongbuk-do Olympiad in Informatics, COI) 운영 목적으로 온라인 저지 시스템인 bitCode(https://coding.cberi.go.kr, 이하 ‘bitCode’)[19]를 구축·운영하고 있다. 이 사이트는 가입과 탈퇴가 자유롭고, 1명이 계정을 여러 개 만들 수 있다. bitCode에서 관리하는 문제 유형은 bitCode 관리자가 등록한 ‘공식문제’, 선생님 권한의 회원이 등록한 ‘선생님 문제’, 개인회원이 등록한 ‘회원문제’, 타 대회의 ‘기출문제’ 등으로 다양하다. bitCode에서는 학습자의 제출 코드가 해당 문제의 모든 테스트 케이스에 올바른 값을 출력한 경우 ‘바른코드’로 표시한다. 반면, 제출 코드가 해당 문제의 일부 케이스에만 올바른 값을 출력할 때는 ‘옳지않은코드’로 표시하고, 그 외에도 학습자의 코드 제출 유형에 따라 ‘응답없음, 시간초과’ 등으로 표시한다. bitCode의 주요 화면으로 ‘문제목록’ 화면, ‘문제풀기’ 화면, ‘문제풀이 현황’ 화면 등이 있다. Fig. 1은 메인화면이다.

CPTSCQ_2024_v29n1_273_f0001.png 이미지

Fig. 1. bitCode main page(https://coding.cberi.go.kr).

‘문제목록’ 화면에서는 한 화면에 문제를 10개씩 제시한다. Fig. 2는 문제목록 화면에서 개별 문제의 표출 예시이다. 왼쪽의 문제번호(그림에서 ‘1102’), 학습문제의 제목(‘음료 시식’), 숫자 지표로서 차례로 ‘바른코드 제출개수()’, ‘전체코드 제출개수(JAKO202407845767085_277.png 이미지)’, ‘문제풀이 성공률(%)’ 등을 제시한다.

CPTSCQ_2024_v29n1_273_f0003.png 이미지

Fig. 2. Sample of a problem in the bitCode

Fig. 2의 각 항목을 살펴보면 다음과 같다. ‘바른코드 제출개수’는 이 문제에 대해 사용자들이 올바른 코드를 제출하여 정답과 맞춘 개수를 의미한다. ‘전체코드 제출개수’는 문제 풀이 횟수를 모두 합친 값이다. ‘문제풀이 성공률’은 ‘바른코드 개수/전체코드 개수*100’ 값을 반올림하여 백분율로 나타낸 것이다. 가장 오른쪽의 ‘문제풀기>’를 클릭하면 해당 문제의 ‘문제풀기’ 화면으로 이동한다. 한편, ‘문제풀기’ 화면은 문제, 입력형식, 출력형식, 입·출력 예시데이터로 구성되어 있다. 문제를 풀기 원하는 사용자는 로그인해야 한다.

‘문제풀이 현황’은 학습자별로 확인할 수 있는 정량적인 지표를 정리한 화면이다. Fig. 3의 화면 구성으로 학습자별 전체 학습문제에 대한 바른코드 개수, 전체코드 제출개수, 전체 학습문제 풀이 시도에 따른 성공률을 제공한다. 그 외에도 학습자의 문제 풀이결과에 따라 ‘옳지않은코드, 응답없음, 시간초과’ 등의 유형별 정량적 정보를 제공한다.

CPTSCQ_2024_v29n1_273_f0003.png 이미지

Fig. 3. Sample summary of the user's problem-solving results

2. Research procedure and methods

본 연구의 목적은 충북교육연구정보원의 온라인 저지 시스템인 bitCode에서 학습자의 수준에 맞는 문제추천 기능을 개발하고 적용하고자 하는 것이다. 이를 위한 연구 절차는 Fig. 4와 같다.

CPTSCQ_2024_v29n1_273_f0004.png 이미지

Fig. 4. Research procedure

가장 먼저 제안 기능의 개발을 위한 계획을 수립하고, 제안 기능이 반영된 프로그램의 시안을 개발했다. 각 학습자의 문제풀이 수준을 고려한 문제추천을 위해 학습자 수준이 비슷하다면 풀 수 있는 학습 문제가 비슷할 것으로 간주했다. 유사한 문제풀이 특성을 가진 타 학습자의 정보를 활용하고자 했으므로, 이를 구현하기 위해 사용자 기반 협업 필터링 방식을 적용했다. 협업 필터링 방식을 적용한 쇼핑몰의 예를 들자면, 어떤 구매자가 특정 아이템을 선택하면, 추천 시스템은 타 구매자의 아이템 선정 이력과 선호도를 바탕으로 대상 구매자가 선택할 가능성이 큰 아이템을 연관 아이템으로 추천한다[12]. 이를 온라인 저지 시스템에 반영하기 위해, 학습문제는 쇼핑몰의 판매 아이템으로, 학습자는 쇼핑몰의 구매자로 간주했다. 다음으로 어떤 학습자(u)가 어떤 학습문제(p)를 풀고 정답을 제출한 상태(시스템에서는 ‘풀이완료’ 상태)에 대해 쇼핑몰의 구매 완료한 상태로 간주했다.

다음으로 구현 방향은 다음과 같다. 첫째, ‘학습문제’는 bitCode에 등록된 문제 중 서비스 중인 문제의 정보를 활용했다. 둘째, ‘풀이완료’ 데이터는 회원가입한 사용자의 학습결과 데이터를 활용했다. 셋째, 유사도 자료화 및 업데이트는 사용자 기반 협업 필터링 알고리즘 활용하여 학습자(u)에 대해 학습결과에서 유사도를 보이는 타 학습자를 추출하여 데이터베이스화하고 하루 1회 업데이트했다. 넷째, ‘문제추천’ 기능은 학습자 u의 정보에 기반하며, 학습자 u가 bitCode에 로그인했을 때 메인화면과 문제목록 페이지에 제시되도록 했다. 다섯째, ‘추천문제’ 표시 방식은 다른 일반문제 목록과 구별되도록 시각화(배경을 푸른색으로 하고, 추천문제라는 안내가 보이도록 함)했다. 여 섯째, 학습자의 추천기능 만족도 확인을 위해 학습자가 추천문제를 푼 후에 추천기능이 도움 되었는지를 확인하는 설문조사 기능을 구현했다. 구현 과정에서 데이터베이스에서의 필요 속성 추출 작업, 사용자-아이템 행렬 구성 작업, 유사도 분석 후 결과값에 대한 데이터베이스 업데이트 작업은 파이썬을 활용하여 수행했다. 해당 작업은 Google colaboratory에서 구현했으며, Pandas 2.0.3, Sklearn 1.3, Pymysql 1.1.0 라이브러리를 활용했다. 화면 표출 관련은 PHP를 통해 구현했다.

구현된 제안 기능의 시안에 대한 전문가 의견 수렴을 위해 델파이 기법을 활용했다. 델파이 기법은 특정 사안에 대해 전문가 그룹의 견해를 종합하여 신뢰성 있는 합의를 얻고자 할 때 적용한다. 이를 위해 설문지와 인터뷰를 활용하여 개별 전문가에게 질문하고 응답 정보를 수집 및 정제하는 과정을 반복한다. 이때 전문가들에게는 이전 차시 설문에 대한 통제된 피드백을 제공한다. 델파이 기법은 전문가들간 비접촉 및 익명성을 특징으로 한다[20].

본 연구에서는 충청북도의 텍스트 코딩 교육 경험이 있는 교사 10인을 대상으로 하여 ‘서비스 유용성’ 및 ‘사용의 편의성’ 측면(Likert 5점 척도)과 기타 의견(자유 서술)에 대해 의견을 수렴했다. 총 2회의 타당화 과정을 통해 목표한 합의도에 도달했으며, 이를 바탕으로 시안을 수정 및 보완했다. 전문가 대상 설문조사의 결과 분석은 Excel을 이용했고, 평균, 표준편차, 내용타당도 비율(Content validity ratio, 이하 CVR)을 산출했다. CVR은 설문 내용의 타당도와 패널의 의견 간 일치도 비율을 의미한다. CVR 산출식과 합의도 도달 판단 기준값은 Lawshe의 연구를 활용했다. 설문 참여자 10명에 대한 CVR 최솟값은 0.62이다. CVR 산출식은 다음과 같다[21].

\(\begin{align}C V R=\frac{n_{e}-N / 2}{N / 2}\end{align}\)

Eq. 2. Content validity ratio (CVR)[21].

여기에서 N은 총응답자 수를 의미하고, ne는 긍정 응답자 수를 의미한다. 본 연구에서는 5점 Likert 척도를 사용했으므로, ‘4(그렇다)’와 ‘5(매우 그렇다)’를 응답한 인원수를 의미한다.

전문가 의견을 반영한 문제추천 기능의 수정본에 대해 학습자의 의견을 수렴했다. 조사 기간은 2023년 4월 4일 ~ 6월 20일(2개월간)이고, 조사 대상은 bitCode 사이트의 사용자이다. 조사 방법은 학습자가 bitCode에서 추천문제를 푼 후 직접 평가하도록 했으며, 조사 항목은 해당 문제에 대해 ‘도움이 되었어요/도움이 안 됐어요’ 둘 중 하나를 선택하도록 했다. 학습성취도 비교를 위해 학습문제 추천기능 사용자와 비사용자 간 학습성취 정도를 정량적으로 비교했다.

3. Implementation of the proposed problem recommendation

제안 기법은 사용자-아이템 행렬 구성, 유사 특성을 나타내는 타 사용자 선정, 문제추천의 3단계로 이루어진다. Fig.5는 제안 기법의 주요 3단계를 나타낸다.

CPTSCQ_2024_v29n1_273_f0005.png 이미지

Fig. 5. Key steps for implementing the proposed problem recommendation function.

3.1. Creating the User-Item Matrix

사용자-아이템 행렬 구성을 위한 절차는 다음과 같다. 첫째, 사용자-아이템 행렬 구성을 위한 필요 속성으로 ‘문제id’, ‘사용자id’, ‘채점결과’를 선정하고, 이를 바탕으로 기본 데이터 테이블을 구성한다. 둘째, 앞에서 구성한 테이블에서 ‘채점결과’ 속성값을 다음과 같이 처리한다. 기존 ‘채점결과’ 속성값은 ‘4(바른코드)’, ‘null(풀지 못함)’, ‘1~13(나머지 문제 풀이 결과 유형)’ 등으로 표시된다. 이를 ‘바른코드’ 여부에 따라 ‘1(바른코드)’과 ‘0(나머지)’으로 변경한다. 마지막으로, 사용자-아이템 행렬을 구성한다. 이는 사용자별로 모든 학습문제에 대한 채점결과를 바른코드 제출 여부에 따라 1과 0으로 표시한 행렬이다. 사용자-아이템 행렬의 예시는 Fig. 6과 같다.

CPTSCQ_2024_v29n1_273_f0006.png 이미지

Fig. 6. Sample of user-item matrix.

3.2. Selecting Similar Users

유사 특성의 타 사용자 선정을 위한 절차는 코사인 유사도 계산 과정과 유사도 기반 학습자 추천 과정으로 구성된다. 이 과정을 거쳐 유사도가 높은 상위 5명의 타 학습자의 user_id를 추출한다.

첫째, 3.1.절을 통해 구성한 사용자-아이템 행렬을 활용하여 코사인 유사도를 계산하고, 이것을 행렬 형태로 변환한다. 코사인 유사도 계산의 결과값은 –1~1 범위의 값을 가지며, 결과값이 1에 가까울수록 유사도가 높은 것으로 해석한다. Fig. 7은 코사인 유사도 계산 및 행렬화한 결과의 예시이다.

CPTSCQ_2024_v29n1_273_f0007.png 이미지

Fig. 7. Sample matrix of calculated cosine similarity results.

둘째, 유사도 결과값을 바탕으로 학습자 user_id에 대한 유사도가 높은 학습자 상위 5명의 user_id를 추출한다. 유사도 분석 결과를 위한 ‘유사도분석결과’ 테이블을 데이터베이스에 추가하고 1일 1회 유사도 분석을 실시하여 업데이트하도록 했다. 유사도분석결과 테이블의 속성은 Table 2와 같다.

Table 2. Description of the similarity result table in the database.

CPTSCQ_2024_v29n1_273_t0002.png 이미지

Fig. 8은 ’poicroo’라는 사용자를 기준으로 유사도가 높은 학습자 5명을 추출한 결과를 나타낸다.

CPTSCQ_2024_v29n1_273_f0008.png 이미지

Fig. 8. Sample similarity analysis results with user_id=’poicroo’.

3.3. Recommending Problems

앞에서 유사도가 높은 순서로 5명의 타 학습자를 추출하고, 이들의 문제풀이 정보를 바탕으로 추천 문제를 선정하고 해당 문제를 Fig. 9와 같이 화면에 표출한다. 학습자 user_id와 유사도가 높은 타 학습자의 순서대로 바른코드를 제출한 문제의 정보를 불러오고, 학습자 user_id의 문제풀이 결과(바른코드 제출 여부)와 비교한다. 아직 바른코드를 제출하지 않은 문제가 있다면, 해당 문제를 추천문제로 제시한다.

CPTSCQ_2024_v29n1_273_f0009.png 이미지

Fig. 9. Draft of the proposed problem recommendation.

Fig. 10은 추천문제 선정에 관한 정보를 제공하는 화면으로, Fig. 9의 하단에 있는 ‘왜 이 문제가 추천되었나요?’라는 클릭 항목을 눌렀을 때 표출된다. 여기에서는 유사도가 높은 다른 학습자와 그들의 문제풀이 이력을 보인다. 문제 번호를 두 가지 색으로 표시하는데, 학습자 user_id를 기준으로 학습자가 바른코드를 제출한 문제는 검은색으로, 제출하지 않은 문제는 빨간색으로 표시한다.

CPTSCQ_2024_v29n1_273_f0010.png 이미지

Fig. 10. Pop-up window to provide information about the recommended problem.

IV. Results

1. Results of Delphi Research

구현된 기능 시안의 서비스 유용성과 사용 편이성 측면의 타당성을 검증하기 위해 델파이 기법을 활용했다. 패널로 참여할 전문가의 요건으로, 첫째, 초중등 교사를 대상으로 하고, 둘째, 초중등 학생 대상 텍스트 코딩 교육 경험의 보유, 셋째, 온라인 저지 활용 경험 보유, 넷째, 온라인 저지 관련 학생 지도 경험 보유로 두었다. 델파이 기법은 연구에 참여한 패널 간의 의견이 연구자가 사전에 정한 합의도 판단 기준에 도달할 때까지 설문을 반복하여 진행한다. 따라서 여러 차례 반복할 수 있는 설문에 중도 이탈하지 않고 참여할 수 있는지도 패널 선정을 위한 중요한 요건에 포함된다. 이와 같은 요건을 만족하는 충북지역의 교사 10명을 섭외했다.

1차 조사의 설문지는 전문가의 기본 정보 영역(Section I), 서비스 유용성 영역(Section II), 사용 편의성 영역과 기타 의견(Section III)으로 구성했다. 전문가의 기본 정보는 Table 3과 같다.

Table 3. Demographic profiles of Delphi panels (n=10).

CPTSCQ_2024_v29n1_273_t0003.png 이미지

서비스 유용성과 사용 편이성 영역의 문항은 Likert 5점 척도로 응답하도록 했고, 기타 의견은 자유 서술 방식으로 의견을 제시하도록 했다. 1차 델파이 설문 문항은 Table 4와 같다.

Table 4. Delphi (round 1) questions.

CPTSCQ_2024_v29n1_273_t0004.png 이미지

1차 조사 결과를 검토하여 1차 기능 시안의 수정·보완 방향성을 정하고, 해당 부분을 반영하여 2차 기능 시안을 구현했다. 2차 조사에서는 패널들에게 1차 조사의 결과를 요약 제시하고, 2차 기능 시안과 1차 조사의 결과를 바탕으로 조정된 설문 문항을 제시했다.

1차 설문 분석 결과는 Table 5와 같이 정리했다. Ques.no, M, SD, CVR, Agreement는 각각 문항번호, 평균, 표준편차, 내용타당도 비율, 합의 도달 여부를 의미한다. ‘서비스 유용성’ 영역에 대한 전문가의 응답을 살펴보면, [2-1], [2-2], [2-3] 문항은 합의 평가의 양적 기준인 CVR 기준인 0.62를 만족했으나, [2-4] 문항은 CVR 기준을 만족하지 못했다. 그 이유에 대해 문항에 제시한 ‘학습자의 수준 분류 없이(상·중·하)’라는 표현에서 ‘학습자의 수준 고려’의 의미가 배제된 것으로 인식될 수 있다는 점에서 문항의 모호성을 개선할 필요가 있었다.

Table 5. Descriptive statistics and CVR of Delphi round 1.

CPTSCQ_2024_v29n1_273_t0005.png 이미지

‘사용 편의성’ 영역에 대한 전문가의 응답을 살펴보면, [3-1], [3-2], [3-4] 문항에 대해서는 CVR 기준을 만족했으나, [3-3] 문항에 대해서는 CVR 기준을 만족하지 못했다. 추천문제 제시 방식에 대해서는 ‘기타 의견’ 영역에 다양하게 제시되었으며, ‘제시된 추천 방식 표출이 더 두드러지게 하는 것’, ‘한 번에 여러 항목의 문제추천을 하는 것’, ‘문제추천을 연속해서 하는 것’ 등이 있다.

델파이 1차 분석 결과를 바탕으로 기능 구현 시안의 개선 방향을 다음과 같이 정했다. 추천문제 제공 방식과 관련하여, 첫째, ‘추천문제’ 메뉴탭을 신설하고, 둘째 해당 메뉴에서 추천문제를 10개까지 제시했다. 셋째, 추천문제를 선택하여 풀면 다음 추천문제를 제공하도록 했다. 넷째, 사용자가 추천문제를 풀고 나면 해당 문제에 대한 피드백을 할 수 있도록 했다. 이를 반영하여 2차 기능 시안을 구현했다. Fig. 11은 추천문제 제공에 관한 기능 구현의 개선된 화면이고, Fig. 12는 추천문제를 선택한 사용자가 코드 제출 후에 채점 결과를 확인하면서 피드백을 할 수 있도록 한 화면이다. 이를 바탕으로 ‘서비스 유용성’과 ‘사용의 편의성’ 영역에서 질문을 재구성하여 2차 조사를 했다.

CPTSCQ_2024_v29n1_273_f0011.png 이미지

Fig. 11. Sample for the recommended problem list.

CPTSCQ_2024_v29n1_273_f0012.png 이미지

Fig. 12. Survey to get user feedback on recommended problems.

2차 델파이 설문 문항은 Table 6과 같다. 설문 분석 결과는 Table 7과 같이 정리했다. Ques.no, M, SD, CVR, Agreement는 각각 문항번호, 평균, 표준편차, 내용타당도 비율, 합의 도달 여부를 의미한다. ‘서비스 유용성’ 영역의 1문항과 ‘사용 편의성’ 영역의 2문항에 대해 합의 평가의 양적 기준인 CVR 기준을 만족했다. 이에 델파이 조사는 2차에서 완료했다.

Table 6. Delphi (round 2) questions.

CPTSCQ_2024_v29n1_273_t0006.png 이미지

Table 7. Descriptive statistics and CVR of Delphi round 2.

CPTSCQ_2024_v29n1_273_t0007.png 이미지

‘기타 의견’에서 추천문제 표출 방식에 대한 의견이 다양하게 제시되었다. 이를 바탕으로 한 향후 기능 개선 방향은 다음과 같다. 첫째, 추천문제 메뉴의 접근성을 개선한다. 둘째, 각 추천문제에는 문제의 출제 분야 및 난이도와 같은 추가 정보를 제공하기 위해 태그를 활용한다. 셋째, 학습 효과를 고려하여 추천문제의 표출 개수를 적절하게 제한한다. 추가로 학습데이터가 누적되면 추천기능이 더 정교해질 것으로 기대하는 의견이 있었다.

2. Results of the pilot application for users

제안 기능을 평가하기 위해 2023년 4월 4일 ~ 6월 20일(2개월간) 동안 bitCode에 문제추천 기능을 시범 적용했다. 그 기간 총 23,512건의 코드가 제출되었다. 그중에서 추천문제에 대한 코드 제출은 1,167건으로 5.0% 비율이었다. 이를 바탕으로 첫째, 학습자의 문제풀이 제출기록을 바탕으로 추천기능 사용자와 비사용자 간의 바른코드 비율을 분석했다. 둘째, 추천문제의 풀이를 제출한 사용자에 대한 설문 의견을 수렴했다. 사용자는 각 추천문제에 대해 1회만 평가하도록 했다.

2.1. Ratio of correctness

추천기능 사용자와 비사용자 사이의 학습성취 정도 비교를 위해 사용자 문제풀이 제출기록을 바탕으로 바른코드 비율을 비교했다. Table 8을 살펴보면, 전체 제출 건수에 대한 바른코드 비율은 42.1%(0-C)이고, 추천문제를 사용하지 않은 경우 바른코드 비율은 42.3%(1-C)로 두 경우는 비슷하다. 이와 비교하여 추천문제 사용에 대한 바른코드 비율은 58.0%(2-C)로 앞의 두 경우와 비교하여 16% 정도 높은 수치를 나타냄을 알 수 있다. 다음 Fig. 13에서는 0. 전체 제출 건수, 1. 추천문제 사용 안함, 2. 추천문제 사용의 각 경우에 대해 각각 바른코드 제출 빈도(파란색)와 옳지않은코드 제출 빈도(주황색)를 표시했다. 2. 추천문제를 사용한 경우가 다른 경우에 비해 바른코드의 비율이 높은 것을 확인할 수 있다.

CPTSCQ_2024_v29n1_273_f0013.png 이미지

Fig. 13. Frequency of correct code and not correct code: (Left) 0.total use, (middle) 1.not use the recommended problems, (right) 2.use the recommended problems.

Table 8. User feedback analysis during the pilot operation period (2023.4.4-6.20).

CPTSCQ_2024_v29n1_273_t0008.png 이미지

2.2. User feedback by survey

다음은 추천문제의 풀이를 제출한 사용자들의 설문 결과이다. 사용자가 추천문제를 선택하여 풀면 앞의 Fig 12와 같은 추천문제가 ‘도움이 되었어요/안 됐어요’를 선택할 수 있는 화면이 제시된다. 사용자는 자발적으로 설문에참여할 수 있다. 추천문제 풀이를 제출한 사용자 중에서 설문에 응답한 건수는 142건(2.1.1-A + 2.1.2-A)으로 전체 추천문제 사용 건수 대비 12.2%였다. 142건의 응답에서 문제추천 기능이 ‘도움 된다’는 의견은 111건(2.1.1-A)으로 응답의 78.2%였고, ‘도움 안 된다’ 의견은 31건(2.1.2-A)으로 응답의 21.8%였다. ‘도움 된다’는 응답 111건에서 바른코드 제출은 107건(2.1.1-B)으로 96.4%의 비율을 보였다.

Fig. 14에서는 사용자 피드백 결과를 전체 응답에 대해서와 바른코드 제출 경우에 대해 살펴보았다. ‘도움 된다’ 응답의 비율은 피드백 전체 제출에 대해 78.2%이고, 바른 코드 제출 경우에 대해 85.6%이다. 사용자들은 높은 비율로 추천문제가 도움이 된다고 응답하였고, 바른코드 제출자의 경우 도움이 된다는 응답 비율이 더 높았다.

CPTSCQ_2024_v29n1_273_f0014.png 이미지

Fig. 14. Frequency of 'helpful' and 'unhelpful' responses in the user feedback (Left) case of submission, (right) freq. of correct code.

V. Conclusions

온라인 저지 시스템은 목적에 부합한 구축과 안정적인 운영을 지원하는 환경을 바탕으로 교육 현장에 활발히 적용되고 있으며, 이를 통해 교육적 효과 향상을 기대하고 있다. 이를 위해 학습자가 시스템에 접속하고 활동할 때마다 누적되는 다양한 데이터를 활용하여 학습자를 분석하고 학습자에게 맞춤 서비스를 제공하기 위한 다방면의 연구가 제시되고 있다. 그중에서도 학습자를 위한 문제추천에 관한 연구는 시스템에 탑재된 수많은 문제 중에서 학습자가 자신의 학습에 도움이 되는 적절한 문제를 선택할 수 있게 하는 지원 도구의 필요성에 기인한다.

본 논문에서는 학습자에게 문제추천을 위한 방안으로 사용자 기반 협업 필터링 방식을 적용한 문제추천 기능을 제안했다. 제안 기법은 학습자의 문제풀이 성향 관점에서 유사도가 높은 타 학습자를 선별하고 그들의 문제 학습 이력을 참조했다. 제안 기능은 충북교육연구정보원의 온라인 저지 시스템인 bitCode에 구현했다. 1차 구현안에 대해 전문가의 타당성 검증을 거치고 의견을 반영한 2차 구현안에 대해 시범 운영했다. 이 기간에 사용자의 자기보고 방식의 설문을 진행했다. 시범 운영 기간 전체 코드 제출에 대한 바른코드 비율에 비교하여 추천문제를 선택한 경우의 바른코드 제출 비율이 16% 정도 높았다. 추천문제 사용자 중에서 피드백 제출자의 78.2%는 추천문제가 도움된다는 응답을 했다.

제안 기능을 구현한 bitCode 사이트는 사용자의 가입 및 참여가 자유롭고, 관리자뿐만 아니라 여러 주체가 문제를 출제할 수 있으며, 다양한 기출문제를 제공한다. 즉, 운영 정책의 측면에서 전반적으로 자유도가 높은 시스템이라고 할 수 있다. 제안 기법은 학습자에 대해 관리할 수 있는 정보가 제한적이고, 문제 특성을 세세히 규정하기 어려운 시스템 조건의 시스템에 대해 학습자 특성을 반영한 문제추천을 하고자 할 때 적합하다고 할 수 있다.

연구 결과의 해석에 대한 한계와 향후 연구 과제는 다음과 같다. 첫째, 시범 운영 기간에 전체 사용 횟수에 대비해 문제추천 기능의 사용 횟수가 5% 정도로 낮았다. 이는 제안 기능의 표출 방식과 설명 등이 학습자에게 이목을 끌기에 충분치 않았기 때문으로 분석된다. 델파이 연구 참여의 전문가들이 추천문제 메뉴 접근성과 추천문제 각각에 대한 부가 정보 제공 등의에 대해 의견을 제시한 것이 이와 관련된 향후 연구 과제가 될 것이다. 이를 통해 문제추천을 세밀화하고 학생의 도전의식을 자극하는 등의 효과를 기대할 수 있을 것이다. 둘째, 추천문제를 사용한 경우에 설문 응답의 비율이 12.2% 정도로 낮았다. 이는 사용자의 응답을 받는 방식이 자발적이었으므로 응답의 강제성이나 응답을 통해 얻을 수 있는 인센티브가 없었기 때문으로 보인다. 사용자가 제안 기능에 대한 인식 및 반응은 해당 기능의 효과성 분석과 향후 개선 방향성에 필요한 자료이므로, 사용자의 설문 응답률을 높이는 방안이 필요하다. 셋째, 본 연구에서는 시범 운영 기간에 수집한 자료 전체를 한 세트의 자료로 상정하여 분석을 진행했다. 따라서 자료를 해석하는 방식의 다양화가 필요하다. 예를 들자면, 시계열의 측면에서 추천기능 사용의 빈도와 바른코드 비율의 변화를 살펴본다거나, 학습자 개인의 차원에서의 추천 기능 사용에 따른 다른 학습자와의 차이를 살펴볼 수 있을 것이다. 설문에 대한 긍정 및 부정 응답의 의미를 심층적으로 해석하는 방안도 강구할 수 있을 것이다. 이와 관련해서는 학습 데이터의 누적으로 더 정교한 추천기능을 구현할 수 있을 것으로 기대했던 전문가의 의견을 연계하여 향후 연구 방안을 고려할 수 있다. 학습성취도 및 만족도를 정밀하게 측정하는 등의 방안으로 학습자의 특징을 더 잘 드러낼 수 있도록 학습 데이터를 다각화하여 활용할 수 있을 것이다.

ACKNOWLEDGEMENT

This work was supported by the National Research Foundation of Korea(NRF) grant funded by the Korea government(MSIT) (No. 2021R1G1A109330611).

References

  1. S. Wasik, M. Antczak, J. Badura, A. Laskowski and T. Sternal, "A survey on online judge systems and their applications," ACM Computing Surveys (CSUR), vol. 51, no. 1, pp. 1-34. 2018. DOI: https://doi.org/10.1145/3143560 
  2. A. Kurnia, A. Lim and B. Cheang, "Online judge," Computers & Education, vol. 36, no. 4, pp. 299-315. 2001. https://doi.org/10.1016/S0360-1315(01)00018-5 
  3. W. Y. Chang, "Causal relationship between learning motivation and thinking in programming education using online evaluation tool," Journal of the Korean Association of Information Education, vol. 24, no. 4, pp. 379-390. 2020. DOI : 10.14352/jkaie.2020.24.4.379 
  4. Y. Watanobe, M. M. Rahman, T. Matsumoto, U. K. Rage and P. Ravikumar, "Online judge system: Requirements, architecture, and experiences," International Journal of Software Engineering and Knowledge Engineering, vol. 32, no. 06, pp. 917-946. 2022. https://doi.org/10.1142/S0218194022500346 
  5. J. R. Rico-Juan, V. M. Sanchez-Cartagena, J. J. Valero-Mas and A. J. Gallego, "Identifying Student Profiles Within Online Judge Systems Using Explainable Artificial Intelligence," IEEE Transactions on Learning Technologies. 2023. DOI: 10.1109/TLT.2023.3239110 
  6. Ministry of Education, "The General Theory of the Elementary and Secondary School. Notification No. 2022-33 of the Ministry of Education [Supplement1]." 2022. 
  7. S. Han, and X. Liu, and G. Woo, "Evaluation Methods and Classification of Online Judge Systems Based on Education Level and Purpose," KIISE Transactions on Computing Practices, vol. 28, no. 10, pp. 487-492. 2022. DOI : 10.5626/KTCP.2022.28.10.487. 
  8. D. M. Muepu, A. Shirafuji, M. F. I. Amin and Y. Watanobe, "Similar Problems Recommendation Model to Support Programming Education,", In 2023 11th International Conference on Information and Education Technology (ICIET), pp. 199-203. 2023. DOI: 10.1109/ICIET56899.2023.10111135 
  9. A. Prisco, R. dos Santos, A Nolibos, S. Botelho, N. Tonin and J. Bez, "Evaluating a programming problem recommendation model-a classroom personalization experiment," In 2020 IEEE Frontiers in Education Conference (FIE), pp. 1-6. 2020. DOI: 10.1109/FIE44824.2020.9274028 
  10. Y. A. Min, "Smart contract research for efficient learner problem recommendation in online education environment," The Journal of The Institute of Internet, Broadcasting and Communication, vol. 22, no. 4, pp. 195-201. 2022. DOI: 10.7236/JIIBC.2022.22.4.195 
  11. Y. Jun, K. E. Yang and W. S. Cho, "Non-Curriculum Recommendation Techniques Using Collaborative Filtering for C University," The Korea Journal of BigData, vol. 7, no. 1, pp. 187-192. 2022. DOI: 10.36498/kbigdt.2022.7.1.187 
  12. Y. Choi, "Recommendation algorithms for repetitively purchasing items in e-commerce," Ph.D. dissertation, Dept. of Computer Science & Engineering, The Graduate School, Chung-Ang University, Seoul, Korea, 2018. 
  13. K. Lee, "Graph problem bank system based on collaborative recommendation and dynamic problem generation," Masters dissertation, Dept. of Computer, The Graduate School, Korea University, Seoul, Korea, 2019. 
  14. W. Hill, L. Stead, M. Rosenstein and G. Furnas, "Recommending and evaluating choices in a virtual community of use,", pp. 194-201. 1995. 
  15. J. A. Konstan, B.N. Miller, D. Maltz, J.L. Herlocker, L.R. Gordon and J. Riedl, "Grouplens: Applying collaborative filtering to usenet news," Commun ACM, vol. 40, no. 3, pp. 77-87. 1997.  https://doi.org/10.1145/245108.245126
  16. B. Sarwar, G. Karypis, J. Konstan and J. Riedl, '"Analysis of recommendation algorithms for e-commerce,", pp. 158-167. 2000. 
  17. H. Marmanis, "Algorithms of the intelligent web,", 2009. 
  18. E. Kwon, J. Kim, N. Heo, and S. Kang, "Personalized Recommendation System using Level of Cosine Similarity of Emotion Word from Social Network," The Journal of Information Technology and Architecture, vol. 9, no. 3, pp. 333-344. 2012. 
  19. BitCode, Chungcheongbuk-do Education Research & Information Institute., https://coding.cberi.go.kr 
  20. N. Dalkey and O. Helmer, "An experimental application of the Delphi method to the use of experts," Management science, vol. 9, no. 3, pp. 458-467. 1963.  https://doi.org/10.1287/mnsc.9.3.458
  21. C. H. Lawshe, "A quantitative approach to content validity," Person.Psychol., vol. 28, no. 4, pp. 563-575. 1975. https://doi.org/10.1111/j.1744-6570.1975.tb01393.x