[バックグラウンドノイズ] それは動作しますか? PATRICK REBESCHINI:私たちは始めることができます。 OK。 すばらしいです。 始めましょう。 だから、私の最大の喜びです 今日ここにあなたのすべてを歓迎します 最初の講義のために はじめに、よく、の コンピューティングとプログラミング。 またCPSC、CS50として、またはよく知られています 100、正式にここにエールで。 だから我々はより興奮することができませんでした ここにあなたのすべてを歓迎します。 私の名前はパトリックRebeschiniです。 私はクラスのヘッドインストラクターです。 私はここで、グループを代表しています 約60スタッフの それはあなたと一緒に動作します 学期全体に。 この数は、ほぼ60私たちのです。 しかし、臨時に沿って コミットメントのレベル 我々はこの中に入れていること クラスは、クラスCS50を作ります イェール大学でそれが提供しています サポートの最高レベル あなたのすべてに。 そして、我々はより多くの誇りになることができませんでした ここで再び、このクラスを提供しています。 実際には、として、あなたはすぐに経験するであろう、 CS50は、クラスよりもはるかにです。 それはコミュニティです。 そして、あなたは一部になります すぐにこのコミュニティの。 これは二年目であります エールは、このクラスを提供しています。 私たちは、極端に構築しています 昨年の成功、どこ 初めて、 ここで、この大学で、 学部の学習アシスタント 教室で採択されまし​​た。 それはすべてで開始しました このクラスは昨年。 あなたが知っているように、クラスが教示されています 共同ハーバード大学と。 このコースを教えるために 私たちは、私たちすることができrelying--されています の偉大な専門知識を頼りに デビッド・マランとハーバード大学チーム。 ダビデは教えています CS50のためだけでなく、10年後。 そして、毎年、彼はされています 限界を押し広げます 教室での経験を向上させることができます。 ここでも、我々は、より幸せになることができませんでした 彼らとのコラボレーションを継続します。 の実際に一 最も興味深い部分、 私は今、このクラスを実行するのと言うだろう、 ハーバード大学とここにエールの両方で、 本当に信じられません 他家受精 アイデアを、改善することを目的と あなたのすべての経験を学びます。 この広範囲の結果として、それで 2間のコラボレーション 大学、CS50はに誇りに思っています 今年新バージョンを発表 顕著な変化を伴います。 ダビデは、すべてここでそれらを教えます。 したがって、このビーイングをplease-- 言った、私に参加してください。 そして与えることを歓迎 大きな拍手 ダビデを歓迎し、 ここイェール大学ハーバード大学チーム。 [拍手] DAVIDマラン:ありがとう。 ありがとうございます。 これはCS50、ハーバード大学のあります イェール大学の紹介 知的に コンピュータサイエンスの企業 そして、プログラミングの芸術。 そして、何それが意味することは、このコースということです 最終的に、問題解決についてです。 あなたの実際に多くのかもしれません 高校から出てきました または過去数年を費やしてきました あなたの友人の何いくつかを疑問に思います 昨年、または他のクラスでやりました。 そして、まだ、現実 どんな私たち、ではありません このクラスの一日の終わりに行い、 問題解決についてのことになるだろう。 そのようなものとして、おそらく取ります 実際にはいくつかの安心 その生徒の73% 両方ここでは、このクラスを取ります イェール大学だけでなく、ハーバード大学、 前のCSのクラスを取ったことがありません。 あなたはここに座っているのであれば 観客今日不思議 なぜあなたはここに座っています 聴衆の中に、今日、 または多分あなただけ続きます 何人かの友人と一緒に、 または多分あなたがしてきました 何にわずか好奇心 コンピュータ科学と プログラミングは、実現されています それにあなたのクラスメートのほとんど 左とあなたの右に その同じ人口統計的に非常に多くあります。 そして実際、私たちが見れば 昨年の統計で CS50の学生の本体内の、両方の ここでは、学生のハーバード大学で、58% 少ない快適なとして自分自身を説明します。 9%がより快適です。 そして33%は、両者の間のどこかです。 そして、は正式な定義はありません これらのバケットは何を意味するのか。 あなたは一種のあなたがいる知っています あなたがある場合は少なく快適。 あなたは少し不安を感じています 多分クラスにいると。 コンピュータ場合は、非常にわかりません 理科の授業では、あなたのための最終的です あなたがあることを理解 非常に良い会社インチ そして実際グレーディング、 そして、評価、 フィードバック、およびすべてのことと クラス内の支持構造 最終的には非常に個別化されています。 より多くのようにほとんどのいずれよりも デザインによって他のクラス。 そして実際、どのような最終的に このクラスの問題ではありません そんなにあなたが終わる場所 他の人に比べて、最大、 しかし、どこに、11週または最後で、 そして週に自分自身への相対 0ここで私たちの最初の。 だから、それは何を意味するのでしょうか? まあ、これは、それらの73%の意味します 撮影したことがなかった学生最後の年 によって前のCSクラス、 学期彼らの開始 言語に手を染めました 、スクラッチ呼び出したが、自分自身をwe 今日ここに表示されます。 そして、年末までに 学期は、彼らが行っていました 課題のこのリスト全体を通じ。 Cと呼ばれる言語で始まります。 何、実装 一見、行きます 以下のための挑戦のビットすることが いくつかの、しかし、かなり満足のいく、あなたに一度 スーパーマリオバウンス取得 ピラミッドを上下 ちょうどで、いえ、実装 ASCIIアートと呼ばれるもの。 最後year--を実装するもの 学生最後の年後、 それは彼らを実装した後でした 独自のシーザー暗号とvigenere暗号。 そのように暗号化アルゴリズム あなたは可能性があると スクランブル情報、次にスクランブル解除 秘密のメッセージを送信するための情報。 15のゲーム。 あなたから覚えていれば 小児期またはいくつかのパーティーの好意、 あなたが移動するその小さなプラスチック製のゲーム 番号は上、下、左、右 順番にそれらを取得しようとします、 実際にそのゲームを実装します そしてそこに必要なロジックを解きます。 そして、我々は中に手を出して フォレンジック昨年。 だから半ば学期により、 決してありませんでした学生 自分のキーボードを使用 前に、この目的のために、 ソフトウェアを書いていました いわば、回復します、 JPEG画像や写真 我々は誤っていたこと デジタルから削除 カメラからメモリーカード。 秘密のメッセージを回復 ビットマップ画像の中から、 および他のそのようなタイプの グラフィックのも同様。 私たちは、その後与えるに移行しました クラス全体の辞書。 ただ、本当に大きなテキストフ​​ァイル 15万英語の単語と。 そして、誰もが挑戦されました 何とかいわば、読むには、 メモリにそれらの言葉。 コンピュータのメモリに。 そして、質問に答えます フォームの、これは言葉ですか? これは言葉ですか? これは言葉ですか? 本当にただの実装 スペルチェッカー。 そして、それぞれに挑戦 大きなboard--と他の 可能性を確認するリーダーボード メモリの最小量を使用し、 時間の最低額で 実際に大規模な文書をスペルチェック。 私たちは、その後からに移行しました もの独自のWebサーバーを実装します。 そう言語でWebページをしていません HTMLとCSSのように、あなたが精通している場合。 しかし、実際に実装します サーバこと インターネット上でリッスン ブラウザからの要求のための 次にそれらの要求に応答します。 そして、私たち自身を実装します ウェブサイトのような電子貿易 学生は、株式を購入し、売ることができます。 ほぼリアルタイムで描画 ヤフーファイナンスから株価。 そして、学生が見ることができます どのように彼らのポートフォリオには、開発しています。 そして、最終的にはマッシュアップ GoogleニュースやGoogleの 地図これにより学生 用語の終わりまで用語によって、 クリックする能力を有し、そして ラウンド、とGoogleマップで検索します。 そして、すべてを参照してください。 ニュース記事その これらの特定の領域に近接しています。 だから、本当にゼロから60に行きます。 そして、道に沿って私たちが持っていたものを有します 昨年は、ハッカーの追加と呼ばれます。 それはバーを上げます あなたのそれらのためのさらなる 誰が非常によく、良いを持っているかもしれません 経験の量は、その9%であること のより快適。 そうそこだと気付きます 非常に高い天井 でも、それらの内 学生のための課題 別の背景から来ます。 そのための終わりに 日、私たちは最終的にしています これにはかなり単純に焦点を当てました。 しかし、これは何を行います 、問題解決を意味ですか? それでは、それを提案してみましょう 我々はこのようにそれを蒸留します。 だから、問題解決は本当にあり 絵のちょうどこの種。 だから、あなたは、いくつかの問題への入力を持っています あなたが実際に解決したいもの。 目標は、出力を得ることです、 その問題の解決策。 そして真ん中にあります 私たちは、ブラックボックスを呼び出します。 あなたは、必ずしも知っているか、してもいません そのブラックボックスの内部で何気になります。 あなたが知っているすべては、あるときには あなたはそれへの入力を供給し、 あなたがうまくいけば、出力を得ます またはそれからの溶液。 そして今日ながら、私たちは見てみましょう 入力と出力の両方で、 私たちよ長期的、およびオーバー 全学期のコース、 その箱の中に何に焦点を当てます。 そして、そこにあるだろう アルゴリズムと呼ばれるもの。 以下のためのステップバイステップのインストラクション 実際にいくつかの問題を解決します。 しかし、いくつかの入力の例は何ですか? ので、多分に単純なこと すべての学年の開始、誰か 出席を取ることをお勧めします。 だから我々は、1、2を行う可能性があります 三つ、四つ、五つ、六つ、 そして、私はどのようにしておくだろう その情報のトラック。 私はちょうど1、2を行くかもしれません、 三つ、四つ、五つ、六つ。 そして、ちょうど一桁台のようなものを使用します。 または私は実際に記録される可能性が この小さな長期的。 そして、どのように私はすべて表しています この部屋に人間? まあ、私はOK、のような何かをするかもしれません。 私は一人を参照してください。 大丈夫。 私は他の人を見ると、A 第三者など。 しかし、誰もがこのような人を数えていません。 だから、文字通り、私たちのほとんどは、我々はしている場合 でも、まったく何を描画しようとして、 おそらく行くつもりです 1 2 3 4、 多分少し空想を取得し、5、6、 7つ、8つ、9つ、10など。 そして、それは実際にはです システムは単項と呼ばれます。 1を意味しているUNOなどの宇野、あなた ちょうどアルファベットの1文字を持っています。 あなたはこのハッシュマークを持っています。 そして、私は、効率化のために、ちょうど描きました 最終的にこれらのハッシュマーク、 直線として。 しかし、私はそれらを描かれている可能性が 少し棒の数字として。 どこに表現するために 1人、1入力、 私はスティックを描きます 図またはハッシュマーク。 しかし、これはすべてのことの表現ではありません。 私が持っているすべては、これらのハッシュである場合 マーク、単独の棒の数字を聞かせて、 私はどのように表現することがあります 数15のようなもの? または部屋に15人? 私は1のような何かをする必要がある場合があり、 2、3、4、5、6、7、8、9、10、11、12、13、 14、15。 それだけで非常にうまくスケールしません。 入力が大きくなるように、我々 これより優れたシステムが必要です。 そして、それはことが判明 コンピュータが使用するシステム すべてが異なっていません あなたと私が知っているから。 この部屋に実際には、ほとんどの人、 あなたが少ないものの中であっても、 快適、必ずしもわかりません どのようにお使いのMacまたはPCが実際に動作します、 あなたはおそらく、少なくともこと、聞いたことがあります フードの下に0と1です。 いわゆる二元系。 だから確かに、コンピュータがより多くを持っています ちょうど彼らの語彙内のハッシュマーク、 しかし、の限りではありません 私たち人間としての語彙。 確かに、私たち人間は、バイナリを使用しません。 双2、0と1を意味します。 しかし、小数、デカ 10、0〜9を意味します。 だから我々は、より多くの表現持って 私たちの正常なヒトの世界で機能を提供します。 しかし、私は、これらのシステムを主張するだろう、 バイナリ、および小数点、およびすべて 間以降に、あります 実際にはすべて熟知。 例えば、検討 ここでは、この例では、123。 だから、これは本当に、もちろん、あります 我々は123のように知っている数。 しかし、私はちょうど描いたすべてがちょうどこのました いわばシンボル、グリフのパターン。 チョークボード上の図形の一種。 しかし、なぜ私たちはすぐに行うと、 直感的に123としてこれを把握? さて、あなたはのようだった場合 私小学校で、 あなたはおそらくこれがあることを学びました 1S列が、これは、10Sカラムであります これは、数百列です。 そして、なぜそれが便利なのですか? まあ、それは単純な算術あなたは今です シンボルのパターンから取得するために行います 数に我々は直感的に理解しています。 何であるか、100倍の1、その後、 10回2、および1回3、 もちろんこれは、ちょうど100で、 これは20であり、これは3です。 そして、私たちがtogether--ああ、それらを追加した場合。 だから、そこに推論の一種であります シンボルのなぜこのセットの背後 実際の数値何かを意味します。 さて、コンピュータがまったく同じことを行います、 しかし、彼らは唯一の1と高いカウントすることができます。 私がすることができたのに対し 3と高い数えます。 私は保たれている場合、実際に、私は可能性が行きます このシステムでは9と高く行きます。 コンピュータはゼロのみを持っています そして、そのアルファベットのもの。 だから、それは何を意味するのでしょうか? まあ、それはちょうどその場合はコンピュータを意味します 表現するために望んでいる、と言う数0、 多分3 characters-- 3を用いて、 いわばアルファベットの文字、 それは、コンピュータが0を表す方法です。 そうではないすべてのこと怖い今のところ。 それは、私たち人間はどうなるのかを正確です。 実際に、私たちのほとんどは、ちょうどだろう とにかく先行ゼロを無視します。 それが望んでいる場合は、コンピュータ、 番号1を格納します、 これを行うとしているが判明しました。 そして、コンピュータは、格納します 数2ではありません 単項システムをするつもり、 これは私が以前に言及しました。 実際にこれを行うために起こっています。 そして、これはおそらくです ここでパターンが開始 ほとんどの人にはあまり顕在化します。 すなわち、これは3である、2う。 不思議なことに、これは現在、4です。 そして今、それは本当にありません おそらく不可解なように見えます、 しかし、それは我々が検討している場合ではありません どのようなバイナリ本当に意味。 それはあなたが2を持っていることを意味します あなたのアルファベットの文字。 だから、二つの可能な文字 各プレースホルダ。 本当に私たちが行っていることを意味するように 1S場所、または2S場所を必要とします、 4S場所とその後 8、16、32、64。 そして、そこの違いは何ですか? このように1、2、4、8、16、32、64です。 そして、我々は110、100,000万を持っていた前に。 そこに類似性は何ですか? そして、パターンは何ですか? うん。 学生:2のパワーズ 代わりに10の累乗の。 DAVIDマラン:うん。 2のべき乗の代わりに10の累乗。 そして、私は維持したい場合 行く、8、16秒などforth-- しかし今は、この種を持っている場合 手掛かり、今二元系の 実際には非常に簡単です。 なぜ0のこのパターンは、 コンピュータ0の世界では? まあそれは、2〜4回0だから 回0、1回0と0を得ます。 なぜこれがナンバー1ですか? 同じ理由が、今我々 1列に1を持っています。 この2なぜですか? 我々は2S列に1を持っています。 そして、どのように、私は表しません 、バイナリで数7を言いますか? 大きな声で言います。 STUDENT:スリー1秒。 DAVIDマラン:スリー1秒。 だから、1、1、1、我々はちょうど必要があるので、 4プラス2プラス1は私に7を与えます。 大丈夫。 だから、そこからどのように行います 3プレースホルダ8を表しますか? うん。 学生:1、0、0、0。 DAVIDマラン:1、0、0、0ええ。 そして、まだ多分、私が親切 技術的に必要とするの ボードに別のプレースホルダを追加します。 私は私が実際に収まるようにしたい場合 このような何かをする必要があります。 だから私は実際に今使用する必要があります 8S列には、それは大丈夫です。 しかし、コンピューティングの興味をそそるものがあります それは私たちに何かをコストになるだろうということ。 今、あなたのコンピュータでより多くのRAMが必要です。 あなたはより多くのメモリを必要とします あなたが何かを必要とするので、 それを格納するための物理的 追加ビット、いわば。 バイナリ桁。 そして、実際にすべてのことが起こりました ここでは、小数のシステムのように、 我々はアップし、最大の番号を追加し続ける場合 そして、アップ、我々は7〜8に5〜6に行きます それは文字通り、1を運ぶようなものです。 そして、他のすべて 戻ってゼロにダウンします。 しかし、我々は実際にどのように表現しますか コンピュータに物理的にこれらの事? まあ、一日の終わりに、のみ 物理的な入力は、私のコンピュータに入ります ここでは、この電源コードはそうであり、 壁から電気や電子。 それで、どのように私は何かから入手できますか 実際にそのような物理的 代わりに、このような考え方を表します。 さて、私たちは何ができますか? 我々はそれを検討することもでき、すべての権利、 多分電気が流れているif 私はそれを保存し、それにしがみつくことができます。 そして、私は上に保持していた場合 いくつかの電気へ、 それはちょうどに起こっています 任意の1を表します。 そして、私はプラグを引き抜くと、 そしてそこには何もありません、 あなたはそれがちょうど起こっているのを知っています 任意に0を表します。 だから、何かがあるかどうか、1。 何もない場合は、0。 それとも、これを行うことができます もう少し視覚的。 ここでは0です。 行く興味深いものは何もありません 私の携帯電話の背面について上。 しかし、私は少しを許可した場合 流れるように電気のビット、 それは少し明るいですにもかかわらず、 ここで、私の懐中電灯が続きました。 だから私は、電荷およびエルゴを蓄積してい この携帯電話は現在、1を表します。 だから0 1。 どのように高いことができます1 iPhoneでだから私 この種のアプローチを使用して数えますか? 私は1を意味します。 これは、すべてその説得力はありません。 だから我々はより多くの何ができますか? まあ見てみましょう、その上の誰であります 今私が借りることができるとの電話? 携帯電話を持っている人 懐中電灯とに建てられましたか? 私は借りてもいいですか? 私はそれがロックを解除する必要はありません。 大丈夫。 ありがとうございました。 私はこれを借りてみましょう。 大丈夫。 だから私は今ここにスクロールした場合、 私は今何を表すのでしょうか? うん。 これはであるため、だからそれは3です 1秒の列、これは2秒の列にあります。 だから1プラス2は3です。 そして、我々は、取得しようとした場合 本当にああcreative--、ありがとうございました。 非常に先制。 大丈夫。 私は今3 iPhoneを持っています。 大丈夫。 そして今、私はありませんthis-- これよりもさらにを行います。 私は今何を表すのでしょうか? ただセブン。 しかし、私は物理的に必要な この場合は、より多くのメモリ。 しかし、それはそれがすべてです。 あなたはon--何が起こっているかを考えることができます お使いの携帯電話の内部にyou--に感謝 ちょうどだスイッチであるとして オン、オフされています。 そして、あなたは今まで聞いた場合 ワードトランジスタ。 それとも、今まで聞いた場合 マーケティング内部インテルを話します、 それは、ハードウェアの種類に話しています それはあなたのコンピュータの中です。 IntelはCPUを行い、 中央処理装置、 脳のようです お使いのコンピュータの内部。 そして、これらのCPUと それらが接続しているもの 小さなスイッチのとてもたくさんを持っています。 スイッチの何百万、何十億 それは、オンまたはオフのいずれかとすることができます。 コンピュータだから、ありがたいことに、 私たちのMacとPCのような、 7または8よりもずっと高いカウントすることができます 彼らは3よりもずっと多くを持っているので、 または4ビット。 の同等よりずっともっと 私たちは持っていた3懐中電灯。 しかし、今これを取得するために開始します すぐにかなりつまらないです。 私は今、実際にできるようにしたい場合 もっと面白い何かをします、 私はジャンプできるようにしたいです このようなものに。 ASCIIので、それは本当に便利ではありません 頭字語が、米国標準コード 情報交換用。 それだけで何年か、意味します 前に私たち人間は、決定しました あなたは私たちが行うことができるようにしたいものを、知っています ただ数字よりもコンピュータともっと。 私たちは、彼らはただにしたくありません 高価な電卓です、 私たちはのようなものを行うことができるようにしたいのですが ワープロ、いえ非常に簡単。 その後、私たちは、電子メールや他のそのような媒体を持っていました。 だから世界は何年か決定しました 前にこのシステムASCIIによれば、 あのね? 特定のタイプで プログラムいつでもあなた 数に相当するものを参照してください。 65、ビットのパターンのように。 そして、我々は行うことができます ここでは、ボード上の数学。 65を表すビットのパターン。 十進数で65のようなものと考えてはいけません。 任意にそれを考えるが、 世界的に、一貫して資本として A. そして世界 決めた、あなたは何を知っていますか? のは、ビットの別のパターンを見てみましょう。 そして、私たちが今まで見たら 数66、ちょうどしてみましょう すなわちと仮定 Hへの資本B.早送り そして、私、あなたが72または73が表示される場合は、その それぞれ、HおよびIであるべきです。 だから限り、全体として 世界はこの時に同意します。 あなたは電子メールを受信したときだから、または あなたは、USBスティックにファイルを取得することになります that--ときのようなか何か あなたはビットのパターンを参照してください、 あなたはそれがこれをする必要があることを知っています 文字または他のいくつかの手紙。 しかし、それは右、コンテキスト固有のです。 電子メールプログラムが解釈可能性があります 文字としてこれらの事、 しかし、グラフ電卓や 電卓は表すか又は解釈する可能性があります これらの事はもちろん、手紙など。 前記、小さなクイック口コミをだから。 これは多分3文字です 私に送られていた電子メール。 ボンネットの下にそれがすべてでです 0と1、しかし、我々は気にしないでください。 私たちは、抽象的に開始するつもりです 手紙に0と1以上です。 そして、私は0と1のパターンが表示された場合、その 本当に、72、ヒント、ヒント、73を表し、 そしてその後33、メッセージは何ですか? STUDENT:[聞こえません] DAVIDマラン:あなたが考えるのであれば バックちょっと前、HI 私がしようとしていたメッセージでした Hが72であるため、ここでの通信 私は73であり、そして今33--あなたはないでしょう 必ずしも事前にこのことを知って、 実際にあなたならばそれが判明します チャートとシステムの詳細を参照 その人類は年に合意しました 前、それだけで感嘆符です。 そして実際のパターンがあります すべての文字に記号と数字 あなたは、キーボードの持っているかもしれません。 大丈夫。 抽象さらにましょう。 私たちはしたくない場合 数字や文字のようなもの、 私たちは、実際にはグラフィックスを実装したいです。 さて、あなたは今までにした場合 頭字語RGBを聞きました。 今はちょっと時代遅れだが、 それは一種のまだそこです。 RGBは赤、緑、青です。 そして、それは単にシステムです 言って、あなたは何を知っています、 のは、ビットの3セットを使用してみましょう。 8ビットのセット、8の別のセット ビット、8ビットの別のセット。 とのは、それらのビットを使用してみましょう どのくらいの赤い私たちを保存します 私たちの画面にしたい、どのくらい 我々は画面上にしたい緑、 そしてどのくらいの青い我々は我々の画面にします。 そして、これはちょうどかどうかということを意味します 赤のためにlot--大きな数を持って、 それは私に赤の多くを与えることを意味します。 あなたがのために大きな数を持っている場合 緑、私は緑の多くを与えます。 そして、あなたは少しだけを持っている場合 青や33のような少数の、 私は青の少しを与えます。 そして、あなたはそれらを組み合わせることが起こる場合 いわば3の大きさ、 あなたはかろうじて上で見ることができますthis--を取得します ここでは、プロジェクタが、この暗いです 黄色や茶色の色合い。 しかし、これはそれを使用して、言うことです 8プラス8、プラスのパターンプラス8-- 24ビットのパターン どのようにコンピュータが希望です 1黄色の色合いを保存 小さな画面上のピクセルに点在しています。 だから我々は、小数点以下に0と1から行ってきました アルファベットの文字に数字。 以上の興味深い、色付きのドット。 まあ、当然のものは、その後、次に来ますか? さて、あなたの画像は何ですか Facebook上で参照するか、電子メールで取得しますか? 等? 定義は何ですか 技術的に画像の? うん。 よろしければなる画像とは何ですか あなたのスクリーンで本当に近くに見えますか? うん。 これは、ピクセルのちょうど全体の束です。 実際には、あなたが取る場合、あなた 多分後に、ラップトップ、 本当によく見ます it--に応じて、 上どのように高価なノートパソコンであり、 どのように高品質の画面があり、 あなたは非常によく、すべてのを見るかもしれません 画面上の小さな点。 そして、それらのドットまたはピクセル、 これがあります意味します その内のすべてのピクセルを表す24ビット あなたがFacebook上で参照した写真、 またはあなただけかかったこと あなたのiPhoneに最近。 そしてそうそれは我々が得る方法です グラフィックスのようなものに。 まあ、ビデオは何ですか? ビデオは、グラフィックスのセットだけです 再びスクリーンによって飛んで そして、何度も何度も。 だからビデオは本当に、単にパターンです グリッド、行を表すビットの ドットの列、 画面イメージによって飛んで、 画像の後に、画像の後、別名 映画。 だから、入力と出力のためのそれです。 我々が今持っているすべてがあります 仮定、あなたに 私たちは、コンピュータをしたい場合は、何を知っています 情報を表現するために、 我々はそれを行うためのシステムを持っています。 我々は0でそれを行うことができますし、 一日の終わりに1秒。 しかし、我々は、抽象的なことができますので、 その上に、話すこと もっとを表すように 面白いもの。 そして、ここでCS50でアウトにし、中 コンピュータサイエンス、より一般的に、 我々は今、肩の上に立ちます すべての人々の人 それを考え出した人たちの前に来ました。 そして今、ちょうどそのコンピュータを想定 入力と出力を表すことができます。 しかし、今、実際にしてみましょう 彼らと何かをします。 だから、アルゴリズムはちょうどセットです 命令の、ステップバイステップで、 いくつかの問題を解決します。 そして、もう一つ、このような問題は何があるかもしれません。 だから、これは古い学校です 技術、電話帳。 そして、の内部の電話帳があります 名前と番号の全体の束。 そして、それらの名前は、一般的に アルファベット順にソート。 私はで誰かを探していましたので、もし マイク・スミスのように、この電話帳、 やろうとして典型的な人間は何ですか? さて、あなたは単に開くことができます それまでは、最初のページを見てください。 私はマイク・スミスが表示されません。 2ページ目に回し、 私はマイク・スミスが表示されません。 そして、ちょうど行くと続けます。 ステップのアプローチによって、この手順は正しいですか? うん。 それは一種の愚かな、そうです。 それは右、非効率的です。 永遠に取るために起こっているので マイクを取得するが、それは正しいです。 マイクがここにある場合ので、 私は確かに彼を見つけるでしょう。 それでは、もう少しです どうするつもり合理的な人? 彼らはまだ、前面に開くことがあります 多分電話帳を飛びます 一度に2ページ。 2つ、4つ、6、8。 私は実際にすることはできません 物理的に非常によくそれを行います。 しかし、理論的に、これはあるべきです 一度に2つのページ、倍の速度。 このアルゴリズムは正しいですか? STUDENT:[聞こえません] DAVIDマラン:必ずしもそうではありません。 良い。 なぜ警告? 学生:彼は1になる可能性があるため あなたはスキップしているページの。 DAVIDマラン:うん。 だから私は近いと近づいたとしても。 彼は悪いことで、ちょうど偶然だ場合はどう 2つのページの間に挟まれた幸運、 私が飛んだということ? だから我々は、このための修正が必要になります。 私たちは、実際に必要とします その後、ちょっと待って、と言います、 我々はあまりにも遠くに行くかもしれない場合は、多分 我々はTの部分をヒットした場合、 Tのために我々がすべき、スミスの後に来ます 少なくともバック少なくとも1ページを倍増。 だから固定可能な、しかしがあります そこに条件付きの問題。 だから、二倍の速さですが、あなたがかもしれません 少しだけをバック倍増する必要があります。 彼の部屋に誰もいない、も、あなたの場合 本当に、もう電話帳を使用していません 初めに開始する予定です。 何をする マイク・スミス先をお探しですか? あなたはSさんにほぼ行くつもりです。 それとも、本当に持っていない場合 紙の上でチートシート、 あなたは、少なくとも行くつもりです 大体真ん中に。 そして、確かにしないように 本の正面。 あなたは見下すつもりです。 そして、数学的に、あなたはおそらくです Mセクションを見に行く、これ ほぼ中間にあります。 そして、あなたはするつもりです 真である何を実現? マイクはどこにありますか? STUDENT:[聞こえません] DAVIDマラン:うん。 そこで彼は、この側に終わりました。 だから、あなたは何ができるのでしょうか? まあ、両方の比喩と文字通り 一度半分に問題を引き裂くことができますか? そして、あなたが投げることができることを知っています 離れてこの問題の半分。 そして今、我々は基本的に残っています 同じ問題が、それは半分に大きいです。 そして今何 命令のセット? アルゴリズムは何ですか マイク・スミスを見つけるため? それは、まったく同じことです。 さて、これはMであることを起こります セクションこれはZ部であり、 しかし、基本的に 式は同じです。 真ん中にほぼ移動し、 ああ、それをくそ、見下ろします。 今、私はTセクションにいますよ、 私はあまりにも遠くに行ってきました。 しかし、ここでは、あまりにもすることができます その同じロジックを適用します。 問題の半分を投げます 離れて、今私たちがしています だ問題が残さ サイズの四分の一。 そして、我々は繰り返すことができ、我々は繰り返すことができ、 我々は理論的になるまで繰り返すことができます 上の左のちょうど1ページがあります これはマイクのいずれかであるかではありません。 それでは、このアイデアについてとてもパワフルですか? 私はすべての後に意味、それはかなり直感的です。 誰に開始する予定はありませんです 電話帳の始まり そして、マイク・スミスを見つけるために、1,000ページを反転させます。 この部屋にほとんど誰もが起こっています アルゴリズムのおおよそようなものを行うには 引き裂きのために保存します。 そして、なぜ我々はそれをやりましたの? まあ、効率性を考慮してください。 どれだけこの優れて考えてみましょう このアルゴリズムは、それを分解しました その構成部分に。 だから私は最初に何をしましたか? 私は電話帳をピックアップ。 そして、コンピューター科学者、 プログラマ、 より一般的にそれが起こっている、判明します 0にすべてのカウントを開始します。 どうして? まあ、それは少し奇妙です 私たち人間は数えることが、一般的に、 1から始まります。 最小数何ので、 我々は明らかに基づいて表すことができます でも、私たちの古い小学校の数学上の? まあ、それはかどうか、0でした それは、10進数またはバイナリです。 そして、あなたは世界に表示されます コンピューティングとプログラミングの、 具体的には、我々が開始します 0からすべてを数えます。 だから私は、電話帳のステップ0を拾いました。 私はに開くつもりです 電話帳の真ん中。 そして、それは確かです 私が何をしたかの発現。 そして、ステップ2は、名前を見ました。 ステップ3は少しあります 概念的に異なります。 私は自分自身に質問をしています。 スミスは名前の中にある場合は、 私は決定を下すつもりです。 彼は名前の中でなら、 その後、私はマイクを呼ぶつもりです。 そして、私は決定を下すつもりです 情報のその部分に基づきます。 ない場合は、スミスがある場合 以前の左側に本の中で、 私は途中まで開くつもりです 本の左半分の。 そして、ここでの賢さです、 私は2つのステップに戻って行くつもりです。 私はの並べ替えするつもりです 自分の肩の上に立ちます そしてちょうど私が行った過去の作品を繰り返します。 しかし、私は残っている作品です 以下、以下、より少ないです。 しかし、まだ動作するようになるだろう。 しかしマイクは、代わりに、以降の場合 右の本の中で、 私は途中まで開くつもりです 本の右半分の、 その後、ステップ2に戻ります。 しかし、実際には第四のシナリオがあります。 マイクのいずれかここで、 またはここで、あるいはここで、or-- 学生:そこにありません。 DAVIDマラン:そこにありません。 そして実際、私たちは考えていない場合 この最後の第4のシナリオ 私たちのプログラムは、バグだらけであるかもしれません または何らかの方法で欠陥が。 そうでなければ、その場合には終了します 我々は、すべてのマイクを見つけていません。 そして実際、あなたは気づいた場合 お使いのコンピュータがハング、またはすべて 突然の単語やいくつかの他の プログラムは単に、予期せず終了します 時にはあなたのエラー メッセージは、文字通りです。 このプログラムは予期せず終了します。 これは、理由の任意の数であることができます。 しかし、時にはそれはです このような単純なもの。 人間のプログラマ 誰がそのソフトウェアを書きました ああ、そこだ、ということに気づいていませんでした 実際に発生する可能性が示さ事。 そして、あなたはにコードを記述していない場合 この第四のシナリオをキャプチャ それは時々確かに予想外であります コンピュータが実際に何を行う可能性があります。 今度は、アウトと呼びましょう これらの事のいくつか。 私は、ここに黄色でだから 用語を強調しています それ以降、私たちはしています 関数を呼び出すになるだろう。 の世界では機能 プログラミングは、単にアクションのようなものです アクションのステートメント。 だから、見て開いて、拾います 、コール、オープン、オープンで、終了します。 つまり、関数、手続きです、 アクション、同義語、任意の数の 同様に機能するであろう。 今、これらのものは黄色で今何がありますか? であれば、それ以外の場合は、他の場合 他に、これらは何ですか 我々はコールするつもりです プログラミングの条件、 または支店、意思決定 ポイント、可能ならば。 しかし、どのようにどのフォークを知っていますか いわば、取るべき道で? 我々はハイライトする必要があります 右の用語 が、これらはどの はい・いいえの質問。 これらの真偽の質問。 名前の中でスミス? 以前の本の中でスミス? スミス以降の本の中で? これらは、へ​​質問です いいえはい、またはそこにあります、 または同等真、またはfalse、または 等価的に、1または0の答え。 その間あります ちょうど1最後のピース。 ここでこれは、効果の種類を持っていますか? あなたのプログラムかどうか 前に、どのようにだろう どのようなステップを説明し 7と10はやっていますか? 何って言ったの? STUDENT:再帰的ステップ。 DAVIDマラン:再帰的ステップ。 はい、基本的に。 それは技術的に反復的です ここであなたが精通している場合。 しかし、我々はそれに戻ってきます。 しかし、それは明らかに何かをやっています。 ここでも、それは誘導です サイクル、ループ、右。 あなたは文字通りつもりです バックいくつかの以前のステップへ。 だから確かに、これがために起こっています サイクルのいくつかの種類を実装しています。 しかし、あなたが取得するつもりはありません 右、このエンドレスで立ち往生。 あなたは常にチェックしている場合があるため、 ここではマイク、または左へ、またはここではありません、 最終的に彼はそこにはないだろう。 そして、あなたはちょうど完全に終了することができます その最後の行あたりとして。 だから、語彙のためのそれです。 そして、これは私たちが希望でした 一般的に擬似コードのコードを呼び出します。 これは、実際の言語ではありません。 それだけで非常に簡潔な英語です、 それはポイントを伝えます。 ここでは正式な構造がありません。 あなたはちょうどそれが少数だ使用します 言葉が、明らかなように単語 あなたのアイデアを通信することができますように。 今、そのアルゴリズムはどのように良いです そしてそれがどのくらい良いですか? まあ、我々はに入るために必要はありません 数字か何かの仕様 そのような。 しかし、我々はで見ることができます この溶液の形。 だから我々はいくつかのxyプロットを描く場合 ここでは、ここで横軸の。 ちょうど問題のサイズを呼ぶことにしましょう​​。 そして、コンピュータ科学者は、希望 一般的に、ここで変数としてのnを使用しています。 だから、nは部屋内のページ、またはnは人、または それが何であれ、あなたはカウントしようとしています。 そして、縦軸の上 左、それは解決するための時間となります。 だから何秒それをしません マイク・スミスを見つけるために私を取りますか? それとも、どのように多くのステップを取るのでしょうか? それはどのように多くのページターンを取るのでしょうか? だから、それはそれはいくらです 私の問題を解決するための時間です。 そして、我々は最初のを描くかもしれません アルゴリズムスロープ、可能ならば、 赤でちょうどこの直線として。 そして、私は、nそれを呼ぶことにします。 なぜnは? なぜそれがこの1つだけです 1の関係に? まあ、ベライゾン場合、または どのような電話会社 に1より多くのページを追加します 電話帳来年、 それは、マイク1を押すかもしれません 近い最後まで以上のステップ、 そのページがどこにあるかによって異なります。 だから効果はわずかかもしれません 1以上の第二を追加すること。 または1つ以上のページをめくります。 1比が1。 これに対し、第2のアルゴリズム。 それは、直感的にどのくらい速かったですか? 私は一度に2つのページをどこに行きましたか? うん。 STUDENT:[聞こえません] DAVIDマラン:うん。 だから、二倍の速さになるだろう。 そして、我々はここでそれを引きます 規模に応じました。 それはまだ直線であり、 赤線よりも低いです。 いくつかの番号のため、 ページの、それがかかる場合 あなたとこの多くのステップ 最初のアルゴリズム、 半分のあなたを取るために起こっています 第二と同様に多くのステップ。 そして、そのように黄色の線 第2のアルゴリズムを記述する ちょうどその下にあることを行っています。 しかし、何が本当に強力なのはにあります 3番目と最後の考えます、 そして、驚くほど最も直感的な この形状を有するアルゴリズム。 技術的には我々が呼ぶよう この対数曲線。 この場合、n個のベース2をログに記録します。 しかし、それは本当に問題ではありません。 本当に重要な基本的です それは持っている異なる形状。 そして、あなたはどれだけ考慮することができます このラインずっと短い本当に 長い目です。 それは絶えず増加しています。 それは完全に平らにしません。 しかし、それはそんなに多くゆっくりと今までに成長します この問題はどんどん大きくなるにつれて。 そして、あなたはそれと考えることができます Verizonはちょうどない場合way-- 来年しかし、ダブルス1ページを追加 電話帳のページ数、 最初のアルゴリズムかもしれません 多くのステップとして二回取ります。 それが1,000ページこのだ場合 年、2000頁来年、 マイクはそれほど遠くかもしれません。 だから、彼を見つけるために千余分なステップです。 第2のアルゴリズム 唯一の500以上のかもしれません 再びので、彼を見つけるための手順、 私は一度それ2を飛んでいます。 しかし、第3のアルゴリズムについては何? Verizonは2倍になります 電話帳のサイズ 1000〜2000年の翌年 ページ、どのように多くのより多くのステップ 私の第3のアルゴリズムは取るつもりですか? ええ、それはただ一つです。 そして、それは強力なアイデアです。 あなたは千ページの一口を取ることができます その問題のうち一度に。 そして今、あなたが考慮すれば、 愚かなシナリオ、 それは一種のに話します intuition--のこの種のパワー 電話帳のような、持っていた場合、40億 ページは、本当に大きな問題のように感じています。 そして実際、それはかもしれません 私に40億ページを取ります その中のマイク・スミスを見つけることになります 最初のアルゴリズムの場合。 しかし、どのように多くの手順は、それだろう 第3のアルゴリズムで取ります 4の間でマイクを見つけるために 紙の億個? だから40億あなたは半分に引き裂きます。 あなたは20億を得ます。 次いで10億500百万円、 2.5億、125 million--それ これはあるように感じています しばらく時間がかかるつもり。 私は、32本の指を必要とするかもしれません その高をカウントアップします。 しかし、それは確かのようです 32ページの涙のようないくつか。 あなたは4から行くことができます 億1ページ分割へ の元の番号 半分のページ32倍 あなたがが残っているまで ちょうどその単一のページ。 さて、もちろん、私はここに浮気しています。 それは我々だけでソートされていることはありません 最初の2に完全に愚かなの アルゴリズム。 私はいくつかの意味で不正行為、またはしています 本当に私は仮定を活用しています。 どのような電話帳についての本当でした 許可された元の形式で 私も、その第3のアルゴリズムを使用するには? ええ? 観客:それはアルファベット順に並べました。 DAVIDマラン:それは、右のアルファベット順に並べたのですか? それだけでランダムにあった場合 順番は、これが無駄です 時間の、この全体の会話。 私は、すべてのを見ています ページには、ランダムな順序でいた場合 私の前にマイク・スミスを見つけるために 彼はそこかではありません結論付けることができます。 だからコーナー我々 カットしている私が持っているということです 想定さという点で、他の誰か この場合は、私のために仕事をしました。 そして、その結果、最終的に招待 質問は、よく、ちょっと待って。 どのように千をソートします 名前と番号のページ? それは実際には異なるです 問題、何か 我々は将来的にに戻ってきます。 しかし、あなたがウェブサイトについて考えるとき GmailのためのFacebookやGoogleのような Googleのようなもの 独自の検索インデックス、 あなたは何百万または数十億を持っている場合 最近格納されているデータの断片、 sea​​rching--としないように言及 これらのproblems--をソー​​ト 最終的にはそれ自体が課題です。 そして実際、これはその後です これらの課題のひとつ 私たちが見ることになりますこと。 だから今の瞬間をみましょう そして、CS50を見てみましょう 自身とあなたの感覚を与えます この学期は店で何。 確かに、あなたはまだ行っていない場合は、 このURLを見てみましょうか。 そして、パトリックは示唆したように 私たちがしている今年、へ すべての重要な投資を行います コー​​スのサポートでより TAの面で構造 そして、のCA、営業時間、 セクションの可用性、および デジタルオンライン材料、並びに。 実際に、当然の換算で 講義では、我々は今日ここにいます。 そして、期待この もちろん正式年 今日に出席され、コースの 最後の講義、そしてもちろん おおよそ学期の途中で 間のすべての講義と 一般的に利用可能になります 金曜日の午後に オンライン、両方のエール学生のための そして、ハーバードの学生は今年。 実際の一 根本的な変更があります 我々はで採用していること ハーバード非常パラダイム ここでは、最後の行ったように 今年と今年、 その結果、同様に、我々はまだフィルム最も ケンブリッジのコースの講義 しかし、以前に利用可能に 我々は過去に持っているより そのようyou--のものよろしければ 例えば、したいと思い、 材料上のヘッドスタートを取得 最初の週末ではなく 第二週末よりも、あなたが持っているでしょう 材料のこれらの種類へのアクセス、 検索可能、埋め込み可能、​​hyperlinkable 以前のすべての関連リソースへ。 トピックの面では、あなたを与えるために 当然のtrajectory--感 このうちのいくつかはのための専門用語であるかもしれません 今、しかし長い間、安心ではありません。 我々は最終的に、今日から始めましょう、 1つのプログラミングを見ていると スクラッチと呼ばれる言語。 私たちは、その後に遷移します Cと呼ばれるものの次の週 その後、他の建物を見 課題を解決するためのブロック アレイおよびアルゴリズムと呼ばれるもの、 どのように我々は我々のアドバンテージにメモリを使用します そして、欠点、および データ構造のようなもの、 そして、その後のテールエンドに向かって 機械学習を見てクラス 別のを見て パイソンと呼ばれる言語、 ウェブがどのように動作するか、どのようにインターネットより 一般的に、HTTPなどのプロトコルを動作し、 以下のようなデータベース用の言語 SQL、Web用のJavaScript、 そして最終的に抱き合わせ 一緒にそれらのすべて。 だから確かに、で 一日の終わりには、 このクラスのスクラッチに学習しません またはCまたはPythonやSQLやJavaScript。 代わりに、より一般的に学びます コンピュータサイエンスや財団 その、あなたは意志 プログラムする方法を学びます これらの任意の数の 道に沿って言語。 だから確かに、目標の一つ 最終的にはもちろん、 もちろんのすべてをオフに取ることです それらの最終週までに補助輪 この後に、あなたができるように あなた自身のfields--に戻ります それがあるかであるかどうか ないコンピュータサイエンス またはエンジニアリング、自然の中で 科学、芸術、人文科学、またはbeyond-- これのいくつかをもたらします コー​​スのアイデアと、このフィールドの アイデアと実用的な 独自のドメインへのスキル その中に問題を解決するためです。 我々はその間、ここで何をしていることでしょう 今日の後、ほとんどの木曜日で 一流のコースの頭であります 我々はウォークスルーを呼ぶもの コー​​スの問題セットの。 だから毎週ときに我々 問題が設定されている、我々はよ 場所に歩くこと もちろんの課題このように、 あなたにいくつかのヒントを提供し、 トリックや設計技術。 しかし、あなたができないなら 人のものを作るために、 これらの同じを実現 リソースが埋め込まれます 当然のの一つ ティーチングアシスタント 問題にも同様に、自分自身を設定します。 問題は違って、今年設定します 昨年、フィードバックに基づいて、 まだ金曜日にリリースされます。 むしろ原因であることよりも その後の金曜日、 これにより、7日間だけあなたを与えて、 効果的に10日後の原因になります。 そして実際、これはそれを意味します 彼らは週末だけ重複ます。 しかし、我々は、今年願っています 特にこの意志 学生がより良い対応を可能にします 自分のスケジュールでの干満、 それは学者かのかどうか extracurricularsや陸上競技 または中間の季節。 あなたは、フロントロードまたはバック負荷いずれかを行うことができ CS50に焦点を当て、あなたの週がベース あなた自身の週の実際のコースの負荷に。 問題は、自分自身を設定します 言語の範囲をカバーします、 我々は焦点を絞りますけれども 主に早期にCに 我々はより高い上に、その後焦点を当てる前に、 レベル、より多くのウェブ中心の言語。 そして、よくある質問のカップルhere-- あなたはCS50のようなクラスを取る必要があります 初年度として? だから、絶対に。 そして実際、そうではありません 必ずしも何か あなたがカットするまで、あなたは延期する必要があります クラスの他のタイプのあなたの歯。 むしろ、検討 その多くの学生のために、 私自身は、昔に含まれます これは非常になじみのない分野です、 特にあなたの場合 APのCSAを取ることはなかったです または高校でそのような何か。 しかし、その早い時期に実現 それがこのコースのかどうか またはいくつかの他の入門コース、 今確かに最高の時間です、 私はいくつかの新しいパスを見つけるために、考えたり いくつかの新しい学問的興味だけでなく。 そして、他のcourses--で服用 ので、ここで重要な違いの1 ハーバード対我々は唯一のことです 学期ごとに4つのコースを取ります 何らかの理由でハーバード大学。 そして、あなたたちは、実際に引っ張ります 合計で約36コースオフ あなたの4年間にわたって、 これは一般的に4または5を意味します クラス。 そして、私はそれを言うことは非常に公正だと思いますか そして、設計によって、CS50を放棄することであり、 おそらくないクラスの種類 あなたは一般的にすべきこと 他の4つで取ります 5の合計のためのコース psetは基準であるため、 かなり集中的なデザイン。 実際、私も学びました 一日でこのバック。 私はCS50を記述しないであろうと コンピュータサイエンス、プログラミング そんなに難しいことのように ちょうど時間がかかります。 それは事のようなものではありません 夕食後、あなた あなたの寮に戻ることができます 部屋、座って、スタート PSETに焦点を当て 考えて、すべての権利、 私はこのうちつもり強打よ 今夜、次に移動 次の日に私の次の主題に上。 時には、あなただけの壁にぶつかります。 あなたはあなたのコードにバグがあります。 あなたは必ずしも知りません どのようにいくつかの問題を解決します。 との重要な機能の1 この日に自分のためのプログラミング あなただけの種類の取る必要があります バック時にはステップ、それの上で寝ます またはコースの上にそれを考えます ジョグまたはいくつかの他の活動の、 そしてその後、新鮮なそれに戻ってきます。 そして、あなたはちょうど時間のこれらのウィンドウを必要としています。 私たちはた理由そして実際、それはです 時間を長く 問題のセットのために利用可能 今年も、そのURLあたり 私はのように、以前の我慢しました 新学期は何ですか、 そのような問題セットをトリミング 彼らはあまり根本的に厳しいじゃないんです、 そして、持ち帰りにはあまりありませんが、 はるかに少ないフロント問題があります、 あなたがする必要がはるかに少ない取材 すべての問題のセットの前で行い、 あなたはあなたができる前に、表示されますように 実際の肉に飛び込みます。 だから、これらのおよびその他の実現 変更が地平線上にあります より良い学生を収容するために、 しかし、最終的に確認します 持ち帰りはしていること できるだけ実際の高。 だから、しばらくそれよりも多くの作業 典型的なクラスであるかもしれません、 我々はのために戻っていることを願っています あなたとあなたのために持ち帰り そして、スキルやアイデア あなたが終了すると 結果として、すべてのより魅力的なされています。 そして、あなたはthere--し、この取得します キー持ち帰りの一つであり、 パトリックはearlier--を示唆したようです コー​​スの支持構造。 そうではないだけCS50のいずれかを持っています キャンパスで最大のコースのスタッフ。 それはまた、のうちの1つを有します ほとんどの学部。 実際、CS50昨年 ファーストクラスでした 学部教員を持っています。 そして、その成功の証は今やります エールCS内の多くの他のコース 同様に、それを持っています。 そして学生のための、具体的には、 これらのTAとコースのアシスタントます 全体を支援すること サポートリソースのネットワーク、 それらの中のセクションまたは 朗読、毎週の機会 より親密な議論を持っています 材料のレビューは、対象 異なるトラックのため、学生のための より快適に、より少ない快適な、 またはどこかの間インチ これらは、可用性に従います 毎週数日の講演 月曜日と火曜日に。 そして、オフィスhours-- 1対1のチャンス もちろんCAとのTAからの助けを 水曜日と木曜日になります 複数で、日曜日 回、すべての コー​​スのウェブサイトに掲載されます、 同様に、昨年よりもさらに。 しかし場合は、CS50への鍵何 ビット珍しい確かではありません、 コー​​スの文化があること 私たちは、育成しようとしました 両方のケンブリッジでの長年の そして今、最も最近ニューヘブンインチ そして、実際には、これを考え出します 土曜日、あなたが聞いたことがない場合は、 持っているCS50パズルの日であり、 コンピュータ科学とは何の関係もありません しかし、完全に送信するように設計されて コンピュータサイエンスであることをメッセージ 問題解決について。 そして実際、あなたがパートナーを希望される場合 1つまたは2つまたは3つの友人と そして、CS50のためのチームを結成 日パズル、見てみましょう アウトの方法にある広告で。 ピザの3時間 パズルや賞品が待っています。 そして実際、用 今年初めて、 それはハーバード大学と共同で開催されることはありません。 それはエールで独立してここになります。 だからために目を光らせる それらはあなたがいない場合。 学期のほとんどの毎週金曜日 私たちは大きなクラスを作ってみますか 小さな感じ、いくつかの50の学生をもたらします コー​​スのスタッフとランチに、 卒業生、友達と 業界から話をします 何についての寿命は後のようなものです CS50様と夏を超えるクラス そして卒業後。 だからために目を光らせる それへの招待。 初めて これまでに、今年は、我々はなります 史上初のCS50コーデ​​ィングを開催 コンテスト、オプションのオプトインの機会 半ば学期は、私たちのすべての後に持っていました プログラミングのいくつかの6または7週間 競合するそれらのベルトの下でCで、 あなたはとても再びchoose--ならば teams--にしようとして上 など多くの課題を解決 あなたが使用したプログラミングでできるよう 他人に対するあなたの友人。 そして、学期の最後尾に向かって 我々チャーターいくつかのバスであろう、 実際にいくつかの時間を費やします あなたが希望の場合ケンブリッジ、中 以下のために、私たちに参加したいです いわゆるCS50のハッカソン。 午後7時、私たちは始めましょう。 午後9時ごろ、私たちはピザを持っています。 1:00頃、私たちはブリトーを持っています。 そして、まだ誰に目を覚まし 5:00の周りの家のバスに乗って、 私たちは、パンケーキのためにオフに停止されます 途中のIHOPでhome-- 没頭する12時間営業の機会 クラスメートやスタッフと自分自身 コー​​スの最終的なプロジェクトで、 これはチャンスです はるかに超えて行きます コー​​スの問題セット 設計や実装最も あなたに関心のあるもの、 それは、最終的になります コモンズでここに特色にしました。 史上初のCS50フェアが最後でした 今年、エンドオブ学期展 何みんなのお祝い クラスで達成していました、 特には、再び、誰から行ってきました 何かに何も、60ゼロから、 事前バックグラウンドを有していません そして、最終的に、展示 全キャンパスのために何かと、 オンラインの場合、世界は同様に、確認してください。 さて、ここでこれらはのほんの一部に過ぎません CS50を可能にしたTAとCAは。 私はいずれかを招待することを許可します これらの職員の ステージに出てくるためにここに人あり、 同様に当然の頭、 のいくつかの単語を提供します インスピレーションだけでなく。 ANDI:こんにちは、みんな。 君たちは私を聞くことができますか? この上で私たちに参加してくれてありがとう 美しい、雨の木曜日の午後。 私の名前はアンディです。 私はバークレーの後輩です。 そして、ステリオスと夏と一緒に、 私たちはあなたの3頭の授業になります この次年度のアシスタント。 だから、私は、のショーを推測します あなたのどのように多くのhands-- CSというつもりはありません 大手も本当にダイビング深く ここ専攻としてコンピュータサイエンスに? 驚くばかり。 それは華麗です。 だから私は実際にはグローバルな情勢です そして、認知科学専攻。 私は、文字通りに来ました 意図とエール んを見て持っていません 二度と私の人生で数。 私はエールに来たとき、これがありました 私のレーダーにはなかったもの。 私は詩を学びたいと思いました。 私が学びたいと思いました 国際情勢。 私が学びたいと思いました 水彩画。 はい、私たちはクラスを提供しています 水彩画に。 しかし、私は本当に興味があったことはありません 何に関連STEM。 しかし、古いI 持って、より多くの私が実現しました その一部で本当にすべてのフィールド 感覚は、コンピュータサイエンスの採用します またはそうでない場合は、コンピュータ科学、計算。 私のグローバルなため、実際には 事務絶頂プロジェクト、 我々はデータ分析を使用しています テロ攻撃を分析します ナイジェリアボコ・ハラムのため。 そして、あなたは関係なく、見ることができるように あなたが追求結局何大手の または何あなたの興味ここにイェール大学 であり、プログラミングや財団 何のスキルは超便利です。 そして、CS50は本当によくに装備されています 種類のそのリソースの多くを貸します あなたにかかわらず、 どのように快適なあなたは または、あなたはどのように興味 クラスを追求インチ 夏のは、少し話をするつもり 君たちが何であるかについて少し 今年について学ぶために行きます。 SUMMER:皆さん、こんにちは。 私は夏の呉です。 私はモールスで後輩です。 そして、私は実際にスタートしました CS50の学生として自分自身。 だから、3年前、私はギャップイヤーにありました。 私はCS取られたことがないだろう 高校でのクラス、 しかし、私は私の自由な時間であると考え、 コー​​ディングする方法を学ぶためにクールになるだろう。 だから私は、迅速なGoogle検索をしました、 、オンラインで利用可能だったものを探しました そして、マペットでこのビデオを見ました DJやクールなウェブサイトや。 私のような、私はしたいました それを行う方法を学びます。 だから私はコースを取って、I ちょうどそれと恋に落ちました。 しかし、私はのように嫉妬ことを覚えて ハッカソンに参加できた子供たちは、 パズルの日に出席、オフィスに出席 時間は、人でのTAから助けを得ます。 そして、私は想像もしませんでした 私はチャンスを得るだろうと ここに関与します 最初に持っコース コンピュータに興味を持ってくれ 科学と理由です 私は、今日の主要なコンピュータサイエンスです。 だから私は、このクラスを警告を表示します あなたをストレッチしようとしています。 あなたに挑戦するつもりです。 しかし、それはまたに起こっています どのように物事を行うする方法を教えます あなたは可能性が想像もしなかったという。 ステリオス:皆さん、こんにちは。 私の名前はステリオスです。 私はブランフォードジュニア午前 大学とCSの主要な。 私はアテネ、ギリシャからもです。 私は本当に楽しみにしています あなたのすべてを満たすために、 で、セクションであなたとチャット 金曜日のランチに営業時間、。 ため、私は本当に興奮しています 我々はそんなに力を入れてきました ユニークなサポートを作成するに あなたのすべてのための構造 とあなたの経験を作るために 可能な限り最高のコース。 そして、私は願っているのほとんどが、 おそらくCSを受けていません 前もちろん、私はCS50を願っています あなたのための関心を火花ものです さらに、コンピュータを追求します 将来の科学、 それはそうと行ったよう 過去の多くの人々。 だからであることをありがとうございました ここでは、あなたを見て興奮。 ジェイソンハーシュホーン。 JASONハーシュホーン:こんにちは、皆。 私の名前はジェイソンハーシュホーンです。 私はシリマンに住んでいます。 そして、私は大学生としてハーバード大学に行ってきました そして社会科を専攻 そして、コンピュータサイエンスでマイナー化。 ここに私の主な役割の一つ この素晴らしいスタッフをサポートすることです 彼らはあなたのすべてをサポートしているよう。 実際には、これは、それらのすべてではありません。 55学部がありますし、 あなたのすべてをサポートするために、ここの卒業生。 そして、私は最高の一つあえて あなたのためのコースの一部 すべてで動作するようになっています それら、それらを知ること、 CS50の両方で、それらを見ることを得ます そして、CS50の外にこの学期 そして多くの学期が来るのを。 だから、うまくいけば、あなたは取りますよ もちろんうまくいけば理由 と対話するために取得 私たちがステージに持っている素晴らしいスタッフ。 SPEAKER:まあ、私は終了させ それは楽しいだろうと言って。 DAVIDマラン:まあ、 私たちのチーム全体に感謝。 私はライトを暗くすることを許可すると 私たちのチームのいくつかの詳細を許可し、 ケンブリッジとニューヘブンの両方から、 これらの人はオフにファイルとして挨拶します。 その後、我々はに移行します 私たちのプログラミング契約の最初の この言語でスクラッチと呼ばれます。 チームのおかげだから。 のは、ライトを暗くしてみましょうし、 いくつかの他から聞きます。 [拍手] [ビデオ再生] CS50の-The使命は、あなたを作ることです 全く新しい方法でより快適に 思考の、この計算の考え方。 - それは、コンピュータサイエンスを作りました 面白い、これ 私は本当に実現しなかったものです 私はクラスを取ったまで可能でした。 -Iはちょっと待って、のようでした。 私は本当に私の考えを翻訳しています 今コンピュータに。 -Evenあなたが任意のバックグラウンドを持っていない場合 コンピュータサイエンスまたはいずれかの経験で、 これは実際にあなたのためのクラスです。 -so私は間違いなくしたいです 私の学生にだけ コンピュータサイエンス興奮。 プログラミング、それだけではありません コンピュータ科学者のように考えます 私が欲しいものは本当にあります 私の新入生を教えるようにしてみてください。 -CS50は難しいとやりがいです。 -経験。 -Extravaganza。 - それは、次のレベルに私たちをもたらしています。 [MUSICのPLAYING] -TheのTFは、私が思うに、あります 当然の生命線。 持っていることに興奮し-I'm 私は助けている私の学生 なるほどモーメントが実現することを持っています 彼らが実際にしようとしています PSETを行う方法を見つけ出すために、行います。 -CS50は間違いなく難しいコースです。 しかし、他に類を見ない 本当にイェール大学のコース、 そのような偉大なを持っています、 支えコミュニティ。 - あなたは絶対にしないでください 何を知っておく必要があります ことができるようにコーディングについて コー​​スを受講します。 - それははるかにどのように見ることが驚くべきことです 人々は1学期に来ます。 - あなたは一人で座っていませんでした お部屋のコードを学習、 しかし、それだけでクラスを超えていました。 それは経験でした。 概念を学ぶため-The最良の方法と それらを処理することが他の人を教えることです。 電話分割は - 何ですか? [MUSICのPLAYING] - そしてこれはCS50です。 [MUSICのPLAYING] - これはCS50です。 問題を-Got? それを半分に引き裂きます。 [MUSICのPLAYING] それを捨てる。 DAVIDマラン:すべての権利。 それでは、少しでtackle--てみましょう ビット、偶然、それはです この伝統のためになって 10年のためのいくつかの理由 でケーキをサーブします 開始およびCS50の終わり。 だからの終わりにあなたを待っています 今日、シラバスに加えて、 同様にいくつかのケーキである、となります コー​​スのスタッフは挨拶します。 しかし、今、のに移行してみましょう 私たちの言語の最初の 私たちは週に1本当に費やします このドメインに設定された問題で、スクラッチ。 あなたがしている場合、あなたは見つけることができます 前にプログラムされ、多くの アイデアとの 可能性はあなたによく知られています。 しかし、あなたはそれを見つけることができます それが道に沿って楽しいです 翻訳する方法を正確に把握します あなたが既に知っているいくつかのアイデア この特定の環境に 本当にあなたの家族を感動させます あなたの仕事でや友人、缶 あなたがそう選択した場合、その後、オンラインで行きます。 そして、あなたはありません持っている場合 以前の経験とされています 大部分のうち、 少ない快適な学生、 私たちのアイデアの多くを実現 ただreality--もので探求 電話帳と出席など そのためforth--翻訳 かなり素敵なコンピュータに、 しかし、あなたは、使用しない場合 最初に、このような言語。 だから、これは記述されたプログラムです C.と呼ばれる言語で そして、我々はかなり費やします 最終的にはC、時間の。 しかし、オッズは、このビットになります 一見あなたに不可解。 実際には、奇妙なの多くがあります 構文、括弧、角括弧、 中括弧、引用符、およびセミコロン。 そして実際、あなたが飛び込む場合 初めてのプログラミング 見て、ものを作成しようとしています このように、正直なところ、あなたはとても陥っます そう頻繁にちょうど愚かで 何もしていますマニューシャ それについての知的興味深いです。 あなたが作成することができればしかし、想像します この同じprogram--れ、 あなたは親切なのだろう、推測することがありますように 版画の "Hello、world"を何とかまたは他の。 私たちは、にその同じ考えを蒸留することができます ちょうど2つのパズルのピース、可能ならば。 確かに、スクラッチは面白いです なぜならそれは、このグラフィカル言語です。 あなたはこれらをドラッグアンドドロップすることができます その唯一のインターロックパズルのピース それはそうするように論理的な意味がある場合。 だからスクラッチで、 我々はすぐにこれが、表示されます あなたはその同じを実装する方法 ちょうど2つのパズルのピースを持つプログラム、 それはかなり彼らが言う何をすべきか。 しかし、我々はいくつかのわずか一瞬で表示されます 我々は示唆したビルディングブロックの 以前とさらにいくつかにすべてであること 最終的に構成しようとしています 私たちの最古のプログラムの一部。 私たちは、物事をするんです ちょうどfunctions--様 何かをする行為、 以下のような世界、挨拶。 私たちは、ループを持っているつもりです サイクルを誘発するもの 何度も何度も、ちょうど私達のような 検索と瞬間前にやりました マイク・スミスのために。 代数で、もしあなたのような変数、 番号を保存することができますxまたはyを、持っています。 さて、プログラムの中で、あなたが実際にすることができます ただ数字以上のものを格納します。 あなたは、単語や文章を保存することができます まだグラフィックスや他のものと。 ただブール式、 questions-- yesまたはno、trueまたはfalse。 意思決定を行う条件、 それらのはい/いいえの回答に基づきます。 以下のようなそして、手の込んだもの アレイとスレッドとイベント および他の任意の数の 特徴が、そのすべて 非常に非常にうまくマップ このようなフレンドリーブロック。 これは、関数、Aになるだろう ちょうど言う紫色のパズルのピース その名前が、この場合にis--もの、と言います。 そして多くの場合、あります そのあなたホワイトボックス 入力するかにいくつかの値をドラッグすることができます。 そして、それは一般的なものです 引数またはパラメータと呼ばれます。 これは、変更の方法です パズルのデフォルトの動作 ピースまたはそれがないように機能 言うようなあなたのために何かカスタム、 こんにちは、世界やハロー、アンディまたはこんにちは、 ジェイソンまたはその代わりに他のいくつかの文章。 あなたはAを言いたい場合 lot--文字通りforever-- あなたは別のものを取ることができます 永遠と呼ばれるパズルのピース そして、ばかりに挟ま このような2つ。 そして、そのループ、絵が示唆するように、 公正な世界永遠に、挨拶を意味し、 何度も何度も何度も。 それとも、あなたはそれだけ行いたい場合 有限回数、50回のように、 別のパズルがあるように起こっています that--のための作品は50回繰り返します。 一方、あなたがしたい場合 変数を持っています この言語で、私たちはしています と遊ぶしよう、 あなたはこのようなオレンジ色のブロックを使用することができます。 そして、この変数を任意I 私は整数を求めました。 そして私はちょうど0にそれが等しくなるように設定します。 そしてので、多分私は、この中 このvariable-- case-- ゲームで誰かのスコアを表しています。 あなたはゼロから始まり、そしてたびに 目標またはそのような何かを作ります、 あなたは一つの追加のポイントを得ます。 あなたはスクラッチで質問をすることができます。 私たちは、パズルをドラッグ&ドロップした場合 このような瞬間にピース、 あなたは次のように質問をすることができ、 まあ、私は50未満ですか? たぶん、あなたは勝つために50ポイントが必要です。 そして、これはだろう あなたが尋ねると思い質問。 または、より一般的には、あなた yよりX以下であると言うことができ、 関連する2つの変数がありますどこに? さて、これはたくさんあり​​ます 一見大きな、 しかし、実際にはないすべてのことより複雑。 これは単なる組み合わせです 条件および変数の ブール式は、依頼します 3 questions--はyよりもX小さいのですか? もしそうなら、そう言います。 セイ、xがyよりも小さいです。 さもなければ、xがより大きい場合 yが、そうでなければxがyに等しくなければなりません。 そして、マイク・スミスとのに対し、 4つのシナリオはここにありました、 数字の世界では、xはいずれかであります より大きく、より少ない、または等しいです。 私たちが持っているすべては、道路の3のフォークです。 そして、愛好家があります このようなパズルのピース 私たちがしているアレイのようなもののために 情報を記憶することができるようになるだろう。 私たちは、許可ブロックを参照するつもりです 私たちは、複数のスレッドを実装するために、 私たちが使用します他の特徴、および その後もイベントを何かと呼ばれます。 しかし、我々はそれに到達する前に でもポイントと作成し、 最終的に、私たち自身のカスタム パズルのピース、レッツ 実際にプログラム自体を開きます。 だから、これはスクラッチです。 それはscratch.mit.eduで利用可能です。 そして、あなたがプレイしていただけます 今以降、同様に。 これは、オフライン版であることを起こります。 ない人に 必ずしも偉大なインターネットを持っています、 あなたがダウンロードすることができます 同じソフトウェアだけでなく。 そして3つだけは本当にあります このソフトウェアのコンポーネント。 の左上隅に 画面には、ステージの一種であります そのスクラッチ、デフォルトで 猫は、内部に住んでいるように見えます。 彼は、上下に移動左、右することができます や他のものの任意の数の操作を行い、 そして、ベースの任意の数の方法を見ることができます あなたが彼に割り当てる衣装に。 しかし、これは我々が呼ぶものです スプライト、文字の一種。 そして、あなたは複数持つことができます 文字は、我々はすぐに表示されますよう。 中央には今、これらすべてのパズルです 作品やこれらのカテゴリまたはパレッ​​ト その。 だから今、私はモーションをクリックしました。 そして、私はすべてを見ています 運動関連のパズルのピースまたはブロック、 持っているので、機能 上がっていくと行うには、 下、左、または右または いくつかの他の操作。 しかし、私は、ルックスであなたをクリックした場合 たとえばブロックのようなものを見ることができました 私たちは、ちょっと前に見ました。 私がコントロールをクリックした場合と、あなたが表示されます 繰り返しのようなもの、永遠に そのブロックの場合 私たちは、先ほ​​ど見ました。 そして、あなたは見つけることができます 私達はちょうど傷だろうと のいくつかの面 一緒にパズルのピース、 しかし、それはすべてのかなり直感的です ポイントとクリック。 確かに、スクラッチを設計しました 若い学生のための 彼らにコンセントを与える支援します 創造的思考のため。 そして、まだ素晴らしく、それはです 素晴らしい踏み石 我々がしようとしている正確なアイデアへ CとPythonとJavaScriptで探索、 同じように。 右側に、最終的には、ここに これは、いわゆるスクリプト領域です。 そして、これはとちょうど白紙の状態であります あなたがプログラムを書くために始めています。 そして、私はまさにそれよ。 今、私は物事がどこにあるかを知ることが起こります 私はこれを数回やったので。 しかし、私は下のことを知っています イベントのカテゴリ、 このブロックがありますhere-- 緑色のフラグがクリックされたとき。 私はズームアウト場合と気づき、 ここに戻って、ステージ上の上で、 この内のスクラッチ生活 少し長方形の世界では、 緑のある頂上 フラグと赤のストップサイン。 だから、それぞれ、行くと停止します。 そして、私は何をすべきかをしたいですか その緑色のフラグがクリックされたとき? まあ、それはカテゴリルックスに私が行きましょう。 そして、私は先に行ってみましょう これをドラッグアンドドロップ。 そして、すぐにそれを取得として気づきます 近くに、彼らは磁​​気の一種です。 私は今、手放すのであれば、それはスナップ 一緒に素敵できれい。 そして、私は先に行くつもりだし、 こんにちは、何かのように言って、世界 2秒間。 私はズームアウトしてみましょう、今クリック グリーンフラッグ、というと、こんにちは、世界。 大丈夫。 だから、すべての罰金と良いです。 すべてが刺激的ではありません。 のは、それちょっとかわいくしてみましょう。 そして、私はその中を知っています あらかじめ、スクラッチが発生しました このようないくつかのかわいいものが付属しています。 行われるまで、だから音鳴き声を再生します。 それでは、これを実行しましょう​​。 [ニャー] おやおや、それは愛らしいです。 そして、私はそれをagain--クリックした場合 [ニャー] そしてまた。 [ニャー] しかし、私はスクラッチを生き返らせるために持っておきます。 しかし、私はこれよりも良い行うことができます。 なぜ私はちょうどこれらの3をドラッグしないでください。 そして今、それは愛らしいの3倍です。 【MEOWING] [OK]を、実際に、それは少し不気味です。 だから我々はそこの間に何かを必要としています。 私がコントロールに行けば、それは次のようになります 待機ブロックが実際にあります。 私はthere--上にカーソルを置く場合とそう気付きます そして私は、これは少し大きくしてみましょう。 私が合わせると、それが起こっています 所定の位置に固定します。 だから、1秒を待つ1秒を待ちます。 それでは、再び緑の旗をヒットしてみましょう。 【MEOWING] [OK]を、もう少し自然、 しかし、非常に効率的ではありません。 私のプログラムの場合はこれが正しいです 目標は3回ニャーました。 しかし、それは非常によく設計されていないのです。 私は種類のいくつかのコーナーをカット。 私は少し怠け者です。 私は思えないものlike--感じています 不完全に行われているように、あなたは言うでしょうか? ええ? うん、真ん中インチ AUDIENCE:中古より あなたが必要以上のメモリ あなたが使用しているので、 非常に多くの異なるライン。 DAVIDマラン:うん、そう複数の行。 そして、それは必ずしもメモリではないであろう、 その方法として見ることができたのに。 しかし、それはdefinitely--です 冗長性があります。 そして、私は文字通り種類のドラッグ そして、同じものを落としました。 そして、あなたは一種の場合extrapolate--場合 それはどのようにだろう、here--も明白ではありません 私は30回ニャー? 私は、のように、ドラッグ&ドロップであろう パズルのピースの30組以上。 そして確かに、より良い方法があります。 そして、私たちはより良い方法を見てきました。 どのような直感的だろう もっと良い方法が? うん、ちょうどループを使用します。 いいえ、コピーせず、貼り付け。 そして実際、いつでもこの あなたが開始した場合学期 ドラッグ&ドロップ自分自身を見つけます、 または実際にコピー&ペースト、 ために入るために危険な習慣 これは、単に非常に保守性ではありません。 例えば、私は変更したい場合 何か他のものへの音、 私は3で、今それを変更する必要があります 代わりに一つだけの場所。 確かにあるので、私の場合 私はこのaway--を破ります ちょうどそのようにそれを分離しよう。 私はリピートブロックをつかむしましょう​​、と その後、3、タイプ3をクリックし、 これらのいくつかを投げます わずか手放すこともできます。 そして、それに気づきます それが収まるように見えません、 しかし、磁気的に、それが起こっています 所定の位置にスナップするだけでなく、 しかし、形状に合わせて成長します。 だから、それは良いことです。 そして今、私はプレーをクリックした場合。 【MEOWING] 非常に素晴らしい。 大丈夫。 そして今、それはに非常に簡単です ので、私はちょうどすることができ、あまりにも、変更 一つの場所に1番号を変更します。 しかし、これは、あまりにも、ありません すべてのことは興味深いです。 それでは、実際に持ってみましょう スクラッチニャーが、移動しません。 私はモーションに移動し、10ステップを移動してみましょう of--おっと内側に、私はこの問題を解決しましょう​​。 私はそれが10 steps--を動かしてみましょう 実際に、の繰り返しを行うわけにはいきません。 私は制御ブロックをつかむしましょう​​、 そして永遠に次の操作を行います。 永遠に、10のステップを移動します。 そして、[再生]をクリックします。 OK。 だからありがたいことに、彼は停止します。 そうしないと、子供たちは非常に怒るだろう 彼らは一種の彼らの猫を失うとき。 しかし、少なくとも、私はドラッグすることができます バックスクリーンへの彼。 しかし、これはそのすべてではありません ゲームやアニメーションの素晴らしいです。 多分場合、それはいいだろう 彼は、エッジを跳ね返っ。 だから我々は何をしますか? どのような構築物は我々が持っている必要があります スクラッチは、バウンスすることを決定、あなたは思いますか あなたは決してきたない場合でも、 前にスクラッチを見たことありますか? うん、バックインチ 聴衆:あなたが必要です ブロックの場合、またはのif-then。 DAVIDマラン:うん、いくつかのように 種類のブロックの場合、またはのif-then。 だから実際に、我々はここで、これらのいずれかを持っています。 だからif--ので、私は取得してみましょう 運動を取り除きます。 それは大きいですので、私はズームインしてみましょう。 それでは、どのようにこのことについて。 フォーエバー、Sensing--場合 我々は前にこれを見ていませんでした。 私は、ブール式が必要です。 何に触れた場合、それが判明しますか? エッジに触れる場合は、 私は何をすべきかをしたいですか? まあ、私はモーションに戻る場合は、 結局のところ、ああ、私は好転することができます。 私はここでこれをドラッグしてみましょう。 なぜ私が先に行くとしません 周りに180度回転? そして今、私はちょうど終わりに移動しましょう​​。 私はで動きを入れることができます 先頭や末尾。 しかし、論理的に、私は移動するたびに、I チェックしたい、私はエッジに触れるのですか? 私は縁に触れていますか? 私は縁に触れていますか? もしそうであればだから論理的に私が振り向きます。 それでは、プレーをヒットしてみましょう。 OK。 だから、いわば、少しバギーです。 そして、バグは単なる間違いです コンピュータプログラムインチ しかし、少なくともそれが取り組んでいます。 そして実際に、私はここに行くことができます。 そして、私はでそれはない10のステップを作ってみよう 時間が、これはすべてのアニメーションがあります。 これは、すべての漫画です あるいは映画です。 私は一度に20のステップを移動してみましょう。 だから、20倍の数のことが起こっています 一度、または2回場合、多くの。 そして、彼は速く動いています。 私は30に変更してみましょう。 100。 千。 そして、それは本当に速いだろう。 そして、これはOK、ええis--。 だから今、私たちはそれをいじりしています。 [OK]を、そうバギー。 しかし、我々は、ここでの方法から彼をドラッグすることができます。 しかし、我々はあまりにも、これでより多くの楽しみを作ることができます。 どのように彼は逆さまだthis--について。 しかし、それはScratch--が判明します そして、実際にそこにあります 私は放棄しなければならない、何の学術 私が実行しようとしてよ何に値。 しかし、私はマイクを開く場合は、してみましょう 彼を停止し、このような何かを行います。 痛いです! [笑い] それは愛らしいました。 ありがとうございました。 さて、これは何私の声です 私が痛い叫ぶときのように見えます。 私たちはあなたの笑いを捕まえないと思います。 それで大丈夫です。 私はとしてこれを保存してみましょう "痛いです。」 それでは、「痛い」としてこれを保存してみましょう。 そして今、我々はスクリプトに戻ります。 そして今、私はのは、サウンドを見てみましょうneed--。 ああ、音痛いを果たしています。 私は縁に触れているのであれば、私を聞かせて ファーストプレイ痛いし、その後好転させます。 そして今のは真ん中に彼を入れてみましょう。 【言って「痛いです」] 倍の速度。 OK。 しかし、それは文字通りです 私が言っている何をしています。 だから、それはだ、実際に正しいですか すぐに迷惑ほんの少し。 それでは、何かを追加してみましょう これにより興味深いです。 私は実際に開いてみましょう 私は事前に作られたもの、 適切にペットと呼ばれます これを実行する猫、。 ここでスクリプトがここにあります。 これが何をしようとしています 英語の用語でいますか? 行うために設計されたこの何ですか? うん、のがええsome--手放しますか? AUDIENCE:いつ 猫をペット、それがmeows。 DAVIDマラン:うん、だからあなたを 猫をペット、ニャーになるだろう。 だから、他の言葉で、今があります 組み合わせはまだ永遠にループ、 条件に合わせ、 ブール式で、 夫婦と組み合わせます 機能の、効果 そのうち、かつて私が遊びます このプログラムは、何もありません 私は、カーソルを移動するまで起こり 近づくと近いですand-- [ニャー] それは猫を愛撫のようなものです。 [ニャー] 実際に一度のみ 彼の上にカーソルを移動します。 今、私はまた、ペットのいない手早く 代わりに、これを行い猫、。 【MEOWING] そこで彼は、ただ絶えずmeowingます。 【MEOWING] しかし、私はあまりにもclose--取得する場合 【MEOWING] 【ROAR] それでは、どのようこの動作しますか? 今、私は持っています 道路の双方向のフォーク。 マウスポインタを触れる場合は、 その後、ライオンの音を再生します。 そうでなければ、単にニャー音を再生し、 そしてそのように3秒待ち それは一種のやっていること それは非常に静か。 大丈夫。 だから組み合わせです まだいくつかのより多くのアイデア。 のは、この例を見てみましょう 私はと呼ばれるスレッドをホイップ。 そして、この1は基本的にあり そのことのレバレッジで異なります 多くの特徴 呼ばれるプログラミング言語 スレッド、プログラムの能力に 文字通り、同時に2つのことを行います。 確かに、これらの日は、あなたが使用している場合 GoogleドキュメントやMicrosoft Word、 あなたの文書は、常にされています あなたがtype--さえとしてチェック - スペルか コマンド-PまたはControl-Pを打ちます そして何かを印刷し、 あなたが入力を続けながら、それは印刷です。 プログラムは、今日は確かに複数行うことができます ちょうどスクラッチのように一度の事、 ここに。 だからここに、私は2つのスプライトを持っています 今、鳥と猫。 そして、私はそれぞれにクリックした場合 一度にこれらの文字1、 私は今鳥の参照します 右上のスクリプト。 今、私は猫のを参照してください。 鳥の、猫の。 ので、それらの各々は、独自のスクリプトを持っています。 しかし、通知、どのようなパズルのピース 彼らは両方で始まるのですか? 緑の旗をクリックすると。 そして、鳥、ときに緑の旗をクリック。 だから私は緑の旗をクリックすると、 これらのスクリプトやプログラムの両方 並行して実行しようとしています。 そして、あなたは鳥があることがわかります ただ無思慮にエッジを跳ね返ります。 猫は明らかにプログラムされています 戦略的優位を持ちます。 そして - 【ROAR] 大丈夫。 だから猫は、この場合には鳥を捕まえました。 何故ですか? さて、私たちは持って最初に気付きます 鳥はただ無思慮に行きます この最初の位置に、 そしてその後永遠に、 猫に触れていない場合は、単に移動します。 あなたはエッジにしている場合や、バウンス。 そして、ちょうど移動。 あなたはエッジにしている場合や、バウンス。 しかし、猫、一方、 いくつかの追加のロジックがあります それはちょうどので、this--が最初に言います これは完全にバイアスされていないことを 鳥に対して、私がしたことに気付きます そこに緑のパズルのピースを使用 それは、実際に乱数を選びます。 多くの言語の特徴は与えることです あなたのランダムまたは擬似ランダム番号。 したがって、この場合には、猫が最初に 以下のような、間の乱数を選択し、 90度と180 度、本質的なので、 分散の少しがあること。 そして永遠に、触れる場合 鳥は、ライオンの音を再生します。 それ以外の場合は、ちょうど鳥に向かって指しています。 鳥に向かってポイント。 ある鳥に向かってポイント この場合は、それ自体がパズルのピース。 さて、ここでは1、他のことを行うことができます。 私はここでイベントのプログラムを開いてみましょう。 そしてここで我々は再び、2スプライトを持っています これは、ここでこれら二つの操り人形のように見えます。 そして、何ここで興味深いのはこれです。 オレンジ色の男はこれを持っています ここにパズルのピースのセット。 フォーエバーfollowing--を行います スペースバーが押された場合、 その後、マルコを言うと、 その後、イベントをブロードキャストします。 その間、青い男がここに持っています あなたがイベントを受信したとき、this-- ポロを言います。 だから、スクラッチで判明します 他の言語で、 二つのプログラムのための方法があります。 この場合、または2つのスクリプト、 ときに私がするように相互に通信します スペースバーをヒット、彼はマルコ氏は述べています。 他方はそうする、ことを聞きます 話し、ポロは、応答で述べています。 だから、そのプログラムを書くことができます 実際にこのように相互に作用します。 そして、私が代わりにこれを行う場合、 私も変数を追加することができ、 ただ、この場合の1スプライトを使用して。 この1は特に迷惑なんです。 【SEALの吠え] 今、私たちが持って右側に気付きます こっちにいくつかの追加のロジック。 私は吠えから、このシールを阻止する方法を教えてください 【SEALの吠え] これは、右側の上のように見えます 側はサウンドを再生しているものです。 しかし、それだけで遊んで 何が真である場合に聞こえますか? variable--オレンジの場合 block--ミュートはゼロです。 どのように私は1であることがミュート変更できますか、 真の意味、このミュートを作りますか? どうやら、他のスクリプトは、私がすることができます スペースバーを押すと、今、彼は停止します。 だから我々は、この相互通信を持つことができます スクリプト全体で、だけでなく、 単に変数を共有することにより、 このような2を横断。 さて、これはすべてのこと興味深いものではありません。 それでは、先に行くと、これをやろうと組み合わせます このプログラムでこれらのたくさんのアイデア ここに。 我々は、しかし、それを行う前に、 方法1ボランティアについては? 私は圧力を脱いでみよう 私の私はいない実際に行うため、 このゲームをプレイします。 のが誰かを持ってみましょう、我々 前に見たことがありません。 あなたが来て、快適でなければなりません ここでは、ステージ上のアップ、カメラの。 [OK]を、アップに来ます。 非常に勇敢。 あなたの名前は何ですか? IDRIS:イドリス。 DAVIDマラン:申し訳ありませんか? IDRIS:イドリス。 DAVIDマラン:イドリス、はじめまして。 アップさあ。 そして今、あなた自身の携帯電話で 携帯電話は、あなたがポケモンGOをプレイするのですか? IDRIS:いいえ。 DAVIDマラン:本当に? IDRIS:うん。 DAVIDマラン:OK。 大丈夫。 さて、はじめまして。 おいで。 私はどちらかありません。 どのようにだから私たちは一緒に把握します この、これは誰か実際にプレイ 行って、スクラッチで実装 本質的に猫を変更することにより、 すべて一緒に別の文字。 そして、私はフルスクリーン場合 ここでは、この、我々が行っています 次のゲームを一緒に確認してください。 それでもまだロード、ロードします。 いい加減にして。 私はこれをやってみましょう。 いい加減にして。 このゲームは、それがクラッシュしたことはとても大きいです。 待機する。 もう一度これを試してみてください。 いい加減にして。 大丈夫。 そうしよう。 OK。 グリーンフラグ。 だからここに私達は行きます。 [MUSICのPLAYING] ここでは、中間レベルを選択します。 そこに青い男をクリックしてください。 大丈夫。 そして、あなたは、矢印を使用することができます 右、左、下、上keys--。 今、私たちはthis--がそうであるようにのは、考えてみましょう そしてそこ文字の後に行きます。 うん。 そして今、マウスで彼をクリックします。 そうそう。 移動します。 矢印はどこにありますか? どうぞ。 だから、そこをクリックしてください。 うん。 大丈夫。 だから今、私は、あなたがポケボールを持って聞いています それをクリックすると、それはそれを行うだろうということ。 とても良い。 今日の練習では、I ゲームのこのバージョンのを見つけました 実際には非常に難しいです。 ですから、ここでもう一度行きたい場合は、 このポケボールに歩きます。 そして、右を取る行きます。 それをクリックしてみてください。 ああ、実際に、それはです 店、どうやら。 [OK]をので、それを閉じます。 その前にやったことがありません。 たぶん、ここまでこの事に上がります。 ああ、そこに行きます。 待って、あそこ1があります。 ああ、もう一つあります。 OK。 ダウン。 うん、クリックします。 OK、それは非常にかわいいです。 [OK]を、非常によくやりました。 このゲームは非常に難しいことではありません。 OK。 おめでとうございます。 ここでは、CS50を持っています あなたのためのストレスボール。 しかし、ちょっと考えるもの 持ち帰りの一部があります。 明らかに、実際のゲームよりも簡単。 しかし、すべて我々が起こっています ここに文字があります それはおそらくいくつかの種類があります それに関連付けられたループの。 それは猫ではありません。 それは、代わりにこの文字です。 そして、そのループはちょうど常にあります 上矢印を押すと、言って、 下向きの矢印は、以下の場合、押された場合 左矢印を押すか、右 押された矢印、上に移動 左右または上下または。 または別のパズルのピースがあるかどう 別のスプライトをタッチすると、それは言います、 文字のいずれかをタッチすると ポケボールに触れる場合は、 その後、これを行います。 だから私たちはきたアイデアのすべて 本当にこれまで使用してき ただ、この特定に適用することができます 同様に、このゲームをプレイするためのコンテキスト。 私が先に行くとプルましょう 実際には、ここでもう一つ、アップ。 私が先に行くとプルましょう アップ、のは、このことを言わせて。 これは、私たちがリミックスしたものです。 私たちのいずれかによって作られました ケンブリッジの学生、 そして私は通過したと変更します ハーバード大学のほとんどすべてのインスタンス この時間のエールに。 誰かがしたいと思います Iviesに対抗 ここで別の蓄積の これらのアイデアのすべての? はい、ダウンさあ。 あなたの名前は何ですか? DINA:ディナ。 DAVIDマラン:アディーナ? DINA:ディナ。 DAVIDマラン:ディナは、ダウンに来ます。 すべての権利、ディナ。 だから、このゲームには困難になると 難しく、このゲームであるため、 同様に使用されている変数があります 常に追跡していること どのレベルのあなたはゲームです。 お会いできてとてもいい。 ここに集まってきます。 ので、ここでの目標は、ソートすることです 迷路を通してあなたの方法を作ります この生徒が実装されています。 そして、ちょうど、それぞれの段階を設定します 画面上でこれらの写真の 独自のスプライト、独自の文字があります。 したがって、これらは、デフォルトの猫によってでした しかし、学生はそれらを変更しました ここでは様々なIviesロゴに。 そして、あなたはちょうどそれを参照してくださいよ 条件とループを使用して そして、機能とよりは、あなたがこれを取得します。 [MUSICのPLAYING] [MUSIC - MC HAMMER、「Uは触れることができません  この"] [OK]を、ええ。 うん、続けます。 最初のレベルの非常に簡単。 あなたはあそこに行くようになってきました。 しかし、再び、検討し、これがちょうどです 矢印のリスニングループkeys-- アップ、ダウン、右、左。 そして今、センシングブロック。 非常に素晴らしい。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] 非常に素晴らしい。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] 非常に素晴らしい。 とても簡単、クリムゾン。 大丈夫。 おっとLevels--。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] そして再び、これらの中で 3ハーバード山、 あなただけのロジックを持っています バウンス、端にあれば言って。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] [OK]を、あなたは何をやっているです なぜより面白いです。 非常に素晴らしい。 非常に素晴らしい。 ええとああ。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] 私はあなたが自分自身を犠牲にしなければならないと思います。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] クイック! [MUSIC - MC HAMMER、「Uは触れることができません  この"] ニース。 それで大丈夫です。 あなたはそれを取得します。 はいはい! 非常に素晴らしい。 [応援] [MUSIC - MC HAMMER、「Uは触れることができません  この"] ナイス! [MUSIC - MC HAMMER、「Uは触れることができません  この"] とった。 いい加減にして! 最後のレベルにセカンド。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] 大丈夫。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] はい。 ここでは変数の良い使用。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] はい。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] ニース。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] 大丈夫です。 私たちは、最後に取得しました。 そこ。 ああ! [MUSIC - MC HAMMER、「Uは触れることができません  この"] 後半今日実行されますが、可能性があります それはつもりはそれだけの価値があることです。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] あなたはそれを行うことができます! うん! [応援] [MUSIC - MC HAMMER、「Uは触れることができません  この"] この1は本当に難しいです。 [MUSIC - MC HAMMER、「Uは触れることができません  この"] 私たちはあなたの2以上の命を与えるでしょう。 それできますか? [MUSIC - MC HAMMER、「Uは触れることができません  この"] 大丈夫。 どのように大きな丸いについて 拍手のそれにもかかわらず。 あなたは、最後のレベルに2番目になりました。 ありがとうございました。 [拍手] だから、これはどのくらい言うことだけです 物事のこれらの種類で行うことができます。 そしてときにも実現 パズルのピースはexist--ません 実際、これは1になるだろう 第一の問題と権限の セットとbeyond--にあります 実際に独自に作成します。 そして、これはちょうどスニペットです 例の1の あなたがプレイすることができます オンライン、と あなたがスクラッチに組み込まれていない場合は、 咳パズルのピースのようなもの、 あなたが実際にそれを自分で作ることができます。 だからすべての本以上待つの。 そして、ちょうど最終をペイントします 確かに何の絵 先にあなたのためのクラスのための店で、 クラスメートからいくつかの写真に基づいて、 過去には、私がライトを暗くすることができます 最後にもう一度、あなたにCS50を示しています。 [MUSICのPLAYING] 大丈夫。 つまり、CS50のためのそれです。 ケーキは現在提供しています。 [MUSICのPLAYING]