Object Oriented Karel Programming Framework based on Stanford Karel

From DISLab
Jump to navigation Jump to search

Stanford Karel

Karel은 Stanford 대학교에서 학생들이 Java로 프로그래밍 개념을 익히는데 도움을 주기 위하여 만든 Java 라이브러리이다. 이것은 ACM Java Task Force에서 만든 라이브러리를 이용하여 작성되었다. 그런데 이 라이브러리는 Applet을 이용하기 때문에 JDK 6 이후의 버전에서는 동작하지 않는다. JDK 7 버전을 이용하면 실행하였을 때 빈 화면만 나온다. 그러므로 Karel 프로그래밍을 하려면 반드시 JDK 6 버전을 설치하고 이를 이용하여 컴파일 및 실행을 하여야 한다.

  • Karel Java library by Stanford University : karel.jar

Karel 프로그램은 eclipse 혹은 Visual Studio Code를 이용하여 작성한다.

HUFS Karel

Stanford Karel은 함수 중심의 프로그래밍 기법을 익히기에는 좋은 도구이지만, 객체지향 프로그래밍을 익히기에는 적합하지 않다. 그래서 이 Karel 라이브러리를 객체지향 프로그래밍 방법으로 코딩할 수 있도록 라이브러리를 만들었다. HUFS Karel에서 주요한 클래스는 HProgram, HObject, HKarel이다. HProgram은 Karel 프로그램을 준비하고 실행하는 클래스이다. HObject 객체를 만들어 HProgram에서 동작시킬 수 있다. HObject는 추상 클래스로서 이를 계승 받아 프로그래머가 다양한 객체를 만들어 사용할 수 있다. 기본적으로 Stanford Karel의 SuperKarel과 기능이 동일한 HKarel을 제공한다.

이들을 이용한 간단한 프로그램의 예는 다음과 같다.

import hufs.karel.HKarel;
import hufs.karel.HProgram;

public class SimpleProgram extends HProgram {
    @Override
    protected void onStart() {
        HKarel karel = (HKarel)get("John");
        karel.move();
    }

    public static void main(String[] args) {
        HProgram.main(args, new HKarel("John"));
    }
}

프로그램을 실행하기 위하여 HProgram을 계승 받은 SimpleProgram 클래스를 정의하였다. 프로그램을 실행하면 main 함수가 실행된다.


SimpleKarelClassDiagram.png