KR101846702B1 - Programming education system and programming education method - Google Patents

Programming education system and programming education method Download PDF

Info

Publication number
KR101846702B1
KR101846702B1 KR1020160114101A KR20160114101A KR101846702B1 KR 101846702 B1 KR101846702 B1 KR 101846702B1 KR 1020160114101 A KR1020160114101 A KR 1020160114101A KR 20160114101 A KR20160114101 A KR 20160114101A KR 101846702 B1 KR101846702 B1 KR 101846702B1
Authority
KR
South Korea
Prior art keywords
learner
answer
data
answer data
correct
Prior art date
Application number
KR1020160114101A
Other languages
Korean (ko)
Other versions
KR20180027030A (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 KR1020160114101A priority Critical patent/KR101846702B1/en
Publication of KR20180027030A publication Critical patent/KR20180027030A/en
Application granted granted Critical
Publication of KR101846702B1 publication Critical patent/KR101846702B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • G06Q50/2057Career enhancement or continuing education service
    • 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
    • G09B7/04Electrically-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 characterised by modifying the teaching programme in response to a wrong answer, e.g. repeating the question, supplying a further explanation

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

본 발명의 일 실시예에 따른 프로그래밍 교육 시스템은 단계별 프로그래밍 문제들, 어느 프로그래밍 문제에 대한 M개의 테스트 데이터, 및 M개의 테스트 데이터에 상응하는 M개의 정답 데이터를 저장하는 메모리 및 프로그래밍 문제에 대해서 학습자가 제출하는 답안 프로그램을 구동시켜 학습자 프로세스를 실행시키고, 학습자 프로세스에 테스트 데이터를 입력시켜 학습자 답안 데이터를 얻으며, 학습자 답안 데이터를 정답 데이터와 비교하여 채점 정보를 학습자에게 제공하는 프로세서를 구비할 수 있다. 프로세서는, 제 m 학습자 답안 데이터가 제 m 정답 데이터와 일치하지 않는 경우에 제 m 테스트 데이터와 제 m 정답 데이터, 및/또는 제 m 학습자 답안 데이터를 학습자에게 제공할 수 있다.A programming education system according to an embodiment of the present invention includes a memory and programming problem for storing step-by-step programming problems, M test data for one programming problem, and M correct data corresponding to M test data, And a processor for executing a learner process by driving an answer program for submitting, inputting test data to a learner process to obtain learner's answer data, comparing the learner's answer data with correct answer data, and providing the learner with the score information. The processor may provide the learner with the mth test data and the mth correct answer data and / or the mth learner answer data if the mth learner answer data does not match the m correct answer data.

Description

프로그래밍 교육 시스템 및 프로그래밍 교육 방법{PROGRAMMING EDUCATION SYSTEM AND PROGRAMMING EDUCATION METHOD}[0001] PROGRAMMING EDUCATION SYSTEM AND PROGRAMMING EDUCATION METHOD [0002]

본 발명은 프로그래밍 교육 시스템 및 프로그래밍 교육 방법에 관한 것으로, 더욱 상세하게는 프로그래밍 학습자에게 단계별 자기주도형 학습 기회를 제공하는 교육 시스템 및 방법에 관한 것이다.The present invention relates to a programming education system and a programming education method, and more particularly, to an education system and a method for providing a step-by-step self-directed learning opportunity to a programming learner.

알파고의 등장으로 촉발된 4차 산업혁명은 인공 지능(AI), 사물 인터넷(IoT), 빅데이터, 클라우드 시스템 등을 통한 초지능/초연결 환경을 구현할 것으로 예측되고 있다. 모든 사물에 소프트웨어 4.0이 탑재되고, 모든 사물이 시간과 공간의 제약 없이 서로 연결되는 스마트 환경을 구축하기 위해서 세계 각국이 경쟁하고 있다.The fourth industrial revolution, triggered by the advent of AlphaGo, is expected to result in a super intelligent / hyperconnected environment through artificial intelligence (AI), Internet (IoT), big data, and cloud systems. Everywhere is competing with software 4.0 to build a smart environment where all things are connected together without time and space constraints.

빅데이터 활용과 인공 지능(AI)의 파급력을 보여 준 알파고 사례가 말해 주듯이, 4차 산업혁명의 주요 엔진은 소프트웨어이므로 소프트웨어 강자가 혁신을 주도할 것이다. 소프트웨어 국가 경쟁력을 제고하기 위해서, 점점 더 많은 국가들이 초중고 교과 과정에 프로그래밍 과목을 도입하고 있으며, 4차 산업혁명 경쟁에서 뒤쳐지지 않기 위해서는 프로그래밍 교육이 필수적이라 할 수 있다.As the Alpha high case demonstrates the impact of Big Data Utilization and Artificial Intelligence (AI), software engineers will lead innovation, because the main engine of the fourth industrial revolution is software. In order to enhance software national competitiveness, more and more countries are adopting programming courses in the elementary and middle school curriculum, and programming education is indispensable in order not to fall behind in the fourth industrial revolution competition.

프로그래밍(programming) 또는 코딩(coding)이란 자바(Java), C 언어, 파이선(Python) 등과 같은 컴퓨터 언어(code)를 사용하여 컴퓨터 프로그램을 짜는 것을 의미하는데, 프로그래밍 능력을 함양하기 위해서는 컴퓨터 언어 문법을 이해하는 것은 물론이고 그 외에도 논리력과 창의력 등을 더 필요로 한다. 수준별 프로그래밍 문제들을 풀어 나가는 과정을 통해 초급, 중급, 고급 수준별 컴퓨터 언어 문법을 습득할 수 있을 것이다.Programming or coding means writing a computer program using a computer language such as Java, C or Python. In order to develop a programming ability, a computer language grammar In addition to understanding, it requires more logic and creativity. You will be able to master the grammar of computer language at the beginner, intermediate, and advanced level by solving the programming problems at the level.

교수자의 개입 없이 학습자 스스로 수준별 프로그래밍 문제들을 풀어 나가며, 자신의 프로그램 중 틀린 부분을 스스로 찾아 내서 고치는 과정을 반복하다 보면, 프로그래밍 원리를 깨닫는 것과 함께 고도의 논리력과 창의력을 함양할 수 있다. 이와 같이, 교수자 개입을 최소화하고 학습자 스스로 자기주도형 프로그래밍 학습을 통해 컴퓨터 언어 문법과 논리력 및 창의력을 배양할 수 있는 프로그래밍 교육 시스템이 요구되고 있다.Students learn self-level programming problems without the intervention of the instructor. Repeating the process of finding and correcting the wrong parts of their programs helps them develop a high level of logic and creativity while realizing programming principles. In this way, a programming education system that can minimize the intervention of the instructor and cultivate the computer language grammar, logic and creativity through the self-directed programming learning by the learner himself is demanded.

본 발명의 일 목적은 학습자에게 단계별 프로그래밍 문제들과 자기주도형 프로그램 오류 정정 학습 기회를 제공하는 프로그래밍 교육 시스템 및 프로그래밍 교육 방법을 제공하는 것이다.An object of the present invention is to provide a programming education system and a programming education method that provide learner with step-by-step programming problems and opportunities for self-directed programming error correction learning.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템은 단계별 프로그래밍 문제들, 어느 프로그래밍 문제에 대한 M개(여기서, M은 자연수)의 테스트 데이터, 및 M개의 테스트 데이터에 상응하는 M개의 정답 데이터를 저장하는 메모리 및 프로그래밍 문제에 대해서 학습자가 제출하는 답안 프로그램을 구동시켜 학습자 프로세스를 실행시키고, 학습자 프로세스에 테스트 데이터를 입력시켜 학습자 답안 데이터를 얻으며, 학습자 답안 데이터를 정답 데이터와 비교하여 채점 정보를 학습자에게 제공하는 프로세서를 구비할 수 있다.According to an embodiment of the present invention, there is provided a programming education system including M stages (where M is a natural number) test data for one programming problem, M test data And a memory for storing M correct answer data corresponding to the learner process, and an answer program to be submitted by the learner for a programming problem, thereby executing a learner process, inputting test data to the learner process, obtaining learner's answer data, And a processor for providing the learner with the scoring information in comparison with the data.

프로세서는, 제 m 학습자 답안 데이터(여기서, m은 1 이상 M 이하의 자연수)가 제 m 정답 데이터와 일치하지 않는 경우에 제 m 테스트 데이터와 제 m 정답 데이터, 및/또는 제 m 학습자 답안 데이터를 학습자에게 제공할 수 있다. 프로세서는, M개의 학습자 답안 데이터 각각이 M개의 정답 데이터 각각에 모두 일치하는 경우에 정답 표시를 학습자에게 제공할 수 있다. 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템은 학습자 프로세스가 테스트 데이터를 입력 받아 학습자 답안 데이터를 출력하는 시간을 포함하는 실행 시간 정보를 정답 표시와 함께 학습자에게 제공할 수 있다.The processor is configured to compare the mth test data and the m correct answer data and / or the mth learner answer data when the mth learner's answer data (where m is a natural number equal to or greater than 1 and equal to or less than M) It can be provided to learners. The processor can provide the learner with the correct answer indication when each of the M learner answer data matches each of the M correct answer data. The programming education system according to an embodiment of the present invention can provide the learner with the correct answer and the execution time information including the time for the learner process to input the test data and output the learner's answer data.

메모리는 프로그래밍 문제의 실행 제한 시간을 더 저장하고, 프로세서는 프로그래밍 문제에 대한 학습자 프로세스의 실행 시간이 실행 제한 시간을 초과하는 경우에, 제한 시간 초과 표시를 채점 정보로서 학습자에게 제공할 수 있다.The memory further stores the execution time limit of the programming problem, and the processor can provide the learner with the timeout indication as the scoring information when the execution time of the learner process for the programming problem exceeds the execution time limit.

메모리는, 프로그래밍 문제가 복수 정답을 가지는지를 표시하는 복수 정답 플래그 및 복수 정답 플래그가 복수 정답을 표시하는 경우에 M개의 정답 데이터 외에 N개(여기서, N은 자연수)의 복수 정답 데이터를 더 저장할 수 있다. 프로세서는, 프로그래밍 문제에 대하여 복수 정답 플래그가 복수 정답을 표시하는 경우에, 제 m 학습자 답안 데이터가 제 m 정답 데이터와도 일치하지 않고 제 m 학습자 답안 데이터가 해당 복수 정답 데이터와도 일치하지 않으면, 오답 표시를 채점 정보로서 학습자에게 제공할 수 있다.The memory may further store a plurality of correct answer flags indicating whether the programming problem has a plurality of correct answers and N correct answer data in addition to M correct answer data (where N is a natural number) in the case where the plurality of correct answer flags indicate a plurality of correct answers have. When the m-th learner's answer data does not coincide with the m-th correct answer data and the m-th learner answer data does not coincide with the corresponding plural correct answer data when the plural correct answer flags indicate a plurality of correct answers to the programming problem, It is possible to provide a wrong answer display to the learner as the scoring information.

프로세서는, 주기적 모니터링을 실시하여 실행 중인 학습자 프로세스의 식별자를 체크할 수 있다. 프로세서는, 제 1 체크 타이밍에서 체크한 학습자 프로세스의 식별자가 제 2 체크 타이밍에서 체크한 학습자 프로세스의 식별자와 일치하는 경우에, 해당 일치하는 학습자 프로세스를 강제 제거시킬 수 있다.The processor can perform periodic monitoring to check the identifier of the learner process being executed. The processor can forcibly remove the matching learner process when the identifier of the learner process checked at the first check timing coincides with the identifier of the learner process checked at the second check timing.

본 발명의 다른 실시예에 따른 프로그래밍 교육 방법은, 단계별 프로그래밍 문제들을 보여주는 화면을 제공하는 단계, M개(여기서, M은 자연수)의 테스트 데이터와 M개의 정답 데이터에 의해 평가되는 어느 프로그래밍 문제에 대하여 학습자의 답안 프로그램을 제출 받는 화면을 제공하는 단계, 답안 프로그램에 기초하여 구동되는 학습자 프로세스가 테스트 데이터를 입력 받아 학습자 답안 데이터를 출력하는 경우에, M개의 학습자 답안 데이터 각각이 M개의 정답 데이터 각각에 모두 일치하면 정답 표시 화면을 제공하는 단계, 및 제 m 학습자 답안 데이터(여기서, m은 1 이상 M 이하의 자연수)가 제 m 정답 데이터와 일치하지 않으면 제 m 테스트 데이터와 제 m 정답 데이터를 포함하는 오답 표시 화면을 제공하는 단계를 구비할 수 있다.According to another embodiment of the present invention, there is provided a method of programming a program, the method comprising: providing a screen showing step-by-step programming problems; A step of providing a screen for receiving the learner's answer program, and a step of, when the learner process driven based on the answer program outputs the learner's answer data by inputting the test data, each of the M learner's answer data is stored in each of the M correct answer data And if the mth learner's answer data (where m is a natural number equal to or greater than 1 and equal to or less than M) does not coincide with the m-th correct data, the mth test data and the m- And providing a wrong answer display screen.

본 발명의 다른 실시예에 따른 프로그래밍 교육 방법은, 프로그래밍 문제에 대해서 복수 정답 플래그가 설정된 경우에, 제 m 학습자 답안 데이터가 제 m 정답 데이터와도 일치하지 않고 제 m 학습자 답안 데이터가 해당 복수 정답 데이터와도 일치하지 않으면, 오답 표시 화면을 제공할 수 있다.The programming training method according to another embodiment of the present invention is characterized in that when a plurality of correct answer flags are set for a programming problem, the m-th learner's answer data does not coincide with the m-th correct answer data, It is possible to provide a wrong answer display screen.

본 발명의 다른 실시예에 따른 프로그래밍 교육 방법은, 프로그래밍 문제에 대한 학습자 프로세스의 실행 시간이 프로그래밍 문제의 실행 제한 시간을 초과하면, 제한 시간 초과 표시를 포함하는 오답 표시 화면을 제공할 수 있다.According to another embodiment of the present invention, when the execution time of the learner process for the programming problem exceeds the execution time limit of the programming problem, the incorrect instruction display screen including the timeout indication may be provided.

본 발명의 다른 실시예에 따른 프로그래밍 교육 방법은, 제 1 체크 타이밍에서 체크된 학습자 프로세스의 식별자가 제 2 체크 타이밍에서 체크된 학습자 프로세스의 식별자와 일치하는 경우에, 프로그램 오류 표시를 포함하는 오답 표시 화면을 제공할 수 있다.The program education method according to another embodiment of the present invention is characterized in that when the identifier of the learner process checked at the first check timing coincides with the identifier of the learner process checked at the second check timing, Screen can be provided.

본 발명의 일 실시예에 의하면, 학습자에게 단순한 오답 표시 이상의 채점 정보를 제공함으로써 학습자가 스스로 프로그램 오류를 정정할 수 있도록 학습 기회를 부여할 수 있다.According to an embodiment of the present invention, the learner can provide the learner with the learning opportunity so that the learner can correct the program error by himself or herself, by providing the learner with the scoring information more than the simple error indication.

본 발명의 다른 실시예에 의하면, 학습자가 제출한 답안 프로그램의 정답 여부 결과뿐만 아니라 그 답안 프로그램의 실행 시간 정보, 실행 시간 순위, 코딩 사이즈 순위 등을 부가적으로 제공함으로써 학습자가 코딩 효율성을 스스로 고민하도록 유도할 수 있다.According to another embodiment of the present invention, not only the answer result of the answer program submitted by the learner but also the execution time information of the answer program, the execution time rank, the coding size rank, and the like are additionally provided, .

본 발명의 다른 실시예에 의하면, 복수 정답을 가지는 프로그래밍 문제를 채점할 수 있다.According to another embodiment of the present invention, a programming problem with multiple correct answers can be scored.

본 발명의 다른 실시예에 의하면, 무한 루프 등의 비정상 프로세스들을 강제 제거함으로써 안정적으로 프로그래밍 교육 시스템을 운영할 수 있다.According to another embodiment of the present invention, it is possible to operate a programming education system stably by forcibly removing abnormal processes such as an infinite loop.

도 1은 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템이 제공하는 계단별 프로그래밍 문제들을 나타낸다.
도 3은 어느 프로그래밍 문제의 저장 영역을 예시한다.
도 4는 학습자 답안 프로그램의 정답 여부를 판단하는 과정을 설명한다.
도 5는 복수 정답을 가지는 프로그래밍 문제에 대한 채점 방식을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 채점 프로세스를 나타낸다.
도 7은 비정상적 프로세스를 강제 제거하는 방식을 설명한다.
1 shows a programming education system according to an embodiment of the present invention.
FIG. 2 illustrates the step-by-step programming problems provided by the programming education system in accordance with an embodiment of the present invention.
Figure 3 illustrates the storage area of any programming problem.
FIG. 4 illustrates a process for determining whether or not the learner's answer program is the correct answer.
5 is a diagram for explaining a scoring method for a programming problem having a plurality of correct answers.
6 shows a scoring process according to an embodiment of the present invention.
7 illustrates a method for forcibly removing an abnormal process.

본 발명은 다양한 변형을 통해 여러 가지 실시예들을 가질 수 있으며, 여기서 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 그 특정한 실시 형태로만 한정하려는 것이 아니며, 본 발명의 범위는 본 발명의 기술 사상에 따른 다양한 변형물, 대체물 및 균등물을 포함하는 것으로 이해되어야 한다.The present invention may have various embodiments through various modifications, and specific embodiments will be illustrated and described in detail in the drawings. It should be understood, however, that the intention is not to limit the invention to the specific embodiments thereof, and that the scope of the invention encompasses various modifications, alternatives and equivalents according to the spirit of the invention.

본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명 범위를 한정하려는 것이 아니다. 단수의 표현일지라도 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 명세서에서, "포함하다", "구비하다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 의미하며, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들이 존재함을 배제하지 않는다. 즉, 어느 요소가 어떤 구성 요소를 "포함한다" 또는 "구비한다"는 것은, 특별히 반대되는 기재가 없는 한, 다른 구성 요소를 배제하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of the invention. It is to be understood that the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. In this specification, the terms "comprise", "comprising", etc. mean that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, Steps, operations, elements, parts, or combinations thereof, are intended to be included within the scope of the present invention. That is, it is to be understood that "comprises" or "comprising" an element does not exclude other elements, but may include other elements, .

이하에서는 도면을 참고하여 본 발명의 다양한 실시예들을 설명한다.Hereinafter, various embodiments of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템을 나타낸다.1 shows a programming education system according to an embodiment of the present invention.

학습자(USER)는 인터넷을 통한 온라인 상으로 프로그래밍 교육 시스템(DOVELET SYSTEM)에 접속하며, 이러한 경우에는 프로그래밍 교육 시스템(DOVELET SYSTEM)이 인터넷에 연결된 서버(server)로 구현되거나 서버 상에서 구동되는 응용 프로그램으로 구현될 수 있다. 또는, 학습자(USER)는 CD-ROM, 플래쉬 메모리 등의 저장 매체에 저장된 본 프로그래밍 교육 시스템(DOVELET SYSTEM)을 개인용 컴퓨터, 노트북, 테블릿, 모바일 기기 등을 통해 구동시킬 수 있다. The USER connects to the DOVELET SYSTEM online via the Internet. In this case, the DOVELET SYSTEM is implemented as a server connected to the Internet or an application running on the server. Can be implemented. Alternatively, the learner (USER) can drive this programming education system (DOVELET SYSTEM) stored in a storage medium such as a CD-ROM or a flash memory through a personal computer, a notebook, a tablet, or a mobile device.

프로그래밍 교육 시스템(DOVELET SYSTEM)에 접속한 학습자(USER)는 자신의 프로그래밍 수준 및 학습하고자 하는 프로그래밍 분야에 맞춰 문제를 선택할 수 있다. 프로그래밍 교육 시스템(DOVELET SYSTEM)은 메모리에 저장된 도 2와 같은 계단별 프로그래밍 학습 문제들을 제공할 수 있다. 어느 프로그래밍 문제를 선택한 학습자(USER)는 스스로 해당 프로그래밍 문제를 풀고, 자신이 작성한 답안 프로그램을 제출한다. 답안 프로그램 제출은 학습자(USER)가 프로그래밍 교육 시스템(DOVELET SYSTEM)에 답안 프로그램을 업로드하거나 등록, 입력하는 것 등을 의미한다. 프로세서를 구비하는 프로그래밍 교육 시스템(DOVELET SYSTEM)은 답안 프로그램을 평가하여 채점 정보를 학습자(USER)에게 보여 준다.A user connected to the DOVELET SYSTEM can select a problem to suit his / her programming level and the programming area to be studied. The DOVELET SYSTEM can provide step-by-step programming learning problems as shown in FIG. 2 stored in memory. A learner (USER) who chooses a programming problem solves the programming problem by himself and submits his or her answer program. Submitting the answer program means that the learner (USER) uploads, registers, and inputs the answer program to the DOVELET SYSTEM. A programming education system (DOVELET SYSTEM) with a processor evaluates the answer program and displays the scoring information to the learner (USER).

도 2는 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템이 제공하는 계단별 프로그래밍 문제들을 나타낸다.FIG. 2 illustrates the step-by-step programming problems provided by the programming education system in accordance with an embodiment of the present invention.

먼저 프로그래밍 문제들은 학습 분야에 따라 제 1 계단부터 제 30 계단으로 분류된다. 제 1 계단에서는 주로 기초적인 입출력 함수 사용법, 변수 정의하는 방법, 사칙연산/몫/나머지 함수 등을 학습할 수 있다. 제 1 계단이라고 쉬운 문제만 있는 것은 아니고 초급/중급/고급 난이도를 가지는 다양한 문제들(1-①, 1-②, 1-③, …)이 제공된다. 조건문(IF), 산술/관계/논리연산 함수 등을 학습하는 제 2 계단에도 다양한 문제들(2-①, 2-②, 2-③, …)이 있고, 반복문 FOR/Break/Continue 함수 등을 학습하는 제 3 계단에도 다양한 문제들(3-①, 3-②, 3-③, …)이 제공된다. 각 컴퓨터 언어 문법의 계급적 구조 등을 배우는 제 30 계단에도 난이도별로 다양한 문제들(30-①, 30-②, 30-③, …)이 제공된다.First, the programming problems are classified into the first to 30th steps according to the learning field. In the first step, you can learn how to use basic input / output functions, how to define variables, arithmetic operations / quotient / residual functions, and so on. The first step is not only an easy problem, but it also provides various problems (1-①, 1-②, 1-③, ...) with beginner / intermediate / advanced difficulty. There are various problems (2-①, 2-②, 2-③, ...) in the second step of learning conditional statements (IF) and arithmetic / There are also various problems (3-①, 3-②, 3-③, ...) in the third step of learning. In the 30th step of learning the hierarchical structure of each computer language grammar, various problems (30-①, 30-②, 30-③, ...) are provided for each degree of difficulty.

도 2에 도시된 계단별 학습 분야는 예시적인 것이며, 이에 국한되지 않고 다른 기준에 따라 프로그래밍 문제들을 분류할 수도 있다. 이하에서는 도 3을 참조하여 프로그래밍 문제 1-①의 저장 영역을 설명한다.The step-by-step learning field shown in FIG. 2 is illustrative and may include, but is not limited to, classification of programming problems according to other criteria. Hereinafter, the storage area of the programming problem 1 - 1 will be described with reference to FIG.

도 3은 어느 프로그래밍 문제의 저장 영역을 예시한다.Figure 3 illustrates the storage area of any programming problem.

예컨대, 도 2에서의 프로그래밍 문제 1-①에 대한 저장 영역에는 1-① 문제, 1-① 문제에 대한 M개의 테스트 데이터(TEST-1, TEST-2, TEST-3, …, TEST-M), M개의 정답 데이터(ANSWER-1, ANSWER-2, ANSWER-3, …, ANSWER-M), 실행 제한 시간(TIME LIMIT), 복수 정답 플래그(FLAG), 컴파일 임시 디렉토리(Compile TEMP) 등이 저장된다. 즉, 문제 1-①의 저장 영역은 도 3에서와 같은 정보를 담고 있는 디렉토리 또는 폴더 등을 의미할 수 있다. For example, M test data (TEST-1, TEST-2, TEST-3, ..., TEST-M) for the 1-i problem and 1-i problem are stored in the storage area for the programming problem 1 - , M correct answer data (ANSWER-1, ANSWER-2, ANSWER-3, ..., ANSWER-M), execution time limit (TIME LIMIT), multiple answer flag (FLAG), compile temporary directory do. That is, the storage area of the problem 1 - (1) may refer to a directory or a folder containing information as shown in FIG.

학습자(USER)가 프로그래밍 문제 1-①를 풀고 답안 프로그램을 제출하면, 그 답안 프로그램은 프로그래밍 문제 1-①의 저장 영역 중 컴파일 임시 디렉토리(Compile TEMP)를 이용하여 컴파일 처리될 수 있다. 즉, 컴파일 임시 디렉토리(Compile TEMP)는 학습자(USER)가 제출한 답안 프로그램을 컴파일하는데 이용되는 저장 영역이다. 다음으로 도 4를 참조하여 테스트 데이터와 정답 데이터를 설명한다.If the learner (USER) solves the programming problem 1 - ① and submits the answer program, the answer program can be compiled using the compile temporary directory (Compile TEMP) of the storage area of the programming problem 1 - ①. That is, the compile temporary directory (Compile TEMP) is a storage area used to compile the answer program submitted by the learner (USER). Next, test data and correct answer data will be described with reference to FIG.

도 4는 학습자 답안 프로그램의 정답 여부를 판단하는 과정을 설명한다.FIG. 4 illustrates a process of determining whether or not the learner's answer program is the correct answer.

학습자(USER)가 프로그래밍 문제 1-①의 답안 프로그램을 제출하면, 프로그래밍 교육 시스템(DOVELET SYSTEM)의 프로세서는 해당 답안 프로그램을 구동시켜 학습자 프로세스(USER PROCESS)를 실행시킨다. 그리고, 프로세서는 학습자 프로세스(USER PROCESS)에 M개의 테스트 데이터(TEST-1, TEST-2, TEST-3, …, TEST-M)를 순차적으로 또는 동시에 입력시킨다. 학습자 프로세스(USER PROCESS)는 M개의 테스트 데이터(TEST-1, TEST-2, TEST-3, …, TEST-M) 각각에 응답하여 M개의 학습자 답안 데이터(ANS-1, ANS-2, ANS-3, …, ANS-M)를 출력한다. When the user (USER) submits the program of the programming problem 1 - ①, the processor of the programming education system (DOVELET SYSTEM) drives the corresponding answer program to execute the learner process (USER PROCESS). Then, the processor inputs M test data (TEST-1, TEST-2, TEST-3, ..., TEST-M) sequentially or simultaneously to the learner process (USER PROCESS). The learner process USER PROCESS generates M learner's answer data ANS-1, ANS-2, ANS-1, MNS-2 in response to each of the M test data TEST-1, TEST- 3, ..., ANS-M).

제 1 테스트 데이터(TEST-1)에 응답하여 제 1 학습자 답안 데이터(ANS-1)가 출력되면, 프로세서는 제 1 학습자 답안 데이터(ANS-1)를 정답 테이블 상의 제 1 정답 데이터(ANSWER-1)와 비교하여 제 1 차 정답 여부를 판정한다. 비슷하게, 제 2 테스트 데이터(TEST-2)에 응답하여 제 2 학습자 답안 데이터(ANS-2)가 출력되면, 프로세서는 제 2 학습자 답안 데이터(ANS-2)를 정답 테이블 상의 제 2 정답 데이터(ANSWER-2)와 비교하여 제 2 차 정답 여부를 판정한다. 즉, 제 m 테스트 데이터(TEST-m)에 응답하여 제 m 학습자 답안 데이터(ANS-m)가 출력되면, 프로세서는 제 m 학습자 답안 데이터(ANS-m)를 정답 테이블 상의 제 m 정답 데이터(ANSWER-m)와 비교하여 제 m 차 정답 여부를 판정하는 것이다. 여기서, m은 1 이상 M 이하의 자연수이다. 제 1 차 정답 여부부터 제 M 차 정답 여부까지 모두 판정한 결과 모두 정답에 해당하면, 프로세서는 정답 표시를 채점 정보로서 학습자(USER)에게 보여 준다.When the first learner's answer data ANS-1 is output in response to the first test data TEST-1, the processor outputs the first learner's answer data ANS-1 as the first correct answer data ANSWER-1 To determine whether or not the first correct answer is obtained. Similarly, when the second learner's answer data ANS-2 is output in response to the second test data TEST-2, the processor outputs the second learner answer data ANS-2 as the second correct answer data ANSWER -2) and determines whether or not the second correct answer is obtained. That is, when the mth learner's answer data (ANS-m) is outputted in response to the m-th test data TEST-m, the processor stores the mth learner's answer data (ANS- -m) to determine whether or not the m-th answer is correct. Here, m is a natural number of 1 or more and M or less. If all of the answers from the first correct answer to the M th correct answer are correct, the processor displays the correct answer indication as learner information to the learner (USER).

프로그래밍 문제마다 테스트 데이터의 개수가 다를 수 있다. 즉, 단순한 프로그래밍 문제라면 테스트 테이터의 개수가 적을 것이고, 복잡한 프로그래밍 문제라면 테스트 데이터의 개수가 많을 것이다. 이와 같이, 테스트 데이터는 해당 프로그래밍 문제의 특성을 파악할 수 있을 만큼 충분한 개수가 필요하며, 테스트 데이터가 부족하면 학습자의 답안 프로그램이 해당 프로그래밍 문제의 정답에 해당되는지 여부 판단이 잘못 내려질 수 있다. The number of test data may be different for each programming problem. In other words, a simple programming problem would have a small number of test data, and a complex programming problem would have a large number of test data. As such, the test data needs a sufficient number to be able to characterize the programming problem, and if the test data is insufficient, it can be misleading to determine whether the learner's answer program is the correct answer to the programming problem.

예컨대, 제 1 학습자 답안 데이터(ANS-1)부터 제 [M-1] 학습자 답안 데이터(ANS-[M-1])까지의 각각은 제 1 정답 데이터(ANSWER-1)부터 제 [M-1] 정답 데이터(ANSWER-[M-1])까지의 각각과 모두 일치하는데, 마지막 제 M 학습자 답안 데이터(ANS-M)가 제 M 정답 데이터(ANSWER-M)와 일치하지 않으면, 프로세서는 오답 표시를 채점 정보로서 학습자(USER)에게 보여 주어야 한다. 이와 같이, 어느 프로그래밍 문제의 전체 특성을 파악할 수 있는 테스트 데이터를 모두 확보해야 한다. 프로그래밍 문제에 따라서는 특수한 코너(corner) 특성을 파악할 수 있는 테스트 데이터가 꼭 필요한데, 그러한 테스트 데이터를 확보하지 못하면 변별력 있는 채점이 이뤄질 수 없다. 전체 특성을 파악할 수 있는 충분한 개수의 테스트 데이터를 확보하는 것이 프로그래밍 교육 시스템의 신뢰성을 담보하는 것이다.For example, each of from the first learner's answer data ANS-1 to the [M-1] learner's answer data ANS- [M-1] includes the first correct answer data ANSWER- (ANSWER- [M-1]). If the last Mth learner's answer data (ANS-M) does not match the M correct answer data (ANSWER-M) To the learner (USER) as scoring information. As such, you need to have all the test data that can capture the full nature of any programming problem. Some programming problems require test data that can be used to identify specific corner characteristics. Failure to obtain such test data can not result in distinctive scoring. Having enough test data to capture the overall characteristics ensures the reliability of the programming education system.

한편, 어떤 프로그래밍 문제는 복수 정답을 가질 수 있다. 도 3에서의 복수 정답 플래그(FLAG)는 어떤 프로그래밍 문제가 복수 정답을 가지는지 여부를 나타낸다. 이하에서 도 5을 참조하여 복수 정답의 처리 방식을 설명한다.On the other hand, some programming problems can have multiple correct answers. The plural correcting flags FLAG in FIG. 3 indicate whether or not the programming problem has a plurality of correct answers. Hereinafter, a processing method of a plurality of correct answers will be described with reference to FIG.

도 5는 복수 정답을 가지는 프로그래밍 문제에 대한 채점 방식을 설명하기 위한 도면이다.5 is a diagram for explaining a scoring method for a programming problem having a plurality of correct answers.

프로세서는 복수 정답 플래그(FLAG)를 먼저 확인할 수 있다. 어느 프로그래밍 문제에 대해서 복수 정답 플래그(FLAG)가 설정된 경우에, 즉, 복수 정답 플래그(FLAG)가 복수 정답을 지시하는 경우에, 제 1 테스트 데이터(TEST-1)에 응답하여 제 1 학습자 답안 데이터(ANS-1)가 출력되면, 프로세서는 제 1 학습자 답안 데이터(ANS-1)를 정답 테이블 1의 정답 데이터 ANSWER-11과 비교하는 것 이외에, 정답 테이블 2의 정답 데이터 ANSWER-12와 비교하는 것, 정답 테이블 3의 정답 데이터 ANSWER-13과 비교하는 것, 그리고 정답 테이블 4의 정답 데이터 ANSWER-14와 비교하는 것도 수행하여야 한다. The processor can first check the multiple correct flag (FLAG). When the plural correct answer flags FLAG are set for a certain programming problem, that is, when the plural correct answer flags FLAG indicate a plurality of correct answers, the first learner answer data FLAG in response to the first test data TEST- (ANS-1) is outputted, the processor compares the first learner's answer data (ANS-1) with the correct answer data ANSWER-11 of the correct answer table 1, , Comparison with the correct answer data ANSWER-13 of the correct answer table 3, and comparison with the correct answer data ANSWER-14 of the correct answer table 4 should be performed.

물론, 제 1 학습자 답안 데이터(ANS-1)가 정답 데이터 ANSWER-11과 일치한다면, 굳이 복수 정답 데이터 ANSWER-12와의 비교, 복수 정답 데이터 ANSWER-13과의 비교, 및 복수 정답 데이터 ANSWER-14와의 비교는 필요 없을 것이다. 그러나, 적어도 제 1 학습자 답안 데이터(ANS-1)가 오답이라는 판정을 내리기 위해서는, 제 1 학습자 답안 데이터(ANS-1)와 정답 데이터 ANSWER-11의 비교, 제 1 학습자 답안 데이터(ANS-1)와 정답 데이터 ANSWER-12의 비교, 제 1 학습자 답안 데이터(ANS-1)와 정답 데이터 ANSWER-13의 비교, 그리고 제 1 학습자 답안 데이터(ANS-1)와 정답 데이터 ANSWER-14의 비교를 모두 수행해야 하고, 그 비교 결과 모두 불일치해야 한다. Of course, if the first learner's answer data ANS-1 matches the correct answer data ANSWER-11, the comparison with the plural correct answers data ANSWER-12, the comparison with the plural answer data ANSWER-13, No comparison will be necessary. However, in order to determine that at least the first learner's answer data (ANS-1) is an incorrect answer, the comparison between the first learner's answer data (ANS-1) and the correct answer data ANSWER- The comparison between the first learner's answer data (ANS-1) and the correct answer data ANSWER-13, and the comparison between the first learner's answer data (ANS-1) and the correct answer data ANSWER-14 , And all the results of the comparison should be discordant.

테스트 데이터마다 복수 정답 개수가 다를 수도 있다. 도 5에서는, 제 1 테스트 데이터에 대해서 4개의 정답 데이터(ANSWER-11, ANSWER-12, ANSWER-13, ANSWER-14)가 있고, 제 2 테스트 데이터에 대해서 2개의 정답 데이터(ANSWER-21, ANSWER-22)가 있고, 제 3 테스트 데이터에 대해서 3개의 정답 데이터(ANSWER-31, ANSWER-32, ANSWER-33)가 있으며, 제 M 테스트 데이터에 대해서 4개의 정답 데이터(ANSWER-M1, ANSWER-M2, ANSWER-M3, ANSWER-M4)가 있다. 해당 프로그래밍 문제의 저장 영역에는 M개의 정답 데이터 이외에 N개의 복수 정답 데이터가 더 저장된다.The number of correct answers may be different for each test data. 5, there are four correct data (ANSWER-11, ANSWER-12, ANSWER-13, ANSWER-14) for the first test data and two correct data -22), and there are three correct answers data ANSWER-31, ANSWER-32, and ANSWER-33 for the third test data, and four correct answers data ANSWER-M1 and ANSWER-M2 , ANSWER-M3, ANSWER-M4). In addition to the M correct answer data, N multiple correct answer data are further stored in the storage area of the corresponding programming problem.

