情報学部 菅沼ホーム

教育におけるホームページの利用

1.はじめに

  黒板を使用した従来型の講義には,いくつかの問題が存在する.ノートをとることができない学生が増えたことにもより,黒板にできるだけ綺麗な字で,かつ,ノートに書き写しやすいような形(順番に,本などをそのまま写したような形)で書く必要がある.また,言葉で説明すれば良いようなことも,必ず板書しておく必要がある.

  この点を解決する一つの方法として,必要な部分を印刷して配布する方法がある.しかし,学生規模が 100~200 人にもなると,必要なコピー枚数は膨大になり,また,欠席した学生の資料はすべて無駄になってしまう.

  プロジェクタを使用するのも一つの方法である.しかし,プロジェクタにもいくつかの問題がある.部屋をある程度暗くしなければならないため,プロジェクタの内容をノートにとることが難しく,また,黒板との併用ができなくなる.さらに,プログラミングのようにある程度の量を一度に表示しなければならないときは,字が小さくなり,教室の後ろからはほとんど見えなくなってしまう.

  そこで,平成11年に知能情報学科から情報システム学科に改組されてからは,徐々に,ホームページを利用した講義に移行している.各学生は,自分のパソコンから対応する講義のホームページを見ながら講義を受けることになるが,教員が,「ホームページのどこを見よ」,「次は,どこへ移動せよ」等,パソコンの操作に関する指示を常に出さなければならないとすれば,かなり問題である.指定されたページに移動できない学生もいるであろうし,また,各学生が実際に目的のページを見ているか否かを確認する手段もない.そこで,教員が表示させたいページを,教員の操作だけで,各学生のパソコンに自動的に表示できることが望ましい.

  その他,従来の講義方法ではもの足らない面も多くある.講義の途中で簡単な演習問題を課すことは,学生の理解の程度を把握するためにも,また,学生を講義に集中させるといった面からも,重要である.しかし,問題用紙を配って回収するといった方法では,正しく理解している学生の数を実時間で把握するようなことは困難である.

  プログラミングの講義の場合,演習問題を出し,その結果をレポートとして提出させることを常にやってきたが,単に提出することだけを重要視し,答えが正しいか否かには全く無頓着な学生が多く見られた.レポートを各学生から直接受け取り,答えが正しくなければ再提出させるといった方法を採用すればこの問題を解決できるが,100~200 人規模の学生を対象とした場合,非現実的な方法である.正しいか否かの判断や,正しく解答した学生の記録をコンピュータに任せることが可能であれば,教員・学生の双方にとって好ましいものとなるであろう.

  学生が,やむを得ず講義を欠席する場合もあるであろう.また,講義の早さについていけない学生や,逆に,講義の進行速度が遅すぎると感じている学生もあるであろう.このような場合,講義内容と全く同様のもの(シラバスといったレベルのものではなく,読めば理解できるような説明まで含んだもの)が,ホームページ等にあれば,復習,予習,さらには,自分のペースに会わせた勉強が可能になるはずである.

  以上の点を考慮したシステムを開発し,担当する講義「プログラミング入門」,「プログラミング及び演習1」(平成16年度開講),「情報処理資格試験対策講座1」(平成16年度開講),及び,「Webデザイン」(平成17年度開講)すべてを,このシステムを利用して行っている.ここでは,このシステムの概要とその問題点等について報告する.

2. 講義支援システム

