[ビデオ再生] 【車のドアをシャット] 【車のエンジンの始動] [音楽再生] 検索で右に沿って-Moving 良い時間と良いニュースの。 良い友達と一緒にあなたが失うことができません。 - これはクセになる可能性があります。 -Opportunityノックはみましょう ただ手を伸ばしてそれをつかみます。 -Yeah! -Together我々はそれを盗むでしょう。 -We'llヒッチハイキング、 バス、またはイエローキャブそれ。 -Dammit。 -We'reは右に沿って移動します。 無料-Footlooseと空想。 楽しみの半分がある-Getting。 私と一緒にそれを共有来ます。 -We'reは右に沿って移動します。 負荷を共有しようとして-We're。 - 我々はにマップする必要はありません 道路上のこのショーを得ます。 Fozzy -Hey、私はあなたが左折したいです あなたは、道路の分岐点に来ている場合。 - はい、先生。 道路の分岐点で左折。 左折してください。 -Iはそれを信じていません。 私たちが見つけ、右に沿って-Cruising 高速道路上で点灯します。 あなたの方法や自分の道を-and。 -so私のナビゲーションを信頼しています。 派手な車と - ムービー星 そして、トップダウンとの生活。 大きな丘を襲撃-We're。 -Yeah、嵐は正しいです。 雪が降っていべきか? - いいえ、私はそうは思いません。 右に沿って-Moving。 無料-Footlooseと空想。 大きな時間の準備ができて-You're。 それは私のために準備ができて-is? 右に沿って-Moving。 右に沿って移動します。 右に沿って移動します。 右に沿って移動します。 -Iは、あなたがより良いオーバープルと思います。 - はい、先生。 [END再生] [拍手] DAVID J.マラン:これはCS50です。 そして、これは0週の終わりであるが、 美しい友情の始まり。 私たちは、ことがとても興奮しています ここでエール大学 私たちと非常に初めて 友人Scaz、とジェイソン、とアンディ。 CS50のTFのすべての40 CAはエールでここです。 そして、あなたのすべて。 そして実際に、それはおそらく時間ですto-- [拍手] だから、たとえ講義のほとんど 確かにケンブリッジにこの年になるでしょう、 現実には、設計によるもので、 非常に意図的にCS50で、 私たちは点に近づいていると思いますか 技術、および教育学、 それは、優れた教育をすることができる場所 一部と係合するための経験 コー​​スの材料オンラインの。 私は信じているとあれば確かに、reality-- このphilosophically--は講義ということです 特にはありません 送達するための有効な手段 かなり複雑な情報。 確かに時間かけて 時間の長いスパンをプラス。 そして実際ごとに数minutes-- 私はcollege--に自分を覚えています あなたは、一瞬のためにゾーン あなたはいくつかの複雑なトピックを欠場、 あなたはかなり行っています 次の45分間。 そして、現実はどうかということです あなたはニューヘブンやケンブリッジにここにいます または超えて、持っていることのシンプルさ 一時停止する機能や早送り、 、関連へのハイパーリンクを巻き戻し リソース、フルテキスト転写産物を検索 などがその機会です 私たちのオンライン学生のためあえて言い​​ます よくニューヘブン越えて、 彼らにチャンスを提供しています 本当に把握します 概念的な材料、我々 すべてのより良い講義で紹介しています。 しかし、最終的にはCS50であり、 学生の経験 そんなに多く、そのように特徴づけられます コー​​スの問題セットすることにより、 または毎週プログラミング・プロジェクト、 指導が率いるコースのセクション フェロー、毎晩営業時間が率います コー​​スのアシスタントと指導 フェロー、実際にそのような CS50パズルなどのイベント 日、CS50のハック - ソン、CS50 フェア、毎週ランチ、およびそんなに多く。 そして、あなたは新しいにここにいるかどうかので、 ヘブン、または遠くからでチューニング、 ケンブリッジの今日、と 私たちは、すぐにまたお会いしましょう 現実にはこれがあります 1と同じクラス。 そして、私たちはに非常に興奮しています すべて一緒に今日ここにあること。 そしてそう学期の終わりに、 よく、ここにか遠く うまくいけば、あなたは喜んで、誇らしげに着用し、 おそらく安堵の​​ビットと、 クマの目撃者シャツ あなたにCS50をとりました。 だからここで我々は水曜日にオフのままにしましたか? 私たちは見ていました 計算の考え方。 そして、それは我々が蒸留何に向かってです コンピュータサイエンス少なくとも、かれ 今のところ。 しかし、我々はに少しそれをさらに蒸留しました 少なくとも三つの成分要素。 入力、だから何です 問題我々が解決しようとしていますか? 出力、何です 我々が得ることを望んだ答え? そして、そこの表現。 そして、私たちは上のここに住むません 後バイナリ、あるいはASCIIに、 などあまりが、 むしろ当たり前の 我々は、この情報を表すことができ、 はるかに興味深い部分理由 これらの問題のためだけではありません 入力と出力が、アルゴリズム それは、これらの問題を解決するに入ります。 そして、あなたは思い出すかもしれませんから 先日、我々 かなり伝統的なを取りました 誰かを探しているの概念 かなり大規模な電話帳で、または より一般的にはデジタルで、これらの日、 ただ、非常に大きなデータセット。 と本当に大きな連絡先リスト、 名前の多くは、アルファベット順にソート。 そして、私たちはしばらくの間、私ことに気づきました 単にこの問題に取り組むことができ 線形を用いて ページによってapproach--ページ、 私たちは実現time--で、あるいは2の より直感的なalgorithm--こと だけの種類の分割と征服 問題を再度、再度、 それぞれでそれを半分にagain-- 時間は、私たちにこの緑の結果を与えました。 そして、それはとても平坦です それは示唆しているため、 あっても、この問題のように どんどん大きくなります、 場合は、データと、これらの日であるとして、 セットとreality-- FacebookやGoogleの 検索結果と 私たちのアルゴリズムはlike--ん 同様に効果的に実行します これらの大きな刺さと それがさらに小さい刺されていたとして。 今ではどのような質問を頼みます 私たちは実際に、同様に解決することができます 直観のこの種の? 分裂と征服のこの種の? さて、私たちは何かを行うことができます ここで、この今日のような。 私たちは、出席を取ることができます。 そう多分1、2、3、4のように、 5、6、7、8、9、10、11-- すべてのこと、効率的であることを行っていません。 そこで、小学校​​を待ちます。 2、4、6、8、10、12、14、 16、18など。 しかし、我々は少し良く行うことができますか? 私はかなり確信している私はできません 自分でこれを行います。 だから、あなただけのためのユーモア私たちがよ場合 瞬間、私たちは私たちにもたらしました アルゴリズム わずか3ステップを持って、 それはあなた場合require--ん 私たちのすべてが立ち​​上がっmind--ていません、 あなたが希望する場合。 だから、私たちのすべてに今立って、ステップ このアルゴリズムの一つは以下の通りです。 スタンドアップと割り当て 自分でナンバー1。 だから、この時点で、 この部屋に文字通り全員 うまくいけば、自分自身に考えています、 しかしぎこちなく、数1。 今、このアルゴリズムのステップ2があります 以下が関与するつもり。 ステップ2、オフペア 誰かが立っていると、 一緒にあなたの番号を追加し、 あなたの新しい番号などの合計を採用しています。 クイック健全性チェック。 誰もが今の何番を考えていますか? だから2、多分1つを除いて、 厄介な、寂しい人。 私たちは、奇数を持っている場合 部屋の人々の。 だから、一人はまだ可能性があります 番号1は、それは大丈夫です。 しかし、ここで1を3ステップ あなたの座ってする必要があります。 他のステップに戻って行く必要があります 2、あなたが希望すれば、繰り返します。 まだ立っあれば、あなたはする必要があります 2ステップに戻ってそれらの間。 立ち止まるな。 少数の人々はまだ立って。 だから、まだ立っている場合、 誰かと対に。 すべての権利、ダウン減少します。 少数の人々はまだ立って。 必要であれば、私はお手伝いします。 ここで重要な持ち帰りを覚えて、どのように 私は数えるよりもはるかに高速、これはあります。 それでは見てみましょう。 私は助けることができます。 だから何の数です あなたはまだ考えですか? 聴衆:私は44でです。 DAVID J.マラン:44ので、 あなたが先に行くと座ります。 何番あなたが考えていますか? 聴衆:74。 DAVID J.マラン:74。 すべての権利は​​、先に行くと座ります。 他に誰がまだ立っていますか? 86。 そして、誰がまだ立っていますか? 何番? 私は67を聞きました。 そして、上部の? 32。 他の誰がまだ立って そして、数を考えて? こんにちは、ああ。 ごめんなさい。 すぐ戻ってきます。 42。 他の誰? 聴衆:47。 DAVID J.マラン:47。 他の誰が静止しています 誰がカウントされていませんか? 部屋の中に人の最終的な数 それは、すべてのis-- 497議席を持っています 390はfilled--です。 だから、これは素晴らしいです。 我々はすぐに概念について説明します コンピュータプログラムのバグの。 しかし、私たちはずっと前に戻ってそれに来ます。 しかし、理論的には、どのようなかもしれません 今起きていますか? だから、ビッグスリーがあったにもかかわらず、 このアルゴリズムのステップは、これらの各 一つの大きな操作だけのようなものでした。 そして、それには、この周期性がありました その中であなたはまだ立っていた場合には、 あなたは、ステップ3から2に行く保たれ、 、2〜3のステップ2までの3ステップ。 しかし、何が起こって保持しました 各反復の? このループの各サイクル? 何が起こっていました 他の場所で部屋の中に! 同じことが、何だけでなく、 あなたの半分に起こっていましたか? 座っている。 だからそこに嘘でこの洞察力、 多くの電話帳の例のように、 その中にあなたの半分がある場合 毎回座っ、 問題が開始され、 多分400人と、 その後、200人に、100人以上、 その後、50人など。 そして、私たち削るダウンで たった一人の理論、 みんなの合計値のことを考え。 今現実に、いくつかの社会的ダイナミクス、 いくつかの算術演算エラー その究極のバグに貢献する可能性があります。 しかし、理論的には、私はしばらくの間 まだ離れてカウントして、 数十を取ります ステップ、またはステップの数百 自分をカウントし、カウントします 500人ほどの部屋いっぱい はるかに少ないの措置を講じている必要があり、 あなただけ分けることができるので、500と1/2 非常に多くの時間。 そして、これだけの携帯電話と同じように 先日例を予約、 私たちは何かを持っていました いわば、対数、 それによって私たちはすべてのであれば 一斉に動作し、 そして、無視 またエラー、我々だろう 正確に達成しています 実行時間のようなもの? 今公平であるために、種類の中で、だまさ 私は別のリソースを活用しています。 それはちょうど私の一つだのに対し、 私はあなたの何百も活用しました。 しかし、それはあると言われるかもしれません 並列処理の例 または非常に流行中の最新技術 ここで、コンピュータは、これらの日を持っています 複数のCPU、またはそれ以上 技術的には、より多くの複数のコア、 真に複数を行うことができます 物事を一度に、多くのあなたのような すべての我々は並行して、そこにやっています。 しかし、それは私たちを思い出します また水曜日に行きました この直感を捕獲しようとしました 、コードでそれを形式化。 擬似コードのようなもの。 そして実際に、私はあなたがいただければ幸いです 許し、それはここで80度のようなものです。 だから私はこれを取るつもりです ほんの少しのためにオフにします。 私は我々が行うだろうと思っていたことの遷移です 今のアプリケーションとなるに 我々は再び観客を従事します、 しかし英語でプログラムを書きます 構文のようにすると ここでは、この問題を解決します。 [ビデオ再生] - それのピーナッツバターのゼリー時間。 ピーナッツバターゼリー時間。 ピーナッツバターゼリー時間。 ウェイ屋! ウェイ屋! ウェイ屋! ウェイ屋! 今そこに行きます! そこに行きます! そこに行きます! そこに行きます! ピーナッツバターのゼリー! ピーナッツバターのゼリー! ピーナッツバターのゼリー! ピーナッツバターのゼリー! ピーナッツ、ピーナッツバターゼリー! ピーナッツバターのゼリー! 野球のバットとピーナッツバターのゼリー。 [END再生] DAVID J.マラン:ビデオ--that、 しかし、それは少し中毒性があり、 少し迷惑ではない場合。 しかし、これを行うには、私たちは何を考えていただきたいです 一緒にプログラムを書いてみますさん、 これのために我々は3人のボランティアが必要です。 快適にする必要が カメラ、インターネット上で。 サムは、アップに来ます。 紫のシャツは、右ここで、アップに来ます。 そして、こっちから、私を聞かせて バック少し遠くに行きます。 クリムゾン、青シャツ、アップに来ます。 パーフェクト。 今さあ。 アップに来て、最大さあ。 そして、あなたの名前は何ですか? エリカ。 デビッド、はじめまして。 あなたはここにこの席を取るしたい場合。 これはサムです。 あなたの名前は何ですか? アントニオ。 アントニオ、はじめまして。 エリカとサム、あなたが希望の場合 ここに座ってするのが好きです。 私たちはと準備来て、 これらの人が発見しているとして、 作るために有する成分であります ピーナッツバターとジャムのサンドイッチ。 さて、これは何かあるかもしれないこと あなたが付与されたために非常に多くを取ります。 しかし、我々はそれぞれの与えてくれました 私たち3人のボランティアの here-- 2人のボランティアとサムここで、 食パンそれぞれ、プレート、ナイフ、 ゼリーやジャムの瓶と、 ピーナッツバターの瓶。 そして、手元の目標は今 これら三つのためになるだろう ピーナッツバターを作るために そして、ゼリーのサンドイッチ。 しかし、私たちがやろうとしていることは期待しています あなたのすべて以来audience-- 確実に行う方法を知っています この非常によくreality--で を私たちに提供しようとしています ステップバイステップのインストラクション。 擬似コード、もし必要になります。 だから私はここにスクライブの役割を果たします。 そして、私は、少しto-doリストを持っています ので、あなたのそれぞれ1つずつとして、 可能性を呼び出し 教育、私はよ それを書き留め、必要に応じてそれを繰り返します。 そして、あなたたちが作るしようとしています ピーナッツバターとジャムのサンドイッチ 唯一あなたが言われて何をしていることもできます。 だから、コンピュータとして自分自身について考えます。 あなただけが語っているものを行うことができます。 ノー仮定、ない質問。 あなたはそれを行う必要があります。 だから、誰が最初にハザードたいです PBJサンドイッチを作るための指示? そこにバルコニーに。 聴衆:パンの袋を開きます。 DAVID J.マランは:開きます パンの袋、可能ならば。 それでは見てみましょう。 のは、反復してみましょう、と取得 もう少し正確に。 しかし始めるのに良い方法。 ステップ2、他の誰か。 今誰もがボランティアしたいと考えています。 フロントでは、2つのステップ。 対象:インナーを開きます パンの袋にも。 DAVID J.マランは:開きます インナーパンの袋にも。 偉大な、私たちは学習します。 もう少し正確に。 のは、この作業を取得しましょう​​。 はい、緑のシャツインチ 聴衆:[聞こえません] DAVID J.マラン:パンのスライス。 静かにパンの2つのスライスを削除します。 それは良いことです。 ステップ4、他の誰か? はい、こっち? 聴衆:[聞こえません] DAVID J.マラン:プレートの上に置いてパン。 ステップ5? ステップ5、ええ? 聴衆:[聞こえません] DAVID J.マラン:トップof--ああ、また。 ピーナッツバターの上に手を置きます。 私は頭何ということですか? 聴衆:うん、と緩め。 DAVID J.マラン:An​​d--は再びそれを言います。 聴衆:[聞こえません] DAVID J.マラン:そして置きます ピーナッツバターの横蓋。 軽く上に手を置きます ピーナッツバターの上、 そして、緩め、蓋を置きます ピーナッツバターの隣にあります。 [OK]を、ステップ6。 ステップ6、他の誰か。 うん? 聴衆:[聞こえません] DAVID J.マラン:それを再度言います。 聴衆:再びステップ5を繰り返します。 DAVID J.マラン:そして、 再びステップ5を繰り返して、 作成しようとしています 問題のビット 今、私たちは一歩このステップをやっている場合。 だから今、私たちは5ステップに戻ります。 軽く上に手を置きます ピーナッツバターとネジを外しの そして、ピーナッツバターの隣に蓋を置きます。 そしてピーナッツバターを把握 再びステップ5を繰り返します。 だから我々はそれをオーバーライドします 無限ループ、可能ならば。 ステップ7、他の誰か。 うん、戻りました。 聴衆:[聞こえません] DAVID J.マラン:他の--onトップ。 聴衆:[聞こえません] DAVID J.マラン:オン 他の上に一方。 あなたはちょうどここに来たいですか? どのように私は命令を終了しますか? 命令の残りの部分は何ですか? 聴衆:その部分を無視しています。 DAVID J.マラン:その部分を無視しています。 それでは、最初からやり直しましょう​​。 ステップ7。 聴衆:[聞こえません] DAVID J.マラン:でつかみ hand--この対向することは良いです。 これは実際には良いです。 聴衆:[聞こえません] DAVID J.マラン:そしてプラスチックjar-- 聴衆:[聞こえません] DAVID J.マラン:そしてtwist-- 聴衆:[聞こえません] DAVID J.マラン:2秒。 ただ、ピーナッツバターの瓶を開きます。 私は、あなたが許すだろう願っています。 それでは、我々がそこに着いたと仮定しましょう​​。 ピーナッツバターの瓶を開きます。 [拍手] DAVID J.マラン:ステップ8、行きましょう。 バックステップ8、はい、。 聴衆:[聞こえません] DAVID J.マラン:良いです。 ステップ9、はい? 聴衆:[聞こえません] DAVID J.マラン:の--out ピーナッツバターの瓶。 And--、何? 聴衆:[聞こえません] DAVID J.マラン:そして入れナイフ バックピーナッツバターに。 ステップ10。 ステップ10。 聴衆:[聞こえません] DAVID J.マラン:ナイフを入れて アウトした後、シールを削除してください。 ニース。 ピーナッツバターオフ。 すべての権利、ステップ11。 聴衆:[聞こえません] DAVID J.マラン:OK、グレーコンピュータ 青や赤のコンピュータに従ってください。 良い。 [拍手] DAVID J.マラン:家たちを持参してください。 カップルより多くのステップ。 次は何ですか? 12を繰り返します。 ステップ12。 うん? 聴衆:のスライスの1つを入れて あなたの手の上で静かにパン。 DAVID J.マラン:あなたの手の一つ。 そして、ステップ13。 うん? 聴衆:[聞こえません] DAVID J.マラン:パンの--onスライス。 良い。 かなり良い。 ステップ14、ええ。 聴衆:ステップ13を元に戻します。 DAVID J.マラン:ステップ13を元に戻します。 のは、ゼリーに移りましょう。 これは、100〜ステッププログラムです しかし、我々は、ステップ15にあったています。 うん。 聴衆:[聞こえません] DAVID J.マラン:7使用して13を介して、 ゼリー、それらがうまくいったので。 繰り返しを通じて7ステップ 13、ゼリーを使用。 だからの下半分を把握 上に片手でゼリージャー。 の一方 他のトップ、その部分を無視して、 反対側の手でつかみ、 蓋プラスチックジャー 下部にある、と 2秒間ツイスト。 そして、ゼリージャーを開きます。 そして最後に、のに試してみましょう 私たちの食用何かを与えます。 ステップ16。 では、なぜ私たちはそこにそれを残していません。 にありがとうございました 私たち3人のボランティア。 [拍手] 私たちは少しCS50を持っています あなたのためのストレスボール。 それはあることを行いました。 サンドイッチbut--そう何 ポイントが持つ超えて、でした アルゴリズムで楽しいのビット? しかし、現実はそのときでさえあります あなたはコンピュータをプログラミングしています、 あなたは超精密にする必要があります。 などの複雑なまたは威圧 自分のコンピュータのように 非常によくで、あなたにあるかもしれません 少なくとも何かがうまくいかないとき、 現実には、それはかなりダムですさ 私たち人間によって発明されたデバイス、 そして、だけ私たちの一部を行うことができます 確かに時々do-- faster-- それがどのように認識していません 仮定を行うこと。 これは、オンにする方法を知りません。 あなたと同じ波長。 それだけで正確に行います あなたがそれを教えてください。 そして、あなたは打たれるでしょう、 おそらく、我々はスタートとして 実際のコードを書きます 第一の問題点セット以降、 それは作るのが、どれだけ簡単に ヒトのような仮定、 私が処理する必要が予想してい その場合、またはそのコーナーケース、 いわば、そのかもしれない非常によくします 例えばサムだけを持っていた場合に発生 ゼリーの絞れる瓶、一方、 他の皆は、いくつかのガラスの瓶を持っていました よく。 だから我々は我々のを回す前に、 いくつかの実際のコードへのこだわり、 私が紹介させ ここでイェール大学のコースの頭。 私たちの友人Scaz、アンディ、および ジェイソンは出てくると挨拶します。 [拍手] SCAZ:私たちは一時的にジェイソンを失ってしまいました。 こんにちは再び、みんな。 私の名前はScazです。 私は2001年からイェール大学で教えていました。 そして、ときに私が教えていないです、 私の研究はロボットであります 人工知能。 そして、私が今日持っている発表 数週間で開始するということです、 我々はいくつかをもたらすことになるだろう 話をするCS50への補足資料 知能ソフトウェアに関する。 私たちはどのようにについて話をするつもりです ネットフリックスやHuluのような場所 どの映画をお勧めすることができます あなたが見たいと思うかもしれません。 どこにどのようにについて話しましょう ドライバレス車は実際に動作します。 そして、私たちは地面にできるようになります 概念でこれらの事 あなたが学習していること このクラスの今日。 これらの事のすべてがあるため 同じ基盤の上に構築。 そして、それは何だこれ シリーズは、検討します。 だから私は本当に探しています あなたの多くを見に転送 すべて、あなたはに取得するつもりです 非常にすぐに私たちのすべてから多くを参照してください。 私はその後、ジェイソンをご紹介しましょう​​。 JASON:皆さん、こんにちは。 私の名前はジェイソンです。 私は残念ながらに行ってきました 学部としてハーバード。 それはカットを得るために起こっています 実際のストリームのうち。 そして今、私は講師のようにここにいますよ コンピュータサイエンス学科。 そして、私はコースを実行して支援しています Scaz、ダビデとアンディと。 ANDY:やあみんな。 私の名前のアンディ。 私は実際にはエールです 今ステージ上の学生。 [拍手] 私は、バークレー大学にいます もともとソロン、オハイオ州から。 そして、私はこれらの子供たちの一人でした ここで、私がエールに来たとき、 私は本当に私は決してだろうと思いました 二度と数を見ています。 そして、私はあなたが必要なことに気づきました 両方の科学とQRが卒業するクレジット。 そして、私が撮った私の新入生の春、 クラス、ここでCS、イントロのCSクラス イェール大学。 私はこのようなものです、のようでした 実際にはかなりクール。 そして、私は実際に宣言することになった一方で グローバル情勢などの主要な、スキル 私はCSとプログラミングで学びました いずれかのフィールドに適用されますので、 あなたが行うことを選択します。 そして、ここでエールのスタッフ、 我々は仕事で一生懸命してきました あなたたちのために作製しました。 そして、私たちは楽しみにして すべてのセクションとオフィス時間インチ そうそう。 [拍手] DAVID J.マラン:ありがとうございます。 だから、クラスが始まる直前に、 我々は、機会がありました キャンパスの周りを歩きます 携帯電話を持つと取ります 実際のビデオ形式のいくつかのselfies ここでエールのキャンパスの私の最初のツアー。 だから我々はラフを共有しようと思いました Scazとアンディとまったくこのカット ジェイソンは、キャンパスの周りに連れて行ってくれました。 [ビデオ再生] [サイレン] -David。 エールにウェルカム。 お会いできてグッド。 -お会いできてうれしいです。 私たちはツアーに行く-CAN? ツアーに行くのを-LEt。 -Roadツアー。 - この記号は、しばらくの間がありました。 -Whah、CS50。 -Hurry! 行く、行く、行く、行きます。 あなたは[聞こえない]ハークネスタワー必要があります。 - そして我々は数回見ました。 [拍手] 自転車のために-Look! ああ! フランクこんにちは。 - 何のアップ、みんな? -お元気ですか? お会いできてグッド。 ビデオに - ウェルカム。 あまりにも興奮行動しないでください。 -Iは、シリマンが大好きです。 ああ! - それは、以来、約3時間をされています ジェイソンは、アイスクリームやヌテラを持っていました。 だから我々は後ろに停止するんです 少しのためのシリマン。 - それはさえないです[聞こえません] まだ、ただ事実 彼らはそれをここに持っているように素晴らしいです。 男は、ヌテッラは毎日の食事であります。 昨年も-Thereました。 -Yeah。 これまでにエールについて多くを-tell。 しかし、私は今ではそこにTDいます。 そしてそれは、キャンパスを離れて考えられています。 -Here我々はゴシック建築を持っています。 世界的に有名。 我々はいくつかのより多くのゴ​​シック建築を持っています。 そして、建設、 より多くのゴ​​シック建築。 こんにちは。 私たちはオフィスの時間をしているところです ホグワーツで木曜日を介して火曜日、 [聞こえない]など。 -大丈夫。 それは、ツアーのためにそれです。 私たちは、エール大学のです ロースクール、 今日の講義は、場所を取るとしています。 のが頭にしてみましょう。 [END再生] DAVID J.マラン:そして、 それが今ここに私たちをもたらします。 だからこれまで、我々がしてきました 擬似コードに焦点を当て、 これはこの英語のような構文です。 それには、所定の仕様を持っていません。 それはちょうどあなたは、いくつかを使用しています 直感的な言語あなたの場合 あなたが何をしたいかを説明したいです。 しかし、ここでは、遷移に今から始めましょう コー​​ドに、ほとんどの人が言うように。 しかし、より正確には、何か ソースコードとして知られています。 これは人間の言語であります コンピュータがultimately--ことを書きます おそらくいくつかの番号の後に steps--最終的に理解 何かをする方法を知っているように。 あなたはの一見を見ました おそらく、この水曜日に。 これは一例です 信じられないほど、がっかり 実行すると、単に "こんにちは世界"と述べています。 そして、それはと呼ばれる言語で書かれています 構文的に非常に似ているC、 他の言語の多くに あなたが知らないかもしれないこと、 しかし、Javaのようなの聞いたことがあるかもしれません C ++、およびPythonおよびRuby on、 などが挙げられ、実際に、私たちはよ Cを使用して学期の多くを費やして、 そしてその後の端に向かって 学期、その上に構築し、 そして、いずれかを導入 他の言語の数。 その中でも、PHP、およびJavaScript、 SQLというデータベース言語。 しかし、Cで、私たちは何があるでしょう このボトムアップの理解 正確にどのようにコンピュータの仕事の、 あなたは彼らと何を行うことができ、 あなたが問題を解決する方法 すべてのより効果的に、このことにより、 我々が議論していることを階層化 水曜日、および放置します 他人の肩の上に。 しかし、もっとその上に来て。 今日は簡単な環境を見て、 しかし、基本的に同一の によってスクラッチとして知られている環境 MITメディアラボで私たちの友人。 これは、グラフィカルであります プログラミング言語、スクラッチ、 それによってあなたはドラッグすることができます その事をドロップ そのパズルのピースのように見えます 唯一のインターロック、それが行う場合 これを行うには、論理的またはプログラム的な意味。 しかし、それは私たちができるようにするために起こっています すべてについての会話を持っています 同じプログラミングの あなたのいくつかの基本 既に知っているかもしれませんが、その あなたの多くはないかもしれません せずに何かを知っています 率直に行き詰まるします、 知的で セミコロンのつまらない構文、 括弧、および 引用符、などが挙げられます。 すべて、これを早期に で、気晴らしです 興味深いものに そして真に有益なアイデア。 それでは、素早くてみましょう 環境に一目 ここで、あなたが待っているものを知っているので。 そして実際に、私たちのゲームの中で いくつかのプログラムが書かれている再生することができます CS50自身のかつての学生による。 そのうちの一つは、私は、私はこの1つになるだろう 私のために大学院で書かれました。 私は1つのボランティアを取ることができれば 誰がプレイして喜びました 非常に初めてのゲーム。 確かに。 アップさあ。 あなたの名前は何ですか? 者:アンジェラ。 DAVID J.マラン:アンジェラは、アップに来ます。 だからスクラッチは数年前から出てきました。 そして、私は大学院にいたとき、 私は、MITで登録されたクロスでした 服用教授ミッチェル・レズニックさん 教育技術のコース。 そして、我々は非常に最初の中にありました 実際にベータ版の世界の学生 テストスクラッチ。 そして、私のプロジェクトは何だったアンジェラ 今優雅に志願しました プレイするOscartimeと呼ばれます。 だから私は先に行くつもりだと 二重こちらのアイコンをクリックします。 これは、プログラミングを開くために起こっています 我々はすぐに飛び込むだろう環境。 私はフルスクリーンに行きますよ ここでアンジェラのためのそれ。 私は緑を打つつもりです 一瞬でフラグ。 そして、ゴミの全体の多くは、 空から落ちるために起こっています。 そして、あなたは、マウスを使用するつもりです ここで実際にドラッグアンドドロップします オスカーのゴミ箱にゴミ。 だから、先に行くと、クリックした場合 緑の旗、ゲームが開始されます。 [音楽再生] ああ、私はゴミを愛します。 汚れや薄汚いやほこりの多いもの。 ギザギザや腐った、またはさびもの。 はい、私はゴミを愛します。 あなたが本当に見たい場合 くだらないものは、これを見て。 私はここでスニーカーを持っています それはぼろぼろと着用です。 これは、すべての穴だらけだ保持しています そしてレースは切断されます。 私の母からの贈り物 日は私が生まれました。 it's--ので、私はそれを愛します DAVID J.マラン:ちょうど--greenこれらの日 ゴミ箱にすべてを投げること。 だから何のいずれかを CS50自身のスタッフdid-- ヨルダン、あなたがかもしれません today--が実際に持って会います 今日の回のためにこれを更新しました。 だから、私は開くことを可能 代わりにアンジェラのためのリミックス。 そして、我々はのための代わりにこれを再生します 今あなたがしているいくつかの瞬間 かどうか間で決定しているつもり ゴミ箱に何かをスローするように、 またはそれをリサイクルするか、堆肥。 だからのビットがあります 得るためにあなたの圧力 あなたの392の前でこの権利 ここで会場の497クラスメート、 あなたが希望する場合。 [ビデオ再生] [音楽再生] -oh私はゴミを愛します。 汚れや薄汚いやほこりの多いもの。 ギザギザや腐ったり錆びもの。 はい、私はゴミを愛します。 あなたが本当に見たい場合 くだらないものは、これを見て。 私はここでスニーカーを持っています それはぼろぼろと着用です。 これは、すべての穴だらけです そしてレースは切断されます。 私の母からの贈り物 日は私が生まれました。 それはゴミだから私はそれを愛します。 ああ、私はゴミを愛します。 汚れ、または薄汚い、または埃っぽいもの。 ギザギザや腐ったり錆びもの。 はい、私はゴミを愛します。 ここではいくつかのより多くの腐ったものです。 私はここにあるいくつかのnewspaper-- [END再生] DAVID J.マラン:--are 実際に堆肥。 しかし、私たちのボランティア、アンジェラをお願い致します。 私たちは、ストレスボールを持っています ここにあなたがのためにも。 だから、あなたに感謝。 したがって、この1は私によって書かれました。 実際の元学生ではなくて、今1 誰がゲームである、これを実装しました。 この言語のすべてと呼ばれます スクラッチ、我々はすぐだろうと の層をバック剥離。 しかし、我々はどのようにlike--たい場合 他のボランティアは? 右。 アップさあ。 あなたの名前は何ですか? 概要? ランス。 ランスは、アップに来ます。 始めまして。 このように来ます。 したがって、この1が持っている可能性があります あなたの一部にはおなじみのテーマ。 しかし、あなたはあまりにも表示されます インタラクティビティが存在することができ、 あなたが実際にすることができました 動き回るキャラクターの役割。 始めまして。 デビッド。 私は、あなたにピカチュウを与えます。 手順は、約ます 画面上に来て。 しかし、簡単に言えば、あなたはするつもりです おいしいものをキャッチしたいです、 や爆弾や他のものを避けます。 完全カーソルで。 だから、スペースバーを押してください。 -Pikachu。 DAVID J.マラン:キャッチ 左側のもの、 右のものをキャッチしません。 [音楽再生] そこでここでは最後の1。 私たちはいずれかを持っていることができれば ここではより多くのボランティア。 私たちは何かを再作成しようと思いました 黄色shirt--にfrom-- 水曜日から。 お名前は何ですか? メアリーは、メアリーアップに来ます。 そして、水曜日にリコール我々が導入しました バイナリ、およびバイナリ電球の概念。 これは今実際にあります 同じインタフェースの実装 私たちは光でiPadで持っていたこと ここで球根、しかしデジタルレンダリング。 そして、ストレスを行うのではなく、 、ダビデにお会いできてうれしいですball--。 我々はいくつかの光をもたらしました ケンブリッジから球根。 あなたは、それらをクリックすることができる場合 球根は、オンとオフ、それらをオンにします バイナリを思い付きます 表現は、256を言います。 そして、あなたはで表示されます 途中、現在の集計。 だから、自分の上に。 だから、一番左のビットがオンになっています。 MARY:うん、[聞こえません] DAVID J.マラン:まあ、 私たちはああjust--持っています。 だから、これは128列です。 だから我々は128までです。 私たちは256に到達するようになりました。 そして、あなたは上でいじくり回すことができます オフ、大したことありません。 それとも、その128を打つことができます 必要に応じて複数回。 すべての権利、良いです。 24。 うん、近づいて。 クローサー! ああ、問題は何ですか? だから問題は何ですか? だから我々はするには何が必要です この問題を解決しますか? だから我々は別のビットを必要としています。 そして、これは完全にあります 現実には、合理的な、右? あなたは数からカウントする場合 1〜4へ3へ2〜5、6、7、8、9 実際に10にロールオーバーするには、次のようにしています 追加ビットが必要になります。 だから、実際にしてみましょう ここで、巻き戻し、および出てきます それは明らかでしたwith-- セットアップであることを意味しました。 あなただけの電球で256を行うことはできません。 それでは、どのよう単に番号50は? 数50。 優れています。 大きな拍手 メアリーと彼女のためにも。 ありがとう。 だから、これは、意図的なtopic-- そのwas--は実際に再発します。 最大値のことができます。 8ビット、または1バイトで表現し、 256は確かです。 しかし、あなたが起動しない場合 私たちのように、0から数えて 持つことでやり続けるように見えます これらのビットオフのすべて。 しかし、今のは、基礎となるに飛び込むてみましょう このような環境の実現、 そして、これらのアイデアのいくつかを離れていじめます。 だから瞬間に我々が表示しようとしています いくつかの異なるプログラミングの基礎。 最初は、そのうちの私たちは文を呼ぶことにします。 動詞のソート、可能ならば。 アクション。 行われるべきもの。 そして、その瞬間にあなたが表示されます このように見えるブロック。 例えば「こんにちは世界」と言います。 または、1秒待ってください。 または音ニャーを果たしています。 そして実際の環境で 我々はこれを行うことになるだろうどの スクラッチと呼ばれています。 そして、私はせずにスクラッチを引き上げる場合 任意の実際のコードをプリロード、 のは、この簡単に見てみましょう ユーザーインターフェース、いわば。 私たちが相互作用するコントロール。 ここの左側の上部には 画面、メニュー以下、 私たちは、いわば、ステージを持っています。 だから、スクラッチ、我々はスプライトを呼ぶものです。 これは、文字です。 そして、彼はすることによって制御することができます 彼に対するプログラムを書きます。 彼は上下に移動することができます そして、左右のこのような環境で だけではなく、移動させることにより、 マウスが、プログラム的。 私は彼が右、散歩を歩く伝えることができます ダウンしているかのような、アップ、左。 そして、私は他の導入することができます スプライトや文字だけでなく。 実際、ここで底に場所です あなたは、スプライトのリストが表示されます。 現時点では、私は持っています 1、私はより多くを作成することができ、 彼らはまさにそこに表示されます。 だから、あなたのような、一瞬巻き戻した場合 例えばOscartime--、オスカー、 左側に、ゴミ箱 缶、スプライトがありました。 そして、途中での事、 リサイクルビンは、別のスプライトました。 また、堆肥のビンは別のスプライトました。 とのすべての部分 ごみやリサイクル それは空から落下しました スプライトは、その各々は、も 個別にプログラムしました。 あなたはどのようにプログラムするのですか? さて、ここで右のオーバー 右側には、スクリプトの領域です。 そして、これはどこに私たちができることです ドラッグして、パズルのピースをドロップします。 週間では、になるだろう ここで、我々は、等価的にコードを書きます キーボードを複数有するが、用 今日では、ドラッグアンドドロップすることがあります パズルのピース、 すべての缶用パレット 右の真ん中にここで見つけること。 確かに、途中で ここでの全体の束があります パズルのカテゴリーの ピースまたはブロックします。 一つは、の運動に関連した、見て、 音、上下に行くペン、 データは、イベントが制御されます。 なく、かなり確信してまだ これらのすべてが何を意味しますか、 しかし、あなたは彼らがしたことがわかります きれいに分類されて。 とでプログラムを書くために スクラッチ、のはまさにそれを実行してみましょう。 私は下に開始するつもりです イベントには、ここで、このいずれかをドラッグします。 緑の旗をクリックすると。 さて、なぜその1? さて、私たちボランティアことを思い出して 私が最初にすること、思いつきました または、彼らはその緑をクリックしたんでした 右上にあるフラグ。 そして、それは単にプログラムを起動することを意味します。 だから、そのイベントが発生したとき、 私は何をすべきかをしたいですか? 私はルックスの下に行くつもりです、 私は何をするつもりだ」挨拶します。 " そして、私はこれを変更するつもりだし、 以下のようなものを言う "こんにちはエールを。」 そして今、私はズームするつもりです うち、緑の旗をクリックして、 出来上がり、私はプログラムを書いています。 それはすべてそのエキサイティングではありません まだ、この ある場所を正確に各 これらの著者の開始、 ピカチュウとの両方、および バイナリ電球、およびOscartime、 そして、非常に多くのより多くの例。 あなたは超シンプル開始し、 その後、レイヤーを開始し、 そして特徴や機能に追加します。 したがって、これらの層は何ですか で構成されに行きますか? まあ、ステートメントを超えて、我々はまた、よ もう少し念入りにあるものを持っています ブール式と呼ばれ、 ブールという名前の誰かの後。 そして、ブール式は単純です trueまたはfalseのいずれかの表情、 yesまたはno、1または0。 そのような任意の正反対。 それは本当ではないかのどちらかです。 しかし、我々はまた、参照するつもりです このようになりますもの。 だから例えば、マウスがダウンしていますか? あなたがするなら、彼らは、質問のようなものです。 マウスは、ダウンのいずれかであります trueまたはそれは、偽のではありません。 1または0、あなたがする場合は、 マッピングになる傾向があります。 真1で、偽は0です。 まあ何本未満は? またはそう、これはこれよりも少ないのですか? それはある種の問題です。 そして、あなたは、2つを置く場合 そこに数字、のいずれかのx yよりも小さいかになるだろう yに等しく、またはyより大きく、 私たちが表示されます。このブロックは、単にあります 質問に答えるつもり、 これは、以下でありますか? また、このようなものが表示される場合があります。 マウスポインタをタッチします。 だからスクラッチに、あなたが尋ねることができます 質問は、スプライトであります マウスポインタに触れますか? つまり、カーソルのホバリングは キャップ、または同等以上の? 私たちは、AND演算のことを一緒に表示されます。 次の2つの質問をすることができ、 それらの両方のことを確認してください はいあなたを与えるか、真の答えの前に 何かをする決定を行います。 しかし、その後、どのように意思決定を行うのですか? さて、私たちはこれらの条件を持っています。 そして、私たちは私たちの中でこれを見ました 電話帳の例。 左にみますか マイク・スミスのための権利。 AND条件で、あなた 潜在的に何かをします、 ブール式が真である場合。 そして実際、今の形に注目してください。 このプレースホルダは今あります 我々はfit--できるオーバーヘッドの 私はその形状slide-- 1を巻き戻します。 それは非常に同じサイズではありません。 そして実際、あなたはそれを参照してくださいよ スクラッチは、動的なもののサイズを変更 パズルのピースに合わせ、これに 形状が重要だものです。 このことは次のようになります その、実際にそれはです ほぼ同じ形状 それはそこに収まる必要があります。 そして、我々は何かをしたい場合 この方法またはそのように、場合あるいは、 私たちは、このパズルを持っています スクラッチで作品にも。 今、あなたがしたいと それ以外の場合、あるいは、場合の対処。 換言すれば、A 道路の三方フォーク。 さてあなたは何をすることができます これだけをちらっと見ましたか? 私は、このパズルのピースを取ることができ、 それがフィットしていないようです、 しかし、再び、スクラッチが起こっています 私たちのためにうまく再サイズに。 私は層に開始することができます 一緒にこれらの事。 だから今は、三方を持っています これが本当であればフ​​ォークは、これを行います。 そうでなければ、この他の事は本当であれば、 この他の道を行く他に、この道を行きます。 そして、マペット映画の中で、 いわば道路の分岐点、 エールやスタンフォード大学との間で、でした 正確には、ちょうど2つの条件。 その道を行く他に、この道を行くのどちらか。 まあ、ループは、プログラミング中に存在します。 そして、我々はすでに、これらを使用しました クラスと擬似コードのコードで、 かつ確実にそれらの中 永遠スクラッチプログラム。 スクラッチは、このパズルのピースを持っています ちょうどあなたは永遠に何かをするようになります。 そして、時にはあなたが欲しいです 永遠に何かをします。 それはだ、必ずしもバグではありません あなたは時計を続けるためにしたいので、 または再生を維持するゲーム。 それとも、有限数を指定することができます ステップ、ここで、この繰り返しブロックと同様に、 これは何かを10回繰り返します。 私たちは、変数を設定することができ、我々はすぐに表示されます。 そして、その精神においては似た変数と X、またはy、またはzのような、代数へ。 これは、保存することができ、シンボリックなものです いくつかの値が、情報のいくつかの作品は、 あなたが望むかもしれません 後で覚えています。 この最良の例は次のようになります あなたはスコアを持っているゲーム、 ピカチュウのように。 どのように多くのケーキの作品 そして、その他もろもろあなたがキャッチしたのですか? まあ、それは変数であるかもしれません 0から始まりスコアと呼ばれます。 そして、すべての時間は、私たちがキャッチ ケーキやお菓子などの作品は、 それがインクリメントされます。 これは、一度に一つに追加されます。 そしてそう変数店 そのような情報の断片。 そして、そこに配列だ、と私たちは来ます バックこれらの週間か2時間で、 が、配列は次のような種類のあります 内部在庫やランドセル、 そのうちあなたは仮想のものを置くことができます。 それはあなたがより多くを保存することができます 情報の一つより。 そして、それは便利かもしれません ゲームでは、あなたがしている場合 歩き回るのソート 物事を拾います。 そして多分あなたは維持したいです ケーキのそれらの作品のすべて 周りだけではなく、食べます それら次々に。 そしてあります 我々はよ手の込んだ構造 呼び出される関数またはプロシージャに来ます。 そして、私たちが行っているものの より速く、ここで、我々はよ これらは非常にあることがわかり 問題の自然な解決策 私たちは、出会いを行っていること。 私たちのプログラムが開始すると 大きな我々はよ取得 のパターンに気づき始めます 私たちが書いているコード、 私たちがしているパズルのピース ドラッグ&ドロップ。 そして、すぐにあなたがあなた自身に気づくようにやって 何か、何度も何度も、またはさらに悪いです コピーと貼り付けプログラミング あなたが書いたコード、 それはおそらくです くくり出す機会 何でもコピーを維持 そして、貼り付け、それを置きます 何かに「関数」と呼ばれます しかし、多くののそれらの詳細 長い前に、より詳細。 そして、でも愛好家の特徴があります。 より快適なあなたのそれらのために、 またはAPCまたは同等のものを取って、 スクラッチは、実際に物事をサポートしています スレッドやイベントなどのような。 だから、持っていることを実感 かなり高い天井、 それは非常にもだにもかかわらず、 人々に広くアクセス可能 誰が前にプログラムされたことがありません。 だから確かに、のは見てみましょう 簡単なプログラムまたは2で。 我々はすでにどのように我々を見て スクラッチとの挨拶があります。 私は先に行ってみようと開きます もう少し面白いプログラム 私は事前に書きました。 そして、この1は猫ペットと呼ばれています。 これらのプログラムのすべてになります CS50のウェブサイトで入手可能。 実際、すでにそこに。 だから、あなたはダウンロードすることができます 彼らと一緒にプレイ、 問題セット0とします コー​​スのウェブサイトにもあり、 あなたは、これらの中を歩くことを奨励しています。 しかも、私たちは持っています ウォークスルー動画の数 オンラインこれで私と CS50のチームは本当に歩きます はるかにこれらの例の各々を通ります 遅いペース、非常に高速転送可能、 またはrewindableペース、あなたが歩くことができるように、 これらを通して、あなたのレジャーでも同様。 だからここに左のスクラッチです。 ここで右のプログラムです 私はすでに事前に行ったこと。 だから私は、このにズームインできます。 英語でできた誰かが、知っています あなたが知っている、今のようなから スクラッチ作品は、一種の言う方法 英語のフレーズや文で、 このプログラムは明らかに何をするのでしょうか? うん、オレンジ色のシャツインチ 聴衆:[聞こえません] DAVID J.マラン:ええ、あなたの場合 カーソルがスクラッチで猫です、 meowingサウンドを再生します。 しかし、我々はそれを表現する方法がわかります。 明らかにありま​​す そこループ、永遠に。 そしてあります 条件、if式。 そして、まとめ、それらが何を意味するのですか? それは、このプログラムを意味します ただ、常に動作しています、 そしてそれだけでいつも待っています そして、見て、聞いて 私のために猫の上に私のマウスを移動します。 毎回ので、私はのように、それを行います あなたはそれがこれを行うために起こっている、提案します。 私はプログラムを起動してみましょう。 何があると思いません 起こったが、どのように注意してください それは黄色の線で強調表示され、今です。 それはちょうどそれが実行していることを意味します。 そして永遠にありますので、 ループ、それはまだ実行しています。 だから、私はスクラッチの上に私のカーソルを移動しましょう​​。 [MEOW] [MEOW]そして、私はそれを移動する場合、 【MEOW]今、それは停止しますが、プログラムの まだ実行されています。 【MEOW]だから、愛らしいです。 【MEOW]それでは、開いてみましょう もう少し高度な 呼ばれる例では、猫をペットしないでください。 そして今のは何を見てみましょう ここで起こります。 【MEOW] Meowing。 だから、少し上です オートパイロット、可能ならば。 猫を--pet。 私はなぜだろうか。 【ROAR] [MEOW]だから、どのようにこの仕事をしましたか? さて、次のことができた理由の種類 それを通じて直感的に、おそらく。 しかし、それでは、実際のコードを見てみましょう。 だからもう一度、ときに緑色の旗 クリックすると、永久にこれを行います。 あなたは永遠に何をしたいですか? まあマウスに触れ、場合 ポインタ、その後遊びます どうやらライオンと呼​​ばれていますサウンド 5、それは他の、このプロジェクトの中です 音ニャーを果たし、 そのように、2秒待って それは絶え間なくmeowingていないこと。 実際には、非常に迅速に開始することができます 自分自身と自分のルームメイトを困らせるために。 それでは、このブロックを削除してみましょう。 そして、スクラッチのいい何に気づきます。 ドラッグだけの種類のもの ドロップと連動。 だから、再び、それはに成長 あなたが欲しいものを記入してください。 しかし、私は、これを削除し、場合 ヒット遊び、[コンピュータBLIP SOUND] つまずくの--itの種類 それ自体、それは文字通りだから 私が言っている何をしています。 それは永遠に言って、このサウンドを再生しますが、い 私はそれを終了する機会を与えていませんよ。 そしてそうそれはバグでしょう。 そして、私たちが持っていた理由です 今ここでこの事。 それでは、実際にscratch--から始めましょう ソートの語呂合わせ少しintended-- ここで我々は今、猫の動きを持っています。 だから私はその場でこれを実行するつもりです。 私は、ここにズームするつもりです 私はイベントで開始してください。 そして、緑の旗をクリック。 そして、他の方法があります スクリプトを開始します。 ここでは、単純な、それを維持するつもりです。 そして今、私は行くつもりです 先にコントロール下に行きます。 そして再び、あなたはどこに忘れてしまった場合 物事は、ただ、周りにクリックされています そして最終的に、あなたは再びそれらを見つけます。 だから私は永遠に何をしたいですか? Iは、モーションブロックを使用します 私が知っていることは、10のステップを移動し、存在しています。 それでは、何が起こるか見てみましょう ここで私はこのゲームをプレイする場合。 ありがたいことに、それはあまりにも遠くに行っていません。 私はまだ種類の彼をつかむことができます 尾によると、彼を引き戻します。 しかし、プログラムがまだ実行しています、 彼は私の戦いのようなものです。 私があればしかし、それは一種の素晴らしいだろう 条件付きコードでこれを修正します。 これはnot--あるため 実際にこれは本当にあります あらゆる年齢の人のためではない楽しいゲーム。 それでは、によってこれを修正してみましょう 条件のいくつかの種類を持ちます。 だから私は、下に行くつもりです 制御し、その後場合。 私はこのアイデアが好きです。 だから、10のステップを移動した後、 私は私が意味を聞かせてif--。 私は、センシングの下で​​行くつもりです そしてそれは、私はここに行くことができます見えます。 形状が一致する行。 サイズはしていませんが、それはです 埋めるために成長するだろう。 そして今、これは少しメニューです。 そして今、マウス、私はしないでくださいpointer-- マウスをしたい、私はエッジをしたいです。 だからスクラッチは知っているのに十分スマートです スプライトは、エッジに触れているとき。 私は彼が実際に何をしたいですか? 私が先に行くと、モーションを変更してみましょう。 あのね? 私は彼が好転持っているつもりです。 だから、15度ではありません 本当に私を助けに行きます。 私は彼が好転したいです および他の道を行きます。 それでは、何が起こるか見てみましょう ここで、私がヒットした場合、今プレイ。 [OK]を、種類の愚か見て、しかし、 それは私が言った、まさにやっています。 そして、それは全体のスプライトを回転させています。 今では、私はこの問題を解決することができ判明します。 そして私はどのように知りませんでした 最初にこれを修正します。 私は一種の周りいじくるために持っていたし、 これを行うための最善の方法を参照してください。 しかし、私は運動、見てみましょうto--行けば。 ああ、私はこれを見つけました。 実際には、回転スタイルを設定します。 左、右、またはしません すべての周りの回転、または。 そして、それはそれは私が何をしたいのですが判明。 そして私は、これは私ではありません置くつもりです ループ、私は設定する必要はありませんので、 回転スタイルを複数回。 私の一番上にそれを置くつもりです それは、一度設定されますように、このプログラム、 そしてその後、記憶しています。 そして今、私は再びこれを試してみるつもりです。 私はプログラムを停止してみましょう。 そして今、それはそのバグを修正しました。 だから私は、反復的に、この時に向上しています。 プログラムはなっています もう少し複雑で、大きな、 しかし私は、いわば赤ちゃんの手順を取っています 問題のうち小さな刺さ それは良く取得します。 しかし、これも、ラメの一種です。 あのね? 本当に良いと誰かを求めるだろう、 恐ろしい声が出てくるのが好き? 声で誰か。 ええ、ええと。 アップさあ。 緑のシャツで。 だから、他のいくつかの楽しみがあると判明します 物事、美学と同様に聞こえます。 ここニャーです。 私は、[サウンド]タブをクリックします。 【MEOW]ニャーがあります。 [MEOW] [MEOW] 【MEOW] --actually何かを記録 ここで私たち自身の。 それでは、まさにそれをやらせます。 代わりに、この猫のサウンドを使用するのではなく、してみましょう ここでは先に行くと、あなたの名前は何ですか? ニック、はじめまして。 これは、デビッドです。 だから瞬間に、私は行きますよ 録音ボタンをヒットします。 そして、あなたはちょうどできれば ラップトップに叫びます、 「痛い、 "あなたあたかも ただ、壁に歩きました それははるかに高く評価されます。 1、2。 NICK:痛いです! DAVID J.マラン:恐ろしいです。 そして今ここに少し編集を行うことができます。 静かな部分を取り除くために行きます。 そして、私はそれは良いことだと思います。 どうもありがとうございました。 NICK:プレジャー。 DAVID J.マラン:私はしました ただ「痛い」と改名 しかし、今私はするつもりです 私のスクリプトに戻ります。 そして、通知は音ここに確かに存在します。 そして、私は先に行くつもりです サウンド痛いを果たし、 場合、私はそれをするつもりです それが唯一のエッジに触れています。 そして私はするつもりです それが好転があります。 それでは、ここで何が起こるか見てみましょう。 全画面表示を行ってみましょう。 [ビデオ再生] -Ouch! 痛いです! 痛いです! 痛いです! 痛いです! 痛いです! 痛いです! 痛いです! [END再生] DAVID J.マラン:だから実現 我々は少しの幸運取得していること。 私は彼の動きを持っているつもりです 一度に100ステップのように。 今の効果が起こっています だから、[コンピュータグリッチサウンド]をbe--します 常識の範囲内。 だから、チャンスはそれを洗練します さらに私たちは本当にしたい場合。 だから今のは別の概念を紹介しましょう​​。 私はと呼ばれるものに行くように 羊と使用何かを数えます 変数と呼ばれます。 これは、愛らしい小さな羊であり、 私はいわば彼の衣装を変更しました。 だから、デフォルトであっても 猫、あなたが描くことができ、アップロードすることができ、 あなたは、任意の数を行うことができます あなたのスプライト上の文字。 ここでのプログラムはです 英語で何をするつもり? あなたが今知っているだけで何に再び基づきます。 このプログラムは何をするのか? ええ、それはカウントするだろう。 一度に一つの番号。 我々は明らかにしてい このセットカウンターを持っています。 私はそれが何であるかわかりません、 しかし、多分それは変数です。 それはちょうど、コンテナ、xまたはyです。 しかし、ワードカウンタが多いです 数学者のxまたはyよりも記述。 だから我々はもののために英語の単語を使用することができます。 永遠に、ちょうどこれをやり続けることを意味します。 カウンターを言います。 さて、これはどこから来ましたの? まあ、それはことが判明 カウンタは可変です。 だから、ちょうど別のパズルです 私は事前に作成した作品。 そして、それが起こるにもかかわらず、 ここで同じ形状にすることがないように、 通常、あなたは言うだろう ここでハローのようなもの。 また、変数をドラッグすることができます そうは言っ取得しているものですようにします。 それから私は、私は、第二のを待ちます 1、カウンタを変更し、 1を加えることによってそれをインクリメントします。 正味の効果はあるように この愛らしいカウント羊。 けれども彼は彼自身を数えています。 今では非常に迅速です 退屈に行きます 彼が起こっているため、 本当に永遠にこれを行います、 それはまさにです プログラムのデザインが規定しています。 今別の例を試すことができます それは変数を活用しています。 こと、こんにちはこんにちはこんにちはと呼ばれるこの1 すぐに迷惑得るん。 今、この1は、2つのスクリプトがあります。 だからもう一度、私たちは赤ちゃんのステップを取っています。 私たちはスーパー何かを開始 小さな、それに追加し、それに追加。 今私は何かをしたいです さらにダイナミックな、 私はのためにリスニングしたいです 一度に二つの異なるもの。 左、上そう グリーンフラッグがクリックされ、 私は私が書いた変数を設定 事前にミュートと呼ばれます。 そして、私は任意に0に設定します。 だから、スクラッチは、真の持っていないと 偽、それは0と1を持っています。 だから私は、同じ考えを近似することができます。 そして永遠に、スペースバーがある場合 押され、その後0に変数を設定します。 または、申し訳ありません。 スペースを押すと、そして ミュート場合、変数は、0であり、 その後、1にミュート設定 それ以外は0にミュート設定。 これは、私たちがしている一種のように思えます ただやって仕事を元に戻します。 しかし、効果は何ですか? たびに私は、スペースバーをヒット 何が私の変数に何が起こります 論理的に、ミュートと呼ばれますか? 並び替えの反転されます。 これは、0から1に変化する、または0~1。 だから、数ブロックを取りました それを表現するが、すべてします 私は、の状態をトグルしているやっています 0もしくは1、または0または1この変数 たびに私は、スペースバーを押してください。 今ここにかけて、これは何をやっていますか? フォーエバー、ミュート場合は0です、 ミュートがfalseであるかのように。 それはミュートではないのであれば、あります そこに意味は、音アシカを果たし、 そして、2のためにこんにちはこんにちはこんにちは思います 秒、2秒待ってください。 だから今、これらの気づき スクリプトは効果的です 1ができるように、並列に実行するつもり ワンアクション、他のリスニングします そのアクションに基づいて意思決定を行います。 そして、それは永遠にこれを行うことができます。 【アシカBARKING] 【アシカBARKING] それは永遠にこれを行うために起こっていると 私がやったように[SEA LION BARKING]。 そして今、それはまだ実行しています 私は "ミュート"ゲームをしました。 【シーライオンBARKING]そして、それはです すべてのこの男は今もありません。 それでは、ここで別の例を開いてみましょう。 私はイベントに行ってみよう、 そして今、この愛らしいすぎます。 しかし、それは、2つのスプライトを持って注意してください。 とそうではないだけで2つのスクリプト 1スプライトが、二つのスプライト。 そして私は、私のように青い男をクリックした場合 すでに、私は1つのプログラムとして彼を見ています ここにそれは文字通り言います これは、私がイベントを受信したときに、 2秒間「ポロ」を言います。 だから、あなたがこれまでにプレイした場合 プール、ゲームマルコ・ポーロ、 オレンジ色の男のスクリプトがある場合 どうやら兆候、 たびに私は、スペースバーをヒット どうするつもりオレンジ男は何ですか? 彼が言うために起こっている「マルコ」を そして、これは新たなブロックです。 我々は、前にこれを見ていませんでした しかし、イベントをブロードキャストします。 そして、私はそれを呼び出すことができます 私たちが望むのイベントは何も。 私たちはこれに戻ってきます おそらく前に長いです。 しかし、イベントをブロードキャスト 1スプライトの方法です によって別の話をします 本質的にメッセージを渡します。 それはあなたが見るメッセージはありません。 それは視覚的なものではありません。 これは、コンピュータのメッセージのようなものです 他の男がリッスンしています。 確かに、青男、リコールので、 グリーンフラッグがクリックされたときにはありません。 私はイベントを受信したとき、彼は代わりに、持っています。 彼はクラスでこのノートを手渡し取得すると、 いわば、彼は「ポロ」を言う必要があります だから正味の効果は、ときに私がいることです 緑の旗を打つ、何も起こりません。 私は、スペースバーを打ったときしかし、彼は言います 「マルコは、「彼がで応答し、「ポロ」。 しかし、唯一のスプライトがアイム 対話することはオレンジ色です。 だから、これは一種の方法です スプライト間でメッセージを渡します し、それらを通信すること 互いに。 さて、最後のを見てみましょう ここで1は、スレッドと呼ばれます。 そして、それを再生することにより、これを確認します。 したがって、これらは、二つのスプライトです。 鳥が飛んの一種です。 彼はバウンスです。 何も「痛い、 "しかし、同じ考えはありません。 しかし、猫はかなりスマートなようです。 猫は明らかに何をしているのですか? そして、それを待ちます。 猫は明らかに何をしているのですか? それはちょうどバウンスはありません。 彼は鳥を以下です。 だから明らかに、方法があります ブロックの組み合わせでhere-- とのは本当に速いの猫を見てみましょう。 鳥に触れる場合は永遠に、次に再生します 音は問わないライオン4、。 私たちは、一度それを聞きました。 それ以外の場合は、に向かって指して 鳥は、1ステップ移動します。 それは一つだことを今事実 ステップは、鳥を与えるものです 利点のビット 最初に、私たちの場合代わりに、 例えば、この10を作るので、 ループの各反復は、彼だこと 時間の10のステップを動かします。 だから、より多くのスペース。 それでは、次に何が起こるか見てみましょう。 【ライオンロア]はすべてがはるかに良いです。 だから今のは改善してみましょう 反復的にこれらのほとんどの時に、 そしてそれに戻ってきます 関数の概念。 基本の実際1 クラス設計の持ち帰り。 ただ動作するプログラムを書くことはありません それは正しいですが、よくあります 設計されています。 そしてデザインは、はるかに主観的です あなたは時間をかけてそれで良くなるでしょう。 しかし、ここでは、向かっていくつかの赤ちゃんの手順を実行してみましょう 、動作するプログラムで始まります 絶対に、それは非常に良いではありません。 それは非常によく書かれていないのです。 だからここにこれを行うプログラムです。 咳、咳、咳。 プログラムは次のように何に見えますか? 私には正しく見えます。 それはのためのソファを言っています 第二に、それは待っています。 それは、それが再び、それは待機言います。 それは、それが再び、それは待機言います。 そして、プログラム暗黙的に 何のループがないため、終了します。 しかし、なぜこれがひどく書かれたプログラムですか? あなたは以前にプログラムされたことがない場合であっても? 同様に、何をこすり 間違った方法は、おそらくここに? うん? 聴衆:[聞こえません] DAVID J.マラン:その通り。 あなたが繰り返しています 自分で何度も何度も。 そして、文字通り、私はコピー&ペースト 何度も何度もこれらのブロックのうちの2つです。 そして、それはまさに正気のようなものです あなたが作るする必要があることを確認してください。 ちょっと待って。 私は実際にこれを行うべきでしょうか? それでは、これは何です 明白な解決策かもしれませんか? ループのいくつかの種類を持っています。 そして、私は非常にリコールしません パズルのピースは何ですか、 私が見た場合 ここでは次の反復、 確かに、そこにはありません ただ永遠にループ、 何回か繰り返してあります。 だから私は3を指定しました。 そして今、どのように、どのくらいのタイト気づきます はるかに簡潔なこのプログラムです。 そして意味では、どのように はるかに保守。 私は単語を変更したい場合 咳から何か他のものに、 彼はくしゃみいるよう、アチューような。 そして、私は1つにそれを変更 場所ではなく、3。 だから、これはすでにのように感じています わずかに良いデザイン。 私が代わりに開いてみましょう咳 2、私たちの第三の例。 コンピュータ科学者として注意してください、 私は一般的に、0からカウントを開始します。 さて、これは少し怖いが見 まず、その効果は同じです。 咳、咳、咳。 しかし、何が基本的であると思われます プログラムの先頭部分に新しいですか? 私は発言権を削除しました。 私は待機を削除しました。 そして、私が代わりにプラグイン何がありますか? 機能。 咳ブロック。 私は率直に言って、私は親切なようで、意味します 馬鹿の私はしなかった場合 ブロックで始まります それは、明らかに呼ばれています 「咳、「それは私が彼がそうしたいすべてです場合。 しかし、それはスクラッチに存在しません。 むしろ私は、中1に行ってきました パレットは、ここではより多くのブロックと呼ば​​れます 私はこの大きな紫色のものをドラッグ ここで私は、関数を定義することができますこと。 それは本質的に私をすることができます 自分のパズルを作成します 何も私を呼び出すことができ枚 欲しい、それは、私が欲しいものを行うことができます それはそれに名前を与えます。 それは私に新しい、紫色のパズルのピースを提供します それは、今私はそれが何を言う何でもありません。 ここので、この紫色の作品 ここではこの1つに対応します。 そして、それは何をするのでしょうか? それはのために咳を言います 第二の、そしてそれが待機します。 そして今、私は、ソートの作成しました 独自のカスタムパズルのピース、 それが動作しますように 正確に同じように。 だから私はこれをやり続けることができます。 そして実際、ますますがあるように起こっています モジュール化のためのより多くの機会、 そして、階層化のために、複雑 互いの上に。 しかし、この基本的な考え方、 確かに問題で0は述べています。 あなたは何をするつもりです 行うことです挑戦します スクラッチをダウンロード、またはそれを使用します ウェブ上で、そしてそれを楽しんでいます。 私たちはあなたのセットを差し上げます 要件、音を持ちます、 そして、パズルのピースをいくつか。 しかし、あなたは正確にこれをやります。 そして、あなたはあなたがしようとしていることを実現します 最初にいくつかの赤ちゃんの手順を取りたいです、 あなたのプログラムが取得するまで ますます複雑。 しかし考えると、これはあります 私はこれを行うことが最良の方法は? 私はこの本能を避けることができます おそらく、コピー&ペーストするには? しかし、問題を設定する前に、 0、と私たちは休会前に、 我々は1を取るだろうと思っていました より多くのボランティアたちができれば、 最終的なプログラムのために それはおそらく最もです フィッティングすべてで、今日の会場を与えられました。 ダウンさあ。 うん。 はい。 あなたの名前は何ですか? おっと。 それで大丈夫です。 両方が降りてきます。 そして、私は何とかこれに対処しますしました その次の10秒以内。 だからダウンに来て。 ダウンさあ。 私はここに来るしましょう​​。 いい加減にして。 大丈夫。 それでは、ここで見てみましょう。 そこでここでは、実際の高速気づきます、 あなたがアップに来たいと思います。 我々は、この2回の操作を行います。 そして、あなたの名前は何ですか? SABRINA:サブリナ。 DAVID J.マラン:サブリナと? YING GEE:英ジー。 DAVID J.マラン:英ジー。 両方はじめまして。 デビッド。 だからここに私たちの最後の例です。 アイビーの難しいゲームと呼ばれます。 そして、なぜ私たちは、あなたが行う必要はありません レベル1、あなたはレベル2を実行します。 そして、私たちはどこまで表示されます それを超えて、私たちは実際に行きます。 学生によって書かれました 私がリミックス昨年、 ので、これは行くだろうと ニューヘブンの優に超えます。 そして、私はあなたに起こっているゲームを与えます 上下の矢印を移動伴います、 そして、フィニッシュラインにエールを取得。 さあ。 [ビデオ再生] [MUSIC - NFL ON FOXテーマソング] [MUSIC - MC HAMMER、「Uは触れることができません  この"] -Uはこれを触れることができません。 Uはこれに触れることができません。 これに触れることができません。 私の、私の、私の、私の音楽はとても私をヒット ハード、私は、ああ、私の主を言うことができます。 で私を祝福していただきありがとうございます 韻と2誇大広告の足に気に。 あなたがダウンしている知っているとき、それは良いことです。 Oaktownから超ドープな近所の仲間。 そして私は、このとして知られています ビートええと、あなたが触れることはできません。 私はUがこれに触れることができないあなたは近所の仲間に言いました。 ええ、それは私たちが生きている方法です あなたはUがこれに触れることができない知っています。 男は、私の目で見て。 Uはこれに触れることができません。 ヨ、私はファンキーな歌詞をバストしましょう​​。 Uはこれに触れることができません。 新鮮な新しいキックやパンツ。 あなたはそのようにそれを持って、 あなたがダンスをしたい知っています。 だからあなたの席の外に移動してもらいます フライ少女とこのビートをキャッチ。 それはポンプで少しホールドローリングている間 ビットは、彼らが何が起こっているのか知っていると。 そのように。 そのように。 ミッションの冷たいので背面に引き出します。 彼らはあなたがあまりにも多くしていることを知ってみましょう これはええと、あなたが触れることができない動きです。 ヨ、私はUがこれに触れることができないことを言いました。 なぜあなたはそこに男が立って? Uはこれに触れることができません。 ヨ、ベル学校の中で、吸盤を鳴らします。 Uはこれに触れることができません。 私に曲を付け、リズムがそれらを作ります それは私が今、それらを与えているものです汗。 あなたはハンマーについて話すとき、彼らは知っています あなたは宣伝のショーについて話しています。 そしてタイトな歌手は、 そう彼らにマイクを渡す発汗。 何を学ぶか、テープ それが今取るとなるだろう 彼はチャートを焼くために起こっています。 懸命に働くかのいずれか合法 あなたにも終了する可能性があります。 あなたが知っているのでUはこれに触れることができません。 Uはこれに触れることができません。 それを打破します。 停止。 ハンマー時間。 スピンで流れに行きます あなたはこれに移動することができない場合 あなたはおそらく死んでいます。 だからで手を振ります 空気[聞こえません] これは、それが勝者にダンスのためのものです この、あなたが薄い取得するつもりです。 ただのためのあなたの尻をスライド移動 分のすべてのバンプをやらせます。 うん。 Uはこれに触れることができません。 Uはこれに触れることができません。 あなたはより良い宣伝取得します 少年Uはこれに触れることができません。 中ベル学校の背中を鳴らします。 それを打破します。 停止。 ハンマー時間 DAVID J.マラン:それはCS50のためにそれです! そんなにご参加いただきありがとうございます! 外あなたを参照してください。 [END再生] [ビデオ再生] [MUSIC - 「となりのサインフェルド」のテーマソング] -Heyデビッド。 -Hey、デビッド。 調子はどう? グッド仕事、今日。 -soあなたは何について考えています あなたはアウトジョークのためにやろうとしていますか? - いいえ、私は何も持っていません。 - 何if--何本が出て冗談ですか? 様、カートを開梱? -うん。 あなたはそれが何のことだ、知っています。 いいえ、全く話が好きなん-SO 紛争、解決法はありません。 わかりません。 次いで、約それは何ですか? -Nothing。 -so私たちは冗談を持っていることについてです 何も、私たちは何の俳優を持っていません。 誰がこの中になるだろうか? いや、いや、-NO。 私が意味する、私はそれになるだろう。 それにも-You'll? -Yeah! 人々は常に言っています 私私は文字です。 型ウェルは、私が意味する、それは本当です。 しかし、他の誰がそれになるだろうか? それはちょうどあなたをすることはできません。 - あなたはそれになり、ギャビン、ダン、 ダン、コルトン、Z'Myla、Alysse、ダグ、 デビッド、みんな。 それは何についてです-SO、 そして、誰もがそれでですか? -Absolutely何もありません。 - これはばかげています。