2024 年 5 月、3 か月の懸命な努力を経て、私はついにハーバード CS50X コースを修了しました。最後に、私は全旅を終え、ハーバード大学から無料の証明書を受け取りました。私が今まで受講した中で最高のコースの 1 つでした。これが私の証明書です
ここに来ているということは、CS50x についてはある程度ご存知だと思います。プログラミングの世界の基礎を教えるハーバード大学のプログラミング入門コースです。始める前に私が抱いていた誤解がたくさんあることに気づきました。 CS50x を完全に理解していただくために、包括的な概要と一般的なガイドラインを提供したいと思います。最終的には、私と同じように、ハーバード大学から無料の証明書を取得できます。始めましょう
CS50 とは何ですか?ハーバード大学はこう言います
これは、プログラミング経験の有無にかかわらず、集中力のある人もそうでない人も同様に対象とした、コンピューター サイエンスとプログラミング技術の知的事業へのハーバード大学の CS50 です。
このコースは 11 週間 (パート) の学習教材で構成されており、各パートでは AI やその他の方法の助けを借りずに自分で完了する必要がある問題セットが提供されます。最後の 11 週目では、創造力を発揮して完成させる必要がある最終プロジェクトを提出する必要があります。
CS50 の特徴の 1 つは、インストラクターの David Malan とそれをサポートする CS50 チームです。あなたはデビッド・マランの教え方に夢中になるでしょう。彼のプレゼンテーションと教えは素晴らしかったです。このコースの教えについては何の不満もありません。
以下は全週の詳細な概要です。ご自由にスキップしてください。これらのセクションをクリアする方法については、このブログで後ほど説明します
**第 0 週スクラッチ:
**このセクションでは、計算的思考、問題解決、バイナリ、ASCII、Uniconde、アルゴリズムなど、コンピューター サイエンスのいくつかの入門概念を学びます。
デビッドは、Scratch と呼ばれる幼児向け言語を通じて、プログラミングの基本についての考え方を示します。課題として、独自の Scratch プロジェクトを提出する必要があります。楽しいですね。
**第 1 週 C:
**このセクションでは実際のプログラムを作成します。 C でプログラミングする方法を学びます。これには、条件文、ループ、変数、データ型、基本的な端末コマンドなどのプログラミング言語の基礎が含まれます。 Malan は、整数のオーバーフローや切り捨てなど、いくつかの深い概念について詳しく説明します。
ここで完了する問題は、マリオ、現金、クレジットです。
マリオと現金は簡単ですが、クレジットは難しいです。
**第 2 週の配列:
**処理とコンパイルの手順、デバッグ、配列や文字列などの重要なプログラミング概念を学びます。授業では 2 つのプログラム「greet.c」と「touppercase」を作成します
問題はスクラブルと可読性です。可読性が難しいことに注意してください。また、これらのプロジェクトのいずれかを提出する必要があります。
Caesar(比較的簡単)とSubstitution(難しい++)。
第 3 週のアルゴリズム:
このクラスでは、アルゴリズム効率を計算するための漸近記法について学びます。このビデオでは、線形検索、二分検索、バブル ソート、マージ ソート、選択ソートなどの検索操作と並べ替えを示します。再帰というプログラミングの美しい概念もここに示されています。
並べ替えと複数性を強制的に完了する必要があります。オプションはランオフとタイドマンです。 2 つのうちのいずれかを完了する必要があります。私のアドバイスは、簡単なのでランオフを完了することです。タイドマンは、人生で遭遇するであろう最も困難な問題の 1 つです。
第 4 週の記憶:
今週は、マランが記憶の仕組みを教えます。ここでは、ポインター、malloc、free、およびヒープやスタックなどの基本的なメモリ実行について説明します。また、メモリ リーク、ガベージ値、ファイル I/O 操作についても学習します。
問題として、ボリューム、リカバリ、およびフィルターのいずれか 1 つのバージョンを送信する必要があります。両方のフィルターの問題を提出しました。
第 5 週のデータ構造:
データ構造の基本をいくつか学びます。キュー、スタック、ヒープ、リンク リスト、検索ツリー、ハッシュ テーブル、トライなどの概念については、ここで説明します
問題は Speller と Inheritance で、これまでの問題よりも比較的簡単です。ここまでたどり着いたなら、あなたには旅全体を完了する能力があると確信しています。
第 6 週 Python:
以前のプログラミング言語の概念を適用しますが、より簡単な言語 Python を使用します。
問題集は簡単です。実際、以前の pset ソリューションを Python で書き直しています。 DNA の問題は少し難しく感じるかもしれないことに注意してください。
第 6.5 週 人工知能:
最新の AI がどのように意思決定を行い、その背後で機能するかを学びます。ここでは、プロンプト エンジニアリング、機械学習、ディープ ラーニング、生成 AI の基本について説明します。
ここには問題セットはありません。
第 7 週 SQL:
リレーショナル データベースの世界を深く掘り下げてみましょう。 sqlite3 データベースの基本と、テーブル、行、インデックス、関数、インジェクション攻撃などの概念について学びます。
ビデオ内のトピックに集中していれば、問題セットは簡単に解けるはずです。問題は、歌、映画、そしてフィフティヴィルです。
私はフィフティヴィルが大好きです。きっとあなたも気に入っていただけると思います。
第 8 週 HTML、CSS、JavaScript:
インターネットの仕組み、TCP、IP、HTTP など、Web の基本概念がビデオで説明されています。その後、Web サイトの構成要素である HTML、CSS、JavaScript について学びます。これらのテクノロジーについては、簡単に理解するだけです。
トリビアとホームページの 2 つの問題の解答を提出する必要があります。これを解決するには、HTML、CSS、JavaScript を使用してカスタム Web サイトを作成する必要があります
第 9 週 フラスコ:
Flask は、Web サイトを動的にするために Python 上に構築されたライブラリです。このビデオでは、Flask、ルート、リクエスト、レスポンス、セッション、Cookie などのトピックを取り上げ、基本的な Jinja 構文を示します。
flask と jinja を使用して 2 つの動的 Web サイトを作成し、誕生日と財務という 2 つの問題を解決する必要があります。財政は難しい問題ですが、楽しいです。
第 10 週 サイバーセキュリティ:
サイバーセキュリティの基本はビデオで説明されており、このビデオにはサイバーセキュリティ関連の問題はありません。最終プロジェクトを完了するだけでコース全体を完了できます。 AI の助けを借りることもできますが、プロジェクトは独自のものである必要があります。プロジェクトを作成するには、作りたいものやテクノロジーを選択できます。
Cs50 はほとんどの人に利益をもたらしますが、始める前に考慮すべきことがいくつかあります。そうしないと、がっかりしたり、コースを完了できずに時間を無駄にしたりする可能性があります。
**これまでコーディングしたことがない場合:
**少しのコーディング経験があれば時間を大幅に節約できますが、これまでコーディングしたことがない場合は、CS50 から始める必要があります。最後までやり遂げることができれば、止められなくなるかもしれません。ほとんどの初心者は難しすぎるため、コースを完了できないことに注意してください。
**プログラミングの世界を包括的に理解したいと考えています:
**あなたが会社員、クリエイティブな仕事をしている人、大学生であっても、CS50 はプログラミングの世界についての理解を深めるのに役立ちます。自分のキャリアの中で進むべき道が見つかるかもしれません。私と同じです。
私はフロントエンド開発者で、主にフロントエンドに取り組み、見栄えの良い UI を構築していました。 CS50を完了した後、バックエンドに向けて動き始めました。
問題解決スキルを向上させたいと考えています:
CS50 には解決すべき膨大な問題が山積しています。週を追うごとに、問題は難しくなり、面白くなります。プログラミングの世界の概要を学びながら問題解決スキルを向上させたい場合は、CS50 が最適な方法であると確信しています。
認識された資格情報を求めています:
ハーバード大学の証明書を取得することは、人生において達成すべき素晴らしいことです。こう考えてみてください、
あなたが人事担当者で、1 つのポジションで 2 人の候補者を採用することを選択した場合、以前に CS50 を完了した候補者がリストの中で常に便利なポジションに入るでしょう。ただし、他の要素も同様に考慮されます。
**ある分野の専門家に相談したい場合:
**これは重要な点です。私自身の経験から言えますが、CS50x は特定の分野に特化するコースではありません。 Web開発でも、モバイル開発でも、バックエンド開発でも。テクノロジーの世界の基本的な概要のみを提供します。プログラミングの世界に関する幅広い知識を得ることができます。次に、あなたの仕事はフィールドを選択して、それについてさらに学ぶことです。 CS50 には独自の Python または Web コースもあります。確認できます。
できるだけ早く仕事が必要です:
この重要なメッセージをお伝えしたいと思います。先ほども述べたように、CS50x は専門コースではありません。だからといって、専門家になったり、特定の分野の完全な知識を得ることができるわけではありません。このため、あなたの知識はそれほど完全ではありません。これはコミュニティでよく見られる誤解です。できるだけ早く仕事を見つけたい場合は、他の完全なコースや学習パスを探してください。 CS50にはPython、R、Webなどのコースがあります。それらを確認できます。しかし例外なく、CS50x だけで仕事を得るのは困難です。この件に関してお手伝いさせていただきますので、Twitter で私に DM をお送りください。
注: CS50 の証明書は、面接の最終候補者リストに残るのに役立つ可能性があります
コミットする時間がありません:
始めたときは、一生懸命頑張って 1 か月以内にこのコースを終えるだろうと思っていました。
CS50 はハードなコースであり、これがその特徴であることを覚えておいてください。完了までに時間がかかります。場合によっては、概念を理解するために講義をもう一度見る必要があるかもしれません。完了するには少なくとも 2 か月の専用の作業が必要です。 Ngl CS50 を完成させるのに 3 か月かかりました。時間の確保が必要です。
その他の要因:
スケジュールが忙しい、またはプログラマーであり、C のような低レベル言語を深く学びたくない。
もしかしたら、あなたはすでに何かの学習プロセスに入っていて、頭の中で常に CS50 について考えていることがあるかもしれません。まず学習を完了すれば、いつでも CS50 に参加できます。
私はすでにコースを完了しているので、CS50 を完了するためのヒントとガイドラインをいくつか紹介します。これらのヒントをもっと早く知っていればよかったと思います。その過程で役立つと信じています。
私たちが CS50 を選んだのは、簡単だからではなく、難しいからです。
覚えておいてください: それは簡単ではありません
1 つ注意していただきたいのは、あなたが初心者でプログラミングの予備知識がない場合、CS50 は完了するのが難しいコースであるということです。幸運なことに、私には JavaScript を学んだ経験があり、その概念がとても役に立ちました。最終的には物事が困難になり、イライラするかもしれません。しかし、それはあなただけではありませんので、ご安心ください。私たちは皆、それを経験し、乗り越えてきました。
**CS50 の独自 Web サイトからコースを完了してください
**EDX からコース全体を無料で完了することもできますが、CS50 の Web サイトから完了する方がはるかに簡単だと思います。それは完全にあなたの選択です。
自分に挑戦してください
CS50x を完成させるのに 3 か月かかった理由の 1 つは、オプションを含むほぼすべての Pset を完成させたからです。私はすべての問題タスクを完了するという自分自身への挑戦を投げかけました。これにより私の知識も深まりました。少なくとも、オプションか必須かに関係なく、すべての pset を完了するために試してみることをお勧めします。
メモを取る:
概念をもう一度理解するためにビデオ全体をもう一度見る必要がないように、講義で取り上げられている重要なトピックをそれぞれメモを取る必要があります。
CS50 ビデオはやや複雑です。時々、ビデオをもう一度見なければなりません。メモを取った場合は、ビデオを再視聴せず、メモだけを確認するだけになる可能性があります。これは役に立ちます。構想についてメモを取りました。欲しい方はTwitterにDMください。それらをあなたと共有します。
ロイドの説明を飛ばさないでください:
毎週の David のレッスンの後に、トピックをより深く理解できるように、いくつかの追加ビデオが提供されます。 Doug Lloyd がプレゼンターで、いくつかの例を挙げてトピックの概要を説明しようとします。私の提案は、これらをスキップしないことです。
オプションの問題にとらわれないでください:
必須の問題集を完了する必要がありますが、問題によっては多くの時間を費やすことになります。特に「より快適なもの」。 **これは私が犯した間違いの 1 つです。たった 1 つの問題を完了するのに何週間も行き詰まってしまいました。そんなことはしないでください。場合によってはスキップするのが賢明な選択肢です。
ヒントは次のとおりです。難しすぎると思われるオプションのものは送信しないでください。 Googleで解決策を検索して、何が間違いだったのかを理解してください。 **注意: その解決策は送信しないでください。
タイドマンは大変です!!
Week 3 の Pset では、Runoff と Tideman のいずれかを提出する必要があります。 **タイドマンはタフすぎます。 TOO TOUGHを繰り返します。
**私は頑固で、ほぼ 17 日間、何度も試し続けました。この問題の解決は再帰によって行われます。それから私は先に進まなければなりませんでした。これが難しいと感じたら(もちろんそうです)、先に進んでください。ランオフを完了して次に進みます。誰かが前にこれを教えてくれればよかったのに。
Discord から法的支援を受ける
CS50 の Discord コミュニティは非常に役に立ちます。行き詰まったり、質問がある場合は、サーバーから助けを求めてください。ただし、ソリューション全体を共有すべきではないことに注意してください。それは違法です。
リンク: CS50 Discord
正直に言ってください
CS50 には学術的正直さに関するポリシーがあります。他のソースからコードをコピーし、あたかも自分が書いたかのようにソリューションを送信することは絶対に違法です。 CS50 チームは、これによりあなたの証明書を失格にする可能性があります。
また、あなたは学ぶためにここにいます。なぜここで不誠実になるのですか?
最終プロジェクト提出のヒント:
時間をかけて、まるで独自の技術製品を作成しているかのように、愛情と創造性を持って最終プロジェクトを提出する必要があります。じっくり考えて、素敵なプロジェクトを作りましょう。
ヒント: 最終プロジェクトを除く他のすべての pset は、 CS50.dev を通じて実行できます。最終プロジェクトはローカル環境で作成する必要があります。また、最終プロジェクトをプッシュして、750 ワードの長い readme.md ファイルを作成し、それに関するビデオを録画する必要があります。
その後、提出してください。しかし、ここで課題に直面するかもしれません。これには手動で送信する必要がありました。
cs50.me では、GitHub にログインする必要があり、成績表を確認できます。必要な各 pset と最終プロジェクトを完了すると、ハーバード大学から無料の証明書を取得する資格が得られます。それはあなたのものです!
読んでいただきありがとうございます。ハーバード大学から証明書を取得できることを願っています。しかし、これは証明書に関するものではありません。それは、最高のインストラクターから貴重な知識を学ぶことです。あなたは旅全体を好きになるでしょう。
読んでいただきありがとうございます。これはすべて私からの意見です。この記事でいくつかの洞察力のあるものを見つけていただければ幸いです。他に課題に直面している場合、またはその他の質問がある場合は、お気軽に Twitter で私に DM してください: Shihab Haque
表紙のクレジット: freecodecamp
以上がハーバード大学の CS についての私の正直なレビュー: ヒント、ガイドライン、無料証明書の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。