한편, 도 3에서와 같이 각 프로그래밍 문제의 저장 영역은 실행 제한 시간(TIME LIMIT) 정보를 저장하고 있다. 각 프로그래밍 문제마다 실행 제한 시간(TIME LIMIT)이 설정되는데, 학습자(USER)의 답안 프로그램으로부터 실행된 학습자 프로세스(USER PROCESS)는 어느 프로그래밍 문제에 대해서 해당 실행 제한 시간(TIME LIMIT) 이내에 테스트 데이터를 입력 받아 그에 응답하는 학습자 답안 데이터를 출력해야 한다. 이하에서 도 6과 도 7을 참조하여 더 자세히 설명한다.Meanwhile, as shown in FIG. 3, the storage area of each programming problem stores the execution time limit (TIME LIMIT) information. The TIME LIMIT is set for each programming problem. The learner process (USER PROCESS) executed from the answer program of the learner (USER) inputs the test data within the corresponding execution time limit (TIME LIMIT) And then output the learner's answer data in response to it. Hereinafter, it will be described in more detail with reference to FIG. 6 and FIG.

도 6은 본 발명의 일 실시예에 따른 채점 프로세스를 나타낸다.6 shows a scoring process according to an embodiment of the present invention.

어느 프로그래밍 문제에 대해서 학습자(USER)가 답안 프로그램을 제출하면, 프로그래밍 교육 시스템(DOVELET SYSTEM)의 채점 프로그램이 모(母) 프로세스(PARENT PROCESS)를 동작시키고, 모(母) 프로세스(PARENT PROCESS)는 자(子) 프로세스(CHILD PROCESS)를 분기(fork)시킨다. 자(子) 프로세스(CHILD PROCESS)는 학습자(USER) 답안 프로그램으로부터 실행된 학습자 프로세스(USER PROCESS)에 제 1 테스트 데이터(TEST-1)입력시키고, 학습자 프로세스(USER PROCESS)로부터 제 1 학습자 답안 데이터(ANS-1)를 얻는다. If a learner (USER) submits an answer program for a certain programming problem, the scoring program in the DOVELET SYSTEM will run the PARENT PROCESS and the PARENT PROCESS will Fork the child process (CHILD PROCESS). The child process CHILD PROCESS inputs the first test data TEST-1 to the learner process USER PROCESS executed from the learner's answer program and sends the first learner's answer data from the learner process USER PROCESS (ANS-1).

