KR20220170654A - System of learning coding - Google Patents

System of learning coding Download PDF

Info

Publication number
KR20220170654A
KR20220170654A KR1020210081763A KR20210081763A KR20220170654A KR 20220170654 A KR20220170654 A KR 20220170654A KR 1020210081763 A KR1020210081763 A KR 1020210081763A KR 20210081763 A KR20210081763 A KR 20210081763A KR 20220170654 A KR20220170654 A KR 20220170654A
Authority
KR
South Korea
Prior art keywords
code
coding
result
score
task
Prior art date
Application number
KR1020210081763A
Other languages
Korean (ko)
Other versions
KR102501477B1 (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 KR1020210081763A priority Critical patent/KR102501477B1/en
Publication of KR20220170654A publication Critical patent/KR20220170654A/en
Application granted granted Critical
Publication of KR102501477B1 publication Critical patent/KR102501477B1/en

Links

Images

Classifications

    • 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
    • G09B7/02Electrically-operated teaching apparatus or devices working with questions and answers of the type wherein the student is expected to construct an answer to the question which is presented or wherein the machine gives an answer to the question presented by a student

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

The present invention discloses a system for learning coding, comprising: a coding task storage unit in which n (n is a natural number) coding task code_assignments are each stored; a coding storage unit storing coding results code_nm written by m people (m is a natural number) for the nth coding task, respectively; a coding result input unit which receives the coding result code_n(m+1) written by the (m+1)th user for the nth coding task code_assignment; a code similarity determination unit which determines code similarity between the coding results of the (m+1) people; a pseudo-code set selection unit which includes code results whose code similarity is less than a threshold value in the same pseudo-code set; a coding score storage unit which stores a coding score for the coding result code_nm; and when the (m+1)th user requests it, a model answer provision unit which provides the coding result with the highest coding score among the similar code sets such as the (m+1)th user's coding result code_n(m+1). The present invention supports coding learners to understand on their own what problems exist in the code they have created.

Description

코딩 학습 시스템{SYSTEM OF LEARNING CODING} Coding learning system {SYSTEM OF LEARNING CODING}

본 발명은 코딩 학습 시스템에 관한 것으로, 좀 더 구체적으로는, 학습자 입장에서는, 나의 코딩 실력을 향상하기 위하여, 자신과 비슷하게 코드를 작성한 만점자의 코드를 확인하기를 원하거나, 다른 유형으로 작성한 만점자의 코드를 보면서 학습하기를 원하며, 코딩 교사의 입장에서는 다수의 학습자 각각에게 맞는 맞춤형의 모범 답안을 제시하는 것을 지원해 줄 수 있는, 코딩 학습 시스템에 관한 것이다.The present invention relates to a coding learning system, and more specifically, from a learner's point of view, in order to improve my coding skills, I want to check the code of a person who wrote a code similar to myself, or a person who wrote a code with a perfect score in a different type. It relates to a coding learning system that wants to learn while looking at code, and from the standpoint of a coding teacher, can support presenting a customized model answer suitable for each of a large number of learners.

인공지능(AI) 인재 확보를 위해선 어릴 적부터 코딩 교육에 나서야 한다는 사회적 인식이 확산되면서 2018년부터 전국 중학교에서 소프트웨어(SW) 교육이 의무화됐고, 2019년부터는 초등 5~6학년까지 확대됐다. 하지만 정작 교육 일선에서는 코딩 교육을 할 교사가 없고, 커리큘럼도 제대로 마련돼 있지 않아 '보여주기식' 겉핥기 공교육에 그칠 것이라는 우려가 높다.As the social awareness that coding education must be started from an early age in order to secure artificial intelligence (AI) talent has spread, software (SW) education has been made compulsory in middle schools nationwide since 2018, and has been expanded to 5th and 6th grades of elementary school from 2019. However, at the front line of education, there are no teachers to teach coding, and there is no proper curriculum, so there is a high concern that public education will be limited to 'show-off'.

즉, 학습자 입장에서는, 다른 만점자의 코드를 참고하여 자신의 실력을 향상하길 원하고, 교사의 입장에서는 다수의 학습자에게 맞는 맞춤형의 모범 답안을 제시해 줘야 하는 교육 현장에서의 니즈가 있었지만, 이에 부응하는 시스템이나 툴이 없었던 것이 현실이다. In other words, learners want to improve their skills by referring to the codes of other perfect scorers, and teachers have needs in the educational field to present customized model answers suitable for a large number of learners. The reality is that there were no systems or tools.

한편, 코딩 학습 시스템과 관련하여, 대한민국 특허 제10-1872005호(2018.06.21. 등록)(특허문헌 1)에 따르면, "본 발명은, 블록형 프로그래밍 에디터를 활용한 프로그래밍 커리큘럼 제공 방법으로서, 학습자의 프로그래밍 행동 정보를 획득하는 단계; 상기 학습자의 프로그래밍 행동 패턴을 분석하는 단계; 분석된 상기 학습자의 프로그래밍 행동 패턴에 실시간으로 대응하여, 상기 학습자의 프로그래밍 커리큘럼을 재설계하는 단계; 및 상기 설계된 프로그래밍 커리큘럼을 상기 학습자에게 제공하는 단계;를 포함하는, 프로그래밍 커리큘럼 제공 방법을 개시한다."는 기술을 개시하고 있다. On the other hand, in relation to the coding learning system, according to Korean Patent No. 10-1872005 (registered on June 21, 2018) (Patent Document 1), “The present invention is a method for providing a programming curriculum using a block-type programming editor, Obtaining programming behavior information of the learner; Analyzing the learner's programming behavior pattern; Corresponding to the analyzed programming behavior pattern of the learner in real time, redesigning the learner's programming curriculum; And the designed programming curriculum Discloses a method for providing a programming curriculum, including the step of providing the learner to the learner."

또한, 컴퓨터 프로그래밍 교육과 관련하여, 대한민국 특허 제10-1683022호(2016.11.30. 공고)(특허문헌 2)에 따르면, "온라인 코딩 학습 방법, 서버 및 그 시스템이 제공된다. 온라인 코딩 학습 방법은 온라인 코딩 학습 서버에 접속한 제1 학습 단말로부터 제1 코드를 수신하는 단계; 상기 제1 학습 단말로부터 상기 제1 코드에 대한 수정 요청을 수신하는 단계; 상기 온라인 코딩 학습 서버에 상기 제1 학습 단말과 동시에 접속한 하나 이상의 학습 단말 중, 상기 제1 코드를 수정하기 위한 제2 학습 단말을 선정하는 단계; 상기 제1 코드를 상기 선정된 제2 학습 단말에 제공하는 단계; 및 상기 제2 학습 단말로부터 상기 제2 학습 단말에 의해 수정된 상기 제1 코드를 제2 코드로서 수신하여, 상기 제1 학습 단말에 제공하는 단계를 포함한다."는 기술을 개시하고 있다. In addition, in relation to computer programming education, according to Korean Patent No. 10-1683022 (Announced on November 30, 2016) (Patent Document 2), "Online coding learning method, server and system are provided. Online coding learning method Receiving a first code from a first learning terminal accessing an online coding learning server; Receiving a modification request for the first code from the first learning terminal; Sending the first learning terminal to the online coding learning server. Selecting a second learning terminal for modifying the first code from among one or more learning terminals accessed at the same time; providing the first code to the selected second learning terminal; and the second learning terminal. and receiving the first code corrected by the second learning terminal as a second code from and providing the first code to the first learning terminal."

하지만, 특허문헌1 및 특허문헌2에서는, 학습자 입장에서는, 자신과 가장 비슷한 유형의 만점자 코드를 보거나, 다른 유형의 만점자 코드를 참고하여, 내가 만든 코드에 어떤 문제점이 있는 지를 스스로 이해하기를 원하며, 코딩 교사의 입장에서는 다수의 학습자 각각에게 맞는 맞춤형의 모범 답안을 제시하는 것을 지원해 줄 수 있는, 코딩 학습 시스템에 대해서는 전혀 문제의식이 없는 것으로 보인다. However, in Patent Literature 1 and Patent Literature 2, the learner wants to see the most similar type of perfect scorer code or refer to other types of perfect scorer codes to understand what is wrong with the code I created, However, from the standpoint of coding teachers, there seems to be no problem at all about the coding learning system, which can support presenting customized model answers for each learner.

대한민국 특허 제10-1872005호(2018.06.21. 등록), 발명의 명칭 : 프로그래밍 커리큘럼 제공 방법{METHOD OF PROVIDING PROGRAMMING CURRICULUM}Republic of Korea Patent No. 10-1872005 (Registered on June 21, 2018), Title of Invention: Programming Curriculum Provision Method {METHOD OF PROVIDING PROGRAMMING CURRICULUM} 대한민국 특허 제10-1639301호(2016.07.07. 공고), 발명의 명칭 : 온라인 코딩 학습 방법, 서버 및 그 시스템{ONLINE CODING LEARNING METHOD, SERVER AND SYSTEM THEREOF}Republic of Korea Patent No. 10-1639301 (2016.07.07. Announcement), Title of Invention: Online coding learning method, server and its system {ONLINE CODING LEARNING METHOD, SERVER AND SYSTEM THEREOF}

본 발명은 상술한 문제점을 해결하기 위하여 창출된 것으로, 본 발명은 학습자 입장에서는, 실력을 향상하기 위하여, 자신과 비슷하게 코드를 작성한 만점자의 코드를 확인하기를 원하거나, 다른 유형으로 작성한 만점자의 코드를 보면서, 내가 만든 코드에 어떤 문제점이 있는 지를 스스로 이해하기를 원하며, 코딩 교사의 입장에서는 다수의 학습자 각각에게 맞는 맞춤형의 모범 답안을 제시하는 것을 지원해 줄 수 있는, 코딩 학습 시스템을 개시하는 것을 목적으로 한다.The present invention was created to solve the above-mentioned problems, and the present invention is for learners who want to check the code of a person who wrote a code similar to their own in order to improve their skills, or who wrote a code with a perfect score in a different type. Looking at , I want to understand what problems are in my code, and from the perspective of a coding teacher, I want to launch a coding learning system that can support the presentation of customized model answers for each of a large number of learners. The purpose.

상기의 목적을 달성하기 위한 본 발명에 따른 코딩 학습 시스템은, n개(n은 자연수)의 코딩 과제 code_assignment가 각각 저장된 코딩 과제 저장부, 상기 n번째의 코딩 과제에 대해서, m명(m은 자연수)이 작성한 코딩 결과물 code_nm이 각각 저장된 코딩 저장부; (m+1)번째 사용자가 n번째 코딩 과제 code_assignment에 대해서 작성한 코딩 결과물 code_n(m+1)을 입력받는 코딩 결과물 입력부; 상기 (m+1)명의 상기 코딩 결과물을 서로에 대해서 코드 유사도를 판단하는 코드 유사도 판단부; 상기 코드 유사도가 임계값 threshold보다 작은 코드 결과물들은, 서로 같은 유사코드집합에 포함시키는 유사코드집합 선별부; 상기 코딩 결과물 code_nm에 대한 코딩 점수를 저장하는 코딩 점수 저장부; 및 상기 (m+1)번째 사용자가 요청하는 경우, 상기 (m+1)번째 사용자의 코딩 결과물 code_n(m+1)과 같은 유사코드집합 가운데서, 코딩 점수가 가장 높은 코딩 결과물을 제공하는, 모범답안 제공부;를 포함한다. The coding learning system according to the present invention for achieving the above object is a coding task storage unit in which n (n is a natural number) coding task code_assignment is stored, and m (m is a natural number) for the nth coding task. A coding storage unit in which each coding result code_nm written by ) is stored; a coding result input unit for receiving a coding result code_n(m+1) written by the (m+1)th user for the nth coding task code_assignment; a code similarity determining unit for determining code similarity of the (m+1) coding results with respect to each other; a similar code set selection unit for including the code results having the code similarity smaller than a threshold value in the same similar code set; a coding score storage unit to store coding scores for the coding result code_nm; and when requested by the (m+1)th user, a best answer that provides a coding result having the highest coding score among similar code sets such as the coding result code_n(m+1) of the (m+1)th user. Including;

