2013년의 베트남, 1988년의 대한민국의 코딩 교육 by 김민장

창조경제 덕분인지 프로그래밍/코딩 교육 논쟁이 일고 있다. (프로그래밍과 코딩은 같은 단어라고 생각하므로 이하 코딩으로 씀.) 정부에 계신 분들도 나름 다 잘 먹고 잘 살아보겠다고 하는 일이니 너무 비난조로만 말할 것은 아닌 것 같고, 여러 분야의 의견을 구해 좋은 방향으로 진행이 되면 좋겠다. 최근에 읽은 충격적인 베트남의 전산 교육과 내가 초등학교 시절에 배웠던 프로그래밍 수업에 대한 경험담으로 나의 생각을 간단하게 말해보고자 한다.

 

2013년, 베트남의 전산/코딩 교육

두 달 전, 상당히 놀라운 블로그 글을 읽었다. 이 글의 내용을 먼저 옮겨본다. 구글의 교육 부서에서 일하는 Neil Fraser 씨는 베트남에 가서 어떻게 학교에서 전산(computer science)이 교육되고 있는지 탐방을 하고 그 경험담을 적었다.

베트남에서는 초등학교 2학년부터 컴퓨터 교육이 시작된다는데 시작은 웃기다. 플로피 디스켓이 나온다! 초등학교 3학년은 윈도우와 워드 사용 법을 배운다.

 

(사진은 모두 Neil Fraser 씨의 블로그에서 가져옴.)

여기까지 봤을 때는 그냥 베트남 컴퓨터 교육을 비판하려고 하는 것인가 했다. 그런데 4학년부터 Logo라는 프로그래밍 언어로 코딩을 시작한다고 한다. 그리고 5학년이 되면 제법 복잡한 그림도 그린다.

 

여기서 Neil Fraser 씨는 미국의 전산 교육과 간단히 비교한다. 그가 샌프란시스코의 몇몇 학교에 가서 과학과 컴퓨터를 가르쳐보니 11-12학년 (우리의 고2-3)인 학생들이 HTML 이미지 태그와 씨름하고 있었다고 한다. 순환문/조건문 같은 프로그래밍의 기본 개념에 대해 잘 이해하지 못했다고 한다. 전산 관련 숙제는 학교에서 금지되고 있었다.

이어 Fraser 씨는 그 베트남 학교에 무엇을 도와줄 수 있느냐고 물었는데, 의외로 교육용 소프트웨어가 부족하다는 답변을 들었다. 그래서 Blocky Maze라는 프로그램을 만들었다. 나도 직접 프로그램을 가지고 놀아봤는데 기초적인 프로그래밍의 개념인 명령, 조건, 순환 문의 개념을 심어줄 수 있는 훌륭한 프로그램이었다.

미로를 찾아가는 알고리즘을 명령, 조건 분기문, 순환문의 블럭을 조합해 코딩함.

이 프로그램을 받은 학교는 이걸 토대로 전산 수업을 더 만들 것이라고 약속했다. 그런데 두 명의 전산 교사를 구할 돈이 없었다. 전산 교사의 한 달 월급은 단 미화 100달러. Fraser 씨는 바로 돈을 뽑아 학교에 주고 내년까지 수업을 할 수 있도록 도왔다.

그렇다면 베트남의 11학년 (대략 고2)는 어떤 수준의 내용을 배울 것인가? 그래서 Fraser 씨는 한 고등학교의 전산 수업에 사전 통지 없이 불쑥 찾아 갔다고 한다. 그랬더니 아이들은 아래와 같은 놀라운 문제를 풀고 있었다.

이 프로그래밍 문제의 입력 파일은 여기서 받을 수 있다.

문제를 해석해보면 루트 2 길이의 막대를 한 변이 1인 격자에 대각선으로 놓아 미로를 만든다. 막대로 둘러 쌓인 공간은 사방이 모두 막힌 닫힌 공간도 있을 것이고 열린 공간도 있을 것이다. 여기서 닫힌 공간의 총 개수를 구하고 그 중에서 가장 큰 것의 넓이를 구하라는 것.

헐… 이건 도대체 무엇인가. 이 문제를 본 동료 구글 원은 상당히 어려운 축에 속한다고 평가했다. 나도 문제를 좀 보고 생각해봤는데, 바로 즉석 코딩을 하라면 벅찰 것 같았다. 그런데 만나본 베트남의 11학년 아이들의 대부분은 이 문제를 파스칼(Pascal) 프로그래밍 언어로 45분 정도에 다 구현하고 풀었다고 한다.

(나의 생각: 유사한 문제로 훈련을 했다면 충분히 가능하다. 마치 어려운 미적분학 문제도 연습만 하면 척척 풀 수 있듯이. 따라서 이 문제 자체를 풀었다는 것에 너무 놀랄 필요는 없다고 본다.)

Fraser 씨는 자신의 경험을 베트남의 고등학교에 알려주려고 했는데 오히려 배웠다고 한다. 베트남은 어떻게 전산 교육이 이뤄져야 하는지 잘 보여주는 예라고 칭송한다. 그는 모든 학생들에게 일찍 코딩 교육을 시킬 것을 주문하고, 코딩에 열정적인 학생들에겐 성장할 수 있는 무한한 기회를 줘야 한다고 주장한다. (원 블로그에 강조가 되어있길래 나도 강조를 함.)

