>> 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マラン：このデモのために、 我々は一ボランティアが必要になるだろう。
あなたがダウンして点灯しますか？
あなたの名前は？
上を移動する。