ひらめの日常

プログラミングと読書と

京都大学大学院情報学研究科の入試情報まとめ(自分用)

はじめに

この記事は,外部からの院進先として京都大学大学院情報学研究科の「社会情報学専攻」を選択肢に入れている僕が,ネット上の情報を自分用にまとめたものです.(知能情報学専攻についてはごめんなさい...!)

いかんせん情報が少ないので,コメントなどいただけると嬉しいです.

随時更新していきます.

公式

URL

科目内容

  • 情報学基礎は「入門 コンピュータ科学 IT を支える技術と理論の基礎知識」から3問出題.(ただし、第 10 章「コンピュータグラフィックス」は出題範囲から除く。)
  • 専門科目の出題分野は「人工知能、データベース、情報システム、計算機ソフトウェア、情報ネットワーク、データ構造、アルゴリズムパターン認識、情報教育、ヒューマンインタフェース」
  • 英語は「TOEFL/TOEIC/IELTS」のスコア.

参考URL

体験記

社会情報学専攻が見つからないので,知能情報学専攻の受験対策について.専攻は違うが,進め方とかで参考になる.

入試対策

URL

出題傾向と対応するシラバス

自分で5年分の過去問を見て出題されている分野をまとめたのと,出題分野に対応しそうな京大の学部授業urlをまとめる.

院試まとめ - Google スプレッドシート

その他

志望大学院に特化していないけど院試に関連した情報たち

dotfilesの管理方法を変えた話

以前の記事でdotfilesの管理方法をまとめるという記事を書いたのですが,これは.vimrcとかのdotfileに対してシンボリックリンクを貼るだけのものでした.

hiramekun.hatenablog.com

今回はこちらのcreastyさんのdotfilesを参考にして,ansibleで構成を管理するように変更しました.

github.com

github.com

ansibleで管理した結果,大きく変わったのは以下の点です.

  • アプリを極力 brew cask でインストールすると自動化できる.
  • brew install も自動化できる.
  • *env(pyenvとか)の設定についても自動化できる.
  • macの設定(キーリピート速度とか)についても自動化できる.

etc...いいことだらけでした.初めはansibleを知らない状態からcreastyさんのコードを読むところから始めたのですが,sh upから続々とアプリやパッケージがインストールされ,環境構築されていく様子はとても楽しいです.

是非みなさんも参考にしてみてはいかがでしょうか!

【まとめ】terminalでShift-JISの文字コードを扱う時の便利なコマンド

terminalでshift jis

shift-jisファイルを扱う時、そのまま扱う・文字コードを変更するなどいろんな方法があると思います。 今回はshift-jisで困っている方向けにterminalで便利なコマンドを紹介します。
どのコマンドも、aliasを貼って短くタイピングして呼び出したいですね。

vimでshift jisファイルを開く

-cオプションの引数に与えてあげることで、ファイルを開く時点で文字コードを指定することができます。

vim -c ":e ++enc=shift_jis file_name"

qiita.com

diffを改行コードを無視して表示する

以下のコマンドで改行コードは無視してdiffを表示することができます。shif-jisとutf-8のファイルを比べる時などに便利です。

diff --strip-trailing-cr file_a file_b

qiita.com

ファイルの文字コードを変更する

そもそもファイルの文字コードを変更したい時にはnkfコマンドが便利です。
以下の記事で使い方を説明しています。 hiramekun.hatenablog.com

Pythonのsetuptoolsで生じたAttributeErrorを解決(メモ)

setuptools周りを触り出したら、condaコマンドを打つたびに以下のようにエラーが出てきて実行ができなくなりました。f:id:thescript1210:20180808110606p:plain

AttributeError: '_NamespacePath' object has no attribute 'sort'
きちんとは理解していませんが、setuptoolsのgithubのissueをみると、最新のバージョンではこの問題は解決されているよ!というコメントを多数発見。

github.com

確かに以下によるとsetuptoolsが最新版ではないようです。

  File "/Users/takaakihirano/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2087, in _rebuild_mod_path
AttributeError: '_NamespacePath' object has no attribute 'sort'

なので、condaのdefault環境のsetuptoolsをupdateしたら無事に解決しました。

>> conda update setuptools

『「学力」の経済学』まとめ