자(子) 프로세스(CHILD PROCESS)는 제 1 차 정답 여부 판정(Judge1)을 위해서, 제 1 학습자 답안 데이터(ANS-1)를 도 4에서와 같이 제 1 정답 데이터(ANSWER-1)와 비교하거나, 복수 정답 플래그(FLAG)가 복수 정답을 표시하는 경우에 제 1 학습자 답안 데이터(ANS-1)를 도 5에서와 같이 복수 정답 데이터(ANSWER-11, ANSWER-12, ANSWER-13, ANSWER-14)와 비교한다. 제 1 학습자 답안 데이터(ANS-1)가 제 1 정답 데이터(ANSWER-1) 또는 복수 정답 데이터(ANSWER-11, ANSWER-12, ANSWER-13, ANSWER-14) 중의 어느 하나와 일치하면, 다시 자(子) 프로세스(CHILD PROCESS)는 제 2 학습자 답안 데이터(ANS-2)를 대상으로 제 2 차 정답 여부 판정(Judge2)을 실시한다. 이와 같은 방식으로 제 1 차 정답 여부 판정(Judge1)부터 제 M 차 정답 여부 판정(JudgeM)까지 모두 실시한 결과, 모든 학습자 답안 데이터(ANS-1, ANS-2, ?, ANS-M)가 정답 데이터 또는 복수 정답 데이터와 각각 일치하면, 자(子) 프로세스(CHILD PROCESS)는 정답(CORRECT)이라는 상태값을 모(母) 프로세스(PARENT PROCESS)에 전달한다. 학습자(USER)에게는 정답 표시가 채점 정보로서 제공된다.The child process CHILD PROCESS compares the first learner's answer data ANS-1 with the first correct answer data ANSWER-1 as shown in FIG. 4 for the first correct answer decision Judge 1 1, ANSWER-12, ANSWER-13, and ANSWER-14, as shown in Fig. 5, when the plural correct answer flags FLAG indicate a plurality of correct answers ). If the first learner's answer data ANS-1 matches any of the first correct answer data ANSWER-1 or the multiple answer data ANSWER-11, ANSWER-12, ANSWER-13, and ANSWER-14, (Child) process (CHILD PROCESS) performs a second correct answer decision (Judge 2) on the second learner's answer data (ANS-2). In this way, all of the learner's answer data (ANS-1, ANS-2,?, ANS-M) are correct answer data (Judge 1) Or the multiple correcting data, respectively, the child process CHILD PROCESS delivers a status value called CORRECT to the parent process. The learner (USER) is provided with the correct answer indication as scoring information.

