CS50シリーズまとめ
先日、CS50(ハーバード大学が提供する無料のオンライン講座)でプログラミングの勉強にハマった、という記事を書きましたが、
その後、CS50には様々な後続のシリーズがあることを知ったので、調べた範囲でまとめておきます。
基本的にはどれも、Davidという名物教授がやっている講座と思われます。
(なにぶん、私もまだ全ての講座を取ったわけではないので…)
先に有用なリンクを先に貼っておきます。
https://www.edx.org/bio/david-j-malan(edX内のDavidのページ)
全部基本無料で、終了証が欲しければ課金が必要になります。
英語でプログラミングを勉強したい方のご参考になればと思います。
またCS50シリーズでどれから始めたらいいかわからない人は、
・CS50Xをとにかく受講する(これが難しかったらCS50Pに変更する)
・他のシリーズでは興味のある分野か、最近アップデートされたものを優先する(日進月歩の世界なので・・・)
とすればイイのではないかと思います。
ではどうぞ↓
CS50(無印)/CS50X(CS50's Introduction to Computer Science)
一般にCS50と呼ばれる、本家の講座。他のシリーズと区別するためにXを付けたんだろうけど、Xを付けて呼ばれているのをあまり聞かない。
コンピュータサイエンスの基礎や一般教養という位置づけで、確かに宣伝文句に嘘はないのだが、よその一般的な入門講座とは一線を画す密度の濃さと効率的な詰め込みは嵐のように強烈で、eye opener として世界中からカリスマ的魅力を誇る。
C言語をメインに複数の言語を取り扱う。 week0:scratch(ノーコードのブロック言語)、1-5:C言語、6:Python、7:SQL、8:HTML、CSS、Javascript、9-10:総合。つまり後半は1週間で言語一つ学んでこいという通常ではありえないスピードで授業が進む。ただし動画の学習ペースや課題の提出ペースは自由。
毎年少しずつリニューアルされている模様。
一応12月31日で年度の区切りで全ての課題の提出日の期限に設定されているが、certificationが不要である場合は、私のように何も知らず12月の終わりに始めても特に何の問題ないと思います。
CS50P(CS50's Introduction to Programming with Python)
Pythonに特化した講座。2022年4月にリニューアルしたと通知が来た。
変数だのループだの関数だの、プログラミング全般に共通する用語や考え方を学ぶと書いてあるから、内容は一般的なpython の入門講座と同程度と思われる。CS50Xでつまずいたときの救済手段としてもよさそう?
ただし、CS50Xの前でも後でも同時進行でもいいから、コンピュータサイエンスの基礎としてはやはりCS50Xを受けて欲しそうな口ぶりではある。
CS50W(CS50's Web Programming with Python and JavaScript)
*受講はCS50Xの後が勧められている。
Python、JavaScript、SQLを使うというから、まさにCS50Xのカリキュラムから地続きという感じ。
Django、React、Bootstrapなどのフレームワークを使い、WEBアプリを作るようです。
CS50AI(CS50's Introduction to Artificial Intelligence with Python)
*受講はCS50Xの後が勧められている。
Pythonを使って、AIの基礎を学ぶ。
説明には色々書いてあるけど、私にとっては未知の世界で、知らない言葉ばかり出てくるのでぶっちゃけよくわかりません。
CS50G(CS50's Introduction to Game Development)
*受講はCS50Xの後が勧められている。
マリオ、ゼルダなど昔懐かしいレトロゲームを通じて、その内側のシステムがどうなっているのかを学ぶ。
UnityやLÖVE 2Dといったフレームワークを使う。言語はLuaとC#(ところでLuaって何です?)。
CS50S(CS50's Introduction to Programming with Scratch)
Scratch(パズル型のコード)を使い、プログラミングの基礎中の基礎を習う。子どものとき習いたかった。
CS50T(CS50's Understanding Technology)
説明を読んでみたものの、テクノロジー全般について学ぶのはわかったが、ちょっとざっくりしていてどれくらいのレベルを想定しているのかいまいちわからないですね。
CS50Xを取ってなくても大丈夫。
CS50B(CS50's Computer Science for Business Professionals)
技術系でない普通の社会人でも、知っておくと今の世の中で役立つかもしれないことが学べそうな雰囲気がただよっている。
CS50Xを取ってなくても大丈夫。
CS50L(CS50's Computer Science for Lawyers)
法律家や法科学生に向けた講座。テクノロジーが法律関係の場面でどう活かされてくるか、みたいな話だと思う。
PythonやSQLをやるというから、コードは書くみたいです。
CS50Xを取ってなくても大丈夫。
おまけ
Puzzle Day
CS50が毎年開催しているパズルイベント。
プログラミングやコンピュータサイエンスの知識は全く関係なく、純粋に頭の柔らかさと、ネットを活用しながら人と協力して一緒に考える喜びを楽しむ。
CS50の講座を取っていない人、大人でも子どもでも、チームでも個人でも、誰でも無料で参加可能。ただし難易度は普通に変態なので、過去問はやっておいた方がいい。
(Puzzle Dayのページの「How to practice?」から過去問にとべます)
CS50x Puzzle Day 2022 - CS50x 2022 (harvard.edu)
その他のイベント
他にも毎年様々な趣向のイベントが開催されているようです。
各年のイベントはこれらのリンク先のメニューから辿れるはずです。
2022年度版CS50x 2022 (harvard.edu)
2021年度版CS50x 2021 (harvard.edu)
私は2021年度版を受講したので、2021年度のイベントはちょいちょい覗きました。
一応、感想などを書いておきます。
CS50’s New Year’s Seminars (2021)
A taste of python
A taste of SQL
A Taste of Linux
A Taste of Game Development
SQL回だけ受けてみました。
動画一本で完結。2時間強(普通の講座一回分)の時間で、基礎を学ぶ。
本当に前提知識なくて大丈夫な、初心者に優しい講座でした。データベースの結合までやらない程度。
それでも最後の問題に、やたら凝ったおもしろい問題をいれてくるあたり、CS50味を感じる。
CS50Xでおなじみの院生っぽい人が教えてくれました。
CS50を取っていない人も参加できる。
CS50x Movie Night
ゲームをプレイするAIについての映画を皆で鑑賞する会。CS50を取っていない人も参加できる。
eスポーツ界隈では有名らしいとあるゲーム(DOTA2)を題材にとり、世界的なプロゲーマーたちに挑むAIを開発する模様が一本の映画になっていて、それを鑑賞したあと、ゲストと質疑応答をする。
私が見た年の質疑応答では、参加者は子どもが多い印象でした。国籍は多様。
今思えば、お菓子と飲み物を用意して、ビーズクッションでのんびりしながら見たら楽しそうだった(ビーズクッション持ってない)。
ここまで毎年イベントをやっていると、講座を卒業してもちょいちょい覗きたくなりそうですね。
とりあえず以上です。
語学勉強の費用の足しにさせていただきます_(._.)_