マサチューセッツ工科大学のコンピュータサイエンスカリキュラム

しばらくの間仕事が忙しくてぜーんぜん更新できていませんでした。
ドラフトの状態のものはたくさんあるんですが、体裁を整えてblogにポストできるようにするまでが大変です。そんなイケてない脳をどうにかできそうな記事を発見しました。

How To: Make Your Brain Bigger In Only 3 Months

この記事によると「脳は筋肉のように鍛えられる」とのこと。


それはさておきマサチューセッツ工科大学、MIT の CS です。MIT は日本でも知名度があるし、粋なイタズラである Hack でも有名ですね。
http://hacks.mit.edu/

ほかにも MIT では、DSpaceというサイトで論文を無料で公開しています。プレプリントサーバであるコーネル大学arxiv から概念的に一歩進んだ感じのもの。
日本の場合、著作権や版権が提出先の学会に移り有料で公開される場合が多いですが MIT に倣って論文はどんどん無料で公開していって欲しいところです。論文を読む人が増えることは日本にとってプラスになると思うので。大学の講義に関する公開活動については日本でもじわじわと広がってきているのでそのうちまとめて紹介します。

卒業後の進路

MIT の Factbook はこちらから
http://web.mit.edu/facts/

http://web.mit.edu/facts/graduation.html
をみてみると初年度年棒は Bachelor's degree で $67k。これは学部別になっていないのですが他の大学の傾向とあわせて考えてみると、CSはやっぱりいい金額いってそうです。

アメリカの大学でCSを専攻した人たちが卒業後、企業内で初年度にする仕事内容がすごく気になりますね。プロフェッショナルとしてバリバリプログラムの設計やコーディングをしているのかそれとも3ヶ月くらい研修しているのかなど。

MIT の CS カリキュラム

こちらにわかりやすい形で載っています。
詳細へのリンクも。
http://www.eecs.mit.edu/ug/brief-guide.html

MIT の CS はいわゆる EECS で、学士だと以下の3つの学位を取得できます。

  • Bachelor of Science in Computer Science and Engineering
  • Bachelor of Science in Electrical Engineering and Computer Science
  • Bachelor of Science in Electrical Science and Engineering

では実際に主要な科目の一部を紹介していきましょう。

6.01 Introduction to EECS I

corequisite: 8.02
http://mit.edu/6.01/mercurial/spring10/www/index.html
OpenCourseWareにあるのは2005年のもの。
今は python なんだけど、その前の scheme 時代のものです。
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm
上のサイトから講義テキストを参照できるのですが、やはりEECSへのIntroというだけあって工学色が濃く、6.01でははいきなりロボットを操作することになります。
実は SICP が MIT 出版から刊行されていることからも推測できるとおり、長らくこの 6.01 では scheme を使った授業が続けられてきました。ですが新カリキュラムから python に変わりちょっとした物議を醸しました。
http://wingolog.org/archives/2009/03/24/international-lisp-conference-day-two
http://news.ycombinator.com/item?id=530605
上のサイトを読んだ限りでは Robotics ready な言語ということで Scheme から Python に変わったようですが、その理由のほかに制御理論などで使う複素数も自前で実装することなくネイティブに扱えるからでは?と勝手に勘ぐっていたりします。(Common Lisp も扱えるのは知ってますけどね)

6.002 Introduction to EECS II Digital Communication Systems

prereqisites: 8.02, 18.03, 6.01
http://web.mit.edu/6.02/
OpenCourseWareのは Spring 2007
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-002Spring-2007/CourseHome/index.htm
で、講義テキストはこちらも独自のもの。やっぱり工学寄りですねー。

6.004 Computation Structures

Prerequisites: 特に決まってないようだけどプログラミング基礎と電子工学の基礎が必要になる模様
http://6004.csail.mit.edu/
OpenCourceWare、これは Spring 2009 のです!
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-004Spring-2009/CourseHome/index.htm
each student completes a gate-level design for a RISC processor during the semester.
ってことです。面白そう!

6.033 Computer Systems Engineering

Prerequisites: 6.004
http://web.mit.edu/6.033/www/

テキストは Principles of Computer System Design: An Introduction

ほかにも推薦図書がありますのでクラスのウェブサイトを参照してみてください。
授業の中身はパタヘネ本にちょっと似通っている部分があるかも。

6.005 Software Construction

corequisite: 6.042
http://stellar.mit.edu/S/course/6/sp10/6.005/index.html
OCW は Fall 2008
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-005Fall-2008/CourseHome/index.htm#description

Python の次は Java です!
ですが、資料の一節に以下のような記述もあったりします(笑)
why we regret using Java...
wordy, inconsistent, freighted with legacy baggage from older languages,
no interpreter, no lambda expressions, no continuations, no tail recursion,

6.006 Introduction to Algorithms

http://courses.csail.mit.edu/6.006/spring10/
OCW は Spring 2008
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-006Spring-2008/CourseHome/index.htm
この授業ではアルゴリズム基礎を学びます。
テキストはこちら。

6.042 Mathematics for Computer Science

Prerequisite: 18.01
http://courses.csail.mit.edu/6.042/spring10/
OCW Fall 2005
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-042JFall-2005/CourseHome/index.htm
「コンピューターサイエンスのための数学」と名がついていますが離散数学の授業です。

6.046 Design and Analysis of Algorithms

Prerequisites: 6.006, 6.042J/18.062J
サイトはFall 2009 のもの
http://stellar.mit.edu/S/course/6/fa09/6.046/index.html
OCW は Fall 2005
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm
このアルゴリズムの授業のテキストは 6.006 で使ったものと一緒で、内容も 6.006 を高度にしたような内容です。

8.02 Physics II: Electricity and Magnetism

Prerequisite: Physics I (8.01 or 8.012 or 8.01L or 8.01X or 8.01T)
http://web.mit.edu/8.02t/www/
http://stellar.mit.edu/S/course/8/sp10/8.02/index.html
OCS Spring 2007
http://ocw.mit.edu/OcwWeb/Physics/8-02Spring-2007/CourseHome/index.htm
8.x は物理に関する授業。
この物理IIはCSを取っていても必修科目です。Prereq に Pysics I があるのでそちらも履修しなければなりません。

8.01 Physics I

http://web.mit.edu/8.011/www/
OCW Fall 2008:
http://ocw.mit.edu/OcwWeb/Physics/8-012Fall-2008/CourseHome/index.htm
理I、テキストは・・・また高いね!

18.01 Single Variable Calculus

http://math.mit.edu/~dav/01.html
OCW: Fall 2006
http://ocw.mit.edu/OcwWeb/Mathematics/18-01Fall-2006/CourseHome/index.htm
18.x は数学のクラスです。
01は初等微分積分ですね。
テキスト:

18.02 Calculus

Prerequisites: 18.01
http://math.mit.edu/~apm/1802.html
OCW: Fall 2007
http://ocw.mit.edu/OcwWeb/Mathematics/18-02Fall-2007/CourseHome/index.htm
18.02は18.01の続きでテキストも一緒。

18.03 Differential Equations

http://math.mit.edu/classes/18.03/spr10/
OCW: Spring 2006
http://ocw.mit.edu/OcwWeb/Mathematics/18-03Spring-2006/CourseHome/index.htm
微分方程式について18.01より深く掘り下げた授業です。
テキスト:


次回は Stanford の CS カリキュラムの紹介を予定。