학습자(USER)에게 제공되는 채점 정보에는 정답 표시 이외에 실행 시간 정보가 더 포함될 수 있다. 여기서, 실행 시간은 학습자 프로세스(USER PROCESS)가 테스트 데이터(TEST-1, TEST-2, …, TEST-M)를 입력 받아 학습자 답안 데이터(ANS-1, ANS-2, …, ANS-M)를 출력하는 데 소요되는 시간을 지시할 수도 있고, 그러한 학습자 프로세스의 소요 시간을 포함하여 자(子) 프로세스(CHILD PROCESS)가 제 1 차 정답 여부 판정(Judge1)부터 제 M 차 정답 여부 판정(JudgeM)까지 실시하는 데 소요되는 시간을 지시할 수도 있다. 또는 학습자 프로세스의 소요 시간과 자(子) 프로세스의 소요 시간을 모두 포함하여 모(母) 프로세스가 최종적으로 정답 표시를 제공하는데 소요되는 전체 시간을 실행 시간으로 정의할 수도 있다.The scoring information provided to the learner (USER) may further include execution time information in addition to the correct answer indication. In this case, the execution time is a time at which the learner process (USER PROCESS) receives the test data (TEST-1, TEST-2, ..., TEST- (Child process) (CHILD PROCESS) including the time required for the learner process to judge whether the first correct answer is to be judged (Judge1) to the Mth correct answer (JudgeM ) May also be indicated. Alternatively, the total time required for the parent process to finally provide the correct answer indication, including both the time taken by the learner process and the time required for the child process, may be defined as the execution time.

어느 프로그래밍 문제에 대해서 학습자(USER)가 제출한 답안 프로그램의 정답 여부 결과뿐만 아니라 그 답안 프로그램의 실행 시간 정보를 함께 제공하고, 더불어 그 프로그래밍 문제에 대해서 답안 프로그램을 제출한 전체 학습자들 중에서 해당 학습자가 차지한 실행 시간 순위를 또한 제공함으로써, 학습자가 코딩 효율성을 고민하도록 유도할 수 있다. 예컨대, 어느 프로그래밍 문제에 대해서 제출된 전체 답안 프로그램들을 실행 시간이 짧은 순위로 배열하고, 그 중에서 자신이 제출한 답안 프로그램의 실행 시간 순위가 몇 등인지 보여주는 것이다. 또한, 실행 시간 순위 이외에 답안 프로그램의 코딩 사이즈 순위도 제공할 수 있다. 학습자는 자신의 답안 프로그램이 상대적으로 더 짧은 실행 시간을 가지며 또한 상대적으로 더 적은 코딩 사이즈를 가지도록 고민하는 과정에서 효율적 코딩 능력을 연마할 수 있다. 그리고, 전체 답안 프로그램들 중에서 정답에 해당하는 답안 프로그램들이 차지하는 비율(정답률)을 부가적으로 제공함으로써, 해당 프로그래밍 문제의 난이도 수준을 알려 줄 수 있다.In addition to the results of the answer given by the learner (USER) regarding the programming problem, the learner also provides information on the execution time of the answer program. In addition, among the total learner who submitted the answer program for the programming problem, It is also possible to induce the learner to worry about the coding efficiency by providing the rank of the execution time occupied. For example, it is possible to arrange all of the submitted answer programs for a certain programming problem in a shorter run time, and to show how many times the run-time programs of the answer program they submitted are ranked. In addition to the execution time ranking, it is also possible to provide a coding size ranking of the answer program. The learner can polish his or her efficient coding skills in the process of having his answer program have a relatively shorter execution time and also have a relatively smaller coding size. In addition, the degree of difficulty of the programming problem can be informed by additionally providing the ratio of correct answer programs (correct answer rate) among all answer programs.

한편, 제 1 차 정답 여부 판정(Judge1)에서 제 1 학습자 답안 데이터(ANS-1)가 제 1 정답 데이터(ANSWER-1) 또는 복수 정답 데이터(ANSWER-11, ANSWER-12, ANSWER-13, ANSWER-14)와 일치하지 않으면, 자(子) 프로세스(CHILD PROCESS)는 오답(Wrong-1)이라는 상태값을 모(母) 프로세스(PARENT PROCESS)에 전달하며, 제 2 차 정답 여부 판정(Judge2)을 실시하지 않고 프로세스를 종료할 수 있다. 즉, 제 m 차 정답 여부 판정에서 오답이라는 결과가 나오면, 제 (m+1) 차 이상의 정답 여부 판정을 더 실시할 필요가 없는 것이다. On the other hand, in the first correct answer decision Judge 1, the first learner answer data ANS-1 is the first correct answer data ANSWER-1 or the plural answer data ANSWER-11, ANSWER-12, ANSWER-13, ANSWER- -14), the child process (CHILD PROCESS) transfers the state value of the incorrect answer (Wrong-1) to the parent process (PARENT PROCESS), and the second correct answer decision (Judge 2) The process can be terminated without performing the process. That is, when the result of the m-th order correct answer decision is an incorrect answer, it is not necessary to further determine whether or not the answer is equal to or more than the (m + 1) th answer.

