(平成7年度総合情報処理センター技術開発報告原稿)
(この報告は総合情報処理センター広報誌「HIROIN」No.8 (平成9年1月発行)に掲載)
プログラム作成によるコンピュータ実習用教材の開発
教養部 高 橋 信 介 ( 物理学 )
理学部 小 西 栄 一 ( 情報科学 )
1. はじめに
コンピュータを利用した授業では、ここ数年間のコンピュータの目覚しい技術開発により、その利用法の選択肢がかなり増えてきました。平成 7 年 4 月には本学の情報処理実習室の環境が、大型計算機を利用した教育システムからワークステーションやパソコンを利用した教育システムへと更新されました。情報処理実習室のさまざまな機能は日英ワープロ、表計算、画像、音声、電子メール、インターネットと進み、授業の中にもいち早く導入されています。また、いわゆる教養教育のカリキュラムも改正され、コンピュータを利用した授業はプログラミング中心のものからさまざまなアプリケーションソフトの使い方へと移りつつあります。
このような変化の中で、敢えて FORTRAN によるプログラミングの教材づくりを試みました。講師が授業をおこない学生がその授業を受けるというあたりまえのことを目的に作成しました。コンピュータ初心者の受講学生が自ら考えてプログラムをつくり、そのプログラムでコンピュータを動かしてみることを学生自身に体験させていただきたい。 以下にこの教材の概要と説明、サンプル、利用例、 使用した感想、プログラムの項目一覧などを紹介します。
2. 教材開発の概要
平成7年度総合情報処理センター研究開発費から 40 万円の配分を受けて教材づくりをおこないました。配分を受けた予算は情報処理実習室内のパソコン端末と同じような環境を研究室内につくるために、パソコン及びソフト ( OS、通信ソフト、MS-Office 等 ) の購入につかわれました。また、環境構築に不足するプリンタ、増設メモリ、ネットワーク接続用インターフェイス及び消耗品やコピー費等は講座費より補填しました。
担当者の担当分担は次のとおりです。サンプルプログラムの作成実行及び練習問題の追加は小西、高橋が分担しておこない、実際の授業での利用は高橋が担当し、教養部開講の情報科学(一般教育科目、自然分野)の授業で平成7年度後期におこないました。また、教材全体の配置とまとめは主に小西が担当しました。
教材研究の内容は次の通りです。これまでに担当した授業等で蓄積してきた FORTRAN プログラムの例題を整理編集し、プログラミングを中心とするコンピュータ実習用教材の開発をおこないました。教材には10週分の授業の分量を盛り込み、さらに練習問題を追加しました。教材は MS-WORD ver7.0 で書かれており、A4 サイズで 50 ページ、例題、練習問題を含めて 79 のプログラムから構成されています。この分量はコンピュータ初心者の学生が授業時間外に平均して授業時間の2倍程度の復習をすることで消化できることを想定しました。
3. 教材の構成
3.1. 概要と各回について
概要は次のような10項目から構成さています。各項目に付いて簡単に説明します。
第1回 ワークステーションへの接続から終了まで。
第2回 テキストエディタとプログラムの実行と印刷。
第3回 練習のための例題。
第4回 変数宣言と繰り返し。
第5回 コンピュータによる条件判断と最大値の求めかた。
第6回 表記法(書式)と並び替え(大きい順)。
第7回 2次元配列変数を使って簡単な表計算をする。
第8回 偏差値を計算してみよう。
第9回 ファイルからデータを入力する。
第10回 データ検索。
3.1.1. 第1回 ワークステーションへの接続から終了まで
パソコンに電源を入れるところから、電源を切るまでを説明しています。パソコン教育システムにログインして、さらにワークステーションの教育システムにログインする方法を簡単に説明しています。ワークステーションに接続してからは、パスワードの変更、 mnews によるニュースを読む、mule で電子メールを出す、mail でメールを読む、日本語の入力などを扱っています。ここで電子メールを扱うのは授業の出欠、質問及び回答に使用するためです。
3.1.2. 第2回 テキストエディタとプログラムの実行と印刷
FORTRANによる四則演算を例題に、エディタの mule を用いて、プログラムの入力、編集、保存、コンパイルと実行および印刷の方法等を実習します。プログラム例の左端に付けてある4桁の行番号は、プログラムの説明や引用のために付けたものですので、プログラムの入力の際には省くように指示して下さい。またプログラムの各行の右端に簡単な説明を付けました。
3.1.3. 第3回 練習のための例題
これまでの知識だけでできる練習問題を10題用意しました。どれも単純な問題です。問題の文章のすぐ後ろに解答をつけてあります。複利による利子計算も取り上げました。問題だけを編集して配布するのもよいし、解答も合わせて配布するのも良いと思います。あれこれ理屈を解説するよりは、はじめのうちはすぐ解答を見て慣れることが上達の方法の一つと思います。
3.1.4. 第4回 変数宣言と繰り返し
配列変数と繰り返し処理を取り上げています。人間は不得意だがコンピュータが得意なものに「大量記憶」と「繰り返し処理」があります。ひとはデータを10個加算することは黙ってやるが、100個となると大人しくやる人は少ない。しかしコンピュータは10個でも、1000 個でも同じであることを学生に強調していただきたい。初心者には、SUM = SUM + A という実行文がわかりずらいようです。この実行文の前と後ろで SUM の内容を表示する WRITE文を加えさせると、理解の助けになります。練習問題では級数計算、階乗計算、テーラ展開計算及び倍精度計算による数値の表現できる桁数の限界について用意しました。
3.1.5. 第5回 コンピュータによる条件判断と最大値の求めかた
IF THEN ELSE ENDIF を用いた条件判断による場合分けの練習です。関係演算子と論理演算子による場合分けを取り上げています。例題では、年齢を入力して20歳以上か未満かで表示するメッセージを分けています。また、このIF文を用いて大小比較をDOループで繰り返しおこなって、最大値を求める例題を用意しました。ここまでの知識だけでもかなりのプログラム作りを試してみることができます。他にもFORTRANの便利なことがたくさんありますが、FORTRANそのものを目的としていない場合はこの程度で良いのではないかと思います。もうちょっと進むために、二次元配列変数とファイルからの入力について後半に扱います。
3.1.6. 第6回 表記法(書式)と並び替え(大きい順)
第5回の最大値を求めるプログラムを発展させ大きい順に並び替えるようにします。このあたりからわからなくなる学生が増えるようです。学部学科によらず同じくらいの割合で理解に時間がかかるようです。練習問題では条件に合う場合の数(例えば、成績が「優」の人数)を求める問題を加えてあります。
3.1.7. 第7回 2次元配列変数を使って簡単な表計算をする
前回までに扱った1科目の50人の成績データに対し、ここで12科目50人のデータを扱うことを想定し、まず6科目5人の成績を例題とします。二次元配列変数の練習です。「I行J列のデータ」という2パラメータ変数の表現は学生には初めは苦手のようです。
3.1.8. 第8回 偏差値を計算してみよう
第7回の練習問題として13題用意しました。この中の一部では、偏差値を求めるまでを平均点、分散、標準偏差及び偏差値の順に誘導する小問にわかれています。また、数学で用いる正方行列の積も扱っていますが、この解答例のプログラムにはわざと誤りを入れてあります。誤りを入れてあることに対して不快感を強く示す学生が若干いましたが、考えようともせずにただ入力する学生と、逆に誤りを見付けてやろうとする学生とのために、あちこちに入れました。単なるミスプリントのような誤りではなく、アルゴリズムを考えた上での工夫が必要です。
3.1.9. 第9回 ファイルからデータを入力する
さらに大量のデータを扱うために、ファイルからデータを読み込む練習をします。12科目50人の成績のデータをあらかじめ電子メールなどで学生宛に送信しておきます。ここではファイルへの出力は省略しています。初心者は入力ファイルへ出力してしまい、必要なファイルを消してしまうことがありましたので省略しました。
3.1.10. 第10回 データ検索
12科目50人の成績のデータを用いて成績処理の検索プログラムを作るために例題と練習問題を用意しました。検索の際の入力と出力ではできるだけ「対話形式」を意識してつくることが必要です。例えば、成績データのなかに無い学籍番号や科目名を検索するような場合には適切なメッセージを表示し再度入力するようにする。自分を含め使う人がどのような入力ミスをするのかを予想して、そのミスに対応できるようにすることがポイントです。
ここでは、「プログラムを作る側」と「そのプログラムを使う側」を学生に意識させていただきたい。これまでは「作った本人が使う」作業でしたが、ここでは他の学生が作った「対話形式」のプログラムをお互いに使ってもらい、あれこれと感想を言い合い、それを取り入れて対話形式の場合分けを増やす努力を期待しています。
3.2. 教材のサンプル
(準備中)
3.2.1. サンプル その1
3.2.2. サンプル その2
3.2.3. サンプル その3
4. 使用法の例
教養部で開講してきた一般教育科目「情報科学」の授業で使用しました。前述の通り情報処理実習室の教育システムの環境は大幅に更新されたため、それまで大型計算機(ACOS)の教育システムで利用していた例題等をワークステーションを利用する教育システム用に修正変更して授業に用いることになりました。
4.1. 授業前の準備
この教材は講師が授業をするための教材であり、学生が授業を受けるための教材であり、授業後に学生が自習するための教材です。この教材をそのまま学生に配布するだけでは済みません。まず、学生に配布するために教材の再編集が必要になります。受講する学生を念頭にいれて、毎回の授業での学生の反応を考慮しながら、プリントで配布するもの、電子メールであらかじめデータやプログラムを送信しておくもの、レポート課題にするもの等を分けて準備しておく必要があります。プログラムをメールで送信する際に完全なプログラムを送信しておくと、授業での解説のあとほぼ同時に全員でそのプログラムをコンパイルと実行を行なうとコンピュータがしばらく反応しなくなり大変困ります。したがってプログラム例の一部だけを送信しておき、授業中にプリントを参考に完成させるようにしました。
4.2. 授業中
授業中にパソコンの前に座っていると、パソコンに触れずにじっと解説を聞くことは学生にとって苦痛のようです。講師が解説しているときにプリントの例題を入力しはじめる学生が多いようです。全体に対しての説明はなるべく簡単に短時間にすむませ、できるだけ長い時間学生がコンピュータに接するよう心がけました。あとの時間は、実習の手伝いをしていただいていた当時の情報処理センター技術補佐員の方とともに実習室内をまわり、学生からの質問を受けて個人指導をおこないました。
はじめの1か月間に良く見掛けることが、コンピュータからのエラーメッセージが表示されていたり、トラブルが発生しコンピュータが忍し黙っていても学生もいっしょにじっとだまっていることです。気軽に質問できる授業雰囲気をつくることを心がけました。また学期末になっても時々見掛けるのですが、コンパイル時にエラーが無く、実行してエラーが出ないとそれですべてできあがりと思い込んでいることです。処理されたものが正しいものかどうかの検算をしない学生が多いです。起こり得ない数値を表示していても何とも思わないでいます。
4.3. レポート課題の出題
慣れさせることを目的としてほぼ毎週のレポート提出の要求を心がけました。学期の前半のレポート課題は、解答例付き練習問題の中から指定或は複数個選択させ、後半は解答例の無いものを中心に指定しました。さらに学期末には4週間くらいかけて、大まかなテーマを出題しておいて、各自が自分で考えた処理をプログラムすることを最終レポートの課題としました。
4.4. レポートの提出法と評価
プログラムリストと実行結果をプリンタ用紙に印刷して提出させました。電子メールや教育システムの中のファイル転送も利用しました。レポート課題を出題する以上は評価することになります。受け取る度に受け取り確認の電子メールを出し、数日して評価をまた電子メールで送信します。提出されたレポートに誤りがあれば、なん度でも再提出を要求します。再提出を要求する際は誤りの場所を指摘しコメントを加えます。電子メールで書くには効率的に適切でない場合は電子メールで学生を呼び出しました。学期末にはレポート受理の可否の一覧表を授業中に回覧して再確認しました。
5. この教材を使用した感想
つぎに受講学生の声と担当者の声を紹介します。毎学期に学期の中頃と期末試験の時に感想や要望などを書いてもらいましたので、いくつかをここで紹介します。
5.1. 受講学生の声
- はじめは、キーボードに触れるのも恐かった。
- はじめのうちは、全員ができるまで待っていてくれたので、大変助かりました。
- 授業が始まった頃、一番遅い人にペースを合わせて授業をすすめるのは納得がいきません。遅い人はもっと努力するべきです。ぼくはひまでした。
- なんで毎週レポート提出なのですか? 学期末に筆記試験もやり、放課後の情報処理センターで授業時間の3倍もやって、それでたったの2単位では割りがあわない!
- 1回欠席すると次週の授業についていけない。
- 90分の授業時間が短く感じました。毎週楽しみな授業でした。
- たった1文字まちがえただけでもコンピュータは動かない。コンピュータは頭がわるい!
- プリントの説明をもっと詳しく書いて欲しい。
- 思いどおりにならないときコンピュータが壊れているのではないかと思ったことがある。
- エラーメッセージの意味がわからない。
- プログラム例に間違いを入れないで欲しい。どこかに間違いがあると思うと読む気がしない。
- 練習問題を全部やりました。おかげでキーボードをたたく速さがかなり早くなりました。
- キーボードをたたく速さだけははやくなりました。目がわるくなりました。
- 最終レポートで作った長いプログラムが完成し、おもい通りに動いたときは、うれしかった。
- この授業でおぼえたことは将来役にたつだろうか?
- FORRANは将来役にたちますか?
- この授業で単位をもらえたら、情報処理の資格試験に合格できますか?
- ただただつらかった。これで終りです。
- 授業時間外に情報処理実習室で質問できずに困った。
- 夜9時近くに、情報処理センターの実習室から帰る時、なんでこんなことをしているんだろうと思った。必修科目でもなく、教養の単位も終わっているのに。
- 放課後の情報処理センターで友達と相談しながらできたので楽しかった。
- 情報処理センターの人にいつも助けていただきました。ありがとうございました。
5.2. 授業の一担当者の独り言
- いやはやたいへんでした。いや、ほんと!
- 毎学期300枚前後の履修希望カードに途方に暮れた。前年度の授業内容を参考に授業の進め方を大講義室で1時間程説明しても希望者数の減る気配がない。止むなくその場で出席している学生の中から抽選した約90人に翌日までのレポート提出を要求すると70人くらいしか提出しない。これはどうしたことか? さらに、そのレポートを読んでみると昨日の説明を全く聞いていないと思われるものが15枚くらいもある。毎学期この傾向だ! これはいったいどうしたことか???
- 学部指定がないためすべての学部から出席していたので、授業を進めるペースに苦労した。
- 最終レポートの作業では他学部の学生との交流も一部にありました。
- 授業時間外に授業時間の4倍以上の自習が必要になった学生がいた。文系理系を問わず同じ傾向があり、これでは多すぎたのだろうか? この学生、他の教科はだいじょうぶなのだろうか?
- この学生たちが社会に出る頃は、コンピュータの環境はどんどんかわり、いまここで体験させていることはどれくらい役にたつのだろうか? この変化に対応できることとは何だろうか?
- 授業が終盤になると、学生がつくるプログラムが 4ページ 5ページと増えてくると質問が多くなり、毎週がデバッグばかりになって困りはてました。私は虫取り係ではないはずなのに!
- 40人から50人でスタートし学期末まで受講し単位を出した学生は30人くらい。上に書いた学生の感想はほぼ最後まで頑張った学生のものだが、やめて行った学生の声を聞いてみたい。
- 学生が情報処理センターの職員の方にかなり頻繁に質問をしたのにもかかわらず、職員の方が丁寧に対応していただいていたことを、学生から後に聞かされ大変感謝しております。H.M.さん、ありがとうございました。実習室には相談係の常設が必須であることを痛感しました。
- 根気よく実習を手伝って頂いた当時の情報処理センターの歴代技術補佐員のみなさんに感謝します。H.M.さん、T.N.さん、M.W.さんありがとう。この場をかりて御礼申し上げます。
6. おわりに
プログラム言語を教えるための教材というよりは、「コンピュータ初心者の学生が自分で作成したプログラムでコンピュータを動かしてみる」ための教材をつくりました。いわゆる「教養教育の授業」で使うことを想定していました。しかし、同じ教材であっても授業の目的や、授業の進め方や例題の取り上げ方によっては異なる利用法があります。試しに、この教材を理学部の数値解析物理学の授業で使ってみました。この時はこの教材の第7回目までの部分を再編集し2回に分けて配布し、ログインから FORTRAN言語の導入までを、3回の授業でおこなうことができました。この教材がさまざまに再編集されて利用されることがあれば良いと願っています。 なほ、この教材をUNIX上に置く予定でいます。
7. 付録(プログラム例の一覧)
(準備中)
[back]
最終編集日(Feb.24,1997)