出典はこちらの中室牧子先生の『「学力」の経済学』です。教育を経済的にエビデンスベースで解説してくれていて非常に興味深い本ですので、ぜひ本を読んでみてください。

「学力」の経済学

「学力」の経済学

教育経済学とは?

  • 教育経済学は教育を経済学の理論や手法を用いて分析することを目的としている応用経済学の一分野。大規模なデータを用いて教育を経済学的に分析する。
  • 所詮一つのものを表しているに過ぎないことを、あたかも全体を表しているかのようにすることを非常に危ぶんでおり、特に教育の分野ではそれが顕著に現れる。

    • しかしながら日本ではまだ、教育政策に科学的な根拠が必要だということが浸透していない。
  • 端的にいうと、科学的根拠に基づく教育政策とは、「どういう教育が成功する子を育てるのか」ということを科学的に明らかにしようとする試みである。

目先の利益と将来の利益

  • 遠い将来のことなら冷静に考えられても、近い将来のことだと、たとえ小さくてもすぐに得られるもので満足してしまう。
    • これを勉強に利用して、目先のご褒美で勉強させてはいけないのだろうか?
  • 「勉強したらご褒美」 VS 「いい成績とったらご褒美」で実験をしたところ、「勉強したらご褒美」の子供達の方が成績が上がった。→ outputではなくて、inputにご褒美を与えるべきである。

自尊心と学力の関係

  • 自尊心が高まれば、子供を反社会的なリスクから遠ざけることができるという科学的根拠はほとんど出なかった。
  • 自尊心が高いから学力が高まるのではなく、学力が高まったから自尊心が高くなっているだけ。
  • 宿題を行うときに自尊心を高めるメッセージを受け取ったグループの学生は、受け取らなかったグループの学生よりも、期末試験の成績が統計的に有意に低かった。
    •  しかし、褒め方が重要。子供の元々の能力を褒めると、子供たちは意欲を失い、成績が低下する。努力を褒められた生徒は成績を伸ばすことができた。

ゲームやテレビと学力

  • テレビの視聴時間と肥満・ゲームの使用時間と問題行動には正の相関がある。
  • テレビやゲームを1時間やめさせても男子については最大1.86分、女子については最大2.70分しか勉強時間が増えなかった。
  • テレビやゲームが一日2時間を超えると発達や学習時間への負の影響が飛躍的に大きくなる。

人間関係と学力

  • 父母ともに「勉強するようにいう」のはあまり効果がない。むしろ母親が娘に対して「勉強するようにいう」のは負の効果がある。
  • 女子が偶然多くなった学年では、女子が少ない学年と比べて、男女ともに成績が高くなった。→学力の高い女子の比率が高くなると、学年全体の平均的な学力に正の因果関係が確認される。
    • 多くの研究で男子よりも女子の方が成績が良いことが明らかになっているが理由ははっきりとはわかっていない。
  • 学力の高い学生と学力の低い学生が一緒のクラスにいる場合、学力の高い同級生の存在が学力の低い生徒の自信を喪失させ、大学進学の意欲を失わせた。
  • 問題児の存在が学級全体の学力に負の因果豪華を与える。
  • 習熟度別学級は、特定の学力層だけではなく、全体の学力を押し上げるのに有効な政策である。

幼児教育の大切さ

  • もっとも投資に対する収益率が高いのは、子供が小学校に入学する前の就学前教育。
  • 学力テストなどで測れる認知能力に関しては数年で、教育を受けていない子供たちとさはなくなる。それなのに年収や地位は異なっている。→大きな差は非認知能力に現れていた。
    • 自制心ややり抜く力という能力が高い人が成功している。
  • しつけは非認知能力の一つである勤勉性を養う重要なものである。

少人数学級に効果はあるか

  • 少人数学級は学力を向上させる因果効果はあるものの、他の政策と比較すると費用対効果は低い政策である。
  • 教育を受けることの経済的な価値に対する誤った思い込みを正すだけで、子供の学力を高めることができる。
  • 巨額の財政赤字を抱えている日本で、「少人数学級になるときめ細かい指導ができる」などという根拠のない期待や思い込みで、財政支出を行うのは極めて危険。

学力テストの罠

  • 学力テストの結果は、日本の公立小中学校に対して行われている。
  • 学力はどの学校に通うかだけではなく、どの家庭に生まれ育ったかも極めて重大な影響をあたえる。

