SPEAKER:私は[聞こえない]です。 と私はLeverettハウスでシニアだ。 私は、コンピュータサイエンスを勉強 と私はCS50用TFだ。 新入生として、私も持っていなかった ノートパソコンやスマートフォン。 私はプログラミングの経験がありませんでした。 CS50は、最も記憶に残るのコースだった それがあったので、私はハーバード大学で撮った 闘争、それは実際にあった 同時に楽しい闘争。 そして、私は永久的な、素晴らしいの多くを作った 友人、私は本当に多くのことを学んだ 該当するスキル。 私は私を聞かなかったことだけでうれしい 背景の欠如は、私のための言い訳である CS50を取らない。 私は[聞こえない]です。 私はLeverettシニアだ ハウス、2014年のクラス。 そして、私はCS50を取った。 DAVIDマラン:だからこれはCS50です。 これは週ゼロの終わりです。 我々は最後の時間を始めたところと、リコール あったこれらのランプ、とあった 私たちが行っているように人気 今日はいくつかの詳細を買った。 だから私は、これはなると思う 私たちの事今年 - デスクランプは、ステージに出てくる場合、 少なくとも我々が実行するまで。 しかし、我々は紹介し、これらのリコールを使用 データの表現の基本。 我々は表現を開始する方法が必要 コンピュータの内部情報。 そして、それを行うための最も簡単な方法はあった 1成分と、電気。 そして、あなたが使用して実行できる最も簡単な 電気はそれをオフにそれをオンにしています。 電子が流れるかどうかを聞かせて。 そして、それらの二つの基本的な状態は、オフを使用して とで、または偽と真、またはゼロと 一、我々は構築できることがわかり始めました アップ、この場合には、光で 球根、以上の数字より ただゼロと1。 我々は、7と高く数え 例えば、最後の時間。 しかし、我々がしなければならないすべては投げ続けるさ その時点でより多くの電球 問題と、実際に、我々は表すことができます 任意の数のことを我々 おそらくお勧めします。 さて、私たちは上を素早く移行 ボランティアのこのバイトに水曜日。 8ビットは、我々は一般的にバイトと呼んでいます ので、ここで我々は8人のボランティアがありました 総称していた水曜日に 8ビットを表す。 そして、彼らの手が行ったとき まで、彼らは1でした。 そして、彼らの手があったとき ダウン、ゼロがあった。 そして、私たちはこれらの人々を持っていた なぜステージに出てくる? 我々は、で行うことができているのか このビットのシーケンス? アルファベットを作成する。 私たちは、その上に構築することができました 前のレッスンでは、実際に学び、 より面白くするために開始 少なくともさらに情報 私たち人間にはおなじみ。 そして、これは繰り返しになるだろう 50全体のテーマだけでなく、コンピュータ より一般的には科学のこのアイデア の終わりに重ね、 その日、あなたが本当に開始された場合 コンピュータと基礎、はい、 それは0と1です。 そして、それはその下に ただ電気。 しかし、我々は非常に迅速にそれらを取るために開始 付与するための低レベルの詳細 と過去の上に層に開始が働い 我々は、最終的に、で行って 学期の終わりと、本当に、 より一般的にはコンピュータ科学者として そしてプログラマは、実際にいくつかを行うことができます 作品を活用して強力なもの 私たち自身にも行われていること 他人の肩の上に立っている。 今、私たちはすぐに水曜日に移行 ただする必要があるから 望むに情報を表す それで何かを行うには。 そこで、アルゴリズムを何として定義したのですか? 一連の命令。 だから、一連の命令です そのするステップ数、ヒト、または コンピュータ、より典型的には、だろ ために、他の後にいずれかを実行する いくつかの目標を達成するために。 そして我々は、いくつかの目標を最後に時間を過ごしました の一つは、カウントすることであった 部屋の中で人々。 と別のそのような例を見つけることだった 電話帳でマイク·スミス。 だから、私が電話を引き裂いたことを思い出すかもしれません この終わりに向かって半分の本まで マイク·スミスを見つける。 そのビジュアルの目的であった 私たちがいたことを、もう一度、実証 文字通り、この問題を引き裂く 半分、半分に、半分にし、非常に 迅速様1,000ページから行く ただ1つのページへ。 これを逃したあなたの人々 水曜日は、私たちは再生するだろうと思っていた あなたが逃したもののいくつかの映像。 のが見てみましょう。 [ビデオの再生] - そこに私達は行く。 1500ページ、ニースきれいなライン、 合法的な涙。 [ENDビデオ再生] DAVIDマラン:だから水曜日だった。 私たちは今、水曜日に移行、しかし、 アルゴリズムを表現したいと 一部やや標準的な方法ではなく、単に 口頭でそれらを記述するが、 書面で、または上のそれらを表現しようとしている 私たちができるように、コンピュータの画面 改良し始め、および変更 これらの、そして、最終的には、実際に どれだけ正しい分析 またはそれらがどのように速かった。 だから我々はこの概念を導入しました 擬似コードの、その、で 普通の言葉、何ですか? 言葉、OK。 のは、それよりも少し深く行こう。 、確かに、英語をされていますが、 何が終わりに向かって? 作成したりすると言葉 アルゴリズムを表します。 だから知らない一つの言語はありません 世界で擬似コードとして。 それは英語で、あなただけだ、または あなたの話し言葉が何であれ、使用 伝えるためにぞんざい記法の一種 アイデアは非常に簡潔に。 しかし、我々は確かに、それが表示されます 英語の擬似コード、それが判明 ほとんどのプログラミング言語自身 英語自体の派生であり、 我々はいくつかの標準があることがわかります 擬似コードを表現する方法や また、プログラミングコード。 あなたも、最も簡単に見始めるように 例今日は、これらを実現する 同じパターンは来週再発する。 だから擬似コードは、いくつかのようなものだった 似た言語の プログラミング言語。 そして、我々は視覚的に見た最初の例では、 減額は、この一つであった。 それだけで3段階のプログラムだった の目的は、数を数えることであった ための寮の部屋の人々の 水曜日にそのビデオ。 しかし、いくつかの興味深い側面があった この最も単純なプログラム。 そして、これは定期的なテーマになります。 だから、慣れていないもののために これ、1、我々は変数を導入しました。 そして、おそらくこの部屋に誰もがある の変数に精通 代数のコンテキスト。 しかし、ここではプログラミングで、変数 、1アール、することができます 私たちが欲しいものを呼んだ。 私たちは、カウンタとしてn個を使用してきた。 しかし、我々は、ワードカウンタを使用するか、または可能性が あなたが表示されますように、ほとんどすべてのフレーズその あなたは、それは限りあるかもしれません わかりやすいが、それは本当にだけだ 貯蔵容器。 それは、いくつかの数のメモリの塊だ ビットであり、それは、コンピュータによって異なるが、どのように 多くのビットがそれがある その変数を構成する。 しかし、我々はその中に値を置くことができます。 これまで、我々は唯一の数字を入れてきました。 しかし、我々は実際の言葉を置くことができます。 私たちは、段落を置くことができます。 我々は、画像を置くことができます - 何でも、本当に、我々が表現できる 0と1は、私たちは、に置くことができます この高いレベルの概念 変数の。 だから、かなりまっすぐ進むそこ。 そして、それはライン一つだ。 しかし、我々は非常に迅速に移動したから 実際に行うには、行1 その変数を使用して何か。 とライン3で、我々はNを我々に更新 Nをインクリメントそして我々はこれを書くことができる 任意の数の方法。 しかし、おそらく最も明白です ただ、言う設定Nに等しくする どんなNがプラス1です。 だから、それは私たちのインクリメントだった。 一方、ループがあった。 、この1つは、あまりにも、おそらく かなり直感的。 ループは単にプログラムで何かある 何度も何度も起きている、いくつかの サイクルの一種。 そしてここでは、このキーフレーズは、それぞれについて、ある 最もを通して実際には非常に一般的な を含むプログラミング言語、 ものは、私たちは途中で表示されます。 いつでもあなたはそれのための言葉を参照してください。 一般的にそのアイデアを伝える ループ、循環的な何か、 起こるとしている。 しかし、それは一つ注目に値します 他の構文の詳細。 そこにある三行目という事実 実際にヒットしたことでインデント スペースバーを数回は意図的です。 人間の規則では、そのようなことであるため、 あなたは再び何かをやっているときと 再び、ループ内で、2行目で始まったように、 あなたには属して何をインデント そのループにちょうどそれを明確にする それは、例えば、3つのラインではないです ライン4または5、があった場合 であるために線や5、 そのループの一部。 この単純なインデントはそう その基本的な考え方を伝える。 だから私たちは、このアルゴリズムを適用 今、いくつかの例に。 そして、この、あまりにも、簡単な例 現実の世界である。 しかし、それは代表になるだろう あなたのテストについては行くだろうか ますます複雑なプログラムを所有している。 あなたは、いくつかのシナリオ、いくつか試してみる 代表入力、あなたかどうかを確認 希望する出力を得る。 したがって、この例では、2つの人々を持っていた 寮の部屋に座っている。 左側には、同じ擬似コードです。 そして、これは非常にのスクリーンショットです この出願の最後のステップ これらの入力のアルゴリズム、どこそこ 、部屋に二人いたと 我々はライン1をステップとして、リコール 二、三、二 と3およびdone - そのアルゴリズムの終わりまでに、我々は持っていた 確かに二つの仲間にカウント 部屋にいます。 それでは、私たちは別の例を試してみました。 そして、私たちは何があるかどうかと述べた 部屋の中でゼロの人? このコードは依然として正しいです? そして確かに、それはあった。 それはちょうどように、2行目が起こる そして、このようにして、ライン三つ以上 実行するつもりはありません。 彼らはすべてで発生するつもりはない それらは、次の場合だけ適用されないだから 部屋にゼロの人々があり。 ではなく、大したこと。 ゼロライン1に初期化N、そう にもかかわらず、この1行だけ プログラムは、実際に有用である終わる、 それはまだのように、正しい答えが得られます オレンジ色で示され 下部にゼロ。 しかし、その後、私たちは判断しました 愚かなアルゴリズムの一種。 それはかなり遅かった。 確かに、私は、2つ、4つを行うことができます 6、8、10、時 部屋の中で人を数える。 だから我々は、アルゴリズムを微調整 擬似コードは、言っても、今では2行目で、 部屋の中で人々のペアごとに、 ライン3で、に進み、インクリメント 各反復の2つのことでした。 だからためにここで働いたであろう 部屋の中で人のこのペア。 しかし、その後、あなたがについて考え始める場合 この、それはに時間はかかりません 実現する、これは数分待つ 破るに行く、それが壊れる どんな単純なケースでは? 3部屋にいる人や、があったら より一般的に、あるとき の人々の数が奇数 1を含め部屋。 我々はここにいるその人を逃すでしょう そのようなペアはありません。 だから我々はすぐに代わりによって対処 追加の何を導入 プログラミングコンストラクト 擬似コードに。 条件だから、我々はと呼ばれる それ、またはブランチ。 それは、視覚的に伝えることを意図している ブランチのアイデア、道路の分岐点 いずれかこれを行うことができますどこに または、多分、何か他のもの。 そして実際、我々は、この問題を解決する で、実際には、と言って、4行目を追加 最後の最後、一人が残っている場合、 その後、先に行くと、彼らは特別なカウント。 だから、そう、特別な場合のそれらを並べ替える 今、我々が扱うことができるように、話すこと 人々の数が偶数の両方 と人々の奇数。 さて、任意の数の方法があります 我々はこれを表明している可能性があります。 と率直に言って、私ももっとあったかもしれない それは私の選択に来たときにうるさいNIT 擬似コードのための英語。 のしかし、少なくとも精神 アイデアが搬送される。 あなたは友人にこのコードを渡した場合 誰がCSにない、または取られませんでした CS、オッズは、彼らが、見つけ出すことができている 部屋の中で3人は、どのように与えられた 基づいて、それらの人々を数える これらの命令で。 そして、それは我々が達成したいすべての本当にだ 擬似コードで、何とか 我々が行っている方法の標準化 我々はできるように表現するアイデア より複雑やって始める まだ事。 だから、今日、それを私たちをリードし、 実際のコードに。 私たちは、いえ、今日プログラムを開始 フレンドリーな環境である。 非常に迅速にし、我々への遷移 もっと難解な構文が、一その あなたは基本的に同じですがわかります アイデアがで明らかに表示されます この他の言語今日。 それは見ているだけで起こっている 少し異なる。 だからではなく、ちょうどこのコードを呼び出すのではなく、私は私 もう少し正確になるだろう と書くときに、今後、言う プログラムは、ソースコードを書いている。 それはのような擬似コードのようなものだ。 しかし、我々は、それが緩んでの並べ替えではありませんがわかります それは言葉を選ぶことになると あなたが使用している。 言語でプログラミングするとき、あなたが持っている 単語、フレーズを使用するように 構文、その他の人々 表現することを決定した その特定の言語。 だからpseudocodesはあなた次第です。 のような実際のプログラミング言語 Cは、我々は最終的に表示されますように、である 他の人々によって標準化された。 だから私たちは書くことについてどのように行くのですか いくつかのソースコード? さて、私は行くつもりです 先にこれを行う。 私が先に行くつもりだと ここでウィンドウを開く。 これ来週に詳しい。 しかし、これはと呼ばれる装置です。 CS50アプライアンス。 私は上のソフトウェアの一部を実行している Macが、あなたは同じことを行うことができますが 提供しているWindowsコンピュータ上で 私に別のを実行しているような錯覚 完全に右のオペレーティングシステム ここに私のMac上のウィンドウに表示されます。 そうしないので、私はそれをフル上映しました 実際に今のMac OSを参照してください。 これは、オペレーティングシステムである Linuxと呼ばれる。 それは非常に人気です。 それは非常に高速です。 それはそれは非常に作られた、非常に自由だ 特にで、説得力のある 商業界。 の終わりに向かってその上で、より 我々はかなりのLinuxを使用学期 ウェブプログラミングとホスティングのための 実際のWebサイトおよびプロジェクト。 だから今、ちょうどこれがデスクトップであることを知っている それはぼんやり見えることを意味している WindowsとMac OSにはおなじみ。 それはちょうど、いくつかの異なる名前を持っている 事のためとアイコン。 しかし、これは、いわゆるCS50ある アプライアンス、仮想マシン、 君たちは、来週になる開始 上のウィンドウの内部を実行 自分のMacまたはPC。 今日のために、私は開放するつもりです プログラムの最も簡単。 それは、geditのと呼ばれています。 そして、これはただのグラフィカルエディタです。 これは、Microsoftのように一種のだ 言葉が、シンプル。 それはのようなテキストのようなものだ 編集またはメモ帳。 それだけで非常に単純なプログラムです その画面上の単語を書くこと。 それはちょうどので、私が保存した場合ことを何が起こるか このプログラムは、私が作成したファイル ウのように、代わりに特殊な拡張子に 。DOC、または。xlsファイル、または任意の あなたが精通している、私は実際にすることができます でも、この単純なを使用してプログラムを作成する テキストエディタ。 だから私はそれを行うことができます。 私が先に行くと、これを保存してみましょう hello.cのように最初のファイル。 そして再び、このユーザーインターフェイスは意志 すぐにあなたに慣れる。 しかし、今のところ、私は入力している ファイル名である。 私はジョンにそれを保存するつもり ハーバードホームディレクトリ。 そして今、私は示して、このタブを持っている 私は実際に編集しています ファイルhello.cを呼んだ。 まだあまりにも面白いので、何もありません。 そして今、それがために起こっている かなり不可解な取得。 私はちょうど、ズームインするつもり ので、より多くの目に見えるのです。 そして私は、入力を開始するつもりだ stdio.hに、int型のメイン、無効、オープン中括弧 ブレース1つ、2つ、3つ、4つのスペース 印刷用のインデント、印刷F、 フォーマットされた何か、引用引用終わり、 近くには "hello、world"のバックスラッシュ、nは、 引用、閉じ括弧、セミコロン、 、バックスペース、バックスペース、バックスペースを入力してください バックスペース、中括弧が閉じ - 私がプログラムした。 大丈夫、これが超簡単になるように プログラム、本当に、そのプログラム 誰とプログラミングをオフに開始されます。 そして、それがないすべて、すべてその複雑さのために、 にプリントアウトされます 画面には、何を思う? こんにちは、世界。 しかし、それだけで十分ではありません プログラムを書き込むことができます。 だから、これはコードです。 これは、ソースコードである Cと呼ばれる言語。 これは、現在保存されている ファイルhello.cを呼んだ。 今一番下を見て ここで画面の。 で、再び、これについての詳細 来て数週間。 しかし、これは我々が呼ぶだろうものです ターミナルウィンドウ。 それが点滅し、黒だ と白のプロンプトが表示されます。 それは、古い学校のインタフェースの一種だ 一般的にはないコンピュータ マウスまたは他を使用 グラフィカルな要素。 それはちょうどあなたのキーボードを使用しています。 そして、私はでコマンドを入力することができます この点滅プロンプト。 今日の目的のために、私はちょうどよ 次のように入力しようとして - こんにちは作る。 そして、そのプログラムは、作るだけです プログラムは、その現実の世界では、これらの 日、私たちは、ダブルクリックします。 しかし、今日のために、このインタフェースでは、我々はしている このプロンプトでその名前を入力するつもり。 こんにちは、文字通りに行くされていることを確認 私にこんにちはと呼ばれるプログラムを確認します。 そして、それは見てそうするように起こっている ファイルに対して、ただで デフォルトでは、hello.cを呼ばれます。 それは私がCプログラムにしたいと仮定することが起こっている どのように、このコンピュータの性質によって 構成されている。 だから私は先に行くと、Enterキーを押します。 私はいくつかの不可解な出力が表示されますが、 これもすべてになります ずっと前におなじみ。 これは、より多くのコンパイラは、実行するために起こった その上で瞬間に、Clangの呼ばれる。 しかし、今、私が持っているだけで、別の 点滅するプロンプトが表示されます。 そして、私は今、先に行くと、ドットを入力することができます 我々はよつまらない理由で、スラッシュ 来週に戻ってくる - こんにちは。 だから、この努力のすべてのこれまでだけに 、そのプログラムの最も簡単な書き込み 私は、Enterキーを押すとすぐに、それはありません。 だから私は私の最初のプログラムを書いた。 だから私は意図的に楽しみを突っついています この非常に単純なプログラムで いくつかの理由のために。 一つは、それが興奮するのは難しい 場合、クラスを取って、約 これが最後のゲームである。 しかし、それ以上に、そこ ここまで気晴らしがたくさん。 あなたのために、プログラムに学ぶ初めて あなたのそれらのより少なく快適で、 でも私は、戻って一日で、ときに私の最初 このような何かを見た - あなたが優しいことができます 図大丈夫、この プリントのHello Worldです。 しかしそんなに気晴らしはあり。 そんなに構文は、画面上にあります それは非常に邪魔になること 、そうでなければ単純な、シンプルなアイデア。 だから我々は、今日やろうとしている私たちがしているである Cを脇に置くと来るつもり 背面月曜日にと。 そして、私たちは、グラフィカルに使用するつもりだ スクラッチと呼ばれるプログラミング言語。 これは、プログラミング言語であるI 水曜日に触れたように、それは起こっている 私たちはものの同じ種類を行うことができるようにする しかし、今日のために、目をつぶる 中括弧、丸括弧、へ セミコロン、およびこれらすべての愚かな 邪魔に気晴らしで いくつかの基本的な、かなりのこの最初の日、 面白いアイデア。 だから終わりに向かって、私は行くつもりです ここに上で、私のデスクトップにバックアップし、 それに代わるものをご紹介 見に行くされているプログラム、 少し何かがこれを点灯。 それは我々がそれを実装しようとしている方法です 同じプログラム今日 - 2パズル 連動して、片 をクリックした、世界に言うだろう こんにちは、世界。 それでは、実際にそこに行くことができます。 だから私は先に行くと開くつもりです scratch.mit.eduとして知られているウェブサイト。 そして、これは私につなが​​る ここでは、このウェブサイト。 事前に、私はこれにログインしました ウェブサイトとその最初の問題 あなたを通って歩いていく これらのステップの一部。 私が先に行くとクリックするつもりだ ここに私のスクラッチフォルダに。 そして、これは私を見るために起こっている 私がしたことをいくつかのプロジェクト 実際に事前に作成しました。 そしてそれは結局このグラフィカルその プログラミング言語は、起こっているだけでなく、 ドラッグすることによって、私たちのプログラムをできるようにし、 あなたは、これらのパズルのピースを落とす でも、特別なソフトウェアを必要としません。 それがすべてのようにブラウザ内に埋め込まれている あなたがこれを行うことができ、理論的には、上の あなたのいくつかのように今すぐあなたのコンピュータ、 よくさえ必要とせずに、かもしれない CS50アプライアンスのようなソフトウェア、 これは、来週来る。 だから私は右上に上がるつもりです ここで、[作成]をクリックします。 と瞬間に、私は空白を取得するつもりだ 私が始めることができ、それを介して画面 このグラフィカルでのプログラミング プログラミング環境。 しかし、この時間は、それは、はるかになるだろう はるかに簡単、実際にそうする。 だから一瞬で、時のWi-Fi 我々は今、この画面を持って、協力しています。 、迅速な口頭ツアーだから、私はあえて言う 確かにあなたが飛び込むとき 最初の問題のセットには、よ 非常にすべてこれを見つける アクセス可能な、かなり直感的。 しかしみましょう精神絵を描く ちょっと。 だから、このプロンプトことわざ下保存 変更は、あなたは、スクラッチを参照しようとしています。 これはスプライトです。 それは文字だ。 そして彼は、私たちがステージを呼ぶだろうものに住んでいる 上のこの大きな白い長方形 彼は左、下、上に移動することができる、 右、とやる、本当に、 アクションの他のタイプ。 一方、このユーザの真ん中で インターフェースは、我々は全体の束を持っている パズルのピース。 そして、あなたは彼らのようなものを言うことがわかります 、15度回転し、10ステップを移動 特定の方向のポイント。 しかしのカテゴリがあり ここにもブロックがアップする。 私はルックスに行くのであれば、その表示されます 他のパズルのピースがあるだ 明らかにこのCITを教えてくれます 表示するには、考えること、挨拶 彼自身、自分自身を非表示にします。 私は音に下る場合、それは判明 ニャーのようなサウンドを再生する方法は、あり ドラムをプレイするために、すべてのサウンドを停止します。 だから、長い話は短く、全体がそこ あなたを許すパズルのピースの束 この猫、または、任意の数を指示する 他の文字は、何をすべきか。 しかし、これはすべてのことを実現するために プログラミングを開始する必要があります。 そして、この大きな白いボックス、または灰色のボックス、上 右側には、これはどこにあるの 私は実際にドラッグして、するつもりだ これらのパズルのピースをドロップ。 それは私の空白のテキストです ウィンドウに相当。 だから私は先に行くとクリックするつもりだ 途中で制御。 というか、私は始めましょう イベントの下まで。 イベントのベンチの下で、あなたは気づくでしょう 意図的であるいくつかのこと このように、上部に湾曲 彼らはおそらくに連動しません パズルのピースのトップ。 そして、彼らはスタートをデマークので、それはだ プログラムの開始 スクリプト、いわば。 私が先に行くと、ドラッグするのであれば、ときに緑色 フラグはこっちをクリックしてから、I この猫が言いたい 最初は何か。 だから私は、下に行くつもりです パネルが見えます。 そして、私は先に行くとつかむつもりだ 、ブロック、およびドラッグアンドドロップ挨拶 となるように、それが自動的に手放す そこに連動。 そして、私ができる気づく テキストをクリックしてください。 と私はそれがより多くのことをオーバーライドすることができます 世界こんにちは、言う、のような具体的な。 そして今、我々は、私が主張しているプログラムがある はるかと同等である 難解なプログラムは私が実装 C言語で一瞬前。 私は、左手側に今以上行く場合、 大きな一時停止の標識があると気付く と大きな緑の旗。 私はわかりやすくするためにズームインすることができます。 と私は今、この緑の旗をクリックしたとき あなたはおそらく何をこの最初の推測することができます プログラムは今やろうとしています。 だからそこに、あまりにも、私たちはプログラミングをしているが、 我々は実際に泥沼取得していない これらの構文の一部で、 分の詳細。 しかし、のは、何か試してみましょう もう少し面白い。 私はここに私のスクラッチフォルダに行こう。 そして実際に、私はとても私が開くましょう だけのためにここに別のプログラム 瞬間、このウィンドウを最大化し、ファイルを開く、 と私は、今日のに行くつもりです ソースディレクトリ。 いつものように、あなたが見つける、今日と 以降、今日のすべての例 の内側にアクセスすることができます もちろんのウェブサイト。 そして、私はここで先に行くと、迎えに行くよ 少し何か別のアップ。 はこちらこの1、 私はボランティアを必要とします。 誰が今日のデスクランプをご希望? [OK]を、どのように誰かについて少し - あなたは端にありますか? ダウンさあ。 今、あなたが参加したい、または ただデスクランプで始まると言う? ヴァネッサ:[聞こえない]。 DAVIDマラン:OK。 優秀な、名前は何ですか? ヴァネッサ? デビッド。 よろしくね。 だからアップに来て、ヴァネッサのは行く 私の制御を取るために ちょっとキーボード。 そして、私はちょうど時間のために、ここでやった 日本酒、私が実現してきたように Wi-Fiは、スクラッチ、少し遅かった 私たちがしていることをプログラミング環境 使用して、またダウンロードすることができ ローカルコンピュータ上で実行されます。 だから私は、講義の前に何をしたか 起こるケースは、私がダウンロードされます 我々は一緒にプレイしようとしているすべてのファイル 彼らはもう少しを実行できるように すぐに右ここに私のラップトップ上。 だから、なぜ今私が見ているだ マック固有のインタフェース。 だから私は先に行くつもりです 、この1つを開きます。 私は今、先に行くつもりだと フルスクリーンのウィンドウ。 そして、あなたが見るように、我々は、非常に迅速にすることができます この学生が行ったように、1 あなたの前任者は、こんにちは世界から行く はるかに説得力のある多くの アプリケーション。 だからここに命令がある。 ああ、我々は一つの他のものを持っている。 私は、以来、それは楽しいだろうと思った 通常、私たちは撮影されます カメラはこの方法。 私は、あれば、それは、ヴァネッサ楽しいだろうと思った 我々は、世界を見ることができました あなたの目を通して。 そこでここでは、いくつかのGoogleのグラスを持っている。 [びっくりあえぎ] DAVIDマラン:私達はただ与えることになる 離れてデスクランプ今日。 [笑い] だから私はこのキューアップしてみましょう。 すべての権利なので、これをタッチします。 OK、ガラス、映像を記録します。 すべての権利は​​、ヴァネッサ? さて、余談として、それが何を持っていない あなたが見れば、スクラッチを行う わずかに右に、次のように表示されます リテラルガラス、あなたがすべき 少し長方形のウィンドウが表示されます。 すべてのあなたのクラスメートが表示されるはずです 今撮影されて? はい。 ヴァネッサ:はい。 DAVIDマラン:OK。 だから大丈夫です。 私たちは、後でこの映像をリリースする予定。 ここでは、あなたの注意を向ける ここで画面に。 そして、何あなたの前任者が行ったことはある 画面上にいくつかの命令を置く ただペイントプログラムを使用します。 だから、瞬間に、するつもりだ 開始するには、スペースバーを押します。 そして、いくつかのパズルのピースは、しようとしている 画面を上に移動を開始する。 そして、あなたはただ、矢印キーをヒットしたい 合わせて、実際のDDRのように 物事が並んで これらの矢印が付いた。 ヴァネッサ:OK。 DAVIDマラン:あなたは前にこれを再生してきました。 ヴァネッサ:うん。 DAVIDマラン:すべての権利、ヴァネッサ、 先に行くとそれを奪う。 [MUSIC - ケインウェスト、 "ストロンガー"] [拍手] DAVIDマラン:だから今してみましょう それから一歩を踏み出す。 だから明らかに、それは最後の試合だ。 エンドゲームはHello Worldのではありません。 しかし、あなたは必ずしも行う必要はありません とてもインタラクティブなもの。 また、アニメーションを行うことができます。 あなたのだから例えば、もう一つ 後継者は、ここでこのプログラムを作った 以上の話を伝えている それは、ゲームを実装しません。 だから私は先に行くと、ここで開放させて 私たちの同じソースディレクトリ内のプログラム 今日から。 このいずれかの呼び出し、およびのは始めましょう クッキーラブストーリー、と。 そして、これも学術作るがないように この1つを見ながら、と思う これらのシンプルなのを自分た 私たちが話したプログラミングの概念 これまで約 - 変数、ループ、条件、 あなたの前任者はおそらくちょうど使用しました の一部を実装する 視覚。 あなたは、ここを参照してください。 だから私はあなたにクッキーラブストーリーを与える。 [MUSIC - GREEN DAY、 "HOLIDAY"] [CRASH] [MUSIC - カメ、 "ハッピートゥゲザー"] DAVIDマラン:すべての権利なので、そこに、 我々は、クッキーのラブストーリーを持っていた。 しかし、そこに - [拍手] DAVIDマラン:すべての権利、でもそこに、 それらの心から行ったように、考える 画面の下から上、 のビットは、実際にあった ランダム性が起こっている。 そして実際、私たちはその中であっても表示されます のような、環境の最も簡単な スクラッチ、Cのように、生成することができます 乱数、またはの錯覚 ゲームがあるように乱数 それはともかくより少し面白い あなたは絶対に持っていた場合である ハードコーディングされたすべてのものを。 そこにあなたが見ている動きで、 応答性のいくつかの種類があります。 とすぐにジンジャーブレッド男が触れるように ジンジャーブレッドの女性、彼​​女 離れるように思われる。 そして、確かに、あなたはで、実装することができます ほとんどのプログラミング言語、概念 イベント、それによって片手触れた場合の 一部をトリガすることができます一方、 あなたのソースコードへの 実際に実行してください。 このようなために聞くことができます 画面上のもの。 そうで、その後、のはクイックツアーをみましょう 我々が使用できるビルディング·ブロックの一部 これらの目標のいくつかを達成する。 そこでここでは、我々が今後よ何 ステートメントを呼び出す。 文は、紫であることを起こる スクラッチ、このように少し何か、 それは任意です。 ステートメントは、単にパズルのピースであるか より一般的には、命令、その コンピュータが行うように指示 何か、声明。 だからここに簡単なサンプルです。 世界の挨拶。 もう一つは、1秒待っている可能性があります。 サポートされていますので、このパズルのピース、 スクラッチでは、我々はあなたを聞かせてよ 文字は、いくつかのために一時停止 秒数。 これは、あまりにも、ただ文です。 ここで次の、我々は別の多くを持っている 興味のある方、音ニャーを果たし、 小さな矢印は、スクラッチのことを意味します これは、ドロップダウンメニューです。 だから、サウンドをインポートすることができます。 あなたは、音を記録し、その他を行うことができます スクラッチで楽しいこと。 そして、それは、あまりにも、しかし、最後に 日の、まさに文です。 しかし、今の続きをご紹介しましょう として知られている興味深い作品、 ブール式。 にちなんで名付けられた資本B、 ブールという男。 とブール式はただです パズルピースまたは、より一般的には、 情報の一部です trueまたはfalseのいずれか - 1または0、yesまたはno。 だから、ちょうどそれらの一つだ 2反対。 でだからそのようなブール式 スクラッチの世界は、このブルーのように見えます ピースをパズル。 そしてそれは、マウスを質問をしている ダウンして、そのいずれかになりますの もちろん、trueまたはfalse。 だからスクラッチでこのパズルのピースと、 さて、あなたはどうかを検出することができるでしょう マウスがある、実際には、ある場合パズル 人間の相互作用によって押さえ あなたのプログラム。 こちらは、もう少し抽象的だ しかし、これら二つの白い箱 数字だけのためのものです。 これがあるようなので、あなたは物事を行うことができます 他のより小さい数? そうだとすれば、スクラッチに動作します 一方向または他。 こちらは、もう少しグラフィカルです。 スプライト場合はのために、猫の場合、だ 例えば、実際に触れている マウスポインタ。 小さな矢印ヘッドが浮かんでいるのであれば 猫の上に、この パズルのピースは、trueと評価されます。 それはあなたと、その場合には、trueになります 私たちが説明するように、このブール式を使用し ブランチで、一瞬に表示、次のことができます どちらか、これを行うか、それを行うことができます 我々は条件を持っていた多くのようにその チェックすると、そこにもう一つの最後の人です 部屋の中で? もしそうであれば、1を追加します。 それ以外の場合は、さらに心配しないでください。 だからブール式にもすることができます 一緒に一緒に-EDまたはor-ED。 だから、ブール式を組み合わせることができます これとこれがために真でなければならないと言う 本当であるように全部。 そしてここでは、より現実世界の例です。 あなたは、コースを行うことCS50コースを使用したことがあれば 買い物、これらのチェックボックス そこここで、次回そのチェックボックスをオンにした場合 コー​​スには、それは、はい、と言うだろう 私だけのためにコースを示す Q値が4.5以上である。 あなたはそれを外し、いや、ない場合 そのことについて心配。 または同様に、右側に、ではないか 私が取ってるコースとの競合、 それは、trueまたはfalseのいずれかです。 それはちょうどブール式です。 あなたが使用したので、すべてのこの時間 チェックボックス付きのウェブサイトは、あなただけだ ブールと同等のものをトグル 表現のオンとオフ。 だから、どのような形では、これらを使用するのですか? まあ、スクラッチでは、我々はすぐに説明します その条件が存在すること このように見える。 そして、はるかのでそれが賢明のようなものだ 擬似コードのように、我々はインデント U字型のパズルのピースのようなもの、という意味 そのUの内側にその何です 実行するつもりはない、または、依存 それがどこにあるかで。 だからブール式であれば、その後 何の内部は実行されるでしょう。 一方、もし/ elseブロックがあります。 ですから、これを行く、分岐したい場合 方法またはそれは、スクラッチと私たちに与えます。 そして、この論理によって、今では、たとえその パズルのピースは明らかに小さすぎる その中何か他のものを押し込むため、 スクラッチパズルのピースは、彼らがしている ただ成長するだろう。 あなたが何かの上にドラッグアンドドロップすると、 それだけで何でも合うように成長する あなたがやろうとしているされています。 だから私たちは、これらのもののうちの2つを取ることができます その道路の三方フォークを作る あなたはどちらか、これを行うこと、または、そのまたは ただネストそれらによって、この他の事 そのようにした。 もちろん、あなたがしなければそれも ずっと、それは醜い取得を開始します。 しかし、その時点で、あなたが実際にしている おそらく非常によくプログラミングしない。 となるように、繰り返しになります テーマは、あまりにも、スタイルのこと。 ただ、どれだけ実際に行う あなたのコードをフォーマット? またはどれだけあなたのコードを設計するのですか? 将来的にはその上で、より多くの。 そして今、我々はループを持っている。 スクラッチでの素敵な永久ループがあります やる - これは、文字通りあることを意味 再びこの内のどのような、 そして再び、再び。 あなたが、より具体的にと言うことができます 次のものを10回行う。 また、変数を使用することができます。 あなたはその中に任意の名前を考え出すことができる 少しドロップダウンと言う、私を与える 変数nと呼ばれ、設定 それはいくつかの値に等しい。 そしてあなたは機能を持つことができます。 一瞬のものではなく、もっと。 私が私に戻ってみましょう インターフェイスを傷つける。 そして、私は先に、この時間を手放す。 と、のは先に行くと開放させ から例えば、言うてみましょう - それはもう少し興味深い。 実際に、私が先に行ってみよう、と 私はただそれを自分で作ってみましょう。 私はこの1つを開く必要はありません。 私は、新しいファイルへ行こう。 私はイベントに行くつもりです。 私は時緑の旗に行くつもりです クリックすると、私はサウンドに行くつもりです。 そして、私はこれをドラッグアンドドロップするつもりだ パズルのピースは、音ニャーを果たしている。 それは一緒にラッチします。 そして今、私は緑の旗をクリックした場合 - [MEOWのSOUND] DAVIDマラン:愛らしい。 [OK]を、ので、今のは少し何かをやらせる ちょうどそれを実証するより論理的 今のところ我々は、することができます。 私がアンラッチするつもりです その男から。 私がコントロールに移動するつもりです。 そして、私は条件をつかむつもりだ。 だから、何かあれば、。 だから、それはそれはそこにどのように見えるのです。 だから私は、ブール式が必要になります。 そして、私が先に行くと言わせて 私は子に行きましょう。 私は少し何かをするつもりです ただキックのためのMathyさん、。 私があれば、ここに行くと言うつもりです 何かが、何か他のものよりも小さい 先に行くと何かをする。 だから今、あなたは何、ランダムブロックを知っています。 だから私はこの上にカーソルを移動する場合、どのように気づく そこにスナップされ、ここでの事、。 だから今、告知、私がやって始めて すでにもっと論理的に何か 興味深い。 乱数1とIF 10未満であるのは、6つを言わせて。 本質的に、私は6を選択した場合 手段は、50%で次の手順を実行します。 確率。 これは、コインをひっくり返すようなものだ。 今、私は条件付きで何かを行うことができます。 そして、私は行くよ、何か 行うことは、サウンドを再生します。 だから今、私は、画面上でクリックしたとき フラグが、それはコインを投げるようなものだ。 [MEOWのSOUND] DAVIDマラン:それは頭だった またはそこにその他もろもろ。 もう一度やってみましょう。 [MEOWのSOUND] DAVIDマランは:再びヘッズ。 [MEOWのSOUND] DAVIDマランは:再びヘッズ。 ふう、OK。 テイルスその時間。 時間の50%はそう、我々はこれを行う場合 無限に長い、我々は50%の鳴き声を取得します および50%沈黙。 だからそこには、単に基本的な建物 私たちはそれを行うことができますブロック。 しかし、これは私が持っている退屈なの一種である そのボタンをクリックして維持する。 だからドラッグして投げてみましょう 離れてそれらのすべて。 あなたは、中央にそれらをドラッグした場合、 彼らはただ自分自身を削除します。 私がコントロールするように行こう。 私は永遠に行こう。 そして、この時、私はするつもりです minorly迷惑な何か。 [笑い] DAVIDマラン:そして、私は手放す 控えと制御を行います。 ちょうどので、1秒待って それはあまりにも格子ではありません。 [MEOWのSOUND] DAVIDマラン:自然ではないです。 OK。 [MEOWのSOUND] ニースと予告何、:DAVIDマラン 人のために、約スクラッチ、 事前のプログラミング経験を持って、あなた 開始および停止する必要はありません。 あなたがコンパイルする必要はありません。 あなたはそれを変更し、プログラム 動的に適応します。 だから、これはなっている 少し興味深い。 しかし、のは、さらに一歩それを取ることができます。 私が先に行くと、取得しましょう そのプログラムを取り除く。 [MEOWのSOUND] DAVIDマラン:それは何我々はよ スクラッチのバグを呼び出します。 彼は、その音を作り続けるべきではありません。 だから我々は、我々は停止するように彼を教えてあげましょう。 私は今、すべての権利、そう に行く - 私はMITに知ってもらおう。 我々は永遠にこっちに行くよ。 そして今、私が何かをしたい 何度も何度も。 私はコントロールに行くつもりです。 と見てみましょう、私はドラッグするつもりです 私の存在の条件であれば。 だから今のロジックに気づく。 緑の旗は、んクリックされると 永遠に何か、だけのことをやる 何かこの他の事が本当であれば。 私はしてみましょう、に行くつもりです センシング、言う。 そして、私は先に行くと選ぶつもりです 触れて、そこにドロップします。 それはブール式です。 そして今、このドロップで、気付く ダウンメニューがある いくつかの事前定義された値。 だから私は、あなたが触れている、と言うことができます 画面の端? それともあなたは、マウスポインタを触れている 画面上の矢印? だから私はそれをするつもりです。 そうだとすれば、私は行くつもりです 先と音ニャーを果たしている。 だから今、私は一種の持つ ゲームの始まり - 愛らしいゲーム。 [MEOWのSOUND] DAVIDマラン:OK、愛らしい、 バギーゲーム。 、のは言わせて、私は待ってみましょう そこに一秒。 今すぐクリックして、再びプレー 緑の旗。 [MEOWのSOUND] DAVIDマラン:だから今、それは 猫をかわいがるように。 [MEOWのSOUND] DAVIDマラン:今すべての権利は​​、この 私が事前に作ったの1。 非常に遅く、それは一種の取得 愚かな事をするのは簡単。 だから私はここに行くことができます。 猫たこと、言ってみましょう。 オープン今ましょうと、猫はいけません。 さて、我々はこの1つを再生する場合、 あなたがしている場合は、推測することができます 画面を見て - [MEOWのSOUND] DAVIDマラン:今、私は猫のペット場合 [LION'S ROAR] DAVIDマラン:だから実際にはしないでください その場合、猫をペット。 だから今我々だけの例を持っている 二方向に起こっている枝。 今私は先に行くと、う ここで別のものを開く。 われわれの情報源の中でも、この1、 その日のためのコードファイル。 だから私は私の元に戻ってみましょう ディレクトリに移動し、のは選択できる この男はここと見 異なるものです。 うわー、大丈夫なので、今ではなってきた 少し複雑。 そして、我々はこの男が何を見る前に、 プログラムから、推測してみましょう 右側た。 そして今スクラッチはっきり私たちはすることができます 複数、複数のスクリプトを持っている 1スプライトに関連付けられたプログラムで、 一つの文字、そして、明らかに、と 彼らは両方のロックステップで実行するつもりだ。 これらのプログラムの両方が開始されるため ときに緑の旗をクリックすると、これは で、より高度なトピックを示唆 あなたのいくつかは理解している可能性のある、 転位として知られている、または マルチスレッド。 結局、長い話短い、コンピュータ 今日は基本的に複数行うことができます 一度物事。 それとも彼らはそう一度一つのことを行うことができます あなたもいることに気づかないことが速い それは実際にものをやっている 時のもの。 しかし、今のところ、のは仮定の両方のこと これらのプログラムは、で実行しようとしている 同じ時間。 、予告、それらの両方が持っている 永遠ピースをパズル。 そこで、彼らは両方の稼働を維持するつもりだ 私は赤の一時停止の標識に到達するまで。 そこで、彼らは何をするつもりですか? 左側で、Iは明らかによ ミュートと呼ばれる変数を宣言する。 だから私はそれのような何かを呼び出していませんでした N.ように退屈私はこれ、それはミュートと呼ばれる 意味を伝えるための時間。 私はゼロに等しく、それを設定してください。 と偽、または考えるレッツ のは、そのようにはFalseを考えてみましょう。 さて、永遠に次の手順を実行します。 キーボードのスペースキーが押された場合、 その後ミュートが等しい場合はゼロ、 次に等しいものにミュートに変更します。 そうでなければ、ゼロにミュート設定。 だから論理的に、それが全体のにもかかわらず パズルのピースの束だ 私は、スペースバーをヒットしたときだけ、と言って、 私は、変数に何をすべき ミュートと呼ばれる? 、1から0に変更し ゼロまたは1。 それがすべてです。 だから、光スイッチを回すようなものだ オンまたはオフと思い出し、と 私はそれをやった変数。 一方、右側の内 普通の言葉、何の目的である 右側のスクリプト? 学生:アシカのサウンドを再生する。 DAVIDマラン:アシカの音を再生するには、 彼がミュートされていない場合は、別 その変数の性質。 だから我々は、状態を共有している、いわば、 これら二つ渡って情報共有 スクリプトので、ここで気づく、我々は 永遠に次の操作を実行。 ミュートは、それがミュートされないそうだとすれば、ゼロの場合 - ミュートがfalseの場合、次に遊ぶ このアシカサウンド。 とのために、こんにちは、こんにちは、こんにちは、あなた自身に考える 2秒の瞬間を待ってから、 もう一度確認してください。 だから我々は左にこっち今行けば、 この男がどこにあり、ヒット 緑の旗、 [SEA LIONのSOUND] DAVIDマラン:何をするかの時点で これは本当に迷惑なのですか? これはただ永遠に行きますので。 だから時々、無限ループ、 いわば、意図的である。 しかし、この場合には、できるだけI スペースバーをヒットし、彼は停止します。 今、プログラムが終了していません。 それはまだ、これらのループで実行している。 しかし、私は、もう一度スペースバーを取得する場合 - [SEA LIONのSOUND] DAVIDマラン:彼は選ぶために起こっている まで、彼が去ったところ。 だから私たちが何をするための一つの方法があります 何度も何度も何ですが、その 時間、条件付きでのみ。 まあ、我々がやって、この静脈にいる間 物事は何度も何度も、私を聞かせて ここで別のそのような例に入る。 この1我々は羊を数えると呼ぶことにします。 そして、この男が何をするかに気づく。 それは実際に多くのようなものだ 我々は上で遊ん擬似コード 彼はいくつかのカウンタを設定することにより水曜日、 それを考えるように、再びNで ゼロ、彼は永遠に次のことを行います。 彼は言ういずれかのカウンタの値 第二、次に2番目のを待ち、 つずつカウンターを変更します。 ただし、このコンテキストでは、その インクリメントし、それを意味しています。 だから、彼はそれに1を加算。 だから、これは文字通りです - それは我々が何を考えて非常にではありません 羊を数えるようにの。 それは、カウントをやって羊だ 永遠に、アップするゼロから。 だから我々は、同じようなことを行うことができます そこに、論理的に。 しかし、今はきれいにしてみましょう これらの事のいくつかはアップする。 私は今では簡単に先に行こう 私たちの猫はただに起こっている例 咳を開始します。 すべての権利なので、ここで我々は咳0を持っている - コンピュータ科学者は、開始 0からカウント。 したがって、この猫はただ起こっている 三回咳をする。 そしてここでは、私はそれを実装する方法を説明します。 緑のフラグをクリックすると、咳、 、待つ咳、待って、咳、待つ。 と私はドラッグすることによって、これをしなかった とパズルのピースを落とす。 それとも、スクラッチをいじくりに開始した場合、 あなたが実際にすることができます表示されます あなたが行うことができるように作品を複製 ドラッグせずに、より迅速に物事 と広告nauseumを落とす。 しかし、我々はここで最高のパス上にないよ。 私は彼を作るにはどうすればよいので、 4回目咳? まあ、私はここで下がる一種の可能性があります。 私はその後、複製ができ そこにこれを貼り付けます。 どのように私は彼が5回目の咳作るのですか? まあ、コピーして、再度貼り付けます。 か、もう一度ドロップをドラッグします。 と非常に迅速に、このプログラムが起動 本当に冗長、本当に得るために、 本当に長いですが、本当に面白くない。 しかし、これまでをきれいにする方法があります。 明白な方法は何ですか このクリーンアップするために? [OK]を、ので、実際には本当に行くことができる あなたは、スペースを打つアウトと、 バーには、彼は咳がある。 しかし、私はちょうど何かをしたい場合 繰り返し、我々は持っていないことを思い出す いくつかの制御構造。 私は、この外に移動しましょう 方法は、コントロール下に行く。 、私はただ繰り返しやってみましょう 、三回言う。 そして今、私はいくつかを盗もう これらのパズルのピースの。 私はここでこれをスナップしてみましょう。 私は完全にこれらの捨てましょう。 そして今、私はより良いを持っている 設計されたプログラム。 なぜですか? I回数を変更する場合 この猫の咳、すべて私がしなければならない 、一つの変数、または1つの値を変更しているか むしろ3から4へ、または 5、または6。 または私は、条件付きで何かを行うことができます でも、スペースで 私がしたい場合はバーがあります。 だから、これは一般的な原則です。 したら、コードをコピーして貼り付け開始 それはスクラッチで、または内であるかどうか C、あなたが何かをやっている 間違って、最も可能性が高い。 あるいは、少なくとも、一度は、いくつかを超えました コピーとの合理的な数字 ペーストは、おそらくだ 何か間違ったことをやって。 しかし、あなたは何を知っていますか? 私はこのように本当にない。 これは、クリーンな設計ではありません。 私はと呼ばれるパズルのピースがあった願い その後、私はしないので咳 、この自分自身を実装する必要があります 昔ながらの方法による と言うと、待ってた - 彼らは何であったかば 咳パズルのピース。 まあ、私は実際にあることを行うことができます。 私はより多くのブロックの下に行ってみよう、クリック ブロックを作成し、今私はこれを取得 ここでウィンドウ。 私はこの事の咳を呼ぶつもりです。 私が先に行くし、[OK]をクリックするつもりです。 そして今予告、私は新しい出発を得る 上に湾曲している部分。 そして、私はこれをやろうとしているもの、私はよ ただ、これらのブロックを盗むつもり。 私はここでそれらを置くつもりです。 そして今、これらの3つの作品で、私がしました 私がコールするつもり何実装 関数、またはプロシージャ、または一部の あなたは、メソッドとしてそれを知っているかもしれません。 単語間のわずかな違い。 しかし、今のところ、ただみましょう この関数を呼び出します。 これは単に新しいパズルのピースです。 今ではこのように実装されています。 しかし、スクラッチは私たちに与えていることに気づく その全体の物理的な表現 こっちブロック。 だから今、私はちょうど、こっちにこれをドラッグすることができます 三回繰り返す、と言うと、 私が演奏するときに何が、今では起こるだろう このスクリプトは、1つのプログラムである 同時に実行されています。 つだけ時があります 緑の旗はクリックしました。 しかし、咳と呼ばれる紫のブロックです 効果的にすべての、スクラッチを伝える あなたが実際に、そのパズルのピースを参照してください時間 これらの手順を実行してそのI 手動で実装するために起こる。 だからきちんとしたのようなものだ。 しかし、今、私が決定したと仮定し、私はしないでください ただ咳をするために、この猫が欲しい。 私は彼ができるようにしたい 同様にくしゃみをする。 さて、どのように我々は、約行くことができる くしゃみを実装? さて、私はかなりの可能性 同じことを行う。 私は別のブロックを作ることができます。 私はこのくしゃみを呼び出すことができ、[OK]をクリックします。 その後、こちらに私が実際にできた 、私はこれを複製させました - そしてあなたのように感じるべき場所あり あなたはおそらくで何かをやっていない 最良の方法。 私は、何かのように言うことができる ハクション、1秒間。 1秒待ちます。 今、私はくしゃみと呼ばれる新しいブロックを持っている。 そして実際、そこにはある。 しかし、これは、あまりにも、感じるように開始する必要があります - そうでないかもしれない最初のクラスの週が、 第二で - ちょうど 少し冗長。 明らかに、いくつかの冗長性は、ここにあり。 だから私たちは、その代わりに、私が提案してみましょう この定義は次のように改良します。 私は私のファイルメニューまで行こう。 私はこのバージョンを保存するつもりはない。 私は、のいずれかに行くつもりです ここに私の既成のファイル。 そして、私は先に行くつもりです と咳2を開く。 おっと、それは咳2であった。 私が先に行くと咳3を開いてみましょう、 これは、このソースディレクトリです。 3咳と気づく - ああ、私は言われ 間違った順序で話。 私は、この物語から回復しましょう​​。 私が言うことを意味し物語 咳4で終わる - そこにそれがある。 私は、その代わりに、定義それでは場合 と呼ばれるより大きなパズルのピース 単語をn回言う、定義します。 くしゃみは、ただ、明らかにされ スクラッチで、ハクション。 だから私たちは、言葉としてそれを表現 それはだという理由だけで プログラムの制約。 と咳は、[咳]が、咳です。 C-O-U-G-H。だからちょうど2つだ 別の言葉では、本質的には、やって 同じこと。 だから私は、実際に作ることができます このような新しいブロック。 私は前にこのメニューオプションを使用しませんでした。 しかし、あなたは、ブロックを作成]をクリックしたとき あなたには、いくつかのオプションを選択できます。 そして、あなたが実際にこのブロックと言うことができます そうでなければ、いくつかの入力を取り そう、引数、またはパラメータとして知られて あなたは、の動作を変更することができます あなたのブロック。 だから私は、一瞬前にいた何をしたか 私は、このブロックが言う呼ば。 そして私はそれが取る、と述べた 文字列入力。 そして今、デフォルトでは、気付く それは、文字列1と言います。 文字列は、単に言葉であるか、または フレーズ、私たちの目的のために。 しかし、私はいくつかを置くつもりです だけのようにそこにプレースホルダテキスト、 ウェブサイトには、ユーザー名を参照するか、 ときにパスワードを入力し、それが消える あなたが入力を開始。 それは、それがすべてです。 そして今、私はするつもりです 番号入力を追加します。 そして私は、このnと呼ぶつもりです - それはかなり任意です。 そして、ただ作るだけでラベル、 このブロックもう少し自己 説明 - 回、それは私がちょうどやったことだ。 そして最終的な結果は、私が得ることです このように見えるブロック。 そして今、私が使用しているに気づく リピートブロック。 むしろ私は、ハードコーディング3、より 私はそこにn個をドラッグ&ドロップ 機能をパラメータ化することができます。 私は、この関数は何かを作ることができます をもとに異なる​​回数 その値。 そして、これは私がやったことです、と言う、気づく 私は単語をドラッグすると、ここで、私が言うことはできない ハードコーディングという言葉が、どのような 1秒で渡されます。 一方で、どのように私は再実装しない 咳? 私の代わりとして咳を定義 咳をn回言って。 だから要するに、私はこれを通過するんだ すぐに、しかし、基本的な考え方は、すぐにです あなたのプログラムの中で見始めるように 、ちょっと待っている、私がやった 前はかなりこのような何か、 私はいくつかの共通のを考慮することができます 機能は? 私がやっている分解することができ いくつかの基本的な考え方に? それは我々がここでやっていることだ。 そして私は、視覚的に、これらの事を積み上げてきた 互いの上に それは、そのアイデアの証だから 、ASCIIに行く、バイナリで始まる グラフィカルなプログラムを作って、ソートの 上に重ね、ますます複雑なアイデア 互いの上。 ここで同じ考え。 私が実装し、スクラッチから始まった 咳、その後実現咳がある 本当にただ何かを言って。 だから私は、代わりに実装してみましょう 何かを言った概念。 そしてその上、私が実装することができます ハクション、または咳? そして我々はより多くのそのような行うことができます まだ変種。 したがって、この基本原理から、 我々は何を始めることができます ますます複雑なプログラム。 私は、この1つを開いてみましょう。 私たちは、実際に複数のスプライトを持つことができます 一度に画面上で対話する。 私は自分のソースディレクトリに移動した場合 ことを思い出して、スレッドと呼ばれる1つをつかむ スレッドは本当に能力です の側で実行するには、2つのスクリプトの 同時にサイド。 今注目し、鳥のスプライトの両方を持っていると 持っているどちらも猫のスプライト、 独自のスクリプト。 私はクリックだから予告、 猫は、私は、これらのスクリプトを取得します。 私は鳥をクリックすると、 私は、これらのスクリプトを取得します。 だから、これらの人のそれぞれが持って 彼の独自のプログラム。 私は今、緑の旗をクリックすると、気付く 何このプログラムが行うことであることを 信じられないほど、猫を持っている ゆっくりと、鳥を追いかける。 しかし、猫が有する利点を有している ようにプログラムされて どんなにそのどこに鳥 、猫は彼に向かって進む。 私たちは、はるかに速く、そのゲームをプレイすることができます。 私は猫のよもしそうなら、私はあることに気付く 使用して、みましょう1ステップを移動すると言う。 のは彼がで5つのステップを移動してみましょう 時間なので、一度に5点。 遊ぶ私をクリックしてみましょう。 [LION'S ROAR] DAVIDマラン:すべての権利は​​、今、我々はできる 本当に猫に優位性を与える。 一度に10ステップ。 [LION'S ROAR] DAVIDマラン:すべての権利なので、非常に迅速に、 それは少しアドバンテージを取得 猫のため。 しかし、私はで私の手を振るよ 詳細のいくつか。 しかし、そのパスであることを理由 少し異なるたびに開始 私はランダム性のビットをやってということです。 私は実際に猫を指しています どこに基づいて、異なる方向 彼は毎回ように始めたい ゲーム、またはアニメーションがあり、 少し異なる。 さて、私が1つをご紹介しましょう その他ここで構築します。 したがって、この場合には、我々の機能を有していた。 また、パズルのピースがあるように起こっている 、配列、またはリストとして知られて それはあなたが複数保存することができます 変数の内部値。 我々は今のスレッドを見て、 イベントはあり。 だからここに使用したイベントです ここでこれらの二人。 そして、私はイベントと呼ばれるファイルを開く場合 今日の例から、我々は意志 見えるプログラムを参照してください このような少し。 そして今、この男に気づく - ので、私は青を持って気づく マペットは、クリックされた - 彼は唯一の次のことを行います。 彼はそれらのいずれかを持っていません 緑の旗のパズルのピース。 私はイベントを受信したときに彼が持っている - いくつかの任意の単語がそう。 私はただそこにイベントを入力した - 彼は、言ってポロを起こっている、 2秒間。 だから慣れている人の このゲームは知っているかもしれないと これはどこに行っている。 私は今、オレンジマペットをクリックした場合 彼のプログラムは、これを行います。 永遠に、キーボードのスペースバーであれば 抑制され、彼が言おうとしている、マルコ、 画面上で2秒間。 しかし、彼はまた、この手の込んだを使用するために起こっている 放送として知られるブロック。 彼が引用を放送するだろう 引用終わり、 "イベント"。 一方、青男、リコールは、ある 引用引用終わり、リッスン "イベント。" だから何とか、今、我々は持つことができます 2スプライトは対話。 そして、我々はWebプログラミングに到達したとき、 後的には、同様にこの意志 あなたのウェブサイトを持っていることが有利で のために応答して、何かをする 例えば、キーボードのクリック。 だから私は先に行こうと スペースバーを押してください。 オレンジ男はマルコを言う。 青男はポロを語る。 私はそれを行う場合は、再度オレンジ男は言う マルコ、青男はポロを語る。 それでは、この一歩いきましょう。 今回、我々は行くよ、たぶん、 ここではよりわずか数分。 我々は持っていますか - デスクランプは、下に来る。 あなたは、右端にある。 OK、両方出てくることができます。 我々は皆のためのデスクランプを持っている。 さあ。 我々は保つことができるかどうかは知りません このばかげたギャグまで すべての学期、しかし。 すべての権利は​​、下に来る。 そしてその間に、我々は持っている だけに、プルアップするには、次の例 そのような私たちに、今、物事を加速 から別の症状を持っている 使用してあなたの前身 同じ基本的なビルディング·ブロック。 あなたの名前は? JOHN:ジョン。 DAVIDマラン:ジョン。 私にあなたをニース。 と? SETZ:SETZ。 DAVIDマラン:SETZ、あなたは私にいい。 ジョン、あなたが来たい場合 最初に、これは古いです フロッガーという学校ゲーム。 あなたにも、このキーボードを使用しています。 そして目標は、全体で取得することです 通りと水。 [フロッガーの音楽やサウンドの再生] DAVIDマランん:すみません、何 あなたのためのデスクランプ今日。 すべての権利、SETZは、あなたでしょう アップ時に来て好きですか? すべての権利は​​、もう一度やってみましょう。 SETZ:私は、矢印を使用していますか? DAVIDマラン:ちょうど矢印キー。 上、下、左、右。 [フロッガーの音楽やサウンドの再生] DAVIDマラン:我々はそれらを呼ぶことにします 慰めの賞品今日、 その後、非常によくやった。 ここでは、あなたの両方のために、ジョンとSETZ。 おめでとうございます、大丈夫。 だからもう一度、このゲームは、果たしているとして、 何が起こっているかを考える? 一つは、動きの多くは明らかにあり。 しかし、我々は猫とで、どのように見てきました あなたが作るこ​​とができる方法鳥たとえば、 ほんの一部を移動して動きの錯覚 何度も何度もピクセル数。 そして、あなたは永遠にブロックを持っている場合 あなたは、これらを持つことができます 車は永遠にこれを行う。 私たちは、能力を持っている いくつかのランダム性を持っている。 だからこのゲームはする必要はありません 毎回まったく同じ。 これらのログは、これらの車は、で起動することができます わずかな時間差よう ゲーム自体はもっと面白いです 各ゲームをプレイしています。 そして一方、我々は能力を見てきました スペースバーを聴くことができます。 しかし、明らかに、スクラッチでは、またすることができます 下、左、右、上のために耳を傾け、 キーボード上の本当に任意のキー。 そして、あなたはまた、いくつかの他のことを行うことができます。 私が先に行くと戻って行ってみよう Web版へ。 私は我々のコレクションに行こう ここでの例。 と私のスタジオの下で、どのビデオ フォルダ上で、本質的に、ある scratch.mit.edu。 我々のウェブバージョンを持って これらのプロジェクトのすべて。 そして、私は私を得ることができるかどうか見てみましょう ここに協力するコンピュータ。 これは、私たちの友人の一人によって書かれている MITで、バタフライを移動と呼ばれる。 そして、一度これは、これを開きです 実際にはより多くのを使用するつもり 私のコンピュータのハードウェア。 傷を実装する必要が起こる Flashを使用した。 Flashには、ウェブカメラに話すことができる、 あなたがいずれかを持っている場合。 私はこれを先に行くとフルスクリーンであれば ここでは、緑の旗、通知をクリック そのFlashのセキュリティメッセージ あなたがしたいですか、と言っている 私のウェブカメラを使用することができます? 通常は、次のことを行う必要があり おそらく拒否言う。 しかし、今回のケースでは、我々は許すと言うでしょう。 それから私はChromeを伝えるつもりだ 同様にこれを許可する。 そして今、一瞬で、 あなたは私、うん、私を参照してください。 そして、私の手が上がった場合 - 私は移動しないために持っている私の 同時に頭。 反射もあります 画面上で。 そこに我々が行って、さあ - あなたがいるので、それを画面に移動することができます ああ、あなた - パズルのピースもあり それが何であるか知っている、それはあなたにもあるためです 私の後ろのプロジェクター画面を参照してください。 だから我々は少し無限を持って 事はそこに行く。 すべての権利は​​、ので、私はここでダウンして再生します。 そうしよう。 だから、パズルのピースもあり あなたは下の動きを見ると、述べています スプライトの一つは、あなたはそれが行くことができます 上、下、左、右など。 だから我々はバーチャルリアリティのビットを持って すべての内に、同様にここで起こっ 私のブラウザの範囲は、単に ここで私のウェブカメラを使用して。 だから、地平線上にその後何。 あなたはわかりますように、最初の問題のセット、、 またはウェブサイトは、後でオンラインで行く cs50.netで今夜は、可愛いです ずっとオープンエンドになるだろう。 とスクラッチプロジェクトを実施 あなたに興味のある、ゲーム、 相互作用は、芸術的なもの、と 任意の番号を使用するように自分自身に挑戦 これらのパズルのピースの。 そしてそれはどちらインタラクティブする​​ことができます この方法である。 それとも、もっと意図的に何かすることができます 物語を伝えるために作られた。 そして実際、それは我々がオフに終わるだろうところです 1最後の例で、今日。 私はローカルでスクラッチに行こう。 私が先に行くと、これを開き、再生してみましょう つずつ書かれた最後のプログラム あなたの前任者の、すなわち ここにあの。 良い、このいずれかの音量を上げる。 [音楽再生] ナレーター:次CS50では、デビッド ステージ上のボランティアを誘う。 DAVIDマラン:このデモのために、 我々は一ボランティアが必要になるだろう。 あなたがダウンして点灯しますか? あなたの名前は? 上を移動する。