교육용 프로그래밍 언어 :: 2006/12/31 00:39


2000년도에 우리 과는 신입생들에게 C언어를 가르쳤다. 컴퓨터 프로그래밍이란 작업을 한번도 해보지 않은 신입생들에게 C언어는 굉장히 딱딱한 수업이었다. 열정적인 학생들도 중도 포기하는 경우가 많았으며, 포인터 정도까지 가면 대부분 내부적으론 포기하는 상태가 되곤 했다. 그러면서 프로그래밍이란 작업에 흥미를 극도로 잃게 되는 경우가 많았다. 더욱이 같은 수업에 C언어를 잘 아는 친구라도 있으면 그 좌절감은 더해진다. 그리곤 2학년 전공을 단지 프로그래밍 때문에 전자과로 간다. 이렇게 점차 우리과에 지원하는 학생들이 줄어들자 교수님들은 고민하게 되었다. 그래서 더이상 1학년때 C언어를 가르치지 않고 Visual Basic을 가르치기로 결정했다. Visual Basic은 C보다는 좀 더 루즈하고, 이름에서 들어 나듯이 Visual 적인 요소가 강하기 때문이었다.

지난 학기에 난 일학년들과 같이 Visual Basic을 듣게 되었다. 한 학기를 듣고난 후 나의 느낌은 "이게 프로그래밍 언어를 가르쳐주는 수업인가?" 라는 것이었다. 시종일관 가르쳐 주는 거라곤 메뉴를 붙이고, 버튼을 더블 클릭해서 색깔을 바꾸고 하는 것들이었다. 그건 언어를 배우는 것이 아니라 툴 사용법을 배우는 과정이었다. 학생들이 자신의 생각을 컴퓨터 언어로 표현하는 능력은 전혀 향상되지 않으리라는 것이 나의 생각이다. Visual Basic은 잘못된 선택이었다. 차라리 Basic이 더 낫다고 생각한다.

그렇다면 컴퓨터 언어를 한번도 접해보지 않은 학생들에게 가르치기에 가장 적합한 언어는 무엇일까? 얼마전 까지만 해도 나는 파이썬 정도면 좋겠다고 생각했다. 그래서 당연히 권해주고는 했다. 하지만 그것은 전적으로 나의 눈높이에 맞춘 생각이라는 것을 요즘 깨닳았다. 이유는 학생들은 파이썬 인터프리터를 설치하고 환경을 정비하는 것 자체도 힘들어 하기 때문이다. 차라리 이런 점에서는 Visual Basic이 더 쉬울 수 있는 것이다. 더욱 심각한 것은 요즘 학생들은 화면에 Hello, World를 출력하는 것을 더 이상 신기해 하지 않는 점이다. 그들은 Visual과 GUI에 익숙한 세대인 것이다.

그렇다면 어떠한 요소를 가져야 교육용으로 적합할까? 가장 먼저 필요한 요소는 쉬워야 한다는 것이다. 앞서 살펴보았던 C언어의 실패가 교훈이된다. 어려워서는 학생들의 흥미를 유발시키기 힘들다. 둘째는 개발 환경 구축이 쉬워야 한다는 점이다. 이건 파이썬의 교훈에서 우리가 배울 수 있다. 진입 장벽을 낮추어야 좀 더 쉽게 접근할 수 있는 것이다. 셋째는 언어가 로직을 가르칠 수 있는 수준이어야 한다는 점이다. 이런 점에서 이벤트 드리븐 방식의 Visual Basic 보다는 고전적인 절차 지향적인 언어들이 강점을 가진다. 처음 배우는 학생들은 자신이 의도하지 않은 곳에서 갑자기 뭔가가 호출된다는 사실에 굉장한 스트레스를 받는다. 넷째는 실용성이다. 실용성 없는 언어를 배우는 것은 수학을 배우는 것만큼이나 재미 없는 일일 것이다. 실컷 언어를 배웠는데 그걸로 유용한 것들을 만들수 없다면 얼마나 서글픈 일일까? 다섯째는 가장 중요한 요소다. 그들이 만든 것을 친구에게 자랑할 수 있어야한다. 태권도를 배우면 한번 싸움을 해보고 싶은 것과 마찬가지로 프로그래밍을 배우면 자기가 만든 것을 친구에게 자랑하고 싶어진다. 그래서 열심히 만들어서 친구에게 메신저로 보내준다. 하지만 그가 만든 실행 파일이나 스크립트를 보냈을때 그게 상대방 컴퓨터에서 정상적으로 동작할 확률은 의외로 낮다. 런타임이 없는 경우도 많고, 파이썬 인터프리터가 설치된 친구 컴퓨터는 거의 없을 것이기 때문이다.

