«前の日記(2011-09-30) 最新 次の日記(2013-07-01)» 編集

Matzにっき


2013-06-12 「ちょっと待った!小中学校でのプログラミング教育」 [長年日記]

先日、Webronza というところに寄稿したのだが、有料登録しないと後半が読めなくなっていた。で、交渉して公開許可を頂いたので、ここで全文掲載。

「ちょっと待った!小中学校でのプログラミング教育」

現代社会はもはやコンピュータがなければ成り立ちません。そして、コンピュータは誰かが作ってソフトウェアがなければ、まったく役に立ちません。コンピュータは自発的に仕事をしてくれないどころか、誰か人間がソフトウェアという形でどのように仕事をすれば良いのか教えてやらなければ、なんの働きもできないのです。コンピュータが社会に役に立っているのは、ソフトウェアがあるからです。

どんなに賢いように感じられるコンピュータでも、自らソフトウェアを開発することはできません。コンピュータは単純な計算をものすごく速く行うことができますし、それを積み重ねることで人間を越える能力を備えていますが、その一方で、なにか新しいことを創りだすなどの創造的な活動は苦手です。はっきりいうとまったくダメだと言ってもいいでしょう。当面の間は人間がソフトウェアを作って、コンピュータに仕事を教えてやるしかないのです。

社会におけるコンピュータの重要性は明らかで、そのコンピュータがソフトウェアがなければ役に立たず、そのソフトウェアは人間にしか作れないとなれば、ソフトウェアを開発する人間こそが真に重要だということになります。しかし、現状、誰でもがソフトウェアを開発することができない以上、ソフトウェアを開発する人、プログラマを養成することは急務です。とは言うものの、どのような教育を行えば、優秀なプログラマを育成できるのかについて誰でもが合意できる方法はまだ見つかっていないようです。

最近、注目されているのが若い人たち、特に小学生や中学生へのプログラミング教育です。確かに優秀なプログラマは若い頃からその才能を発揮している人が多いようです。また、プログラミング能力はあまり年齢に関係ないようで、天才と呼ばれる小学生プログラマがいると思えば、70歳をはるかに超えて現役で活躍する方もいらっしゃいます。

そこで、若いプログラマを育てるために、小学校や中学校での情報処理の教育やプログラミング教育に力を入れようという動きもあるようです。しかし、自分自身のプログラマとしての経験から考えると、これにはなかなか困難がつきまとうように思えます。第一の課題は「誰が教えるか」という点です。学校をプログラミング教育の現場にするためには、当然のことながらプログラミングを教える教師が必要です。しかし、現在の小学校・中学校の教員でプログラミングの能力を持つ人はごく少数でしょう。もちろん、教科書通りに教えることができる人は短期間で用意できるかもしれませんが、それでは子供たちにプログラミングに前向きな気持ちを伝えることは困難でしょう。中学生時代にプログラミングをはじめた私自身も含めて、若い頃からプログラミングに「はまった」人たちは、結局、コンピュータを使いこなすのが楽しいからこの道に進んだようなもので、教科書に書いてあるから、あるいは学校の授業だからという理由でプログラミングをはじめた人など見たことがありません。プログラミングを教えるというのであれば、少なくとも教える人はプログラミングの楽しさを自覚している人でなければ成果をあげられないと思いますし、そのような人をそれぞれの学校に配備するのは大変な困難ではないかと思います。

第二の課題は「どのように評価するか」ということです。学校の授業であるということは、なんらかの評価をする必要があるわけですが、これがまた困難です。まず、プログラミングの能力は、創造性をともなうという点である種芸術に似ています。そういう点では美術の授業に似ているのですが、問題はプログラミングの場合、人によっては非常に短期間で上達するため、小学生であってもプロを越える作品を完成させることがたびたびあることです。人によって出来栄えが10倍、100倍あるいは1000倍も違うようなものを学校の成績としてどのように評価したらよいのか途方にくれます。

第三の課題は「なにを教えるか」ですが、この点は最初のふたつの課題に比べればなきに等しいものです。

では、学校教育はプログラマ養成にふさわしくないのであれば、いったいどうすれば未来を担うプログラマを養成することができるでしょうか。

正しい答えは私自身も持っていないのですが、私の知っている優秀なプログラマのほとんどが自学自習でプログラミング能力を身につけている現実を考えると、あるいはプログラマとは、養成されるものではなく、発見されるものなのかもしれません。