다만, 본 발명의 실시예가 이에 국한되지는 않으며, 예컨대 정답 여부 판정은 모두 나중으로 미루고 우선적으로 제 1 테스트 데이터(TEST-1)부터 제 M 테스트 데이터(TEST-M)까지를 사용자 프로세스(USER PROCESS)에 각각 입력시켜 제 1 학습자 답안 데이터(ANS-1)부터 제 M 학습자 답안 데이터(ANS-M)까지를 먼저 얻은 다음에, 제 1 차 정답 여부 판정(Judge1)부터 제 M 차 정답 여부 판정(JudgeM)까지를 실시할 수도 있다. 그러나, 제 m 학습자 답안 데이터(ANS-m)가 정답 데이터와 일치하지 않으면 제 (m+1) 학습자 답안 데이터(ANS-[m+1])를 더 구하지 않고 프로세스를 종료하는 알고리즘이, 정답 여부 판정을 나중으로 미루고 먼저 제 1 학습자 답안 데이터(ANS-1)부터 제 M 학습자 답안 데이터(ANS-M)까지를 모두 구하는 알고리즘에 비해서 시스템 운영 측면에서 효율적이라고 볼 수 있다.However, the present invention is not limited to this example. For example, all of the determination of correct answers may be delayed and the first test data TEST-1 to the M test data TEST- (ANS-1) to the Mth learner's answer data (ANS-M) are first obtained and then the first correct answer decision (Judge1) to the Mth answer correct answer decision ( JudgeM) can be performed. However, if the m-th learner's answer data (ANS-m) does not match the correct answer data, the algorithm for ending the process without further obtaining the (m + 1) It can be considered that the algorithm is more efficient in terms of the system operation than the algorithm of postponing the judgment later and obtaining all the data from the first learner's answer data (ANS-1) to the Mth learner's answer data (ANS-M) first.

제 m 차 정답 여부 판정에서 오답이라는 결과가 나오는 경우에, 본 프로그래밍 교육 시스템(DOVELET SYSTEM)에서 제공하는 채점 정보는 단순한 오답 표시 이상의 추가 정보를 포함한다. 즉, 제 m 학습자 답안 데이터(ANS-m)가 제 m 정답 데이터(ANSWER-m, 복수 정답 데이터 포함)와 일치하는 않으면, 학습자(USER)에게 오답이라는 표시와 함께 제 m 테스트 데이터(TEST-m)와 제 m 정답 데이터(ANSWER-m), 및/또는 제 m 학습자 답안 데이터(ANS-m)를 보여 준다.When the result of the m-th correct answer determination is an incorrect answer, the scoring information provided by the DOVELET SYSTEM includes additional information beyond a simple error indication. That is, if the m-th learner's answer data ANS-m does not match the m-th correct answer data ANSWER-m and the plural correct answer data, the m-th test data TEST-m M), m-th correct answer data ANSWER-m, and / or m-th learner answer data ANS-m.

