대학생 프로그래밍 교육 어떻게?

정부에서 창조 경제의 일환으로 IT 기반 지식을 통한 융합 인재를 양성하겠다고 초등생 부터 프로그래밍 교육 개설에 열의를 가지고 있죠? 아마 얼마전 나온 Code.org의 아래 동영상이 큰 영향을 준것 같습니다.

최근에는 일부 대학들도 교양 필수 과목으로 프로그래밍 교육을 하려는 움직임을 보였고, 그 중에 한 대학이 저에게 문의를 해와서 제가 드린 소견을 잠시 소개하고자합니다.

사실 프로그래밍이 별로 필요없는 대부분 분야 교수님은 반발이 심하다고 합니다. 프로그래밍이 아니라 전공별 요구되는 전산 관련 활용(예: SPSS나 그래픽 SW 활용)을 배워야지 전공 구분 없이 모든 학생들에게 프로그래밍을 배우는 것은 무리가 있다다는 것이죠.

예를 들어, 생명과학부 학생중에 생물정보학을 전공하는 학생도 있지만, 순수 연구만 하는 학생들이 더 많은데, 그런 학생들조차 프로그래밍을 배워야 한다는 것은 많은 학생들에게 고통을 주는 것이라는 것입니다.

이런 인식은 프로그래밍 교육이 가지고 있는 사고적 변화와 문제 해결 능력 배양 같은 근본적인 목적 보다는 “SW 도구 활용”이나 “언어 교육”같은 실용적인 측면에서만 바라보기 때문에 생기는 오해인 것 같습니다. 따라서, 교양 과목 답게 “사고와 활용”이라는 양측면이 강조된 두 가지 교육 과목을 한번 제안해 봅니다.

1. 전산적 사고 (Computational Thinking)
우선 “전산적 사고(Computational Thinking)”라는 수업을 개설하시길 권해 드립니다. 컴퓨터로 이해하는 각종 알고리즘과 문제 해결 절차 방법론을 배우고, 향후에 어떤 수준의 프로그램을 짜더라도 그쪽을 이해할 수 있는 보편적 능력을 갖는게 중요하기 때문입니다.

프로그래밍 언어 교육 보다 선행되어야 할 수업 내용으로 미국 초중고에서 CS(전산과학) 입문용 과목까지 광범히 하게 진행되고 있습니다. 아래에는 커리큘럼과 교육용 예제를 자세하게 참고할 수 있습니다.
* http://www.google.com/edu/computational-thinking/
* http://scratched.media.mit.edu/resources/computational-thinking
* http://www.iste.org/learn/computational-thinking
* http://www.cs.cmu.edu/~CompThink/index.html

국내에서는 포항공대 황승원 교수님이 2007년에 교양 교과목으로 한번 개설하신 바 있습니다. (FAQ 참조)

전산 사고 훈련을 하다보면 필수적으로 컴퓨터 언어의 구조에 대해 이해하게 되고, 숙제를 위해서 간단한 언어 하나씩은 배울 수 있게 됩니다. 언어는 도구라서 특정하지 말고, 과외 학습으로 문제 풀이를 위한 방법으로 자연스럽게 익히도록 해 주는게 좋겠습니다.

2. 크리에이티브 엔지니어링(Creative Engineering)
두번째 교과목은 뭔가를 만들어서 세상에 이바지 해보자는 목적이면 좋을 것 같습니다. 이를 위해서는 아주 쉽게 뭔가를 만들어 볼수 있는 서버 인프라, 프론트, 백엔드, API를 모두 조금씩 활용할 수 있는 가벼운 방법을 사용해 보는게 좋겠습니다.

추천할 만한 커리큘럼으로 현재 스탠포드대에서 코세라에 개설한 Startup Engineering와 제가 제주대에서 강의했던 클래스를 잘 섞으면 잘 나올 것 같습니다.
* https://www.coursera.org/course/startup
* http://code.google.com/p/web-engineering-class/

