KR20230103995A - 코딩 문제 추천 시스템 및 코딩 문제 추천 방법 - Google Patents

코딩 문제 추천 시스템 및 코딩 문제 추천 방법 Download PDF

Info

Publication number
KR20230103995A
KR20230103995A KR1020220184801A KR20220184801A KR20230103995A KR 20230103995 A KR20230103995 A KR 20230103995A KR 1020220184801 A KR1020220184801 A KR 1020220184801A KR 20220184801 A KR20220184801 A KR 20220184801A KR 20230103995 A KR20230103995 A KR 20230103995A
Authority
KR
South Korea
Prior art keywords
user
coding
recommendation
information
solving
Prior art date
Application number
KR1020220184801A
Other languages
English (en)
Inventor
최선희
Original Assignee
(주)유닛컴퍼니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)유닛컴퍼니 filed Critical (주)유닛컴퍼니
Priority to PCT/KR2022/021324 priority Critical patent/WO2023128530A1/ko
Publication of KR20230103995A publication Critical patent/KR20230103995A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B7/00Electrically-operated teaching apparatus or devices working with questions and answers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Library & Information Science (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

코딩 문제 추천 시스템은 복수의 코딩 문제들을 저장하는 코딩 문제 데이터 베이스 및 사용자의 코딩 문제 풀이 이력에 대한 정보인 사용자 정보를 저장하는 사용자 정보 데이터 베이스를 포함하는 데이터 저장소, 상기 사용자 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성하는 문제 풀이 시퀀스 생성부, 및 상기 사용자 문제 풀이 시퀀스를 입력함에 따라 상기 코딩 문제들 중 추천 코딩 문제를 선택하는 추천 모델을 포함하는 코딩 문제 추천부를 포함한다.

Description

코딩 문제 추천 시스템 및 코딩 문제 추천 방법{Coding Problem Recommendation System and Coding Problem Recommending Method}
본 발명은 코딩 문제 추천 시스템 및 코딩 문제 추천 방법에 관한 것으로, 보다 상세하게는 사용자 맞춤형 코딩 문제 추천 시스템 및 코딩 문제 추천 방법에 관한 것이다.
일반적으로 코딩은 명령을 컴퓨터가 이해할 수 있는 C언어, 자바(JAVA), 파이썬(python) 등의 프로그래밍 언어로 입력하는 과정을 뜻한다. 코딩이 중요한 것은 인공지능, 사물인터넷, 지능형 로봇, 빅 데이터 분석 및 활용 등 4차 산업혁명시대를 대변하는 모든 것이 ICT(정보통신기술)을 바탕으로 한 소프트웨어를 통해 구현되기 때문이다. 게다가, 코딩 교육을 통해 논리력 창의력 문제 해결력을 키울 수 있어, 다양한 교육 프로그램으로 활용되고 있다.
그러나, 시간상, 공간상의 제약에 따라 상당수의 코딩 교육은, 학습자가 일련의 문제들이 수록된 문제집의 모든 코딩 문제를 순서대로 풀어보고, 교육자의 일방적인 풀이 방식의 설명을 듣는 방식으로 진행된다. 이러한 교육 방식은 학습자와 교육자의 양방향 커뮤니케이션이 어렵고, 교육자가 학습자에게 일방적으로 주입식 교육을 실시할 수밖에 없다.
공간적 제약을 극복하기 위해, 온라인 방식을 활용하는 E -Learning 방식이 코딩 교육에서도 도입되고 있으나, 학습자의 창의적 질문이나 즉각적 요구 등을 반영하여 수업의 내용을 변경하거나, 심화학습 연계가 어려워서 교재위주의 예제 실습으로 대다수 초급 수준에 코딩교육이 이루어지고 있다. 즉, 온라인 코딩 및 알고리즘 교육은 문제의 솔루션만 제공하는 획일적이 단방향 교육을 극복하기 어렵다는 것이다.
특히, 코딩 문제는 학습자의 수준에 따라 어떠한 문제를 푸는 것이 효율적인지에 대해 학습자 스스로 판단하기가 어렵고, 정확한 학습이 되지 않은 상태에서 다음 단계의 코딩 문제를 학습하는 상황이 반복되면, 학습량에 대비 문제 해결 능력이 향상되지 않는 문제가 있다.
이에 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로, 본 발명의 목적은 학습자의 수준과 상황에 따라 적절한 코딩 문제를 추천해주는 학습자과 교육자 양방향 커뮤니케이션 방식의 코딩 교육을 제공하기 위한 코딩 문제 추천 시스템 제공하는 것이다.
본 발명의 다른 목적은 코딩 문제 추천 방법을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 코딩 문제 추천 시스템은 복수의 코딩 문제들을 저장하는 코딩 문제 데이터 베이스 및 사용자의 코딩 문제 풀이 이력에 대한 정보인 사용자 정보를 저장하는 사용자 정보 데이터 베이스를 포함하는 데이터 저장소, 상기 사용자 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성하는 문제 풀이 시퀀스 생성부, 및 상기 사용자 문제 풀이 시퀀스를 입력함에 따라 상기 코딩 문제들 중 추천 코딩 문제를 선택하는 추천 모델을 포함하는 코딩 문제 추천부를 포함한다.
본 발명의 일 실시예에 있어서, 상기 코딩 문제 추천 시스템은 문제 추천 시나리오별 추천 모델을 저장하는 추천 모델 저장소를 더 포함할 수 있다. 상기 코딩 문제 추천부는, 상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보에 따라 상기 시나리오별 추천 모델 중 어느 하나를 선택하여 상기 추천 모델로 선정하는 추천 모델 선택부를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 코딩 문제 추천 시스템은 문제 추천 시나리오별 추천 모델을 저장하는 추천 모델 저장소를 더 포함할 수 있다. 상기 코딩 문제 추천부는, 상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보에 따라 상기 시나리오별 추천 모델 중 어느 하나를 선택하여 상기 추천 모델로 선정하는 추천 모델 선택부를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 사용자 정보는 상기 사용자가 푼 코딩 문제와 채점 결과, 사용 언어 및 문제 풀이 순서에 대한 정보 중 어느 하나 이상을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 데이터 저장소는 문제 태그 정보를 저장하는 문제 태그 데이터 베이스를 더 포함할 수 있다. 상기 문제 태그 정보는 각각의 상기 코딩 문제에 대한 분류, 문제 출처 및 난이도에 대한 정보 중 어느 하나 이상을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 문제 풀이 시퀀스 생성부는 상기 사용자 정보와 상기 문제 태그 데이터로부터 상기 사용자 문제 풀이 시퀀스를 생성할 수 있다.
본 발명의 일 실시예에 있어서, 상기 추천 모델은 자연어 처리 기반의 인공지능 모델을 사용할 수 있다.
본 발명의 일 실시예에 있어서, 상기 인공지능 모델의 학습은, 네거티브 샘플링을 이용할 수 있다.
본 발명의 일 실시예에 있어서, 상기 코딩 문제 추천 시스템은 상기 사용자의 사용자 단말에 상기 추천 코딩 문제를 송신하고, 상기 사용자가 입력하는 문제 답안을 수신하는 교육 서버를 더 포함할 수 있다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 코딩 문제 추천 시스템은 사용자의 문제 풀이 이력 및 채점 결과에 대한 사용자 문제 풀이 시퀀스를 생성하는 문제 풀이 시퀀스 생성부, 상기 사용자 문제 풀이 시퀀스를 바탕으로 코딩 문제를 추천하는 자연어 처리 기반의 인공 지능 모델인 추천 모델, 및 상기 추천 모델이 추천한 추천 코딩 문제를 상기 사용자의 사용자 단말에 송신하고, 상기 사용자가 상기 사용자 단말을 통해 입력하는 상기 추천 코딩 문제의 답안을 수신하는 교육 서버를 포함한다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 코딩 문제 추천 방법은 교육 서버가 사용자 단말에 코딩 문제를 송신하고, 상기 사용자가 입력하는 문제 답안을 수신하는 사용자 문제 풀이 단계, 상기 교육 서버가 상기 문제 답안을 채점하여 채점 결과를 저장하는 채점 단계, 및 사용자의 코딩 문제 풀이 이력과 상기 채점 결과에 대한 정보인 사용자 정보를 이용하여, 추천 모델이, 복수의 코딩 문제들을 저장하는 코딩 문제 데이터 베이스 내의 어느 하나 이상의 코딩 문제를 추천하는 문제 추천 단계를 포함한다.
본 발명의 일 실시예에 있어서, 상기 문제 추천 단계는, 상기 사용자의 코딩 문제 풀이 이력 및 채점 결과에 대한 정보를 확인하는 사용자의 문제 이력 정보 스캐닝 단계, 스캐닝된 상기 코딩 문제들의 문제 태그 정보를 추출하는 문제 태그 정보 추출 단계, 상기 사용자의 코딩 문제 풀이 이력 및 채점 결과와 상기 문제 태그 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성하는 사용자 문제 풀이 시퀀스 생성 단계, 및 상기 사용자 문제 풀이 시퀀스를 분석하여, 상기 코딩 문제 데이터 베이스 내의 어느 하나 이상의 코딩 문제를 추천하는 시퀀스 분석 및 추천 단계를 포함한다.
본 발명의 일 실시예에 있어서, 상기 문제 태그 정보는 상기 코딩 문제에 대한 분류, 문제 출처 및 난이도에 대한 정보 중 어느 하나 이상을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보를 이용하여, 복수의 문제 추천 시나리오별 추천 모델 중 어느 하나를 선택하여 상기 추천 모델로 선정하는 추천 모델 선정 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 사용자 문제 풀이 시퀀스는 상기 사용자가 푼 코딩 문제와 채점 결과, 사용 언어 및 문제 풀이 순서에 대한 정보 중 어느 하나 이상을 포함할 수 있다.
본 발명의 일 실시예에 있어서, 상기 추천 모델은 자연어 처리 기반의 인공 지능 모델이고, 네거티브 샘플링을 이용하여 학습될 수 있다.
본 발명의 실시예들에 따르면, 코딩 문제 추천 시스템은 학습자의 수준과 상황에 따라 적절한 코딩 문제를 추천해 줄 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 코딩 문제 추천 시스템을 나타낸 개략도이다.
도 2는 본 발명의 일 실시예에 따른 코딩 문제 추천 방법을 나타낸 순서도이다.
도 3은 도 2의 코딩 문제 추천 방법의 문제 추천 단계를 상세히 나타낸 순서도이다.
도 4는 본 발명의 일 실시예에 따른 코딩 문제 추천 시스템 및 방법의 Rest API 기반의 문제 추천의 입력과 출력 예시를 나타낸 도면이다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 코딩 문제 추천 시스템을 나타낸 개략도이다.
도 1을 참조하면, 상기 코딩 문제 추천 시스템은 문제풀이 시퀀스 생성부(100), 코딩 문제 추천부(200), 교육 서버(300), 데이터 저장소(400), 및 추천 모델 저장소(500)를 포함할 수 있다.
상기 데이터 저장소(400)는 코딩 문제 데이터 베이스, 문제 태그 데이터 베이스, 사용자 정보 데이터 베이스를 포함할 수 있다.
상기 데이터 저장소(400)는 코딩 문제 데이터 베이스, 문제 태그 데이터 베이스, 및 사용자 정보 데이터 베이스를 포함할 수 있다.
상기 코딩 문제 데이터 베이스에는 상기 코딩 문제들이 저장될 수 있다.
상기 문제 태그 데이터 베이스에는 각 코딩 문제에 대한 특이 사항에 대한 정보를 포함하는 문제 태그 데이터가 저장될 수 있다. 예를 들면, 각 코딩 문제의 정답률, 문제 답안의 알고리즘의 대/중/소 분류, 문제 출처(ICPC style, Olympiad style, Coding Interview style 등), 난이도 등에 대한 정보 등을 포함할 수 있다. 예를 들면, 각각의 문제에 대한 문제 태그 데이터는 다음 <표1>의 정보를 포함할 수 있다.
Figure pat00001
[표1]
상기 사용자 정보 데이터 베이스에는, 각각의 사용자들이 푼 문제 번호들에 대한 정보, 사용자들에 대한 정보, 푼 문제의 채점 결과에 대한 정보, 풀이에 사용된 프로그래밍 언어 등의 사용자 정보 데이터가 저장될 수 있다. 예를 들면, 각각의 사용자에 대한 사용자 정보 데이터는 다음 <표2>의 정보를 포함할 수 있다.
Figure pat00002
[표2]
상기 추천 모델 저장소(500)는 복수의 시나리오별 추천 모델을 포함할 수 있다. 상기 시나리오별 추천 모델은 문제 추천 시나리오(사용자의 환경)에 따른 적절한 문제를 추천해 주는 추천 모델들이며, 각각의 시나리오별 추천 모델들은 사용자 환경에 따라 서로 다른 문제를 추천해 줄 수 있다.
예를 들면, 상기 문제 추천 시나리오는 사용자의 코딩 수준에 따라 풀어보면 좋을 만한 문제들을 추천하는 시나리오, 사용자가 어느 하나의 코딩 문제 풀이를 성공한 후, 다음 문제를 추천하는 시나리오, 입사 문제, 올림피아드 문제 등의 사용자가 원하는 특정 카테고리의 문제를 추천하는 시나리오, 또는 특정 목적(입사나 올림피아드 등)을 위한 특정 출처의 문제(입사 문제나 올림피아드 기출문제 등)를 모의고사로 추천하는 시나리오일 수 있으며, 이에 제한되지 않는다.
상기 문제풀이 시퀀스 생성부(100)는 상기 사용자 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성할 수 있다.
상기 사용자 정보는 사용자의 코딩 문제 풀이 이력에 대한 정보, 즉 상기 사용자가 푼 코딩 문제와 채점 결과, 사용 언어 및 문제 풀이 순서에 대한 정보 등을 포함할 수 있다. (사용자 정보 데이터 베이스에 대한 설명 참조)
상기 코딩 문제 추천부(200)는 추천 모델 선택부(210) 및 추천 모델(220)을 포함할 수 있다.
상기 추천 모델 선택부(210)는 상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보에 따라 상기 시나리오별 추천 모델 중 어느 하나를 선택할 수 있다.
상기 사용자 요청 정보는 상기 사용자가 풀기 원하는 코딩 문제의 카테고리, 난이도, 문제 출처 등에 대한 것일 수 있으며, 상기 추천 모델 선택부(210)는 해당 요청에 대응하는 시나리오별 추천 모델을 선택할 수 있다. 상기 추천 모델의 선택은 미리 설정된 알고리즘에 따라, 또는 학습 가능한 인공지능 모델에 따라 알려진 다양한 방법으로 구현될 수 있다.
상기 추천 모델(220)은 상기 추천 모델 선택부(210)에 의해 선택된 추천 모델로, 상기 사용자 문제 풀이 시퀀스를 입력함에 따라 상기 코딩 문제들 중 추천 코딩 문제를 선택하여 추천할 수 있다.
상기 추천 모델은 자연어 처리 기반의 인공지능 모델을 이용할 수 있다. 상기 인공지능 모델의 학습은, 네거티브 샘플링을 이용할 수 있다. 예를 들면, 상기 추천 모델은 자연어 처리에 널리 사용되는 트랜스포머 모델을 이용할 수 있으며, 학습 과정 중 일부 문제 풀이 이력에만 집중할 수 있도록 네거티브 샘플링 방식으로 학습할 수 있다.
상기 교육 서버(300)는 코딩 문제 송신부, 문제 답안 수신부 및 판단부를 포함할 수 있다.
상기 코딩 문제 송신부는 코딩 문제를 사용자 단말(미도시)에 전송할 수 있다. 상기 문제 답안 수신부는 상기 사용자 단말로부터 입력되는 상기 사용자의 답안을 수신할 수 있다. 상기 사용자의 답안은 다양한 프로그래밍 언어로 작성되는 소스 코드일 수 있다. 예를 들면, 상기 사용자는 C, C++, Java, Python 등으로 코딩된 답안을 작성하여 입력할 수 있다.
한편, 상기 사용자 단말)에 표시되는 상기 코딩 문제와 상기 사용자의 답안 입력은 상기 사용자 단말에 설치되는 앱 또는 인터넷 웹페이지 형식으로 서비스될 수 있다.
상기 판단부는 상기 사용자의 답안을 컴파일 및 실행하여, 출력되는 답안 출력값과 정답 출력값을 비교하여 상기 사용자의 답안을 채점할 수 있다.
본 발명의 실시예에 따르면, 사용자의 문제 풀이 이력과 채점 결과에 대한 정보를 포함하는 사용자 문제 풀이 시퀀스를 입력값으로 인공지능 학습된 추천 모델이 사용자에게 적합한 최적의 문제를 추천해 줄 수 있다. 상기 추천 모델은 교육 서버를 통해 축적한 다수의 사용자들의 문제 풀이 이력과 채점 결과에 대한 데이터를 활용하여 학습하여, 다양한 사용자의 수준 분석과 문제 해결 능력 분석이 가능하다.
또한 사용자가 원하는 카테고리의 문제들을 문제 추천 시나리오에 따라, 적합한 추천 모델을 선택하여 추천하므로, 사용자가 원하는 특정 영역에 집중적인 학습이 가능하다.
상기 추천 모델의 학습은 사용자의 문제 풀이 이력, 채점 결과 등에 대한 데이터 베이스로부터 필요로 하는 정보인 사용자 정보를 필터링 하고, 해당 코딩 문제들의 문제 태그 데이터를 인덱스화 하고, 각각의 코딩 문제들에 대한 임베딩 벡터를 생성하여, 임베딩 벡터 마스킹을 통해, 시나리오별 추천 모델을 학습시킬 수 있다.
도 2는 본 발명의 일 실시예에 따른 코딩 문제 추천 방법을 나타낸 순서도이다.
도 2를 참조하면, 코딩 문제 추천 방법은 사용자 문제 풀이 단계(S100), 채점 단계(S200), 추천 모델 선정 단계(S300), 및 문제 추천 단계(S400)을 포함한다.
상기 사용자 문제 풀이 단계(S100)에서는, 사용자 단말에 코딩 문제를 송신하고, 상기 사용자가 입력하는 문제 답안을 수신할 수 있다. 예를 들면, 코딩 문제 송신부는 코딩 문제를 상기 사용자 단말에 전송하고, 사용자는 상기 코딩 문제를 풀어 소스 코드를 입력할 수 있으며, 문제 답안 수신부는 상기 사용자 단말로부터 입력되는 상기 사용자의 답안을 수신할 수 있다. 상기 사용자의 답안은 다양한 프로그래밍 언어로 작성되는 소스 코드일 수 있다.
상기 채점 단계(S200)에서는, 상기 교육 서버가 상기 문제 답안을 채점하여 채점 결과를 저장할 수 있다. 판단부는 상기 사용자의 답안을 컴파일 및 실행하여, 출력되는 답안 출력값과 정답 출력값을 비교하여 상기 사용자의 답안을 채점할 수 있다.
상기 추천 모델 선정 단계(S300)에서는, 상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보를 이용하여, 복수의 문제 추천 시나리오별 추천 모델 중 어느 하나를 선택하여 상기 추천 모델로 선정할 수 있다. 상기 사용자 요청 정보는 상기 사용자가 풀기 원하는 코딩 문제의 카테고리, 난이도, 문제 출처 등에 대한 것일 수 있으며, 추천 모델 선택부는 해당 요청에 대응하는 시나리오별 추천 모델을 선택할 수 있다.
상기 문제 추천 단계(S400)에서는, 사용자의 코딩 문제 풀이 이력과 상기 채점 결과에 대한 정보인 사용자 정보를 이용하여, 추천 모델이, 복수의 코딩 문제들을 저장하는 코딩 문제 데이터 베이스 내의 어느 하나 이상의 코딩 문제를 추천할 수 있다.
상기 사용자 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성하고, 상기 사용자 문제 풀이 시퀀스를 상기 추천 모델에 입력하여 추천 코딩 문제를 출력할 수 있다.
상기 추천 모델은 자연어 처리 기반의 인공지능 모델을 이용할 수 있다. 상기 인공지능 모델의 학습은, 네거티브 샘플링을 이용할 수 있다. 예를 들면, 상기 추천 모델은 자연어 처리에 널리 사용되는 트랜스포머 모델을 이용할 수 있으며, 학습 과정 중 일부 문제 풀이 이력에만 집중할 수 있도록 네거티브 샘플링 방식으로 학습할 수 있다.
도 3은 도 2의 코딩 문제 추천 방법의 문제 추천 단계를 상세히 나타낸 순서도이다.
도 3을 참조하면, 상기 문제 추천 단계는 사용자의 문제 이력 정보 스캐닝 단계(S410), 문제 태그 정보 추출 단계(S420), 사용자 문제 풀이 시퀀스 생성 단계(S430), 시퀀스 분석 및 추천 단계(S440) 및 추천 문제를 교육 서버에 전달하는 단계(S450)을 포함할 수 있다.
상기 사용자의 문제 이력 정보 스캐닝 단계(S410)에서는, 상기 사용자의 코딩 문제 풀이 이력 및 채점 결과에 대한 정보를 확인할 수 있다. 예를 들면, 상기 사용자의 코딩 문제 풀이 이력 및 채점 결과에 대한 정보가 저장된 사용자 정보 데이터 베이스로부터, 필요한 정보를 스캐닝할 수 있다.
상기 문제 태그 정보 추출 단계(S420)에서는, 스캐닝된 상기 코딩 문제들의 문제 태그 정보를 추출할 수 있다. 예를 들면, 상기 사용자의 코딩 문제 풀이 이력 으로부터 상기 사용자가 푼 문제들의 확인하고, 해당 문제들의 문제 태그 데이터를 확인하여, 필요로 하는 문제 태그 정보를 추출할 수 있다.
상기 사용자 문제 풀이 시퀀스 생성 단계(S430)에서는, 상기 사용자의 코딩 문제 풀이 이력 및 채점 결과와 상기 문제 태그 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성할 수 있다. 예를 들면, 스캐닝한 사용자 정보, 이에 대한 문제 태그 정보 들로부터 사용자가 푼 문제들의 시퀀스를 생성할 수 있다. 상기 문제 풀이 시퀀스에는 사용자가 푼 문제들의 순서와 문제 번호 등의 정보가 포함되므로, 이를 바탕으로 상기 추천 모델이 사용자에게 최적의 문제를 추천할 수 있다.
상기 시퀀스 분석 및 추천 단계(S440)에서는, 상기 사용자 문제 풀이 시퀀스를 분석하여, 상기 코딩 문제 데이터 베이스 내의 어느 하나 이상의 코딩 문제를 추천할 수 있다. 예를 들면, 상기 추천 모델에 상기 사용자 문제 풀이 시퀀스를 입력함에 따라 데이터 베이스에 저장된 코딩 문제들 중 추천 코딩 문제를 선택하여 추천할 수 있다. 상기 추천 코딩 문제는 필요에 따라 단수 또는 복수로 선택될 수 있으며, 필요에 따라 문제 풀이 순서를 포함할 수 있다.
상기 추천 문제를 교육 서버에 전달하는 단계(S450)에서는, 상기 추천 모델이 추천한 추천 코딩 문제에 대한 정보를 교육 서버에 전달할 수 있다. 이에 따라, 상기 교육 서버는 사용자에게 추천 문제를 송신할 수 있다.
취업 목적의 사용자(학습자)인 경우, 사용자가 선호하는 문제 타입을 취업 목적의 입사 시험으로 선택하고, 상기 선호하는 문제 타입에 대한 정보인 사용자 요청 정보를 반영하여 취업 목적의 문제 추천 시나리오에 해당하는 추천 모델을 선택할 수 있다. 이에 따른 추천 모델은 상기 사용자의 문제 풀이 이력과, 채점 결과들을 이용하여 사용자 문제 풀이 시퀀스를 생성하고, 상기 추천 모델은 이미 다수의 데이터를 이용해 학습되어, 상기 사용자에게 적합한 최적의 코딩 문제를 추천할 수 있다. 이러한 과정을 반복하여, 상기 사용자는 무분별한 코딩 문제 풀이 순서나, 시중에 나와 있는 순서의 코딩 문제집 순서가 아닌, 자신의 수준과 목적에 적합한 코딩 문제들을 풀어 볼 수 있으며, 효율적인 코딩 학습이 가능하다.
한편, 본 발명의 실시예들에 있어서, 각 단계들이 교육 서버, 데이터 저장소, 추천 모델 생성부 등의 구성요소에서 개별적으로 이루어지는 것으로 설명하였으나, 이에 한정되지 않는다. 예를 들어, 상기 단계들은 하나의 서버에서 제공되거나, 필요에 따라 복수개 서버에서 분리되어 제공될 수도 있으며, 사용자 단말의 엣지 컴퓨팅을 이용할 수도 있을 것이다.
도 4는 본 발명의 일 실시예에 따른 코딩 문제 추천 시스템 및 방법의 Rest API 기반의 문제 추천의 입력과 출력 테스트 예시를 나타낸 도면이다.
도 4를 참조하면, 본 발명의 코딩 문제 추천 시스템이 Rest API 서버를 이용하여 서비스되는 경우, 추천 모델의 문제 추천의 테스트를 위한, 입력값과 출력값의 예시를 나타내고 있다.
시나리오별 복수의 추천 모델을 추천 서버에 저장하고, 필요로 하는 추천 모델의 URL을 입력하고, 추천 서비스를 제공할 사용자의 User ID와 해당 사용자가 풀어본 문제들의 시퀀스(도면상의 User의 Problem solving 이력)를 입력값으로 입력하면, 상기 추천 모델이 추천 코딩 문제들(도면 상의 추천 Problem ID)을 출력한다. 상기 입력값으로는 추가적으로 사용자가 원하는 문제 타입 정보, 풀어본 문제들의 채점 결과, 태그 데이터 등의 정보가 더 포함될 수 있고, 이에 따라 더욱 정교한 추천이 가능하다.
본 발명의 실시예들에 따르면, 코딩 문제 추천 시스템은 학습자의 수준과 상황에 따라 적절한 코딩 문제를 추천해 줄 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 문제 풀이 시퀀스 생성부 200: 코딩 문제 추천부
300: 교육 서버 400: 데이터 저장소
500; 추천 모델 저장소