ある調査によれば、大学におけるプログラミング教育の受講者の内6割程度はプログラミングの基本的な部分の理解に困難を感じ、それは他の学科の成績に必ずしも相関しなかったのだそうです。だとすると、世の中にはプログラミングに向いた性格の人がいて、成績その他では区別することができないことを意味します。であるならば、少しでもたくさんに人にプログラミングに触れる機会を与え、そしてそれに興味を持てた人、才能の片鱗を見せた人にはより豊かな機会を与えるようなプロジェクトを総合的に設計することで、未来のプログラマを「発掘」できるのかもしれません。そして、そのような才能あふれる人たちに適切な待遇を与えることが、このIT社会の競争力を強める最大の方策なのかもしれません。

本日のツッコミ(全21件) [ツッコミを入れる]
_ 原田 (2013-06-13 00:31)

リコーダーや跳び箱はプロの音楽家やオリンピック選手を養成するためではなくて,将来,その道に進まない人でも全員は知っておいた方がいい,というものだと思います.プログラミングもそういうレベルで広くやるべき部分はあって,それがビスケットの狙っているところ. <br> <br>一方で,未来のプロの英才教育はいろんなやり方があるでしょうね.

_ あじのたたき (2013-06-13 02:02)

この記事の最後に書かれている、「少しでもたくさんに人にプログラミングに触れる機会を与え」の部分に合致するようなゆるい教育が望ましいんでしょうね。また、偉大なプログラマについて教えてあげるってのも夢を与えてあげられて良いかもです。

_ rocky (2013-06-13 02:52)

「学校教育に組み込む」ためだからといって、必ずしも「授業にする」必要はないと思います。授業にしないで、且つ学校教育に組み込むことを必須にすれば、評価することは不要になるからです。週 1 時間でも、毎日 10 分でも、とにかく授業にせずに時間を設ければいいのではないでしょうか?もう少し学校制度を上手く使う方法を考えたほうが良いように思います。

_ (2013-06-13 03:32)

この記事のタイトルを初めに見た時、 <br>義務教育ではプログラミングの技術より、 <br>現実の問題をどうプログラムで解決するのかの <br>トレーニングをするべきというような主張をされるのかと思いました。 <br>僕はそう思いますが

_ 平# (2013-06-13 05:51)

rockyさんが書かれていることへの追記ですが、今の小学校での英語のように、「教科」ではなく「活動」という形なのであれば、成績を付けずに「経験する・慣れる」という観点で取り組むきっかけを作ることはできると思います。 <br>もっとも教える側の知識・経験や、取り組む内容についての問題は山積しているので、実質的には難儀な話だとは思いますが(高校での情報科目教育の現状すら危ういというのに…)。

_ 参考に (2013-06-13 06:14)

全く同意できませんでした。 <br>ソリューションへの問題点の指摘は、代替案ない場合、大人の主張とは思えません。 <br> <br>code.org のようにアメリカでの動きを見ていると、国として動かないといけないという危機感を非常に感じます。 <br>日本という社会全体から見た場合の問題として、エンジニア不足という問題をいかに解決するのか?が主たる問題かと考えます。なので、「才能のあるプログラマを見出す」では総数が増えず問題解決にならないと思います。 <br> <br> <br>第一の課題:誰が教えるか? <br> <br>プログラミングを教える学校もありますし、外国語教員のように外部の方を利用する方法もあるでしょう。 <br>Code Academyなどネット上の教育サイトも充実してきていますし、プログラミング教育を教員が教える形で行う必要があるとは思えません。東進ハイスクールのように優秀な方がビデオで教える方法もあるでしょう。 <br> <br>第二の課題:どう評価するか? <br> <br>芸術が美術で評価されているのであれば、同じ方法で評価できるということになるかと思うので、主張は全く説得力がありません。 <br>大学におけるプログラミングの授業の評価も行われていますが、これに関してはどうお考えなのでしょうか? <br>プログラミングの授業の評価をプログラミング能力(出来栄え)で評価するという考え方が根本的に間違っています。従来の方法と同じであれば、テストで評価すれば良いだけかと考えます。 <br> <br> <br>第三の課題:何を教えるか? <br> <br>課題として存在することは同意します。技術の流れが早いので、個別言語をどれにするか?の議論等はあまり意味がなく、上記コメントのくさんがおっしゃっているように、プログラミングを通して問題解決ができる人材を育てる方針に同意します。(リーダーになる人を含め) <br> <br>

