교사가 프로그래밍을 배우려면?

프로그래밍을 본격적으로 배우는 것은 어렵다.
교사로서 필요한 부분만이라도 알차게 배우려면?

이 물음에 답하기 위해 4년 정도 시행착오를 겪었던 것 같습니다. 매력적인 기능을 발견해서 공부를 해 보면 도중에 가서야 ‘이건 초보자가 할 수준이 아니구나.’하고 포기한 적도 많았고, 또 다른 매력적인 기능을 발견해 공부를 해 보면 도중에 가서야 ‘아, 이건 다른 프로그래밍 언어를 배워야 하는거구나’하고 포기한 적도 많았습니다. 반면에, 교사로서 딱 적당한 만큼만 배우고 싶은데 어쩌다보니 시간과 노력을 과하게 투자한 경우도 있었습니다.

저의 시행착오를 곁들여 교사에게 최적화된 프로그래밍 공부 로드맵을 소개드립니다.

1.입문 언어 : 파이썬 또는 C

프로그래밍 언어에는 다양한 언어들이 있습니다. C, 파이썬, 자바, 자바스크립트, … 그 중에서도 보통 입문 언어를 C나 파이썬 중 하나로 고르곤 합니다. 파이썬과 C는 성격이 아주 달라서 장단점이 서로 뚜렷이 구분됩니다.

입문 언어파이썬C
난이도가장 쉽다어렵다
수강 기간
(컴공과 1학년 기준)
6개월 이하1년
기본기C보다는 덜하지만 비전공자로서는 충분탄탄. 프로그래밍 기초 보장
확장성(교사에게 있어)크다적다
최대 단점딱히 찾기 힘들다어차피 파이썬을 배워야 한다.

프로그래밍을 깊이 있게 본격적으로 배운다면 C를 선택하시는 것이 좋지만 교사로서 교육 분야에 활용하려면 어차피 활용도가 높은 파이썬이나 자바스크립트를 따로 더 배우셔야 할 것입니다.

프로그래밍 자체에 대한 열정보다는 프로그래밍을 통한 교육적 활용이 목적이라면 파이썬을 입문 언어로 택하는 것을 추천드립니다. 파이썬 기초 강의는 유튜브에 많이 있지만 저는 아래 강의를 추천 드립니다. 영상 길이는 총 6시간이고, 중간 중간 끊어서 복습하며 봐도 1주일 안에 완료할 수 있는 길이입니다. 제가 볼 때 시중에 나온 파이썬 기초 강의 중 가장 좋은 것 같습니다.

>>파이썬 기초 강의 추천: 유튜브 나도코딩(클릭)(추천)

.

2.시각적 움직임 구현이 목적이라면

교사는 가르치는 직업이기 때문에 시각적 전달이 중요합니다. 특히 수학에서의 추상적 움직임, 과학에서의 분자 단위의 움직임, 힘의 작용 등 실생활에서 눈으로 보기 힘든 기전은 시뮬레이션을 보고 시각적으로 이해하는 것이 교사의 설명만 듣는 것보다 도움이 될 때가 많습니다. 이러한 시각적 움직임을 구현하는 것이 목적이라면 보통 파이썬 또는 Java를 이용합니다. 하지만 Java는 너무 생소한 프로그래밍 언어이므로 여기서는 파이썬을 이용한 방법을 소개드립니다.

시각적 움직임 구현에 쓰이는 패키지 2개를 소개합니다. (파이썬 기준)

  • manim : 세련된 수학,과학적 시뮬레이션. 초기세팅 다소 어려움
  • web vpython : 다소 투박한 3d 수학,과학적 시뮬레이션. 별도 설치 필요없음. 쉬움

먼저, manim입니다. 이름부터 math animation의 줄임말일 정도로, 파이썬에서 수학적 애니메이션을 만드는 데 특화된 패키지입니다. manim을 이용하면 아래와 같은 영상을 만들 수 있습니다.

manim도 아주 어려운 편은 아니지만, 그래도 조금 더 쉬운 패키지가 있어 소개드립니다. web vpython입니다. web vpython은 이름에서 보다시피 별도의 설치 없이 web에서 바로 동작 가능하다는 가장 큰 장점이 있습니다. 그리고 코드도 manim(과 비슷하지만) 조금 더 쉽습니다. web vpython을 이용하면 아래와 같은 시뮬레이션들을 만들 수 있습니다. 들어가서 Run 버튼을 누르면 실행됩니다.

>>고교수학 시뮬레이션(web vpython이용)

.

3.상호작용 도구 제작이 목적이라면

학생들에게 보여주는 것을 넘어서서 학생과 상호작용하는 도구가 필요할 때가 많습니다. 예컨대, 위의 영상들은 단순히 수학적, 과학적 원리를 학생에게 보여줄 수만 있을 뿐 학생들이 직접 값을 입력하거나 슬라이더를 조정하거나 할 수는 없지요? 이를 가능하게 하려면 어떻게 해야 할까요.