또한, 상기 코드 유사도 판단부는, 상기 n번째의 코딩 과제에 대한, 상기 (m+1)명의 상기 코딩 결과물 code_nm을 서로에 대한 코드 유사도 거리를 계산하는 것이 바람직하다. Preferably, the code similarity determination unit calculates a code similarity distance between the (m+1) coding results code_nm for the n-th coding task.

여기서, 상기 코드 유사도 거리는, 코드 결과물 code_nk와 코드 결과물 code_nj 사이의 거리를 계산하는데, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각에서 변수를 제거하고, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각에서 상수를 제거하여, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각의 구조만을 남기고, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj의 구조에서 차이를 구하여, 상기 차이가 나는 구조의 개수를 계산하며, 여기서, 상기 차이가 나는 구조는 서로 다른 구조이거나, 한 쪽의 코드 결과물에는 있는데 다른 쪽의 코드 결과물에는 없는 구조인 것을 지칭하는, k는 1≤k≤m+1의 자연수이고, j는 1≤j≤m+1의 자연수이다. Here, the code similarity distance calculates the distance between the code result code_nk and the code result code_nj. A variable is removed from each of the code result code_nk and the code result code_nj, and a constant is set in each of the code result code_nk and the code result code_nj. , leaving only the structures of the code result code_nk and the code result code_nj, and calculating the number of structures having the difference by obtaining a difference between the structures of the code result code_nk and the code result code_nj, where the difference is I refers to a structure that is different from each other, or a structure that is present in one code result but not in the other code result, k is a natural number of 1≤k≤m+1, and j is 1≤j≤m+1 is the natural number of