_ まつもと (2013-06-13 09:26)

主に「参考に」さんへの補足になりますが、 <br> <br>今回の文章は学校教育を用いた「プログラマ養成」の試みをとりあげています。それとは別にITリテラシー教育も重要でしょうが、それは取り上げていません。 <br> <br>私は元々プログラミング教育が前提にしている「教育によって才能のない人が優秀なプログラマになることができる」という仮定をあまり信じていません。 <br> <br>ですから、「教育」はダメと言いっぱなしではなく、「発見」を主体とした活動のほうが(優秀な)プログラマ不足解消の望みがあるのではないか、という提言のつもりでした。今、読み返すとその辺り読み取りにくいですね。

_ 矢野浩二朗 (2013-06-13 10:49)

大学でソフトウェア開発の学生プロジェクトを行っています。まつもとさんがおっしゃる通り、学生に幅広くプログラミングの機会を与え、その中で適性のある人に対して更に豊かな機会を与えることが、最も現実的なアプローチかと思います。

_ そもそも (2013-06-13 11:59)

第三の課題において、道徳の時間とかに導入すれば学習には悪くはないのかもしれないですね。学校によりますけど。。。 <br> <br>そもそも趣味の問題だったりもするのでプログラミングを技術として学ぶ意欲のある人材を育てるという意味では「参考に」さんの意見にある程度同意することができます。 <br> <br>リーダーを養成するのであれば極端な話、起業家養成講座でも受講しろって大学生の私なら思いますけどね。

_ yamato (2013-06-13 12:10)

プログラミングを教科に組み込むのは反対だ。 <br>英語教育と同じように大量のプログラミング嫌いを生み出すだけ。 <br>6年英語やっても満足に会話も出来ないから、小学生から導入するべきなんて検討してるような連中だ。 <br>プログラミングの楽しさを理解できない連中が、無理矢理型にはめるような指導をして点数つけるのがテスト方式。それは外部の人間を登用しても変わらない。 <br> <br>興味のある子供に教えていくためには、部活やクラブ活動、外部の習い事としてやるべきだ。野球やサッカーのように甲子園のような尊敬されるような目標を与える事が良いと思う。 <br> <br>

_ めそ (2013-06-13 13:02)

広い意味でのプログラムの感覚,というか電子工作のようなものを学ばせるのは賛成.物事を抽象化したり,構造を把握したり,設計したりする感覚は小さい頃から学ばせても良さそう. <br>LEGO Mindstormsとか使うの良い気がします. <br> <br>狭い意味でのプログラミング,特に一部の言語に特化して書かせるやつとかはどうかなぁ,と感じます.正直今話題に上がっているのはこちらのような気がしますが…

_ 大学生 (2013-06-13 13:03)

僕の高校では、特別なカリキュラムが組まれていて、ある日2日連続で、すごいプログラマーの人が来て講師をしてくださり、その間ずっと授業なしでプログラミングをさせてくれるというのがありました。 <br>進学校で、部活と勉強で忙しく、僕はそれまでプログラミングをやったことがなかったのですが、その授業をきっかけに僕はプログラミングの楽しさを知り、プログラマーになりました。 <br>僕はその2日間、休み時間も一人教室に残って夢中になってコードを書いていましたが、クラスの他の人は僕ほどはプログラミングに興味を持たなかったようで、確かに適正のある人はそんなにいないのだと思います。 <br>ですが、義務教育で通常のカリキュラムに組み込むのでなくとも、小中学校でたまにこういう機会を設けてあげるだけでも、より多くの子供にプログラミングの楽しさを早くから知らせてあげるきっかけになるのではないでしょうか <br>こういうのはテストによる評価がないほうがのびのびやれていいと思います

_ pmint (2013-06-13 13:26)

授業外で活用できる、普段でも(アプリの利用で)触れる、アートとしてでなくても評価できるなどの点から、英語や美術よりも国語と書道を参考にしてみてはいかがでしょうか。 <br> <br>国語は文芸作品に触れることに重点を置いていますし、書道はアートというより綺麗な文字や文字の美しさを教えています。