베트남의 이런 전산 교육이 도입된 것은 얼마 되지 않은 일이라고 한다. Fraser 씨는 아직까지는 대학교의 전산 교육 과정에 대해서는 좋은 인상을 못 받았다. 그런데, 이제 어려서부터 전산을 배운 학생들이 대학교에 가면 크게 바뀔 것이라고 이야기 한다. 

Fraser 씨는 이제 강도 높게 미국의 전산 교육에 대해 비판한다. 전산은 수학/물리/영어 같은 중심 과목이 아니다. 학교와 선생님들은 전산학 교육을 해야 할 필요성을 못 느끼고 웹 페이지 만드는 것을 컴퓨터 교육으로 착각하고 있다. 학부모는 대학교 입시와 직접 상관이 없으므로 반대하고, 학생들 역시 전산은 너드(…)라는 인식이 있어 기피한다. Fraser 씨는 구글에서 컴퓨터 교육 관련 일을 하고 있는데 막대한 투자와 노력을 하였지만 미미한 영향만 있었다고 실토한다. 그러면서 현재 미국에서 전산 교육을 전체적으로 바꿀 희망은 적다고 한탄한다.

 

1988년, 대한민국의 코딩 교육

이제는 내 경험담을 써보자. 벌써 25년 전이다. 1998년, 내가 초등학교(국민학교) 저학년일 때 학교에 삼보 애플 II 호환 컴퓨터 30-40여 대가 들어왔다. 컴퓨터 수업을 배우고 싶은 학생들이 방과 후 수업으로 컴퓨터를 배울 수 있었다. 당시 컴퓨터는 8비트였으며 모니터는 녹색의 단색이었다. 나는 그때 컴퓨터를 어떻게 영어로 쓰는지도 몰랐다. 그런 애들 데려다 놓고 학교에서 가르친 것이 뭐냐면 그 유명한 BASIC 프로그래밍 언어였다. 그렇게 처음 컴퓨터 프로그래밍을 접했다.

10 PRINT HELLO
20 FOR I = 1 TO 10 STEP 1
30 SUM = SUM + I
40 NEXT I
50 PRINT I

때마침 1989년부터 개인용 컴퓨터(PC) 열풍이 불었다. 바로 XT라고 불리는 16비트 컴퓨터의 등장과 함께.

위 그림에 있는 16비트 ‘금성’ PC 파트너를 89년에 구입하고 집에서 열심히 코딩을 했던 기억이 난다. 분명 내 기억에 초등학교 실과 같은 과목에서 간단히 컴퓨터 코딩하는 것이 있었다. 프로그램을 만들고 디스켓에 SAVE로 저장하던 기억이 난다. 컴퓨터 학원도 그 당시에 유행을 했었는데 학원에서 배운 건 GW-BASIC이었다.

 

2013년, 대한민국의 코딩 교육? 있기는 있지만…

아직 초등학교 교사이신 어머니께 요즘에는 학교에서 코딩 같은 거 배우냐고 물어봤다. 지금은 프로그래밍은 없고 웹 페이지와 워드 프로세서 같은 것을 가르친다고 한다. 위에서 얘기했듯이 미국의 현실과 비슷한 것 같다.

별로 놀랄만한 사실은 아니라고 본다. 인터넷과 멀티미디어가 되는 컴퓨터의 보급 이후, 뚜렷한 목표가 없는 단순 코딩 교육보다는 컴퓨터 활용이 더 시급한 컴퓨터 교육의 목표가 될 수 있다고 본다.

1988년에는 컴퓨터가 인터넷에 연결된 것도 아니고, 멀티미디어가 되던 것도 아니고, 워드 프로세서가 있던 것도 아니었다. 어린 아이가 할 수 있는 것이라곤 BASIC 프로그래밍과 조잡한 게임 밖에 없었다. 특별히 그 당시 코딩이 중요함을 인식해서 코딩 교육을 했다고 생각하지는 않는다. 어쩌다 보니 그냥 자연스럽게 “컴퓨터 교육” = “코딩 교육”이 되었다. 그래서 그런가 75~85년 생 중에 어려서 프로그래밍을 시작한 사람들이 많고 이제는 우리나라 개발자의 주축을 이루는 나이가 되었다. (여기서, 한탄을 해야 하는 건가?)

그런데, 현재 일부 실업계 고교에 한정된 이야기지만, 수학능력 시험에 직업탐구라는 과목이 있어서 코딩 교육을 하기는 한다. 하지만 수학능력 “직업탐구 프로그래밍”시험에 출제되는 문제를 보면, 좀 답답하긴 하다. 거의 쓰이지도 않는 Visual Basic 6과 국제표준과 현업과 거리가 먼 학교 시험용 C 프로그래밍을 가르치고 있다.

2013년도 대학수학능력 직업탐구영역 (프로그래밍)의 한 시험 문제: int main()도 아닌 void main()을 보라…

그렇다면 일반 교육 과정에선 정말 코딩 교육이 없는 것일까? 아니다. 나는 형태는 다르지만 어느 정도 있다고 생각한다.