学力格差の是正

  • ある世代の子供全員を対象にして平等に行われた政策は、親の学歴や所得に夜教育格差を拡大させてしまうことがある。
  • 子ども手当のような補助金は学力の向上には因果関係を持たなかった。
  • 世代内の平等を優先するあまり、世代間の平等が失われている現状がある。(たとえばゆとり世代

優秀な教員は生徒を変える

  • 教員の質が高いほど、テストの平均点は上がった。
  • 教員研修が教員の質に与える因果効果はない。
    • 元々能力の高い人を雇うのが大事。
  • 教員免許は必ずしも教員の質を担保できているわけではない。

Macのストレージ不足を解決

まずはこちらのサイトを参考にしました。 qiita.com

調べる

以下のコマンドで5GB以上のファイル・ディレクトリを出力します。

$ sudo du -g -x -d 5 / | awk '$1 >= 5{print}'
...
5   /usr/local/texlive/2017/texmf-dist
5   /usr/local/texlive/2017
6   /usr/local/texlive
...

Tex環境削除

どうやらtexの環境が容量を食っているようなので、texの開発環境を削除します。
最近ではoverleafを使っているので、ローカルでのtex環境はいらない状態になったためです。

自分はこれで5GB程度空きました。 qiita.com

Homebrewキャッシュ削除

次にhomebrewのキャッシュを削除します。
Homebrew でキャッシュを cleanup する方法 | gotohayato

まずはbrewで管理しているライブラリのうちで、異なるversionのものが入っている可能性があります。自分はgccのversionが3つほど入っていたのでそれを削除しました。
cleanupコマンドで、指定したライブラリに対して最新版以外のversionを削除を実行します。自分はこれで1GB程度空きました。

よくcleanup -sで全て重複しているものを削除する方法を見かけますが、pythonなどは異なるversionのものが必要でインストールしているので、自分は実行しませんでした。

$ brew list --versions
$ brew cleanup gcc

次にbrewがキャッシュしているdisk imageへのpathを調べ、そのpathのディレクトリを削除します。
自分はこれで1GB程度空きました。

$ brew --cache
~/Library/Caches/Homebrew
$ rm -rf ~/Library/Caches/Homebrew

Anaconda関連

こちらのサイトを参考にしました。 weblabo.oscasierra.net 自分は不要な環境がpy2.7という名前で存在していたので、その環境を削除します。

$ conda remove -n py2.7 --all

次に、不要になったパッケージやキャッシュを削除します。

$ conda clean --all

以上二つ合計で2GB程度空きました。

AndroidStudio関連

こちらのサイトを参考にしました。
https://tm23forest.com/contents/androidstudio-diskspace-reduction

特に3つめのエミュレータとシステムイメージは容量がでかいので一つ削除するだけで5GB程度確保することができます。

  • gradleファイルのキャッシュ削除
  • 古いSDK Toolsの削除
  • 使用していないエミュレータとシステムイメージの削除

UDPについて簡単にまとめる(TCPとの違い等)

UDPの機能

以下の二つの機能のみを持ちます。

  1. IPの層にもう一つ別のアドレッシングの層を追加する
  2. 転送中に発生し得るデータの破損を検出し、破損したデータグラムを破棄する

TCPとの違い

接続を確立しなくても使用することができる
受診時には、UDPソケットはどんなアドレスのホストからでも、複数のホストとの間でメッセージを送受信することができます。TCPでは1対1で接続を確立した後に送受信を行います。

ベストエフォート型の伝送
確実に宛先に届く保証はなく、メッセージが送信時と異なる順序で相手に届くこともあります。メッセージの欠落への対応と、並べ替えの仕組みが必要です。

UDPが使われる理由

効率が良い
わずかなデータ量しかやり取りをしないアプリケーションの場合、TCPでは接続確立段階で通信に必要なメッセージの数が少なくとも倍になります。

柔軟性を重視した時
参考した本によると、TCPによる信頼性の高いストリーム型のサービスが必要ない時に使えば、オーバーヘッドを非常に小さく抑えることができます。しかし、具体例が思い浮かばないので理解できていません。

参考

下記の本を参考にしました。

TCP/IPソケットプログラミング Java編

TCP/IPソケットプログラミング Java編