_ 宮松利博 (2013-06-13 15:38)

ゲームばかりして、なかなか勉強しない小学生の甥に、ゲームを使う側から、作る側になってみては?とパソコンと一緒に一冊のプログラミング入門書を買ってあげ、Skypeで何度か指導したら簡単なゲームは作れるようになりました。味をしめて、次のゲームを作ろうかといったら、もうしない、と言われました。彼曰く、もっと学校の勉強がやりたくなった、学力をあげてもっとすごいゲームが作れるようになりたいと、それからの勉強ぶりと成績の上がり様は目を見張るものがありました。数年たち、今彼は作る側を目指して、進路を選び、その道に進んでいます。 <br>全員が天才少年プログラマにはなれないかもしれませんが、少なくともこれだけゲームやプログラムに触れる機会が多くなった子供達に、自分たちもそれが作れるんだ、という小さな成功体験をさせることは、より幅広く新しい未来を考えるきっかけになるのではないでしょうか。 <br>

_ (´ε`;)ウーン… (2013-06-16 02:23)

いいことだとは思うけど、 <br>例えばゲームプログラミングであれば今は中間ライブラリなしに本格的なものは作れないし、そういうものを作る方は所詮は娯楽であるものから回収する難しさがあり、資金難で立ち行かなくなっている現状が有る。 <br>教育1つでこの構造的絶望スパイラルが変わる訳がない <br> <br>また元業界人として言わせてもらえば小中高の理数内容はほとんどゲーム作りには役に立たず、むしろ院卒〜研究者の一歩手前ぐらいの内容が重宝する。しかしこういうことに現在の「一歩一歩」の教育システムで触れる年齢となるとゲーム作りに大事な「幼さ」が失われており本末転倒。 <br> <br>けっきょく、プログラミングに突出した適正のある人を拾い上げることは不可能。興味のある人がわかった気になって中途半端な人材として社会に流され、英語教育と同じように大量のプログラミング嫌いを生む悪寒しかしない。

_ 千代子 (2013-06-16 02:38)

MatzさんやIT企業の人からみると、もっと優秀なプログラマは必要だ!というのはわかりますが、3児の親としての立場からいうと、プログラミングより、もっと大事で優先させたいというのが本音ですね。つまり需要がないと思います。プログラマにさせたくないですし、プログラミングに時間を割くくらいなら、その時間は、英語をやってほしいです。プログラミングは、言語や漢字、美術などとは違って、幼児時期の教育が必要なスキルとは思えません。料理やパソコンと同等でしょうか。大きくなってから初めても十分な一技術だと思います。 <br>やっても技術・家庭科の中で年に1回、触れる程度でいいと思います。

_ (´ε`;)ウーン… (2013-06-16 02:43)

あ、でも プログラ授業に反対意見ってわけじゃないです。 <br>どうせ今の最低な学校教育なるものが国を滅ぼすのは時間の問題ですから <br>座して朽ちるのを待つぐらいなら、やるだけやってみたらいいと思いますよ <br>

_ 千代子 (2013-06-16 02:59)

2回目です。上の投稿は脱字がありました。「もっと大事で優先させたいことがあるのが本音です」に訂正します。小学校での情報処理教育には反対です。この時期の子供にはもっと科学的なものやゼロから作り出せる脳を作りたいです。脳の中をビットと2進数で固定化させたくありません。将来の日本に求められているのも、ソフト開発技術ではなく、今までにない製品や科学技術による新しい市場の創出だと思います。子供の脳の中をノイマンアークテクチャー化してしまったら、日本の将来も既存の延長線でしかないと思います。ソフトウエア技術者が足りないのが問題なら、将来の頭脳に頼るのではなく、Rubyとか開発ツールの機能強化でプログラマ不足を解決してもらいたいです。

_ 参考に (2013-06-19 12:19)

>私は元々プログラミング教育が前提にしている「教育によって才能のない人が優秀なプログラマになることができる」という仮定をあまり信じていません。 <br> <br>これは同意見です。才能がない、やる気がない人が優秀なプログラマになることはないと思います。 <br> <br>ただ、 <br>>プログラミング教育が前提にしている「教育によって才能のない人が優秀なプログラマになることができる」という仮定 <br> <br>このような仮定があるのでしょうか? <br>プログラミング教育をしても時間の関係上、そして実務をやるわけではない以上、あくまでプログラミングの入門、初級の部分しかできないと思います。 <br>なので、プログラミング教育の目的を <br>・「プログラミングとは何か?の理解」 <br>・「初級のプログラミングができる人材の育成」 <br>・「プログラミングを理解しているプログラマ以外の人材育成(マネージャー、営業やクライアント、ユーザなど)」にするべきかと考えます。 <br> <br>教育機関や教育で優秀なプログラマを育てるのはほぼ無理と考えます。 <br> <br>>ですから、「教育」はダメと言いっぱなしではなく、「発見」を主体とした活動のほうが(優秀な)プログラマ不足解消の望みがあるのではないか、という提言のつもりでした。今、読み返すとその辺り読み取りにくいですね。 <br> <br>「優秀な」プログラマを「発見」することでプログラマ不足解消になる、という論理は、優秀なプログラマになる可能性がある才能の持ち主が日本に何人いるのか?、いたとしてプログラマになるのか? 本当に「優秀な」プログラマになるのか? 等、本当にプログラマ不足解消の解決策になるかわかりづらいところと思います。 <br> <br>英語教育が、優秀な英語の達人を教育するためのものではないように、プログラミング教育も優秀な方を育成するものではない方が良いと考えます。 <br> <br>優秀でなくても、プロのプログラマになるわけではなくても、国力に寄与するような人材を育成することを目的とするべきかと考えます。 <br> <br>起業家、クライアント、マネージャー、政治家が、プログラミングへの理解があるだけでも、国力を上げる、人材不足を補う、ましてやプログラマの労働環境向上に役立つのではないかと思います。 <br> <br> <br> <br> <br> <br> <br> <br>

_ (・(ェ)・) (2013-06-26 09:34)

>第一の課題は「誰が教えるか」という点です。学校をプログラミング教育の現場にするためには、当然のことながらプログラミングを教える教師が必要です。 <br>入門レベルに関していえば、誰が教えても同じでしょう。 <br> <br>>第二の課題は「どのように評価するか」ということです。学校の授業であるということは、なんらかの評価をする必要があるわけですが、これがまた困難です。 <br>現状の美術、道徳、体育、国語の感想文は何を根拠に評価しているのか。 <br>そして、教育機関は高校、専門学校、大学は一体、何を評価しているのか <br>>第三の課題は「なにを教えるか」ですが、この点は最初のふたつの課題に比べればなきに等しいものです。 <br>情報系の大学で何を教えているのか、基本情報試験は何のためにあるのか。基本情報試験が国家資格であるわけで、その取得は無意味だと言っているんでしょうか? <br>こんな餌で俺がクマー

_ Tori (2013-07-02 01:20)

ものづくりの点では別に単一のプログラミング言語による習得は重要ではないと思います。特に子供の頃にC言語を覚えても創造的にはマイナスだと思います。結局ミドルウェアが無いと開発できない体になってしまいますので。stdio実装するにはASM必須だと思いますが、ASMから教えますか? <br> <br>CPUのRISK的思考を仕込むのはセンスが要ると思います。 <br> <br>ものづくりの点では、基本2つだと思います。 <br>一つは創造。もう一つはフュージョンです。 <br>創造は教えるのが難しく、自分で創出する以外に理解する方法はないと思います。その点でフュージョンは簡単です。2つのものをくっつけるだけですから。 <br>そういう意味で、くっつける素材の多数のオブジェクト構造をどうやってねじ込むかが勝負になっていくんではないでしょうか。 <br> <br>それと、プログラマの適性の一つは、一般的に変なことが扱えるかどうかだと思います。 <br>なので、常識では図れません。

お名前:
E-mail:
コメント:
本日のTrackBacks(全1件) []
_ GUNMA GIS GEEK:プログラミング教育はプログラマーの育成を目的としなくていい (2013-06-13 13:55)

ちょっと待った!小中学校でのプログラミング教育 小中学校でのプログラミング教育については賛否両論あるみたいですね。 個人的には賛成です。 美術の授業は子供を絵描きやアーティストとして育てるために行われるわけでは無いし、音楽の授業も別に世の中に音楽家を増や..


«前の日記(2011-09-30) 最新 次の日記(2013-07-01)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.