kuri8iveにいきてこ。

仮面ライダーになりたい。

筑波大学情報学群情報科学類を卒業しました

こんにちは,るいすです.
筑波大学情報学群情報科学類(coins)を卒業したので,振り返りポエムを書きます.長いですが情報量はあんまりないです. 受験生の方に進路の参考にしてもらえたらいいなと思って,coinsに関するQ&A的なお話もいくつか.

以下の情報は2015年度入学の学生によるものなので,この記事を閲覧されている時点では実情と異なる可能性があります.実際にカリキュラムは2020年度入学の学生とは既に違うようです.あらかじめご了承ください.時間割やシラバスこちら

f:id:kuri8ive:20200322183045j:plain
いつぞやの情報学群神輿 at 宿舎祭

私について

入学時にはプログラミング経験は全くなく,そもそもパソコンはネットとソリティアくらいにしか使ってなかったと記憶しています.おもしろフラッシュの世代でガンダムのフラッシュゲームでよく遊んでいました.つまり,以下の記述は入学時全くの素人だった学生のものであることにご留意ください.

coinsに入学したのは情報・コンピュータサイエンス(CS)について専門的に学びたいと考えたためです.coinsと近しい筑波の他学類を選ばなかったのは,メ創→パンフレットから映像などのクリエイター感が漂っていて違うなとなった,知識→図書館に特別興味があったわけではなかった,工シス→ハードよりソフトに興味があった,という理由からです.正直なところあんまりちゃんと調べずに決めました.上記の3学類にもCS系の授業はあり,例えば知識における情報検索のように,CS系のトピックでも必ずしもcoinsが一番適当というわけではないです.今進学先を迷ってる立場だとしたら,各学類の教員・研究室のページを見て出している論文のタイトル・内容から面白そうと思えるところを選ぶのがいいかなと思います.

在学中のデータとして,GPAに関しては上位30%程度に位置していたようです(実感としてはもっと下ですが英語等の非CS科目が比較的良いからかもしれません).また,coinsには卒業後エンジニアになる方が多いですが,私は何かウェブアプリ等を開発・公開した経験がなく,技術力はほとんど備わっていません.研究に関しては,査読付き国際会議論文1報,査読なし国内会議論文2報があります.

5年間の振り返り

1年次

コンピュータリテラシというcoins生用の授業ではすごく分厚い本を教科書に,初めてMacに触りターミナルを開いてコマンド操作を学んだりEmacsでファイル編集をしたり,補数の計算をしたりしていました.CSの授業で教えることではないかもですがVimVS Codeなどのエディタの特徴などもざっと教えてほしかったかなと今は思ったりします.事前アンケートでの回答によって初心者クラスと玄人クラスに分かれていて,私は前者だったため後者では何をしていたかは把握していませんが,より発展的なこともしていたんじゃないかなと思われます.プログラミングは春C(7月あたり)までなかったのと春Cにあったプログラミング入門Aもif, for, while程度でしたが,もう少し進度を早めてもいい気がします.経験者の方々は暇そうでした.

f:id:kuri8ive:20200327025548j:plain
入学直後,強そうな人たちがよく分からない会話をしていたのでとりあえず撮ったスクショ

線形代数Ⅰ解析学Ⅰといった数学の授業はもちろんあります.数学が苦手だったためもう完全に何も分からなくなるんじゃないかと非常に恐れていましたが,想像していたよりは高校数学とのギャップは大きくなかったです,少なくとも授業で扱う範囲は.(注:数学全く出来ずちゃんと学んでもいない人間の感想です.信用しないでください.)なお,ここでしっかり勉強していなかったので今痛い目にあっています.

また,必修ではありませんが春学期だけスペイン語を取っていました.むちょぐすとだけ覚えました.2つのうちの1つが基本スペイン語しか話さない先生で,全然ついていけなかったなぁという思い出があります.(実際coinsでは春に第二外国語を取ってみるものの秋に継続してる人は少ない印象です.)

筑波にはいろんな学類の入門的な授業として総合科目というものがありますが,1年春学期は予習復習も兼ねてCSの先生の授業を取っていました.なお,理系文系それぞれから取る必要があり,翌年は宗教や経営の授業を取っています.月曜1, 2限ということもあってか総合をめんどくさがっている学生はそれなりにいた気がしますが,私の場合はもともと興味が幅広かったため文系の科目も割と楽しんで受けていました.

