東大大学院の創造情報学専攻の院試を受けようと思っているけど、プログラミング凄そうな人ばっかなイメージ…
IT知識ゼロだけど、間に合うのかなぁ…
こんな悩みにお答えします。
東大大学院の情報理工学系研究科・創造情報学専攻の院試に合格しました
僕は大学入学時はディスプレイを見てパソコンって言ったり、ブラウザ、ドライブ、クラウドの意味がわからなかったり、OSのことを綱引きとかの掛け声とか思ったりしてた、ITスキルゼロ人間でした。
もちろんパソコンの知識もゼロ、タッチタイピング、Word、Excelすらできず、高校の「情報」の内申点は、学年中たった数人と噂される2でした。(5段階評価です)
大学生になりパソコンを普段使いするようになって多少理解でき、ある程度のITスキルは(一般常識並み)3年生くらいで身につきましたが、この状態からでも創造情報学専攻に合格することができました。
今回は実際に東大の創造情報学専攻に合格するために僕が実践した勉強法をお伝えしようと思います。
点数開示が出ました!
つい先日、やっと点数が開示されました。結果はこんな感じでした。
TOEFL 553/677
プログラミング 108/300
専門科目 230/300
僕の場合、英語はおそらく平均で、プログラミングはかなり難しくミスっちゃいました。
しかし、ここで紹介する方法でしっかりと専門科目を対策することで、専門科目にて77%ほどの点数を獲得できました。
創造情報学専攻のテスト範囲
東京大学大学院情報理工学系研究科、創造情報学専攻の院試の特徴は、
範囲が意味わからんほど膨大
だと思います。
- TOEFL
- 数学orプログラミング
- 専門科目
- 口述試験
この4つを対策する必要があります。
TOEFL、口述試験、数学は頑張ればなんとかなりそうな気はしますが、
専門科目についてが厄介で、幅広く勉強する必要があります。
また、数学かプログラミングが選択できるのですが、プログラミングは結構慣れる必要があり、やったことない人にとっては結構時間がかかりそうです。
僕は将来プログラマになりたいと思いはじめていたため、プログラミング未学習でしたが実力をつけるためにプログラミングを選択しました。(知識は皆無でした)
創造情報学専攻の先輩に相談しに言ったところ、理由はよくわからないのですが「プログラミングで受けた方がいい」と言われたのも理由の一つです。未習だと入ってから辛そうです。
今回は院試の対策が結構大変そうな
- 専門科目
- プログラミング
に焦点を当てて解説していきます。
TOEFLに関しては、こちらの記事で説明しております。
専門科目の範囲は広い!!!
創造情報学専攻の院試の専門科目についてですが、2019年度現在で大きく大問3つで構成されております。
- アルゴリズム系(擬似コードをかけ、計算量を求めろ的な)
- 論理回路、アーキテクチャ系
- 語句問題(8問中4問選択)
順番に対策方法を解説します。
アルゴリズム系
アルゴリズムっていうのは、プログラミングなどにおいて問題を解くための手順を定式化した形で表現したものです。
ある問題があり、その時かたはいっぱいありますが、効率的に解く解き方を探す問題とかがアルゴリズムを勉強しているとわかります。
アルゴリズムの勉強は、実際に自分で手を動かし、プログラミングのコードを書きながら勉強するのが一番です。読むだけでは絶対に身につきません。
なので、プログラミングの知識をある程度は持っておき、コードが書ける環境を整えておきましょう。(プログラミングの勉強法は後で書きます)
僕も無知から始めて半年でなんとかなったので、恐らく大丈夫です。
僕がオススメするのは、次の本一冊です。
この本はプログラミングコンテストと呼ばれるプログラミングの大会を攻略するために、アルゴリズム・データ構造を勉強する本になります。
通称:螺旋本と呼ばれています。
プログラミングコンテストと聞くと結構怖そうですが、初心者でも大丈夫ですので安心してください。
aとbを入力として与えられるので、a+bを出力してください
程度の問題も普通にあるので、プログラミングに慣れるために初心者が使うのに最適だと思います。
僕は実際に、この本に載っているプログラミングコンテストの超簡単な問題(だんだんレベルは上がっていきますが)を解いていき、かなりプログラミングに慣れることもでき、アルゴリズムの考え方も理解できました。
この本にはマジで感謝してます。
プログラミングコンテストの本については、もう一冊有名なものがあります。
こちらは通称:アリ本として有名です。
多分、螺旋本よりもこっちの方が有名だと思います。プログラミングコンテストといえばこの本。
僕は両方購入しましたが、こちらはかなり難しく感じました。いろんなサイト見ても、やっぱり上級者向けっぽいです。
なので、創造情報学専攻の院試に合格するのが目標であれば、まずは螺旋本を使用するのがベストです。
やりたい場合は、螺旋本が終わって時間にかなりの余裕があればアリ本をやる
と言った順番です。
しかし、後述の語句問題対策を考えると、時間的にアリ本はやらなくていいです。
また、かなりよく他サイトで紹介されていますが、下の本もあります。
この本も購入したのですが、やっぱり螺旋本がベストでした。これはあまり読んでいません。
理由は、実際に問題を解きながら実践できた方が効率がいいからです。
知識ゼロでしたので時間が惜しく、効率を求めました。
コンピュータアーキテクチャ
コンピュータの仕組みについての学問です。
僕はこの三冊で勉強しました。
- コンピュータシステムの理論とその実装
- コンピュータアーキテクチャ
- キタミ式イラストIT塾 基本情報技術者
順に紹介していきます。
必須:コンピュータシステムの理論とその実装
この本は神です。
今までコンピュータって魔法じゃね?って思ってたくらい仕組みが意味わからなかったのですが、コンピュータを自分で作れるようになるくらいまで理解できます。
それもそのはず、実際にコンピュータを作ることがこの本の目的です。
理解するのに最速かつ最強の道は、そのものを作成することです。
一週間ほど時間はかかりましたが、5章まで読み終え、簡単なコンピュータを自分のコンピュータ内で作ることができました。
この過程で、かなりの知識がつきました。今までコンピュータについて何も知らなかったのですが、知識がついて感動しました。
これは創造情報学専攻の院試対策とか以前に、読むべき本です。
こちらで使用感とか解説してます!
コンピュータアーキテクチャ
東京大学の教授が執筆したコンピュータアーキテクチャの本です。
様々なサイトで取り上げられています。
少々説明が難しく、ネットで用語を調べながら読んでいたのですが、結構狙われそうな仮想記憶あたりの知識をつけられます。
一冊目だけでは理解はできても知識が物足りないので、こちらで知識をカバーしましょう。
用語対策にもなります。
キタミ式イラストIT塾 基本情報技術者
院試前に僕は研究室見学に行ったのですが、創造情報学専攻の試験を突破してきた大学院の先輩に、院試の対策法を聞きました。
プログラミングの経験もITスキルも浅かったため、創造情報学専攻の院試をどう対策したらいいのか、と相談した時に、
全然IT知識がないなら、基礎情報技術者試験の対策すればいいと思う
と言われ、買ってみました。
基礎情報技術者試験は国家試験の一つであり、IT人材としての自分のスキルを証明するものになります。
この本には膨大な知識がイラスト付きでわかりやすく載っています。語句問題対策としても読んでおいた方がいいと思います。
この本は、
- 語句問題対策のため
- 二冊目のコンピュータアーキテクチャで説明が難しいところを理解するため
に使用しました。
購入しておいてよかったです。
論理回路
論理回路については、一冊のみで十分だと思います。
同じく東大の坂井修一先生の本です。
東大の近くの電車で結構読んでる人を見かけるくらい人気な本です。
論理回路はコンピュータシステムの理論と実装でも軽くやりますが、こちらで少々深掘りしたほうがいいでしょう。
語句問題
正直、範囲が膨大すぎて、苦しいです。
- 機械学習
- ロボティクス
- コンピュータアーキテクチャ
- アルゴリズム
- Web技術
- インターネット
- セキュリティ
- サーバ
- OS
- 信号処理
- コンピュータグラフィックス(CG)
など、範囲は膨大です。
やったことを順番にまとめます。
基礎情報技術者試験の知識をつける
アーキテクチャのところでも紹介したキタミ式ですが、語句問題メインで活躍します。
後半は院試にはあまり関係なさそうですが、前半2/3くらいの知識をつけておけばいいと思います。
ディープラーニングの知識をつける
最近、毎年のように機械学習、特にディープラーニングの知識問題が出題されています。
僕の年はパーセプトロンについて出題されました。
僕はこの本でディープラーニングの基礎を身につけました。超有名ベストセラー本です。
何事も実装してみるのがやっぱり早いと思いますが、この本は内容が濃いので結構時間がかかります。
僕はディープラーニング系の研究室に入りたかったので、しっかりと勉強しましたが、受験だけであれば割に合わないかもなので、知識だけさらっとつけるような勉強法でいい気もします。
この本に関しての感想、詳細などはこちらの記事をご覧ください!
Webの基礎をつける
僕はWebについてはキタミ式にプラスで別の本を購入し詳しく勉強しました。
キタミ式を読んでも個人的にちょっとわからなかったからです。
この本に書いてあるIPv4、IPv6が実際に出題されたので、救われました。
教養としても、将来エンジニアになるために身につけておきたい知識でしたので、1日でざっと読みました。
セキュリティ、サーバの基礎をつける
セキュリティに関しては、paizaのセキュリティ入門を学習し、実際にWebサイトに攻撃するコード、防御方法を実装して勉強しました。
こんな感じで動画で勉強できます。
クロスサイトスクリプティングやSQLインジェクションなど、手を動かしながら勉強できるので助かりました。
サーバに関してもpaizaで勉強しました。
Wikipediaで単語をぽちぽち
普段からWikipediaでIT系の単語を調べ、わからないことあったらそれも調べ、という風に勉強すると良い、と色々なサイトに書いてあったので、本番三日前ほどからやってみました。
結論、直前期にやるものじゃなかったなと後悔です。もっと前から知識をつけておきましょう。
具体的には、CG、ロボティクス、信号処理といった範囲の勉強をしていきましょう。
過去問を見て大体の範囲を見当づけして、調べていきましょう。
プログラミング
プログラミングに関しては、別記事に載せています。
これやればかなり実力ついてくると思います。
僕は無知から半年間で院試合格する程度まで伸ばせました。
まとめ
膨大な範囲で、倍率もクソ高い創造情報学専攻ですが、頑張るしかないです。
受験者の半分以上が留学生ぽかったし、結構動揺しますが、物怖じせず頑張りましょう。
途中で諦めて口述試験にこない人も結構います。最後まで諦めずに臨みましょう!