또한, 상기 유사코드집합이 3개 또는 4개가 나오도록, 상기 임계값 threshold를 자동으로 조정하는 것이 바람직하다. In addition, it is preferable to automatically adjust the threshold value so that three or four pseudocode sets appear.

또한, 상기 코딩 결과물 code_nm에 대하여, 코딩 점수를 채점하는 코딩 점수 채점부;를 더 포함하는 것이 바람직하다. In addition, it is preferable to further include a coding score scoring unit for scoring a coding score for the coding result code_nm.

또한, 상기 코딩 결과물 code_nm에 대하여 임의의 특정 개수의 입력값을 입력하여, 정확한 출력값이 나오는 지 개수에 기초하여, 상기 코딩 결과물 code_nm에 대한 코딩 점수를 채점하는 코딩 점수 채점부;를 더 포함하는 것이 바람직하다. In addition, it further includes; a coding score scoring unit for scoring a coding score for the coding result code_nm based on the number of correct output values by inputting a certain number of input values for the coding result code_nm. desirable.

본 발명에 따른 코딩 학습 시스템에 의하면, According to the coding learning system according to the present invention,

첫째, 코딩 학습자의 입장에서, 다른 학습자들이 우수하게 작성한 코드 작성법을 알고 싶어 하는 니즈를 충족시켜 준다. First, from a coding learner's point of view, it satisfies the need to know how to write well-written codes by other learners.

둘째, 코딩 학습자가 내가 만든 코드에 어떤 문제점이 있는 지를 스스로 이해할 수 있도록 지원해 준다. Second, it supports coding learners to understand what problems are in their code.

구체적으로는, 학습자 또는 사용자와 유사한 코드 집합에 속하는 만점자의 코드 하나를 보여주는 것이, 다른 코드 집합에 속하는 만점자의 코드를 보여주는 것보다 본인의 코드가 만점이 아닌지를 이해하는 데 더 도움을 주게 된다. 모범 답안을 보여주는 것과 같아서, 즉 학습자의 코드와 가까운 거리에 있는 코드이므로, 학습자한테 참조가 많이 될 수 있을 것이다. Specifically, showing one code of a perfect scorer belonging to a code set similar to the learner or user is more helpful in understanding whether one's code is not perfect than showing the code of a perfect scorer belonging to a different code set. It is like showing a model answer, that is, it is a code that is close to the learner's code, so it can be a lot of reference for the learner.

한편, 학습자 또는 사용자가 작성한 방식이나 접근 방법 이외에 완전히 다른 접근방법으로 작성된 코드를 보여주는 것도, 학습자의 코딩 실력 향상에 도움을 줄 수 있지만, 이것은 학습자의 코드와 가까운 거리에 있는 코드, 즉 서로 같은 유사코드집합에 있는 코드를 보여준 다음에, 보여주거나 알려 주는 것이 학습적으로 더욱 효과적이다. On the other hand, showing code written in a completely different approach other than the way or approach written by the learner or user can help learners improve their coding skills, but this is code that is close to the learner's code, that is, similar to each other. Showing the code in the code set and then showing or telling it is more effective for learning.

셋째, 코딩 교사의 입장에서는 다수의 학습자 각각에게 맞는 맞춤형의 모범 답안을 제시하는 것을 지원해 줄 수 있다. 즉, 모두 동일한 모범 답안을 제시하는 것이 아니라, 해당 학습자가 속하는 유사코드집합 내의 만점 코드를 보여주는 것이 가능하다. Third, from a coding teacher's point of view, it is possible to support presenting a customized model answer for each learner. That is, it is possible to show the perfect score code within the pseudo code set to which the learner belongs, instead of presenting the same model answer for all.

도 1은 본 발명에 따른 코딩 학습 시스템의 코딩 저장부에 저장된 3개의 코딩 샘플 예시(1번 샘플, 2번 샘플, 3번 샘플)를 나타낸 것이다.
도 2는 도 1의 1번 샘플 코드를 AST(Abstract Syntax Tree)로 변환한 것을 나타낸 것이다.
도 3은 도 1의 2번 샘플 코드를 AST(Abstract Syntax Tree)로 변환한 것을 나타낸 것이다.
도 4 및 도 5는 도 1의 3번 샘플 코드를 AST(Abstract Syntax Tree)로 변환한 것을 나타낸 것이다.
도 6은 AST를 Finger_print로 변환하는 과정을 나타낸 것이다.
도 7은 도 2의 1번 샘플의 AST를 Finger_print로 변환한 것을 나타낸 것이다.
도 8은 도 3의 2번 샘플의 AST를 Finger_print로 변환한 것을 나타낸 것이다.
도 9 및 도 10은 도 4 및 도 5의 3번 샘플의 AST를 Finger_print로 변환한 것을 나타낸 것이다.
도 11은 코드 간의 거리를 계산하는 과정을 나타낸 것이다.
도 12는 1번 샘플 코드 및 2번 샘플 코드 간의 거리를 계산한 것이다.
도 13은 1번 샘플 코드, 2번 샘플 코드, 및 3번 샘플 코드 각각 사이의 거리를 계산한 결과이다.
도 14는 도 13의 결과에 기초하여, 1번 샘플과 2 번 샘플이 3번 샘플보다 더 유사하다는 결론에 도달한 것을 나타낸 것이다.
1 shows examples of three coding samples (sample 1, sample 2, and sample 3) stored in the coding storage of the coding learning system according to the present invention.
FIG. 2 shows a conversion of sample code No. 1 of FIG. 1 into an Abstract Syntax Tree (AST).
FIG. 3 shows a conversion of sample code No. 2 of FIG. 1 into an Abstract Syntax Tree (AST).
4 and 5 show conversion of sample code No. 3 of FIG. 1 into an Abstract Syntax Tree (AST).
6 illustrates a process of converting AST to Finger_print.
FIG. 7 shows conversion of the AST of sample No. 1 in FIG. 2 to Finger_print.
8 shows conversion of the AST of sample 2 in FIG. 3 to Finger_print.
9 and 10 show conversion of the AST of sample 3 in FIGS. 4 and 5 to Finger_print.
11 illustrates a process of calculating a distance between codes.
12 is a calculation of a distance between sample code 1 and sample code 2.
13 is a result of calculating distances between each of sample code No. 1, sample code No. 2, and sample code No. 3.
FIG. 14 shows that, based on the results of FIG. 13 , the conclusion that samples 1 and 2 are more similar than sample 3 is reached.

