見出し画像

大学で学んだ情報系科目の話 Part2 基礎知識その1

こんにちは、これが112本目の記事となったすうじょうです。さて、今回は新しく始めたシリーズの2回目です。内容は、タイトルの通りで大学で学んだ基礎的な情報系科目について簡単に話します。少し詳しく話すのは、別の機会に受けた感想シリーズとして書いたり、解説記事を書くことを検討しています。今シリーズの範囲から完全に数学系の科目は除いています。前回の記事は以下のものです。

ちなみに、昨日Twitterを始めました。noteのこと以外にも好きに投稿していくので、よろしければフォローをお願いします。

情報系の基礎知識科目その1

情報系に触れたことのない方は、プログラミングくらいしか想像できないかもしれませんが、情報系の基礎科目は多岐にわたります。では、紹介していきます。

C言語によるプログラミング基礎
計算機基礎
アルゴリズムとデータ構造
C言語によるプログラミング応用
形式言語とオートマトン
論理回路設計
アルゴリズムの理論と評価法
計算機アーキテクチャ
ネットワーク通信の基礎

上におおまかな題名のみ書きましたが、知らない方が見れば意味不明な部分があると思います。ですので、軽く説明をしていきます。といってもそれも用語の羅列で意味不明になると思います。

まず、C言語によるプログラミング基礎は、有名で歴史あるプログラミング言語であるC言語を用いてプログラミングの基礎を学びました。ポインターの話が少しややこしかった覚えがあります。

計算機基礎はざっくりとそう書いていますが、具体的には2進数の演算や処理、計算機の構成と機能(プログラム実行の流れ、命令とアドレッシングモード、機械語の命令解読演習など)、論理回路の基礎、言語処理系の基礎、OSの基礎、計算機ハードウェアの基礎(命令セットアーキテクチャ、MIPSを例にアセンブリ言語から機械語変換演習など)などなど多くの内容を含んでいます(一部内容が被っています)。

次に、アルゴリズムとデータ構造はC言語の構造体とそれを活用したスタックなどの構造やソート・探索アルゴリズムなどを学びました。

C言語によるプログラミング応用は、抽象データ型というデータ構造とその機能としての関数をセットとするもの(簡単にしすぎました)のプログラミングを学びました。

形式言語とオートマトンは、Part1で書いたオートマトンの基本理論を学びました。ここでは、正則言語(正規言語)についてDFAとNFAの変換方法や状態最小化の方法、Nerodeの定理(言語が正則(正規)でない証明に利用、詳しくは調べてください)など(ここは分かる人向けです)を学びました。

次に論理回路設計では、論理式と論理回路(論理ゲート)、論理和・積標準形、最小論理和形(クワイン-マクラスキ法、主項表、最小被覆問題など)、順序回路設計と最小化などで、計算機の基礎知識の一部を深堀り(これは基礎なのだろうか?)した形です。

アルゴリズムの理論と評価法は、アルゴリズムの基礎理論とその評価法として計算量を導入しました。用語として、オーダーO()、分割統治法、再帰法、動的計画法(ここは分かる人向けです)が挙げられます。

計算機アーキテクチャでは、命令セットアーキテクチャ、CISCとRISCの特徴、マイクロアーキテクチャ(パイプライン処理、スーパスカラ方式、VLIW方式など)、メモリアーキテクチャ(メインメモリ、仮装記憶、ページング、キャッシュメモリなど)、入出力装置などで、計算機の基礎知識の一部を深堀り(これも基礎なのだろうか?)した形です。

最後に、ネットワーク通信の基礎では、その通りにインターネット通信の基礎知識を学びました。これについては詳しくは書きません。知りたい方は、書籍を買うかネットで調べてください。

今まで私が書いた情報系の解説記事は以下のマガジンにまとめています。

今回はシリーズの2回目として、情報系の基礎知識科目の一部について書きました。情報系の人間がやっておくと良いことは概ねおさえているのかなと思います。次回は、間があくと思いますが、基本知識科目その2について書いていくつもりです。まったく関係ないけど、今日24時30分からのアニメ「魔法科高校の劣等生 来訪者編」楽しみです(先週も同じことを書きました)。では。

いいなと思ったら応援しよう!