夏休みは海外NPOインターンといういかにも意識高いものに参加していました.当時は海外に出たことがなくなるべく早いうちに一定期間海外で過ごしてみたいなぁと思っていて,良い機会に思えたためです.6週間それなりに英語を話したり聞いたりしてあまりの自分の出来なさに苦慮しましたが,おかげで多少英語力は上がったかなと思っています.ただ,学年が上がるといろいろやることが増える気がするので,この期間は免許取るのに使うべきかもなぁとも思います.つくばは車のあるなしで行動範囲がだいぶ変わることから,車持ちの学生が結構います.

f:id:kuri8ive:20200327022242j:plain
インターン先の子どもたち

この年の秋学期は休学したため,1年次に履修した授業数は一般的なcoins生の半分程度.春学期終了時点では,まだあんまりCS感はなかったです.

履修した授業:コンピュータ数学,力学,情報科学概論Ⅰ,プログラミング入門A,コンピュータリテラシ解析学Ⅰ,線形代数Ⅰ,スペイン語基礎AⅠ,スペイン語基礎BⅠ,総合英語Ⅰ,異文化と英語Ⅰ,英語基礎Ⅰ,基礎体育ニュースポーツ(春),マルチメディアの舞台裏Ⅰ,ネットワーク社会を支える情報技術入門Ⅰ,世界に挑む産業界・官界トップリーダーによる連続リレー講義:社会基礎学―グローバル人材に不可欠な教養I―,フレッシュマン・セミナー
使った言語: Java, MATLAB

2年次

データ構造とアルゴリズムシステムプログラミング序論といったCSらしい授業が必修で入ってきます.私は1年次秋学期の授業で得る知識が欠けており最初は非常に苦労しました.論理回路実験にしても論理回路を取得前に履修したため,しばらく訳も分からぬままジャンパ線生け花をしていました.友人にかなり助けてもらいながら課題をなんとかやっていた記憶があります.本来であれば情報科学基礎実験ArduinoとLEDやICを使った簡単な実験を経験してから受けるので,普通の人はそこまで苦労しないと思います.

f:id:kuri8ive:20200327024405j:plain
生け花

夏休みは深層学習を読んだものの十分理解はしきれなかったような記憶があります.機械学習の勉強を始めるなら,(私が読んだことある和書の中では)言語処理のための機械学習入門東京大学工学教程 情報工学 機械学習辺りからが良いでしょうか.

解析学Ⅲは勉強が不十分だった上に試験中にお腹を痛めてしまう不幸も重なり,落単してしまいました.かなしい.

この1年は筑波クリエイティブ・キャンプ・ベーシックとその発展編の授業を履修・聴講して,ビジネスプランを考えることが多かったです.結局ちゃんとビジネスになるようなアイデアを考え出すことはできませんでしたが,C Channel代表の森川さん(coins OB)が毎回メンタリングをしてくださっていて貴重な機会でした.授業外にも東京へ出掛け起業家や投資家の方々に壁打ちに付き合ってもらったりしている一方で,CSの学習はかなり疎かになってしまいました.もともとビジネスも興味があったため後悔はしていませんが,真面目にコツコツCSを学んできている人とは大きく差がついてしまったかなーと思います.

2年次は休学時の1年次秋学期の授業も詰めるべく履修上限を解除したため,非常に慌ただしい毎日でした.ただ,一般的なcoins生の場合は2年次秋学期は比較的日程に余裕があり,3・4年次の授業を取っている人が多かったです.(3・4年次の授業といってもあくまで想定受講学年なので普通に取ることができます.)

履修した授業:ネットワーク社会を支える情報技術入門II,コンテンツを創る,伝える,そして使う,基礎体育ダンス(秋),応用体育ソフトボール(秋),情報社会と法制度,線形代数II,解析学II,プログラミング入門B,情報科学基礎実験,離散構造,シミュレーション物理,複素関数論,システムプログラミング序論.オブジェクト指向プログラミング実習,情報システム特別講義B,コンテンツ応用論,宗教から見る現代世界,経営の科学I,応用体育ソフトボール(春),English Scientific Discourse II,English Critical Reading Strategies II,English Intercultural Communication II,English Integrated Skills II,筑波クリエイティブ・キャンプ・ベーシック―アントレプレナー入門講座―,解析学III,情報科学概論II,電磁気学,確率論,データ構造とアルゴリズム,データ構造とアルゴリズム実験,論理回路実験,数値計算法,ソフトウェア技法
使った言語: Java, MATLAB, C, OCaml