이하 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings. Prior to this, the terms or words used in this specification and claims should not be construed as being limited to the usual or dictionary meaning, and the inventor appropriately uses the concept of the term in order to explain his/her invention in the best way. Based on the principle that it can be defined, it should be interpreted as meaning and concept consistent with the technical spirit of the present invention.

따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Therefore, since the embodiments described in this specification and the configurations shown in the drawings are only one of the most preferred embodiments of the present invention and do not represent all of the technical ideas of the present invention, various alternatives may be used at the time of this application. It should be understood that there may be equivalents and variations.

아래에서는 도면을 참조하여, 본 발명에 따른 코딩 학습 시스템에 대해서 설명한다. Hereinafter, a coding learning system according to the present invention will be described with reference to the drawings.

본 발명에 따른 코딩 학습 시스템은, 코딩 과제 저장부; 코딩 저장부; 코딩 결과물 입력부; 코드 유사도 판단부; 유사코드집합 선별부; 코딩 점수 저장부; 및 모범답안 제공부;를 포함한다. A coding learning system according to the present invention includes a coding task storage unit; coding storage unit; Coding result input unit; a code similarity determination unit; a similar code set selector; coding score storage unit; and a model answer providing unit.

먼저, 코딩 과제 저장부는, n개(n은 자연수)의 코딩 과제 code_assignment가 저장되어 있다. 학습자(사용자)가 코딩 학습 시스템에 접속하여 스스로 n개의 코딩 과제를 학습하는 것이 가능하다. First, the coding task storage unit stores n (n is a natural number) coding task code_assignment. It is possible for a learner (user) to access the coding learning system and learn n coding tasks by himself.

다음으로, 코딩 저장부는, n번째의 코딩 과제에 대해서, m명(m은 자연수)이 작성한 코딩 결과물 code_nm이 각각 저장된 구성이다. 이 코딩 결과물 code_nm은 미리 저장되어 있을 수도 있고, 코딩 학습 시스템이 운영되면서 추가적으로 입력되는 코딩 결과물일 수도 있다. Next, the coding storage unit stores coding result code_nm written by m people (m is a natural number) for the n-th coding task. This coding result code_nm may be stored in advance or may be a coding result additionally input while the coding learning system is operated.

다음으로, (m+1)번째 사용자(학습자)가 n번째 코딩 과제 code_assignment에 대해서 작성한 코딩 결과물 code_n(m+1)을 입력받는 구성이다. Next, the (m+1)th user (learner) receives the coding result code_n(m+1) written for the nth coding task code_assignment.

이와 같이 입력된 코딩 결과물 code_n(m+1)은 사용자 또는 학습자의 요청에 따라서, 또는 코딩 학습 시스템 자동으로 또는 특정한 요건을 충족하는 경우, 필요에 따라서 코딩 학습 시스템이 (m+1)명의 상술한 코딩 결과물을 서로 서로에 대해서 코드 유사도를 판단하는 구성을 갖는다. The coding result code_n(m+1) entered in this way is generated by the coding learning system according to the user's or learner's request, automatically, or when a specific requirement is met, as needed by the coding learning system (m+1). It has a configuration for determining the code similarity of the coding results with respect to each other.

유사코드집합 선별부는, 상술한 코드 유사도가 임계값 threshold보다 작은 코드 결과물들은, 서로 같은 유사코드집합에 포함시키는 구성이다. The pseudocode set selector is a component that includes code results having the aforementioned code similarity smaller than a threshold value in the same pseudocode set.

또한, 코딩 점수 저장부는, 상술한 코딩 결과물 code_nm에 대한 코딩 점수를 저장하는 구성이다. Also, the coding score storage unit is a component that stores coding scores for the above-described coding result code_nm.

또한, 모범답안 제공부는, (m+1)번째 사용자가 요청하는 경우, 사용자가 작성한 코딩 결과물 code_n(m+1)과 같은 유사코드집합 가운데서, 코딩 점수가 가장 높은 코딩 결과물, 또는 코딩 점수가 가장 높은 코딩 결과물이 복수 개의 경우 그 가운데 하나 이상을 제공하는 구성이다. In addition, when the (m+1)th user requests, the model answer providing unit has the highest coding score or the highest coding score among similar code sets such as code_n(m+1), the coding result written by the user. In the case of a plurality of high coding results, one or more of them is provided.

또한, 코드 유사도 판단부는, n번째의 코딩 과제에 대한, (m+1)명의 상기 코딩 결과물 code_nm을 서로에 대한 코드 유사도 거리를 계산하여 판단하는 것이 바람직하다. In addition, the code similarity determiner preferably calculates and determines a code similarity distance between (m+1) coding results code_nm for the n-th coding task.

