[2019年度入学] 広島大学情報科学部で私が受けたすべての講義の感想

私はこの春から 4 年生になる学部生です。広島大学情報科学部に所属しています。

私が入学しようと考えた頃は広島大学の情科は「新設」という情報しかなく、大学の HP を見てもデータサイエンス的なことをするのかな?と思ったくらいで、当時は情報系の知識やプログラミングをよく知らなかったので本当にこの学部でいいのかな?と迷いました。

そこでこの記事では、何かの参考になればと思い、私が学部 1 年から 3 年終わりまでに受けた講義すべての感想を書いていこうと思います。もちろん、私が受けてない講義もたくさんあるので、ここでは「私が受けた講義」だけ感想を書いていこうと思います。

免責
この記事は 2019 年度に入学した人が書いています。先生も講義も変わりますし、当時と現在では状況が全く異なります。
この記事から得た知識をもとに行動した結果の責任を私は一切負いません。自分で判断をしていただけると幸いです。

1 年生

2019 年度第 1 ターム

健康スポーツ科学

スポーツ枠。僕は当時病気の療養中だったので、座学でなんとかなるやつを取りました。元気な人はスポーツをする科目でスポーツ枠を埋めましょう。
社会と健康の話と、筋トレに役立つ話を聞きました。最後の試験が思ったより難しくてもっと勉強しておけばよかったなと思いました。

ベーシック中国語

第二外国語枠。中国語は結構面白かったですね。この講義については小川先生が僕の質問に丁寧に答えてくださったことが中国語に対するモチベの向上につながりました。発音が難しいので真面目に頑張りました。

教養ゼミ

入学すると何人かの 1 年生のグループにチューターとして先生が割り当てられる制度があり、そのグループで毎回チューターの先生が何かお題を出してくるので、学習をするというものです。うちのグループは学会誌を読んで軽い発表をする形式でした。ここでチューターの先生と知り合いになっておいたことで、後々研究室選びや進路の相談ができたのでよかったです。

プログラミング I

C 言語を学びます。同級生にディレクトリの概念に初めて触れる人がいたりして驚きました。Cygwin + Terapad という環境が推奨されていました。僕は辛かったので WSL1(当時) + VS Code で書いていました。サポートを必要とする人は Cygwin + Terapad がいいと思います。資料は大体工学部で昔使われていたもので、C89 だったりします。テストは手書きなので、エディタの支援のもとで C が書ける人でも C の勉強が必要でした。

コミュニケーション IA

私は TOEIC で後期から単位認定をしました。
問題集を解いてきて当てられる形式で、高校の英語と本質的に変わりはなかったです。

大学教育入門

先生の講演を聞いて感想を書くような形式でした。大学の施設の使い方や、セキュリティについての説明など地味に大切な常識が話されるのであまり寝ずに聞きました。

コミュニケーション基礎 I

単語を覚える。当時は自動化コードを先輩が開発したみたいな噂もありましたが、テストがあるので真面目に早めに手をつけた方がいいなと思って頑張っていました。

2019 年度第 2 ターム

平和を考える

どこでも平和教育は大事ですが、特に広島なので大切にされています。僕は広島育ちなので平和教育は受けてきましたが、それでも知らないことがたくさんあったのでこの講義を受けてよかったと思っています。

人文地理学

クライスラーのアレとか、高校の現社で出てくるやつを詳しく学びます。東広島特有の話も多く、例えば東広島は昔は野原と山しかないけど今は栄えるに至るまでにどういう歴史があって発展してきたか、とかそれと野生生物との関わり(広大には多くの種類の野生生物がいる)など面白い話が聞けました。

線形代数学 I

行列を学びました。よくある工学部の数学という感じで僕はなんともなかったのですが、周りを見ると特に文系から進んで来た人は苦しそうでした。テストも結構難しい問題が並んでいた覚えがあります。証明も求められた気がします。

統計データ解析

統計を学びました。大数の法則や検定などの基本的なところを学びます。ここで一旦習ったことは忘れたのですが 2 年生でまた似たような講義で復習になるので思い出します。

ベーシック中国語 II

中国語 2 です。I と特に変わりません。

コミュニケーション IB

英語 2 です。特に変わりません。TOEIC 頑張って単位認定をしましょう。ただ、単位認定した科目は GPA に影響しない(分母からも分子からも取り除かれる)ので、英語が得意な人は GPA 的には英語を受けた方がいいのではという話もあります。

微分積分学 I

微積は文系の人は多くが苦しい思いをします。基本的に高校の数 III の内容で、計算量が多いです。毎回の講義や小テストをきちんとこなしていくことが大事だと感じました。テスト直前の巻き返しみたいなのは正直無理感があります。

離散数学 I

一年生からコンピュータ・サイエンスを学びたかったのでこの講義は救いで、面白かったです。集合をやってグラフ理論をして整数論をします。得意分野だったので毎回楽しく講義を受けていました。コンピュータ・サイエンスは思ったより数学が必要でした。

プログラミング I

1,2 タームに渡る講義です

2019 年度第 3 ターム

コンピュータ・プログラミング

Java をします。教養の中のプログラミング枠なので、これは情科生が有利で抽選が大変になったりしていました。まともにオブジェクト指向プログラミングを学んだのは結局ここだけでした。

線形代数学 II

線型写像など、抽象的になるので行列の計算パートもありますが、概念理解パートも結構重いです。ただここで学ぶ固有値の話は後にビッグデータの講義で使いました。

数学演習 I

微積と行列の計算問題をたくさん解きます。解答を黒板に書いたりすることがあり、自分の解答が合っているか不安になったりしました。楽な部類の講義ですが演習を積めてよかったと思います。

微分積分学 II

テイラー展開と重積分を学びました。テイラー展開はたくさんでたのでたくさん計算をした記憶があります。

離散数学 II

グラフ理論をもう少し色々学びます。彩色をここで学んで後にコンパイラの勉強を独学でしていたときに彩色問題が出てきたのは驚きました。競技プログラミングが好きな人は楽しめると思います。

プログラミング II

ポインタが出てきます。結構難しいので苦しみました。特に C なので、間違ったコードを書いても通ったりうんともすんとも言わず落ちたり、あまり慣れていなくて困りに困りました。

2019 年度第 4 ターム

広島大学の歴史

広島大学が実は昔、広島市にありましたという話を聞きます。僕は昔話を聞くことが好きなので面白く聞いていましたが、寝ていた人も多かったので人それぞれだと思います。

数学演習 II

演習の続きです。固有値や対角化は計算がしんどくて、線型独立とか写像の話は証明が絡むので頑張っていました。

確率論基礎

確率分布がたくさん出てきました。先生が TA の用意した模範解答を「これダメだな!」と言っていたことが記憶に残っています。これで僕は一気に統計への興味を無くしてしまいました。

プログラミング II

これはセメスター制なので 3,4 タームに渡ります。

2 年生

2020 年度第 1 ターム

東広島キャンパスの自然環境管理

1 年生で取り忘れていた枠を 2 年生で取りました。環境保全と東広島キャンパスの自然について学びます。東広島キャンパスには博物館があり、そこで知っていたことを詳しく知ることができて面白かったです。

微分方程式

微積の進化版です。オンライン形式に先生が慣れていなくてテストが鬼難しい形式になっていました。全くできなくて単位を確実に落としたと思いましたが一命を取り留めたので、計算速度を上げたいなと感じました。

オートマトンと言語理論

コンピュータ・サイエンス枠で DFA と NFA の変換とか CFG などの階層や標準形とかを学びます。パズルが好きな人は楽しいと思います。

推測統計学

推定を詳しくやります。1 年生の統計データ解析と同じようなことをします。

数理計画法

シンプレックス法や整数計画法のような最適化問題を学びます。計算量が多く、たくさん計算をしました。概念自体はそれほど難しくないので計算を頑張りました。

情報理論

コンピュータ・サイエンス枠で線形符号や情報源などの情報を理論的に扱うやり方を学びます。教科書がまともなので真面目に読みました。ここで初めて大学に来てコンピュータ・サイエンスを学んでいるぞと思いました。

プログラミング III

競技プログラミングをやっている人なら楽勝だと思います。標準入出力とアルゴリズムと構造体と数値計算をしました。

2020 年度第 2 ターム

フーリエ解析

フーリエ変換を学びます。証明が薄く計算が多いので、なんとなく計算をたくさんしていたら終わってしまったという印象で、教科書を見直そうと今になって思います。

線形モデル

単回帰、重回帰を学びます。かなり講義が難しくてこれはテストダメだな、と思っていたら意外とテストが簡単でびっくりした覚えがあります。

統計的検定

これは先生が非常によかったです。検定を R を書いて学びます。検定はどういう条件の時にどういう手法を使ったら良いか、ということが整理されていて分かりやすく楽しかったです。

ソフトウェア工学

グループワークで設計を学びます。ここで Python を書きました。課題が多く授業時間外にグループでオンラインで集まらざるを得ず、これは一部で"残業"、"時間外労働"という風に呼ばれていました。

プログラミング III

これはセメスター制です。

2020 年度第 3 ターム

システム最適化

非線形方程式とか変分法をします。でも結局、微積の延長なので微積ができないと苦しむし、微積ができれば微分方程式もシステム最適化も楽勝です。僕はそんなに困らなかったので楽しく受けていました。

ディジタル回路設計

この講義はきつかったです。フリップフロップとかメモリ回路とか、コンピュータがどう動いているかという基礎部分を回路レベルから学びます。面白いしためになったのですが課題が重いので頑張りました。

プログラミング IV

TeX と Java をします。TeX は必ず必要になるので真面目にやっておきました。Java は C と違うので少し慣れるのに時間がかかりましたが、OOP とか GUI のやり方みたいな特殊部分が大変で、そこを越えればそんなに怖くはなかったです。

一般化線形モデル(GLM)

推定と正規線形モデルをします。オンライン環境で先生のマイク環境が悪くて何もかもがわからず辛かったです。何も分からないので絶対に単位が来ないと思っていたら何故か単位がきました。

アルゴリズムとデータ構造

競技プログラミング枠です。ソートと KMP 法と最短経路とプリム法とかをします。教科書が結構ちょうどいい分量なので今でも復習に使います。

多変量解析

主成分分析やクラスター分析など、たくさんの情報をどうグルーピングして分析するかという話をします。この先生はかなりまともで統計の講義にしては面白いなと感じました。ただグループワークでずっとミュートの人がいたりしてまともに機能せず、どこのグループもやる気ない人が気を使う人にフリーライドして労せず単位を取る構造が発生して大変辛かったです。

オペレーティングシステム

OS の話をするのかとウキウキして受けるとただのプロセスとスレッドの講義でがっかりしました。でも C 言語を表層しか触っていない僕にとってはスレッドなど少し進んだ概念を学ぶことができてよかったです。

2020 年度第 4 ターム

プログラミング言語

基本情報技術者試験みたいなことをします。オートマトンの復習と、構文解析や意味解析を学び、手でインタプリタがしていることを追いかけます。コードを書いてコンパイラとか作らないのかと思いましたが、概念さえ分かれば後は実装に起こすだけなので今考えるとこういう手で概念を体感するのも良いのかなと思います。

確率モデリング

ポアソン過程やマルコフ過程をします。僕はこのあたりで統計や確率モデルに対して興味をなくしていたので計算を頑張って終わらせました。

プログラミング IV

セメスター制の講義です。

データベース

この講義は学習について研究してる先生が担当なので、講義スタイルも工夫されていて大変だけど今でも覚えていて使える知識が多いです。真面目に受けてよかったです。リレーショナルデータベースの代数や正規化、SQL を触る、くらいをやります。この辺りは Web 系でバックエンドのインターンとか、入社してからはどうもみんなやっているっぽいので常識としてしっかりやっておけてよかったなと思います。後で復習したいな。

計算機構成論

2 年生のボス講義でした。Verilog を使ってシミュレーション環境で CPU とアセンブリを学びます。結構重いので頑張りました。当時はつらかったですが、今考えるとコンピュータ・サイエンスっぽい要素のなかで一番大きいのはディジタル回路設計からの計算機構成論だったので、頑張ってよかったなと思います。

数値計算

行列計算や非線形最適化をコードを書いて理解します。結構知らないことがあって、それを実装するのが面白かったです。Jupyter Notebook を使っているのも環境で詰まることがなくて好印象でした。

3 年生

2021 年度第 1 ターム

計算理論

チューリング機械や計算可能性、暗号をします。理論よりの講義なので僕は面白かったです。数学とパズルが好きな人は楽しめると思います。

情報データ科学演習 I

アルゴリズムと FPGA の 2 本立てです。アルゴリズムはこれまで真面目にやってきた人にとっては楽勝で、FPGA が大変なので頑張りました。ディジタル回路設計と計算機構成論を実機でやってみた!みたいな雰囲気なので復習をしました。

実用英語 I

単位認定では skip できないタイプの英語です。LaTeX を使いました。Overleaf というオンライン TeX サービスを早めに覚えておくといいと思います。ローカルに TeX 環境を構築すると、生協 PC の貧弱ストレージはすぐにいっぱいになってしまって、3 年前半で講義で推奨されるソフトウェアがインストールできないということが起きます。

データマイニング

大量のデータからどう役に立つ相関を見つけ出すか?ということを学びます。Weka を使った気がします。いまいち私は内容が理解できなくて苦しみました。

サーベイ・デザイン

社会調査について学びます。これは面白かったです。例えば、アンケートの質問の仕方によってアンケートの回答結果が変わる、など普段なんとなくモヤモヤすることが詳しく説明されています。ただ先生がずっと咳をしていて耳が辛かったです。

行動計量学

心理学です。たくさん文献を読みます。先生のまとも度としてはかなり上位で、受けていて辛いことがそんなになく、学問に集中することができました。先生がもし非合理的でやばい人間だと気を取られて学問に集中できず内容が理解できずその分野自体が嫌いになるので辛い。この講義では、心理学の実験はかなり疑わしく、主張できる範囲を見定める必要があるということを学びました。

2021 年度第 2 ターム

画像処理

Python を書いて画像処理を学びます。僕はカメラが好きなので後半のカメラの撮像素子がしてそうなことを学ぶパートや画像認識部分はとてもワクワクして面白かったです。

情報社会とセキュリティ

セキュリティやサイバー攻撃の事例と対策を学びます。広島大学は比較的クラウドやセキュリティに対し頑張っていて先進的なので面白い講義でした。

自然言語処理

検索、ナイーブベイズ、文脈解析などを学びます。これは現在ライブラリ化されてしまっている部分も多いと思うのですが、その基礎となるところを手で追いかけて体感することで概念を習得するという構成でした。

情報データ科学演習 II

FPGA パートと、統計と社会学っぽいパートの 2 つです。FPGA が特に重いです。チャタリング周りが今でもよく分からないくらい実機を触ってみないと分からないので、困ったらすぐ TA の人に尋ねていました。

2021 年度第 3 ターム

実用英語 II

英語です。I はまだ計算っぽくて分かっていたのですが II は科学など他のトピックも入ってきてあまり学習に身が入りませんでした。先生の声もオンラインで聞き取りづらく、厳しかったです。

情報データ科学演習 III

画像処理と統計の 2 本立て。画像処理と、ビッグデータの扱いを学びます。ここは少しデータサイエンスの流れに乗って設立されたこの学部っぽさを感じました。これは特に重くないので普通にやっていれば単位は来ます。

ビジュアルコンピューティング

ビジュアル研でやってそうな、レンダリングやコンピュータビジョンを学びます。3D ゲームや VR などの美しさの仕組みが知りたい人はその入り口として面白く受けられると思います。

ヒューマンコンピュータインタラクション

HCI です。Prolog も出てきます。この先生はデータベースと同じで学習系の先生なので講義内容が身に付きました。

2021 年度第 4 ターム

ビッグデータ

MapReduce やリンク解析を学びます。ガイダンスで最新の研究成果の紹介があって講義に対するモチベが上がりました。ランダムサーファーモデルなど、検索の基礎が学べて面白かったです。

計算機ネットワーク

ネットワークについて学びます。TCP を特に詳しくやったので今まで苦手だったネットワーク分野への苦手意識がなくなって楽しくなりました。

情報データ科学演習 IV

Raspberry pi と社会科学の二本立てです。Raspberry pi を使うところはやったことがあるので簡単でした。社会科学はこれを最初受けておきたかったなと思うくらい構成が良かったです。そもそも、「ほら統計教えたから実データ探して面白いことしてよ」と言われても小学生の自由研究みたいなものしか僕は出せず苦しくて、この講義のように型として今までの研究がこういうところで見れます、みたいな教え方をされないと分からなかった(そもそも興味をなくしているため)と思います。

並列分散処理

この講義は単位を落としました。並列処理をゴリゴリ学ぶ感じで面白かったのですが、当時体調が悪くレポートや課題が出せませんでした。

まとめ

私は大学に入学することを決めた時点でコンピュータ・サイエンスを学ぶことを期待していました。それは具体的にアルゴリズム/型理論/低レイヤを指していました。実際に 3 年間講義を受けた中に型理論は一切なかったですし、低レイヤも CPU 実験ほど高度にやりきった感のあることはしていません。
一方で、オートマトンや情報理論、社会学といったところは独学では絶対やらない自信があるので、そういう「なんとなく食わず嫌いをしている分野」をやらざるをえない環境に身を置けたことで、却ってその良さに気づくことができて意外と面白かった、ということが大学に 3 年間いた価値だと思います。
自分が望んで与えられなかった部分は独学でやればよいので特に広島大学を選択したことに後悔もないです。これから独学になってもコンピュータ・サイエンスを楽しく勉強していきます。
あと研究!これがんばらないと卒業できないのでドキドキ!頑張ります。