トップ » バックナンバー » Vol.18 » 学生さんとKCGのコンピュータ

Accumu Vol.18

学生さんとKCGのコンピュータ

京都コンピュータ学院講師 木村 聡

実習環境の変化

私がKCGを卒業後非常勤講師として教壇に立つことになりましたのは1984年のことあれから25年が過ぎ一人前なのは教壇に立った年数だけという今となっては己が浅慮の程に呆れ返るばかりの体たらくですとは言えたくさんの学生諸君を見てきたことは確かですこの間学生諸君の気質も変わってきたように思えるのはむしろ自然なことなのかもしれません

無論変化ということでしたら学生諸君の気質よりも学生諸君を取り巻く環境の方により大きなものがありますむしろそうした環境の変化に合わせて学生諸君の気質も変わってきていると言えましょうコンピュータとそれを学ぶ者の環境の変化には激変という言葉を当てるのも大袈裟ではなくその激しい変化が他に与える影響も甚大なものがあります僅か20年前を思い起こせばこれからの20年の困難さを想うこともできましょうオヤジの思い出話などつまらぬものと相場は決まっていますが私に判る範囲でのKCGとその学生諸君の変化というものについてお話ししてみたいと思います尤もこの20年ばかりプログラミング関連の講座を中心に担当してきたこともあり話題がプログラミング関連ばかりとなってしまうことについてはどうぞご容赦ください

今は昔……

私がKCGの学生であった頃コンピュータは「計算機室」という特別な部屋に鎮座しているものでありました私のいた浄土寺校舎ではリモートバッチと呼ばれる方法で百万遍校舎に設置されていた汎用機を利用していましたプログラムの入力に紙のパンチカードを使う方式でしたので実習室には紙カードパンチャというキーボードと穿孔機が一体になったかなり物々しい印象を与える機械が並んでいました学生がカードパンチャを長時間占有せずに済むよう1回生前期にタイプ実習が必修科目でした私もご多分に漏れずこのタイプ実習のおかげでタッチタイピングを所詮初心者レベルではありますが習得できたわけですこの辺りからして既に今の学生諸君とは全く事情が違っており私たちの世代では新入生を除けば一文字一文字探しながら一所懸命にキーを叩く姿は実はサボりの証になってしまうものだったのですまた紙カードは1枚がプログラム1行に相当ししかもその1枚が2円もしましたから景気よくミスタッチするわけにもいきません

そんな風に集中力と注意力を削りつつ作成した紙カードの束を実習室の受付に提出しておくと日に数回決まった時間にバッチ処理を行いコンパイルと実行の結果をプリントアウトしたもの(「リスト」と呼んでいました)を受け取れるようになっていましたつまり一日にコンパイルできる回数が決まっていたわけです通常一日に3回のコンパイルが可能でした尤も実習室に入り浸っているとオペレータ(KCGの学生アルバイト)が気を利かせてくれて早めに処理結果を渡してくれたりするのですがそれでも一日に5回程度まで自然リストを睨んでのプログラム修正には気合が入りますでなければレポート課題の提出に間に合いませんし紙カードを浪費しては懐もお寒くなってしまいますコンパイルの機会が限られているためコンピュータがどうプログラムをコンパイルし実行するのかをリストを見ながら想像する所謂机上デバッグつまりコンピュータを使わない()デバッグの時間が長くなります私たちの世代はこういう訓練を経ていると言えましょう

また当時浄土寺校舎計算機室の学生アルバイトはプログラムの受け付けとリモートバッチ用マシンの操作以外に他の学生諸君のデバッグ相談をも受け付けていました他人の書いたコードを読みコンピュータ無しでデバッグししかもそれをほとんど数分でこなすということはたとえ対象のコードが簡単なものであっても容易なことではありませんこうしたことは計算機室アルバイトで典型的だったと思いますが何もそれに限ったものではありませんでしたから当時の学生諸君にはこんな訓練まで積んでいた向きも少なくないわけです

パーソナル化する環境

浄土寺校舎に東芝のPASOPIAという8ビットCPUを搭載したマイコン(当時は「パーソナルコンピュータ」や「パソコン」という言葉は無く「マイクロコンピュータ」あるいはそれに「マイコンピュータ」をかけた言葉とされる「マイコン」しかありませんでした)が入ってきたのは私が2回生の時その後浄土寺校舎ではカードパンチャをPASOPIA上で作成したプログラムリストのパンチングを行えるように改造しましたこれで紙カードの無駄は減りプログラム作成の効率も向上したのですがコンパイル回数は相変わらずですしかしPASOPIAが入ったことにより利用できる計算機が百万遍校舎の汎用機だけではなくなったのは大きな変化でしたプログラムを入力したその場で実行結果を確認できるようになったのです計算機としての能力はPASOPIAと百万遍の汎用機とでは比べものになりませんが逆に学生にとっての身近さも比べ物になりませんPASOPIA用のプリンタが設置されるとPASOPIAを用いての課題も出題されるようになり巨大な汎用機の利用機会は着実に減っていくことになります

