블로그 이미지
윤영식
Full Stacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

'윤석찬'에 해당되는 글 1

  1. 2013.08.23 [프로그래밍] 다시 시작하기
2013. 8. 23. 10:40 Lean Agile Culture/Lean Startup
페이스북의 글이 너무 좋아서 그냥 막 펐습니다. 

윤석찬
 · 2,243명이 좋아합니다.
2시간 전 · 
  • 정부에서 창조 경제의 일환으로 IT 기반 지식을 통한 융합 인재를 양성하겠다고 초등생 부터 프로그래밍 교육 개설에 열의를 가지고 있죠? 아마 얼마전 나온 Cod dot org의 아래 동영상이 큰 영향을 준것 같습니다.
    http://www.youtube.com/watch?v=lHZxmcP-CHI

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

    사실 프로그래밍이 별로 필요없는 대부분 분야 교수님은 반발이 심하다고 합니다. 프로그래밍이 아니라 전공별 요구되는 전산 관련 활용(예: 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년에 교양 교과목으로 한번 개설하신 바 있습니다.
    http://www.postech.edu/~swhwang/ct.html
    (FAQ 참조: http://webcache.googleusercontent.com/search?q=cache%3AaFohHRkYWGQJ%3Awww.postech.ac.kr%2F%7Eswhwang%2Fctfaq.hwp )

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

    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를 활용한 창조적인 아이디어에 도전할 수 있을 것입니다.


posted by 윤영식
prev 1 next