[Powered by Google Translate] [ロック音楽] [MUSIC - "共に幸せ"カメ] DAVIDマラン:今日、我々は我々の探査を開始 コンピュータ科学と私たちの導入の基礎、 今、なっているプログラミングの技術に ほんの一例。 しかし、問題解決の同じ調子で、ことを知っている CS50の伝統的なパズルの日は明日です。 あなたはまだこのイベントのためにRSVPedていませんでした場合は、に行くことができます cs50.net/rsvp。 あなたは、2つまたは3つまたは​​4つのチームを持って来ることができる。 あなたは、あなたが見たもののような問題に挑戦されます そこ初めにアップ。 すべての新たな問題は、今年は昨年partakeの、そしてあなた場合 いくつかの素晴らしい賞品を獲得するために、次にチャンスがあるだろう。 その中でも、Wiiやいくつかの商品券など、 すべてCS50生徒やクラスメートとぶらぶらしながら とピザやFacebook。 ご希望の場合、明日にだからもっと。 そして、これはあなたのそれらのためにご参加いただき、CS50です 初めて。 そして、このコースは特に得ると判断されたことを知っている もしこのコースを通じて、最後の最後に、その時点であなた だけでなく、これらを理解しているでしょう コンピュータ科学の基礎が、あなたが持っているでしょう あなたはその後に持ち帰ることができますこれは非常に実用的なスキルセット 自分の部署、それはエンジニアリング科学のかどうか、 応用数学、物理科学、自然 科学など。 確かに、コンピュータサイエンス、これらについてとてもエキサイティングなものだ 日には、それがちょうどそうも適用可能であることである フィールドのすべての種類。 そして今日もかかわらず、我々は唯一の表面を傷つけるでしょう Cとして知られている非常に伝統的なプログラミング言語で、我々はよ その代わりに、スクラッチと呼ばれるもので何かを見て そのクッキーの愛の物語は、あなたのいずれかの方法で実装された 過去数年間に前任者は、ゲームを作成するために、物語を伝えるために、 インタラクティブアートを作成すると、実際に私たちをラップするために開始する その基本的な構成要素の一部の周りの心 プログラミングの基礎となるが、文脈では、あなたが表示されますので、それはだ それほど怖い、それはあなたが表示されますよりも、はるかに少ない難解だ ずっと前に。 そして、ちょうど私達にこれに参加するあなたのそれらのためにも、実現する 学期、私たちは水曜日の講義を終了したフレーズ、 あなたに相対結局どこにはそれほど重要ではありません 学期の終わりまでに、このクラスのクラスメートが、どこで、 11週で、この日の右に自分自身に相対的に終わる。 だから、さらに騒ぎがなければ、これも注目に値することである ですが、どこかの間にあるもの、それらのあまり快適 また、このコースの設計ではなく、任意の不利な立場に 向かいあってそれらをより快適 このクラスに入ってくる。 あなたが来るまでに数週間にわたって見ていくように、我々は持っている別の 異種背中背景用トラック、それらのためのセクション どこかにそれらの、より快適な、より少ない快適 間のインチ この週末と来週の2つのバージョンを見るとわかるように ので、標準やハッカー版の両方で最も問題セット あなたはすべてであなたの道を自己選択することができます 最も快​​適です。 今日のように、我々は、このプログラミングに飛び込む 言語はスクラッチと呼ばれる。 これは、グラフィカルプログラミング言語だし、まだそれはあり 我々はよ、より高いレベルの言語のいくつかの同じ機能 Cとそれらの間で、後学期に探る JavaScriptとPHP。 しかし、それは私たちが気晴らしのいくつかを回避できるようになるだろう 早期の構文の上に、セミコロン、括弧のようなもの、 そのほかの難解な詳細は、一見するとただではありません すべての知的に面白い時とで取得する傾向がある いくつかの基本的な理解からの道。 先に今支持構造の面では、これを実現 コー​​スの上にリンクされますツール、CS50議論し、 ホームページ今日この後、オンライン·ディスカッション·フォーラムである あなたはお互いの質問をすることができるでしょうし、どの スタッフは、私たちは来週わかるように、それは、またツールだ 我々は一体でかなり使うだろうという 営業時間と同様。 確かに、オフィスアワーは月曜日に始まり、率直に言って、第一 オフィスアワーの週はかなり低いキーです。 私はあなたがすべてのスクラッチそのアクセスできないでしょうとは思わない。 それは我々がわかるように、むしろ自明だし、だから何 我々は、今日のためにそれを使用しますのいくつかを抽出することである 、その後、全体で維持されます基本的な考え方 学期の残りの部分。 しかし、午後11時を通過午後8時、月曜日から始まることになります 脳ブレークオーバーアネンバーグにおけるオフィスアワー。 2を区画するようにいつかこの、この夜を開始します 週末、cs50.net/sectionに行き、あなたはよ 質問の数を尋ねられる。 それらの中で、どのようにあなたに説明してくれる 今日のように快適さのレベル? そのバケツにだ人としては、ハード、高速なルールはありません。 それはあなたがおそらくあなたの場合、知っているだけのもののようなものだ あまり快適またはそうでなければ、それらの間にある。 そして今、チュートリアル。 今週の問題セットの仕様、規格の両方 と同様にハッカー版は、今のようcs50.netでオンラインになっています。 そして、あなたは、これらのエディションの、最初表示されます 標準版それぞれの週は、私たちに何かを伴っている コー​​ドのウォークスルーの一つ率いるセッションを呼び出す 提供し、あなたを介してガイドするコースの教育フェロー それが来るときのヒント、および特定のパスをあなたを降りる これらの問題セットを開始する。 あなたがこれまで望んでいるなら、これらの問題のそれぞれに、設定し 自分で私は始めないためには、これらで始まる チュートリアル。 そして、実際に、私はZamylaチャン、これを導入することができます 一人ひとりをリードされ、今年のティーチング·フェロー これらのチュートリアルの一つ。 Zamyla? [拍手] ZAMYLA CHAN:ああ、皆さん、こんにちは。 私の名前はZamylaです。 私はウィンスロップハウスの後輩勉強エンジニアリングだ。 しかし、私はできるだけ多くのコンピュータサイエンスのコースで試してみて、フィット 私は本当にこれをリードすることに興奮している理由である、缶 今年のチュートリアル。 チュートリアルでは、私にとっては、私のCS50の本質的な部分であった 経験。 チュートリアルでは、すべてのp-setに対して、我々は通って行くよ 問題は、どのような種類の、問題を上に見て、一緒に設定 扱いやすい刺されにそれらを分割する。 私はあなたに得るためのヒント、テクニックをあげる 通して、始まったばかり。 私はウォークスルーであなたのすべてを見てほしい。 じゃあ、人にそれを作ることができない場合 オンラインでチューニングを行ってください。 DAVIDマラン:優秀。 Zamyla、ありがとうございます。 だから金曜日に、確かに、ウォークスルーがあることを実感 午後が、これはデザインによって意図的にあるよう あなたはむしろ金曜日に授業に出席しないと思いますたとえ 午後は、ビデオはすべて、より迅速にを介して、最大になります 週末。 だからcs50.netがZamylaのすべてのであろうことを認識 チュートリアル。 と今日の日付と時刻、午後3:00、そこにあること Harberdホール、104。 とティーチングフェローのいくつかはまた、準備しました 不在のあなたのためのいくつかの発言はあなたのビットを与えるために それらの経験が入ってくるものとしての視点と CS50から出て行くことのようだった。 だから我々はちょっとライトが、私はあなたに与えることができれば薄暗い CS50のスタッフの一部。 ジャクソンSTEINKAMP:私はで新入生として昨年CS50を取った 秋、それは絶対に私の心を吹いた。 私は前に、任意のプログラミングの授業を取ったことがなかった、 任意のコンピュータサイエンスとで来なかった まったく経験。 そして、ちょうど、私はクラスについての話題を聞いて、 それを取ることを決めた。 JULIA MITELMAN:それは本当に魅力的で本当に楽しかったです。 この日に、まだ私、 - 私は最近、私はダビデが私達に与えたフロッピーディスクを持って見ました 講義の我々の最初の日に。 私は壁に掛けていた。 これはおそらく、少しオタクですが、私は私の上でハングアップ それがいかにクー​​ルのメモとして授業中に壁。 TRAVIS DOWNS:それはとても恥ずかしいです。 ジャクソンSTEINKAMP:コンピュータ科学が何かあなた あなたのための1でなくても試してみてください 従来の科学。 これは、独自の経験だし、CS50はあなたがしていることを確認します TFのその真の軍隊とそれをうまくサポートしていました。 ALIナーム:私は新入生としてそれを取って、私は多くを作った 新しい友達。 私はまた、この全体の濃度とに導入してしまった 全体工学部ので、私は非常にお勧め と私たちのCS50家族にあなたを歓迎します。 は、Yaniv YACOBY:CS50はただのツールを使用する方法を教えて それは広くアクセス可能です。 あなただけのラップトップを必要とするには、Webブラウザが必要であり、 いくつかのコードを記述することを学ぶ必要がある、とあなたが本当に構築することができます きちんとしたもの。 KAREN肖:それは何かを作ることができるようにちょうどとてもクールだ そして人々はそれを使用して、人々がそれを見る必要があり、それはだ 私は本当にそれについて好きなこと。 TIMマクラフリン: - コミュニティの感覚、私が思うに、この中で 私はこれまでに撮影した他のコースよりもコース。 あなたはちょうど別のを取っていない - あなたは、他の要件を充填していない。 あなただけの講義に行くとセクションに行くわけではありません。 しかし、あなたは約すべてであるもののトンをやっている プログラミングや技術についてのすべてが、それはしません 本当に時間のほとんどのクラスと同じように感じています。 TRAVISダウンズ:そして、最初の日に、彼らはケーキを配って、 私は即座に売却された。 JACOBプリット:無料キャンディーやピザ。 ZAMYLA CHAN: - 関係なく、あなたの関心度の、私が思うに CS50たので、楽しみがあるでしょう、あなたは知的になるだろう 刺激を受けた。 MARK GROZEN-SMITH:それは、常にクラスのパーティだし、それはだ パーティーが毎晩あなたのP-SETに取り組んでいます。 ジャクソンSTEINKAMP:あなたは、問題セットを終えるたびに プロジェクトを終えたところのように感じるでしょう。 MELISSA NIU:それは一年生だった、と私は買い物に行った。 私は四つのクラスの準備があったが、私はアネンバーグにあった。 そして、私は友人にばったり、と彼は言う、ちょっと、私は買い物しています このクラスはCS50と呼ばれ、あなたは私と一緒に来る必要があります。 私は、その年の秋、それを取ってしまったし、そのクラスの後 多分私はCSでマイナーに行くんだと思った。 しかし、ここで私は、3年後、まだコンピュータを勉強しています 科学と実際にメジャーとしてそれをやって、私はすべてを愛して その瞬間。 ROBボーデン:私は見当がつかない。 ALIナーム:見てみましょう。 MELISSA NIU:夢中。 スピーカー1:私は非常に陳腐な表現になるだろうような気がします。 私はちょうど素晴らしい、のように、と言いたい。 は、Yaniv YACOBY:アクセシビリティ。 JACOBプリット:無料キャンディーやピザ。 TRAVISダウンズ:クラスを断ることができないケーキ出手。 TIMマクラフリン:エネルギッシュ。 VIPUL SHEKHAWAT:エッセンシャル。 ROBボーデン:私は答えを考えてみましょう。 私は何かを得たと思う。 ああ、神様。 ええ、私の名前のロブ·ボーデン、これはCS50です。 [拍手] DAVIDマラン:すべての権利、とても絵を描くために始めましょう 私たちが行く、とのはご紹介しましょう​​できる方向の 擬似コードとして知られているここでは、このコンセプト。 だから擬似コードは、プログラミングではありません それ自体が言語。 それは技術的なもの自体がありませんが、それだけのようなものだ かなり正確に自分自身を表現する一般的な方法、 かなりアルゴリズム、かなり手続き的に、しかしなし あなたが表現しているものの言語を気にすること 自分インチ それは英語とプログラミング言語のいくつかのモデルだ あなたが精通していることが起こるので、始めることができる 我々が行くように、この種のことを書いて。 そして、実際に、ヨセフは、私がすることにステージにあなたを借りることができた ここで筆記? 私は事前にここで率先して置くことを忘れてしまった いくつかの靴下に今日、これは私たちの多くの間になるでしょう ばかげた例。 今、私はここにあなたを必要とする。 私は靴下の部分をやる。 そこでここでは、少しのスクラッチパッドを持っています。 これは、文字通りMacのテキストエディットだけです。 我々は、実際に実行可能なプログラムを書くつもりはないが、 私達はちょうどベースの擬似コードをスケッチ開始するつもりだ 弁護士の一部には、ここで私に提供します。 だからここに自宅で靴下の私の山です。 私は今、私は朝起きたときには靴下を持っていない、と私たち いると、プログラム、ソートのアルゴリズムを記述する必要があります 私の足の上にこれらの靴下を取得します。 と道に沿って、見てみましょうならば、我々は旅の上、または発生した、 あなたが開始する必要があるとしていることをいくつかのアイデア プログラミングするとき、はるかに真剣に考える あなたのプログラムといけないので非常に意図したとおりに動作しません。 だから私はここに座って。 私は靴下の私の山を持っている。 合理的な人間がそう最初の事は何ですか 目標は、靴下のペアを置くとしているときですか? 誰かが私に1ステップ、1ステップだけ与える。 うん? 読者:かがむ。 DAVIDマラン:オーケー、かがむ。 ステップ2。 ステップ2。 読者:あなたの靴下を拾う。 DAVIDマラン:あなたの靴下を拾う。 さて、ここで若干のあいまいさが、これは最初の一人である 我々は意図的にすることになっていることを足かせ ここで出会う。 それが少し曖昧なので、あなたの靴下を拾う。 ファイン、私はこの1つを取ることが、コンピュータ、わずかに気づくでしょう ビット、ちょうどに人間の本能のその種を持っているつもりはないされている 最も近いものを選択します。 私たちは、ずっと前に、開始する必要があるとして発現している より正確に自分自身。 すべての権利なので、ステップ2は、あなたの靴下を拾っています。 我々はそれを取るよ。 ステップ3。 後ろに。 読者:マッチングペアを探す。 DAVIDマラン:マッチングペアを探す。 わかりましたので、これは良いです。 私はこの靴下を選択しなければならなかった。 だから目標は今や、マッチング靴下を見つけることですが、何 それはどういう意味ですか? 私はずっと水曜のような合理的な人間、 電話帳にマイク·スミスを見つける方法を知っていただけの種類の 彼らの本能と一緒に行きました。 しかし、ここでは、それは明らかにここでは、この靴下だが、コンピュータの そう本能的になるつもりはない。 コンピュータは、私たちのように、ビットのコレクションを持っているとしている 水曜日に議論し、それらは メモリに何とか開催しました。 しかし、ポイントは、コンピュータだけの能力を持っているということです 一つずつ物事を見て、実際にする、たとえ我々 人間 - 私はダウンちらっと見て、スプリットのようにそれは感じているにもかかわらず、 靴下がどこにある第二後、私は、私の脳と私の目を知っている おそらくそれらの靴下の迅速なスキムミルクを行なったし、次にラッチ 問題のバージョンにしてください。 我々は今、コンピュータなど、すべてのそれ以上の意図的で、そうであれば どのように私はこのマッチングのペアを見つけるのですか? さて、私たちは繰り返し処理をする必要があります。 我々は、上の靴下のこの混乱の上におそらくループに持っている 私はそれぞれの靴下のために何かのように言うことによって床が、それを選ぶ アップしてから、もう一つ、同じ形と大きさ、IF ドット、ドット、ドット、我々は話を続けます。 だから、それぞれの靴下のために、私はこの1つをピックアップ。 私は、これはこの1に等しいかを確認しました。 それはないので、私は脇側を置く。 その後、私は再び繰り返すことができます。 この1つは等しいのですか? いいえ、それは、私はそれを脇に置くわけではありません。 この1つはありますか? いいえ。 これはどう? いいえ、など。 そして最後に、うまくいけば、私はここでこの靴下に遭遇するでしょう。 それが同じ形、大きさだそうだとすれば、それを取る。 そして今、ここに私たちの次のステップは何でしょうか? うん? 読者:左から右に識別します。 DAVIDマラン:じゃあ、左右の識別するので、 幸いなことに、作品のようなもの。 少し対称、または私はちょうどそれらをそのように身に着けてきました。 すべての権利、私は権利を認識しているので。 そして今、我々は先に進む前には、私は何ヨセフのを指摘してみましょう 精通したプログラマのようなものとしてここでやって。 だからもう一度、そこにこれを行うのは誰な方法はありませんが、ちょうど超え 行番号付け、ヨセフはすでにこれを実行し始めている インデントの一種。 実際、これは、プログラミングでは非常によく行われています それによって、あなたが何かのスタイルをループ、反復ないとき、など 我々は、それぞれに英語のフレーズ "と暗示している 靴下、 "我々がわかるように擬似コードのコンベンションと、 通常のプログラミング言語は、単にインデントすることである。 スペースバーを数回ヒットし、Tabキーなどを打つ 下になるように入れ子になった "とは、各靴下FOR"の塊です あなたは、そのループの結果として実行するために必要なもの。 だからそれは意味的に伝えることはこれですべてです。 今すぐ一方、 "それは同じ形とサイズの場合は、" "それを取っては"ただ意味さらにインデントされているという事実 それはあなたがその条件あればすればいいだけのことだ、 その枝、道路のそのフォークは、本当の事実である場合。 だから今ここに、我々はステップ4にしている、左右の識別。 私は右の識別した。 私にステップ5を与える。 そして技術的に、私たちは本当に呼び出すことができます 各事向け - 場合は、おそらくすべての行に番号を付ける必要があります 我々はこれをやろうとしている。 ジョセフ:[聞こえない] DAVIDマラン:[聞こえない]? 大丈夫、大丈夫です、大丈夫、私たちはそれにあなたの方法をやる。 すべての権利なので、ステップ5、どのように我々は右の靴下をしていますか? 我々はここで、次の方法を続行しますか? はい? 読者:右脚を持ち上げます。 DAVIDマラン:オーケー、右脚を持ち上げます。 ステップ6? 迅速。 うん。 読者:靴下の開放端を見つけてください。 DAVIDマラン:さて、靴下の開放端を見つける。 すごくいい。 そこでここでは、正直なところ、非常に一般的な本能だけであろう 右の靴下に入れたが、それはあまりにもかなりあいまいです。 コンピュータまたは人間は、それが何を意味するかを正確に知っていない限り、 それは私が、ので、ここでそれを実行するようにしたつもりはない 株式の開口部を発見した。 ステップ7? 読者:あなたのつま先をタッチします。 DAVIDマラン:タッチつま先。 さて、今、私たちは行く - すべての権利、私はここにいくつかの自由を取るつもりだ。 ありがとうございます。 ステップ8? 靴下を着用します。 さて、今私は、我々は近く取るの並べ替えには十分だと思う 自宅でこの1。 すべての権利は​​、これが上がる。 私は実際に、それが何を意味するのかと、いくつかの自由を取るよ。 靴下を着用します。 右のすべて、今9のステップ? 読者:足を下に置きます。 DAVIDマラン:ありがとうございました。 ステップ9は、足を置いて、今、我々は繰り返すことができます。 だから、おそらく、我々は今、ステップ10に移動して、識別すると言うことができます 左の靴下が、おそらくすでに完了です。 それでその後、私は、これらの手順を繰り返してからソートすることができます。 しかし、この種の疑問が浮かびます。 前に、最後の時間は、我々は、我々が何かを繰り返したい FOR、繰り返し、何度も何度もそれをやった 各ループは、いわば。 それは両方を処理するためにループを使用する意味があるだろう 左右の靴下? これらの操作はかなりしているように感じているので 1がここから始まるという事実のためにと1点を除いて同じ ここから始まる? 我々は、ループか、あるいは、我々は単に手順を書き続けるん 10と11と12? 読者:ループ。 DAVIDマラン:わかりましたので、ループ。 私は実際にちょうど行く続けると言っているかもしれません。 では、なぜこのような場合ですか? まあ、これは実際に私たちの非自明の最初のものです デザインの決定、および実際には、使ってメトリックの1つ 私たちは、自分たちのために、あなたのために、評価することから始めましょう プログラムの品質は、それがいかにうまく設計されています。 あなたに必要な作業の最小限の量を行っている 仕事は、どちらかの面で、最も早く片付ける あなたの時間や、コンピュータの稼働時間の面で? どのように多くの操作が実行するためにそれを取るのですか? だから間違いなく、これは、ループのための機会である 私はコピーして貼り付ける、ヨセフのように効果的に開始するとすぐに 一瞬でやって開始すると、あなたを無駄にすることのようなものだ 時間、あなたは二重に表現力豊かであることだ。 しかし同時に、これらは実際には単なる2特別です 例、左と右。 と前のに対し、私は、10または20以上の靴下を持っているかもしれません 山、それは間違いの50行を持たないように理にかなっている コー​​ドは、その後、次の1、この靴下をチェックすると言って その後、次の1。 ここでは、それは少しは明らかだ、と私は提案したい 我々は、いずれかの道を行くことができる。 それだけでループが、我々はどちらか、そのループを及ぼす可能性があります 二回、あるいは単に私たちが少しだけをコピーして貼り付けることができます ここでは仕事を得るために。 しかし、このプログラムは、いわば、バギーです。 それはそうと、いくつかのミス、エラー、またはコーナーケースがあるかもしれません 私たちは本当に予想していなかったことを、話す。 何もこの時間が間違っていたんですが、何が間違っている可能性が このプログラムを実行中? 読者:あなたはどんな靴下を持っていません。 DAVIDマラン:だから全くそこには靴下があるかもしれない。 それでは、そのコーナーケースを考えてみましょう。 我々はステップ1に戻って上にスクロールができればそれでので、ステップ1であった かがむ、それはチェックアウトするようにします。 ステップ2、あなたの靴下を拾ったが、その後、マッチング靴下を見つける 右の識別。 、我々は一種の仮定の全体の束を作って、これは 率直に言って、なぜプログラムが時々クラッシュする。 あなたは、プログラマは、一定の前提(仮定)、等を行った場合 確かに靴下があるように起こっているのか、確かにそこに起こっている コンピュータに残ってメモリであることが、確かにそこに起こっている ハードドライブ上に残ってディスクスペースであること - さて、あなたは、これらの仮定をし、それがない場合は、 どのコンピュータの時々知っている実際には、現実、 するつもり? そして、時には、あなたは回転ビーチボールまたは取得するとき こそだ冷凍のWindowsなど、いくつかの プログラマは、それらのいわゆるコーナーケースを予想していなかった。 他に何がこのプログラムで何がまずかったのでしょうか? うん? 読者:あなたは右脚と左脚を持っていない。 DAVIDマラン:オーケー、右脚との両方を持っていない可能性があり 左脚ので、このプログラムでは、普遍的ではないかもしれません 該当する。 その他? 読者:あなたは孤児靴下を拾っている可能性があります。 DAVIDマラン:私は孤児靴下を拾っている可能性がありますので、 私がきたので、ちょうど兄弟はありません非マッチング靴下 それを失って、それが破れている、それはまだ洗濯での、等。 そのため、あまりにも、実際に処理されなかった。 うん? 読者:あなたはすでに靴下を上に持つことができる。 DAVIDマラン:私はすでに靴下を上に持つことができる。 私は実際には確認しませんでした。 あなたは上の靴下を持っていない場合は、何に進んで ライン1と2。 そして、それが起こる可能性があります。 あなたはそう、あなたの靴下に等で眠りに落ちる あまりにも、非常に合理的なコーナーケース。 そして、おそらく他の1? 読者:靴下を裏返しです。 DAVIDマラン:だから靴下が裏返しなので、エラーをしなかった 手短に言えば、チェックします。 我々が期待するような世界の状態であれば、我々は確認しませんでした。 私たちが実際に我々が探しているものが見つかった場合、我々は確認しませんでした。 そして、これはばかげた例のようなものであっても、 靴下を含む、一日の終わりには、これはまさに あなたがプログラムを書いている間持っている必要があり、考え方の並べ替え、 でも、スクラッチだけでなくCの場合と同様に、JavaScriptで、PHPで、 そうしないとするので、あなたのプログラムが出展します その紡績ビーチボールと同等か、単に収量 不正確な結果。 私たちのスクライブヨセフにここに非常に多くの感謝します。 [拍手] DAVIDマラン:全ての権利は​​、そこらで、何ですか 実際、コンピュータプログラム? まあ、のは一目みましょう ここに代表的な1。 だから、これは、CはCと呼ばれる言語で書かれたプログラムです かなりこのごろ古いですが、多くの新しい言語が組み込まれている その上に。 確かに、PHPは、我々はよウェブを中心とした言語の一つ 任期の終わりに向かって使用し、それ自体はと呼ばれるものがあります インタプリタ、Cで書かれているプログラムが、それについての詳細 今から何週間インチ しかし、このプログラムは、これはそれを書くために何を意味するかである 非常にシンプルなものとはいえプログラム。 我々はここでいくつかの非常に不可解な構文がありますが、次のことができます おそらく、あなたは前にプログラミングしたことがない場合であっても、どうなったと思う このプログラムではありません。 実際、私はprintfが何であるかを知らないが、確かに印刷 何かをプリントアウトのアイデアを想起させる。 それではい、このプログラムは、最終的にプリントアウトしようとしている 言葉の "Hello、World。" さて、あなたは、MacまたはPCまたはLinuxコンピュータ、オッズを持っているかどうか あなたは自由にいくつかをダウンロードした場合、少なくとも、アール 利用可能なソフトウェアは、上のプログラムを書いていたかもしれない もうだいぶ前から自分のノートパソコン。 Mac OSでは、例えば、と呼ばれるこのプログラムはあり あなたは通常のMac、付属していますターミナル [ユーティリティ]フォルダ、そして、それは一般的には黒とをオープン 白またはあなたが持っているで、白と黒の窓 は、コマンドを入力できるプロンプトで入力します。 だから、これは実際にどのようなコンピュータを彷彿とさせる グラフィカル·ユーザーよりも前に使用される インタフェース、GUIは、一緒に来た。 さて、Windowsには、フォームにも同様の仕組みを持っている コマンドプロンプトの。 しかし、私がここでやろうとしてたんだけど、としましょう​​、開放されている 再びテキストエディットので、我々が使用していたものと同じプログラム 少し前に擬似コード、私は先に行くつもりだと 私の最初のプログラムを書く。 stdio.hをインクルード、どんなことを意味し、int型のmain ボイド、どんなことを意味し、ここで途中で、 のprintf( "こんにちは、世界")。そして、閉じ引用符、 括弧、セミコロンを閉じます。 今、私は先に行くつもりだとちょうどコマンド+ Sを押します。私は行くよ 先に行くと、hello.cのようにこれを保存するためのコンベンション C言語プログラミングの世界では、ファイルドットcを名前です。 私はちょうどジョン·ハーバードのホームディレクトリに置くつもりです、 ここでは、[保存]をクリックし、そして今、私はこの所へ行くつもりです 再びこの黒と白のプロンプトである端末ウィンドウで、 ここで私は、コマンドを実行できます。 私はしないことで、自分の名前を入力してプログラムを実行することができます 通常の意味でのダブルクリックアイコン。 しかし、ことは、Cは、C第一のように、その言語である約 この形で来る、何かがソースコードと呼ばれる。 英語に少し似ているが何か ヨセフの擬似コードよりも英語のように明らかに弱い 少し前。 それは、もう少し難解だ。 これは、いくつかのパターンや規則に従っているようだ。 私は、中括弧、セミコロン、引用符​​を持っているという事実 角括弧、この思い付いたコンピュータのように感じている 言語の一種。 私はこの端末ウィンドウに、今、行けばしかし、私は実行することができます そのソースコードを変換するために起こっているコマンドは次のようになります 何かがオブジェクトコードと呼ばれる。 ゼロに英語のような構文を変換するために起こっている ともの、ゼロともの我々同じ種類の 水曜日の話。 今、私はClangのというコマンドを実行するつもりです。 来て数週間でこれについての詳細が、それは使用してプログラムの 私は、全体の束にhello.cを変換できる 0と1の。 今、私は、このコマンドを実行しました。 私はClangのを実行してきたが、その後私は、このファイルに自分自身を実行すると述べた 私は少し前に作成したhello.cを、と呼ばれる 何も起こらないように見える。 私は自分のホームディレクトリの周りつついている場合でも、実際のところ、私は見るでしょう この愚かな名前のプログラムa.outは現在存在していること。 で書くとき、これは単にプログラムのデフォルトの名前です C.私達は最終的にこれを上書きすることができますが、a.outがある プログラムの名前は、私はちょうどゼロとものに変換されます。 そして今、それそれのゼロともの、私のMac、この場合には、または お使いのWindows PC、それらのビットを理解することができ、それらの ゼロともの。 そして私はEnterキーを打ったとき、私は "こんにちは、世界!"を参照してください。 しかし、それは少しバギーだ。 私はかなり言いませんでして、 "hello、world:空気を - !jharvard。"空気である 私のコンピュータの名前。 Jharvardアカウントの名前なので、何をした私ははっきりと プログラムから省略されてる? 改行のいくつかの種類。 私は、入力と同等またはキャリッジリターンを打っていなかった これは、再び、コンピュータができるという事実を証明するものです 唯一あなたが彼らが何を言う何をすべきか。 そして、私はコンピューターを教えていなかったという事実は、移動 カーソルを次の行に - まあ、それは確かにそれを行うことはないだろう 僭越私のために。 だから私は私のプログラムに戻って、私は\ nを言えば - だから我々はすぐにわかるように\ nが、一つの方法です 改行文字は、物事のような奇妙なことを表す それがそうでないの結果であろう Enterキーを押す。 しかし、今では、[Enter]キーを押すことと知っている ちょうど私たちのコードが奇妙に見えるしているので、それ世界が決めた、あなたが知っている 何、してみましょう、1行でそれを維持するために、物事がきれいに保つために ちょうど\ nは改行を表し言う。 端末ウィンドウに戻り、私は私のファイルを保存し直してみましょう、と 入力して、a.outを再実行してください。 まだバグが、なぜですか? 読者:[聞こえない] DAVIDマラン:ええ、私はそれを再コンパイルする必要があります。 だから、プログラムをコンパイルするためには、単にソースからそれを変換することを意味 ゼロとものにオブジェクトコード、ソースコードへのコード。 今、私はこのテキストエディットで保存を襲っているという事実だけではありません 私が最初にする必要があるため、それらのゼロとものにベアリング Clangのちょっと教えて、私は、これらのコード行を変更しました ソースコード。 あなたは、a.outを再生成する必要があります。 何が起こっているように見えませんが、コンピュータで、 コマンドラインで、いわば、何も起こらないときに、 それは、通常、すべてが順調であることを意味します。 何かが起こるのでしょうかと、その意味 あなたは一般的に、めちゃくちゃ。 それでは、今ではa.outに行くと、確かに今、私が持ってみましょう "こんにちは、 世界。 " そして今、どのようなこれらのゼロとものはどうですか? 実際には、それらはどこにありますか? まあ、私は非常に周りをウロウロするのは本当にただ一種できません 効果的に。 私はテキストエディットを開いてみましょう。 ここではa.outです。 私が先に行くと、これを開いてみましょう、これは明らかに何か私の プログラムは次のようになります。 だから私は、hello.cを開けませんが、a.outをしました。 しかし、これは私のプログラムは本当に何なのか、実際にはありません。 明らかに、これはアルファベット文字のいくつかの種です。 私はゼロとものを見ませんが、これは a.outはプログラムであるためです。 ゼロともの - しかし、テキストエディット、その名が示すように、それはだ ちょうどWindowsのメモ帳のような、単なるテキストエディタなので、それはだ それらゼロとものとして、すべての混乱 彼らがいたけど、何? ASCII文字。 だから、水曜日にリコール、私達はちょうどこの思い付いた の文字に数字、または任意のビットマッピング、 アルファベットと句読点記号等。 だから、テキストエディタのテキストエディットは、誤解されている ことになっている0と1のそれらのパターン のような印刷の言葉は、 "hello、world。"それは、それらを表示するだ ASCIIと、それは少し厄介に見える理由です。 さて、ここで正しさのいくつかのヒントがあります。 私は、強調表示した場合に注意してください、実際のヒントは、こんにちは "がある 世界は、 "これどこかにそのプログラムである 文は私が書いている。 しかし、先に進み、現在は別のプログラムで見てみましょう。 これは、我々はそれほど頻繁に使用しますものではありませんが、それはまた、付属しています MacとCS50アプライアンスの内側になります。 私が先に行くとXXDと呼ばれるプログラムで開いてみましょう。 先頭へ戻る日で、ほとんどのプログラムは、かなり隠れて命名されました というような傾向は継続します。 しかし、-bはバイナリとしてこのプログラムを吐き出すことを意味します。 それを実行しないでください。 ゼロともののように私にそれを表示し、これはC 先ほど書いたプログラム。 今、私は、ここで人間として、私は正直分かりませんどのような 0と1のこれらの様々なパターンを表す。 先頭へ戻る日で、私は、私のパンチカード等で、希望 実際にどのようなこれらの様々なパターンをルックアップする必要があります 01111000、実際に表しています。 または悪いことに、私はパンチや作成を行う必要があるでしょう 0と1のこれらのパターン。 しかし、今のところ、そのCPU、インテル社内ので、信仰を取る 近頃私たちのすべてのコンピュータの内部で、話すことを知っている、 これらの0と1を解釈する方法について説明します。 そして、いくつかのゼロとものは、印刷を意味します。 いくつかのゼロとものは、サウンドを再生することを意味します。 いくつかのゼロとは、キーボードからのユーザ入力を取ることを意味します。 、そこにさまざまなパターンのすべての種類が、しかし我々ありがたい 人間として、唯一、一般的にプログラミングを心配する必要はあり これはかなり高いレベル。 そして、他のCSの授業では、より深く掘り下げダウンと見ることができます それらゼロともののようなもので、あるいはまだ まだ他のもの。 だから今、これを変換してみましょう。 Cから離れて非常に迅速に移動し、何かに移動してみましょう その中で、もう少し刺激的な、もう少し慰め 私達は私達のアニメーションとサウンドを取り戻すことが、そのようなことができます 明らかに、この私たちを逃れた かなり原始的なインターフェイス。 だから、Cのこの同じプログラムは、このようになりまし表すことができます 次のようにスクラッチと呼ばれるプログラミング言語。 これは、で書かれたこのhello worldプログラムと同等です スクラッチと呼ばれるこのパズルのピースのスタイル言語。 だから私は先に行くと、この非常にプログラムを開くことができます。 それは再びスクラッチと呼ばれています。 それは、自由に利用可能です、そして、これは同じものです我々 本日開始しました。 だから、これはここにスクラッチであり、それはいくつかに分かれている 異なる部分。 非常に右上に、我々は、いわゆる段階があり、 確かに、それはどこにクッキーだ ほんの少し前に行った。 そして、そのステージ上でスプライトと呼ばれるもの、文字、またはアール オブジェクト、またはエンティティ。 それは本当にあなたがそれらをどのように考えるかは重要で、しかし、彼らはありません プログラム可能な、可動のものであり、この場合には、この 私たちの学生が書いたプログラムはジンジャーブレッドのカップルを持ってい クッキー、円形のクッキーのカップルの全体の束 心、眼鏡の全体の束。 、彼または彼女はそれらのそれぞれをプログラムすることができますこのため 別に個々の文字。 さて、それは、これらの文字をプログラムするためにどういう意味ですか? まあ、私が先に行くとこの左側のクッキーをクリックしてみましょう そしてここでトップの左に上にスクロールします。 私の画面の左上に今ある いわゆるスクリプトエリア。 私がすることができ、その上これは、最初は、白紙状態のようなものです 率直に言って、やる、パズルのピースをドラッグ·アンド·ドロップ まさに彼らの言うこと。 パズルのピースのこのスタックの最上部にある言葉です あなたは前に気づかなかったグリーンフラッグがクリックされたとき、以下の場合、 私はそのクッキーの歌を始めた方法は、文字通り、クリックされました 緑の旗。 だから左上にそのパズルのピースがあることを意味するとき 人間クリック緑色の旗は、やることを進ん 以下のこと。 今、彼らのクッキーは何をすべきかを進みましたか? 私は本当にまだこれをどのように解釈するかわからないが、 クッキーは明らかにゼロにその溝を設定し、それは待っていた 3秒で、それはその後、1にそのグループを変更 秒待って、それが変更されたその 1に戻って溝。 そして、これは実際にバグのビットのように見えますが、すべきではありません それがない限り、何度も何度もその溝を変更する必要が 他の場所に変更しましたが、この一連の手順は何ですさ この特定のCookieの挙動を口述。 それでは、実際に、左へスクロールして、何かを見ないようにしましょう それほど複雑ではまだありません。 私が先に行くと、ファイル、新規に行こう、 と白紙の状態を取得します。 だから今、私は確かに空のスクリプトエリア、空のステージを持っている 私たちのデフォルトスプライトスクラッチと、左上にある 私の画面上で、私は彼らのすべてのパレットを持っていない 利用可能なパズルのピース。 そして、我々はこれらの事のほとんどは、多く通ることはありません なぜなら今日、再び、ほとんどのは自明ですが、我々は意志 それらを分類し、類似点を指摘しよう 私たちは飛び込みましょうこれらの将来の言語である。 そして、ここでトップの左で、グリーンフラッグがクリックしたときに最初のものです ので、私は少しズームアウトし、ここにこれをドラッグしてみましょう。 私は緑色の旗をクリックすると、何も実際に起こりませんので、 私はする、いわば任意のロジック、任意の文を添付していない グリーンフラッグというので、私は、最大手放す こっちのカテゴリ。 私は現在、制御カテゴリにいるよ。 私の代わりにルックスカテゴリにダウンするつもりだ、と 物事の全体の束が言うには、言うことをここにあり 思うに、色を変更したり、衣装を切り替えます。 だから衣装と愚かなことを行うことができますし、 音など。 私が先に行くと言うだけ言ってみよう、と私はドラッグとして今気付く そしてこのパズルのピースを落とし、それがラッチするために起こっている 対応した形状に。 だから私は先に行くと、私のマウスを放したとき、彼らはロック 一緒にしましたが、今はこっちに行くと緑の旗をクリックすると、 それは内側にあるものだから猫が実際に挨拶しない この白いボックスの。 我々はすぐにこの白いボックスはと呼ばれるものであることがわかります 引数、またはパラメータ。 それは、この場合には、の動作を変更する方法です パズルのピースが、私は私が言ったことを正確に表現したい場合にはどう 前に、挨拶、世界、私は今ここで振り返って行くことができ、 [再生]をクリックして、 "こんにちは、世界"と言われるものです。 だから我々は文字通り今プログラミングしている。 それは、プログラムのすべてが魅力的ではないが、少なくとも それはで、見た目よりもう少し説得力のある何かである このような一見、。 そして、我々は非常に迅速にすべての、より表現力を得ることができます スクラッチでは、他の言語のように、すべての存在だから 文の種類だけではなく、言うか、何かを印字しますが、 先ほど見たようにあなたが待っているようなことを行うことができ クッキーは、秒数の一部。 あなただけのスクラッチの環境でサウンドを再生することができます あなたは、通常のコンピュータのプログラム再生音にすることができますように。 あなたは、ブール式と呼ばれるものを確認することができます。 だから今、私たちのツールキットにいくつかの用語を追加することから始めましょう 実際にヨセフと私がしたことを例に関連していること ここで靴下を持つ。 だから文はただの事実に関する記述である。 これを行う。 スプライトのディレクティブ、あるいは私人間、何かをする。 ブール式は値を持っているものであり、 いわゆる真理値は0か1の値は、falseまたは trueの場合は、オンまたはオフしないか、はい。ん 本当にあなたはこのことにどのように考えるかは重要で、そうではありません バイナリ状態。 ネイトは水曜日のビデオで説明したように、2 別物。 だからスクラッチでは、ブール式が見えるために起こる ここで、これらの青のオブジェクトと同じように、この場合、質問 マークは、あなたが質問をしていることを意味します。 猫、またはスプライトは、マウスポインタを触れていませんか? ですから、これが起こっているスクラッチ·ブロックの一例に過ぎません 私たちは、yesまたはno確認しないようにするために、マウスに触れている 画面上にスプライト? あなたが実際に物事を行いたい場合、これは便利です マウスで。 ブール式に加えて、我々は物事を持っている マウスが押されているようなので、その種類のを検出することができます 同様の質問です。 あなたが実際にしたい、とあったら、我々は数学を行うことができます のちょうど純粋よりも、このため実際にはもっと魅力的な用途で使用 我々がわかるように算術、。 擬似ランダム性とあなたのプログラムを作ると思うように見える または、いくつかの一見ランダムな値に基づいて異なる動作を それから私達は好きで、ブール式のようなものを持っている。 あなたが実際には2つの値を確認したいのであれば、我々は後で見ることになります これがあれば、我々は実際にテストできるスクラッチ 本当、これは本当です。 例えば、私の靴下の場合には、私がでてきた可能性が 最後の最後は左靴下がオンになっている場合の質問をし、右の靴下 で、終了しています。 あなたはすべての日のために終わったので、それは次のようになります。 そのための機会。 それでは、先に行くと一緒にこれらのいくつかをつなぎに試してみましょう そして、より多くの例のカップルに入る これより説得力のある。 だから私はここで先に行くと、例のいくつかを開いてみましょう それはいつもと同様のコースのウェブサイト上になり、 hello2を開く。 だからここhello2で、我々はいくつかをやっているプログラムを持っている 物事は、それはのように効果的に我​​々は可能性があるのでそれをやっていない。 だからここには、1秒間の "Hello、World"と言い、その後待機 秒間。 してから再度実行し、終了後に再びそれを行います。 私は緑色の旗をクリックしそうだとすれば、スクラッチの "Hello、worldと言う。 こんにちは、世界。 こんにちは、世界。 "そして、これは、今、明らかな候補である 改善。 我々は、うまくいけば、わずかな改善は何ができるの スクラッチでこの概念がサポートされている場合はすぐに作る? ループのいくつかの種類。 繰り返しのいくつかの種類が、今では、いいだろう、そうさせて頂いて 実際にそれを試してみてください。 私が実際に行って、これを移動しましょう​​。 に追加できるように通知が容易などのブロックを切り離すことができます それらを添付してください。 私はコントロール下に行こう、、確かにここで下にスクロールして、 このパズルのピースがここにあり、リピート、そしていつまでも フォーエバー場合。 だから、ループ構造を表現するいくつかの方法があり スクラッチインチ 私はおそらくここに欲しいものは永遠に私だけの理由ではありません これが3回発生したいのですが、おそらく繰り返します。 だからここにわたって繰り返し、それをドラッグ&ドロップし、私はドラッグできるようにし、 今では代わりに "Hello、World"という3つの別々の時間を言う、 私はここでこのパズルのピースをドラッグしてみましょう。 そして、それが合うように思われていなくても、プログラムがスマートです それを埋めるために成長するだろう実現するのに十分なので、それはだ 形状そのことではなく絶対的な大きさ。 私は3つに反復を変更し、今では私を行かせてみよう 前方と同様に、そこに1秒を待ってドラッグします。 それは同様にスナップするようになるだろう、と今私はドラッグするつもりだ ここで、ちょうど私ので、それらを捨てる以上こいつら もはやそれを必要としない。 私はズームアウトしてすぐに緑の旗をクリックしてみましょう、と我々は持っている 私は前に、より良い予測と同じプログラムが、 どのように悪いこのプログラムは、あなたが想像できるので、設計 あなたがしなければならなかった場合、確かに審美的に、なるだろう コピーと貼り付け、コピーと貼り付けを開始するか、 何度も何度も同じくそ物事をドラッグ&ドロップする。 さて、単純に印刷すると、画面上のものを言って エキサイティング、それでは開いてみましょうという画面、本当にすべてではありません ここで第三分散。 お会いしましょう​​そして今、これはすぐにイライラします - [MEOW] DAVIDマラン: - それはまたかわいいのようなものだ。 [MEOW] DAVIDマラン:わかりましたので、より良い、と我々は確かにそれを使用することができます ループにこれをチャンクという同じ遷移 構造が、のはまだそれをより面白くすることができます。 ここで私は、私が先に行くと、ここで第四分散を開けてみよう 物事はさらにもう一歩踏み込む。 だから、これが最初である愚かなのに、これによる 一見、何このプログラムは何をするつもりですか? それは、かつてニャーになるだろう。 なぜですか? まあ、1は、私の知る限り、2よりも常に小さい。 ランダム性の概念はここにありません。 私は文字通りハードコードされた1と2をしましたが、これはある 実際にブール式を使用しての今の例。 ヨセフはインデントなら、彼の擬似コードで行ったように非常に気に入って ここで我々が​​持っている、マッチング靴下は、次の操作を行い見つける 1つが2未満である場合、式 - 実際に私たちも、インデントの少しを持っている 紫は若干右にインデントされている場所 - 後は、Soundニャーを再生しようとしている。 さて、この場合、1つは、常に2未満であること、このように 条件の廃棄物の一種である。 しかし、我々は他のものを差し込むために、我々がわかるように、できるようになります これらのプレースホルダ1と2は今どこにいる。 それでは、今、これらのいくつかの例5に進みましょう helloおよびこのプログラムが何をしようとしているのかを見てみ。 だから今は、英語の文の中に、これがどのように プログラムが振る舞う? 読者:半分の時間鳴き声。 DAVIDマラン:時間のニャーの半分が、これは一つの方法です とてもシンプルなアイディアを伝える。 我々は、ここでいくつかの不等式を用いてすることが起こるにもかかわらず、 いくつかの数字で、これは本当にちょうどprogrammaticalです コインが頭をすれば、当然、行く言う方法、正確な方法、 前方とニャー。 あるいは逆に、コインは猫の鳴き声、尾を​​しない起動した場合。 この場合、我々はそれをどのように表現するのですか? 私たちは、1から10までの乱数を選択し、その場合によ 数が6未満の場合、先に行くとニャー。 そして、これはここでどのように手に入れたの? さて、もう一度、ちょうどドラッグアンドドロップ気付くと 物事が所定の位置にラッチします。 だから今、この偶発性が機能するかどうか見てみましょう。 私が先に行くと、緑の旗をクリックしてみましょう。 [MEOW] DAVIDマラン:わかりました。 [MEOW] DAVIDマラン:わかりました。 さて、良いので、我々は効果的に頭、頭部、尾部を得た。 テイルス。 [MEOW] DAVIDマラン:ヘッド。 [MEOW] DAVIDマラン:優秀。 ただ統計的にあなたが悪いのを得るとき、それは常に厄介です 実行すると、それはすべてのヘッドだし、プログラムが実際にはありません あなたが期待したとおりに動作します。 しかし、この時間は、それが働いた、そして我々がやった場合、我々は持っているように見える 回のこの無限の数、50%の確率。 ここでもう一度、すべてが面白い、ちょうど猫を作っていない ニャーので、我々は、このビットをさらに進めることができない場合見てみましょう ここではバージョン6インチ だから今、私たちは本当に迷惑なバージョンを持っている - [数秒ごとに鳴き声] として、これは知られているものであり、一般的な、 - :デヴィッド·マラン 無限ループ。 したがって、このケースで無限ループが悪い感じ。 これは間違いなく悪いが、まだ無限鳴らし始めるために起こっている ループは常に悪いものではありません。 あなたがほしいのコンピュータプログラムに文脈を考えることができます 実際に無限ループをしたいですか? うん? 読者:あなたが状態をチェックしたいときに。 DAVIDマラン:さて、あなたは、条件をチェックし続けたいとき? 例えば? 読者:[聞こえない] DAVIDマラン:じゃあ、良い、あなたには、いくつかのプログラムを持っていたので、もし、いくつかの あなたは常にしたいホームオートメーションの事、一種の モニタが何かのケースです。 ライトが点灯しているかどうか 多分あなたはタイマーを持っているので、上のライトがあり、 あなたがそれらをオフに行きたい、あなたは何かをする必要があるかもしれません 何度も何度も。 そして、実際には、タイマー、持っている人のいずれかで話す のコンピュータやデジタル時計、上のクロック 無限ループ。 それは常にだから、それは時間を更新し続け 時間が変更されたしてチェックインとチェック、 そうだとすれば、ああ、私の神。 クロックがついに変わった。 それはあなたにその値を表示する必要があります。 時間無限ループのほとんどは間違いになるように、一方、 または貧弱な設計上の決定は、少なくとも、時には彼らはやる それらの値を持っています。 まあ、hello7にここでさらに前進してみましょう。 だから今のプログラムはもう少しインタラクティブ得るでしょう。 再び私はここにズームしましょう​​、と、これは素晴らしいの内容です スクラッチについて。 そして、我々は明確な、スクラッチ、ちょうど今日とになるようにそれを使用します 来週の問題セット。 しかし、月曜日に、私たちは、それがない、ここでは、このプログラムではCに飛び込む 永遠に、次の。 今では、だ - マウスポインタをタッチする ここで文脈? まあ、一番下にここに降りて選択していることに注意してください 右の猫は、スプライト1つなので、これらのスクリプトは、この プログラムは、具体的には、彼にも適用されます。 その猫がマウスポインタに触れているのであれば、それは起こっている これを軽視して2秒間待機するように、と その広告nauseumを繰り返します。 それでは、先に行くと遊びを打ってみましょう。 何も起こりませんが、私はペットにしたい場合 猫は今、私は単純にすることができます。 [MEOW] DAVIDマラン:愛らしい。 [MEOW] DAVIDマラン:じゃあ、少なく迷惑ですが、また、退屈な取得 それでは、上の移動、私たちが注入できない場合を見てみましょう もう少しロジック。 すなわち、例えば7であった。 ここでは例8において、我々はするつもりだ ELSE条件をご紹介します。 そんなにあなたが行くことができる道路のリテラルフォーク、のような 左または右に行くことができ、プログラミングの条件 スクラッチのような言語、または我々は、Cが表示されますように、あなたができるようにすることができます IF ELSE構築を介して一方向または別のに行く。 だから、文字通り、マウスポインタを触れる場合は、この そうでなければ、この他のを再生するために起こっている、いくつかの音を再生します 音、猫の鳴き声。 あなたはこれらの音の名前から推測できる場合、今、次のことができます おそらくこのプログラムはひねり出すためのものだかを推測 のアイデア。 この猫は喜んでニャーニャーされています。 [MEOW] DAVIDマラン:幸いなことに、しませんが、 なかなか触れることが好きです。 [うなり] デビッド·マラン:だから、今、私たちはあなたに叫ぶでしょう猫を飼っている。 すべての権利は​​、まあ、ここで猫と1最後の例、および ここでこれのオープンバージョン9みましょう。 だから今、私たちは、私ができたことを次の最も迷惑な音を持っている 見つけるには、我々が起こっているのか、ここセイウチアシカを持つように 次の手順を実行します。 [シールの樹皮] DAVIDマラン:あなたはどのように把握するまでわかりましたので、これは上に行くでしょう このプログラムは動作します。 今回ので、この動物は、2つのスクリプトを持っており、何 ここで興味深いのは、これらのスクリプトを実行しようとしていないということです 並列インチ そこで、彼らは両方が1つの緑色の旗がクリックで始まるため、 それはこのように行くようなものだし、両方のプログラムがそれを実行して起動する 彼らは永遠にループする回も。 だからトップのスクリプトでは、私はいくつかのロジックを持っています。 それはそこにどのような機能を提供していますか? [シールの樹皮] 読者:[聞こえない] DAVIDマラン:それは何ですか? [シールの樹皮] 読者:ゼロにミュートした場合、再生し続けるために起こっている 音。 [シールの樹皮] DAVIDマラン:じゃあ、良い。 ミュートされたので、もしこれが何であれ、このオレンジ色のものはゼロであり、 THENアシカの音を再生すると思う "ああ、 こんにちは、 "2秒間押し続けます。 今、私はミュートが何であるかわからないが、ゼロでは想起させる 虚偽またはオフのアイデア。 ミュートがfalseであれば、そうでない場合はミュートになって、 音を再生し続ける。 すべての権利は​​、よく、どのように我々はこの事を無効にするには? まあ、そこにダウン番目のスクリプトを見てみましょう。 二つ目のスクリプトはゼロにミュート設定と言います。 それはまた、オレンジ色なので、何をスクラッチしていることはそれは色であることに気づく 同じ色のブロックそれが並べ替える場合 論理的に関連の。 ミュートアップトップはオレンジ色だったので、同じように、ミュートされてダウンしてここに オレンジ色のブロックで言及。 しかし、これは、これだけのように変数の代入である 代数は、あなたのプログラミングでは、xとyとzを持っている 変数が、それらは一般的にしている - レッツ一時停止してから、図の方法 この吠えを停止します。 どのように私はこれを行うのですか? [シールの樹皮] DAVIDマラン:わかりました。 それが停止しました。オーケー。 あなたは、変数x、y、およびzを持っていますが、これだけでは代数のように プログラミングでは、x、y、およびzのような変数を持つことは一般的である 彼らはすべての表現力ではないだからひんしゅくを買う。 彼らは全く意味を持たないので、ほとんどの プログラミング言語は、変数がいっぱい持つことができます と言ってもミュートのような本格的な名前や単語やフレーズ、 何をする彼ら。 だから、この第二のスクリプトはまた、永遠に聴いていました、そして、それは言った キー、キーボードのキーのスペースがある場合 疑問符は、押された。 それでは、ブール式を条件付きではあり 正直どちらか偽質問に答えるつもり、 それから私はスペースキーが押された場合は、その中に持っている ミュートがゼロの場合、ゼロにミュート設定、ELSE、1にミュート設定してください。 私がきたかので、この他の道路の分岐点、および通知 二つの条件ネストされたIFは、チェックの方法はされている もしそうなら、私はこのいずれかに行きたいので、スペースバーを押す 方法、またはその方法。 そして、どのように私はミュートの値を反転させるのですか? 私はそれがゼロであることをチェックする必要がありますか? もしそうなら、それを1にし、そうでなければゼロ、したがって切り替えるに作る その二つの状態。 すべての権利は​​、私たちは、これらの基本のいくつかを持っている コンストラクト。 我々はあまりにも、ブール式があり、実現は、これらは すべてが不慣れではない。 実際には、ここでは、ハーバード大学のコースのCS50のクイックスクリーンショットです ショッピングツール、およびチェックボックスがあり、そこに任意のウェブサイト とドロップダウンは本当に、すべてのこの時間は、使用してきました ブール式。 この場合、ここでは、あなたの隣にあるチェックボックスをクリックした場合 以上の4.5に等しい、またはそれに同じ次のコース 教員は、ブール式を指定しています。 私にその式が真となるコースを表示します。 または右に、私はコースと競合することはありません チェックされていることならば、はい、あなたはチェックしたい、撮影 そのほかの条件は、あなたがそれを無視したい。 だからブール式は、すべての周りの一種であるが、時 場合我々は、条件が一致した場合かどうか、条件に入れて よそ、または我々はさらに深くシミュレートすることができます レベル、IF ELSE ELSE IF - その結果は、三項状態のようなものだ。 あなたは、この方法またはこの方法またはこの道を行くことができます。 我々は、別の方向に行くことをネスティング物事を維持することができます。 だからスクラッチは永遠のように、これらのループを持っています。 これは、いくつかの、リピート10のように、これらの機能を備えています 有限回数。 我々は、したがって、この場合には、変数を設定するために、今の能力を持っている 私は、例えば、靴下と呼ばれる変数を宣言した。 私は0に初期化してきたが、それはまた別の方向だ 我々は、それによって多分ヨセフ、私と一緒にここに取り上げられたかもしれない ちょうど私が持っているどのように多くの靴下を追跡して終了 その変数の値が2であるプログラム。 それは、その一般化の一種の別の方法であろう 問題は、何度も何度も何かをやって。 さて、先に進み、今ではカップルの新しいものを紹介しましょう​​。 事前のプログラミング経験のあるあなたのそれらができるようになるので 多くの言語は、配列、またはベクトルまたはを持っていることを知っている リストには、確かに、傷はあまりにも、このような何かを持っています。 だから我々はここで次のレベルに物事を取ることができない場合は、見てみましょう。 私は能力が、今、これらのパズルのピースを持つにしている場合 変数に、単語や数字のように、何かを追加し、私がすることができます 物事の蓄積を開始。 そして、これは、ゲームのようなもののため、実際にはかなりaproposのです あなたが歩き回っている一種のロールプレイング·ゲーム いくつかの空想の世界では、物事を拾って、物事を収集 ポイントを獲得、等が挙げられる。 あなたは、在庫のいくつかの種類を追跡したいかもしれませんが、と 確かに、それはここで我々のかつての生徒の一人がやったことだと Fruitcraft RPGと呼ばれるもの。 だから私は先に行くと、ここにこの事を開いてみましょう、とに Fruitcraft、我々は、上部にあるこの世界を持っている。 だから私は先に行くと、緑の旗をクリックしてみましょう。 左上の通知には、棚卸資産のいくつかの種です。 我々は配列と呼んでいるもののようにスクラッチで実装されていること、または リスト、そして、今、私たちはこの小さなアニメーションを持っています。 我々は、このクッキーのラブストーリーで、以前始めたので、同じように それから私達は、今、私たちが持つことができる、猫やアシカに進出 さらにインタラクティブである事。 そして、この小さな青い男は、私が彼の周りに移動を開始することができます ここで少し家。 彼がダウンしてここに出口を持っているようなので、それが見えますが、私が使用しているので、 矢印キーは、上、下、右を残しました。 そして今、私は外にいるので、私はここに何を持ってみましょう。 できるだけ早く私はタッチすると、確かにオレンジ色のように見え、 オレンジは、それは私のインベントリにそのまま流しされます。 私はチェリーにこっちに行けば、今私は何かを持っている 他の私の在庫インチ そして、これはこれは、今のところ、全て素晴らしく、かわいいですが、どのように考える 実装されています。 まあ、我々はリストの概念を持っている、それは明らかだ 先ほど追加し、あなたがそれに追加して欲しいものを言うことはパズルのピース オレンジ、チェリーを追加します。 さて、この小さな青い男は何をやっている? まあ、彼はスプライトです。 そしておそらく、オレンジ、チェリー - 彼ら自身は、別のスプライトだった。 とブール式の条件、使用 学生は、おそらく青の男であれば表現することができました 触れるチェリーはそれから彼にワードチェリーを追加 在庫、およびその後も桜のスプライトを非表示にします。 フードの下だから、おそらくまだ桜がある そこにスプライト。 我々だけで効果的に見えなくなるように指示してきました。 私がこっちに歩き続けるさて、もし、我々はまた、これを行うことができます 私が行くとサインを読み取ることができます近物、。 青い男に触れ記号もしそうなら、私たちは、このセイブロックを持つことができます 猫は言葉で私たちに話を聞いたのと同じように、こんにちは、以前、 "手に入れた いくつかの果物? フルーツの場所に持ってきて。 "すべての権利なので、今、明らかに、 私は自分の方向性を持っています。 私は、果物の所にこっちに行く自分を並べることができます ドア付き。 今、私はここにいるよ。 私はカウンターで男に上がることができます。 彼は私が彼に近いんだことを検出したので、それはする必要はありません 全く同じように触れて、私は試合に勝った。 だから我々はFruitcraft RPGを持っています。 だから我々はこれよりもさらに高度なことを行うことができます。 我々は音を追加することができます。 私たちは、擬似乱数を追加することができます。 私たちは、複雑さを追加することができます。 、私はここで先に行く、というよりこれを自分でやってみましょう 私はあなたに、より洗練された提出物のいずれかをお見せしましょう 我々は、ブレイクという特定の誰かから昨年ました。 我々は一つの上に現れる快適でボランティアを持つことができます カメラとゲームをプレイするためにアップしている? 方法についてはすぐそこ? アップで来る。 すべての権利なので、あなただけの無意識のうちに持っているゲーム プレーすることを志願 - [拍手] デビッド·マランは: - と呼ばれる往年からのものです "フロッガー"。あなたの名前は何ですか? レンダ:レンダ。 DAVIDマラン:Redna? レンダ:それはbとブレンダのようなものだ。 DAVIDマラン:オーケー、レンダ。 デビッド。 よろしくね。 そこでここでは、 "フロッガー"で、我々は単にボリュームを上げることができる場合 少し、あなたはこの小さなアール 下部にある緑色のカエル。 あなたは右、上下、左に使うことができ、あなたの目標は、 、通りを渡って川を渡ると、ユリのパッド部には触ら 最上部にある。 おやおや。 もう一つトン - 、すべての権利をやり直す? ストップを打ってみましょう。 誰のを見ていません。 [拍手] [拍手] DAVIDマラン:うん。 非常によくやった。 優れた、ありがとうございます。 だからフロッガーがあったこと。今あなたがしたものを知っていること 別のためのもう一つのボランティア、自分自身をに得 他の学生から提出されたゲーム。 あなたがアップで来てほしい? あなたの名前は? RICHARD:リチャード。 DAVIDマラン:リチャード。 すべての権利、リチャードは、上に来る。 [拍手] DAVIDマラン:あなたが聞こえるよ何かを持っている すぐに馴染みますので、ここにあなたの命令です。 だから瞬間に、いくつかのパズルのピースが上にスクロールしようとしている 左に見えるのいずれかの画面から または右上下。 あなたは、そのような方法で、矢印キーを打つ必要があるとしている それと並んで、これらのパズルのピースに対応していること 上部のプレースホルダ。 ですから、左矢印が表示されたときに、左とそれがラインアップ 矢印は、左矢印を押してください。 あなたが始めるかもしれません。 [MUSIC - "強い"ケインWEST] DAVIDマラン:リチャード拍手のすべての権利は​​、大きな丸い。 [拍手] DAVIDマラン:非常によくやった。 ありがとう。 [拍手] DAVIDマラン:だから楽しいと、一見したところ、一種の それはのように何かを実装するかもしれないように威圧 このように一見洗練された、その生徒実現 すべてを一度に設定するとちょうどこれを書いていなかったのだ。 むしろ、あなたは、一見複雑なように問題を打破することができます はるかに小さい部分にこのように、これは、あまりにも、です テーマになるだろう。 あなたがほとんどすべてでプログラムを書くに行うことができる最悪のこと 言語は、座って本当に興奮し、記述することです。 全部いまいましいし、次にちょうどそれが正常に機能することを願っています あなたが書き終わっている時間。 むしろ、プログラミングのプロセスは、一般的にすべきである 非常に意図的で、非常に繰り返し、それによってあなただけ 自分自身、一口大のための非常に小さなステップを設定 あなたはこれらの正気を持つようにかみ切る、としたいですか 小切手、あなたが会うことはほとんどマイルストーン。 そしてあなたは多くを作成するためにそれらの上に構築 まだ洗練されたもの。 だから例えば、我々は約どのように行くことができる このようなゲームを実装する? まあ、率直に言って、私は確かにだけで開始する 一度に一つのキーをサポートしています。 ちょうど左矢印のサポートを実装してみましょう。 学生が何らかの形でPhotoshopで作成しなければならなかったので、またはで 自体は、少しグラフィカルなエディタを使ってスクラッチ 一番上のように見える矢印キーだけで、そこを去った 灰色のプレースホルダ。 その後、学生は、x、yは座標に把握しなければならなかった ウィンドウでそれをどこに置くか、それを置く。 0、0、ここでアップしているので、数を把握する必要があります からその矢印を相殺するためにピクセルまたはドット、 画面の最上部。 そして、かつての場所で​​だと、あなたのプログラムは、実際にはありません まだ何もしているので、次に2番目のスプライトを必要とするため インスタンスも左向き、あなたの緑の矢印 そのためにいくつかのスクリプトを書き始める必要があります。 そして、あなたはこれらの事がで来始めたのだから、多分、気付く 異なる速度、色が異なっていた 場所、および学生がのビットを使用しているためです 擬似ランダム性。 と擬似ランダム性によって、私はただの番号を選ぶ意味 何か、何かの間にあなたができるので、 数が1の間とされている場合のように、物事をマッピングするために開始 5は、よく、のは事は緑にしましょう​​。 それは6〜10の場合は、のはパズルのピースを作ってみましょう 代わりに赤。 あなたはいくつかの種類のを生成する方法を持っている限り、 ランダム性は、その後、それに基づいて決定を下すことができます 乱雑。 そこだからと私は言って擬似ランダム保つ 少し汚れた秘密。 コンピュータが乱数を考え出すことはできません。 彼らだけが言われているものを行うことができますので、 彼らは人工の装置だ。 彼らはただ、私たち人間のような番号を推測することはできません 我々はできるような気がします。 コンピュータが想起する数学的な何かを行う必要があります 時々使用して数学的な数字の錯覚、 何を考え出すに入力されるように時間の現在の日 数は、その別の時間に、しかし、よりを戻すことができます。 今のところ、我々は擬似乱数を生成することができることを知っている。 だから、かつて私は、開始するには、左矢印の能力を持っている 次に、異なる時期に、異なる速度で現れる 私は戻って、条件が一致した場合、これらのいくつかを追加することができます。 このスプライトは、他の1、左矢印をタッチしている場合 キーが押されました - その場合には、三つの条件。 私はそれを使用し、その場合には、おそらくブロックすることができます - それから私は、先に行くとスコアをインクリメントしたい。 そして一番上に、我々はスコアを持って、我々は、驚くばかり持っている 、涼しい良い、とブー。 だから、この学生の5つの変数は、明らかにあり これらのさまざまなメトリックを追跡するために使用されます。 だから簡単に言えば、最終的な結果は、驚くべきことです。 それが楽しいし、それがプレイするのも楽しいですが、それは魅力的だが、この限りではありません 学生が始まったところ。 彼または彼女はステップのはるかに小さいセットで始まった。 だから我々はできることをいくつかの他のビルディングブロックは何ですか これらのプログラムに織り? まあ、ほとんどの言語のこの他の概念は、そこ スレッドとして知られている、それらの間でこすります。 だから、コンピュータが実際に実際に複数の事を行うことはできません 時間は、少なくともではない通常。 むしろ、コンピュータは一般的にだけでも、一つのCPUを持っており、 コンピュータは超高速であり、したがって、することができますが 一度に複数のことをやっているような錯覚を作成する - インスタントを取得し、あなたのメールをチェック メッセージ、文書を印刷する - 実際には、コンピュータは単なる印刷からIMingに跳んでいる 我々が非常に高速なので背中と背中、前後に、電子メールで送信する 頭の回転が遅い人間はただそれが実際だということに気付いていない 同時に、それらのプログラムを少し実行している。 さて、この白い嘘のビットこれらの日、今日では、なぜなら 多くの私たちのコンピュータは、マルチコアと呼ばれるものなので、 のようなものですが、一つのCPUに複数のコアを持っている 複数のCPUを持つ。 それで時々、コンピュータが本当に複数のことを行うことができます 当時のが、一般的にはプログラム内、プログラム スレッドと呼ばれるこれらのものに依存しています。 だからスレッドができる小型のプログラムのような種のもの 別のミニチュアプログラムと共に存在し、実行することができます 並行して、あるいは少なくともそのような錯覚の下で実行することができ 彼らは、同時に実行している。 だからスクラッチは、スレッドと呼ばれるこれらの事をサポートしています。 あなたはただ、私たちのように、一度に実行する複数のスクリプトを持つことができます アシカでやったが、これは私達が実際にすることができます 次に、これらのスプライト間の相互作用を持っています。 スレッドと呼びましょう、私はここで先に行くと、プルアップしましょう​​、と 次のようにこれをプレイ。 我々は、我々が表示されますそれぞれの人の2つのスプライトを、持っている ただ一つのスクリプトを持っています。 そして、あなたにいくつかの知性があるように思わ気付く このいずれかで猫彼が近づいてきているから - [うなり] DAVIDマラン: - と小鳥に近い。 だから、鳥の動作はどうですか? まあ、のは最初の鳥を見てみましょう。 鳥のスクリプトは、グリーンフラッグがクリックされたときに、xに行くと述べた 115負等しく、yは150に等しい。 だから、私はちょうど私が欲しかったランダムな場所を考え出し 鳥から開始する、と私は、デフォルトでは彼をそこにそのまま流しこむ。 その後フォーエバー猫に触れるので、これは異なっている場合ではない ループ構造が、同じアイデアの種類は再びこれを行うと 何度も何度も。 だから限り、あなたは猫に触れていないしているとして、3つのステップを移動し、 あなたはそれが一種の波打ち際、バウンスを使っているのであれば ビリヤードの意味での反射。 だから鳥が種の周りを移動する方法です それが跳ね返っているので、一見ランダムに、それだけだ この場合の壁。 今すぐ猫は、一方、不正行為の一種です。 猫は、緑色の旗をクリックしたときに、はい、で開始 いくつかの場所に、ランダムな場所 - 少なくとも部分的にはピックあたりとして そこにランダム緑ブロック - 鳥をタッチするとその後フォーエバー、ライオンのサウンドを再生する、 してから、スクリプトを停止します。 だから私は、終了前、または終了すると言った時、パズルがあり ちょうどその時にプログラムを強制終了しますスクラッチのピース その種のは、論理的に行うためのポイント。 しかし、そうでなければ、ここで起こるかわかります。 鳥に向かって点と1ステップ移動します。 だから、鳥に向かってこの点が利点猫の一種である それは鳥の移動にホーミングという点であり、我々はできる 現在、このプログラムはすべてのより面白くする。 代わりに当たり、CPUサイクルごとに一度に1ステップの移動 、鐘の通行料を叩く、いわば、私が先に行きましょうと と呼びましょう、猫のように一度に5つのステップに移動します。 実行]をクリックして、今、彼は本当にすぐに彼を見つける。 我々は10のステップにこれをさらに2倍にすると、それは同じ種類で行く 彼のための権利。 今、私たちは鳥を与えることができ、 おそらく、優位性のビット。 のは、鳥に行くと3つのステップを移動するのではなく、言わせて、 彼に30ステップを移動してみましょう。 しかし、彼はまだ終わりに巻き込まれた。 だからここで、我々は2つ​​のスレッドがあります。 これは、2つのスクリプトと2つのスクラッチに投獄だ スプライトが、他の言語でのアイデアは、あなたができることです 本質的に、このようなあまりにも多くのプログラムを書いて、持っている それらは、並行して、仮想的に本当に実行するか、または。 さて、このコンセプトはとして知られているプログラミングでも用意されている イベント、そして、これは我々はC言語では表示されません何かである、 Cとして知られている言語は、我々は、学期の終わりに向かってそれが表示されます Webプログラミングでは、ときに我々には、JavaScriptと紹介 ダイナミックであり、相互作用するWebページを構築するという概念 ユーザーと。 したがって、この例の場合、我々は2つ​​の非常に単純な例を持っている それぞれが持っているそれぞれの人のスプライト、男の子と女の子、 スレッドが、どういうわけかこの二つの方法で相互に通信している イベントと呼ばれるものである。 だから、私はここで先に行くと少年のスクリプトにズームインましょう それはこのように見えます。 緑色のフラグがクリックすると、永遠に次の手順を実行します。 スペースキー、またはスペースバーが押された場合は、言う 純粋に美的な2秒間マルコ、 画面、少し吹き出したが、その後放送された。 だから放送です別のスクラッチ作品です プログラミングの機能のクラスの代表 異なるプログラムは、別のスレッドを、可能にすること に相互通信し、何とかして送信する メッセージは、別の1。 クラスの中で一枚の紙を渡すと、ローテクの一種である 同等の。 だから、イベントをブロードキャストします。 私はこのメッセージを送信し、単語のイベントができる 完全に任意です。 傷は時々これらのドロップダウンを持っているので、私はちょうど思い付い イベントのようなランダムな単語を使っているため、今、少年は何を行います 私はキーが押したときに、彼はこのイベントをブロードキャストします。 私は女の子のスクリプトで今見てみると、彼女のスクリプトです 彼女が行う必要があるすべては時に行動されていないため、単純なスーパー 緑の旗をクリックします。 彼女は引用、引用終わりを受信したときに彼女は、アクションに設計されています "イベント"と、その時点で、彼女はのために、したがって聴いて 何度も何度も、いわゆるイベント。 彼女は、そのイベントを受け取るとすぐに、彼女は叫ぶために起こっている 2秒間ポロ。 そしてあなたは、おそらくまさにこのことから推測することができます 次の結果があることを行っている。 私は緑色の旗をクリックしてみましょう。 私は何をする必要があるため、何も起こりません? 読者:スペースバー。 DAVIDマラン:スペースバー。 少年はマルコと言い、少女はポロを言う。 しかし、それはハード自体がコーディングされていない。 それは、我々、今、スクリプト間での相互通信だ さらに複雑なプログラム場所を作る能力を持っている これら二つは何とか間通信しています。 だから何の方向に我々はこれを取ることができますか? さて、問題セット0で、実際には、目的はにある スクラッチを楽しん​​でいる。 ハッカーエディションの場合は、代わりに多くの楽しみを持っているでしょう BYOBと呼ばれるスクラッチの洗練されたバージョン、ビルド 独自のブロックが、考え方は同じです。 あなたができるようになります - はい、それは意図的であった。 それはバークレーから来ました。 BYOBはこのハッカー版のバージョンですが、両方 人口統計、標準版と同様にハッカー版、 来週のために手での目標は、ただで潜ることが本当にある 深い、プログラミングにあなたの手を汚し、そして作る 何か面白いものは、何かをインタラクティブに、作る 芸術的な何かが、実際に何か楽しいことをする 週の終わりまでに、あなたがプロジェクトを持っているだろうので、実証し、 最初のCS50のpsetのためだけでなく、しかし、あなたはあるでしょう あなたがアネンバーグに披露できることはほとんど何か MITのウェブサイトにアップロードして友人や家族であっても。 私は水曜日に語ったようにと、私たちは、クラスの90%を期待 一般的に、標準的なエディションを行う。 あなたの人々のためのこのアウトレットもありだと気付く そうでなければ自分で基礎に飽きビットを見つけるかもしれない と本当にあなたが既にビジョンをで潜るとクラフトしたい もっと友好的にこの前の背景に持っている 環境。 だから私は、私たちの元の1つが他の1例をプルアップしてみましょう 学生はここで行なったし、歌を通して少し何かを教えてください。 同様に、この芝居のように、あなたが約行く方法を考えること 正確にこれらの同じを使用して、このプログラムを実施 ビルディングブロックは、擬似乱数発生の少し、と おなじみの曲のビット。 我々は、ボリュームを少しだけ上げることができれば? [MUSIC - ウェザーガールズ "がそれが男性を雨が降っている"] DAVIDマラン:CS50用のそれだ。 私たちは、月曜日にお会いしましょう​​。 [拍手]