여기서, 상기 코드 유사도 거리는, 코드 결과물 code_nk와 코드 결과물 code_nj 사이의 거리를 계산하는데, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각에서 변수를 제거하고, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각에서 상수를 제거하여, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각의 구조(크드 결과물의 구조는 Abstract Syntax Tree(AST)를 말하며, 에 대해서는 후술함)만을 남기고, 상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj의 구조에서 차이를 구하여, 상기 차이가 나는 구조의 개수를 계산하며, 여기서, 상기 차이가 나는 구조는 서로 다른 구조이거나, 한 쪽의 코드 결과물에는 있는데 다른 쪽의 코드 결과물에는 없는 구조인 것을 지칭하는, k는 1≤k≤m+1의 자연수이고, j는 1≤j≤m+1의 자연수이다. 코드 구조의 차이를 구하여, 차이가 나는 구조를 이용하여 코드 간의 거리를 구하는 것에 대해서는 아래의 도면을 참조하여 설명하는 부분(AST를 Finger_print로 각각 변환하여, Finger_print를 비교함으로써, 변경, 삭제 연산이 발생하는 수를 거리로 계산하는 것)에서 자세히 설명하기로 한다. Here, the code similarity distance calculates the distance between the code result code_nk and the code result code_nj. A variable is removed from each of the code result code_nk and the code result code_nj, and a constant is set in each of the code result code_nk and the code result code_nj. removed, leaving only the structure of the code result code_nk and the code result code_nj (the structure of the code result refers to an Abstract Syntax Tree (AST), which will be described later), and in the structure of the code result code_nk and the code result code_nj. The difference is obtained and the number of structures with the difference is calculated, where k is a structure that is different from each other or a structure that is present in one code result but not in the other code result. It is a natural number of 1≤k≤m+1, and j is a natural number of 1≤j≤m+1. The part described with reference to the figure below for obtaining the difference in code structure and finding the distance between codes using the structure with the difference (change and deletion operations occur by converting AST to Finger_print and comparing Finger_print respectively) Calculating the number as a distance) will be explained in detail.

또한, 상기 유사코드집합이 3개 또는 4개가 나오도록, 상기 임계값 threshold를 자동으로 조정하는 것이 바람직하다. In addition, it is preferable to automatically adjust the threshold value so that three or four pseudocode sets appear.

또한, 상기 코딩 결과물 code_nm에 대하여, 코딩 점수를 채점하는 코딩 점수 채점부;를 더 포함하는 것이 바람직하다. 또한, 상기 코딩 결과물 code_nm에 대하여 임의의 특정 개수의 입력값을 입력하여, 정확한 출력값이 나오는 지 개수에 기초하여, 상기 코딩 결과물 code_nm에 대한 코딩 점수를 채점하는 코딩 점수 채점부;를 더 포함하는 것이 바람직하다. In addition, it is preferable to further include a coding score scoring unit for scoring a coding score for the coding result code_nm. In addition, it further includes; a coding score scoring unit for scoring a coding score for the coding result code_nm based on the number of correct output values by inputting a certain number of input values for the coding result code_nm. desirable.

예를 들어, 구구단 코드 결과물에 대해서, 구구단 전체 또는 일부를 입력값으로 입력해서, 정확한 결과가 나오는 지를 보고, 정확한 값이 비율로 만점 기준의 점수를 매기는 것이 가능하다. 또는 코딩 결과물 code_nm에서 오답 비율이 높은 것에 대해서, 오답 비율을 이용한 가중치를 바탕으로 채점을 하는 것도 가능하다. For example, for a multiplication table code result, it is possible to enter all or part of the multiplication table as an input value, see if an accurate result is obtained, and score the perfect score based on the ratio of the correct value. Alternatively, it is also possible to score based on weights using the incorrect answer ratio for those having a high error rate in the coding result code_nm.

예를 들어, 입력값 3개에 대해서, 오답비율이 1번 입력값에 대해서는 25%, 2번 입력값에 대해서는 50%, 3번 입력값에 대해서는 75%를 가정하면, (1) 1번 입력값에 대해서만 정확한 값을 출력하는 코딩 결과물에 대해서, 100만점 * {25 / (25+50+75)} = 100/6 = 16.7점, (2) 1번 및 2번 입력값에 대해서 정확한 값을 출력하는 코딩 결과물에 대해서는, 100만점 * {(25+50) / (25+50+75)} = 100*3/6 = 50점, (3) 3번 입력값에 대해서 정확한 값을 출력하는 코딩 결과물에 대해서는, 100만점 * {(75) / (25+50+75)} = 100*3/6 = 50점, (4) 2번 및 3번 입력값에 대해서 정확한 값을 출력하는 코딩 결과물에 대해서는, 100만점 * {(50+75) / (25+50+75)} = 100*5/6 = 83.4점, 즉, 오답비율이 높은 입력값에 대해서 가중치(배점)를 높이는 것이 가능하다. 오답비율이 높은 입력값을 맞추면 채점의 결과인 점수가 높게 나오게 된다. For example, for three input values, assuming that the error rate is 25% for input value 1, 50% for input value 2, and 75% for input value 3, (1) input value 1 For coding results that output accurate values only for values, 1 million points * {25 / (25+50+75)} = 100/6 = 16.7 points, (2) Correct values for input values 1 and 2 For the output coding result, 1 million points * {(25+50) / (25+50+75)} = 100*3/6 = 50 points, (3) Coding that outputs the correct value for input value 3 For the output, 1 million points * {(75) / (25+50+75)} = 100 * 3/6 = 50 points, (4) For the coding output that outputs accurate values for input values 2 and 3 For, 1 million points * {(50 + 75) / (25 + 50 + 75)} = 100 * 5/6 = 83.4 points, that is, it is possible to increase the weight (point distribution) for input values with a high error rate. If you match the input value with a high error rate, the score, which is the result of scoring, will be high.

다음으로, 아래에서는, 3개의 코드 샘플을 가지고 본 발명에 따른 코딩 학습 시스템에 대해서 설명하기로 한다. Next, below, the coding learning system according to the present invention will be described with three code samples.

도 1은 본 발명에 따른 코딩 학습 시스템의 코딩 저장부에 저장된 3개의 코딩 샘플(1번 샘플, 2번 샘플, 3번 샘플)를 나타낸 것이다. 3개의 코딩 샘플은 동일한 코딩 과제 code_assignment에 대해서 3명의 학습자 또는 사용자가 작성한 코드이다. 1 shows three coding samples (sample No. 1, sample No. 2, and sample No. 3) stored in the coding storage unit of the coding learning system according to the present invention. The three coding samples are codes written by three learners or users for the same coding task code_assignment.

도 2는 도 1의 1번 샘플 코드를 AST(Abstract Syntax Tree)로 변환한 것을 나타낸 것이고, 도 3은 도 1의 2번 샘플 코드를 AST(Abstract Syntax Tree)로 변환한 것을 나타낸 것이고, 도 4 및 도 5는 도 1의 3번 샘플 코드를 AST(Abstract Syntax Tree)로 변환한 것을 나타낸 것이다. FIG. 2 shows the conversion of sample code No. 1 of FIG. 1 into an Abstract Syntax Tree (AST), FIG. 3 shows the conversion of sample code No. 2 of FIG. 1 into an Abstract Syntax Tree (AST), and FIG. 4 and FIG. 5 shows conversion of sample code No. 3 of FIG. 1 into an Abstract Syntax Tree (AST).

