CS50とは
プログラミング学習を始めるときに、
- Webの記事
- 書籍
- プログラミングスクール
など取り組み方に、色々な選択肢があります。
今日は、
基本的に無料で取り組むことができる
英語のプログラミング入門コース
を紹介します。
英語の教材を選んでいるのは、
- 良質な無料コースが多い
- 学習コースの選択肢が豊富
という理由からです。
今回は、入門コースの紹介なので、
プログラミングを英語で学んでいく
ということに比較的取り組みやすく、お勧めの方法です。
ここでは、
というカテゴリーのコースを紹介します。
CS50は、コンピュータサイエンスの入門コースの総称です。
CSは、Computer Scienceを表しています。
50は何かというと、入門レベルということを表しています。
アメリカの大学では、クラス名に番号がついていることが多いです。
例えば、CS160 インターネットセキュリティ
のような形です。
この番号は、100番台が大学での入門レベルで、200番台、300番台と数字が増えていくと、授業もより高度な内容になっていくという対応があります。
そのため、CS50というのは、
- 100番台の大学新入生向けのコンピュータサイエンス授業のための準備コースですよ
- 基本的なところからコンピュータサイエンスを学びます
というメッセージが読み取れます。
CS50はもともとアメリカのハーバード大学が始めたことから、この名前がついたと考えられます。
今ではプログラミングについて、色々な分野を扱っているCS50、今日はそのいくつかを紹介します。
CS50の例
コンピュータサイエンス入門
まずは、コンピュータサイエンス入門
CS50’s Introduction to Computer Science
です。
プログラミングの経験を前提としていないコンピュータサイエンスのコースです。
少しややこしいところなのですが、このCS50には、大きく分けて
- CS50 → キャンパス内で行われる大規模な授業
- CS50x → オンラインで自分のペースで取り組めるコース
の2種類あります。
学習法別に分けると、
- 動画を視聴して、自分で学びたい → CS50のコースページを確認。合わせてCS50xの動画も確認
- オンラインで課題を提出しつつ、有料の修了証を発行してもらいたい → オンライン学習プラットフォームのedXで、CS50xに取り組む
という形が良いかもしれません。
この入門コースでは、
- プログラミング教育で広く用いられているプログラミング言語Scratch
- C言語
- Python
- データベース
- HTML、CSS、JavaScript
などを広く取り扱っています。
- まずは、コンピュータサイエンス分野をざっと確認したい
- プログラミング教育はどんな形で実施されているのか見てみたい
- プログラミング言語を一つ選んで集中的に何かを作ってきたが、一度コンピュータサイエンスを入門レベルで確認したい
などの人にはお勧めのコースです。
PythonとJavaScriptでWebプログラミング
次に、PythonとJavaScriptでWebプログラミング
CS50’s Web Programming with Python and JavaScript
です。
CS50のWebプログラミングでは、主にWeb開発のために、
- HTML
- CSS
- JavaScript
- Pythonの基本
- PythonのWebフレームワーク
- データベース
などについて、学ぶことができます。
コース学習者の前提知識としては、先に紹介した、CS50のコンピュータサイエンス入門が挙げられています。
Webプログラミングコースでも、
オンラインで課題を提出しつつ、有料の修了証を発行してもらいたい場合は、入門コースと同様にedXで取り組めます。
PythonでAI入門
近年、注目されている人工知能 / AIについてのCS50コースもあります。
CS50’s Introduction to Artificial Intelligence with Python
です。
このコースでは、Pythonを使って、
- 探索
- 確率と統計の基礎
- 最適化
- 機械学習
- ディープラーニング
- 自然言語処理
などのトピックについてAIの基礎を学ぶことができます。
このコースの前提として、
CS50のコンピュータサイエンス入門を完了している
か
Pythonでのプログラミング経験
が挙げられています。
PythonでAI入門コースでも、
edXでオンラインで課題に取り組み、有料の修了証を発行してもらうことができます。
コンピュータサイエンスの分野では特に、AIに興味がある、という人は一度試してみると良いかもしれません。
番外編
番外編として、
CS50シリーズではないのですが、
プログラミングに役立つ情報が網羅されている
という点から、1つ学習コースを紹介します。
The Missing Semester of Your CS Education
です。
このコースでは、典型的なコンピュータサイエンスのカリキュラムでは重視されてこなかった、
プログラミングでの便利なツールの使い方
に着目しています。
- 便利なコマンド
- エディタとしてのVimの活用
- コマンドラインでのデータの取り扱い
- Gitを使ったバージョン管理
- セキュリティと暗号化
などのテーマについて幅広く学ぶことができます。
それらを実際にどう使うのか。どのように使えば効率的に作業できるのか
に主眼が置かれているので、とても実用的です。
プログラミング学習を進めていく上で、
- あれ、講師が使っているこのコマンドの意味は?
- どうにかして作業を効率化できないか
など疑問、不明点が出てくることは多いと思います。
このコースでは、それらを先回りして、
- 効率的なプログラミング方法
- 便利なツールキット
を紹介してくれるイメージです。
一般的にはプログラミング教育が進んでいるとされているアメリカで
便利なツールの使い方
が一つの大きなコースとして、人気だということは興味深いですよね。
プログラミングの際に、
- 上手にツールを組み合わせて使う
- その考え方を学ぶ
ことがとても重要だとわかります。
入門や復習にCS50を活用
英語の講義を活用して学習する
というとハードルが高いような気がしますが、
意外とそうでもないです。
講義動画やオンライン学習教材での英語は、
- 日常会話
- 映画(洋画)
などに比べると圧倒的に聞き取りやすいです。
近年は特にインターネットを通して、英語が母語ではない学習者が視聴することを意識してか、より分かりやすく話してくれている動画が多いと感じます。
日本語でもカジュアルな日常会話よりも、
高校の授業や大学の講義での日本語の方が少しかしこまった口調になりますよね。
プログラミング学習に活用できる良質な英語教材は、本当に多いです。
字幕を付けられる動画も増えてきています。
- プログラミングの入門教材
- 特定の分野の復習教材
として、今日紹介した学習コースは活用できると思います。
気になった人はぜひ一度試してみてください。
コメント