近年はオンラインで公開されている教材やコンテンツを利用してコンピューターサイエンスを学ぶことが可能となっていますが、インターネット上に散らばったさまざまなコンテンツを集め、体系的にコンピューターサイエンスを学ぶハードルは依然として高いままです。「Open Source Society University(OSSU)」というプロジェクトは、無料のコンテンツでコンピューターサイエンスを体系的に学べるようにすることを目指しており、誰でも利用できるオンライン教材リストやオススメの学習コースをGitHubで公開しています。

GitHub - ossu/computer-science: Path to a free self-taught education in Computer Science!

https://github.com/ossu/computer-science

OSSUが公開しているコンピューターサイエンスのカリキュラムは、オンラインで公開されているさまざまなコンテンツで構成されており、すべての項目を体系的に学ぶことで大学の学位レベルのコンピューターサイエンスの知識を習得できるとされています。教材自体はハーバード大学やプリンストン大学、マサチューセッツ工科大学などの大学が公開しているコンテンツが多く、「誰でも利用可能であること」「定期的に実行できること」「教育の観点で高品質であること」「計算機協会やIEEEのガイドラインに従っていること」などが選定基準になっているそうです。

カリキュラムは「Intro CS(コンピューターサイエンス入門)」「Core CS(コンピューターサイエンス基礎)」「Advanced CS(コンピューターサイエンス応用)」「Final Project(最終プロジェクト)」の4つに分かれています。



受講者は最初に「Intro CS」を選択し、カリキュラムが自分に適しているかどうかをチェックすることが推奨されています。その後に学部1年〜3年での学習に相当する「Core CS」の受講に進みますが、「Core CS」は代数・幾何学・微分積分といった高校レベルの数学を身に着けていることを前提としています。「Advanced CS」は受講者が「Core CS」の項目をすべて受講済みであり、十分な知識を身につけていることが前提となっているほか、一部のコンテンツは基本的な物理学の知識が必要だそうです。

コースの受講は1人でもグループでも可能であり、受講するタイミングや間隔も個人の裁量に任されています。複数人が集まって合宿のような形式でグループワークを行ったり、平日の夜や休日などにコツコツと進めたり、好きな方式で学習を進めることができます。OSSUによると、入念に計画を立てて週に20時間の学習時間を確保できれば、約2年ですべてのコースを終えて卒業できるとのこと。また、OSSUは学習計画を立てるために役立つスプレッドシートも公開しています。

コンテンツにはGitHubのページからアクセスすることが可能。受講したい項目をクリックします。



すると、初心者向けのオンライン教材である「Python for Everyone (PY4E)」のウェブサイトが開きました。



次のコースをクリックしてみます。



今度はマサチューセッツ工科大学が公開しているコンテンツが開きました。このように、OSSUのコースはオンライン上に散らばっているさまざまなコンテンツを体系立てて並べ、コンピューターサイエンスを体系的に学習しやすくしたものとなっています。



また、受講科目の右側にある「Chat」をクリックすると、OSSUが運営するDiscordサーバーに加入することが可能。他の受講者と共にコースの内容について話し合ったり、わからない点を相談したりすることができます。最終プロジェクトでは身に着けた知識を利用して問題を解決することが要求され、完了したプロジェクトはDiscordコミュニティで仲間に発表するとのこと。



なお、OSSUは無料ではないが参考になる書籍のリストも公開しています。