상호작용 도구 제작 목적으로는 압도적으로 자바스크립트를 추천합니다. 자바스크립트는 웹에서 일어나는 모든 상호작용을 만드는 것이 가능한 언어이며, 실제로 웬만한 웹페이지, 웹앱이 자바스크립트를 기반으로 작성됩니다.

사실, 자바스크립트는 좋은 언어이고 웹과 관련된 작업에 필수적이라는 강점이 있는 언어이지만 “입문”하기에는 그다지 추천드리지 않습니다. 가급적이면 파이썬 기초를 수강 후 자바스크립트를 배우는 것을 추천드립니다.

[1단계] 파이썬 기초 수강 후 자바스크립트 기초 수강(html + css + 자바스크립트)

자바스크립트를 배운다는 말은 html, css, 자바스크립트 등 총 3개 언어를 함께 배운다는 뜻입니다. 웹페이지나 웹앱 제작 시 함께 쓰이는 언어이기 때문입니다. 3가지나 되서 부담스러워 보일 수도 있지만, 파이썬을 한 번 배우고 난 뒤에는 빠르게 적응할 수 있을 것입니다. 역시 유튜브 기초 강의를 하나 추천드립니다.

추천 유튜브 강의: (클릭) 준비중

[2단계] 실제 프로젝트 제작

자바스크립트 기초를 수강했다면 바로 프로젝트 실습에 도전하시기를 권장드립니다. 많이 만들면서 배우는 게 효과가 좋기 때문입니다. 예를 들어 이번 연수에서 배운 구글앱스스크립트를 통한 웹앱 제작도 좋은 방법입니다. 웹 개발은 배우기 귀찮고, 웹앱을 만들고는 싶다면 그냥 구글앱스스크립트를 이용하시면 됩니다.

반면, 구글앱스스크립트라는 플랫폼에 의존하지 않고, 직접 웹페이지, 웹앱을 제작하려면 아래 코스를 추천합니다.

node.js -> express 웹 프레임워크 순서로 배우기 (난이도: 중급)

node.js는 원래 웹 브라우저에서만 동작하도록 만들어진 자바스크립트를 웹 브라우저 밖, 즉 개인 PC나 서버 컴퓨터에서도 사용하고 싶어 만든 프로그램으로, 자바스크립트 실행 환경이라고 생각하면 됩니다. 즉, node.js는 서버 컴퓨터에서 웹 개발을 하려면 필요한 실행 환경입니다. (여기서 ‘실행 환경’이라는 말은 지금은 ‘도구’ 쯤으로 이해해도 무방합니다)

express 웹 프레임워크는 node.js 작업을 돕는 도구라고 생각하면 됩니다. 순수히 node.js 만으로는 만들기 번거로운 웹 서버의 각종 기능(요청 처리 등)을 미리 만들어 제공하는 일종의 라이브러리입니다. 우리가 파이썬으로 데이터처리를 할 때 순수하게 코딩만으로 작업하지 않고 pandas 등의 패키지를 가져다 쓰듯, express도 비슷한 역할의 패키지라고 생각하면 됩니다.

node.js는 제가 아래에 총 7강의 강좌를 개설해 놓았습니다. 당연히 파이썬이든 C든 코딩 기초를 배우신 후 도전하셔야 합니다.

(클릭) >>> Node.js 및 express 웹 프레임워크 강좌(총7강)

하지만 부연 설명이 다소 부족하므로 옆에 AI 창을 하나 켜 두고 질문해 가며 익히시면 좋을 것 같습니다.

자바스크립트 뿐 아니라 파이썬을 이용한 웹앱 제작도 옛날과 달리 이제 쉬워졌다고는 하는데 제가 아직 알지 못하여 여기서 소개드리지 않습니다. 그리고 무엇이든, 점유율이 가장 높은 방법을 따라가는 게 가장 좋은 것 같습니다. 모르는 게 있을 때 조언을 구하거나, AI의 도움을 받기에 좋습니다. AI의 정답율은 사람들이 가장 많이 쓰는 것일수록 높아지기 때문입니다. 현재 웹 작업 대세는 단연코 자바스크립트입니다.

.

4.업무자동화가 목적이라면

단연 Python입니다. 파이썬에는 업무자동화 패키지가 많이 있습니다.

1)엑셀 관련 업무자동화 지원

업무 대부분은 엑셀 파일을 다루는 일입니다. 파이썬의 Pandas, Openpyxl 등의 라이브러리는 엑셀 파일 열기,저장하기, 데이터 가공, 합치기 뿐 아니라 VBA(비주얼베이직)로도 어려운 작업을 단번에 가능하게 합니다. Pandas, Openpyxl은 파이썬 기초만 수강하고 나면 바로 따라할 수 있을 정도로 쉬운 라이브러리에 속합니다.

2)마우스 및 키보드 컨트롤 자동화