단순한 오답 표시만으로는 학습자(USER)가 자신의 답안 프로그램 중에서 틀린 부분을 찾아 내기 어려우므로, 제 m 테스트 데이터(TEST-m)와 제 m 정답 데이터(ANSWER-m) 그리고 제 m 학습자 답안 데이터(ANS-m)를 학습자(USER)에게 보여 줌으로써 제출된 답안 프로그램 중에서 틀린 부분을 찾아 내기 쉽도록 한다. 제 m 테스트 데이터(TEST-m)가 입력되면 제 m 정답 데이터(ANSWER-m)가 출력되어야 하는데, 그와 상이한 제 m 학습자 답안 데이터(ANS-m)가 출력되었으므로, 답안 프로그램이 왜 틀렸는지 분석해 보고 오류 부분을 정정하라는 지침을 주는 것이다. 이와 같은 방식에 의해 프로그래밍 학습자에게 자기주도형 오류 정정 학습 기회를 제공할 수 있다. 실시예에 따라서는 오답의 경우에 제 m 학습자 답안 데이터(ANS-m)는 제공하지 않고, 오답 표시와 제 m 테스트 데이터(TEST-m) 및 제 m 정답 데이터(ANSWER-m)만을 제공하는 실시예도 가능하다.The m test data TEST-m, the m correct answer data ANSWER-m, and the m-th learner's answer data ANS-m-1, since the learner USER can hardly find the wrong part in his / m) to the learner (USER) so that it is easy to find out the wrong part of the submitted answer program. When the m-th test data TEST-m is input, the m-th correct answer data ANSWER-m should be outputted. Since the m-th learner answer data (ANS-m) different from the m- It gives instructions to correct the reporting errors. In this way, it is possible to provide a self-directed error correction learning opportunity to a programming learner. According to the embodiment, in the case of an incorrect answer, the m-th learner's answer data (ANS-m) is not provided and only the m-th test data (TEST-m) and the m- Examples are possible.

학습자 프로세스(USER PROCESS)가 제 m 테스트 데이터(TEST-m)를 입력 받아 제 m 학습자 답안 데이터(ANS-m)를 출력하는 시간이 실행 제한 시간(TIME LIMIT)을 초과하거나, 학습자 프로세스(USER PROCESS)가 M개의 테스트 데이터를 입력 받아 M개의 학습자 답안 데이터를 출력하는 시간이 실행 제한 시간(TIME LIMIT)을 초과하거나, 위와 같은 학습자 프로세스의 소요 시간을 포함하여 자(子) 프로세스(CHILD PROCESS)가 제 1 차 정답 여부 판정(Judge1)부터 제 M 차 정답 여부 판정(JudgeM)까지 실시하는 데 소요되는 시간이 실행 제한 시간(TIME LIMIT)을 초과하거나, 위와 같은 학습자 프로세스의 소요 시간과 자(子) 프로세스의 소요 시간을 모두 포함하여 모(母) 프로세스가 최종적으로 정답 표시를 제공하는데 소요되는 시간이 실행 제한 시간(TIME LIMIT)을 초과하면, 제한 시간 초과라는 채점 정보가 학습자(USER)에게 제공된다. The time when the learner process USER PROCESS receives the m th test data TEST-m and outputs the m learner's answer data ANS-m exceeds the execution time limit TIME LIMIT or the learner process USER PROCESS ) Receives the M test data and outputs the M learner's answer data exceeds the execution time limit (TIME LIMIT), or the child process (CHILD PROCESS) including the time required for the learner process The time required for performing the first correct answer decision Judge 1 to the M th answer correct answer decision Judge M exceeds the execution time limit TIME LIMIT or the time required for the learner process and the above- If the time it takes for the parent process to finally provide the correct answer indication, including all the time spent in the process, exceeds the execution time limit (TIME LIMIT) Information is provided to the learner (USER).

실행 제한 시간(TIME LIMIT)을 초과하는 경우는 크게 두 가지로 분류될 수 있다. 첫째는, 학습자(USER)가 제출한 답안 프로그램에 치명적 오류가 있어 학습자 프로세스(USER PROCESS)에 무한 루프가 발생하고, 이로 인해 실행 시간이 무한대인 경우이다. 둘째는, 학습자(USER)가 제출한 답안 프로그램에 오류는 없지만 비효율적으로 코딩되어 실행 시간이 실행 제한 시간(TIME LIMIT) 이상으로 소요되는 경우이다. 두 경우 모두 본 프로그래밍 교육 시스템(DOVELET SYSTEM)을 안정적으로 운영하는데 장애 사유가 될 수 있으므로, 이러한 비정상적 프로세스를 강제적으로 제거하는 조치가 필요하다.When the execution time limit (TIME LIMIT) is exceeded, it can be roughly classified into two kinds. First, there is an infinite loop in the learner process (USER PROCESS) due to a fatal error in the answer program submitted by the learner (USER), and the execution time is infinite. Second, there is no error in the answer program submitted by the learner (USER), but it is coded inefficiently and the execution time is longer than the execution time limit (TIME LIMIT). In both cases, it is necessary to remove this abnormal process by forcibly removing the DOVELET SYSTEM because it can cause a failure to operate the DOVELET SYSTEM stably.

도 7은 비정상적 프로세스를 강제 제거하는 방식을 설명한다.7 illustrates a method for forcibly removing an abnormal process.

본 발명의 일 실시예에 따른 프로그래밍 교육 시스템(DOVELET SYSTEM)은 비정상적 프로세스를 체크하기 위한 주기적 모니터링을 실시한다. 도 7에서는 매 L분마다 주기적 모니터링이 실시되고 있다. 주기적 모니터링 1이 실시되면, 제 1 체크 타이밍(PROCESS ID CHECK 1)에서 실행되고 있는 모든 프로세스들의 식별자들(OBJ1000, OBJ1001, OBJ1003)을 체크한다. 그리고, 제 1 체크 타이밍(PROCESS ID CHECK 1)으로부터 소정의 시간(S초)을 경과한 제 2 체크 타이밍(PROCESS ID CHECK 2)에서 실행되고 있는 모든 프로세스들의 식별자들(OBJ1004, OBJ1005)을 다시 체크한다. 제 1 체크 타이밍(PROCESS ID CHECK 1)에서 체크한 식별자들 중에서 제 2 체크 타이밍(PROCESS ID CHECK 2)에서 체크한 식별자들과 일치하는 식별자가 없으므로, 주기적 모니터링 1에서는 비정상적 학습자 프로세스(USER PROCESS), 비정상적 자(子) 프로세스(CHILD PROCESS) 또는 비정상적 모(母) 프로세스(PARENT PROCESS) 등이 없다고 판단한다. 여기서, 소정의 시간(S초)은 모든 프로그래밍 문제들의 실행 제한 시간(TIME LIMIT)들 중에서 최장 실행 제한 시간보다 길게 설정되어야 한다.A programming education system (DOVELET SYSTEM) according to an embodiment of the present invention performs periodic monitoring for checking an abnormal process. In FIG. 7, periodic monitoring is performed every minute. When the periodic monitoring 1 is performed, the identifiers (OBJ1000, OBJ1001, OBJ1003) of all processes executed in the first check timing (PROCESS ID CHECK 1) are checked. Then, the identifiers (OBJ 1004, OBJ 1005) of all the processes executed in the second check timing (PROCESS ID CHECK 2) after a predetermined time (S seconds) elapsed from the first check timing (PROCESS ID CHECK 1) do. Since there is no identifier that matches the identifiers checked in the second check timing (PROCESS ID CHECK 2) among the identifiers checked in the first check timing (PROCESS ID CHECK 1), in the periodic monitoring 1, the abnormal learner process (USER PROCESS) It is determined that there is no abnormal child process (CHILD PROCESS) or abnormally parent process (PARENT PROCESS). Here, the predetermined time (S seconds) should be set to be longer than the longest execution time limit among the execution time limit (TIME LIMIT) of all programming problems.

L분이 경과하고 다시 주기적 모니터링 2가 실시된다. 제 3 체크 타이밍(PROCESS ID CHECK 3)에서 체크한 식별자들(OBJ1007) 중에서 제 4 체크 타이밍(PROCESS ID CHECK 4)에서 체크한 식별자들(OBJ1009, OBJ1010)과 일치하는 식별자가 없으므로, 주기적 모니터링 2에서도 비정상적 학습자 프로세스(USER PROCESS), 비정상적 자(子) 프로세스(CHILD PROCESS) 또는 비정상적 모(母) 프로세스(PARENT PROCESS) 등이 없다고 판단한다. 그런데, 주기적 모니터링 3에서는 제 5 체크 타이밍(PROCESS ID CHECK 5)에서 체크한 식별자들(OBJ1013, OBJ1014, OBJ1016) 중에서 제 6 체크 타이밍(PROCESS ID CHECK 6)에서 체크한 식별자들(OBJ1013, OBJ1020, OBJ1021)과 일치하는 프로세스 식별자(OBJ1013)가 존재한다. 프로세스 식별자 OBJ1013에 해당되는 학습자 프로세스는 최장 실행 제한 시간을 초과하여 계속 실행되고 있는 비정상 프로세스라고 의심되므로, 해당되는 학습자 프로세스를 강제 제거(PROCESS KILL)함으로써 비정상 상황 지속을 회피할 수 있다.L minutes have elapsed and periodic monitoring 2 is again performed. Since there is no identifier that matches the identifiers OBJ1009 and OBJ1010 checked in the fourth check timing PROCESS ID CHECK 4 among the identifiers OBJ1007 checked in the third check timing PROCESS ID CHECK 3, It is determined that there is no abnormal learner process (USER PROCESS), abnormal child process (CHILD PROCESS), or abnormal parent process (PARENT PROCESS). In periodic monitoring 3, identifiers (OBJ1013, OBJ1020, OBJ1021) checked in the sixth check timing (PROCESS ID CHECK 6) among the identifiers OBJ1013, OBJ1014 and OBJ1016 checked in the fifth check timing (PROCESS ID CHECK 5) Quot;) < / RTI > corresponding to the process identifier OBJ1013. Since the learner process corresponding to the process identifier OBJ1013 is suspected to be an abnormal process that is continuously executed exceeding the longest execution time limit, it is possible to avoid the abnormal situation by forcibly removing the corresponding learner process (PROCESS KILL).

이상에서는 도 1 내지 도 7을 참고하여 본 발명의 일 실시예에 따른 프로그래밍 교육 시스템을 설명하였으나, 아래와 같이 도 1 내지 도 7을 참고하여 본 발명의 다른 실시예에 따른 프로그래밍 교육 방법을 설명하는 것도 가능하다. 어느 실시예에 따른 프로그래밍 교육 방법은 컴퓨터 등의 스크린을 통해 학습자에게 제공되는 화면으로 설명될 수 있다.Although the programming education system according to an embodiment of the present invention has been described with reference to FIGS. 1 to 7, a programming training method according to another embodiment of the present invention will be described with reference to FIGS. 1 to 7 It is possible. A programming education method according to an embodiment can be described as a screen provided to a learner through a screen of a computer or the like.

