Mathematica 를 이용한 수학과 수업의 소개

”’고려대학교 이과대학 수학과 김 영 욱”’

94년도에 발표한 내용으로 오래된 내용이지만 조금은 필요한 구석이 있어 올려둡니다.

수학과목의 강의는 왜 이론에 치중하게 되는가?

수학교육을 담당하는 사람들은 누구나 수학교육이 다른 과학과는 달리 실험성이 미흡하다는 느낌을 갖게 될 것이다. 일반적으로 이에 대하여, 수학에는 실험할 것이 없다거나, 또는 수학에서는 실험을 머리속에서 한다는 식으로 이유를 들게 된다. 그러나 수학연구을 전문으로 하는 수학자들에게 여러가지 실험이 매우 중요하다는 사실은 아무도 부인하지 않을 것이다. 이러한 실험에는 머리속에서 하는 상상실험도 있겠지만, 구체적인 경우의 계산을 빼놓을수 없으며, 실제로 모형을 만들어 보는 경우도 있겠고, 가설이 맞는가를 직접 체험해 볼수도 있을것이다.

전문적인 수학연구가 가설을 세우고 이를 검증하여 이론을 세우는 과정이라 볼 때, 기초적인 수학교육을 받는 학생들도 나름대로 배우는 수학이론을 머리속에서 정립하기 위하여 가설을 세우고 이를 검증하여 봄으로써 자신의 이론으로 만드는 과정으로 볼수 있다. 이러한 과정에서 증명의 논리적 이해 못지 않게 중요한 것은 이론 적용의 실례와 반례들이다. 어떤 경우에는 예들을 알지 못하는 이론은 껍데기만을 알고 있다고 할수 있을 정도이다.

수학이론을 강의 함에 있어서 우리는 될수 있으면 예와 반례들을 많이 가르치려고 한다. 그러나 현실적으로는 이와 상반되는 문제와 부딛히게 된다. 예와 반례들을 소개하고 검증해주는 교육의 과정은 많은 시간을 소모하게 하며, 제한된 시간이라는 현실은 이 과정을 숙제나 피상적인 소개에 그치게 할 때가 많다. 실제로 계산을 통해서 알아보아야 되는 예들에 있어서는 자명한 예들을 빼놓고는 강의시간에 계산이 불가능한 때가 많다. 또한 모형을 만들어보아야 할 예들은 현실적으로 더더욱 어려울 뿐만 아니라 숙제조차도 내기 힘들다.

이러한 점이 여러 원인중에서도 수학강의를 특히 이론의 소개와 증명에 치중하게 만드는 원인이라고 보인다.

과거에 Computer를 쓰는 수업방법은 어떠했는가?

Computer가 우리 생활에 가까이 쓰이게 된것은 불과 10년을 넘지 않는다. 이 지난 10년을 포함하여 지난날에 대학교 수학과목의 수업에서 Computer를 어떻게 사용하여 왔는가를 살펴보자. 우선 순수수학과목에서는 computer가 전혀 사용되지 않았다고 할수 있다. computer는 아직 순수수학을 다룰만큼 발전되지 않았다고 생각되고 있었고, 이말은 거의 사실이었다. 응용수학의 경우에는 전문화된 수치적 algorithm을 반복하여 사용하는데에 computer를 사용하였으나 이 또한 극히 제한적이었다. (예를 들면, 상미분방정식의 수치해석적 해를 구하는데 Runge-Kutta 방법을 쓰기위하여 간단한 program 만드는 법을 배운 것을 들수 있다.)

이러한 방법이 반복적으로 사용되는 경우에는 학생들이 computer 언어를 습득하여 실험적으로 이론을 검증해 보는 경우도 있겠으나 이들 언어는 programming이라는 절차를 거쳐야 하는 언어로서, 사고의 흐름을 따라서 계산해보는 데는 효과적이지 못하였다. 이를 사용하는 사람은 사용하는 computer 언어를 습득해야할 뿐 아니라, 시작부터 끝까지 계산과정을 예측하여 program을 만들어야만 쓸수 있었으며, 사실상 자신이 실험해 보려는 이론과는 무관한 여러 algorithm에 정통해야만 제대로 쓸수 있었다. 따라서 이러한 방법은 극히 제한된 숫자의 사람과 몇몇 수학문제에만 효과가 있었을 뿐, 대다수에게는 실질적이지 못했다.

