Final Project

これはこのコースの最後を飾るプロジェクトです。最後のプロジェクトは、プログラミングに関する新たな知識を活用して、独自のソフトウェアを開発する機会です。このコースのレッスンにもとづいているものである限り、どのようなプロジェクトにするかは完全にあなた次第です。プロジェクトは任意の (複数の) 言語で実装できます。CS50 IDE以外のインフラストラクチャを利用することもできます。あなたが関心のあるものを構築すること、実際の問題を解決すること、コミュニティに影響を与えること、または世界を変えることに興味があります。このコースを超えるものを作成するように努めましょう。

ソフトウェア開発を1人で行うことはほとんどありませんので、この最終プロジェクトでは、1~2人のクラスメートと共同作業を行うことができます。言うまでもなく、そのグループのすべての受講者が、グループのプロジェクトの設計と実装に等しく貢献することが期待されます。さらに、2~3人のグループのプロジェクトの範囲は、通常の1人のプロジェクトの2~3倍になると予想されます。1人でプロジェクトをおこなう場合でも、各コースの問題セットで必要とされる以上の時間と労力をかけるべきです。

CS 50のスタッフは、この最終プロジェクトを含め、CS50xへの提出物を監査しています。アカデミックポリシーに違反していると認定された学生は、コースから削除され、認定資格がないと見なされます。すでにCS50xを修了している受講者は、違反が見つかった場合、、CS 50証明書 (およびedX証明書 (該当する場合)) を失効させられます。

アイデア

  • JavaScript、Python、およびSQLを使用するWebベースのアプリケーション
  • Swiftを使ったiOSアプリ
  • LuaとLÖVEを使用したゲーム
  • Javaを使ったAndroidアプリ
  • JavaScriptを使ったChrome拡張機能
  • Cを使ったコマンドラインプログラム
  • デバイスをプログラムするハードウェアベースのアプリケーション

始め方

プロジェクト全体を作成するのは大変そうです。ここでは、最初に考慮すべきいくつかの質問を示します。

  • あなたのソフトウェアは何をしますか?どのような特徴がありますか?どのように実行されるのですか?
  • どのような新しいスキルを身につける必要がありますか?どのようなトピックを調査する必要がありますか?
  • 1~2人のクラスメートと一緒に作業をする場合、誰が何をするのですか?
  • ソフトウェアの世界では、ほとんどの場合、実装に予想以上の時間がかかります。そのため、一定の時間内に目標を達成できないことも珍しくありません。あなたのプロジェクトにとって良い結果と考えられるものは何ですか?より良い結果は何ですか?最良の結果は何ですか?

目標達成のマイルストーンを設定して、目標を達成することを考えてください。

CS50 IDEを使用している場合は、~/projectというディレクトリを作成して、プロジェクトのソースコードやその他のファイルを格納します。CS50 IDEの外部でプロジェクトを開発することもできます。

提出方法

3つのステップをすべて完了する必要があります!

ステップ1/3

スライド、スクリーンショット、ナレーション、ライブアクションなど、プロジェクトを世界に公開する短いビデオ (長さは3分以内) を作成します。ビデオには、プロジェクトのタイトル、あなたの名前、都市と国、および視聴者に伝えたいその他詳細を何らかの方法で含める必要があります。「スクリーンキャスト」 の作り方のヒントはhttps://www.howtogeek.com/205742/how-to-record-your-windows-mac-linux-android-or-ios-screen/を見てほしいのですが、実際のカメラを使うことも歓迎します。YouTube (あなたの国でブロックされている場合は類似のサイト) に動画をアップロードし、URLをメモしましょう。「unlisted」 のフラグを付けても問題ありませんが、 「private」 のフラグは付けないようにしてください。

このフォームから提出します。

ステップ 2/3

プロジェクトを説明するREADME.mdテキストファイルを~/projectフォルダに作成します。このファイルには、プロジェクトのタイトル、ビデオのURL (上記のステップ1で作成) 、およびプロジェクトの説明を含めます。以下をテンプレートとして使用できます。

# YOUR PROJECT TITLE
#### Video Demo:  <URL HERE>
#### Description:
TODO

Markdownの構文に慣れていなければ、GitHubのBasic Writing and Formatting Syntaxが役に立つかもしれません。

README.mdファイルは最低でも複数の段落で構成され、プロジェクトの内容、プロジェクト用に作成した各ファイルの内容と機能、また特定の設計を採用するか否かを議論した場合はその理由を説明する必要があります。自分が誇りに思えるREADME.mdを書くのに十分な時間とエネルギーを割り当て、プロジェクトを完全に文書化してください。自信を持ちましょう!

~/projectディレクトリ (README.mdファイルとプロジェクトのコードが格納されているディレクトリ。これらも提出する必要があります) 内から、以下のsubmit50 コマンドを実行し、GitHubユーザー名とパスワードの入力を求められたらログインします。セキュリティのため、パスワードには実際の文字ではなくアスタリスクが表示されます。

submit50 cs50/problems/2021/x/project

提出に問題がありますか?

プロジェクトが大きすぎるためにエラーが発生した場合は、そのディレクトリ (README.mdを除く) の内容をすべてZIPで圧縮してから送信してください。それでもサイズが大きすぎる場合は、特定の設定ファイルを削除して送信サイズを100 MB以下にするか、 GitHubのWebインターフェイスを使用してgithub.com/me50/USERNAME (USERNAMEは自分のGitHubユーザー名) にアクセスし、フォルダを手動でドラッグ&ドロップして直接アップロードしてみてください。アップロード時には、cs50/problems/2021/x/projectブランチにアップロードしていることを確認してください。そうしないと、システムでチェックできません。

ステップ3/3

提出後数分したら、cs50.me/cs50xの成績表にアクセスしてください。あなたがコースを修了したかどうかをシステムがチェックできるのは、成績表をロードすることによってのみであり、他のすべての課題を修了した場合には、無料のCS50 Certificate (即時) と、edXからのVerified Certificate (30日以内) が発行されます。2022年1月1日までに無料証明書を申請してください (成績表の上部にあるリンクをクリックしてください) 。

以上です!プロジェクトは数分以内に評価されます。成績表に結果が表示されない場合は、README.mdファイルだけを使用して (上記のsubmit50コマンドを実行して) 再提出することをお勧めします。フォームを再送信する必要はありません。

CS50xをこれで終了します!