その後MS-DOSやWindowsを搭載したNECのPC-9800シリーズや富士通のFMシリーズの導入また学生全員が東芝のDynabookを持つなど実習環境のパーソナル化は止まることがありませんでしたこれに伴いタイプ実習は無くなりリモートバッチによる汎用機の利用機会も無くなっていきますその一方ワードプロセッサや表計算といった一般的なアプリケーションソフトウェアの利用を眼目とした諸講座も開講されるようになりますプログラミング言語の講座ではCに中心が移りVisual Basicも注目を集めるようになりFORTRANやPL/Iなどのかつての主力言語はCOBOLを除き消えていきます現在の主力言語はJavaとC++でしょうか個人的に残念に思うのはアセンブリ言語の講座がほとんど消滅してしまったことです私見ではプロセッサや特にメモリを全く意識せずにプログラムを書けるほどにはプログラミングの世界は進歩していませんフォンノイマン型計算機を使うプログラマを養成するという意味でアセンブリ言語の講座はあって然るべきと思っています(尤も原理を理解すれば充分とも思いますのでターゲットマシンはCOMET IIでも構わないでしょう)

プログラミング言語一覧
FORTRAN
 FORmula TRANslation最初の高水準言語科学技術計算に向く
COBOL
 COmmon Business Oriented Language事務処理計算に向く今なお広く使われている
PL/I
 Programming Language 1 (One)Iはローマ数字先行するFORTRANやCOBOLなどの長所を取り入れた大きくなりすぎた言語仕様が普及を阻んだとされる聞くところによるとIBMの社内モジュールは一時期PL/Iで書くものだったとか
C
 OS記述言語として誕生低水準処理が可能おそらく最も広く普及した言語私見では「実用一点張り」で「何でもあり」な性格を持つ
C++
 Cにオブジェクト指向プログラミング用の機能を付加したものとして誕生元はCのスーパーセッションであったためかC/C++と併称されることも少なくない
Java
 C++の後継言語の一つ"Write once, run anywhere"が謳い文句実行環境はJava仮想マシン
Visual Basic
 Microsoft Windows用アプリケーションを素早く作成できることで人気を集めたRAD(Rapid Application Development)ツールの草分け的存在でもある

便利になったはずなのに

現在インターネットの普及とパーソナルコンピュータの著しい性能向上もあり一般社会におけるコンピュータのイメージは「使えて当然」の色々と便利なことが「簡単にできる」機械というものになっているかと思いますまた所望の処理結果が迅速に得られるものでもありましょうそんな中コンピュータプログラマの仕事の一般的なイメージが空調の利いた部屋で最新鋭の綺麗な機械に囲まれコンピュータを前にひたすらキーボードを叩き続けたりマウスを操作するなどというちょっと古い言葉かもしれませんが「ハイテク」を駆使するもののようになってはいないでしょうかここ10年ほどの学生諸君を見ているとどうもそんな気がしてなりません

近頃の学生諸君の中にはコンピュータプログラムを作成するときでも例えばMicrosoft Visual Studio のエディタ画面とずっと睨めっこしている人がいたりしますしかしコンピュータは「さあ何をしましょうか」と待っているだけで問題の解決法を提示してはくれません第一プログラマが何に悩んでいるかを理解してくれたりはしないのです

プログラミング上で行き詰まることがあった場合私なら図やら表やらを紙にかく(描くまたは書く)でしょう取り敢えず手を動かせというわけです(その目的は勿論問題の整理や視野狭窄の回避などにあります決して根性論を振り回しているのではありません)ところが少なからぬ学生諸君がまるで手を動かそうとはしません真っ白なテキストエディタの画面を前に腕を組み眉間に皺を寄せて……プログラムを作成するのに紙や鉛筆は有害とでも思っているのでしょうかWikipedia によればかのダイクストラ大先生(Edsger Wybe Dijkstra, 1930~2002)は自分用のコンピュータを持ったことが無く更にコンピュータ自体滅多に使わなかったというではありませんか限界というものは当然にありますが昔の学生がやっていたようにコンピュータが無くてもプログラムは作れますしデバッグだってできるのです勿論紙にこだわる必要は微塵も無く今はコンピュータで手軽に絵でも字でもかけるのですから代わりにコンピュータを使えばよろしいいやコンピュータでなくても使えるものは何でも使えばいいのですところがそれもしない