컴퓨터 프로그래밍에서 프로그래밍 언어의 문법을 익히는 것도 중요하지만, 그 보다는 프로그래밍을 하는데 필요한 사고능력, 즉 전산적 사고능력(computational thinking)을 기르는 것이 더 중요하다고 본다. 전산학과 같으면 자료구조/알고리즘 같은 과목이 이것을 다룬다고 볼 수 있지만, 이미 우리는 수학시간에 훌륭한 이 사고능력을 배우고 있다. 바로 수학적 귀납법과 순서도에서.

책꽂이에 있는 1994년에 출판된 “수학의 정석”을 직접 사진 찍음.

고교시절에 분명 수학적 귀납법과 순서도를 배웠고 지금도 수학 교과과정에 잘 있다. 20년 전에 공부한 수학의 정석만 봐도 순서도 단원이 있고, 왼쪽 아래에 “알고리즘(algorithm)”의 의미를 설명하고 있다. 이 단원을 보면 프로그래밍에 핵심적인 개념을 사실상 다 포함하고 있다: (1) 명령의 개념, (2) 순차적 실행, (3) 조건문, (4) 반복문. 초등학교 시절 GW-BASIC이라도 한 사람은 이 단원은 솔직히 거저 먹는 것과 다름이 없었다. (문제는 시험에서 비중이 매우 낮지만) 또, 수학 선택 과목 중에 이산수학도 있다. 보다시피 전산학과에서 배우는 자료구조/알고리즘과 같다. (역시 문제는 이걸 선택하는 학생이 얼마나 될까.)

하지만 안타깝게도 이 단원이 프로그래밍의 핵심적인 내용이라는 점이 잘 인지 안 되고 있다. 코딩 교육은 별거 없다. 이런 수학 단원에서 나오는 것만 직접 컴퓨터로 작성해도 된다. (어떤 언어를 쓸 것인지도 중요한 선택이지만 그것까지 여기서 논하기는 벅차다.) 뿐만 아니라 수학/통계/물리 시간에도 얼마든지 적극적으로 코딩을 활용할 수 있는 분야가 많다.

 

코딩 교육은 필요한가? 전산 교육은 필요한가?

논쟁의 초점은 좁게는 코딩/프로그래밍 교육, 약간 넓게는 전산과학을 정규 교육 과정에 넣느냐 마느냐인 것 같다. 결론부터 말하면 나는 기초적인 전산/코딩 교육은 이제는 어느 정도는 해야 한다고 생각한다. 그 이유는 단순하다. 이제 컴퓨터의 활용 능력이 수학/물리를 배우는 것 만큼이나 이제 중요해졌기 때문이다.

학교에서 수학/물리/화학 등을 고교 필수 과정으로 배우는 건, 나중에 그걸 전공하지 않더라도, 일상 생활에 그 지식이 유용하다는 합의가 있어서이다.  컴퓨터 프로그래밍도 그 수준에 도달했다고 본다. F=ma가 중요하다고 믿는다면, 이제는 전산적 사고 능력과 그것을 컴퓨터가 실행하게 만드는 코딩 능력도 중요해졌다는 것이 나의 생각이다.

컴퓨터에서 웹페이지 만들고 워드 프로세서를 배우는 것도 분명 컴퓨터의 활용 방법이다. 그런데, 프로그래밍 언어와 코딩은 컴퓨터를 가장 효과적으로, 창의적으로 (=창조적으로) 사용할 수 있게 해주는 강력한 도구이다. 컴퓨터 소프트웨어로 세상이 얼마나 혁신적으로 바뀔 수 있는지 우리는 매일 보면서 살고 있다. 그 밑거름에는 코딩이 있다. 더 나가 소프트웨어를 작동 시키는 디지털 컴퓨터는 보통 하드웨어라고 생각하지만, 그 속에는 소프트웨어적인 사고 방식이 적용되어있다. 결국 컴퓨터 하드웨어/소프트웨어 모두 밑거름에는 전산 원리가 있다.

컴퓨터 코딩은 이미 수학, 통계, 과학 영역에서 핵심적으로 사용되고 있다. 수학/통계에 필수로 쓰이는 프로그램(매쓰매티카, 매트랩, R)은 그냥 하나의 프로그래밍 언어이다. 물리/화학 전공하는 사람 중에도 코딩을 반드시 해야만 되는 실험 및 연구 분야도 많다.

이런 직접적인 필요가 아닌, 그저 교양 지식의 일부로라도 배울 필요가 있다. F=ma에서도 이야기 했지만, 최신 현대 물리는 몰라도 교육 과정에서 배우는 기초 물리 덕에 만유인력이나 뉴튼의 법칙은 알게 되었다. 아직까지 컴퓨터 기술이 화학이나 인쇄술 만큼 유비쿼터스하게 퍼져있지는 않다고 본다. 그렇지만 컴퓨터는 거의 모든 일상 생활에 자리잡고 있다. 이 컴퓨터를 작동시키는 것이 바로 프로그램이고, 코딩 능력이 있어야 프로그램을 만들 수 있다. 컴퓨터를 작동 시키는 핵심 원리를 학교에서 배우는 것은 그 자체만으로도 이제 가치가 있다.

 

거창한 구호는 제발. 코딩/전산 교육의 목표는 단순하고 장기적이어야 한다.

