>> [音楽再生]
>> [拍手]
>> 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はこれで終わりです。
私たちは、金曜日あなたが表示されます。
いくつかのケーキ翼廊であなたをお待ちしています。
>> [音楽再生]