« IR法の本来の問題 | トップページ | 豊洲問題はなぜわかりにくいのか »

2017/01/04

プログラム教育は必要なのか論議

大分前からこの論議はされている。
そもそも必要なのか論議である。

私はプログラマーを増やすという観点では疑問視しているが、子供の資質を育むという観点では賛成である。

教育としてのプログラミングとは

例えば、学校の体育で「サッカー」やら「バスケットボール」やら「バレーボール」やらについてルールの勉強をして、基礎的な練習をしていちおう試合まで行うだろう。
メジャーなスポーツなら学校大会をやるかもしれない。
でも、プロ選手を育成したり抜擢するわけではなかろう。またそれでプロになりたいという人なんか皆無であろう。

体育という教科でやること、そこで肝心なのはルールというものがあり、それを遵守しながらプレイを行うという面白さを知ることではないのか。
また、とりあえず経験があると観戦するにも面白さは段違いであろう。
もっと色々思いつくが、私が思う限りはそれらと同じ論理である。

「将来のIT人材の確保」とか「プログラマー不足に備えて」とかいう言葉を聞くと「こいつわかってねー」「バカじゃねえの」としか思えない。
「プログラマーなめんじゃねえ」という憤りを感じることもある。
プロというのは学校授業レベルでなんとかなるものではない。
最低限として「部活」でどっぷりとやっているのは前提であるし、多くのトッププレイヤーはもっと小さい頃から訓練を重ねている。

プログラムで学べることとは

そんな中で私が大いに共感する、良い記事を見つけたので紹介する。

リンク: PCを使ったプログラミングが子供の可能性を大きく広げる.

    また、プログラミングを学ぶことで、子供のこれからの人生で大きな助けとなる3つの力を身につけることができる。その3つの力とは、「論理的思考力」「問題解決能力」「情報収集能力」である。

同感である。
私は中学校の頃プログラミングの面白さにハマり、趣味としても、四半世紀を軽く超えた。
プロとしてプログラムをした時期もあったが、そうでない時期も多い。
それでもプログラミングで得た“能力”は直接的・間接的の両方で役立ってきたのは事実である。

これらは社会人になってから勉強・学習するのにも必要な能力である。
人間がある程度成熟した社会の中で生きていくためにも必要な能力と言っても良い。

プログラムとは文書である

プログラム界で有名だと思う(知らなくても共感されることの多い)言葉の一つがある。

「プログラムは、あなたの思った通りには動かないが、あなたの書いたとおりに動く」

会社というのは文書で動く。ある程度大きくなればそうであるほどそうだ。
社内であれば、通達・作業書・手順書・連絡書・議事録等々。
少なくとも対外的には文書というのは大きな意味を持つ。
契約書や覚書、それ以前の様々な交渉もあるだろう。

文書を書くというのは仕事としては重要なものである。
文書そのものが業務の結果として評価されることも多い。

しかし他人を動かす文章というのは難しい。

思った通りに動いてくれないものだ。
私がその時にちらつくのはこの言葉である。
「なんだ、コンピューターに比べればよっぽど意図を汲んでくれている」
電話をかけてあれこれ説明すれば理解してくれる場合も多い。よっぽど融通が利くものなのだ。

プログラムというのはコンピューターに提出する文書なのだ。
様式は厳密だし、細かいところにも注意が必要だ。
自分の思ったようになかなか動かない。

しかし、改めてプログラム(文書)を追うと、なるほど書いたとおりに動いている。
コンピューターに「そこはなんとかしてくれ」と言っても聞いてくれるわけが無い。
この“いらだち”は永遠の課題なのかも知れない。(この克服が“永遠の麻薬”的な面白さなのかもしれない)

そもそもプログラムとは“式次第“議事進行”といった意味もある。
例えば“結婚式のプログラム”とは式の進行表のことである。

会社業務とプログラム的思考

