けものみち

まったりと、きのむくままに。

白狐単位帖 巻二

おひさしぶりです〜 テストも終わってひと段落したので下のやつの続きでも書き残しておきます

drakscake.hatenadiary.com


27. 応用代数学(3回生後期)

  • 先生: 辻本先生
  • 評価: 期末試験

群論入門といった感じ。応用と科目名で使っている割にはそこまで応用っぽいことはやりません。 準同型定理バーンサイド補題、表現のお話が大きかったかもしれません。他の時間はとにかくそれらにつなげるための数学的準備とかが多かった気がします。黒板に板書していくスタイルだったのでそこまで分量も多く取り扱っていない感じです。

テストでは、2018年度は準同型定理の証明、正六面体の面、頂点塗り分け問題、正八面体群の回転の表現行列云々の問題と、レポートから1題(群の公理、部分群と準同型写像の基本的な事項の確認)という感じでした。この科目を1回生で上々回履修する人もたまにいるのですが、線形代数学が十分理解できているならば1回生で受講しても問題ないと思います。ただ、そこまで無理して受講するのはあまりオススメしません。


28. ソフトウェア工学(3回生後期)

  • 先生: 渥美先生、星野先生
  • 評価: 期末試験

ソフトウェアを製作するにあたっての設計書の書き方、テストの仕方(Unit Test, 統合テスト、System Test)についてウォーターフォールモデルをベースに解説していきます。最近ではアジャイルとかそっちの方が主流なことも多いのでそちらと比較もしてあります。内容自体はそこまで理論的に難しいわけではないです。手法論が多いのでどうしても暗記、知識に寄りがちな科目な気はします。講義スライドは800ページほどあり、おそらく他の専門科目も含めると枚数だけ見れば量は最高です。

テストは幸いなことにある程度過去問に沿ってやっていけばそれなりの点数が見込めます。ソフトウェア工学の先生なのでテストの大問もモジュール化して再利用性を高めているのでしょうか。よく出ているのは設計書とテストの対応と設計書の記述内容、トレーサシビリティの確保のために気をつけること、テストケース関連(条件網羅、分岐網羅etc...、コーナーケース)、ホーア論理あたりですかね。

設計書の書き方とかは2回生の後期の計算機実験のハードウェアの方でレポートで書かされるので、先に知っておけばよかったと思うのですが…。


29. 計算と論理(3回生後期)

  • 先生: 五十嵐先生
  • 評価: 宿題(30+α)、(演習)期末試験

Coq を用いながら単純型付きラムダ計算や自然演繹について学んでいき、最後カリーハワード同型対応に持っていく感じです。論理学系が好きな人はかなりうれしい科目になっていると思います。ぼくは正直この科目が苦手なのであまり多くは語れません…。

宿題自体は某テキストのExerciseのうち指定された問題を解いて出すのが7回程度ある感じです。指定されていない問題を解いた場合は随時加点されるようです。また、演習回が2回ほどあって、講義資料に載っている演習問題を解いて発表し、正答すれば加点される仕組みになっています。こちらの演習回の方がテスト寄りの内容になっている気はします。

期末試験は公式で過去問が配布されるのでそれを参考にしてください。あとは公式カンニングペーパーが1人1枚、最終回の講義で配布される(友人に代理でとっておくなどの代行行為は不可)ので手に入れておきましょう。


30. パターン情報処理(3回生後期)

  • 先生: 飯山先生、河原先生
  • 評価: 期末試験

河原先生が音声、音楽関連、飯山先生が画像処理に関連した話を進めていきます。音声、音楽関連のお話は、音声や音楽、言語に含まれる情報について分析した後、機械的に処理する方法について触れ、最後に音声対話システムや音声合成などの技術についてのモデルや構成について触れていく感じです。画像処理については、マルチメディア(画像と映像)、CG、ニューラルネットによる画像認識の話が主です。

定期試験は、河原先生範囲は講義スライドの演習問題にあるような感じの問題が出ます。きちんと理解していないと全く歯が立たないのでかなりいい問題だと個人的には思います。飯山先生範囲も同じように説明問題系が出るので穴のないようにきちんと理解しておくといいと思います。


31. 機械学習(3回生後期)

  • 先生: 河原先生
  • 評価: 期末試験

学部生で知っておくべき機械学習系の知識を総ざらいする感じですかね…。パーセプトロンSVM、識別関数、混合正規分布クラスタリング、ナイーブベイズ、ロジスティック回帰、Deep Learning...などと列挙し続けるとそこそこの範囲になりそうです。かなりまとまっていると思うので、あとは講義資料の微妙に足りない部分を補っていけば理解できると思います。

期末試験は、大問3つからなっていました。まず正規分布関連が必ずと言っていいほど出ますね。2018年度は線形識別可能になる条件等が問われていた感じです。この辺が解けないと勉強したことにはならなさそうです。2問目はランダムに出題という感じでしょうか。2018年度は特徴抽出関連の問題が出ていました。3問目は5つ中2つ選んで、似たような用語、手法の違いがわかるように説明する問題でした。解答するにあたっては、結論があっていることよりもロジックの組み立て方とかの方がかなり重視されているようなので、結論があっていても導出過程で肝心な部分が抜けていると普通に単位が落ちます。


