KR101844047B1 - 온라인 프로그래밍 교육 방법 - Google Patents

온라인 프로그래밍 교육 방법 Download PDF

Info

Publication number
KR101844047B1
KR101844047B1 KR1020160145208A KR20160145208A KR101844047B1 KR 101844047 B1 KR101844047 B1 KR 101844047B1 KR 1020160145208 A KR1020160145208 A KR 1020160145208A KR 20160145208 A KR20160145208 A KR 20160145208A KR 101844047 B1 KR101844047 B1 KR 101844047B1
Authority
KR
South Korea
Prior art keywords
code
unit
keyword
comment
user terminal
Prior art date
Application number
KR1020160145208A
Other languages
English (en)
Inventor
이윤수
Original Assignee
주식회사 코드잇
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코드잇 filed Critical 주식회사 코드잇
Priority to KR1020160145208A priority Critical patent/KR101844047B1/ko
Application granted granted Critical
Publication of KR101844047B1 publication Critical patent/KR101844047B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • 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
    • G09B5/00Electrically-operated educational appliances
    • G09B5/06Electrically-operated educational appliances with both visual and audible presentation of the material to be studied
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

온라인 프로그래밍 교육 방법을 제공한다. 본 온라인 프로그래밍 교육 방법은, 교육 서버는 프로그래밍의 특정 단원의 과제를 사용자 단말에 제공하고, 교육 서버는 사용자 단말로부터 수신된 코드가 특정 단원에 부합한 코드인지 확인하며, 상기 코드가 상기 특정 단원에 부합한 코드가 아닌 것으로 확인되면, 교육 서버는 특정 단원에 부합하도록 코드 수정을 위한 코멘트를 제공한다.

Description