본 발명의 다른 실시예에 따른 프로그래밍 교육 방법은 도 1에서와 같이 학습자(USER)에게 단계별 프로그래밍 문제들을 보여주는 화면을 제공한다. 예컨대, 학습자(USER)는 도 2와 같이 보여지는 단계별 프로그래밍 문제들 중에서 하나의 프로그래밍 문제를 선택하여 풀고, 답안 프로그램 제출 화면에서 보여지는 업로드/등록/입력 버튼 등을 통해 자신의 답안 프로그램을 제출한다. A programming training method according to another embodiment of the present invention provides a screen showing step-by-step programming problems to a learner (USER) as shown in FIG. For example, the learner USER selects and solves one programming problem among the step-by-step programming problems shown in FIG. 2, and submits his / her answer program through an upload / registration / input button shown on the answer program submission screen .

도 4에 예시된 바와 같이, 학습자(USER)가 선택한 프로그래밍 문제는 M개의 테스트 데이터(TEST-1, TEST-2, TEST-3, …, TEST-M)와 M개의 정답 데이터(ANSWER-1, ANSWER-2, ANSWER-3, …, ANSWER-M)에 의해 평가된다. 즉, 학습자(USER)가 제출한 답안 프로그램이 구동되어 실행되는 학습자 프로세스(USER PROCESS)는 M개의 테스트 데이터(TEST-1, TEST-2, TEST-3, …, TEST-M)에 응답하여 M개의 학습자 답안 데이터(ANS-1, ANS-2, ANS-3, …, ANS-M)를 출력하고, M개의 학습자 답안 데이터(ANS-1, ANS-2, ANS-3, …, ANS-M) 각각이 M개의 정답 데이터(ANSWER-1, ANSWER-2, ANSWER-3, …, ANSWER-M) 각각에 모두 일치하면, 도 6의 설명에서와 같이 정답 표시(CORRECT)를 포함하는 화면이 학습자에게 제공된다. 정답 표시 화면은 정답 표시 이외에 해당 프로그래밍 문제에 대한 실행 시간 정보, 실행 시간 순위, 코딩 사이즈 순위, 정답률 등을 함께 제공할 수 있다.4, the programming problem selected by the learner US includes M test data TEST-1, TEST-2, TEST-3, ..., TEST-M and M correct answer data ANSWER- ANSWER-2, ANSWER-3, ..., ANSWER-M). In other words, a learner process (USER PROCESS) in which an answer program that is submitted by the learner USER is executed and executed is executed in response to M test data (TEST-1, TEST-2, TEST-3, 1, ANS-2, ANS-3, ..., ANS-M) of the learner's answer data (ANS-1, ANS-2, ANS- ) Match each of the M correct answer data ANSWER-1, ANSWER-2, ANSWER-3, ..., ANSWER-M, the screen including the correct answer indication CORRECT, as shown in FIG. 6, Lt; / RTI > The correct answer display screen can provide execution time information, execution time rank, coding size rank, correct answer rate, and the like for the corresponding programming problem in addition to correct answer display.

도 6에 도시된 판정 방법과 같이, 제 m 차 정답 여부 판정에서 제 m 학습자 답안 데이터(ANS-m)가 제 m 정답 데이터(ANSWER-m)와 일치하지 않으면, 제 m 테스트 데이터(TEST-m)와 제 m 정답 데이터(ANSWER-m), 및/또는 제 m 학습자 답안 데이터(ANS-m)를 포함하는 오답 표시 화면을 학습자에게 제공할 수 있다. 여기서, m은 1 이상 M 이하의 자연수이다. 오답 표시 화면을 확인한 학습자는 제 m 테스트 데이터(TEST-m)와 제 m 정답 데이터(ANSWER-m), 및/또는 제 m 학습자 답안 데이터(ANS-m)를 참고하여 자신의 답안 프로그램 중에서 틀린 부분을 용이하게 찾아 낼 수 있다.If the m-th learner's answer data (ANS-m) does not match the m-th correct answer data (ANSWER-m) in the m-th answer correct answer determination like in the determination method shown in Fig. 6, M) correct answer data ANSWER-m, and / or m-th learner's answer data ANS-m to the learner. Here, m is a natural number of 1 or more and M or less. The learner who has confirmed the incorrect answer display screen refers to the m test data TEST-m, the m correct answer data ANSWER-m, and / or the mth learner answer data ANS-m, Can be easily found.

한편, 도 3에 도시된 복수 정답 플래그(FLAG)가 복수 정답을 지시하는 경우에, 즉, 복수 정답 플래그(FLAG)가 설정된 도 5와 같은 경우에, 제 m 테스트 데이터(TEST-m)에 대한 제 m 학습자 답안 데이터(ANS-m)가 제 m 정답 데이터(ANSWER-m1)와도 일치하지 않고 제 m 학습자 답안 데이터(ANS-m)가 해당 복수 정답 데이터(ANSWER-m2, ANSWER-m3, ….)와도 일치하지 않으면, 오답 표시를 포함하는 화면을 학습자에게 제공한다.On the other hand, in the case where the plural correct answer flags FLAG shown in FIG. 3 indicate a plurality of correct answers, that is, when the multiple correct answer flags FLAG are set as shown in FIG. 5, The mth learner's answer data (ANS-m) does not match the m correct answer data (ANSWER-m1) and the mth learner's answer data (ANS-m) does not match the corresponding plural correct answers data ANSWER-m2, ANSWER- ), The learner is provided with a screen including an incorrect answer display.

도 3에 도시된 바와 같이, 각 프로그래밍 문제에는 실행 제한 시간(TIME LIMIT)이 설정되는데, 어느 프로그래밍 문제에 대한 학습자 프로세스의 실행 시간이 실행 제한 시간(TIME LIMIT)을 초과하면, 제한 시간 초과 표시를 포함하는 오답 표시 화면이 학습자에게 제공된다. 여기서, 학습자 프로세스의 실행 시간은 학습자 프로세스(USER PROCESS)가 제 m 테스트 데이터(TEST-m)를 입력 받아 제 m 학습자 답안 데이터(ANS-m)를 출력하는 시간, 또는 학습자 프로세스(USER PROCESS)가 M개의 테스트 데이터를 입력 받아 M개의 학습자 답안 데이터를 출력하는 시간을 의미할 수 있다. 또는, 학습자 프로세스의 실행 시간은 이러한 좁은 의미의 학습자 프로세스의 소요 시간을 포함하여 도 6에서의 자(子) 프로세스(CHILD PROCESS)가 제 1 차 정답 여부 판정(Judge1)부터 제 M 차 정답 여부 판정(JudgeM)까지 실시하는 데 소요되는 시간, 또는 좁은 의미의 학습자 프로세스의 소요 시간과 자(子) 프로세스의 소요 시간을 모두 포함하여 모(母) 프로세스가 최종적으로 정답 표시를 제공하는데 소요되는 시간을 의미할 수 있다.As shown in FIG. 3, an execution time limit (TIME LIMIT) is set for each programming problem. If the execution time of the learner process for any programming problem exceeds the execution time limit (TIME LIMIT) The learner is provided with an incorrect answer display screen. Here, the execution time of the learner process is a time at which the learner process USER PROCESS receives the mth test data TEST-m and outputs the m learner's answer data ANS-m or the learner process USER PROCESS It may mean the time for receiving M test data and outputting M learner's answer data. Alternatively, the execution time of the learner process includes the time taken by the learner process in such a narrow sense, and the child process (CHILD PROCESS) in FIG. 6 judges whether or not the first correct answer decision (Judge1) (JudgeM), or the time it takes for the parent process to finally provide the correct answer indication, including both the time taken by the learner process in a narrow sense and the time taken by the child process It can mean.

학습자(USER)가 제출한 답안 프로그램에 치명적 오류가 있어 무한 루프의 발생 등으로 실행 시간이 무한대인 경우 또는 학습자(USER)가 제출한 답안 프로그램이 비효율적으로 코딩되어 실행 시간이 실행 제한 시간(TIME LIMIT)을 초과하는 경우에는, 도 7에 예시된 바와 같이, 이와 같은 비정상적 프로세스를 강제적으로 제거하는 조치가 필요하다. 제 1 체크 타이밍(예컨대, 도 7에서의 PROCESS ID CHECK 5)에서 체크된 학습자 프로세스의 식별자(예컨대, 도 7에서의 OBJ1013)가 제 2 체크 타이밍(예컨대, 도 7에서의 PROCESS ID CHECK 6)에서 체크된 학습자 프로세스의 식별자와 일치하는 경우에, 해당 프로세스(예컨대, 도 7에서의 OBJ1013)는 강제적으로 제거/종료되고 학습자에게는 제한 시간 초과 또는 프로그램 오류 표시를 포함하는 오답 표시 화면이 제공될 수 있다.If the execution time is infinite due to a fatal error in the answer program submitted by the learner (USER) or an infinite loop, or if the answer program written by the learner (USER) is coded inefficiently and the execution time is limited by the execution time limit ), It is necessary to take measures to forcibly remove such an abnormal process as illustrated in Fig. The identifier of the learner process checked in the first check timing (for example, PROCESS ID CHECK 5 in Fig. 7) (for example, OBJ1013 in Fig. 7) is checked at the second check timing (for example, PROCESS ID CHECK 6 in Fig. 7) (E.g., OBJ1013 in FIG. 7) is forcibly removed / terminated, and the learner may be provided with a wrong answer display screen including a timeout or a program error indication if the identifier matches the identifier of the checked learner process .

