gotutiyan’s blog

プログラミング関連の話題を中心に

甲南大学知能情報学部の講義感想

はじめに

甲南大学の知能情報学部の講義について,学べることや感想を書いていきます.あくまでも,僕が受けた授業についてのみ書いていることにご注意ください.
また,講義の内容については,各講義のシラバスが最も正確であり,最も信憑性が高いということを明記します.

なお,記事の内容は僕が講義を受けた時点の内容なので,いまあなたが見ている年度では大きく異なる場合があります.そういう意味で,必ずシラバスを確認してください.

あと,4年の初めに書いているので,1年次の科目とか正直うろ覚です.それと基礎共通科目は書いてません.ごめんよ

1年次に受けたもの

体育

1限+六アイは朝がきつい.2限+六アイは帰ってくる時間がお昼の時間を侵食しがち.よって岡本の体育館になる種目が人気で,それを取れたら勝ちみたいなところあり.面白く無いけど出席さえすれば単位もらえる.

英語(読み)

GTECの結果でクラス分けされる.とは言っても,やる気のない人はわざと低い点を取って下のクラスに行こうとするため,普通にGTECをやればそれなりに上のクラスになる.僕はTS組だったが言うてもセンターをちょっと簡単にしたくらいの長文を読むだけなので,甲南の英語を解けて入学してきている人には,難しいものではないと思う.受験時の英語の感覚がある程度残っていれば簡単.

英語(聞き)

覚えてません,英語を聞きました.特に何もしてないけど取れた.

英語(話す)

今から時間とるのでN人と自己紹介しましょう系のタスクが無限に降ってくる.僕はそういうの好きではないのでご察し.(先生によって違いそう.)出席をしていたら取れた.

第二外国語(読み・話す)

中国語を取りました.読む方も話す方も,結局文を読むし発音するので,言うてやっていることは同じ.出席をしてテスト前に単語と文法を詰めれば取れた.

知能情報学概論及び基礎演習

知能情報学部でやる学問を一通り知ることができます.担当教員のもとで行う少人数ゼミでは,初めて研究室という場所で作業するので大学生感が増す.本当に概論なので,この講義で何か学べるかというと特になさそう.出席すれば取れた.

微積I

微積分をします.線形代数でも同じことが言えますが,学籍番号で先生が変わるので,人によって先生が変わります.先生との相性はある程度あるような気がするので,うまく適応しましょう.この学部の受験に数3の履修は必須ではないので,高校でもやったようなことを含みます(ただし,証明とかは高校よりちゃんとやっていくと思う).微積の前半であるこの講義では数3履修者は少々退屈するかも.良い復習という感じ.教科書の問題を自主的に一周すれば取れた.

微積

偏微分とか重積分とか,大学の微積って感じのことをします.授業を聞いていれば理解できると思います.教科書の問題を自主的に一周すれば取れた.

線形I

初めて行列に触れる体験をあなたに.線形代数をします.数学Cなんて今時の高等教育には無いので,初めての行列は楽しいのではないでしょうか.基本的には機械的な計算だけをやります.先生によってはその図形的な理解というか,演算がどういう意味を持つのかまで踏み込んでくれるかもしれません.教科書の問題と配布プリントをやると取れた.

線形Ⅱ

引き続き行列の演算をします.確か対角化とかをしたような.行列の固有値とそれに属する固有ベクトルを求められて,対角化できて,対角化した行列を利用してA^nを求めるみたいなテッパンの流れができれば,単位取得には十分だと思います.教科書の問題と配布プリントをやると取れた.

確率統計

平均・母集団・などの話からt検定,区間推定など.必修なこともあって,わかりやすくやってくれます.配布プリントの問題を復習すれば取れた.

プログラミング演習I

プログラミングをします.まずはUNIXコマンドをやってから,Processingという言語を学びます.UNIXコマンドは,この講義を受けている時には「こんなん何に使うねん」という感じですが,卒業研究を始めたあたりでその恩恵を知ることになると思います.Processingでは基本的な変数,if,forといった概念を学びます.関数の概念は確かやらなかったような・・・クラスの概念なんてもってのほかです...やって欲しいですけどね.簡単.