온라인 프로그래밍 교육 방법{OLINE PROGRAMMING LEARNING METHOD}
본 개시는 온라인으로 프로그래밍을 교육하는 방법 및 그 장치에 관한 것이다.
원격 교육은 교육서비스를 교육 수요자에게 전달하는 수단의 기술적인 발전과 함께 발전하고 있다. 이러한 원격 교육은 교육 서비스를 원격지로 단순히 전달한다. 공개공보 제2002-0088962호는 동영상을 이용한 원격 강의 시스템 및 원격강의 방법을 개시하고 있다.
한편, 네트워크의 발달로 교육자(또는 원격 교육 서버)와 서비스 이용자(또는 학생)간의 상호 작용을 하면서 교육 서비스를 진행하고자 하는 욕구가 증가하고 있다. 그러나 서비스 이용자들의 교육 수준에 따라 서비스 이용자의 요구 사항이 다양함에 따라 실시간으로 교육자 또는 원격 교육 서버가 서비스를 제공하지 못하는 문제점이 있다.
본 개시는 온라인으로 프로그래밍을 교육하는 방법에 있어서, 단원별 프로그래밍의 과제를 제공하고, 단원에 부합한 코멘트를 제공하는 방법 및 서버를 제공한다.
본 발명의 일 측면(aspect)에 따른 온라인 프로그래밍 교육 방법은, 교육 서버는 프로그래밍의 특정 단원의 과제를 사용자 단말에 제공하는 단계; 상기 교육 서버는 상기 사용자 단말로부터 수신된 코드가 상기 특정 단원에 부합한 코드인지 확인하는 단계; 및 상기 코드가 상기 특정 단원에 부합한 코드가 아닌 것으로 확인되면, 상기 교육 서버는 상기 특정 단원에 부합하도록 코드 수정을 위한 코멘트를 제공하는 단계;를 포함한다.
그리고, 상기 교육 서버는 상기 코드가 상기 과제에 부합한 코드인지 확인하는 단계;를 더 포함할 수 있다.
또한, 상기 과제에 부합한 코드는, 상기 코드가 구문 오류 및 논리 오류가 없는 코드일 수 있다.
그리고, 상기 코드가 상기 특정 단원에 부합한 코드인지 확인하는 단계는, 상기 특정 단원에 포함되어야 할 하나 이상의 포지티브 키워드 및 상기 특정 단원에 포함되지 않아야 할 하나 이상의 네거티브 키워드 중 적어도 하나를 포함하는 키워드 리스트를 생성하는 단계; 및 상기 코드에서 상기 포지티브 키워드 및 상기 네거티브 키워드의 존재 유무를 기초로 상기 코멘트를 생성하는 단계;를 포함할 수 있다.
또한, 상기 포지티브 키워드 및 상기 네거티브 키워드는 단원에 따라 달라질 수 있다.
그리고, 상기 코멘트는, 상기 코드에 상기 포지티브 키워드가 포함되지 않으면 상기 포지티브 키워드를 포함할 것을 요청하는 제1 코멘트 및 상기 코드에 상기 네거티브 키워드가 포함되어 있으면 상기 네거티브 키워드를 제외시킬 것을 요청하는 제2 코멘트 중 적어도 하나를 포함한다.
또한, 상기 코멘트는, 상기 코드에 포함된 띄어쓰기가 잘못된 경우에도 제공될 수 있다.
그리고, 상기 코멘트에는 상기 코드 중 상기 띄어쓰기가 잘못된 위치에 대한 정보를 포함할 수 있다.
또한, 상기 교육 서버는 상기 특정 단원에 포함되어야 할 포지티브 키워드에 대한 정보를 힌트 형식으로 상기 사용자 단말에 제공하는 단계;를 더 포함할 수 있다.
그리고, 상기 코드가 상기 특정 단원에 부합한 코드인 것으로 확인되면, 상기 과제에 대한 모범 답안의 강의를 수강할 수 있는 권한 및 상기 특정 단원과 다른 단원의 동영상 강의를 수강할 수 있는 권한 중 적어도 하나를 상기 사용자 단말의 사용자에게 제공하는 단계;를 더 포함할 수 있다.
한편, 발명의 일 측면(aspect)에 따른 교육 서버는, 프로그래밍 교육을 수강할 수 있는 사용자 단말과 통신 가능한 통신 인터페이스; 및 프로그래밍의 특정 단원의 과제를 상기 통신 인터페이스를 통해 상기 사용자 단말에 제공하고, 상기 통신 인터페이스를 통해 상기 사용자 단말로부터 수신된 코드가 상기 특정 단원에 부합한 코드가 아닌 것으로 확인되면, 상기 특정 단원에 부합하도록 코드 수정을 위한 코멘트를 상기 통신 인터페이스를 통해 상기 사용자 단말에 제공하는 제어부;를 포함한다.
그리고, 상기 제어부는, 상기 코드가 상기 과제에 부합한 코드인 것으로 확인되면, 상기 코드가 상기 특정 단원에 부합한 코드인지 확인할 수 있다.
또한, 상기 과제에 부합한 코드는, 상기 코드가 구문 오류 및 논리 오류가 없는 코드일 수 있다.
그리고, 상기 제어부는, 상기 특정 단원에 포함되어야 할 하나 이상의 포지티브 키워드 및 상기 특정 단원에 포함되지 않아야 할 하나 이상의 네거티브 키워드 중 적어도 하나를 포함하는 키워드 리스트를 생성하고, 상기 코드에서 상기 포지티브 키워드 및 상기 네거티브 키워드의 존재 유무를 기초로 상기 코멘트를 생성할 수 있다.
또한, 상기 포지티브 키워드 및 상기 네거티브 키워드는 단원에 따라 달라질 수 있다.
그리고, 상기 코멘트는, 상기 코드에 포지티브 키워드가 포함되지 않은 경우 및 상기 네거티브 키워드를 포함하는 경우 중 적어도 하나를 포함할 때, 생성될 수 있다.
또한, 상기 코멘트는, 상기 코드에 상기 포지티브 키워드가 포함되지 않으면, 상기 포지티브 키워드를 포함할 것을 요청하는 제1 코멘트, 상기 코드에 상기 네거티브 키워드가 포함되어 있으면 상기 네거티브 키워드를 제외시킬 것을 요청하는 제2 코멘트 중 적어도 하나를 포함할 수 있다.
그리고, 상기 코멘트는, 상기 코드에 포함된 띄어쓰기가 잘못된 경우에도 제공될 수 있다.
또한, 상기 코멘트에는 상기 코드 중 상기 띄어쓰기가 잘못된 위치에 대한 정보를 포함할 수 있다.
그리고, 상기 제어부는, 상기 코드가 상기 특정 단원에 부합한 코드인 것으로 확인되면, 상기 과제에 대한 모범 답안의 동영상 강의를 수강할 수 있는 권한 및 상기 특정 단원과 다른 단원의 동영상 강의를 수강할 수 있는 권한 중 적어도 하나를 상기 사용자 단말의 사용자에게 제공할 수 있다.
단원별 적합한 코드에 대한 코멘트를 제공함으로써 사용자가 프로그래밍을 보다 능수 능란하게 수행할 수 있도록 가이드한다.
도 1은 일 실시예에 따른 온라인 프로그래밍 교육 시스템을 개략적으로 도시한 도면이다.
도 2는 도1의 교육 서버를 나타내는 블록도이다.
도 3은 도 1의 사용자 단말을 나타내는 블록도이다.
도 4는 일 실시예에 따른 온라인으로 프로그래밍의 단원별 과제를 채점하는 방법을 설명하는 흐름도이다.
도 5 내지 11은 일 실시예에 따른 온라인 프로그래밍 교육과 관련하여 교육 서버가 사용자 단말에 제공하는 화면은 나타내는 참조도면이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
도 1은 일 실시예에 따른 온라인 프로그래밍 교육 시스템을 개략적으로 도시한 도면이다. 도 1을 참조하면, 온라인 프로그래밍 교육 시스템(100)은 네트워크로 연결된 교육 서버(110)와 사용자 단말(120)을 포함할 수 있다.
네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 개인 근거리 무선통신(Personal Area Network; PAN), 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 유무선 네트워크로 구현될 수 있다.
이외에도 시스템(100)은 교육 서버(110)와 연계된 결제 서버, 또 다른 사용자 단말을 더 포함할 수 있다.
교육 서버(110)는 사용자 단말(120)과 네트워크를 통해 연결되어 사용자 단말(120)에게 프로그래밍 관련 교육 컨텐츠를 제공하는 장치이다. 네트워크를 통해 사용자 단말(120)이 교육 서버(110)에 접속하면, 교육 서버(110)는 프로그래밍 교육과 관련된 다양한 화면을 사용자 단말(120)에 제공할 수 있다. 교육 서버(110)는 사용자 단말(120)에 교육 서비스를 제공하는 서버(110) 컴퓨터 또는 서버(110) 프로그램일 수 있다.
사용자 단말(120)은 프로그래밍을 교육받기 위해 사용자가 이용할 수 있는 단말로서, 유선 또는 무선 네트워크를 통해 교육 서버(110), 결제 서버에 접속하여 데이터를 송수신할 수 있는 단말이다. 사용자 단말(120)은 스마트폰, PC, 태블릿 PC, 노트북, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버(110), GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 디지털 카메라, 웨어러블 장치 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
도 2는 도1의 교육 서버(110)를 나타내는 블록도이다.
도 2를 참조하면, 교육 서버(110)는 외부 기기, 예를 들어, 사용자 단말(120), 결제 서버 등과 네트워크를 통해 통신하는 제1 통신 인터페이스(210), 동영상 강의를 포함하는 온라인 프로그래밍 교육 관련 데이터를 저장하고 관리하는 데이터베이스(220) 및 사용자 단말(120)의 요청에 따라 데이터베이스(220)에 저장된 동영상 강의 또는, 데이터베이스(220)에 저장된 데이터를 기반으로 사용자 단말(120)의 요청에 부합한 데이터를 생성하여 제1 통신 인터페이스(210)를 통하여 사용자 단말(120)에 제공하는 제1 제어부(230)를 포함할 수 있다.
데이터베이스(220)는 동영상 강의를 포함하는 온라인 프로그래밍 교육 관련 데이터가 저장되어 있다. 예를 들어, 사용자별 교육 이력 데이터, 프로그래밍의 단원별 동영상 강의, 단원별 과제, 단원별 과제에 대한 모범 답안에 대한 동영상 강의, 사용자 단말(120)로부터 수신된 코드를 채점하는 채점 툴, 사용자에 대한 정보, 사용자별 교육 이력 데이터 등이 저장되어 있다.
제1 제어부(230)는 사용자 단말(120)의 요청에 따라 프로그래밍의 단원별 동영상 강의를 제공할 수 있으며, 단원별 동영상 강의가 종료되면 다음 단원의 동영상을 제공하기 전에 종료된 단원에 대한 과제를 사용자 단말(120)에 제공할 수 있다. 그리고, 사용자 단말(120)로부터 단원에 대응하는 코드를 수신하면, 상기한 코드가 단원에 부합한 코드인지 여부를 확인하고 그 결과에 따른 코멘트를 생성하여 사용자 단말(120)에 제공할 수 있다. 또한, 제1 제어부(230)는 단원에 부합한 코드를 전송하는 사용자 단말(120)에 과제에 대한 모법 답안의 동영상 강의를 제공할 수 있다. 이외에도 제1 제어부(230)는 프로그래밍의 교육을 위한 다양한 정보를 생성하여 사용자 단말(120)에 제공할 수 있다.
도 3은 도 1의 사용자 단말(120)을 나타내는 블록도이다. 사용자 단말(120)은 사용자가 교육 서버(110)에 접속하여 온라인 프로그래밍 교육을 받기 위한 단말이다. 사용자 단말(120)은 예를 들어, 데스크톱 컴퓨터를 비롯한 개인용 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터를 비롯한 휴대용 컴퓨터, 및 휴대폰, 스마트폰을 포함하는 모바일 기기일 수 있으나, 이에 한정되는 것은 아니다. 일 실시예에서 사용자 단말(120)은 교육 서버(110)와 클라이언트-서버(110) 시스템을 이룰 수 있다.
도 3에 도시된 바와 같이, 사용자 단말(120)은 외부 기기, 예를 들어, 교육 서버(110), 결제 서버 등과 네트워크를 통해 통신하는 제2 통신 인터페이스(310), 교육 받고자 하는 프로그래밍 프로그램(예를 들어, 파이썬 프로그램, C언어 프로그램)이 저장된 저장부(320), 프로그래밍 교육과 관련된 동영상 강의를 표시하는 디스플레이부(331)를 포함한 출력부(330), 프로그래밍과 관련된 코드, 사용자 명령 등을 입력할 수 있는 사용자 인터페이스(340), 사용자 단말(120)의 전반적인 기능을 제어하는 제2 제어부(350)를 포함할 수 있다.
사용자는 사용자 단말(120)을 통해 교육 서버(110)에 접속하여 프로그래밍 교육을 받을 수 있다. 특히, 사용자는 단원별 프로그래밍 동영상 강의를 수강하면, 교육 서버(110)는 사용자에게 다음 단원의 동영상 강의를 제공하기 전에 수강한 단원에 대한 코드를 작성할 수 있는지 여부를 확인하기 위한 과제를 사용자 단말(120)에 제공할 수 있다. 또는 사용자가 단원별 프로그래밍 동영상 강의를 수강하지 않더라도 사용자의 프로그래밍 실력을 테스트하기 위해 단원별 과제를 제공할 수도 있다.
도 4는 일 실시예에 따른 온라인으로 프로그래밍의 단원별 과제를 채점하는 방법을 설명하는 흐름도이다.
도 4를 참조하면, 410단계에서, 교육 서버(110)는 프로그래밍에 대한 특정 단원의 과제를 사용자 단말(120)에 제공할 수 있다. 교육 서버(110)는 프로그래밍의 특정 단원에 대응하는 과제가 포함된 제1 영역과 상기한 과제를 풀기 위한 코드를 입력할 수 있는 제2 영역을 포함하는 화면을 사용자 단말(120)에 제공할 수 있다. 예를 들어, 교육 서버(110)는 프로그래밍 교육의 효율화를 위해, 프로그래밍 교육을 복수 개의 단원으로 세분화할 수 있다. 예를 들어, 교육 서버(110)는 파이썬 프로그래밍 교육과 관련하여 숫자형, 문자열, 형 변환 등의 단원을 프로그래밍 교육을 세분화할 수 있다.
그리고, 420단계에서, 사용자는 사용자 단말(120)을 통해 제2 영역에 과제를 풀기 위한 코드를 입력하고, 사용자 단말(120)은 입력된 코드를 교육 서버(110)에 전송할 수 있다. 상기한 코드는 프로그래밍 교육과 관련된 프로그램에서 사용되는 언어로 구성될 수 있다. 교육 서버(110)는 사용자 단말(120)로부터 수신된 코드가 과제에 부합한 코드인지 여부를 확인할 수 있다. 예를 들어, 교육 서버(110)의 제1 제어부(230)는 사용자 단말(120)에 저장된 프로그램을 이용하여 사용자에 의해 입력된 코드가 구문 오류(syntax error) 및 논리 오류(logic error)가 있는지 여부를 확인할 수 있다. 코드가 구문 오류 및 논리 오류가 없는 것으로 확인되면, 사용자 단말(120)은 코드가 과제에 부합한 코드인 것으로 판단할 수 있다. 즉, 코드가 과제를 해결하는데 오류가 없는 코드인 것으로 판단할 수 있다.
또한, 430단계에서, 교육 서버(110)는 사용자 단말(120)로부터 수신된 코드가 특정 단원에 부합한 코드인지 여부를 확인할 수 있다. 코드가 과제에 부합한 코드인지 여부는 프로그래밍 프로그램을 이용하여 구문 오류 및 논리 오류가 있는지 여부로 확인되며, 코드가 단원에 부합한 코드인지 여부는 코드에 포함된 언어가 단원별로 필요한 언어인지 아닌지 여부에 따라 결정될 수 있다.
교육 서버(110)의 데이터베이스(220)에는 단원별로 코드에 포함되어야 할 포지티브 키워드와 코드에 포함되지 않아야 할 네거티브 키워드가 기저장되어 있을 수 있다. 예를 들어, 문자열 형 변환 단원에서 for, while, if, 등이 코드에 포함되어야 할 포지티브 키워드로 기저장되어 있고, append는 코드에 포함되지 않아야 할 네거티브 키워드로 기저장될 수 있다. 네거티브 키워드를 이용한다 하더라도 과제를 풀기 위한 코드는 완성될 수 있다. 과제 해결을 위한 프로그래밍에는 오류가 없다.
그러나, 단원, 예를 들어, 문자열 형 변환 단원을 수행하는데 다양한 다른 언어를 사용할 수 있는 기회를 줄일 수 있기 때문에 교육 서버(110)는 네거티브 키워드로 기저장할 수 있다. 이와 같이, 포지티브 키워드와 네거티브 키워드는 단원별로 달라질 수 있다. 예를 들어, 제1 단원에서는 포지티브 키워드였던 언어가 다른 단원, 예를 들어, 제2 단원에서는 네거티브 키워드가 될 수 있다.
교육 서브는 데이터베이스(220)를 이용하여 특정 단원에 포함되어야 할 하나 이상의 포지티브 키워드 및 상기 특정 단원에 포함되지 않아야 할 하나 이상의 네거티브 키워드 중 적어도 하나를 포함하는 키워드 리스트를 생성할 수 있다. 그리고, 사용자 단말(120)로부터 수신된 코드에 포지티브 키워드 및 네거티브 키워드의 존재 유무를 확인하여 코멘트를 작성할 수 있다.
예를 들어, 교육 서버(110)는 코드에 포지티브 키워드가 포함되어 있으면 별도의 코멘트를 작성할 필요가 없지만, 코드에 포지티브 키워드가 포함되어 있지 않으면 포지티브 키워드를 포함할 것을 요청하는 코멘트를 작성할 수 있다. 또한, 교육 서브는 코드에 네거티브 키워드가 포함되어 있으면 네거티브 키워드를 제외시킬 것을 요청하는 코멘트를 작성하고 코드에 네거티브 키워드가 포함되어 있지 않으면 별도의 코멘트를 작성하지 않아도 된다. 포지티브 키워드 및 네거티브 키워드가 복수 개이면 교육 서버(110)는 복수 개의 코멘트를 작성할 수 있다. 또한, 교육 서버(110)는 코드에 포지티브 키워드를 포함하고 네거티브 키워드를 포함하지 않으면 코드가 단원에 부합한 코드임을 것을 알리는 코멘트를 작성할 수도 있다. 코멘트 중 포지티브 키워드를 포함시키거나 네거티브 키워드를 제외시킬 것을 요청하는 코멘트를 수정 요청 코멘트라고 하고, 단원에 부합한 코드임을 알리는 코멘트를 성공 코멘트라고 칭할 수 있다.
440단계에서, 교육 서버(110)는 작성된 코멘트를 사용자 단말(120)에 제공할 수 있다. 교육 서버(110)가 수정 요청 코멘트를 사용자 단말(120)에 제공하면, 사용자는 수정 요청 코멘트에 따라 코드를 수정하여 입력할 수 있다. 수정된 코드는 교육 서버(110)에 전송되고 교육 서버(110)는 앞서 기술된 단계를 반복할 수 있다. 즉, 교육 서버(110)는 코드가 단원에 부합한 코드인지 여부를 확인하고 그에 대응하는 코멘트를 생성하여 사용자 단말(120)에 제공할 수 있다.
한편, 교육 서버(110)가 성공 코멘트를 생성하면, 교육 서버(110)는 코드를 작성한 사용자에게 과제에 대한 모범 답안의 강의, 예를 들어, 동영상 강의 또는 텍스트 강의를 확인할 수 있는 권한 또는 다음 단원의 동영상 강의를 수강할 수 있는 권한을 제공하면서 성공 코멘트를 사용자 단말(120)에 전송할 수 있다. 사용자 단말(120)로 성공 코멘트가 전송되면, 사용자는 과제에 대한 모범 답안의 강의 또는 다음 단원의 동영상 강의를 수강할 수 있다.
과제에 부합한 코드는 다양할 수 있다. 즉, 과제를 해결하기 위한 코드의 유형은 다양할 수 있다. 온라인 프로그래밍 교육은 과제를 해결하기 위한 코드를 작성을 위한 것이 아니라, 해당 프로그래밍 프로그램에서 이용될 수 있는 다양한 언어를 능수 능란하게 이용하는데 목적이 있다. 그리하여, 교육 서버(110)는 단원별로 포지티브 키워드 및 네거티브 키워드를 설정하고, 사용자가 각 단원에 부합한 키워드를 프로그래밍할 수 있도록 가이드함으로써 프로그래밍을 보다 잘 작성할 수 있도록 한다.
도 5 내지 11은 일 실시예에 따른 온라인 프로그래밍 교육과 관련하여 교육 서버(110)가 사용자 단말(120)에 제공하는 화면은 나타내는 참조도면이다.
교육 서버(110)는 특정 프로그램의 프로그래밍을 위한 다양한 단원을 제공할 수 있다. 예를 들어, 교육 서버(110)는 파이썬 프래그램의 프로그래밍을 위한 단원 리스트를 사용자 단말(120)에 제공할 수 있고, 도 5에 도시된 바와 같이, 사용자 단말(120)은 단원 리스트(510)를 디스플레이부에 표시할 수 있다.
각 단원에서는 서브 단원 및 과제 등을 포함할 수 있다. 도 6에 도시된 바와 같이, for문 및 리스트 심화 단원(610)에는 '자리수 합 구하기', '주민등록 번호 가리기', '팔린드롬' 등의 서브 단원과 상기한 서브 단원에 대응하는 과제 등의 항목(620)을 포함할 수 있다. 사용자는 각 서브 단원의 아이콘을 클릭하면, 교육 서버(110)는 사용자 단말(120)의 디스플레이부 우측에 각 서브 단원에 대한 강의 내용을 제공할 수 있다.
그리고, 사용자가 서브 단원에 대응하는 과제를 클릭하면, 교육 서버(110)는 사용자 단말(120)의 디스플레이부(331) 우측에 과제를 제공하고, 사용자는 과제에 대한 코드를 작성할 수 있다. 사용자가 코드를 작성한 후, 채점이라는 아이콘을 클릭하면, 사용자 단말(120)은 사용자가 작성한 코드를 교육 서버(110)에 전송하고, 교육 서버(110)는 코드가 과제에 부합한 코드인지 및 단원에 부합한 코드인지 여부를 확인할 수 있다.
그리고, 도 7에 도시된 바와 같이, 교육 서버(110)는 과제에 부합한 코드인지 및 단원에 부합한 코드인지에 대한 코멘트를 사용자 단말(120)에 제공할 수 있다. 교육 서버(110)는 논리 오류 및 구문 오류가 없는 경우, 과제에 부합한 코드라는 의미에서 정답은 '맞았습니다'라는 코멘트(710)를 제공할 수 있다. 그러나, 단원에 부합한 코드가 아닌 경우, 단원에 부합하도록 안내하는 코멘트를 제공할 수 있다. 도 7에 도시된 바와 같이, 교육 서버(110)는 코드의 띄어쓰기에 대한 코멘트(720)도 제공할 수 있으며, 띄어쓰기가 틀린 위치를 대한 정보도 제공하면서 올바른 띄어쓰기에 대한 코멘트를 제공할 수 있다. 또한, 단원의 포지티브 키워드로 'for'가 있음에도 불구하고, 사용자가 'for'를 작성하지 않는 경우, 'for문을 써주세요'라는 코멘트(730)를 제공할 수 있으며, 단원에는 'append'를 기재하지 말아야 하는데, 기재한 경우에는 'append는 쓰지 마세요'라는 코멘트(740)를 제공할 수도 있다.
상기한 코멘트를 제공하면서, 도 8에 도시된 바와 같이, 교육 서버(110)는 다시 시도할 것을 안내하는 문구(810)를 제공할 수 있다. 즉, 과제에 부합한 코드라고 할지라도 단원에 부합한 코드가 아닌 경우, 교육 서버(110)는 상기한 코드를 작성한 사용자에 대해 바람직하게 프로그래밍하지 못하고 있다고 판단할 수 있다. 그리하여, 단원에 부합한 코드를 기재하도록 사용자에게 안내할 수 있다. 물론, 과제에 부합하지 않는 코드를 작성한 경우에도, 교육 서버(110)는 다시 시도할 것을 안내하는 문구를 제공할 수 있음은 물론이다.
그리고, 코드가 과제에도 부합하고 단원에도 부합한 경우에는, 도 9에 도시된 바와 같은 코멘트, 문구(910) 등을 제공할 수 있다.
한편, 사용자가 과제를 풀지 않고, 과제에 대한 해석, 즉, 강의를 보고자 하는 경우, 도 10에 도시된 바와 같은, 문구(1010)을 제공할 수 있다. 즉, 과제를 대한 코드를 작성하고, 작성된 코드가 과제에 부합하면서 단원에 부합한 경우에 한하여 과제에 대한 강의를 확인할 수 있음을 알리는 문구(1010)를 제공할 수 있다. 또한, 작성된 코드가 과제에 부합하고 단원에 부합하면, 교육 서버(110)는 상기한 코드를 작성한 사용자에게 상기한 과제에 대한 강의, 예를 들어, 동영상 강의 또는 텍스트 강의를 수강할 수 있는 권한을 제공할 수 있다. 또는 작성된 코드가 과제에 부합하고 단원에 부합하면, 교육 서버(110)는 사용자에게 다른 단원을 수강할 수 있는 권한을 제공할 수 있다.
한편, 도 11에 도시된 바와 같이, 교육 서버는 특정 단원의 과제에 대한 코드 작성을 위한 화면내에 특정 단원에 포함되어야 할 포지티브 키워드에 대한 정보를 힌트(1110) 형식으로 제공할 수도 있다. 사용자는 상기한 힌트(1110)를 보면서 과제에 대한 코드를 작성할 수 있다. 상기한 힌트(1110)는 사용자의 선택에 따라 표시될 수도 있고, 표시되지 않을 수도 있다.
이제까지 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 온라인 프로그래밍 교육 시스템
110: 교육 서버
120: 사용자 단말
210: 제1 통신 인터페이스
220: 데이터베이스
230: 제1 제어부
310: 제1 사용자 인터페이스
320: 저장부
330: 출력부
340: 사용자 인터페이스
350: 제어부