이 다섯가지 요소를 만족하는 언어는 무엇일까? 난 자바스크립트를 추천하고 싶다. 자바스크립트는 굉장히 쉽다. 몇 가지 기본적인 사항만 익히고 나면 바로 자신의 생각을 표현할 수 있다. 개발 환경 구축은 별도로 필요하지도 않다. 대부분의 컴퓨터에 브라우저가 설치되어 있기 때문이다. 좀 더 본격적으로 해보려는 학생들에겐 괜찮은 에디터(editplus) 정도만 있으면 된다. 자바 스크립트는 말 그대로 물 흐르듯 위에서 아래로 진행되는 언어다. 거기다 구조적 프로그래밍에 사용되는 모든 흐름 제어 키워드를 가지고 있다. 따라서 학생들의 로직 표현력 향상에 도움을 줄 수 있는 언어다. 네번째와 다섯번째는 별도로 설명할 필요도 없이 충족되는 요소다.

스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/409
  • Gravatar Image.
    미친병아리 | 2006/12/31 05:41 | PERMALINK | EDIT/DEL | REPLY

    자바스크립트 거 괜찮네요.. 여전히 파이썬이 더 바람직하다는 생각은 하지만..
    새해 복 많이 받으세요..

    • Gravatar Image.
      codewiz | 2007/01/01 01:53 | PERMALINK | EDIT/DEL

      네 저도 그렇습니다.
      여전히 언어적으론 파이썬에 더 무게를 두고 싶습니다.
      미병님도 새해 복 많이 받으세요.

  • Gravatar Image.
    snaiper | 2006/12/31 12:57 | PERMALINK | EDIT/DEL | REPLY

    javascript 괜찮군요. 딱 맞겠네요.

    개인적으로는 ruby(영어처럼 쉽게 읽힐 수 있으니까요)나 haskell(코드 2줄에 퀵소트를 짜더군요. 꽤나 high-level이더군요.)를 추천해주고 싶습니다. 하지만 쉽게 설치할 수 있을까 하는건 글쎄요. 둘 다 쉽게 설치할 수 있는 윈도우 인스톨러를 제공해주긴 합니다만... 이것마저 못한다면 좌절이겠군요. 사실 한글 2005 설치하는 것처럼 쉽긴 합니다만, 저도 저의 눈높이에 맞춘 걸까요?

    그나저나 정말 프로그래밍 때문에 전자과 갔다고 하면 잘못 생각한거네요.
    전자과에서 2년 있어본 저로서는 그 점에 있어서는 정말 잘못 생각하고 갔다고 하고 싶네요.
    그렇게 생각하고 간 몇 명은 후회하고 있을 겁니다. 별 다를것이 없으니까요. 똑같이
    중요하거든요. 쓰는 방향이 조금 다를 뿐이지 중요한 건 마찬가지니까...

    • Gravatar Image.
      codewiz | 2007/01/01 01:58 | PERMALINK | EDIT/DEL

      제가 ruby나 haskell을 아직 접해보지 않아서 선택의 범위에 넣지는 못했습니다. ㅎㅎ

  • Gravatar Image.
    고감자 | 2006/12/31 13:45 | PERMALINK | EDIT/DEL | REPLY

    언어문제 힘든 문제죠.
    저는 Python이 적당하다고 생각하는데.쩝 ㅋ

    • Gravatar Image.
      codewiz | 2007/01/01 01:59 | PERMALINK | EDIT/DEL

      네. 이런 문제는 답이 없는 문제죠. 격해지면 신념 문제가 되기도 하고.. ㅎㅎㅎ 저도 파이썬이 좋은 언어라는 점에는 전적으로 동의합니다.

  • Gravatar Image.
    ☆~ | 2007/01/13 17:46 | PERMALINK | EDIT/DEL | REPLY

    구경만 하다 적습니다.

    자바스크립트마저도 단점이라면 html언어를 알아야 된다는 것에 있네요.
    또한가지는 응용 프로그램을 만드는 것이 아니라는 것에도 큰 장애가 될것 같습니다.
    저같은 경우는 델파이도 그에 뭇지 않은 언어일듯합니다. 델파이 7이 가장 적당하더군요.
    객채지향으로 할 수 있고 구조적으로도 할 수 있어 좋을듯합니다.

    (이것 역시 문제라면 C언어와 문법 틀린 점이 있어 서로 적응하기 시간이 좀 걸린다는 것이겠네요.)
    (장점이라면 C#으로 넘어 간다해도 볼랜드의 VCL(Visual Component Library)과의 차이만 알면 쉽게 적응이 가능하더군요.)

    • Gravatar Image.
      codewiz | 2007/01/15 11:09 | PERMALINK | EDIT/DEL

      지적하신 문제점은 저도 공감합니다. 하지만 전 처음 프로그래밍을 접하는 분들께 RAD툴은 좋은 선택이 아니라고 생각합니다. 그 이유에 대해서는 다음에 다시 포스팅 하도록 하겠습니다.

Name
Password
Homepage
Secret