大学などの高等教育機関において「情報処理教育」が実施されるようになって,既に20年近くになる。具体的にどのような教育が必要で,これをどの様に実施してよいのか,あるいは,どのような教育を行うべきなのか,それぞれの機関でこれまで色々と模索されているようである。こうした状況にあって,「情報処理教育」の一環としての「プログラミング教育」も,かなりの重みを占めているのが現状ではなかろうか。このようなことから,ここでは,最近の義務教育を含めての情報処理に関連した教育環境と,これまでのプログラミング教育と演習の経験から,私見を述べることにする。
情報処理の教育が,如何に我々の身近なところで行なわれ始めたかを示すものとして,中学校におけるコンピュータ教育を紹介しよう。昨年の3月15日付けの文部省告示第25号によって,中学校学習指導要領が改正され,その内容は平成5年4月1日から施行されることになっている。改正は様々な点に及んでいることと思われるが,その方面の知識が無いので具体的にここに掲げることは出来ない。しかし,コンピュータ関係の教育に着目すると「技術・家庭」の教科で教育することが示されている。当該教科の学習領域は,AからKまでの11領域あって,そのうち6番目の領域Fに位置づけられ「情報基礎」として今回の改正で新たに設けられたものである。この領域の授業の目標は,「コンピュータの操作等を通して,その役割と機能について理解させ,情報を適切に活用する基礎的な能力を養う。」となっている。このまま大学などの学習要覧に記載することができるような教育目標である。ただし,残念なことにこの領域Fは,生徒全員が履修するいわゆる必修領域でなく,選択履修領域となっている。次に学習すべき内容が示されているので,参考までに原文のまま示すことにする。
(1)コンピュータの仕組みについて,次の事項を指導する。
ア コンピュータシステムの基本的な構成と各部の機能を知ること。
イ ソフトウェアの機能を知ること。
(2)コンピュータの基本操作と簡単なプログラムの作成について,次の事項を指導する。
ア コンピュータの基本操作ができること。
イ プログラムの機能を知り,簡単なプログラムの作成ができること。
(3)コンピュータの利用について,次の事項を指導する。
ア ソフトウェアを用いて,情報を活用することができること。
イ コンピュータの利用分野を知ること。
(4)日常生活や産業の中で情報やコンピュータが果たしている役割と影響について考えさせる。
となっており,特に(1)のアについては,入力,演算,制御,記憶及び出力を取り上げるように指示があり,また(3)については,日本語ワードプロセッサ,データベース,表計算,図形処理などのソフトを取り上げ,情報の選択,整理,処理,表現などを行わせるよう指導要領に明記されている。さらに技術・家庭の解説書では,教育現場の実情からBASIC言語によるプログラミングを推奨している。
授業時間数,学生の理解度,専門科目への応用力などの点で,大学などの学生と中学生とを比較すること自体意味は無いが,今の文系の単科大学で広く実施されている「情報処理教育」の,教育目標と目標だけはほぼ一致しているのではなかろうか。したがって,この内容をそのまま忠実に実践されるとすれば,現場の教師にとってはかなりの負担となるが,5年後には義務教育で基礎的な情報処理教育を履修した学生が大学等に入学してくると期待できる。その時点で,受け入れの高等教育機関の現行の情報処理関連のカリキュラムを再検討する必要に迫られよう。個人的には,むしろその様な環境が惹起されることを期待している。
昭和51年に専修学校制度が創設されてから15年になる。平成元年度の調査によれば,全国で3,254校,学生数741,682人であり専修学校専門課程(いわゆる専門学校)の入学者は短期大学のそれを越えている。これは専門学校が,工業,医療関係から文科,教養関係まで多岐にわたって存在しているからであろう。専修学校は文部省の提唱する生涯学習の一翼を担う機関と期待されているが,現実には21歳以下の生徒が90.1%を占める。また大学等に在籍して居る者は,0.8%と意外に少ない。専修学校のカリキュラムは相当充実しており,特に情報処理を含む工業関係の高等課程では,授業時間数も多く(夜間でも年間450時間)同時に2つの学校に在学することは非常に困難なのである。専修学校における情報処理教育は,もっぱら工業関係で,しかもコンピュータ教育を専門に掲げた専修学校でのみ行なわれている。京都コンピュータ学院もその1つであるが,ここでは大学の情報工学科または情報科学科に近い専門家養成のカリキュラムを編成しており,特に実践的教育に重点が置かれている。文部省の調査によれば,在学生の要望の第一は,実験・実習のための設備機器の充実である。一方卒業者は,どのように考えているのであろうか。専修学校で学んだ事が「役立っている」と考えている者は約80%に達している。また就職先で高専,短大卒相当の処遇を受けていることなどから考えると,就職指導もかなり適切に行われていることを物語っている。将来は,工業関係で情報処理関連の学科以外の専修学校においても,情報処理教育の必要性が生じて来るものと思われる。
大学における情報処理教育については,大別して2通りある。一方は情報学部,工学部,理学部などでの情報関係のエキスパートを養成する教育についてであり,他方は文科系を中心とした学生に情報処理教育を行うものである。前者はさておき,後者はさらに,教養課程での「一般情報処理教育」と,それぞれの学部の専門課程で必要とする情報処理教育とに分けられよう。筆者が所属する部局は,主として後者の教育に利用されており,年間の学生利用者数は6,000名を越えている。さてこのような一般情報処理教育は,ある面では専門教育より困難な課題を含んでいると言える。例えばカリキュラムについても,理,工系は勿論のこと,生物,人文,社会系など分野を間わずコンピュータ・リテラシー(コンピュータについての知識とそれを使う能力を持っていること)としての視点を持つものでなくてはならないが必ずしも現状では満足のいくものではない。教師にとっても学生にとっても,何のために情報処理教育が必要なのかが,明確に理解されていないのではなかろうか。我々人間の活動には記号的な見方によって,事象を把握し,またシステムとして実現する必要性が生じ,社会の進歩と共に増していくものである。ここで記号は情報であり,生成,蓄積,加工,伝達,利用するもので,これを処理するツールとしてコンピュータを利用するのである。一般情報処理入門教育=プログラミングと言うほど短絡的では無いにしても,プログラミング教育は適切な計算機科学の講義を伴うことによって初めて有意義となる。物理,科学に実験が付随しているように,情報処理にも,実習を伴ったプログラミング教育が必須であろう。ここで実習のウエイトをプログラミングにおくか,単なるコンピュータの利用におくかは,対象学生の質と内容によって勘案すべきことである。
さて,非専門家の学生に対するプログラミング演習は,どの様にあるべきなのであろうか。ここに,これまでの経験から留意すべき点について具体的にまとめてみよう。
(1)コンピュータの使用について
最初からプログラミング言語の教育ではなく,電子メール,電子掲示板などの使い方から入る方が,計算機に対する恐怖心,抵抗感などを取り除くことができるのではなかろうか。かつては,コンピュータゲームからとの意見もあったが,ゲームでは同一のキーを叩くことが多いので教育はおろか,キーボード入力の練習にさえもならない。パソコンなどを使い慣れた学生は,現時点で殆ど入学してきていなく,入学して初めてコンピュータと出会う学生が大多数なのである。
(2)単位の取り扱い
演習の単位は卒業必須単位に含めるのが望ましい。単なる増加単位であれば,学生にとって受講するメリットは薄く,少し複雑になれば直ちにあきらめてしまう学生も出てくる。特に文系の学生にこの傾向が強い。一つの工夫として,演習を含まない一般情報処理の講義ならば,文系の学生には理系の科目履修の扱いをし,逆に,理系の学生に対しては,文系の科目を履修した扱いにするなどの配慮をすれば,学生にとっても履修するメリットがあると考えられる。
(3)演習科目の配当方法
基礎的な演習科目の配当は,学年が下がるほど望ましく,逆に4年生への配当は避けるのが賢明であろう。その理由は,理系の学生にあっては専門科目の履修に忙しく,文系の学生は就職活動などのため,高学年になるほど途中での放棄率が高くなる。一方演習科目の配当を考えるとき,例えば同じ時間数を割り当てるとするなら。
(a)1コマ×通年,
(b)2コマ×半期,
の2通りが考えられる。これは,明らかに(b)の方が授業効果が高い。ただし,授業担当者にも学生にも負担は大きく,現実には科目の配当が困難な場合が多いと思われる。
(4)受講学生の内訳
総合大学にあっては,演習科目の1クラス内に各学部の学生が混在するのはやむを得ない。この様な環境では,一般的に理系の学生が文系の学生を支援してくれるなどの利点も在るが,教師側では”教えにくい”現象が生じることになる。しかしながら,この問題は演習の進捗にあまり重要な障害とはならない。
(5)演習の担当教官
TSSまたはパソコンを使っての演習では,1端末/1学生を前提として,1クラスは最大40人程度までであろう。これ以上の人数のクラスでは,何等かの授業支援機器を必要とする。1クラス60人程度で授業支援機器を使えるなら,演習指導は1名で十分行える。さらにバタビア方式を採用出来れば,1クラスの受講学生をさらに増やすことも可能であろう。また受講学生が少ないクラスで,かつバタビア方式が採れるなら,演習期間を短縮することも可能であろう。
(6)レポート(プログラミング結果の提出)
ある程度演習が進んだら,プログラムした結果はプリントして提出させるのが良い。担当教師は,プログラムを添削して次週に返却するぐらいの労力を惜しんではならない。また習熟したらレポートもクラスの共通ファイルか,担当教師のファイルの中に提出させるようにする。これは,学生にとっては非常に楽であるが,実際に採点する側にとっては,かなりの負担になる。
実際にはどのような形態でプログラミング演習を実施しているか,実例をあげてみよう。京都大学における一般情報処理教育の一端としての入門的なプログラミング演習は,教養課程の1,2学年に配当しており,「情報科学実習」の科目名で,。
前期:60人/クラス × 4クラス
後期:60人/クラス × 4クラス
の合計8クラス,480人が受講している。学生の関心は高く,毎年約2,000人の受講希望があるので,抽選によって受講者を決定している状況である。この解決策としてクラスの増設,端末装置(パソコン)の倍増を計画している。履修学生の合格率は80~90%で,できる限り既述の方式を採用した講義の形態を採っている。
このほか筆者の所属する教育センターでも,文系の学生を対象とした一般情報処理教育を実施しており,プログラミング演習も行っている。演習では短いプログラムであっても,プログラム編集に要する時間が当然長い。これを計算機接続時間(セッションタイム)とCPU使用時間との割合で見たものを図1に示す。また接続時間と成績の関係を図2に示す。統計を採ったクラスの受講学生は80名で,その内合格者は57名である。成績の評価は,プログラミングリストと実行結果をレポートとして提出させたものに対して評価する形式を採った。
評価の根拠は提出レポートの数(作成したプログラムの数)を根拠としなくて,各課題に対するプログラミングの内容によって採点した。
これらの図1,2の相関図から,合格者(60点以上)は2つのグループに大別されることが判る。もし,セッションタイムの制限(実際は自由に使える時間が少ないか,演習期間が短い場合が相当する)があれば,受講学生の10%は合格しないかもしれない。
以上のことから,プログラミング教育の効果を上げるには,最も優秀な学生の消費する時間の約4倍のセッションタイムが必要である。これを担当教師側では,重複指導で補い,コンピュータシステム側では端末の台数,コンピュータを自由に使える環境の整備で補っていかなければならないことになる。
プログラミング教育に関連して,自己の作り出す情報が他の人々や社会に及ぼす影響とともに,自己の行動が他人の作り上げた情報に及ぼす影響,プログラム側から見ればセキュリティ問題を十分認識させる必要があろう。これは,情報モラルの育成に必要欠くべからざる重要な事項なので義務教育の段階から教育していかなければならない。
他方大学における一般情報処理教育の抱える問題点は,大型計算機センターなどの研究利用者のそれとは異なっている。これは,研究利用者にあっては利用者そのものが当初からコンピュータの使用を渇望しているのに対して,一般情報処理教育の演習ではコンピュータを必ずしも使いたくない学生(利用者)にも計算機を使わせなければならない,という点から出発しているからではなかろうか。この問題の解決は簡単にはいかないが,コンピュータを設置するセンターでは,初めての学生にも使い易い(ユーザフレンドリ)コンピュータシステムとして構成し,授業担当教師側では,労力を惜しまないで手をかけた教育(パワーエデュケーション)以外に方法は見当たらないように思われる。
これは,大学だけでなく中学,専修学校についても全く同じことが言えるのではなかろうか。
(1)文部省:中学校学習指導要領(平成元年3月),編集発行 大蔵省印刷局
(2)津止登,浅見,河野:中学校新教育課程の解説(技術・家庭),第一去規,1989.
(3)松尾知則:専修学校で学ぶ人,教育と情報,No.384,385,1990.
(4)藤井,八村:情報処理教育センター5ヶ年の推移,京都大学情報処理教育センター広報,No11,1984.
(5)藤井,八村他:情報処理教育センターにおける教育利用状況の推移,情報処理学会第30回大会7Q-2,1984.
(6)文部省科学研究補助金研究結果報告書:大学等における一般情報処理教育の推進体制の整備に関する総合的研究(研究代表者:長谷川),1990.