大学の情報系学科では何を学ぶのか?現役の情報系学科大学生が解説
こんにちは、これが375本目の記事となったすうじょうです。こういった記事は久しぶりです。情報系の学科は少子化の中でも、人気が急上昇しており、全国で倍率が上がっています。また、共通テストに情報が加わるという動きもあります。あまりnoteでは強調していませんでしたが、私は大学の情報系学科で日々学んでいる学生です。そんな私が情報系の学科ではどのようなことを学ぶのか少し具体的に解説してみたいと思います。
高校の情報Ⅰについて解説した記事はこちら
<注意>
情報系といっても、大学によって学ぶ内容や特色が異なるので、これから書く内容はあくまで一例です。それを念頭においてください。
情報系で学べることの例
情報系では、基本的に理系の基礎科目、英語、教養科目、情報系の専門科目がそれぞれ授業として用意されています。これについては、総合大学と単科大学で一部異なる可能性があります。それぞれ順に説明していきます。
理系基礎科目
理系の基礎科目には、数学とそのほかの科目があります。
数学としては、線形代数、微積分、確率統計などです。今挙げた3つの数学分野は特に重要な分野です。線形代数は、機械学習の理論において行列の知識を利用します。また、画像処理においては座標変換に利用されています。微積分については、特に微分が重要です。微分は傾き、つまり変化を求めます。ですので、回帰などの機械学習で用いられています。一つ例を挙げると、深層学習(ディープラーニング)で用いられる誤差逆伝播法は合成関数の偏微分における連鎖律を利用しています。また、それ以外でも画像処理において画像のエッジ(輪郭)を求める際にも利用されます。確率統計は、データサイエンスや機械学習で利用されています。特に最尤推定法は、機械学習のモデルでパラメータの決定に用いられています。
これらに加えて、情報系では、離散数学(情報数学)を学びます。一般的に授業で学ぶ離散数学は、集合・論理とグラフ理論で構成されています。離散数学自体は組み合わせ論も含まれていますが、講義名が「離散数学」のときはグラフ理論を学ぶことが多いです。グラフ理論とは、路線図のように〇が線でつながったものをグラフと呼び、それに関する理論を学びます。最短経路の探索アルゴリズムなどを学びます。
数学以外の理系基礎科目としては、物理・化学・生物などがあります。ただ、これについては大学や学科によって何を学ぶのか異なると思います。また、ニューラルネットワークとの関係で、脳科学関係の科目が開講されている場合があります。ニューラルネットワークは、ディープラーニングの基本的な構造で人間の脳の神経細胞(ニューロン)の構造を模倣したモデルです。
英語
これは、情報系に限らず理系一般にいえる話ですが、英語は必要です。特に論文を読むのに利用するためにリーディングが重要です。海外で発表を行う場合、当然英語で話す必要があります。また、情報系としてはプログラミングのエラーメッセージはほとんどの場合、英語で表示されます。ですので、それを読み解く必要があります。今は、ChatGPTなどの生成AIサービスに聞くという方法もありますが、読めるた方がよいです。また、分からないことがあり、調べる際、英語のサイトがヒットすることがあります。そのたびに、Google翻訳などを利用してもよいですが、英語を知っていた方がスムーズに読むことができます。大学によっては、TOEICを受験することを課している場合があります。
一般教養科目
何が開講されているかは大学によって異なりますが、第二(第三)外国語や人文社会系などがあります。文系科目という印象がある科目が並んでいることが多いです。人文社会系科目では、高校のとき、その科目に抱いていた印象が変わったことが多いです。私の場合、経済学や心理学に抱いていた印象が変わりました。
情報系専門科目
ここがメインですが、カテゴリをある程度分けて紹介していきます。ここで並べたものが、授業として存在するかどうかは大学によって異なります。また、分類の仕方はざっくりとしてものです。説明についてもざっくりとしたものです。
・理論科目
オートマトンと形式言語理論、計算理論、情報理論、データベース、信号処理
オートマトンは、現在主流のノイマン型コンピュータの理論として用いられているチューリングマシンを理解するのにも役立つモデルです。形式言語とは、日常で使われる言語とは異なり、アルファベットの文字列と文法規則のことだと思ってください。
計算理論は、チューリングマシンを用いてコンピュータが解ける問題がどうかを判定する計算可能性理論と、問題を解くのにどのくらい時間またはメモリを使うのかという計算複雑性理論を学びます。
情報理論は、情報を確率を用いて扱い、通信の理論やデータの圧縮方法などを学びます。
データベースは多くのデータをあるルールの下で格納することで、検索やデータの変更が容易になることを学びます。現在でもSQLなど企業のデータベースで使われています。
信号処理は、波で表される信号や点で与えられるデータをフィルタにかけて処理する方法などを学びます。これは、画像(JPEGなど)や音声(MP3)処理に利用されている方法です。
・プログラミング
C言語、Python、SQL、データ構造とアルゴリズム、オブジェクト指向、システムプログラミング、ネットワークプログラミング、組み込み系(IoT)、論理プログラミング、関数型プログラミング、機械学習
色々と並べたので一部だけ説明します。C言語は古くから使われるプログラミング言語で、処理が速いのが特徴です。ただし、習得はPythonに比べると難しいと思います。
データ構造とは、プログラミングで効率的にデータの検索や削除、入れ替えができるような構造のことで、これについて学びます。アルゴリズムとは、並べ替えのソート、目的データの検索の方法などを学びます。
オブジェクト指向は、データ構造とそれらを操作する関数をセットにしたうえでアクセス制限をかけられるようにしようという考え方で、C++やJavaなどでそれを学びます。
論理プログラミングは、第2次AIブームを支えたプログラミングです。知識を与えて、それを明確なルールに基づいて処理することで答えを出すことができます。論理パズルのようなものです。
機械学習は、教師あり学習の回帰・分類、教師なし学習のクラスタリング、深層学習(ディープラーニング)などをPythonなどで行う方法を学びます。
・計算機システム(ハードウェア)
論理回路(デジタル回路)、電気回路、コンピュータアーキテクチャ、コンパイラ、並列分散処理、電子工作(マイコン)
こちらも一部だけ説明します。
論理回路は、一般的に想像される回路とは少し異なり、電球や電池ではなく、信号のON/OFFを組み合わせることで情報を伝える回路です。
コンピュータアーキテクチャは、ハードウェアでどのような処理が行われているかについて学びます。
コンパイラは、C言語などで書かれたプログラムをコンピュータがどのように処理しているのか学びます。
・ネットワークと通信
ネットワーク工学、情報セキュリティ
ネットワーク工学は、インターネットはどのようなルールの下で通信を行っているかなどを学びます。
情報セキュリティは、セキュリティに必要な暗号化の方法などを学びます。
・ソフトウェア
オペレーティングシステム(OS)、ソフトウェア工学
オペレーティングシステムは、OS(Windows, Mac, iOS, Androidなど)で一般的に行われていることを学びます。
ソフトウェア工学は、ソフトウェア開発の方法、分析・設計の方法などについて学びます。
・AI
人工知能(探索・推論・知識表現)、統計解析、最適化、機械学習、深層学習
こちらはここまでの説明と一部重なるので、それ以外について説明します。人工知能(探索・推論・知識表現)は、機械学習を除くAIのことで、論理プログラミングの理論的なものを含みます。
統計解析は、推定・検定や回帰・分類などについて、数学の理論的な背景を学びます。
・情報処理
コンピュータグラフィクス(CG)、コンピュータビジョン、自然言語処理、音声処理
ここでは、一部の用語の説明だけをします。
コンピュータビジョンは、人間でいう視覚にあたる機能をコンピュータに行わせる分野です。
自然言語処理は、ここまでで説明した形式言語とは異なり、現実の英語や日本語などのテキストをコンピュータに処理させようとする分野です。
どうですか。ここまでかなり説明してきましたが、初めて知る用語があったかもしれません。気になった用語があれば、ネット検索をしてみてください。
高校生に向けて…大学選びに参考になるもの
ひょっとすると高校生の方が読んでくれているかもしれないので、大学の選ぶ際に参考になるものについて、アドバイスをしたいと思います。
まず、注意ですが、大学受験に向けて、様々な情報を参考にするのは構いません。ですが、最終的な受験先は自分で決めてください。後悔を生まないために大事なことです。また、個人の情報を鵜呑みにするのはやめましょう。この記事のように個人のブログや大学生の動画はあくまでもサンプル数1の体験談です。万人に当てはまるものではありません。
自分の興味のある学科を把握しましょう。そうしないと、大学に入ってからの勉強へのモチベーションがわきにくいです。それを知るためにも、大学にどのような学部・学科が存在しているか調べましょう。
そのうえで、大学のホームページで、その学部・学科がどのようなことを学んでいるのか、あるいは研究しているかについて調べましょう。また、どのような先生(教授)がいるのかも調べてみましょう。ただし、大学の先生は異動や退職でその大学からいなくなる可能性があるので留意してください。
ここで注意ですが、基本的に大学は学部4年で卒業するか、大学院に進む(受験する)かという選択があります。そして、研究は主に大学院で行われています。多くの場合、学部では4年生で卒業研究を行う以外、実験科目でしか研究チックなことは行いません。このことから、大学院に進む可能性が低い場合、研究よりも授業をメインに調べることをおすすめします。
そして、授業を調べるためには、各大学のシラバスが見れないか確認してみましょう。シラバスとは、授業の開講時期・開講学科・担当教員・授業項目などが検索できるシステムで、大学生が主に使用しています。そして、シラバスは大学外のインターネットからアクセスできる場合があります。見ることができた場合、自分の行きたい学科にはどのような授業があるのか調べてみましょう。同じ大学の同じ科目でも、開講学科や担当教員によって、授業内容が異なることが多いので注意しましょう。同時に、時間割が公開されていないか確認してみましょう。大学によっては、ホームページ等で時間割が公開されている場合があります。また、大学によっては過去の授業動画や授業資料が公開されている場合があります。シラバスが見つからない、または見ることができない場合は、ホームページなどに授業情報が公開されていないか確認してみてください。
ただし、大学で学部改組・再編などが予定されている場合、授業科目が大きく変わるので、大学のホームページでそのような情報がないか確認してください。
研究を調べるためには、学部・学科のホームページや各研究室のページを調べてみましょう。具体的な研究内容が説明されていたり、どのような学会で発表しているのかという情報が確認できます。
参考
最後に
久々にこのような長い記事を書きました。数学の応用方法も含めて、この記事の内容で情報系でどのようなことを学ぶのか、少しでもイメージがわいてもらえたら嬉しいです。そして、高校生向けのアドバイスは自分が高校生のときに欲しかった情報を書いています。では。