【連載】どれ使う?プログラミング教育ツール

ハーバード大の「CS50」日本語版を試してみた!わかりやすく魅せるコンピュータサイエンス講座に脱帽

ハーバード大学のコンピュータサイエンス入門「CS50」日本語翻訳字幕付きバージョン

ハーバード大学のコンピュータサイエンス入門「CS50」の日本語翻訳字幕付きバージョンが公開されて話題になっています。

昨年度も2021年版が公開されて話題になったのですが、今年は2022年度版も公開され、丸2年分の講座を日本語字幕付きで視聴することができます。今回、試しにWeek0とWeek1を視聴してみました。すごくいい内容で、わかりやすく飽きさせない講義で、とてもおすすめです。

そもそも「CS50」って?

ハーバード大学が公開している「CS50:Introduction to Computer Science(CS50)」は、同大の学生でなくとも誰でも受講できるオンライン公開講座です。

ハーバードのサイトに掲載されているCS50の情報。オリジナル版はここからリンクしているedXにアクセスして受講可能

MOOCプラットフォーム「edX」で提供されていて、受講は無料で修了証を得たい場合は有料$149というシステム。実際にedXに登録してアクセスしてみると、講義動画はもちろん、スライドや講義の骨子、喋りの内容の全テキスト、サンプルコード、課題の内容と提出方法まで全て公開されていて、至れり尽くせり。まぁなんとも知の泉……!という感じです。ちなみに、動画はCS50のYouTubeチャンネルでも公開されています。

動画はCS50のYouTubeチャンネルでも公開されている

しかし、講義も説明も、もちろんメンバー登録も全て英語。英語に苦手意識があるとハードルが高いし、未知の領域の学習となるとさらに英語での習得のハードルは上がります。「なんてもったいない!」……という思いから(おそらく)生まれたのが、株式会社LABOTによる日本語翻訳版「CS50.jp」の公開です。

2021年版と2022年版のコンピュータサイエンス入門「CS50:Introduction to Computer Science」と、2022年版のWebプログラミング「CS50:Web Programming with Python and JavaScript」が既に公開されています。課題の内容や提出方法など最低限の情報はサイト上で翻訳されていて、動画はオリジナル版とは別にYouTube上に公開されています。

日本語翻訳版CS50.jpトップページ。今回試してみたのは枠で囲った2022年版のWeek0とWeek1

なお、オリジナル版、日本語版ともに、YouTube側の動画タイトルには2022年履修版は「CS50 2021」、2021年版は「CS2020」がついているので少し混乱するかもしれません。

動画に日本語字幕を表示できる。YouTubeで直接視聴してもOK(日本語翻訳版CS50.jpサイトより)

「CS50」の授業ってどんな感じ?

私がチェックした2022年版のコンピュータサイエンス入門は、Week0〜Week10まであり、ひとつの授業がだいたい2時間弱〜2時間半くらい。教えるのはDavid J. Malan教授で、ハーバード大学のサンダースシアターのステージ上でひとり動き回り、授業とは思えないトーク力でぐいぐいと進めます。流れるような展開と、なめらかな喋りは講義というよりもプレゼンテーションという感じ。全く飽きさせません。これが大学の授業なのか……と本当に驚くばかり。

David J. Malan教授。授業とは思えないトーク力で引きつける(日本語翻訳版CS50.jpサイトより)

2022年版は、マスクをして前方の席はぬいぐるみのオーディエンスでかためているものの、後方客席には学生がたくさん入っている様子で、時おり拍手や歓声で盛り上がっているのが伝わってきます。2021年版は学生はオンライン参加でしたから、2022年版の方が圧倒的に臨場感があります。

David先生は、受講者の2/3がCSの授業を初めて受講していると説明し、クラスメートと自分を比べるのではなく、自分が最初と最後でどのくらい変わったかが重要だと呼びかけます。

講義中に先生が質問を投げかけると、学生からはさっと反応があって、流れが止まりません。ところどころで学生からの質問を受け付けると、小さなことでも遠慮なく質問が上がり、沈黙気味の昔の日本の大学の授業のイメージとは随分違い、とてもいいテンポです。

Week0:基礎の概念を徹底的に初心者フレンドリーに

Week0は、コンピュータが0と1で情報を得ているところからスタートし、コンピュータで情報を扱うイメージをつかんでいきます。そして、アルゴリズム、擬似コード、プログラミング言語の関係を実例で見せ、実際にビジュアルプログラミング言語のScratchでプログラミングをしていきます。

Scratchは文法を気にせずプログラムが作れるので、変数、ループや条件分岐、ファンクションなどのコンセプトをどんどん解説。しかも、プログラムの良い設計ってどういうことかについて、この段階から実例で繰り返し問いかけながら説明します。

