Placeholder Image

字幕表 動画を再生する

  • DAVID MALAN: Welcome back, everyone.

    DAVIDマラン:再びようこそ、みんな。

  • So yesterday, you'll recall that we focused on these topics here.

    だから昨日、あなたはそれを思い出し 我々はここで、これらのトピックに焦点を当てました。

  • So we had four overarching topics-- privacy, security, and society;

    だから我々は、4つの包括的なtopics--を持っていました プライバシー、セキュリティ、および社会;

  • internet technologies; cloud computing; and ultimately, web development.

    インターネット技術。クラウドコンピューティング; そして最終的に、ウェブ開発。

  • >> Did anyone have the bandwidth or the time

    >> 誰もが持っていました 帯域幅または時間

  • to watch a little John Oliver last night?

    少しジョンを見て オリバーの最後の夜?

  • It's actually pretty amusing, if not a little frightening.

    それは、実際にはかなり面白いです そうでない場合は少し恐ろしいです。

  • Any questions on anything we did yesterday?

    何でも上の任意の質問 我々は昨日やりましたか?

  • Any clarifications?

    どれ明確化?

  • Any questions that you want to make sure we touch on today in some form?

    あなたがしたい任意の質問 我々は何らかの形で今日に触れて確認してください?

  • So clean slate.

    だから、白紙の状態。

  • >> So what's on the agenda for today?

    >> だから、今日の議題に何ですか?

  • So I thought we'd begin today with a look at what's generally

    だから私は、我々が今日始めるだろうと思っていました 一般的に何を見てと

  • known as computational thinking-- at the risk of oversimplifying, thinking

    で計算thinking--として知られています oversimplifyingの危険性、思考

  • like a computer, perhaps thinking like an engineer,

    コンピュータのような、おそらく エンジニアのように考え、

  • and trying to start to organize your thoughts

    とを開始しようとしています 自分の考えを整理します

  • or to give you a better sense of what's involved in actually commanding

    またはあなたのより良い感覚を与えるために どのような実際に指揮に関与しています

  • a computer to do something by way of programming.

    何かをするコンピュータ プログラミングを介して。

  • And we'll keep it at a pretty high level, pretty much English,

    そして、私たちはかなりでそれをしておこう ハイレベル、ほとんど英語、

  • but try to use of familiar examples to formalize how

    しかし、おなじみの使用しようとします どのように定式化する例

  • you would go about solving problems.

    あなたが問題を解決するに行きますか。

  • >> And we will revisit some CS topics, like abstraction,

    >> そして、我々はいくつかのCSを再訪します トピック、抽象化のような、

  • which came up a couple of times yesterday,

    これは、カップルを思いつきました 時間の昨日、

  • algorithms, and then representation.

    アルゴリズム、およびその後の表現。

  • And that's where we'll begin today in just a moment.

    私たちは始めましょうどこにそしてそれはです 一瞬で、今日。

  • Then we'll take a look at programming.

    その後、我々は、プログラミングを見てみましょう。

  • We'll take a look at some fundamental constructs

    我々はいくつかを見てみましょう 基本的な構成物

  • with which you might be familiar and might even find quite intuitive.

    これであなたはよく知っているかもしれません さらには、非常に直感的かもしれません。

  • >> We'll look, in fact, at a sample programming

    >> 私たちは、実際には、見ていきます、 サンプルプログラムで

  • environment that's very accessible, very playful, and indeed targeted

    非常にアクセス可能な環境、 非常に遊び心、そして実際に標的に

  • for ages 12 and up.

    12歳以上のため。

  • We will spend a few minutes there and then take things to a lower level

    私たちはそこに数分を過ごすことになります そして、次に低いレベルに物事を取ります

  • and actually talk about some of the algorithms and data structures,

    そして実際のいくつかについて話 アルゴリズムとデータ構造、

  • so to speak, that programmers typically use

    そうこと、話すこと プログラマは一般的に使用します

  • to solve problems far more efficiently than you might

    はるかに多くの問題を解決します 効率的にあなたがかもしれないより

  • be able to do without them altogether.

    完全にそれらなしで行うことができます。

  • Then after lunch, we'll take a look at technology stacks, which is just

    そして昼食後、私たちは見てみよう ちょうどであるテクノロジー・スタック、で

  • a fancy way of saying collections of technologies

    のがファンシーな方法 技術のコレクション

  • that you might use to solve some problem.

    あなたが使用するかもしれません いくつかの問題を解決します。

  • And we'll talk about the alphabet soup of languages that exist today--

    そして、我々はアルファベットについて話しましょう 存在する言語のスープtoday--

  • Java and Python and C++ and PHP and Ruby and all sorts of other things.

    JavaやPythonやC ++やPHPと Rubyと他のもののすべての種類。

  • >> We'll take a look briefly at design patterns.

    >> 私たちは、簡単に見てみよう デザインパターンで。

  • Programmers, over time, have adopted methodologies

    プログラマ、時間をかけて、 方法論を採用しています

  • that tend to help them solve problems more readily.

    彼らを助ける傾向にあること より容易に問題を解決します。

  • When you start to see yourself writing the same kind of code again and again,

    あなたが書いて自分自身を見始めるとき 何度も何度も同じ種類のコード、

  • people formalize those repetitions and ascribe names to them

    人々は、これらの繰り返しを正式 そしてそれらに帰名

  • and then use them and promote them, ultimately.

    その後、それらを使用して 最終的に、それらを推進しています。

  • And we'll talk a little bit about mobile strategies,

    そして、私たちは少し話をしましょう モバイル戦略について、

  • like what does it mean to actually make a mobile app or a mobile website.

    それが実際に何を意味しているような モバイルアプリやモバイルウェブサイトを作ります。

  • Do you do it for Android?

    あなたは、Androidのためにそれを行うのですか?

  • Do you do it for iOS?

    あなたはiOSのためにそれを行いますか?

  • Do you do it for both of those?

    あなたはそれらの両方のためにそれを行いますか?

  • And what are the trade-offs?

    トレードオフは何ですか?

  • And then finally, we'll take a look web programming, which

    そして最後に、我々は取りますよ ルックWebプログラミング、どの

  • is a collective term really describing any time

    総称であります 本当にすべての時間を記述する

  • you write software that's meant to run on the web,

    あなたはだソフトウェアを書きます ウェブ上で実行することを意味し、

  • whether on phones or desktops or laptops.

    携帯電話でかどうか デスクトップやラップトップ。

  • We'll take a brief look at databases and the design

    私たちは、簡単に見てみましょう データベースとデザイン

  • therein, if only because almost any interesting web-based application

    その中で、唯一のため、ほぼすべての場合 面白いWebベースのアプリケーション

  • these days has some kind of database.

    これらの日には、データベースのいくつかの種類があります。

  • Otherwise, it would just be static content.

    それ以外の場合は、希望 ちょうど静的コンテンツです。

  • And a database allows you to make changes over time, whether yourself

    そして、データベースは、あなたが行うことができます 経時変化、自分自身かどうか

  • or from users.

    またはユーザから。

  • And we'll consider how you would go about designing

    そして、私たちはどのように検討しましょう 設計については行くだろう

  • that database and the kind of jargon that might come up in an engineer's

    そのデータベースと専門用語の種類 それはエンジニアの中に出てくる可能性があります

  • discussion at a white board when actually implementing

    ホワイトボードでの議論 実際に実装するとき

  • an app for the first time.

    初めてのアプリ。

  • >> We'll talk briefly about APIs, useful services

    >> 私たちは、について簡単に説明します APIは、有用なサービス

  • that you can use to stand on the shoulders of others, whether companies

    あなたが上に立つために使用できること 他の人の肩、企業かどうか

  • or individuals, and solve your own problems more quickly.

    や個人、そしてあなたを解決 より迅速に自身の問題。

  • And then we'll dabble perhaps a bit with JavaScript,

    そして、我々は、おそらく手を出しますよ JavaScriptで少し、

  • a programming language that's used both in browsers these days, but also

    使われているプログラミング言語 ブラウザの両方で、これらの日だけでなく、

  • in servers.

    サーバインチ

  • And perhaps, we'll revisit, time permitting,

    おそらく、我々はよ 、時間が許せば、再訪

  • some of the hands-on web stuff we did yesterday and integrate the two

    ハンズオンウェブスタッフたちの一部 昨日と2を統合

  • together before we adjourn.

    一緒に私たちは休会前に。

  • >> So with that-- what's ahead-- is there anything missing that you

    >> だからthat--でahead--は何ですよ そこにいることを欠落しているもの

  • would like to make sure we insert and touch on at some point.

    我々は挿入を確認してくださいしたいと思います そして、いくつかの点で上にタッチします。

  • If it's springs to mind, bring it up before long.

    それは心にバネの場合は、 やがてそれを持ち出します。

  • But why don't we begin with a look at computational thinking.

    しかし、なぜ我々は始まりません 計算の考え方を見てください。

  • >> And let me propose that computational thinking is, again,

    >> そして、私はそれを提案してみましょう 計算の考え方は、再び、あります

  • sort of the high level description of what a computer scientist might do.

    高レベルの記述の一種 コンピュータ科学者は何を行う可能性があります。

  • And indeed, let's start with three ingredients that

    そして実際、それでは、始めましょう その3成分と

  • might go into computational thinking.

    計算の考え方に行くかもしれません。

  • This is just one way of describing it.

    これは、それを説明するだけで1つの方法です。

  • We could certainly define this in any number of ways.

    我々は確かに定義することができます 任意の数の方法でこれ。

  • >> But let me propose, for the sake of today,

    >> しかし、私が提案してみましょう 今日のために、

  • that the world's problems, all of the world's problems,

    世界の問題という、 世界の問題のすべて、

  • when approached by a computer scientist could

    により近づいたとき コンピュータ科学者でし

  • be viewed as what we'll call inputs, which

    私たちがよと見ること 入力を呼び出し、その

  • need to get fed into what we'll call algorithms, which then yield outputs.

    私たちが呼ぶものに送り込ま取得する必要があります その後、出力が得られるアルゴリズム。

  • In other words, the entire world of problem-solving I claim

    換言すれば、全体の 私が主張する問題解決の世界

  • can be distilled into these three ingredients.

    蒸留することができます これらの3成分。

  • So what do I mean by inputs?

    だから私は入力によって何を意味するのですか?

  • Inputs is just what you're handed in order to solve.

    入力は、あなたがしているものばかりです 解決するために手渡しました。

  • >> For instance, here's an old school problem.

    >> 例えば、ここです 古い学校の問題。

  • If I have a phone book here and I want to look something into it,

    私はここに電話帳を持っている場合と、 私はそれに何かを見てみたいです、

  • this is my input.

    これは私の入力です。

  • I have 1,000 or so pages in a phone book.

    私は千かそこらを持っています 電話帳のページ。

  • This is the input to my problem.

    これは私の問題に入力されます。

  • And I want to find something like Mike Smith, so a friend

    そして、私は何かを見つけたいです マイク・スミスので、友人のような

  • whose name and number is hopefully in this address book.

    その名前と番号です うまくいけば、このアドレス帳インチ

  • >> This is before the days of cell phones, so I can't just search for it.

    >> これは、セルの日前であります 電話は、私はちょうどそれを検索することはできません。

  • So I have to do it old school and actually search

    だから私はそれが古いしなければなりません 学校と実際に検索

  • these inputs for some answer.

    いくつかの答えをこれらの入力。

  • And that answer is just going to be called the output.

    そして、その答えはちょうど起こっています 出力と呼ばれていました。

  • So the input is the phone book.

    だから入力は電話帳です。

  • The algorithm is whatever set of steps I use to find Mike Smith.

    このアルゴリズムは、どのようなセットです 手順は、私がマイク・スミスを見つけるために使用します。

  • And the output is, hopefully, Mike Smith's phone number.

    出力は、うまくいけば、あります マイク・スミスの電話番号。

  • And this then would be just representative of most any problem

    そして、これはその後、ちょうどだろう ほとんどすべての問題の代表

  • to with you are handed inputs and want to produce outputs.

    あなたが入力渡されるとします そして、出力を生成します。

  • >> So before we consider the process by which we can solve that problem,

    >> だから我々は、プロセスを検討する前に、 これによって、私たちはその問題を解決することができ、

  • finding Mike Smith and something like that,

    マイク・スミスを発見し、 そんな感じ、

  • let's consider the first and the last-- inputs and outputs.

    それでは、最初のを考えると、 last--入力と出力。

  • Physically, of course, the input here is a whole bunch of paper glued together

    物理的には、もちろん、ここに入力 紙の全体の束を一緒に接着されています

  • in the form of a phone book.

    電話帳の形態です。

  • But computers, of course-- laptops and desktops and even phones

    しかし、コンピュータ、course--ノートパソコンのを デスクトップ、さらには携帯電話や

  • these days-- those are electronic devices.

    これらdays--ものであり、 電子デバイス。

  • >> And at the end of the day, what's the only input to a computer?

    >> そして、一日の終わりに、何 コンピュータへの入力のみ?

  • Well, it's something like this power cord here.

    まあ、それはのようなものです ここでは、この電源コード。

  • I plug it into the wall, and I get a flow of electrons,

    私は壁にそれをプラグインし、 私は、電子の流れを取得し、

  • which allows me to run the machine.

    これは私がマシンを実行することができます。

  • Or maybe those electrons are created by way of my battery.

    それとも、それらの電子があります 私のバッテリーの方法によって作成されました。

  • But at the end of the day, that's the only thing going into my laptop.

    しかし、一日の終わりに、それはです 唯一の事は私のラップトップに入ります。

  • And so much interesting stuff is ultimately

    そしてそんなに面白いです ものは、最終的です

  • coming out, whether by way of the printer

    かどうか、出てきます プリンタを介して

  • or the screen or audially or the like.

    または画面やaudiallyなど。

  • >> So if all we have as our fundamental input to a computer

    >> すべてのであれば、私たちは私たちのように持っています コンピュータへの基本的な入力

  • is electricity, so just electrons going in and or out,

    電気である、これだけ 電子は、中およびまたは外出します

  • and so how can we use that input to actually represent information?

    ので、どのように我々は、その入力を使用することができます 実際に情報を表現するには?

  • In other words, how do we get from a simple flow of electricity

    言い換えれば、どのように我々は入手できますか 電気の簡単な流れから

  • to representing actual numbers or actual letters

    実際の表現に 数字または実際の文字

  • or actual images on the screen or actual movies or e-mails

    画面上または実際の画像 実際の映画や電子メールや

  • or any number of these higher level concepts,

    またはこれらの任意の数の より高いレベルの概念、

  • if you will, that at the end of the day somehow

    可能ならば、その時 何とか一日の終わり

  • have to be stored in this electronic mechanical device

    このように格納されるています 電子機械装置

  • using only those simple ingredients-- electrons coming in and out?

    だけの簡単なingredients--を使用して、 電子は中と出てきますか?

  • >> So it would seem that, in the simplest form,

    >> だから、それを思わ、 最も単純な形で、

  • the only kind of states I have in my world, so

    状態の唯一の種類 私は、私の世界を持っています

  • to speak-- conditions in my world-- is either

    条件をspeak--します 私world--のいずれかであります

  • I have electrons flowing, electricity flowing, or I do not-- so on, off.

    私は電子は、電気を流してきました 流れる、または私はオフ、というようにnot--行います。

  • And let's formalize on and off, as a computer scientist might,

    そして、のは、オンとオフ正式てみましょう コンピュータ科学者のかもしれませんが、

  • with just 1 and 0.

    1と0だけで。

  • Let's just describe some arbitrary but consistent number to it.

    ちょうどいくつかの任意のを説明してみましょう しかし、それへの一貫した数。

  • 1 means on, 0 means off.

    1は上の意味、0はオフを意味します。

  • Or you might also view this as true means on and false means.

    それとも、また、としてこれを見るかもしれません 上の真の手段と偽の手段。

  • You could also do black and white or red and blue.

    また、黒行うことができます そして、白または赤と青。

  • You just need two descriptors.

    あなただけの2つの記述子が必要です。

  • And a computer scientists would generally just use 0 and 1.

    そして、コンピュータ科学者は、希望 一般的にちょうど0と1を使用します。

  • >> So if that's the case, my only alphabet is consisting of 0's and 1's, how

    >> だから、その場合は、私の唯一のアルファベット 0と1からなるが、どのように

  • could I possibly get to even the number 2 in a computer, let alone the number 3

    私はおそらく数を均等に得ることができます コンピュータ、ましてや数3の2

  • or a letter of the alphabet or an image or a movie?

    またはアルファベットの手紙 あるいは画像やムービー?

  • How do we sort of bootstrap ourselves from this basic principle

    どのように我々は一種のブートストラップありません この基本原理から自分自身

  • of 0's and 1's and actually represent something more interesting?

    実際には0と1との もっと面白いことを表していますか?

  • >> Well, let's put that question on hold for just a moment

    >> さて、その質問を入れてみましょう ちょっと保留

  • and consider something hopefully familiar,

    そして、何かを考えます うまくいけばお馴染みの、

  • even if you haven't really thought about it in any detail for 10, 20, 30, 40, 50

    あなたは本当にについては考えていない場合でも、 それ10、20、30、40、50のための任意の詳細に

  • more years.

    より多くの年。

  • This is what?

    これは何?

  • How would you pronounce that?

    あなたはそれをどのように発音しますか?

  • Not a trick question.

    ていないトリックの質問。

  • A number, but what is it?

    数は、しかし、それは何ですか?

  • 1, 2, 3, or 123.

    1、2、3、または123。

  • And I liked how you said 1, 2, 3, because that's one way of viewing it.

    あなたが言ったかと私は言っています1、2、3、 それはそれを見る一つの方法だからです。

  • 1, 2, 3, it's a sequence of three symbols.

    1、2、3、それは配列情報 3つのシンボルの。

  • It's pictures that we now have words for.

    それは私たちの写真です 今の言葉を持っています。

  • And if you sort of read them all together, a typical human in English

    そして、あなたは一種のそれらすべてを読めば 英語で一緒に、典型的な人間

  • would say 123.

    123を言うでしょう。

  • And that's sort of a higher level concept,

    そして、それは一種のです より高いレベルの概念、

  • feels like a reasonably big number.

    合理的に大きな数のように感じています。

  • >> But how did we get there?

    >> しかし、どのように我々はそこに着くのですか?

  • Well, it might be a while since you've thought about it like this,

    まあ、それはそれ以来しばらくかかるだろう あなたは、このようにそれについて考えてきました

  • but back in my day, I kind of learned this

    しかし、戻って私の一日で、I 種類のこのことを学びました

  • as the 1's column, the 10's column, and the 100's column.

    1の列として、10代 列、および100の列。

  • So as Lakisa says, it is 1, 2, 3, but it's also 123.

    Lakisaが言うように、それはあります 1、2、3、それはまた、123です。

  • But how do we get from the former to the latter?

    しかし、どのように我々は、から入手できますか 前者と後者?

  • >> Well, you would typically do in the 100's column, I have a 1.

    >> さて、あなたは、一般的に行うだろう 100の列は、私は1を持っています。

  • So that's like saying 100 times 1.

    だから、100倍の1を言ってようなものです。

  • And then in 10's column, I have 2.

    そして10のコラムで、私は2を持っています。

  • So that's like saying 10 times 2.

    だから、10回2を言ってようなものです。

  • In the 1's column, I have 3.

    1のコラムでは、私は3を持っています。

  • So that's like saying 1 times 3.

    だから、1回3を言うようなものです。

  • >> And if I add these things together, this, of course,

    >> そして、私はこれらの事を追加した場合 一緒に、この、もちろん、

  • is 100 plus the 10 plus 3.

    100プラス10プラス3です。

  • And oh, that's why I get this higher level notion of 123.

    そして、私はこれを取得なぜああ、それはです 123のより高いレベルの概念。

  • It's just basic math, whereby these symbols have weights to them, if you

    それはちょうど基本的な数学ですが、それによってこれらの シンボルは、それらに重みを持っているあなたの場合

  • will, placeholder or column values.

    、プレースホルダまたは列の値になります。

  • And once I multiply everything out, I get this number.

    そして、私はすべてを掛けたら、 アウト、私はこの番号を取得します。

  • >> So how many of you know how to speak binary-- 0's and 1's-- like a computer?

    >> だから、あなたが知っているどのように多くの方法を話します binary-- 0とコンピュータのよう1's--?

  • OK, perfect, no one, or none of you think you do.

    OK、完璧な、誰もいない、または あなたのどれもあなたが思うません。

  • But I would claim you actually know this already.

    しかし、私はあなたを主張するだろう 実際に、すでにこのことを知っています。

  • We just need to sort of tweak our mental model a little bit.

    私達はちょうど一種の微調整する必要があります 私たちのメンタルモデルを少し。

  • But the process is exactly the same.

    しかし、このプロセスはまったく同じです。

  • >> Let me leave this one up there and instead pull this down for a moment.

    >> 私はそこまでこの1を残してみようと 代わりに、一瞬のためにこれをプルダウン。

  • In the world of computers, we only have 0's and 1's.

    コンピュータの世界では、 我々は唯一の0と1があります。

  • And so the thing that's going to change is what?

    ですからことだという 変更するために何をされて行くの?

  • Well, in my human world, the decimal system, dec meaning 10,

    さて、私の人間の世界では、 十進法、12月の意味10、

  • I have how many digits at my disposal?

    私は私の処分でどのように多くの数字を持っていますか?

  • 10, right?

    10、右か?

  • 0 through 9, of course.

    0から9までのコース。

  • >> And that's why we have the 10's place and the 100's place.

    >> そして、私たちが持っている理由です 10の位と百の位。

  • Where is that coming from?

    それはどこから来ていますか?

  • Well, this is 10 to the power of 0.

    まあ、これは、0のパワーに10あります。

  • This is 10 to the power of 1, 10 to the power of 2, and so forth.

    これは、10 1の電源10であります 2乗など。

  • You just keep multiplying your columns by 10, starting off with just 1

    あなたは自分の列を乗じておきます 10によって、ちょうど1で発進

  • in the rightmost one here.

    ここでは右端の1インチ

  • >> So in the world of computers, if you only

    >> の世界ではそのように コンピュータ、あなたの場合のみ

  • have binary-- bi meaning 2-- or 0's and 1's, we just

    binary--バイ意味を持っています 2--または0と1、ちょうど私達

  • really need to change the base of that math.

    本当に変更する必要があります その数学のベース。

  • So in other words, now we'll just have the 1's column and the--

    換言すれば、今、私達はちょうどよ 1の列を持っているとthe--

  • where is this going-- the 2's column, the 4's column, and maybe beyond.

    これが2の列をgoing--はどこにあり、 4のカラム、そしておそらく超えました。

  • Why is that?

    何故ですか?

  • Well, this is 2 the 0-th power.

    まあ、これは0乗2です。

  • This is 2 the 1.

    これは2 1です。

  • This is 2 to the 2, and so on.

    これには、2から2である、と。

  • >> So whereas here, we have 1, 10's, 100's, 1,000's, 10,000's, 100,000's, 1

    >> ここで、一方だから、私たちは1、10年代を持って、 100の1,000の10,000の10万の、1

  • millions, and so forth, here we have 1, 2, 4, 8, 16, 32, 64.

    何百万人など、ここで 我々は、1、2、4、8、16、32、64を有します。

  • You just keep multiplying by 2, instead of keep multiplying by 10.

    あなただけの2を乗じておきます、 代わりに10を乗じておきます。

  • So now, if the goal at hand is to represent

    だから今、目標であれば 手が表すことです

  • numbers using only 0's and 1's, let's consider how we get there.

    唯一の0と1を使用して、数字、 我々はそこに着く方法を考えてみましょう。

  • >> This, of course, is the pattern 0 0 0, but what number conceptually

    >> これは、もちろん、パターン0であります 0 0が、何数概念的

  • does it represent?

    それが表すのでしょうか?

  • Well, 4 times 0 plus 2 times 0 plus 1 times 0, let's add those together.

    さて、4回0プラス2回0プラス 1回0は、ご一緒にそれらを追加してみましょう。

  • 4 times 0 is, of course, 0, plus 2 times 0 is, of course, 0 plus 1 times 0

    4時間0は、当然、0であり、プラス2 時間0は、もちろん、0プラス1回0であります

  • is, of course, 0.

    もちろん、0です。

  • So ah, this represents the number we humans know as 0.

    だから、ああ、これが表します 数私たち人間は、0として知っています。

  • >> Well, now, let's very quickly fast forward.

    >> さて、今、非常にしてみましょう すぐに早送り。

  • If I'm instead not representing 0 0 0, but let's do 1 0 1,

    私の代わりに表さないよ場合 0 0 0が、それでは、1 0 1をやらせます、

  • that might be how Lakisa, earlier, would just pronounce it 1 0 1.

    それは如何でしょうかLakisa、以前、 ちょうど1 0 1それを発音でしょう。

  • But now, how do we take it to the higher level the number we humans might know?

    しかし、今、どのように我々はそれ以上にそれを取りますか 私たち人間が知っているかもしれない数を平準?

  • So what is this number?

    だから、この番号は何ですか?

  • It's 5, the number we know as 5.

    これは、5、私たちは5のように知っている数です。

  • >> Well, why is that?

    >> まあ、それはなぜですか?

  • Well, we can really sort of walk through it methodically

    さて、私たちは本当に一種の缶 念入りにそれを歩きます

  • 4 times 1, 2 times 0, 1 times 1.

    4回1、2回0、1回1。

  • Add those together, so this is 4 plus 0 plus 1.

    そう、一緒にそれらを追加します。 これは4プラス0プラス1です。

  • And that's, indeed, 5.

    そしてそれは、確かに、5です。

  • So it's getting a little tedious now doing the arithmetic again and again.

    だから、今、少し退屈になっています 何度も何度も計算を行います。

  • But the process is exactly the same.

    しかし、このプロセスはまったく同じです。

  • >> The only thing that has changed in our world

    >> 持っている唯一のもの 私たちの世界に変更

  • is that our columns are 1, 2, 4, 8, 16, and so forth, instead of 1, 10, 100,

    我々の列は1、2、4、8、16であることであり、 等、代わりに1、10、100、

  • 1,000.

    千。

  • And that's just because our alphabet has shrunk from 0 through 9 to just 0 to 1.

    私たちのアルファベットを持っているので、それはちょうどです ちょうど0〜1に0から9まで縮小し。

  • >> So as a little quiz here, how would you represent the number 7 in binary?

    >> ここで少しクイズ、どのようにと同じように、それで あなたはバイナリで数7を表しますか?

  • 0?

    0?

  • Well, 0, you mean 0 0 0?

    まあ、0、あなたは0 0 0意味ですか?

  • Say it again , Karina.

    、再びカリーナをそれを言います。

  • Perfect.

    パーフェクト。

  • Why is that?

    何故ですか?

  • It's effectively 4 plus 2 plus 1.

    それは効果的に4プラス2プラス1です。

  • So good.

    とても良い。

  • >> How do we represent a little another-- how about number 2?

    >> 我々は少しを表現するにはどうすればよいです another--方法数は約2?

  • Close, but backwards.

    閉じるが、後方。

  • So what is this?

    だから、これは何ですか?

  • Is 4 plus 1, so that's 5 again.

    4プラス1であるので、それは再び5です。

  • >> So what's-- I'm sorry, Karina?

    >> だから私は申し訳ありませんwhat's--、カリーナ?

  • 0 1 0.

    0 1 0。

  • 0 1 0 would be 2, because again, even if it sort of doesn't jump out at you,

    0 1 0はあっても、理由再び、2となります それは一種のあなたに飛び出すていない場合は、

  • just do the math.

    ただ計算を行います。

  • 4 times 0, 0, 2 times 1 is 2, 1 times 0 is 0.

    4回0、0、2回 図1は、0 0 1 2倍です。

  • So this is the number we know as 2.

    だから、これは我々が2として知っている番号です。

  • >> How about the number 8?

    >> どのように数約8?

  • Hm?

    フム?

  • Good.

    良い。

  • So we kind of need another placeholder.

    だから我々は一種の別のプレースホルダが必要です。

  • We need 1 0 0 0.

    私たちは、1 0 0 0を必要としています。

  • And that's true of our sort of old school decimal system.

    そして、それは私たちの並べ替えのは事実です 古い学校の小数点システムの。

  • How do you represent the number 1,000?

    どのように数千を表しているのですか?

  • >> Well, you would seem to be kind of in a tough spot,

    >> さて、あなたはあると思われます 種類のタフなスポットで、

  • if ask you to represent the number 1,000,

    表現するためにあなたを求める場合 数千、

  • because even if you give yourself like 9 of these, 9 of these, 0 of these,

    あなたのように自分自身を与える場合もあるため これらの9、​​これらの9、​​これらの0、

  • which is the biggest number you have, you didn't quite get to 1,000.

    その最大の数であるあなた 持っている、あなたはかなり千に取得できませんでした。

  • So if you 1,000, you just need another position, so that you can do 1 0 0 0,

    だから千場合、あなただけの別のものを必要とします 位置、あなたは1 0 0 0を行うことができるように、

  • ergo the number 1,000.

    エルゴ数千。

  • >> So now, let's map this sort of conceptual discussion back to hardware,

    >> だから今、のは、この種のをマッピングしましょう バックハードウェアへの概念の説明、

  • where again, the input was just this little power cable, electricity

    再び、入力がちょうどあった場所 この小さな電源ケーブル、電気

  • coming in and flowing out.

    入ってくると流出します。

  • And so for that to be mapped from here to there, well, what do we really need?

    そして、その結果については、こちらからマッピングされます そこに、よく、私たちは本当に何が必要なのでしょうか?

  • Well, you can think of being inside of a computer, a whole bunch of light bulbs,

    さて、あなたは内であることを考えることができます コンピュータ、電球の全体の束、

  • if you will.

    可能ならば。

  • They're really called transistors.

    彼らは本当にトランジスタと呼ばれています。

  • And transistors are just switches that can either be on or off.

    トランジスタは単なるスイッチです それは、オンまたはオフのいずれかとすることができます。

  • So you can think of a transistor that's on

    だから、考えることができます 上だトランジスタ

  • is allowing electricity to flow and a transistor that's off as stopping

    電気が流れることを可能にし、 停止などオフだトランジスタ

  • electricity from flowing.

    流れるから電気。

  • And rather than take over the lights here,

    そして、いうより取ります ここではライトオーバー、

  • why don't I do this sort of new school style.

    私はこの種をしない理由 新しい学校のスタイルの。

  • So this might be a 1, a flashlight being on, only barely though.

    だから、これは、懐中電灯1であるかもしれません かろうじてしかし、上にあります。

  • And this might be a 0, and now it's off.

    そして、これは0かもしれないが、今ではオフです。

  • >> So using this physical device, I can now represent the binary system.

    >> だから私は、この物理デバイスを使用して、 今バイナリシステムを表すことができます。

  • I just need two states.

    私はちょうど2つの状態が必要です。

  • It doesn't matter what color it is or what it is.

    これは、何が問題ではありません。 それがあるか、それが何であるかを色。

  • All that matters is that I have one state on and another state off.

    重要なのは、私が持っているということです 1上の状態と別の状態をオフにします。

  • So using my phone here, how do I represent the number we know as 0?

    だからここに私の携帯電話を使用して、どのように私を行います 0のように私たちが知っている数を表しますか?

  • Or put equivalently, what number am I representing now?

    または、等価的に何を置きます 数は今私を表現するのですか?

  • 0, because the device is off.

    0、デバイスがオフになっているからです。

  • >> And if I do this?

    >> そして、私はこれを行う場合はどうなりますか?

  • And now, how do I represent the number 2?

    そして今、どのように私はやります 数2を表しますか?

  • Can I borrow your phone here, as we did yesterday?

    私はあなたの電話を借りることができます ここで、我々は昨日のように?

  • So let's see, so if I want to represent the number 2, is this the number 2?

    私が表現したいので、もしだから、見てみましょう 数2、これは2番ですか?

  • No.

    いいえ。

  • What number am I accidentally representing here?

    何番私が誤っています ここで表しますか?

  • This is actually the number 3.

    これは実際には数3です。

  • >> So which one do I want to turn off?

    >> だから、これは1、私はオフにしたいですか?

  • The black phone or-- well, if they're-- black phone or the white phone?

    よくor--黒電話、they're--場合 黒電話や白の電話?

  • The white phone.

    白い電話。

  • So if I turn this off and we line it up over here, we have a 1

    だから私はこれをオフにし、我々場合 こっちラインそれを、私たちは1を持っています

  • in the 2's place and a 0 in the 1's place.

    2の代わりにと 1の代わりに0。

  • And so I'm now representing the number 2.

    だから私は今です 数2を表します。

  • And this, Of course, would be the number 3, because now both of these lights

    これは、もちろん、数字であろう 3、これらのライトの今両方の理由

  • are on.

    上にあります。

  • >> And I'll stop here, but it stands to reason

    >> そして、私は、ここで停止します それは理にかなっています

  • if I want to represent the number 4 or 8 or higher,

    私が表現したい場合 番号4または8以上、

  • I'm going to need more phones.

    私はより多くの携帯電話を必要とするつもりです。

  • But that's all that's going on.

    しかし、それは起こっていることすべてです。

  • So if you've ever heard that inside of a-- thank you-- computer

    だから、あなたが今までと聞いていた場合 A--の内側you--コンピュータに感謝

  • is millions of transistors, that's just millions of tiny little switches.

    数百万のトランジスタである、それはです 小さな小さなスイッチのちょうど百万人。

  • And they're not light bulbs that turn on and off,

    そして、彼らは光じゃありません オンとオフの球根、

  • but they do either allow electricity to flow somewhere or stop it.

    彼らは電気を許可するかのどちらか どこかに流れたり、それを停止します。

  • And so there's your two states-- on or off, on or off.

    だからあなたの2があります オンまたはオフ、オンまたはオフにstates--。

  • >> So we would seem now to have this ability

    >> だから我々は今と思われます この能力を有すること

  • to represent this concept that we'd like in actual hardware.

    この概念を表現すること 私たちは、実際のハードウェアにしたいと思います。

  • But all we have now is the ability to represent numbers it would seem.

    しかし、私たちが今持っているすべての能力であります 数字を表すために、それは思われます。

  • So how do we go about representing letters of the alphabet, which

    だから我々は、表現についてどのように行くのですか アルファベットの文字、どの

  • feels like the next sort of feature you would want to add to a modern computer

    機能の次の一種のように感じます 現代のコンピュータに追加したいと思います

  • once you have numbers?

    あなたは数字を持っていたら?

  • >> And indeed, if you think about it, historically, computers

    >> そして実際、あなたが考える場合 それ、歴史的に、コンピュータ

  • were introduced really to serve as calculators numerically.

    役立つように本当に導入されました 数値計算器。

  • But of course, these days, they do much more.

    もちろん、これらの 日、彼らはより多くを行います。

  • Even when they boot up, you typically see one or more words.

    彼らは、あなたを起動した場合でも 典型的には、1つまたは複数の単語を見ます。

  • So how do you represent words, if all you have is, again,

    それでは、どのように言葉を表しますか、 あなたが持っているすべての場合は、再び、

  • electricity at the end of the day, or equivalently 0's and 1's?

    の終わりに電気 日、または等価的に0と1の?

  • >> Yeah.

    >> うん。

  • Yeah, I mean, we kind of did this yesterday in some form,

    ええ、私は意味、私たちは一種のでした この昨日何らかの形で、

  • where at some point, I think I arbitrarily

    どこかの時点で、 私は私が任意に思います

  • said that, if we want to represent the letter A, we could just call that a 1.

    私たちが表現したい場合は、と言いました 文字A、私達はちょうど1ことを呼び出すことができます。

  • It was in the context of cryptography, where we just needed some kind of code,

    これは、暗号化に関連していました 私たちは、コードのいくつかの種類を必要な場所で、

  • some kind of mapping.

    マッピングのいくつかの種類。

  • >> So maybe A will be represented as a 1, and B will be represented as a 2,

    >> そのため、おそらくAはとして表現さ​​れます 1、及びBは、2のように表されます

  • and Z will be represented as a 26, for instance.

    そしてZが表されます 例えば26、など。

  • And then the only caveat is that if I'm going to encode letters in my emails

    そして唯一の注意点は、私があればということです 私のメールの文字をエンコードします

  • or in my text messages as numbers, you all

    または私のテキストメッセージで 数字として、あなたのすべて

  • have to agree to use the same set of conventions.

    使用することに同意する必要があります 規則の同じセット。

  • And indeed, the world has done exactly that.

    そして実際、世界 まさにそれを行っています。

  • >> There is a system in the world called ASCII, American Standard

    >> 世界のシステムがあります 呼ばれるASCII、アメリカンスタンダード

  • Code for Information Interchange, which is simply a decision some years

    情報交換用コード、 これは、単にいくつかの年の決定であります

  • ago that the humans made that decided that A is going to equal, not

    前人間がいることを作りました Aが、等しくないために起こっていることを決定しました

  • 1, 2, and 26, and so forth-- it's a little different-- but 65, 66, 67.

    1,2、および26、ならびにそれですforth-- 少しdifferent--が、65、66、67。

  • And I'll pull up a chart in just a moment.

    そして、私はプルアップします 一瞬のチャート。

  • But it's arbitrary.

    しかし、それは任意です。

  • But it doesn't matter that it's arbitrary.

    しかし、それは問題ではありません。 それは任意だという。

  • The world has to just be consistent.

    世界はちょうど一貫しなければなりません。

  • >> Now, more recently, there's something fancier

    >> 現在、より最近、 手の込んだものがあります

  • called Unicode, because the world's kind of realized, after inventing computers,

    世界の親切なので、ユニコードと呼ばれます コンピュータを発明した後に、実現の、

  • that there's more than well 256 symbols in the world

    よく以上があること 世界で256シンボル

  • that we might want to represent, especially when you introduce

    私たちが表現したいかもしれないこと、 場合は特に、あなたがご紹介

  • Asian languages and other symbologies that need more expressiveness than you

    アジア言語および他のシンボル それはあなたよりも表現力が必要

  • can fit in the earliest version of this code, which was called ASCII.

    の最も古いバージョンに合うことができます ASCIIと呼ばれたこのコードを、。

  • So Unicode actually allows you to use more 0's and 2.

    だから、Unicodeは実際にできます あなたはより多くの0と2を使用します。

  • In particular, you keep hearing the word bytes in society and even just

    具体的には、あなたが聞いておきます ワードバイト社会であっても、単に

  • yesterday.

    昨日。

  • And a byte is what again?

    そして、バイトは何再び?

  • >> What's a byte?

    >> バイトは何ですか?

  • It's just 8 bits.

    それはちょうど8ビットです。

  • So what does that really mean?

    だからということは、本当に何を意味するのでしょうか?

  • Well, that means, earlier, when we were talking about binary and I was using

    まあ、それは意味し、以前、我々があったとき バイナリの話と私が使っていました

  • arbitrarily three bits when we were talking about binary-- the 1's place,

    私たちがした任意の3ビット 1の位binary--について話して、

  • the 2's place, and the 4's place-- well, a byte just means that you're talking

    2の場所、および4のplace--よく、 バイトはちょうどあなたが話していることを意味し

  • not in units of three but four, five, six, seven eight,

    ない3の単位ではなく 4つ、5、6、7 8個

  • which gives us 8's place, 16's, 32's, 64's, and 128's.

    これは私たちに8の場所を提供し、 16年代、32年代、64年代、および128の。

  • >> In other words, a bit isn't all that useful a unit of measure,

    >> 言い換えれば、ビットは、すべてではありません そのメジャーの便利な単位、

  • because it's just like one tiny little piece of information, on or off.

    それはちょうど1ちっちゃいのようなものですので、 情報の一部、オンまたはオフにします。

  • So some years ago, the world just decided

    だから、何年か前に、 世界はちょうど決定します

  • it's slightly more convenient to talk in terms of bytes, eight things at a time.

    それはで話をするもう少し便利です 当時のバイト、8物事の用語。

  • And so thus was born the notion of a byte.

    だからこうして生まれました バイトの概念。

  • And so we have eight bits here.

    そして、私たちはここに8ビットを有します。

  • >> And it turns out, too, for similar reasons, the world decided years

    >> そして、それは同様のために、あまりにも、判明します 理由は、世界が年を決めました

  • ago that to represent an ASCII letter, you're going to use units of 8 bits.

    前のそのASCII文字を表現するために、 あなたは8ビットの単位を使用するつもりです。

  • So even if you don't need that many, you're

    だから、そうでない場合でも、 多くは、あなたがしていることを必要とします

  • always going to use 8 bits to represent a letter of the alphabet.

    いつもに8ビットを使用するつもり アルファベットの文字を表します。

  • And this is convenient, because then if you

    そして、これは便利ですが、 よろしければ、次に理由

  • receive a message that has a 0 0 0 1 1 1 1 0 followed by another 1 1 1 0 1 0

    0 0 0 1 1を持っているメッセージを受け取ります 1 1 0は、別の1 1 1 0 1 0が続きます

  • 0 1, so if you receive 16 bits, the world can just

    0 1、あなたが16を受信した場合 ビット、世界はちょうどすることができます

  • assume that the first 8 are one letter and the second 8 are another letter.

    最初の8が1文字であることを前提としてい 第二8は、別の文字です。

  • >> Doesn't matter how many there are.

    >> あるどのように多くの問題ではありません。

  • It just matters that we're all consistent

    それはちょうどことが重要 我々はすべて一貫しています

  • when we're interpreting these bits.

    我々はこれらのビットを解釈しているとき。

  • And this was just random.

    そして、これは単にランダムでした。

  • That means something, but I didn't really think about what it means.

    それが何かを意味するが、私はしませんでした 本当にそれが何を意味するかを考えます。

  • >> So it's a small white lie.

    >> だから、小さな白いうそです。

  • Originally, ASCII actually used only 7 bits.

    もともと、ASCII 実際に7ビットのみを使用。

  • And the eighth bit is called extended ASCII.

    そして、8番目のビットがあります 拡張ASCIIと呼ばれます。

  • But the point is, ultimately, the same.

    しかし、ポイントは、最終的には、同じです。

  • The world generally standardized on 8 bits.

    一般的に、世界 8ビットに標準化しました。

  • >> So this would seem to be a little limiting, because I can only

    >> だから、これは少しであるように思われます 私は唯一の可能性があるため、制限

  • represent capital A, capital B through capital Z.

    、大文字のAを表し、 資本Z.を通じて資本B

  • But indeed not, if I go to-- there's a bunch of resources

    しかし、実際にはない、私が行けばto-- 資源の束があります

  • online, for instance, asciitable.com, this

    オンライン、例えば、 asciitable.com、この

  • is going to be a little overwhelming at first.

    少しになるだろう 最初は圧倒的。

  • But I'll point out what's important here.

    しかし、私は指摘します ここで重要なものです。

  • >> This just happens to be-- and I'll walk-- let's see, if I go over here.

    >> これは単にbe--たまたま、私'LL 私はここの上に行けば、見てみましょうwalk--。

  • Here is, in the decimal column, the number 65.

    ここでは小数であり、 列、数65。

  • And on the right hand column letter character, Chr, is the letter A.

    そして、右側の列の文字に 文字、Chr関数は、文字Aです。

  • And you can ignore, for now, everything in the middle.

    そして、あなたは今のところ、無視することができ、 途中ですべてのもの。

  • This is hexadecimal, octal, and an HTML code.

    これは、16進数で、 オクタル、およびHTMLコード。

  • To this site is just trying to throw a lot of information at you at once.

    このサイトにちょうど投げしようとしています 一度あなたに多くの情報。

  • But all we care about is the decimal column and the character column.

    しかし、我々は気にすべては10進です 列と文字列。

  • >> So by this logic, what is the number that the world

    >> したがって、このロジックにより、ものです その世界数

  • has decided represents a lowercase a?

    小文字を表すことを決定しましたか?

  • Yeah, 97.

    うん、97。

  • And just to confuse potentially slightly,

    そして、ちょうど混乱します 潜在的に少し、

  • what number has the world decided would represent the number 1?

    どのような数世界が決定しました 番号1を表すのでしょうか?

  • Right, because we-- 49, it seems here, down in the bottom left.

    右、we-- 49ので、それはそうです ここでは、ダウン左下インチ

  • >> Now, what do I mean by that?

    >> 今、私はそれによって何を意味していますか?

  • So it turns out that in computer systems,

    だから、ことが判明します コンピュータシステムにおいて、

  • there is generally a fundamental difference

    一般的に存在します 基本的な違い

  • between a number and a character.

    数と文字の間。

  • A number is the thing we learned growing up when

    番号はものです、我々 ときに育って学びました

  • we were super young in grade school.

    私たちは、小学校にスーパー若かったです。

  • It's things you count with.

    それはあなたが数えるものです。

  • But a character is just a shape, a glyph, so to speak, on the screen.

    しかし、文字だけの形状であり、 グリフは、そのように画面上に、話します。

  • >> Now, we humans sort of see something that looks like this.

    >> 今、私たち人間は一種の参照します このようなもの。

  • And we say, oh, that is the number 2.

    そして、私たちはああ、それは数2である、と言います。

  • But no, that's just a symbol that looks like what we know as the number 2.

    しかし、いや、それは見えるだけのシンボルです 我々は数2のように知っているような。

  • And so there's this fundamental distinction

    そして、これがあります 根本的な違い

  • between actual numbers and characters.

    実際の数字と文字の間。

  • This is a number.

    これは数あります。

  • But generally, in the context of a computer,

    しかし、一般的に、中 コンピュータのコンテキスト

  • if you instead see something like this quoted--

    あなたの代わりに表示される場合 このquoted--ような何か

  • and you don't always have to see it quoted,

    あなたはいつもしません それが引用された参照してくださいする必要があり、

  • but for the sake of discussion-- if you see quotes around the number,

    しかしdiscussion--のためであれば あなたは、番号の前後に引用符を参照してください、

  • this is now a character.

    これは現在の文字です。

  • So this number 2 underneath the hood inside of a computer

    したがって、この数2の下 コンピュータの内部フード

  • would be represented with a pattern of bits that represent the number

    パターンで表現されます 数を表すビットの

  • 50 according to the chart online.

    50オンラインチャートによると。

  • >> However, if a computer just sees this, this

    >> しかし、コンピュータの場合 ちょうどこの、これを見ています

  • would be represented with the pattern of bit 0 0 0 0 0 0 1 0.

    で表現されます ビット0 0 0 0 0 0 1 0のパターン。

  • Whereas, this character would actually be represented as-- and now,

    一方、この文字があろう 実際、as--、今表現すること

  • I got to think a little harder-- so this character would be represented with 0

    私は少しharder--を考えるようになったので、この 文字は0で表現されます

  • 0 1-- what do I need here?

    0 1--は、私がここで何が必要なのでしょうか?

  • 0 0 1 1 0 0 1 0.

    0 0 1 1 0 0 1 0。

  • How did I do this?

    どのように私はこれをしましたか?

  • Well this is the number 50, if you multiply it out using these columns,

    まあこれはあなたの場合、数50であり、 これらの列を使用して、それを掛け、

  • this is the number 2, and so that's why there is this dichotomy.

    これは、数2であるので、 この二分法が存在する理由です。

  • >> And this is just a teaser now for features

    >> そして、これはちょうどです 機能のための今ティーザー

  • that exist in programming languages that we'll touch on briefly later today.

    プログラミング言語に存在しています 我々は後に、今日簡単に触れるだろうと。

  • In programming languages, you have generally,

    プログラミング言語では、 あなたは、一般的に持っています

  • but not always, things call different data types.

    常にではないが、物事 異なるデータ型を呼び出します。

  • In other words, a programmer-- when he or she is writing,

    言い換えれば、programmer-- 彼または彼女が書いている場合、

  • a programmer gets to decide in what format to store his or her data.

    プログラマは何で決定するために取得します 彼または彼女のデータを格納するためのフォーマット。

  • You can either store data as raw numbers, like the number 2.

    することができますいずれかのストアデータとして 数2のような生の数字、。

  • Or you can store them as strings, or sequences of characters

    それとも、文字列として保存することができ、 または文字の並び

  • that you would generally express with quotes in your programming language.

    あなたは、一般的に発現していること あなたのプログラミング言語の引用符。

  • >> You can have things called-- I'll oversimplify and call them

    >> あなたは物事を持つことができますcalled-- 私はそれらを単純化し過ぎると呼ぶことにします

  • real numbers-- so numbers that aren't integers like the number 2,

    数字そう本当numbers--こと 数2のような整数ではありません、

  • but numbers like 4.56.

    しかし、4.56のような数字。

  • So real numbers can also have decimal points,

    だから、実数もできます 小数点を持っています、

  • so that's a different fundamental piece of data in a computer.

    そのためには、異なる基本です コンピュータ内のデータの一部。

  • And then you can even have other data types still.

    そして、あなたも持つことができます まだ他のデータ型。

  • So that's just a teaser really of the simplest of design decisions

    だから、実際のちょうどお誘いです 設計上の決定の最も簡単な

  • that a programmer might make underneath the hood.

    プログラマは可能性があること ボンネットの下に作ります。

  • >> So any questions just yet?

    >> だから、何か質問はまだ?

  • So let's try to make this a little more real.

    それでは、作ってみましょう このもう少し本当。

  • This hardware is not so much in use anymore.

    このハードウェアではありません 使用中のそんなにもう。

  • But most everyone in this room probably grew up with and still uses hard drives

    しかし、おそらくこの部屋の中で最も全員 で育ち、まだハードドライブを使用しています

  • in some way.

    何らかの方法で。

  • >> Even though most of our laptops no longer

    >> のたとえ最も 私たちのラップトップはもはやありません

  • have devices that operate like this, instead laptops today generally

    このように動作するデバイスを持って、 代わりに、一般的に今日のラップトップ

  • have solid state drives with no moving parts.

    ソリッドステートドライブを有します 可動部のありません。

  • And that tends to be more expensive, unfortunately, but a little bit faster

    そして、それはより高価になる傾向があります、 残念ながら、しかし、少し速いです

  • and a-- well, often, a lot faster, which is one of the reasons.

    そして、はるかに高速、多くの場合、よくA-- その理由の一つです。

  • And also it doesn't generate as much heat.

    そしてまた、それはしていません 多くの熱を発生します。

  • It can be smaller, so it's generally a net positive.

    それはですので、それは、小さくすることができます 一般的に正味の正。

  • >> But this allows us to map a little more concretely what

    >> しかし、これは私たちがマップすることができます もう少し具体的にどのような

  • we're talking about at the 0's and 1's level now to a physical device.

    私たちは、0の時の話をしていると 物理デバイスに今1のレベル。

  • It's one thing for me to talk about 0's and 1's in terms

    それは私が話をするための一つのことです 換算で約0と1の

  • of my phone or abstractly in terms of switches being on and off.

    私の携帯電話のまたは抽象的観点から オンとオフされるスイッチ。

  • But what about hard drives?

    しかし、どのようなハードドライブはどうですか?

  • In your laptops, if you have an older one, or in your desktop computer,

    あなたのラップトップでは、あなたは古いを持っている場合 1、またはデスクトップコンピュータで、

  • or certainly in servers today, where you have

    または確かにサーバーで あなたが持っている今日、

  • hard drives that have a terabyte of space,

    持っているハードドライブ スペースのテラバイト、

  • 4 terabytes of space, well what does that mean?

    スペースの4テラバイト、 よくそれは何を意味するのでしょうか?

  • >> A hard drive with 1 terabyte of space means

    >> 1ハードドライブ 宇宙手段のテラバイト

  • there's 1 trillion bytes inside of it somehow,

    1000000000000バイトがあります 何とかその中の、

  • or equivalently 8 trillion bits inside.

    内部または同等8000000000000ビット。

  • 1 terabyte would be 8 terabits or 1 trillion bits, which

    1テラバイトは8テラビットだろう または1000000000000ビット、どの

  • means if you have a hard drive, you have somehow

    あなたは、ハードを持っている場合を意味します ドライブ、あなたは何とか持っています

  • or other a trillion 0's and 1's inside of it.

    または他兆0の それの1の内側。

  • And if we just take a look at an arbitrary picture of a hard drive

    そして、私たちはただ見てみる場合 ハードドライブの任意の画像

  • representative, this is what a hard drive might typically look like inside.

    代表的には、これは難しいものです ドライブは、典型的には、内部のようになります。

  • >> It, too, is kind of like an old phonograph player

    >> それは、あまりにも、一種のようなものです 古い蓄音機プレーヤー

  • but generally with multiple records inside, so

    しかし、一般的で 内部に複数のレコード、そう

  • to speak-- multiple platters, as they're called,

    複数speak--します プラッタは、それらが呼び出されているように、

  • metal circular disks, and then a little reading head,

    金属円板、および その後、少し読取ヘッド、

  • much like an old record player.

    古いレコードプレーヤーのような多くの。

  • And that reading head moves back and forth and somehow reads the bits.

    そして、その読取ヘッドが戻り、 前後と何とかビットを読み取ります。

  • And what's on these platters, even though we humans can't see them,

    とにも、これらのプラッタ上に何 私たち人間は、それらを見ることができないものの、

  • either in reality or in this picture, there's tiny little magnetic particles.

    実際に、またはこの絵のいずれかで、 小さな小さな磁性粒子があります。

  • And even if you've long forgotten how electricity works,

    そして、あなたは長いきた場合でも、 電気がどのように機能するかを忘れて、

  • a magnetic particle that's charged generally

    磁性粒子 それは一般的に帯電しています

  • has a north end and a south end-- so north and south.

    北の端と南を持っています そのように北と南end--。

  • And so the world just decided some time ago

    それで世界がちょうど いくつかの時間前に決定しました

  • that, if a magnetic protocol essentially is aligned like this, north-south,

    、その本質的磁気プロトコルの場合 このように整列され、南北、

  • let's call that a 1.

    それでは、1ことを呼びましょう。

  • If it's instead south-north, let's just call that a 0.

    それは代わりに、南北の場合は、 ちょうど0ことを呼ぶことにしましょう​​。

  • And so if you have at your disposal a trillion

    だからあなたがでている場合 あなたの処分兆

  • tiny little magnetic particles-- and hopefully,

    小さな小さな磁気 particles--とうまくいけば、

  • the hardware ingenuity in order to flip those around

    ハードウェアの創意工夫で 周りの人々を反転させるため

  • as you see fit-- if you want to represent a whole bunch of 0's, you

    あなたがしたい場合は、fit--見るように 0の全体の束を表し、あなた

  • just need 8 magnetic particles all aligned like this.

    わずか8磁性粒子を必要とします すべてのこのような整列。

  • And if you want to represent eight 1's, you just

    そして、あなたが表現したい場合 8 1の、あなただけの

  • need 8 magnetic particles aligned back to back to back like this.

    整列8磁性粒子を必要とします バックのように背中合わせにします。

  • >> What do I mean by the magnetic particles?

    >> 私は、とはどういう意味ですか 磁性粒子?

  • Frankly, all these years later, the thing that still comes to my mind

    率直に言って、これらすべての年後に、 まだ私の心に来るもの

  • is this guy, if you grew up with this thing.

    もしあれば、この男であります この事で育ちました。

  • This is a little-- for those unfamiliar-- a

    これがためにlittle--です これらのunfamiliar-- A

  • little childhood toy that has this hairless man here

    小さな子供の頃のおもちゃいます ここでは、この毛のない男を持っています

  • that has all these tiny little black magnetic particles that come with it.

    それはすべてのこれらの小さな小さな黒いを持っています それが付属して磁性粒子。

  • And using that red stick, which is just a magnet,

    そして、その赤いスティックを使用して、 これだけの磁石であり、

  • you can sort of give him a mustache or eyebrows or hair or anything on him.

    並べ替えの彼に口ひげを与えることができますか 彼に眉毛や髪か何か。

  • So in fact, if we zoom in, for instance, this

    だから実際には、我々はズームインするとき、 、例えば、この中

  • is the kind of game you can play with Wooly Willy.

    あなたはこのゲームの一種であります ウーリーウィリーで遊ぶことができます。

  • >> And this is only to say, these are much larger magnetic particles

    >> そして、これは、これらの言うことだけです はるかに大きな磁性粒子であります

  • than are actually on a hard drive, and far fewer magnetic particles.

    ハードドライブ上に実際にあるよりも、 そして、はるかに少ない磁性粒子。

  • But let's actually see then if you do have

    しかし、それでは、実際に見てみましょう あなたが持っていない場合

  • tiny magnetic particles in a hard drive, how you can actually

    中に小さな磁性粒子 どのようにあなたが実際にすることができ、ハードドライブ、

  • use those to represent data.

    データを表現するためにそれらを使用しています。

  • >> [VIDEO PLAYBACK]

    >> [ビデオ再生]

  • >> -The hard drive is where your PC stores most of its permanent data.

    >> -TheハードドライブはどこにあなたのPCです 店舗の恒久的なデータのほとんどを。

  • To do that, the data travels from RAM along

    それを行うには、データ 沿ってRAMから移動します

  • with software signals that tell the hard drive how to store that data.

    教えソフトウェア信号に ハードそのデータを格納する方法を駆動します。

  • The hard drive circuits translate those signals into voltage fluctuations.

    ハードドライブ回路は、それらを翻訳します 電圧変動への信号。

  • These, in turn, control the hard drive's moving parts-- some of the few moving

    これらは、順番に、ハードドライブのを制御します いくつかの移動の一部parts--移動

  • parts left in the modern computer.

    部品は、現代のコンピュータに残さ。

  • >> Some of the signals control a motor, which spins metal-coated platters.

    >> 信号の一部は、モータを制御します これは金属被覆プラッタを回転させます。

  • Your data is actually stored on these platters.

    データは、実際に これらのプラッタ上に保存されています。

  • Other signals move the read/write heads to read or write data on the platters.

    他の信号は、読み取り/書き込みヘッドを移動させます プラッタ上のデータを読み書きします。

  • This machinery is so precise that a human hair couldn't even

    この機械はとても正確です 人間の髪の毛がいなくてもできること

  • pass between the heads and spinning platters.

    ヘッドの間を通過 そして、プラッタを回転。

  • Yet, it all works at terrific speeds.

    しかし、それはすべて素晴らしい速度で動作します。

  • [END PLAYBACK]

    [END PLAYBACK]

  • And you can see at the tail end of the video,

    そして、あなたはで見ることができます ビデオの最後尾、

  • there are generally multiple platters.

    複数のプラッタは一般的にあります。

  • And so that reading head isn't just reading the top.

    そしてその結果、読み取りヘッド ただトップを読んでいません。

  • It's kind of like three or four or more reading heads

    それは一種の3かのようなものです 4以上の読み取りヘッド

  • that move like this, reading data simultaneously.

    それは次のように移動し、 同時にデータを読み出します。

  • >> So there's a lot of complexity and sort of timing

    >> だから、多くのがあります 複雑さとタイミングのソート

  • that's involved in a hard drive.

    それは、ハードドライブに関与しています。

  • And the thing is spinning really darn fast, so there's a lot of complexity.

    そして、事は本当にくそ回転しています 高速なので、多くの複雑さがあります。

  • But let's zoom in a little deeper and see where are these magnetic particles

    しかし、それでは、少し深くズームインしましょう​​と これらの磁性粒子がどこにあるかを参照してください。

  • and how are we're getting at them.

    そして、どのように我々は彼らを取得していますされています。

  • >> [VIDEO PLAYBACK]

    >> [ビデオ再生]

  • >> -Let's look at what we just saw in slow motion.

    >> 私たちに-LEtの外観 ちょうどスローモーションで見ました。

  • When a brief pulse of electricity is sent to the read/write head,

    ときに電気の短いパルス 読み取り/書き込みヘッドに送られ、

  • it flips on a tiny electromagnetic for a fraction of a second.

    それは小さい電磁にフリップ ほんの一瞬のために。

  • The magnet creates a field, which changes

    磁石が作成されます 変更するフィールド、

  • the polarity of a tiny, tiny portion of the metal particles

    小さな、小さなの極性 金属粒子の部分

  • which coat each platter's surface.

    そのコート各プラッタの表面。

  • A pattern series of these tiny charged up areas on the disk

    これらの小さなパターンシリーズ ディスク上のチャージアップ領域

  • represents a single bit of data in the binary number system used by computers.

    データの単一ビットを表します コンピュータで使用される二進数システム。

  • >> Now, if the current is sent one way through the read/write head,

    >> さて、現在は1に送られた場合 読み取り/書き込みヘッドを介し方法、

  • the area is polarized in one direction.

    領域は、一方向に偏光されます。

  • If the current is sent in the opposite direction,

    現在はに送信された場合 反対方向、

  • the polarization is reversed.

    分極が反転します。

  • How do you get data off the hard disk?

    どのようにハードディスクからデータを取得するのですか?

  • Just reverse the process.

    ただ、プロセスを逆にします。

  • So it's the particles on the disk that get the current

    だから、上の粒子です 電流を得るディスク

  • in the read/write head moving.

    読み取り/書き込みヘッドに移動します。

  • Put together millions of these magnetized segments,

    一緒に数百万を入れて これらの磁化のセグメント、

  • and you've got a file.

    あなたがファイルを持っています。

  • >> Now, the pieces of a single file may be scattered all over a drive's platters,

    >> 今、単一のファイルの断片であってもよいです すべてのドライブのプラッタに散らばって、

  • kind of like the mess of papers on your desk.

    種類の混乱など あなたの机の上に書類の。

  • So a special extra file keeps track of where everything is.

    だから、特別な余分なファイルが保持します すべてがどこにあるのトラック。

  • Don't you wish you had something like that?

    あなたが持っていたくありません そんな感じ?

  • >> [END PLAYBACK]

    >> [END PLAYBACK]

  • >> So being alluded to there, perhaps, is that topic from yesterday of deletion.

    >> だから、おそらく、ですが、そこに示唆されています 削除の昨日からそのトピック。

  • When you delete a file, yesterday we said

    あなたが削除した場合 ファイル、昨日私たちが言いました

  • that a computer actually does what, when you drag something

    コンピュータは、実際にはないこと 何、あなたが何かをドラッグ

  • to the Recycle bin or trash bin?

    ごみ箱やゴミ箱へ?

  • It just forgets it.

    それはちょうどそれを忘れました。

  • But the 0's and 1's, the magnetic particles

    しかし、0と1、 磁粉

  • that look like red and blue things here, or my arm here,

    それは、赤と青のように見えます ここでは物事、またはここに私の腕、

  • are still there on the hard drive.

    ハードドライブ上に残っています。

  • >> And so there exists software-- Norton Utilities and Yesteryear

    >> それでsoftware--が存在します Nortonユーティリティと往年

  • and other more modern software-- that just

    および他のより近代的な そのsoftware--だけ

  • will scan a whole hard drive looking at all those 0's and 1's, because it

    探して全体のハードドライブをスキャンします これらすべての0年代と1の時、それ理由

  • turns out that most file formats-- Word documents, Excel files, images,

    判明しているほとんどのファイルのフォーマット - Word文書、Excelファイル、画像、

  • video files-- all have certain patterns that are common among them.

    すべてfiles--ビデオは、特定の持っています その中で共通している模様。

  • Every video file might be of a different video,

    すべてのビデオファイルかもしれません 別のビデオであっても、

  • but the first several bits are usually the same.

    しかし、最初の数を ビットは、通常は同じです。

  • Or the last several bits are usually the same.

    または最後の数ビット 通常は同じです。

  • >> And so with high probability, you can look for those patterns.

    >> そして、非常に高い確率で、 あなたはそれらのパターンを探すことができます。

  • And even if the file has been forgotten, you can say with high probability,

    そのファイルは、忘れてしまった場合でも、 あなたは、高い確率で言うことができます

  • but this looks like a Word document, lets recover it and un-forget it,

    しかしこれは、Word文書のように見えます それを回復し、それをアン忘れることができます、

  • if you will.

    可能ならば。

  • And so that's how you can recover data that's either been accidentally

    そしてそうそれはあなたが回復することができます方法です いずれかの偶然されていたデータ

  • deleted or deleted or deliberately deleted for whatever purposes.

    削除されたり削除されたり、意図的に どのような目的のために削除されました。

  • >> By contrast, secure deletion does what in the context of a picture like this?

    >> これとは対照的に、安全な削除は何を行います このような絵の文脈で?

  • Exactly, makes them all random.

    正確には、それらすべてがランダムになります。

  • So it sort of moves some of them down, some of them up,

    だから、一種の一部を移動させます それら上下それらのいくつか、

  • leaves some of them unchanged, and generally makes random noise out of it,

    それらのいくつかは変更されませんし、 一般的にそれのうちランダムノイズを行い、

  • or just maybe makes all of them 0's or all of them 1's.

    あるいはもしかしたらのすべてを作ります それらの0またはそれらの1のすべて。

  • And that too can generally scrub your data away.

    そして、あまりにも一般的にできること 離れてあなたのデータをスクラブ。

  • >> So let's return now to the issue of computational thinking, whereby

    >> それでは、問題に今戻りましょう 計算の考え方、それによっての

  • we have the formula inputs.

    私たちは式の入力を備えています。

  • And algorithms gives you outputs ultimately.

    そして、アルゴリズムが与え あなたが最終的に出力します。

  • We focus now on inputs and outputs, because now, I

    私たちは、入力に今焦点を当て、 出力、今ので、私

  • claim we have a way of representing inputs and outputs.

    請求我々はの方法を持っています 入力および出力を表します。

  • We're just going to use binary.

    私達はちょうどバイナリを使用するつもりです。

  • >> And no matter what we want to represent today,

    >> そして、どんなに私たち 今日表現したいです、

  • whether it's a number or a letter or thousands thereof in a phone book

    それは数字または文字のかどうか 電話帳でその千

  • or images or movies, at the end of the day, it's all 0's and 1's.

    末尾の画像や動画、または 一日のために、それはすべて0と1をです。

  • And I claim that, even though this is a super simple world with just 0's

    そして、私もこのかかわらず、と主張しています ちょうど0で超簡単な世界であります

  • and 1's, we can build ourselves up.

    そして1の、我々は自分自身を構築することができます。

  • And we've seen one example of that with letters thus far.

    そして、我々はの一例を見てきました これまでの文字です。

  • >> So let's focus now on this middle ingredient, an algorithm.

    >> それでは、このようになりまし焦点を当ててみましょう 真ん中の成分、アルゴリズム。

  • And let's return to this example of Mike Smith.

    とのは、これに戻りましょう マイク・スミスの例。

  • So in this phone book, which admittedly, we don't use so much anymore,

    だから、確かにこの電話帳、中、 私たちはもうあまり使用しないでください、

  • there's a problem to be solved.

    解決すべき問題があります。

  • We want to find someone like Mike Smith.

    私たちは、マイク・スミスのような人を見つけたいです。

  • >> And what might I do to find Mike?

    >> そして、私はマイクを見つけるために何をするのでしょうか?

  • Well, I could just open up this book, start at the first page,

    まあ、私はちょうどこれを開くことができます この本は、最初のページから開始します

  • and realize, oh, I'm in the A section.

    そして、実感、ああ、私はAセクションにいますよ。

  • Mike's not there.

    マイクはありません。

  • I need the S section for Smith.

    私はスミスのためのSセクションを必要としています。

  • So just keep turning one page at a time.

    だから一度に1ページをめくる保ちます。

  • Let me pretend that this is all white pages and not yellow pages,

    私はこれがすべてであることをふりをしてみましょう ホワイトページとイエローページではなく、

  • because we're not going to find Mike in the yellow pages anyway.

    我々は見つけるつもりはないので、 とにかくイエローページでマイク。

  • But I'm in the white pages.

    しかし、私はホワイトページにいますよ。

  • And now, I'm in the B section.

    そして今、私はBセクションにいますよ。

  • I still haven't found him.

    私はまだ彼を見つけていません。

  • So I keep turning one page at a time.

    だから私は一度に1ページをめくる保ちます。

  • >> This is an algorithm.

    >> これはアルゴリズムです。

  • It's a set of instructions for solving some problem.

    これは、命令のセットです いくつかの問題を解決します。

  • In other words, look at page, if Mike's not on it,

    言い換えれば、見て ページ、マイクはそれではない場合は、

  • turn page, and repeats again and again and again,

    ページをめくると、繰り返し 何度も何度も何度も、

  • ideally looking down as you're doing it.

    あなたがそれをやっているように、理想的に見下ろしています。

  • So is this algorithm, this process, correct?

    したがって、このアルゴリズムは、 このプロセスは、正しいですか?

  • >> Sorry.

    >> ごめんなさい。

  • No, I hear some nos.

    いいえ、私はいくつかのNOSを聞きます。

  • OK, but it is-- yeah, it's certainly tedious.

    OK、それはええis--、 それは確かに面倒です。

  • Like, we'll be here all day if I keep looking for Mike at this speed.

    私場合と同様に、我々はここにすべての日になるでしょう この速度でマイクを探し続けます。

  • But let me claim it's correct.

    しかし、私はそれが正しいだと主張しましょう​​。

  • It's stupid, but it's correct.

    それは愚かだが、それは正しいです。

  • >> At the end of the day, long as it might take, I will find Mike if he's in there

    >> 一日の終わりには、長い間、それがかもしれないとして、 彼がそこにいた場合、私はマイクを見つけるだろう、取ります

  • and I'm paying attention.

    そして、私は注意を払っています。

  • And I eventually reach his page.

    そして、私は最終的に彼のページに到達します。

  • And if I get too far, if I get to the T section,

    そして、私はあまりにも遠く取得する場合、場合 私はTのセクションを取得し、

  • then I can slightly optimize and just say, hm, all done.

    その後、私は少し最適化することができます そして、だけ言って、HM、すべて完了。

  • I don't even need to waste time going to the Z's.

    私も無駄にする必要はありません。 Zさんに行く時間。

  • But this is a very linear approach, if you

    しかし、これは非常にあります よろしければ線形アプローチ、

  • will, a very sort of left-to-right approach, a straight line.

    、非常にソートの左から右になります アプローチ、直線。

  • And its correct but slow.

    そして、その正しいが、遅いです。

  • >> So I remember from grade school, sort of an optimization from a first grader,

    >> だから私は、ソート、小学校から覚えています 一年生から最適化、

  • where I learned how to count not by ones but by twos-- so 2, 4, 6.

    私はしませんカウントする方法を学んだところ ものではなく、twos--ので2​​、4、6による。

  • It's A, lot harder to do, but in theory, it's

    それは多くの困難に、です 行うが、理論的には、それはです

  • faster-- 8, 10, 12, 14, and so forth.

    faster-- 8、10、12、14、など。

  • How about that algorithm?

    どのようにそのアルゴリズムは?

  • Is it more efficient?

    それは、より効率的ですか?

  • Is it faster?

    それは速いですか?

  • >> AUDIENCE: It's efficient.

    >> 観客:それは効率的です。

  • >> DAVID MALAN: Yeah, so it's def-- it's literally twice as fast, assuming I

    >> DAVIDマラン:うん、だからだdef--です 文字通り倍の速度、私を想定し

  • don't get tripped up with my fingers.

    私の指でアップトリップません。

  • It's twice as fast, because I'm turning through two

    ので、それは、二倍の速さです 私は2を介して回転してい

  • pages at once instead of one, but it's potentially in correct, because why?

    かつての代わりに1でページが、それはです 潜在的に正しいで、なぜ理由?

  • >> AUDIENCE: You're skipping some.

    >> 観客:あなたはいくつかをスキップしています。

  • DAVID MALAN: Right, what if Mike happens to be sandwiched-- maybe when I'm later

    DAVIDマラン:右、マイクが発生した場合どのような 私は後でだときに多分sandwiched--します

  • in the phone book, Mike happens to be sandwiched between these two pages,

    電話帳に、マイクがあることを起こります これらの2つのページの間に挟まれ、

  • and I just blindly skip over it.

    そして私はちょうど盲目的にそれをスキップ。

  • So we need a little fix there.

    だから我々はそこに少し修正が必要です。

  • Once I hit the T section, I can't just confidently say,

    私はTのセクションをヒットすると、I ただ自信を持って言うことができません、

  • we didn't find Mike Smith.

    我々はマイク・スミスを見つけられませんでした。

  • I probably have to double back.

    私はおそらく戻って倍増する必要があります。

  • Or in fact, once I reach someone named S-N, instead of S-M for Smith,

    または実際には、かつて私が誰かに届きます スミスのためのS-Nの代わりに、S-Mという名前の、

  • immediately, I could double back, because maybe he

    すぐに、私は倍増でした バック、多分彼のため

  • was on the previous page.

    前のページにありました。

  • >> But I don't have to double back far.

    >> しかし、私ははるかに戻って倍増する必要はありません。

  • In theory, if I do it at the right time, I just go back one page.

    理論的には、私は右のそれを行う場合 時間は、私はちょうど1つ前のページに移動します。

  • So it's adding only one extra step.

    だから、それだけで1つの余分なステップを追加しています。

  • So I've gone twice as fast, but it cost me one extra page.

    だから私は、二倍の速行ってきました それは私に1つの余分なページを要しました。

  • But that feels like a net win.

    しかし、それはネットの勝利のように感じています。

  • >> But this is not how most people in this room would solve this problem.

    >> しかし、これはどのようにほとんどの人ではありません この部屋は、この問題を解決するだろう。

  • What would a typical person, maybe a few years ago do, to find Mike Smith?

    何多分、典型的な人でしょう 数年前にマイク・スミスを見つけるために、いますか?

  • Yeah, didn't find Mike.

    うん、マイクを見つけることができませんでした。

  • What do I do?

    私は何をしますか?

  • So get a little closer, but I do know-- what is true about a phone book?

    だから、少し近づくが、私はやります 電話帳について真であるものknow--?

  • AUDIENCE: It's sequential.

    観客:それはシーケンシャルです。

  • DAVID MALAN: It's sequential.

    DAVIDマラン:それはシーケンシャルです。

  • It's alphabetical.

    それはアルファベット順です。

  • And so if I'm in the M section, Mike is clearly to the right,

    そして、私はMセクションにいるそうだとすれば、 マイクは右に明らかにされ、

  • I can literally tear the problem in half--

    私は文字通り涙することができます half--で問題

  • it's usually easier than that-- tear the problem in half and throw it away,

    それはthat--涙よりも、通常は簡単です 問題半分にし、それを捨てて、

  • so that now, I have a problem that's no longer 1,000 pages-- that was hard,

    今、私はだ問題を抱えているように、 もはや千大変でしたpages--、

  • because I think I actually tore the phone book this time-- not

    私は私が実際に引き裂いたと思うので、 これがないtime--電話帳

  • 1,000 pages, but 500.

    1,000ページが、500。

  • >> So the problem is literally half as big.

    >> だから問題は、大きなとして文字通り半分です。

  • And that's pretty compelling, because with my previous algorithms, version

    そして、それはので、かなり魅力的です 私の以前のアルゴリズムと、バージョン

  • 1 and 2, I was only making the problem one page smaller, two pages smaller

    1と2、私が唯一の問題を作っていました 小さい1ページ、小さい方の2つのページ

  • at a time.

    一度に。

  • Whereas now, I made it 500 pages smaller all at once.

    今のに対し、私はそれを500製 一度にすべてのページに小さいです。

  • >> OK, so now, Karim proposes that I go to the right half.

    >> [OK]を、今、カリムは提案しています 私は右半分に行くこと。

  • So I'm going to go roughly to the middle, give or take.

    だから私は、大きく分けて行くつもりです 真ん中に、与えるか、または取ります。

  • And if I did this mathematically, I could go right to the middle.

    そして、私は数学的にこれをしなかった場合、 私は真ん中に右に行くことができます。

  • And now, I realize, oh, I'm in the T section.

    そして今、私は、ああ、実現します 私はTセクションにいますよ。

  • I actually did go too far.

    私は実際に行き過ぎました。

  • >> But I can, again, tear the problem in half, throw it away.

    >> しかし、私は、再び、引き裂くことができます 半分の問題は、それを捨てます。

  • And my bytes not as big.

    そして、私のバイトとして大きくはありません。

  • It's only, what, 256 pages or 250 pages, give or take right now.

    それだけで、何を、256ページや250です ページ、与えるか、または今取ります。

  • But it's still way more than one page or two pages.

    しかし、それはまだ道よります 1ページまたは2ページより。

  • >> And so now, I go roughly to the middle.

    >> そして今、私は真ん中にほぼ行きます。

  • Oh, I didn't go quite far enough now.

    ああ、私は今、非常に十分行きませんでした。

  • So I repeat, repeat, repeat, repeat, until I'm hopefully

    だから私は、繰り返し、繰り返し、繰り返し 私はうまくいけばよされるまで、繰り返し

  • left with just one page.

    1ページだけを残し。

  • >> So that invites the question, if I started with roughly 1,000 pages,

    >> だから場合は、質問を誘うI およそ1,000ページで開始し、

  • how many steps did it take me with version 1 of my algorithm?

    それは私を取るんでしたどのように多くのステップ 私のアルゴリズムのバージョン1と?

  • Well, if Mike is in the S section, in the worst case,

    まあ、マイクはSである場合 セクション、最悪の場合には、

  • that's pretty close to the end of the alphabet.

    それはにかなり近いです アルファベットの最後。

  • So if the phone book has 1,000 pages, I'll find Mike within 1,000 pages,

    電話帳は、1,000ページを持っているのであれば、 私は、1,000ページ内にマイクを見つけることができます

  • give or take.

    ギブオアテイク。

  • Maybe it's like 800 or so, but it's pretty close to 1,000.

    多分それは800かそこらのようなものだが、 それは千にかなり近いです。

  • >> Whereas, in the second algorithm, how many

    >> 一方、第二中 アルゴリズム、どのように多くの

  • page turns maximally might I require to find Mike Smith?

    ページには、私がかもしれ最大限になります マイク・スミスを探すために必要な?

  • There's 1,000 pages, but I'm doing them two at a time.

    そこ1,000ページですが、私はよ 一度に2をやって。

  • Right, so max like 500ish, because if I go through the whole phone book,

    右、なぜなら、500ishのような最大ので、 私は、全体の電話帳を通って行けば、

  • at which point, I can stop.

    その時点で、私は停止することができます。

  • But I can shave off a few by just stopping at the T section.

    しかし、私はによっていくつかをオフに剃ることができます ちょうどTセクションで停止。

  • But it's at worst case 500 pages.

    しかし、それは最悪の場合500ページにあります。

  • >> So how many times can I divide a 1,00o-page phone book in half again

    >> だから何回私は分割することができます 再び半分に1,00oページの電話帳

  • and again and again-- from 1,000 to 500 to 250 to 125?

    そして再びagain--から 125から250に500千?

  • How long before I hit one page?

    どのくらい私は1つのページをヒットする前に?

  • Yeah, it's about 10.

    うん、それは約10です。

  • Depending on rounding and such, it's about 10 pages total need to be turned

    丸めなどに応じて、それはです 合計必要が投入される約10ページ

  • or phone books need to be torn.

    または電話帳を引き裂かする必要があります。

  • >> So that's pretty powerful.

    >> だから、かなり強力です。

  • We started with a 1,000-page problem in all three of these stories.

    私たちは、千ページの問題で開始しました これらの物語のすべての3インチ

  • But in the first algorithm, it took me, worst case, 1,000 page

    しかし、最初のアルゴリズムで、それ 連れて行ってくれた、最悪の場合、千ページ

  • turns to find Mike.

    マイクを見つけることになります。

  • Second algorithm, 500 pages to find Mike.

    第2のアルゴリズム、500 マイクを見つけるためのページ。

  • Third algorithm, 10 pages to find Mike.

    第3のアルゴリズム、マイクを見つけるために10ページ。

  • And it's even more powerful when you think

    そして、それはさらにです 強力なあなたが考えるとき

  • about sort of an opposite scenario.

    反対側のシナリオの種類について。

  • Suppose that the phone company next year maybe merges two towns together,

    電話会社は、次のことを仮定 今年は多分、一緒に2つの町を併合します

  • and the phone book is suddenly this thick, instead of this that,

    そして、電話帳が突然です 代わりに、このことの、この厚いです、

  • so 2,000 pages instead of 1,000.

    そのように2000ページの代わりに、千。

  • Well, my first algorithm looking for Mike Smith in a 2,000-page phone book,

    さて、私の最初のアルゴリズムが探して 2000ページの電話帳でマイク・スミス、

  • worse case, it's going to take how many page turns next year?

    最悪の場合、取るつもりです 来年どのように多くのページになりますか?

  • >> Phone book is 2,000 pages, so-- well, not one more.

    >> 電話帳は、2,000ページです so--よく、ないもう一つ。

  • If the phone book is twice as thick in the first algorithm, first algorithm,

    電話帳には2倍のように厚い場合 最初のアルゴリズム、最初のアルゴリズム、

  • 2,000, right?

    2000、右か?

  • In the worst case, Mike is really close to the end of the book,

    最悪の場合、マイクは本当にです 本の最後に近く、

  • so it's 2,000 page turns.

    それは、2000ページのターンです。

  • Second algorithm going by twos, like 1,000 pages.

    で行く第2のアルゴリズム 補数、1,000ページなど。

  • >> But how about in my third and most recent algorithm?

    >> しかし、どのように私の第三では約 最も最近のアルゴリズム?

  • If the phone company doubles the number of pages from 1,000 to 2,000,

    電話会社が倍増した場合 1,000〜2,000ページ数、

  • how many more times need I tear that book in half to find Mike?

    私は涙何回必要 半分にその本は、マイクを見つけるには?

  • >> AUDIENCE: Just one.

    >> AUDIENCE:ちょうど1。

  • >> DAVID MALAN: Just one more, because with one page tear,

    >> DAVIDマラン:ちょうど1より、 1ページの涙であるため、

  • I can literally divide and conquer, if you will,

    私は、文字通り分割することができます あなたは意志た場合や、征服、

  • that problem in half taking a massive bite out of it.

    半分撮影でその問題 それのうち大規模な一口。

  • And so this is an example of efficiency and arguably an algorithm

    そして、これは一例です 間違いなく効率とアルゴリズム

  • with which all of us are sort of intuitively familiar.

    これで私たちのすべては、 直感的におなじみの一種。

  • But it's just as correct as my other algorithms

    しかし、それは同じように正しいです 私の他のアルゴリズムとして、

  • with that tweak for the second algorithm,

    その微調整のためにと 第2のアルゴリズム、

  • but it's so much more efficient.

    それはとてもはるかに効率的です。

  • >> And in fact, what a computer scientist, or in turn a programmer,

    >> そして、実際には、どのようなコンピュータ 科学者、または順番にプログラマ、

  • would typically do when writing code is try to figure out,

    書き込み時に一般的に行うだろう コー​​ドは把握しようとしています、

  • all right, I don't want my program just to be correct,

    すべての権利、私はしたくありません ちょうど正しいことするためのプログラム、

  • I also want it to be efficient and solve problems well.

    私もそれが効率的になりたいです よく問題を解決します。

  • Imagine in the real world today, like Google indexes, searches

    今日の現実の世界で想像し、 Googleのインデックス、検索のような

  • like billions of pages, imagine if they used the first algorithm to find cats

    彼らならば数十億のページのように、想像 猫を見つけるために、最初のアルゴリズムを使用

  • among a billion pages-- looking at the first page in their database,

    見pages--億のうち、 そのデータベースの最初のページ、

  • the second, the third, just looking for a cat, looking for a cat.

    第二、第三、見ているだけ 猫のために、猫を探しています。

  • That's pretty darn slow it would seem.

    すなわち、それは思わかなりくそ遅いです。

  • They could instead use something called binary search, which

    彼らは代わりに何かを使用することができます これは、バイナリサーチと呼ばれます

  • is no coincidence-- bi meaning two, we keep dividing something in 2, in half--

    2を意味しな​​いcoincidence-- biは、我々は、ありません half--で、2で何かを分割しておきます

  • they could use binary search and maybe find cats even faster,

    彼らはバイナリ検索を使用することができます そしておそらく、さらに高速の猫を見つけます

  • or whatever it is you're searching for.

    または何でもそれはあなたが探しているです。

  • >> And frankly, there's even fancier algorithms

    >> そして率直に言って、あります でも愛好家のアルゴリズム

  • that do much more than just dividing things in half

    それはちょうどよりもはるかに多くを行います 半分に物事を分割します

  • in order to find information quickly.

    順序で情報をすばやく見つけることができます。

  • And we'll talk a little bit about those after lunch today.

    そして、私たちは少し話をしましょう 昼食後、それらの今日は。

  • So let me just try to represent this.

    だから、私はちょうどこれを表現してみましょう。

  • We don't need to go into any math or actual numbers.

    私たちは、に行く必要はありません 任意の数学または実際の数値。

  • We can talk about this in the abstract.

    私たちは、抽象的にこのことについて話すことができます。

  • >> But let me just propose, if you were having a discussion now

    >> あなたなら、私はちょうど提案してみましょう 今の議論を持ちました

  • with the engineers proposing this algorithm

    エンジニアと このアルゴリズムを提案

  • and you're trying to make a calculated decision,

    あなたが作るしようとしています 計算された意思決定、

  • because maybe the engineer says to you, you

    多分理由 エンジニアはあなたが、あなたに言います

  • know what, I can implement a linear search in like two minutes.

    私が実装することができるか、知っています 2分などに線形探索。

  • It's that easy.

    ただそれだけのことです。

  • Binary search is not that fancy, but it's going to take me like 10 minutes,

    バイナリサーチは、空想ではありませんが、 10分のように私を取るために起こっています

  • so 5 times as long.

    そう5回限り。

  • >> There's a trade here, even in terms of deciding what software to write.

    >> 貿易があっても用語で、ここにあります 書くためにどのようなソフトウェアを決定します。

  • Do you write the simpler algorithm, which will just take you two minutes?

    あなたは単純なアルゴリズムを書きますか、 これは、ちょうどあなたに2分かかりますか?

  • Or do you spend more time, 10 minutes, writing the fancier algorithm?

    それとも、より多くの時間を過ごしています、10分、 手の込んだアルゴリズムを書きますか?

  • How do you decide that kind of question?

    どのように質問のようなものを決めるのですか?

  • Or you could make it a little more real.

    それとも、それはもう少し本当の作ることができます。

  • I tell my boss it's going to take me either one week or 10 weeks

    私はそれを取るために起こっている私の上司に伝えます 私のいずれか1週間または10週間

  • to implement the software in this way, how

    実装します このようにソフトウェアを、どのように

  • do you decide which algorithm to green-light?

    あなたはどの決めるん 緑色光にアルゴリズム?

  • Karim?

    カリム?

  • >> AUDIENCE: The audience, I guess.

    >> 聴衆:観客、私は推測します。

  • >> DAVID MALAN: The audience.

    >> DAVIDマラン:観客。

  • What do you mean by the audience?

    あなたは視聴者が何を意味するのですか?

  • >> AUDIENCE: If it's going to be used by users

    >> 観客:それが起こっている場合 ユーザが使用します

  • who [INAUDIBLE] by users [INAUDIBLE].

    誰[聞こえない]ユーザーが[聞こえません]。

  • But if it's something you're just doing for yourself

    しかし、それはあなたがしている何かあれば 自分だけのためにやって

  • to facilitate a problem, [INAUDIBLE] quicker.

    問題を容易にするために、 [聞こえない]より速く。

  • DAVID MALAN: Yeah, it's quick and dirty is a good way to describe it.

    DAVIDマラン:うん、それは迅速だと 汚い、それを記述するための良い方法です。

  • In fact, if you're describing much of my time

    実際には、あなたがしている場合 私の時間の多くを記述する

  • in grad school, whereby often times, I wrote bad code consciously so--

    大学院で、これにより、しばしば、 私は意識的に不正なコードを書きましたso--

  • at least, that's how I rationalized it-- consciously so,

    少なくとも、それがどのように私です 意識的にそうit--を合理化し、

  • because even though I was writing code that was relatively slow to execute,

    なぜなら私は、コードを書いていたにもかかわらず、 それは、実行するのが比較的遅かったです

  • I was able to write the code itself pretty fast, spending just minutes

    私は、コード自体を記述することができました わずか数分を費やして、かなり速いです

  • or hours not days.

    または時間ない日。

  • And it turned out, I occasionally needed to sleep.

    そして、それは私が、判明しました たまに寝する必要がありました。

  • So even if my code required 8 hours to run, well that's fine,

    だから私のコードは、8を必要とした場合でも、 実行するための時間、それは大丈夫ですだけでなく、

  • I'll just go to sleep while it runs.

    私はちょうどそれが実行中にスリープ状態に行きますよ。

  • >> So at the time, I thought this was very clever, even though I apparently

    >> だから一度、私はこれはと思いました でも、私は明らかにかかわらず、非常に賢いです

  • worked through my PhD very slowly.

    非常にゆっくりと私の博士号を通って働きました。

  • But the converse of that is that, if I were writing software

    しかし、その逆はあります つまり、私が書いていた場合は、ソフトウェア

  • for other people who mattered more than me, well,

    他の人のための人 、よく、私よりももっと大事

  • having them wait 8 hours to get back their search results

    それらを持つことへの8時間待ちます その検索結果を取り戻します

  • is not all that compelling.

    すべてが魅力的ではありません。

  • And so spending more time up front to write software

    そして、そのように多くの時間を費やし ソフトウェアを書くために、フロントアップ

  • that is more efficient, more like our third algorithm,

    それは、より多くの、より効率的です 私たちの第3のアルゴリズムのように、

  • probably benefits the users over time.

    おそらく、時間をかけてユーザーに利益をもたらします。

  • So it really depends over time how those costs add up.

    だから、本当にオーバー依存します 時間は、これらのコストはどのようにを追加します。

  • If you're going to be writing software to use it once,

    あなたが書くことにするつもりなら 一度それを使用するためのソフトウェア、

  • probably might as well do quick and dirty, as they say.

    おそらく同様に行う可能性があります 彼らが言うように、迅速かつ汚いです。

  • Just throw it together.

    ただ、それを一緒に投げます。

  • It's code that embarrasses you, it's so bad,

    それは困るコードです あなた、それはとても悪いです、

  • but it gets the job done correctly, even though it's not efficient.

    しかし、それは正しく仕事を取得し、 にもかかわらず、それは効率的ではありません。

  • Conversely, you spend more time on something, get it just right.

    逆に、あなたはより多くの時間を費やします 何かに、それだけで権利を取得。

  • And then amortized over time, that upfront cost of time

    そして、時間をかけて償却 時間の初期費用

  • is probably worthwhile, if you keep optimizing for the common case.

    あなたが続ければ、おそらく価値があります 一般的なケースのために最適化します。

  • >> And indeed, that's a theme in programming, or computer science more

    >> そして実際、それは内のテーマです プログラミング、またはコンピュータサイエンスより

  • generally, trying to optimize not for the uncommon case

    一般に、最適化しようと 珍しくない場合について

  • but the common case-- what operation is going to happen again and again?

    しかし、どのような操作の共通case-- 何度も何度も起こるだろうか?

  • If you're going to have billions of users searching on your website,

    あなたは十億を持っているつもりなら あなたのウェブサイト上で検索するユーザーの、

  • you should probably spend the extra weeks up front writing better software,

    おそらく余分を費やす必要があります アップフロントより良いソフトウェアを書く週間、

  • so that all of your users benefit.

    すべてのユーザーが利益を得るようにします。

  • Now, let's try to capture this a little pictorially, but not so much

    さて、このAをキャプチャしてみましょう 少し絵ではなく、そんなに

  • numerically.

    数値。

  • >> So here's just an old school chart.

    >> だからここだけの古い学校のチャートです。

  • And let me say that this is time.

    そして、私はこれが時間であることとしましょう​​。

  • And it doesn't matter what-- actually, no, not time.

    そして、それはwhat--問題ではありません。 実際には、いや、ない時間。

  • Let's put that on the other axis.

    それでは、他の軸上にそれを置いてみましょう。

  • Let's say that this is the time, and this is size of problem.

    それでは、これは時間であることとしましょう​​、 これは、問題の大きさです。

  • >> And a computer scientist might generally call

    >> そして、コンピューター科学者 一般的に呼ぶかもしれません

  • this just n. n is like our go-to variable, where

    このちょうどn個。 nが似ています 当社のゴーへの変数、

  • n is a number, n number, and it's the number of whatever inputs you have.

    nが数nの数であり、それはです あなたが持っているものは何でも入力の数。

  • So in this case, n is the number of pages.

    したがって、この場合、nは ページ数。

  • So it might be 1,000 in the case we just told.

    だから、1,000かもしれません 場合は、私たちは語りました。

  • >> So time can be any unit of measure.

    >> だから時間は、メジャーのいずれかの単位とすることができます。

  • Maybe, it's second.

    たぶん、それは第二のです。

  • Maybe, it's days.

    たぶん、それは日です。

  • Maybe, it's like page turns.

    たぶん、それはページターンのようなものです。

  • Doesn't matter.

    関係ない。

  • Whatever you want to count in, that will be time or cost equivalently.

    あなたがいること、でカウントするようにしたいものは何でも 等価的に時間やコストになります。

  • >> So with that very first algorithm, if I, for instance,

    >> それとだから、非常に最初の アルゴリズム、私の場合、例えば、

  • had a 1,000-page phone book, I'm going to draw a dot there,

    千ページの電話帳を持っていました、 私は、そこにドットを描画するつもりです

  • because if it's 1,000 pages, it took roughly 1,000 page turns, give or take.

    それが1,000ページだ場​​合、それがかかったので、 およそ千ページが与えるか、または取る、になります。

  • And then if I had a 2,000-page phone book,

    そして、私が持っていた場合 2000ページの電話帳、

  • and I'm going to draw a second dot here, because for 2,000 pages,

    そして、私は2番目を引くつもりです なぜなら2000ページのために、ここではドット、

  • it's like 2,000 seconds or page turns or whatever.

    それが2000秒のようなものです またはページがオンまたはものは何でも。

  • And so when I said earlier, it's kind of a linear relationship,

    それで、私が以前に言ったとき、それはです 直線関係の種類、

  • that was deliberate, because I wanted later on-- right now-- to draw a line.

    私が望んでいたので、それは、意図的でした 後で線を描画する権利now-- on--。

  • It's kind of a straight line relationship.

    それはストレートのようなものです ライン関係。

  • The slope is 1/1, if you will.

    あなたがする場合は傾きが、1月1日です。

  • >> Meanwhile, the second algorithm said, if you've got 1,000 pages

    >> 一方、第2のアルゴリズム あなたは1,000ページを持っている場合は、言いました

  • and you were using the second algorithm, where I counted by 2's, turning

    あなたは第2のアルゴリズムを使用していました、 私は2のによってカウントところ、ターニング

  • two pages at a time, should I draw a dot below or above my original dot?

    一度に2つのページ、私が描くべき 私のオリジナルドット以下または上記ドット?

  • >> AUDIENCE: Below.

    >> AUDIENCE:以下。

  • >> DAVID MALAN: Below, because as we saw, it takes less time, half as much time.

    >> DAVIDマラン:以下、我々が見たようにので、 それは多くの時間のように短い時間、半分がかかります。

  • So the dot should be half as high as the other.

    だから、ドットが半分であるべき 他と高いです。

  • And same deal over here, this dot should probably be roughly there.

    こっちと同じ取引、このドット おそらく大体があるはずです。

  • And so my second algorithm, similarly, has a linear relationship with time.

    だから、私の第2のアルゴリズム、同様に、 時間とともに線形の関係を有します。

  • And we can draw it as such.

    そして、我々はそのように描くことができます。

  • >> So now, the third and final algorithm is a little harder to draw.

    >> だから今、3番目と最後の このアルゴリズムは、描画には少し難しいです。

  • But intuitively, if I've got 1,000 pages with my third algorithm,

    しかし、直感的に、私は千を持っている場合 私の第3のアルゴリズムを使用したページ、

  • it should only take me like 10 steps.

    それが唯一の10のステップのように私を取る必要があります。

  • And if I've got 2,000 pages with my third algorithm,

    そして、私は2000ページを持っている場合 私の第3のアルゴリズムと、

  • it should take me not 10 steps, but 11, just one more.

    それは私にはない10を取る必要があります ステップが、11、もう一つだけ。

  • So we're only barely going to see this.

    だから我々はかろうじてこれを参照するつもりです。

  • >> And it turns out, if I zoom in on this, I'm

    >> そして、それは場合は、判明します 私は、私は、この上にズームイン

  • going to exaggerate for effect, the shape of that line, ultimately,

    効果を誇張するつもりは、 その線の形状、最終的に、

  • is not a straight line-- because, indeed if it were,

    ストレートline--ではありません それがあった確かにあれば、なぜなら、

  • it would look more like the others-- it's actually a curved line

    それはより多くのようになります。 それは実際には曲線ですothers--

  • that, if we zoom in, is going to look much more like this.

    我々はズームイン場合には、起こっています ずっとこのように見えます。

  • It-- well, OK, ignore this part.

    よくIt--、[OK]を、この部分を無視します。

  • That was my pen going of angle.

    それは私のペンは角度のつもりでした。

  • It's a curved line that is always increasing, always, always, always

    それは常にある曲線です いつも、いつも、いつも、増加

  • increasing, but only just barely.

    増加が、唯一かろうじて。

  • >> And so over time, you have a relationship that's more like this.

    >> そして、そのように時間をかけて、あなたが持っています このようなより多くのです関係。

  • It almost looks straight.

    それはほとんどまっすぐに見えます。

  • But it's ever so slowly increasing.

    しかし、それは今までとてもゆっくりと増加します。

  • But for almost all points along your x-axis, horizontal axis,

    しかし、ほとんどすべてのポイントのために沿って あなたのx軸、横軸、

  • it's lower than those other lines.

    それはそれらの他のラインよりも低いです。

  • >> So this might be a relationship n, whereby if you have n pages,

    >> だから、これは関係あるかもしれません nは、それによってあなたがnページを持っている場合、

  • takes you n seconds.

    あなたのn秒かかります。

  • This might be a relationship n/2.

    これは、関係のn / 2であるかもしれません。

  • You have n pages, it takes you n/2 seconds, half as many.

    あなたはnページを持って、それが取ります あなたのn / 2秒、などの多くの半分。

  • And this is a logarithmic relationship, which

    そして、これは対数的です 関係、これ

  • if you recall, log base 2 of n captures this kind of growth, so to speak.

    あなたが思い出すならば、n個のキャプチャのベース2を記録 成長のこのような、いわば。

  • So this is the sort of holy grail among the three of these

    だから、これは神聖なの一種であります これらの3の中で聖杯

  • here, because it's just so much more efficient, but arguably more complex

    ここでは、それだけで以前よりもずっとだから 効率的な、しかし間違いなく、より複雑な

  • to implement.

    実装します。

  • Any questions?

    質問は?

  • >> Well let me do this, let me open up a text window

    >> まあ、私はこれを行う、聞かせてみましょう 私は、テキストウィンドウを開きます

  • just so we can try to formalize something here.

    ちょうど私たちがしようとすることができます ここで何かを正式。

  • So let me go ahead now and implement this algorithm

    だから私は今、先に行くとしましょう このアルゴリズムを実装します

  • for finding Mike Smith in code, if you will, pseudocode code.

    コー​​ド内のマイク・スミスを見つけるための、 可能ならば、擬似コードコード。

  • I'm not going to use Java or C++.

    私は、JavaやC ++を使用するつもりはありません。

  • I'm just going to use sort of English-like syntax, which we

    私は、ソートの使用するつもりです 私たちの英語のような構文、

  • would generally call pseudocode code.

    一般的に擬似コードのコードを呼び出します。

  • Here, I have a blank window.

    ここで、私は空のウィンドウを持っています。

  • And I'm saying step 1 of the very first algorithm is pick up phone book.

    そして、私は非常にのステップ1を言っています 最初のアルゴリズムは、電話帳をピックアップです。

  • Step 2 is open book to first page.

    ステップ2は、最初のページに開いた本です。

  • Step 3 will be look at page for Mike Smith.

    ステップ3を見ます マイク・スミスのためのページです。

  • If on page, call Mike.

    ページの場合は、マイクを呼び出します。

  • else turn page and go to step 3.

    他のページをめくると、手順3に進みます。

  • Done, let's say.

    完了、の言わせて。

  • >> And so it's not quite perfect, which we'll see in a moment.

    >> そしてそれは非常に完璧ではあり​​ません、 これは私たちが一瞬で表示されます。

  • But let's consider what concepts I've introduced here.

    しかし、ここでは何を考えてみましょう 私がここで紹介してきた概念。

  • So steps 1 and 2 and 3 are pretty much verbs.

    そう1,2及び3ステップ かなり多くの動詞があります。

  • They're statements, actions-- do this.

    彼らは声明をしている、actions--これを行います。

  • And so in a programming language, we would generally

    そして、そのようにプログラミングで 言語、我々は一般的だろう

  • call them statements or functions or procedures,

    彼らにステートメントを呼び出しますか、 ファンクションまたはプロシージャ、

  • call them any number of things.

    物事の任意の数のそれらを呼び出します。

  • But they're just actions-- do this.

    しかし、彼らはこれを行うactions--だけです。

  • >> Step 4 is fundamentally different, because it's kind of asking a question.

    >> ステップ4は、根本的に異なっています なぜなら、それは質問をするようなものです。

  • It's saying we're kind of at a fork in the road.

    我々が親切だと言っています 道路の分岐点での。

  • If Mike is on the page, call him, so turn left, if you will.

    マイクがページ上にある場合は、呼び出し 彼ので、あなたがする場合は、左折。

  • And if not, go back to some other page-- or rather, sorry,

    そうでない場合、戻っていくつかに行きます その他当ページ - というか、申し訳ありませんが、

  • go back to some other step, which induces some kind of looping construct.

    これは、他のいくつかのステップに戻ります ループ構文のいくつかの種類を誘導します。

  • And we do it again and again and again.

    そして、私たちは何度も何度も何度もそれを行います。

  • >> And actually, you know what?

    >> そして実際に、あなたは何を知っていますか?

  • Yeah.

    うん。

  • else if at end of book stop.

    他の書籍停止の終わりにあれば。

  • So we need kind of a third condition, because you

    だから我々は第三の種類を必要とします 条件、あなたのために

  • can't keep turning the page ad nauseum, because eventually, I'll

    ページの広告を回す維持することはできません nauseum、最終的に、私はだろうから

  • hit the end of the book.

    本の最後にヒット。

  • And a bug in a program might be not anticipating that scenario.

    そして、プログラムにバグがあるかもしれません そのシナリオを予想していません。

  • And then I just realized, oh, wait a minute, I need a third scenario.

    そして私はちょうどああ、待って、実現しました 分は、私が第3のシナリオが必要です。

  • If I'm out of pages, I should really just stop.

    私は、ページのうちだ場合は、I 本当にただ停止する必要があります。

  • Otherwise, it's undefined.

    それ以外の場合は未定義です。

  • What's going to happen if I keep saying turn the page and go back,

    何が私が続ければ起こるだろう ページをめくると戻って言って、

  • this is when computers freeze or crash, when you hit

    これは、ときにコンピュータであります あなたが打ったとき、フリーズやクラッシュ

  • some unanticipated situation like that.

    そのようないくつかの予期せぬ事態。

  • >> Now, what about Mike Smith's third algorithm--

    >> さて、どのようなマイクについて スミスの第三algorithm--

  • pick up the phone book, open book to first-- to

    電話帳をピックアップし、 にfirst--する開いた本

  • no, not first page this time, to middle-- oh, well, that'd

    いや、ない最初のページこの時、 だろうと、よく、ああmiddle--します

  • be the second algorithm.

    第2のアルゴリズムです。

  • Let's just skip to the third.

    ちょうど第三にスキップしてみましょう。

  • >> AUDIENCE: Oh, I'm sorry.

    >> 聴衆:ああ、すみません。

  • >> DAVID MALAN: That's fine.

    >> DAVIDマラン:それは結構です。

  • Let's just skip to the third-- open to middle and now look for Mike Smith.

    ちょうどthird--オープンにスキップしてみましょう 真ん中に、今マイク・スミスを探します。

  • if on page, call Mike.

    ページの場合は、マイクを呼び出します。

  • And then what do we want to say here?

    そして、私たちがここで言いたいのですか?

  • else what?

    他に何?

  • We can express this in any number of ways.

    私たちは、これを表現することができます 任意の数の方法インチ

  • There's no right answer.

    全く正しい答えはありません。

  • OK, if not again, but we need to be-- OK, we do want to divide in two,

    [OK]を、そうでない場合は、もう一度、私たちのようにする必要があり be-- OK、我々は、二つに分割したいん

  • but do we want to go left or go right?

    私たちは、左に行くか右に行きたいですか?

  • How do we express that notion?

    どのように我々はその概念を表現するのですか?

  • Well, in Mike's case, yes, that's fair.

    まあ、マイクの場合には、はい、それは公正です。

  • But OK, so that's actually a good point.

    しかし、[OK]を、ので、それは実際には良い点です。

  • That's fine.

    それはいいです。

  • We'll keep going with this logic.

    私たちは、このロジックと一緒に行くしておこう。

  • So--

    そう -

  • >> AUDIENCE: Less than half.

    >> AUDIENCE:半分以下。

  • DAVID MALAN: Yeah.

    DAVIDマラン:うん。

  • So else if page is, we'll say, less than Smith, to the left of Smith,

    だから、他のページがある場合、我々は少ない、と言うでしょう スミスより、スミスの左側に、

  • then-- let's see, is this going to complicate?

    見てみましょうthen--、あります この複雑にするつもり?

  • else if page comes before Smith, tear in half, throw away which half?

    他のページには、スミスの前に来る場合、 その半分を捨てて、半分に涙?

  • >> AUDIENCE: I thought that was [INAUDIBLE].

    >> 聴衆:私は思いました それは、[聞こえない]でした。

  • >> DAVID MALAN: I'm hearing both answers.

    >> DAVIDマラン:私は答えの両方を聞いています。

  • >> AUDIENCE: Left.

    >> AUDIENCE:左。

  • DAVID MALAN: OK, throw away left half, as Lakisa

    DAVIDマラン:OK、投げます 離れLakisaとして、左半分

  • said earlier, the left half, then I kind of

    左は、以前に述べました その後、半分、種類のI

  • want to just go to-- I go to the right.

    ちょうど私が右に行くto--行きたいです。

  • Or equivalently, and I made a little bit of a mess of the beginning here,

    または同等に、と私は少しを作りました ここで最初の混乱のビット、

  • I effectively want to go to step 2 again,

    私は効果的にしたいです もう一度手順2に進み、

  • where open to the middle-- or open-- yeah, let's just say, pages to middle.

    ここで、オープンmiddle--またはopen--へ ええ、ちょうど真ん中にページ、と言うのを聞かせて。

  • And this fixes it.

    そして、これはそれを修正します。

  • It's no longer a book.

    それはもはやブックません。

  • It's just half of a book, so open pages to middle.

    これは、本の半分だけです 真ん中に非常に開いているページ。

  • >> else-- were almost there.

    >> else--はほとんどありました。

  • Step 6, else if page comes after Smith, tear in half, throw away right half,

    ページがスミスの後に来る場合は、他のステップ6、 半分に引き裂く、離れて右半分を投げ、

  • then go to step 2.

    その後、ステップ2に進みます。

  • else quit, a fourth scenario if we have no pages left to turn.

    それ以外の場合は、第四のシナリオを終了します 我々がオンに残されたページがありません。

  • So we could clean this up.

    だから我々はこれをクリーンアップすることができます。

  • And we should clean this up.

    そして、我々はこれをクリーンアップする必要があります。

  • This is very pseudocode code, if you will, very high level description.

    これはあなたの場合、非常に擬似コードのコードです 意志、非常に高いレベルの記述。

  • But it does generally capture the idea.

    しかし、それは一般的なアイデアをキャプチャありません。

  • >> And, again, in this scenario, we have the notion of a condition,

    >> そして、再び、このシナリオでは、我々 条件の概念を持っています、

  • a branch, a fork in the road, making a decision-- if this, go this way,

    枝、道路の分岐点、作ります この場合decision--、この道を行きます、

  • else if, go this way, else if, go that way.

    それ以外の場合は、この道を行きます それ以外の場合は、その道を行きます。

  • And this is a very common programming technique

    そして、これは非常に一般的です プログラミング技術

  • to decide which direction to go, so to speak.

    どの方向決定します 行くために、いわば。

  • And we also have some kind of looping structure, where

    そして、我々はまた、いくつかの種類を持っています 構造をループの、どこに

  • we're doing something again and again.

    私たちは何度も何度も何かをやっています。

  • >> Now, it turns out, much as in this example,

    >> 今、それははるかに、判明します この例のように、

  • being super precise is important.

    超精密であることは重要です。

  • But we've also seen something that we keep calling abstraction.

    しかし、我々はまた、何かを見てきました 私たちは、抽象化を呼び出しておくこと。

  • What does it mean to pick up phone book?

    それは、電話帳をピックアップして何を意味するのでしょうか?

  • We're just kind of taking for granted in this room

    私達はちょうど種類の取っています この部屋に付与されたため

  • that that has some semantic meaning.

    それはいくつかの意味論的な意味を有します。

  • All of us just kind of know, oh, well, pick up the phone book.

    私たちのすべては、だけの種類の、ああ、知っています よく、電話帳をピックアップ。

  • What does that really mean?

    ことは、本当に何を意味するのでしょうか?

  • Well, that really means extend hand, lean over, extend fingers,

    まあ、それは本当に伸ばす意味します 手、指を伸ばす、身を乗り出します、

  • pinch book between fingers, stand up, pull hand towards you.

    指の間で本をつまんで、 あなたに向かって手を引っ張って、立ち上がります。

  • And we could be really pedantic about this,

    そして、私たちは本当に可能性があり これについての知識をひけらかします、

  • really being super precise as to what I'm doing.

    本当に超精密であること 私がやっているものになど。

  • But all of those steps collectively are what it means to pick up a phone book.

    しかし、これらのすべての手順をまとめています それは、電話帳をピックアップして何を意味するのか。

  • >> And so earlier, when I said, each of these first two statements

    >> それで以前、私が言ったときに、各 これらの最初の二つの文の

  • can be thought of as a proceed or a function,

    考えることができ 続行するか、または機能、

  • really it represents what we keep calling an abstraction.

    本当にそれが何を表すのか、私たち 抽象化を呼び出しておきます。

  • It's like a high level conceptual description of a problem that

    これは概念的な高レベルのようなものです その問題の説明

  • actually involves quite a few steps.

    実際にかなりの数の工程を含みます。

  • And so this, too, is a recurring topic in programming,

    だから、これは、あまりにも、です プログラミングのトピックを繰り返し、

  • whereby I might write a program using syntax like this--

    それによって、私はプログラムを作成することもできます this--ような構文を使用して、

  • pick_up_phone_book().

    pick_up_phone_book()。

  • And then syntactically, I'm going to steal something

    そして構文的に、私はよ 何かを盗むつもり

  • from most programming languages.

    ほとんどのプログラミング言語から。

  • >> Now, step 1 looks even more like a function,

    >> さて、ステップ1にも見えます より多くの機能のように、

  • as a programmer would call it.

    プログラマとして、それを呼び出します。

  • It looks like code that someone has given a name to and given

    それは、誰かのことをコードのようになります。 名前を与え、与えています

  • to me to use somehow-- in other words, what the line I've highlighted

    私には他にsomehow--使用します 私が強調表示されたものをライン言葉、

  • represents functionality that maybe I didn't even implement myself.

    その多分機能を表し 私も自分自身を実装していませんでした。

  • Someone older, wiser than me already figured out

    古い誰か、より賢く 私はすでに考え出し

  • how you express the notion of picking up a phone book.

    どのように概念を表現 電話帳をピックアップします。

  • And it's like the five steps I just rattled off, off the top of my head.

    そして、それは私がちょうど5つのステップのようなものです 私の頭の上から、オフにガタガタ。

  • >> But he or she already implemented this, gave those several steps

    >> しかし、彼または彼女はすでに実装します これは、それらのいくつかのステップを与えました

  • a name, pick_up_phone_book.

    名前、pick_up_phone_book。

  • And the parentheses is just what most programmers

    括弧は、 まさにほとんどのプログラマ

  • do at the end of statements like this.

    このような文の最後に行います。

  • I now can stand on his or her shoulders and never again,

    私は今、自分の上に立つことができます 肩と二度と、

  • think about what it means to pick up a phone book.

    それが何を意味するかを考えます 電話帳をピックアップします。

  • I can just say, pick up the phone book.

    私はちょうど電話帳を拾う、と言うことができます。

  • And that's exactly what all of us humans did here.

    そして、それは正確に何です 私たち人間のすべてがここにいました。

  • >> When we were probably 1 year old, 2 years old,

    >> 我々は、おそらく1になったとき 2歳、古い年、

  • someone had to teach us what it meant to pick up a phone book.

    誰かが私たちに教えなければならなかったもの、それを 電話帳をピックアップするためのもの。

  • And ever since then, we've abstracted away

    そして、今までそれ以来、 私たちは離れて抽象化しました

  • from those very uninteresting mechanical steps.

    これらの非常につまらないから 機械的な手順。

  • And we just have an intuitive understanding

    そして、我々はちょうど持っています 直観的理解

  • of what it means to pick up a phone book.

    それが何を意味するのか 電話帳をピックアップ。

  • >> And you can extrapolate now to more complicated things--

    >> そして、あなたは今、外挿することができます より複雑things--へ

  • construct a building.

    建物を建設。

  • Like, to some people, that actually has meaning.

    同様に、いくつかの人々に、 それが実際に意味を持っています。

  • To contractors, to architects, that has some meaning.

    請負業者に、建築家、 それはいくつかの意味を持ちます。

  • And they would know what to do, if I said, go construct a building.

    そして、彼らは、場合に何をすべきかを知っているだろう 私は建物を建設行く、と述べました。

  • >> But most of us in the room couldn't deal with that level of abstraction.

    >> しかし、部屋の中で私たちのほとんどはできませんでした 抽象化のレベルを扱います。

  • You need to tell us like go get the shovel and go get the concrete

    あなたが行く得るように私達に指示する必要があります シャベルやコンクリートを取りに行きます

  • and nail the pieces of wood together and whatever else

    そして、木材の小片を爪 一緒に、他のどのような

  • is involved in building a building.

    建物の構築に関与しています。

  • And that's because we have not yet been programmed to understand

    そして、私たちが持っていないので、それはです まだ理解するようにプログラムされて

  • what it means to construct a building.

    それは、建物を構築するために何を意味するのか。

  • We don't have that abstraction.

    私たちは、その抽象化を持っていません。

  • We don't have that functionality.

    私たちは、その機能を持っていません。

  • >> And so what you'll see in programming languages, in general,

    >> だから、あなたは何をで表示されます 一般的には、プログラミング言語、

  • especially more modern languages, like Java, PHP, Ruby, and Python,

    特に、より現代的な言語、 JavaやPHP、Rubyの、およびPythonのような、

  • they're much more mature than older languages,

    彼らははるかに成熟しています 古い言語よりも、

  • like C and C++ and yet others.

    CおよびC ++とまだ他のような。

  • And so they come with more functionality built in.

    それで、彼らはより多くの付属してい 機能が組み込まれています。

  • More code has been written by people in the past

    より多くのコードが書かれています 過去の人々によって、

  • that we can now call or summon or use, as I'm hinting

    私たちが今呼び出すことができるということか 私がほのめかしているように、召喚または使用

  • at with this highlighted line here.

    このとで、ここでのラインを強調しました。

  • And so even though we're not talking about programming languages per se,

    そして、私たちは話していないにもかかわらず、 プログラミング言語については、それ自体、

  • just pseudocode code, all of the ideas are still in that discussion.

    ちょうど擬似コードのコードのすべて アイデアは、その議論にまだあります。

  • And it turns out precision is super important, as is abstraction.

    そして、それは精度がある判明します 抽象化であるとして、超重要。

  • And let's try to communicate that as follows.

    とのはに試してみましょう 次のようにそれを伝えます。

  • >> I accidentally might have spoiled this by flashing a slide on the screen

    >> 私が誤って台無しにしている可能性があります この画面上でスライドを点滅させることにより、

  • prematurely.

    途中で。

  • But let me ask for a brave volunteer, if you don't mind coming up.

    しかし、私は勇敢なボランティアを求めてみましょう、 あなたが来る気にしない場合。

  • You'd be in front of the camera, if you're OK with that.

    あなたは目の前になるだろう カメラ、あなたはそれでOKなら。

  • Would anyone like to come up and give instructions to your colleagues here?

    誰もが思い付くとさせていただきたいと思い ここにあなたの同僚に指示?

  • Just have to come over here and stand over here and say some words.

    ただ、こっちに来ていると こっちに立って、いくつかの言葉を言います。

  • >> Victoria is smiling the most and avoiding my eyes the most.

    >> ビクトリアは、ほとんどが笑っています 最も私の目を避けること。

  • Would you be willing to come on up?

    あなたがアップに来ることをいといませんか?

  • OK.

    OK。

  • And if everyone else at your seats could take out a piece of scrap paper,

    そして、あなたの席で皆場合 スクラップ一枚の紙を取り出すことができ、

  • if you will.

    可能ならば。

  • Lined paper is fine.

    裏地紙が細かいです。

  • Come around this way.

    このように集まってきます。

  • Or some of the paper that you were given yesterday,

    または紙のいくつかのこと あなたは昨日与えられました、

  • just any blank sheet of paper, if you could.

    ただの白紙 紙の、あなたができれば。

  • And if you don't have any, just ask your neighbor if you could.

    そして、あなたがいずれかを持っていない場合は、単に あなたができればあなたの隣人をお願いします。

  • >> So for the moment, for this example, Victoria

    >> だから今のところ、用 この例では、ビクトリア

  • is going to play the role of a programmer, an engineer, who

    の役割を果たしているために起こっています プログラマー、エンジニア、誰

  • needs to program you all, as the computers, to do something.

    あなたのすべてをプログラムする必要があります コンピュータは、何かをします。

  • And we'll see what assumptions you decide to make.

    そして、私たちはどのような仮定を参照してくださいよ あなたがすることを決定します。

  • We'll see how precise she chooses to be.

    私たちは、彼女があることを選択する方法の正確な表示されます。

  • And if this demonstration goes pedagogically well, lots of mistakes

    そして、このデモが行く場合 教育学だけでなく、ミスの多く

  • will be made, that we'll then use that as an opportunity for discussion.

    私たちはその後、使用するだろうと、行われます その議論の機会として。

  • But the challenge for you should be to avoid those mistakes,

    しかし、あなたのための挑戦はすべき これらのミスを避けるためになります、

  • be a good programmer.

    優秀なプログラマーです。

  • And so the challenge at hand, if you'd liked to walk over here,

    手元にあるので、挑戦、もし あなたは、こちらに歩いて好きだったと思います

  • is in front of Victoria on the screen here-- and hopefully, none of you

    画面上のビクトリアの前にあります here--とうまくいけば、あなたのどれも

  • remember this when I flashed on the screen.

    ときに私にこれを覚えています 画面上に光りました。

  • And do not turn around at all, because there is another screen in this room

    そしてので、全く好転しません この部屋に別の画面があります

  • that I can turn off.

    私はオフにすることができること。

  • So don't turn around.

    だから、好転しないでください。

  • >> In front of Victoria is that same scream.

    >> ビクトリアの前で その同じ悲鳴です。

  • And her job now is to tell you all on your piece of paper what to draw.

    そして、彼女の仕事は今、あなたのすべてを伝えることです 紙のあなたの部分に何を描きます。

  • And we will see, based on verbal instructions alone,

    そして、我々はに基づいて、表示されます 単独で口頭指示、

  • computer code, if you will, how accurate your drawings

    コンピュータコード、可能ならば、 どのように正確にあなたの図面

  • are-- your implementations are.

    あなたの実装がありますare--。

  • Make sense?

    理にかなって?

  • >> AUDIENCE: Yeah.

    >> AUDIENCE:うん。

  • DAVID MALAN: OK, execute.

    DAVIDマラン:OK、実行します。

  • >> AUDIENCE: Draw a square.

    >> 聴衆:四角形を描画します。

  • >> [LAUGHTER]

    >> [笑い]

  • >> DAVID MALAN: And no questions may be asked.

    >> DAVIDマラン:そして、いや 質問が求められることがあります。

  • Can only do what you're told.

    あなただけは言わているものを行うことができます。

  • Oh, and if you have today's slides open in a tab, don't look at your tab.

    ああ、あなたが持っている場合は、今日のスライド タブで開き、あなたのタブを見ていません。

  • OK?

    OK?

  • >> AUDIENCE: OK, draw a circle.

    >> 聴衆:OK、円を描きます。

  • A slope-- can I say slope?

    slope--私はスロープを言うことができますか?

  • DAVID MALAN: Up to you.

    DAVIDマラン:あなたまで。

  • AUDIENCE: A slope.

    AUDIENCE:スロープ。

  • And a triangle.

    三角形。

  • >> DAVID MALAN: All right.

    >> DAVIDマラン:すべての権利。

  • And stay here for just a moment.

    そして、ちょっとここに滞在。

  • And I'm going to come around in just a moment.

    そして、私は来るつもりです 一瞬で周り。

  • And no need to put your names on it.

    そして、その上にあなたの名前を入れる必要はありません。

  • Let me come around and collect your drawings,

    私は周りに来てみようと あなたの図面を集め、

  • if you don't mind tearing them out.

    あなたはそれらを引き裂く気にしない場合。

  • >> Here is what we got back.

    >> ここでは、バック得たものです。

  • I'll project it on the screen.

    私は、画面上に投影します。

  • I see a square, a circle, a slope, and a triangle.

    私は、正方形、円を参照してください、 スロープ、および三角形。

  • So that was one answer there.

    だから、そこに一つの答えでした。

  • And let's-- whoops.

    そしておっとlet's--。

  • Thank you.

    ありがとうございました。

  • Here's another assortment, and one behind it.

    ここでは別の品揃えです、 その背後にあると1。

  • >> So they all seem to capture the spirit.

    >> だから、彼らはすべての精神をキャプチャするように見えます。

  • Thank you.

    ありがとうございました。

  • There's another, and here's another one.

    そこ別だし、ここでは別の一つです。

  • The slope interpretation is a little different, little curvy.

    スロープの解釈があります 少し違う、曲線美少し。

  • And the closest, either because of the wonderful specificity with which you've

    そして、どちらかのための最も近いです あなたは済ませたとの素晴らしい特異性

  • described, or maybe you kind of saw it before, this is indeed

    説明、または多分あなたの種類の 前にそれを見て、これは確かにありま​​す

  • what Victoria was actually describing.

    ビクトリアは、実際に何を説明しました。

  • >> But now, those of you who didn't get it quite right,

    >> しかし、今、あなたのそれらの人 それは非常に権利を取得しませんでした、

  • let's offer some objections here.

    それでは、ここでいくつかの異議を提供してみましょう。

  • So Victoria first said draw a square.

    だから、ビクトリアは、最初に四角形を描画述べました。

  • And now, we can assume for the sake of today

    そして今、我々が想定することができ 今日のために

  • that everyone knows how to draw a square.

    誰もが知っていること 四角形を描画する方法について説明します。

  • But that's not wholly clear, right?

    しかし、それは右、完全に明確ではないでしょうか。

  • How else could you have drawn a square, or where

    他にどのようにあなたが持っている可能性が 描かれた正方形、またはどこに

  • might be some of the ambiguities here for the computer?

    曖昧さの一部であるかもしれません ここでは、コンピュータのために?

  • AUDIENCE: Location and size.

    AUDIENCE:ロケーションとサイズ。

  • DAVID MALAN: Location, right?

    DAVIDマラン:場所、右か?

  • All of you had a paper of some shape, generally rectangles, but slightly

    あなたのすべては、いくつかの形の紙を持っていました 一般的に長方形が、わずか

  • different sizes.

    異なるサイズ。

  • But you certainly could have drawn, if you wanted, a huge square, maybe

    しかし、あなたは確かに描かれている可能性があり、 あなたが望んでいた場合、巨大な正方形、多分

  • a tiny square.

    小さな正方形。

  • Maybe, it was rotated.

    多分、それを回転させました。

  • I don't think we saw that.

    私たちはそれを見たとは思いません。

  • But it could have been more diamond like but still, nonetheless,

    しかし、それはより多くのダイヤモンドだったかもしれません 以下のようなそれでも、それにもかかわらず、

  • mathematically a square.

    広場を数学的。

  • So that was arguably ambiguous.

    だから、間違いなくあいまいでした。

  • >> Then she said, draw a circle.

    >> それから彼女は、円を描く、と述べました。

  • Some of you did draw it next to it, which isn't unreasonable,

    あなたのいくつかは、次のことを描きました 不合理ではない、それ、

  • because humans tend to think or read right to left in most languages, so not

    人間は考えたり読みする傾向があるため 右のほとんどの言語に残って、そうしないように

  • a bad guess.

    悪い推測。

  • But that circle could have been inside the square,

    しかし、その円を持っている可能性があり 正方形の内部になって、

  • could have been around the square, could have been elsewhere

    周りされている可能性が 正方形、他の場所だったかもしれません

  • on the sheet, so arguably ambiguous.

    シート上なので、間違いなくあいまいな。

  • >> Slope might have been maybe taking the most liberties verbally

    >> スロープは多分あったかもしれません 口頭で最も自由を取ります

  • with what that means.

    それが何を意味するのかと。

  • And some of you interpreted it as a squiggly line

    そして、あなたのいくつかは解釈します それ波線など

  • or a straight line or the like.

    または直線など。

  • And then triangle, too, could have been oriented in any number of ways.

    そして三角形は、あまりにも、持つことができます 任意の数の方法で配向されて。

  • So in short, even with something that you glance and you're like, wow, so

    要するに、でも何かを持つように そう、すごい、あなたが一目あなたが似ています

  • simple, a child could draw this, well not

    単純な、子供ができました これを描画し、よくありません

  • really, unless you're super, super persuasive

    本当に、あなたがない限り スーパー、スーパー説得力

  • and tell the computer exactly what to do.

    し、コンピュータを伝えます 正確に何をすべきか。

  • So if we could, if you have another sheet of paper, let's

    だから我々はことができれば、あなたが持っている場合 紙の別のシート、してみましょう

  • try this once more.

    このもう一度試してください。

  • And I'm going to give Victoria one other example on the screen here.

    そして、私はビクトリア1を与えるつもりです ここでは、画面上の他の例。

  • And again, don't turn around and don't look at your slides.

    そして再び、好転しません あなたのスライドを見ていません。

  • And I'll give her a moment to think about how to describe this.

    そして、私は彼女にする瞬間をあげます この記述方法を考えます。

  • Don't let them see the fear in your eyes.

    それらを見てみましょうしないでください あなたの目で恐怖。

  • >> [LAUGHTER]

    >> [笑い]

  • >> And again, this time leverage some of those takeaways

    >> そして再び、この時間を活用 それらの持ち帰りの一部

  • and try to get almost everyone at least the right answer.

    そして、ほとんどの人を取得しよう 少なくとも正しい答え。

  • >> AUDIENCE: OK, take a piece of paper, look

    >> 聴衆:OK、取ります 一枚の紙、見て

  • in the middle of that piece of paper.

    紙のその部分の真ん中インチ

  • In the middle of that piece of paper, draw a cube.

    その部分の真ん中に 紙、立方体を描画します。

  • >> [LAUGHTER]

    >> [笑い]

  • DAVID MALAN: What have we learned?

    DAVIDマランは:私たちは何を学びましたか?

  • We were so close.

    私たちはとても接近していました。

  • OK, repeat if you could, for everyone.

    あなたができればOK、みんなのために、繰り返します。

  • >> AUDIENCE: In the middle of the piece of paper, draw an object,

    >> AUDIENCE:の真ん中で 紙は、オブジェクトを描画します

  • which looks like a cube.

    これはキューブのように見えます。

  • >> DAVID MALAN: OK, that's all you get to work with.

    >> DAVIDマラン:OK、それはです すべてのあなたが仕事を得ます。

  • Allow me to be analytical and not so much critical,

    私は分析することを可能にします そして重要なあまりありません、

  • but to make the claim that Victoria definitely

    しかし、主張を作るために ビクトリア間違いなくその

  • seems to be thinking in very high level abstractions, which

    非常にで考えているようです 高レベルの抽象化、その

  • is not unreasonable.

    不合理ではないです。

  • Because otherwise, we'd all be pretty dysfunctional,

    そうでなければ、我々はすべてしまうので、 かなり機能不全であること、

  • if we had to be ever so precise with everything we do in the world.

    我々は、これまでそれほど正確でなければならなかった場合 すべてに私たちは世界で行います。

  • >> But saying go to the middle-- I thought we were on such a good track

    >> しかし、私はmiddle--に行くと言って 我々はこのような良いトラックに思っていました

  • there, like go to the very middle of the page, and then draw a cube.

    そこに、のような非常に真ん中に行きます キューブを描画し、ページの、と。

  • So she's thinking in abstractions, because she's still viewing

    そこで彼女は、抽象化に考えて、 彼女はまだ見ていますので、

  • what's on the screen as indeed a cube.

    確かに、キューブのように画面上でです。

  • But there's so many opportunities for interpretation there.

    しかし、非常に多くの機会があります そこに解釈のため。

  • And in fact, there's so many other ways you could express

    そして、実際には、そう多くあります あなたが表現できる他の方法

  • that, which I'll propose in a moment.

    つまり、私はその瞬間に提案しますします。

  • So here we have one incarnation of the picture-- whoops-- one

    そこでここでは、1化身を持っています picture-- whoops-- 1の

  • incarnation of the picture, so a little three dimensionality to it,

    絵の化身なので、 それにはほとんど3次元、

  • which is nice.

    これはいいです。

  • >> Here's another one, where you have the same, though it's kind of an open cube.

    >> ここであなたが持っているもう一つは、です 同じ、それはオープンキューブの一種だが。

  • Some folks took it a little more flat, two dimensional.

    一部の人々はそれを少し取りました よりフラット、2次元。

  • And that's fine.

    そして、それは大丈夫です。

  • So there, indeed in the center of the paper.

    だから、確かにありま​​す 紙の中心。

  • This one I think you'll like, because if we go here,

    この1は私はあなたがすると思います 以下のように、私たちはここに行けばあるため、

  • this is what she was describing.

    これは彼女が記述したものです。

  • So now, let me propose how else we might describe this situation.

    だから今、私はどのように他提案してみましょう 我々はこの状況を説明することがあります。

  • >> Back in the day, one of the most more common ways to learn programming

    >> 戻る日に、ほとんどの1 プログラミングを学ぶためのより多くの一般的な方法

  • was to write code, writes lines of instructions,

    コー​​ドを書くことだった、書き込み 命令のライン、

  • that controlled a little turtle on the screen.

    それは少しを制御しました 画面上のカメ。

  • Logo and other variants of this was the name of the language.

    ロゴとこのの他の変形 言語の名前でした。

  • And the turtle lived in a world.

    そして、亀は、世界に住んでいました。

  • >> So suppose this rectangular space is his world.

    >> したがって、この長方形のを想定 スペースは彼の世界です。

  • And you would start by assuming-- I don't really know how to draw turtle,

    そして、あなたはassuming-- Iによって開始します 本当に、亀を描画する方法がわかりません

  • so let's do it like this.

    それでは、このようにそれをやらせます。

  • And then he's got a shell and then maybe some feet.

    そして彼は、シェルを持っています そしてその後、おそらくいくつかの足。

  • So you might have this little character on the screen.

    だから、この小さなを持っているかもしれません 画面上の文字。

  • >> And the object of this programming language

    >> そして、こののオブジェクト プログラミング言語

  • was to compel the turtle to go up, down, left, right

    カメを強要することでした 上がるために、ダウン、右、左

  • and to put his pen down or pick his pen up,

    ダウン彼のペンを置くために または彼のペンアップを選択し、

  • so he could actually draw on the screen in this very flat rectangular world.

    彼は実際に画面上に描画できました この非常に平らな長方形の世界インチ

  • So where I thought you might be going, and where you should consider diving

    だからここで私はあなたが行くことかもしれないと思いました、 そしてどこでダイビングを考慮する必要があります

  • down to mentally when describing instructions more generally,

    記述するときに精神的にダウン より一般的に指示、

  • I would claim, is put your pen down in the middle--

    私が主張するだろう、あなたを入れて middle--でペンダウン

  • and we'll get rid of the turtle, because I can't really

    我々は取り除きますよ カメ、私は本当にことができるので、

  • keep drawing him very well.

    非常によく彼を描く保ちます。

  • >> And now, how else could I say draw a cube?

    >> そして今、どのように他の可能性 私はキューブを描くと言いますか?

  • Well, we could say something like draw a diagonal line northeast, for instance,

    まあ、我々は引き分けのようなものを言うことができます 対角線の北東部、例えば、

  • or at a 45-degree angle upward.

    または上方45度の角度で。

  • And that might have gotten me here.

    そしてそれは私をここに得ている可能性があります。

  • And I'm pretty far from a cube.

    そして、私はかなり遠くキューブからです。

  • But now, I could say something like turn 90 degrees to the left

    しかし、今、私が何かを言うことができます 以下のような左に90度回転

  • and draw a line of equal length northwest.

    との線を引きます 同じ長さの北西。

  • And I could continue with similar directions.

    そして、私は続けることができます 同様の方向を有します。

  • And it's not going to be easy.

    そして、簡単なことではないだろう。

  • And frankly, we probably would have been here for five minutes.

    そして率直に言って、我々はおそらくだろう 5分間ここにいました。

  • But maybe we would have gotten to something that, at the end of the day,

    しかし、多分私達はに得ているだろう 、一日の終わりに何か、

  • ends up being a cube, but we dived inside of that abstraction

    キューブなってしまうが、我々 その抽象化の内側に潜っ

  • to do it at such a low level that you can't really

    このような低でそれを行うには レベルあなたが本当にすることができ

  • see what you're doing until the whole thing is actually there on the page.

    あなたは全体まで、何をやっている参照してください。 事は、ページ上の実際にそこにあります。

  • And so this is a general principle, again, of programming-- this idea

    そして、これは一般的な原則です、 再び、programming--このアイデアの

  • of abstraction.

    抽象化。

  • It's so wonderfully powerful, because again,

    それはとても素晴らしくです 強力な、再びので、

  • she just said, draw a cube, which all of us pretty much would grok very quickly.

    彼女はちょうど、言ったのすべてのキューブを、描きます 私たちはかなり非常に迅速に定義を理解でしょう。

  • We would just understand, OK, draw a cube.

    私達はちょうど理解するであろう、 OK、立方体を描画します。

  • We might not know the orientation, so we could be a little more precise,

    私たちは、向きを知らないかもしれません 私たちは、もう少し正確かもしれません

  • but we can generally picture or know what a cube is.

    しかし、我々は一般的に想像することができます またはキューブが何であるかを知っています。

  • And that's useful, because if every time you

    そして、それは便利です、 なぜならかのたびに

  • sat down as a programmer at your keyboard to write code,

    でプログラマーとして座っ コー​​ドを書くためのキーボード、

  • if you had to think at such a low level, none of us

    あなたは、このような時に考えていた場合 低レベル、私たちのどれも

  • would ever get anything done.

    今まで何を成し遂げるだろう。

  • And certainly, none of us would enjoy the process of writing code.

    そして確かに、私たちのどれもあろう コー​​ドを書くのプロセスを楽しみます。

  • It would be like writing in 0's and 1's, which frankly wasn't all that long ago

    これは、0と1に書き込むようになります これは、率直に言って、すべてそのずっと前にはなかったです

  • humans were writing code in 0's and 1's.

    人間は、0と1でコードを書いていました。

  • And we very quickly came up with these higher level languages--

    そして、我々は非常に迅速に思い付きました これらのより高いレベルのlanguages​​--

  • C++ and Java and others.

    C ++やJavaなど。

  • >> So let's try this once more just to flip the tables, so that all of us

    >> それでは、ちょうどこのもう一度試してみましょう 表を反転、私たちのすべてのように、

  • have the chance to think in rather the same way.

    考える機会を持っています むしろ同じようインチ

  • Could we get one more volunteer this time to come up to the board and draw,

    私たちは、1以上のボランティアこれを得ることができます ボードにまで来て、描画するための時間、

  • not recite?

    暗唱しませんか?

  • Yeah, OK.

    [OK]を、ええ。

  • Ben, come on up.

    ベンは、アップに来ます。

  • And, Ben, in this case, once you face the board, don't look left,

    そして、ベン、この場合には、あなたに一度 、ボードに直面して、左見ていません

  • don't look right.

    右見ていません。

  • Only do what your colleagues here tell you.

    唯一の何をすべきかあなたを ここでの同僚はあなたを伝えます。

  • And for everyone else in the room, you now are the programmer.

    とで皆のために 部屋、あなたは今、プログラマです。

  • He's the computer.

    彼はコンピュータです。

  • And the picture I've chosen here in advance is this one here.

    私がここで選択されたし、絵 事前にここでこの1です。

  • They're just-- they're thinking of a funny joke is all.

    彼らは考えているjust--ています 面白いジョークのすべてです。

  • >> So would does someone like to volunteer the first instruction

    >> だから、誰かがしたいんだろう 最初の命令をボランティア

  • or statement that should command Ben's pen?

    またはステートメントは、そのすべき コマンドベンのペン?

  • And we'll do this collectively, maybe one instruction from each person.

    そして、我々は多分、総称してこれをやります 一人一人から1命令。

  • I'm sorry?

    ごめんなさい?

  • >> AUDIENCE: Draw a circle.

    >> 聴衆:円を描きます。

  • DAVID MALAN: Draw a circle is the first thing I heard.

    DAVIDマラン:円を描きます 私が聞いた最初の事はあります。

  • >> AUDIENCE: Up top.

    >> AUDIENCE:最大トップ。

  • >> DAVID MALAN: Up top.

    >> DAVIDマラン:最大トップ。

  • OK, we can let you delete, undo.

    [OK]を、私たちは、元に戻す、削除させることができます。

  • And now, someone else.

    そして今、他の誰か。

  • Dan, would you be comfy offering the next instruction?

    ダンは、あなたが快適になります 次の命令を提供しますか?

  • >> AUDIENCE: Sure, draw the center of the bottom of the circle,

    >> 聴衆:確かに、センターを描きます 円の底部、

  • with a small-- a little small space from that,

    small--少しで それから、小さなスペース、

  • draw a straight line down to three quarters of the way down the board

    3まで直線を引きます ボードダウン方法の4分の3

  • a slight angle to your left.

    あなたの左にわずかに角度。

  • >> DAVID MALAN: Good.

    >> DAVIDマラン:良いです。

  • >> AUDIENCE: Slight angle.

    >> AUDIENCE:わずかな角度。

  • >> DAVID MALAN: Undo, Control-Z. OK.

    >> DAVIDマラン:元に戻す、コントロール-Z。 OK。

  • Andrew, you want to offer up the next instruction?

    アンドリューは、あなたが提供したいと考えています 次の命令まで?

  • >> AUDIENCE: Sure.

    >> AUDIENCE:確かに。

  • From the bottom of that line, a further slight angle--

    その行の下から、 さらに、わずかangle--

  • whoops-- maybe about a third of the length [INAUDIBLE],

    whoops--多分約三分の 長さの[聞こえません]、

  • slight angle downward and like a third of the length of [INAUDIBLE].

    わずかな角度下向きなど [聞こえない]の長さの第三。

  • So yeah, from that point, draw a line a third

    そんなわけで、その点から、 第三の線を引きます

  • of the length of the previous line further to the left.

    前の長さの さらに左へのライン。

  • >> DAVID MALAN: That OK?

    >> DAVIDマラン:それOK?

  • Straight line, that's OK?

    直線は、それはOKですか?

  • OK, Olivier, you want to offer up the next?

    OK、オリビエ、あなたがしたいです 次を提供するには?

  • >> AUDIENCE: [INAUDIBLE] from the bottom of the circle, [INAUDIBLE].

    >> AUDIENCE:[聞こえない]から 円の下部、[聞こえません]。

  • Draw on the right hand side of [INAUDIBLE] centimeters.

    右側に描きます [聞こえない]センチ。

  • >> [LAUGHTER]

    >> [笑い]

  • >> DAVID MALAN: I think you're going to have to convert that's inches here.

    >> DAVIDマラン:私はあなたになるだろうと思います それはここインチだ変換する必要があります。

  • >> AUDIENCE: Stop.

    >> AUDIENCE:停止。

  • >> [LAUGHTER]

    >> [笑い]

  • >> DAVID MALAN: OK.

    >> DAVIDマラン:OK。

  • [? Ara, ?] you want to offer up the next?

    [?アラ、?]したいです 次を提供するには?

  • >> AUDIENCE: Draw a [INAUDIBLE] the upper [INAUDIBLE] the same.

    >> AUDIENCE:描く[聞こえません] 上部の[聞こえない]と同じ。

  • [INAUDIBLE] circle, draw to the [INAUDIBLE] and draw [INAUDIBLE].

    [聞こえない]に、円、描画 [聞こえない]と[聞こえない]描きます。

  • >> DAVID MALAN: OK, no more undo.

    >> DAVIDマラン:OK、これ以上元に戻します。

  • Let's do one or two more instructions.

    のは、1つまたは2つの複数の命令を実行してみましょう。

  • Chris, you want to offer one?

    クリス、あなたは1を提供したいですか?

  • >> AUDIENCE: At the bottom of the circle, [INAUDIBLE]

    >> AUDIENCE:下部にあります 円の、[聞こえません]

  • draw an equal line slopping downward to the left [INAUDIBLE].

    同じラインスロッピングを描きます 左の[聞こえない]に下向き。

  • >> DAVID MALAN: OK.

    >> DAVIDマラン:OK。

  • Andrew?

    アンドリュー?

  • We did-- Karim?

    私たちは、カリムをdid--?

  • >> AUDIENCE: Starting from the right line, the end of the left line, the bottom,

    >> AUDIENCE:右の行から開始して、 左ライン、ボトムの終わり、

  • you're going to go right about the same length as that line

    あなたは約右に行くつもりです そのラインと同じ長さ

  • you're on, drawing to the right [INAUDIBLE].

    あなたはへの描画、にしています 右の[聞こえません]。

  • [INAUDIBLE] degrees, so [INAUDIBLE] degrees on the right side.

    [聞こえない]度なので、[聞こえません] 右側の度。

  • >> DAVID MALAN: All right.

    >> DAVIDマラン:すべての権利。

  • Let's pause.

    一時停止してみましょう。

  • Don't turn around yet.

    まだ好転しないでください。

  • Let's pause, and let's try one other attempt

    一時停止してみましょう、としてみましょう 1他の試みをしてみてください

  • before we reveal to Ben what he's been drawing.

    我々はベンに明らかにする前に、 彼はどのような描画されています。

  • Can you shuffle Ben to the right-- or actually,

    あなたはにベンをシャッフルすることができます right--または実際に、

  • no, let's just give you another board, even better.

    いいえ、ちょうどあなたを与えてみましょう 別のボード、さらに良いです。

  • So would someone now like to take more of the approach

    だから、誰かが今たいと思います アプローチの多くを取るために

  • that Victoria took earlier on, where we speak in a higher level abstraction

    ビクトリアはどこに、以前にかかりました 我々は、より高いレベルの抽象化で話します

  • and in just a sentence or two describe to Ben

    そしてちょうど文で または2ベンに記述

  • what to draw without getting into the weeds,

    何せずに描画します 雑草になって、

  • so to speak, at this a lower level?

    したがって、この低いレベルで、話すには?

  • Victoria.

    ビクトリア。

  • [LAUGHTER]

    [笑い]

  • AUDIENCE: Draw a figure of the walking man.

    聴衆:図形を描きます 歩行男の。

  • And his legs and arms have to be the right side.

    そして、彼の腕や脚 右側でなければなりません。

  • >> DAVID MALAN: OK, that's all you get.

    >> DAVIDマラン:OK、それはあなたが得るすべてです。

  • All right.

    大丈夫。

  • Why don't we reveal to Ben what he did.

    なぜ我々は彼が何をしたかベンに明らかにしていません。

  • So a round of applause.

    だから、拍手。

  • That was the hardest perhaps.

    それは難しいかもしれませんでした。

  • >> So even though we're talking in fairly silly terms

    >> だから我々は話をしているにもかかわらず、 かなり愚かな面で

  • about just drawing pictures, hopefully you

    ただ描画について 写真、うまくいけば

  • can really appreciate the degree of expressiveness that might be necessary

    の程度を本当に理解することができます 必要になる場合があります表現

  • in order to tell a computer what to do.

    何をすべきかをコンピュータに指示するためです。

  • And in fact, the fact that Ben was able to draw this so quickly

    そして、実際には、事実ベン こんなに早くこれを描くことができました

  • is sort of testament to using a language, maybe a higher level

    使用しての証のようなものです 言語、多分より高いレベル

  • version of English, that allows him to just use words, or hear words

    英語のバージョン、彼を可能にします 言葉だけを使用する、または単語を聞いて

  • from Victoria, that allow him these abstractions-- just draw

    ビクトリアから、彼を許すこと これらはただ描きますabstractions--

  • a figure walking to the right-- that sort of has

    に歩く姿 持っているその種のright--

  • some semantic meaning to it that isn't nearly as obvious when you're just

    ではない、それにはいくつかの意味論的意味 ほぼ明らかなように、あなただけのしているとき

  • saying, put your pen down, draw to the right, draw to the left.

    ダウンあなたのペンを置く、と言って、描きます 右に、左に描画します。

  • >> And so this, too, is very common in programming.

    >> そしてこれは、あまりにも、非常にあります プログラミングでは一般的。

  • This would be said to be like a very low level language, programming

    これは、のようであると言うことだろう 非常に低レベル言語プログラミング

  • in 0's and 1's if you will.

    可能ならば0と1インチ

  • And this would be a higher level language programming in Java,

    そして、これは、より高いレベルになります Javaでの言語のプログラミング、

  • or something like that.

    またはそのような何か。

  • A bit of an oversimplification, but that's

    のビット 単純化し過ぎ、それの

  • the sort of like emotional feeling that you feel when

    感情的なようなの並べ替え あなたはときに感じることを感じて

  • using one kind of thing or another.

    一つの種類または別のものを使用して。

  • A bit of frustration here by the need for such precision, but the opportunity

    必要によってここに欲求不満のビット このような精度のために、しかし、機会

  • to be a little looser with the interpretation here.

    と少し緩めるようにします ここ解釈。

  • But of course, bugs can arise as a result.

    しかし、もちろん、バグ 結果として生じる可能性があります。

  • >> If you'd like at home-- we won't do this one in class--

    >> あなたはhome--で希望される場合は、我々 class--でこれを行うことはありません

  • but if you'd like to bring this one home,

    しかし、あなたがしたい場合 この1家庭を持って、

  • I thought we would dive into this.

    私たちはこの飛び込むだろうと思いました。

  • So if you'd like to play this game with your significant other

    ですから、これを再生したい場合 あなたの重要な他とのゲーム

  • or kids or the like, you might enjoy that as well.

    や子供たちなど、あなた 同様にそれを楽しむことがあります。

  • >> So let's go ahead and look at one last thing here for computational thinking.

    >> それでは、先に行くと、最後の1を見てみよう ここでは、計算的思考のためのもの。

  • And that brings us to John Oliver, not for the clip

    そして、それはジョンに私たちをもたらします ないクリップのオリバー、

  • you might have seen last night, but to a somewhat recent issue.

    あなたは昨夜見たかもしれません、 やや最近の号へ。

  • A few months back, Volkswagen took quite a bit of flak

    数ヶ月前、フォルクスワーゲン 高射砲のかなりを取りました

  • for what reason, if you know?

    どのような理由のために、あなたが知っていれば?

  • What did they get in trouble for?

    彼らはトラブルに何のためになったのですか?

  • >> Yeah, so emissions-- they were trying to beat emissions

    >> うん、emissions--ので 排出量をビートにしようとしていました

  • tests by essentially having their cars pollute the environment less

    基本的に彼らを有することによりテスト 車が少ない環境を汚染します

  • when their cars were being tested and pollute the environment more

    自分の車は、試験されていたとき さらに、環境を汚染

  • when the cars were not being tested.

    車がテストされていなかったとき。

  • And what's increasingly interesting in the world, as you may have inferred

    そして、何がますます面白いです 世界では、あなたが推測できるように

  • from discussions of like-- what is it-- CarPlay, Apple's software for cars

    何であるかlike--の議論から CarPlay、車のためのAppleのソフトウェアit--

  • and the fact that many of us increasingly

    そして多くのその事実 私たちのますます

  • have touch screens in our cars, there's a frightening amount

    クルマにタッチスクリーンを有し、 恐ろしい量があります

  • of software in people's cars today, which

    人々年代のソフトウェアの 車今日は、これ

  • frankly opens a whole can of worms when it comes to security and physical risk.

    率直に言ってワーム時の全体の缶を開きます それは、セキュリティと物理的なリスクになります。

  • But for today, let's focus on just what's

    しかし、今日のために、してみましょう ちょうど何に集中

  • involved in writing software that might have gamed the system.

    ライティングソフトに関与 それは、システムをgamedている可能性があります。

  • >> For the definition of the problem, for those unfamiliar,

    >> の定義について 問題、慣れていない人のために、

  • let's take a look at John Oliver.

    のは、ジョン・オリバーを見てみましょう。

  • And for those familiar with the problem, let's look at it

    とに精通した者のために 問題は、のは、それを見てみましょう

  • in a fun lens via John Oliver as well.

    ジョン・オリバー経由で楽しいレンズでも同様。

  • So let me hit play on this, I think, three-minute introduction.

    だから私は、私はこの上でプレーをヒットさせ 3分の導入、と思います。

  • Damn it.

    畜生。

  • [VIDEO PLAYBACK]

    [ビデオ再生]

  • -Cars--

    -車 -

  • DAVID MALAN: Obviously, on YouTube, it's--

    DAVIDマラン:明らかに、 YouTubeで、it's--

  • - --the smartest characters in the Fast and Furious movies.

    - --the賢い文字で ワイルドスピード映画。

  • This week, German automaker Volkswagen found itself

    今週、ドイツの自動車メーカー フォルクスワーゲンは、自分自身を発見しました

  • in the middle of a scandal of potentially criminal proportions.

    のスキャンダルの途中で 潜在的犯罪者の割合。

  • >> -Volkswagen is bracing for billions in fines, possible criminal charges

    >> -Volkswagenは数十億のためにブレースされています 罰金で、可能な刑事告発

  • for its executives, as the company apologizes

    その幹部のための、など 同社は謝罪します

  • for rigging 11 million cars to help it beat emissions tests.

    11〜万台をリギングするための それは排出量のテストを打つのに役立ちます。

  • >> -Certain diesel models were designed with sophisticated software that

    >> -Certainディーゼルモデルを設計しました その洗練されたソフトウェアと

  • used information, including the position of the steering wheel and vehicle

    位置を含む使用済みの情報、 ステアリングホイールと車両の

  • speed, to determine the car was undergoing emissions testing.

    スピード、車があったかを決定するために 排出量のテストを受けています。

  • Under that circumstance, the engine would reduce toxic emissions.

    そのような状況下では、エンジン 有毒な排出量を削減することになります。

  • But the car was rigged to bypass that when it was being driven.

    しかし、車はバイパスに装備されました それが駆動されたときに。

  • Emissions increased 10 to 40 times above acceptable EPA levels.

    排出量は、40に10を増加しました 許容可能なEPAのレベルを超える時間。

  • >> -Wow, 10 to 40 times greater than the EPA allows.

    >> -Wow、10〜40倍 EPAよりも大きいができます。

  • That is the worst thing Volkswagen has ever done,

    それは最悪のことです フォルクスワーゲンは、これまで行っています、

  • is something you might say if you'd never heard of World War II.

    あなたがあれば言うかもしれないものです あなたは第二次世界大戦のことを聞いたことがなかったです。

  • But maybe the surest sign of how much trouble Volkswagen is in,

    どのようにしかし、おそらく最も確実な兆候 フォルクスワーゲンはである多くのトラブル、

  • is that people at the very top have stepped down.

    であることは非常に人々 トップは辞任しています。

  • The CEO resigned on Wednesday after scrambling to do damage control,

    最高経営責任者(CEO)は、後に水曜日に辞任しました ダメージ・コントロールを行うためにスクランブル、

  • saying he was endlessly sorry, which sounded great until it turned out

    、彼は際限なく残念だったと言っています それが判明するまで、素晴らしい鳴りました

  • he was only 10% sorry but had rigged his mouth

    彼は唯一の10%残念でした しかし、彼の口を装備していました

  • to artificially inflate his sorriness.

    人工的に彼の気の毒さを膨張させます。

  • And meanwhile, Volkswagen's US chief had an apology of his own.

    その間、フォルクスワーゲンの米国 チーフは、彼自身の謝罪を持っていました。

  • >> -Let's be clear about this, our company was dishonest.

    >> これについて明確にするのを-LEt、 当社は不誠実でした。

  • And in my German words, we have totally screwed up.

    そして、私のドイツ語の単語で、我々 完全にめちゃくちゃにしています。

  • >> -Yeah, but totally screwed up are not German works.

    >> -Yeah、しかし完全にねじ込ま アップドイツの作品ではありません。

  • And the German language has many beautiful phrases

    そして、ドイツ語 多くの美しいフレーズを持っています

  • to describe situations just like this, such as [GERMAN], which means roughly,

    ちょうどこのような状況を記述するために、 このような大体意味[ドイツ語]、など、

  • the sadness that comes from business related lies,

    来る悲しみ ビジネス関連の嘘から、

  • or [GERMAN], which translates as shaming ones father involving

    または[ドイツ語]、変換 関与するものの父を恥として

  • clouds of gasoline.

    ガソリンの雲。

  • It's a beautiful language.

    それは美しい言語です。

  • It just sails off the tongue.

    それはちょうど舌をオフ帆。

  • And by the way, while that man's apology may have sounded sincere,

    ところで、あの男の一方 謝罪は誠実に聞こえたかもしれません、

  • it's worth noting he was speaking at an official launch party for the 2016

    それは彼がで話していた注目に値します 2016年の公式打ち上げパーティー

  • Volkswagen Passat, meaning that shortly after saying sorry, he said this.

    そのまもなく意味フォ​​ルクスワーゲンパサート、 申し訳ありませんと言った後、彼はこのことを言いました。

  • >> -Thank you very much for coming.

    >> あなたに来るために非常に多くを-Thank。

  • Enjoy the evening.

    夜をお楽しみください。

  • Up next is Lenny Kravitz.

    次のアップレニー・クラヴィッツです。

  • >> [MUSIC PLAYING]

    >> [MUSICのPLAYING]

  • >> -OK, OK, ending your apology with up next

    >> -OK、OK、あなたを終了します 次のアップで謝罪

  • Lenny Kravitz does not scream sober contrition.

    レニー・クラヴィッツはしていません 地味な悔恨を叫びます。

  • It screams, we asked Bon Jovi, and he said no.

    それは悲鳴、我々はボンに尋ねました ・ジョヴィ、と彼はノーと言いました。

  • Volkswagen's brand has been badly damaged.

    フォルクスワーゲンのブランドは持っています ひどく破損して。

  • And frankly, their new ad campaign is not exactly helping.

    そして率直に言って、彼らの新しい広告 キャンペーンは正確に支援されていません。

  • >> --[GERMAN], we at Volkswagen would like to apologize for deceiving you with

    >> - [ドイツ語]、フォルクスワーゲンで我々が希望します であなたを欺くために謝罪します

  • our vehicles.

    私たちの車。

  • >> [END PLAYBACK]

    >> [END PLAYBACK]

  • DAVID MALAN: So this was a roundabout way of-- sorry--

    DAVIDマラン:これはでした 回り道of-- sorry--

  • this was a roundabout way of introducing a fundamental problem

    これは、回り道でした 根本的な問題を導入

  • in software, which is that you need to detect certain conditions.

    あなたということですソフトウェア、中 特定の条件を検出する必要があります。

  • And so the question at hand here is, how does a car potentially,

    だから手元の質問がここに 車が潜在的にどうするか、です、

  • as implemented in software by these programmers,

    ソフトウェアで実装され これらのプログラマによって、

  • detect that it's actually being tested?

    それは実際にテストされていたことを検出?

  • So to be super clear, what they were doing

    だから、スーパー明確にします 彼らは何をしていましたか?

  • was, in environments where the programmers figured

    どこ環境でした プログラマは考え出し

  • the car was being tested, they somehow made

    車はされていました テストされ、彼らは何とか作っ

  • the car emit less emissions, fewer emissions, so less toxic fumes

    車は少なく、少ない排出量を放出します 排出量なので、あまり毒性ガス

  • and such.

    そして、このような。

  • But when it's normally driving on the road,

    しかし、それは正常なとき 道路を走行、

  • it would just emit as much pollution as it wanted.

    それはちょうど同じくらい放出するだろう それは望んでいたとして汚染。

  • >> So how could we write the pseudocode for this algorithm?

    >> だから、私たちはどのように書くことができます このアルゴリズムの擬似コード?

  • How could we write the pseudocode for the software running in the car?

    どのように我々は擬似コードを書くことができ 車の中で実行されているソフトウェアのため?

  • I mean, in a nutshell, it boils down to something like this.

    私はそれが沸騰し、一言で言えば、意味します このようなものまで。

  • if being tested, emit less.

    試験された場合、以下を放出します。

  • else emits more.

    他には、より多くを放出します。

  • But that's a little too high level, right?

    しかし、それは少しです 高すぎるレベル、右か?

  • >> Let's try to dive in as to what this abstraction of being tested means.

    >> それでは、どのような本にようでダイビングをしてみましょう 手段をテストされているの抽象化。

  • In other words, even if you know nothing about cars, what sort of questions

    言い換えれば、あなたは何も知らない場合でも、 質問の車について、どのような

  • might you ask in order to determine if you're being tested, if you're the car?

    あなたがいるかどうかを判断するために頼むかもしれません あなたが車なら、あなたは、テストされていますか?

  • What characteristics might be present if a car is being tested?

    どのような特徴があるかもしれません 車がテストされている場合は提示?

  • >> AUDIENCE: Testing equipment.

    >> AUDIENCE:テスト機器。

  • >> DAVID MALAN: Testing equipment.

    >> DAVIDマラン:テスト機器。

  • So if testing equipment nearby, then emit less.

    検査機器もしそうであれば 近く、少ないし、放出します。

  • So I could imagine implementing that with some kind of cameras

    だから私は、実施想像できます カメラのいくつかの種類を持つこと

  • or detecting what's around you.

    またはあなたの周りに何を検出。

  • And let me propose, that just feels too complicated

    そして、私は、それを提案してみましょう あまりにも複雑に感じています

  • to actually have additional hardware just for that purpose.

    実際に追加を持っています ちょうどその目的のためのハードウェア。

  • >> AUDIENCE: If you're in park, if your hood is open.

    >> 聴衆:あなたがにしている場合 公園、あなたのフードが開いている場合。

  • >> DAVID MALAN: In park or hood open, so that's good.

    >> DAVIDマラン:公園でか フードオープンなので、それは良いことです。

  • >> AUDIENCE: And car running.

    >> AUDIENCE:そして車の走行。

  • >> DAVID MALAN: So that's a little more concrete-- and car running.

    >> DAVIDマラン:だから、少しです よりconcrete--や車の走行。

  • So this would be the conjunction of a few different conditions, if you will.

    だから、これはの連動になります いくつかの異なる条件、可能ならば。

  • So if the car is in park, and even though this is a very mechanical thing

    だから、車は公園内にある場合は、さらに これは非常に機械的なものですが、

  • typically, I could imagine writing software,

    一般的に、私ができました ソフトウェアを書く想像し、

  • especially because there's often a light there these days,

    特にがありますので、 多くの場合、そこに光、これらの日、

  • I could imagine there being software that can query the shifter

    私はされてそこに想像できます シフターを照会することができるソフトウェア

  • or what not, are you in park, are you in drive, are you in reverse.

    または、あなたは、公園で何をされません あなたがドライブに、あなたは逆です。

  • And I can get back an answer that's either yes

    そして、私は取り戻すことができます はいどちらかの答え

  • or no to those kinds of questions.

    あるいは全く質問のそれらの種類に。

  • >> And so I could also probably answer a question like, is the hood open.

    >> そして私はまた、おそらく答えることができます 質問などは、オープンフードです。

  • Maybe, there's some kind of sensor that either gives me back a 1 or 0,

    たぶん、センサーのいくつかの種類があります その1または0を私に戻って与えるのいずれか、

  • true or false, the hood is open.

    trueまたはfalse、ボンネットが開いています。

  • And then car running, I could detect that somehow via what mechanism?

    そして、車の走行が、私は検出することができました その何とか何機構を介して?

  • Like, the car is running, I could detect that it's on,

    同様に、車が実行され、I それが上だと検出することができ、

  • could I detect somehow that the car is moving?

    私は何とか検出することができました 車が動いていると?

  • >> AUDIENCE: RPMs.

    >> AUDIENCE:RPMを。

  • >> DAVID MALAN: Yeah, so there's always that needle that

    >> DAVIDマラン:うん、そうあります 常にその針こと

  • tells you how many rotations per minute the wheels are experiencing.

    どのように多く回転するごとに説明します 分車輪が経験しています。

  • And so I could look at that.

    そして、私はその時に見ることができます。

  • And if it's not 0, that probably means the car is moving.

    そして、それはおそらく、0ではない場合 車が動いていることを意味します。

  • But we have to be a little careful there,

    しかし、我々はしなければなりません そこに少し慎重に、

  • because-- let's simplify this-- if we just said, if car running,

    because--のはthis--簡素化しましょう 私たちが今言った場合、車の走行の場合、

  • we don't want to just emit less, we want if the car is running

    私たちはあまり放出したくありません、 車が実行されている場合、我々はしたいです

  • and it's being tested.

    それはテストされています。

  • >> So there are a few other ingredients that folks

    >> だから、いくつかの他があります 食材の人々

  • have hypothesized the software is doing, because absent the actual source code,

    ソフトウェアがやっている仮説を立てています、 存在しないため、実際のソースコード、

  • you can only sort of infer from the physical effects of the car as to what

    あなただけの種類のから推測することができます 何についての車の物理的な効果

  • might be going on underneath the hood in software.

    下に起こっている可能性があります ソフトウェアでフード。

  • So if car running and maybe, say, rear wheels not moving,

    だから車は、おそらく実行している場合 たとえば、後輪は動いていません、

  • might this be indicative of some kind of test?

    これが示す可能性があります テストのいくつかの種類の?

  • What am I hinting at here?

    私はここで何をほのめかしていますか?

  • Yeah, maybe, it's on one of those roller things,

    うん、多分、それは1にです これらのローラーのものの、

  • where like the wheels are turning in the front or in the back,

    ここで、車輪などを回っています 前面または背面で、

  • depending on whether it's front wheel or rear wheel drive, so half of the wheels

    それは前輪だかどうかに応じて、 後輪駆動、輪のように半

  • are moving, but the other two aren't, which

    移動しているが、 他の2つは、これではありません

  • is a weird situation in the real world.

    現実世界の奇妙な状況があります。

  • If you're driving on the road, that shouldn't happen.

    あなたは上で運転している場合 道路、それは起こるべきではありません。

  • But if you're in a warehouse on some kind of roller system,

    しかし、あなたは倉庫にしている場合 ローラーシステムのいくつかの種類に、

  • that might indeed happen.

    それは確かに起こる可能性があります。

  • >> I think folks also proposed that maybe, if the car is running and steering

    >> 私は、人々はまた、多分ことを提案したと思います 車が実行され、ステアリングされている場合

  • wheel not moving, that too might be a signal,

    その移動していないホイール、 あまりに信号かもしれないが、

  • because that's reasonable for like a straightaway on a road.

    それはのための合理的だから 道路上の直線コースなどがあります。

  • But even then, the human is probably moving it a little bit or certainly

    しかし、その後も、人間はおそらくです 確かにそれを少し移動したり、

  • over a few seconds.

    数秒を超えます。

  • Or the course of a minute, odds are it's not

    またはのコース 分、オッズは、それはありませんです

  • going to be fixated in exactly the same position.

    に固執するつもり 全く同じ位置。

  • >> So in other words, we can take substraction,

    >> 換言すれば、我々 substractionを取ることができ、

  • are you being tested, and break down that functionality

    あなたがテストされており、 その機能を打破

  • into these component ingredients.

    これらの構成要素の成分へ。

  • And that's truly what Volkswagen's engineers somehow did.

    そして、それは本当に何フォルクスワーゲンのです エンジニアは何とかしました。

  • They wrote software consciously to detect if the car is being tested,

    彼らは意識的にソフトウェアを書きました 車がテストされているかどうかを検出、

  • therefore emit less, else emit in the usual way.

    そのため、あまり他のを発します 通常の方法で放出します。

  • >> And the problem here, too, is that software is not

    >> そして、ここでの問題は、あまりにも、 ソフトウェアがないということです

  • something you can really see unless you have the so-called source code.

    あなたが本当にしない限り見ることができるもの あなたは、いわゆるソースコードを持っています。

  • So there's two different types of code-- at least two different types

    そのように二つの異なるタイプがあります code--、少なくとも2つの異なるタイプ

  • of code in the world.

    世界のコードの。

  • There's something called source code, which is not unlike what

    ソースと呼ばれるものがあります 何とは違っないコード、

  • we've been writing, source code.

    私たちは、ソースコードを書いてきました。

  • >> This is source code written in a language called pseudocode,

    >> これは、で書かれたソースコードであります 擬似コードと呼ばれる言語、

  • which is just something English-like.

    これだけで何か英語に似ています。

  • There's no formal definition of it.

    それの正式な定義はありません。

  • But C, and Java, C++, those are all formal languages that,

    しかし、C、およびJava、C ++、それら すべての形式言語であることを、

  • when you write in them, what you have is a text file containing source code.

    あなたがそれらに書くとき、あなたは何を持っています ソースコードを含むテキストフ​​ァイルです。

  • >> But there is also something in the world called machine code.

    >> しかし、またに何かがあります 世界はマシンコードと呼ばれます。

  • And machine code, unfortunately, is just 0's and 1's.

    残念ながら、機械コード、 ちょうど0と1です。

  • So machine code is what machines understand, of course.

    だから、マシンコードは何ですか マシンはもちろん、理解しています。

  • Source code is what humans understand.

    ソースコードは人間が理解するものです。

  • >> And generally, but not always, there is a program

    >> そして、一般的ではなく、 常に、プログラムが存在します

  • that a programmer uses that takes source code and turns it into machine code.

    プログラマが使用することは、ソースを取ります コー​​ドとマシンコードに変換します。

  • And that program is generally called a compiler.

    そして、そのプログラムは、 一般的に、コンパイラと呼ばれます。

  • So your input is source code, your output is machine code,

    だからあなたの入力はソースコードであり、 あなたの出力は、マシンコードです

  • and the compiler is a piece of software that does that process.

    コンパイラはの作品です そのプロセスを行うソフトウェア。

  • So this actually maps nicely to our inputs, algorithms, outputs.

    だから、これは実際にうまくマッピングします 私たちの入力、アルゴリズム、出力。

  • >> But this is a very specific incarnation of that, which is to say that,

    >> しかし、これは非常に特定の化身であります それを言うためにあるもの、の、

  • even if you own one of Volkswagen's cars that is guilty of this,

    あなたは、フォルクスワーゲンのの1を所有している場合でも この有罪である車、

  • it's not like you can just open the hood or open the user's manual or look

    あなただけで開くことができないようです フードまたはユーザーズマニュアルを開いたり、見て

  • at the source code, because by the time it reaches your car in your driveway,

    ソースコードで、時間によって理由 それは、あなたの私道に車を達します

  • it's already been converted into 0's and 1's.

    それはすでにです 0と1に変換されます。

  • And it's very hard, not impossible, but very hard to glean much of anything

    そして、それは、不可能、非常に難しいことではありません しかし、非常に難しいものの多くを収集するために

  • from just looking at the underlying 0's and 1's.

    ただ見てから 0と1の基礎となります。

  • So you can figure it out, ultimately, if you understand how a machine operates--

    だから場合は、最終的には、それを把握することができます あなたはどのようにマシンを理解しますoperates--

  • Intel inside-- if you understand the Intel architecture,

    あなたが理解していれば、インテルはinside-- インテル・アーキテクチャー、

  • but it's very time consuming.

    しかし、それは非常に時間がかかります。

  • And even there, you might not be able to see everything

    とにもそこに、あなたがかもしれません すべてを見ることができません

  • that the code can actually do.

    コー​​ドは実際に行うことができます。

  • >> Any questions about this or this kind of process more generally?

    >> このまたはこれについての質問 より一般的にはプロセスの種類は?

  • And actually, we can tie this discussion to yesterday's discussion of Apple.

    そして実際に、私たちは、この議論を結び付けることができます アップルの昨日の議論に。

  • This, too, is why the FBI can't just go and look in the suspect's phone

    これは、あまりにも、である理由FBIできないだけを 容疑者の携帯電話に行くと見えます

  • and find the lines of code, for instance, that enable the passcode

    そして、のために、コードの行を見つけます 例えば、パスコードを有効にします

  • or enable that 80-millisecond delay.

    またはその80ミリ秒の遅延を有効にします。

  • Because by the time it's on the fellow's iPhone,

    時間によってそれはですので、 仲間のiPhone上で、

  • it's already been converted to 0's and 1's.

    それはすでにです 0と1に変換します。

  • >> Well, let's pause here for our look at computational thinking.

    >> さて、私たちのためにここに一時停止してみましょう 計算の考え方を見てください。

  • Why don't we take a 15 minute break.

    なぜ我々は15分間の休憩を取ることはありません。

  • And when we return, we'll take a look at programming

    私たちが戻ったときと、我々はよ プログラミングを見てみましょう

  • itself and start to map some of these high level concepts

    自身といくつかをマップするために開始 これらの高レベルの概念の

  • to an actual, if playful, programming language.

    遊び心のある場合は、実際に、 プログラミング言語。

DAVID MALAN: Welcome back, everyone.

DAVIDマラン:再びようこそ、みんな。

字幕と単語

ワンタップで英和辞典検索 単語をクリックすると、意味が表示されます