정부가 코딩/전산 교육을 한다고 하는데, 부디 “제2의 빌 게이츠, 제2의 저커버그” 와 같은 거창한 구호는 안 보았으면 한다. 수학이나 과학 교육 과정을 만드는데 필즈상이나 노벨상을 목표로 하지는 않는다. 기초적인 소양을 갖추기 위해서다. 코딩/전산 교육이 정규 교육이 된다면 딱 이 정도면 된다. 21세기 컴퓨터가 도처에 깔린 세상을 사는데 필요한 - 마치 수학과 과학 같은 - 지식을 더 쌓는 것이다.

물론, 거창한 구호를 내놓는 이유를 이해 못하는 것은 아니다. 분명 수업 부담이 될 수 있으므로 많은 사람의 동의를 얻으려면 뭔가 그럴듯한 목표가 필요 하다. 이러한 측면에서 코딩 교육을 과장하여 광고하는 건 이해할 수 있지만, 실제 교육 과정을 만든다면, 정권의 눈치를 보며 단기 목표에 급급할 것이 아니라, 기초 수학, 과학 과정을 만들듯이 큰 틀에서 생각해야 한다.

결국 코딩 교육의 목적은 제2의 스티브 잡스 같은 허황된 목표가 아닌 단순해야 한다. 특히 어린 아이들에게는 컴퓨터 프로그래밍에 흥미를 가지도록 유도하는 것이 중요하다. 재미 없는 아이들은 정규 과목에서 배우는 정도만 공부하면 되고, 흥미를 가지는 아이들에게는 집중적으로 여러 교육의 기회를 주면 된다. 물론, (요즘 같이 이공계가 더 이상 인기가 아닌 시절에 얼마나 성공적일지는 나도 걱정이지만…)

혹자는 코딩 교육에 대해 또 다른 사교육이니 학업 부담이 된다고 하는데, 나도 인정한다. 하지만 해결할 수 있는 방법은 있다. 방금 이야기 했듯이 공허한 구호 속에 근시안적으로 진행하지 말고, 기존의 수학/과학 시간을 점차적으로 활용하는 방법으로 추진하면, 코딩 교육을 교육과정에 안착시킬 수 있다고 본다. 다른 과목의 부담을 줄이는 방법도 있다. 수학이 너무 지나치게 미적분학에 집중된 느낌인데, 이 부분을 조금 줄이고, 점점 중요해지는 통계와 전산적 사고 능력을 키울 수 있는 이산 수학을 조금이라도 포함시키면 어떨까 한다.

 

간단한 요약:

  • 베트남이 최근 실시한 프로그래밍/전산 교육은 좀 많이 무섭다.
  • 우리나라도 과거에는 프로그래밍을 하였으나 요즘에는 웹페이지/워드프로세서 위주. 미국도 그러하다.
  • 하지만, 수학적 귀납법/순서도/이산수학에서 이미 어느 정도 프로그래밍의 핵심 개념은 가르친다고 볼 수 있다.
  • 코딩은 컴퓨터를 가장 효과적으로, 창의적으로, 그리고 창조적으로 사용할 수 있게 한다.
  • 코딩 수업의 목표는 제2의 저커버그, 빌 게이츠, 스티브 잡스가 돼서는 안 된다. 건실한 교육과정과 흥미에 초점을 맞춰야 한다.

다시 한 줄 요약:

  • F=ma가 중요하다고 생각하는가? 그렇다면 컴퓨터를 작동 시킬 수 있는 코딩 지식도 이제는 그 만큼 중요해졌다.

핑백

  • Null Model : 산업정책으로서 '코딩교육' 2013-05-24 23:50:36 #

    ... 할 필요가 있는 것 같다. 1. '코딩 교육'은 교육 문제가 아니다. 만약 교육부 차관이 코딩을 교과과정에 포함시키겠다고 발언했다면 찬성한다. 그것은 minjang님의 지적대로 코딩 또는 프로그래밍이 수학이나 과학만큼이나 중요한 기초 지식이 되었기 때문이다. 이제 프로그래밍은 프로그래머라는 특정한 직군에서만 하는 특 ... more

  • 漁夫의 'Questo e quella'; Juvenile delinquency : 오늘의 늬우스('13. 5. 25) 2013-05-25 12:50:14 #

    ... ' 근데 국가라고 더 나을 것이 없는데 .... 스카이호크 님의 논평. 2. http://minjang.egloos.com/3026418 (김민장 님) 하나 덧붙일 것은 이렇게 코딩 기술자 공급을 늘리면 그 진짜 수혜자는 누굴까? ... more

  • 코딩 교육 | Splash! 2013-05-25 12:53:02 #

    ... Book Menu Skip to content HomeProfileReadingSoftware DevelopmentVueScan 코딩 교육 minjang님의 2013년의 베트남, 1988년의 대한민국의 코딩 교육 우선 원글에 언급된 베트남 고등학생들이 45분만에 풀었다는 알고리즘 문제를 풀어봤다. 열린 공간과 닫긴 공간을 구분하는 기준을 다음과 같이 잡았다. ... more

  • 재출범한 안구괴물축산업협동조합...ㅡㅅㅡa.... : 초딩 코딩 조기교육 관련으로 좀 진지한 이야기들..... 2013-05-26 02:45:06 #

    ... 각은 대략 두 가지임...... 일단 전제조건을 달자면 조기 코딩교육은 여기 민짱 님의 좋은 글에서와 같이 코딩인력들의 전반적인 레벨 향상에는 확실히 효과는 있을 것임. 이건 사실 당연한 이야기인데 정규교육과정으로 교육시간을 8년 ... more

  • 코딩 교육의 논의의 방향은… | 철수네 소프트웨어 세상 [본점] 2014-02-03 09:01:26 #

    ... 게 중요한 건 아녜요.“</인용> 이런 이야기라면 모를까. 한문장으로 <인용>”코딩 수업의 목표는 제2의 저커버그, 빌 게이츠, 스티브 잡스가 돼서는 안 된다. 건실한 교육과정과 흥미에 초점을 맞춰야 한다.“</인용>라는 이야기. 코딩을 배우는게 구체적으로 뭘 배우라는건지(언어? CS커리큘럼? 툴활 ... more

덧글

  • ㅇㅇㅇ 2013/05/24 12:43 # 삭제 답글

    생각을 많이 하게 되는 글이네요.... IT대국이니 강국이니 하면서 정작 IT인재 육성에는 얼마나 신경을 쓰고 있는지.
  • 로딘 2013/05/24 13:05 # 답글

    한국은 그런게 필요하다는 사회적 합의가 아직 안되었죠. 심지어 점점 그거 해봤자 돈이 안된다라는 쪽으로 나아가고 있어서...
    일단 수능에 평가과목으로 들어가기 전까지는 그런 사회적 합의는 요원해 보입니다.(...)
    단순 코딩보다는 알고리즘적 사고를 교육해야 한다는건 굉장히 동의합니다. 알고리즘을 명확하게 만들수 있으면 코딩은 그냥 표현 도구에 불과하죠.
  • BigTrain 2013/05/24 13:34 # 답글

    90년 아님 91년 즈음에 친척집에서 쓰다가 물려준 XT가 제 첫 PC였는데, 그 컴퓨터에 임베드돼 있던 GW-BASIC을 산수 숙제하는 데 많이 써먹었었습니다. 원의 넓이 구하기, 다각형 넓이 구하기 같은 것들요.

    프로그래머 꿈을 잠시 꿨다가, 중학교 2학년 즈음에 "전산 지망생들이 수도 많고 실력도 다들 좋구나. 먹고살기는 힘들 것 같고 취미로나 해야겠네." 싶어서 접었었다죠.
  • IEATTA 2013/05/24 14:19 # 답글

    너도 나도 자신의 영역을 교육과정에 집어넣고 싶어하죠. 이정도만 알고 와도 확실히 좋아히지 않을까? 하는 생각에
    하지만 그런 사람들이 한둘이 아닙니다. 지금 학교의 교육과정이 내용학 위주의 나열식으로 흘러가는것도
    각 학문영역에 종사하는 사람들의 지나친 개입이 상당부분 영향을 주고 있습니다.

    그래서 '향후 이공계 특히 전산을 지향하는 학생들에게 기본개념을 충실하게 가르치자' 라면 맞겠습니다만..
    본문에서 말씀하시고 싶으신건 '공통교육과정에 도입해서 모두 다 하게하자' 로 보이는데
    관련 학문영역에 종사하시는 김민장님 생각에는 좋아보이실지 모르겠습니다만
    제가 보기에는 자신의 학문영역의 발전만 생각하는걸로밖에 보이지 않습니다.

    결국 말씀하시는 내용을 반영하려면 수학을 단순 수리계산능력 향상에서 논리구조력 향상으로 방향을 전환해야 하는데
    음.... 그런 내용을 들고 교육과정 편성하시는 분들과 한번 심도깊은 토의를 해보시기 바랍니다 .
    생각보다 훨씬 이전부터 다양한 내용들이 오고가고 싸우고 난리부르스 치는 곳이 그곳이랍니다 :)
  • 지적 2013/05/24 14:25 # 삭제 답글

    int main이나 void main이나 상관 없습니다;

  • 지적 2013/05/24 14:28 # 삭제 답글

    단지 int main 과 void main은 하나는 standard고 하나는 non-standard의 차이일 뿐입니다. 문법적으로는 하자는 없습니다. 그걸 지적하는건 좀 웃긴데요;
  • 김민장 2013/05/24 15:24 #

    void main은 쓰지마세요. 코드 리뷰하는데 void main 이라 쓰면 지적당합니다. 인터넷 검색 해보시기 바랍니다.
  • DJ™ 2013/05/25 02:52 # 삭제

    어째 표준에서 정의되지 않은 구문이 왜 문법적으로 하자가 없다는것인지... 죄송하지만 C언어는 윈도우 환경에서만 쓰는게 아닙니다. 이식성을 갖다버려선 아니되지요.
  • 4 2013/05/24 14:36 # 삭제 답글

    void main은 지양해야합니다. void main은 비주얼 스튜디오와 함께 퍼진 잘못된 구문입니다. g++ 에선 에러가 나므로 반드시 int main을 써야합니다.
  • 달리나음 2013/05/24 15:04 # 삭제 답글

    표준이 아니면 문법적으로 문제가 있는 것이지요. 참고로 ISO C99에선 void main()이 허용됩니다만 표준화 위원들은 이를 stand-alone 환경을 위한 예외 정도로 이야기하고 있습니다. 이건 특정 상황을 위해 허용한 것이지 대부분의 경우에는 쓰면 안되는 거죠. 그리고 VS는 여전히 C99를 못쓰니깐 void main에 대해서는 아예 쓰면 안되는 환경인 거고요.
  • 김민장 2013/05/25 03:21 #

    하하, 이거 무슨 법전 해석하는 것 같네요. http://stackoverflow.com/questions/3156423/why-dont-we-use-void-in-main " or in some other implementation-defined manner." ㅎㅎㅎ
  • 오오 2013/05/24 15:12 # 답글

    로고...그 거북이...
    옛날 생각나는군요.
    물론 책에서 사진으로만 보고 써본적은 없지만...

    단순히 코딩하는 것 말고 그 이면에 있어야 될 논리적인 사고와 그걸 표현해 내는 방법을 가르쳤으면 하지만, 어찌되었든 쉬운일은 아닐 듯.
  • Sakiel 2013/05/24 15:19 # 답글

    애초에 보이드 메인을 쓸 이유가 읍잖아여...ㅠㅠ

    뭐 그건 그렇고, 개인적으로는 코딩이란게 참 재밌다고 생각하는데요. 학부 후배들 보면 전부 1학년땐 코딩 자체를 힘들어하거나 재미없다 생각하진 않는거 같았어요. 저도 사실 그래서 컴공 들어간거고...[물론 교수들이 후반기 과제 내는건 전혀 재밌어 보이지 않더라만은..] 굳이 코딩이 아니더라도 알고리즘이란게 생활에서도 나름대로 잘 쓰일수 있는거고. 인프라만 어떻게 만들수 있다면야 나쁠 게 없어 보이네요.
  • 늙은이 2013/05/24 18:04 # 삭제 답글

    저 문제를 보노라니 구글이 주최하는 코드잼의 문제를 보고 있는 듯 합니다.
    저 문제를 포함한 코드잼 문제들의 대부분은 기반 지식 혹은 핵심 아이디어의 도출을 중시하는 것으로 보이더군요.
    즉, 저 문제의 난이도는 코딩 혹은 알고리즘 설계의 난이도가 아닌, 문제를 풀 수 있는 핵심 아이디어를 도출하는 난이도에 달려 있다 봅니다.
    코딩은 단순한 도구일 뿐이구요.
    어쩌면 전산교육은 주어진 문제를 추상화/개념화/단순화 해서 적절하게 전산 모델링 하는 능력을 배양하는 것일 수도 있겠다 싶습니다.

    한가지 글에 오류가 있음을 지적(?)해도 실례가 되지 않는다면,
    "1998년, 내가 초등학교(국민학교) 저학년일 때 학교에 삼보 애플 II 호환 컴퓨터 30-40여 대가 들어왔다."라고 하시고
    그 다음에 GW-BASIC을 배우셨다고하셨는데, 애플 II는 정수 베이식(Integer BASIC)이나 애플소프트 베이식(AppleSoft BASIC)이라는 것을 사용했습니다.
    GW-BASIC은 IBM-PC/XT에서 사용하기 시작한 언어죠.
  • 김민장 2013/05/25 03:20 #

    네 지적 감사합니다! 그렇죠. 애플 II에 있는 건 GW-BASIC이 아니었습니다. XT 컴퓨터 사고나서 하기 시작했죠. 수정했습니다. 네, 코딩 교육에서 핵심은 사실 알고리즘 교육인 것이죠. 말씀대로 코딩은 그걸 옮기는 수준. 물론 프로그래밍 언어 자체 연구도 매우 많이 하지만 학교 과정에서는 다루는 정도만 해도 되고요.
  • 아직은 청춘 2013/06/10 10:59 # 삭제

    1979 년 에풀로 컴퓨터를 첨 접했지요
    CMP 카드 인가를 붙여 드라이브를 구동했고, 잼난 것도 있었는데..
    1985 년 푸로차트 작성, 종이 코딩 해서, 키입력, 이케 했지요
    1987 년 (XT)GW-Basic 으로 인사 급여 를 만들어 납품했는데.
    정신 없이 살아온것 같은데, 이젠 프로그래머 찾기가 힘들어요
  • 꿈꾸는교수 2013/05/24 22:43 # 답글

    KAIST 김진형 교슈입니다. 글 잘 읽었습니다.
    선샘님을 한번 뵙고 십습니다.
    저희들이 자웡봉사하는 모임애 오셔서 말씀을 나누시면 좋겠습니다.
    http://swkorea.org/
    https://www.facebook.com/swkorea.org
  • 김민장 2013/05/25 03:20 #

    안녕하세요. 서우석군이 거기서 활동하는 걸 보았습니다. 저도 작은 힘이라도 되면 좋겠습니다.
  • DJ™ 2013/05/25 02:49 # 삭제 답글

    모 지방대에서 컴퓨터교육을 전공하고 있고, 지금 우리나라의 컴퓨터교육 상황을 가장 뼈저리게 보고 있습니다. 정보/컴퓨터 교사 임용은 몇 년째 0명이고, 교육과정도 2009 개정교육과정으로 오면서 정보과목의 입지는 거의 없어지다시피 했습니다. 그런 와중에 최근 코딩 교육 얘기가 나오기 시작했는데요. 민장님 말씀에 모두 동의하는데 여기에 제 의견을 덧붙이자면 코딩을 가르칠 수 있는 교사 인력도 더욱 체계적으로 확보해야 한다는 것입니다.

    현재 컴퓨터교육은 막장이라고 봐도 되는데, 글에서처럼 컴퓨터의 본질보다는 활용에 집중되어 있는 미래가 없는 교육과정과(이건 교육(공)학자들과 교육 행정가들의 영향이 큽니다.) 교사들의 비전문성에 기인하고 있습니다. 한 예로 과거에 타 과목 교사가 사범대학에서 단기로 연수받고 컴퓨터 과목으로 전과하는 경우도 많이 있었습니다. 이런 사람들이 과연 프로그래밍을 제대로 가르칠 수 있을까요? 전 불가능하다고 생각합니다. 그리고 여전히 교육현장에서 교사보다 학생들이 컴퓨터를 잘 아는 경우도 흔한 상황입니다. 코딩 교육은 민장님 말씀대로 차근차근히 장기적으로 준비해야하지 않으면 안되는 것입니다.
  • 김민장 2013/05/25 03:18 #

    현업에서 전해주시는 정보 아주 감사합니다. 일단 장기적인 비전이 있어야 교사 인력도 체계적이고 안정적으로 양성 될 수 있다고 봅니다. 그래서 정말 단기적인 구호를 제가 정말로 경계하는 것이죠.
  • ... 2013/05/25 03:08 # 삭제 답글

    이러다가 코딩학원이 나오는게 아닐런지 음...
  • 김민장 2013/05/25 03:16 #

    제가 어렸을 때는 컴퓨터 학원에서 베이직 배웠기도 했었죠...
  • Raymundo 2013/05/25 18:04 # 삭제 답글

    그러고보면 그 우후죽순 생겨나서 베이직, 포트란, C 등을 가르치던 수많은 동네 컴퓨터학원들은 어느샌가 소리없이 사라져 있네요.

    오늘도 글 잘 읽었습니다~
  • hmaid 2013/05/27 17:46 # 삭제 답글

    저도 많이 공감합니다. Coding 자체를 가르치기 보다도 이산 수학(Discrete Mathmatics)이 더 중요하다고 봅니다.
    Coding 의 기본 원리를 포함하고 있을 뿐더러, 프로그래밍적 사고 방식도 포함하고 있지요.
    여기에 학문적으로 다루는 수학, 과학이 첨가되면 금상첨화라고 봅니다.
  • NUL 2013/05/28 10:01 # 삭제 답글

    수학은 지루하지만 코딩은 재밌습니다.
    명령에 반응해 화면에 출력하는 것 자체가 큰 재미죠.
    프로그래밍이 교육적인 효과가 좋은 것은 이때문입니다.
    비슷한 예로 과학에 흥미를 가지는 시기는 실험실습을 하면서 부터이고
    과학에 치를 떨게 되는 건 수학 문제풀이를 하면서 부터이죠.

    좀 다른 방향의 이야기지만,
    전 너무 어린 시기에 PC나 전저기기를 접하는 건 좋지 않다고 봅니다,
    일단 글씨를 능숙하게 쓸정도로 손가락을 자유자재로 움직일수 있을때에나 키보드나 터치 스크린을 사용해야 한다고 봐요.
  • 김민장 2013/06/04 01:45 #

    맞습니다. 요즘 아이들은 연필로 글씨 쓰기 이전에 터치로 키보드 누르는 것에 익숙해진다는...
  • 수아기 2013/05/30 17:18 # 답글

    이래저래 많은 것을 생각하게 하시는 글인것 같습니다.
    현재 우리나라의 컴퓨터 교육도 사실 상 기존의 활용 위주에서 탈 바꿈을 많이 하려고 노력하고 있습니다. 사실 상 학교급에 따라 많이 다른데요. 전문계 학교들의 사정은 약간 달라서 그 쪽은 아무래도 활용쪽에도 조금은 초점을 맞추고 있습니다. 물론 프로그래밍 교육도 하고 있죠. 제일 중요한 것은 언급하신 것처럼 단순한 코딩이 아니라 그 이면에 있는 논리적인 사고력이 겠죠. 뭐 따지면 논리적인 사고력이 또 꼭 프로그래밍 교육만으로 길러지는 것은 아니긴 하지만 말입니다. 그래도 말씀하신 방향들로 점점 나아가고 있고, 노력하고 계시는 선생님들도 참 많습니다.^^ 저는 아직 좀 부족하기는 하지만요. 저희 학교 학생들에게 제가 C를 지도 하고 있기에 사실 더 많은 생각도 들기도 합니다. 그래도 저희 학교 학생들은 이미 컴퓨터 교육을 단순히 활용이라는 차원으로 받아들이고 있지는 않은것 같아서 다행입니다. 자신들의 연구 혹은 공부에 있어서의 훌륭한 활용 도구이자 또 그 자체에서 논리적인 사고력을 함양시킬 수 있는 도구로서 받아들이고 있는것 같습니다. 많은 것을 또 배우고 갑니다. 감사합니다.^^
    p.s 아참 이 글을 정보 교사 모임 카페에 좀 올리려고 합니다. 괞찮으실지요?
  • 김민장 2013/06/04 01:44 #

    네, 물론입니다. 허락 필요 없이 링크만 유지하시면 퍼가셔도 괜찮습니다.
  • 우왕 2013/06/03 22:02 # 삭제 답글

    저도 초등학교 시절 열심히 APPLE II로 Basic을 배웠고 생애 처음으로 탄 상이 컴퓨터 경진대회 수상이었는데....
    이제는 전혀 다른 분야의 일을 하고 있고 프로그래밍도 다 까먹었습니다.
    지금은 단순히 취미의 영역에서 컴퓨터 언어를 배워보겠다는 욕심이 있는데,
    지루하고 막막하고 무엇부터 손을 대야할지 모르겠는 느낌? 입니다. JAVA나 C++ 입문책은 책장에서 썩고 있고요...






  • 김민장 2013/06/04 01:45 #

    그냥 재미있게 HTML5 같은 거나 하면 어떨까요? ㅎㅎ
  • 잘읽었습니다. 2013/06/17 20:42 # 삭제 답글

    좋은글 잘 읽었습니다. 베트남에선 저런 전산교육을 하는군요... 학생들이 국가의 미래인데 한국에서도 저런 교육이 널리 퍼졌으면 좋겠습니다.
    (역시나 이게 잘 될지는 의문이긴하지만..^^;)
  • RipperTNT 2013/07/23 09:41 # 삭제 답글

    좋은글 잘 보았습니다. 어릴적 부터 게임을 좋아하여 대학생때 게임관련 일들을 하다가 현재는 SD? 에서 근무하고 있습니다.
    코딩을 이전 처럼 뭐랄 까 비 실용적 (?) 인 곳이 아닌 실용적인 측면에서 보람이 있고 재미있게 배울 수 있도록 플랫폼을 여유 짬짬히 만들고 있습니다. 우리가 영어를 배우고 있을때 영어권 국가는 코딩을 통하여 무에서 유를 창조하는 법을 배우고 있기에 그냥 이러고 있으면 안되겠다는 생각이 들더라구요.
    방학 기간중에 (직장인은 방학이 아니지만 ㅠㅠ) 동작 가능하도록 구성하여 일반인과 학생들을 대상으로 기존 교육 방식대비 즐거움을 줄 수 있는지 실험해 보려고합니다.
  • 검은하늘 2013/07/27 14:12 # 답글

    에... 몇 가지 지적해드릴 부분이 있는데요....

    선택과목은 이미 없어졌습니다. "알고리즘과 순서도"만 남았구요... 문제는... 학교에서도 수능에서도 크게 비중을 두는 부분이 아닙니다. 쪽팔리지만.... 전 2008년에 졸업해서 재수와 군대를 하고... 다시 작년에 수능을 쳐서 올해 들어왔습니다. 알고리즘과 순서도를 비중있게 다루지 않았습니다.
  • 어부의친구 2013/08/08 03:48 # 삭제 답글

    좋은 소개 감사합니다. Neil Fraser란 사람 정말 인상적인 nerd네요...
  • AccGeON 2013/09/16 12:10 # 답글

    공감되는 글입니다.
    전 사실 요즘 완전히 망하고 선진국 이름만 유지한 나라로만 생각했던 UK (영국)에서 Raspberry Pi라는 초저가 컴퓨터를 어린 학생부터 코딩에 관심을 갖도록 하기 위해 만들었던 사실, 실제로 많이 이용되고 있는 것에 많이 충격받았었습니다. 최근 수십년간 상당히 부진했던 건 사실인 것 같지만, UK의 미래가 어둡지많은 않은 것 같다는 생각입니다. 우리보더 더 밝다고 생각합니다.
    하지만, 중간에 언급하신, "학교에서 수학/물리/화학 등을 고교 필수 과정으로 배우는 건, 나중에 그걸 전공하지 않더라도, 일상 생활에 그 지식이 유용하다는 합의가 있어서이다." 라고 하신 말씀 조차 요즘 흔들리고 있다고 생각는 교육현실에서 -- 국영수 중요하지 않으니 하지 말자고 주장하는 목소리가 주류로 나온 게 5년도 더 넘었죠. 이런 전산교육이 가능할까 회의적입니다.
  • NoSyu 2013/11/18 14:05 # 삭제 답글

    안녕하세요. 베트남에서 진행되는 교육에 대해 재미있게 잘 읽었습니다.
    최근 SW 교육에 대해 많은 기사와 글들을 읽고,
    Scratch라는 교육용 언어 조교 활동을 해보면서 여러 생각이 들었습니다.
    http://nosyu.pe.kr/16879
    이 글을 읽으며 다시금 생각을 되새겨보네요.^^

    PS
    정석 책에 있는 알고리즘/순서도 파트를 접하였던 때
    85년 생인 저는
    '알고리즘을 순서도에 그려가며 하는 낡은 방법은 잘못 되었다!
    일일이 순서도로 그릴 것이 아니라 직접 코딩을 해야한다!'라는
    얘기를 하던 분이 떠오르네요.;;;
    지금도 순서도를 보며 '낡은 표현법'이라고 할지 아니면 어떠할지 궁금하기는 합니다.
댓글 입력 영역