Claims (10)

  1. 교육 서버는 프로그래밍의 특정 단원의 과제를 사용자 단말에 제공하는 단계;
    상기 교육 서버는 상기 사용자 단말로부터 수신된 코드가 상기 특정 단원에 부합한 코드인지 확인하는 단계; 및
    상기 코드가 상기 특정 단원에 부합한 코드가 아닌 것으로 확인되면, 상기 교육 서버는 상기 특정 단원에 부합하도록 코드 수정을 위한 코멘트를 제공하는 단계;를 포함하고,
    상기 코드가 상기 특정 단원에 부합한 코드인지 확인하는 단계는,
    상기 특정 단원에 포함되어야 할 하나 이상의 포지티브 키워드 및 상기 특정 단원에 포함되지 않아야 할 하나 이상의 네거티브 키워드 중 적어도 하나를 포함하는 키워드 리스트를 생성하는 단계; 및
    상기 코드에서 상기 포지티브 키워드 및 상기 네거티브 키워드의 존재 유무를 기초로 상기 코멘트를 생성하는 단계;를 포함하며
    상기 포지티브 키워드 및 상기 네거티브 키워드는 단원에 따라 달라지는 것으로써, 제1 키워드는 제1 단원의 포지티브 키워드이나 제2 단원의 네거티브 키워드인 온라인 프로그래밍 교육 방법.
  2. 제 1항에 있어서,
    상기 교육 서버는 상기 코드가 상기 과제에 부합한 코드인지 확인하는 단계;를 더 포함하는 온라인 프로그래밍 교육 방법.
  3. 제 2항에 있어서,
    상기 과제에 부합한 코드는
    상기 코드가 구문 오류 및 논리 오류가 없는 코드인 온라인 프로그래밍 교육 방법.
  4. 삭제
  5. 삭제
  6. 제 1항에 있어서,
    상기 코멘트는
    상기 코드에 상기 포지티브 키워드가 포함되지 않으면 상기 포지티브 키워드를 포함할 것을 요청하는 제1 코멘트 및 상기 코드에 상기 네거티브 키워드가 포함되어 있으면 상기 네거티브 키워드를 제외시킬 것을 요청하는 제2 코멘트 중 적어도 하나를 포함하는 온라인 프로그래밍 교육 방법.
  7. 제 1항에 있어서,
    상기 코멘트는,
    상기 코드에 포함된 띄어쓰기가 잘못된 경우에도 제공되는 온라인 프로그래밍 교육 방법.
  8. 제 7항에 있어서,
    상기 코멘트에는
    상기 코드 중 상기 띄어쓰기가 잘못된 위치에 대한 정보를 포함하는 온라인 프로그래밍 교육 방법.
  9. 제 1항에 있어서,
    상기 교육 서버는 상기 특정 단원에 포함되어야 할 포지티브 키워드에 대한 정보를 힌트 형식으로 상기 사용자 단말에 제공하는 단계;를 더 포함하는 온라인 프로그래밍 교육 방법.
  10. 제 1항에 있어서,
    상기 코드가 상기 특정 단원에 부합한 코드인 것으로 확인되면, 상기 과제에 대한 모범 답안의 강의를 수강할 수 있는 권한 및 상기 특정 단원과 다른 단원의 동영상 강의를 수강할 수 있는 권한 중 적어도 하나를 상기 사용자 단말의 사용자에게 제공하는 단계;를 더 포함하는 온라인 프로그래밍 교육 방법