……と言葉で書くとちょっと固い印象があるかもしれませんが、二進法の説明に数字を数えるときに電球を並べてON/OFFしたり、探索のアルゴリズムを説明するのにステージのど真ん中で電話帳をバリバリと破りながら説明したり、とても初心者フレンドリーでわかりやすいのでご安心ください。

説明のパフォーマンスが工夫されていてコンセプトを理解しやすい(日本語翻訳版CS50.jpサイトより)

Week1:C言語の登場。Scratchでやったことを文字列のコードで

次のWeek1はC言語。ここで初めて、文法や記法の決まった文字列のコードを扱います。Week0にScratchでやったことを、C言語で記述して横に並べて比較して説明するなどしてくれるので、これもとてもわかりやすい。

ScratchとC言語の比較をしながら説明しているところ(日本語翻訳版CS50.jpサイトより)

このコースは、特定の言語を学ぶというよりも、プログラミングに共通する基礎的なプログラミングの手法を学ぶことを目指しているとDavid先生は説明します。Week1でも、ただ記述方法を解説するのではなく、なんでそう書くのか、後で学ぶPython等もっとモダンな言語との違いにもふれながら、必要な知識を散りばめている印象。常にそういう視点で説明がされるから、初めてでも論理的に理解しやすいのでしょう。

一方で、一般的な技術や具体的な手法を知ることも重要。Week1ではプログラマーがよく使うエディタVisual Studio Codeのオンライン版を使ってコードを書きますが、ターミナルの使い方とGUIとの関係や、プログラムをコンパイルするステップなども、さらりとおさえていきます。受講者も、GitHubのアカウントで登録すれば、Visual Studio Codeのオンライン版のCS50用の環境を利用できます。

ステージの上を動きまわって、ショーのようにコンピュータサイエンスを語ってくれる

脱Scratchを目指す人にや知識が断片的な人におすすめ! 英語の勉強にも!

このCS50、最初の2回分を視聴してみて、こんな人にぴったりかも……と思うパターンをまとめてみました。

(1)「脱Scratch」を目指したい人
「Scratchならやったことあるけど、テキストコーディングになるとなかなかやる気になれない……」という人が次の一歩を踏み出すのには、ぴったりの入門です。

(2)点と点だった知識を線としてつなぎたい人
「プログラミングをちょっとやったことがあって、やった部分だけは理解しているけど、そもそも基礎的なことがわかっていない気がする……」と、知識や経験が断片的で不安な人が、それらをつなぐ一本通った知識を得るのにぴったりです。経験があるから、とても理解しやすいはず。

(3)英語トレーニングをしたいコンピューターサイエンスに詳しい人
ちょっと本筋からはずれますが、プログラミングやコンピューターサイエンスの知識がある人が、英語を聞き取るトレーニングに使うのもおすすめです。自分の専門領域のことは、ニュースなどよりも数倍わかりやすいものです。YouTubeで字幕をON/OFFしたり、オリジナルのedXで動画を見れば、横に英語の書き起こしテキストを表示することもできるので便利です。

日本語版で日本でサポートを受けながら修了証を得るチャンスも

日本語版とはいえ、字幕は漢字も多く、専門用語もどんどん出てきます。大学生もしくは高校生以上が妥当でしょう。忙しい人は、日本語版で隙間時間に講義動画を視聴する、という使い方でも良いと思います。本気のスキルアップを目指すなら、日本語版を参考にしつつ、オリジナルのedXに登録してみてもいいでしょう。課題提出もしながら参加すると、モチベーションが上がりそうです。

ただし、提出方法を理解して提出手順を追うだけでもそれなりに時間がかかり、最終プロジェクト課題は「独自のソフトウェアを開発」とあります。最終的にそこまでの経験を身につける道のりは、なかなかハードなことが想像できます。パソコン自体が初心者だったり、英語の苦手意識が強い方には、edXでの参加はおすすめできません。

なお、日本語版を制作したLABOTでは、CS50の教材をメインに使用し、プログラミング教育を無償提供する支援プロジェクト「CODEGYM Academy」を開校しています。同校が提供するプログラムは、基本的には無料ですが、一部、履修認定証などの実費分がかかるとのことなので詳しくは同校のサイトを確認してください。

新型コロナに伴う社会状況により影響を受けた学生に学習の機会を無償で提供するもので、日本語で学習を進め正式な修了証が得られるということです。現在すでに秋入校は募集を終了していますが、日本語でサポートを受けながら学べるチャンスがあるということは、今後の参考におさえておくとよいでしょう。

「どれ使う?プログラミング教育ツール」これまでの記事

2019年~2022年4月まで「窓の杜」掲載

狩野さやか

株式会社Studio947のデザイナー・ライター。ウェブサイトやアプリのデザイン・制作、技術書籍の執筆に携わる。自社で「知りたい!プログラミングツール図鑑」「ICT toolbox」を運営し、子ども向けプログラミングやICT教育について情報発信している。