
コンピュータサイエンス (サイエンス・パレット)
コンピューターサイエンスという学問分野への最初の本として書かれたものだろう。どうやら大学一年生向けの教養課程が元になっているようだ。レベルとしては高校生か、あるいは中学生でもよいだろう。計算のもっとも基本的原理として±1と繰り返しを置いて(p.14)、プログラミングによる計算の実現について説いている。コンピューターにおけるメモリの仕組みを取り上げて、機械語のレベルでプログラムがどう作用するかも扱う。
続いてアルゴリズムの初歩を扱う。ここでは最短経路長問題を取り上げてアルゴリズムを考察する。効率の良くないアルゴリズムも扱うことで、計算量の問題につなげる。計算量理論もそうだが、前の計算可能性問題でも、プログラムの停止問題や汎用チューリングマシンなど計算可能性の限界も扱っており、それなりに高度なところまでカバーしている。
後半はコンピューターサイエンスが社会に与える影響について。シミュレーション、機械学習、情報セキュリティの三つが扱われている。暗号化技術を中心とする情報セキュリティについては多めに書かれていて、例えば素因数分解が多項式時間に解けないことに基づく公開鍵暗号方式の発想はまさに計算世界観的だと評されている(p.145)。なお、大きな組織では情報セキュリティ対応チームとしてCERTを設けるとされているが(p.137)CSIRTという方が正確だろう。例えば、JPCERT/CCの
「CERT」と「CSIRT」についてを参照。
プログラムの解説では擬似Ruby文を使っている。if文はwhile文に書き換えられるとして、次のように書かれている(p.28)。
if x==2
[やりたいこと]
end
y = …
tmp = (x-2) * (x-2)
while tmp>0
[やりたいこと]
tmp=0
end
y = …
これはよく分からない。whileの方でx=2とすると、tmp=0だからwhileループには入らず、やりたいことは通らないように見える。また例えばx=1とすると、tmp=1となりwhileループに入り、やりたいことを実行してしまう。そもそもtmpという変数を使う意図もよく分からない。単純に、次のようなものではどうか。
while x == 2
[やりたいこと]
x=0
end
y = …
スポンサーサイト
- https://exphenomenologist.blog.fc2.com/tb.php/780-18541642
トラックバック
コメントの投稿