コンピュータに頼り過ぎると……

一つにはコンピュータに頼り過ぎているということでしょう極言すればKCGに入学するまでの学生諸君の多くはコンピュータを使うときここをクリックするとこんなことができますよここに何か入力することでそれに関連する情報を得られますよというような言わばコンピュータからの指示に従って使ってきたことでしょうこうしたエンドユーザとコンピュータとのごく初歩的な関係はプログラマとコンピュータとの関係とは逆ですプログラマがコンピュータに対して指示を出すのですコンピュータプログラムを作ろうというほどの者がコンピュータに頼り切ってどうします

昔の学生諸君の方がよく勉強したものだとは言いませんそんなことは断じてありませんただ便利になった分忘れていることがあると思うのです例えばKCGでは授業資料の多くをネットワーク上から参照できるようになっています教科書の無い講座も少なからずありますから学生諸君にとっては非常に便利になったはずなのですが一方で授業時間内にノートをとる学生諸君をほとんど見なくなりました授業資料をプロジェクタで映写できるので板書の機会が大幅に減ったせいかもしれませんあるいはひょっとして学生諸君からすれば講座担当者がノートも作ってくれているという感覚なのでしょうか

またいつでも参照できるとなると結局何時まで経っても参照しないという現実もありますある講座で学期末も間近という時期になって授業資料は学内ネットワークにアップロード済みかと訊いてきた学生さんがありました学内ネットワークなのでそんなことは訊くほどのことではありません不思議に思いましたが毎回講義開始前にアップロードしてきた旨伝えますと「そうだったんですか見に行ったことありません」さすがにこれは少々極端な例でしょうけれども便利さに溺れるとろくなことはありません最悪なパターンを考えてみましょうノートはとらない教科書はあっても読まないプログラムも読まないし勿論書きもしない課題が出たらネットで検索すればいいんだどこかに答えが載ってるさ先生には訊かないのかってだめだめ先生は答えを教えてくれないからね……既にあちこちに転がっていそうな「最悪」ではありませんか

学生のうちにたくさん「失敗」しておこう

学生諸君を取り巻く環境の変化によって学生諸君の勉強方法も随分と変わり恐らくそれにつれて学生諸君の意識も変わってきました少なくとも学生諸君の興味の対象はかつてのそれに比べ遥かに多様なものになりました変わらないことは無いのではと思えるほどですが変わらないものもやはりあると思えます

教員という立場から学生諸君を見ると概ね学生諸君は勉強しないものと相場は決まっていますそれは私の先生方から先生方ご自身がそうであったと述懐されるのを一度ならず聞いていますし私自身の学生としての経験からもそう思います勿論私の場合は先生方とはまったく次元が異なり枕に「恥ずかしながら」という言葉が付くわけですがただ一口に「勉強しない」と言ってもそこはそれ色々とあるわけなのです

私の見るところでもどんな学生も概ね勉強はしないものですしかしそんな学生諸君も実は教員の知らないところで何かしら勉強しているものですつまり必ずしも教員が望むようには勉強しないが何かをやってはいるのですこれは非常に大切なことで誰しもが言う「学生時分はやりたいことをやるのが良い」の真髄なのかもしれません学校や教員はこれを邪魔することのないようむしろ積極的にサポートしたいものです(尤も言うは易く行うは難き事柄でもありましょうが)

一方でそういう勉強すらしない学生諸君も遺憾ながら少なくはないように感じていますそうした諸君は本当に何もしないようです確かにKCGで扱う事柄は当然とはいえ難しいものが多くおまけにコンピュータの頑固さときたら人間の比ではありませんからやる気の一つや二つ削がれるよと言われるとそれもそうかと思ってしまわないでもありませんしかし難しいからこそ給料にもなるのですからそんなことでは駄目だと叱咤することになりますせめて学校で扱う程度のことはやっておきなさいという決まり文句の繰り返しになるわけです実のところこの辺りは昔も今もさして変わりの無いところでしょう

なお誤解の無いように申し添えておきます与えられたカリキュラムを高精度でこなす「だけ」の「優等生タイプ」とでも言うのでしょうかそんな学生さんもいるのかもしれませんしかし幸い私が担当した学生諸君にはこのような例として思い当たる人はいません私の知る限りで特別に「優秀な」と冠を付けられるほどの学生諸君は様々に悩みながらもやりたいことをやりつつかつ成績優秀でありましたこれは学生諸君のKCGにおける目標を考えれば頷けるものがありましょう

練習と技術

