パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

子供たちはプログラミングを学ぶべき?」記事へのコメント

  • 有用だと思う (スコア: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

            要約:暇だ

          • by Anonymous Coward

            つまり、

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

            ということですか。

            # 自分の主張を整理してから文章にしましょう。6点。

          • by Anonymous Coward

            私はあなたのことをミスター・スポックと思うことにします。という感覚です。

          • by Anonymous Coward

            長い。ともかく長い。そして、論点が見え辛い。
            これだけの文章書く暇があったら仕事したら?
            これでは、okky氏の言う事が正論で、#2087949の意見は駄論にしか見えない。

        • by nim (10479) on 2012年01月27日 13時09分 (#2088419)

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

          少なくとも日本の理科教育は、知識を問うのではなく、科学的な手法を理解することを目的に設計されていると思います。
          プログラミングはサイエンスの面もありますが、エンジニアリングの色が強い(と私は思う)ので、
          理科とは別に教科を立てるべきかもしれませんね。

          親コメント
        • by Anonymous Coward

          丸暗記で通用するのはテストだけでしょう。
          受験の為ではなく、本当の一般教養をつける為には丸暗記は役にたちません。

          • by new release (37404) on 2012年01月26日 19時21分 (#2088024) 日記

            「学ぶは、まねぶ」の言葉通り、丸暗記もいいとおもうよ。きちんと覚えてくれれば。
            プログラミングだって、丸覚えでできる部分は丸覚えでいいと思うよ。できるものなら。
            他の科学と違って、プログラミングでの丸覚えは、応用範囲があまりに限られていて、
            丸覚えより理解して考えた方がいいと普通の頭の持ち主なら思うと思うけど、
            そうなればプログラミング教育の目的達成だしね。

            親コメント
          • by the.ACount (31144) on 2012年01月26日 14時51分 (#2087874)

            だから、学校の勉強が役に立たないといわれる。
            プログラミングも同じことになるかな?

            --
            the.ACount
            親コメント
            • by Anonymous Coward
              「試験でいい点を取る/単位をもらうことが最終目標」になったときに出てくる斜め上な
              発想の数々を甘く見てはいけない。

              「それ試験ではきわめて有効だけど、そんな癖がついたら実戦ではむしろ有害」
              というノウハウが大手を振ってまかり通っているのを見て頭を抱えることになる。
            • by Anonymous Coward

              自分が無能だから学校教育から何も引き出せなかった、学べなかっただけなんだけどね

              • by the.ACount (31144) on 2012年01月27日 13時11分 (#2088423)

                「学校」は役に立ったけどね。
                自分での勉強の方が大きかったとは思うけど、他人に教える以上に効率の良い勉強法はないから、それを友人に対して行える場は極めて役に立った。

                --
                the.ACount
                親コメント
        • by Anonymous Coward

          プログラミング信者だね

        • by Anonymous Coward

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

          「丸暗記のために必要な手続きを見極め、手順を構築していく」

          という過程もあると思うし、そもそも

          「一般教養レベルで通用するためには、どのような手続き、手順があるか?」

          という問題に対し、見極め、構築していった結果「丸暗記」という解に辿り着くこともある…んじゃね?

          • by pee-wee (29602) on 2012年01月26日 16時32分 (#2087930)
            試験時間という限られた時間で、最速なアルゴリズムは、テーブル参照=O(1)だもんね。
            親コメント
            • 私がそれに思い至ったのは人生におけるペーパーテストの大部分を受け終わった大学4年生~修士の頃でしたが…。

              #それまでは試験に追われていたので試験について計算量的に考える余裕があまりなかった。

              ただまぁコンピュータと違って人間の記憶の基本メカニズムはテーブル参照でなく、
              いわばそれを「エミュレーション」してるようなものなので
              ロードするのも保持し続けるのも結構なコストがかかります。

              そのためよほど厳しく重要なタイム・アタックの必要があるか、日常的によほどの使用頻度(九九とか)がなければ
              丸暗記は、構築維持コストまで含めて総合的にみると、引き合わないわけですね。

              親コメント
          • 、見極め、構築していった結果「丸暗記」という解に辿り着くこともある…んじゃね?

            無意識のうちにやっているのではダメなのですよ。
            正しいのか間違っているのか、判りませんからね。

            解にたどりつくのは簡単です。その「たどりつく過程」の妥当性を無視するなら。

            --
            fjの教祖様
            親コメント
        • by Anonymous Coward
          アルゴリズムとデータ構造を学ばせれば済むことだと思うけどね。
          プログラミングを教える必要はない。
        • by Anonymous Coward

          「プログラミング」をえらく神聖視してるけど他にも通用する概念でしょう.
          たとえば生物を使った実験でも,『目的のために必要な手続きを見極め、手順を構築していく』だろう.
          何か文学小説を書くときも,その本の背景となる題材や資料を集めてきた上で書いていくというのも『目的のために必要な手続きを見極め、手順を構築していく』といえるのではないでしょうか.

          そもそも『目的のために必要な手続きを見極め、手順を構築していく』ってのは手段であって,
          目的を達成することが最も大切な事でしょう.
          >プログラミングはまさに『目的のために必要な手続きを見極め、手順を構築していく』事が全て。これこそが主目的になります。
          ってのはあまりにも暴論.

        • by Anonymous Coward

          あー、なんかギャップが見えた気がしました。

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

           暗記の是非については一旦置くとして、「学問の主目的」うんぬんについてはまったくそのとおりと思います。
          まさに他に目的があるんですよ。
           タレコミの元となった Andy Young 氏の論でも生物学者や事務屋の例が出てきてるし、
          むしろ「計算機を道具と割り切って使いこなすためには」

      • 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

        音楽や美術や習字よりは遥かに必要

        • 社会には芸術もスポーツもあってほしいが、芸術・スポーツ分野を*学校で教育として*やる必要はあるのかというTwitterでの議論 [togetter.com]を見てなるほどと思う部分はあったので最近は色々迷っています。

          ・歴史的な事情で西洋文化受容を目的に芸術・スポーツが科目として学校で教えられた
          ・学校で教えられるので地域社会に受け皿がないまま放置された
          ・学校でのトップダウン的な(そしてしばしば当人の動機から乖離した)芸術やスポーツが社会における芸術やスポーツの中心になってしまっている

          …というのは確かに問題であるなと。

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

      はい、先生!

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

      親コメント
      • by Anonymous Coward

        それは、プログラミングを仕事としていても、プログラミングの素養が無いという可能性は?

      • by Anonymous Coward

        だから他では使えない...

      • by Anonymous Coward

        うん、だからプログラマ止まりなんだね。

        # それ以前にその人達は子供の頃から勉強してた人たちなのか?

    • by Anonymous Coward

      私とうちの嫁さんの家事の仕方の差を見ていると、プログラミングというか、アルゴリズムや最適化について勉強しておくのは有用だと思いました。
      たぶん、プログラムをちゃんと勉強している人が、していないひとの家事を見ているとイライラすると思います。

      逆に家事ができない人にプログラムを書かすとスパゲッティプログラマトレになります。

      • ちなみにどちらがプログラマ的なんでしょうか?>ご主人と奥様

        どの辺の家事の仕方に差が出ていると感じられる、みたいなところも
        説明してもらえるとうれしいです。

        我が家の家事担当としては、
        ・昔Excelマクロを書いていた兼業主婦のカミサン(いまでは関数ONLYらしい)
        ・日常的にプログラムを書く(バリバリなプログラマではないですが)兼業主夫の私
        がいるので、晩酌の会話ネタになるのではと。

        親コメント
        • by kohzoh (34869) on 2012年01月26日 21時29分 (#2088078) 日記

          元ACじゃないけど、うちの場合。
          ・妻は「プ」の字も知らない
          ・マルチタスク制御系の私

          朝起きてコーヒー入れる準備してドリップのスイッチをオンしてから布団をたたもうとする私。
          「起きたらまず布団をたたんでよ! コーヒーなんてあとでいいでしょ」と怒られる。

          私は、イベント発行→完了割り込み待ちで済む家事と張り付いて処理っぱなしになる家事とを並行にやろうとしている。
          妻は、朝起きたら布団をたたむ、それが終わったら朝食の準備、という作法(躾)を守っている。

          そんな感じ。

          親コメント
          • by Anonymous Coward on 2012年01月26日 23時13分 (#2088141)
            布団は床面積を占有したり畳むときバサバサ埃を出したりしてしまうので、住環境というクリティカルセクションを必要とします。奥様はちゃんとミューテックスで制御して布団、コーヒーの順で処理するのでよいのですが、あなたは競合を発生させて埃入りのコーヒーを作ってしまいます。
            どちらがプログラミング的に正しいかもうお分かりですね。
            親コメント
            • by Anonymous Coward

              扉というプロセス分離機構があるかどうかで、どちらが正しいかは変わる。

              • by kohzoh (34869) on 2012年01月27日 0時36分 (#2088185) 日記

                魔法瓶式のドリッパーなので埃は入らないなー。
                ドリップスタート、牛乳電子レンジスタート、布団片付け→片付け完了、牛乳完了、ドリップ完了。
                こんな順番。

                埃に関して言えば、私がまず掃除機をかけて床の埃が舞わないようにしてから高いところを拭く派なのに対して、妻はまずハタキで埃を巻き上げてから床掃除機かける派です。

                妻:「ミューテックス? 知らん」

                後ろでそうおっしゃっております、ハイ。

                親コメント
              • by Anonymous Coward
                CPU(あなた)は動き続けるので効率よく使ってるように見えますけど
                寝室とキッチンをもう1往復しているのと、2個目のCPU(奥様)がレンジや布団が敷かれている床などのリソースを使えないとかはありますね。

                # 言いたいだけです。

                ホコリに関しては奥様のやり方のほうがよく聞きますね。

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...