最後に最終課題というのがあって,自由に作品を作れます.そこで良いのを作ると,大学のホームページに掲載されます(以下のリンクから).僕は2017年度「青い四角の物語」の作者です.

www.konan-u.ac.jp

プログラミング演習Ⅱ

Processingを卒業してC言語に入ります.C言語はこの講義だけではなくて,2年次のアドバンスドプログラミングにもつながるので,できるだけ,つまづきたくないところです.とにかく自分で色々実装して感覚を掴みましょう.AtCoderとかすると良いんじゃ無いかな.簡単.

コンピュータサイエンス

THE・基本情報技術者試験な内容.N進数の計算,論理回路,よくある磁気ディスクにアクセスするための時間計算とか.情報系なら知っておきたい知識が得られます.なんで必修じゃないんやろねこれ.基本情報の勉強をしてる人なら取れて,そうでなくてもスライドに書いてある単語が分かれば取れる.

IT基礎

オフィスの練習.WordやExcelの使い方を学びます.僕はこの講義を受けたことで,パワーポイントで箇条書きする時にTabキーで段組みを作れることを知りました.簡単.

2年次に受けたもの

応用システム解析

システムの様子を微分方程式で記述し,微分方程式を主にラプラス変換で解くことを目指しています.ラプラス変換の前に区分線型標準化とかもやりますが,最終的にはラプラス変換がメインになります.うちの微積の講義は微分方程式にあまりフューチャーされないので,「微分方程式ってなんやねん」状態の人が多い印象です.その中でラプラス変換とやらを使って講義が進むので,よく分からないものをよく分からない手法で解く感じになってしまいました.個人的には難しかったです.

システム制御工学

応用システム解析が前期にあって,その続きの講義.後期にありました.やってることは応用システム解析とそないに変わらないので,応用システム解析が楽しかったり,ある程度わかっている人は引き続き取ると良いと思います.計算量が増えて,部分分数分解をひたすらしていたような気がします.難しい.

オペレーションズリサーチ

通称OR.線型計画問題とか動的計画法とかをやります.教科書もわかりやすくて,講義もわかりやすいのでオススメです.講義の最後に大きめのレポートがあって,講義に出てきたORの手法で実問題っぽいものを設定して解こう,というのが出ます.アイデアこそ出れば書くだけなので良いですが,アイデアが出ないと辛いかもしれません.僕は,数種類の科目に,勉強に必要なコストと得られる知識量を適当に定義して,あるコスト上限の元で知識量を最大化するための科目選択をする,というのを動的計画法で解いた話を書きました.テーマこそ誰でも思いつくようなものだったので,動的計画法の計算を手計算ではなくプログラムで行うことで差別化を図りました.個人的に好きな分野であることもあり,簡単.

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

Iではデータ構造が中心です.基本情報技術者でも頻出のスタック・キューとか,配列とリストの計算量の比較,木の探索などをやります.そこまで難しくないです.ポインタが分かってないとリストの説明されてもよく分からないので,ポインタは頑張りましょう.簡単.

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

Ⅱではアルゴリズムが中心です.やっぱり最初はソートから始まります.(今時ソートなんて組み込み関数呼ぶだけなので,もっとやるべきことがあるような気もするけど..)その後,8クイーン問題とか三目並べのAIみたいなやつとかをやります.簡単.

確率統計学

確率統計をします.標本平均とかから始まって,t検定,区間推定など.各回で結構問題を解かせてくれるので,具体例で確認できて面白かったです.難易度は普通.言ってることがわからなくなってきたら,それより前に出てきた事がわかってない事が多いので,定期的に戻ろう.

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

OSのプロセス管理が主なテーマです.複数のタスクをコンピュータがどう処理しているのかということが学べます.内容は基本情報技術者にも直結します.例えば,この講義で出てきたラウンドロビン方式は,僕が受けた基本情報技術者試験の午後に大問として扱われていました.簡単め.

