SICP : CS教育について思う

[id:sumii:20060404:1144111484]の頃に議論されていたことを、SICPを読み終わって再び考えています。
会社とかでも、「そういう基礎的な知識ってどうやって身に付けるの?」と聞かれて、「どうやればいいんだろうね?」と答えにならないことを言っているのですが、本当にどうやればいいものなんでしょう? とりあえず、SICPという教科書を知ったので、日本語訳も(評判は悪いものの)あるので、とりあえずSICPを突破するのが結果的には一番近いと思うよ、的な言い方をするのがいいのかなと思うようになっているのですが。
リンク先のコメントで紹介されていた文献にあったように、確かにSICPは問題があるというのは、同意します。スライドを見ながら考えた(というか、コピーですが)点としては、

  • プログラミングデザインの知識が明示的に書かれていない。
  • 広い範囲のアプリケーションプログラムを取り扱っていない
  • 型によってデータ構造を定義するという観点がない
  • プログラムの正しさの証明をするという観点がない

という問題があるとは思います。何せ、SICPはfirst courceの教科書なわけですから。
しかし、少しプログラミングができるようになっていて、次の一歩を探している人にとって、SICPは非常に魅力的な構成をしていると思います。特に第1章でいきなり「手続きによる抽象化」から始まって「手続きとデータを区別せずに扱う」という考え方が出てくるという構成は、初学者には悩みの種になったとしても、次の一歩を探している人にはこの上なく新鮮で魅力的ではないかと思います。
とはいえ、やはりSICPは教育やら研修やらに使うのは難しいなぁとは思うんですよね。HtDPを見ると、確かにそういう問題意識があるんだなと思うのですが(読んでないのでなんとも)。
・・・いつものとおり、とりとめもなく発散していますが・・・
話は変わりますが、企業の経営者やマネージャーに技術教育の重要性を認識させる必要はあります。でも、あの人たちは、技術者とは違う言葉を話すので、なかなか説得することは難しいです。収益をあげるためには、必ずしも良い製品を作る必要はないということもあります。クォリティが高いことより、量産できることの方が重要という観点もあります。
こちらの問題は、産業全体が成熟してくるにつれて変化してくるのかもしれません。未熟な製品が市場から退場して、クォリティの高い製品が市場を席巻するようになってくれば、否が応にも技術力を必要としてくるのかもしれません。そのときまでは、CS教育について考えるなんて、野暮なのかもしれないですね。