KCGにおいて私が関わっているのは主にプログラミングの技術教育です技術というものは練習して身に付けるものと私は考えます猛烈に勉強していくら知識を蓄えたところで技術が身に付くかと言えばそうではありませんそういう意味ではスポーツと同じですやり方を教わって練習して初めてできるようになる高いパフォーマンスを要求されるほどたくさんの練習を積まねばなりませんまたスポーツでも何もかもが解っているわけではありません常により高いパフォーマンスを実現するため様々な研究が続けられています

プログラミングも少し勉強してみれば実際上は勿論のこと理論上も多くの未解決問題があることに気付きますプログラミングパラダイムシステムの開発とテストの手法などなど通信理論やアルゴリズムの世界でもそうです現在解っている理屈だけでは手が届かない様々な難問が我々技術者の前に立ち塞がっていますそうした難問に技術は必ずしも最適解ではないにせよ何らかの解を与えようとするのですこれが容易なはずはありません勿論技術と理論は互いに独立してあるものではなく表裏一体を成すものですしかし現実に技術が先行し理論が後追いとなることすらあり理論を学ぶことは技術の基礎でもあるのですがそれだけでは技術を身に付けることはできませんプログラミングの技術とスポーツの技術といずれも上達するには相応の練習を積まねばならないことは確かです

気になるのはこの「練習」を厭う傾向が意外に強いことですいや練習した割には上手くいかないことつまりは「失敗」を厭う傾向が強いように思います学生諸君の昔と今を比べるなら結局のところこの失敗への恐怖感の大小という点で違いがあるのではないかと私は感じています環境がより便利になったためか失敗するということを非常に恥ずかしいことのように学生諸君は感じているのではないでしょうかどうせ失敗するからやらないどうすれば上手く行くかわからないからやらないこれでは本末転倒ですできると判っていることができたところで何が楽しいでしょう実際少しでも上手くいかないとすぐにこれは自分に向いていないなどと言い出しますまた自分のやろうとしていることが実は少し難しいと聞くとさっさと諦めてしまいます

そもそも初めから上手くいくことなどほとんどありはしません私が学生諸君のために書くサンプルプログラムですらいきなりすらすら動いてくれたりはしませんあからさまなバグの原因を突き止められず睡眠時間を削ってしまうことだってあります教員ですらそんな失敗を積み重ねて授業資料等を作り上げているのですですから学生諸君にとって失敗することなど当たり前であって何ら恥じることはありませんむしろ失敗を糧としないことを恥じるべきなのです

学生のうちなら学習上の失敗をいくらやらかしたところでそれは当然でありかつ良い学習の機会でもありますコンピュータを「使い過ぎて」壊したならむしろ立派と言えるでしょう極端な例かもしれませんが卒業生の中には実習用の大型汎用機をリモートでデッドロックに陥れ始末書を書いた人だっています就職してから同じことをすれば始末書一枚で済むような話ではありません無論失敗したのですからそこに認識不足なり何なりがあったことになりますが一方でそれだけの失敗をやらかせるほどの研究と練習を積んでいたことにもなります彼は就職後会社が何としてでも手放さないほどの優れた技術者になりました

未形に覩る ― 行き着くところは想像力

「智者は未形に覩(み)る」宮城谷昌光氏の『楽毅』を読んでいてこんな言葉にぶつかりました少し調べてみたところ『史記』の「趙世家」に件の記事はありました時は中国の戦国時代末期孟嘗君が活躍し「魁より始めよ」の言葉が生まれた頃のこと「胡服騎射」と呼ばれる軍制改革を断行しようとする趙の武霊王を肥義という重臣が励ました言葉です

智者は未だ形を成していないものをありありと見ることができるこの「智者」は様々な「者」に置き換えられるでしょう勿論「技術者」にも技術者に求められるのは正にこうした想像力なのですただの思いつきに止まらない完成に至るまでの旺盛な想像力そんな想像力は一朝一夕に身に付くものではありません自由な発想とそれを支える広範な知識や教養そしてそれを実現させるほどの技術力を要求するものでありそのいずれもが非常に高いハードルです「一生勉強」はさして大げさな表現ではないと言えましょう

昔も今も学生諸君は想像力を働かせるための練習を積まねばなりませんこのことは変わりようも無いでしょう想像力の貧困は即ち技術力の貧困なのです

この著者の他の記事を読む
木村 聡
Satoshi Kimura
  • 1984年KCG情報処理科卒業
  • 同年9月からKCGの非常勤講師になり現在に至る
  • 担当講義はプログラミングが中心
  • 1993年には京都府立大学文学部史学科を卒業

上記の肩書経歴等はアキューム18号発刊当時のものです