人工知能

僕が受けた年だけ諸事情で担当の先生が通常とは異なりましたが,基本的には探索手法をやりました.山登り法とか,ミニマックス法とか,Aスターとかです.いずれもゲームAI寄りという感じでした.機械学習の手法に興味がある人は面白いと思います.一つ一つの手法の考え方をちゃんと落とし込む作業をすれば取れる.

数値プログラミング技法

数値プログラミングという名前ですが,中身は行列演算です.僕が受けたときには,C++のEigenというライブラリを使って行列計算をひたすらやっていました.連立方程式を解いたり,〇〇分解と名のつく手法を使って問題を解いたりします.基本的に線形代数の講義で手計算でやっていたものを,プログラムでやるとこんな感じなんやなーと実感できます.ちょっと難しい.

コンピュータアーキテクチャ

コンピュータのメモリの話が大半です.あるデータを記憶したいときに,どのようにしてメモリ確保が行われるとか,キャッシュメモリはどのように動くのか,などです.個人的に内容が難しくて,後半はあまりついていけませんでしたが..

離散数学

簡単な集合の話や,命題,組み合わせ計算などをやります.内容は簡単だと思います.情報技術者試験でも求められる分野です.簡単.

アドバンスドプログラミング

プログラミング演習Ⅱに続く科目です.C言語を使って,構造体や関数などをやったような気がします.(あまり覚えていません.)そんなに難しくはないですが,課題がそれなりにめんどくさかったような.(なんか縦向きのヒストグラムとか書いたような..)簡単.

IT組織・管理

権利関係の法律や,企業のCSRなどの話題.なんかニュースを読んでその感想を書くというのを毎回やるので,その準備だけして,テスト前に黙って覚えること覚えれば単位がやってくる.

情報英語

Wepkipediaの"人工知能"の項目を丸々読んだりします.読みながら語彙をやったり,先生独自のプリントで,単語をそれなりに覚えます.個人的にあまりお勧めできないが,選択必修Aの枠の授業を埋めるにあたってコミュニケーション系を全て避けると必ず取ることになる授業.Wikipediaの文章を読むことにどれくらいの意義があ流のかよく分からないが,単位だけを考えるなら簡単.

情報セキュリティ

サーバーの役割や鍵を用いた暗号化,ネットワーク関係のセキュリティをやります.実習としては,chmodを用いたファイルやフォルダのパーミッションの変え方をやります.この講義の内容は他の広義には一切出てこないような気がするので,取って損なしです.難易度は鍵さえ理解できれば簡単な部類.

情報解析

ここでいう情報とは主に音声のことです.音声データは波形なので,その波を色々な三角関数の和で表すことができれば嬉しいみたいです.フーリエ変換を使えばそういうことができるので,フーリエ変換をやります.フーリエ変換にも離散的なやつと連続的なやつがあるようで,両方ともやります.僕は結構苦手でしたが,わかる人はすぐ理解できていたようです.

最適化

ある関数の値を最小化/最大化するような変数を求める作業を最適化と呼びます.例えば下に凸な二次関数を最小化するxは頂点を見れば良いわけですが,この講義ではそういうことをやります.ラグランジュの未定乗数法は感動ものですね.線形計画問題もやります.難易度は普通.授業で扱われたことを再確認していれば解ける(まあ任意の講義がこれなんですが).

データベース

データベースの扱いをやります.テーブル同士の結合とか,SQLです.情報技術者試験でも問われるところですね.演習としては実際にSQLでテーブルの作成と列/行の取り出しを行います.用語とSQLをきちんと覚えておけば取れます.

コンパイラインタプリタ

主に文法規則や構文解析の話です.文法規則は,プログラムには文法がありますが,それってどうやって定義されているの,みたいなことです.その手法としてBFN記法とかオートマトンをやります,これは簡単で楽しかったです.しかし構文解析関係が個人的に難しくて,あまり理解できませんでした.