Mathematica의 출현과 수학실습의 가능성

1988년경 mathematica가 처음으로 선을 보였을 때는 수학을 위한 program들이 이미 몇차례 시험을 거친 후였다. 이중 몇개는 어떤 특수한 목적만을 위하여 쓰여진 program이었으며 아직도 쓰이고 있는 반면 다른 몇개는 수학 전반에서 나타나는 문제를 다루려는 목표로 만들었지만 여러면에서 미흡하였다. 전체적인 분위기는 아직 PC는 이론수학을 다루기에는 역부족이라는 생각이었다.

그러나 Mathematica는 이전의 program들과는 다른점을 갖고 있었다. 그 첫번째는 Mathematica가 문자계산을 한다는 것이다. 이론수학을 computer를 써서 다룸에 있어서 가장 큰 문제가 `computer는 숫자만을 계산한다’는 것이다. 따라서 문자를 직접 다룰줄 아는 program의 출현은 매우 고무적이었다.

둘째로 Mathematica는 좋은 algorithm들을 많이 기본적 함수들로 가지고 있다. 이는 FORTRAN으로 말하면 subroutine program을 많이 가지고 있는것과 흡사하나, 계산하려는 식을 입력하고 바로 계산의 결과를 얻어볼수 있으므로, 자신의 생각의 결과를 바로 다음생각에 연결시킬수 있다는 장점이 있다.

세째로 Mathematica는 여러가지 그림을 그릴수 있다. 여러가지로 주어진 식을 그림으로 나타낼 뿐만 아니라, 그림을 나타내는 형태도 자른다던가 명암을 구별하고 시점을 이동하는등의 조작이 쉬워서 복잡한 그림도 매우 정확하게 그려볼수 있다.

네째로 Notebook이라는 형태로 session을 저장한다는 사실이다. 이는 새로운 개념으로서, 한 file 안에 설명과 계산명령들을 함께 저장할수 있다는 것이다. 따라서 잘 쓰면 강의내용이 순서대로 한 file에 저장되고, 다시 실행하면서 한 스텝 한 스텝씩 재현해 볼수 있다.

이러한 장점들에 반하여 단점도 있다. 어떤 특정한 계산만을 한다면 다른 언어(C, FORTRAN등)에 비하여 매우 느릴수도 있다. 그러나 computer의 계산속도가 매우 빠르게 증가하면서 위의 장점들이 단점을 보완하게 되었다. 초기에는 PC로는 한계가 있다고 느껴졌으나, 최근의 빠른 PC들은 이전의 Workstation 보다도 빠른 계산능력을 보이고 있다. 따라서 PC만을 써서도 대학교 학부수학의 대부분에 걸쳐서 Mathematica는 우리가 강의실에서 손으로 할수 없는 많은 문제들을 해결해 줄수 있으리라고 보였다.

Computer를 이용한 실습수학의 시도

처음으로 고려대학교 이과대학 수학과에서 Mathematica 를 사용한 강의가 열린것은 1991년도 봄학기였다. 새로운 교과과정 개편으로 신설된 “전산보조수학(Computer Aided Mathematics)”이라는 과목을 가르치는데 Mathematica를 언어로 쓰기로 결정하였다. 이것은 당시에 신설된 MacIntosh Room(MacIntosh computer 10대 설치)이 학생들의 실습장으로 개방된것과 시기가 맞았다. 세시간 수업을 한시간 강의와 두시간 실습의 정규 시간 외에 임의로 편한 시간에 숙제와 못다한 실습을 학생 스스로 한다는 식으로 시작하였다. 수강한 학생수는 약 20명었으며 이들은 5팀으로 나뉘어 실습과 토론을하고 Report를 제출하였다.

수업의 내용은 다음과 같았다. 일주일에 한시간인 강의는 기초적인 Fractal의 이론에 두었다. 한 학기(15시간 강의) 동안에 자기유사성(self similarity)과 하우스도르프(Hausdorff) 차원의 개념을 배우고 실제적인 예에서 Fractal적인 성질을 알아보는데 까지 목표로 했다. 한편 실습시간에는 처음 2주일간은 개략적으로 Mathematica의 사용법을 익혔다. Mathematica는 PC의 사용법을 모르는 사람이라도 간단히 시작해서 쓸수 있을 뿐만 아니라, 어떠한 계산을 하고싶어도 즉시에서 쓰고싶은 함수를 Manual에서 찾아서 실행해 볼수 있었다. 그 다음 몇주간은 그림을 그리는 법, Data를 처리하는법 등을 배웠으며 한편으로는 강의시간에 배운 자기유사집합들을 평면에서 나타내보기도 하였고 그 밖에도 여러가지 실험을 하였다. 이 실험들은 각 팀에서 토론을 통하여 관심있는 문제를 설정하고 이들 문제에서 나타나는 현상을 직접 그려보거나 계산하여 보았으며 다른 팀에게 발표를 통하여 설명하였다. 학기 중간정도 부터는 각 팀별로 Fractal이 실제상황에서 나타나는 예들을 찾아보고 Fractal의 차원등을 직접 계산해 보았으며, 한편 각 팀별로 실시한 실험을 package program으로 만드는 방법을 공부했다. 이렇게 하여 얻은 결과들은 학기말에 report와 program으로 제출하여 기말고사를 대신하였다.

수업의 방법과 목표

이 수업을 하는동안 전체적인 학습의 목표를 다음과 같은 몇가지에 두었다. 첫째, 수업의 내용을 어떤 한가지 이론의 습득에만 두지 않았다. 물론 전혀 아무런 학습목표도 없을수는 없으므로 단시간에 별로 아는것이 없이도 이해하기 쉬운 Fractal이론이라는 공통된 강의내용이 있었지만 이 밖에도 학생들이 원하는 어떠한 내용도 실습과 토론의 대상이 될수 있었다. 이는 무엇보다도 자기의 관심을 끌지 못하는 이론은 아무리 중요해도 학생들의 학습의욕을 이끌어내지 못한다고 보아서, 학생들이 스스로 관심있는 문제를 선택하고 실습을 통하여 현상을 알아보도록 하였다.

둘째, 실습시간에는 토론수업으로 유도하는데 중점을 두었다. 우리나라 교육에서 가장 빈약한 부분이 자신의 의견을 발표하고 이에 대하여 토론하는 훈련이 미흡함에 있다고 보이므로 이와 같은 자유로운 실습시간에 토론이 많이 이루어지도록 유도하였다. 즉 한 팀의 발표가 있으면 다른 팀도 이를 이해할수 있게 구체적으로 설명하는데 중점을 두었으며, 발표를 듣는 팀도 이를 잘 알아듣도록 질문을 하고 문제점을 토론하여 이해를 확인하는 과정을 권장하였다.

셋째, Mathematica를 쓰는 방법을 배우는 것도 강의를 통하지 않고, 문제해결에 필요한 기술을 스스로 찾아내는 방법이 되도록 유도하였다. Mathematica는 비교적 사용이 쉽고 한 스텝 한 스텝씩 계산하여 결과를 확인하게 되므로 아무때나 필요한 함수나 처리과정을 책을 찾아서 익힐수 있다. 이렇게 해본 결과는 순서대로 Notebook에 기록되므로 나중에 정리하여 Package라는 형태의 Program으로 바꿀수 있게 된다. 이러한 점이 Mathematica를 전문으로 강의받지 않고도 습득할수 있는 이유가 된다고 본다.

네째, 자신들이 선택한 문제를 실험해보고 이해하는데 필요한 여러가지 자료와 책들을 스스로 찾아내도록 하였다. 예를 들면 우리 주위에서 보이는 Fractal을 찾을 때에 직접 사진을 찍거나 필요한 지도를 찾아 복사하는등의 과정도 스스로 이론을 공부하여 이해하는데 필수적인 과정이라고 보아 강조하였다. 특히, 강의와 실습뿐 아니라 다른 학교나 단체에서 관련부문에 대한 강연등이 있을때는 직접 가서 듣고 report를 제출하는등 문제해결을 위해 할수 있는 모든 방법을 동원하도록 유도하였다.

학생들의 반응과 교육효과

학생들은 일반적으로 새로운 수업방식에 재미있어 하였다. 처음에는 어떻게 할지를 몰라 당황하기도 하였고 토론의 기본이 부족하여 의사교환이 잘 안되기도 하였으나, 단시간에 이들을 상당히 극복하였다.

일반적으로 발표를 들으며 의문이 생겨도 질문을 하는데 어려움이 많았던 학생들에게 강사가 직접 질문을 던지는 식으로 질문하는 법을 가르쳐주고 발표자의 설명이 미흡한 경우에도 듣는 사람이 알아들을수 있는가를 물어 쌍방의 문제점을 지적해주는 방법으로 토론이 되도록 이끌었다. 이러한 과정을 거치면서 학생들은 곧 주저없이 의견을 내고 질문을 하는 토론에 익숙해졌다. 근본적으로 토론의 질이 완숙해진 것은 아니었으나 자신의 의견을 비교적 쉽게 표출하였다.

Fractal의 강의를 통하여 수학적으로 중요한 근본적인 개념들을 다루었다. 예를 들면 Hausdorff의 차원과 같은 것인데 이와 같은 개념들을 순수수학의 엄밀성을 가지고 논하려면 대학원 수준이며 이해하기도 쉽지 않다고 보이는 것이다. 그러나 강의부분에서 증명의 근본적이고 어려운 부분을 생략한 반면 직접 계산해 보고 그림을 그려보는 실습을 한 바, 학부 학생들에게 이해시키기 힘든다고 생각되던 개념도 비교적 어려움 없이 받아들여 진다는 사실을 확인하였다. 이는 뛰어난 한 두 학생의 예가 아니라 수강생 전원에게 비교적 고르게 적용됐다는 점에서 예상보다 좋은 성과였다고 본다.

또, 학생들이 사고를 통해서만 아니라 직접 그려보고 찾아보는 학습을 통하여 공부하는 동안, 강의에서 일반적으로 나타나는 지루함이나 이해가 안됨으로 강의내용을 따라오기를 포기하는 등의 현상이 없었을 뿐 아니라, 오히려 실습과의 연계로 인하여 일주일에 한시간 씩인 강의에도 더 열중하는 효과를 보였다.

앞에서 소개한, 스스로 연구과제를 찾는 방법이 초반에는 익숙하지 못하여서 전혀 idea가 없는 경우에는 가능한 몇가지 과제를 강사가 보여줌으로써 도와주었다. 이리하여 학생들이 실제로 실습해본 여러 과제들 중에는 다음과 같은 것들이 있다.

  1. 쌍곡평면에서 random walk가 실제로 어떻게 일어나나?
  2. 미분방정식의 수치적 해법을 Mathematica를 써서 계산해보는 과정
  3. 우리나라 해안의 Hausdorff차원은 얼마인가?
  4. 특정 실해석함수의 MacLaurin급수가 실제로 함수로 수렴해 들어가는 과정을 graphic을 통하여 보여준다.
  5. 여러가지 Fractal들을 그려서 그들의 성질을 직접 알아본다.
  6. 볼록한 단일폐곡선 안에서 이상적인 당구공의 궤적을 그려본다.

그 이후의 실습수업

고려대학교 수학과에서는 1991년도에 발표자가 강의를 맡은 이래 매년 한 강좌씩 Mathematica와 수학의 한 분야를 연계시키는 강의를 열어왔다. 1992년도에는 권오헌 교수가 일학년을 대상으로한 일반수학(미적분학) 강의를 Mathematica Notebook형태로 씌어진 교재([1])를 써서 강의하였다. 이 강의는 미적분의 여러 성질을 그림으로 나타내 보이는데 효과적이었으며 미분, 적분등이 PC를 써서도 가능하다는 것을 가르쳐 주었다.

1993년도에는 권오헌 교수가 Dynamical System과 Chaos의 이론을 Mathematica를 써서 강의하였다. 여기서는 1991년도의 강의와 유사한 방식을 취했다. 강의 내용도 이전에 비하여 늘었으며 교육성과도 실험적인 수준을 벗어났다고 평가된다.

1994년도에는 현재 김성운 교수가 수치해석의 여러 문제를 Mathematica와 연계하여 강의하고 있다.

결언

2000년대를 눈앞에 내다보는 지금에 대학의 수학교육은 물론, 과학 전반에 걸쳐 우리가 당면하고 있는 과제는 어떻게 지금의 교육체계를 개선하여, 이미 시작된 두뇌경쟁시대에서 살아남는가 하는 문제일 것이다. 이를 위하여 가장 시급히 해결하여야 될 문제는 우리 교육이 창의력을 기르지 못하는 약점을 안고 있다는 것이다. 이점을 보완하려면 교육이 다양화 되는 방법 밖에는 없어보인다. 즉, 대학교 수업은 물론, 가능하다면 그 이전에서 부터라도 여러가지 형태의 교육을 시도해 볼 필요가 있다고 본다.

지금까지 고려대학교가 교육 다양화로 시도한 “첨단과목” 가운데 이과대학 수학과가 실험수학으로 개설한 강좌들에 대하여 알아보았다. 이는 아직 실험단계에도 미치지 못할 정도로 미흡한 상태이며 남에게 알릴 정도로 큰 성과를 얻은 것도 아니다. 단지 다양한 교육방법을 개발하는데에서 가장 손쉽게 시도한 예를 드는 것에 지나지 않는다.

최근 세계 수학계에는 엄밀한 증명만큼이나 이론을 몸으로 체득하는것에 중요성을 두는 학자가 늘고 있다. 한 이론을 습득하는 과정은 배우는 정리를 따라 순서대로 되는것이 아니라 끊임없는 자기가설과 이의 수정으로 이루어진다. 이 사실을 볼때 너무 논리만 강조하지 말고, 쉽게 받아 들일수 있는 내용은 빨리 배울수 있도록 하는 방법이 강구되어야겠다. 고정관념에 얽매이지 않고 쉽고도 효율적인 교육이 되기 위하여는 먼저 강의부담이 줄어야 되겠지만, 새로운 교과내용과 교재개발이 시급하다고 본다.

부록 1. 교재와 참고문헌

강의에서 교재로 썼던 책과 교재로 쓸만한 책을 소개한다. 여기에 발표자가 완전한 목록을 적지 못하나, 이 책들의 참고문헌란을 참조하면 될것이다. 이중 가장 쉬운 책은 [7]이며 가장 완벽한 책은 Manual 격인 [1]이다.

[1] Mathematica: A System for Doing Mathematics by Computer, Second Edition, Stephen Wolfram (Addison-Wesley, 1991)

[2] Mahematica: A Practical Approach, Nancy Blachman (Prentice-Hall,

[3] Calculus and Mathematica, Don Brown, Horacio Porta, and Jerry Uhl (Addison-Wesley, 1991)

[4] Exploring Mathematics with Mathematica, Theodore W. Gray and Jerry Glynn (Addison-Wesley, 1991)

[5] Programming in Mathematica, Second Edition, Roman Maeder (Addison-Wesley, 1991)

[6] Mathematica in Action, Stan Wagon (W.H. Freeman, 1991)

[7] The Biginner’s Guide to Mathematica Version 2, Theodore W. Gray and Jerry Glynn (Addison-Wesley, 1992)


CategoryMathematica