2.1 講義資料の表示

  上に示すのが,講師用の画面である.図の左上のフレームにおいて選択されたページ(図では,「 for 文」)が,右側のフレームに表示される.

  講義が始まると,学生は菅沼のホームページに入り,対応する科目の「講義資料」を見ることになる.「講義資料」の中に入ると,最初,下に示すような学籍番号を入力するページが表示される.学籍番号を入力し,送信ボタンをクリックすると,学生のパソコンの画面には,講師用の画面(上図)における右側の画面だけが表示される.以後は,講師が選択した画面が,すべての学生のパソコンに表示され,学生はその画面を見ながら講義を受けることになる.

  表示される各ファイルには,Java アプレットが組み込まれており,Java アプレットは,現在表示すべきページをサーバ側に読みに行く.もし,表示すべきページと現在表示されているページが異なっているときは,表示すべきページを再読込する.この動作は,10秒毎に繰り返される.講義を行う上では,より短い時間の方が望ましいが,時間を短くすればするほどサーバの負荷(後述)が増えることになる.そのため,講義を行う上で支障のないできる限り長い時間(10秒)に設定してある.この Java アプレットの動作により,教師が表示画面を変えると,学生側のパソコンの画面も変わることになる(最大,10 秒の遅れはある).また,学生が他のページを見ようとしても強制的に戻されることになる(この制限は解除することも可能).

  以上述べた方法では,表示するすべてのファイルに Java アプレットを挿入しておかなければならず,各ページの作成が多少面倒になる.ページ制御を他の部分に任せ,任意のホームページを表示させることができるようなシステムを作成することも可能である.そのようにすれば,表示資料を HTML ファイルとして作成しさえすれば,同等の機能を利用することができる.

  このシステムの最大の問題は,サーバの負荷である.100 人に対して講義を行えば,100 台のパソコンが 10 秒毎にサーバにアクセスすることになる.そのため,サーバにある程度の能力がないと,プロセス数の増加によりサーバが正常に動作しなくなる可能性がある.実際,現在のサーバを使用する前は,10秒に設定した場合でさえ,数十人以上を対象とした講義は実行できない状況になった.現在使用しているサーバは,Pentium Ⅳ 1.4 GHz,メモリ 1 GB の Linux システムである.100~200 人程度の講義を行っても,サーバは正常に動作しているが,複数の講義を同時に行う,人数をさらに増加させる,アクセス時間を 10 秒より短くする等,その限界については未調査である.

  講義資料を前もって用意しておいても,そこに含まれる内容以外のことを話したい場合も存在する.そのような場合は,原則的には,黒板を利用することになる.このシステムは,音声等を他の方法で転送すれば,遠隔講義にも使用できる.また,学内であれば,複数の教室で同時に講義を行うことも可能である.そのような場合は,黒板を利用できないので,下図に示すような白板を使うことになる.この白板では,絵はマウス,文字はキーボードから入力できる.なお,講義資料には無いページを参照したいときには,ホームページアドレスさえ入力すれば,そのページを学生全員のパソコンに表示させることができるシステムも準備されている.

  講義中に,学生の理解度を確認するため,随時演習問題をやらせることも重要である.表示されるページには演習問題が含まれる場合もある(演習問題の種類等については,次節で述べる).学生は,表示されている演習問題を解き,その結果を送信することになる.答えが誤っていればメッセージが出力され,正しければ,学籍番号,演習問題番号,正解時間がサーバに送信される.講師は,右図に示すような画面によって,誰が正解したかを随時観測でき(正解した学生の学籍番号と人数が表示される),演習問題を解けないでいる学生を個別に指導できる.ただし,数十人以上を対象とした講義では,個別指導は困難であり,正解者の割合がある程度以上になったところで次に進まざるを得ないのが現状である.なお,右図に示したシステムは,宿題等で課した演習問題の提出状況を確認するためにも利用可能である.

  現在のシステムでは,表示されているページの特定の場所を指しながら(ポインティングしながら)説明することが不可能である.そのため,現在は,各表示資料を作成の際に,説明の対象としたい場所の背景色を前もって変更しておく,行番号を付ける,下線を引く等の処理をしておき,口頭で指示するといった方法で対処している.しかし,ポインティングの問題を解決する方法がないわけではない.一つの方法は,サーバ側のマウスの位置を読み込み,それを学生の画面に表示する方法である.しかし,そのようにすると,
といった問題が生じる.

  あと一つは,ダイナミックなホームページを作成する方法である.この方法を使用すれば,教師や学生にとって多少使いにくい面もあるが,サーバの負荷の増加にはならない.たとえば,マウスをある特定の場所(言葉で指示しやすいような場所)に持っていくと,説明したい場所が指示されるようなページを作成する方法である.下図では,左上に,「紫陽花」,「花の説明」,及び,「葉の説明」といったものを用意しておき,マウスが各文字列内に入ると,異なる場所を指示するようにしたものである.下図は,マウスを「葉の説明」の箇所に持っていったときの結果である(葉を説明する文字列の背景色が変わり,かつ,葉の部分を丸で囲んでいる).