무엇 보다 중요한 것은 자기 전공과 관련된 간단한 아이디어를 직접 구현하는 프로젝트를 병행하게 하는 것일 것 같습니다. 예를 들어, 복지 전공인 경우 자기 지역의 복지시설을 지도에 매핑하는 서비스를 만들어 본다던지, 어문학 전공자라면 간단한 사전 서비스를 만들어 본다던지, 특정 해외 문화에 대한 정보를 제공하는 모바일 페이지라던지요.

그냥 HTML로 문서를 만드는 게 아니라 간단한 기능을 추가하게 하고, 코드를 github에 공개하고 이를 직접 아마존 웹서비스 같은데 올려 실제 동작하게 하는 것을 해보는 것만으로도 큰 성취감을 얻을 수 있을 것 같네요.

그 외에 비 전공자로서 더 배우고 싶은 학생들을 위해 심화 트랙을 하나 기본 전산학과나 컴퓨터 광학과에 두어 비전산 전공자를 위한 가벼운 커리큘럼을 운영하시도록 하는게 좋을 듯 합니다.

대부분 전산 교육은 MS 오피스나 포토샵 같은 “소프트웨어 도구 활용법”이거나, C/PHP/Java 같은 “프로그래밍 언어 습득”에 한정되는 경우가 많습니다. 전산적 사고를 배우고, 이를 기반으로 자신이 관심이 있는 문제를 해결하는 실용적인 프로그래밍 기술을 가르쳐 준다면, 더 많은 인재들이 IT를 활용한 창조적인 아이디어에 도전할 수 있을 것입니다.

Update. 지금 바로 할 수 있는 코딩 배우기

한국어로 된 콘텐츠로 하루에 30분만 투자하면 지금 바로 코딩 학습이 가능한 사이트들입니다.

  1. Code.org는 미국 기초 코딩 교육의 대표적인 사이트로서 코딩 이론의 기초적인 학습을 위한 것으로 Hour of Code는 한 시간 정도만으로 코딩의 원리를 배우는 단계의 작업들입니다. 유명한 앵그리버드와 좀비 캐릭터를 매개로 단계별 미션을 (스크래치 등에서 사용하는) 레고 블록 같은 형태로 수행하고, 이를 프로그램 코드로도 볼 수 있습니다. 각 단계별로 설명 동영상이 나오고, 30개 언어로도 제공됩니다.
  2. 엔트리 Hour of Code와 유사한 한국어 사이트로서 그래픽 기반의 코딩 교육을 통해 학습, 공유 및 토론이 가능합니다.
  3. Codecademy는 빠르게 웹 서비스를 만들 수 있는 웹 기초 언어와 프로그래밍 언어를 배우는 사이트로 한국어로 HTML/CSS, JavaScript, jQuery, Python, Ruby 등이 제공되고 있습니다.
  4. 생활코딩은 이고잉님이 운영하는 동영상 기반 온라인 코딩 교육 사이트로서 일반인들에게도 간단한 웹 사이트를 만들 수 있는 기반 지식을 제공하고 있습니다.
  5. 코드라이언 비 전산 전공 대학생들에게 코딩을 가르쳐 주는 멋쟁이 사자처럼의 커리큘럼을 온라인으로 제작한 CodeLion은 9주 동안 웹 사이트를 제작하는 온라인 과정입니다.
  6. 코딩하는 디자이너 웹 디자이너에게 코딩을 가르쳐 자신만의 포트폴리어 개발 및 프로토타입을 해주게 하는 오프라인 교육과정입니다.

더 많은 정보가 있으면 알려주세요. 업데이트 하겠습니다.

여러분의 생각

  1. @channyun 막연히 생각만 해봤는데 취미로도 배워볼만 한가요? 바로 도전해보겠습니다! 감사합니다.

    via twitter.com

의견 쓰기

이름* 이메일* 홈페이지(선택)