그리고, 도 6은 AST를 Finger_print로 변환하는 과정을 나타낸 것이다. 도 6에 도시된 것처럼, AST 각 노드를 전위 순회(Tree 구조로 노드들이 구성되어 있을 경우 Parent 노드를 먼저 방문하고 Child 노드를 방문하는 순서로 방문)하는데, 방문한 노드의 맨 앞 글자와 _다음 글자를 추출한다. 만약 추출된 글자가 4개 미만이라면 빈 공간은 _로 채운다. AST 전체에 대해서 반복하게 된다. 노드 별로 attribute를 추출하는데, attribute는 변수에 해당하는 노드의 경우에 변수의 타입을 일컫으며, (예를 들어, C언어에서 int), 오퍼레이터 노드의 경우 실제 오퍼레이터의 종류(예를 들어 ++, +=, x)들이 이에 해당한다.And, FIG. 6 shows a process of converting AST to Finger_print. As shown in FIG. 6, each AST node is pre-traversed (when nodes are configured in a tree structure, the parent node is visited first and then the child node is visited in the order), the first letter of the visited node and the next letter _ extract If the number of extracted characters is less than 4, the empty space is filled with _. It will iterate over the entire AST. Attribute is extracted for each node. In the case of a node corresponding to a variable, the attribute refers to the variable type (eg, int in C language), and in the case of an operator node, the type of actual operator (eg ++, +=, x) correspond to this.

이와 같은 방법을 적용하여, 도 7은 도 2의 1번 샘플의 AST를 Finger_print로 변환한 것을 나타낸 것이고, 도 8은 도 3의 2번 샘플의 AST를 Finger_print로 변환한 것을 나타낸 것이고, 도 9 및 도 10은 도 4 및 도 5의 3번 샘플의 AST를 Finger_print로 변환한 것을 나타낸 것이다. Applying this method, FIG. 7 shows the conversion of the AST of sample No. 1 in FIG. 2 into Finger_print, and FIG. 8 shows the conversion of the AST of sample No. 2 in FIG. 3 into Finger_print. 10 shows conversion of the AST of sample 3 in FIGS. 4 and 5 to Finger_print.

다음으로, 도 11은 코드 간의 유사도를 판단하기 위해서 코드 간의 거리를 계산하는 과정을 나타낸 것이다. 도 11에 도시된 것처럼, 각 샘플끼리 쌍으로 Finger_print를 비교한다. 변경, 삭제 연산이 발생할 경우, 거리(distance)가 1씩 증가한다. 최종적으로 2개의 샘플이 같아지기 위한 연산 횟수를 계산하여, 2개의 코드 샘플 간의 거리를 계산한다. Next, FIG. 11 illustrates a process of calculating a distance between codes in order to determine a degree of similarity between codes. As shown in FIG. 11, Finger_print is compared for each sample in pairs. When a change or delete operation occurs, the distance increases by one. Finally, the distance between the two code samples is calculated by calculating the number of operations for the two samples to be the same.

예를 들어, 도 12는 1번 샘플 코드 및 2번 샘플 코드 간의 거리를 계산한 것으로, 도 12에 도시된 것처럼, 1번 샘플의 코드 및 2번 샘플의 코드 간의 거리를 계산하기 위해서, 1번 코드 샘플의 Finger_print 및 2번 코드 샘플의 Finger_print가 같아지기 위해서는 변경, 삭제가 총 15번 필요하기 때문에, 1번 샘플 코드 및 2번 샘플 코드 간의 거리 distance는 15가 된다. For example, FIG. 12 is a calculation of the distance between sample code 1 and sample code 2. As shown in FIG. 12, in order to calculate the distance between the code of sample 1 and the code of sample 2, In order for the Finger_print of the code sample and the Finger_print of the second code sample to be the same, a total of 15 changes and deletions are required, so the distance between the code sample code No. 1 and the sample code No. 2 becomes 15.

도 13은 1번 샘플 코드, 2번 샘플 코드, 및 3번 샘플 코드 각각 사이의 거리를 계산한 결과이다. 코드 유사도를 판단할 때는, 코드 간의 서로 서로의 거리를 모두 계산하게 된다. 1번 샘플 코드 및 2번 샘플 코드의 거리는 15이고, 1번 샘플 코드 및 3번 샘플 코드의 거리는 35이고, 2번 샘플 코드 및 3번 샘플 코드의 거리는 35이다. 13 is a result of calculating distances between each of sample code No. 1, sample code No. 2, and sample code No. 3. When determining the code similarity, all mutual distances between codes are calculated. The distance between sample code No. 1 and code No. 2 is 15, the distance between sample code No. 1 and sample code No. 3 is 35, and the distance between sample code No. 2 and sample code No. 3 is 35.

다음으로, 도 14는 도 13의 결과에 기초하여, 1번 샘플과 2 번 샘플이 3번 샘플보다 더 유사하다는 결론에 도달한 것을 나타낸 것이다. 도 14에 도시된 것처럼, 1번 샘플 코드 및 2번 샘플 코드의 거리는 15이고, 1번 샘플 코드 및 3번 샘플 코드의 거리는 35이므로, 따라서 1번 코드 샘플과 2번 코드 샘플이 더 유사한 코드라는 것을 알 수 있다. Next, FIG. 14 shows that based on the results of FIG. 13 , the conclusion that samples 1 and 2 are more similar than sample 3 is reached. As shown in FIG. 14, the distance between sample code No. 1 and sample code No. 2 is 15, and the distance between sample code No. 1 and sample code No. 3 is 35, so that code sample No. 1 and code sample No. 2 are more similar codes. can know that

이와 같이 코드 간의 거리를 기초로 하여, 코드 유사도를 판단하고, 유사코드집합이 3개 또는 4개 정도가 되도록(물론 3개 또는 4개는 코딩 학습 시스템의 설계에 따라 변경될 수도 있다), 임계값 거리를 설정하여 그 임계값보다 작은 거리를 갖는 코드는 유사코드집합에 포함되도록 선별하게 된다. In this way, based on the distance between codes, the code similarity is determined, and the similar code set is about 3 or 4 (of course, 3 or 4 may be changed according to the design of the coding learning system), the threshold By setting a value distance, codes having a distance smaller than the threshold value are selected to be included in the pseudo code set.