KR1020160145208A 2016-11-02 2016-11-02 온라인 프로그래밍 교육 방법 KR101844047B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160145208A KR101844047B1 (ko) 2016-11-02 2016-11-02 온라인 프로그래밍 교육 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160145208A KR101844047B1 (ko) 2016-11-02 2016-11-02 온라인 프로그래밍 교육 방법

Publications (1)

Publication Number Publication Date
KR101844047B1 true KR101844047B1 (ko) 2018-04-02

Family

ID=61976078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160145208A KR101844047B1 (ko) 2016-11-02 2016-11-02 온라인 프로그래밍 교육 방법

Country Status (1)

Country Link
KR (1) KR101844047B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119794A (ko) * 2018-04-13 2019-10-23 고려대학교 산학협력단 프로그래밍 언어 학습을 위한 전자책 뷰어 및 구동 방법, 상기 방법을 수행하기 위한 저장 매체
KR20200103187A (ko) * 2019-02-14 2020-09-02 주식회사 위즈스쿨 컴파일러 기술을 이용한 ai 튜터 기반의 코딩학습 플랫폼 제공 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119794A (ko) * 2018-04-13 2019-10-23 고려대학교 산학협력단 프로그래밍 언어 학습을 위한 전자책 뷰어 및 구동 방법, 상기 방법을 수행하기 위한 저장 매체
KR102046250B1 (ko) * 2018-04-13 2019-11-18 고려대학교 산학협력단 프로그래밍 언어 학습을 위한 전자책 뷰어 및 구동 방법, 상기 방법을 수행하기 위한 저장 매체
KR20200103187A (ko) * 2019-02-14 2020-09-02 주식회사 위즈스쿨 컴파일러 기술을 이용한 ai 튜터 기반의 코딩학습 플랫폼 제공 방법 및 장치
KR102192581B1 (ko) 2019-02-14 2020-12-17 주식회사 위즈스쿨 컴파일러 기술을 이용한 ai 튜터 기반의 코딩학습 플랫폼 제공 방법 및 장치

