KR101963016B1 - Learning apparatus for intelligent computer programing language and learning method using the same - Google Patents

Learning apparatus for intelligent computer programing language and learning method using the same Download PDF

Info

Publication number
KR101963016B1
KR101963016B1 KR1020170013748A KR20170013748A KR101963016B1 KR 101963016 B1 KR101963016 B1 KR 101963016B1 KR 1020170013748 A KR1020170013748 A KR 1020170013748A KR 20170013748 A KR20170013748 A KR 20170013748A KR 101963016 B1 KR101963016 B1 KR 101963016B1
Authority
KR
South Korea
Prior art keywords
source code
groups
average
function
regions
Prior art date
Application number
KR1020170013748A
Other languages
Korean (ko)
Other versions
KR20180089096A (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 KR1020170013748A priority Critical patent/KR101963016B1/en
Publication of KR20180089096A publication Critical patent/KR20180089096A/en
Application granted granted Critical
Publication of KR101963016B1 publication Critical patent/KR101963016B1/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
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip

Landscapes

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

Abstract

본 발명은 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법에 대한 것이다.
본 발명에 따른 지능형 컴퓨터 프로그래밍 언어 학습기는 출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는 코드 입력부; 특정 함수 또는 특정 기호를 기준으로 상기 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 상기 복수의 영역을 그룹핑하는 그룹핑부; 상기 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 상기 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성하는 문제 생성부; 및 상기 생성된 문제를 출력하여 상기 사용자에게 제공하는 출력부를 포함한다.
이와 같이 본 발명에 따르면, 컴퓨터 프로그래밍 언어를 습득하기 위해 랜덤하게 출제되는 문제를 시간과 장소에 제한없이 학습할 수 있어 사용자의 편의성 및 만족감을 향상시킬 수 있다.
The present invention relates to an intelligent computer programming language learning apparatus and a learning method using the same.
The intelligent computer programming language learning apparatus according to the present invention includes: a code input unit for receiving a source code of a programming language that is an object of learning or learning; A grouping unit for dividing the source code into a plurality of regions on the basis of a specific function or a specific symbol and grouping the plurality of regions by using an average distance between the adjacent regions; A problem generator for generating a problem of randomly arranging the order of the grouped groups and rearranging the order of the groups so that they are rearranged; And an output unit for outputting the generated problem to the user.
As described above, according to the present invention, it is possible to learn a problem that is randomly issued in order to acquire a computer programming language without any limitation in time and place, thereby improving convenience and satisfaction of the user.

Description

지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법{LEARNING APPARATUS FOR INTELLIGENT COMPUTER PROGRAMING LANGUAGE AND LEARNING METHOD USING THE SAME}TECHNICAL FIELD [0001] The present invention relates to an intelligent computer programming language learning apparatus and a learning method using the intelligent computer programming language learning apparatus.

본 발명은 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법에 관한 것으로서, 더욱 상세하게는 사용자의 컴퓨터 언어 학습을 위한 문제를 자동으로 생성하는 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an intelligent computer programming language learning apparatus and a learning method using the intelligent computer programming language learning apparatus, and more particularly, to an intelligent computer programming language learning apparatus that automatically generates a problem for a user's computer language learning.

컴퓨터 프로그래밍 언어의 교육은 학습자의 실력이나 진도에 따라 콘텐츠나 커리큘럼이 구성되는 것이 아니라 교육 프로그램 제공자 위주로 구성되어 있다. 따라서, 학습자는 재미없고 힘들고 어려운 코딩 작업을 아무런 동기 부여없이 반복 학습하도록 하는 커리큘럼에 종속됨으로써, 컴퓨터 프로그래밍 언어의 습득은 이러한 프로그래밍 언어에 관심이 많고 재능이 있는 소수의 학습자 위주로 진행될 수 밖에 없는 문제점이 있다.The education of computer programming languages is based on educational program providers rather than contents or curriculum according to learner 's ability or progress. Thus, the learner is subordinated to the curriculum, which makes learning difficult and difficult, difficult and repetitive, with no motivation, so that the acquisition of computer programming language is interested in such a programming language and it can only be done with a few talented learner have.

컴퓨터 프로그래밍 언어 학습은 언어의 이해뿐만 아니라 반복 실습이 중요한 비중을 차지하는데, 일반적으로 프로그래밍 언어 교육 기관에서는 실습이 중요하다는 것을 강조할 뿐 어떻게 실습해야 하는지에 대해서는 알려주는 바가 없다.Computer programming language learning is not only an understanding of language but also an important part of iterative practice. In general, programming language education institutions emphasize that practice is important, but it does not tell us how to practice.

즉, 컴퓨터 프로그래밍 언어 학습에 있어서 실습은 필요 불가결한 내용이나 이 내용을 간과하고 이해나 설명 위주로 교육만으로 진행하는 것은 단순한 암기식 학습에 그치게 되어 학습자가 직접 코딩할 수 있는 능력이 갖추어 지도록 하는 것에는 한계가 있다.In other words, it is indispensable to practice in computer programming language learning. However, it is necessary to ignore this content and proceed to education based only on understanding and explanation is merely a memorization type learning, There is a limit.

또한 종래의 컴퓨터 언어 실습을 위한 문제 생성 방식은 몇 가지 유형의 문제를 순서만 바꾸어 반복적으로 제공함으로써 학습에 한계가 발생하게 된다. 예를 들어, 5개의 문제가 임의로 제공되는 경우, 5번째 문제를 푸는 동안 모두 다른 문제가 나오더라도 6번째 문제는 이전에 풀었던 문제가 다시 제공되어 학습의 효과가 저하되는 문제점이 있다.In addition, the problem generation method for the conventional computer language practice has limitations in learning by repeatedly providing several types of problems in a repeated order. For example, if five problems are provided arbitrarily, even if all the other problems arise while solving the fifth problem, the sixth problem is that the problem that was solved before is provided again, and the effect of the learning is deteriorated.

본 발명의 배경이 되는 기술은 대한민국 공개특허공보 제10-2016-0109676호(2016. 09. 21. 공개)에 개시되어 있다.The technique of the background of the present invention is disclosed in Korean Patent Laid-Open Publication No. 10-2016-0109676 (published on September 21, 2016).

본 발명이 이루고자 하는 기술적 과제는 사용자의 컴퓨터 언어 학습을 위한 문제를 자동으로 생성하는 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법을 제공하기 위한 것이다.An object of the present invention is to provide an intelligent computer programming language learning apparatus that automatically generates a problem for a user to learn a computer language and a learning method using the same.

이러한 기술적 과제를 이루기 위한 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기는, 출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는 코드 입력부; 특정 함수 또는 특정 기호를 기준으로 상기 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 상기 복수의 영역을 그룹핑하는 그룹핑부; 상기 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 상기 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성하는 문제 생성부; 및 상기 생성된 문제를 출력하여 상기 사용자에게 제공하는 출력부를 포함한다.According to an aspect of the present invention, there is provided an intelligent computer programming language learning apparatus comprising: a code input unit for inputting a source code of a programming language that is an object of learning or learning; A grouping unit for dividing the source code into a plurality of regions on the basis of a specific function or a specific symbol and grouping the plurality of regions by using an average distance between the adjacent regions; A problem generator for generating a problem of randomly arranging the order of the grouped groups and rearranging the order of the groups so that they are rearranged; And an output unit for outputting the generated problem to the user.

상기 그룹핑부는, 상기 소스 코드를 분석하여 상기 소스 코드에 포함된 어느 하나의 제1 함수와 제2 함수간의 평균 이격 거리를 계산하여 함수별 평균 이격 거리 테이블을 생성하되, 상기 이격 거리는, 상기 제1 함수와 상기 제2 함수 사이에 위치하는 함수 및 기호의 개수를 나타낼 수 있다.Wherein the grouping unit analyzes the source code and calculates an average spacing distance between any one of the first function and the second function included in the source code to generate an average spacing table for each function, And the number of functions and symbols located between the function and the second function.

상기 그룹핑부는, 어느 하나의 영역과, 해당 영역에 인접하는 인접 영역 내에 포함된 함수들을 각각 추출하고, 인접하는 영역들별로 상기 평균 이격 거리 테이블로부터 상기 추출된 함수들의 평균 이격 거리들의 평균값을 산출하되, 출제자로부터 n개의 그룹으로 상기 소스 코드를 분할하여 상기 문제를 출제할 것을 입력받으면, 상기 산출된 평균값들 중에서 크기 순서로 n-1개의 평균값을 선택하고, 선택된 n-1개의 평균값에 대응하는 인접 영역들을 영역 별로 분할하여 n개의 그룹을 생성할 수 있다.The grouping unit extracts each of the functions included in one of the regions and adjacent regions adjacent to the region and calculates an average value of the average distances of the extracted functions from the average distance table for each adjacent region, , And when dividing the source code into n groups from the issuer and inputting the problem to be executed, selects n-1 average values from the calculated average values in order of magnitude, The n regions can be divided by regions to generate n groups.

상기 문제 생성부는, 상기 생성된 n개의 그룹들의 순서를 랜덤하게 배치하여 문제를 생성하되, 생성된 문제가 서로 상이하도록 다수의 문제를 생성할 수 있다.The problem generator may generate a plurality of problems by randomly arranging the order of the generated n groups to generate a problem, and the generated problems may be different from each other.

또한, 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법은, 출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는 단계; 특정 함수 또는 특정 기호를 기준으로 상기 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 상기 복수의 영역을 그룹핑하는 단계; 상기 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 상기 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성하는 단계; 및 상기 생성된 문제를 출력하여 상기 사용자에게 제공하는 단계를 포함한다.According to another aspect of the present invention, there is provided a learning method using an intelligent computer programming language learning apparatus, comprising: inputting a source code of a programming language as an object or learning target; Dividing the source code into a plurality of regions on the basis of a specific function or a specific symbol, and grouping the plurality of regions using an average distance between the adjacent regions; Generating a problem of rearranging the order of the grouped groups randomly so that the order of the groups is rearranged; And outputting the generated problem to the user.

이와 같이 본 발명에 따르면, 컴퓨터 프로그래밍 언어를 습득하기 위해 랜덤하게 출제되는 문제를 시간과 장소에 제한없이 학습할 수 있어 사용자의 편의성 및 만족감을 향상시킬 수 있다.As described above, according to the present invention, it is possible to learn a problem that is randomly issued in order to acquire a computer programming language without any limitation in time and place, thereby improving convenience and satisfaction of the user.

또한 본 발명에 따르면, 랜덤하게 뒤섞여 있는 코드를 바르게 배치하는 방식으로 문제를 출제하여 사용자의 컴퓨터 프로그래밍 언어 학습시 흥미를 배가시켜 어렵고 따분한 코딩 작업이 아닌 게임을 하는 것과 같이 재미있고 유익한 프로그래밍 학습 환경을 제공함으로써, 자발적이고 자율적인 학습 환경을 제공할 수 있는 효과가 있다.In addition, according to the present invention, a problem is raised by arranging randomly scrambled codes so as to increase interest in learning a user's computer programming language, thereby providing a fun and useful programming learning environment such as playing a game rather than a difficult and dull coding operation So that it is possible to provide a voluntary and autonomous learning environment.

도 1은 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 나타낸 블록구성도이다.
도 2는 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법의 동작 흐름을 도시한 순서도이다.
도 3은 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에서 문제 생성을 위한 테이블을 생성하기 위한 과정을 나타낸 예시이다.
도 4는 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에서 문제 생성을 위한 그룹핑을 나타낸 예시이다.
도 5는 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에서 생성된 문제 예시이다.
1 is a block diagram showing an intelligent computer programming language learning apparatus according to an embodiment of the present invention.
2 is a flowchart illustrating an operation flow of a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a process for generating a table for problem generation in a learning method using an intelligent computer programming language learning device according to an embodiment of the present invention.
FIG. 4 illustrates an example of grouping for problem generation in a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention.
5 is an example of a problem generated in a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention.

이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this process, the thicknesses of the lines and the sizes of the components shown in the drawings may be exaggerated for clarity and convenience of explanation.

또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Further, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention or custom of the user, the operator. Therefore, definitions of these terms should be made based on the contents throughout this specification.

먼저, 도 1을 통해 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기에 대하여 설명한다.First, an intelligent computer programming language learning apparatus according to an embodiment of the present invention will be described with reference to FIG.

도 1은 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 나타낸 블록구성도이다.1 is a block diagram showing an intelligent computer programming language learning apparatus according to an embodiment of the present invention.

도 1에서와 같이 본 발명의 실시예에 따른 컴퓨터 프로그래밍 언어 학습기(100)는 코드 입력부(110), 그룹핑부(120), 문제 생성부(130) 및 출력부(140)를 포함한다.1, a computer programming language learning apparatus 100 according to an exemplary embodiment of the present invention includes a code input unit 110, a grouping unit 120, a problem generation unit 130, and an output unit 140.

먼저, 코드 입력부(110)는 출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는다.First, the code input unit 110 receives a source code of a programming language that is a target of learning or learning.

여기서, 프로그래밍 언어는 컴퓨터에 명령을 하는 코딩 작업을 하기 위한 모든 컴퓨터 언어를 지칭하며, 예를 들면 C언어, 파이썬, 자료구조, C++, C#, 자바, JSP, 프레임워크, TCP/IP소켓프로그래밍, 안드로이드, R, 하둡 등이 포함될 수 있다.Here, a programming language refers to all computer languages for performing coding tasks that command a computer, such as C language, Python, data structures, C ++, C #, Java, JSP, framework, TCP / IP socket programming, Android, R, Hadoop, and the like.

그룹핑부(120)는 특정 함수 또는 특정 기호를 기준으로 코드 입력부(110)를 통해 입력된 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 복수의 영역을 그룹핑한다.The grouping unit 120 divides the source code input through the code input unit 110 into a plurality of regions based on a specific function or a specific symbol and calculates a plurality of regions using the average distance between the adjacent regions Group.

이때 특정 함수와 특정 기호는 C언어를 예로 들었을때 void main(), printf(), scanf(), {}등일 수 있다.In this case, certain functions and specific symbols can be void main (), printf (), scanf (), {} when C language is taken as an example.

즉, 그룹핑부(120)는 void main(), printf(), scanf(), {}를 기준으로 소스 코드를 각각의 영역으로 분할할 수 있다. That is, the grouping unit 120 may divide the source code into the respective regions based on void main (), printf (), scanf (), and {}.

또한 그룹핑부(120)는 소스 코드를 분석하여 소스 코드에 포함된 어느 하나의 제1 함수와 제2 함수간의 평균 이격 거리를 계산하여 표 1과 같은 함수별 평균 이격 거리 테이블을 생성할 수 있다.Also, the grouping unit 120 may analyze the source code and calculate an average separation distance between any one of the first function and the second function included in the source code to generate an average distance table for each function as shown in Table 1. [

평균 이격 거리Average separation distance void mainvoid main printfprintf scanfscanf ........ forfor void mainvoid main -- 6.56.5 12.512.5 ...... 20.120.1 printfprintf 6.56.5 11.611.6 18.518.5 ...... 2323 scanfscanf 12.512.5 18.518.5 20.320.3 25.825.8 ........ ...... ...... ...... ...... ...... forfor 20.120.1 2323 25.825.8 ...... 2727

삭제delete

여기서 이격 거리는 제1 함수와 제2 함수 사이에 위치하는 함수 및 기호의 개수로 계산할 수 있고, 평균 이격 거리는 소스 코드 내에 해당 함수의 총 개수를 반영하여 계산할 수 있다.Here, the spacing distance can be calculated by the number of functions and symbols located between the first function and the second function, and the average spacing distance can be calculated by reflecting the total number of functions in the source code.

또한, 표 1에 기재된 평균 이격 거리 값은 테이블을 보여주기 위한 하나의 예시일 뿐 입력되는 소스 코드에 따라 평균 이격 거리 값이 상이해지는 것은 자명하다.It should be noted that the average distance value shown in Table 1 is only one example for showing the table, but it is obvious that the average distance value differs depending on the source code inputted.

이때 그룹핑부(120)는 어느 하나의 영역과 해당 영역에 인접하는 인접 영역 내에 포함된 함수들을 각각 추출하고, 인접하는 영역들별로 평균 이격 거리 테이블로부터 추출된 함수들의 평균 이격 거리들의 평균값을 산출하되, 출제자로부터 n개의 그룹으로 소스 코드를 분할하여 문제를 출제할 것을 입력받으면, 산출된 평균값들 중에서 크기 순서로 n-1개의 평균값을 선택하고, 선택된 n-1개의 평균값에 대응하는 인접 영역들을 영역 별로 분할하여 n개의 그룹을 생성할 수 있다.At this time, the grouping unit 120 extracts functions included in one of the regions and adjacent regions adjacent to the region, calculates an average value of the average distances of the functions extracted from the average distance table for each of the adjacent regions, When the source code is divided into n groups from the applicant and the question is input to issue a question, n-1 average values are selected in order of magnitude among the calculated average values, and adjacent regions corresponding to the selected n-1 average values are divided into regions It is possible to generate n groups by dividing into n groups.

예를 들어 출제자가 4개의 그룹으로 소스 코드를 분할하여 문제를 출제하고자 하면, 산출된 평균값들 중에서 상위 3개의 평균값을 선택하여 선택된 평균값에 대응하는 인접 영역들을 분할하여 총 4개의 그룹이 되도록 한다. 따라서, 하나의 그룹 내에는 복수개의 영역이 포함될 수 있다. For example, if the applicant tries to divide the source code into four groups and issue a problem, the top three average values among the calculated average values are selected, and the adjacent regions corresponding to the selected average value are divided into four groups. Therefore, a plurality of regions may be included in one group.

문제 생성부(130)는 그룹핑부(120)에서 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성한다.The problem generator 130 randomly arranges groups of groups in the grouping unit 120 and generates a problem of rearranging the groups so that the order of the groups is rearranged.

이때, 문제 생성부(130)는 그룹핑에부(120)에 생성된 n개의 그룹들의 순서를 랜덤하게 배치하여 문제를 생성하되, 생성된 문제가 서로 상이하도록 다수의 문제를 생성할 수 있다.At this time, the problem generator 130 may generate a problem by randomly arranging the order of n groups generated in the unit 120 in the grouping, and generate a plurality of problems so that the generated problems are different from each other.

즉, 문제 생성부(130)는 모든 경우의 수를 이용하여 복수개의 그룹으로 분할된 소스 코드의 순서가 서로 겹치지 않게 다수의 문제를 생성함으로써, 사용자가 새로운 문제를 풀 수 있도록 한다. That is, the problem generator 130 generates a plurality of problems so that the order of the source codes divided into the plurality of groups does not overlap with each other, using the number of all cases, so that the user can solve a new problem.

출력부(140)는 문제 생성부(130)에서 생성된 문제를 출력하여 사용자에게 제공한다.The output unit 140 outputs the problem generated by the problem generating unit 130 and provides it to the user.

이렇게 생성된 문제는 사용자가 소지하고 있는 스마트폰, 스마트 패드 등의 모바일 기기를 통해 사용자에게 제공할 수도 있고, 네트워크를 통해 연결된 데스크탑, 태블릿 PC, 랩탑 등을 통해서도 사용자에게 제공할 수 있다.The problem thus generated can be provided to a user through a mobile device such as a smart phone or a smart pad possessed by the user, or can be provided to a user through a desktop, tablet PC, or laptop connected through a network.

이하에서는 도 2 내지 도 5를 통해 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에 대하여 설명한다.Hereinafter, a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention will be described with reference to FIG. 2 through FIG.

도 2는 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법의 동작 흐름을 도시한 순서도로서, 이를 참조하여 본 발명의 구체적인 동작을 설명한다.FIG. 2 is a flowchart illustrating an operation flow of a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention, and a specific operation of the present invention will be described with reference to FIG.

본 발명의 실시예에 따르면, 먼저 컴퓨터 프로그래밍 언어 학습기(100)의 코드 입력부(110)는 출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는다(S210). According to the embodiment of the present invention, the code input unit 110 of the computer programming language learning device 100 receives the source code of the programming language to be subjected to the learning or learning (S210).

즉, S210 단계에서는 코드 입력부(110)가 사용자 또는 출제자에 의해 제공되는 프로그래밍 언어의 소스 코드를 파일로 읽어들인다.That is, in step S210, the code input unit 110 reads the source code of the programming language provided by the user or the issuer into a file.

그 다음 그룹핑부(120)는 특정 함수 또는 특정 기호를 기준으로 S210 단계에서 입력된 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 복수의 영역을 그룹핑한다(S220).Next, the grouping unit 120 divides the source code input in step S210 on the basis of a specific function or a specific symbol into a plurality of areas, and groups the plurality of areas using the average distance between the functions of the adjacent adjacent areas (S220).

도 3은 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에서 문제 생성을 위한 테이블을 생성하기 위한 과정을 나타낸 예시이다.FIG. 3 is a diagram illustrating a process for generating a table for problem generation in a learning method using an intelligent computer programming language learning device according to an embodiment of the present invention.

도 3에서와 같이 void main(), printf(), scanf(), {}등의 특정 함수 또는 특정 기호를 기준으로 하나의 소스 코드(S)를 복수의 영역(B1 내지 B6)한다.As shown in FIG. 3, one source code S is divided into a plurality of areas B1 to B6 based on a specific function such as void main (), printf (), scanf ()

그리고, S210 단계에서 입력된 소스 코드를 분석하여 소스 코드에 포함된 어느 하나의 제1 함수와 제2 함수간의 평균 이격 거리를 계산하여 위의 표 1과 같은 함수별 평균 이격 거리 테이블을 생성한다.Then, the source code inputted in step S210 is analyzed to calculate an average separation distance between any one of the first function and the second function included in the source code to generate an average distance table for each function as shown in Table 1 above.

이때 이격 거리는 제1 함수와 상기 제2 함수 사이에 위치하는 함수 및 기호의 개수로 계산할 수 있고, 평균 이격 거리는 소스 코드 내에 해당 함수의 총 개수를 반영하여 계산할 수 있다.In this case, the spacing distance can be calculated by the number of functions and symbols located between the first function and the second function, and the average spacing distance can be calculated by reflecting the total number of functions in the source code.

그리고 그룹핑부(120)는 어느 하나의 영역과, 해당 영역에 인접하는 인접 영역 내에 포함된 함수들을 각각 추출하고, 인접하는 영역들별로 평균 이격 거리 테이블로부터 추출된 함수들의 평균 이격 거리들의 평균값을 산출하되, 출제자로부터 n개의 그룹으로 소스 코드를 분할하여 문제를 출제할 것을 입력받으면, 산출된 평균값들 중에서 크기 순서로 n-1개의 평균값을 선택하고, 선택된 n-1개의 평균값에 대응하는 인접 영역들을 영역 별로 분할하여 n개의 그룹을 생성한다.The grouping unit 120 extracts each of the functions included in one of the regions and adjacent regions adjacent to the region and calculates an average value of average distances of the functions extracted from the average distance table for each adjacent region If the source code is divided into n groups from the applicant and the question is input to issue a question, n-1 average values are selected in order of magnitude among the calculated average values, and neighboring regions corresponding to the selected n-1 average values are selected And n groups are generated by dividing the data into regions.

도 4는 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에서 문제 생성을 위한 그룹핑을 나타낸 예시이다.FIG. 4 illustrates an example of grouping for problem generation in a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention.

도 4를 참고하여 소스 코드(S)를 3개의 그룹(G1, G2, G3)으로 분할하는 과정을 설명하기로 한다. 그룹핑부(120)는 평균 이격 거리 테이블로부터 추출된 함수들의 평균 이격 거리들의 평균값을 산출하여 도 5에서와 같이 B1과 B2 사이의 평균값 10.8, B2과 B3 사이의 평균값 9, B3과 B4 사이의 평균값 9.5를 얻게된다. 이때 분할하고자하는 개수보다 하나 적은 개수의 평균값을 선택하는데 크기 순서로 평균값이 선택되므로 B1과 B2 사이의 평균값인 10.8과, B3과 B4 사이의 평균값 9.5가 선택된다. 따라서, 그룹핑부(120)는 B1 영역과 B2 영역 사이를 분할하고 B3 영역과 B4 영역 사이를 분할하여 도 4에서와 같이 총 3개의 그룹(G1, G2, G3)을 생성한다. 이때, 하나의 그룹 내에는 복수개의 영역이 포함될 수도 있다.The process of dividing the source code S into three groups G1, G2 and G3 will be described with reference to FIG. The grouping unit 120 calculates an average value of the average distances of the functions extracted from the average distance table, and obtains a mean value 10.8 between B1 and B2, an average value 9 between B2 and B3, and an average value between B3 and B4 9.5. At this time, since the average value is selected in order of magnitude in order to select the average value of one fewer than the number to divide, the average value between B1 and B2 of 10.8 and the average value between B3 and B4 of 9.5 are selected. Accordingly, the grouping unit 120 divides the area between the B1 area and the B2 area, divides the area between the area B3 and the area B4, and generates a total of three groups G1, G2 and G3 as shown in FIG. At this time, a plurality of areas may be included in one group.

그 다음 문제 생성부(130)는 S220 단계에서 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 그룹핑된 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성한다(S230).Next, the problem generator 130 randomly arranges the grouped groups in step S220, and generates a problem of rearranging the grouped groups so that the order of the grouped groups is rearranged (S230).

이때, S230 단계에서는 생성된 n개의 그룹들의 순서를 랜덤하게 배치하여 문제를 생성하되, 생성된 문제가 서로 상이하도록 다수의 문제를 생성할 수 있다.In this case, in step S230, a plurality of problems may be generated so that the generated problems are generated by randomly arranging the order of the generated n groups.

즉. 문제 생성부(130)는 모든 경우의 수를 이용하여 복수개의 그룹으로 분할된 소스 코드의 순서가 서로 겹치지 않게 다수의 문제를 생성하므로, 소스 코드가 길수록 문제를 생성할 수 있는 경우의 수가 다양해져 새로운 문제를 생성할 수 있다.In other words. The problem generator 130 generates a number of problems in order that the source codes divided into a plurality of groups do not overlap with each other by using the number of all cases. As the source code is longer, the number of cases in which problems can be generated varies You can create a problem.

마지막으로, 출력부(140)는 S230 단계에서 생성된 문제를 출력하여 사용자에게 제공한다(S240).Finally, the output unit 140 outputs the problem generated in step S230 and provides it to the user (S240).

도 5는 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에서 생성된 문제 예시이다.5 is an example of a problem generated in a learning method using an intelligent computer programming language learning apparatus according to an embodiment of the present invention.

본 발명의 실시예에 따르면 도 5에서와 같이 그룹들의 순서가 랜덤하게 뒤섞인 문제를 사용자에게 제공하도록 한다. According to the embodiment of the present invention, it is possible to provide a user with a problem that the order of groups is randomly intermingled as in FIG.

즉, 도 5에서와 같이 (A)에 도시한 원 소스 코드의 순서를 랜덤하게 섞어 (B)에 도시한 바와같이 문제를 생성하여 사용자에게 제공한다. 그러면, 사용자는 그룹들의 순서를 재배열하여 (A)에 도시한 원 소스 코드가 되도록 하고 이러한 과정을 통하여 사용자는 컴퓨터 프로그래밍 언어를 습득하게 된다.That is, as shown in FIG. 5, the sequence of the original source codes shown in (A) is randomly mixed to generate a problem as shown in (B) and provide it to the user. Then, the user rearranges the order of the groups so as to become the original source code shown in (A), and through this process, the user acquires a computer programming language.

상술한 바와 같이, 본 발명의 실시예에 따른 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법은 컴퓨터 프로그래밍 언어를 습득하기 위해 랜덤하게 출제되는 문제를 시간과 장소에 제한없이 학습할 수 있어 사용자의 편의성 및 만족감을 향상시킬 수 있다.As described above, the intelligent computer programming language learning apparatus and the learning method using the intelligent computer programming language learning apparatus according to the embodiment of the present invention can learn the problems that are randomly presented in order to acquire a computer programming language without any limitation in time and place, The satisfaction can be improved.

또한 본 발명의 실시예에 따르면, 랜덤하게 뒤섞여 있는 코드를 바르게 배치하는 방식으로 문제를 출제하여 사용자의 컴퓨터 프로그래밍 언어 학습시 흥미를 배가시켜 어렵고 따분한 코딩 작업이 아닌 게임을 하는 것과 같이 재미있고 유익한 프로그래밍 학습 환경을 제공함으로써, 자발적이고 자율적인 학습 환경을 제공할 수 있는 효과가 있다.In addition, according to the embodiment of the present invention, it is possible to solve the problem in a way that the randomly scrambled codes are arranged correctly, thereby increasing the interest in the learning of the user's computer programming language, By providing a learning environment, it is possible to provide a voluntary and autonomous learning environment.

본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the scope of the invention as defined by the appended claims. will be. Therefore, the true scope of the present invention should be determined by the technical idea of the following claims.

100 : 학습기 110 : 코드 입력부
120 : 그룹핑부 130 : 문제 생성부
140 : 출력부
100: a learning device 110: a code input unit
120: grouping unit 130:
140:

Claims (8)

출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는 코드 입력부;
특정 함수 또는 특정 기호를 기준으로 상기 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 상기 복수의 영역을 그룹핑하는 그룹핑부;
상기 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 상기 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성하는 문제 생성부; 및
상기 생성된 문제를 출력하여 사용자에게 제공하는 출력부를 포함하고,
상기 그룹핑부는,
상기 소스 코드를 분석하여 상기 소스 코드에 포함된 어느 하나의 제1 함수와 제2 함수간의 평균 이격 거리를 계산하여 함수별 평균 이격 거리 테이블을 생성하고,
어느 하나의 영역과, 해당 영역에 인접하는 인접 영역 내에 포함된 함수들을 각각 추출하고, 인접하는 영역들별로 상기 평균 이격 거리 테이블로부터 상기 추출된 함수들의 평균 이격 거리들의 평균값을 산출하되,
출제자로부터 n개의 그룹으로 상기 소스 코드를 분할하여 상기 문제를 출제할 것을 입력받으면, 상기 산출된 평균값들 중에서 크기 순서로 n-1개의 평균값을 선택하고, 선택된 n-1개의 평균값에 대응하는 인접 영역들을 영역 별로 분할하여 n개의 그룹을 생성하고,
상기 이격 거리는,
상기 제1 함수와 상기 제2 함수 사이에 위치하는 함수 및 기호의 개수로 계산하고,
상기 평균 이격 거리는,
상기 소스 코드 내에 해당 함수의 총 개수를 반영하여 계산하는 지능형 컴퓨터 프로그래밍 언어 학습기.
A code input unit for receiving a source code of a programming language to be searched or learned;
A grouping unit for dividing the source code into a plurality of regions on the basis of a specific function or a specific symbol and grouping the plurality of regions by using an average distance between the adjacent regions;
A problem generator for generating a problem of randomly arranging the order of the grouped groups and rearranging the order of the groups so that they are rearranged; And
And an output unit for outputting the generated question to the user,
The grouping unit,
Analyzing the source code to calculate an average spacing distance between any one of the first function and the second function included in the source code to generate an average spacing table for each function,
Calculating a mean value of average distances of the extracted functions from the average distance table for each adjacent region by extracting functions included in one region and adjacent regions adjacent to the region,
When dividing the source code into n groups from the issuer and inputting the problem to be executed, selecting n-1 average values from the calculated average values in order of magnitude, N < / RTI > groups are generated,
The distance,
Calculating a number of functions and symbols located between the first function and the second function,
The average distance,
And calculating the total number of the functions in the source code.
삭제delete 삭제delete 제1항에 있어서,
상기 문제 생성부는,
상기 생성된 n개의 그룹들의 순서를 랜덤하게 배치하여 문제를 생성하되, 생성된 문제가 서로 상이하도록 다수의 문제를 생성하는 지능형 컴퓨터 프로그래밍 언어 학습기.
The method according to claim 1,
Wherein the trouble-
An intelligent computer programming language learner that randomly arranges the generated groups of n groups to generate a problem, and generates a plurality of problems such that the generated problems are different from each other.
지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법에 있어서,
출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는 단계;
특정 함수 또는 특정 기호를 기준으로 상기 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 상기 복수의 영역을 그룹핑하는 단계;
상기 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 상기 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성하는 단계; 및
상기 생성된 문제를 출력하여 사용자에게 제공하는 단계를 포함하고,
상기 복수의 영역을 그룹핑하는 단계는,
상기 소스 코드를 분석하여 상기 소스 코드에 포함된 어느 하나의 제1 함수와 제2 함수간의 평균 이격 거리를 계산하여 함수별 평균 이격 거리 테이블을 생성하고,
어느 하나의 영역과, 해당 영역에 인접하는 인접 영역 내에 포함된 함수들을 각각 추출하고, 인접하는 영역들별로 상기 평균 이격 거리 테이블로부터 상기 추출된 함수들의 평균 이격 거리들의 평균값을 산출하되,
출제자로부터 n개의 그룹으로 상기 소스 코드를 분할하여 상기 문제를 출제할 것을 입력받으면, 상기 산출된 평균값들 중에서 크기 순서로 n-1개의 평균값을 선택하고, 선택된 n-1개의 평균값에 대응하는 인접 영역들을 영역 별로 분할하여 n개의 그룹을 생성하고,
상기 이격 거리는,
상기 제1 함수와 상기 제2 함수 사이에 위치하는 함수 및 기호의 개수로 계산하고,
상기 평균 이격 거리는,
상기 소스 코드 내에 해당 함수의 총 개수를 반영하여 계산하는 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법.
In a learning method using an intelligent computer programming language learning machine,
Inputting a source code of a programming language to be searched or learned;
Dividing the source code into a plurality of regions on the basis of a specific function or a specific symbol, and grouping the plurality of regions using an average distance between the adjacent regions;
Generating a problem of rearranging the order of the grouped groups randomly so that the order of the groups is rearranged; And
Outputting the generated problem to the user,
Wherein the grouping of the plurality of regions comprises:
Analyzing the source code to calculate an average spacing distance between any one of the first function and the second function included in the source code to generate an average spacing table for each function,
Calculating a mean value of average distances of the extracted functions from the average distance table for each adjacent region by extracting functions included in one region and adjacent regions adjacent to the region,
When dividing the source code into n groups from the issuer and inputting the problem to be executed, selecting n-1 average values from the calculated average values in order of magnitude, N < / RTI > groups are generated,
The distance,
Calculating a number of functions and symbols located between the first function and the second function,
The average distance,
And calculating the total number of functions by reflecting the total number of functions in the source code.
삭제delete 삭제delete 제5항에 있어서,
상기 문제를 생성하는 단계는,
상기 생성된 n개의 그룹들의 순서를 랜덤하게 배치하여 문제를 생성하되, 생성된 문제가 서로 상이하도록 다수의 문제를 생성하는 지능형 컴퓨터 프로그래밍 언어 학습기를 이용한 학습 방법.
6. The method of claim 5,
Wherein generating the problem comprises:
And generating a plurality of problems such that the generated problems are generated by randomly arranging the generated n groups in order to generate a problem, wherein the generated problems are different from each other.
KR1020170013748A 2017-01-31 2017-01-31 Learning apparatus for intelligent computer programing language and learning method using the same KR101963016B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170013748A KR101963016B1 (en) 2017-01-31 2017-01-31 Learning apparatus for intelligent computer programing language and learning method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170013748A KR101963016B1 (en) 2017-01-31 2017-01-31 Learning apparatus for intelligent computer programing language and learning method using the same

Publications (2)

Publication Number Publication Date
KR20180089096A KR20180089096A (en) 2018-08-08
KR101963016B1 true KR101963016B1 (en) 2019-03-27

Family

ID=63230171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170013748A KR101963016B1 (en) 2017-01-31 2017-01-31 Learning apparatus for intelligent computer programing language and learning method using the same

Country Status (1)

Country Link
KR (1) KR101963016B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210012789A (en) * 2019-07-26 2021-02-03 서울시립대학교 산학협력단 Coding education method and robot

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI673691B (en) * 2018-11-02 2019-10-01 龎國臣 System for immersive programming language learning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007225726A (en) * 2006-02-21 2007-09-06 Teikyo Univ Programming learning assisting system, and programming learning assisting method
JP2013156786A (en) * 2012-01-30 2013-08-15 Hitachi Automotive Systems Ltd Software structure visualization program and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007225726A (en) * 2006-02-21 2007-09-06 Teikyo Univ Programming learning assisting system, and programming learning assisting method
JP2013156786A (en) * 2012-01-30 2013-08-15 Hitachi Automotive Systems Ltd Software structure visualization program and system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210012789A (en) * 2019-07-26 2021-02-03 서울시립대학교 산학협력단 Coding education method and robot
WO2021020781A1 (en) * 2019-07-26 2021-02-04 서울시립대학교 산학협력단 Coding education method and coding education robot
KR102262849B1 (en) 2019-07-26 2021-06-08 서울시립대학교 산학협력단 Coding education method and robot

Also Published As

Publication number Publication date
KR20180089096A (en) 2018-08-08

Similar Documents

Publication Publication Date Title
Shallit A second course in formal languages and automata theory
JP2020201678A5 (en)
KR101963016B1 (en) Learning apparatus for intelligent computer programing language and learning method using the same
KR101944331B1 (en) Document summarization system and method using RNN model
CN109637238B (en) Method, device, equipment and storage medium for generating exercise questions
CN105894881A (en) Homework self-evaluating system and method
CN108052492A (en) A kind of mathematical problem automatic creation system
CN106847035A (en) Learning method, device and system based on equipment simulating
CN112613543A (en) Enhanced policy verification method and device, electronic equipment and storage medium
CN105844226A (en) Method and device for processing data based on subjective question
Tubb et al. The Divergent Interface: Supporting Creative Exploration of Parameter Spaces.
Hoel e-Schoolbag in China--Exploring Research Evidence for Large Scale Deployment of e-Textbooks and Services
Christian et al. Virtual reality (VR) in superior education distance learning: a systematic literature review
Haraldsson et al. Exploring fitness and edit distance of mutated python programs
CN104636143A (en) Electronic presentation device for C language teaching and control method of electronic presentation device
CN111145306A (en) Picture processing method and device, electronic equipment and computer readable storage medium
US10027995B2 (en) System and method for generating media content in evolutionary manner
Pérez-Solà et al. On improving automated self-assessment with moodle quizzes: experiences from a cryptography course
Beremlijski et al. Mathematical educational portals MsR, STEMforYouth and Math4U
Bozorgi et al. Prolift: automated discovery of causal treatment rules from event logs
CN117671459B (en) Guided RPA artificial intelligence deep learning method and system
KR101956719B1 (en) Method for producing package software
De Ketelaere et al. The garden sprinkler: An interactive web-based application for teaching design of experiments
Solé-Ribalta et al. Exploration of the labelling space given graph edit distance costs
KR20190047494A (en) A coding learning method based on box library

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant