パスワードを忘れた? アカウント作成
1431946 story
プログラミング

子供たちはプログラミングを学ぶべき? 148

ストーリー by reo
べきかと言われれば、べき 部門より

capra 曰く、

本家 /. 記事「Why We Should Teach Our Kids To Code」より。

The Kernel の記事にて、現代の子供たちは学校でプログラミング必須として学ぶべしとの Andy Young 氏の論が展開されている。彼の主張は次のような内容だ。

「コンピュータとは、難題解決に必要な複雑なステップの自動化および反復を手助けしてくれるものだ。これは例えゲノムモデリングに取り組む生物学者だろうが、膨大な量のアーカイブからデータを探し出さねばならない事務職だろうが必要となってくるものだ。

ツールの使用は人を人たらしめるものであり、そしてコンピュータは人類の最も強力なツールである。コンピュータのおかげで効率向上を図ることができ、また無ければ達成できないことも多々ある。しかし大多数の人はこの目的実現の術を一部の人間に委ねて暮らしている。

プログラミングとはコンピュータに指示を与える行為である。アウトプットがワープロだろうとセントラルヒーティングシステムだろうと、はたまた航空機制御システムだろうと、コーディングができなければ、そのツールの恩恵を最大限に受けられるかどうかを他人の手に委ねるしかなくなってしまうのである。」

最近では英国でコンピュータ教育の見直しが行われているお話が紹介されたが (/.J 記事) 。子供たちにはどのようなコンピュータ教育が必要だろうか? /.J 諸兄方のご意見はいかがだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by kcg (26566) on 2012年01月26日 12時29分 (#2087754) ホームページ 日記

    義務教育にプログラミングを取り込めばいいと思いますが
    現在の巷のプログラミング言語と取り巻く環境は非常に複雑なので難しそうですね。

    Scratchが良いと思います。漢字のように学年ごとに教えるべき項目を確定させるのは
    とても困難な作業だと思いますが、使ううちに徐々に高度な機能が解禁されるような工夫で
    最初は幼稚園児でもいじれて、そのうち実用的なツール開発もできるような
    そんな導線が作れたらとても良いですね。

    Scratchの様な敷居の低いプログラミング環境と、各種IT化製品のAPI提供が進めば
    日常生活の中にもプログラミングが当たり前のように行えるようになると思います。

    FF12のガンビットシステムのようにゲームの中にプログラミング的要素を増やして
    遊びながら自然と学べるようだと素敵ですね。

    人が自然言語や数を習得したように、プログラマブルな計算機で問題を解決するようになることは自然な流れのように思います。

  • 有用だと思う (スコア:3, すばらしい洞察)

    by MeeD (18266) on 2012年01月26日 12時12分 (#2087740)

    将来的にコンピュータ使わない職につくとしても、
    目的のために必要な手続きを見極め、手順を構築していくという
    プログラミングの本質は万人に有効だと思います。ぜひやってほしいですね。

    • by Anonymous Coward on 2012年01月26日 13時16分 (#2087800)

      将来的に(*)使わない職につくとしても、目的のために必要な手続きを見極め、手順を構築していくという(*)の本質は万人に有効だと思います。

      これって、あらゆる学問や知識体系に言えることなんじゃないでしょうか?(*)に好きな言葉を入れればたいていは何でも当てはまります。だからこその、小・中・高・大といった教育があります。どれも非常に役に立つことなのです。プログラミングのすばらしさと同じくらい、他のすばらしさも忘れないで学んでください。

      児童・生徒・学生であれば、今学んでいること、そして学べる機会があることをうまく活用して「自分で自分を育て」てもらいたいです。不必要なことはなにもないのです。

      親コメント
      • うん、これを書いた人は
        『目的のために必要な手続きを見極め、手順を構築していく』
        という部分を全く理解できていない、と言う事がよく判る。

        他のジャンルの学問は、一般教養レベルでは『必要な手続きを見極め、手順を構築していく』代わりに何かを丸暗記しても通用してしまいます。
        なぜなら、『必要な手続きを見極め、手順を構築していく』事はその学問の主目的ではないからです。

        が、プログラミングはまさに『目的のために必要な手続きを見極め、手順を構築していく』事が全て。これこそが主目的になります。
        ですので、(*)の部分には「プログラミング」以外の何物も入りません。

        # もうちょっと正確に言うと (*) の所に本当に収まるものは、全て「プログラミングの一種」と呼んでよい。

        --
        fjの教祖様
        親コメント
        • by Anonymous Coward on 2012年01月26日 17時04分 (#2087949)

          『目的のために必要な手続きを見極め、手順を構築していく』
          という部分をプログラミングにしか解釈できない人が多いことが、大変よくわかりました。たいへんに悲しいと思います。これは、おそらく言葉の問題、そして「何を重要視するか」が大きく異なっているからだとは思います。

          無論、このスラドというコミュニティはおそらくこの解釈はマジョリティでそれなりに正しいことと思えるかもしれませんし、発言者そのものの意図もプログラムが前提であることは間違いが無いと思います。ですが、蛇足的ですが、非常に許せない暴言と感じた言葉がいくつかありましたので、大人げなく文章を投下させていただきます。

          >他のジャンルの学問は、一般教養レベルでは『必要な手続きを見極め、
          >手順を構築していく』代わりに何かを丸暗記しても通用してしまいます。

          これは大きな間違いです。通用しません。試験では通用するかもしれませんが、それでは教養を理解したとは言いませんし、そもそも学問では全く通用しません。ナンセンスです。

          たとえば、物理とか数学の問題はどうなのですか?数学の論理や物理の論理を理解するには、手続きを見極めて、手順を構築する必要があるのではないのですか?

          たとえば、歴史はどうなのですか?
          丸暗記するのが教養なのですか?学問なのですか?

          暗記学問・教養の代表のように言われますが、丸暗記しているだけの教育を受けて、丸暗記しているだけの方法論でしか世界の歴史を理解してないのならばそうなのでしょう。

          でも、世界の流れや今の社会がどのように構成された理解するためには、非常に複雑に世界にちりばめられた要素を様々に研究された手続きを積み重ねて、論理で繋いで、構築、解釈するという巨大なロジックを作る作業が必要です。それらを怠っている限り、学問としての歴史のみならず、教養としての歴史の理解という目的も、それは十分に達成できていません

          「手続きそのものが主目的ではない」という意味では、多くの学問は手続きそのものが目的ではないと見えるかもしれません。応用に近いところでは手続きそのものは重要視されないのも事実です。でもそれはプログラミングも一緒です。「動けば良い」という発想ならば、結構手続きがいい加減でも動きます。

          多くの教養や学問は、手続きを正しく経ないと正しく理解できないのです。プログラミング以外の学問分野が丸暗記で目的に達成できると思っているのならば、それは多くの学問分野に対する冒涜ですし、教養がないと自らさらけ出しているのと同義です。人類の数千年の叡智を否定するおつもりですか。

          ちなみに、歴史「学」となってしまうと、実は手続きそのものの研究ががある意味目的の学問なのはよくご存じだと思います。大学の歴史学の講義ではその点を非常に強調されている人が多いはずです。その意味ではより専門的に学問を見てしまえば、研究者は手続きそのものを研究していると言い換えることも出来るかもしれません。

          「必要な手続きを見極め、手順を構築していく」
          ことそのものが、ある意味、まさに学問と言えることで、それこそが人類の叡智の集大成です。

          教養の段階で丸暗記教育しか受けずに、それを丸暗記としか享受できないセンスで生活していて、丸暗記で満足して理解している段階では、それはその教養なり学問が未完成ということです。プログラムで言うところの「動かないプログラム」「バグのあるプログラム」をコーディングしただけです。

          専門性を重視せずに、一般教養の段階でもそれらの手続きをきちんとこなしてない人の理解には非常に多くの間違いがあり、誤解して理解しています。そして、それはあまり教養があるとは言いません。

          プログラムならば、動かない物はコーディングに失敗したら、手続きを間違っていたら動きませんので大変にわかりやすいです。(バグはわかりにくいですので、その意味ではバグ自体にこそある意味学問的なものを感じなくもないです)。

          ところが、学問の多くは、手続きの結果得られた答えが正しいかどうかの判断が非常に曖昧です。

          さらに言うと、分野によっては実験事実と合わせるのが正しいですが、実は意外に実験事実、歴史的事実そのものが間違っていることも多いです。そのように、「解」そのものが正しいのかどうかの検証を行うために、手続きそのものにも厳密な検証が必要となります。様々に積み重ねられた手続きを何度も検証する必要があります。手続きを疑い、アルゴリズムそのものを疑い、アルゴリズムそのものの元になった理論を疑い、検証結果を疑います。すべてを疑い、論理を構築し、物事をなします。

          理解した気になって、"プログラムが" 動いた気になっていると・・・バグに足下をすくわれ、セキュリティホールにやられます。

          ですので、教養と学問を「動かない段階」「バグがある段階」でそれをそうだと気がつかないことが今の教育の大きな問題でもあります。正しい教養や学問を身につけるというのは、むしろ手続きこそが大事です。それは「主目的」なのです。

          特に今回話題となっている「教育」に関しては紛れもなくそれが主目的です。
          そうあるべきです。
          「目的のために必要な手続きを見極め、手順を構築していく」
          事が肝要です。

          丸暗記のような教育に染まって、教養や学問的な理解を初めとした論理的な思考がストップしていると、プログラミングが世の中の論理的な事象の中心見えるかもしれませんが、世の中もっと様々な論理的な考え方に溢れていることを知ってください。

          その意味では、あなたのご意見は、逆説的ですが、あらゆる学問はプログラミングの一種であるということを言っているようにしか見えません。無論、それをそのように定義するのでしたらそれはそれで良いと思います。

          その定義ならば「あらゆる学問」はプログラミングの一種である。
          (ただし、サイエンス(社会科学、自然科学)に限る。人文系は知らん)

          そう考えるのは否定しません。
          ただし、数千年の歴史を持つあらゆる学問と、この数十年で派生したプログラムを比較したときに、どちらがより世間的にマジョリティであるかということは言うまでもありません。

          ですので。しつこいですが。

          >将来的に(*)使わない職につくとしても、目的のために必要な手続きを
          >見極め、手順を構築していくという(*)の本質は万人に有効だと思います。

          の(*) に関して言えば、(*)に学問や知識体系という言葉を割り振ることは、より正しいことです。

          プログラミングから手続きを経て物事を考える道に入るのは教育的には非常に良いことだとは感じます。素晴らしいと思います。それを元に、もっと様々な事柄を論理的に学ぶ習慣をつけてください。高校くらいの範囲からしっかり手順を経て論理的に構築するように学ぶとかなりいろいろな知見がしっかりと身につくと思います。

          ちなみに私は理論物理学を仕事にしていて、趣味が歴史の勉強で、実際問題仕事の多くはプログラムを書くことです。最近は歴史の(特に)経済的な見地からの理解と構築に非常に興味を持っています。

          親コメント
      • by Anonymous Coward on 2012年01月26日 17時01分 (#2087944)

        まあ、古文・漢文(第二外国語としての中国語なら兎も角)・美術・書道・音楽が、目的のために必要な手続きを見極め手順構築法の学習であるプログラミングより優先するべきものとは思えんな。
        歴史的経緯・学閥・教員雇用維持のために維持されているのだろうが。
        有限の中高生の学習能力(リソース)をどこに振り分けるべきか、教育委員会や文部科学省に判定する能力は無いと、橋ズム市長なら断ずるだろうな。

        親コメント
        • by yu-na (10754) on 2012年01月26日 22時06分 (#2088100) 日記
          でも,プログラムで人生の目的は導きだせないと思うよ.
          機械を育てている訳じゃないんだし,断言できるほどに
          優先度が違うとは思えないです.

          宇宙の答えは 42 かも知れないけれど ;-p
          親コメント
    • by Anonymous Coward on 2012年01月26日 15時11分 (#2087886)

      はい、先生!

      実生活では計画の立案能力や実行能力にまったく欠けているプログラマというのを
      私は山ほど見てきています!

      親コメント
  • ネタ元は要は数学みたいなもんだということですかね。

    クヌース先生が昔、何かのインタビューでプログラミングに向いた頭の持ち主は時代地域を
    問わず一定の率だけいるという話をしてました。

    これは数学も同じで向く人と向かない人がいるが、数学は必修科目として向き不向きを問わず
    高校までは教えられてる。数学は工学を始め幅広い分野で利用されていて、苦手でも知っていたほうが
    その人が生きるのに役立つから。
    プログラミングも同じで今や分野をとわず広くコンピュータが使われているのだから教えたほうが良い。

    ただ、結構コーディングってのは向かない人には苦痛らしいので、苦痛を押してまでやる
    必要があるんかなとも思えるけどね。コンピュータもどんどん速くなってて、将来的には
    口語で命令すれば何かしてくれるようなのも実現するかもしんないし。

    • 向き不向きがあるのは仕方ないけど
      必要か必要でないかでいうと、私も必要といってもいいと思いました。
      物理的に見えるものならなんとなく理解できるけど
      コンピューターなんて知らない人から見たらファンタジーですから。
      コンピューター無しの生活が考えられなくなった昨今、基本的なことは勉強したほうがいいと思います。
      その基本の中で簡単なプログラム言語もやればいいかなと(パイソン?)

      歴史の時間半分に減らして代わりにコンピューターの基礎やってもいいような気がしてきた。

      親コメント
    • Makeとかでは結構子供が弄っていたのを思い出します。

      http://d.hatena.ne.jp/suikan/20111204/1322959115 [hatena.ne.jp]
      こんな例はイレギュラーですけど、アルゴリズムの開始/終了/処理/判断があれば問題は記述できることとか分かるだけでも潰しが効くと思うんですよね。

      親コメント
  • 記事のみからの感想ですが、この氏の論展開は好きじゃない。
    コーディングを通じて、柔軟にロジックを組めるようになることと、その生涯における有用性を主張するべきかと思います。

  • by Anonymous Coward on 2012年01月26日 12時52分 (#2087773)

    子A「この間の宿題面倒だからベトナム人に投げちゃった♪」
    子B「支払はアイテム?」
    子A「そ」

  • by Anonymous Coward on 2012年01月26日 13時07分 (#2087790)

    面白い授業ができれば子供たちも覚えると思います
    刺激的な授業さえできれば覚えてくれるでしょうね

    しかし実際はC言語の入門書を棒読みしノートをとらされるだけの授業になります
    これではつまらないし子供たちも覚えませんよ

    教える側もわかってます
    でも人がいないんです

    • by Anonymous Coward on 2012年01月26日 13時45分 (#2087822)

      教科ごとに特化した教師が必要だというだけのことではないかな?
      特に小学校で、一部の専門教科以外、すべてクラス担当が教えるという体制では、教師の負担も大きく、楽しい授業なんて組めないでしょう。義務教育で覚えるべきことは、増えることはあっても、減ることはない。それをゆとり教育の名の下、実際には教師の負担を減らすために、授業時間を減らしたり、教える内容を減らしたりしたことが、日本の衰退を招いている。教師の負担が重いとか、落ちこぼれ対策が必要だというなら、1クラスあたりの教員数や生徒数の数合わせではなく、取得と別のクラス編成と特定分野の専門教員を増やせばいいだけです。
      特定分野の専門教員なら、その特定分野の範囲内なら、教える内容が毎年毎年そんなに変わるわけないですから、面白い授業をするための教材の充実や研究を積み上げられるでしょうからね。

      親コメント
  • 以下日本の話ということで。
    英語の知識が必要な言語ばかりです。
    私はアホなので中学生までローマ字が読めませんでしたし、英語なんてもってのほかです。
    ファイナルファンタジーの意味が分かっていなかったです。
    ちびっこにはそういった文字の学習コストは高くその時点でいやになってしまいそうです。
    日本語のプログラミング言語が必要でしょう。
    なでしこ等あるそうですが、なんかいまいちです。
    IMEに依存しない、ひらがなだけ打てるエディタと(つまりは「a」と打つと「ち」が表示される。IMEは混乱の元なので非推奨。さらにはキーバインドもあかさたなにするべき)、こんな言語でどうでしょう。
    -----
    かず かいすう ← 10
    もじ せりふ ← 「ゆっくりしていってね!」

    ひょうじ かいすう + 「かい」 + せりふ
    -----
    ドヤッ

    …とは言え変数の概念自体辛いかもしれませんね。
  • by Anonymous Coward on 2012年01月26日 23時43分 (#2088160)

    理系の人には理解できない領域かもしれませんが、
    まっとうな文学作品や文章は文章の構造や論理的な組み立てにより成り立っています。
    そうやってプログラムの骨格を組み立てる能力を習得してからでないと
    細部にばかりこだわって全体の見えないミクロ思考なプログラマーが乱造されるのではないかと危惧しています。

  • ここでいう「子供」がどの程度の学齢を指すのかにもよりますが・・・・・・・

    論理的思考を教育するための手段としてプログラミングが採用されているならそれは不適切だと思います。
    コンピュータ教育の一環としてのプログラミングなら、他の学問を習得してからでも十分に間に合うでしょう。

    というか、論理的な思考が身についていない状態で、技術としてプログラミングを学ぶことに如何ほどの意味があるのか疑問です。
  • by Anonymous Coward on 2012年01月26日 12時30分 (#2087755)

    なんちゃってプログラマーの仕事ががががが……

  • 論理的思考能力をうんぬんってのは他の諸兄にお任せするとして、
    単純に自分が使用する道具についての基本的な概念は出来るだけ知っておいた方がいいんじゃないかと思います。

  • by Anonymous Coward on 2012年01月26日 13時00分 (#2087784)

    "機械を動かす人間"をプログラムする技術を持った人の方が優位だからなぁ

  • この理論だと
    「料理をする人は、野菜の作り方を勉強するべきである」とか
    「車を運転する人は、車の動作原理を勉強するべきである」って
    話になっちゃいますよね。

    産業革命からこっち、システムがどんどん巨大になっている人間社会の中では、
    分業が進んでいるわけですから、すべてを学ぶには時間が足りなさすぎます。
    勉強できる環境を提供するのはいいけど「勉強すべき」は言い過ぎかとおもいます。
    • 料理をする人も、車を運転する人も、国語や算数の勉強をするべきなのと同様に
      プログラミングの勉強をするべきという時代が来ると思います。

      元の意見は、それぞれの専門分野があるのは当然わかっている上で、
      プログラミングは基礎学力となるべきという話で、特定の専門家だけが学ぶものではないという主張なんだと思います。

      それはなぜかというと、ありとあらゆる分野で活用できるからでしょう。
      メニューから機能を選ぶ、提示されたハイとイイエを選ぶ、それだけではコンピュータを使っているとは言えない。
      プログラミングによってロジックを指示してコンピュータに自分だけの問題を解かせる。
      誰にでも振りかかる個別の問題を自力で解決できるようになる。

      だからこそ、勉強すべきなんだと思います。
      他人に提供するアプリケーションを記述するというのは専門家の仕事で良いと思いますが
      自分の問題を自分で高度処理できないというのは、文字が読めない、足し算ができない、ぐらいに原始的に思えるような
      そういう常識になるべきという話なんだと思います。

      親コメント
      • > メニューから機能を選ぶ、提示されたハイとイイエを選ぶ、
        > それだけではコンピュータを使っているとは言えない。
        > プログラミングによってロジックを指示してコンピュータに
        > 自分だけの問題を解かせる。
        > 誰にでも振りかかる個別の問題を自力で解決できるようになる。
        それって,ソフトウェア工学が発展したら,不要なのでは?
        スタートレックの乗組員のコンピュータへの依頼がプログラミングとは思えない.

        今はまだ,人のように自然言語を理解したり,人のように他者の意図を理解する
        ソフトウェアは存在しないけれど,もしそれが存在したとして万人にプログラミングは
        必要なのでしょうか?

        コンピュータの能力の不備から,現状ではある局面においてプログラミングは
        便利な場合もありますが,それが社会や現実のすべてではないのでは無いですか?

        自然言語でコンピュータに指示を出すのもプログラミングというのなら,
        分からなくもないですが,その場合,国語で十分ですよね?

        プログラミングはまだしも,コーディングなんて,本来人間がするべき作業
        じゃない.(なぜ,道具であるコンピュータに人間様が歩み寄らなければならないのか?)

        ”ソフトウェア工学の怠慢” と言った先生がいたけれど,現状がしばらく続くのなら
        便利な道具の使い方としてのプログラミングはあっても良いと思うけれど,
        基礎的な教育としてはもっとしっかり科学とか論理とか芸術とか学んでほしいなぁ
        と個人的には思います.
        論理的思考を鍛えるための道具としてプログラミングを導入するのは悪くはないと
        思いますが.

        # 確かに,人手で大量の作業をしている姿を見ると,イライラはしますけどね.
        # script を書いてあげても使い方のサポートをするのが面倒なので,放置しますが
        親コメント
  • by the.ACount (31144) on 2012年01月26日 14時58分 (#2087876)

    ビデオの予約なんかもプログラミングじゃない?

    --
    the.ACount
  • こまごまとExcelマクロを書く仕事があるので、子供に仕込んで
    アウトソースしたいと常々考えています。
    (子供は来年小学生という年なので実現は数年後ですけど。)

    「最初に学ぶプログラミング言語がVBAってのはいかがなものか?」
    という/.J 諸兄のご意見もあるかと思いますが、現実の仕事のお題を
    解決できるプログラミング言語としては一番身近だな、と思っています。

    すぐに結果がわかるし、開発環境的にもある程度のものは提供
    されてるしということで。

typodupeerror

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

読み込み中...