9月から新学期! スタンフォード、MIT、バークレイのコンピュータサイエンス講座をYouTubeで受講しよう
日本では9月といえば2学期の始まりですが、米国では9月が新学期のスタート。留学したつもりで海外の大学で行われているコンピュータサイエンスの講座を受講するのはいかがでしょうか?
YouTubeは今年の3月から、大学が公開している講義の動画を集めた「YouTube - EDU」コーナーを開始しました。スタンフォード、ハーバード、マサチューセッツ工科大学(MIT)、カリフォルニア大学バークレイ校(UC Berkeley)、そのほか多くの大学の講座が無料で見られます。
内容はコンピュータサイエンスに限らず、政治、経済、著名人のオピニオンなどが幅広くカバーされています。
YouTube Eduには大量の講座が蓄積されているのですが、自分に興味のある講座を探してそれらを見るには、検索を繰り返したり授業ごとに分割された動画を順番に探したりと、少々手間がかかります。
そこで、ITエンジニアの方が見て役に立つ実践的な内容の、コンピュータサイエンス関係の講座をピックアップしてまとめてみました。コンピュータについての基礎知識から高度なプログラミングテクニックと理論を学べるはずです。内容はもちろんすべて英語で字幕もありません。しかしコンピュータ関係のボキャブラリの発音や言い回しを学ぶつもりで聞けばきっと参考になるはずです。
また、各まとめ記事にはハンドアウトやプレゼンテーションが用意されたページへのリンクも付けたので、各種資料を参照しながら学んでいけば、理解しやすいかもしれません。
各講座ではおおむね25回から30回の授業が行われ、各授業はおおむね40分から50分の動画になっています。毎週1本ずつのペースで見ていけば、3月末頃に見終わります。iPodなどに動画を保存して通勤電車などで見るのもよいのではないでしょうか。
以下が、今回まとめ記事とした講座の一覧です。また、今回のまとめ記事には、MITが始めたオープンな講座、OpenCourseWareにならって「OpenCourse」というタグを付けました。
- Programming Methodology / スタンフォード
Javaを用いたプログラミングの入門コースです。各ビデオ50分程度で全28回。ローカル変数やループ、データ型などの基本的な知識からソートなどのアルゴリズムまで学べます。 - Programming Abstractions / スタンフォード
プログラミングの中級コース。C++を用いて、再帰的呼び出し、解析アルゴリズム、抽象化、スタックやキューなどの基本的なデータ構造などを学習します。 - Programming Methodology / スタンフォード
プログラミングの上級コース。より高度なメモリ管理やLispを用いた関数型パラダイム、C/C++を用いたコンカレントプログラミング、そしてPython、Objective-C、C#などの言語についても学びます。 - Computer System Engineering / マサチューセッツ工科大学
クライアント/サーバ型のモジュラー構造を用いて複雑性を管理する手法や、仮想メモリ、スレッド、ネットワーク、トランザクションの原始性や並列処理についても学びます。リカバリや信頼性、プライバシー、暗号化なども扱います。 - Multicore Programming Primer / マサチューセッツ工科大学
マルチコアプログラミングの入門講座です。パラレルプログラミングの考え方、およびハンズオンを行います。受講者はソニーのPLAYSTATION 3をプラットフォームとして用い、マルチコアにおけるソフトウェアの設計や実装を学ぶことができます。 - Search Engines: Technology, Society, and Business. / カリフォルニア大学バークレイ校
サーチエンジンが社会やビジネスにどのような影響を与えるのか、サーチエンジンは今後どのような方向へ進もうとしているのか、広告やオークション、プラバシー、サーチランキング、スパム、ローカルサーチなど、サーチエンジンにまつわるさまざまな話題について、関係者を招いて講義を行います。
また、YouTube Edu以外にも大学の講座ビデオを集めた「Academic Earth」というWebサイトがあります。YouTube Eduよりも講座数は少なくコンテンツの重複もありますが、YouTube Eduよりも整理され見やすいサイトになっています。YouTube Eduと併せて参考にしてみてください。