基礎理論のまとめ

 今週はまず、基礎理論について解いてきたわけですが、いかがでしたでしょうか?
 もし、難しく感じるとしたら、基本情報の知識が欠けていると思います。

 基礎知識の分野は、知っていれば、実務に応用できるのですが、実務で身につけることがあまりない分野です。
 たとえば、ネットやデーターベースは、実務を通して身につける可能性が大いにある分野です。データベース関係の配属になれば、SQLを使ったり、DBのチューニングを行ったりするので、応用情報に出てくるような内容を、毎日行う「かも」しれません。仕事をしていれば、自然と身に着く「かも」しれません。

 でも、応用情報の分野の事項が、仕事に出てくることは、まずありません。
 逆ポーランド記法を使って、なにかを書いたとか、計算した仕事を最近した人は、かなりまれだと思います。この分野で代表的な、2進数、16進数についても、16進数を使うことはよくあっても、2進数から16進数に直すことはありません。
 また、アルゴリズムの分野でも、リスト構造を、ことさら意識しなくても、すでにメソッドや関数が用意されているので、自分で考える必要はありません。

 つまり、基礎理論は、あまりにもコンピューターの基礎の話なので、そういうことをやっている人たちもいるのだろうけど、そんなことをしている人はかなり少数派で、多くの人は、基礎理論の成果を使って、中を考えないで使っています。ラジオみたいなもんです。ラジオは発振回路、検波回路、増幅回路などありますが、普通使う人はそんなことを気にしないで、ラジオのスイッチを入れるだけです。


 だから、仕事であまりでてきません。
 ということは、お勉強しない限りできません。
 もし、今できないということは、過去に勉強しなかった=基本情報のとき勉強しなかったということです。
 逆に、基本情報のときに、しっかり勉強していれば、そんなに難しいことは、聞いていないと思います。

    • -

 ということで、出来なかったら、しかたない。お勉強してください。

 ただ、勉強といっても、難しいことをやる必要はありません。

 この基礎理論分野は大きく、

  ・離散数学や計算論などの基礎的な理論部分
  ・アルゴリズムとデータ構造

 に分かれると思います。

 計算論というと、大学などでは、「オートマトン」をやって、チャーチのテーゼとか出てきたり、高橋正子先生の「計算論」をやって玉砕したかもしれません。

 アルゴリズムにおいては、SICP(計算機プログラムの構造と解釈)を勉強しようとして、絶望したかもしれません。

 でも、応用情報では、そんなことを求めていません。
 そういうことは、コンピューターを使って、新たな文化を切り開いていくとか、世界を変えたいとか、みんなが安心、安全な社会を作っていきたい!というのなら、絶対必要なことでしょう。現在の検証やプログラミングの枠組みや概念がそれらの本には書いてあるので、その内容を「理解し」、再構成して、新しいものをCreateしていくことができます。でも、それはITSSレベル4以上(高度情報)で求められる能力です。

 ITSSレベル3である、応用情報のテストでは、そういうコンピューターによる新しい社会や文化の内容をフォローして、作っていくということが求められます。つまり、既存の内容が多少応用「できる」ことでOKです(理解しかくても、できればよい)。できる対象は、基本情報に出ています。

      • -

 ということは、応用情報の問題がわからなかったら、まず、応用情報のテキストを見て、それでもわからなかったら、基本情報の説明が書いてある本を見てください。覚えてしまって、問題が解けるようになれば、終わりな分野です。

 アルゴリズムに関しては、シラバスに書かれている内容のものが、自分の得意なプログラム言語で、どうやるか、記述できればOKです。

 ということは、誰かが書いてくれれば、それを読めばOKってことになります。
 だれかをみつけましょう(本に書いてあるかもしれない)。

 一番よくまとまっているのは、TACの基本情報のテキストです(基本テキスト、白い本)

 あれの、「コンピューターシステム」の一部と、「アルゴリズム」がそれにあたりますが、特にアルゴリズムは、必要な事項(シラバスに書かれているような内容)に関して、疑似言語で書かれています。

 ただ、TAC、高いです。はい。理解するために、通学するとか言ったら、10万くらいかかるのかしら・・割引なしだと・・・
 もちろん、どこかでやらないと、精神的につぶれるリスクは大きくなるため、10万払って、人生のうつ病になるリスク防止をすると考えれば、ペイするかもしれません(この辺に関しては、たぶん、数週後の「概要」で書きます)

          • -

 なお、本気で、「高度情報を受けるために勉強したい!」とか、「私の勉強の目標は、悪い無能な上司に当たったとしても、うつ病になったり、デスマーチで廃人になるリスクを出来るだけ減らすことです!」というので、勉強したい人。

 上記の大学で勉強するような本では、基礎部分を理解する前に玉砕します。

 いちばん簡単にこの部分を身につけるには、放送大学・大学院を利用するのがいいと思います(放送しているものは、視聴可能。テキストは本屋さんで手に入る。また、放送大学・大学院に科目履修生として入れば、自分の都合のいい時間に、放送センターっていうところに行ったり、インターネットを使って、ビデオを視聴できる)。


おすすめは、以下の授業

コンピュータのしくみ ('08)(これは見れるかも)
情報科学の基礎('07)

 これら、(とくに後者)がわからないようだったら、「自分は、大卒だあ」とか、へんなプライドは捨てて、素直に工業高校の教科書買ってきて読むこと。

 「ハードウエア技術」と「プログラミング」

 どこの出版社でも、同じようなことが書いてあるはず(そのために文部省が検定している)
 三省堂5階で、昔売ってたけど(そこで買いました)、今は売っているかどうかわかりません。

 一般に教科書は、東京だと「第一教科書」で買いますが、普通の人が行くと、買い方が??だと思うので、わかんない人は、建物のほうにいって、聞いてみてください(倉庫のほうで本を選び、建物のほうで買う・・・わっかんないよねえ〜意味・・・)
 ネットで買えるかは?ちなみに、その場合は、教科書の出版社(実教出版コロナ社)のサイトをしらべることになりますが・・


 逆に、それよりも高度なことをやりたいが、計算論やSICPをやったら、玉砕しそうな人へ、

放送大学大学院の(ラジオ)

・基礎情報科学

 がいいです。これは、川合先生(情報処理学会の情報処理の「前の」編集長、今変わった)と萩谷先生の話&超豪華キャストで贈る、ふつうよりわかりやすい、基礎情報科学のおはなし。これでわかんなかったら、高橋先生の計算論とかは、あきらめたほうがいい。一通り、「学部でやりそうなことは」わかる(院だと、もちょとやんないと、やばいんじゃないでしょうか?)


・計算論

 川合先生が担当してる?これは、聞いたことないので、内容不明


 それと、基礎理論でやるような論理学は、検証理論とつながっていき、
  Hoare論理→メイヤー→契約による設計→JUnitという流れになるけど、
 基礎理論からメイヤーに行く流れを補いたい場合は、

プログラム検証論
 ただし、現在は絶版だとおもうので、入手困難かも?
Amazonで中古で、9000円台(定価3296円)の超プレミアがつく本)
 図書館には置いてある??
 

      • -

 ただ試験に受かればいいだけの人は、ここまでやらなくていいと思います。
 基本情報のテキスト見て、それでわからなかったら、工業高校の教科書、
 それでわからなかったら、応用情報を受けるのは早すぎ、ITパスポートの
勉強をしてください。