オブジェクト指向プログラミング

クラスの概念を知ることができます.カプセル化や継承と行ったクラスの利点をやります.多相性の概念もやって,異なるクラスでも同じ関数を定義していれば,クラスのインスタンスを詰め込んだ配列をforで回して関数呼べるみたいなことができるみたいで,面白いです.Javaで実習します.簡単.

グラフ理論

グラフの話をやります.グラフはノードとエッジを用いて,ノード間をエッジで繋ぐように構成されます.主にこのノードとエッジの関係,具体的には次数とか彩色数とかです.グラフがオイラーグラフなら一筆書きできるみたいな話もあって,僕はこれを聞いて一筆書きのゲームを作りました.役立ちます.簡単.

3年次に受けたもの

集合と位相I

Iでは主に集合の話をします.位相はⅡらしいです.ε-δ論法とか,命題,写像関係です.個人的に集合論は興味があったので,面白く聞けました.テストは時間のわりに問題数が多いので,持ち込み資料を見ている暇はあまり無いと思います.難しさは普通.

幾何学I

コーヒーカップとドーナツは,トポロジーの世界では同じだそうです.そんな話です.色々な形のものをトポロジーの世界で貼り合わせたり分裂させたりすると,また違う形のものが生まれるみたいな話が続きます.(あまりちゃんと理解できてない気はする).テストをやる分にはそれなりに簡単だと思うんですが,学問としては僕はとても難しいと思います.

Webコンピューティング

検索エンジンで検索した時に,上位の検索結果はどのように得られているのかをやる感じです.その手法としてページランクとか,文書間の類似度としてJaccard係数とかTF-IDFとか出てきます.自然言語処理に近いところも多く,面白かったです.難易度は少し難しい.

ソフトウェア工学

開発を進める上での手法を主にやります.ウォーターフローとかアジャイルとか.各開発方法のメリットデメリットをやります.また.クラス図も書きます.クラス図に関してはhas-a, is-a関係を意識して書ければ問題ないです.それなりに簡単.

実験計画法

複数の要因が結果に影響するような実験において,どの要因が一番影響が大きいの,みたいなのをやった(はず).多重比較検定とか.そもそも何を求めようとしているのかがよく分からなくて,個人的には難しかった.

パターン認識

機械学習や深層学習につながるような内容.k-meansなどのアルゴリズムや,深層学習の基礎となるパーセプトロンの話,学習の結果を評価する指標など.機械学習に興味のある人はぜひ受けるべきです.普通な難易度.

知能化技術

機械学習や深層学習につながるような内容.パーセプトロンの話とか,モデルの層の話とか,学習の過程の話をやります.後は主成分分析とか回帰分析などの手法が,どのようなタスクに適応可能かをやります.機械学習に興味のある人はぜひ受けるべきです.普通な難易度.

自然言語処理

人が普段から書いている文章を自然言語と言いますが,それをどう処理するかをやります.この講義では最新の言語処理をやるというよりは,少し古めの技術についてやっています.ですが,そのような技術も決して無駄ということはないです(経験談).言語処理ではどのようなことが行われているのかを知りたい人は受けると良いと思います.難しめ.

画像工学

画像を処理するための工夫についてやります.実習形式で,matlabを使います.ランレングス符号化で画像を圧縮して表現するとか,アンチエイリアスで輪郭を良い感じにするとか,そういう感じです.普通.

経営情報システム

経営に関する様々な話題を扱っています.経営に関する情報の話題なので,特に数式などは出てこず,活用例を見ていく感じです.聞いていて面白かったです.簡単.

最適化プログラミング

matlabを使って,関数のグラフを書いたり,excelのソルバーを使って線形計画問題を解いたりします.matlabは画像工学の講義でも使うので,すでに受講していればこの講義でも有利です.線形計画問題も,2年次配当科目のオペレーションズリサーチでほぼ同じことをやるので,受講していれば有利です.普通な難易度.