2.2 演習問題

  演習問題としては,様々な形式のものが存在する.原則的には,そのすべてに対して,コンピュータで採点までを行わせたいところであるが,現実的には不可能である.実際,「Webデザイン」においては,講義中に行う演習問題に対しては,すべてコンピュータで行わせるが,レポートに関しては,メールに添付して送信させる方法をとるつもりである.この節では,現在自分のホームページの様々な場所で使用している演習問題の形式について述べる.

  講義中に行っている演習問題として最も多く利用しているのが,下図に示すような「穴埋」式と「選択」式である.そのほとんどは,Java アプレットとして作成してある.このタイプの演習問題の特徴は作成しやすいことにある.一般的な仕様を定め,項目だけ入力すれば,演習問題を生成してくれるようなシステムも容易に作成可能である.

  ただし,そのままでは,何も考えず他人の答えをそのまま写して送信する学生が多く出てくる可能性がある.そのため,以下の演習問題でも同様であるが,数値等をできる限り乱数を使って決め,学生毎に異なる問題になるように作成してある.しかし,この方法にも限界があり,問題によってはあまり意味がないようなものになっている.

  乱数の使用は,問題作成の容易さにも大きな影響を与える.たとえば,下図に示すような問題の場合について考えてみる.下図は平方根を含んだ計算であり,答はマークシート式になっている.平方根を HTML では表現しにくいため,問題を図として表現しなければならないが,乱数を使用しなければ,問題が固定されるため,単に準備した図を貼り付けるだけで済む.しかし,数値に乱数を使用すると,空白の数等が問題毎に異なり,可能性があるすべての図を用意しておく訳にはいかない.そのため,下図に示した問題では,問題の部分を Java を使用して描画しており,問題作成がかなり面倒になっている.

  プログラムを書くような問題も特殊である.ソースプログラムから,その正しさをコンピュータによって自動判断させることは不可能に近い.そのため,ソースプログラムを送信させ,それをサーバ側でコンパイル,実行し,サーバ側に用意してあるすべての入力データに対して正しい出力が得られたとき,そのプログラムを正しいと判断している.下図は,プログラムを作成する問題に対するページである.下の空白部分にプログラムを貼り付け送信することになる.なお,この種のページは,HTML と JavaScript を使用して書かれている.

  この方法にもいくつかの問題がある.一つは,プログラムの読みやすさの問題である.コンピュータによる判定では,字下げの適切さ,コメントの使用等,プログラムの読みやすさ,美しさなどに関しては,チェックすることができない.また,同じ問題に関して様々な方法でプログラミング可能である.たとえば,一般的に,関数を使って書くべきプログラムに対して,関数を使用せず,入出力の点からは全く同じ内容のプログラムで代用することも可能である.ある程度の工夫の余地はあるが,出題者の目的を完全に満たすことは困難である.そのため,演習問題の一部に対して,送信されたソースプログラムを,自動的に教員にメールとして送信するようにしている.

  「グラフを描け」といった問題も困難である.簡単な方法は,与えられた数式に対応するグラフを,いくつかの候補から選択する問題に変更してしまうことである.しかし,それでは,かなり意味が異なってしまう.下図は,グラフを描く問題を表している.表示されているグラフ用紙の部分( Java アプレット)でマウスを左クリックすると点が表示される,複数の点を生成すると,距離的に近い点同志が結ばれ,グラフが作成されていく.下図は,5 点を生成した場合の結果を表している(問題の答えにはなっていない).グラフを描き終わり,「OK」ボタンをクリックすると,正しいグラフと描かれたグラフとの距離(複数点で調べる)から,その正誤を判断する.

  最後に,特殊ではあるが,「情報処理資格試験対策講座1」で使用しているタイピングソフトについて紹介しておく(下図).これは,日本語のタイピングソフトであり,Java で書かれている.上2行(1行目がひらがな,2行目が漢字仮名交じり)に表示された内容を,一番下の行にタイピングしていく.

  対応するひらがなに対する正しいローマ字を入力すると,ローマ字が自動的にひらがなに変換される.たとえば,「し」に対しては,「shi」や「si」を許しているように,任意のローマ字表記が可能である.また,「s」の次に「z」を入力した場合のようにローマ字表記にないアルファベットや,与えられた文章と一致しないひらがなに変換されるアルファベットが入力されると無視され,その先には進めなくなる.さらに,入力されたひらがな列が与えられた文章の漢字1文字に対応すると,自動的に漢字に変換される.たとえば,下図の例では,「りく」という入力が終了すると,「りく」という文字列が「陸」という漢字に自動的に変換される.そのため,仮名漢字変換のための操作を行う必要はない.

  終了キーを押すと,1分あたりに入力したひらがな文字数が表示され,自分のタイピング速度を知ることができる.なお,この結果はファイルにも保存される.