Similar Documents

Publication Publication Date Title
Burston Mobile-assisted language learning: A selected annotated bibliography of implementation studies 1994–2012
US9626875B2 (en) System, device, and method of adaptive teaching and learning
KR101431050B1 (ko) 적응적 교수 및 학습을 위한 시스템
KR101576727B1 (ko) Qr코드 및 앱을 이용한 온오프라인 연동 학습 시스템
Griol et al. Incorporating android conversational agents in m‐learning apps
TWI598855B (zh) 線上教學暨行動學習系統
KR20200078942A (ko) 코딩 및 프로그래밍 교육 컨텐츠 플랫폼 제공 방법
Mohd Asraf et al. Metacognition and mobile-assisted vocabulary learning
KR100797225B1 (ko) e―Class 관리 시스템과 성적 평가방법
Ahn Korean EFL college students' acceptance and use of smartphone applications for English language learning
KR101844047B1 (ko) 온라인 프로그래밍 교육 방법
KR20180051925A (ko) 교육 서버
Bustamante et al. Training engineering educators on accessible and inclusive learning design
KR101380692B1 (ko) 온라인 학습장치 및 온라인 학습방법
KR20150117985A (ko) 멀티미디어 기기를 이용한 동시통역 학습 및 교육 방법
KR20140029804A (ko) 커리큘럼 강의 스케줄 조정 시스템 및 방법
KR20210024322A (ko) 한국어 이러닝 제공 시스템, 방법 및 이를 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
TWI463445B (zh) 實境教學方法與系統
KR102282307B1 (ko) 영어 학습 시스템 및 그 방법
KR20230125893A (ko) 학습효율을 높일 수 있는 교육 컨텐츠 제공 방법
KR20090002136A (ko) 사용자 맞춤형 실시간 평가 및 학습 시스템 및 그 방법
KR20180066913A (ko) 스마트 학습 어플리케이션 운용 장치 및 그 방법
KR101739023B1 (ko) 참여형 언어 학습 서비스 제공 시스템
KR101582561B1 (ko) 디지털 참고서 및 이를 이용한 디지털 학습 콘텐츠 제공 방법
KR102608303B1 (ko) 한국어 교육 시스템

Legal Events

Date Code Title Description
GRNT Written decision to grant
N231 Notification of change of applicant