이와 같은 본 발명에 따른 코딩 학습 시스템 문제을 이용할 경우, 학습자 또는 사용자가 내가 작성한 코드가 어느 유사코드집합에 속하는 지 알려주는 것이 가능하며, 해당 학습자 또는 사용자가 코딩 과제에 대해서 만점을 못 받은 경우에, 아무리 궁리해 봐도 100점 만점에 90점밖에 안되는 경우가 있을 수 있다. 예를 들어, 조건문 하나를 빠뜨린 경우를 들 수 있다. In the case of using the coding learning system problem according to the present invention, it is possible for a learner or user to inform which pseudo code set the code I wrote belongs to, and if the learner or user does not receive a perfect score for the coding task, No matter how hard you try, there may be cases where you only get 90 points out of 100. For example, if one conditional statement is omitted.

이 경우, 학습자 또는 사용자와 유사한 코드 집합에 속하는 만점자의 코드 하나를 보여주는 것이, 다른 코드 집합에 속하는 만점자의 코드를 보여주는 것보다 본인의 코드가 만점이 아닌지를 이해하는 데 더 도움을 주게 된다. 모범 답안을 보여주는 것과 같아서, 즉 학습자의 코드와 가까운 거리에 있는 코드이므로, 학습자한테 참조가 많이 될 수 있을 것이다. In this case, showing one code of a perfect scorer belonging to a code set similar to the learner or user is more helpful in understanding whether one's code is not perfect than showing the code of a perfect scorer belonging to a different code set. It is like showing a model answer, that is, it is a code that is close to the learner's code, so it can be a lot of reference for the learner.

한편, 학습자 또는 사용자가 작성한 방식이나 접근 방법 이외에 완전히 다른 접근방법으로 작성된 코드를 보여주는 것도, 학습자의 코딩 실력 향상에 도움을 줄 수 있지만, 이것은 학습자의 코드와 가까운 거리에 있는 코드, 즉 서로 같은 유사코드집합에 있는 코드를 보여준 다음에, 보여주거나 알려 주는 것이 학습적으로 더욱 효과적이다. On the other hand, showing code written in a completely different approach other than the way or approach written by the learner or user can help learners improve their coding skills, but this is code that is close to the learner's code, that is, similar to each other. Showing the code in the code set and then showing or telling it is more effective for learning.

또한, 코딩 교사의 입장에서는 다수의 학습자 각각에게 맞는 맞춤형의 모범 답안을 제시하는 것을 지원해 줄 수 있다. 즉, 모두 동일한 모범 답안을 제시하는 것이 아니라, 해당 학습자가 속하는 유사코드집합 내의 만점 코드를 보여주는 것이 가능하다. In addition, from the standpoint of a coding teacher, it is possible to support presenting a customized model answer for each of a plurality of learners. That is, it is possible to show the perfect score code within the pseudo code set to which the learner belongs, instead of presenting the same model answer for all.

이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술 사상과 아래에 기재될 청구범위의 균등 범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.As described above, although the present invention has been described by the limited embodiments and drawings, the present invention is not limited thereto, and the technical spirit of the present invention and the following by those skilled in the art to which the present invention belongs Of course, various modifications and variations are possible within the scope of equivalents of the claims to be set forth.

Claims (5)

n개(n은 자연수)의 코딩 과제 code_assignment가 각각 저장된 코딩 과제 저장부,
상기 n번째의 코딩 과제에 대해서, m명(m은 자연수)이 작성한 코딩 결과물 code_nm이 각각 저장된 코딩 저장부;
(m+1)번째 사용자가 n번째 코딩 과제 code_assignment에 대해서 작성한 코딩 결과물 code_n(m+1)을 입력받는 코딩 결과물 입력부;
상기 (m+1)명의 상기 코딩 결과물을 서로에 대해서 코드 유사도를 판단하는 코드 유사도 판단부;
상기 코드 유사도가 임계값 threshold보다 작은 코드 결과물들은, 서로 같은 유사코드집합에 포함시키는 유사코드집합 선별부;
상기 코딩 결과물 code_nm에 대한 코딩 점수를 저장하는 코딩 점수 저장부; 및
상기 (m+1)번째 사용자가 요청하는 경우, 상기 (m+1)번째 사용자의 코딩 결과물 code_n(m+1)과 같은 유사코드집합 가운데서, 코딩 점수가 가장 높은 코딩 결과물을 제공하는, 모범답안 제공부;를 포함하는,
코딩 학습 시스템.
A coding task storage unit in which n (n is a natural number) coding task code_assignment is stored, respectively;
For the n-th coding task, a coding storage unit storing coding result code_nm written by m people (m is a natural number);
a coding result input unit for receiving a coding result code_n(m+1) written by the (m+1)th user for the nth coding task code_assignment;
a code similarity determining unit for determining code similarity of the (m+1) coding results with respect to each other;
a similar code set selection unit for including the code results having the code similarity smaller than a threshold value in the same similar code set;
a coding score storage unit to store coding scores for the coding result code_nm; and
When requested by the (m+1)th user, a best answer that provides a coding result with the highest coding score among similar code sets such as the coding result code_n(m+1) of the (m+1)th user. Including;
Coding learning system.
제 1 항에 있어서,
상기 코드 유사도 판단부는,
상기 n번째의 코딩 과제에 대한, 상기 (m+1)명의 상기 코딩 결과물 code_nm을 서로에 대한 코드 유사도 거리를 계산하는 것을 특징으로 하는,
코딩 학습 시스템.
According to claim 1,
The code similarity determination unit,
Characterized in that for the n-th coding task, a code similarity distance is calculated for the (m + 1) coding results code_nm to each other,
Coding learning system.
제 2 항에 있어서,
상기 코드 유사도 거리는,
코드 결과물 code_nk와 코드 결과물 code_nj 사이의 거리를 계산하는데,
상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각에서 변수를 제거하고,
상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각에서 상수를 제거하여,
상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj 각각의 구조만을 남기고,
상기 코드 결과물 code_nk와 상기 코드 결과물 code_nj의 구조에서 차이를 구하여,
상기 차이가 나는 구조의 개수를 계산하며,
여기서, 상기 차이가 나는 구조는 서로 다른 구조이거나, 한 쪽의 코드 결과물에는 있는데 다른 쪽의 코드 결과물에는 없는 구조인 것을 지칭하는,
k는 1≤k≤m+1의 자연수이고, j는 1≤j≤m+1의 자연수인,
코딩 학습 시스템.
According to claim 2,
The code similarity distance,
Calculate the distance between the code result code_nk and the code result code_nj,
removing a variable from each of the code result code_nk and the code result code_nj;
By removing a constant from each of the code result code_nk and the code result code_nj,
Leaving only the structure of each of the code result code_nk and the code result code_nj,
By obtaining a difference in the structure of the code result code_nk and the code result code_nj,
Calculate the number of structures with the difference,
Here, the structure with the difference refers to a different structure or a structure that exists in one code result but not in the other code result,
k is a natural number of 1 ≤ k ≤ m + 1, j is a natural number of 1 ≤ j ≤ m + 1,
Coding learning system.
제 1 항에 있어서,
상기 유사코드집합이 3개 또는 4개가 나오도록, 상기 임계값 threshold를 자동으로 조정하는 것을 특징으로 하는,
코딩 학습 시스템.
According to claim 1,
Characterized in that the threshold value is automatically adjusted so that three or four pseudo code sets appear.
Coding learning system.
제 1 항에 있어서,
상기 코딩 결과물 code_nm에 대하여, 코딩 점수를 채점하는 코딩 점수 채점부;를 더 포함하고,
상기 코딩 점수 채점부는, 상기 코딩 결과물 code_nm에 대하여 임의의 특정 개수의 입력값을 입력하여, 정확한 출력값이 나오는 지 개수에 기초하여, 상기 코딩 결과물 code_nm에 대한 코딩 점수를 채점하는 것을 특징으로 하는,
코딩 학습 시스템.