본 발명의 실시예는 이상에서 설명한 시스템 또는 방법을 통해서만 구현되는 것은 아니며, 해당 기술적 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록매체 등을 통해 구현될 수도 있다. 이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되지 않으며, 당업자가 다음의 청구범위에서 정의하고 있는 기술적 사상에 기초하여 균등하게 수정, 변경, 변형, 대체하는 것들이 본 발명의 권리범위에 포함된다.The embodiments of the present invention are not limited to the above-described system or method, but may be implemented by a program that realizes a function corresponding to the technical configuration or a recording medium on which the program is recorded. Although the embodiments of the present invention have been described in detail, it is to be understood that the scope of the present invention is not limited to the above embodiments but may be modified and changed without departing from the spirit and scope of the present invention. And are included in the scope of the present invention.

USER : 학습자
DOVELET SYSTEM : 프로그래밍 교육 시스템
TEST-1 ~ TEST-M : 테스트 데이터
ANS-1 ~ ANS-M : 학습자 답안 데이터
ANSWER-1 ~ ANSWER-M : 정답 데이터
TIME LIMIT : 실행 제한 시간
FLAG : 복수 정답 플래그
USER: Learners
DOVELET SYSTEM: Programming Education System
TEST-1 to TEST-M: Test data
ANS-1 ~ ANS-M: Learner's answer data
ANSWER-1 ~ ANSWER-M: Correct answer data
TIME LIMIT: execution time limit
FLAG: Multiple correct flag

Claims (12)

단계별 프로그래밍 문제들, 어느 프로그래밍 문제에 대한 M개(여기서, M은 자연수)의 테스트 데이터, 및 상기 M개의 테스트 데이터에 상응하는 M개의 정답 데이터를 저장하는 메모리; 및
상기 프로그래밍 문제에 대해서 학습자가 제출하는 답안 프로그램을 구동시켜 학습자 프로세스를 실행시키고, 상기 학습자 프로세스에 상기 테스트 데이터를 입력시켜 학습자 답안 데이터를 얻으며, 상기 학습자 답안 데이터를 상기 정답 데이터와 비교하여 채점 정보를 상기 학습자에게 제공하는 프로세서;를 구비하고,
상기 프로세서는, 제 m 학습자 답안 데이터(여기서, m은 1 이상 M 이하의 자연수)가 제 m 정답 데이터와 일치하지 않는 경우에, 제 m 테스트 데이터 및 상기 제 m 정답 데이터를 상기 학습자에게 제공하고,
상기 프로세서는, 주기적 모니터링을 실시하여 실행 중인 학습자 프로세스의 식별자를 체크하며,
상기 프로세서는, 제 1 체크 타이밍에서 체크한 학습자 프로세스의 식별자가 제 2 체크 타이밍에서 체크한 학습자 프로세스의 식별자와 일치하는 경우에, 해당 일치하는 학습자 프로세스를 강제 제거시키는 것을 특징으로 하는 프로그래밍 교육 시스템.
Step programming problems, a memory for storing M test data for a certain programming problem (where M is a natural number), and M correct data corresponding to the M test data; And
The learner process is executed by driving an answer program to be submitted by the learner with respect to the programming problem, the learner process data is inputted to the learner process to obtain learner's answer data, the learner's answer data is compared with the correct answer data, And a processor for providing the learner,
Wherein the processor provides the m test data and the m correct answer data to the learner when the mth learner's answer data (where m is a natural number equal to or greater than 1 and equal to or less than M) does not match the m correct answer data,
The processor performs periodic monitoring to check the identifier of the learner process in progress,
Wherein the processor forcibly removes the matching learner process when the identifier of the learner process checked at the first check timing coincides with the identifier of the learner process checked at the second check timing.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 단계별 프로그래밍 문제들을 보여주는 화면을 제공하는 단계;
M개(여기서, M은 자연수)의 테스트 데이터와 M개의 정답 데이터에 의해 평가되는 어느 프로그래밍 문제에 대하여 학습자의 답안 프로그램을 제출 받는 화면을 제공하는 단계; 및
상기 답안 프로그램을 구동시켜 실행되는 학습자 프로세스에 상기 테스트 데이터를 입력시켜 학습자 답안 데이터를 얻으며, 상기 학습자 답안 데이터를 상기 정답 데이터와 비교하여 채점 정보를 상기 학습자에게 보여주는 화면을 제공하는 단계;를 구비하고,
제 1 체크 타이밍에서 체크된 학습자 프로세스의 식별자가 제 2 체크 타이밍에서 체크된 학습자 프로세스의 식별자와 일치하는 경우에, 해당 학습자에게 프로그램 오류를 의미하는 오답 표시 화면을 제공하는 것을 특징으로 하는 프로그래밍 교육 방법.
Providing a screen showing step-by-step programming problems;
Providing a screen for receiving a learner's answer program for any programming problem evaluated by M test data (where M is a natural number) and M correct answer data; And
And inputting the test data into a learner process executed by running the answer program to obtain learner's answer data and comparing the learner's answer data with the correct answer data to provide a screen for showing the score information to the learner ,
When the identifier of the learner process checked at the first check timing coincides with the identifier of the learner process checked at the second check timing, the learner is provided with an error display screen indicating a program error .
제 9 항에 있어서,
M개의 학습자 답안 데이터 각각이 M개의 정답 데이터 각각에 모두 일치하면 정답 표시 화면을 제공하고,
제 m 학습자 답안 데이터(여기서, m은 1 이상 M 이하의 자연수)가 제 m 정답 데이터와 일치하지 않으면 제 m 테스트 데이터와 상기 제 m 정답 데이터를 포함하는 오답 표시 화면을 제공하는 것을 특징으로 하는 프로그래밍 교육 방법.
10. The method of claim 9,
The correct answer display screen is provided when each of the M learner answer data coincides with each of M correct answer data,
And provides the incorrect answer display screen including the mth test data and the m correct answer data if the mth learner's answer data (where m is a natural number of 1 or more and M or less) does not match the m correct answer data. How to train.
제 9 항에 있어서,
상기 프로그래밍 문제에 대해서 복수 정답 플래그가 설정된 경우에,
제 m 학습자 답안 데이터(여기서, m은 1 이상 M 이하의 자연수)가 제 m 정답 데이터와도 일치하지 않고 상기 제 m 학습자 답안 데이터가 해당 복수 정답 데이터와도 일치하지 않으면, 오답 표시 화면을 제공하는 것을 특징으로 하는 프로그래밍 교육 방법.
10. The method of claim 9,
When a plurality of correct answer flags are set for the programming problem,
If the m-th learner's answer data (where m is a natural number equal to or greater than 1 and equal to or less than M) does not match the m-th correct answer data and the m-th learner answer data does not match the corresponding multiple answer data, The method comprising:
제 9 항에 있어서,
상기 프로그래밍 문제에 대한 상기 학습자 프로세스의 실행 시간이 상기 프로그래밍 문제의 실행 제한 시간을 초과하면, 제한 시간 초과 표시를 포함하는 오답 표시 화면을 제공하는 것을 특징으로 하는 프로그래밍 교육 방법.
10. The method of claim 9,
And providing an incorrect answer display screen including an overtime indication if the execution time of the learner process for the programming problem exceeds the execution time limit of the programming problem.
KR1020160114101A 2016-09-05 2016-09-05 Programming education system and programming education method KR101846702B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160114101A KR101846702B1 (en) 2016-09-05 2016-09-05 Programming education system and programming education method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160114101A KR101846702B1 (en) 2016-09-05 2016-09-05 Programming education system and programming education method

Publications (2)

Publication Number Publication Date
KR20180027030A KR20180027030A (en) 2018-03-14
KR101846702B1 true KR101846702B1 (en) 2018-04-09

Family

ID=61660228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160114101A KR101846702B1 (en) 2016-09-05 2016-09-05 Programming education system and programming education method

Country Status (1)

Country Link
KR (1) KR101846702B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078943A (en) 2018-12-24 2020-07-02 주식회사 구름 Method for provide coding tests and scoring algorithms

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102198397B1 (en) * 2018-05-24 2021-01-05 조이연 Coding Table
KR101971660B1 (en) * 2018-10-01 2019-08-16 윤정관 Coding capability evaluation system based on storytelling

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078943A (en) 2018-12-24 2020-07-02 주식회사 구름 Method for provide coding tests and scoring algorithms

Also Published As

Publication number Publication date
KR20180027030A (en) 2018-03-14

Similar Documents

Publication Publication Date Title
Heffernan et al. A developmental model for algebra symbolization: The results of a difficulty factors assessment
Prather et al. Metacognitive difficulties faced by novice programmers in automated assessment tools
Hou Integrating cluster and sequential analysis to explore learners’ flow and behavioral patterns in a simulation game with situated-learning context for science courses: A video-based process exploration
Kim et al. Introduction for freshmen to embedded systems using LEGO Mindstorms
KR101846702B1 (en) Programming education system and programming education method
Kuehn et al. An expert system for the prediction of student performance in an initial computer science course
CN111737439B (en) Question generation method and device
Salekhova et al. The Principles of Designing an Expert System in Teaching Mathematics.
Fangohr et al. Teaching Python programming with automatic assessment and feedback provision
Stechly et al. On the self-verification limitations of large language models on reasoning and planning tasks
Harpstead et al. Using extracted features to inform alignment-driven design ideas in an educational game
WO2016018336A1 (en) Create a heterogeneous learner group
Carter An intelligent debugging tutor for novice computer science students
JP2018155871A (en) Learning support terminal, learning support server, learning support system, learning support method and learning support program
CN116452033A (en) Digitalized course implementation method and digitalized teaching system
US20140113719A1 (en) Computing device and video game direction method
US20200105153A1 (en) Interactive system for teaching sequencing and programming
Rieber Writing performance objectives
Kamoi et al. When Can LLMs Actually Correct Their Own Mistakes? A Critical Survey of Self-Correction of LLMs
US10665120B2 (en) System and method for encouraging studying by controlling student's access to a device based on results of studying
JP2019104128A (en) Intellectual training sheet, intellectual training system, intellectual training program, answer checking system for intellectual training sheet and answer checking program for intellectual training sheet
Dinar et al. Patterns of creative design: predicting ideation from problem formulation
US20160210873A1 (en) User performance skill enhancement based on curricular mapping
Morazán et al. Functional Automata-Formal Languages for Computer Science Students
WO2017019055A1 (en) Content selection based on predicted performance related to test concepts

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant