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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/0053—Computers, e.g. programming
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/02—Electrically-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
본 발명은 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법에 관한 것으로서, 더욱 상세하게는 사용자의 컴퓨터 언어 학습을 위한 문제를 자동으로 생성하는 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법에 관한 것이다.BACKGROUND OF THE
컴퓨터 프로그래밍 언어의 교육은 학습자의 실력이나 진도에 따라 콘텐츠나 커리큘럼이 구성되는 것이 아니라 교육 프로그램 제공자 위주로 구성되어 있다. 따라서, 학습자는 재미없고 힘들고 어려운 코딩 작업을 아무런 동기 부여없이 반복 학습하도록 하는 커리큘럼에 종속됨으로써, 컴퓨터 프로그래밍 언어의 습득은 이러한 프로그래밍 언어에 관심이 많고 재능이 있는 소수의 학습자 위주로 진행될 수 밖에 없는 문제점이 있다.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
먼저, 코드 입력부(110)는 출제 또는 학습 대상이 되는 프로그래밍 언어의 소스 코드를 입력받는다.First, the
여기서, 프로그래밍 언어는 컴퓨터에 명령을 하는 코딩 작업을 하기 위한 모든 컴퓨터 언어를 지칭하며, 예를 들면 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
이때 특정 함수와 특정 기호는 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
또한 그룹핑부(120)는 소스 코드를 분석하여 소스 코드에 포함된 어느 하나의 제1 함수와 제2 함수간의 평균 이격 거리를 계산하여 표 1과 같은 함수별 평균 이격 거리 테이블을 생성할 수 있다.Also, the
삭제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
예를 들어 출제자가 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
이때, 문제 생성부(130)는 그룹핑에부(120)에 생성된 n개의 그룹들의 순서를 랜덤하게 배치하여 문제를 생성하되, 생성된 문제가 서로 상이하도록 다수의 문제를 생성할 수 있다.At this time, the
즉, 문제 생성부(130)는 모든 경우의 수를 이용하여 복수개의 그룹으로 분할된 소스 코드의 순서가 서로 겹치지 않게 다수의 문제를 생성함으로써, 사용자가 새로운 문제를 풀 수 있도록 한다. That is, the
출력부(140)는 문제 생성부(130)에서 생성된 문제를 출력하여 사용자에게 제공한다.The
이렇게 생성된 문제는 사용자가 소지하고 있는 스마트폰, 스마트 패드 등의 모바일 기기를 통해 사용자에게 제공할 수도 있고, 네트워크를 통해 연결된 데스크탑, 태블릿 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
즉, S210 단계에서는 코드 입력부(110)가 사용자 또는 출제자에 의해 제공되는 프로그래밍 언어의 소스 코드를 파일로 읽어들인다.That is, in step S210, the
그 다음 그룹핑부(120)는 특정 함수 또는 특정 기호를 기준으로 S210 단계에서 입력된 소스 코드를 복수의 영역으로 분할하고, 분할된 인접 영역 사이의 함수 간 평균 거리를 이용하여 복수의 영역을 그룹핑한다(S220).Next, the
도 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
도 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
그 다음 문제 생성부(130)는 S220 단계에서 그룹핑된 그룹들의 순서를 랜덤하게 배치하여 그룹핑된 그룹들의 순서가 원래대로 배치되도록 재배열하는 문제를 생성한다(S230).Next, the
이때, 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
마지막으로, 출력부(140)는 S230 단계에서 생성된 문제를 출력하여 사용자에게 제공한다(S240).Finally, the
도 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.
상기 문제 생성부는,
상기 생성된 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.
상기 문제를 생성하는 단계는,
상기 생성된 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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI673691B (en) * | 2018-11-02 | 2019-10-01 | 龎國臣 | System for immersive programming language learning |
Citations (2)
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 |
-
2017
- 2017-01-31 KR KR1020170013748A patent/KR101963016B1/en active IP Right Grant
Patent Citations (2)
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)
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 |