32. 数値解析(3回生後期)

  • 先生: 西村先生
  • 評価: 期末試験(レポートは期末試験が合否ギリギリの人用の救済程度)

ガウスの消去法、線形方程式の解法と conditioning、反復法(Jacobi 法、Gauss-Seidel 法、SOR法)と収束条件、CG法、常微分方程式数値計算法(Runge-Kutta法)、偏微分方程式の差分解法あたりがメインです。かなり数理寄りの内容になっています。難しい内容が多いですが、公式で講義録(講義ノートをpdf化したもの)が配布されていてこれが結構いい感じにまとまっているので十分勉強が捗ると思います。

期末試験は毎年必ず出す範囲については先生が講義の最終回で話す感じです。ちなみに範囲としてはガウスの消去法(partial pivoting を伴うアルゴリズムの記述、条件数の定義と意味、partial pivoting を行う理由2つ[情報落ちと桁落ちの話])、熱方程式の差分スキームは出ます。ガウスの消去法の大問は先生曰く「できていないと厳しい評価がつきますよ(満面の笑み)」ということだったのでおそらくできていないと医師国家試験でいう禁忌落ちみたいな感じになりそうですね。ほかの大問については2問ほどランダムで出ます。


33. アルゴリズム論(3回生後期)

  • 先生: 湊先生
  • 評価: 毎回の演習(10)、期末試験(90)

あの「数え上げお姉さん」で有名な先生です。時間とメモリを考慮した計算モデルを用いて計算可能性や困難さに関する基礎的な理論を学んでいきます。深く掘り下げるとかなり難しい内容な気はするんですが、めちゃくちゃわかりやすく、かつ丁寧に説明されるのでこれでわからん人おらんやろ…というお気持ちになります。演習ではその講義の簡単な復習問題と、わからないことがあれば質問を記入できる感じになっています。質問も書いておくと次の回の講義でかなり丁寧に回答してくださいます。ここまでわかりやすい&丁寧な先生、他にいなかったと思います。個人的には推しています。

テストはなんと30問のマルバツと3題の記述のみ。しかも、これと似た感じの演習を講義で配布しており、もはやテストを寝ぶっちする以外はほぼ受かるだろ…という感じです。ただし、今年から講義を持ち始めたということなので、来年度以降はもう少し難化するかもしれませんね。


34. 計算機実験及演習4(3回生後期)

  • 先生: たくさん
  • 評価: 出席と制作物とレポート

6つのテーマが毎年ランダムに前半3つ後半3つに分けられ、それぞれ1つ好きなものを選ぶ(人数比はある程度考慮)方式です。

ちなみに僕は実験始まる前は音楽情報処理とデータベースやりたいなって思っていましたが、最終プレゼンで画像処理と情報システムを選ぶことになりました。まったく…プレゼンに弱いんだから!

画像処理は Python (のnumpy)を用いて MNIST の手書き数字10クラス識別機を作るのが必修です。必修これだけ。ゼロからつくるなんたら…を積ん読していたのでちょうどよかったです。発展課題は難易度がさまざまで、ReLU、Batch Normalizationの実装、Dropout の実装、Momentum SGD、AdaGrad、Adamといった最適化手法の実装、CNNとプーリングの実装、カラー画像識別あたりまでが通常の発展、もっとやりたい人はGPGPUサーバーのアカウントを発行してもらって、笑顔の識別、GANなどの課題にも取り組めます。 必修が少ないのと、そこまでレポート分量も多くないので必修が終わってしまえばかなりゆとりをもって他の課題に取り組めるのでいいんじゃないんでしょうか。

情報システムは、C# を用いて「好きなものをつくる(Windows Form アプリケーション)」という実験です。といっても、一応課題なるものはあって、初回課題、共通課題(主にAPIの利用法と文書検索)、個別課題(いっぱいあるやつから3つ)、最終課題(好きなものを作る)という風に分かれています。この実験やる前まで一切C#書いたことないですが、ありえんくらい書きやすい言語なのでサクサク進むと思います。3回後期の科目「情報システム」と合わせてみるといい感じになると思います。 ここだけの話ですが、他の課題と違ってレポートが一切なく、提出物と完成したものをデモで先生にプレゼンする(+最終評価?)だけなのが個人的にはよかったと思います。レポートが結構重く感じることがありますからね…。課題量が多くなく、自由に取り組めるのがとても良かったです。 Windows Form アプリケーションじゃなくてWebアプリケーションだったらもっと良かったんですが…。実験室環境が新しくなっていろいろトラブったらしいです。

ちなみに他の課題については

前半 - コンパイラ: 難しそう。でも好きな人にとってはやりがいのある感じ - エージェント: なんも知らない(特に話を聞かなかった)

後半 - 音楽情報処理: やっていることは楽しそうなんだけど居残り率がダントツで高かった - データベース: 課題が多いと嘆いている感じの人がそこそこいた気がするが役には立ちそう

という感じです。


おしまい。これで一応卒論と4回生の必修以外はそろったと思うので、ひとまず安心です。 入学した時の「情報学科の留年率は3割ほど」という脅しはなんだったのでしょうか。