会社組織自体も含めて“システム作り”というのはプログラム用語でも使うし、会社での一般用語としても使われる。
自分の思い通りではない部分との“インタフェース”をどうするか。
これはAPIとしての定義のようなものだ。
どこで切り分けるのか、“ラッパー”を置くか。足りない機能をどう保管するか。
機能、部署から作らねばならないかもしれない。

これだけやればなんとかなるだろう、ではなくて、実例を一度想定して仮想的に動作させてみる。
これはデバックである。
他人の評価的なデバッグの前に、自分の頭の中でプログラムをすっと動かしてみる。
ある程度の経験を積んだプログラマーは、無意識にやってしまうものだ。

知識というよりも、プログラマーとしての習慣づけ、考え方、作業の流れ等が、ビジネス様式とマッチし、役立つ事が、おそらく多くの人が思っている以上にあるのだ。
いわゆる“先進のビジネススタイル”とやらが「それってプログラマー的には当り前じゃね?」と思うこともある。

要件定義

プログラムを作るプロセスの中で重要な事に“要件定義”というものがある。
要するに“何を作るのか”を決める一つの側面である。

工場なら品質基準があるだろうし、商品開発なら製品仕様というものがある。

もっと日常生活で考えてみよう。

例えば子供に買い物を頼むとすれば
・○○スーパーに行き、そこで買うこと
・豆腐一丁とニンジン二本、ジャガイモ一袋、牛乳一リットルパック一つ
・三百円以内で好きなお菓子を適当に
・お財布には千円だけなのでそれ以内で
こういう“定義”をして守ってくれるとすれば、大きく予想を外れない。

子供はこの要件を満たしながら、自分に有利にお買い物をしようとするだろう。
それを見越して、重要なのは例えば買う場所を指定することと、牛乳の大きさをきちんと定義することである。
ミニパックの牛乳にしてお菓子を余分に買われるのが問題だからである。
かといって銘柄などまで指定するとまだ漢字が読めない子には頼めない。
そういう塩梅を考えて指定することも重要なことなのである。

これからの社会とプログラム

阿吽の呼吸や根回し・説得が支配する日本のムラ社会を脱却し、海外の“常識の通じない人々”に物事を伝えるという機会がこれからはどんどん増えていくだろう。
口約束ではいつの間にかなくなるから、きちんと文書化したり法的措置すら付けることも必要だろう。
よく批判される外資系ハンバーガーショップの接客マニュアルは、必要された結果であり、とても重要なものなのだ。

ボーダーレス、グローバル化が進んでいけばそういう人達のと交流が増える。
その点でも「もっともわけのわからん常識もなく融通の利かないコンピューター」と付き合うことになるプログラミングというのは役立つのではあるまいか。

実際の教育はどうすべきか

これは難しい。
グラフィカルで簡単な(安易な)プログラミング風な“積み木”でもさせるようなものを“プログラミング”と称するのは私は適切とは思えない。
もちろんC言語のような不条理な言語をやれといったり、昔やらかしたCASLなんて言語をぶちあげるのも感心しない。

最悪なのはプログラム言語の“文法”を覚えて、小さいプログラムを書いて終わりというパターンである。
言語なんか道具の一つなのでそっちはどうでもいいのである。

前述の話を再度だそう。
学ばせるべきは「論理的思考力」「問題解決能力」「情報収集能力」である。
これを体感できるようなプロセスを踏めれば良い。

サッカーでただボールを蹴って「サッカー」と称するのは幼稚園か小学生低学年迄である。
ルールの中で組織的・戦略的に試合を動かそうとするところまでが本当は欲しい。

最初からうまくいくとは思えないから、何度も試行錯誤して良いものにして行って欲しいと思う。
むしろそういう姿勢で教育を創り上げていくことが大事なのだろう。

|

« IR法の本来の問題 | トップページ | 豊洲問題はなぜわかりにくいのか »

「パソコン・インターネット」カテゴリの記事

「教育」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/47063/64606225

この記事へのトラックバック一覧です: プログラム教育は必要なのか論議:

« IR法の本来の問題 | トップページ | 豊洲問題はなぜわかりにくいのか »