2021年5月13日、米ハーバード大学が学生向けに提供しているプログラミング入門講座「CS50」の日本語版がリリースされました。
世界を代表する名門大学のオンライン講座ですから、これに機にプログラミングを始めようと考えている方も多いでしょう。
そこで本記事では、プログラミング初心者向けにCS50の使い方や活用方法などを解説します。
この記事の目次
CS50とは?
本章では、CS50の概要について解説します。
ハーバード大学発のプログラミング入門講座
「CS50(Computer Science 50)」とは、アメリカの名門ハーバード大学が公開している、オンラインのコンピュータサイエンス入門講座です。
CS50は、オンライン教育プラットフォーム「edX(エデックス)」上で無償提供されており、全世界で282万人が履修登録している人気コンテンツです。
本講座は、David J. Malan氏が主任講師を担当し、Facebook創業者のマーク・ザッカーバーグ氏やMicrosoftの元CEOであるスティーブ・バルマー氏もゲスト講師として参加しています。
「CS50.jp」は日本語翻訳版
2021年5月13日、株式会社LABOTがCS50を日本語翻訳した「CS50.jp」を公開しました。
CS50.jpでは、日本語Webサイトのほか、YouTubeチャンネル「CS50 for Japanese」が開設されており、日本語字幕で講義を視聴できます。
これにより、英語に慣れていないと履修するのが難しいCS50を、日本語でも学習できる環境が整いました。
CS50.jpにて日本語翻訳された講座は、以下の2つです。
ちなみに、日本語が一部おかしい内容(順次修正とのこと)や、英語と日本語のニュアンスの違いにより表現が異なる内容などが存在するため、使用の際はご注意ください。
CS50を用いた就職活動支援プログラムを実施中
株式会社LABOTが運営する「CODEGYM」では、日本の学生を対象に、CS50を用いた就職支援プログラム「CODEGYM Academy」を実施しています。
本コースはオンライン完結で、2021年春入校は受験料・入学金・授業料・手数料がすべて無料で提供されたとのことです。
コロナ禍で就職活動や学習環境に影響が出た学生でプログラミングに興味のある方は、2021年秋入学以降の募集情報にアンテナを張っておくことをおすすめします。
CS50で学べること
本章では、日本語版のCS50で学べる3つの内容について紹介します。
コンピュータサイエンスの基礎
コンピュータサイエンスとは、コンピュータを用いた科学研究全般を表す学問のことで、日本語では「計算機科学」「コンピュータ科学」ともいわれます。
計算機科学の定義は、以下の通りです。
コンピュータの理論,設計,応用について研究する学問。コンピュータ科学,コンピュータサイエンスともいう。理論面は,(1) 情報の表現とその性質の数学的側面にかかわる情報理論,(2) 計算の可能性と計算量にかかわる計算の理論,(3) コンピュータを使った離散的な数値計算にかかわる数値解析などから構成される。
引用元:コトバンク
上記の通りで、CS50ではプログラミングの側面から、データ構造、カプセル化、リソース管理などの基礎を学べます。
アルゴリズムの考え方
アルゴリズム(Algorithm)とは、コンピュータサイエンスにおける重要な考え方の1つで、計算方法や問題解決の手順を表す用語です。
アルゴリズムの定義は、以下の通りです。
計算や問題解決の手順のこと。定められた手続に従って計算していけばいつかは答えが得られ、それが正解であることが保証されている手続である。最大公約数を求めるユークリッドの互除法などがその例。ただし計算量や記憶容量の問題を考えたときに、それが現実的に実行可能であることは意味しない。
引用元:コトバンク
例えば、Googleマップで現在地から近くのコンビニまでの経路を表示するとします。
この場合、内部の検索アルゴリズムが2地点の関係性をもとに、最短で到着できる経路を表示してくれるのです。
CS50では、プログラミング上の課題を解決する「線形検索」「バイナリ検索」などの検索アルゴリズムを学べます。
この記事もオススメ
プログラミング言語の基礎
プログラミング言語とは、コンピュータに命令を与えるために用いる言語のことです。
CS50では、プログラミング言語を用いたソフトウェア開発が最終的な目標であり、提出が完了し修了条件を満たせば、証明書を取得できます。
日本語版のCS50で学べるおもなプログラミング言語は、以下の通りです。
- Python
- JavaScript
- HTML/CSS
上記の言語の詳細について、以下で解説します。
この記事もオススメ
Python
Pythonは、2021年現在で人気・需要の両方で評価の高い、最も勢いのあるプログラミング言語の1つです。
Pythonの得意分野は、人工知能(AI)開発とデータ解析の2つで、先端技術の開発やビジネス上の課題解決などに活用されています。
CS50では、基本構文・アルゴリズム・基本ライブラリなどを学べます。
この記事もオススメ
JavaScript
JavaScriptは、Pythonと並んで世界中の開発現場で採用されているプログラミング言語です。
JavaScriptのおもな役割は、Webページにアニメーションやフォームなどの動的な表現を加えることです。
CS50では、基本構文・イベント駆動型プログラミング・DOM(Document Object Model)の操作などを学べます。
HTML/CSS
HTMLとは、ハイパーテキストと呼ばれる文書を作成するためのマークアップ言語です。
CSSとは、Webページのレイアウト・色・文字フォントなどの見た目を定義するためのプログラミング言語です。
HTML/CSSは、Webサイトを作る上で欠かせないため、プログラミング学習を始めるなら真っ先に覚えておきたい言語といえるでしょう。
CS50では、基本構文・レスポンシブデザイン・Bootstrapなどを学べます。
CS50の使い方
CS50の使い方は、以下の通りです。
- 日本語翻訳サイト「CS50.jp」のカリキュラムに沿って学習する
- 各コースに用意されている動画とノートを参照しながら理解を深める
- 各コースの最後に用意されている問題を提出したら、次に進む
- 最終目標のソフトウェア開発が完了すれば修了
YouTubeの動画については、日本語字幕がついているので、字幕設定を「日本語」に変更して視聴してください。
CS50の活用方法
本章では、CS50の活用方法について解説します。
営利目的の使用は禁止
CS50は、営利目的の使用は認められておりません。
そのため、教材のコピーや再配布を行う場合は非営利目的の範囲内で行いましょう。
そのほか、「CS50.jp」の利用規約を参照し、ルールに沿って活用してください。
プログラミング独学の教材
CS50は、プログラミング独学の教材に適したコンテンツです。
特に、PythonやJavaScriptを使ったWebアプリ開発に挑戦したいと考えている方は、基本から学べるのでおすすめです。
ただし、プログラミング独学はなるべく効率よく進めるのがコツであり、エラーに必要以上の時間を取られたり間違った学習方法で進めると、挫折につながります。
関連記事にて、プログラミング独学のやり方を分かりやすく解説していますので、合わせて参考にしてみてください。
スキマ時間のプログラミング学習
CS50には良質な動画コンテンツも含まれているため、スキマ時間のプログラミング学習に活用するのもおすすめです。
例えば、通学・通勤・休憩時間などの手が空いている時間帯に、スマホがあればYouTubeで動画を視聴できます。
また、英語のリスリングが得意な方であれば、家事や雑務の最中にYouTubeを流しておけば、「ながら学習」も可能です。
このように、スキマ時間も有効活用しながらプログラミング学習を効率よく進めてみましょう。
英語学習とプログラミング学習の両立
プログラミング学習だけでなく、英語学習の教材として活用できるのもCS50の魅力です。
一般的な国内のITエンジニアにとっては、英語は特に必要ありません。
しかし、将来的にブリッジエンジニア(国内IT企業と海外IT企業の橋渡し役)や海外で働きたい方には、英語力は必須です。
そこで、英語版のCS50とYouTube動画をうまく活用すれば、読解力やリスニング力を鍛えられるでしょう。
CS50の難易度
CS50受講生の3分の2は、これまでコンピュータサイエンスを受講したことがないそうです。
また、CS50のイントロダクションは未経験者でもプログラミングのコツをつかみやすい「Scratch」から始めます。
そのため、プログラミング初心者には良心的な難易度といえるでしょう。
しかし、CS50はもともとがハーバード大学の学生向けに開発された講座であり、カリキュラムの中にはプログラミング言語の中でも習得が難しいとされるC言語も含まれます。
したがって、プログラミング初心者といえども一定の難易度が伴うともいえます。
加えて、ソフトウェア開発の課題提出まで含めると、ある程度のプログラミング経験がないと完成させるのは難しいでしょう。
CS50を使うのに向いている人
本章では、CS50を使った学習に向いている人を4つのポイントに分けて紹介します。
自走力のある人
1つ目は、自走力のある人です。
自走力とは、「自ら目標を立てて達成できる力」「責任感や目的意識を持って仕事ができる力」などを表しています。
プログラミングでは、目的意識を持って主体的に学ぶ姿勢が、成長スピードを高めるコツです。
自走力に自信のない方は、勉強や仕事などで目標を立てて最後までやり切る経験を積み上げていきましょう。
一定のプログラミング経験がある人
2つ目は、一定のプログラミング経験がある人です。
CS50の難易度から考えると、ソフトウェア開発まで完了させるには簡単なアプリ開発の経験があるのが望ましいでしょう。
プログラミング経験がない場合は、CS50を始める前にプログラミング学習サイトなどで基礎を身につけてから履修することをおすすめします。
本気でアプリ開発したい人
3つ目は、本気でアプリ開発したい人です。
CS50の最終目標はソフトウェア開発であり、一定の評価をもらえるレベルの作品を提出するのは初心者には難易度が高いでしょう。
実際、アプリ開発では開発環境の構築・設計・プログラミング・テストの工程を経て完成するため、十分な学習時間と根気が要求されます。
したがって、本気で1からアプリを開発して提出まで完了させたいという強い思いがないと、修了するのは難しいでしょう。
この記事もオススメ
英語に対して抵抗感のない人
4つ目は、英語に対して抵抗感のない人です。
CS50.jpでは、一部日本語の不備があるため、英語が読めると学習が楽になるかもしれません。
また、YouTube動画の字幕についても、日本語がおかしい部分があるため、リスニングができると困りません。
英語を無理して読もうとすると、プログラミング学習以外に時間を取られてしまい、挫折の原因につながります。
したがって、どうしても英語が苦手な方は、別の教材を検討してみるのがよいでしょう。
この記事もオススメ
初心者におすすめのプログラミング学習サイト
「CS50で学習するのはまだ早そう」と思った方は、初心者向けのプログラミング学習サイトで基礎固めから始めてみるのがおすすめです。
特におすすめなのは、以下の通りです。
- Progate:スライドとWeb上でのプログラミングで実践的に学べる
- ドットインストール:3分動画で豊富な言語をサクサク学べる
- paizaラーニング:3分動画と練習問題で効率よく学べる
- Udemy:買い切り型の動画コンテンツで反復学習
- Schoo:生放送型の講義形式で集中的に学べる
CS50のような講義スタイルの教材をお探しなら、「Udemy」や「Schoo」を検討してみるとよいでしょう。
そのほか、関連記事でおすすめのプログラミング学習サイトを紹介していますので、合わせて参考にしてみてください。
この記事もオススメ
CS50で独学が難しそうならスクールに通うのもあり
プログラミング初心者向けにCS50の使い方や活用方法などを解説しました。
CS50は、世界中の学生や社会人が履修登録しているコンピュータサイエンス入門講座であり、良質なコンテンツであることは間違いないでしょう。
しかし、もともとはハーバードの学生向けに開発された背景から、プログラミング未経験者や初心者には、ハードルが高いと感じてしまうかもしれません。
CS50で独学は難しそうなら、初心者向けのプログラミング学習サイトを利用しましょう。
あるいは、効率性を求めるならプログラミングスクールに通うのも選択肢の1つです。
関連記事にて、おすすめのスクールを紹介していますので、ぜひ参考にしてみてください。
この記事もオススメ
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。