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

コンピューターサイエンスのカリキュラムに不足しているものは?」記事へのコメント

  • コンピューターサイエンス教育では、 C も Java も教えないよ。 C なり Java なりを道具にして、アルゴリズムの設計と実装という、 500 年後にも意味のある (と期待される) 概念を教えるんだよ。

    もちろん、コンピューターサイエンスの中でも専門とする内容によっては Linux カーネルを改造することが必要になったり Haskell コンパイラーを書くことが必要になったりするから、そういう人は必要な技術を学ぶけれど、「コンピューターサイエンス学科の卒業生なんだから C 言語でプログラムが書けるはず」みたいな先入観はやめた方がいいと思う。

    •  そのような技術者の需要は日本では極めて少ない。CなりJavaなりが自由に書けるようになってからにしてほしい。
      日本の情報産業は日本語や日本の商習慣の壁に守られているから存在している、農業より世界に輸出できていない産業ということを自覚するべき。

      親コメント
      • いや、だから「コンピューターサイエンス学科の卒業生ならソフトウェア技術者として必要な知識や技術を持っている」という先入観をやめた方がいいと思うんだ。大学は専門学校じゃない。

        親コメント
        •  需要がないものを生み出してどうします。まして、学生はそれを知っているですか?
          「いまから勉強することは、日本の情報産業とは関係がないサイエンスです」ときちんと説明していますか。
          説明しているならば学生の自己責任ともいえますが、そうでなければ学生に対する詐欺ですよ。

          親コメント
          • vaxさんの記述には様々な点で問題があります。

            第一に、fcp氏の記述では「コンピューターサイエンス学科の卒業生」に対してvax氏は「そのような技術者」と言っていますが、fcp氏は「卒業生=技術者」とは言っていません。従って、「そのような技術者」という記述には仮定の誤りがあります。

            第二に、たしかにそのような卒業生「の需要は日本では極めて少ない」かもしれませんが、
            需要があるかどうかと本当に必要なのかどうかは別の話です。
            企業がそういう「技術」面の必要性しか認識していないだけかもしれません。
            そもそも、大学で行うことは「まだ広くその需要すら知られていない最先端の研究内容」を行う可能性があります。
            例えば一昔前、一般に知られる以前の画像認識やニューラルネットはそういう扱いだったでしょう。

            第三に、『「いまから勉強することは、日本の情報産業とは関係がないサイエンスです」ときちんと説明』すべきという主張について、それを説明するのならば『今から勉強することは、真に大規模かつ困難な問題を解くために必要不可欠な手段であって、この内容を学ぶことはあなたに他の学部では得られない真の専門性を与える』ということも同時に説明すべきです。fcp氏の言うとおり、この種の知識は500年経っても使える知識であり、と同時に日本だけにとどまらず世界のどの地域でも有効な知識です。そして、そういった「他の方法では得られない技術的な強み」こそが大学で得るべきものです。

            メモリ管理は、もしそれが本当の問題なのなら、在野のあまたのCプログラマから引っ張ってくればよい。凄腕Cプログラマなら、多大な工数をかけて、既存のGCより効率的にメモリを管理するコードを書けるかもしれません。しかし、Cが将来長きにわたって常に有効なプログラミング言語かどうかはわかりません。メモリ管理自体についても、近年のCコンパイラvs手書きアセンブラのように、何らかのブレークスルーによってGCが人間の手作業malloc/freeに対してほとんど常に上回る事になるかもしれません。どちらの場合も、その知識への需要が長続きしないことを意味します。

            一方、いくら優秀なCプログラマでも、「アルゴリズム的に開放できない必要なメモリ」は解放できません。そして、どうやればその「真に必要なメモリ=空間計算量」を減らせるかという問題は、計算機科学のバックグラウンドがなくては解決できません。

            確かに、日本の企業が常に「計算機科学的に最先端の」研究を行っているとは言えません。
            webサービスを作る程度の技術力しか必要がない企業では、計算機科学の知見は必要ないでしょう
            (それらが使っているコンパイラには計算機科学がふんだんに使われていますが)。
            しかし、そのことと、「では日本の計算機科学科で今教えられていることは不必要か」という話は別です。
            重要な点は、計算機科学の知見は「汎用」ですから、「未知の問題」に対しても適用できるということです。
            日本の情報産業の未来は、もしかしたら大量生産のようにしょうもないwebサイトを作ることにしかないのかもしれませんが、もし情報産業が新たなサービスや技術を目指すべきだと考えるなら、現在大学で教えられていることには十分に意義があるでしょう。

            長文失礼。アセンブリ言語で書いてみる経験は必要だと思います :b

            --
            新人。プログラマレベルをポケモンで言うと、コラッタぐらい
            親コメント
            • by vax730 (32985) on 2014年08月11日 7時57分 (#2654561)

               卒業生をみれば、大半が情報系の技術者か情報システムの管理技術社をやっているのではないでしょうか。
              会社も基礎研究をしている余裕はなくなって来ていますし。(大半でもイコールでないから論理としておかしいと言いたいのでしょうけれど。)
               ビッグデータで機械学習は博士課程の学生でも需要が出てきています。DeepNetでニューラルネットワークは復権中です。
              画像処理系は昔から博士の学生に需要はあります。
              ただ、大学院しかないところの画像処理の先生が、情報工学科の先生に「画像処理は情報工学ではない」と言われたと言って怒っていました。
              情報工学科の先生はなんか了見がが狭いように思います。
               500年先のことを教えることも良いですが、現在のことを教えるべきと思います。
              博士課程で深く勉強することはかまいませんが、学部の情報工学科を出たならば、malloc()やfree()ぐらい知っていて欲しいです。
              また、エイトクイーン、クイックソート、ヒープソートぐらいは自分でプログラミングできるようにして欲しいと思います。
              (単なるちゃちゃですが、500年先も必要ということは、500年経っても人工知能はできないということですね。情報系の人間としては安心しました。)
               画像処理とか、メモリーの利用が最初から計算できて。まとめて使ってすぐにフリーするような場合は、最初にmalloc()で大きく確保してから、
              自分で割り当てとフリーしたほうが速い場合もあります。その場合は、アラインメントについては知っているだけで良いので知ってて欲しいです。

               最先端の技術を大学院で教えることは問題ないと思いますが、学部とは分けて考えて欲しいと思います。

              親コメント
              • > 500年先のことを教えることも良いですが、現在のことを教えるべきと思います。

                いえ、そこの論理がおかしくて。
                500年先使えるんですから、今も使えるでしょう。
                で、それを活かせるような職を選ばなかったのは、その学生が戦略的な失敗を犯しているだけです。

                ちゃちゃについてですが、500年後には人工知能はできているかもしれません。
                量子コンピュータができればNP-complete以上の問題が簡単に解けるようになっているかもしれませんし、
                PSPACE-hardも解けるかもしれません。
                しかしそのかわり、そのころには既に人工知能以上に困難な問題が生まれているかもしれません。

                malloc/freeという固有名詞自体についてはどうかと思いますが、そういうメモリ管理が行われているということについては知るべきだと思います。

                > 最初にmalloc()で大きく確保してから、自分で割り当てとフリーしたほうが速い

                それはGC付きの言語でも同じです。ヒープの確保は高コスト、ということがmalloc/freeを習う上で理解されていればよいわけですから、同じく配列生成時に気を使えば良いということが理解されればよいと思います。

                > 情報工学科の先生に「画像処理は情報工学ではない」

                情報工学と計算機科学というのもまた微妙な問題ですね、同じではない気がします。はっきりとどう違うかわかりませんが。
                画像認識には困難さがありますが、画像処理というのはどうなんでしょうね?
                絵の画素を加工するぐらいのことであったら、計算量的困難さは無いはずです。
                この点はどこまで賢い加工を行うかにもよると思います。
                画像圧縮アルゴリズムとかになれば計算機科学でしょう。

                --
                新人。プログラマレベルをポケモンで言うと、コラッタぐらい
                親コメント
            • by Anonymous Coward

              アセンブリ言語でいえば、CASLとかよかったな。
              CASLの仕様というよりも、資格を取るというモチベーションで学べるw
              そのうえでハードウェア寄りの部分の扱い方も学べたらgood

              • by Anonymous Coward

                CAP-X より素直でよかったですね。
                ちょうどCAP-XからCASLへの切り替えの頃に受けることになって、「次まで待てばCASLだから」と一回見送った思い出があります。

          • by Anonymous Coward on 2014年08月10日 23時56分 (#2654491)

            >> 需要がないものを生み出してどうします。

            それはネットでよく見かける

            「企業が本当に必要としているような能力を持った人材を日本の大学は輩出してくれない」
             vs
            「米国では博士号を持っているような人材がどんどん有効活用されているのに,そういう人材を使いこなせず,採用すらしない日本企業の能力の問題」
             
            の押し問答ですよ.
            #少なくともCS分野では米国と日本にこれだけ技術力でもビジネスでも差が付いているわけで,上記のどちらの言い分の方が筋が通ってるかは明らかだとは思いますし,本当にそういう目先の即戦力が重要ならば,国を挙げて専門学校にもっと注力するべきだと思いますけどね.

            親コメント
            • by Anonymous Coward

              社会が本当に必要としているような能力を持った人材を日本の大学はしかるべきポストに就けないというのが問題でしょ。
              何の役に立つのか見当もつかないような研究をしてる、もしくはそもそも研究をしてない奴らがどれだけ大学にいると思ってるのか。
              そしてそれは本当に大学の問題なのか?

            • by Anonymous Coward

              米国ではSunやGoogle等、大学の研究からのスピンオフも多いですよね?
              日本でも在るんでしょうが、それが大企業にまで成長したというのは思い浮かびません。
              日本企業のせいにしないで、そんなに優秀な人材、独創的な成果があるなら、起業すればいいんじゃないですか?

          • 私は大学でコンピュータサイエンスが副専攻でしたが、
            大学で学ぶのは当然サイエンスだと思っていました。
            情報産業に就職して役にたつような訓練がしたければ、職業訓練校にでもいけばいいんじゃないですかね。
            大学は学問の場であって、少なくとも「就職して役にたつようなことを学ぶため」のところではありません。
            企業が大学で学んだ学問や教養を期待して学生を採用するのは勝手ですが、
            学生や大学が「企業で役に立つかどうか」を考えるのは本末転倒です。

            >需要がないものを生み出してどうします。まして、学生はそれを知っているですか?

            需要がないかどうか決めるのは、たかだか一産業じゃないですよ。
            私の同期は金融機関とメーカーの研究所が多かったです。

            親コメント
            • by Anonymous Coward

              大学は学問の場であって、少なくとも「就職して役にたつようなことを学ぶため」のところではありません。

              大学で実学を教えたっていいと思うけどね。
              例えば大学医学部って、ほぼ医者の職業訓練校じゃないの?もちろん研究する人もいるけどさ。

              機械工学に相当する計算機分野は計算機工学(CE)?
              計算機科学か工学、どっちを自分がやりたいかわからん子も多いだろうから、
              入学してから専攻が選べるようになってればいいんじゃない?

            • by Anonymous Coward

              私は大学でコンピュータサイエンスが副専攻でしたが、大学で学ぶのは当然サイエンスだと思っていました。
              情報産業に就職して役にたつような訓練がしたければ、職業訓練校にでもいけばいいんじゃないですかね。
              大学は学問の場であって、少なくとも「就職して役にたつようなことを学ぶため」のところではありません。

              その通りだと思います。

              一流どころのCS卒業生ならCやJavaぐらい使いこなせると思いますが、そのような
              優秀な人材に外注で片づけられるような作業を割り当てようという企業がおかしい。

              CS卒業生にやらせるべきは、ソフトやシステムの設計や改良等であって、内製にしろ
              外注にしろ、プログラミングはほかの人がやればよろしい。そうなっていない企業は、
              事業規模が適正でないか、企業構造がおかしいかどちらかです。

              • by Anonymous Coward
                >大学は学問の場であって、少なくとも「就職して役にたつようなことを学ぶため」のところではありません。



                >その通りだと思います。

                と同意するなら

                >CS卒業生にやらせるべきは、ソフトやシステムの設計や改良等であって、

                なんでそこで急に実業の話になる?

                CS卒業生にやらせるべきは、純然たる研究職じゃないのか?
              • by Anonymous Coward

                企業就職なんだから、実業に結びつくのは当たり前。実業と直結しない研究させてくれる企業なんて一握りの大企業研究所だけでしょ。

                で、先に書いちゃったけど、企業にも研究所や開発部門がある。
                大学との違いは、数年後の実用化を目指したものか、基礎や遠い将来の実用化を目指したものか。
                後者を企業でやらないとは言わないけど、大抵は前者だよね。

                最初がCSだったから、それに合うような具体的な話になったけど、本質は
                「有能な学部卒業生に単純作業をさせて、その効率がそれだけを専門に
                処理する職人的人材に劣るのは何事か?」という的外れな指摘でしょう。

            • by Anonymous Coward

              科学と、工学もしくは技術とを混同しているというのが大きいのではないでしょうか。
              Cでの実務者が欲しかったら、サイエンティストじゃなくてエンジニアを募集すべき。
              "コンピューターサイエンス学部"で、技術者も育てることも含まれるのかどうかは知らないけど。

              参考 [mojix.org]

          • by Anonymous Coward

            コンピューターサイエンスの学科にきてるということはサイエンスを学ぶ気があるとみなしていいんじゃない

            •  情報工学科もDept. of Computer Scienceと訳す場合も多いですし、その学科がコンピュータサイエンス系かどうか分かりにくいと思います。
              工学が付くような名前ならば、学生は日本の情報産業と関係ない(少なくとも教員がそう思っている)ことを教わるとは知らない場合が多いと思います。
              緊急に誤解をなくすまたはカリキュラムを変更することが必要と思います。
              また、多数の学生が日本の情報産業の就職のためにその学科に入ってきていると教員が自覚しているならば、
              そのコンピュータサイエンス系の学科は詐欺師の集まりということになります。
              「パンフレットに情報産業で活躍できる」ということを謳っているようならば、それにそってカリキュラムを考えるべきです。

              親コメント
          • by Anonymous Coward

            日本の高等教育は、技能教育について冷淡ですよね
            大学は教養を身に着ける場であるから、職業教育みたいな下賤なものは余所でやってくれみたいな感じで…

            • by Anonymous Coward

              教員が技能を持ってないからな

              • by Anonymous Coward

                教員がプログラムできないのは当たり前。情報系の学科にいながら最新技術に疎いのも多い。
                そして「お前の最近やってる研究はどう役に立つんだ、具体的に説明してみろ」というと
                顔を真っ青にするか真っ赤にしてよく分からないことを言い始める。そういうのが本当に多い。

              • by Anonymous Coward

                単位を取れなかったからって逆恨みの書き込みをするのは良くないね。

        • by Anonymous Coward

          科学者は世の中で役に立つ技術を研究しているという先入観をやめた方がいいと思うんだ。大学は専門学校じゃない。

      • by Anonymous Coward

        いっそビデオゲームの作り方を教えたらいいんじゃ

      • by Anonymous Coward

        そりゃ、未経験者でも1人月になるような、人買い中心の仕事も含めたら、(割合が)極めて少ないって言えるかもね。
        でもそれって、電子機器の工場労働者も含めて計算して、大学で学ぶ技術を生かせる人が少ないって言うのと同じ。
        まともな教育を受けた人には、それを生かせる仕事があるよ。他の業界と同程度には。

        • by Anonymous Coward

          ですね。
          ただ、他と違って設計と製造にわかれてないってのが分かりにくいところでしょうか。
          #まあ、昔はトレーサーとかいて色々似たような事あったんだろうとは思いますけどw

      • by Anonymous Coward

        > そのような技術者の需要は日本では極めて少ない。
        君の住んでるIT土方の世界に少ないだけで、日本に少ないわけじゃない。

        •  そのような人材を必要としているのは、論文以外の価値を生み出さないところだけじゃないか?
          情報の基礎的な産業があるならば、ほとんど輸出がないことは合点がいかない。日本語システムか?
          まあ、日本語IMEは中国製だそうですけれど。
          http://it.srad.jp/story/08/02/17/2155224/MS-IME%E3%81%AE%E5%A4%89%E6%8... [srad.jp]
          具体的に生み出したものを上げてくれると助かる。年間数百人規模の人材を必要とするものかどうか。

          親コメント
          • >日本語IMEは中国製だそうですけれど。

            http://ascii.jp/elem/000/000/195/195021/ [ascii.jp]

            Q2 日本語IMEの開発は中国で行なわれているって本当?

            A2 日本語IMEの開発は、日本で行なわれている。同社インプット メソッド テクノロジー シニアマネージャの佐藤良治氏によると、IME 2007以前のプロトタイプ開発の際には、日本だけでなく米国レドモントと中国北京にあるMicrosoft Researchとの共同作業が行なわれたという。それが誤解して伝わっているようだ。

            日本でのIME開発は専任チームを置いて、ほかのアプリケーション開発と同じように独自に行なっているという。IME開発は日本のほかに、韓国、中国、台湾にチームがあって、各言語に依存しない要素(OSとのインターフェースなど)の開発は、これら4チームによる共同作業で行なわれている。専任チームの規模は日本が最も大きいとのことだ。

            親コメント
          • by Anonymous Coward

            本気で言ってるんだろうか…
            天気予報システムとか、電車の運行システム、ATM、工作機械、プラント、etc
            どれもコンピュータサイエンスを知らない者が開発できるとは思えない。
            もちろん下っ端のドカタは知らないでもいいけど。

            •  どれも情報工学科がほんどない1960年代から、電気電子工学科や機械工学科の出身者がプログラムを組んでいたと思いますが。

              親コメント
              • by Anonymous Coward

                その頃は電気電子工学科や機械工学科でコンピュータサイエンスを教えていたわけだが。

              • by Anonymous Coward

                電気電子工学科出身ですが、今の情報工学科で教えるようなことをやってましたよ?
                計算可能性とか複雑性とか得意なので、その手の知識生かして仕事してました。

                何が効率の良い処理なのかという程度はもっと知っててほしいなぁと、良く感じたものです。
                性能問題出したときとか、数式一個考えればO(1)な処理を長々と無駄に処理しやがって...とか。

            • by Anonymous Coward

              うーん。Hに行っていた時の様子を思い出すと現在動作している「電車の運行システム、ATM、発電プラント」の開発者がコンピュータサイエンスを理解していたとはとても思えない。
              #工程管理、予算管理はしっかりしていたような。

      • by Anonymous Coward

        産業界需要以外を否定するならサイエンスを名乗るに値しないよ。

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

処理中...