カーネギーメロン大学のコンピュータサイエンスカリキュラム

CSの分野で言えば MacOS Xでも採用されているMachカーネルを開発したところとしても有名です。もしカーネギーメロンのことを知らないMac使いに「メロン???」なんて聞かれたらこのことを教えてあげましょう。あとアンディー・ウォーホルも CMU 出身。
人工知能をはじめとしたロボティクス関連でも有名でDARPA主催のURBAN CHALLENGEというAIを乗せた車を自走させて行うレース大会でも優勝しています。動画もありました

何年か前に兵庫県CMU の大学院ができましたが、あまり経営は芳しくない様子。これは日本とアメリカの賃金格差が一因だと自分は思っています。CMU の授業料は日本の大学に比べてかなり高額ですが(1年半で 700 万程度だったかな?)CMU卒かつMasterであった場合、アメリカであれば年棒は初年度で平均8万ドル以上なので十分ペイできます。それに比べると日本では・・・ご存知の通りです。
で、これは余談になりますが、CMUはなんとカタールにもキャンパスがあるんです。実はアメリカの大学は中東に数多く進出しており、コーネル、ジョージタウンニューヨーク大学などがすでに進出しているほか、イェールやボストン大が進出を計画しているなど中東の教育環境はかなり整備されつつあるようです。
ヨーロッパ方面だとフランスのソルボンヌ大学なんかもアブダビにキャンパスがあります。

卒業後の進路

以下のリンクからCMUの Factbook が参照できます。
http://www.cmu.edu/ira/factbook/
これの vol.23(2008-2009) によると CS の学部卒業生の初年度年棒は約 $75,000 となっています。

ですが、最新の2009年度のサーベイがあって
http://www.studentaffairs.cmu.edu/career/students_alumni/post-grad-survey/pdf/ECE.pdf
こちらを見ると前年より1万ドルほど年棒が安くなっているようで、不況の影響はかなりあるようです。この資料には就職先も書かれており、特色としては東海岸寄りの勤務先が多いというところでしょうか。

カリキュラム

実際にどの単位を取得しなければいけないかは以下のリンクを参照してください。
http://www.csd.cs.cmu.edu/education/bscs/currreq.html

で、オススメの単位取得コース(http://www.csd.cs.cmu.edu/education/bscs/currsequence.html)から1、2年生の授業を抜き出してみたのが以下のリストです。

Freshman
Fall:

  • 15-121 : Introduction to Data Structures
  • 15-128 : Freshman Immigration Course
  • 21-120 : Differential & Integral Calculus
  • 21-127 : Concepts of Mathematics
  • 76-101 : Interpretation and Argument
  • 99-10x : Computing @ Carnegie Mellon
  • xx-xxx : Science/Engineering Cours

Spring:

  • 15-211 : Fundamental Data Structures and Algorithms
  • 15-251 : Great Theoretical Ideas in Computer Science
  • 21-122 : Integration, Differential Equations, and Approximation
  • xx-xxx : Science/Engineering Course
  • xx-xxx : Humanities and Arts Elective

Sophomore
Fall:

  • 15-123 : Effective Programming in C and UNIX
  • 15-212 : Principles of Programming
  • 21-241 : Matrix Algebra
  • xx-xxx : Science/Engineering Course
  • xx-xxx : Humanities and Arts Elective

Spring:

  • 15-213 : Introduction to Computer Systems
  • 15-221 : Technical Communication for Computer Scientists
  • 15-xxx : Computer Science Elective
  • xx-xxx : Science/Engineering Course
  • xx-xxx : Minor Requirement / Free Elective

15-121 : Introduction to Data Structures

Prerequisites: 15-100/110(既にプログラミングの経験があれば必要なくなることもアリ)
CMU では最初の言語に Java を使っているようです。
クラスのサイトはこちら
http://www.cs.cmu.edu/~tcortina/15-121/
テキストは Data Structures: Abstraction and Design Using Java
微妙に berkeley のと違ってます。

21-120 : Differential and Integral Calculus

CMU でも微分積分はもちろん必須です!
テキストは Essential Calculus: Early Transcendentals UCBでも同じシリーズのテキストでしたね。あっちよりはちょっとだけ安いです。
で、あることに気づきました。
International EditionのEssential Calculus: Early Transcendentalsというのがあってそっちのほうが実は安く売ってます。ですが「Not for Sale in the United States」って書いてあるところをみるとアメリカの学生には高く売るという魂胆なのでしょうか!?内容はそれほど変わらないみたいですが・・・

21-127 : Concepts of Mathematics

http://www.math.cmu.edu/~jmackey/math127/concepts.html
数学の概念という漠然としたタイトルですが、数学的帰納法離散数学を扱っています。
テキストは Mathematical Thinking: Problem-Solving and Proofs (2nd Edition)

15-211 : Fundamental Data Structures and Algorithms

Prerequisites: 15-111/200, or equivalent, and 21-127, or equivalent, or consent of instructor.
http://www.cs.cmu.edu/~211/info/
テキストは berkeley でも使ってる Data Structures and Problem Solving Using Java (4th Edition) です。このほかに Java(TM) Programming Language, The (4th Edition) (Java Series)Effective Java (2nd Edition) (Java Series) がオススメされています。

15-251 : Great Theoretical Ideas in Computer Science

Prerequisites: 15-100/111 and 21-127.
http://www.cs.cmu.edu/~15251/
テキストは使いません。上記サイト内にその代わりとなる資料がいろいろあります。

21-122 : Integration, Differential Equations, and Approximation

prerequisites: 21-120
こちらのクラスについては最新のサイトが見つからなかったので代わりに Fall 2006 のものをリンクしておきます。
http://www.math.cmu.edu/~handron/21_122/06fall/index.html
テキストは上でも紹介した Essential Calculus: Early Transcendentals
21-120 からもうちょっと踏み込んだところまでと思われます。

15-123 : Effective Programming in C and UNIX

prerequisites: 15-100, or permission of instructor
http://www.cs.cmu.edu/~thoffman/S10-15123/
テキストは必須ではありませんが、C Programming Language (2nd Edition) (Prentice Hall Software)UNIX Unbounded: A Beginning Approach (5th Edition) が薦められています。

15-212 : Principles of Programming

prerequisites: 15-251
http://www.cs.cmu.edu/~me/212/
カタール校のサイト↓
http://www.qatar.cmu.edu/cs/15212/
Cの次は関数型言語です。しかもML(!!!)
テキストはいくつかあって

15-213 : Introduction to Computer Systems

prerequisites: 15-123
http://www.cs.cmu.edu/~213/
テキストは Computer Systems: A Programmer's Perspective (2nd Edition)


以上が、抜粋ではありますがCMUの学部1,2年のCSカリキュラムになります。
CMUでのCSは理論系分野の学習が多いように感じました。
あとJavaを学んだ後にC言語とMLを学ぶというのは独特ですね。

次は MIT か stanford のCSカリキュラムを予定しています。