2.3 自学・自習

  すべての講義に対して,講義資料とは別に,内容的に全く同じ自分で勉強するための資料が用意されている.講義資料と異なるのは,講義資料が表示するために細かなページに分解されているのに比べ,自学・自習用の資料はある程度の大きさにまとまっている点である.現在の講義資料では,他のページに移動しようとしても,自動的に講師が制御しているページに戻ってしまう.これは,先に述べたように,制御機構が各ページに埋め込まれているからである.この方式を変えれば,講義資料を,そのまま,自学・自習用に使用することができる.そのような方法を採用しなかった理由は以下に示す通りである.

  一つは,使いやすさの問題である.自学・自習するには,別の形式の方が使いやすいのではないかと考えたからである.しかし,現時点では,使いやすさについて十分検討していない状況である.

  他の一つは,理想的な個別指導ができるシステムを目指しているためである.ホームページを使用した学習の利点は,「何時でも」,「どこでも」,また,「自分にあったペースで学習できる」点にある.しかし,究極的には,コンピュータが学習者のレベルに合わせた指導を行ってくれることが望ましい.そのためには,コンピュータが,演習問題の実行結果を見ながら,各人の現在の理解度等を認識し(学習者のモデルを作成し),その人のレベルに合わせた教育計画をたてることができる必要がある.たとえば,ある演習問題を行った結果を見ることによって(現在のシステムのように,正しい結果だけを見るわけではない),その演習問題を解くことができない原因を見つけ,その点を理解できるようになれる方向に導く,といったことが可能なシステムを目指したい.残念ながら,この点に関しても,ほとんど手つかずの状態で現在に至っている.

3.まとめと問題点

  現在のシステムを使い始めてから数年たつが,成績等の面で,著しい教育効果が現れたと報告できないことが残念である.しかし,講義のペースについてこれなかった学生が自分のペースでやっていたり,また,講義の先を進んでいるような学生が見られることは事実である.これらの点は,従来型の講義では見られなかった点である.また,システムを作成するのには時間がかかるが,毎回の講義における準備,レポート処理等に必要な時間はかなり少なくなる.今後,学生の反応を見ながら,より優れたシステムに修正していきたい.

  現在のシステムにおける大きな課題は,システムの統合・一般化である.今まで,講義支援システムという言葉を使い,そのようなシステムが存在するように話を進めてきた.しかし,以上述べたことは一つのシステム内で行われているわけではない.実際には,各講義毎に全く別々に作られている(同じ考え方に基づいてはいるが).したがって,システム作成に時間がかかると共に,HTML,XML,Java,JavaScript,C++ 等に対するある程度の知識が必要となる.また,講義で使用した結果等を参考にしながら,常にホームページの更新を行っていく必要があり,ホームページの維持にも非常に時間がかかる.

  理想的には,HTML 等の言語に関する知識はなくても,必要なデータさえ入力すれば,2 節に述べたような機能を発揮できるシステムであることが望ましい.さらに,出欠,レポート提出,質問等の管理も行えるようにすれば,かなり使いやすく,かつ,役に立つシステムになるのではないだろうか.もし,以上述べたようなシステムを希望される先生方が多いようであれば,すぐにでも開発に着手したい.

  やはり,今後の最も重要な課題は,自学・自習のためのページである.先に述べたように,学習者のレベルを認識し,そのレベルに合わせた教育ができるようなシステムを目指し,努力していくつもりである.

情報学部 菅沼ホーム