Claims (16)

  1. 복수의 코딩 문제들을 저장하는 코딩 문제 데이터 베이스 및 사용자의 코딩 문제 풀이 이력에 대한 정보인 사용자 정보를 저장하는 사용자 정보 데이터 베이스를 포함하는 데이터 저장소;
    상기 사용자 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성하는 문제 풀이 시퀀스 생성부; 및
    상기 사용자 문제 풀이 시퀀스를 입력함에 따라 상기 코딩 문제들 중 추천 코딩 문제를 선택하는 추천 모델을 포함하는 코딩 문제 추천부를 포함하는 코딩 문제 추천 시스템.
  2. 제1항에 있어서,
    문제 추천 시나리오별 추천 모델을 저장하는 추천 모델 저장소를 더 포함하고,
    상기 코딩 문제 추천부는,
    상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보에 따라 상기 시나리오별 추천 모델 중 어느 하나를 선택하여 상기 추천 모델로 선정하는 추천 모델 선택부를 더 포함하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  3. 제2항에 있어서,
    상기 문제 추천 시나리오는 풀어보면 좋을 만한 문제들을 추천하는 시나리오, 어느 하나의 코딩 문제 풀이를 성공한 후, 다음 문제를 추천하는 시나리오, 특정 카테고리의 문제를 추천하는 시나리오, 및 특정 목적을 위한 특정 출처의 문제를 모의고사로 추천하는 시나리오 중 어느 하나 이상을 포함하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  4. 제1항에 있어서,
    상기 사용자 정보는 상기 사용자가 푼 코딩 문제와 채점 결과, 사용 언어 및 문제 풀이 순서에 대한 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  5. 제4항에 있어서,
    상기 데이터 저장소는 문제 태그 정보를 저장하는 문제 태그 데이터 베이스를 더 포함하고,
    상기 문제 태그 정보는 각각의 상기 코딩 문제에 대한 분류, 문제 출처 및 난이도에 대한 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  6. 제5항에 있어서,
    상기 문제 풀이 시퀀스 생성부는 상기 사용자 정보와 상기 문제 태그 데이터로부터 상기 사용자 문제 풀이 시퀀스를 생성하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  7. 제1항에 있어서,
    상기 추천 모델은 자연어 처리 기반의 인공지능 모델을 사용하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  8. 제7항에 있어서,
    상기 인공지능 모델의 학습은, 네거티브 샘플링을 이용하는 것을 특징으로 하는 코딩 문제 추천 시스템.
  9. 제1항에 있어서,
    상기 사용자의 사용자 단말에 상기 추천 코딩 문제를 송신하고, 상기 사용자가 입력하는 문제 답안을 수신하는 교육 서버를 더 포함하는 코딩 문제 추천 시스템.
  10. 사용자의 문제 풀이 이력 및 채점 결과에 대한 사용자 문제 풀이 시퀀스를 생성하는 문제 풀이 시퀀스 생성부;
    상기 사용자 문제 풀이 시퀀스를 바탕으로 코딩 문제를 추천하는 자연어 처리 기반의 인공 지능 모델인 추천 모델; 및
    상기 추천 모델이 추천한 추천 코딩 문제를 상기 사용자의 사용자 단말에 송신하고, 상기 사용자가 상기 사용자 단말을 통해 입력하는 상기 추천 코딩 문제의 답안을 수신하는 교육 서버를 포함하는 코딩 문제 추천 시스템.
  11. 교육 서버가 사용자 단말에 코딩 문제를 송신하고, 상기 사용자가 입력하는 문제 답안을 수신하는 사용자 문제 풀이 단계;
    상기 교육 서버가 상기 문제 답안을 채점하여 채점 결과를 저장하는 채점 단계; 및
    사용자의 코딩 문제 풀이 이력과 상기 채점 결과에 대한 정보인 사용자 정보를 이용하여, 추천 모델이, 복수의 코딩 문제들을 저장하는 코딩 문제 데이터 베이스 내의 어느 하나 이상의 코딩 문제를 추천하는 문제 추천 단계를 포함하는 코딩 문제 추천 방법.
  12. 제11항에 있어서,
    상기 문제 추천 단계는,
    상기 사용자의 코딩 문제 풀이 이력 및 채점 결과에 대한 정보를 확인하는 사용자의 문제 이력 정보 스캐닝 단계;
    스캐닝된 상기 코딩 문제들의 문제 태그 정보를 추출하는 문제 태그 정보 추출 단계;
    상기 사용자의 코딩 문제 풀이 이력 및 채점 결과와 상기 문제 태그 정보를 이용하여 사용자 문제 풀이 시퀀스를 생성하는 사용자 문제 풀이 시퀀스 생성 단계; 및
    상기 사용자 문제 풀이 시퀀스를 분석하여, 상기 코딩 문제 데이터 베이스 내의 어느 하나 이상의 코딩 문제를 추천하는 시퀀스 분석 및 추천 단계를 포함하는 것을 특징을 하는 코딩 문제 추천 방법.
  13. 제12항에 있어서,
    상기 문제 태그 정보는 상기 코딩 문제에 대한 분류, 문제 출처 및 난이도에 대한 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 코딩 문제 추천 방법.
  14. 제11항에 있어서,
    상기 사용자가 선호하는 문제 타입에 대한 정보인 사용자 요청 정보를 이용하여, 복수의 문제 추천 시나리오별 추천 모델 중 어느 하나를 선택하여 상기 추천 모델로 선정하는 추천 모델 선정 단계를 더 포함하는 것을 특징으로 하는 코딩 문제 추천 방법.
  15. 제11항에 있어서,
    상기 사용자 문제 풀이 시퀀스는 상기 사용자가 푼 코딩 문제와 채점 결과, 사용 언어 및 문제 풀이 순서에 대한 정보 중 어느 하나 이상을 포함하는 것을 특징으로 하는 코딩 문제 추천 방법.
  16. 제11항에 있어서,
    상기 추천 모델은 자연어 처리 기반의 인공 지능 모델이고, 네거티브 샘플링을 이용하여 학습되는 것을 특징으로 하는 코딩 문제 추천 방법.
