Title 「パチョーリの代数学 : 手稿から刊本へ」 (数 …...「パチョーリの代数学–手稿から刊本へ」 神戸大学国際文化学研究科 三浦 伸夫
2 次関数」を学ぶための e-learning 教材の作成 - Ryukoku ...2009 年度卒業論文...
Transcript of 2 次関数」を学ぶための e-learning 教材の作成 - Ryukoku ...2009 年度卒業論文...
「2次関数」を学ぶための e-learning 教材の作成
理工学部 数理情報学科
T060063 辻本 洋平
指導教員 池田 勉
概要
著者は教育課程を履修しており、新しい数学教育の方法として e-learningシステムを活
用できないかと感じたのが、本研究を始めた動機である。単元は数学 I の「2次関数」とし
た。数学 Iで最初にぶつかる壁とばる単元ではないかと感じたためこの分野を採用した。
e-learning システムとは、情報技術を用いて行う学習管理システムである。本研究
では Moodle と呼ばれるコース管理システムを用いて数学教育コンテンツを作成した。
Moodleであれば「小テスト」や「テキストページ」の作成・管理に適しているからである。
コンテンツは、PDF形式で作成した単元の説明で学習を進め、小テストで確認すると
いう流れで構成されている。小テストは単元の理解を確認することに重点をおき、この小
テストで出題される基礎問題は確実に理解してほしいと考え、できるまで何度でも挑戦し
て、最終的には全問正解できるように最高得点が評価として表示されるように作成した。
単元の説明は「新編 数学 I(大矢 雅則・岡部 恒治 他 12名 著、数研出版)」を参考に作
成した。本文中で重要な用語を赤く色をつけたり、公式や性質を枠で囲って強調した。図
にも説明をいれて関数とグラフの関係を理解しやすくなるように工夫した。
小テストはMoodle内の小テスト作成ツールを使用した。単元の説明の例題を基に小テ
ストを作成した。問題の出題内容に合わせて穴埋め問題や多肢選択問題など、出題方法と
形式を変えて問題を作成した。そのため操作方法に対するの不安や人間が採点するわけで
はないため、途中式の確認などの複数の解答パターンのある問題などに対応しきれないこ
とに限界があったが、小テストの前に注意点を表示したことで解決できた。
単元の説明や小テストだけではコンテンツとしては魅力が薄く、関数とグラフの関係性
が説明文だけでは不十分だと感じた。この問題を改善するために各単元にあったグラフ表
示ソフトを Java Appletで作成した。キーボードで式や定義域を入力して、1次関数や 2
次関数のグラフの出力機能をつけた。この機能を取り入れたことで、体験的な学習に不向
きとされている e-learningの欠点を改善できたと思う。
本研究の目的は、Java Applet による体験的な学習ができるようになったことで可能
だ。どの単元にも対応できるものでなく計算問題などの途中式を重要とする単元などでは
不向きだと感じた。あくまで学習の補助や特定の単元のみに活用するべきだと思う。
2009年度 卒業論文
「二次関数」を学ぶための e-learning 教材の作成
理工学部 数理情報学科T060063 辻本 洋平指導教員 池田 勉
目次
1 はじめに 1
1.1 研究を始めるにあたって . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 選んだ単元について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 e-learningシステム 1
2.1 e-learningシステムとは . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Moodleとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 小テストについて 2
3.1 Moodleで作成可能な小テスト . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 小テストの表示設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.3 小テストの問題作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 作成コースの紹介 9
4.1 学習の流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 学習内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.3 グラフ表示ソフト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5 まとめ 19
1 はじめに
1.1 研究を始めるにあたって
私は教育課程を履修しており、この情報化社会で新しい数学教育の方法があるのでは
ないかと考えていた。e-learning システムは、授業などで使用することはあったが、内
容についてはよくわかっていなかった。3 回生で履修した数理情報演習という授業で
e-learningコンテンツの作成を行ったことで新しい数学教育への可能性を感じた。そのた
め本研究では龍谷大学 e-learningシステムを活用し、独自の学習コンテンツを作成するこ
とにした。
1.2 選んだ単元について
数学 I の「2次関数」とした。これは、数学で最初にぶつかる壁の一つである単元であ
り、この単元ができずに数学が嫌いになってしまう高校生多いのではないかと感じたこと
と、グラフ表示ソフトを活用するのに適していると考え、この分野を採用した。
2 e-learningシステム
2.1 e-learningシステムとは
e-learningシステムとは、情報技術を用いて行う学習管理システムである。簡単にいえ
ばパソコンやインターネット環境を使った学習活動をすることである。従来、作成者は教
材を提供しても、本当に学習者が学習を行っているのかを把握することができなかった。
また、教材の内容を修正したい場合に、再度学習者の教材を提供するために作成者には多
大なコスト、学習者には学習を開始するまでの時間が浪費されていた。しかし e-learning
ではパソコンとインターネット環境が整っていれば学習者は、いつでも、どこにいても教
材をインターネットのサーバーに保存してある教材を直接ネットワークを通じて取得し、
学習できる。プログラムや教材自体の修正もサーバー上で集中管理できるので、サーバー
のファイルを変更すれば、学習者は最新の教材を常にうけとることができる。つまり、パ
ソコンさえあれば、紙や鉛筆、指導者まで必要としないため、今までの学習形態と異なっ
ている。逆にいえば、実際に体験できるような教材を使うことができなかったり、今知り
たい質問に対しての回答がいつ返ってくるのかがわからないという欠点がある。欠点を解
1
消するには、わかりやすくあらゆる場面に対応できるコンテンツ作成を行うことが求めら
れる。e-Learningについては ([1])を参考に学習した。
2.2 Moodleとは
Moodleとは、コース管理システムや学習管理システムと呼ばれるソフトウェアである。
この管理システムを用いることで教材の掲載・編集や小テストの作成などを取り入れた
コースサイトを構築・運用できる。本研究では、このMoodleを用いて e-learningシステ
ム上のコンテンツを作成した。
3 小テストについて
3.1 Moodleで作成可能な小テスト
本研究ではMoodle内の小テスト作成という機能を使用した。特徴は、小テストの作成
者が用意した解答と、学習者が入力した解答を自動的に照合し採点することや、解答が正
しい、もしくは間違っている場合に用意したフィードバックが表示できる。さらに、小テ
ストごとの学習者の解答時間・解答内容を作成者が見ることができる。この特徴を活用す
ることで学習者の理解度を知ることができるはずである。また、作成した小テストの修正
も容易にできる。
作成可能な小テストは計算問題、説明、作文問題、組み合わせ問題、Cloze(穴埋め問
題)、多肢選択問題、記述問題、数値問題、ランダム記述組み合わせ問題、○/×問題の 10
種類である。
3.2 小テストの表示設定
小テストを作る際に行った設定は次のようなものである。
• 一般 「名称」に小テストの題名、「イントロダクション」にその小テストの前にした
いものを記入する。例えば図 1では、名称には『1.1 関数』と入力し、イントロダ
クションには『「小テストで行う上での注意」(以下省略)』と入力する。本研究で
は小テストの注意点の表示のために使用した。
2
図 1 一般の設定画面 (上)とイントロダクションの表示画面 (下)
• タイミング 小テストの公開時間や制限時間の有無、再受験までの時間を設定することができ
る。本研究では学習者が複数回受験し、理解を深めてもらいたかったのでこの設定
を使用しなかった。(図 2)
図 2 タイミングの設定画面
3
• 表示 「1ページあたりの問題数」では、小テストに 1度に表示する問題数を 1~50問
もしくは無制限に設定できる。本研究ではそれほど問題数が多くないので無制限と
した。
「問題をシャッフルする」では、作成者が作成した小テストを毎回違う並びで表
示できる。本研究では複数回受験してもらいたかったため、この設定を行い順番で
覚えて回答できなくした。
「問題内部をシャッフルする」では、多肢選択問題の選択肢、組み合わせ問題の
問題表示順を毎回違う並びで表示できる。本研究では、上記と同じ理由の対策とし
てこの設定を行った。(図 3)
図 3 表示の設定画面
• 受験 受験可能回数では、小テストの受験回数を 1~10 回もしくは無制限に設定でき
る。本研究では複数回受験可能にしたかったので無制限とした。
直近の解答内容を反映させるでは、複数回の受験が許可され、新しい受験で前回の
解答内容が反映される。これにより、複数回の受験で小テストが終了するよう設定
できる。本研究では「Yes」とした。
アダプティブモードでは、1問ずつ解答確認を行いながら受験可能にできる。本
研究では、1度で正解できなくても、複数回チャレンジして解答し、確実に力をつ
けてもらいたかったので「No」と設定した。(図 4)
図 4 受験の設定画面
4
• 評定 評価方法では、複数回の受験可能にしている場合、異なる方法で学生の最終評点
を計算することができる。最高得点・平均評点・最初の受験・最新の受験から選択
する。本研究では 1番いい点数を採用したかったので最高得点とした。
ペナルティを適用するでは、受験のアダプティブモードの設定がYesになってい
る場合、間違った回数に応じて減点することが可能である。本研究では複数回行っ
ても減点できなくしたかったので Noとした。 評点の小数点以下の桁数では、学
習者の評価が小数点以下を何桁まで表示することができる。0~3桁まで設定可能。
本研究では、より学習者のやる気をだしてもらうために 3桁まで表示できるように
した。(図 5)
図 5 評定の設定画面
小テストの設定は ([2],[3],[4])を参考に行った。
3.3 小テストの問題作成
3.3.1 計算問題
計算問題では、図 6で簡略化した図で示しているように、問題テキストとして「x1+x2
の答えはなんですか?」、正解の公式として「x1+x2」と入力してある。図 6の x1と x2
はワイルドカードと呼ばれ、小テスト実施時に値と置き換えられる変数である。変数は自
動的に生成されるわけではなく、値域を定め変数を生成し、その変数を追加することで解
答が自動的に作成される。例えば「5.3+2.6の答えはなんでしょうか?」という問題の場
合、5.3と 2.6はあらかじめ用意された数字である。数字を用意しておくと正解の公式の
解答が自動的に生成される。本研究題材である「2次関数」ではあまり活用方法がないた
め使用しなかった。
5
図 6 計算問題の簡略化した設定画面
3.3.2 説明
説明では、実際には問題ではなく、解答を要求されずに単にテキストのみを表示する。
小テスト作成時に問題群の説明と説明文をを表示するために使用することができる。本研
究では小テストの注意点の表示を、小テストの設定の一般のイントロダクションによっ
て、小テストの前に表示するようにしたので使用しなかった。
3.3.3 作文問題
作文問題では、学習者が問題に対して作文形式の答えを書き込める。そのため、レポー
ト提出などに適している。作成者からレビューされるまで採点されないので自動採点では
なく、作成者にかなりの負担がかかってしまう。問題作成は問題テキスト。フィードバッ
クを入力するだけでよい。本研究では、自動採点することを目的としているため使用しな
かった。
3.3.4 組み合わせ問題
組み合わせ問題では、問題文に対して選択肢から 1つを選ぶ問題である。問題部分を空
欄にし、答え部分のみを入力することで誤答を混ぜることができる。問題はシャッフルし
て表示できる。本研究では使用しない。(図 7)
6
図 7 組み合わせ問題のプレビュー
3.3.5 Cloze(穴埋め問題)
穴埋め問題では、図 8のように多肢選択問題、記述問題、数値問題をテキストに挿入す
ることが可能である。
多肢選択問題を埋め込むには、埋め込みたい場所に「{ 1:MULTICHOICE:」と書き、間
違った答えの前には「」̃、正しい答えの前には「˜ =」と書き、「} 」を最後に書く。記述問題を埋め込むには、埋め込みたい場所に「{ 1:SHORTANSWER:」と書き、、正し
い答えの前には「˜ =」と書き、「} 」を最後に書く。数値問題を埋め込むには、埋め込みたい場所に「{ 1:NUMERICAL:」と書き、正しい答
えの前には「˜ =」と書き、「} 」を最後に書く。複数の問題を組み合わせることができるため様々な問題を作ることが可能。本研究では主
にこの問題形式を使用した。
図 8 穴埋め問題のプレビュー
3.3.6 多肢選択問題
多肢選択問題では、2種類の問題作成が可能である。1つ目は単一解答で、図 9のよう
に 2個以上の選択肢を用意し、1つのみ解答が選択する。2つ目は複数解答方式の問題で、
1つまたは複数の解答を選択する。それぞれの解答にはプラスまたはマイナスの評点をつ
7
けることができる。もし合計得点がマイナスになった場合でも、合計得点は 0点に変更さ
れるので評価がマイナスになることはない。ただし 100 %を超える問題も作成可能なた
め注意が必要である。本研究では、単一解答を使用した。(図 9)
図 9 多肢選択問題のプレビュー
3.3.7 記述問題
記述問題では、作文問題に自動採点機能がついた。問題に対する答えが一言一句すべて
一致しなければ正解とみなされない。大文字小文字の区別をすることも設定可能だが、数
学は大文字小文字でまったく違う意味となってしまうため、区別しなくてはならない。答
えは複数用意が可能で、あらゆる可能性を考えて複数回答を作成してもいいがキリがない
ので問題文で解答方法の形式を指定したほうがよい。フィードバックなどでヒントなどを
与えるといいかもしれない。本研究では複数回答できないようにしたかったので使用しな
かった。
3.3.8 数値問題
数値問題では、学習者からは記述問題と同じに見える。記述問題と違う点は、連続した
範囲の答えを設定することができる点である。例えば、正解が 10の場合エラー範囲を 5
とすると 5~15の間の答えが正解となる。記述問題同様、複数の解答が用意でき、細かい
フィードバックができる。本研究では使用しない。
3.3.9 ランダム記述組み合わせ問題
ランダム記述組み合わせ問題では、記述問題が 2問以上存在する場合作成できる。記述
問題をランダムに組み合わせ問題として出題される。本研究では記述問題を作成しなかっ
8
たので使用しない。
3.3.10 ○/×問題
○/×問題では、○か×を選択させる問題である。正解を○もしくは×に設定する。○
と×それぞれの解答に対してフィードバックが可能。本研究では最も基本的な (例:y =
3x2 + 5xは 2次関数であるか?)問題に使用した。
4 作成コースの紹介
本研究で作成した e-learningコンテンツは図 10のような構成で作成した。第 1章から
第 3章に分け、学習指導要領([5])に記載されている順番で作成した。pdfファイルのテ
キストは教科書([6],[7])を参考に作成をすすめた。視覚的なインパクトを重視して重要
な部分を赤文字で表示したり、括弧で囲んだり、図も挿入した。(図 10)
図 10 コンテンツの全体図
4.1 学習の流れ
本研究では、TEXで作成した pdfファイルテキストを教科書とし、問題を解くために
必要な公式などの知識を学んでいく。例題などを取り入れており、それを参照し学習を進
めていき小テストに取り組むという流れで学習していく。小テストは教科書の例題を元に
作成した基礎問題でできており、確実に理解してほしいと考え、できるまで何度でも挑戦
9
して、最終的には全問正解できるように複数回行えるようにしている。
4.2 学習内容
中学の授業では具体的な例を通して、比例や反比例、1次関数や関数 y = ax2 について
問題を解いていく勉強を行っているはずである。特に関数 y = ax2 については、特徴や値
の変化の割合などについて理解する程度で「2次関数」という言葉は登場しない。
そこで簡単な関数や具体的な例を使って、「2 次関数とグラフ」では 2 次関数を y =
ax2 + bx + cの関数概念の理解できるようになってもらいたい。「2次関数のグラフ」で
は、2次関数の値の変化を考察して最大値・最小値を求められるようにしたい。「2次不等
式」は「2次関数のグラフ」で学んだ内容を利用して 2次関数の y = ax2 + bx + cのグラ
フと x軸との位置関係から、2次不等式の解の求め、その意味も理解できてほしい。
4.2.1 2次関数とグラフ
第 1章と第 2章で構成している。
第 1 章では関数とグラフの関係について学んでいく。この章は 4 つの節から作られて
いる。「関数の定義」ではどのようなものが関数であるか、関数の示し方を学ぶ。「関数
f(x)」では、関数の式を f(x) という形で示すことができることや f(3) などの計算方法
を学ぶ。「関数のグラフ」では、座標平面についてや値の範囲を定義域・値域ということ、
関数のグラフについて学ぶ。「関数の最大値・最小値」では前節で学んだ定義域や値域を
利用して関数の最大値や最小値の定め方を学ぶ。
第 2 章では 2 次関数とグラフの関係について学んでいく。この章は 5 つの節から作ら
れている。「2次関数 y = ax2 のグラフ」では中学で学習した 2次関数 y = ax2 のグラフ
を復習する。「2 次関数 y = ax2 + qのグラフ」では、y = ax2 と y = ax2 + qの 2つの関
数を比べてどのように頂点が変化したかを学ぶ。「2 次関数 y = a(x − p)2 のグラフ」で
は、y = ax2 と y = a(x − p)2 の 2つの関数を比べてどのように軸が変化したかを学ぶ。
「2 次関数 y = a(x − p)2 + q のグラフ」では、y = ax2 と y = a(x − p)2 + q の 2つの関
数を比べてどのように頂点や軸が変化したかを学ぶ。「2 次関数 y = ax2 + bx + cのグラ
フ」では、y = ax2 + bx + cの平方完成を行い、頂点や軸を求める方法やその放物線につ
いて学ぶ。
10
4.2.2 2次関数のグラフ
第 3章と第 4章で構成している。
第 3 章では 2 次関数の値の変化に注目して学習していく。この章は 3 つの節から作ら
れている。「2次関数の最大・最小」では、2次関数 y = a(x − p)2 + q の最大・最小につ
いて、aの符号に注目し最大値・最小値の有無について考える。「2 次関数の値域と最大・
最小」では、「2次関数の最大・最小」のように 2次関数の定義域が実数全体ではなく、定
義域が制限されている場合の最大・最小について学ぶ。「最大・最小の応用」では、2次関
数の最大・最小を応用して解決できる文章問題について学ぶ。
第 4章ではこれまで学習してきた頂点の座標、左右対称の軸などの特徴を調べ、これら
をもとにして最大値・最小値を求めていたものを、ここでは、逆にそれらの特徴を利用し
て 2 次関数を求めていく。この章は 4つの節から作られている。「最大, 最小から関数を
決定」では、最大値か最小値がわかっている場合に、それを利用して y = ax2 + bx + cあ
るいは y = a(x − p)2 + q の式の求め方を学ぶ。「放物線の軸や頂点から関数を決定」で
は、軸や頂点がわかっている場合に、それを利用して y = a(x − p)2 + q の式の求め方を
学ぶ。「放物線上の 3 点から関数を決定」では、3点の座標を y = ax2 + bx + cに代入し、
連立 3元 1次方程式の解き方を学ぶ。「身の回りにある関数の決定」では、第 4章で学ん
だ内容を使った文章問題について学ぶ。
4.2.3 2次不等式
第 5章と第 6章で構成している。
第 5章では 2次関数のグラフと位置関係について学んでいく。この章は 2つの節から作
られている。「2次関数のグラフとx軸の共通点の座標」では、2 次関数 y = ax2 + bx + c
のグラフが x軸の共有点をもつとき、共有点の x座標は、y = 0となる xの値、すなわち
2 次方程式 ax2 + bx + c = 0の解であることを学ぶ。「2次関数のグラフと x 軸の位置関
係」では、2次関数のグラフと x 軸の共有点の個数や接点の座標の求め方を学ぶ。
第 6章では 2次関数を利用して、2次不等式の解き方を学んでいく。この章は 4つの節
から作られている。「2次不等式と 2次関数」では、2次関数の値の符号を調べ、2次不等
式との関係を学ぶ。「2次不等式の解き方」では、2次不等式の解き方を学ぶ。「解の範囲
11
か特別な 2次不等式」では、2次関数のグラフが x軸と 2点で交わらない場合について、
2次関数の値の符号について学ぶ。「2次不等式の解き方のまとめ」では、第 6章で学習し
た内容をまとめた表について学ぶ。
4.3 グラフ表示ソフト
4.3.1 グラフ表示ソフトの作成にあたって
本研究で取り上げた 2 次関数という単元は、関数をグラフで描くことが重要だと考え
た。しかし、Moodleにはグラフを作成できるような機能は付属していなかったためグラ
フ作成ソフトを作ろうと考えた。
学習者がグラフ作成ソフトを使う際、ダウンロードなどの面倒な作業をしなくてもすぐ
に使用できるように、Java Appletで作成した。作成の際に([8])を参考にした。
4.3.2 グラフ表示ソフトの説明
グラフ表示をする際に必要最低限の入力で済むためにはどのようにすればと考えたと
き、式と定義域の入力できるようにすることと、グラフが表示できるように必要だと考
えた。
式を読み込む式は一般式と定め、y =(A)x2 +(B)x +(C)の A・B・Cを入力する
ようにし、定義域の指定として (D) < x < (E)の D・Eを入力する形にした。A~Eま
では読み込むことができるように「ActionListener」使い入力機能を持たせ、確認のため
に「JLabel」を使い入力した内容を出力できるようにした。
次に、グラフを作成する機能を作った。これは、「drawPolyline」を用いた。「drawPoly-
line」は Graphicdクラスの描画メソッドで折れ線を描くメソッドである。
void drawPolyline(int[] xPoints,int[] yPoints,int n)
nで頂点の数を、各点を x座標の配列 xPointsと y座標の配列 yPointsで指定することで
折れ線を描く。1次関数などであれば直線でも可能だったが、本研究では 2次関数を表示
したかったので細かく xPoints と yPoints を細かくとり折れ線を描くことでより滑らか
な曲線に見えるようにした。しかし、折れ線なので限界はあり、急な曲線になるとどうし
てもガタガタな曲線になってしまう。
作成したプログラムを以下に示す。
import java.applet.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;
12
public class Graph1 extends Applet implements ActionListener{Graph area; //描画域のパネルJTextField hField1,hField2,hField3,hField4,hField5;//Enter(Return)キーの入力を受けるJLabel ex; //入力に関する説明JLabel siki1; //siki1は入力された式JLabel siki2; //siki2は入力された定義域double a,b,c,d,f; //a,b,cは式の係数、d,fは定義域double dmax=-24.999999,fmax=24.999999;//定義域が入力されなかった場合double g;
public Graph1(){// ボタンを生成、リスナーを設定
ex = new JLabel();JField1 = new JTextField(10); //入力フィールドの作成/* JField2~5以降も同様の作業なので省略 */
siki1 = new JLabel(); //オブジェクトの生成siki2 = new JLabel();
hField1.addActionListener(this);/* JField2~5以降も同様の作業なので省略 */
//ボタンを置くパネルを作り、ボタンを配置JPanel g1 = new JPanel();g1.add(new JLabel("一般式 y=ax^2+bx+c に
あたる 定数 a,b,cを入力してください。(ただし a≠ 0)"));
JPanel g2 = new JPanel();g2.setLayout(new FlowLayout());g2.setBackground(Color.white);g2.add(new JLabel("y = ")); g2.add(hField1);g2.add(new JLabel("x^2 + ")); g2.add(hField2);g2.add(new JLabel("x + ")); g2.add(hField3);
JPanel g3 = new JPanel();g3.setLayout(new FlowLayout());g3.add(new JLabel("入力された式は")); g3.add(siki1);
JPanel g4 = new JPanel();g4.setLayout(new FlowLayout());g4.setBackground(Color.white);g4.add(hField4); g4.add(new JLabel(" < x < "));g4.add(hField5);
JPanel g5 = new JPanel();g5.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));g5.add(new JLabel("定義域は")); g5.add(siki2);
//描画 (びょうが)域を生成area = new Graph();area.setBackground(Color.white);area.setSize(500,500);
//描画域とボタンを置いたパネルを配置JPanel g6 = new JPanel();g6.setLayout(new BorderLayout());g6.add(area, BorderLayout.NORTH);
13
g6.add(g1, BorderLayout.CENTER);g6.add(g2, BorderLayout.SOUTH);
JPanel g7 = new JPanel();g7.setLayout(new BorderLayout());g7.add(g3, BorderLayout.NORTH);g7.add(g4, BorderLayout.CENTER);g7.add(g5, BorderLayout.SOUTH);
setLayout(new BorderLayout());add(g6, BorderLayout.NORTH);add(g7, BorderLayout.SOUTH);
}public void actionPerformed(ActionEvent e){// a,b,cが入力されていない場合 0.0が変数に代入される
try{a = Double.parseDouble(hField1.getText());
}catch(NumberFormatException error){ a = 0.0;}/* b,cの変数も同じように設定するため省略 */
try{d = Double.parseDouble(hField4.getText());
}catch(NumberFormatException error){ d = dmax;}
try{f = Double.parseDouble(hField5.getText());
}catch(NumberFormatException error){ f = fmax;}
doCalc(); repaint();
}
void doCalc(){/* 式の判定条件省略 */siki1.setText("y = "+a+"x^2+"+b+"x+"+c);
/* 定義域に間違いがあった場合交換 */if(d>f){
g=d; d=f; f=g;}
/* 定義域の判定条件省略 */siki2.setText(d+"<x<"+f);
}
// y = f(x) のグラフを描く.原点は常にパネルの中央class Graph extends JPanel{
private int width; // グラフを書く範囲の幅private int height; // グラフを書く範囲の高さprivate double xmax; // X軸の範囲private double ymax; // Y軸の範囲// 引数ありのコンストラクタGraph(int width, int height){
this.width = width;this.height = height;setRange(25.0, 25.0);setBackground(Color.white);
14
setPreferredSize(new Dimension(width, height));}
// 引数なしのコンストラクタGraph(){
this(500, 500);}
// X軸と Y軸の範囲を指定void setRange(double xmax, double ymax){this.xmax = xmax;this.ymax = ymax;}
// グラフィックス描画メソッドprotected void paintComponent(Graphics g){
// 親の paintComponentを実行(背景色での塗りつぶし)super.paintComponent(g);g.setColor(Color.yellow);for(int i=0;i<=50;i++){
int j=i*10;g.drawLine(0, j, width, j);g.drawLine(j, 0, j, height);
}// X軸と Y軸を描くg.setColor(Color.black);g.drawLine(0, height/2, width-1, height/2);g.drawLine(width/2, 0, width/2, height-1);
// 矢印を描くg.drawLine(width-7, height/2-5, width, height/2);g.drawLine(width-7, height/2+5, width, height/2);g.drawLine(width/2-5, 7, width/2, 0);g.drawLine(width/2+5, 7, width/2, 0);
// 軸と原点の場所を描くg.drawString("x",width-6,height/2+15);g.drawString("y",width/2+15,8);g.drawString("0",width/2+5,height/2+12);
// 描画の可能範囲に定義域を変換するif(d<dmax){
d=-25.0;}if(f>fmax){
f=25.0;}
int k1=toPanelX(d),k2=toPanelX(f);int k,k3 = k2-k1;
// グラフ全体のための配列int[] x1 = new int[width];int[] y1 = new int[width];
// 範囲を設定したグラフのための配列int[] xp = new int[k3];int[] yp = new int[k3];
// 画面上全体の関数にあったグラフの点を配列に格納する
15
for(int i = 0; i < width; i++){double x = toTrueX(i);
double y = f(x,a,b,c);x1[i] = i; y1[i] = toPanelY(y);}// 定義域で指定された範囲の配列を格納するk = 0;for(int j = k1; j < k2; j++){
if(k < k3){xp[k] = x1[j]; yp[k] = y1[j];k++;
}}g.setColor(Color.red);g.drawPolyline(xp, yp, xp.length);
}
// 画面上の x軸に合わせて、x座標の数値を変更double toTrueX(int panelX){
return xmax * (double)(panelX - width/2) / (width/2);}
// 入力された x座標の数値を、画面上の x軸に合わせて変更するint toPanelX(double trueX){
return (int)(trueX / xmax * (width/2)) + width/2;}
// 画面上の y軸に合わせて、y座標の数値を変更int toPanelY(double trueY){
return (int)(-trueY / ymax * (height/2)) + height/2;}
// 2次関数の一般式double f(double x,double a,double b,double c){
return a*x*x+b*x+c;}
}}
16
4.3.3 グラフ作成ソフトの設置htmlで Java Appletを表示させるには
<applet height="height" width="width" codebase="applet.classの保存場所"code="applet.class" archive="applet.jar"></applet>
宣言すると作成した Appletを呼び出せる。「applet.class」には、作成したプログラムのコンパイルできた class名を書く。「width」
「height」には Appletを表示したい横幅と高さを書く。「codebase」には classファイルの保存場所を書く。「applet.jar」には、作成した JARファイル名を入力する。JARファイルに関しては『4.3.4 JARファイルについて』を参照。表示させるのに参考にしたのは([4],[8])である。
e-learningの設定は次のように行った。
<center><p> </p><p> グラフ表示ソフト </p> //タイトル<p><applet height="500" width="650"
codebase="Graph1.classの保存場所"code="Graph1.class" archive="Graph1.jar">
</applet> </p> // グラフ表示ソフトの表示<table border="1"> <tbody> //外枠<tr></tr></tbody>
</table><p></p></center>
17
表示は図 11のようになる。
図 11 グラフ表示ソフトのプレビュー
本研究の e-learningコンテンツには図 12のように、式の内容の違い・定義域の有無を変更して教科書の内容に応じたプログラムを掲載している。
図 12 グラフ表示ソフトの様々な例
18
4.3.4 JARファイルについて
Javaでプログラムを組むと多くの classファイルが作成される。複数のプログラムを管理する e-learning ではいくつかのファイルをまとめて配布する必要がある。そこで本研究では JARファイルを使用することにした。
JARは、複数のクラスファイルを 1つにまとめて圧縮するためのファイル形式で Javaアーカイブツール jarを使って作成する。jarでまとめた classファイルを、展開せずそのまま実行することができる。このようにして classファイルをまとめると、Javaで作ったプログラムを配布するのに便利である。JARについて参考にしたのは([8],[9])である。
5 まとめ
e-learningはコンテンツ作りは質問や疑問点への対応ができないことを考え、解答しやすいように作成したことで、より丁寧でわかりやすい説明になっていると思う。グラフ表
示を作成したことで関数とグラフの関係が教科書で見るよりも結びついたと思う。
本研究の目的は「新しい数学教育の方法として e-learningシステムを活用できないか」というものであったが、Java Appletによる体験的な学習ができるようになったことで可能だと感じた。ただ、どの単元にも対応できるものでなく計算問題など途中式が重要とな
るような単元では不向きであると結論付けた。e-learningシステムは活用方法を研究していけばもっと広まり、様々な学習者に対応できるような可能性を感じたが、現時点では、
あくまで学習の補助や基礎の復習として活用するべきだ。
19
参考文献
[1] http://satt.jp/dev/e-learning.htm[2] https://r-els.media.ryukoku.ac.jp/help.php?file=index.html[3] 志賀誠、<方程式・式と証明>を学ぶための e-learning コンテンツの作成、龍谷大学理工学部 数理情報学科 2008年度卒業論文
[4] 立木郁美、数列の e-learning 教材、龍谷大学 理工学部 数理情報学科 2008 年度卒業論文
[5] 文部科学省、高等学校学習指導要領 数学編 理数編、2007、自供出版株式会社[6] 大矢正則・岡部常治・井原俊輔・塩田哲治・大畑多津雄・大藪弥・工藤昭子・中村八束・本橋信義・八木克己・吉田正章・坂本正彦・舘麻由美・西牧守、新編 数学 I 、数研出版
[7] チャート研究所、チャート式 数学 I+ A、数研出版[8] 立木秀樹・有賀妙子、すべての人のための Java プログラミング 第 2 版 Java for
Everyone – second edition –、共立出版[9] http://www.fk.urban.ne.jp/home/kishida/kouza/old/javajar.html
20