KR102107283B1 - 알고리즘 생성 장치 - Google Patents

알고리즘 생성 장치 Download PDF

Info

Publication number
KR102107283B1
KR102107283B1 KR1020170169381A KR20170169381A KR102107283B1 KR 102107283 B1 KR102107283 B1 KR 102107283B1 KR 1020170169381 A KR1020170169381 A KR 1020170169381A KR 20170169381 A KR20170169381 A KR 20170169381A KR 102107283 B1 KR102107283 B1 KR 102107283B1
Authority
KR
South Korea
Prior art keywords
block
command
execution
event
insertion groove
Prior art date
Application number
KR1020170169381A
Other languages
English (en)
Other versions
KR20190069035A (ko
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 KR1020170169381A priority Critical patent/KR102107283B1/ko
Priority to PCT/KR2018/015689 priority patent/WO2019117590A1/ko
Publication of KR20190069035A publication Critical patent/KR20190069035A/ko
Application granted granted Critical
Publication of KR102107283B1 publication Critical patent/KR102107283B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 알고리즘 생성 장치에 관한 것으로 동작 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하여 사용자는 본인이 작성한 알고리즘의 소스 코드를 확인할 수 있으며, 동작 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 작성하여 사용자는 다양한 종류의 프로그래밍 언어를 교육받을 수 있는 알고리즘 생성 장치에 관한 것이다.

Description

알고리즘 생성 장치{Apparatus for producing algorithm}
본 발명은 알고리즘 생성 장치에 관한 것으로, 보다 구체적으로 동작 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하여 사용자는 본인이 작성한 알고리즘의 소스 코드를 확인할 수 있으며, 동작 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 작성하여 사용자는 다양한 종류의 프로그래밍 언어를 교육받을 수 있는 알고리즘 생성 장치에 관한 것이다.
컴퓨터나 스마트폰에 사용되는 응용 프로그램 개발을 위해서 C언어 등의 프로그래밍 언어에 대한 교육이 필요한데, 프로그래밍 언어를 사용하여 응용 프로그램을 어떠한 토대와 규칙으로 코딩해야 하는지를 논리적으로 만들어 줄 수 있는 알고리즘에 대한 교육도 필요하다.
알고리즘에 대한 교육은 일종의 논리적 언어를 배우는 과정이며, 어떤 것을 픽업해서 연결시킬 것인지를 아는 과정이다. 그러므로, 이런 논리적 언어가 가지고 있는 기초적인 개념(예를 들어, 루프가 어떻게 동작하고, 판단을 어떻게 하며, 계산을 어떻게 하는지, 어떻게 컴퓨터가 우리에게 주는 정보를 획득하고, 컴퓨터에게 일을 시키는지 등)을 알게 하고, 창조적인 경험과 사용자가 만들어낸 것에 대한 성취감을 느끼도록 하는 것이 중요하다.
이러한 알고리즘 교육을 통해 자연스럽게 어린이의 논리적 사고를 향상시킬 수 있으며, 창의적인 사고가 가능하도록 도와준다.
그러나 응용 프로그램 언어는 대부분 외국어로 되어 있기 때문에 어린이에게 교육하기 다소 어려우며, 콜론 또는 세미콜론 등의 혼용 또는 누락과 같이 프로그램의 작성 과정에서 발생할 수 있는 단순한 실수로 인하여 반복 활성화되는 에러 메시지는 어린이들의 알고리즘 교육에 대한 관심을 희석시키며 알고리즘 교육을 포기하는 원인이 되고 있다.
종래 소트트웨어 교육은 소트프웨어를 활용하는데 중점을 둔 것으로, 이러한 소프트웨어 교육은 어린이가 스스로 자신이 필요한 소트프웨어의 알고리즘을 작성하는데 도움을 주지 못한다는 문제점을 가진다. 따라서 어린이가 스스로 필요한 알고리즘을 작성할 수 있는 쉽고 흥미로운 교육 방안에 대한 요구가 절실하다.
이러한 요구를 반영하여 다양한 알고리즘 생성 장치가 개발되어 사용되고 있다. 알고리즘 생성 장치는 알고리즘을 생성할 뿐만 아니라 장난감과 연결되어 생성한 알고리즘으로 장난감을 구동함으로써, 어린이들로 하여금 보다 큰 재미와 흥미를 느끼게 해준다.
그러나 종래 알고리즘 생성 장치의 경우 단순히 블록을 삽입하여 알고리즘을 생성하기 때문에 어린이는 블록의 종류와 삽입 위치만을 확인할 수 있으며, 구체적으로 본인이 작성한 알고리즘이 프로그래밍 언어로 어떻게 작성되는지 직접 확인할 수 없어 소프트웨어 교육에 한계를 가진다.
본 발명의 배경기술로 한국등록특허 제10-1546927호와 한국공개특허 제10-2016-0107040호가 있다.
본 발명은 위에서 언급한 종래 알고리즘 생성 장치가 가지는 문제점을 해결하기 위한 것으로, 본 발명이 이루고자 하는 목적은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하고 사용자에 출력하여 소프트웨어 교육을 도와줄 수 있는 알고리즘 생성 방법을 제공하는 것이다.
본 발명이 이루고자 하는 다른 목적은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 생성하여 사용자에 출력할 수 있는 알고리즘 생성 방법을 제공하는 것이다.
본 발명이 이루고자 하는 또 다른 목적은 명령 블록에 해당하는 동일한 프로그래밍 언어로 작성된 다수의 명령문 중 랜덤하게 선택된 명령문으로 소스 코드를 생성하는 알고리즘 생성 방법을 제공하는 것이다.
본 발명의 목적을 달성하기 위하여, 본 발명에 따른 알고리즘 생성 장치는 명령 식별자를 구비하는 명령 블록과, 명령 블록이 삽입되는 삽입홈이 형성되어 있으며 삽입홈에 삽입된 명령 블록의 조합으로 소스 코드를 생성하여 소스 코드를 사용자 단말기로 제공하는 본체를 포함하는 것을 특징으로 한다.
바람직하게, 본 발명에 따른 본체는 명령 블록이 삽입되는 삽입홈이 형성되는 하우징과, 명령 블록의 명령 식별자와 명령 식별자에 해당하는 명령문을 저장하고 있는 저장부와, 삽입홈에 삽입된 명령 블록의 명령 식별자를 획득하는 식별자 획득부와, 획득한 명령 식별자에 해당하는 명령문을 저장부에서 검색하는 검색부와, 명령 블록이 삽입된 삽입홈의 위치 또는 삽입홈의 순서에 기초하여 삽입홈에 삽입된 명령 블록에 해당하는 각 명령문으로부터 삽입된 명령 블록의 조합에 해당하는 소스 코드를 생성하는 소스 코드 생성부를 포함하는 것을 특징으로 한다.
여기서 명령 블록은 조건문 명령을 입력하는 이벤트 블록과 실행문 명령을 입력하는 실행 블록을 구비하며, 하우징에는 이벤트 블록이 삽입되는 이벤트 삽입홈이 형성되어 있는 이벤트 영역과 실행 블록이 삽입되는 실행 삽입홈이 형성되어 있는 실행 영역을 구비하는 것을 특징으로 한다.
바람직하게 본체는 사용자 명령을 입력하기 위한 사용자 인터페이스부를 더 포함하며, 저장부에는 동일한 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어로 표현된 명령문이 저장되어 있는데, 검색부는 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어 중 사용자 인터페이스부를 통해 입력된 언어 선택 명령에 따라 선택한 프로그래밍 언어에 해당하는 명령문을 검색하는 것을 특징으로 한다.
바람직하게, 소스 코드 생성부는 이벤트 삽입홈에 삽입된 이벤트 블록과 이벤트 삽입홈에 할당된 실행 삽입홈을 구분하여 인식하며, 이벤트 삽입홈에 삽입된 이벤트 블록에 해당하는 명령문과 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록에 해당하는 명령문의 조합으로부터 소스 코드를 생성하는 것을 특징으로 한다.
바람직하게, 소스 코드 생성부는 이벤트 삽입홈에 삽입된 이벤트 블록과 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록의 순차적인 삽입 순서에 기초하여 이벤트 블록에 해당하는 명령문과 실행 블록에 해당하는 명령문을 실행 블록의 순차적인 삽입 순서로 나열하여 소스 코드를 생성하는 것을 특징으로 한다.
바람직하게, 저장부에는 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 저장되어 있으며, 검색부에서 검색한 이벤트 블록의 명령 식별자 또는 실행 블록의 명령 식별자에 해당하는, 저장부에 저장된 동일한 프로그래밍 언어로 표현된 다수의 명령문 중 랜덤하게 1개의 명령문을 선택하는 랜덤 선택부를 더 포함하며, 랜덤 선택부는 선택한 명령문을 소스 코드 생성부로 제공하는 것을 특징으로 한다.
본 발명에 따른 알고리즘 생성 방법은 다음과 같은 효과를 가진다.
첫째, 본 발명에 따른 알고리즘 생성 방법은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 프로그래밍 언어의 소스 코드로 생성하고 사용자에 출력함으로써, 사용자는 본인이 작성한 알고리즘을 프로그래밍 언어의 소스 코드로 확인하여 소프트웨어 교육에 도움을 줄 수 있다.
둘째, 본 발명에 따른 알고리즘 생성 방법은 알고리즘 생성 장치의 본체에 삽입된 명령 블록에 의해 작성된 알고리즘을 다양한 프로그래밍 언어 중 사용자가 선택한 프로그래밍 언어로 소스 코드를 작성하여 사용자에 출력함으로써, 다양한 종류의 프로그래밍 언어를 사용자에 교육시킬 수 있다.
셋째, 본 발명에 따른 알고리즘 생성 방법은 명령 블록에 해당하는 동일한 프로그래밍 언어로 작성된 다수의 명령문 중 랜덤하게 선택된 명령문으로 소스 코드를 생성함으로써, 동일한 프로그래밍 언어에 해당하는 다양한 표현 방식의 명령문으로 사용자에 프로그래밍 언어를 교육시킬 수 있다.
도 1은 본 발명에 따른 알고리즘 생성 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 동작 본체를 설명하기 위한 도면이다.
도 3은 본 발명에 따른 장난감과 해당 장난감에 사용되는 명령 블록의 일 예를 설명하기 위한 도면이다.
도 4는 본 발명에 따른 동작 본체를 설명하기 위한 기능 블록도이다.
도 5는 본 발명에 따른 소스 코드 생성부의 일 예를 설명하기 위한 기능 블록도이다.
도 6은 본 발명에 따른 사용자 인터페이스부의 일 예를 설명하기 위한 도면이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서, "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
이하 첨부한 도면을 참고로 본 발명에 따른 알고리즘 생성 방법을 보다 구체적으로 살펴본다.
도 1은 본 발명에 따른 알고리즘 생성 시스템을 설명하기 위한 도면이다.
도 1을 참고로 보다 구체적으로 살펴보면, 알고리즘 생성 시스템은 명령 블록을 이용하여 알고리즘을 작성하고 작성한 알고리즘에 대한 프로그래밍 언어의 소스 코드를 생성하는 동작 본체(100), 네트워크(1)를 통해 동작 본체(100)로부터 소스 코드를 수신하여 소스 코드를 사용자에 출력하는 사용자 단말기(10)를 구비하고 있다.
한편, 동작 본체(100)는 유선 또는 무선 네트워크(5)를 통해 서버(50)와 접속되어 있으며, 동작 본체(100)는 작성한 알고리즘에 따라 구동되는 장난감(20)이 유선 또는 무선 네트워크(3)로 접속되어 있다.
여기서 네트워크(1)는 동작 본체(100)와 사용자 단말기(10) 사이에서 데이터를 송수신할 수 있는 다양한 종류의 근거리 무선 또는 유선 네트워크이며, 네트워크(3)는 동작 본체(100)와 장난감 사이에서 데이터를 송수신할 수 있는 다양한 종류의 근거리 무선 또는 유선 네트워크이며, 네트워크(5)는 동작 본체(100)와 서버(50) 사이에서 데이터를 송수신할 수 있는 다양한 종류의 무선 또는 유선 네트워크가 사용될 수 있다.
사용자는 동작 본체(100)를 이용하여 장난감(20)을 구동하기 위한 알고리즘을 작성하고, 장난감(20)은 동작 본체(100)로부터 수신하는, 알고리즘에 따른 제어 신호에 따라 구동되는데, 사용자는 본인이 동작 본체(100)를 이용하여 작성한 알고리즘을 프로그래밍 언어로 확인하고자 하는 경우 사용자 단말기(10)에 동작 본체(100)를 접속하여 동작 본체(100)로부터 수신한 프로그래밍 언어를 사용자 단말기(10)의 출력부를 통해 확인할 수 있다.
여기서 사용자 단말기(10)는 동작 본체(100)로부터 수신한 프로그래밍 언어의 소스 코드를 사용자에 출력할 수 있는 다양한 종류의 디바이스가 사용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 동작 본체를 설명하기 위한 도면이다.
도 2를 참고로 보다 구체적으로 살펴보면, 동작 본체의 하우징(101) 상단에는 변수 영역(V)이 형성되어 있으며, 변수 영역(V)의 하단에는 이벤트 블록 장착부(103)를 구비하는 이벤트 영역(E)이 형성되어 있으며, 이벤트 영역(E)의 하단에는 실행 블록 장착부(105)를 구비하는 실행 영역(A)이 형성되어 있다. 여기서 변수 영역(V)은 조건을 표시하도록 온/오프 활성화되는 다수의 LED로 구성되어 있다.
한편, 실행 영역(A)의 하단에는 사용자 명령을 입력하기 위한 다양한 버튼으로 이루어진 사용자 인터페이스(UI)가 배치되어 있다.
이벤트 영역(E)은 다수의 이벤트 블록 장착부(103)를 구비하며 각 이벤트 블록 장착부(103)에는 이벤트 블록(210)을 삽입 장착할 수 있는 이벤트 삽입홈이 형성되어 있다. 또한, 실행 영역(A)은 다수의 실행 블록 장착부(105)를 구비하며 각 실행 블록 장착부(105)에는 실행 블록(230)을 삽입 장착할 수 있는 실행 삽입홈이 형성되어 있다.
1개의 이벤트 블록에는 다수의 실행 블록이 종속되어 1개의 이벤트 블록과 적어도 1개 이상의 실행 블록의 조합으로 알고리즘을 생성한다. 따라서 다수의 실행 삽입홈은 1개의 이벤트 삽입홈에 할당되어 있어 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록들은 이벤트 삽입홈에 삽입된 이벤트 블록과 조합을 이루어 알고리즘을 작성하는데 사용된다. 예를 들어, 이벤트 영역(E)의 첫번째 이벤트 블록 장착부에는 첫번째 열의 실행 영역(A)이 종속되어 할당되며 이벤트 영역의 두번째 이벤트 블록 장착부에는 두번째 열의 실행 영역(E)이 종속되어 할당된다. 따라서
바람직하게, 이벤트 삽입홈과 실행 삽입홈은 서로 다른 형상을 가지며 이벤트 삽입홈에 삽입되는 이벤트 블록과 실행 삽입홈에 삽입되는 실행 블록은 이벤트 삽입홈의 형상 또는 실행 삽입홈의 형상에 상응하도록 제작되어 어린이도 이벤트 블록과 실행 블록을 용이하게 구분하여 알고리즘을 작성하도록 도와준다.
사용자는 이벤트 블록(210)을 이벤트 블록 장착부(103)에 장착하거나 실행 블록(230)을 실행 블록 장착부(105)에 장착하거나, 변수 영역의 LED로 조건을 입력하여 알고리즘을 작성한다.
도 3은 본 발명에 따른 장난감과 해당 장난감에 사용되는 명령 블록의 일 예를 설명하기 위한 도면이다.
도 3을 참고로 살펴보면, 장난감(20)에 해당하는 명령 블록은 이벤트 블록(211, 212, 213, 214, 215...)과 실행 블록(231, 232, 233, 234, 235,...)으로 구분되어 있다. 장난감은 서로 상이한 동작과 기능을 수행하기 위한 이벤트 블록과 실행 블록을 구비할 수 있는데, 사용자는 장난감과 함께 또는 별개로 이벤트 블록 또는 실행 블록을 구매할 수 있다.
여기서 이벤트 블록은 장난감을 구동하기 위한 조건 명령을 입력하기 위해 사용되며, 실행 블록은 해당 이벤트 블록에 매핑되어 해당 조건 명령을 만족하는 경우 장난감을 구동하기 위한 실행 명령을 입력하기 위해 사용될 수 있다.
예를 들어, 자동차 장난감에는 "소리가 있으면", "빛이 감지되면" 등의 조건 명령을 입력하기 위한 이벤트 블록과 "앞으로 이동하라", "뒤로 이동하라", "좌회전해라", "우회전해라"의 실행 명령을 입력하기 위한 실행 블록이 사용된다.
사용자는 자동차 장난감에 사용되는 다양한 액세서리와 해당 액세서리를 구동하기 위한 실행 블록을 추가 구매할 수 있는데, 예를 들어 자동차 장난감에 자석으로 부착되는 헤드라이트를 추가 구매하는 경우 헤드라이트를 구동하기 위한 실행 블록이 추가된다.
도 4는 본 발명에 따른 동작 본체를 설명하기 위한 기능 블록도이다.
도 4를 참고로 보다 구체적으로 살펴보면, 획득부(110)는 명령 블록 삽입홈에 삽입 장착된 이벤트 블록 또는 실행 블록의 식별자를 획득한다. 획득부(110)의 일 예는 이벤트 삽입홈 또는 실행 삽입홈에 형성되어 있는 접속핀을 구비하며 접속핀에 전기적으로 접속되는 이벤트 블록의 접속단자를 통해 이벤트 블록으로부터 이벤트 블록 식별자를 획득하거나 접속핀에 전기적으로 접속되는 실행 블록의 접속단자를 통해 실행 블록으로부터 실행 블록 식별자를 획득할 수 있다. 획득부(110)의 다른 예는 명령 블록 삽입홈에 NFC 리더가 배치되어 있으며 NFC 리더를 통해 이벤트 블록에 구비되어 있는 NFC칩으로부터 이벤트 블록의 이벤트 블록 식별자를 획득하거나 실행 블록에 구비되어 있는 NFC칩으로부터 실행 블록의 실행 블록 식별자를 획득할 수 있다.
획득부(110)는 이벤트 삽입홈에 삽입된 이벤트 블록의 식별자와 이벤트 블록이 삽입된 이벤트 삽입홈의 식별자에 대한 정보를 검색부(130)로 제공하거나 실행 삽입홈에 삽입된 실행 블록의 식별자와 실행 블록이 삽입된 실행 삽입홈의 식별자에 대한 정보를 검색부(130)로 제공한다.
검색부(130)는 이벤트 블록 식별자 또는 실행 블록 식별자를 저장부(140)에 저장된 명령 블록 식별자와 비교하여 이벤트 블록 식별자와 일치하는 명령 블록 식별자에 매핑되어 저장된 조건 명령문을 검색하거나, 실행 블록 식별자와 일치하는 명령 블록 식별자에 매핑되어 저장된 실행 명령문을 검색한다. 검색부(130)는 검색한 조건 명령문 또는 실행 명령문을 소스 코드 생성부(190)로 제공한다.
그러나 검색부(130)에서 이벤트 블록 식별자와 일치하는 명령 블록 식별자가 존재하지 않거나 실행 블록 식별자와 일치하는 명령 블록 식별자가 존재하지 않는 경우, 검색부(130)는 검색되지 않은 명령 블록 식별자를 갱신부(150)로 제공한다. 갱신부(150)는 통신부(160)를 통해 서버와 접속하여 서버로부터 검색되지 않은 명령 블록 식별자에 해당하는 명령문을 수신받아 검색부(130)로 제공한다. 검색부(130)는 수신받은 명령 블록 식별자에 해당하는 명령문을 소스 코드 생성부(190)로 제공하며, 수신받은 명령 블록 식별자와 해당하는 명령문을 저장부(140)에 갱신 등록한다.
바람직하게, 저장부(140)에는 명령 블록 식별자에 매핑되어 있는, 서로 상이한 프로그래밍 언어로 작성된 다수의 명령문이 저장되어 있을 수 있는데, 검색부(130)는 사용자 인터페이스부(180)로부터 입력되는 프로그래밍 언어 선택 명령에 따라 이벤트 블록 식별자에 해당하는 명령문 중 선택된 프로그래밍 언어로 작성된 명령문을 검색하거나 실행 블록 식별자에 해당하는 명령문 중 선택된 프로그래밍 언어로 작성된 명령문을 검색하고 검색한 명령문을 소스 코드 생성부(190)로 제공할 수 있다.
이벤트 블록 식별자 또는 실행 블록 식별자에 해당하는 명령문은 다양한 종류의 프로그래밍 언어, 예를 들어 C, C++, 베이직, 포트란 등으로 작성되어 서버 저장부에 저장되어 있는데 사용자는 이벤트 블록 및 실행 블록의 조합으로부터 생성되는 소스 코드의 프로그래밍 언어를 선택하고 선택한 프로그래밍 언어로 생성되는 소스 코드를 확인할 수 있다.
더욱 바람직하게, 저장부(140)에는 동일한 명령 블록 식별자에 매핑되어 있는, 서로 동일한 프로그래밍 언어로 상이한 방식으로 표현된 다수의 명령문이 저장되어 있을 수 있는데, 랜덤 선택부(170)는 검색부(140)에서 명령 블록 식별자에 매핑되어 있는, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 검색되는 경우 다수의 명령문 중 1개의 명령문을 랜덤하게 선택하고 선택한 명령문을 소스 코드 생성부(190)로 제공할 수 있다. 여기서 랜덤 선택부(170)는 선택 이력에 기초하여 다수의 명령문 중 이전에 선택되지 않은 명령문들 중에서 1개의 명령문을 랜덤하게 선택할 수 있다.
이와 같이, 동일한 프로그래밍 언어를 사용하더라도 조건 명령문 또는 실행 명령문은 프로그램 작성자의 성향과 실력에 따라 상이하게 작성될 수 있는데, 이벤트 블록 또는 실행 블록에 해당하는 명령문을 동일한 프로그래밍 언어로 표현한 다수의 명령문으로 사용자에 제공함으로써, 사용자는 다양한 표현 방식으로 소스 코드를 교육받을 수 있다.
소스 코드 생성부(190)는 이벤트 블록의 조건 명령문과 해당 이벤트 블록에 할당된 실행 블록들에 해당하는 실행 명령문의 조합으로부터 이벤트 블록과 실행 블록의 조합으로 작성된 알고리즘에 대한 프로그래밍 언어의 소스 코드를 생성한다.
도 7은 명령 블록 식별자에 동일한 프로그래밍 언어로 상이하게 표현한 명령문의 일 예를 도시하고 있으며, 도 8은 C와 C++로 서로 상이한 프로그래밍 언어로 표현된 소스 코드의 일 예를 도시하고 있다.
도 5는 본 발명에 따른 소스 코드 생성부의 일 예를 설명하기 위한 기능 블록도이다.
도 5를 참고로 보다 구체적으로 살펴보면, 조합 인식부(191)는 동작 본체에 삽입된 이벤트 블록의 이벤트 삽입홈 식별자 또는 동작 본체에 삽입된 실행 블록의 실행 삽입홈 식별자에 기초하여 이벤트 삽입홈에 삽입된 이벤트 블록에 할당된 실행 블록의 조합을 인식한다.
순서 판단부(193)는 이벤트 블록과 해당 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 삽입홈 식별자와 실행 블록 식별자에 기초하여 삽입홈에 순차적으로 삽입된 실행 블록의 삽입 위치 또는 삽입 순서를 판단한다.
코드 생성부(195)는 이벤트 블록과 이벤트 블록에 할당된 다수의 실행 블록으로 이루어진 조합에서 실행 블록의 순차적 삽입 순서로 이벤트 블록에 해당하는 명령문과 실행 블록의 명령문을 순차적으로 나열하여 소스 코드를 생성한다.
즉, 소스 코드는 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문의 조합으로 생성되는데, 이벤트 블록에 할당된 실행 블록의 삽입 위치 또는 삽입 순서를 이벤트 삽입홈 식별자 또는 실행 삽입홈 식별자에 기초하여 판단하고 판단한 실행 블록의 삽입 위치 또는 삽입 순서로 순차적으로 조건 명령문과 실행 명령문을 나열하여 소스 코드를 생성한다. 여기서 이벤트 블록에 해당하는 조건 명령문과 실행 블록에 해당하는 실행 명령문은 기작성되어 저장부에 저장되어 있으며, 이벤트 블록과 실행 블록의 조합을 판단하고 실행 블록의 삽입 순서에 따라서 기작성된 조건 명령문과 실행 명령문을 순차적으로 나열하여 소스 코드를 생성한다.
도 6은 본 발명에 따른 사용자 인터페이스부의 일 예를 설명하기 위한 도면이다.
사용자 인터페이스부(180)는 동작 본체의 전원을 온/오프 제어하기 위한 사용자 명령을 입력하는 버튼(181), 프로그래밍 언어를 선택하기 위한 사용자 명령을 입력하는 버튼(182), 작성한 알고리즘에 따라 장난감을 구동시키기 위한 사용자 명령을 입력하는 버튼(183), 소스 코드를 사용자 단말기로 송신하기 위한 사용자 명령을 입력하는 버튼(184) 및 사용자 명령을 출력하는 디스플레이부(185)를 구비한다.
본 발명이 적용되는 분야에 따라 다양한 사용자 명령을 입력하기 위한 버튼이 사용될 수 있으며 이는 본 발명의 범위에 속한다.
한편, 상술한 본 발명의 실시 예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록 매체는 마그네틱 저장 매체(예를 들어, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장 매체를 포함한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 사용자 단말기 30: 장난감
50: 서버 100: 동작 본체
110: 획득부 130: 검색부
140: 저장부 150: 갱신부
160: 통신부 170: 랜덤 선택부
180: 사용자 인터페이스부 190: 소스 코드 생성부
191: 조합 인식부 193: 순서 판단부
195: 코드 생성부

Claims (7)

  1. 알고리즘 생성 장치에 있어서,
    명령 식별자를 구비하는 명령 블록; 및
    상기 명령 블록이 삽입되는 삽입홈이 형성되는 하우징과, 상기 명령 블록의 명령 식별자와 상기 명령 식별자에 해당하는 명령문을 저장하고 있는 저장부와, 상기 삽입홈에 삽입된 명령 블록의 명령 식별자를 획득하는 식별자 획득부와, 획득한 상기 명령 식별자에 해당하는 명령문을 상기 저장부에서 검색하는 검색부와, 상기 명령 블록이 삽입된 삽입홈의 위치 또는 삽입홈의 순서에 기초하여 상기 삽입홈에 삽입된 명령 블록에 해당하는 각 명령문으로부터 삽입된 명령 블록의 조합에 해당하는 소스 코드를 생성하는 소스 코드 생성부와, 생성한 소스 코드를 사용자 단말기로 제공하는 통신부와, 상기 명령 식별자에 해당하는 명령문이 상기 저장부에서 저장되어 있지 않은 경우 상기 통신부를 통해 상기 명령 식별자에 해당하는 명령문을 수신하여 상기 저장부에 갱신 저장하는 갱신부를 구비하는 본체를 포함하며,
    상기 명령 블록은 조건문 명령을 입력하는 이벤트 블록과 실행문 명령을 입력하는 실행 블록을 구비하며,
    상기 하우징에는 상기 이벤트 블록이 삽입되는 이벤트 삽입홈이 형성되어 있는 이벤트 영역과 상기 실행 블록이 삽입되는 실행 삽입홈이 형성되어 있는 실행 영역을 구비하며,
    상기 소스 코드 생성부는 상기 이벤트 삽입홈에 삽입된 이벤트 블록과 상기 이벤트 삽입홈에 할당된 실행 삽입홈을 구분하여 인식하며, 상기 이벤트 삽입홈에 삽입된 이벤트 블록과 상기 이벤트 삽입홈에 할당된 실행 삽입홈에 삽입된 실행 블록의 순차적인 삽입 순서에 기초하여 상기 이벤트 블록에 해당하는 명령문과 실행 블록에 해당하는 명령문의 조합으로부터 소스 코드를 생성하며,
    상기 저장부에는 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는, 동일한 프로그래밍 언어로 표현된 다수의 명령문이 저장되어 있으며,
    상기 검색부에서 검색한 상기 이벤트 블록의 명령 식별자 또는 상기 실행 블록의 명령 식별자에 해당하는, 상기 저장부에 저장된 동일한 프로그래밍 언어로 표현된 다수의 명령문 중 랜덤하게 1개의 명령문을 선택하는 랜덤 선택부를 더 포함하며,
    상기 랜덤 선택부는 선택한 명령문을 상기 소스 코드 생성부로 제공하는 것을 특징으로 하는 알고리즘 생성 장치.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서, 상기 본체는
    사용자 명령을 입력하기 위한 사용자 인터페이스부를 더 포함하며,
    상기 저장부에는 동일한 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어로 표현된 명령문이 저장되어 있는데,
    상기 검색부는 상기 명령 식별자에 매핑된 서로 상이한 프로그래밍 언어 중 상기 사용자 인터페이스부를 통해 입력된 언어 선택 명령에 따라 선택한 프로그래밍 언어에 해당하는 명령문을 검색하는 것을 특징으로 하는 알고리즘 생성 장치.
  5. 삭제
  6. 삭제
  7. 삭제
KR1020170169381A 2017-12-11 2017-12-11 알고리즘 생성 장치 KR102107283B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170169381A KR102107283B1 (ko) 2017-12-11 2017-12-11 알고리즘 생성 장치
PCT/KR2018/015689 WO2019117590A1 (ko) 2017-12-11 2018-12-11 알고리즘 생성 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170169381A KR102107283B1 (ko) 2017-12-11 2017-12-11 알고리즘 생성 장치

Publications (2)

Publication Number Publication Date
KR20190069035A KR20190069035A (ko) 2019-06-19
KR102107283B1 true KR102107283B1 (ko) 2020-05-28

Family

ID=67104657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170169381A KR102107283B1 (ko) 2017-12-11 2017-12-11 알고리즘 생성 장치

Country Status (1)

Country Link
KR (1) KR102107283B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102245064B1 (ko) * 2019-12-16 2021-04-28 주식회사 플랫폼레인 교육용 프로그램 코딩 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100426035B1 (ko) * 2001-08-01 2004-04-03 주식회사 마이크로로보트 마이크로로봇 제어프로그램 교육 시스템
KR101546927B1 (ko) * 2014-05-07 2015-08-25 김진욱 블록을 이용한 알고리즘 교육 장치
KR101631755B1 (ko) * 2014-07-23 2016-06-20 (주)모션블루 학습 완구, 학습 정보 제공 방법 및 컴퓨터 프로그램

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104739B1 (ko) * 2010-02-18 2012-01-11 국방과학연구소 소프트웨어 재사용을 지원하기 위한 시맨틱 태깅 서버와 그 방법
KR101683004B1 (ko) * 2015-03-03 2016-12-07 (주)나오디지탈 로직 큐브를 이용한 코드 생성 방법 및 장치
KR101684992B1 (ko) * 2015-04-21 2016-12-13 한국과학기술연구원 조립유닛 및 이를 포함하는 조립완구

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100426035B1 (ko) * 2001-08-01 2004-04-03 주식회사 마이크로로보트 마이크로로봇 제어프로그램 교육 시스템
KR101546927B1 (ko) * 2014-05-07 2015-08-25 김진욱 블록을 이용한 알고리즘 교육 장치
KR101631755B1 (ko) * 2014-07-23 2016-06-20 (주)모션블루 학습 완구, 학습 정보 제공 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20190069035A (ko) 2019-06-19

Similar Documents

Publication Publication Date Title
Sun et al. Program guided agent
Noble Programming interactivity
Evans Beginning arduino programming
US8051024B1 (en) Example-based creation and tuning of motion recognizers for motion-controlled applications
US20160184724A1 (en) Dynamic App Programming Environment with Physical Object Interaction
US9805493B2 (en) Social identity models for automated entity interactions
Palanisamy Hands-On Intelligent Agents with OpenAI Gym: Your guide to developing AI agents using deep reinforcement learning
Bradbury et al. Learning Python with Raspberry Pi
US11433302B2 (en) Interactive play apparatus
Sagasti Information technology and the arts: the evolution of computer choreography during the last half century
US20200358629A1 (en) Systems and methods for interactive responses by toys and other connected devices
KR102107283B1 (ko) 알고리즘 생성 장치
Kim et al. Heyteddy: Conversational test-driven development for physical computing
KR102107284B1 (ko) 알고리즘 생성 방법
KR102062163B1 (ko) 장난감 식별 블록을 구비한 알고리즘 생성 장치
Young et al. Teaching robots style: designing and evaluating style-by-demonstration for interactive robotic locomotion
US8015141B2 (en) Rule-based programming languages for entities in environments
KR101979122B1 (ko) 장난감 식별 블록 및 식별 블록을 구비한 알고리즘 생성 장치
Hoffman Mastering Arduino: A project-based approach to electronics, circuits, and programming
Yamanoor et al. Python Programming with Raspberry Pi
CN113396406A (zh) 利用模块的读者参与型电子书系统及运转方法
KR102137112B1 (ko) 로봇 동작 제어 시스템 및 그 방법
Dias et al. Teaching computational reasoning without a computer
Chen et al. Vision-Language Models Provide Promptable Representations for Reinforcement Learning
KR102245064B1 (ko) 교육용 프로그램 코딩 방법

Legal Events

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