파이썬의 Pyautogui 라이브러리는 손대지 않아도 저절로 마우스 커서를 특정 위치로 이동시키거나 키보드로 특정 내용을 알아서 타이핑하게 만들 수 있습니다.

3) 관련 추천 영상

위의 1),2)를 모두 설명해주는 좋은 영상이 있어 소개합니다. 난이도는 파이썬 기초 수강 후 바로 시도하면 되는 수준이며 하나하나 알려주기 때문에 그대로 따라하기만 하면 됩니다.
>>영상 바로 보러 가기

4) hwp 관련 업무자동화

우리나라 정부기관에서만 쓰는 hwp파일에 관한 업무자동화를 지원하는 언어는 아마 파이썬밖에 없을 것입니다. 사실 많이 알려져 있지도 않고, 잘 가르쳐주는 영상이나 사이트도 찾기 힘듭니다. 구경만 해보시라고 링크 남겨드립니다. 영상 난이도는 중급 이상입니다.

>>영상 바로 보러 가기

5.데이터분석, 시각화가 목적이라면

데이터 분석에 유용한 프로그래밍 언어는 단연, 파이썬입니다. 파이썬에서 제공하는 데이터분석 관련 라이브러리를 소개해드리겠습니다.

  • Pandas : 엑셀과 같은 표 형태 다루기에 최적화됨. 데이터 마이닝, 필터링, 정렬, 그룹화 등.
  • Numpy : 대규모(실제) 수치 데이터, 행렬 등을 빠르고 효율적으로 계산.

데이터를 처리하고 시각화하지 않으면 그저 복잡한 숫자 투성이일 뿐입니다. 교육용으로 쓰기 위해서는 보통 보기 좋게 하는 시각화 처리를 겸하게 됩니다. 다음은 데이터 시각화관련 라이브러리입니다.

  • Matplotlib : 그래프, 꺾은선그래프, 산점도 등 생성
  • Seaborn : 통계적 데이터를 조금 더 예쁘게 생성
  • Plotly : 인터랙티브한, 즉 마우스를 올리면 정보가 나타나거나 확대/축소가 가능한 동적 웹기반 그래프 만들 때 유용

제가 지금 여러가지 패키지(라이브러리)를 소개드렸습니다. 우리는 교사, 즉 비전공자이기 때문에 프로그래밍 기초만 수강 후 다양한 패키지(라이브러리)를 활용하는 법을 익히시는 것이 좋습니다. 예를 들어 pandas라는 패키지를 쓰려면 어떻게 해야 하느냐?

파이썬 기초 수강 >> 파이썬 라이브러리(패키지) 활용법 익히기 >> pandas 이용법 익히기

순서로 활용하시면 됩니다.

6.인공지능이 목적이라면

저 개인적으로는 인공지능을 가르치는 데는 텍스트 코딩을 쓰지 않는 것을 권장드립니다. 이미 코딩이 필요 없는 다양한 교육용 플랫폼이 많이 있기 때문입니다. 예를 들어, 구글의 티쳐블머신(Teachable Machine)은 코딩을 모르는 학생도 인공지능의 이미지 분류과정을 이해하고 실습해볼 수 있게 잘 만들어 놓았습니다.

하지만, 교사 혼자서 텍스트 프로그래밍 언어로 인공지능을 해 보고자 한다면, 파이썬을 압도적으로 추천드립니다. 파이썬에는 인공지능 관련 라이브러리가 잘 되어 있습니다. 난이도는 중급 이상 ~ 고급입니다. 아래 라이브러리는 파이썬 기초를 익힘은 물론 라이브러리 설치 및 환경설정에 대한 공부도 따로 하신 후 도전하셔야 합니다. (저는 여러 번 좌절했었습니다. 저와 같은 시행착오를 겪지 않으시길)

  • Scikit-Learn : 코드 몇줄만으로도 간단한 머신러닝 모델 제작 가능
  • Tensorflow : 구글이 만든 실제 딥러닝 프레임워크. 이미지인식, 자연어 처리 등의 복잡한 AI 작업 가능

하지만 파이썬을 이용한 인공지능 작업은 다시 말씀드리지만 비추천드립니다. 실제로 작업해보면 코드 몇 줄만에 작업이 가능하다는 우수성과 역설되게도, 코드가 너무 짧아 원리를 이해시키기 힘들다는, 교육적으로서 최대 단점이 있습니다. 그리고, 결과를 시각화하기 위해 별도로 matplotlib, seaborn 등의 패키지를 더 공부해 써야 한다는 수고로움이 있습니다.

문의: 차민경(chamingyung@outlook.com)


코멘트

“교사가 프로그래밍을 배우려면?”에 대한 댓글 1개

  1. […] 1강. html 코드 톺아보기2강. gs 코드 톺아보기3강. 교사가 프로그래밍을 배우려면? 현실적 로드맵 […]

댓글 남기기

Cha's Record에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기