コンピューターサイエンス教育では、 C も Java も教えないよ。 C なり Java なりを道具にして、アルゴリズムの設計と実装という、 500 年後にも意味のある (と期待される) 概念を教えるんだよ。
もちろん、コンピューターサイエンスの中でも専門とする内容によっては Linux カーネルを改造することが必要になったり Haskell コンパイラーを書くことが必要になったりするから、そういう人は必要な技術を学ぶけれど、「コンピューターサイエンス学科の卒業生なんだから C 言語でプログラムが書けるはず」みたいな先入観はやめた方がいいと思う。
コンピューターサイエンスの何たるか (スコア:5, 興味深い)
コンピューターサイエンス教育では、 C も Java も教えないよ。 C なり Java なりを道具にして、アルゴリズムの設計と実装という、 500 年後にも意味のある (と期待される) 概念を教えるんだよ。
もちろん、コンピューターサイエンスの中でも専門とする内容によっては Linux カーネルを改造することが必要になったり Haskell コンパイラーを書くことが必要になったりするから、そういう人は必要な技術を学ぶけれど、「コンピューターサイエンス学科の卒業生なんだから C 言語でプログラムが書けるはず」みたいな先入観はやめた方がいいと思う。
Re:コンピューターサイエンスの何たるか (スコア:0)
500年後は言い過ぎでしょう。
ノイマン型コンピュータができて100年たってないんですから。
今のアルゴリズムは大体ノイマン型を大前提にしているはず。
というか並列化の時代になった時点で、
すでに使えなくなっているアルゴリズムは出てきているのでは?
早いのが取り柄のアルゴリズムなんかは。
データ設計のほうがまだ長持ちすると思う。
Re:コンピューターサイエンスの何たるか (スコア:2, 参考になる)
「500年はちょっと言い過ぎ」というのは同意だけど
>> というか並列化の時代になった時点で、すでに使えなくなっているアルゴリズムは出てきているのでは?
というツッコミは,あなたの読解力あるいは理解力の低さを示してますね.「アルゴリズムの概念を学ぶ」ことは「特定のアルゴリズムを使えるようになる」ことではありません.
例えばソートの方法で様々なアルゴリズムの存在を知っていれば,具体的なソートの問題に直面した時にその知識を使って解決できます.しかし,並列化の時代になると従来の知識そのままでは使い物にならなくなる.これが貴方の指摘ですね.
一方で,fcp氏の書いているように「アルゴリズムとは何か」という概念を(ちゃんと)学べば,いろいろなソートアルゴリズムが本質的にどう違って,その違いが(その時点の計算機の処理上で)性能にどう影響しているのか,そういう理屈を正しく理解しているはずです.ですから,並列化の時代になっても,その理屈からちゃんと並列化に合ったソートアルゴリズムを導き出す(あるいは見つけてくる)ことが可能です.
上記ではソートというベタなネタを例に説明しましたが,もちろん実際の大学ではそういう何か特定の問題について学ぶのではなく,もっと広く一般化した意味で「アルゴリズム」を学んでいるわけです.ですから,「人工知能型コンピュータ」とかみたいな大変革が来ない無い限り,学んだ知識は使えます.ちゃんと学んでいれば,ですけどね.
Re: (スコア:0)
なるほど。
すみません。理解が足りてませんでいた。
並列化したときにどれが使えるかという議論にも、
同じ本質が使えますね。
ただ、現在知られている結論が、
崩れることは下手すると近いうちにあり得ると思います。
そもそもアルゴリズムの相対的な重要性は下がってきていますし。
Re: (スコア:0)
う~ん、この認識はどうかと思うが?
アルゴリズムのような基礎的な研究を大事にしないと、アメリカのIT産業からは置いて行かれそう。
量子コンピューター上のアルゴリズムとか、今のうちにやっとくといいんでないかな。
Re: (スコア:0)
たとえ去年考案されたアルゴリズムでも、真理なら(本質を突いているなら)1000年後でも本質。
計算機の本質は、計算しうる関数だから、歴史で言えばユークリッドごろから(二千年くらい)。
実装ならば、100年未満のノイマン型が200年後に有益かどうかは確かに怪しい。
でも、並列処理が一般化して、使えなくなっているアルゴリズムと言うのは一つも存在しない。
というか遅くなりようがない。
n並列でn倍にならないのは、並列の本質を突けていない未開の分野だから。そこは、これから突くべきところ。
本質を勉強するのに
機械語->C言語->J
Re: (スコア:0)
何が本質かを定義しないでおいて、
本質かどうかで区別するというのは、
何の意味もないですよ。
すくなくとも、
#2654418さんの言う「本質」に、
アラン・ケイの提唱したような「本質」は含まれていないようです。
他の色々な人が言った「本質」も。
Re: (スコア:0)
ユークリッドの互除法「全く、最近の若いもんは…」
Re: (スコア:0)
巷のアルゴリズムでノイマン型を前提にしているものってあったろうか?
というか「アルゴリズム」という考え方がそもそもノイマン型ではない。
チューリングマシンの間違いでは?
Re: (スコア:0)
あれ?本当だ。
すみません。勘違いしていました。
Re: (スコア:0)
アルゴリズムというのは数学的定理ですから。チューリングマシンの。実用的でなくても意味はあるかもしれません。