3年次

3年次には主専攻実験という半年のお試し卒研のような授業があります.私は春に「ヒューマンセンシング」,秋に「機械学習による推薦アルゴリズム」を取りました.前者ではC++, Kinect, OpenCVを,後者ではスクラッチからの推薦アルゴリズム開発(基本の協調フィルタリングですが)を初めて経験して,分からないことだらけでTAさんには本当にたくさん質問をしながら進めました.始める前は完遂できるとは思えませんでしたが,ググるのと質問をすることを適宜行えばなんとかやっていけるのだなとちょっぴり自信になりました.また,Visual StudioIntelliJを使うようになりIDEの便利さを実感しました.ごく一部の機能しか使えてないので昨今では私にはVS Codeで十分かもしれません.

f:id:kuri8ive:20200327031937p:plain
イケメン顔を逃さない

ソフトウェア工学を履修したこともあり,この頃からGitによるバージョン管理を始めた気がします.

学群開講の授業をこの年初めて取りました.認知心理学を履修したのですが,内容的に近しい認知科学概論の参考書籍を執筆した先生の授業が受けられるのは総合大学ならでは.他学群の授業はcoinsだと自由科目としてカウントされ,GPA計算対象外なので気楽でした.

coinsは1〜3年の体育が必修で,非常に楽しめました.小中の体育はただただ運動神経の良い人が無双するだけという印象でしたが,大学の体育は種目の希望を出せるということもあって皆がほどほどできて良いリフレッシュになり楽しい時間でした.

この年には情報特別演習Ⅰという授業を取りました.これは自由研究のようなもので,1年間アドバイザ教員と打ち合わせを行いつつ各々が自由なテーマで研究や開発を行うというものです.レベルは問われないため,簡単なアプリ作成から査読付き会議に通るレベルのしっかりとした研究まで様々に行われていました.私はほとんど何もせずに終えてしまったため,今でもアドバイザ教員に申し訳なくまたもったいないことをしたという悔いが残っています.

夏には初めて技術系インターンに参加しました.そこまで技術を要する仕事をしたわけではありませんが,技術を生かして仕事をする楽しさ・難しさなどを知ることができて有意義でした.情報系は幸いにも学ぶ内容と実務が比較的近いので,3年とは言わず1〜2年のうちにインターンに行ってみるのも大いにありだと思っています.つくばからだと長期休暇以外は難しいですが…

特に春は課題やってたら学期が終わってたくらい日々課題をこなしていた気がします.うろ覚えです.

履修した授業:発展体育ソフトボール(秋),論理回路,電気回路,システム制御概論,情報特別演習I,インターンシップI,人工知能,コンピュータネットワーク,パターン認識,画像メディア工学,知能情報メディア実験B,健康と社会,発展体育ソフトボール(春),認知心理学,ソフトウェア品質保証,データベース概論I,ソフトウェア工学,ヒューマンインタフェース,認知科学概論,統計学自然言語処理,情報セキュリティ,画像認識工学,機械学習,知能情報メディア実験A
使った言語: Java, MATLAB, SQL, C++, Processing

4年次

4年次は足りてない単位分いくつか履修したほかには基本的に研究活動をしていました.配属前に博論や修論,卒論発表を聴講した時には,こんなちゃんとした研究を行うには知識・技術が明確に不足していると感じたため非常に不安に包まれる中でのスタートでしたが,最終的にはなんとか国際会議論文として成仏させられる程度まで卒研を持っていけたので.少なからず成長を感じました.と同時にそこまで形にできたのは先輩方・先生方の助けによるところが大きく,今後もっと力をつけていかねばという思いを強くしました.

卒研はかなりギリギリセーフでの完成になってしまい卒論提出直前にはかなり大変な思いをしたため,進捗次第では夏は大人しく研究するのが良さそうです.

3月にはCHIIRという国際会議に聴講だけしに行きました.イギリス開催のため普通だと参加は難しかったですが,学類長が「coins生にもっと海外に行ってほしい」という思いから始めた海外研修支援に採択していただいたため,渡航費や参加費の一部を学類から頂いて参加しました.支援がなければ自身の研究発表がない国際会議に参加する機会はなかったと思いますし,貴重な経験をさせていただけて非常にありがたかったです.

f:id:kuri8ive:20200328035839p:plain
スコットランド英語が全く聞き取れなかった

