コンピューターサイエンス教育では、 C も Java も教えないよ。 C なり Java なりを道具にして、アルゴリズムの設計と実装という、 500 年後にも意味のある (と期待される) 概念を教えるんだよ。
もちろん、コンピューターサイエンスの中でも専門とする内容によっては Linux カーネルを改造することが必要になったり Haskell コンパイラーを書くことが必要になったりするから、そういう人は必要な技術を学ぶけれど、「コンピューターサイエンス学科の卒業生なんだから C 言語でプログラムが書けるはず」みたいな先入観はやめた方がいいと思う。
コンピューターサイエンスの何たるか (スコア:5, 興味深い)
コンピューターサイエンス教育では、 C も Java も教えないよ。 C なり Java なりを道具にして、アルゴリズムの設計と実装という、 500 年後にも意味のある (と期待される) 概念を教えるんだよ。
もちろん、コンピューターサイエンスの中でも専門とする内容によっては Linux カーネルを改造することが必要になったり Haskell コンパイラーを書くことが必要になったりするから、そういう人は必要な技術を学ぶけれど、「コンピューターサイエンス学科の卒業生なんだから C 言語でプログラムが書けるはず」みたいな先入観はやめた方がいいと思う。
Re: (スコア:0)
500年後は言い過ぎでしょう。
ノイマン型コンピュータができて100年たってないんですから。
今のアルゴリズムは大体ノイマン型を大前提にしているはず。
というか並列化の時代になった時点で、
すでに使えなくなっているアルゴリズムは出てきているのでは?
早いのが取り柄のアルゴリズムなんかは。
データ設計のほうがまだ長持ちすると思う。
Re: (スコア:2, 参考になる)
「500年はちょっと言い過ぎ」というのは同意だけど
>> というか並列化の時代になった時点で、すでに使えなくなっているアルゴリズムは出てきているのでは?
というツッコミは,あなたの読解力あるいは理解力の低さを示してますね.「アルゴリズムの概念を学ぶ」ことは「特定のアルゴリズムを使えるようになる」ことではありません.
例えばソートの方法で様々なアルゴリズムの存在を知っていれば,具体的なソートの問題に直面した時にその知識を使って解決できます.しかし,並列化の時代になると従来の知識そのままでは使い物にならなくなる.これが貴方の指
Re: (スコア:0)
なるほど。
すみません。理解が足りてませんでいた。
並列化したときにどれが使えるかという議論にも、
同じ本質が使えますね。
ただ、現在知られている結論が、
崩れることは下手すると近いうちにあり得ると思います。
そもそもアルゴリズムの相対的な重要性は下がってきていますし。
Re:コンピューターサイエンスの何たるか (スコア:0)
う~ん、この認識はどうかと思うが?
アルゴリズムのような基礎的な研究を大事にしないと、アメリカのIT産業からは置いて行かれそう。
量子コンピューター上のアルゴリズムとか、今のうちにやっとくといいんでないかな。