KR1020220184801A 2021-12-30 2022-12-26 코딩 문제 추천 시스템 및 코딩 문제 추천 방법 KR20230103995A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/021324 WO2023128530A1 (ko) 2021-12-30 2022-12-26 코딩 문제 추천 시스템 및 코딩 문제 추천 방법

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR1020210191911 2021-12-30
KR20210191911 2021-12-30
KR1020220096613 2022-08-03
KR1020220096614 2022-08-03
KR20220096614 2022-08-03
KR20220096613 2022-08-03

Publications (1)

Publication Number Publication Date
KR20230103995A true KR20230103995A (ko) 2023-07-07

Family

ID=87154177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220184801A KR20230103995A (ko) 2021-12-30 2022-12-26 코딩 문제 추천 시스템 및 코딩 문제 추천 방법

Country Status (1)

Country Link
KR (1) KR20230103995A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230131103A (ko) * 2022-03-04 2023-09-12 김석준 코드 제출 기록 관리 방법 및 장치, 이를 이용한 코딩 테스트 피드백 방법 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230131103A (ko) * 2022-03-04 2023-09-12 김석준 코드 제출 기록 관리 방법 및 장치, 이를 이용한 코딩 테스트 피드백 방법 및 시스템

Similar Documents

Publication Publication Date Title
US6688888B1 (en) Computer-aided learning system and method
CN110362671B (zh) 题目推荐方法、设备和存储介质
CN113590956B (zh) 知识点推荐方法、装置、终端及计算机可读存储介质
González-Castro et al. Adaptive learning module for a conversational agent to support MOOC learners
KR20230103995A (ko) 코딩 문제 추천 시스템 및 코딩 문제 추천 방법
Siiman et al. Opportunities and challenges for AI-assisted qualitative data analysis: An example from collaborative problem-solving discourse data
Woodard et al. How students use statistical computing in problem solving
Thanyaphongphat et al. Effects of a personalised ubiquitous learning support system based on learning style-preferred technology type decision model on University Students' SQL learning performance
Levesque et al. Exploring undergraduate attainment of sustainability competencies
CN112764760B (zh) 基于程序评测的辅助答题系统
Bhatt et al. Artificial Intelligence in Current Education: Roles, Applications & Challenges
Kulaglić et al. Influence of learning styles on improving efficiency of adaptive educational hypermedia systems
Muepu et al. Similar problems recommendation model to support programming education
Resch et al. Open knowledge interface: A digital assistant to support students in writing academic assignments
CN111127271A (zh) 一种用于学情分析的教学方法及系统
CN112231373B (zh) 知识点数据的处理方法、装置、设备和计算机可读介质
CN113569112A (zh) 基于题目的辅导策略提供方法、系统、装置及介质
CN112256743A (zh) 一种自适应出题方法、设备及存储介质
CN112287115A (zh) 基于知识掌握程度图的个性化教学方法、系统及装置
KR20210155543A (ko) 오답 기반 문제 제공 서버 및 오답 기반 문제 제공 프로그램
KR20110113295A (ko) 통신 네트워크를 통한 온라인 문제 제공 방법
WO2023128530A1 (ko) 코딩 문제 추천 시스템 및 코딩 문제 추천 방법
Monserrat et al. Investigating the use of Artificial intelligence (AI) in educational settings: A systematic review
Tamayo-Moreno et al. Designing Pedagogic Conversational Agents through Data Analysis
Simon et al. Multi-institutional computer science education research: A review of recent studies of novice understanding

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination