프로그래밍과 코딩
즐겨듣는 팟캐스트 '과학과 사람들'에서 최근에 '어른의 코딩' 편이 방송 되었습니다. 요즘 초등학생들도 '코딩'을 배워야 한다니 학부모 되시는 분들은 참 고달푸게 되었다는 생각이 들더군요. '영포자(영어포기자)' 와 '수포자(수학포기자)'가 된 것도 서러운데 이젠 '코포자(코딩포기자)' 범주에 끼게 되었으니까요.
어떻게든 하다하다 않되서 결국 '포기자'라며 자조합니다만 솔직히 애들만 아니면 그거 뭔지 몰라도 바르게 사는데 큰 지장 없는 것 아닙니까? 그렇더라도 누구나 아는 듯이 얘기하고 있으니 '프로그래밍과 코딩'의 차이가 뭔지 알아나 보죠.
'프로그래밍'을 할줄 몰라도 크게 불편하지 않았습니다. 그게 뭐하는 것인지 정도는 아니까요. 그런데 '코딩'이라는 말을 합니다. 그것을 모르면 시대에 뒤쳐진 사람 취급 당할 것 만 같습니다. 용기를 내자는 의미로 한마디 하자면 '프로그래밍'이나 '코딩'이나 같은 말입니다. 소위 IT 업자들의 제품 팔아먹을 협박용 단어라고 단언 하고 싶군요.
그래도 '말'이 다르니 뭔가 다른점이 있을 것 같아 한번 찾아봤습니다.
'프로그램과 코딩의 차이'
일단, 다행 스럽게도 나만 모르는게 아닌가 봅니다. 수많은 설명글들이 검색됩니다. 몇몇 글들을 읽어보니 뭔소리인지 모를말 만 써있군요. 이상한 그림과 더 생경한 '영어'도 등장 하구요. 원래 영어 였으니 영문으로 검색해 봅니다.
'Programming vs Coding'
이 말의 원조인 영어권에서도 매 한가지 입니다. 전 지구적인 'IT 농간'임이 분면 합니다. 그중 그래도 간략하게 써놓은 짧은 글이 명쾌 하길래 링크를 달아 놓습니다.
'Coding vs. Programming — Battle of the Terms!'
영어 울렁증이! 그까짓 코딩이 뭐라고 '영포자'를 두번 죽입니까. 번역기를 돌려보니 대충 내용이 비슷하더군요. (IT 만세! 4차산업 만세!) '프로그래밍'과 '코딩'의 차이는 한마디로 '바보'와 '멍청이'의 의미차이라고 할까요.
'프로그래밍'은 프로그램 하는 겁니다. 컴퓨터에게 시킬 일의 내용을 순서에 맞게 적어주는 행위죠. 어떤 행사의 '순서'를 프로그램이라고 하죠. 행사의 세부 내용을 시간과 함께 나열해 놓은겁니다. 사람이 읽어볼 내용이므로 사람의 언어를 씁니다. 기계가 알아보게 하려면 '컴퓨터 언어'를 써야겠지요. 여러종류의 '컴퓨터 언어'라는 것이 있으니 그런갑다 합니다. 일반인들은 이 언어를 안다해도 어디 써먹을 때도 없습니다.
IBM이나 인텔 그리고 수많은 컴퓨터 업계 회사들이 '컴퓨터 언어'를 기계가 알아먹도록 번역해 주는 제품을 팝니다. 그런데 이 '번역기'라는 제품은 아주 소수의 종사자들에게나 소용이 닿는 겁니다. 컴퓨터 언어 번역기(BASIC)를 가정용 컴퓨터에 담아 엄청 팔아먹었죠. 결국엔 컴퓨터 언어보다는 가정용 게임기로 끝을 보긴 했습니다. 8~90년대 넘쳐났던 컴퓨터 학원에서 이런 쓸데없는 '컴퓨터 언어'를 가르쳤다니, 지금 되집어 보면 역시 컴퓨터 업계에 당했다는 기분 밖에 안듭니다. 그렇게 우리 부모님들이 주머니를 털어먹은 덕에 오늘날의 IT 전성시대가 오긴 했습니다. 그나저나 많던 컴퓨터 학원은 어디로 갔을까? 이와 함께 '프로그래밍' 이라는 단어도 구시대의 유물이 되었죠.
게임기로 그리고 동영상 재생기로 재미를 볼 때까지 본 컴퓨터 업계는 새로운 돌파구를 찾기로 합니다. 이제 막 태어난 세대들에게 '프로그밍'을 가르치기로 합니다. 한세대 걸러 부모들의 주머니를 털기로 한거죠. 이미 한번 당했던 기억이 살아있는 '프로그래밍' 이라는 단어로는 먹히지 않을게 뻔 합니다. 그리고 '프로그래밍'의 영업 실패 원인을 분석해 보니 '문자'를 쓰라고 해서 어렵기도 하고 지루하기도 했기에 사람들의 시선을 지속적으로 붙잡지 못했던 겁니다. 새롭게 전략을 짰죠. '프로그램'을 문자 이외에 '그림'으로도 짤 수 있게 합니다. 그리고 말도 살짝 바꿉니다. '코딩' 이라고. '그림'은 직관성도 좋아서 문자를 제대로 익히지 못한 어린아이들에게도 '영업' 할 수 있게 되었습니다. '프로그래밍'을 포기했던 부모세대에게도 신기하기만 합니다. 그림으로 플로우 차트를 그렸더니 소프트웨어가 만들어 진다니 이 어찌 감격이 아니겠습니까! 이제 아이들이 컴퓨터 앞에 앉아 게임만 한다며 타박하던 부모들의 눈을 컴퓨터 신동으로 바라보게 만들어 놓은 단어가 바로 '코딩' 입니다. '프로그래밍'이 되었던 '코딩'이 되었던 목적은 불분명 한 채 '신기함'으로 포장 되어 있습니다. 물론, '코딩'을 배운 아이가 자라면서 더 많은 기회를 잡을 확율이 높죠. 영어나 수학은 않그럽답니까 만은...
요약하자면, '프로그래밍'은 '작문(글)', '코딩'은 '저작(글+그림)'의 차이라고 보면 될 겁니다. 어쨌든 소프트웨어를 만들 수 있는 능력을 가진 사람이 늘어날 수록 다양한 소프트웨어가 만들어질 것이며 그덕에 소프트웨어 사용자인 일반인들의 생활이 편리해 질 수 있을지도 모릅니다. '코딩'을 배우면서 무슨 내용을 채울 건데? 라는 질문을 해봐야 합니다. 글을 쓸 줄안다고 '작가'일 필요도 없고 '독자'와 '작가'는 분명 다르니까요. 주머니를 털렸든 몸을 갈아넣었든 '프로그래밍'세대가 지금의 IT 산업을 일군 바탕이 되었다고 합니다. '프로그래밍' 세대는 적어도 '영어' '수학'을 어찌 해보려고 시도는 했는데 짐이 하나더 늘어난 '코딩'세대가 만들어낼 미래는 어찌될지 기대보다는 걱정이 됩니다.
2018년 6월 7일 목요일
2018년 5월 9일 수요일
수학.물리 블로그...
수학.물리 블로그.
수학을 이야기 하는 블로그를 찾아봤다. 많다. 현직 선생님 블로그도 있고 그냥 과학이 재밋다는 블로그다. 이 세상에는 이상한 사람들이 참 많다.
수학블로그
물리학이 흥미롭다는 블로그. 대단하다!
'서윤아빠의 Space of Thinking'
수학을 이야기 하는 블로그를 찾아봤다. 많다. 현직 선생님 블로그도 있고 그냥 과학이 재밋다는 블로그다. 이 세상에는 이상한 사람들이 참 많다.
수학블로그
물리학이 흥미롭다는 블로그. 대단하다!
'서윤아빠의 Space of Thinking'
2018년 3월 14일 수요일
파이의 날 (Pi Day!)
파이의 날 (Pi Day!)
兀
오늘은 3월 14일, 파이(兀)의 날! Pi Day! "원주율"을 기념하기 위한 날이다. 3월 14일은 알베르트 아인슈타인의 생일이기도 하다.
2018년 3월 14일은 희대의 도둑놈이 검잘 조사받는 날인건 덤.
兀
오늘은 3월 14일, 파이(兀)의 날! Pi Day! "원주율"을 기념하기 위한 날이다. 3월 14일은 알베르트 아인슈타인의 생일이기도 하다.
2018년 3월 14일은 희대의 도둑놈이 검잘 조사받는 날인건 덤.
2018년 1월 13일 토요일
"빡침"이 느껴지는 수학서평....
"빡침"이 느껴지는 수학서평....
항상 새해가 되면 계획을 세운다. 작년(2017년)에는 수학의 기초를 다져보자며 대입 수학책을 잡았고 어지간히 노력을 기울였더니 수학에 자신이 붙었다. 비록 수능 성적은 변변치 못했지만 말이다. 올해(2018년)에는 작년에 이어서 수학을 응용해보면 어떨까 싶은 생각이 들었다. 그래서 인터넷 대중교육 프로그램을(MOOC) 살펴보다가 edX.org 의 Street-Fighting MATHEMATICS를 발견 했다. MITx에서 실시한 강좌라는데 제목부터 상당히 눈길을 끈다.
Street-Fighting MATHEMATICS:
https://courses.edx.org/courses/MITx/6.SFMx/1T2014/course/
요약문을 보니 실생활에서 일어나는 사건들을 수학적으로 바라보기 위한 기본적인 도구를 배운다고한다. 우리가 수학을 두려워 하게된 주된 원인이 수학자에게서 수학을 배운 탓이란다. 무도장에서 배우는 무예(martial art)는 길거리의 소위 '개싸움(street-fighting)'에 쓸모가 없다고 하듯이 교실에서 '체계적'으로 배운대로 실생활에서 마주치는 문제가 풀리는 경우는 아주 드믈다. 길거리 '개싸움'에서 그랬듯이 실행활의 문제를 해결하려면 기술을 '마구잽이'로 동원해야 한다. 증명 후 응용, 따위의 '체계적'으로 접근할 여유는 없다. 두뇌 속 어딘가에 묻어 두었던 수학을 꺼내야 한다. 그래서 길거리 싸움 수학을 추정(guessing)과 기회 포착(opportunistic)의 기술이라고 했나보다. 재미있는 이야기 거리가 많을 것 같아 이 강좌를 올해의 첫 수학공부 목표로 결정 했다.
MIT 출판부에서 내놓은 이 강좌의 교과서가 아마존 서점에 있길래 찾아봤더니 서평이 1개가 있고 별점이 달랑 1개다.
Street-fighting Mathematics-the Art of Educated Guessing and Opportunistic Problem Solving
서평을 쓴 독자는 소위 '수포자(수학 포기자)'쯤 되었던 모양이다. 저자의 강연 동영상을 보며 용기 백배하여 이 책을 샀단다. 저자의 매우 직관적인 수학적 접근에 많은 기대를 했었나 보다. 하기야 이 책의 첫 장이 경제현상에 대한 방송 기사 중 통계 숫자의 모순을 찾아내는 것이니 얼마나 가깝게 느껴졌으랴 싶다. 그런데 이 책을 막상 받아들고 실망을 많이 했단다. 첫장만 그렇고 나머지는 여느 수학책이나 다름 없이 "자기만 알고", "자기들(수학자들) 끼리" 나눌만한 내용이라는 것이다.
... explaining mathmematics, the way he can only understand, along with his mathematician friends.
결국 화가나서 별 한개 준 모양이다. '수포자'로서 상당한 '빡침'이 느껴진다. 이 책과 강좌를 살펴보니 그렇게 고급의 수학은 아니었다. 두껍지 않은 분량에 상당히 넓은 내용을 담고 있었다. 그러다보니 내용의 진행이 상당히 빠르다. '수포자'의 자습용으로는 버겁겠지만 도움을 조금 받는다면 그리 어렵지 만은 않을 것 같아 보인다. 강좌의 제목처럼 길거리에 싸움에 필요한, 어쩌면 마구잡이 기술을 익히게 해준다. 물론 최소한의 기본자세는 갖췄다는 전제가 필요하긴 하다. 기본은 고교수준의 이과계 수학이다. 그렇다고 비비 꼬아놓은 시험문제를 풀수 있어야 한다는 것은 아니고 개념이 정리가 되어있길 요구한다.
왜 장편 대하소설이나 추리소설은 어렵지 않게 읽어내려 가면서 수학은 어려워 할까. 장편 대하소설에 나오는 수많은 등장인물들이 여러 사건들에 얽혀 있어서 그 내용을 이해하기란 쉽지 않은 데도 말이다. 그것은 아마도 소설은 작가가 독자들을 붙잡아 놓기 위해 애쓰는 반면 수학책은 독자를 떼내려고 안달나 있기 때문은 아닐까? 대하소설은 간간히 지난 이야기를 반복적으로 그것도 심심치 않게 설명해 주면서 새 사건을 전개한다. 이에 비해 수학책은 앞에서 이야기 했으니 가서 찾아보라며 독자를 귀찮게 하거나 이 정도는 알고 왔어야지 하면서 무시하기 일쑤다. 수학자는 내돈 들여 책을 사고 시간 들여 가며 읽고 있는데 무시당하는 독자의 기분을 이해하지 못한다. 머리 나쁘다고 할까봐 어디가서 하소연 하지도 못하고 그저 주억거리고 있자니 열불이 난다. 앞서서 다뤘다며 찾아보라고 면박주지 말고 했던 얘기 다시 정리해 주는 느긋한 수학이 되면 어떨까. 당장 시험을 앞두고 있는 것이 아니라면 말이다.
수학에 재미를 붙여 주겠다며 무슨 수학 역사라던가 에피소드로 가득한 책들도 있다. 이런 잡담은 '계산'이란 것을 척척 해보이고 싶은 꿈이 남아 있는 '수포자'의 한을 풀어주지 못한다. 사실 한때는 '이과자' 였다는 대부분, 상당수의 수학자들도 속으로는 아는체 하며 썩은 미소를 날리고 있다는 것은 다아는 비밀이다. 요즘처럼 '연애'말고 못하는게 없다는 인터넷 정보화 시대(온라인 대중교육이나 커뮤니티가 활성화 되어있는)에 미적분을 내손으로 '계산'하는 모습을 자랑하고 싶다는 작은 소망을 이뤄볼 때도 되었다. 수학을 좀 친절하게 보여주면 좋겠다. 그러면 수학도 소설만큼이나 재미 있을 수 있을 것이다. 그렇다면 어른의 수학책도 베스트 셀러가 되지 않겠는가. 과학책은 안팔린다는 소리 만 하지말고 말이다.
--------------------------------------------------------------------
다음글: [마구잡이 수학] 시작하며...
--------------------------------------------------------------------
항상 새해가 되면 계획을 세운다. 작년(2017년)에는 수학의 기초를 다져보자며 대입 수학책을 잡았고 어지간히 노력을 기울였더니 수학에 자신이 붙었다. 비록 수능 성적은 변변치 못했지만 말이다. 올해(2018년)에는 작년에 이어서 수학을 응용해보면 어떨까 싶은 생각이 들었다. 그래서 인터넷 대중교육 프로그램을(MOOC) 살펴보다가 edX.org 의 Street-Fighting MATHEMATICS를 발견 했다. MITx에서 실시한 강좌라는데 제목부터 상당히 눈길을 끈다.
Street-Fighting MATHEMATICS:
https://courses.edx.org/courses/MITx/6.SFMx/1T2014/course/
MIT 출판부에서 내놓은 이 강좌의 교과서가 아마존 서점에 있길래 찾아봤더니 서평이 1개가 있고 별점이 달랑 1개다.
Street-fighting Mathematics-the Art of Educated Guessing and Opportunistic Problem Solving
서평을 쓴 독자는 소위 '수포자(수학 포기자)'쯤 되었던 모양이다. 저자의 강연 동영상을 보며 용기 백배하여 이 책을 샀단다. 저자의 매우 직관적인 수학적 접근에 많은 기대를 했었나 보다. 하기야 이 책의 첫 장이 경제현상에 대한 방송 기사 중 통계 숫자의 모순을 찾아내는 것이니 얼마나 가깝게 느껴졌으랴 싶다. 그런데 이 책을 막상 받아들고 실망을 많이 했단다. 첫장만 그렇고 나머지는 여느 수학책이나 다름 없이 "자기만 알고", "자기들(수학자들) 끼리" 나눌만한 내용이라는 것이다.
... explaining mathmematics, the way he can only understand, along with his mathematician friends.
결국 화가나서 별 한개 준 모양이다. '수포자'로서 상당한 '빡침'이 느껴진다. 이 책과 강좌를 살펴보니 그렇게 고급의 수학은 아니었다. 두껍지 않은 분량에 상당히 넓은 내용을 담고 있었다. 그러다보니 내용의 진행이 상당히 빠르다. '수포자'의 자습용으로는 버겁겠지만 도움을 조금 받는다면 그리 어렵지 만은 않을 것 같아 보인다. 강좌의 제목처럼 길거리에 싸움에 필요한, 어쩌면 마구잡이 기술을 익히게 해준다. 물론 최소한의 기본자세는 갖췄다는 전제가 필요하긴 하다. 기본은 고교수준의 이과계 수학이다. 그렇다고 비비 꼬아놓은 시험문제를 풀수 있어야 한다는 것은 아니고 개념이 정리가 되어있길 요구한다.
왜 장편 대하소설이나 추리소설은 어렵지 않게 읽어내려 가면서 수학은 어려워 할까. 장편 대하소설에 나오는 수많은 등장인물들이 여러 사건들에 얽혀 있어서 그 내용을 이해하기란 쉽지 않은 데도 말이다. 그것은 아마도 소설은 작가가 독자들을 붙잡아 놓기 위해 애쓰는 반면 수학책은 독자를 떼내려고 안달나 있기 때문은 아닐까? 대하소설은 간간히 지난 이야기를 반복적으로 그것도 심심치 않게 설명해 주면서 새 사건을 전개한다. 이에 비해 수학책은 앞에서 이야기 했으니 가서 찾아보라며 독자를 귀찮게 하거나 이 정도는 알고 왔어야지 하면서 무시하기 일쑤다. 수학자는 내돈 들여 책을 사고 시간 들여 가며 읽고 있는데 무시당하는 독자의 기분을 이해하지 못한다. 머리 나쁘다고 할까봐 어디가서 하소연 하지도 못하고 그저 주억거리고 있자니 열불이 난다. 앞서서 다뤘다며 찾아보라고 면박주지 말고 했던 얘기 다시 정리해 주는 느긋한 수학이 되면 어떨까. 당장 시험을 앞두고 있는 것이 아니라면 말이다.
--------------------------------------------------------------------
다음글: [마구잡이 수학] 시작하며...
--------------------------------------------------------------------
2017년 11월 16일 목요일
수학 소프트웨어, 수학 공부의 친구?
수학 소프트웨어, 수학 공부의 친구?
"물리의 정석"
물리학자 레너드 서스킨트(워낙 저명하신 분이니 설명은 생략. 궁금하다면 클릭)의 대중을 상대로한 물리학 강연을 책으로 담은 "The Theoretical Minimum"을 이종필 교수님이 번역한 책으로, <과학과 사람들>의 야심찬 공부 프로젝트 "어른의 수학"강좌의 교재로 사용된다고 합니다. 이 강좌는 역자 직강으로 개설 됩니다.
서스킨트의 강의집은 원서로는 3편이 나왔다고 합니다. 양자역학, 특수 상대론과 고전 장이론, 두편이 더 있길래 모두 구입. 공부보다 폼 잡는게 취미라 일단 책부터 사놓고 보는거죠.
오십을 넘어가니 머리가 퇴보하는 느낌이라 수학공부라도 해야 겠다고 마음 먹고 있던 차에 이런 강좌가 열린다니 너무나 기뻣습니다. 아직 직장에 메인 몸이라 멀리 떨어진 강의실까지 찾아갈 형편이 안되서 수강은 못하고 교과서만 구입해서 봤습니다(초판이라 그런지 오타가 발견되고 있음, 번역서 89쪽, 적분공식 중). 이 책에서는, 재미있는 것이 문제를 풀 때, 때로는 수학 소프트웨어를 사용하라고 합니다. 생소한 지수함수, 로그함수, 삼각함수 따위의 수학을 그림으로 그려보면 이해하는데 큰 도움이 됩니다. 자습할 때 이런 소프트웨어를 가지고 노는 것 만으로도 수학에 흥미를 불러 일으킬 수 도 있습니다. 수학공부에 도움이 될 수도 있는 소프트웨어 몇가지를 추천해 봅니다.
안드로이드 수학 앱,
스마트 폰 앱으로 나온 수학 계산기도 여러개가 있지만 MathLab Apps(MatLab 아님) 의 Graphing Calculator가 아주 좋더군요. 함수정의가 가능하고 사용자 인터페이스도 직관 적입니다. 그래프 그리는 기능도 상당히 괜찮습니다. 프로그래밍 기능은 없고, 부정적분 기능도 없는 것이 좀 아쉽긴 합니다.
Mathlab Apps' Graphing Calculator
https://play.google.com/store/apps/details?id=us.mathlab.android
TI의 전자 계산기,
텍사스 인스트루먼트의 nSpire라는 전자 계산기가 있습니다. 대수가 가능한 버젼으로 TI-nSpire CX CAS 인데 상당히 좋죠. 큼지막한 게임기 같이 생겨서 가지고 노는 맛도 있습니다. 기기와 별도로 컴퓨터용 소프트웨어도 함께 제공된다는 점이 매력적이죠. 일종의 에뮬레이터인데 계산기와 똑같습니다. 계산기(하드웨어)를 사면 이 소프트웨어의 라이센스 키가 동봉 되어 있습니다. 30일 무료 사용도 가능하죠.
TI-nSpire CX CAS Student Software
https://education.ti.com/en/software/details/en/B4F6E4EE05B94D75AAB4DFE24B2720AE/ti-nspirecxcas_pc_trial
자체 프로그램 기능이 내장되어 있어서 사용자 정의 함수를 만들 수 있습니다. 일반적이지 않은 퓨리어 트랜스폼, 코사인 트랜스폼 같은 사용자 정의 함수들을 작성해 넣을 수 있습니다. 완벽한 소형 컴퓨터 입니다. 단지 화면이 매우 작다는게 흠 입니다. 화면 해상도가 겨우 320x240의 아쉬운 화면,
아래 그림은 동일한 함수를 매스매틱스(Mathematics)로 그려본 겁니다. 역시 PC의 그래픽은 훌륭 하네요! 그래프 그린 함수를 보면 엄청 난 값(e의 x제곱의 19제곱)을 두 소프트웨어 모두 잘 처리하고 있다.
TI-nSpire의 수학기능은 막강 합니다. 특히 부정적분이 돋보입니다.
이정도 부정적분 쯤이야 무료 소프트웨어도 잘 합니다. 조금 복잡한 걸 해봤더니, MS Mathematics에서는 못하는 적분도 해냅니다. 최종 정리 까지는 이쁘진 않지만 그래도 해낸다는게 신통하죠.
TI-nSpire의 큰 장점은 자체 언어(BASIC수준의 직관적)를 가지고 있어서 프로그래밍이 가능 하다는 겁니다. 역시 화면 크기가 아쉽군요.
작은 화면과 코딱지만한 키보드로 코딩 할 수는 없고,
PC 메모장에서 작성하고 스튜던트 소프트웨어로 컨트롤-씨, 컨트롤-브이가 되죠. 물론, 나중에 계산기로 전송도 가능하고,
영상처리에 자주 등장하는 정수형 8-point DCT(8점 디스크리트 코사인 트랜스폼)을 TI-nSpire에 구현해 넣어 봤습니다. 프로그램 소스 코드를 봐서 알겠지만 2차원 배열, IF문, For 반복문도 됩니다. 제대로된 프로그래밍 언어 맞습니다.
Define dct_1d(src)=
Func
:Local dst,tmp,n,k
:Local coeff
:coeff:=[ [8192,8192,8192,8192,8192,8192,8192,8192]
[11363,9633,6436,2260,−2260,−6436,−9632,−11362]
[10703,4433,−4433,−10703,−10703,−4433,4433,10703]
[9633,−2260,−11362,−6436,6436,11363,2260,−9632]
[8192,−8192,−8192,8192,8192,−8191,−8191,8192]
[6436,−11362,2260,9633,−9632,−2260,11363,−6436]
[4433,−10703,10703,−4433,−4433,10703,−10703,4433]
[2260,−6436,9633,−11362,11363,−9632,6436,−2260]
]
:
: For k,1,8,1
: tmp:=0
: For n,1,8,1
: tmp:=tmp+src[n]*coeff[k,n]
: EndFor
: dst[k]:=((tmp)/(2^(13)))
: EndFor
: Return dst
:EndFunc
작성된 함수는 입력(배열)을 정의하고 호출하면 즉시 결과를 보여주죠.
그래프로 사용자 함수를 그릴 수도 있습니다.
심지어, nSpire의 그래픽 운영체제 리소스를 활용 할 수도 있습니다. 키보드 입력, 택스트 출력, 다이얼로그 박스를 쓸 수도 있습니다.
Define guess_a_number()=
Prgm
:
: n:=randint(1,99)
: Local Attempts
: Attempts:=0
: Text "Guess an integer between 0 and 100"
: Lbl begin
: Request "Guess?", number
: attempts:=attempts+1
: If number>n Then
: Disp "too high, try again"
: Goto begin
: ElseIf number<n Then
: Disp "too low, try again"
: Goto begin
: Else
: Disp "You guessed it!"
: Disp "It took you", attempts, "tries"
: EndIf
:
:EndPrgm
결론,
수학공부에 도움이 될 수도 있는 소프트웨어 몇가지를 살펴 봤습니다. 전자 계산기(수학 소프트웨어)의 사용은 산수공부의 적이지 수학공부의 적은 아닙니다. 이 세상의 모든 독이 그렇듯이 잘쓰면 아주 좋은 약이 됩니다. PC에 컴퓨터에 Mathematics 4.0, TI-nSpire Student Software, 스마트 폰에 Graphing Calculator 를 설치해 두고 가끔씩 이리저리 누르다보면 수학이랑 조금더 가까와 질 수도 있을 겁니다. 이참에 수포자 탈출을 넘어 수학 덕후가 되어보는 것도 좋겠죠.
<과학과 사람들>
http://sciencepeople.co.kr/
"어른의 수학"
http://sciencepeople.co.kr/%EC%96%B4%EB%A5%B8%EC%9D%98-%EC%88%98%ED%95%99/
-----------------------------------------------------
[참고]
1. The Theoretical Minimum
http://theoreticalminimum.com/
서스킨트 강의 사이트
2. TI-nSpire 에뮬레이터
Firebirs nSpire Emulator
https://github.com/nspire-emus/firebird/wiki
TI-nSpire를 구입하려면 비용이 좀 들죠. 무료 에뮬레이터도 있습니다.
3. Mathematical Handbook
https://archive.org/details/MathematicalHandbookOfFormulasAndTables
수학/물리에 자주 등장하는 각종 공식, 상수들, 표 등이 정리되어 있는 핸드북 다운 핸드북
물리학자 레너드 서스킨트(워낙 저명하신 분이니 설명은 생략. 궁금하다면 클릭)의 대중을 상대로한 물리학 강연을 책으로 담은 "The Theoretical Minimum"을 이종필 교수님이 번역한 책으로, <과학과 사람들>의 야심찬 공부 프로젝트 "어른의 수학"강좌의 교재로 사용된다고 합니다. 이 강좌는 역자 직강으로 개설 됩니다.
서스킨트의 강의집은 원서로는 3편이 나왔다고 합니다. 양자역학, 특수 상대론과 고전 장이론, 두편이 더 있길래 모두 구입. 공부보다 폼 잡는게 취미라 일단 책부터 사놓고 보는거죠.
피씨 윈도우즈 수학 소프트웨어,
책에 소개된 소프트웨어는 "매스메티카(Mathematica)"인데 비싼 상용 입니다. 물론 기능도 강력하고 저렴한 학생판도 있습니다만 어쨌든 무료는 아닙니다. 이를 대체할 만한 수학 소프트웨어로 마이크로소프트의 매스메틱스(Microsoft Mathematics 4.0)가 있습니다. 함수 정의나 프로그램 기능이 없어 다소 아쉽긴 하지만 사용이 직관적이고 미적분, 부정적분도 어지간히 풀어 냅니다.
Microsoft Mathematics 4.0
안드로이드 수학 앱,
스마트 폰 앱으로 나온 수학 계산기도 여러개가 있지만 MathLab Apps(MatLab 아님) 의 Graphing Calculator가 아주 좋더군요. 함수정의가 가능하고 사용자 인터페이스도 직관 적입니다. 그래프 그리는 기능도 상당히 괜찮습니다. 프로그래밍 기능은 없고, 부정적분 기능도 없는 것이 좀 아쉽긴 합니다.
Mathlab Apps' Graphing Calculator
https://play.google.com/store/apps/details?id=us.mathlab.android
TI의 전자 계산기,
텍사스 인스트루먼트의 nSpire라는 전자 계산기가 있습니다. 대수가 가능한 버젼으로 TI-nSpire CX CAS 인데 상당히 좋죠. 큼지막한 게임기 같이 생겨서 가지고 노는 맛도 있습니다. 기기와 별도로 컴퓨터용 소프트웨어도 함께 제공된다는 점이 매력적이죠. 일종의 에뮬레이터인데 계산기와 똑같습니다. 계산기(하드웨어)를 사면 이 소프트웨어의 라이센스 키가 동봉 되어 있습니다. 30일 무료 사용도 가능하죠.
TI-nSpire CX CAS Student Software
https://education.ti.com/en/software/details/en/B4F6E4EE05B94D75AAB4DFE24B2720AE/ti-nspirecxcas_pc_trial
자체 프로그램 기능이 내장되어 있어서 사용자 정의 함수를 만들 수 있습니다. 일반적이지 않은 퓨리어 트랜스폼, 코사인 트랜스폼 같은 사용자 정의 함수들을 작성해 넣을 수 있습니다. 완벽한 소형 컴퓨터 입니다. 단지 화면이 매우 작다는게 흠 입니다. 화면 해상도가 겨우 320x240의 아쉬운 화면,
아래 그림은 동일한 함수를 매스매틱스(Mathematics)로 그려본 겁니다. 역시 PC의 그래픽은 훌륭 하네요! 그래프 그린 함수를 보면 엄청 난 값(e의 x제곱의 19제곱)을 두 소프트웨어 모두 잘 처리하고 있다.
TI-nSpire의 수학기능은 막강 합니다. 특히 부정적분이 돋보입니다.
이정도 부정적분 쯤이야 무료 소프트웨어도 잘 합니다. 조금 복잡한 걸 해봤더니, MS Mathematics에서는 못하는 적분도 해냅니다. 최종 정리 까지는 이쁘진 않지만 그래도 해낸다는게 신통하죠.
TI-nSpire의 큰 장점은 자체 언어(BASIC수준의 직관적)를 가지고 있어서 프로그래밍이 가능 하다는 겁니다. 역시 화면 크기가 아쉽군요.
작은 화면과 코딱지만한 키보드로 코딩 할 수는 없고,
PC 메모장에서 작성하고 스튜던트 소프트웨어로 컨트롤-씨, 컨트롤-브이가 되죠. 물론, 나중에 계산기로 전송도 가능하고,
영상처리에 자주 등장하는 정수형 8-point DCT(8점 디스크리트 코사인 트랜스폼)을 TI-nSpire에 구현해 넣어 봤습니다. 프로그램 소스 코드를 봐서 알겠지만 2차원 배열, IF문, For 반복문도 됩니다. 제대로된 프로그래밍 언어 맞습니다.
Define dct_1d(src)=
Func
:Local dst,tmp,n,k
:Local coeff
:coeff:=[ [8192,8192,8192,8192,8192,8192,8192,8192]
[11363,9633,6436,2260,−2260,−6436,−9632,−11362]
[10703,4433,−4433,−10703,−10703,−4433,4433,10703]
[9633,−2260,−11362,−6436,6436,11363,2260,−9632]
[8192,−8192,−8192,8192,8192,−8191,−8191,8192]
[6436,−11362,2260,9633,−9632,−2260,11363,−6436]
[4433,−10703,10703,−4433,−4433,10703,−10703,4433]
[2260,−6436,9633,−11362,11363,−9632,6436,−2260]
]
:
: For k,1,8,1
: tmp:=0
: For n,1,8,1
: tmp:=tmp+src[n]*coeff[k,n]
: EndFor
: dst[k]:=((tmp)/(2^(13)))
: EndFor
: Return dst
:EndFunc
작성된 함수는 입력(배열)을 정의하고 호출하면 즉시 결과를 보여주죠.
그래프로 사용자 함수를 그릴 수도 있습니다.
심지어, nSpire의 그래픽 운영체제 리소스를 활용 할 수도 있습니다. 키보드 입력, 택스트 출력, 다이얼로그 박스를 쓸 수도 있습니다.
Define guess_a_number()=
Prgm
:
: n:=randint(1,99)
: Local Attempts
: Attempts:=0
: Text "Guess an integer between 0 and 100"
: Lbl begin
: Request "Guess?", number
: attempts:=attempts+1
: If number>n Then
: Disp "too high, try again"
: Goto begin
: ElseIf number<n Then
: Disp "too low, try again"
: Goto begin
: Else
: Disp "You guessed it!"
: Disp "It took you", attempts, "tries"
: EndIf
:
:EndPrgm
결론,
수학공부에 도움이 될 수도 있는 소프트웨어 몇가지를 살펴 봤습니다. 전자 계산기(수학 소프트웨어)의 사용은 산수공부의 적이지 수학공부의 적은 아닙니다. 이 세상의 모든 독이 그렇듯이 잘쓰면 아주 좋은 약이 됩니다. PC에 컴퓨터에 Mathematics 4.0, TI-nSpire Student Software, 스마트 폰에 Graphing Calculator 를 설치해 두고 가끔씩 이리저리 누르다보면 수학이랑 조금더 가까와 질 수도 있을 겁니다. 이참에 수포자 탈출을 넘어 수학 덕후가 되어보는 것도 좋겠죠.
<과학과 사람들>
http://sciencepeople.co.kr/
"어른의 수학"
http://sciencepeople.co.kr/%EC%96%B4%EB%A5%B8%EC%9D%98-%EC%88%98%ED%95%99/
-----------------------------------------------------
[참고]
1. The Theoretical Minimum
http://theoreticalminimum.com/
서스킨트 강의 사이트
2. TI-nSpire 에뮬레이터
Firebirs nSpire Emulator
https://github.com/nspire-emus/firebird/wiki
TI-nSpire를 구입하려면 비용이 좀 들죠. 무료 에뮬레이터도 있습니다.
3. Mathematical Handbook
https://archive.org/details/MathematicalHandbookOfFormulasAndTables
수학/물리에 자주 등장하는 각종 공식, 상수들, 표 등이 정리되어 있는 핸드북 다운 핸드북
2017년 11월 11일 토요일
<어른의 수학> 만세!
<어른의 수학> 만세!
설마 했는데 진짜 시작되는 군요. "과학과 사람들"에서 어른들을 위한 학습 프로그램(그것도 수학 이라니!)을 시작 한답니다. 시작을 알리는 팟 캐스트 편을 듣는데 중간중간 "과학과 사람들"의 고심이 이만저만 아니었겠다 싶더군요.
"우리도 이젠 이런거 할 때도 됐잖아요"
외국의 성인 교육 프로그램이 상당히 활성화 되어 있죠. 구글과 커세라(Coursera.org) 가 IT 직업교육을 위해 연합 했다는 소식도 있었구요. 우리나라도 K-MOOC라는 온-라인 대중교육 프로그램이 있습니다. 온-라인 프로그램을 듣다보면 아쉬울 때가 있더라구요. 백화점이나 지자체의 문화센타, 대학의 평생교육원등의 프로그램에 "어른들의 수학"도 낄 수 있길 바래봅니다. "수학"이야말로 인류와 함께 해온 문화 아니겠어요.
"수학을 해서 뭐가 달라질까요?"
수학을 해서 뭐가 달라질진 모르지만 한가지는 확실 합니다. 주변으로부터 존경의 눈빛을 받을 수 있습니다. "나, 미적분 푸는 아재야!"라며 당당히 뽐낼 수 있겠지요. 취미라는게 뭐에 쓸일이 있어서 하는건 아니잖아요.
<어른의 수학> 수강신청 페이지
http://sciencepeople.co.kr/%EC%96%B4%EB%A5%B8%EC%9D%98-%EC%88%98%ED%95%99/
이번에 다른 계획이 있어서 <어른의 수학>에 참여하진 못하지만 응원 합니다.
[어른의 수학] 만세!
[참고]-----------------------------------------------
1. Coursera Teams Up with Google to Bridge the IT Experience Gap,
https://blog.coursera.org/coursera-teams-google-bridge-experience-gap/
설마 했는데 진짜 시작되는 군요. "과학과 사람들"에서 어른들을 위한 학습 프로그램(그것도 수학 이라니!)을 시작 한답니다. 시작을 알리는 팟 캐스트 편을 듣는데 중간중간 "과학과 사람들"의 고심이 이만저만 아니었겠다 싶더군요.
"우리도 이젠 이런거 할 때도 됐잖아요"
외국의 성인 교육 프로그램이 상당히 활성화 되어 있죠. 구글과 커세라(Coursera.org) 가 IT 직업교육을 위해 연합 했다는 소식도 있었구요. 우리나라도 K-MOOC라는 온-라인 대중교육 프로그램이 있습니다. 온-라인 프로그램을 듣다보면 아쉬울 때가 있더라구요. 백화점이나 지자체의 문화센타, 대학의 평생교육원등의 프로그램에 "어른들의 수학"도 낄 수 있길 바래봅니다. "수학"이야말로 인류와 함께 해온 문화 아니겠어요.
"수학을 해서 뭐가 달라질까요?"
수학을 해서 뭐가 달라질진 모르지만 한가지는 확실 합니다. 주변으로부터 존경의 눈빛을 받을 수 있습니다. "나, 미적분 푸는 아재야!"라며 당당히 뽐낼 수 있겠지요. 취미라는게 뭐에 쓸일이 있어서 하는건 아니잖아요.
이번 <어른의 수학> 프로그램이 12주로 좀 긴 듣도 합니다만, 강의 6주, 연습문제 풀이, 질문 보충 6주로 구성된다고 합니다. 한 주는 강의, 이어서 한 주는 연습문제를 풀고 질문과 보충을 하는 식인데 온-라인 과는 확실히 차이가 나는 구성 이군요. 이 참에 '가오'한번 세워 보시죠!
<어른의 수학> 수강신청 페이지
http://sciencepeople.co.kr/%EC%96%B4%EB%A5%B8%EC%9D%98-%EC%88%98%ED%95%99/
[어른의 수학] 만세!
[참고]-----------------------------------------------
1. Coursera Teams Up with Google to Bridge the IT Experience Gap,
https://blog.coursera.org/coursera-teams-google-bridge-experience-gap/
수학문제를 풀다가 "나는 행운아 였으면.."
수학문제를 풀다가 "나는 행운아 였으면.."
오늘도 기하 문제를 풀며 감탄하고 있다. 이런 문제를 어떻게 3~5분 만에 풀지? 이 한 문제 푸는데 거의 반 시간을 공부하고 반 나절을 감탄하고 있는데 말이다.
아주 멋진 문제였다. 빠른 시간내에 풀려면 여러가지 수학적 직관이 필요하기도 했다. 못 풀 것 같아 보이는 문제도 다 해결책을 담고 있었다. 이런 문제를 내는 사람은 누굴까?
인간이 만든 문제든 조물주가 만든 문제든, 문제를 만들어 낼 때에는 다 해결책을 마련해 놓고 있나보다. 복잡해 보이는 자연 현상도 다 해를 가지고 있다고 믿는다. 다만 아직 못찾았을 뿐이다. 과학사를 보면 천재도 있고 노력파도 있고, 우연히 찾아내는 행운아도 있더라. 물론 천재나 행운아를 시기하다 망치는 바보도 있고. 나는 행운아 였으면 좋겠다.
그나저나 수능까지 이제 넉달도 남지 않았는데 진도가 너무 느리다. 문제 하나에 이렇게 생각이 많으니 그럴 수 밖에. 은근히 조바심이 난다.
--------------
문제가 궁금하시면 클릭 <- 책임 안짐!
오늘도 기하 문제를 풀며 감탄하고 있다. 이런 문제를 어떻게 3~5분 만에 풀지? 이 한 문제 푸는데 거의 반 시간을 공부하고 반 나절을 감탄하고 있는데 말이다.
아주 멋진 문제였다. 빠른 시간내에 풀려면 여러가지 수학적 직관이 필요하기도 했다. 못 풀 것 같아 보이는 문제도 다 해결책을 담고 있었다. 이런 문제를 내는 사람은 누굴까?
인간이 만든 문제든 조물주가 만든 문제든, 문제를 만들어 낼 때에는 다 해결책을 마련해 놓고 있나보다. 복잡해 보이는 자연 현상도 다 해를 가지고 있다고 믿는다. 다만 아직 못찾았을 뿐이다. 과학사를 보면 천재도 있고 노력파도 있고, 우연히 찾아내는 행운아도 있더라. 물론 천재나 행운아를 시기하다 망치는 바보도 있고. 나는 행운아 였으면 좋겠다.
그나저나 수능까지 이제 넉달도 남지 않았는데 진도가 너무 느리다. 문제 하나에 이렇게 생각이 많으니 그럴 수 밖에. 은근히 조바심이 난다.
--------------
문제가 궁금하시면 클릭 <- 책임 안짐!
수학을 공부하는 이유
수학을 공부하는 이유
수학을 모르면 프로그래머라고 할 수 없다. 수능 문제를 풀다가 문득 깨닳았다. 그 문제는 이랬다.
초점 F(4,-2) 준선 y=4인 포물선의 그래프에서,
쉽게 푼 줄 알았다. 그런데 주어진 촛점과 준선의 조건을 가지고 그래프 그리기부터 틀렸다. 준선에 y=4이고 촛점의 y좌표값이 -2인데 아래로 볼록인 포물선을 그려 놓다니 논리적이지도 않다. 이어서 x와 y 값의 적용이 뒤죽박죽이 되어 버렸지만 일단 값을 얻은 듣하니 잘 푼 줄 안 것이다. 차라리 중간에 난관에 봉착 했다면 다시 되집어 봤을텐데 아주 않좋은 덧에 빠진듣 한 기분이다.
계산은 컴퓨터가 잘한다. 기계에게 일을 시키려면 기계가 알아들 을 수 있는 방식으로 표현해야 한다. 컴퓨터는 프로그래밍 언어를 알아 듣는다. 즉, 언어로 문제를 기술하는 것이다.
초점 F(4,-2) 준선 y=4인 포물선을 바르게 그려보면, (준선과 촛점의 y 좌표값에 유의하자)
원칙대로 "한점에서 준선까지 길이와 촛점까지의 길이가 같다"는 원칙대로 푸는 방법도 있고,
포물선의 평행이동을 직관적으로 이해하여 풀 수도 있다. 준선과 촛점의 관계를 먼저 따져보면 꼭짓점의 좌표를 알 수 있다. 꼭짓점 좌표가 바로 평행 이동 거리다.
그림만 잘 그려 놓으면 쉽게 풀 수도 있다.
수학을 모르면 프로그래머라고 할 수 없다. 수능 문제를 풀다가 문득 깨닳았다. 그 문제는 이랬다.
초점 F(4,-2) 준선 y=4인 포물선의 그래프에서,
쉽게 푼 줄 알았다. 그런데 주어진 촛점과 준선의 조건을 가지고 그래프 그리기부터 틀렸다. 준선에 y=4이고 촛점의 y좌표값이 -2인데 아래로 볼록인 포물선을 그려 놓다니 논리적이지도 않다. 이어서 x와 y 값의 적용이 뒤죽박죽이 되어 버렸지만 일단 값을 얻은 듣하니 잘 푼 줄 안 것이다. 차라리 중간에 난관에 봉착 했다면 다시 되집어 봤을텐데 아주 않좋은 덧에 빠진듣 한 기분이다.
계산은 컴퓨터가 잘한다. 기계에게 일을 시키려면 기계가 알아들 을 수 있는 방식으로 표현해야 한다. 컴퓨터는 프로그래밍 언어를 알아 듣는다. 즉, 언어로 문제를 기술하는 것이다.
저학년 교육과정에서부터 프로그래밍 혹은 코딩 교육의 중요성이 강조되는 추세라고 한다. 그러면서 정작 배우는게 컴퓨터 언어의 규칙과 몇가지 되지도 않는 키워드의 활용에 불과한 경우를 보게된다. 키워드라고 해봐야 기초라고 쳐주기도 민망한 것 들이다. 사칙연산 기호를 이용한 산술 식에 if ~ else~, while, for 따위로 굳이 따로 배워야 하나 싶을 정도다.
기계가 알아들으려니 언어가 이리 단순 명료해야 하는 것은 당연할 것이다. 이렇게 간단한 "언어"로 컴퓨터가 해내는 것들을 보면 놀랍다. 컴퓨터가 해내는 놀라운 산출물과 단순한 언어 사이에 커다란 격차가 바로 수학이다.
기계가 알아들으려니 언어가 이리 단순 명료해야 하는 것은 당연할 것이다. 이렇게 간단한 "언어"로 컴퓨터가 해내는 것들을 보면 놀랍다. 컴퓨터가 해내는 놀라운 산출물과 단순한 언어 사이에 커다란 격차가 바로 수학이다.
"코딩" 교육이란 문제 혹은 목표를 언어와 수식으로 기술하는 능력이라고 하겠다. 그 과정에서 동원되는 수많은 추상적 개념들은 모두 수학에 기초를 두고 있다. 위의 문제는 촛점과 준선만 주고 "포물선"을 그리라고 명령하는 것이다. "포물선"이라는 한 단어가 담고있는 개념은 수학에서 기초하여 모두가 이해한 것으로 간주할 때 명령을 내릴 수 있다. 컴퓨터가 "포물선"에 대한 정보(라이브러리)를 가지고 있다고 한들 정작 프로그래머가 알지 못하거나 오해하고 있다면 문제를 풀지 못하거나 오답을 낼 뿐이다.
그래서 수학을 배운다. 수학을 못하는 프로그래머는 그저 받아쓰기 코더(coder)일 뿐이다.
-------------------------------------------------------------------------------------
제대로 풀어보자.
제대로 풀어보자.
원칙대로 "한점에서 준선까지 길이와 촛점까지의 길이가 같다"는 원칙대로 푸는 방법도 있고,
포물선의 평행이동을 직관적으로 이해하여 풀 수도 있다. 준선과 촛점의 관계를 먼저 따져보면 꼭짓점의 좌표를 알 수 있다. 꼭짓점 좌표가 바로 평행 이동 거리다.
그림만 잘 그려 놓으면 쉽게 풀 수도 있다.
---------------------------------------------------------------------------
피드 구독하기:
글 (Atom)


















