[音楽再生] [拍手] DAVID J.マラン:これはCS50である、 ハーバード大学の紹介 知的へ コンピュータサイエンスの企業 およびプログラミングの技術。 今、あなたはそれらの間にある場合に 毎年ここに座っている あなたの心の中の神経のビットは、そのような あなたがここに属していないと思うこと、 あなたが最もと思います あなたの周りに座って、誰 、あなたよりもはるかに多くを知っている確かである コンピュータでのあなたよりも快適 科学やコンピュータ より一般的には、実現する 今の学生の78%で 事前の経験がないCS50を取る。 確かに、そこに100ドットがあります 78の表示、上 あなたを意味緑色に、である、 あなたはその人口統計の中でなら、 ここに非常に良い会社である。 そして、あなたが間の代わりにある場合 確かに何CS50学生の22% 内かどうか、事前の経験を持っている 高校や他のプログラム、 あなたは、あまりにも、意志と認識 コー​​スに挑戦される。 だけでなく、私たちは異なるトラックを持っている 学生あまり快適および多くのため セクションの似快適な、私たち いわゆるハッカーエディションを有することも ほとんどの問題が原因であることを設定します これらの学生に挑戦する その追加的な経験を持つ 同じような材料を探索する より多くの 洗練された視点。 しかし、コンピュータサイエンスは何ですか? まあ、最終的に、何がために起こっている このフィールドを探るように問題ではありません そんなにあなたは結局どこに クラスメートと比較して、 しかしどこであなた自身がで終わる あなたがここに始まるどこ対12週 週にゼロである。 今のコンピュータは、うまくレッツをscience-- computation--の科学と呼んで ここでの計算は実際にはある いくつかの入力を取って、というのがファンシーな方法、 いくつかの出力を生成し、 アルゴリズムを実行することによってそうすること、 解決するための命令セット これらの入力にいくつかの問題 いくつかの出力を生成するために、または あなたが関心のあるソリューションを提供します。 だから私たちは最近持っていた アウト旅行する機会 カリフォルニアにアルミナを満たすことができます。 彼女の名前はスーザンWojcickiです。 そして彼女は話したいのですが ここに動画上へ どれだけ適用できると証言する コンピュータのだけでも味 理科 入門レベルはすることができます。 あなたが追求する上で行っていない場合でも、 フィールドとして、コンピュータサイエンス、 あるいはエンジニアリング、 または、より一般的にSTEM あなたはわかります、実際には、どのように特定の コー​​スはとても彼女の人生に影響を与えた。 そして彼女はちょうどその時、彼女がそれを取った ここでハーバード大学の先輩だった。 私たちはスーザンのために照明を暗くことができれば。 SUSAN WOJCICKI:こんにちは、世界。 私はスーザンWojcickiよ。 私は、YouTubeの最高経営責任者(CEO)だ。 私がいたとき、私は、CS50を取った 1990年にハーバード大学の先輩。 私は実際の歴史であった と文学を専攻。 そして、私の後輩の夏、 私は多分私ことに気づいた 何かを学びたいと思った コンピュータについて。 だから、私は戻ってきた。 私は、CS50を取った。 それは大変でしたが、それはあった 私が取った最も驚くべきクラス。 それは私がすべてについてどのように考えるか変更しました。 そして、私はハーバード大学を卒業したとき 1990年に、私はシリコンバレーに行ってきました。 そして、私は仕事を得た。 そして、私は働いている 以来ハイテク中。 DAVID J.マラン:今何スーザン このビデオでは言及しなかった、 それは彼女に実際にあったことを Google自身だったガレージ ラリーとセルゲイによって設立された。 今、私たちはまた、私たちの友人に手を伸ばした code.org、組織の この一年間であった 特に人を取得 コンピュータ科学に興奮 プログラミング、特に。 しかし、それは、そのプログラミングを注目に値します コンピュータサイエンスは、それ自体ではありません。 コンピュータサイエンスは、プログラミングではありません。 むしろ、プログラミングだけである tool--あなたのどのすべてで すべてあまりにもよくなります 学期のend--によるおなじみの あなたがいない適用することができるように ただ、CSでの将来のコースに しかしそこからどのような分野に あなたは、人文科学において、来ている 社会科学、自然 科学、等。 実際、いくつかの他のを許可 卒業生とその同僚 適用性に話をする 待ってフィールドの。 ビル·ゲイツ:私は13私た 最初のコンピュータへのアクセスを得た。 JACK DORSEY:私の両親 1984年に私のMacintoshを買って 私は8歳の時。 Mark Zuckerbergは:私がいた 第六年生。 スピーカー1:私は大学でコーディングすることを学んだ。 ルチSanghviは:フレッシュマン年、最初の 学期、コンピュータサイエンス入門。 ビル·ゲイツ:私はプログラムを書いた それは三目並べを果たした。 DREWヒューストン:私はそれがあったと思う かなり謙虚な始まり。 私は、最初のプログラムを考える 私はのようなものを尋ね書いた、 好きな色は? それとも、何歳ですか? ELENA SILENOK:私が最初に学んだ 緑の円を作る方法 そして赤い四角が画面に表示されます。 GABE NEWELL:最初の 私は実際に持っていた時間 何かが出てくるとこんにちは、世界、と言う。 そして、私は、コンピュータがそれを行うました。 それはちょうど驚くほどだった。 Mark Zuckerbergは:どのように学ぶ プログラムにオフ起動しませんでした 学びたいなど コンピュータサイエンスのすべて またはこれをマスターしようとしている 規律やそのような何か。 それはちょうど私ので始まった このつの簡単な事をやってみたかった。 私は何かを作りたかったこと 私自身と私の姉妹のために楽しかったです。 そして、私はこの小さなプログラムを書いた。 そして、基本的には それに少し追加しました。 そして私は必要なときに 何か新しいことを学ぶために、 私はそれを見て、いずれかの 本やインターネット上で、 し、それに少し追加しました。 DREWヒューストン:それは本当にとは違ってではありません 楽器か何かを演奏 またはスポーツを。 DAVID J.マラン:すべての権利。 だから今、実際に私たちをみましょう 少し深くに潜る。 これらの入力と出力はどのようなものがあります ここでは話をしていることを? それでは、どのような単純なものは? おそらく、あなたは持っていても、知っている コンピュータサイエンスとの精通ん 全く、コンピュータが何らかの形で使用していること のみ0と1を理解しています。 しかし、どのようにその可能性がどのように与えることができ 似ずっと今日のデスクトップやラップトップ 行うことができますか? 一日のDNAのみ 彼らが理解アルファベット 0または1である。 まあ、これを考慮してください。 私たちは、人間は、使用する傾向がある 十進法。 10を意味する「12月」。 そして、それは私たちが持っているので、10だ 10桁、9 0〜。 今のコンピュータは、対照的に、 バイナリを使用する傾向がある。 2を意味する「バイ」。 そこで、彼らは唯一の0と1を使用する傾向がある。 しかし、それはあっても、結局のところ ちょうど0と1で、その 十分に大きなアルファベットである これで大部分を表現する あなたが望む任意のデータ、 それは数だかどうか、 それはだかどうか、手紙のかどうか 画面上のグラフィックやビデオ。 例えば、考えてみましょう、どのように私たち人間 通常、ここにこの番号を解釈する。 これはちょうど3です 数字、一つ、二つ、三つ。 しかし、私たちは、この番号を知っている 先天的に今123として。 しかし、なぜそのようになるのですか? さて、あなたは戻って思えば おそらく小学校へ、 あなたはおそらく考えることを教えられました 列にあるとして、これらの数値、 1は数百ある場合 場所は、二人は、十の位にある そして3は一の位である。 なぜそれが実際に役立ちましたか? まあ、考える 超簡単な計算 私たちは皆されていることが 今年もやって。 実質的には、持っている場合は、 百の位に1、 あなたは簡単な計算を行う100 回数1プラス10回2 - 二人は十にあるため、 place--プラス1回3-- 3は、一の位にあるため。 したがって、当然のことながら、私たちの場合 実際に、これを掛ける 私たちが本当に表現している このpattern--一つと 2 three--は100プラス20プラスです もちろん、123、3、。 本当に今、バイナリ、およびコンピュータ 基本的には同じ言語を話す 私たちが行うこと。 彼らはただ小さいアルファベットを持っている。 だから、コンピュータはゼロのみを持っている そして彼らの処分でのもの。 だから、私たち人間は、本質的に持っているのに対し、 これらplaces--のそれぞれで10のべき乗 ゼロに10つ、10、10 あなたの110と100を与える2に それぞれ。 コンピュータは、2つの値しか持っているので 彼らは、0と1を理解することができます それらは、異なる値を使用する必要が これらの列には、1つ、2つ、4つ。 そして、私たちは8、続けられた場合には、 16、32、64、など。 しかし、パターンと 考え方はまったく同じです。 したがって、このロジック、誰でも、どのようにでしょう 私は数を表すについて行く バイナリ内の1つ? あなたも考えたことがない場合 この前に、あなたの腸は何を言うのか? 聴衆:One。 DAVID J.マラン:One。 その通り。 私達はちょうど、1つを必要とする ゼロので一の位 私たちを与えるに十分で どちらも4も2。 だから、1回1は1に等しい。 今、物事は少し面白く。 私が中に表現したい場合は 進数two--ますが、 もう一度、あなたがした場合であっても決してない 前にこの言語を話す、 どのようにバイナリ形式で表してい 値私たち人間は、2つのように知っていますか? ゼロ1ゼロ。 ただ、1つを置く あなたがそれを望むの列。 今、それはかなりなってきた 簡単に、おそらく今。 だから私はthree--表現したい場合は、 いいえ3のコラムがあります。 だから、もう一度、私は今、これらの値を追加することができます 一緒にここに1を置くことによって。 だから、2回1プラス1 1回は、もちろん、3である。 今のものは中にささやかな楽しみを得る ものは今やゼロになることを。 そして、4を表現するために、私はこれを取得します。 そして、私たちはゆっくりインクリメントした場合 5になりhere--。 これは6になります。 これは7になります。 しかし、今私が持っているように見える 問題に遭遇し。 どのように私は代表について行くことがあります eight--は次の値になります。 ええ、私たちは新たなビットを必要としています。 そして、確かに、あなたがしている場合 前にこのフレーズを聞いて、 ビット、それがためだけ短いです 進数、0または1つ。 だから、私は表現することが起こる ここでの唯一の3つのそのようなビット。 しかし、私はしない保存方法を持っていた場合 三つの異なるビットが、4、 確かに私は表すことができ 8、次に9、その後、 10、さらに高く高く。 しかし、それはそれから呼び出し どのように私達ができる質問へ これらを表現するについて行く 最初の場所での事。 これは、描画する一つのことだ それらここまでスライド上、 しかし、どのようにそれらを表すか あなたは機械装置をしている場合はどうなりますか? コンピュータがに何をしているのですか その入力と出力を表す 根本的に計算を定義する 一日の終わりに? さて、どのような何かについて このような超簡単! それはちょうど電球です。 そして、私はこれをトリガすることができます 上に行くために電球 いくつかの電気を回して 上の電子を可能にする 変化する、貫流し、その 状態またはその価値、いわば。 例えば、これは 古い学校のデスクランプ ここでそのような その中の電球。 そして、今はそうではありません 本当に便利な何もして。 しかし、すぐに、私はそれをプラグインとして 電気ソケットに してから、このswitch--を使用するか、 私たちも、トランジスタ、それを呼び出すことができます またはsuch--と考える 私は今どちら表すことができます この値が、電球の 明らかにオフするか、この値。 この値はこの値。 この値など。 コンピュータの内部だから、おそらく、 ハードウエアのはるかに小さな部分であり、 それを最後に 単に持っている一日の electricity--使用する おそらくキャプチャit-- してからどちらかに何かを保つ 上か何かをオフにしておく。 もちろん、これはありません 行うことは特に興味深い 単一電球付き。 実際に、どのように高い私は中数えることができる ここでは、このデスクランプとのバイナリ? 聴衆:One。 DAVID J.マラン:1つは、右か? 私場合、私はより多くの机のランプを必要とする 実際に、より高いカウントする。 しかし、私たちはそれよりももっと良いものができる。 電球そのため 私たちはこれらの事に入れてきた 実際に手の込んだ電球です 往年ができるようになるよりも。 そして、彼らは実際にしている ネットワーク接続された電球。 そして、企業の束 これらの日これらのことを行う。 しかし、それはことが判明 特に、この1 フィーチャーにより、付属しています あなたは、その色を変更することができます。 例えば、もしそうなら、あなた あなたの寮の部屋を飾っ これらの光の少ないと 電球、あなたの気分に応じて、 入って来誰に応じて、 天候に応じて、 時間に依存 一日の、あなたが実際にすることができます の色を変更 お部屋での球根。 そして、それは、これらの軽のでだ それのような球根、他は何がある アプリケーションは、APIと呼ばれる プログラミングインターフェース、これ あなたがよくなるだろうこれで話題です 学期の終わりまでに精通し。 そして、これは単なる空想である、 というのが不可解なやり方、 これらの光をプログラムすることができます あなたの入札を行うには球根。 あなたは、彼らにメッセージを送信することができます あなたのような、人間、 Webサーバにメッセージを送信することができ 私に、今日のニュースを与える、と言って または私に私の電子メールを与える。 あなたはもっと難解送信することができます これらの電球へのメッセージ と言って、オンにしてオフにしてください。 しかし、それはすべてのことは興味深いではありません。 あなたは、赤をオンにする、と言うことができます 、緑の電源を入れ、ブルーをオン すべて同じ電球で。 そしてあなたも、もう少しででき 精通した、と言う、青に自分自身を回す それは悲観的な日だとき 外で、例えば。 それは実際にパッチを適用することができます 天気APIと知る 天気は、または時間が何であるか 日、または他のそのようなトリガの。 そこで、実際には、両者の CS50自身のスタッフが、 ダン·ブラッドリーとアンセル ダフは、ここで、親切に調達 私たちこれらの電球の全体の束。 そして、彼らはCS50年代に構築された 史上初のバイナリー球根、 私たちはhere--表現した場合、 これらの遊び心少しmagnets--と さまざまなプレースホルダたち ほんの少し前に言及した。 だから、道の上ここにある 一の位、2個、4個。 そして、私たちはより高く表示されませんでした。 しかし、当然のことながら、それらは2のべき乗いる。 エイト、16、32、64、128。 だから私は今少し手の込んだようにしたい場合は、 この古い学校のスイッチを使用するのではなく、 私はこのiPadでここにある 超シンプルなインターフェース ダン·ブラッドリー、かつてのよう 仲間を教える今の学生と、 いくつかのHTMLを使用してプログラムさ とJavaScript、どの マークアップとプログラミングです それぞれの言語。 そして、あなたはおそらくすることができます see--さえback--中 大きなプラスと大きなマイナスがあります、 プラスこれらの球根のそれぞれに1つのボタン。 そして、これは私がすることを可能にするために何が起こっているか 行うには、例えば、プラスをクリックされている そして今、の表す もちろん、何番目? 一つ。 そして、私は再びそれを打つことができます。 二つ。 三。 四。 ファイブ。 シックス。 セブン。 そして、ここで今、私たちは、そのロールオーバーを取得 私たちは番目のビット、この時間を持って、 ので、今、私たちは、8を持っている。 だから私たちはかなりの時間のためにこれを行うことができます。 実際には、さておきとして、 私たちはどのように高い数えることができる? 誰ですか? 聴衆:255。 DAVID J.マラン:255、右か? のための数学についてはあまり心配しないでください 今、それはかなりまともな番号です。 しかし、それは実際にはバインドされません どのように多くの情報、 手紙やグラフィックなどの 私たちは表現することができること。 しかし、今のための問題無し。 私が先に行くつもりです そしてそれらをすべてオフにしてください。 私ができるなら、私がお願いしたいのですが ボランティア、私たちの最初のvolunteer-- ああ、ステージ上hello--。 漁獲量はあなたがする必要がある 明らかに、あなたのような、登場する快適 すべてのクラスメートの前であり、 だけでなく、インターネット上で。 そして、私はthe--超えて少し見てみましょう どのようにここに白いシャツでは約? そして、アップ手渡す。 アップさあ。 お名前は? 聴衆:ジャッキー。 DAVID J.マラン:ジャッキー。 ジャッキーは、アップ時に来る。 したがって、この上にもそこにあるもの iPadはゲームモードというボタンです。 そして、このゲームモードは、 入力に私を可能にするために行く 事前に特定の小数 数、数字私たち人間は、 に精通。 そして、あなたは挑戦されます ここでボタンを使用する 用top-- 1上 これらbulbs--それぞれ 実際に把握する 電球のパターン それは、問題の数を表す。 そして、私は申し訳ありませんが、あなたの名前は再び何でしたか? 聴衆:ジャッキー。 DAVID J.マラン:ジャッキー。 かしこまりました。 あなたに会えてうれしいです。 だから私が先に、プログラム内手放す 世界のために数15が表示されます。 ここでは、最初は小さな、それをしておこう。 そして、私はゲームモードに入るつもりです。 そして、私は、指定するつもりだ 私たちに15番を与える。 [OK]をクリックします。 そして今、みんなと一緒にwatching--場合 あなたは多分、このように立って欲しい、 それは先に行くup--整列されるためと 上部にある8つのボタンをトグル 上の電球をオンにする またはあなたが合うようオフ。 聴衆:わかりました。 DAVID J.マラン:そして、いや不正行為 押すことでプラス15回。 ああ、私たちはそれを行おうとしている。 聴衆:ああ、待ってください。 私は、とても残念です。 DAVID J.マラン:また、変えることができます 個別に電球 上にこれらのボタンのそれぞれと。 聴衆:ああ、OK。 だから、like--だろう DAVID J.マラン:わかりました。 だから今、私たちは、8を持っている。 それでは、一時停止させて ここに従事する観客。 ジャッキーは何番です 現在表す? 11。 だから私たちはほとんどがしています。 そして、優れた。 だから私たちは私たちの最初の勝者を持っている。 おめでとうございます。 そして、私たちは私たちが持っているだろうと思って いくつかの素晴らしいプレゼント。 あなたがそのようないずれかになりたい場合 ここにキャンパスの寮の部屋、 あなた自身が最終的なプロジェクトを持つことができます 今、このAPIを使用して、ジャッキーのおかげ。 だからnow-- [拍手] 私たちはできる--if、もう一 これの周りにそのような。 ああ、今誰もがいくつかの電球を望んでいる。 いわゆるハッカー版については、 私たちは、ああ、それをA--ランプアップするつもりだ 曖昧、うん。 私は、あなたが今まで来ていると思います あなたの手がダウンして起こっているのであれば。 お名前は? 聴衆:アレックス。 DAVID J.マラン:アレックス、こっちに来て。 だからアレックスのために、私たちはしようとしている 少し大きめの数のプログラム。 おそらく、順番に。 数50。 聴衆:わかりました。 DAVID J.マラン:しかし、として 私はsaid--、あなたがかもしれない そうここに立つしたい ボタンが並んでいること あなたはexpect--だろうが、私が行ったように このハッカー版を呼び出します。 So--幸運を! [笑い] あなたが回すことができるようになります それらをオフ[OK]をyou--場合。 優秀。 ワンダフル。 おめでとうございます。 [拍手] 私は私が払う必要があるとします。 アレックスおめでとうも同様。 [OK]をクリックします。 だから、究極のお持ち帰り ここでは、率直に言って、うまくいけばです simplicity-- とシンプルさ あなたはいくつかの素晴らしい光を得ることができます 球根、どうやら[聞こえない]にある。 しかし、彼らは表現し、 最終的には、同じ考え これで私たち人間は、 すでにあまりにもお馴染み。 それでは次はかもしれない ステップが進行中であること 何かをしようとする データで興味深い だけではない入力を表す 数字多分文字以上で? まあ、それはことが判明 コンピュータの世界、何年もの間、 単に任意であるが採択 数字をマッピング一貫した標準 アルファベットの文字に。 例えば、ここにある そのマッピングからの抜粋。 これは、アスキーと呼ばれています。 -S-C-I-I。そして、それは単純に 大文字letters--マッピングするテーブル この中で数字を小数にcase--。 しかし、意味するところは何ですか? さて、あなたは実際に表現したい場合は、 電子メールやテキストのようなもの ウェブページ上に、 明らかに見せたい の人文字 アルファベットではなく数字。 だからに応じて プログラムのコンテキスト それはだ場合、ユーザーは、使用していることを Webブラウザや電子メールクライアント、 数字は確かにすることができ 文字と解釈。 つまり、ビットのパターンはできる、と言うことです 簡単に文字として解釈される。 だから私たちが持っていることができるもの 手紙は幸福である 65、Bとして表される 66として表されている。 だから私たちは、スーパーがある場合 短い言葉、ハイテクのような、 どのコンピュータが最終的にでしょう 進数ではなく、実際にバイナリ形式で格納、 活用して、ビットの一部のシーケンスを使用して 何らかの方法で電気のビット、 二つの数72と73になります。 しかし、ビットのパターンは、その これらの値を表す。 したがって、これらは、その後どのように私達ができるである 私たちの入力と出力を表す。 そして、私たちはできる、と言えば十分 より複雑な表現を行う 最終的なもので グラフィックス、ビデオ、音楽、そしてより 後ほど、この用語が表示されますように。 ちょうどその葉となるよう アルゴリズム、これらのセット と命令の 私たちは、実際の問題を解決している。 私たちは、アルゴリズムへの入力に渡している。 そして、これらのアルゴリズムは、生産している 出力は、うまくいけば、正しい出力 うまくいけば、あまりにも、 効率的に出力を集めた。 言い換えれば、一つのことだ 正しく何かを実装します。 これは、実装するために別のことだ ウェルまたは効率的に何か。 例えば、一デモンストレーション 私たちは、コース内の好きだということ この一つです。 しかし、これらのものは得ている 見つけるのはますます一生懸命。 しかし、これは確かに古い学校です その内部の電話帳、 1000プラスページがある 名前と電話番号。 そして、私はルックアップしたい場合 この電話帳の誰か、 私は単純に何ができる 非常にナイーブなアルゴリズム。 私は、最初のページに開く可能性があり、 私は誰か、と言う、を探すために始めることができる マイク·スミスという名前。 そして、彼は最初にない場合は、 ページに、私は、第二に進行 そして第3に、その後、 第四に、など、 まで、私は最終的にマイク·スミスを見つける。 今、そのアルゴリズムは正しいでしょうか? 聴衆:はい。 DAVID J.マラン:うん。 彼がそこにいたら、私はよ 最終的に彼を見つける。 しかし、それは間違いなく非常にではありません 、確かに高速ではない、効率的な なぜなら、私の神、なぜ私は 私の時間フリッピングを無駄に とき、私は可能性がこれらのページのすべてを通じて 確かに物理的に速く、これを行う? さて、若干の最適化、に非常に 一度ではない1ページかもしれないが、話す、 2つ、4つ、6つ、8つ、10。 それでも正しい? 聴衆:いいえ DAVID J.マラン:だからいいえ、私のためであれば インスタンスは、マイク·スミスをスキップ。 しかし、長い間、私はペダルをバックアップするように 1ページ、私は彼をオーバーシュートした場合、 多分私達は何を修正することができ それ以外の場合は落とし穴かもしれません。 しかし、それは良いですか? それは速いですか? 私はそう意味。 これは文字通り倍高速です 私は一度に2ページを行う場合。 だから私はもともと1,000ページを持っていた場合には、 今私は500回を反転する必要があり、 取得しないように完全に1,000ページ 潜在的に最悪の場合には 電話の終わりに 本、誰か マイク·スミスや誰かと様 後で名前は実際に可能性があります。 しかし、当然のことながら、私たち 人間は確かではありません 確かに、それをやっているつもり ではない私たちの生活の中で、この時点で。 合理的とは何ですか 人間はおそらく何をするつもり? 聴衆:the9のSさんに直行。 DAVID J.マラン:ストレートのSさんに行く? どのように私は、Sさんに直接行くのですか? 聴衆:半分にリッピング。 DAVID J.マラン:まあ、 全くマーキングはありません。 だから、そう、確かにあった場合 ラベルまたはSのスティッキタブ、 私たちはすぐそこにジャンプする必要があります。 しかし、それはかなり無害なのです。 だから私ができる最善のは、おおよそです S部にまたは多分大体 真ん中に。 しかし、キー持ち帰り now--と勘 あなたがのために撮影したことを 年に付与さprobably-- 何が今あなたを行うということです この問題について知っていますか? 聴衆:[聞き取れない] DAVID J.マラン:マイク·スミスは確かである ていない問題の半数の スミスは真ん中の後に来るので、 そのおおよそのM部であり、 それがあると思われる。 だから、で見たかもしれないとして Visitas、私たちは今、文字通り缶 半分にこの問題を引き裂く。 聴衆:ウー! DAVID J.マラン:それは 簡単かつ容易になって。 [拍手] そこに行きます。 [笑い] そして今、私は基本的に 同じ問題を抱えている、 それは、文字通り大きな半分だ。 私はまだマイク·スミスを探しています。 そして私は、私はまだすることができ、あえて 同じ方法で彼を探して、 半分に問題を分割すること もう一度、もう一度問題を引き裂く 今で私の葉の半分、中 問題の大きさの4分の1 劇的に離れて、その半分を投げると、 何度も何度もこのプロセスを繰り返す そして再び、ダウンかすめる 各ポイントで確認してください マイク·スミスはオンになっている場合 問題のページ。 今、私はこの権利を行う場合には、 最終的に私は自分自身を見つけることができます ちょうど1ページのマイク·スミスと 彼は電話帳に実際にいた場合です。 もちろん、私はできた 再びマイクを呼び出すことはありません。 しかし、ここでのポイントは、私たちが開始された場合ということです 1,000ページ、私の最初のアルゴリズムで、 ページをめくる、多分千times-- それはだから間違いなく少ない S名ではなく、Zの名前が、として 潜在的に多くとして1,000ページ。 第2のアルゴリズム、より良い。 500ページ。 第3のアルゴリズムは、しかし、 どのように多くの手順がそれだろう 千ページを分割するために取る そのような半分の電話帳? 10、与えるか、または取る。 だから、それだけをめくることで ダイビングや征服電話帳、 そう、10回を話すこと、私が行います ダウンだけで1つのページに行く途中。 そして、私たちは、この直感をキャプチャすることができます 今少しグラフィカルに あなただけ考慮すれば、 このスーパー簡単なグラフ。 私たちは、x軸、または水平にしている 軸は、私の問題の大きさで、 電話帳のページ数。 そして、コンピュータ科学者 一般的に呼びたい 問題nの大きさ nは単にいくつかの変数であること この中でrepresents-- ページ数をcase--。 垂直、またはy軸は、ここにある 解決する時間になるだろう、 多分、ページターン数、 秒の多分数 または分、何でも メジャーのあなたのユニットです。 だからこの赤い線 最初のアルゴリズムを表し、 一対一がありますので、 数との関係 時間のページと量がかかります。 Verizonは数を倍にした場合 電話帳来年のページ、 私の走行がtime-- 実行するのに必要な時間 その最初のalgorithm-- 最悪の場合には倍になります。 しかし、第2のアルゴリズム、 ここで私は2つのことでひっくり返すんだけど、 のためのより少ない時間を必要と 指定されたサイズの問題。 だから私は、この多くのを持っている場合 ページhere--予告 黄色い線その 解決するために少ない時間を示唆している。 実際、それが表す 私たちは、n 2以上の、と言うでしょう。 しかし、第三の形状は何ですか そして、最終的な曲線は次のように見に行く? ええ、それは確かに私をlook--ために起こっている あなたが言うつもりだったのか分からない。 しかし、ここで何を見てみましょう あなたが言うつもりだった。 聴衆:そのような。 DAVID J.マラン:それがどのように見えるだろう この対数slope-- exactly-- それによってあなたはこの奇妙な傾斜を有する。 それはもはや直線ません。 そして、何そのことについて説得力のあるのは、ということです グラフは、現在、切断されていても あなたはあなたの中に外挿することができます その緑の線がないことを気にし 増加するつもり すべてそれほど高さ あなたがさらに進むにつれて その横軸ダウン。 確かに、ベライゾン、用 インスタンスは、2倍になる可能性 電話内のページ数 今年と来年の間の本 1000〜2000年まで ページが、大したことない。 この3番目と最後では、 直感的なアルゴリズムがあります 分割して征服の。 それはどのように多くのより多くの私を取るつもりだ 誰かを見つけるための手順来年 マイク·スミスのような? 聴衆:One。 DAVID J.マラン:ひとつあります。 そして、彼らはそれがだ、それを4倍することができます ちょうど2つ以上のステップに私を連れて行く など。 そしてこれは証明するものです どれだけいくつかの慎重な設計 何のためのいくつかの感謝 あなたの入力は、より良い行うことができます。 今、私たちは、浮気している 意味では少し 私たちは仮定を活用しているという。 私の仮定は何ですか 私たちの電話帳に関する それは私が分裂と征服することができ この直感的では正しい方法で? 聴衆:[聞き取れない] DAVID J.マラン:うん。 だから、それが命じられた。 これは、アルファベット順ました 電話帳会社。 それはランダムな順序であった場合、その 電話帳の地獄であるように、 それは確かではないだろう アルゴリズムに自分自身を貸す 私は、使用されるので、あなたは決して ちょうどマイク·スミス渡って起こる あなたは内で除守れば 偶然にそのように半分。 それでは今形式化しましょう 何が明らかに直感的だ。 だから、何かが呼ばれる 擬似コードはどこに私たちはよです 当初の問題のいくつかを開始します。 そして、これは説明する一般的な方法です。 アルゴリズムまたはコンピュータプログラム、 CまたはC + +、またはJavaを使用していない、 または任意の特定の言語、 ちょうどで、英語を使用して そのいずれかの人間が慣れているかもしれません。 そして、私たちは擬似コードを書くかもしれません 以下のようにこの問題に対する。 、1ステップの電話帳を拾う。 電話帳の真ん中に開いてステップ2、。 ステップ3は、名称を見てください。 スミスはnames--の中であれば、4ステップ そして今、これは 興味深い構成体。 これは、決定点だ。 あなた場合は、道路の分岐点です 、ブランチは、いわばます。 だから私は、インデントするつもりです ただ慣例によりstep-- にあるfive--ません 私はマイクと呼ぶことにします、と言う。 したがって、このインデント、完全に 任意の人間の慣習が、それはだ 単に意味的に伝えることを意図し スミスは名前の間にある場合に、 私はマイクを呼び出す必要があります。 一方ステップ6において、予告 インデントは逝ってしまったこと。 だから、他の他のフォークです 道路、私は旅行するかもしれない他の道。 スミスはあるのであれば、他 以前の本の中で、何がだ 私の次のステップは、おそらくここになるだろう? 聴衆:あなたは左側に移動します。 DAVID J.マラン:うん、そうに行く 電話帳の左半分。 場合は、右半分を捨てる スミスは本の中で早い。 の真ん中にだからオープン 書籍の左半分。 そして、8ステップ、3行目に移動。 そして、これは私は好奇心が強いループで 、いわば再帰を誘発する。 将来的にはその上でしかし、もっと。 私は、私と同じアルゴリズムを使用しています 私の同じ擬似コード、 再び同じ問題を解決するために なぜなら変わった唯一の事 問題の大きさは、ではない 私の目的ではなく、人 私が探しています。 だから私は、アルゴリズムを再利用することができます 私はすでに定義したので。 エルススミスは以降の場合 book--では、かもしれない の真ん中に開いguess-- 本の右半分。 そして再び、3行目に移動。 最後の行に何Else-- であることを行って、このプログラムの中? 彼はの間ではない場合 私はページ上の名前 上、彼は以前にない場合は この本は、彼は後ではありません 本の中で、私は何を知っていますか 今マイク·スミスについての本当ですか? 聴衆:彼は本の中ではありません。 DAVID J.マラン:彼は本の中ではありません。 だから私ができる最善のはただである あきらめてこのプログラムを停止します。 かしこまりました。 したがって、この時点では、それではみましょう 待って何のいくつかのクイックツアー。 そして、実際に、私はここに参加しています CS50のスタッフの数だけ。 これらの人たちは、すべてのことができれば ステージ上でここに私を参加します。 [拍手] 断っておくが、これが唯一である CS50スタッフのサブセット、 毎年以来、私たちはほぼ100スタッフを持っている コー​​スのアシスタントの役割を持つメンバー、 仲間を教える、など。 アップさあ。 そこで、彼らはここに、私たちに参加します ぎこちなくちょっと用 私たちは何の駆け足を与えるよう あなたはもちろん、ここで期待するべきである。 だから、何よりもまず、私たちはSAT / UNSを持っている コー​​スでグレーディングオプションとして。 これは意図的に意味している オプションとなるであることが あなたは少し不安である場合 コー​​スにある時、 あなたがたとえfailure--恐れる 率直に言って失敗はあなたのGPAを傷つけ意味し、 BとではないA--を取得 まさに、確かにゲートウェイの CS50のようなコースとその他 入門コース、 このグレーディングオプションが許可することを意味している。 私は心をこめて励ます 特にstudents-- fence--上であれば起動する もちろんSAT / UNSは、さえSAT / UNS残る。 しかし、あなたは確かに文字に切り替えることができます 長期的に第五月曜日による等級。 率直に言って、戻ったとき、私 1995年の新入生だった、 私自身も、CS50はかかりませんでした 私は神経を取得していないので、 実際に教室に足を移行する。 それは、あまりにもドメインを見えた 実際には私に慣れていないと 私の友人たちのために、 率直に言って、プログラミングをしていた人 彼らは5,6であったため または多分10歳。 私がいたので、それが唯一だった 私の一日でCS50を取ることができる 同等のバージョンの中で SATは/ UNS--パス/ day--には失敗する それも、私は50を取った。 そして、どうやら、私は今 ここに今日もあなたと。 今その間何もなくば 約50心に留めておく必要があります 同時登録がある。 噂に反して、その あなたが聞いたことがあるかもしれません、 あなたは、同時に、実際には、缶 CS50と別のクラスに入学すること 同じまたはいくつかの重複で満たし 右ここCS50の講義のような時間。 細目のためのシラバスを参照してください その実装の。 に反して一方講義、 カタログで正式に何、 一般的には唯一の意志 わずか1時間のために満たしています。 機会に、私たちは少し長く実行できます。 しかし、心に留めておくこと CS50の講義での目標 を提供することです 概念的な概要、 うまくいけば、いくつかのデモ、 多分いくつかの景品、 を待つものの 以下の一週間。 だから講義で、私たちは見ていきます 一緒にこれらのトピックと例、 ステージ上で生徒を育てて、 私たちはできる限り多くの場合、ステージにスタッフ、 時間だけのカップル各週。 セクションは、一方、になります これらの人たちが提供するhere--多く それらの仲間、いくつかを教える それらのコース意志assistants-- 毎週起こって。 そして、維持するために重要なものだ 念頭に置いて、その私たちはある まずは違っていないhave--ん 夜、音楽class-- のためのセクションの異なるトラック より、あまり快適学生 快適、そしてどこかの間にある。 そして、率直に言って、あなたがどうかを知る あなたはあまり満足している。 そして、あなたは、おそらくかどうかを知る あなたがより快適だ。 あなたが本当にわからない場合、あなたはある どこかの間での定義による。 だから、セクションに時間が来るとき 一週間かそこらで、シラバスあたり、 私たちはあなたにその質問をお願いします。 そして、あなたはベースの自己選択することができます あなた自身の快適さのレベルでの と緑と一緒にstudents--と一緒に あなたに快適さのレベルで同様のdots--。 一方で、私たちは問題を抱えている セット、最終的意志 このコースでの経験を定義します。 それらは典型的に提供している 複数のエディションで。 私たちが最も期待する標準版 取り組む過程で、すべての学生 だけでなく、いわゆるハッカー版 それは余分な信用のno形式を提供しない あからさま本当に自慢する権利 あなたがしようとしたと取り組むと言うこと コー​​スのハッカーエディションその 類似の材料に近づく が、より洗練された角度から。 私たちが探しています 標準版のために、 再び、超大多数 学生の、ではありません のみウォークスルー、 もちろんスタッフが率いる動画 それは本当に使用方法を順を追って コー​​スの問題や可能な設計 の実装。 そして、私たちも、後に 事実、postmortemsを提供しています それによってあなたが迷っている場合は、 あなたが持っている可能性がどのよう またはいくつかを解決しているはずです 問題、教員 使用方法を順を追って説明します 映像上のものだけでなく、。 一方、何もされて待って 5後半日と実際 私たちはあなたをドロップすることを 最低の問題は、スコアを設定してください。 私たちは確かに交換でことを理解 ワークロードのその50を期待 あなたのこと、人生は邪魔になる 時には、5倍ではない場合。 そして、これは提供します あなたの柔軟性のビット、 A、言う、からあなたの締め切りを延長 正午〜金曜日正午木曜日。 のためのシラバスを参照してください その実装の詳細。 今、何が今待って? そして、それだけで発生しています 私には今、どれだけ長い 私はあなたたちはステージ上でここに立って抱えている。 [笑い] DAVID J.マラン:しかし、私たちはに買ってあげる やがてクライマックスフィニッシュ。 それでは、用語でお待ちしてい 問題セットの? 私たちすべてのさて、おそらくお誘い あなたの前任者で昨年。 最初の問題のセットで 昨年、私たちは導入 スクラッチ、グラフィカル プログラミング言語その あなたへの、文字通りプログラムすることができます ドラッグ&パズルのピースを落とす、 これらのような、ということです コンストラクトを彷彿とさせる ちょうど一週間が表示されます それゆえ、私たちは切り替えたとき より伝統的に 言語、Cとして知られている 昨年は進行した この問題セットに、 暗号用に伴う、 情報のスクランブル 「政府や友人からそれを維持するために あなたがそれを見たくない、目。 ここで符号化される すぐにメッセージ 復号化やデスクランブルすることができます。 ブレイクアウトが問題だった ここで、昨年設定 あなたはこれらの新しい発見プログラミングを使用 実際に実装するためのスキル ゲームはあなたのようにwherein-- childhood--から思い出すかもしれ 目標は、bashにした 画面の上にあるレンガ ここで、aは累積 道に沿って、スコア、 そして、独自のアルゴリズムを実装する これで、この溶液は、最終的 あなたがゲームをプレイすることができます。 また、以降で 学期、私たちはあなたを与えるだろう 143091英語の単語の辞書。 そして、あなたは挑戦されます そのプログラムを書き込む により、ドキュメントのチェックを綴る メモリにその多くの単語を読み込む 可能な限り効率的に。 一般的にはあなたを孔食 クラスメートに対して あなたは少しに選択した場合 リーダーボードでの挑戦 最少使用できるユーザーを確認します 実行時間の秒、 と最小数 メモリのメガバイト、 そして実際にあなたのプログラムを微調整する 信じられないほど効率的ではない資源であると ちょうど時間。 昨年、あまりにも、私たちは最後に見えた Webプログラミングでの学期。 そして実際、私たちは再びこのことをやる 複数の問題セットを持つ年、 テクニックにあなたを導入し、 あなたが適用することが可能な考え方 これらのプログラミングのスキルへ ウェブサイト、動的なWebサイト、 実際に解決するウェブサイト 問題と異なる動作を 単に静的ではありません 静的な情報を持つサイト。 最終的には最終的なプロジェクト しかし、定義し、 もちろんクライマックス 学生のため、ここで あなたが実装するために挑戦されます 興味のあるほとんど何でも あなたに、それほど長く何とか もちろんのレッスンの際に描画します。 そして、あなたはで見たように 開始時のビデオ、 私たちはと学期を締結します CS50ハッカソン、もし、なじみのない、 7:00 PM 1夜に開始され、 翌朝午前7時で終了。 午後9時ごろ、私たちはよ 最初の夕食で注文。 1:00頃、私たちはよ 第二夕食順序。 そして、あなたがまだなら 午前5:00に立って、私たち 意志のシャトルバスご 朝食IHOPへ。 CS50フェアは、一方、イベントで 2,000プラス教職員、学生、 とスタッフキャンパス意志全体から あなたの業績を見に来て もちろん、最終的な内 プロジェクトや作品 あなたがあなたのラップトップで作成することを、 デスクトップ、またはおそらく電球。 一方、営業時間 支持構造。 そして今、それがされてきただろう 良い時間はあなたのすべてを開きます。 営業時間は4泊開催されます 複数の時間の週毎晩 一般的には20〜30で 一度に勤務中のコースのスタッフ 親密をご提供するために サポートのための1対1のチャンス コー​​スの問題セットを持つ。 個別指導もなります 利用可能な、特に 少ないcomfortable--や学生のための 最低は誰のためcomfortable--あえて言う 営業時間はそうではありません ほとんどの育成環境 確かではありません 最もストレスフリー。 締め切りは押している場合は特に、 私たちは積極的にあなたに自分自身をペアリングします で動作するようにスタッフの一員と あなたのニーズのようないくつかの定期的なスケジュールで そして彼らのスケジュールが可能になる。 とスタッフ。 私はDavon、ロブを紹介させて、 とガブリエル、今年の頭。 各say--したい場合 [拍手] --a言葉。 [拍手] こっちDavonです もちろんのマネージャー、その 彼のフルタイムの役割に意味 彼は実行に役立ちます とCS50の物流。 DAVON:ええ、ハイ、みんな。 あなたは営業時間に私にたくさん表示されます。 私はセクションを教えることでしょう。 そして、あなたが先に電子メールを撮影すると、 私はおそらく応答しています。 だから私はあなたの多くのすべての学期が表示されます。 そして、CS50へようこそ。 DAVID J.マラン:そして今ガブリエル、誰 自身は、昨年だけで一年生だった しかし過去数年のために持っている CS50の彼自身のバージョンを運用して 彼は、ダウンロードすることにより、ブラジル、中 もちろんのcontent--のすべて 明らかにされてされている 撮影に置いonline-- 彼はにそれを翻訳することができるように 100以上を教え、その後ポルトガル語、 上の彼のクラスメートの 数年の経過、 彼の母国語で教え もちろんのカリキュラム。 GABRIEL:こんにちは。 [拍手] GABRIEL:こんにちは、私はガブリエルだよ。 私はもちろん、ヘッドTFだ。 そして、私はあなたがCS50を愛していただければ幸いです。 これはCS50である。 DAVID J.マラン:今ロブのために。 ああ、あなたはご紹介をしたいですか? ROB:いいえ、私は知らない。 [笑い] DAVID J.マラン:そしてロブブーデン。 [笑い] ROB:こんにちは、私はロブだよ。 これは私の第五年である コー​​スに関与。 毎年、それだけだ 良くクラス、 そうあなたたちは明らかにされ 素晴らしいことになるだろう。 私はあなたのすべてがそれを楽しんでいる願っています。 私はそれを楽しんでいるつもりです。 だから、あなたの周りを参照してください。 DAVID J.マラン:そして、 時間は、学校案内を許可しません [拍手] 時間は私たちを許可しません 皆を導入する ステージ上とその同僚のすべて 誰が今日のクラスを購入を検討している。 しかし、私が紹介させ ベリンダとCS50パズル これを待っての日、 土曜日来て、その の最初のものです もちろんの大規模なイベント。 意味特にこの1 ホームポイントをハンマーする そのコンピュータサイエンスは、最終的にはある しないプログラミングについてではなく、 約問題は、より一般的に解く。 そして、あなたとわかるように、デイパズル あなたをもたらすでしょう、を参照してください。 そしてクラスメートtogether-- 私たちは今週の土曜日を願っています。 BELINDA:わかりました。 やあ、みんな。 だから、感謝します。 だから私たちの輝かしいキャプテンとして わたしの名のベリンダと述べた。 私はクインシーハウスで二年生です。 あなたたちは、取ったと同じように私は、 CS50去年、実際にそれを愛した。 私はのためのソフトスポットを持っている あなた3行目の男。 そして私は、私は今だ、と言うことを誇りに思います 献身的な関係にある CS50 [聞き取れない]と。 [OK]をクリックします。 それは冗談の私のラメバージョンでした。 とにかく、そのように、先に進む ちょうど招待したかった あなたのすべてのiラボのみんな、またはHBSハイブ。 私たちは持つことになるだろう 午前12時から3時までの日パズル。 そして、それはあなたのための絶好の機会だ みんな、あなたの仲間のCSの友人を満たすために キャプテンのように、いくつかの非CSのパズルを解く 挙げられ、また、いくつかの無料の食事を食べて、 のように、いくつかの素晴らしい賞品を獲得 ギフトカード一人当たり75ドル、 そしてそれが何だったかalso--? WiiのUか何か? WiiのU? はい。 私たちのラッフルのために。 恐ろしい。 だから私は、授業の後に固執します。 そして、あなたたちはいずれかを持っている場合 の質問は、私に知らせてください。 DAVID J.マラン:そして、あなたが表示されます、越えて これは、今日は何もすることがない。 最初の問題は、設定 金曜日消灯します。 しかし、今日家に私たちをもたらすために、私はしたいのですが に特異的にもう一つのご紹介 スタッフ、コルトン その手に今あるここにオグデン、 であなたの上に保護された このMIDIコントローラー ポイントさらに自宅ハンマーする そのコンピュータサイエンス、あまりにも、 はるかに超え工学適用性を有する とステムとコンピュータ科学自体、 でも、音楽などのドメインに拡張する。 コルトンは親切に私は思っていoffered-- そのうちの一つは、フォーカスを固定するつもりだった。 アンドリュー、私たちは召喚できれば焦点 ただちょっとこっちに。 何コルトンがした 事前にプログラムである このデバイス、ボタンのこのパッド あなたがここに描かれていることを参照してください、 MIDIコントローラーとして、 それによって、これらの各ボタン 特定の音符に配線され または音、より一般的に記録、 これらのパターンを再生することにより、そのような 多くのビットパターンのようなボタン、、 他表すことができます より高いレベルの概念。 彼は最終的にできるようになります 今日ここに家に私たちを取るには? さらに騒ぎがなければ、もし 私たちは照明を暗くできた、 そしてコルトンの後ろの画面をオンにします。 聴衆:ウー! DAVID J.マラン:これはCS50である。 [音楽再生] [拍手] つまり、CS50はこれで終わりです。 私たちは、金曜日あなたが表示されます。 いくつかのケーキ翼廊であなたをお待ちしています。 [音楽再生]