According to claim 1,
Further comprising: a coding score scoring unit for scoring a coding score for the coding result code_nm;
Characterized in that the coding score scoring unit scores a coding score for the coding result code_nm based on the number of correct output values by inputting a certain number of input values for the coding result code_nm,
Coding learning system.

KR1020210081763A 2021-06-23 2021-06-23 System of learning coding KR102501477B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210081763A KR102501477B1 (en) 2021-06-23 2021-06-23 System of learning coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210081763A KR102501477B1 (en) 2021-06-23 2021-06-23 System of learning coding

Publications (2)

Publication Number Publication Date
KR20220170654A true KR20220170654A (en) 2022-12-30
KR102501477B1 KR102501477B1 (en) 2023-02-21

Family

ID=84538567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210081763A KR102501477B1 (en) 2021-06-23 2021-06-23 System of learning coding

Country Status (1)

Country Link
KR (1) KR102501477B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190078849A (en) * 2017-12-27 2019-07-05 동국대학교 산학협력단 Apparatus for evaluating program codes and operating method thereof
KR20200027077A (en) * 2018-08-28 2020-03-12 (주)이노코딩 Apparatus for auto generating code literacy curriculum and system for code objective similarity examination
KR20200081015A (en) * 2018-12-27 2020-07-07 ㈜ 한국공학기술연구원 Software coding training support and evaluation system
JP6803086B2 (en) * 2018-02-19 2020-12-23 株式会社キュレオ Programming learning program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190078849A (en) * 2017-12-27 2019-07-05 동국대학교 산학협력단 Apparatus for evaluating program codes and operating method thereof
JP6803086B2 (en) * 2018-02-19 2020-12-23 株式会社キュレオ Programming learning program
KR20200027077A (en) * 2018-08-28 2020-03-12 (주)이노코딩 Apparatus for auto generating code literacy curriculum and system for code objective similarity examination
KR20200081015A (en) * 2018-12-27 2020-07-07 ㈜ 한국공학기술연구원 Software coding training support and evaluation system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
대한민국 특허 제10-1639301호(2016.07.07. 공고), 발명의 명칭 : 온라인 코딩 학습 방법, 서버 및 그 시스템{ONLINE CODING LEARNING METHOD, SERVER AND SYSTEM THEREOF}
대한민국 특허 제10-1872005호(2018.06.21. 등록), 발명의 명칭 : 프로그래밍 커리큘럼 제공 방법{METHOD OF PROVIDING PROGRAMMING CURRICULUM}

Also Published As

Publication number Publication date
KR102501477B1 (en) 2023-02-21

Similar Documents

Publication Publication Date Title
US8239762B2 (en) Method and system for automatic generation of adapted content to facilitate reading skill development for language learners
Hadwen-Bennett et al. Making programming accessible to learners with visual impairments: a literature review
Sabitzer et al. Computational thinking through modeling in language lessons
JP2019061189A (en) Teaching material authoring system
US20020069047A1 (en) Computer-aided language learning method and system
KR102501477B1 (en) System of learning coding
Du Preez et al. Taxation students’ perceptions of open-book assessment prior to the qualifying examination of South African chartered accountants
Nita et al. The Implementation of Duolingo Application to Enhance English Learning for Millennials
Hill et al. The readability of content textbooks used in middle and junior high schools
Lessard-Clouston et al. Corpora and English language teaching: Pedagogy and practical applications for data-driven learning
Loidl et al. Preparatory knowledge: Propaedeutic in informatics
Heck et al. Generating and authoring high-variability exercises from authentic texts
Thomas et al. Automatic answer assessment in LMS using latent semantic analysis
Kysh Implementing the Curriculum and Evaluation Standards: First-Year Algebra
Lebedeva Improving the Lexical and Grammatical Skills of Students Specializing in Hydraulic Engineering and Water Resources by Means of Writing
Cassens et al. Engaging cs1 students with project based learning
Shedeed et al. A new intelligent methodology for computer based assessment of short answer question based on a new enhanced Soundex phonetic algorithm for Arabic language
US20120100519A1 (en) Training system
Huber et al. Semi-automatic generation of textual exercises for software engineering education
Jianguo et al. The design and implementation of multimedia intelligent tutoring system for Chinese characters
CN111797244B (en) Intelligent situation teaching method and system based on knowledge graph and conversation robot
JP7294451B2 (en) LEARNING SUPPORT DEVICE, LEARNING SUPPORT METHOD, AND PROGRAM
Bobalo et al. The Gamification Approach in Electrical Engineering Disciplines Teaching for Students with Special Needs
Yangarber Support for endangered and low-resource languages via e-learning, translation and crowd-sourcing
Muhammadaliyevna USING COMPUTER EDUCATIONAL SOFTWARE

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant