新歓ブログリレー3日目の記事です。
毎年書いてるので講義の感想を書きます。過去のやつは↓です。
所属している情報工学系の授業が大半ですが、他系の講義も可能な限り取ったので、他系の講義取りたいって人に参考になるかもしれません。
情報工学系
コンピュータ論理設計
プロセッサの仕組みを学ぶ。演習ではVerilog HDLというハードウェア記述言語を使って実際にFPGA上でプロセッサの設計をする。命令セットは以前はMIPSを使ってたらしいけど今年はRISC-Vだった。カウンタとか加算器から始まって、シングルサイクルプロセッサ、マルチサイクルプロセッサ、パイプライン処理までやる。シングルサイクルプロセッサで機械語が具体的な計算に変換されるところはかなり感動した。
演習が結構大変で毎回0.5コマくらい遅れてた。演習課題は演習中にTAに見てもらうしかないが、最後までに全てのチェックポイントをクリアしていればOK。
最後の演習で設計コンテストというのがあり、4人グループでプロセッサの性能を競う。自分は全く貢献出来てなくてアだった。期末期間だったので皆やってる暇なさそうだと思ってたけどやってる人はちゃんとやってて凄かった。
データベース
理論的なこと(データベースの正規形とか関係代数)をやる。SQLは最終回で少し書いたくらい。二次記憶に格納されたデータに対してロードをできるだけ減らすようにする必要があるので、主記憶上の計算とはまた違ったアルゴリズムになる。でもあまり興味なかったので結構寝てしまった。
コンピュータネットワーク
OSI参照モデルに基づいて下層の方から物理層、データリンク層、ネットワーク層、トランスポート層...と順番にやっていく。教科書は有名な『マスタリングTCP/IP』。たまに教科書にない内容も出てくる。データリンク層の通信のタイミングを決める部分とかネットワーク層の経路制御とか興味深い部分もあったけど、とにかく登場するプロトコルが多く、他のプロトコルから情報を得たりするので複雑だった。途中から寝落ちたりして講義聞いても理解できなくなり、スライド読むだけになって対面で行く意味を失ったから2回ほどサボった。試験は中間と期末の2回で持ち込み可だったけど、内容がめちゃくちゃ多いのでカンペを書くのが大変だった。
数値計算法
計算量とか数値的な安定性を考慮した計算の手法を扱う。偏微分方程式の数値解法の収束性を固有値から判定する方法とか面白かった。あと担当教員の方がDNAコンピューティングの話してて興味を惹かれた。
期末課題でMATLABを初めて使ったけど、1-indexedだったのとかなり重かったのとでGoogle Colabで良くない?ってなった。あと型が欲しい。
システムプログラミング
低レベル入出力やプロセス間通信などOSのAPIについて。演習でシェルを作る課題があり、仕組みが理解できて面白かった。演習ではC言語だったがRustで作り直したりした。あとmake test
するだけで与えられたテストケースについてはチェックできるので体験が良かった。
パターン認識
パターン認識のアルゴリズムを理解して実装するのではなくて、機械学習の理論的なことをやる。最尤推定がKL情報量最小化から出ることとか、ベイズ推定など初耳の話が多かった。
後述の統計的信号処理と重複する部分もあるのだが、行列の微分やEMアルゴリズムの解説など、パターン認識は基礎的な部分の説明が詳しかった。
並列プログラミング
実際にはイベント駆動プログラミング・並行プログラミング・並列プログラミングをやる。講義と演習が1:1。演習はJavaFX/Java Thread/OpenCLを使った。課題のコードを読むのが辛かった。
コンパイラ構成
コンパイラの各種技術(字句解析・構文解析・意味解析・コード生成・最適化)について。Cのサブセットの構文解析とコード生成で課題が二つあり、試験はなし。課題に早めに取り組めるように講義を早めに終わらせてくれる。
生命情報解析
3人の教員が2:1:1で交互に別々の話をする。交互にやる必要あったのか?思ったより興味なかった。
時系列モデリング
前半は確率論・統計学の延長で中心極限定理の証明をする。後半は時系列データを自己回帰モデルで分析する手法を扱う。この辺はパターン認識と近いと思う。ランダムウォークやカルマンフィルタなどの発展的な内容にも触れるがあまり深入りしない。
システム設計演習(画像解析)
(講義名がよくわからない)。画像解析とウェブプログラミングのどちらかを選ぶ科目で、自分は画像解析を選択した。人数が偏ると抽選が行われるらしいが今回はなかった。画像解析の方は講義はなく、MATLABで資料・課題が配られて各自で進める。画像処理n本ノックみたいな感じで、フーリエ変換/ウェーブレット変換で近似画像を生成したり、フィルタでノイズ除去したりして面白かった。画像認識とか機械学習はやらない。
動的システム
講義名が分かりにくいが、制御理論(システム制御系でやってるやつ)をやる。前半は状態空間法で、システムの安定性やフィードバック制御、制御系の最適化などを扱う。後半は伝達関数法で、同じく安定性とか周波数応答などを扱う。定理の厳密な証明にはあまり立ち入らないが、直観的な説明はしてくれる。実験とかはなく理論のみ。
システムソフトウェア
システムプログラミングの発展で、OSの仕組みを学ぶ。xv6(C言語製RISC-V向けOS)のコードを読み進めながらプロセス管理・メモリ管理・ファイルシステム・入出力・並行性制御についてやる。システムプログラミングで気になっていた部分が理解できて面白かった。OSってかなりすごいことしてるなあと感動した。
コンピュータアーキテクチャ
コンピュータ論理設計の発展で、記憶階層や分岐予測などを扱う。演習ではキャッシュを実装したりする。こちらも演習はかなり重く、やはり0.5コマくらい遅れていた。最後は個人で設計コンテストがある。期末期間だったのもありあまり時間を割けずBimodal分岐予測を実装したらリファレンスデザインの性能を下回ったところで終わってしまった。が、下回った人は何人かいたし、未完の人もそこそこいた。提出するのが大事です(しないと上限が60点になる)。
ソフトウェア設計と品質
前半はオブジェクト指向設計における設計の流れとかデザインパターンの内容。後半はコードの臭いとかリファクタリングの話。開発する上で実用的な知識なんだろうなあと思った。
システム構築演習(画像解析)
システム設計演習の続き。システム設計演習と同じテーマしか選べないらしい。画像解析の方では、こちらも講義はなしで自主的に取り組むスタイルだった。システム設計演習と違い、課題のみが与えられてそれが最終レポートとなる。課題はいくつかのノイズモデル(ガウスノイズ、ポアソンノイズなど)や画像(グレースケール、カラー画像など)についてノイズ除去を行うというもので、設計演習で習ったことを単に適用するのではなく、自分で手法を考案したり論文を探して実装する必要がある。また自分で構築した手法について、ノイズ除去の性能だけでなくハイパーパラメータの数や計算量を既存手法と比較したり、画像の違いによるメリット・デメリットを議論したりする。
研プロ[1]その3って感じで重かったけど面白かった。自分で手法を模索することで設計演習で曖昧だった箇所もちゃんと理解できた気がする。でもMATLABは辛い(n回目)。
システム制御
動的システムの続きで、フィードバック制御の安定性とか設計の方法について学ぶ。
問題解決と意思決定
数理最適化。線形計画法、ニュートン法、多目的最適化、整数計画問題など。また最短経路問題やネットワークフローについても扱う。毎回演習が出され、手計算でシンプレックス法を実行したりライブラリ使って最大流を求めたりした。
研究プロジェクトのこと。情報工学系の場合は指定された2研究室を訪問し、そこで行っている研究に関連した課題を行う。 ↩︎
情報通信系
通信理論
情報工学系では情報理論の講義が開講されてないのだが、情報系としては知っておきたいと思ったので取った。前半は情報源符号化、後半は通信路符号化と暗号の基礎。
統計的信号処理
統計的性質を利用して信号のノイズを除去する手法を学ぶ。本質的に数理統計学なので最尤推定やMAP推定などパターン認識と重複する部分も多い。その他には特異値分解を用いたノイズ抑制やカルマンフィルタなど。
電気電子系
光エレクトロニクス
光通信システムに用いられる技術について、変調方式、光導波路・半導体レーザの特性から、光信号の減衰の仕方、各段階で発生する雑音の評価と対策など網羅的に扱う。それから光計測としてLiDARの仕組みとかをやる。
物理学系
相対論的量子力学
特殊相対論を取り入れた量子力学の理論。演習はなしで講義のみ。ディラック方程式の導出から始まり、相対論的量子力学に固有の現象を考察し、空孔理論による解釈を行う。後半は非相対論的な展開からパウリ項・スピン軌道相互作用・ダーウィン項を導き、相対論的な水素原子の波動関数とエネルギー準位を導出する。
量子力学III
散乱問題・多粒子系・量子情報を一通り。多粒子系は、同種粒子の入れ替えから統計性を導出するところから始まり、状態を占有数表示で書き直して第二量子化を導入し、具体的な事例について簡単な?計算を行う。量子情報は、量子計算のアルゴリズムを扱うのではなく、エンタングルメントを使うと効率的に情報を伝達できたり色々面白いことができるよ~って感じだった。
人生で受けた講義で一番難しかったんじゃないか。平均場近似とかBerry曲率と幾何学的位相のところとかいまだに分かってない。レポートならともかく試験をまともに解ける気はしなかったが、事前に配布された過去問と似たような問題が出されたので助かった。
文系教養
言語学C
言語学と言っても神経言語学で、脳の機能的連結性(各部位の間の関連性)の話など。前半の哲学パートは何を言ってるのか分からなかった。思ったより面白くなかった。
教養卒論
自分の好きなテーマについて5000字以上で論じる。講義ではアカデミックライティングやら引用の仕方をやる回と学生同士でピアレビューをする回がある。一定以上欠席したり提出が遅れたりすると落単となる。
教科書を買えと言われたが、例によって買っていない(いらなかった)(教員によりそう)。
英語
英語第九
TOEFLやTOEICで基準点1をクリアすれば無条件で特単、基準点2をクリアすれば授業を受け小テストで合格点を取ることで特単できる。特に書くことがない
いかがでしたか?
明日はKirby0717さんの記事です。楽しみ~