履修した授業:インターンシップII,専門語学B,卒業研究B,情報科学特別講義C,専門語学A,卒業研究A,計算機アーキテクチャ,音声聴覚情報処理,知識処理概論
使った言語: Java, Python

5年次

在籍期間が足りないという理由だけで4年では卒業ができなかったため,再度半年の休学と授業料だけ払って何も授業取らない半年を過ごしました.

卒研の内容で国際会議に論文が採択されたのでマレーシアに行きました.トップカンファレンスではないものの,卒論発表時の評価が平凡だったことを考えると十分以上に嬉しいです.卒研は楽しいこともありましたが何より非常に大変だったので,こういった形で実を結んでよかったですし,先生や先輩方に恩返しできたのもよかったです.

f:id:kuri8ive:20200328040340j:plain
マレーシアの民族ダンス

coins気になるところ

情報系を志す人に相性が良さそうなサークル・団体はある?

競プロサークルTPC,ゲーム作りサークルAmusement Creators,coinsの学類紙を制作しているWORDあたりが該当すると思います.TPCICPCに出場していたりAmusement Creatorsはコミケに作品を出していたり活発に活動しているようです.WORDは強い人がたくさんいる印象がありますが,coinsの皆が皆3度の飯より技術が好きというわけではないので技術好きが集まる場として良いのだと思います.あとは,相性が良さそうかは置いておくとどこのサークル・団体においても需要はあります.ウェブ担当として.

専攻を決めたのはいつ?

coinsには3つの主専攻があり3年進級時に決めます.ただ,単位取得が必要な授業の種類が多少変わるくらいであんまり差はないです.重要なことが1つあって,学位はソフトウェアサイエンス主専攻のみが情報科学で残り2つは情報工学なので,科学と工学の差を気にする方はご注意ください.

他学類との絡みはある?

他学類と絡みがある授業は,英語,体育,取る人は第二外国語くらいで,他はだいたいcoinsの人たちで受けます.他の学類の授業の単位を取得することはできて,卒業に必要な単位としてちゃんと使えるので,時間割的によろしいタイミングで他学類の授業をとるのはオススメです.ただし,その枠はあんまり数がないです.

もちろん,サークルなどの課外活動においては他学類との絡みは十分あります.

coinsの男女比はどれくらい?

年にもよりますが,10%いない年の方が多い印象です.最近の実際のデータ(ただしcoins全学年合計)は地図とデータで見る筑波大学リーフレットにあり,2019年度は男:女=355:31だそうです.

院進しなくても大丈夫?

大丈夫です.4割程度は院進せずに就職します.ただし,研究室配属で希望者数が定員を超過した際には研究室によっては院進希望者が優先されることもあるかと思うので,そこはご注意ください.

インターンに行く人はどれぐらいの割合?彼らには特徴がある?

私は交友範囲が狭いので割合は分からないですが,3年以降だとそれなりに行く人がいる印象です.入学時点でプログラミング経験等がある人は,低学年のうちからだいたい何かしらの技術バイト・インターンをしているように見受けられます.大学からプログラミング始めてインターン等に参加している人は,アプリやゲームなどを授業外で作ってる人が多いのかなと思います.あとは,インターンに参加すると(そこでの経験や実績が力になって)インターンに参加できやすくなるループがあるように思えるので,0→1の部分を上手いことできれば良いかなと(私は始めはエンジニア見習いという枠のインターンに参加しました).

授業でPCどれくらい使う?計算機室の存在はわかるけど普通の授業でも使う?

私物PCがないと受けられない授業はなかったような気がします.計算機室に移動して演習を行う授業はそこそこあります.なので一応私物PCなくても生きてはいけますが,授業資料が学習管理システムで公開されていることが多々あることもあって,基本ある方が圧倒的に便利なのでだいたいみんな買って持ち込んでます.授業中多くの人がPCを開いているのは情報系ならでは.

もし買うとしたら,最初の1〜2週は様子見で良いと思います.機種については計算機室の端末がMacなせいかMacbook Pro / Airが多いですが,ThinkPadも人気がある印象です.筑波大学Appleと契約を結んでいて学割より安く購入できるので,もしApple製品を買う場合はApple on Campusは忘れずに使いましょう.

おわりに

各授業についてあんまり覚えていないこともあってcoinsの授業外の話ばかりの振り返りになってしまいましたが,こんな5年間を経て卒業しました.ありとあらゆる分野で情報技術が活用されている時代において,CSを専攻したのは良い決断だったと思います.