計算機入門教育の改善
―実演システムと構造的FORTRANの試作―
吉澤正 井内稔
(昭和51年8月31日受理)
Some Improvements in Introductory Computer Courses
-Realizing a demonstration system and a structured
FORTRAN-TadashiYOSHIZAWA MinoruIUCHI Abstract Some improvements in introductory computer courses at Department of Computer Science are reported. Two main improvements are as follows:astructured FORTRAN was imp・ 1emented and used in student’s exercises in order to train the students to describe algorithms definitely;ademonstration system with TSS terminals and with televisions in the class room was realized. The aims and effects of the improvements are briefly discussed.
1.はじめに
計算機教育がわが国の大学で多少なりとも行われる ようになって15年,本学に計算機科学科が設置されて からも7回目の新入生を迎えている。最近ではいくつ かの大学に教育用計算機センターも設置され,計算機 科学科あるいは情報工学科という専門学科に限らず, ほとんどの分野の学生に程度の違いはあれ計算機教育 が実施されている。教育用設備をはじめとし多くの制 約の存在する環境の中で計算機教育を進めなけれぽな らないという事情は依然として残ってはいるが,幸い なことによりよい教育を実現しうる可能性は着実に増 加している。 ここでは,計算機科学科1年次生を対象とする計算 機入門第一の講義,およびそれに関連する演習を主と する計算機教育をとりあげ,その改善のための二,三 の試みを報告する。主要な試みは次の二点である:教 室に端末装置を持ち込み,講義中の実演を可能にする;構造的FORTRANを試作して学生実習に使用す
る。 以下,2節で改善のねらいを,3節で実演および実 習の実施方式を述べたあと,4節で構造的FORTRAN の仕様とその具現化について報告する。5節で改善の 効果を学生のアンケートや実習報告での感想から評価 し,最後に今後の問題点に触れる。2.改善のねらい
ここに報告する改善の試みは,直接あるいは間接に 多様な効果を目標としたものであるが,そのもっとも 直接的なねらいを集約すれぽ, ・意欲的勉学態度を引き出すこと,および ・算法の明確な記述に通じる文章力を養うこと といえよう。 意欲的,あるいは積極的主体的な勉学態度が,何を するにしても,基本的に必要なことはいうまでもなく, それがあってはじめてわれわれの願う発想の豊かさや さらには創造的工夫を生み出すことができよう。とこ ろが計算機教育では,下手をすると,かえって学生の 意欲を減退させるような障害が多く,その障害をとり 除くというある意味では消極的にきこえるような改善 から始めなければならないことがある。例えぽ,一つ の課題を完成させるまでの学生の時間の大部分が,プ ログラム入力の準備や,プログラミング言語あるいは 制御用言語のつまらない複雑さに起因する誤りの修正に,費やされてしまうことなどがあげられる。また, 一括処理方式によるターソアラウソドタイム,すなわ ち,処理を申し込んでから結果の返却されるまでの時 間の長さも重要なマイナス要因である。幸いに,計 算機科学科では高澤嘉光助教授の開発になるミニコソ FACOM U−200によるTSS(時分割方式)があり, そのシステムの下で会話的に使えるコソパイラ言語の BASIC,アセソブラ言語のFASP−Y,および秀れた たファイル編集機能が用意されている1) ・2)。そのTSS の会話型使用によつて,学生は前述のような障害から ある程度解放され,本質的な工夫や学習にその努力を 集中できるようになりつつある。教育における会話 型システムの有効性は専門家の間ではほぼ定説であ り3)・4),経費上の制約も最近ではかなり改善されてい る。 次に,ねらいの第二点としてあげた文章力の養成に 言及しておこう。ここ数年,構造的プログラミングと か5)・6}・7),大規模ソフトウェアの開発過程全体の構造 的管理8)が問題となっている。それに伴って算法ある いは処理手順の構造的記述能力,そして一般的基本能 力としての明確な文章を書く能力が,プログラミング に携わる人に強く要求されるようになっている。これ
まで数多く出版されているFORTRANなどのプログ
ラミング入門書を見ても,簡単な問題の記述から入出 力の設計,流れ図,プログラムリスト,プログラムの 簡単な説明という書き方が多く,算法の構造的記述と いう観点からは不満足なものが多い。ここでいう算法 の構造的記述とは算法における個々の処理の制御の構 造を,まず大きな枠組を把握して次に細かい手順を規 定してゆくという,いわゆるtop−down的な明確さで, しかもある程度の形式に従って,記述することをい う。その一例として文献1)が挙げられる。われわれの 実習では,実習報告書において,算法の記述をはじめ として,問題の記述や感想によって文章を書く機会を 多くするように心掛けている。わが国の教育において は学生に作文をさせる機会が少なく,大学で改めて作 文教育をやり直さなけれぽならない現状である。ところで,従来のFORTRANのような言語は上記
の算法の構造的記述の態度をかえって阻害するよう な欠点を持っている。一方,その普及の状況から FORTRANをまったく教えないわけにもいかない。そこで,既存のFORTRANを拡張して,算述の記述
の教育に適合した機能を持つ構造的FORTRANと呼
ぶ言語を準備したわけである。 3.実演および実習方式 計算機科学では,1年次生を対象とする計算機入門 第一という通年4単位の講義とやはり通年の計算機科 学演習が設けられている。後者は1976年度新設の科目 で,原則として計算機実習と数学関係演習が交互に行 われている。その計算機実習の分は講義との密接な関 連を持つように考えられている。講義と実習の詳細な 内容は省略するが,1年間の前半はBASICによる整 数計算と非数値的算法主体の講義(14回)とFACOMU−200TSSによる実習(7回)が行われ,後半は
FORTRANによる数値算法主体の講i義(14回)と
FACOM 230−45 Sによる実習(6∼7回の予定)が 行われている。テキストには文献9)・1°}を用いている。 さて,講義方式に対する改善として,昨年9月から 特別講義室(計算機科学科2階)へ3階の計算機室か らケーブルを敷き,前述のミニコソに接続されている 端末装置(タイプライター)を台車に乗せて講義室に 運べぽミニコソのTSSを使用して講義中に実演がで きるようにした。今年度はテレビカメラと4台の専用 テレビを設置し,教官が端末装置を操作する様子や処 理の結果をテレビを通して約60人の学生が見られるよ うにした。昨年度はテレビが無く,端末装置で印字さ れた結果をオーバーヘッドプロジェクタ(OHP)用のトランスペアレソシー(TP)に複写してOHPで表
示していた。 講義では,その回のテーマについて問題の記述,算 法の記述,プログラム作成等を黒板あるいはOHPを 使って説明し,そのあと実演に入る。端末装置からの プログラムファイルの作成(キーをたたいて直接計算 機にプログラムが送られる),その実行と修正といっ たサイクルを繰り返して見せる。テレビに写し出され る結果の記録についての討論の後,プログラムの内容 的あるいは効率的問題点,文法的疑問,さらには発展 的課題についてプログラムを修正して再びその場でや ってみせる。そのほかに,学生が実習で作成したプロ グラムの良い例悪い例をとりあげて,上記のようにや ってみることも多い。 前期の実習は,講義中と同じTSSを用いて行われ る。したがって講義中の実演が効果的であると期待さ れる。ただし,現在FACOM U−200は2システムあ るが,端末装置は一方に2台,他方に1台の合計3台 しかなく,60人の受講者に対して十分とはいえない。 その対策として,実習課題(大きいテーマを与え内容 的には自由課題とすることもある)を一週間前には与 え,各学生は実習で処理するプログラムをオフライソのタイプライタで穿孔した紙テープを持参して実習を はじめるようにしている。TSSのファイル編集機能 が秀れているので,オフライソでは穿孔に誤りがあっ ても同じテープのあとに修正情報を付けるだけでよ く,オフライソでの紙テープの複写はさせない。
昨年度の後半のFORTRANの実習は, FACOM
230−45Sを使い,処理系には常駐式コソパイラ
FAST11)12}を主に,プログラムの入力にはマークカー ドを用いて行った。その実習の一部に次に述べる構造的FORTRANの使用を試みた。
4. 構造的FORTRANの仕様と具現化
ここでいう構造的FORTRANは既存のFORT−
RAN11)・12)に構造的プログラミソグの見地からいくつ かの機能を追加したものである。構造的プログラミン グ言語という場合には,プログラム内での制御構造を IF−・FI文IF(論理式)文
FI はじめとして,データ構造,およびそこで許容される 構造を持つデータに対する演算機能も重要である。しかし,ここではとりあえずFORTRANの制御文関係
の拡張をとりあげた。なお,構造的FORTRANの考
えはいくつかの文献に見られるが13)・14)・15)・16},ここで はとくtlc Higginsi5)を参考にしながら,計算機科学科 のシステムに適合するように工夫した。 4.1拡張機能の仕様 採用した拡張機能は次の6個の文から成り,二種に 類別される。 (1) (ll) DO−CASE ELSE 文DO CASE 整数型変数 CASE 整定数 文 ESAC ESAC OD
ELSE DO−OD文 DO−WHILE文 DO WHILE ( 論理式 ) 文 OD DO−UNTIL文 DO UNTIL ( 論理式 ) 文 OD DO−FOREVER文 DO FOREVE 文 OD 図一1構造的FORTRANにおける拡張機能の構i文図式 (矢印の無い線は右方向へ進むものとする) 選択用制御文
IF−FI文
DO−CASE文
反復用制御文DO−OD文
DO 一 WHILE文DO−UNTIL文
DO−FOREVER文
上記の制御文の文法の詳細は付録1 に説明し,ここではそれらの構文を図 式的に示す(図一1)。このような機能 をとりあげた理由は,2節で議論した ように,われわれの指導する日本語に よる算法の記述の形式とプログラムと の直接的な対応をねらったものであ る。また,この機能を使うことによっ て,学生がプログラムの構造をより明 確に意識するこことを期待している。 4.2 具現化 プログラミソグ言語の具現化(im・ Plementation)には種々の方式が可能 であるが,ここでは次の方法を採用した。構造的FORTRANの既成の
FORTRAN(以下,旧FORTRANと
呼ぶ)に対する追加機能を旧FORT− RANの機能自身を使って展開し,構造的FORTRANのプログラムを旧
FORTRANのプログラムに変換す
る。その変換されたプログラムを旧 FORTRANの処理系で処理させる。この方式での追加機能の旧FORT−
RANへの展開の形はHiggins15)の 考えに近い。変換ルーチソの詳細につ いては,今後さらに機能を追加するよ うに検討しているので,別の機会にゆずりたい。
旧FORTRAN としてはFACOM 230−45 Sの
FORTRAN−Sl2)を用い,3節で述べた学生実習用に FASTでも使えるようになっている。なお,学生実習 用にとくに工夫した点は次のとおりである。 ・マークカード入力を可能にする。 ・学生から見て,FASTの使用時と同一のOS用 制御文で済むようにする。・新機能を使わせるために,旧FORTRANのIF
文とDO文の使用を禁止する。 今後改良すべき点もいろいろあり,6節で論じる。5.改善の評価
表一1アンケートの集計「言一一避」・2345
計 講 義A
実 演 ) 実 習 興 味 度 理 解 度 将来役にたつか 興 味 度 理 解 度 将来役にたつか 0 4 1821 8(人) 4 9 29 7 203161616
0 4 7 20 20 2 7 23 15 4 0 0 4 18 29 51(人) 51 51 51 51 51 1975年の学生の実習報告での感想および1976年7月 のアソケートなどを資料として,今回の試みを評価し ておこう。まず,後者のアンケートから今年の実演シ ステムと実習についての興味度,理解度,将来役に立 つかの5点法による主観的評価の集計結果を表一1に示 す。そのアンケートでは,さらに,‘講義(実演システ ム)についてその利点と欠点を’,‘演習実習について’, ‘その他の意見’,という見出しで自由に答えてもらっ た。以下に解答の一部を学生の記述のままに引用す る。[]内は筆者の注釈である。なお,この種のシ ステムの効果については文献17)にも記述されている。 5.1実演システムの利点 ・テレビを使っているので,タイプライタの動きがよ く見える。 ・プログラムをその場で実際に先生がコソピュータに かけるので,どういうことをやっているのかわかり やすい。 ・テレビを使って実行結果がすぐにわかるところがよ い。[仕事の所要時間や修正の簡単さなどについて の実感が得られるので,自分でもすぐにやれる自信 がつく。とくに,計算機に慣れるまでの時間が短縮 され実習が効率的になった。] ・プログラムなどの欠点が授業中にわかってたいへん よいと,思う。 ・テレビが備えてあるので大変役に立って勉強意欲が わく。 ・レポートや実習の質問票に書いた質問などを授業で とりあげて,みんなで考えるのはなかなかよいと思 う。なぜなら,案外みんな同じような疑問点を持っ ているから。 [実演はハプニソグ性に富むほどおもしろい,プロ グラムのデバック,すなわちプログラムの誤りをど う発見して修正していくかを汗をかきながらやって みせたり,端末やシステムの故障に対する応急策な どをみせるのもよいことであろう。] 5.2実演システムの欠点 ・計算機を使うことで講義時間が少なくなる。 ・時間の延長はやめてほしい。[ときに計算機の調子 が悪いことがあり,講義時間にムダが出たり,昼休 みにくいこむことがある。] ・テレビの文字が小さすぎて読めないことがある。画 面が鮮明でない。 ・テレビカメラをあっちこっち動かすのに気をとられ てしまう。テレビカメラを2台すえつけて切りかえ すか,カメラマン(?)に来ていただいたらどうで すか。[カメラ操作,タイプライタ用紙の反射と照 明に問題がある。講義中に助手を使わないことを原 則に実演システムを考えている。] ・机が小さくノートがとりにくい。 ・テキストに沿って進まないので手間どってしまう。 ・資料がもっとたくさんほしい。 5.3 演習実習について ・1人あたりの時間が少なく,まわりの男がせかすの でなおさら時間がかかってしまう。[多くの学生の 感じることで,正規の実習時間以外にも計算機を使 えるようにはしてあるが,まだ不十分である。] ・自分の思うことができて非常に楽しい。[自由課題 は人によっては苦痛らしい。コ ・自分で操作できるから満足感が大きい。[一つのプ ログラムを仕上げたときの充足感を味わうことが大 切である。] ・他大学にくらべてめぐまれている。 ・レポートがなけれぽもっと楽しい。 [このほか,学生からの要求は多様である。]5.4構造的FORTRANについて
以下は前年度の学生の感想である。 ・算法をほとんどその順番でプログラムが組めるとこ ろがよかった。 ・GO TO文が少なくてすむので,文番号を気にしな いで書け,整理しやすい。・マークカードは多く使うが,マークそのものは楽に なった。 ・構造的FORTRANでのソースリストへのエラーの 指示がない。[現在は,エラメッセージは旧FORT・ RANの処理系に依存している。改良すべき点であ る。] ・IF−FI文が使いやすい。後で見てフ゜ログラムがわか りやすい。