1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID MALAN: Bine ai revenit, toată lumea. 3 00:00:01,790 --> 00:00:05,030 Deci, ieri, vă veți aminti că ne-am concentrat pe aceste teme aici. 4 00:00:05,030 --> 00:00:08,380 Așa că am avut patru topics-- general intimitate, securitate și societate; 5 00:00:08,380 --> 00:00:11,960 tehnologii de internet; cloud computing; și în cele din urmă, dezvoltare web. 6 00:00:11,960 --> 00:00:14,170 >> Ai cineva-au atins lățime de bandă sau timpul 7 00:00:14,170 --> 00:00:16,900 pentru a viziona un pic John Oliver noaptea trecută? 8 00:00:16,900 --> 00:00:20,120 Este de fapt destul de amuzant, dacă nu un pic înfricoșător. 9 00:00:20,120 --> 00:00:24,700 Orice întrebări cu privire la orice am făcut-o ieri? 10 00:00:24,700 --> 00:00:27,600 Clarificări? 11 00:00:27,600 --> 00:00:35,580 Orice întrebări pe care doriți să le realizați sigur că atingem astăzi într-o formă? 12 00:00:35,580 --> 00:00:37,300 ardezie atât de curat. 13 00:00:37,300 --> 00:00:38,760 >> Deci, ce e pe ordinea de zi pentru ziua de azi? 14 00:00:38,760 --> 00:00:41,301 Așa că am crezut că vom incepe azi cu o privire la ceea ce este în general 15 00:00:41,301 --> 00:00:44,460 cunoscut sub numele de calcul la gândeam riscul de simplifici, gândire 16 00:00:44,460 --> 00:00:46,636 ca un computer, probabil gândire ca un inginer, 17 00:00:46,636 --> 00:00:48,510 și încearcă să înceapă să organizați gândurile 18 00:00:48,510 --> 00:00:52,039 sau pentru a vă oferi un sentiment mai bun de ceea ce este implicat în fapt, comandant 19 00:00:52,039 --> 00:00:54,080 un computer pentru a face ceva prin intermediul programării. 20 00:00:54,080 --> 00:00:56,663 Și o vom ține la destul la nivel înalt, destul de mult limba engleză, 21 00:00:56,663 --> 00:00:59,850 dar încercați să utilizați de familiare exemple pentru a formaliza modul în care 22 00:00:59,850 --> 00:01:01,450 v-ar merge cu privire la rezolvarea problemelor. 23 00:01:01,450 --> 00:01:04,080 >> Și vom revedea unele CS subiecte, cum ar fi captarea, 24 00:01:04,080 --> 00:01:06,040 care a venit un cuplu de ori ieri, 25 00:01:06,040 --> 00:01:07,554 algoritmi, și apoi de reprezentare. 26 00:01:07,554 --> 00:01:09,720 Și acolo vom începe astăzi, într-un moment. 27 00:01:09,720 --> 00:01:11,481 Apoi vom arunca o privire la programare. 28 00:01:11,481 --> 00:01:13,480 Vom arunca o privire la unele constructe fundamentale 29 00:01:13,480 --> 00:01:16,450 cu care s-ar putea să fie familiarizat și s-ar putea găsi chiar destul de intuitiv. 30 00:01:16,450 --> 00:01:18,370 >> Ne vom uita, de fapt, la o programare eșantion 31 00:01:18,370 --> 00:01:21,244 mediu care este foarte accesibil, foarte jucăuș, și într-adevăr, orientate 32 00:01:21,244 --> 00:01:22,555 pentru vârstele de 12 și în sus. 33 00:01:22,555 --> 00:01:25,930 Vom petrece câteva minute acolo și apoi să ia lucrurile la un nivel mai scăzut 34 00:01:25,930 --> 00:01:30,360 și de fapt, vorbim despre unele dintre algoritmi si structuri de date, 35 00:01:30,360 --> 00:01:32,360 ca să spunem așa, că programatorii folosesc de obicei 36 00:01:32,360 --> 00:01:35,040 pentru a rezolva probleme mult mai mult mai eficient decât s-ar putea 37 00:01:35,040 --> 00:01:37,322 să fie capabil să facă fără ele cu totul. 38 00:01:37,322 --> 00:01:40,280 Apoi, după masa de prânz, vom arunca o privire la stive de tehnologie, care este doar 39 00:01:40,280 --> 00:01:42,240 un mod fantezist de a spune colecții de tehnologii 40 00:01:42,240 --> 00:01:43,690 că s-ar putea folosi pentru a rezolva unele probleme. 41 00:01:43,690 --> 00:01:46,670 Si vom vorbi despre alfabetul supa de limbi care există today-- 42 00:01:46,670 --> 00:01:50,930 Java și Python și C ++ și PHP și Ruby și tot felul de alte lucruri. 43 00:01:50,930 --> 00:01:53,740 >> Vom arunca o privire pe scurt la modelele de design. 44 00:01:53,740 --> 00:01:57,730 Programatori, în timp, au metodologii adoptate 45 00:01:57,730 --> 00:02:00,690 care tind să-i ajute rezolva probleme mai ușor. 46 00:02:00,690 --> 00:02:04,390 Atunci când începeți să vă vedeți scris același tip de cod din nou și din nou, 47 00:02:04,390 --> 00:02:08,080 oamenii oficializeze aceste repetiții și numele atribuim-le 48 00:02:08,080 --> 00:02:10,084 și apoi să le folosească și a le promova, în cele din urmă. 49 00:02:10,084 --> 00:02:12,250 Si vom vorbi un pic despre strategiile mobile, 50 00:02:12,250 --> 00:02:16,099 ca ceea ce înseamnă de fapt să face o aplicație mobilă sau un site web mobil. 51 00:02:16,099 --> 00:02:17,140 O faci tu pentru Android? 52 00:02:17,140 --> 00:02:17,730 O faci pentru iOS? 53 00:02:17,730 --> 00:02:19,160 O faci tu pentru amândoi aceia? 54 00:02:19,160 --> 00:02:20,326 Și care sunt compromisurile? 55 00:02:20,326 --> 00:02:23,180 Și apoi în cele din urmă, vom lua o programare web, care le- 56 00:02:23,180 --> 00:02:25,380 este un termen colectiv descrie într-adevăr orice moment 57 00:02:25,380 --> 00:02:28,410 scrieți software-ul care este menite să ruleze pe web, 58 00:02:28,410 --> 00:02:30,430 fie pe telefoanele sau desktop-uri sau laptop-uri. 59 00:02:30,430 --> 00:02:33,490 Vom arunca o scurtă privire la baze de date și proiectarea 60 00:02:33,490 --> 00:02:39,049 în aceasta, în cazul în care numai pentru că aproape orice interesante aplicatii web-based 61 00:02:39,049 --> 00:02:40,590 aceste zile are un fel de baze de date. 62 00:02:40,590 --> 00:02:42,380 În caz contrar, aceasta ar doar să fie conținut static. 63 00:02:42,380 --> 00:02:45,254 Și o bază de date vă permite să efectuați se modifică în timp, dacă te 64 00:02:45,254 --> 00:02:45,960 sau de la utilizatori. 65 00:02:45,960 --> 00:02:47,820 Și vom lua în considerare modul în care vă ar merge despre proiectarea 66 00:02:47,820 --> 00:02:50,510 această bază de date și un fel de jargon care s-ar putea veni într-un inginer 67 00:02:50,510 --> 00:02:52,790 discuție la o tablă albă atunci când de fapt, de punere în aplicare 68 00:02:52,790 --> 00:02:53,900 o aplicație pentru prima dată. 69 00:02:53,900 --> 00:02:57,002 >> Vom vorbi pe scurt despre API-uri, servicii utile 70 00:02:57,002 --> 00:02:59,960 pe care le puteți utiliza să stea pe umerii altora, fie companii 71 00:02:59,960 --> 00:03:02,619 sau persoane fizice, și de a rezolva ta propriile probleme mai repede. 72 00:03:02,619 --> 00:03:04,785 Și apoi ne vom dabble probabil un pic cu JavaScript, 73 00:03:04,785 --> 00:03:08,900 un limbaj de programare care este utilizată atât în ​​browsere aceste zile, dar, de asemenea, 74 00:03:08,900 --> 00:03:09,820 in servere. 75 00:03:09,820 --> 00:03:11,890 Si, poate, vom revizuiască, timp de autorizare, 76 00:03:11,890 --> 00:03:15,670 unele dintre hands-on noi chestii web a făcut ieri și să integreze cele două 77 00:03:15,670 --> 00:03:17,630 împreună înainte de a se suspenda. 78 00:03:17,630 --> 00:03:22,380 >> Deci, cu that-- ce e ahead-- este există ceva lipsă, pe care 79 00:03:22,380 --> 00:03:26,289 ar dori să vă asigurați că vom introduce și atinge pe la un moment dat. 80 00:03:26,289 --> 00:03:28,330 Dacă este izvoare în minte, aduceți-l înainte de mult timp. 81 00:03:28,330 --> 00:03:32,010 Dar de ce nu începem cu o uita-te la gândire de calcul. 82 00:03:32,010 --> 00:03:35,420 >> Și să-mi propun ca gândire de calcul este, din nou, 83 00:03:35,420 --> 00:03:38,830 un fel de descriere de nivel înalt de ce s-ar putea face un om de știință de calculator. 84 00:03:38,830 --> 00:03:42,470 Și într-adevăr, să începem cu trei ingrediente care 85 00:03:42,470 --> 00:03:44,207 s-ar putea intra în gândire de calcul. 86 00:03:44,207 --> 00:03:45,790 Acesta este doar un mod de a descrie. 87 00:03:45,790 --> 00:03:48,490 Am putea defini cu siguranță acest lucru în orice număr de moduri. 88 00:03:48,490 --> 00:03:50,630 >> Dar, lasă-mă să propună, de dragul de astăzi, 89 00:03:50,630 --> 00:03:53,910 că problemele lumii, toate problemele lumii, 90 00:03:53,910 --> 00:03:56,730 atunci când se apropie de un om de știință de calculator ar putea 91 00:03:56,730 --> 00:04:00,990 să fie privit ca ceea ce noi vom intrări de apel, care 92 00:04:00,990 --> 00:04:08,142 au nevoie pentru a obține hrănite în ceea ce vom numi algoritmi, care apoi randament ieșiri. 93 00:04:08,142 --> 00:04:10,600 Cu alte cuvinte, întregul lume de revendicare de rezolvare a problemelor I 94 00:04:10,600 --> 00:04:13,140 poate fi distilat în aceste trei ingrediente. 95 00:04:13,140 --> 00:04:14,450 Deci ce vreau să spun prin intrări? 96 00:04:14,450 --> 00:04:17,060 Intrări este doar ceea ce ești înmânat în scopul de a rezolva. 97 00:04:17,060 --> 00:04:20,052 >> De exemplu, iată o problemă de școală veche. 98 00:04:20,052 --> 00:04:22,760 Dacă am o carte de telefon aici și Vreau să uit ceva în ea, 99 00:04:22,760 --> 00:04:23,760 acest lucru este intrarea mea. 100 00:04:23,760 --> 00:04:26,260 Am 1000 sau cam asa ceva pagini într-o carte de telefon. 101 00:04:26,260 --> 00:04:27,780 Acest lucru este de intrare la problema mea. 102 00:04:27,780 --> 00:04:31,507 Și vreau să găsesc ceva cum ar fi Mike Smith, asa ca un prieten 103 00:04:31,507 --> 00:04:33,840 al cărui nume și număr este sperăm că în această carte de adrese. 104 00:04:33,840 --> 00:04:36,430 >> Aceasta este înainte de zilele de celulă telefoane, așa că nu pot doar să caute. 105 00:04:36,430 --> 00:04:38,540 Așa că trebuie să o fac vechi căutare de școală și de fapt, 106 00:04:38,540 --> 00:04:41,331 aceste intrări pentru unele răspuns. 107 00:04:41,331 --> 00:04:43,580 Iar acest răspuns este doar a merge care urmează să fie numit de ieșire. 108 00:04:43,580 --> 00:04:44,871 Așa că de intrare este cartea de telefon. 109 00:04:44,871 --> 00:04:47,787 Algoritmul este orice set de etapele I folosesc pentru a găsi Mike Smith. 110 00:04:47,787 --> 00:04:50,120 Iar producția este, sperăm, Numărul de telefon al lui Mike Smith. 111 00:04:50,120 --> 00:04:52,703 Și acest lucru, atunci ar fi doar reprezentativ pentru cele mai multe probleme 112 00:04:52,703 --> 00:04:55,210 la cu tine sunt factori de producție handed și doresc să producă rezultate. 113 00:04:55,210 --> 00:04:59,459 >> Așa că, înainte considerăm procesul prin care putem rezolva această problemă, 114 00:04:59,459 --> 00:05:01,250 constatare Mike Smith și ceva de genul, 115 00:05:01,250 --> 00:05:04,090 Să considerăm primul și intrările și ieșirile last--. 116 00:05:04,090 --> 00:05:08,060 Punct de vedere fizic, desigur, de intrare aici este o grămadă de hârtie lipite împreună 117 00:05:08,060 --> 00:05:09,400 sub forma unei cărți de telefon. 118 00:05:09,400 --> 00:05:13,660 Dar, calculatoare, laptop-uri de course-- și desktop-uri si chiar telefoane 119 00:05:13,660 --> 00:05:16,430 aceste days-- acestea sunt dispozitive electronice. 120 00:05:16,430 --> 00:05:20,920 >> Iar la sfârșitul zilei, ceea ce este singura intrare la un calculator? 121 00:05:20,920 --> 00:05:23,299 Ei bine, e ceva de genul acest cablu de alimentare aici. 122 00:05:23,299 --> 00:05:25,590 Am conectați-l în perete, și Am obține un flux de electroni, 123 00:05:25,590 --> 00:05:27,048 care îmi permite pornirea mașinii. 124 00:05:27,048 --> 00:05:30,420 Sau poate că acei electroni sunt creat prin intermediul bateriei mele. 125 00:05:30,420 --> 00:05:33,790 Dar, la sfârșitul zilei, asta singurul lucru care merge în laptop-ul meu. 126 00:05:33,790 --> 00:05:35,772 Și așa de mult mai interesant lucruri este în cele din urmă 127 00:05:35,772 --> 00:05:37,480 ies, dacă prin intermediul imprimantei 128 00:05:37,480 --> 00:05:40,320 sau ecran sau audially sau altele asemenea. 129 00:05:40,320 --> 00:05:45,320 >> Așa că, dacă tot avem noastră intrare fundamental la un calculator 130 00:05:45,320 --> 00:05:49,160 este de energie electrică, așa electronii care intra si sau afară, 131 00:05:49,160 --> 00:05:54,465 și așa cum putem folosi acea intrare pentru a reprezenta de fapt informații? 132 00:05:54,465 --> 00:05:57,090 Cu alte cuvinte, cum putem obține dintr-un simplu flux de energie electrică 133 00:05:57,090 --> 00:06:00,350 reprezentare reală cifre sau litere reale 134 00:06:00,350 --> 00:06:03,620 sau imagini reale de pe ecran sau filme reale sau e-mail-uri 135 00:06:03,620 --> 00:06:05,690 sau orice număr dintre acestea concepte de nivel superior, 136 00:06:05,690 --> 00:06:07,680 dacă vreți, că la sfârșitul zilei într-un fel 137 00:06:07,680 --> 00:06:11,950 trebuie să fie depozitate în această dispozitiv mecanic electronic 138 00:06:11,950 --> 00:06:16,260 folosind numai acele simplu ingredients-- electronii care vine și în afară? 139 00:06:16,260 --> 00:06:19,530 >> Așa că s-ar părea că, în cea mai simplă formă, 140 00:06:19,530 --> 00:06:23,260 singurul tip de state Am în lumea mea, așa 141 00:06:23,260 --> 00:06:25,350 la speak-- condiții în world-- mea este fie 142 00:06:25,350 --> 00:06:33,020 Am electroni care curge, electricitate care curge, sau eu fac not-- așa mai departe, off. 143 00:06:33,020 --> 00:06:35,850 Și să formalizeze on și off, ca un om de știință de calculator ar putea, 144 00:06:35,850 --> 00:06:37,255 cu doar 1 și 0. 145 00:06:37,255 --> 00:06:39,880 Hai să descrie unele arbitrare dar număr consistent să-l. 146 00:06:39,880 --> 00:06:41,970 1 mijloace sunt, 0 înseamnă off. 147 00:06:41,970 --> 00:06:45,427 Sau s-ar putea vedea, de asemenea, ca acest lucru mijloace adevărate cu privire și mijloace false. 148 00:06:45,427 --> 00:06:47,510 Ai putea face, de asemenea, negru și alb sau roșu și albastru. 149 00:06:47,510 --> 00:06:48,759 Ai nevoie doar de doi descriptori. 150 00:06:48,759 --> 00:06:52,240 Și un oameni de știință de calculator ar în general, utilizați doar 0 și 1. 151 00:06:52,240 --> 00:06:58,980 >> Așa că, dacă e cazul, singura mea alfabet este format din 0 și 1, a modului 152 00:06:58,980 --> 00:07:03,360 aș putea ajunge la chiar și numărul 2 într-un calculator, să nu mai vorbim de numărul 3 153 00:07:03,360 --> 00:07:06,140 sau o literă a alfabetului sau o imagine sau un film? 154 00:07:06,140 --> 00:07:08,910 Cum putem fel de bootstrap ne de la acest principiu de bază 155 00:07:08,910 --> 00:07:12,080 de la 0 și 1 și de fapt reprezintă ceva mai interesant? 156 00:07:12,080 --> 00:07:14,430 >> Ei bine, să punem această întrebare în așteptare pentru un moment 157 00:07:14,430 --> 00:07:17,520 și ia în considerare ceva sperăm familiare, 158 00:07:17,520 --> 00:07:21,150 chiar dacă nu s-au gândit cu adevărat despre în vreun detaliu pentru 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 mai mulți ani. 160 00:07:22,520 --> 00:07:24,780 Acesta este ce? 161 00:07:24,780 --> 00:07:28,050 Cum ai pronunță asta? 162 00:07:28,050 --> 00:07:30,770 Nu este o întrebare capcană. 163 00:07:30,770 --> 00:07:32,950 Un număr, dar ce este? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, sau 123. 165 00:07:34,842 --> 00:07:37,800 Si mi-a placut cum ai zis 1, 2, 3, pentru că este o modalitate de a vedea asta. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, este o secvență de trei simboluri. 167 00:07:39,870 --> 00:07:42,005 Este imaginile pe care le au acum cuvinte pentru. 168 00:07:42,005 --> 00:07:44,880 Și dacă ai un fel de citit pe toate împreună, un om tipic în limba engleză 169 00:07:44,880 --> 00:07:46,600 ar spune 123. 170 00:07:46,600 --> 00:07:48,350 Și asta e un fel de Conceptul de nivel superior, 171 00:07:48,350 --> 00:07:50,340 se simte ca un număr rezonabil de mare. 172 00:07:50,340 --> 00:07:51,490 >> Dar, cum am ajuns acolo? 173 00:07:51,490 --> 00:07:54,640 Ei bine, ar putea fi un timp de când v-ați gândit la asta ca asta, 174 00:07:54,640 --> 00:07:56,680 dar, din nou în ziua mea, un fel de învățat acest lucru 175 00:07:56,680 --> 00:08:01,030 ca coloana 1 a lui, a celor 10 coloană, iar coloana 100 a lui. 176 00:08:01,030 --> 00:08:06,400 Deci, după cum spune Lakisa, este 1, 2, 3, dar este, de asemenea, 123. 177 00:08:06,400 --> 00:08:08,700 Dar, cum putem obține de la fostul acesta din urmă? 178 00:08:08,700 --> 00:08:12,340 >> Ei bine, v-ar face în mod obișnuit în coloana 100 este, am un 1. 179 00:08:12,340 --> 00:08:14,794 Deci, asta e ca si cum spune de 100 de ori 1. 180 00:08:14,794 --> 00:08:16,210 Și apoi, în coloana 10 a lui, am 2. 181 00:08:16,210 --> 00:08:18,464 Deci, asta e ca si cum spune de 10 ori 2. 182 00:08:18,464 --> 00:08:19,630 În coloana 1 a lui, am 3. 183 00:08:19,630 --> 00:08:21,720 Deci, asta e ca și cum a zis 1 ori 3. 184 00:08:21,720 --> 00:08:24,290 >> Și, dacă am adăuga aceste lucruri împreună, acest lucru, desigur, 185 00:08:24,290 --> 00:08:27,470 este de 100 plus 10 plus 3. 186 00:08:27,470 --> 00:08:31,750 Și, oh, de aceea am obține acest lucru notiune nivel mai ridicat de 123. 187 00:08:31,750 --> 00:08:37,220 Este doar matematica de bază, prin care acestea simbolurile au greutăți pentru ei, dacă vă 188 00:08:37,220 --> 00:08:39,620 va, substituent sau valorile coloanelor. 189 00:08:39,620 --> 00:08:42,090 Și odată ce voi înmulți totul afară, am obține acest număr. 190 00:08:42,090 --> 00:08:47,840 >> Deci, cât de mulți dintre voi știți cum să vorbească binary-- 0 și 1's-- ca un computer? 191 00:08:47,840 --> 00:08:50,410 OK, perfect, nimeni, sau nici unul dintre voi crezi că faci. 192 00:08:50,410 --> 00:08:52,550 Dar eu v-ar revendica știu de fapt acest lucru deja. 193 00:08:52,550 --> 00:08:55,330 Avem nevoie doar pentru a sorta de tweak modelul nostru mintal un pic. 194 00:08:55,330 --> 00:08:57,250 Dar procesul este exact la fel. 195 00:08:57,250 --> 00:09:01,460 >> Lasă-mă să lase asta acolo sus și în schimb trage în jos acest lucru pentru un moment. 196 00:09:01,460 --> 00:09:05,060 In lumea calculatoarelor, avem doar 0 și 1 lui. 197 00:09:05,060 --> 00:09:07,240 Și astfel, lucru care este va schimba este ceea ce? 198 00:09:07,240 --> 00:09:10,920 Ei bine, în lumea mea umană, sistem zecimal, dec 10 sens, 199 00:09:10,920 --> 00:09:12,740 Am cât de multe cifre la dispoziția mea? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, nu? 202 00:09:16,540 --> 00:09:17,880 0 prin 9, desigur. 203 00:09:17,880 --> 00:09:21,210 >> Și de aceea avem un Locul 10 și locul lui de 100. 204 00:09:21,210 --> 00:09:22,380 În cazul în care se vine asta? 205 00:09:22,380 --> 00:09:24,430 Ei bine, acest lucru este de 10 la puterea de la 0. 206 00:09:24,430 --> 00:09:28,440 Acest lucru este de 10 la puterea de 1, 10 la puterea de 2, și așa mai departe. 207 00:09:28,440 --> 00:09:32,110 vă păstrați doar înmulțirea coloanelor de 10, pornind cu doar 1 208 00:09:32,110 --> 00:09:33,700 în cel de aici din dreapta. 209 00:09:33,700 --> 00:09:35,490 >> Deci, în lumea calculatoare, în cazul în care numai 210 00:09:35,490 --> 00:09:39,600 au o semnificație bi binary-- 2-- sau 0 și la 1, am doar 211 00:09:39,600 --> 00:09:42,420 într-adevăr nevoie să se schimbe baza pe care matematica. 212 00:09:42,420 --> 00:09:46,410 Deci, cu alte cuvinte, acum vom doar au coloana 1 și the-- 213 00:09:46,410 --> 00:09:51,270 în cazul în care este aceasta going-- coloana 2, a coloana 4, evident și poate dincolo. 214 00:09:51,270 --> 00:09:52,250 De ce este asta? 215 00:09:52,250 --> 00:09:55,650 Ei bine, acest lucru este de 2 puterea 0-lea. 216 00:09:55,650 --> 00:09:57,270 Acesta este 2, 1. 217 00:09:57,270 --> 00:09:59,610 Aceasta este de 2 la 2, și așa mai departe. 218 00:09:59,610 --> 00:10:04,910 >> Așadar, în timp aici, avem 1, 10, a 100, a lui 1000, 10.000 de 100.000, la 1 219 00:10:04,910 --> 00:10:10,560 milioane de oameni, și așa mai departe, aici avem 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Tocmai ai păstra înmulțirea cu 2, în loc să păstreze înmulțirea cu 10. 221 00:10:13,950 --> 00:10:16,780 Deci, acum, în cazul în care obiectivul la mână este de a reprezenta 222 00:10:16,780 --> 00:10:20,240 numere folosind doar 0 și 1, a Să ia în considerare modul în care vom ajunge acolo. 223 00:10:20,240 --> 00:10:26,540 >> Aceasta, desigur, este modelul 0 0 0, dar ce număr conceptual 224 00:10:26,540 --> 00:10:27,490 reprezintă? 225 00:10:27,490 --> 00:10:35,430 Ei bine, de 4 ori 0 plus 2 ori 0 plus 1 ori 0, să adăugăm cei împreună. 226 00:10:35,430 --> 00:10:40,030 4 ori 0 este, desigur, 0, plus 2 0 ori este, desigur, 0 plus 1 ori 0 227 00:10:40,030 --> 00:10:40,850 este, desigur, 0. 228 00:10:40,850 --> 00:10:44,910 Așa că ah, aceasta reprezintă numărul de noi, oamenii stiu ca 0. 229 00:10:44,910 --> 00:10:47,810 >> Ei bine, acum, hai foarte repede înainte de repede. 230 00:10:47,810 --> 00:10:53,600 Dacă, în schimb eu nu reprezint 0 0 0, dar să facem 1 0 1, 231 00:10:53,600 --> 00:10:57,010 care ar putea fi modul în care Lakisa, mai devreme, ar 1 0 1 pronunță doar. 232 00:10:57,010 --> 00:11:01,020 Dar acum, cum o ducem la mare nivel numărul noi, oamenii, s-ar putea ști? 233 00:11:01,020 --> 00:11:04,220 Deci, ce este acest număr? 234 00:11:04,220 --> 00:11:06,060 Este 5, numărul știm ca 5. 235 00:11:06,060 --> 00:11:06,870 >> Ei bine, de ce e asta? 236 00:11:06,870 --> 00:11:09,620 Ei bine, putem într-adevăr un fel de plimbare prin ea metodic 237 00:11:09,620 --> 00:11:14,880 4 ori 1, 2 ori 0, 1 ori 1. 238 00:11:14,880 --> 00:11:19,880 Adăugați cei împreună, așa acest lucru este de 4, plus 0, plus 1. 239 00:11:19,880 --> 00:11:21,577 Și asta e, într-adevăr, 5. 240 00:11:21,577 --> 00:11:24,660 Așa că e un pic cam plictisitor acum face aritmetică din nou și din nou. 241 00:11:24,660 --> 00:11:26,300 Dar procesul este exact la fel. 242 00:11:26,300 --> 00:11:28,380 >> Singurul lucru care are a schimbat în lumea noastră 243 00:11:28,380 --> 00:11:32,740 este faptul că coloanele noastre sunt 1, 2, 4, 8, 16, și așa mai departe, în loc de 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1000. 245 00:11:33,740 --> 00:11:40,000 Și asta e doar pentru că alfabetul nostru are scăzut de la 0 la 9 la doar 0 la 1. 246 00:11:40,000 --> 00:11:50,851 >> Deci, ca un test mic aici, cum ar fi Reprezentati numărul 7 în binar? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Ei bine, 0, adică 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Spune-o din nou, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfect. 253 00:12:03,550 --> 00:12:04,370 De ce este asta? 254 00:12:04,370 --> 00:12:08,530 Este eficient 4 plus 2 plus 1. 255 00:12:08,530 --> 00:12:09,580 Atat de bun. 256 00:12:09,580 --> 00:12:14,364 >> Cum reprezentăm un pic another-- cum despre numărul 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Închide, dar în sens invers. 259 00:12:20,690 --> 00:12:21,660 Deci, ce e asta? 260 00:12:21,660 --> 00:12:26,290 Este 4 plus 1, astfel că e 5 din nou. 261 00:12:26,290 --> 00:12:28,310 >> Așa că what's-- Îmi pare rău, Karina? 262 00:12:28,310 --> 00:12:29,220 0 1 0. 263 00:12:29,220 --> 00:12:34,762 0 1 0 ar fi 2, pentru că, din nou, chiar în cazul în care un fel de nu sari la tine, 264 00:12:34,762 --> 00:12:35,470 doar face matematica. 265 00:12:35,470 --> 00:12:40,390 4 ori 0, 0, 2 ori 1 este 2, 1 ori 0 este 0. 266 00:12:40,390 --> 00:12:42,830 Deci, acesta este numărul de noi cunoaștem ca 2. 267 00:12:42,830 --> 00:12:44,030 >> Ce zici de numărul 8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 Hm? 270 00:12:52,730 --> 00:12:53,330 Bun. 271 00:12:53,330 --> 00:12:56,130 Așa că avem nevoie de un alt fel de înlocuitor. 272 00:12:56,130 --> 00:12:59,570 Avem nevoie de 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 Și asta e valabil un fel nostru a vechiului sistem zecimal școală. 274 00:13:02,280 --> 00:13:05,280 Cum vă reprezintă numărul 1000? 275 00:13:05,280 --> 00:13:08,480 >> Ei bine, s-ar părea să fie un fel de dur într-un loc, 276 00:13:08,480 --> 00:13:10,390 dacă cereți să reprezinte numărul 1000, 277 00:13:10,390 --> 00:13:14,960 pentru că, chiar dacă vă place da-te 9 dintre acestea, 9 dintre acestea, 0 dintre acestea, 278 00:13:14,960 --> 00:13:18,730 care este cel mai mare număr pe care au, nu ai ajuns destul de la 1.000. 279 00:13:18,730 --> 00:13:26,920 Așa că, dacă ai 1000, ai nevoie doar de un alt poziție, astfel încât să puteți face 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo numărul 1.000. 281 00:13:29,460 --> 00:13:34,200 >> Așa că acum, să harta acest tip de înapoi la hardware discuție conceptuală, 282 00:13:34,200 --> 00:13:37,470 în cazul în care, din nou, de intrare a fost doar acest mic cablu de alimentare, energie electrică 283 00:13:37,470 --> 00:13:39,300 vin și curge afară. 284 00:13:39,300 --> 00:13:44,740 Și astfel, pentru ca aceasta să fie cartografiate de aici la acolo, ei bine, ce avem cu adevărat nevoie? 285 00:13:44,740 --> 00:13:49,460 Ei bine, vă puteți gândi de a fi în interiorul unei calculator, o mulțime de becuri, 286 00:13:49,460 --> 00:13:50,450 daca tu vei. 287 00:13:50,450 --> 00:13:52,040 Sunt numite într-adevăr tranzistori. 288 00:13:52,040 --> 00:13:55,121 Și tranzistori sunt doar switch-uri care poate fi fie pornit sau oprit. 289 00:13:55,121 --> 00:13:56,870 Deci, vă puteți gândi la un tranzistor care se află pe 290 00:13:56,870 --> 00:14:00,730 este permițând energie electrică să curgă și un tranzistor care este oprit ca oprire 291 00:14:00,730 --> 00:14:02,170 electricitate din care curge. 292 00:14:02,170 --> 00:14:04,130 Și, mai degrabă decât să ia peste luminile de aici, 293 00:14:04,130 --> 00:14:06,450 de ce nu fac acest tip de stil nou de școală. 294 00:14:06,450 --> 00:14:11,360 Deci, acest lucru ar putea fi un 1, o lanternă fiind pe, doar abia totuși. 295 00:14:11,360 --> 00:14:14,050 Și acest lucru ar putea fi un 0, iar acum este oprit. 296 00:14:14,050 --> 00:14:18,277 >> Deci, folosind acest dispozitiv fizic, eu poate reprezenta acum sistemul binar. 297 00:14:18,277 --> 00:14:19,235 Am nevoie doar de două state. 298 00:14:19,235 --> 00:14:21,660 Nu contează ce culoare este sau ce este. 299 00:14:21,660 --> 00:14:25,920 Tot ceea ce contează este că am o stare pe și un alt stat în afara. 300 00:14:25,920 --> 00:14:30,605 Deci, folosind telefonul meu aici, cum fac eu reprezintă numărul știm ca 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Sau pune în mod echivalent, ceea ce număr sunt eu acum reprezentând? 303 00:14:38,550 --> 00:14:39,810 0, deoarece aparatul este oprit. 304 00:14:39,810 --> 00:14:41,560 >> Și, dacă eu fac asta? 305 00:14:41,560 --> 00:14:43,583 Și acum, cum fac eu reprezintă numărul 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Pot să împrumut telefonul tău aici, așa cum am făcut-o ieri? 308 00:14:50,930 --> 00:14:58,490 Așa că hai să vedem, așa că dacă vreau să reprezinte numărul 2, este acesta numărul 2? 309 00:14:58,490 --> 00:14:59,050 Nu. 310 00:14:59,050 --> 00:15:02,250 Ce număr sunt eu accidental reprezentând aici? 311 00:15:02,250 --> 00:15:03,550 Aceasta este de fapt numărul 3. 312 00:15:03,550 --> 00:15:05,008 >> Deci care vreau să opri? 313 00:15:05,008 --> 00:15:09,634 Negru de telefon sau-- bine, dacă Sunt-- telefon negru sau telefon alb? 314 00:15:09,634 --> 00:15:10,300 Telefonul alb. 315 00:15:10,300 --> 00:15:17,020 Deci, dacă am rândul său, acest off și noi line-l aici, avem un 1 316 00:15:17,020 --> 00:15:19,487 în locul 2 și un 0 în loc de 1 lui. 317 00:15:19,487 --> 00:15:21,195 Și, așa că eu sunt acum reprezentând numărul 2. 318 00:15:21,195 --> 00:15:24,680 Și acest lucru, desigur, ar fi numărul 3, pentru că acum ambele aceste lumini 319 00:15:24,680 --> 00:15:25,350 sunt pe. 320 00:15:25,350 --> 00:15:27,480 >> Și eu voi opri aici, dar este evident motivul pentru 321 00:15:27,480 --> 00:15:31,100 dacă vreau să reprezintå numărul 4 sau 8 sau mai mare, 322 00:15:31,100 --> 00:15:32,529 Voi avea nevoie de mai multe telefoane. 323 00:15:32,529 --> 00:15:33,820 Dar asta e tot ce se întâmplă. 324 00:15:33,820 --> 00:15:37,800 Așa că, dacă v-ați auzit vreodată că în interiorul a-- mulțumesc calculator Tu-- 325 00:15:37,800 --> 00:15:42,269 este milioane de tranzistori, asta doar milioane de switch-uri mici mici. 326 00:15:42,269 --> 00:15:44,310 Și nu sunt lumină bulbi care activa si dezactiva, 327 00:15:44,310 --> 00:15:48,340 dar ele permit, fie de energie electrică să curgă undeva sau opri. 328 00:15:48,340 --> 00:15:52,140 Și așa e ta doi states-- pornit sau oprit, pornit sau oprit. 329 00:15:52,140 --> 00:15:55,730 >> Așa că ne-ar părea acum pentru a avea această capacitate 330 00:15:55,730 --> 00:16:00,590 pentru a reprezenta acest concept ne-ar plăcea în hardware-ul real. 331 00:16:00,590 --> 00:16:05,520 Dar tot ce avem acum este abilitatea pentru a reprezenta numere s-ar părea. 332 00:16:05,520 --> 00:16:08,580 Deci, cum putem merge cu privire la reprezentarea litere ale alfabetului, care 333 00:16:08,580 --> 00:16:12,310 se simte ca urmatorul fel de facilitate tine ar dori să adăugați la un computer modern 334 00:16:12,310 --> 00:16:14,280 odată ce ai numere? 335 00:16:14,280 --> 00:16:16,930 >> Și într-adevăr, dacă te gândești ea, istoric, calculatoare 336 00:16:16,930 --> 00:16:19,426 au fost introduse într-adevăr pentru a servi ca și calculatoare numeric. 337 00:16:19,426 --> 00:16:21,300 Dar, desigur, acestea zile, ei fac mult mai mult. 338 00:16:21,300 --> 00:16:23,799 Chiar și atunci când boot-up, de obicei, a se vedea unul sau mai multe cuvinte. 339 00:16:23,799 --> 00:16:27,420 Deci, cum vă reprezintă cuvinte, dacă tot ce ai este, din nou, 340 00:16:27,420 --> 00:16:31,054 energie electrică la sfârșitul fișierului zi, sau 0 și echivalent 1 lui? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Da. 343 00:16:35,690 --> 00:16:38,320 Da, vreau să spun, am cam făcut acest lucru ieri, într-o anumită formă, 344 00:16:38,320 --> 00:16:40,200 în cazul în care, la un moment dat, Cred că în mod arbitrar 345 00:16:40,200 --> 00:16:46,741 a spus că, dacă vrem să reprezintå litera A, am putea numi asta 1. 346 00:16:46,741 --> 00:16:49,990 Era în contextul criptografie, în cazul în care tocmai am avut nevoie de un fel de cod, 347 00:16:49,990 --> 00:16:51,160 un fel de cartografiere. 348 00:16:51,160 --> 00:16:56,680 >> Deci, poate că A va fi reprezentat ca 1, și B va fi reprezentat ca un 2, 349 00:16:56,680 --> 00:17:01,560 și Z vor fi reprezentate ca un 26, de exemplu. 350 00:17:01,560 --> 00:17:07,430 Și, atunci singura problemă este că, dacă eu sunt va codifica scrisorile în e-mailurile mele 351 00:17:07,430 --> 00:17:10,430 sau în mesajele text mele ca numere, voi toți 352 00:17:10,430 --> 00:17:12,640 trebuie să fie de acord să folosească același set de convenții. 353 00:17:12,640 --> 00:17:14,619 Și într-adevăr, lumea a făcut exact acest lucru. 354 00:17:14,619 --> 00:17:18,040 >> Există un sistem în lume numita ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Cod pentru Schimbul de Informații, care este pur și simplu o decizie de câțiva ani 356 00:17:21,640 --> 00:17:25,720 în urmă, că oamenii a făcut ca a decis că o va egala, nu 357 00:17:25,720 --> 00:17:32,260 1, 2, și 26, și așa forth-- este un putin different-- dar 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 Și eu voi trage un diagramă într-un moment. 359 00:17:34,010 --> 00:17:34,580 Dar este arbitrară. 360 00:17:34,580 --> 00:17:36,329 Dar nu contează că este arbitrară. 361 00:17:36,329 --> 00:17:38,620 Lumea trebuie să fie doar consistente. 362 00:17:38,620 --> 00:17:40,540 >> Acum, mai recent, e ceva crescatorul 363 00:17:40,540 --> 00:17:45,430 numit Unicode, pentru că un fel din lume a realizat, după inventarea calculatoarelor, 364 00:17:45,430 --> 00:17:50,977 că există mai mult decât bine 256 simboluri din lume 365 00:17:50,977 --> 00:17:53,560 pe care ne-am putea dori să reprezinte, mai ales atunci când introduce 366 00:17:53,560 --> 00:17:58,420 limbi asiatice și alte simbolici care au nevoie de mai mult decât tine expresivitate 367 00:17:58,420 --> 00:18:02,150 se poate încadra în cea mai veche versiune a acest cod, care a fost numit ASCII. 368 00:18:02,150 --> 00:18:05,250 Așa că Unicode permite de fapt să utilizați mai mult 0 și 2. 369 00:18:05,250 --> 00:18:08,830 În special, vă păstrați cursul ședinței, bytes cuvânt în societate și chiar doar 370 00:18:08,830 --> 00:18:09,400 ieri. 371 00:18:09,400 --> 00:18:12,040 Și un octet este ceea ce din nou? 372 00:18:12,040 --> 00:18:14,840 >> Ce este un octet? 373 00:18:14,840 --> 00:18:15,700 Este doar 8 biți. 374 00:18:15,700 --> 00:18:17,150 Deci, ce înseamnă că într-adevăr înseamnă? 375 00:18:17,150 --> 00:18:22,400 Asta înseamnă că, mai devreme, când am fost vorbind despre binar și am fost folosind 376 00:18:22,400 --> 00:18:28,010 în mod arbitrar trei biți atunci când am fost vorbind despre binary-- loc de 1, a 377 00:18:28,010 --> 00:18:33,600 Locul de 2, iar 4 este place-- bine, un octet înseamnă doar că vorbești 378 00:18:33,600 --> 00:18:38,730 Nu în unități de câte trei, dar patru, cinci, șase, șapte și opt, 379 00:18:38,730 --> 00:18:46,910 care ne dă locul 8 lui, 16, 32 au, 64 au, și pe 128 a lui. 380 00:18:46,910 --> 00:18:50,010 >> Cu alte cuvinte, un pic nu este totul că utilă o unitate de măsură, 381 00:18:50,010 --> 00:18:53,132 pentru că e la fel ca și un mic minuscul bucată de informații, on sau off. 382 00:18:53,132 --> 00:18:54,840 Așa că acum câțiva ani, lumea tocmai a decis 383 00:18:54,840 --> 00:18:59,060 este ușor mai convenabil pentru a vorbi în termeni de bytes, opt lucruri la un moment dat. 384 00:18:59,060 --> 00:19:01,670 Și așa, astfel, sa născut noțiunea de octet. 385 00:19:01,670 --> 00:19:03,640 Și așa avem opt biți aici. 386 00:19:03,640 --> 00:19:06,810 >> Și se pare, de asemenea, pentru similare motive, lumea a decis ani 387 00:19:06,810 --> 00:19:12,439 în urmă, care să reprezinte o literă ASCII, vei folosi unități de 8 biți. 388 00:19:12,439 --> 00:19:14,230 Deci, chiar dacă nu nevoie de mulți, tu ești 389 00:19:14,230 --> 00:19:18,130 întotdeauna va utiliza 8 biți pentru a reprezintă o literă a alfabetului. 390 00:19:18,130 --> 00:19:20,950 Și acest lucru este convenabil, pentru că apoi, dacă 391 00:19:20,950 --> 00:19:28,720 primi un mesaj care are 0 0 0 1 1 1 1 0, urmat de un alt 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, așa că, dacă primiți 16 biți, lumea poate doar 393 00:19:33,320 --> 00:19:37,460 presupunem că primele 8 sunt o singură literă iar al doilea 8 reprezintă o altă literă. 394 00:19:37,460 --> 00:19:39,240 >> Nu contează cât de multe sunt. 395 00:19:39,240 --> 00:19:41,460 Contează doar că suntem cu toții consecvent 396 00:19:41,460 --> 00:19:42,950 când vom interpreta acești biți. 397 00:19:42,950 --> 00:19:44,377 Și acest lucru a fost pur și simplu la întâmplare. 398 00:19:44,377 --> 00:19:47,210 Asta înseamnă că ceva, dar nu am făcut-o cred că într-adevăr despre ce înseamnă. 399 00:19:47,210 --> 00:19:49,620 >> Deci este o mică minciună albă. 400 00:19:49,620 --> 00:19:51,990 Inițial, ASCII folosit de fapt, numai 7 biți. 401 00:19:51,990 --> 00:19:54,180 Iar al optulea bit numita ASCII extins. 402 00:19:54,180 --> 00:19:56,290 Dar ideea este, în cele din urmă, la fel. 403 00:19:56,290 --> 00:19:58,850 Lumea în general standardizat pe 8 biți. 404 00:19:58,850 --> 00:20:04,290 >> Deci, acest lucru s-ar părea să fie un pic limitarea, pentru că numai eu pot 405 00:20:04,290 --> 00:20:07,970 reprezintă capitalul A, capitalul B, prin Z. de capital 406 00:20:07,970 --> 00:20:10,940 Dar, într-adevăr, nu, dacă mă duc sa-- există o grămadă de resurse 407 00:20:10,940 --> 00:20:13,695 on-line, de exemplu, asciitable.com, aceasta 408 00:20:13,695 --> 00:20:16,310 va fi un pic copleșitoare la început. 409 00:20:16,310 --> 00:20:18,910 Dar, voi atrage atenția asupra ceea ce este important aici. 410 00:20:18,910 --> 00:20:24,090 >> Acest lucru se întâmplă doar la be-- și eu voi walk-- să vedem, dacă mă duc aici. 411 00:20:24,090 --> 00:20:27,990 Aici este, în zecimal coloană, numărul 65. 412 00:20:27,990 --> 00:20:32,201 Iar pe scrisoarea coloana din dreapta caracter, Cro, este litera A. 413 00:20:32,201 --> 00:20:34,450 Și tu poți ignora, pentru moment, totul în mijloc. 414 00:20:34,450 --> 00:20:36,769 Acesta este hexazecimal, octal, și un cod HTML. 415 00:20:36,769 --> 00:20:39,810 La acest site este doar încearcă să arunce o mulțime de informații la tine la o dată. 416 00:20:39,810 --> 00:20:42,970 Dar tot ce ne interesează este zecimal coloană și coloana de caractere. 417 00:20:42,970 --> 00:20:46,190 >> Deci, prin această logică, ceea ce este numărul pe care lumea 418 00:20:46,190 --> 00:20:50,510 a decis reprezintă o literă mică a? 419 00:20:50,510 --> 00:20:52,230 Da, 97. 420 00:20:52,230 --> 00:20:55,850 Si doar pentru a confunda potențial ușor, 421 00:20:55,850 --> 00:21:03,715 ce număr a decis lumea ar reprezenta numărul 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Dreapta, pentru că we-- 49, se pare aici, în jos, în partea din stânga jos. 424 00:21:10,910 --> 00:21:12,320 >> Acum, ce vreau sa spun prin asta? 425 00:21:12,320 --> 00:21:14,830 Deci, se pare că în sistemele informatice, 426 00:21:14,830 --> 00:21:16,840 există în general o diferență fundamentală 427 00:21:16,840 --> 00:21:19,920 între un număr și un caracter. 428 00:21:19,920 --> 00:21:22,330 Un număr este lucru pe care îl aflat în creștere, atunci când 429 00:21:22,330 --> 00:21:23,830 am fost super tânăr în școală clasa. 430 00:21:23,830 --> 00:21:25,110 Este lucruri pe care le conta cu. 431 00:21:25,110 --> 00:21:30,220 Dar un personaj este doar o formă, o glyph, ca să spunem așa, pe ecran. 432 00:21:30,220 --> 00:21:36,200 >> Acum, noi oamenii un fel de a se vedea ceva care arata ca acest lucru. 433 00:21:36,200 --> 00:21:39,060 Si noi spunem, oh, că este numărul 2. 434 00:21:39,060 --> 00:21:44,999 Dar nu, asta e doar un simbol care arată ca ceea ce noi stim ca numarul 2. 435 00:21:44,999 --> 00:21:46,790 Și așa e acest lucru distincție fundamentală 436 00:21:46,790 --> 00:21:50,340 între numere reale și de caractere. 437 00:21:50,340 --> 00:21:52,130 Acesta este un număr. 438 00:21:52,130 --> 00:21:54,420 Dar, în general, în contextul unui calculator, 439 00:21:54,420 --> 00:21:56,809 în cazul în care în loc să vezi ceva de genul quoted-- 440 00:21:56,809 --> 00:21:58,600 și tu nu întotdeauna trebuie să-l vadă citat, 441 00:21:58,600 --> 00:22:01,474 dar de dragul discussion-- dacă vezi citate în jurul numărului, 442 00:22:01,474 --> 00:22:02,730 acest lucru este acum un personaj. 443 00:22:02,730 --> 00:22:06,330 Așa că acest număr de 2 dedesubt capota interiorul unui calculator 444 00:22:06,330 --> 00:22:12,220 ar fi reprezentat cu un model de biți care reprezintă numărul 445 00:22:12,220 --> 00:22:14,850 50 conform tabelului on-line. 446 00:22:14,850 --> 00:22:18,300 >> Cu toate acestea, în cazul în care un computer doar vede acest lucru, acest lucru 447 00:22:18,300 --> 00:22:24,580 ar fi reprezentat prin model de bit 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Întrucât, acest personaj ar de fapt, să fie reprezentat as-- și acum, 449 00:22:29,595 --> 00:22:34,710 Trebuie să mă gândesc un pic harder-- astfel încât acest lucru caracter ar fi reprezentat cu 0 450 00:22:34,710 --> 00:22:39,080 0 1-- ce am nevoie aici? 451 00:22:39,080 --> 00:22:44,450 0 0 1 1 0 0 1 0. 452 00:22:44,450 --> 00:22:45,480 Cum am făcut acest lucru? 453 00:22:45,480 --> 00:22:49,580 Ei bine, acest lucru este numărul 50, în cazul în care multiplica-l folosind aceste coloane, 454 00:22:49,580 --> 00:22:53,530 acesta este numărul 2, etc. de aceea există această dihotomie. 455 00:22:53,530 --> 00:22:55,850 >> Și acesta este doar un teaser acum pentru caracteristici 456 00:22:55,850 --> 00:22:59,710 care există în limbaje de programare pe care o vom atinge pe scurt mai târziu astăzi. 457 00:22:59,710 --> 00:23:01,950 În limbaje de programare, aveți în general, 458 00:23:01,950 --> 00:23:04,495 dar nu întotdeauna, lucrurile suna diferite tipuri de date. 459 00:23:04,495 --> 00:23:06,870 Cu alte cuvinte, un programmer-- atunci când el sau ea este scris, 460 00:23:06,870 --> 00:23:11,150 un programator devine pentru a decide în ce format pentru a stoca datele sale. 461 00:23:11,150 --> 00:23:14,120 Puteți fie să stoca date ca numere prime, cum ar fi numărul 2. 462 00:23:14,120 --> 00:23:17,940 Sau le puteți stoca ca siruri de caractere, sau secvențe de caractere 463 00:23:17,940 --> 00:23:21,550 pe care le-ar exprima, în general, cu citate in limba de programare. 464 00:23:21,550 --> 00:23:25,230 >> Puteți avea lucruri called-- O să simplificăm și să le numesc 465 00:23:25,230 --> 00:23:28,870 real, astfel încât numerele Numere care nu sunt numere întregi, cum ar fi numărul 2, 466 00:23:28,870 --> 00:23:31,310 dar numere ca 4.56. 467 00:23:31,310 --> 00:23:33,490 Astfel încât numere reale pot, de asemenea, au puncte de zecimale, 468 00:23:33,490 --> 00:23:36,340 astfel încât este un alt fundamental bucată de date într-un calculator. 469 00:23:36,340 --> 00:23:41,920 Si atunci poti avea chiar alte tipuri de date statice. 470 00:23:41,920 --> 00:23:45,810 Deci asta e doar un teaser cu adevărat de cele mai simple decizii de proiectare 471 00:23:45,810 --> 00:23:50,960 că un programator ar putea face sub capota. 472 00:23:50,960 --> 00:23:52,925 >> Deci, orice întrebări doar încă? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Așa că hai să încercăm să facem acest lucru un pic mai real. 475 00:23:59,860 --> 00:24:02,120 Acest lucru hardware-ul nu este atât de mult în uz mai. 476 00:24:02,120 --> 00:24:07,420 Dar, cel mai mult pentru toată lumea din această cameră, probabil, a crescut cu și încă mai utilizează hard disk-uri 477 00:24:07,420 --> 00:24:08,010 într-un fel. 478 00:24:08,010 --> 00:24:10,100 >> Chiar dacă cele mai multe dintre laptop-urile noastre nu mai 479 00:24:10,100 --> 00:24:15,900 au dispozitive care funcționează ca acest lucru, în schimb laptop-uri de azi, în general, 480 00:24:15,900 --> 00:24:18,590 au solid state drive fără piese în mișcare. 481 00:24:18,590 --> 00:24:22,840 Și care tinde să fie mai scumpe, din păcate, dar un pic mai repede 482 00:24:22,840 --> 00:24:27,230 și un-- bine, de multe ori, mult mai repede, care este unul dintre motivele. 483 00:24:27,230 --> 00:24:28,980 Și, de asemenea, contrar genera cât mai multă căldură. 484 00:24:28,980 --> 00:24:31,680 Acesta poate fi mai mică, deci este în general, un net pozitiv. 485 00:24:31,680 --> 00:24:35,030 >> Dar acest lucru ne permite să o hartă puțin mai concret ce 486 00:24:35,030 --> 00:24:38,460 vorbim despre de la 0 și 1 este nivelul de acum la un dispozitiv fizic. 487 00:24:38,460 --> 00:24:40,810 Este un lucru pentru mine să vorbesc aproximativ 0 și 1 lui în termeni 488 00:24:40,810 --> 00:24:43,990 din telefonul meu sau în termeni abstract de switch-uri fiind pornit și oprit. 489 00:24:43,990 --> 00:24:45,340 Dar, ce zici de hard disk-uri? 490 00:24:45,340 --> 00:24:48,495 În laptop-uri, dacă aveți o vârstă unul, sau în computer desktop, 491 00:24:48,495 --> 00:24:51,200 sau cu siguranță în servere astăzi, în cazul în care aveți 492 00:24:51,200 --> 00:24:53,070 hard disk-uri, care au un terabyte de spațiu, 493 00:24:53,070 --> 00:24:55,560 4 terabytes de spațiu, bine ce înseamnă asta? 494 00:24:55,560 --> 00:24:59,560 >> Un hard disk cu 1 terabyte de mijloace spațiale 495 00:24:59,560 --> 00:25:03,890 există 1 trilion de bytes în interiorul acestuia într-un fel, 496 00:25:03,890 --> 00:25:10,450 sau 8 trilioane de biți echivalent interior. 497 00:25:10,450 --> 00:25:16,240 1 terabyte ar fi 8 terabiți sau 1 trilion de biți, care 498 00:25:16,240 --> 00:25:19,330 înseamnă că dacă aveți un hard unitate, aveți cumva 499 00:25:19,330 --> 00:25:22,400 sau alte un trilion 0 lui și în interiorul acesteia 1 lui. 500 00:25:22,400 --> 00:25:25,360 Și, dacă luăm doar o privire la un imagine arbitrară a unui hard disk 501 00:25:25,360 --> 00:25:30,110 reprezentativ, acest lucru este ceea ce un hard unitate ar putea arata de obicei, la fel ca în interior. 502 00:25:30,110 --> 00:25:32,600 >> Ea, de asemenea, este un fel de un jucator vechi fonograf 503 00:25:32,600 --> 00:25:35,350 dar, în general, cu mai multe înregistrări în interiorul, astfel încât 504 00:25:35,350 --> 00:25:38,270 la speak-- multiple platane, așa cum se numesc, 505 00:25:38,270 --> 00:25:42,259 metalice discuri circulare, și apoi un cap de citire pic, 506 00:25:42,259 --> 00:25:43,550 de mult ca un jucător de înregistrare vechi. 507 00:25:43,550 --> 00:25:46,589 Și că, capul de citire se deplasează înapoi și mai departe și într-un fel citește biții. 508 00:25:46,589 --> 00:25:49,380 Și ce e pe aceste platane, chiar deși noi, oamenii nu le pot vedea, 509 00:25:49,380 --> 00:25:52,757 fie în realitate, fie în această imagine, există mici particule magnetice mici. 510 00:25:52,757 --> 00:25:55,090 Și chiar dacă ai mult timp uitat cum functioneaza electricitatea, 511 00:25:55,090 --> 00:25:57,550 o particulă magnetică care este încărcat în general 512 00:25:57,550 --> 00:26:00,570 are un capăt la nord și sud end-- atât de nord și sud. 513 00:26:00,570 --> 00:26:03,000 Și așa lumea doar a decis ceva timp în urmă 514 00:26:03,000 --> 00:26:06,570 că, în cazul în care un protocol magnetic în esență este aliniat ca aceasta, la nord-sud, 515 00:26:06,570 --> 00:26:07,610 Să numim un 1. 516 00:26:07,610 --> 00:26:10,470 Dacă este în schimb nord-sud, hai să numim un 0. 517 00:26:10,470 --> 00:26:13,350 Și, așa că, dacă aveți la de evacuare a unui trilion 518 00:26:13,350 --> 00:26:16,300 minuscul magnetic particles-- și, sperăm, 519 00:26:16,300 --> 00:26:18,740 ingeniozitatea hardware în pentru a se răsturna pe cei din jurul 520 00:26:18,740 --> 00:26:24,450 după cum vedeți fit-- dacă doriți să reprezintă un întreg buchet de 0, aveți 521 00:26:24,450 --> 00:26:28,120 nevoie doar de 8 particule magnetice toate aliniate ca aceasta. 522 00:26:28,120 --> 00:26:30,330 Iar dacă vrei să reprezinte opt 1, aveți doar 523 00:26:30,330 --> 00:26:33,170 nevoie de 8 particule magnetice aliniate spate în spate la spate, ca acest lucru. 524 00:26:33,170 --> 00:26:35,515 >> Ce înțeleg prin particule magnetice? 525 00:26:35,515 --> 00:26:38,390 Sincer, toți acești ani mai târziu, lucru care încă îmi vine în minte 526 00:26:38,390 --> 00:26:42,139 este acest tip, dacă tu a crescut cu acest lucru. 527 00:26:42,139 --> 00:26:43,930 Acesta este un little-- pentru cei unfamiliar-- un 528 00:26:43,930 --> 00:26:47,810 mică jucărie din copilărie că are acest om aici pleșuv 529 00:26:47,810 --> 00:26:51,690 care are toate aceste mici puțin negru particule magnetice care vin cu ea. 530 00:26:51,690 --> 00:26:53,930 Și, folosind acel băț roșu, care este doar un magnet, 531 00:26:53,930 --> 00:26:58,460 aveți posibilitatea să-i dea un fel de mustață sau sprâncene sau păr sau ceva pe el. 532 00:26:58,460 --> 00:27:00,710 Așa că, de fapt, dacă am zoom în, de exemplu, aceasta 533 00:27:00,710 --> 00:27:02,950 este genul de joc pe care poate juca cu Wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> Și acest lucru este doar să spun, aceste sunt particule magnetice mult mai mari 535 00:27:06,570 --> 00:27:09,890 decât sunt de fapt, pe un hard-disk, și particule magnetice mult mai puține. 536 00:27:09,890 --> 00:27:11,640 Dar, de fapt, să vedem apoi, dacă aveți 537 00:27:11,640 --> 00:27:14,720 particule magnetice mici într-un hard disk, cum poți de fapt 538 00:27:14,720 --> 00:27:19,090 folosi pentru a reprezenta date. 539 00:27:19,090 --> 00:27:20,070 >> [REDARE VIDEO] 540 00:27:20,070 --> 00:27:24,190 >> -ORAȘUL Hard disk este în cazul în care PC-ul stochează cele mai multe dintre datele sale permanente. 541 00:27:24,190 --> 00:27:27,170 Pentru a face acest lucru, datele călătorește din memoria RAM de-a lungul 542 00:27:27,170 --> 00:27:31,720 cu semnale software care spun hard disk cum se păstrează datele respective. 543 00:27:31,720 --> 00:27:36,570 Hard disk Circuitele traduce cele Semnalele de tensiune. în fluctuații 544 00:27:36,570 --> 00:27:40,880 Acestea, la rândul său, de control hard-disk în mișcare parts-- unele dintre puținele în mișcare 545 00:27:40,880 --> 00:27:43,440 piese de stânga în calculator moderne. 546 00:27:43,440 --> 00:27:47,650 >> Unele dintre semnalele de control a motorului, care se învârte platane acoperite cu metal. 547 00:27:47,650 --> 00:27:50,980 Datele dvs. este de fapt stocate pe aceste platane. 548 00:27:50,980 --> 00:27:56,250 Alte semnale de a muta capetele de citire / scriere pentru a citi sau scrie date pe platane. 549 00:27:56,250 --> 00:28:00,100 Acest echipament este atât de precisă că un fir de păr uman nu ar putea chiar 550 00:28:00,100 --> 00:28:02,800 trec între capetele și filare platane. 551 00:28:02,800 --> 00:28:04,887 Cu toate acestea, totul funcționează la viteze teribil. 552 00:28:04,887 --> 00:28:05,470 [END REDARE] 553 00:28:05,470 --> 00:28:06,780 Și puteți vedea în cele capătul cozii video, 554 00:28:06,780 --> 00:28:08,340 în general, există mai multe platane. 555 00:28:08,340 --> 00:28:10,250 Și astfel, încât capul de citire nu citește doar partea de sus. 556 00:28:10,250 --> 00:28:12,458 Este un fel de trei sau patru sau mai multe capete de citire 557 00:28:12,458 --> 00:28:14,920 care se misca in acest fel, citirea datelor simultan. 558 00:28:14,920 --> 00:28:17,407 >> Deci, există o mulțime de complexitatea și un fel de sincronizare 559 00:28:17,407 --> 00:28:18,740 care este implicat într-un hard-disk. 560 00:28:18,740 --> 00:28:21,920 Și lucrul se învârte într-adevăr al naibii rapid, astfel încât există o mulțime de complexitate. 561 00:28:21,920 --> 00:28:25,220 Dar, să măriți un pic mai adânc și a se vedea în cazul în care sunt aceste particule magnetice 562 00:28:25,220 --> 00:28:27,370 și cum ne apropiem la ei. 563 00:28:27,370 --> 00:28:28,750 >> [REDARE VIDEO] 564 00:28:28,750 --> 00:28:31,830 >> uite -Sa la ceea ce tocmai a văzut în mișcare lentă. 565 00:28:31,830 --> 00:28:35,230 Atunci când un impuls scurt de energie electrică este trimis la capul de citire / scriere, 566 00:28:35,230 --> 00:28:39,000 basculează pe ea electromagnetic minuscul pentru o fracțiune de secundă. 567 00:28:39,000 --> 00:28:41,390 Magnetul creează o câmp, care se schimbă 568 00:28:41,390 --> 00:28:44,600 polaritatea unui minuscul, mici parte din particulele de metal 569 00:28:44,600 --> 00:28:46,960 care strat de suprafață în fiecare platou lui. 570 00:28:46,960 --> 00:28:50,020 O serie de model de aceste mici încărcate în sus zonele de pe disc 571 00:28:50,020 --> 00:28:54,590 reprezintă un singur bit de date din sistem numeric binar utilizat de calculatoare. 572 00:28:54,590 --> 00:28:57,510 >> Acum, în cazul în care curentul este trimis unul de drum prin capul de citire / scriere, 573 00:28:57,510 --> 00:28:59,899 zona este polarizată într-o singură direcție. 574 00:28:59,899 --> 00:29:01,940 În cazul în care curentul este trimis în direcția opusă, 575 00:29:01,940 --> 00:29:04,020 polarizarea este inversată. 576 00:29:04,020 --> 00:29:06,440 Cum puteți obține date de pe hard disk? 577 00:29:06,440 --> 00:29:08,190 Doar inversa procesul. 578 00:29:08,190 --> 00:29:10,440 Deci, e particulelor cu disc care obține curent 579 00:29:10,440 --> 00:29:12,260 în capul de citire / scriere în mișcare. 580 00:29:12,260 --> 00:29:14,580 Pune împreună milioane de aceste segmente, magnetizați 581 00:29:14,580 --> 00:29:16,220 și ai un fișier. 582 00:29:16,220 --> 00:29:21,030 >> Acum, piesele unui singur fișier poate fi împrăștiate peste tot platane de acționare, a 583 00:29:21,030 --> 00:29:24,060 un fel de mizerie de documente de pe birou. 584 00:29:24,060 --> 00:29:27,590 Deci, un fișier special extra tine urmări în cazul în care totul este. 585 00:29:27,590 --> 00:29:30,440 Nu vrei să ai avut ceva de genul? 586 00:29:30,440 --> 00:29:31,290 >> [END REDARE] 587 00:29:31,290 --> 00:29:36,260 >> Fiind astfel aluzie la acolo, probabil, este că subiectul de ieri de ștergere. 588 00:29:36,260 --> 00:29:38,380 Atunci când ștergeți un fișier, ieri am spus 589 00:29:38,380 --> 00:29:41,020 că un calculator face de fapt ce, când trageți ceva 590 00:29:41,020 --> 00:29:44,110 la coșul de gunoi sau coșul de gunoi? 591 00:29:44,110 --> 00:29:45,150 Pur și simplu uită. 592 00:29:45,150 --> 00:29:47,540 Dar lui 0 și 1, a particule magnetice 593 00:29:47,540 --> 00:29:50,640 care arata ca roșu și albastru lucruri aici, sau brațul meu aici, 594 00:29:50,640 --> 00:29:52,350 sunt încă acolo pe hard disk. 595 00:29:52,350 --> 00:29:56,090 >> Și așa există software-- Norton Utilities și Yesteryear 596 00:29:56,090 --> 00:29:58,159 și alte mai moderne software-- că doar 597 00:29:58,159 --> 00:30:01,200 va scana un hard disk întreg în căutarea la toate aceste 0 și 1, deoarece aceasta 598 00:30:01,200 --> 00:30:06,890 se dovedește că majoritatea formats-- fișier documente Word, fișiere Excel, imagini, 599 00:30:06,890 --> 00:30:10,380 film files-- toate au anumite modele care sunt comune între ele. 600 00:30:10,380 --> 00:30:12,550 Fiecare fișier video ar putea să fie de un alt film, 601 00:30:12,550 --> 00:30:14,870 dar primele câteva biți sunt de obicei la fel. 602 00:30:14,870 --> 00:30:16,790 Sau ultimii câțiva biți sunt, de obicei la fel. 603 00:30:16,790 --> 00:30:19,910 >> Și astfel, cu mare probabilitate, poti sa te uiti pentru aceste modele. 604 00:30:19,910 --> 00:30:23,700 Și chiar dacă fișierul a fost uitat, vă pot spune cu mare probabilitate, 605 00:30:23,700 --> 00:30:28,460 dar acest lucru arata ca un document Word, îl lasă să recupereze și ne-uita, 606 00:30:28,460 --> 00:30:28,990 daca tu vei. 607 00:30:28,990 --> 00:30:32,330 Și, astfel că e modul în care se poate recupera date care le fie a fost accidental 608 00:30:32,330 --> 00:30:36,560 șterse sau șterse sau în mod deliberat eliminat pentru orice scopuri. 609 00:30:36,560 --> 00:30:42,530 >> În schimb, ștergerea securizată ce face în contextul unei imagini ca asta? 610 00:30:42,530 --> 00:30:44,059 Exact, le face ca toate aleatoare. 611 00:30:44,059 --> 00:30:46,350 Deci, este un fel de mută o parte din le în jos, unele dintre ele în sus, 612 00:30:46,350 --> 00:30:49,433 lasa unele dintre ele neschimbate și în general, face zgomot aleator din ea, 613 00:30:49,433 --> 00:30:52,960 sau pur și simplu poate face toate le 0 sau toate dintre ele. 1 lui 614 00:30:52,960 --> 00:30:56,350 Și asta prea poate, în general, frecarea datelor departe. 615 00:30:56,350 --> 00:31:00,160 >> Deci să revenim acum la problema de gândire de calcul, prin care 616 00:31:00,160 --> 00:31:03,270 avem intrările formulă. 617 00:31:03,270 --> 00:31:06,390 Și algoritmi da în cele din urmă te ieșiri. 618 00:31:06,390 --> 00:31:09,270 Ne concentrăm acum pe factori de producție și ieșiri, pentru că acum, 619 00:31:09,270 --> 00:31:12,159 afirmație avem o modalitate de reprezentând intrări și ieșiri. 620 00:31:12,159 --> 00:31:13,450 Noi doar de gând să utilizeze binar. 621 00:31:13,450 --> 00:31:15,910 >> Și, indiferent de ce noi doresc să reprezinte astăzi, 622 00:31:15,910 --> 00:31:20,230 indiferent dacă este un număr sau o literă sau mii acestora într-o carte de telefon 623 00:31:20,230 --> 00:31:23,210 sau imagini sau filme, la sfârșitul anului a zilei, este tot 0 și 1 lui. 624 00:31:23,210 --> 00:31:26,640 Iar eu susțin că, chiar dacă acest lucru este o lume foarte simplu, cu doar 0 lui 625 00:31:26,640 --> 00:31:28,240 și 1, putem construi noi înșine în sus. 626 00:31:28,240 --> 00:31:32,210 Și am văzut un exemplu de că, cu litere până acum. 627 00:31:32,210 --> 00:31:35,615 >> Așa că hai să ne concentrăm acum asupra acestui ingredient de mijloc, un algoritm. 628 00:31:35,615 --> 00:31:38,190 Și să se întoarcă la această exemplu de Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Deci, în această carte de telefon, care, desigur, noi nu folosim atat de mult mai, 630 00:31:41,689 --> 00:31:42,980 există o problemă care trebuie rezolvată. 631 00:31:42,980 --> 00:31:45,040 Vrem să găsim pe cineva ca Mike Smith. 632 00:31:45,040 --> 00:31:47,520 >> Și ce s-ar putea să fac pentru a găsi Mike? 633 00:31:47,520 --> 00:31:51,197 Ei bine, am putut deschide doar această carte, începe de la prima pagină, 634 00:31:51,197 --> 00:31:52,780 și dau seama, oh, eu sunt în secțiunea A. 635 00:31:52,780 --> 00:31:53,510 Mike nu e acolo. 636 00:31:53,510 --> 00:31:55,510 Am nevoie de secțiunea S pentru Smith. 637 00:31:55,510 --> 00:31:58,192 Așa că ține doar de cotitură o singură pagină la un moment dat. 638 00:31:58,192 --> 00:32:00,900 Lasă-mă să pretind că acest lucru este tot pagini albe și pagini nu galbene, 639 00:32:00,900 --> 00:32:02,910 pentru că nu vom găsi Mike în paginile galbene oricum. 640 00:32:02,910 --> 00:32:04,034 Dar eu sunt în paginile albe. 641 00:32:04,034 --> 00:32:05,340 Și acum, eu sunt în secțiunea B. 642 00:32:05,340 --> 00:32:06,810 Încă nu l-am gasit. 643 00:32:06,810 --> 00:32:08,890 Așa că am păstra de cotitură o singură pagină la un moment dat. 644 00:32:08,890 --> 00:32:10,130 >> Acesta este un algoritm. 645 00:32:10,130 --> 00:32:12,440 Este un set de instrucțiuni pentru rezolvarea unor probleme. 646 00:32:12,440 --> 00:32:16,480 Cu alte cuvinte, uita-te la pagina, în cazul în care Mike nu e pe ea, 647 00:32:16,480 --> 00:32:20,020 rândul său, pagina și se repetă din nou și din nou și din nou, 648 00:32:20,020 --> 00:32:21,760 în mod ideal, se uită în jos pe măsură ce o faci. 649 00:32:21,760 --> 00:32:24,120 Așa că este acest algoritm, acest proces, corect? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Scuze. 652 00:32:28,830 --> 00:32:30,056 Nu, am auzit niște nr. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, dar este-- da, este cu siguranță plictisitor. 655 00:32:36,125 --> 00:32:39,000 Cum ar fi, vom fi aici toată ziua dacă să păstreze în căutarea Mike la această viteză. 656 00:32:39,000 --> 00:32:41,430 Dar, lasă-mă să pretind că e corect. 657 00:32:41,430 --> 00:32:43,850 E o prostie, dar e corect. 658 00:32:43,850 --> 00:32:47,209 >> La sfârșitul zilei, atâta timp cât s-ar putea ia, voi găsi pe Mike dacă el e acolo 659 00:32:47,209 --> 00:32:48,250 și eu sunt atent. 660 00:32:48,250 --> 00:32:50,230 Și, în cele din urmă am ajunge la pagina lui. 661 00:32:50,230 --> 00:32:52,890 Și, dacă am ajunge prea departe, dacă Am ajunge la secțiunea T, 662 00:32:52,890 --> 00:32:55,900 atunci pot optimiza ușor și doar să spun, hm, toate făcut. 663 00:32:55,900 --> 00:32:57,980 Eu nici măcar nu trebuie să deșeuri timp merge la Z. 664 00:32:57,980 --> 00:33:00,010 Dar acest lucru este foarte abordare liniară, în cazul în care 665 00:33:00,010 --> 00:33:03,370 va, un foarte fel de la stânga la dreapta abordare, o linie dreaptă. 666 00:33:03,370 --> 00:33:05,560 Iar ei corectă, dar lent. 667 00:33:05,560 --> 00:33:09,250 >> Asa ca mi amintesc de la școală grad, sortare de optimizare dintr-un elev de clasa I, 668 00:33:09,250 --> 00:33:13,756 unde am învățat cum să nu conta de cele ci de twos-- asa 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 Este A, mult mai greu de face, dar în teorie, este 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, și așa mai departe. 671 00:33:20,149 --> 00:33:21,190 Ce zici de asta algoritm? 672 00:33:21,190 --> 00:33:23,150 Este mai eficient? 673 00:33:23,150 --> 00:33:23,880 Este mai rapid? 674 00:33:23,880 --> 00:33:25,365 >> AUDIENTA: Este eficient. 675 00:33:25,365 --> 00:33:28,560 >> DAVID MALAN: Da, așa că def-- este literalmente de două ori la fel de repede, am presupunând 676 00:33:28,560 --> 00:33:30,170 nu te împiedicat cu degetele. 677 00:33:30,170 --> 00:33:32,294 Este de două ori mai repede, deoarece Împlinesc prin intermediul a două 678 00:33:32,294 --> 00:33:36,560 pagini dintr-o dată în loc de una, dar este potențial în corect, pentru că de ce? 679 00:33:36,560 --> 00:33:37,852 >> Audiența: Sari peste unele. 680 00:33:37,852 --> 00:33:41,185 DAVID MALAN: Corect, ce se întâmplă dacă se întâmplă Mike să fie sandwiched--, poate, când sunt mai târziu 681 00:33:41,185 --> 00:33:44,370 în cartea de telefon, Mike se întâmplă să fie prins între aceste două pagini, 682 00:33:44,370 --> 00:33:46,720 și am sări orbește peste el. 683 00:33:46,720 --> 00:33:48,490 Așa că avem nevoie de un pic fix acolo. 684 00:33:48,490 --> 00:33:51,290 Odată ce am lovit secțiunea T, I nu se poate spune pur și simplu cu încredere, 685 00:33:51,290 --> 00:33:52,420 nu am găsit pe Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Probabil că trebuie să se dubleze din nou. 687 00:33:53,770 --> 00:34:00,210 Sau, de fapt, odată ce voi ajunge pe cineva numit S-N, în loc de S-M pentru Smith, 688 00:34:00,210 --> 00:34:02,790 imediat, am putea dubla înapoi, pentru că poate el 689 00:34:02,790 --> 00:34:03,900 a fost pe pagina anterioară. 690 00:34:03,900 --> 00:34:05,070 >> Dar eu nu trebuie să se dubleze din nou departe. 691 00:34:05,070 --> 00:34:08,030 În teorie, dacă eu o fac la dreapta timp, trebuie doar să mă duc înapoi o pagină. 692 00:34:08,030 --> 00:34:10,139 De aceea este adăugarea de doar un singur pas suplimentar. 693 00:34:10,139 --> 00:34:13,070 Așa că am plecat de două ori mai repede, dar ma costat o pagină în plus. 694 00:34:13,070 --> 00:34:14,699 Dar acest lucru se simte ca un câștig net. 695 00:34:14,699 --> 00:34:17,230 >> Dar acest lucru nu este modul în care cei mai mulți oameni în această cameră ar rezolva această problemă. 696 00:34:17,230 --> 00:34:20,313 Ce ar fi o persoană tipic, poate câțiva ani în urmă face, pentru a găsi Mike Smith? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Da, nu a găsit pe Mike. 699 00:34:24,800 --> 00:34:27,190 Ce fac? 700 00:34:27,190 --> 00:34:31,027 Deci, a lua un pic mai aproape, dar eu fac ceea ce este adevărat stiu, despre o carte de telefon? 701 00:34:31,027 --> 00:34:32,110 AUDIENTA: Este secvențial. 702 00:34:32,110 --> 00:34:32,760 DAVID MALAN: Este secvențial. 703 00:34:32,760 --> 00:34:33,750 Este în ordine alfabetică. 704 00:34:33,750 --> 00:34:36,540 Și așa, dacă eu sunt în secțiunea M, Mike este în mod clar la dreapta, 705 00:34:36,540 --> 00:34:39,949 I se pot rupe literalmente problema în half-- 706 00:34:39,949 --> 00:34:44,360 este de obicei mai ușor decât lacrima that-- problema în jumătate și-l arunca departe, 707 00:34:44,360 --> 00:34:47,627 astfel încât acum, am o problemă care este nu mai este de 1.000 de pages-- care a fost greu, 708 00:34:47,627 --> 00:34:50,210 pentru că eu cred că de fapt rupt cartea de telefon nu time-- 709 00:34:50,210 --> 00:34:52,219 1.000 de pagini, dar 500. 710 00:34:52,219 --> 00:34:54,750 >> Deci, problema este literalmente pe jumătate la fel de mare. 711 00:34:54,750 --> 00:34:58,170 Și asta e destul de convingătoare, deoarece cu algoritmi mele anterioare, versiunea 712 00:34:58,170 --> 00:35:02,870 1 și 2, am fost a face doar problema o pagină mai mici, două pagini mai mici 713 00:35:02,870 --> 00:35:03,470 la un moment dat. 714 00:35:03,470 --> 00:35:07,230 Întrucât acum, l-am făcut 500 Paginile mai mici dintr-o dată. 715 00:35:07,230 --> 00:35:10,089 >> OK, deci acum, Karim propune că mă duc la jumătatea din dreapta. 716 00:35:10,089 --> 00:35:12,380 Așa că am de gând să merg aproximativ la mijloc, da sau de a lua. 717 00:35:12,380 --> 00:35:15,185 Și, dacă am făcut acest lucru matematic, Am putea merge direct la mijloc. 718 00:35:15,185 --> 00:35:17,060 Și acum, îmi dau seama, oh, Sunt în secțiunea T. 719 00:35:17,060 --> 00:35:18,280 Eu de fapt am mers prea departe. 720 00:35:18,280 --> 00:35:21,670 >> Dar eu pot, din nou, lacrima problemă în jumătate, aruncați-l. 721 00:35:21,670 --> 00:35:23,330 Si bytes meu nu la fel de mare. 722 00:35:23,330 --> 00:35:28,780 Este doar, ceea ce, 256 de pagini sau 250 pagini, da sau de a lua chiar acum. 723 00:35:28,780 --> 00:35:31,570 Dar este încă mult mai mult decât o pagină sau două pagini. 724 00:35:31,570 --> 00:35:33,345 >> Și așa acum, mă duc aproximativ la mijloc. 725 00:35:33,345 --> 00:35:35,330 Oh, nu am mers destul de departe de ajuns acum. 726 00:35:35,330 --> 00:35:37,880 Asa ca repet, repet, repet, repet, până când eu sunt, sperăm, 727 00:35:37,880 --> 00:35:40,360 a plecat cu doar o singură pagină. 728 00:35:40,360 --> 00:35:44,000 >> Astfel că invită întrebarea, dacă a inceput cu aproximativ 1000 de pagini, 729 00:35:44,000 --> 00:35:47,340 câți pași am luat-o pe mine cu versiunea 1 a algoritmului meu? 730 00:35:47,340 --> 00:35:50,420 Ei bine, dacă Mike este în S secțiune, în cel mai rău caz, 731 00:35:50,420 --> 00:35:52,630 asta e destul de aproape de sfârșitul alfabetului. 732 00:35:52,630 --> 00:35:56,559 Așa că în cazul în care cartea de telefon are 1.000 de pagini, O să găsesc pe Mike în termen de 1.000 de pagini, 733 00:35:56,559 --> 00:35:57,100 da sau de a lua. 734 00:35:57,100 --> 00:35:59,750 Poate e ca 800 sau cam asa ceva, dar este destul de aproape de 1.000. 735 00:35:59,750 --> 00:36:01,680 >> Întrucât, în al doilea algoritm, câte 736 00:36:01,680 --> 00:36:06,840 întoarce pagina la maximum I s-ar putea nevoie pentru a găsi Mike Smith? 737 00:36:06,840 --> 00:36:09,970 Există 1000 de pagini, dar eu sunt le face două la un moment dat. 738 00:36:09,970 --> 00:36:13,045 Bine, max cum ar fi 500ish, deoarece dacă mă duc prin toată cartea de telefon, 739 00:36:13,045 --> 00:36:14,170 moment în care, mă pot opri. 740 00:36:14,170 --> 00:36:16,669 Dar eu pot rade de câteva doar oprindu-se la secțiunea T. 741 00:36:16,669 --> 00:36:19,880 Dar este în cel mai rău caz, 500 de pagini. 742 00:36:19,880 --> 00:36:24,710 >> Deci, cât de multe ori pot împărți 1,00o pagini de carte de telefon în jumătate din nou 743 00:36:24,710 --> 00:36:30,450 și din nou și din again-- 1000 la 500 la 250-125? 744 00:36:30,450 --> 00:36:32,250 Cât de mult înainte de a lovit o pagină? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Da, este vorba despre 10. 747 00:36:36,370 --> 00:36:40,780 În funcție de rotunjire și astfel, este aproximativ 10 de pagini au nevoie totală să fie transformate 748 00:36:40,780 --> 00:36:43,290 sau cărți de telefon trebuie să fie rupte. 749 00:36:43,290 --> 00:36:44,710 >> Deci asta e destul de puternic. 750 00:36:44,710 --> 00:36:48,170 Am început cu o problemă de 1000 de pagini în toate cele trei dintre aceste povești. 751 00:36:48,170 --> 00:36:51,850 Dar, în primul algoritm ea, mi-a luat, cel mai rău caz, 1.000 de pagini 752 00:36:51,850 --> 00:36:52,740 se întoarce pentru a găsi Mike. 753 00:36:52,740 --> 00:36:55,590 Al doilea algoritm, 500 pagini pentru a găsi Mike. 754 00:36:55,590 --> 00:36:58,480 În al treilea rând algoritm, 10 pagini pentru a găsi Mike. 755 00:36:58,480 --> 00:37:00,230 Și este chiar mai mult puternic atunci când crezi 756 00:37:00,230 --> 00:37:01,860 despre un fel de scenariu opus. 757 00:37:01,860 --> 00:37:05,680 Să presupunem că compania de telefonie următoare an poate se unește cele două orașe împreună, 758 00:37:05,680 --> 00:37:08,550 și cartea de telefon este dintr-o dată această gros, în loc de aceasta că, 759 00:37:08,550 --> 00:37:12,470 astfel încât 2.000 de pagini în loc de 1000. 760 00:37:12,470 --> 00:37:15,640 Ei bine, primul meu algoritm cautati Mike Smith într-o carte de telefon 2000 de pagini, 761 00:37:15,640 --> 00:37:21,460 mai rău caz, se va lua cât de multe pagini se transformă anul viitor? 762 00:37:21,460 --> 00:37:24,800 >> carte de telefon este de 2.000 de pagini, deci-- bine, nu mai mult unul. 763 00:37:24,800 --> 00:37:29,540 În cazul în care cartea de telefon este de două ori mai gros în primul algoritm, primul algoritm, 764 00:37:29,540 --> 00:37:30,380 2000, nu? 765 00:37:30,380 --> 00:37:33,005 În cel mai rău caz, Mike este într-adevăr aproape de sfârșitul cărții, 766 00:37:33,005 --> 00:37:34,110 deci este de 2.000 de pagini se transformă. 767 00:37:34,110 --> 00:37:38,070 În al doilea rând algoritm merge de doi câte doi, la fel ca 1.000 de pagini. 768 00:37:38,070 --> 00:37:41,490 >> Dar, cum despre în a treia mea și algoritmul cel mai recent? 769 00:37:41,490 --> 00:37:44,950 În cazul în care compania de telefonie dublează numărul de pagini de la 1.000 la 2.000, 770 00:37:44,950 --> 00:37:47,770 câte ori au nevoie să se rupă acea carte în jumătate pentru a găsi Mike? 771 00:37:47,770 --> 00:37:48,710 >> AUDIENTA: Doar unul. 772 00:37:48,710 --> 00:37:51,001 >> DAVID MALAN: Doar una, deoarece, cu o singură pagină lacrimă, 773 00:37:51,001 --> 00:37:53,270 Pot împărți literalmente și cuceri, dacă vreți, 774 00:37:53,270 --> 00:37:57,410 această problemă în jumătate luarea o muscatura masivă din ea. 775 00:37:57,410 --> 00:38:01,420 Și, astfel încât acesta este un exemplu de eficiență și, fără îndoială un algoritm 776 00:38:01,420 --> 00:38:04,100 cu care noi toți sunt un fel de intuitiv familiare. 777 00:38:04,100 --> 00:38:07,780 Dar este la fel de corect ca și alți algoritmi mei 778 00:38:07,780 --> 00:38:09,630 cu Tweak pentru al doilea algoritm, 779 00:38:09,630 --> 00:38:11,290 dar este atât de mult mai eficient. 780 00:38:11,290 --> 00:38:14,030 >> Și, de fapt, ceea ce un calculator om de știință, sau la rândul său, un programator, 781 00:38:14,030 --> 00:38:17,580 s-ar face în mod obișnuit atunci când scrieți Codul este încercați să dau seama, 782 00:38:17,580 --> 00:38:19,960 Bine, nu vreau mea programul doar pentru a fi corect, 783 00:38:19,960 --> 00:38:23,220 De asemenea, doresc să fie eficient și de a rezolva probleme de bine. 784 00:38:23,220 --> 00:38:26,450 Imaginați-vă în lumea reală astăzi, cum ar fi indexurile Google, căutările 785 00:38:26,450 --> 00:38:31,580 cum ar fi miliarde de pagini, imaginați-vă dacă acestea a folosit primul algoritm pentru a găsi pisici 786 00:38:31,580 --> 00:38:34,620 printre un miliard pages-- uita la prima pagină în baza lor de date, 787 00:38:34,620 --> 00:38:37,700 al doilea, al treilea, doar în căutarea pentru o pisică, în căutarea pentru o pisica. 788 00:38:37,700 --> 00:38:40,350 Asta e lent destul de darn s-ar părea. 789 00:38:40,350 --> 00:38:43,170 Ele ar putea folosi în schimb ceva numita binar de căutare, care 790 00:38:43,170 --> 00:38:47,420 este nici bi coincidence-- adica doi, noi să păstreze împărțirea ceva în 2, în half-- 791 00:38:47,420 --> 00:38:50,205 acestea ar putea folosi binar de căutare și poate găsi pisici chiar mai repede, 792 00:38:50,205 --> 00:38:51,830 sau orice este pe care o căutați. 793 00:38:51,830 --> 00:38:54,125 >> Și, sincer, există chiar si algoritmi crescator 794 00:38:54,125 --> 00:38:56,250 care face mult mai mult decat împărțind lucruri în jumătate 795 00:38:56,250 --> 00:38:58,180 în scopul de a găsi informații rapid. 796 00:38:58,180 --> 00:39:00,880 Si vom vorbi un pic despre cei care după masa de prânz astăzi. 797 00:39:00,880 --> 00:39:02,640 Așa că lasă-mă să încerc să reprezinte acest lucru. 798 00:39:02,640 --> 00:39:05,380 Noi nu avem nevoie pentru a merge în orice matematica sau numere reale. 799 00:39:05,380 --> 00:39:07,070 Putem vorbi despre acest lucru în abstract. 800 00:39:07,070 --> 00:39:11,580 >> Dar, lasă-mă să propună, dacă tu au fost o discuție acum 801 00:39:11,580 --> 00:39:13,491 cu inginerii propunând acest algoritm 802 00:39:13,491 --> 00:39:15,490 și încercați să facă o decizie calculată, 803 00:39:15,490 --> 00:39:17,285 pentru că, poate, inginer spune la tine, 804 00:39:17,285 --> 00:39:19,910 știu ce, eu pot pune în aplicare un căutare liniară în ca două minute. 805 00:39:19,910 --> 00:39:21,150 Este atât de ușor. 806 00:39:21,150 --> 00:39:24,790 căutare binară nu este acea fantezie, dar o să mă ia ca și 10 minute, 807 00:39:24,790 --> 00:39:26,650 asa de 5 ori mai mult. 808 00:39:26,650 --> 00:39:30,900 >> E un comerț aici, chiar și în termeni de a decide ce software pentru a scrie. 809 00:39:30,900 --> 00:39:34,760 Scrieți algoritmul mai simplu, pe care le va lua doar două minute? 810 00:39:34,760 --> 00:39:39,880 Sau iti petreci mai mult timp, 10 minute, scrierea algoritmului crescatorul? 811 00:39:39,880 --> 00:39:43,540 Cum decideți acest tip de întrebare? 812 00:39:43,540 --> 00:39:46,710 Sau ai putea face un pic mai real. 813 00:39:46,710 --> 00:39:50,610 Eu spun șefului meu că va lua mi fie o săptămână 10 săptămâni 814 00:39:50,610 --> 00:39:52,490 să pună în aplicare software, în acest fel, cum 815 00:39:52,490 --> 00:39:56,103 decideți ce algoritm pentru a-lumină verde? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> AUDIENTA: Publicul, cred. 818 00:39:57,550 --> 00:39:57,960 >> DAVID MALAN: Publicul. 819 00:39:57,960 --> 00:39:59,460 Ce vrei sa spui cu publicul? 820 00:39:59,460 --> 00:40:03,460 >> AUDIENTA: Dacă se întâmplă pentru a fi utilizate de către utilizatori 821 00:40:03,460 --> 00:40:09,050 care [inaudibil] de către utilizatori [inaudibil]. 822 00:40:09,050 --> 00:40:11,232 Dar dacă e ceva ce ești faci doar pentru tine 823 00:40:11,232 --> 00:40:13,946 pentru a facilita o problemă [Inaudibil] mai repede. 824 00:40:13,946 --> 00:40:16,820 DAVID MALAN: Da, este rapid și murdar este un bun mod de a descrie. 825 00:40:16,820 --> 00:40:18,695 De fapt, dacă sunteți descriind o mare parte din timpul meu 826 00:40:18,695 --> 00:40:23,630 în școală grad, care de multe ori, Am scris cod rău în mod conștient deci-- 827 00:40:23,630 --> 00:40:26,490 cel puțin, așa cum am raționalizată it-- în mod conștient acest lucru, 828 00:40:26,490 --> 00:40:30,670 pentru că, chiar dacă am scris codul care a fost relativ lent pentru a executa, 829 00:40:30,670 --> 00:40:33,750 Am fost în stare să scrie codul în sine destul de rapid, cheltuind doar minute 830 00:40:33,750 --> 00:40:35,107 sau nu zile ore. 831 00:40:35,107 --> 00:40:37,190 Și sa dovedit, am ocazional, este nevoie să doarmă. 832 00:40:37,190 --> 00:40:41,270 Deci, chiar dacă codul meu este necesar 8 ore pentru a rula, bine că e bine, 833 00:40:41,270 --> 00:40:42,850 Mă duc doar să dorm în timp ce rulează. 834 00:40:42,850 --> 00:40:46,350 >> Deci, la momentul respectiv, am crezut că acest lucru a fost foarte inteligent, chiar dacă, aparent 835 00:40:46,350 --> 00:40:48,990 a lucrat prin doctorat mea foarte încet. 836 00:40:48,990 --> 00:40:52,270 Dar conversa că este că, software-ul, dacă aș fi scris 837 00:40:52,270 --> 00:40:55,930 pentru alte persoane care a contat mai mult decât mine, bine, 838 00:40:55,930 --> 00:40:59,580 având să aștepte 8 ore pentru obține înapoi rezultatele căutării 839 00:40:59,580 --> 00:41:01,350 nu este tot ceea ce convingătoare. 840 00:41:01,350 --> 00:41:04,090 Și astfel, petrec mai mult timp în față pentru a scrie software-ul 841 00:41:04,090 --> 00:41:07,300 care este mai eficient, mai cum ar fi al treilea algoritmul nostru, 842 00:41:07,300 --> 00:41:09,780 beneficii, probabil, utilizatorii-a lungul timpului. 843 00:41:09,780 --> 00:41:12,710 Așa că depinde într-adevăr de peste timp modul în care aceste costuri adăuga în sus. 844 00:41:12,710 --> 00:41:14,960 Dacă aveți de gând să fi scris software-ul să-l folosească o singură dată, 845 00:41:14,960 --> 00:41:17,240 probabil, s-ar putea face la fel de bine rapid și murdar, așa cum spun ei. 846 00:41:17,240 --> 00:41:18,198 Aruncă-l împreună. 847 00:41:18,198 --> 00:41:20,560 Este un cod care embarrasses tu, e așa de rău, 848 00:41:20,560 --> 00:41:23,860 dar devine treaba corect, chiar dacă nu este eficient. 849 00:41:23,860 --> 00:41:27,200 Pe de altă parte, va petrece mai mult timp pe ceva, să-l doar dreapta. 850 00:41:27,200 --> 00:41:30,730 Și apoi amortizate în timp, cost pe care avans de timp 851 00:41:30,730 --> 00:41:34,330 este, probabil, merită, dacă vă păstrați optimizarea pentru cazul comun. 852 00:41:34,330 --> 00:41:37,620 >> Și într-adevăr, aceasta este o temă în programare sau calculator știință mai mult 853 00:41:37,620 --> 00:41:41,390 în general, încercând să optimizeze nu pentru cazul mai puțin frecvente 854 00:41:41,390 --> 00:41:44,390 dar comune case-- ce operațiune se va întâmpla din nou și din nou? 855 00:41:44,390 --> 00:41:47,730 Dacă aveți de gând să aibă miliarde de utilizatorii care caută pe site-ul dvs., 856 00:41:47,730 --> 00:41:52,030 ar trebui să petreacă, probabil, extra săptămâni în față software de scriere mai bine, 857 00:41:52,030 --> 00:41:53,670 astfel încât toți utilizatorii să beneficieze. 858 00:41:53,670 --> 00:41:57,840 Acum, să încercăm să captureze acest lucru un putin pictural, dar nu atât de mult 859 00:41:57,840 --> 00:41:58,610 numeric. 860 00:41:58,610 --> 00:42:01,680 >> Deci, aici e doar o diagramă de școală veche. 861 00:42:01,680 --> 00:42:04,260 Și lasă-mă să spun că acest lucru este timpul. 862 00:42:04,260 --> 00:42:06,660 Și nu contează what-- de fapt, nu, nu de timp. 863 00:42:06,660 --> 00:42:08,320 Să punem că pe cealaltă axă. 864 00:42:08,320 --> 00:42:15,700 Să presupunem că acest lucru este timpul, iar aceasta este dimensiunea problemei. 865 00:42:15,700 --> 00:42:17,830 >> Și un om de știință de calculator s-ar putea numi în general 866 00:42:17,830 --> 00:42:20,820 acest lucru pur și simplu n. n este ca noastre du-te la variabilă, în cazul în care 867 00:42:20,820 --> 00:42:26,351 n este un număr, numărul n, și e numărul de intrări, indiferent care le aveți. 868 00:42:26,351 --> 00:42:28,100 Deci, în acest caz, n este numărul de pagini. 869 00:42:28,100 --> 00:42:30,150 Asa ca s-ar putea să fie în 1000 cazul tocmai am spus. 870 00:42:30,150 --> 00:42:31,969 >> Așa că timpul poate fi orice unitate de măsură. 871 00:42:31,969 --> 00:42:32,760 Poate, este a doua. 872 00:42:32,760 --> 00:42:33,410 Poate, e de zile. 873 00:42:33,410 --> 00:42:34,590 Poate, e ca se transformă pagină. 874 00:42:34,590 --> 00:42:35,215 Nu contează. 875 00:42:35,215 --> 00:42:38,840 Orice ai vrea să conta în aceea că va fi timp sau cost echivalent. 876 00:42:38,840 --> 00:42:42,400 >> Deci, cu acea primă algoritm, dacă, de exemplu, 877 00:42:42,400 --> 00:42:45,920 a avut o carte de telefon de 1000 de pagini, Voi desena un punct acolo, 878 00:42:45,920 --> 00:42:51,450 pentru că dacă este de 1.000 de pagini, a fost nevoie aproximativ 1.000 de pagini se transforma, da sau de a lua. 879 00:42:51,450 --> 00:42:54,100 Și apoi, dacă am avut un 2000 pagini de carte de telefon, 880 00:42:54,100 --> 00:42:57,200 și am de gând să elaboreze un al doilea dot aici, pentru că pentru 2.000 de pagini, 881 00:42:57,200 --> 00:42:59,810 este ca 2.000 secunde sau întoarce pagina sau orice altceva. 882 00:42:59,810 --> 00:43:02,480 Așa că atunci când am spus mai devreme, este un fel de relație liniară, 883 00:43:02,480 --> 00:43:06,020 care a fost în mod deliberat, pentru că am vrut mai târziu, on-- dreapta now-- pentru a trage o linie. 884 00:43:06,020 --> 00:43:07,770 Este un fel de drept relație de linie. 885 00:43:07,770 --> 00:43:10,180 Panta este de 1/1, dacă vreți. 886 00:43:10,180 --> 00:43:14,630 >> Între timp, al doilea algoritm a spus, dacă ai 1.000 de pagini 887 00:43:14,630 --> 00:43:17,680 și ați fost folosind al doilea algoritm, unde am numărat de 2 lui, de cotitură 888 00:43:17,680 --> 00:43:22,564 două pagini la un moment dat, ar trebui să elaboreze un punct de mai jos sau mai sus punct meu original? 889 00:43:22,564 --> 00:43:23,450 >> AUDIENTA: Mai jos. 890 00:43:23,450 --> 00:43:27,992 >> DAVID MALAN: Mai jos, pentru că așa cum am văzut, este nevoie de mai puțin timp, pe jumătate la fel de mult timp. 891 00:43:27,992 --> 00:43:29,950 Astfel încât punctul ar trebui să fie pe jumătate la fel de mare ca și cealaltă. 892 00:43:29,950 --> 00:43:33,330 Și aceeași afacere aici, acest punct ar trebui să fie, probabil, aproximativ acolo. 893 00:43:33,330 --> 00:43:39,666 Și astfel, în al doilea rând algoritmul meu, în mod similar, are o relație liniară cu timpul. 894 00:43:39,666 --> 00:43:41,990 Si putem trage ca atare. 895 00:43:41,990 --> 00:43:45,950 >> Deci, acum, a treia și ultima Algoritmul este un pic mai greu pentru a trage. 896 00:43:45,950 --> 00:43:49,530 Dar, în mod intuitiv, dacă am 1000 pagini cu al treilea algoritmul meu, 897 00:43:49,530 --> 00:43:52,340 ar trebui să ia doar pe mine ca și 10 pași. 898 00:43:52,340 --> 00:43:57,500 Și, dacă am 2.000 de pagini cu al treilea algoritmul meu, 899 00:43:57,500 --> 00:44:01,570 ar trebui să nu mă ia 10 pași, dar 11, doar mai mult unul. 900 00:44:01,570 --> 00:44:03,610 Așa că doar abia o să vadă acest lucru. 901 00:44:03,610 --> 00:44:06,010 >> Și se pare că, dacă Am zoom pe asta, sunt 902 00:44:06,010 --> 00:44:09,320 va exagera pentru un efect, forma acestei linii, în cele din urmă, 903 00:44:09,320 --> 00:44:11,990 nu este un line-- drept pentru că, într-adevăr, dacă ar fi fost, 904 00:44:11,990 --> 00:44:15,390 ea ar arata mai mult ca others-- este de fapt o linie curbă 905 00:44:15,390 --> 00:44:19,265 că, dacă vom mări, se întâmplă să arate mult mai mult ca acest lucru. 906 00:44:19,265 --> 00:44:21,670 It-- bine, OK, ignorați această parte. 907 00:44:21,670 --> 00:44:25,330 Asta a fost stiloul meu merge cu unghi. 908 00:44:25,330 --> 00:44:29,000 Este o linie curbă, care este întotdeauna în creștere, mereu, mereu, mereu 909 00:44:29,000 --> 00:44:32,100 în creștere, dar numai cu greu. 910 00:44:32,100 --> 00:44:36,260 >> Și așa-a lungul timpului, aveți relația asta e mai mult ca asta. 911 00:44:36,260 --> 00:44:37,540 Aproape că pare dreaptă. 912 00:44:37,540 --> 00:44:40,330 Dar este tot atât de încet, în creștere. 913 00:44:40,330 --> 00:44:44,780 Dar, pentru aproape toate punctele de-a lungul dvs. de axa x, axa orizontală, 914 00:44:44,780 --> 00:44:46,550 este mai mică decât celelalte linii. 915 00:44:46,550 --> 00:44:49,930 >> Deci, acest lucru ar putea fi o relație n acest fel, dacă aveți n pagini, 916 00:44:49,930 --> 00:44:51,100 tu n secunde ia. 917 00:44:51,100 --> 00:44:53,320 Acest lucru ar putea fi o relație de n / 2. 918 00:44:53,320 --> 00:44:56,710 Aveți n pagini, este nevoie tu n / 2 secunde, pe jumătate la fel de multe. 919 00:44:56,710 --> 00:45:00,590 Și acest lucru este o logaritmică relație, care 920 00:45:00,590 --> 00:45:08,920 dacă vă amintiți, log 2 de bază de n capturi acest tip de creștere, ca să spunem așa. 921 00:45:08,920 --> 00:45:12,000 Deci, acesta este un fel de sfânt Grail printre cele trei dintre acestea 922 00:45:12,000 --> 00:45:15,940 aici, pentru că e doar atât de mult mai mult eficiente, dar, fără îndoială, mai complexă 923 00:45:15,940 --> 00:45:18,610 a implementa. 924 00:45:18,610 --> 00:45:20,510 Alte intrebari? 925 00:45:20,510 --> 00:45:26,220 >> Ei bine, lasă-mă să fac asta, să mă deschide o fereastră de text 926 00:45:26,220 --> 00:45:29,100 doar astfel încât să putem încerca să formaliza ceva aici. 927 00:45:29,100 --> 00:45:32,410 Așa că lasă-mă să merg mai departe acum și punerea în aplicare a acestui algoritm 928 00:45:32,410 --> 00:45:35,170 pentru a găsi Mike Smith în cod, dacă va fi, codul pseudocod. 929 00:45:35,170 --> 00:45:36,620 Eu nu am de gând să folosească Java sau C ++. 930 00:45:36,620 --> 00:45:38,610 Sunt doar de gând să folosească un fel de Engleză-ca sintaxa, pe care noi 931 00:45:38,610 --> 00:45:40,151 ar suna în general, codul pseudocod. 932 00:45:40,151 --> 00:45:41,660 Aici, am o fereastră goală. 933 00:45:41,660 --> 00:45:48,180 Si eu spun pasul 1 din foarte Primul algoritm este de a ridica cartea de telefon. 934 00:45:48,180 --> 00:45:51,740 Pasul 2 este carte deschisă pentru prima pagină. 935 00:45:51,740 --> 00:45:58,080 Pasul 3 va fi uita-te la Pagina de Mike Smith. 936 00:45:58,080 --> 00:46:02,740 În cazul în care, la pagina, suna pe Mike. 937 00:46:02,740 --> 00:46:11,640 altfel pagina de viraj și mergeți la pasul 3. 938 00:46:11,640 --> 00:46:13,590 Done, să zicem. 939 00:46:13,590 --> 00:46:18,110 >> Și așa că nu e destul de perfect, care vom vedea într-un moment. 940 00:46:18,110 --> 00:46:21,050 Dar, să ia în considerare ceea ce conceptele pe care le-am prezentat aici. 941 00:46:21,050 --> 00:46:24,450 Așa că pașii 1 și 2 și 3 sunt destul de mult verbe. 942 00:46:24,450 --> 00:46:26,544 Sunt declarații, actions-- fac acest lucru. 943 00:46:26,544 --> 00:46:28,710 Și așa într-o programare limba, am fi în general 944 00:46:28,710 --> 00:46:32,349 le numesc declarații sau funcții sau proceduri, 945 00:46:32,349 --> 00:46:33,640 le numim orice număr de lucruri. 946 00:46:33,640 --> 00:46:35,460 Dar ei doar te actions-- fac asta. 947 00:46:35,460 --> 00:46:40,370 >> Etapa 4 este fundamental diferit, pentru că este un fel de a pune o întrebare. 948 00:46:40,370 --> 00:46:42,400 Ea spune că suntem un fel de la o furculiță în drum. 949 00:46:42,400 --> 00:46:48,000 În cazul în care Mike este pe pagina, apelați el, asa ca viraj la stânga, dacă doriți. 950 00:46:48,000 --> 00:46:52,170 Și, dacă nu, du-te înapoi la unele altele page-- sau, mai degrabă, îmi pare rău, 951 00:46:52,170 --> 00:46:56,650 du-te înapoi la un alt pas, care induce un fel de construct looping. 952 00:46:56,650 --> 00:46:59,530 Si noi facem din nou și din nou și din nou. 953 00:46:59,530 --> 00:47:01,300 >> Și, de fapt, tu ce știi? 954 00:47:01,300 --> 00:47:01,800 Da. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 altfel, dacă la sfârșitul stop carte. 957 00:47:09,010 --> 00:47:11,624 Așa că avem nevoie de un fel de o treime condiție, pentru că tu 958 00:47:11,624 --> 00:47:14,290 nu poate ține de cotitură anunțul pagină nauseum, pentru că în cele din urmă, voi 959 00:47:14,290 --> 00:47:15,320 a lovit la sfârșitul cărții. 960 00:47:15,320 --> 00:47:18,546 Și un bug într-un program ar putea fi nu anticipând acest scenariu. 961 00:47:18,546 --> 00:47:21,420 Și apoi am dat seama, oh, așteptați un minut, am nevoie de un al treilea scenariu. 962 00:47:21,420 --> 00:47:23,900 Dacă sunt de pagini, am într-adevăr doar ar trebui să se oprească. 963 00:47:23,900 --> 00:47:25,330 În caz contrar, este nedefinit. 964 00:47:25,330 --> 00:47:29,260 Ce se va întâmpla dacă am păstra spunând rândul său, pagina și du-te înapoi, 965 00:47:29,260 --> 00:47:31,810 acest lucru este atunci când calculatoarele congela sau accident, atunci când te-a lovit 966 00:47:31,810 --> 00:47:34,160 unele situații neprevăzute de genul asta. 967 00:47:34,160 --> 00:47:37,280 >> Acum, ce zici de Mike a treia algorithm-- Smith 968 00:47:37,280 --> 00:47:43,150 ridica cartea de telefon, carte deschisă pentru first-- la 969 00:47:43,150 --> 00:47:48,640 nu, nu pentru prima pagină de această dată, la middle-- oh, bine, asta ar 970 00:47:48,640 --> 00:47:49,640 fi al doilea algoritm. 971 00:47:49,640 --> 00:47:50,590 Hai să săriți la a treia. 972 00:47:50,590 --> 00:47:50,930 >> Audiența: Oh, îmi pare rău. 973 00:47:50,930 --> 00:47:51,971 >> DAVID MALAN: Asta e bine. 974 00:47:51,971 --> 00:47:58,590 Hai să sari la aer liber third-- la mijloc și acum caută Mike Smith. 975 00:47:58,590 --> 00:48:02,300 în cazul în care, la pagina, suna pe Mike. 976 00:48:02,300 --> 00:48:04,910 Si atunci ce vrem să spunem aici? 977 00:48:04,910 --> 00:48:06,134 Ce altceva? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Ne putem exprima acest lucru în orice număr de moduri. 980 00:48:12,370 --> 00:48:13,369 Nu există nici un răspuns corect. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, dacă nu din nou, dar trebuie să ne be-- OK, noi vrem să împartă în două, 983 00:48:23,735 --> 00:48:25,630 dar vrem să mergem la stânga sau la dreapta merge? 984 00:48:25,630 --> 00:48:29,560 Cum ne exprimăm această noțiune? 985 00:48:29,560 --> 00:48:31,790 Ei bine, în cazul lui Mike, da, asta e corect. 986 00:48:31,790 --> 00:48:35,050 Dar, OK, astfel încât este de fapt un bun punct. 987 00:48:35,050 --> 00:48:35,550 E in regula. 988 00:48:35,550 --> 00:48:36,924 Ne vom continua cu această logică. 989 00:48:36,924 --> 00:48:38,182 Asa de-- 990 00:48:38,182 --> 00:48:39,810 >> AUDIENTA: Mai puțin de jumătate. 991 00:48:39,810 --> 00:48:40,560 DAVID MALAN: Da. 992 00:48:40,560 --> 00:48:49,820 Așa că, dacă altfel pagina este, vom spune, mai puțin decât Smith, în stânga lui Smith, 993 00:48:49,820 --> 00:48:52,220 then-- să vedem, este acest lucru va complica? 994 00:48:52,220 --> 00:49:01,885 altfel dacă pagina vine înainte Smith, lacrimă în jumătate, aruncați care jumătate? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> AUDIENTA: M-am gândit care a fost [inaudibil]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID MALAN: Am auzit ambele răspunsuri. 998 00:49:11,650 --> 00:49:12,431 >> AUDIENTA: stânga. 999 00:49:12,431 --> 00:49:14,430 DAVID MALAN: OK, arunca departe de jumătate din stânga, după cum Lakisa 1000 00:49:14,430 --> 00:49:19,700 a spus mai devreme, stânga jumătate, apoi m-am cam 1001 00:49:19,700 --> 00:49:23,940 vrea să fie doar sa-- mă duc la dreapta. 1002 00:49:23,940 --> 00:49:27,380 Sau echivalent, și am făcut un pic biți de o mizerie de început aici, 1003 00:49:27,380 --> 00:49:30,760 Vreau în mod eficient la du-te la pasul 2 din nou, 1004 00:49:30,760 --> 00:49:38,270 în cazul în care deschise middle-- sau open-- Da, să spunem doar pagini de mijloc. 1005 00:49:38,270 --> 00:49:39,020 Și acest lucru îl fixează. 1006 00:49:39,020 --> 00:49:39,936 Nu mai este o carte. 1007 00:49:39,936 --> 00:49:42,210 Este doar o jumătate dintr-o carte, pagini, astfel încât deschise la mijloc. 1008 00:49:42,210 --> 00:49:44,010 >> else-- erau aproape acolo. 1009 00:49:44,010 --> 00:49:54,000 Etapa 6, în cazul în care altfel pagina vine după Smith, rupe în jumătate, arunca jumătate de departe dreapta, 1010 00:49:54,000 --> 00:49:55,680 apoi mergeți la pasul 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 altfel renuntat, un al patrulea scenariu în cazul în care nu avem pagini de stânga pentru a activa. 1013 00:50:05,230 --> 00:50:06,394 Așa că am putea curăța asta. 1014 00:50:06,394 --> 00:50:07,560 Și ar trebui să curețe asta. 1015 00:50:07,560 --> 00:50:10,656 Acest lucru este foarte cod pseudocod, dacă vă va, descriere nivel foarte ridicat. 1016 00:50:10,656 --> 00:50:12,280 Dar ea nu surprinde, în general, ideea. 1017 00:50:12,280 --> 00:50:16,040 >> Și, din nou, în acest scenariu, noi au noțiunea de condiție, 1018 00:50:16,040 --> 00:50:20,450 o ramură, o furculiță în drum, făcând un decision-- în cazul în care acest lucru, du-te în acest fel, 1019 00:50:20,450 --> 00:50:23,082 altfel în cazul în care, du-te în acest fel, altfel daca, du-te în acest fel. 1020 00:50:23,082 --> 00:50:25,040 Și acest lucru este un foarte frecvente tehnica de programare 1021 00:50:25,040 --> 00:50:27,721 pentru a decide ce direcție pentru a merge, ca să spunem așa. 1022 00:50:27,721 --> 00:50:29,970 Și avem, de asemenea, un fel a looping structurii, în cazul în care 1023 00:50:29,970 --> 00:50:32,440 facem ceva din nou și din nou. 1024 00:50:32,440 --> 00:50:34,820 >> Acum, se pare, de mult ca în acest exemplu, 1025 00:50:34,820 --> 00:50:37,660 fiind foarte precis este important. 1026 00:50:37,660 --> 00:50:42,180 Dar am văzut, de asemenea, ceva că ne ținem de asteptare abstracție. 1027 00:50:42,180 --> 00:50:45,490 Ce înseamnă pentru a ridica cartea de telefon? 1028 00:50:45,490 --> 00:50:47,740 Suntem doar un fel de a lua pentru a acordat în această cameră 1029 00:50:47,740 --> 00:50:49,340 că acest lucru are un sens semantic. 1030 00:50:49,340 --> 00:50:51,740 Toate dintre noi doar un fel de știu, oh, bine, ridica cartea de telefon. 1031 00:50:51,740 --> 00:50:52,864 Ce înseamnă asta înseamnă cu adevărat? 1032 00:50:52,864 --> 00:50:59,060 Asta înseamnă că într-adevăr se extind mână, se apleca peste, se extind degetele, 1033 00:50:59,060 --> 00:51:03,890 prindeți carte între degete, sta în picioare, trage mâna spre tine. 1034 00:51:03,890 --> 00:51:05,940 Si am putea fi într-adevăr pedant despre acest lucru, 1035 00:51:05,940 --> 00:51:08,640 într-adevăr fiind foarte precise ca la ceea ce fac. 1036 00:51:08,640 --> 00:51:13,300 Dar, toate aceste etape sunt în mod colectiv ceea ce înseamnă că pentru a ridica o carte de telefon. 1037 00:51:13,300 --> 00:51:16,940 >> Și așa mai devreme, când am spus, fiecare din aceste prime două declarații 1038 00:51:16,940 --> 00:51:20,830 poate fi gândit ca continua sau o funcție, 1039 00:51:20,830 --> 00:51:24,090 într-adevăr reprezintă ceea ce noi ține de asteptare o abstracție. 1040 00:51:24,090 --> 00:51:28,770 E ca un înalt nivel conceptual descrierea unei probleme care 1041 00:51:28,770 --> 00:51:31,110 implică de fapt destul de câțiva pași. 1042 00:51:31,110 --> 00:51:34,190 Și așa acest lucru, de asemenea, este un subiect recurent în programare, 1043 00:51:34,190 --> 00:51:41,125 prin care s-ar putea scrie un program folosind sintaxa cum ar fi astea-- 1044 00:51:41,125 --> 00:51:42,000 pick_up_phone_book (). 1045 00:51:42,000 --> 00:51:44,344 1046 00:51:44,344 --> 00:51:46,510 Și apoi sintactic, eu sunt O să fure ceva 1047 00:51:46,510 --> 00:51:48,090 de cele mai multe limbaje de programare. 1048 00:51:48,090 --> 00:51:51,270 >> Acum, etapa 1 arată chiar mai mult ca o funcție, 1049 00:51:51,270 --> 00:51:53,160 ca un programator ar numi. 1050 00:51:53,160 --> 00:51:58,650 Se pare că codul pe care cineva a dat un nume și dat 1051 00:51:58,650 --> 00:52:03,300 să-mi folosesc somehow-- în alte cuvinte, ce linia I-am subliniat 1052 00:52:03,300 --> 00:52:07,050 reprezintă funcționalitate care poate Nici măcar nu mă pune în aplicare. 1053 00:52:07,050 --> 00:52:10,410 Cineva mai în vârstă, mai înțelept decât mi-a dat seama deja 1054 00:52:10,410 --> 00:52:12,700 modul în care exprimă noțiunea de a alege o carte de telefon. 1055 00:52:12,700 --> 00:52:15,860 Și este la fel ca cele cinci etape am doar off zguduit, pe partea de sus a capului meu. 1056 00:52:15,860 --> 00:52:19,350 >> Dar el sau ea deja pusă în aplicare acest lucru, a dat cei mai mulți pași 1057 00:52:19,350 --> 00:52:22,339 un nume, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 Și paranteze este doar ceea ce cei mai mulți programatori 1059 00:52:24,380 --> 00:52:27,100 face, la sfârșitul afirmații de genul asta. 1060 00:52:27,100 --> 00:52:30,190 Eu acum pot sta pe lui sau ei umeri și niciodată, 1061 00:52:30,190 --> 00:52:32,465 gândesc la ce înseamnă pentru a ridica o carte de telefon. 1062 00:52:32,465 --> 00:52:34,090 Pot să spun doar, ridica cartea de telefon. 1063 00:52:34,090 --> 00:52:36,690 Si asta este exact ceea ce noi toți oamenii au făcut aici. 1064 00:52:36,690 --> 00:52:38,940 >> Atunci când am fost, probabil, 1 ani, în vârstă de 2 ani, 1065 00:52:38,940 --> 00:52:41,690 cineva trebuia să ne învețe ce menit a ridica o carte de telefon. 1066 00:52:41,690 --> 00:52:43,810 Și de atunci, ne-am abstras departe 1067 00:52:43,810 --> 00:52:46,739 de la cele foarte neinteresantă trepte mecanice. 1068 00:52:46,739 --> 00:52:48,530 Și avem doar un înțelegere intuitivă 1069 00:52:48,530 --> 00:52:50,480 a ceea ce înseamnă să ridica o carte de telefon. 1070 00:52:50,480 --> 00:52:55,730 >> Și tu poți extrapola acum la lucruri-- mai complicat 1071 00:52:55,730 --> 00:52:57,640 construi o clădire. 1072 00:52:57,640 --> 00:52:59,940 Cum ar fi, pentru unii oameni, care are de fapt un sens. 1073 00:52:59,940 --> 00:53:03,080 Contractorilor, arhitecților, care are un sens. 1074 00:53:03,080 --> 00:53:06,400 Și ei ar ști ce să facă, dacă Am spus, du-te construi o clădire. 1075 00:53:06,400 --> 00:53:10,520 >> Dar cei mai mulți dintre noi în cameră nu a putut a face cu acel nivel de abstracție. 1076 00:53:10,520 --> 00:53:14,850 Trebuie sa ii spui ca noi să iau lopata și du-te betonul 1077 00:53:14,850 --> 00:53:17,250 și unghiilor bucăți de lemn împreună și orice altceva 1078 00:53:17,250 --> 00:53:18,830 este implicată în construirea unei clădiri. 1079 00:53:18,830 --> 00:53:21,690 Si asta pentru ca noi nu avem dar a fost programat să înțeleagă 1080 00:53:21,690 --> 00:53:23,629 ceea ce înseamnă a construi o clădire. 1081 00:53:23,629 --> 00:53:24,920 Noi nu avem acea abstracție. 1082 00:53:24,920 --> 00:53:26,570 Noi nu avem această funcționalitate. 1083 00:53:26,570 --> 00:53:29,930 >> Și ce veți vedea în limbaje de programare, în general, 1084 00:53:29,930 --> 00:53:34,570 limbi moderne, în special mai cum ar fi Java, PHP, Ruby, Python și, 1085 00:53:34,570 --> 00:53:37,610 acestea sunt mult mai matur decât limbile mai vechi, 1086 00:53:37,610 --> 00:53:40,140 cum ar fi C și C ++ și încă altele. 1087 00:53:40,140 --> 00:53:42,580 Și așa au venit cu mai multe funcționalitate construită în. 1088 00:53:42,580 --> 00:53:45,640 Mai mult cod a fost scris de oameni în trecut 1089 00:53:45,640 --> 00:53:50,520 pe care o putem numi acum sau convoca sau de a folosi, după cum am aluzie 1090 00:53:50,520 --> 00:53:52,231 la acest evidențiat linia de aici. 1091 00:53:52,231 --> 00:53:55,230 Și așa, chiar dacă nu vorbim despre limbaje de programare per se, 1092 00:53:55,230 --> 00:54:00,230 cod doar pseudocod, tot idei sunt încă în această discuție. 1093 00:54:00,230 --> 00:54:04,600 Și se pare că precizia este super-importantă, așa cum este abstracție. 1094 00:54:04,600 --> 00:54:06,570 Și să încercăm să comunică după cum urmează. 1095 00:54:06,570 --> 00:54:11,000 >> Am accidental s-ar fi stricat acest lucru prin clipirea un diapozitiv pe ecran 1096 00:54:11,000 --> 00:54:12,260 prematur. 1097 00:54:12,260 --> 00:54:16,550 Dați-mi voie să ceri un voluntar curajos, dacă nu te superi vine. 1098 00:54:16,550 --> 00:54:19,040 Ai fi, în fața aparat de fotografiat, dacă ești în regulă cu asta. 1099 00:54:19,040 --> 00:54:24,950 Oricine ar vrea să vină și să dea instructiuni colegilor de aici? 1100 00:54:24,950 --> 00:54:29,540 Trebuie doar să vii aici stau aici și să spun câteva cuvinte. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria zâmbește cel mai mult și evitând ochii mei cel mai mult. 1102 00:54:32,890 --> 00:54:34,740 Ați fi dispus să vină pe sus? 1103 00:54:34,740 --> 00:54:35,240 O.K. 1104 00:54:35,240 --> 00:54:38,480 Și, dacă toți ceilalți la locurile ar putea scoate o bucată de hârtie resturi, 1105 00:54:38,480 --> 00:54:39,750 daca tu vei. 1106 00:54:39,750 --> 00:54:40,760 hârtie căptușită este bine. 1107 00:54:40,760 --> 00:54:41,990 Veni în jurul valorii în acest fel. 1108 00:54:41,990 --> 00:54:44,580 Sau o parte din hârtie care ai fost dat ieri, 1109 00:54:44,580 --> 00:54:46,493 doar orice foaie albă de hârtie, dacă ai putea. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 Și dacă nu ai nici una, doar întreba pe aproapele tău, dacă ai putea. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Deci, pentru moment, pentru acest exemplu, Victoria 1114 00:55:07,580 --> 00:55:11,520 va juca rolul un programator, un inginer, care 1115 00:55:11,520 --> 00:55:16,130 trebuie să vă programați toate, ca calculatoarele, pentru a face ceva. 1116 00:55:16,130 --> 00:55:19,570 Și vom vedea ce ipoteze vă decide să facă. 1117 00:55:19,570 --> 00:55:22,700 Vom vedea cât de precisă ea alege să fie. 1118 00:55:22,700 --> 00:55:26,220 Iar dacă această demonstrație merge bine pedagogic, o mulțime de greșeli 1119 00:55:26,220 --> 00:55:29,220 se va face, că vom folosi atunci că ca o oportunitate de discuție. 1120 00:55:29,220 --> 00:55:32,010 Dar provocarea pentru tine ar trebui fie pentru a evita aceste greșeli, 1121 00:55:32,010 --> 00:55:32,896 să fie un bun programator. 1122 00:55:32,896 --> 00:55:35,520 Si astfel provocarea la îndemână, dacă v-ar plăcea să se plimbe aici, 1123 00:55:35,520 --> 00:55:38,799 se află în fața Victoria pe ecran aici-- și, sperăm, nici unul dintre voi 1124 00:55:38,799 --> 00:55:40,590 amintiți-vă acest lucru atunci când am fulgeră pe ecran. 1125 00:55:40,590 --> 00:55:44,097 Și nu te întoarce deloc, deoarece există un alt ecran în această cameră 1126 00:55:44,097 --> 00:55:44,930 că mă pot opri. 1127 00:55:44,930 --> 00:55:46,620 Așa că nu te întoarce. 1128 00:55:46,620 --> 00:55:49,090 >> Victoria în fața este același strigăt. 1129 00:55:49,090 --> 00:55:54,170 Iar munca ei acum este să-ți spun totul pe bucata ta de hârtie ce să atragă. 1130 00:55:54,170 --> 00:55:57,020 Și vom vedea, pe baza instrucțiuni verbale singur, 1131 00:55:57,020 --> 00:56:00,020 cod de computer, dacă va fi, cât de exacte desenele 1132 00:56:00,020 --> 00:56:02,330 are-- implementările sunt. 1133 00:56:02,330 --> 00:56:02,980 Are sens? 1134 00:56:02,980 --> 00:56:03,604 >> AUDIENTA: Da. 1135 00:56:03,604 --> 00:56:04,980 DAVID MALAN: OK, executa. 1136 00:56:04,980 --> 00:56:06,030 >> AUDIENTA: desena un pătrat. 1137 00:56:06,030 --> 00:56:09,050 >> [RÂSETE] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID MALAN: Și nu întrebări pot fi adresate. 1139 00:56:12,310 --> 00:56:13,720 Poate face doar ceea ce a spus. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Oh, și dacă aveți slide-uri de azi deschide într-o filă, nu te uita la fila. 1142 00:56:22,550 --> 00:56:23,670 O.K? 1143 00:56:23,670 --> 00:56:26,135 >> AUDIENTA: OK, desena un cerc. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 Un slope-- pot spune panta? 1146 00:56:34,872 --> 00:56:35,830 DAVID MALAN: Până la tine. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 AUDIENTA: O pantă. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 Și un triunghi. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID MALAN: Bine. 1152 00:56:50,850 --> 00:56:52,286 Si stai aici pentru un moment. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 Si voi veni în jurul valorii într-o clipă. 1155 00:56:58,910 --> 00:57:02,420 Și nu este nevoie să pună numele pe el. 1156 00:57:02,420 --> 00:57:05,030 Lasă-mă să vin în jurul și colecta desenele, 1157 00:57:05,030 --> 00:57:08,330 dacă nu te superi rupe-le. 1158 00:57:08,330 --> 00:57:12,110 >> Aici este ceea ce ne-am întors. 1159 00:57:12,110 --> 00:57:14,770 O să-l proiecteze pe ecran. 1160 00:57:14,770 --> 00:57:18,310 Văd un pătrat, un cerc, o pantă, și un triunghi. 1161 00:57:18,310 --> 00:57:20,130 Astfel că a fost un răspuns acolo. 1162 00:57:20,130 --> 00:57:23,640 Și let's-- Hopa. 1163 00:57:23,640 --> 00:57:25,370 Mulțumesc. 1164 00:57:25,370 --> 00:57:30,710 Iată un alt sortiment, și unul în spatele ei. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Asa ca toate acestea par să surprindă spiritul. 1167 00:57:37,120 --> 00:57:38,600 Mulțumesc. 1168 00:57:38,600 --> 00:57:44,970 Nu e alta, iar aici e altul. 1169 00:57:44,970 --> 00:57:51,590 Interpretarea pantei este puțin diferit, puțin curbați. 1170 00:57:51,590 --> 00:57:57,140 Și, cel mai aproape, fie din cauza specificitate minunat cu care le-ați 1171 00:57:57,140 --> 00:58:03,520 s-a descris, sau poate un fel de a văzut-o înainte, acest lucru este într-adevăr 1172 00:58:03,520 --> 00:58:06,340 ceea ce Victoria a fost de fapt care descrie. 1173 00:58:06,340 --> 00:58:09,190 >> Dar, acum, aceia dintre voi care nu a primit destul de bine, 1174 00:58:09,190 --> 00:58:11,140 să ofere unele obiecții aici. 1175 00:58:11,140 --> 00:58:13,770 Așa că Victoria întâi a spus desena un pătrat. 1176 00:58:13,770 --> 00:58:15,830 Și acum, putem presupune de dragul de astăzi 1177 00:58:15,830 --> 00:58:17,538 că toată lumea știe cum să atragă un pătrat. 1178 00:58:17,538 --> 00:58:20,590 Dar asta nu e totul clar, nu? 1179 00:58:20,590 --> 00:58:23,220 Cum altfel ai putea avea trase un pătrat, sau în cazul în care 1180 00:58:23,220 --> 00:58:27,114 ar putea fi unele dintre ambiguități aici pentru calculator? 1181 00:58:27,114 --> 00:58:28,280 AUDIENTA: Amplasarea și mărimea. 1182 00:58:28,280 --> 00:58:28,980 DAVID MALAN: Locație, nu? 1183 00:58:28,980 --> 00:58:32,070 Toți ați avut-o hârtie de o anumită formă, în general, dreptunghiuri, dar ușor 1184 00:58:32,070 --> 00:58:32,830 dimensiuni diferite. 1185 00:58:32,830 --> 00:58:36,250 Dar tu cu siguranță, ar fi putut, dacă ai vrut, un pătrat imens, poate 1186 00:58:36,250 --> 00:58:37,220 un pătrat minuscul. 1187 00:58:37,220 --> 00:58:38,417 Poate, a fost rotit. 1188 00:58:38,417 --> 00:58:39,500 Nu cred că am văzut asta. 1189 00:58:39,500 --> 00:58:41,790 Dar ar fi putut fi mai mult de diamant cum ar fi, dar totuși, cu toate acestea, 1190 00:58:41,790 --> 00:58:42,900 matematic un pătrat. 1191 00:58:42,900 --> 00:58:44,850 Astfel că a fost fără îndoială ambiguu. 1192 00:58:44,850 --> 00:58:46,709 >> Apoi, ea a spus, desena un cerc. 1193 00:58:46,709 --> 00:58:49,250 Unii dintre voi a făcut-o trage lângă ea, care nu este rezonabil, 1194 00:58:49,250 --> 00:58:52,450 pentru că oamenii tind să se gândească sau a citi dreapta la stânga, în cele mai multe limbi, astfel încât să nu 1195 00:58:52,450 --> 00:58:53,017 o presupunere proastă. 1196 00:58:53,017 --> 00:58:55,100 Dar acest lucru ar putea avea cercul fost în interiorul pătrat, 1197 00:58:55,100 --> 00:58:57,600 ar fi fost în jurul valorii pătrat, ar fi fost în altă parte 1198 00:58:57,600 --> 00:58:59,480 pe foaie, așa că, fără îndoială, ambiguă. 1199 00:58:59,480 --> 00:59:03,290 >> Pantă ar fi fost, poate, luând cele mai multe libertăți verbal 1200 00:59:03,290 --> 00:59:04,200 cu ceea ce înseamnă că. 1201 00:59:04,200 --> 00:59:06,980 Și unii dintre voi interpretat ca pe o linie șerpuită 1202 00:59:06,980 --> 00:59:08,560 sau o linie dreaptă sau ceva asemănător. 1203 00:59:08,560 --> 00:59:11,719 Și apoi triunghi, de asemenea, ar putea avea fost orientate în orice număr de moduri. 1204 00:59:11,719 --> 00:59:14,760 Deci, pe scurt, chiar și cu ceva ce te arunca o privire si tu esti ca, wow, asa 1205 00:59:14,760 --> 00:59:17,020 simplu, un copil ar putea trage acest lucru, nu este bine 1206 00:59:17,020 --> 00:59:19,640 într-adevăr, dacă nu ești super, super-convingător 1207 00:59:19,640 --> 00:59:22,045 și spune computerul exact ce să facă. 1208 00:59:22,045 --> 00:59:24,420 Așa că, dacă am putea, dacă aveți o altă foaie de hârtie, să 1209 00:59:24,420 --> 00:59:26,710 încercați acest lucru încă o dată. 1210 00:59:26,710 --> 00:59:29,880 Si voi da Victoria unul Un alt exemplu de pe ecran aici. 1211 00:59:29,880 --> 00:59:34,060 Și din nou, nu se întoarce în jurul valorii de și nu te uita la diapozitive. 1212 00:59:34,060 --> 00:59:37,304 Și o să-i dau un moment să gândiți-vă cum să descrie acest lucru. 1213 00:59:37,304 --> 00:59:39,012 Nu-i lăsa să vadă frica în ochii tăi. 1214 00:59:39,012 --> 00:59:40,820 >> [RÂSETE] 1215 00:59:40,820 --> 00:59:43,710 >> Și din nou, de data aceasta efectul de levier unele dintre aceste takeaways 1216 00:59:43,710 --> 00:59:48,130 și să încercați să obțineți aproape toată lumea cel puțin răspunsul corect. 1217 00:59:48,130 --> 00:59:52,260 >> AUDIENTA: OK, să ia o bucată de hârtie, uita-te 1218 00:59:52,260 --> 00:59:54,500 în mijlocul acelei bucată de hârtie. 1219 00:59:54,500 --> 00:59:59,591 In mijlocul acestei piese de hârtie, trage un cub. 1220 00:59:59,591 --> 01:00:01,244 >> [RÂSETE] 1221 01:00:01,244 --> 01:00:02,660 DAVID MALAN: Ce am învățat? 1222 01:00:02,660 --> 01:00:03,540 Am fost atât de aproape. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, se repetă dacă ai putea, pentru toată lumea. 1225 01:00:09,045 --> 01:00:13,210 >> AUDIENTA: La miezul bucată de hârtie, trage un obiect, 1226 01:00:13,210 --> 01:00:14,842 care arată ca un cub. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID MALAN: OK, asta tot ce ajunge să lucrați. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Permiteți-mi să fie analitică și nu atât de mult critică, 1230 01:00:23,080 --> 01:00:25,720 dar pentru a face cererea că Victoria cu siguranță 1231 01:00:25,720 --> 01:00:28,967 pare a fi de gândire în foarte abstractizări de nivel înalt, care 1232 01:00:28,967 --> 01:00:29,800 nu este rezonabilă. 1233 01:00:29,800 --> 01:00:32,160 Pentru că altfel, am fi toți fie destul de disfuncțională, 1234 01:00:32,160 --> 01:00:35,740 dacă a trebuit să fie vreodată atât de precis cu tot ceea ce facem în lume. 1235 01:00:35,740 --> 01:00:38,890 >> Dar, spunând: du-te la I middle-- crezut că suntem pe o astfel de cale bună 1236 01:00:38,890 --> 01:00:42,340 acolo, cum ar fi du-te la foarte mijloc a paginii, și apoi trage un cub. 1237 01:00:42,340 --> 01:00:45,730 Deci, ea se gândește în abstracțiuni, pentru că ea încă vizionează 1238 01:00:45,730 --> 01:00:48,490 ceea ce este pe ecran ca într-adevăr, un cub. 1239 01:00:48,490 --> 01:00:51,185 Dar, există atât de multe oportunități pentru interpretare acolo. 1240 01:00:51,185 --> 01:00:53,560 Și, de fapt, există atât de multe alte modalități de ai putea exprima 1241 01:00:53,560 --> 01:00:55,101 că, pe care le voi propune într-un moment. 1242 01:00:55,101 --> 01:00:59,770 Deci, aici avem o incarnare a celui whoops-- picture-- 1243 01:00:59,770 --> 01:01:02,830 incarnare a imaginii, asa ca o putin trei dimensionalitate-l, 1244 01:01:02,830 --> 01:01:04,160 ceea ce este frumos. 1245 01:01:04,160 --> 01:01:08,470 >> Iată încă unul, în cazul în care aveți la dispoziție același, deși este un fel de cub deschis. 1246 01:01:08,470 --> 01:01:12,020 Unii oameni a fost nevoie de un pic mai plat, două dimensiuni. 1247 01:01:12,020 --> 01:01:13,910 Și asta e bine. 1248 01:01:13,910 --> 01:01:17,380 Deci, există, într-adevăr, în centrul hârtiei. 1249 01:01:17,380 --> 01:01:22,720 Asta cred că o să cum ar fi, pentru că dacă vom merge aici, 1250 01:01:22,720 --> 01:01:25,130 aceasta este ceea ce a fost descris. 1251 01:01:25,130 --> 01:01:29,570 Așa că acum, permiteți-mi propun cum altfel am putea descrie această situație. 1252 01:01:29,570 --> 01:01:34,070 >> Înapoi în a doua zi, una dintre cele mai modalități mai comune de a învăța programare 1253 01:01:34,070 --> 01:01:38,900 a fost de a scrie cod, scrie linii de instrucțiuni, 1254 01:01:38,900 --> 01:01:42,640 care a controlat un pic Turtle pe ecran. 1255 01:01:42,640 --> 01:01:45,660 Logo și alte variante ale acestui a fost numele limbii. 1256 01:01:45,660 --> 01:01:47,550 Turtureaua a trăit într-o lume. 1257 01:01:47,550 --> 01:01:49,970 >> Așa că să presupunem că această formă dreptunghiulară spațiu este lumea lui. 1258 01:01:49,970 --> 01:01:53,340 Iar tu ar începe prin assuming-- I nu știu cu adevărat cum să atragă broască țestoasă, 1259 01:01:53,340 --> 01:01:54,740 așa că hai să o facem așa. 1260 01:01:54,740 --> 01:01:57,340 Și apoi el are o carapace și apoi, poate, niște picioare. 1261 01:01:57,340 --> 01:01:59,840 Așa că s-ar putea avea acest mic caracter pe ecran. 1262 01:01:59,840 --> 01:02:02,270 >> Iar obiectul acestei limbaj de programare 1263 01:02:02,270 --> 01:02:06,070 a fost de a constrânge broasca testoasa pentru a merge în sus, în jos, la stânga, dreapta 1264 01:02:06,070 --> 01:02:08,420 și de a pune pixul jos sau ridica stiloul lui în sus, 1265 01:02:08,420 --> 01:02:12,720 astfel încât să se poată desena pe ecran în această lume dreptunghiulară foarte plat. 1266 01:02:12,720 --> 01:02:16,850 Așa că în cazul în care m-am gândit că este posibil să, și unde ar trebui să ia în considerare scufundări 1267 01:02:16,850 --> 01:02:19,520 până la mental atunci când descrie mai multe instrucțiuni în general, 1268 01:02:19,520 --> 01:02:21,720 Mi-ar pretinde, este pus ta pen-ul în jos în middle-- 1269 01:02:21,720 --> 01:02:23,100 și vom scapa de broască țestoasă, pentru că eu nu pot într-adevăr 1270 01:02:23,100 --> 01:02:24,680 să păstreze desen-l foarte bine. 1271 01:02:24,680 --> 01:02:27,170 >> Și acum, cum altfel ar putea Eu spun trage un cub? 1272 01:02:27,170 --> 01:02:32,830 Ei bine, am putea spune ceva de genul remiză o linie de nord-est diagonală, spre exemplu, 1273 01:02:32,830 --> 01:02:35,182 sau la un unghi de 45 de grade în sus. 1274 01:02:35,182 --> 01:02:36,640 Și asta mi-ar fi ajuns aici. 1275 01:02:36,640 --> 01:02:38,380 Și eu sunt destul de departe de un cub. 1276 01:02:38,380 --> 01:02:42,430 Dar acum, aș putea spune ceva cum ar fi rândul său, la 90 de grade spre stânga 1277 01:02:42,430 --> 01:02:47,370 și trage o linie de lungime egală nord-vest. 1278 01:02:47,370 --> 01:02:49,470 Și aș putea continua cu direcții similare. 1279 01:02:49,470 --> 01:02:50,720 Și nu va fi ușor. 1280 01:02:50,720 --> 01:02:53,345 Și, sincer, probabil că ne-ar au fost aici timp de cinci minute. 1281 01:02:53,345 --> 01:02:59,600 Dar poate că am fi ajuns la ceva care, la sfârșitul zilei, 1282 01:02:59,600 --> 01:03:04,280 sfârșește prin a fi un cub, dar noi scufundat în interiorul acelei abstracție 1283 01:03:04,280 --> 01:03:06,370 pentru a face acest lucru, la un astfel de scăzut nivel care nu poate într-adevăr 1284 01:03:06,370 --> 01:03:09,795 vezi ceea ce faci până când toată lucru este de fapt acolo pe pagina. 1285 01:03:09,795 --> 01:03:12,670 Și, astfel încât acesta este un principiu general, din nou, din programming-- această idee 1286 01:03:12,670 --> 01:03:13,320 de abstracție. 1287 01:03:13,320 --> 01:03:15,920 Este atât de minunat puternic, pentru că, din nou, 1288 01:03:15,920 --> 01:03:19,281 ea tocmai a spus, trage un cub, care toate ne destul de mult s-ar Grok foarte repede. 1289 01:03:19,281 --> 01:03:21,030 Ne-ar înțelege exact, OK, trage un cub. 1290 01:03:21,030 --> 01:03:24,030 S-ar putea să nu știm orientarea, așa că am putea fi un pic mai precis, 1291 01:03:24,030 --> 01:03:26,297 dar ne putem imagina, în general, sau stiti ce este un cub. 1292 01:03:26,297 --> 01:03:28,130 Și asta e util, pentru că, dacă de fiecare dată când 1293 01:03:28,130 --> 01:03:31,540 așezat ca programator la tastatura pentru a scrie cod, 1294 01:03:31,540 --> 01:03:33,912 dacă ai trebuit să se gândească la o astfel de un nivel scăzut, nici unul dintre noi 1295 01:03:33,912 --> 01:03:35,120 s-ar obține vreodată ceva de făcut. 1296 01:03:35,120 --> 01:03:38,259 Și, cu siguranță, nici unul dintre noi nu ar fi bucura de procesul de cod de scriere. 1297 01:03:38,259 --> 01:03:41,550 Ar fi ca și cum scrie în 0 și 1, a care sincer nu a fost tot atât de mult timp în urmă 1298 01:03:41,550 --> 01:03:43,680 oamenii au scris cod în 0 și 1 lui. 1299 01:03:43,680 --> 01:03:46,960 Si am ajuns foarte repede cu acestea superior languages-- nivel 1300 01:03:46,960 --> 01:03:49,410 C ++ si Java si altele. 1301 01:03:49,410 --> 01:03:52,500 >> Așa că hai să încercăm încă o dată doar pentru a flip tabele, astfel încât noi toți 1302 01:03:52,500 --> 01:03:55,450 au șansa de a gândi în destul de același fel. 1303 01:03:55,450 --> 01:03:59,230 Am putea obține mai mult de un voluntar acest lucru timp pentru a veni la bord și să tragă, 1304 01:03:59,230 --> 01:04:01,480 nu recita? 1305 01:04:01,480 --> 01:04:02,070 Da, OK. 1306 01:04:02,070 --> 01:04:04,820 Ben, vino sus. 1307 01:04:04,820 --> 01:04:08,510 Si, Ben, în acest caz, o dată ce se confruntă cu placa, nu te uita la stânga, 1308 01:04:08,510 --> 01:04:09,370 nu arata bine. 1309 01:04:09,370 --> 01:04:12,367 Numai a face ceea ce dvs. Colegii aici vă spun. 1310 01:04:12,367 --> 01:04:14,950 Iar pentru toți ceilalți din cameră, acum sunt programator. 1311 01:04:14,950 --> 01:04:16,020 El e calculatorul. 1312 01:04:16,020 --> 01:04:21,395 Iar imaginea l-am ales aici în avans este cel de aici. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Sunt doar-- gândesc ei de o glumă amuzant este tot. 1315 01:04:27,660 --> 01:04:31,510 >> Așa că s-ar face cineva vrea să voluntar prima instrucțiune 1316 01:04:31,510 --> 01:04:35,470 sau o declarație pe care ar trebui să stilou comanda lui Ben? 1317 01:04:35,470 --> 01:04:40,850 Si vom face acest lucru în mod colectiv, poate o instrucțiune de la fiecare persoană. 1318 01:04:40,850 --> 01:04:41,440 Imi pare rau? 1319 01:04:41,440 --> 01:04:42,440 >> AUDIENTA: desena un cerc. 1320 01:04:42,440 --> 01:04:45,866 DAVID MALAN: Desenați un cerc este primul lucru pe care l-am auzit. 1321 01:04:45,866 --> 01:04:47,100 >> AUDIENTA: Up top. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID MALAN: Up top. 1323 01:04:48,140 --> 01:04:52,504 OK, putem lăsa să ștergeți, anulați. 1324 01:04:52,504 --> 01:04:53,420 Și acum, altcineva. 1325 01:04:53,420 --> 01:04:55,994 Dan, te-ai fi confortabil oferind următoarea instrucțiune? 1326 01:04:55,994 --> 01:05:02,070 >> Audiența: Sigur, trage centrul din partea de jos a cercului, 1327 01:05:02,070 --> 01:05:07,121 cu un small-- un pic spațiu mic de la faptul că, 1328 01:05:07,121 --> 01:05:15,420 trage o linie dreaptă până la trei sferturi din drum în jos placa 1329 01:05:15,420 --> 01:05:17,845 un unghi mic stânga. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID MALAN: Bine. 1332 01:05:22,620 --> 01:05:24,086 >> AUDIENTA: Unghi ușor. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID MALAN: Anulare, Control-Z. O.K. 1334 01:05:32,807 --> 01:05:34,890 Andrew, vrei să oferim up instrucțiunea următoare? 1335 01:05:34,890 --> 01:05:35,515 >> AUDIENTA: Sigur. 1336 01:05:35,515 --> 01:05:43,250 Din partea de jos a acestei linii, o ușoară angle-- suplimentară 1337 01:05:43,250 --> 01:05:49,024 whoops-- poate aproximativ o treime din lungimea [inaudibil], 1338 01:05:49,024 --> 01:05:52,928 ușor înclinat în jos și ca un treime din lungimea [inaudibil]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Deci da, din acel moment, trage o linie de o treime 1341 01:06:00,578 --> 01:06:04,150 din lungimea anterioară linia mai la stânga. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID MALAN: Asta OK? 1344 01:06:10,040 --> 01:06:12,330 linie dreaptă, e în regulă? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, pe care doriți pentru a oferi până la următoarea? 1346 01:06:14,900 --> 01:06:28,564 >> AUDIENTA: [inaudibil] din partea de jos a cercului, [inaudibil]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Desena pe partea dreaptă de [inaudibil] centimetri. 1349 01:06:45,126 --> 01:06:46,560 >> [RÂSETE] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID MALAN: Cred că vei trebuie să transforme asta inch aici. 1351 01:06:49,872 --> 01:06:50,764 >> AUDIENTA: Stop. 1352 01:06:50,764 --> 01:06:52,186 >> [RÂSETE] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID MALAN: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Vrei pentru a oferi până la următoarea? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> AUDIENTA: desena o [inaudibil] superior [inaudibil] la fel. 1357 01:07:15,443 --> 01:07:28,829 [Inaudibil] cerc, aducă la [Inaudibil] și să [inaudibil]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID MALAN: OK, nu mai anulează. 1360 01:07:36,730 --> 01:07:38,390 Hai să facem una sau două mai multe instrucțiuni. 1361 01:07:38,390 --> 01:07:40,825 Chris, vrei să oferi una? 1362 01:07:40,825 --> 01:07:46,182 >> AUDIENTA: La partea de jos a cercului, [inaudibil] 1363 01:07:46,182 --> 01:07:51,528 trage o linie debordare egală în jos spre stânga [inaudibil]. 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> DAVID MALAN: OK. 1366 01:08:00,590 --> 01:08:01,170 Andrew? 1367 01:08:01,170 --> 01:08:02,472 Noi did-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> AUDIENTA: Pornind de la linia dreaptă, capătul liniei de stânga, în partea de jos, 1370 01:08:13,765 --> 01:08:21,012 vei merge dreptate aceeași lungime ca acea linie 1371 01:08:21,012 --> 01:08:27,680 sunteți pe picior, desen la dreptul [inaudibil]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Inaudibil] grade, astfel încât [inaudibil] grade pe partea dreapta. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID MALAN: Bine. 1376 01:08:43,500 --> 01:08:44,029 Să ne oprim. 1377 01:08:44,029 --> 01:08:44,950 Nu te întoarce încă. 1378 01:08:44,950 --> 01:08:46,783 Hai să ne oprim și să încercați încă o încercare de 1379 01:08:46,783 --> 01:08:48,850 înainte de a ne dezvălui lui Ben ce a desenat. 1380 01:08:48,850 --> 01:08:51,189 Puteți amesteca Ben să right-- sau de fapt, 1381 01:08:51,189 --> 01:08:54,080 Nu, să vă dau doar un alt bord, chiar mai bine. 1382 01:08:54,080 --> 01:08:57,640 Așa că s-ar dori cineva acum să ia mai mult de abordare 1383 01:08:57,640 --> 01:09:02,149 că Victoria a luat mai devreme, în cazul în care vom vorbi într-o abstracție de nivel superior 1384 01:09:02,149 --> 01:09:05,149 și în doar o propoziție sau două descriu Ben 1385 01:09:05,149 --> 01:09:07,229 ce să atragă fără intrând în buruieni, 1386 01:09:07,229 --> 01:09:10,670 ca să spunem așa, la acest nivel inferior? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [RÂSETE] 1389 01:09:11,706 --> 01:09:14,249 AUDIENTA: desena o figură a omului de mers pe jos. 1390 01:09:14,249 --> 01:09:18,866 Și picioarele și brațele trebuie să fie pe partea dreapta. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID MALAN: OK, asta e tot ce primești. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 In regula. 1394 01:09:27,710 --> 01:09:31,609 De ce nu ne dezvăluie lui Ben ceea ce a făcut el. 1395 01:09:31,609 --> 01:09:32,890 Deci, o rundă de aplauze. 1396 01:09:32,890 --> 01:09:35,700 Acesta a fost cel mai greu, probabil. 1397 01:09:35,700 --> 01:09:37,931 >> Deci, chiar dacă e vorba în termeni destul de stupide 1398 01:09:37,931 --> 01:09:39,680 doar despre desen poze, sperăm, 1399 01:09:39,680 --> 01:09:44,226 se poate aprecia cu adevărat gradul de expresivitate care ar putea fi necesare 1400 01:09:44,226 --> 01:09:45,850 în scopul de a spune un computer ce să facă. 1401 01:09:45,850 --> 01:09:50,370 Și, de fapt, faptul că Ben a fost în măsură să atragă acest lucru atât de repede 1402 01:09:50,370 --> 01:09:54,227 este un fel de testament de a utiliza un limbă, poate un nivel mai ridicat 1403 01:09:54,227 --> 01:09:57,060 versiune de limba engleză, care îi permite să folosească doar cuvinte, sau să audă cuvinte 1404 01:09:57,060 --> 01:09:59,990 de la Victoria, care îi permite aceste abstractions-- doar trage 1405 01:09:59,990 --> 01:10:03,020 o figură mers pe jos right-- care are un fel de 1406 01:10:03,020 --> 01:10:07,100 un sens semantic să-l că nu este aproape la fel de evident atunci când ești doar 1407 01:10:07,100 --> 01:10:10,310 spunând, pune stiloul în jos, trage la dreapta, trage la stânga. 1408 01:10:10,310 --> 01:10:12,420 >> Și așa acest lucru, de asemenea, este foarte comune în programare. 1409 01:10:12,420 --> 01:10:15,253 Acest lucru ar fi spus să fie ca un limbaj de nivel foarte scăzut, de programare 1410 01:10:15,253 --> 01:10:16,730 în 0 și 1 dacă vreți. 1411 01:10:16,730 --> 01:10:19,320 Și acest lucru ar fi un nivel mai ridicat limbaj de programare în Java, 1412 01:10:19,320 --> 01:10:20,278 sau asa ceva. 1413 01:10:20,278 --> 01:10:22,050 Un pic de suprasimplificării, dar asta 1414 01:10:22,050 --> 01:10:24,310 cum ar fi un fel de emoțional sentimentul că te simți când 1415 01:10:24,310 --> 01:10:26,630 folosind un singur tip de lucru sau altul. 1416 01:10:26,630 --> 01:10:32,650 Un pic de frustrare aici de necesitatea pentru o astfel de precizie, dar oportunitatea 1417 01:10:32,650 --> 01:10:34,930 să fie un pic mai flexibile cu interpretarea aici. 1418 01:10:34,930 --> 01:10:38,060 Dar, desigur, bug-uri pot apărea ca rezultat. 1419 01:10:38,060 --> 01:10:40,500 >> Dacă doriți la home-- noi nu va face asta în class-- 1420 01:10:40,500 --> 01:10:41,900 dar dacă doriți să aduce aceasta acasă, 1421 01:10:41,900 --> 01:10:43,387 Am crezut că vom arunca cu capul în asta. 1422 01:10:43,387 --> 01:10:45,970 Așa că, dacă doriți să joace acest joc cu alte dvs. semnificative 1423 01:10:45,970 --> 01:10:49,180 sau copii, sau asemenea, vă s-ar putea bucura de asta la fel de bine. 1424 01:10:49,180 --> 01:10:54,460 >> Așa că hai să mergem mai departe și să se uite la o ultimă lucru aici pentru gândirea de calcul. 1425 01:10:54,460 --> 01:10:57,010 Si asta ne aduce la John Oliver, nu pentru clipul 1426 01:10:57,010 --> 01:11:00,070 s-ar putea fi văzut noaptea trecută, dar într-o problemă oarecum recentă. 1427 01:11:00,070 --> 01:11:03,310 Câteva luni în urmă, Volkswagen a luat destul de un pic de antiglonț 1428 01:11:03,310 --> 01:11:05,651 din ce motiv, dacă știi? 1429 01:11:05,651 --> 01:11:07,025 Ce au ajuns în necazuri? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Da, deci emissions-- ei au încercat să bată emisiile 1432 01:11:14,030 --> 01:11:19,100 Testele prin esență având acestora mașinile poluează mediul mai puțin 1433 01:11:19,100 --> 01:11:23,620 când mașinile lor au fost testate și poluează mediul mai mult 1434 01:11:23,620 --> 01:11:25,547 atunci când nu au fost testate mașinile. 1435 01:11:25,547 --> 01:11:28,630 Și ce e din ce în ce mai interesant în lume, așa cum s-ar putea avea intuit 1436 01:11:28,630 --> 01:11:34,072 din discuțiile like-- ceea ce este it-- CarPlay, software-ul Apple pentru automobile 1437 01:11:34,072 --> 01:11:35,780 și faptul că mulți din ce în ce mai noi 1438 01:11:35,780 --> 01:11:38,390 au ecrane tactile în mașinile noastre, există o cantitate înfricoșătoare 1439 01:11:38,390 --> 01:11:41,250 a software-ului în oameni a lui mașini de astăzi, care 1440 01:11:41,250 --> 01:11:45,650 sincer deschide un întreg poate de viermi atunci când este vorba de securitate și risc fizic. 1441 01:11:45,650 --> 01:11:48,070 Dar pentru ziua de azi, hai se concentreze doar pe ceea ce este 1442 01:11:48,070 --> 01:11:52,170 implicate în software-ul scris care ar fi putut gamed sistemului. 1443 01:11:52,170 --> 01:11:54,510 >> Pentru definiția problemă, pentru cei care nu cunosc, 1444 01:11:54,510 --> 01:11:55,740 Să aruncăm o privire la John Oliver. 1445 01:11:55,740 --> 01:11:58,115 Iar pentru cei familiarizați cu problema, să ne uităm la ea 1446 01:11:58,115 --> 01:12:00,480 într-o lentilă de distracție prin intermediul John Oliver, de asemenea. 1447 01:12:00,480 --> 01:12:05,810 Așa că lasă-mă lovit ca jocul să continue acest lucru, am cred că, introducerea de trei minute. 1448 01:12:05,810 --> 01:12:07,074 La naiba. 1449 01:12:07,074 --> 01:12:07,740 [REDARE VIDEO] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 DAVID MALAN: Evident, pe YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --Discutii mai inteligente de caractere filmele Fast and Furious. 1453 01:12:12,500 --> 01:12:16,080 În această săptămână, constructorul german Volkswagen a găsit în sine 1454 01:12:16,080 --> 01:12:19,430 în mijlocul unui scandal de proporții potențial penale. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Se pregătește pentru miliarde în amenzi, eventuale acuzații penale 1456 01:12:23,020 --> 01:12:25,530 pentru directori sale, în calitate de compania isi cere scuze 1457 01:12:25,530 --> 01:12:28,790 pentru fraudarea 11 milioane de automobile la ajuta bate testele de emisii. 1458 01:12:28,790 --> 01:12:32,110 >> Modelele diesel -Certain au fost proiectate cu software-ul sofisticat 1459 01:12:32,110 --> 01:12:35,410 informații utilizate, inclusiv poziția a volanului și a vehiculului 1460 01:12:35,410 --> 01:12:38,820 viteza, pentru a determina masina a fost în curs de testare a emisiilor. 1461 01:12:38,820 --> 01:12:42,620 În conformitate cu această împrejurare, motorul ar reduce emisiile toxice. 1462 01:12:42,620 --> 01:12:46,040 Dar masina a fost trucat bypass că atunci când a fost condus. 1463 01:12:46,040 --> 01:12:51,370 Emisiile au crescut la 10 la 40 ori peste nivelurile acceptabile EPA. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow, 10 până la 40 de ori mai mare decât APE permite. 1465 01:12:55,920 --> 01:12:59,570 Acesta este cel mai rău lucru Volkswagen a făcut vreodată, 1466 01:12:59,570 --> 01:13:04,200 este ceva ce s-ar putea spune dacă tu n-ai auzit de-al doilea război mondial. 1467 01:13:04,200 --> 01:13:09,710 Dar poate cel mai sigur semn al modului multe probleme Volkswagen este, 1468 01:13:09,710 --> 01:13:12,730 este faptul că oamenii de la foarte de sus în jos s-au intensificat. 1469 01:13:12,730 --> 01:13:16,320 CEO-ul a demisionat miercuri, după de codare pentru a face controlul daunelor, 1470 01:13:16,320 --> 01:13:20,380 spunând că a fost nesfârșit de rău, care a sunat mare până când s-au dovedit 1471 01:13:20,380 --> 01:13:22,920 el a fost de numai 10% rău dar a aranjat gura 1472 01:13:22,920 --> 01:13:25,600 pentru a umfla artificial sorriness lui. 1473 01:13:25,600 --> 01:13:29,700 Și între timp, SUA Volkswagen șef a avut o apologie a propriei sale. 1474 01:13:29,700 --> 01:13:33,580 >> -Hai Să fie clare cu privire la acest lucru, compania noastra a fost necinstit. 1475 01:13:33,580 --> 01:13:37,140 Și, în cuvintele mele din Germania, noi au stricat complet în sus. 1476 01:13:37,140 --> 01:13:41,360 >> Da, dar complet înșurubate up nu sunt opere germane. 1477 01:13:41,360 --> 01:13:43,750 Și limba germană are multe expresii frumoase 1478 01:13:43,750 --> 01:13:50,070 pentru a descrie situații la fel ca aceasta, cum ar fi [german], ceea ce înseamnă aproximativ, 1479 01:13:50,070 --> 01:13:52,870 tristețea care vine de minciuni legate de afaceri, 1480 01:13:52,870 --> 01:13:59,060 sau [GERMANĂ], care se traduce ca rușinare tată pe cele care implică 1481 01:13:59,060 --> 01:14:00,352 nori de benzină. 1482 01:14:00,352 --> 01:14:02,060 Este o limbă frumoasă. 1483 01:14:02,060 --> 01:14:04,660 Este doar vele de pe limba. 1484 01:14:04,660 --> 01:14:07,920 Și, apropo, în timp ce acel om scuze poate fi sunat sincer, 1485 01:14:07,920 --> 01:14:12,260 este demn de remarcat faptul că vorbește la o petrecere de lansare oficiala pentru 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, ceea ce înseamnă că în scurt timp după ce a spus rău, el a spus acest lucru. 1487 01:14:17,310 --> 01:14:18,850 >> te -Multumesc foarte mult pentru că ați venit. 1488 01:14:18,850 --> 01:14:19,630 Bucura-te de seara. 1489 01:14:19,630 --> 01:14:21,300 Up următor este Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [MUZICĂ] 1491 01:14:24,640 --> 01:14:28,230 >> -Bine, OK, se termină ta scuze cu până următoare 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz nu țipă căință treaz. 1493 01:14:31,940 --> 01:14:35,830 Ea țipă, am întrebat Bon Jovi, și el a spus nu. 1494 01:14:35,830 --> 01:14:38,600 Volkswagen are fost grav avariate. 1495 01:14:38,600 --> 01:14:42,466 Și, sincer, noul lor anunț Campania nu este de a ajuta cu exactitate. 1496 01:14:42,466 --> 01:14:47,289 >> - [GERMANĂ], noi la Volkswagen ar dori să-mi cer scuze pentru tine înșelător cu 1497 01:14:47,289 --> 01:14:47,930 vehiculele noastre. 1498 01:14:47,930 --> 01:14:48,513 >> [END REDARE] 1499 01:14:48,513 --> 01:14:54,090 DAVID MALAN: Deci asta a fost un ocoliș de-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 aceasta a fost o cale ocolitoare introducând o problemă fundamentală 1501 01:14:58,730 --> 01:15:02,810 în software-ul, care este că Trebuie să detecteze anumite condiții. 1502 01:15:02,810 --> 01:15:07,680 Și așa întrebarea la îndemână aici este, cum face o masina potential, 1503 01:15:07,680 --> 01:15:09,870 așa cum este implementat în software-ul de către acești programatori, 1504 01:15:09,870 --> 01:15:11,850 detecta că este de fapt a fi testat? 1505 01:15:11,850 --> 01:15:14,150 Deci, pentru a fi super clare, ceea ce făceau 1506 01:15:14,150 --> 01:15:17,940 a fost, în medii în care programatorii gândit 1507 01:15:17,940 --> 01:15:20,460 masina a dat testat, au făcut într-un fel 1508 01:15:20,460 --> 01:15:24,840 masina emit mai puține emisii, mai puține emisiile, fum atât de puțin toxice 1509 01:15:24,840 --> 01:15:25,470 și astfel. 1510 01:15:25,470 --> 01:15:27,261 Dar, când este în mod normal, de conducere pe drum, 1511 01:15:27,261 --> 01:15:30,350 aceasta ar emite la fel de mult poluarea așa cum a dorit. 1512 01:15:30,350 --> 01:15:33,870 >> Deci, cum am putea scrie pseudocod pentru acest algoritm? 1513 01:15:33,870 --> 01:15:37,820 Cum am putea scrie pseudocod pentru software-ul care rulează în mașină? 1514 01:15:37,820 --> 01:15:43,390 Vreau să spun, într-un cuvânt, se fierbe până la ceva de genul asta. 1515 01:15:43,390 --> 01:15:48,000 în cazul în care a fost testat, emit mai puțin. 1516 01:15:48,000 --> 01:15:50,750 altceva emite mai mult. 1517 01:15:50,750 --> 01:15:52,630 Dar asta e un pic prea înalt nivel, nu? 1518 01:15:52,630 --> 01:15:58,580 >> Hai să încercăm să se scufunde în a ceea ce acest lucru abstracție de a fi mijloace testate. 1519 01:15:58,580 --> 01:16:06,340 Cu alte cuvinte, chiar dacă nu știi nimic despre masini, ce fel de întrebări 1520 01:16:06,340 --> 01:16:13,440 s-ar putea să vă întreb pentru a determina dacă esti in curs de testare, dacă sunteți mașina? 1521 01:16:13,440 --> 01:16:19,638 Ce caracteristici ar putea fi în cazul în care prezenta o masina este in curs de testare? 1522 01:16:19,638 --> 01:16:21,026 >> AUDIENTA: Testarea echipamentelor. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID MALAN: Echipamente de testare. 1524 01:16:22,420 --> 01:16:26,060 Așa că, dacă echipamentul de testare în apropiere, apoi emit mai puțin. 1525 01:16:26,060 --> 01:16:28,669 Așa că am putut imagina de punere în aplicare că, cu un fel de aparate foto 1526 01:16:28,669 --> 01:16:29,960 sau detectarea ce e în jurul tău. 1527 01:16:29,960 --> 01:16:32,870 Și să-mi propun, că pur și simplu se simte prea complicat 1528 01:16:32,870 --> 01:16:37,914 pentru a avea de fapt suplimentare hardware doar pentru acest scop. 1529 01:16:37,914 --> 01:16:44,830 >> Audiența: Dacă sunteți în parc, în cazul în care hota este deschisă. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID MALAN: în parc sau hota deschisă, așa că e bine. 1531 01:16:47,320 --> 01:16:47,420 >> AUDIENTA: Și rulează mașina. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID MALAN: Deci asta e un pic mai multe concrete-- și funcționare auto. 1533 01:16:50,480 --> 01:16:55,690 Deci, acest lucru ar fi conjuncția unui câteva condiții diferite, dacă vreți. 1534 01:16:55,690 --> 01:16:59,227 Așa că, dacă mașina se află în parc, și chiar deși acest lucru este un lucru foarte mecanic 1535 01:16:59,227 --> 01:17:01,060 în mod tipic, aș putea imagina scris software-ul, 1536 01:17:01,060 --> 01:17:03,476 mai ales pentru că există de multe ori o lumină acolo aceste zile, 1537 01:17:03,476 --> 01:17:07,400 Aș putea imagina acolo fiind software-ul care poate interoga schimbatorul 1538 01:17:07,400 --> 01:17:10,634 sau nu ceea ce, ești în parc, sunt vă în unitate, ești în sens invers. 1539 01:17:10,634 --> 01:17:12,550 Și pot să mă întorc o răspunde la asta, fie da 1540 01:17:12,550 --> 01:17:14,400 sau nu la aceste tipuri de întrebări. 1541 01:17:14,400 --> 01:17:17,630 >> Și așa am putut, de asemenea, să răspundă, probabil, o întrebare cum ar fi, este capota deschisă. 1542 01:17:17,630 --> 01:17:21,860 Poate, există un fel de senzor fie că-mi dă înapoi un 1 sau 0, 1543 01:17:21,860 --> 01:17:23,720 adevărat sau fals, capota este deschisă. 1544 01:17:23,720 --> 01:17:28,180 Și apoi masina de rulare, am putut detecta că într-un fel prin ce mecanism? 1545 01:17:28,180 --> 01:17:30,430 Cum ar fi, mașina se execută, eu ar putea detecta că este pornit, 1546 01:17:30,430 --> 01:17:32,127 aș putea detecta cumva că mașina se află în mișcare? 1547 01:17:32,127 --> 01:17:32,881 >> Audiența:. RPMs 1548 01:17:32,881 --> 01:17:35,190 >> DAVID MALAN: Da, deci nu există întotdeauna că ac 1549 01:17:35,190 --> 01:17:38,034 vă spune cât de multe rotații pe minut roțile se confruntă. 1550 01:17:38,034 --> 01:17:39,200 Și, așa că am putut uita la asta. 1551 01:17:39,200 --> 01:17:43,090 Și dacă nu e 0, că, probabil, înseamnă că mașina se află în mișcare. 1552 01:17:43,090 --> 01:17:45,400 Dar noi trebuie să fim un puțină atenție acolo, 1553 01:17:45,400 --> 01:17:49,780 because-- să simplifice astea-- dacă ne-am spus, în cazul în care mașina de rulare, 1554 01:17:49,780 --> 01:17:53,070 noi nu vrem să emită doar mai puțin, vrem dacă mașina rulează 1555 01:17:53,070 --> 01:17:54,310 si este in curs de testare. 1556 01:17:54,310 --> 01:17:56,320 >> Așadar, există alte câteva ingrediente care oameni 1557 01:17:56,320 --> 01:18:00,550 au emis ipoteza software-ul este de a face, deoarece lipsește codul sursă reală, 1558 01:18:00,550 --> 01:18:05,130 puteți doar un fel de deduce din Efectele fizice ale masinii la ceea ce 1559 01:18:05,130 --> 01:18:08,280 s-ar putea merge pe dedesubt capota în software-ul. 1560 01:18:08,280 --> 01:18:17,090 Așa că, dacă mașina rulează și poate, să zicem, roțile din spate nu se deplasează, 1561 01:18:17,090 --> 01:18:19,420 ar putea fi acest indicativ de un fel de test? 1562 01:18:19,420 --> 01:18:22,830 Ce sunt eu aluzie aici? 1563 01:18:22,830 --> 01:18:24,830 Da, poate, e pe unul din aceste lucruri cu role, 1564 01:18:24,830 --> 01:18:28,340 în cazul în care la fel ca roțile sunt de cotitură în partea din față sau în spate, 1565 01:18:28,340 --> 01:18:32,570 în funcție de faptul dacă este roata din față sau tracțiune spate, astfel încât jumătate din roți 1566 01:18:32,570 --> 01:18:34,420 sunt în mișcare, dar celelalte două nu sunt, care 1567 01:18:34,420 --> 01:18:36,320 este o situație ciudată în lumea reală. 1568 01:18:36,320 --> 01:18:38,110 Dacă sunteți de conducere pe rutier, care nu ar trebui să se întâmple. 1569 01:18:38,110 --> 01:18:40,568 Dar, dacă ești într-un depozit pe un fel de sistem de role, 1570 01:18:40,568 --> 01:18:41,630 care s-ar putea întâmpla, într-adevăr. 1571 01:18:41,630 --> 01:18:46,980 >> Cred ca oamenii, de asemenea, a propus ca, poate, în cazul în care autovehiculul este pornit și direcție 1572 01:18:46,980 --> 01:18:51,300 nu cu roata în mișcare, că de asemenea ar putea fi un semnal, 1573 01:18:51,300 --> 01:18:54,090 pentru că este rezonabil pentru ca o imediat pe un drum. 1574 01:18:54,090 --> 01:18:57,960 Dar chiar și atunci, omul este, probabil, se deplasează un pic sau cu siguranță 1575 01:18:57,960 --> 01:18:59,100 peste câteva secunde. 1576 01:18:59,100 --> 01:19:01,030 Sau cursul unei minut, șansele sunt nu este 1577 01:19:01,030 --> 01:19:03,510 O să fie fixată în exact aceeași poziție. 1578 01:19:03,510 --> 01:19:05,440 >> Cu alte cuvinte, noi poate lua Scădere, 1579 01:19:05,440 --> 01:19:08,200 esti testat, si rupe în jos că funcționalitatea 1580 01:19:08,200 --> 01:19:10,420 în aceste ingrediente componente. 1581 01:19:10,420 --> 01:19:13,440 Si asta este cu adevărat ceea ce Volkswagen ingineri într-un fel a făcut. 1582 01:19:13,440 --> 01:19:17,070 Ei au scris software-ul conștient detecta dacă autovehiculul este în curs de testare, 1583 01:19:17,070 --> 01:19:20,440 Prin urmare, emit mai puțin, altfel emit în mod obișnuit. 1584 01:19:20,440 --> 01:19:22,690 >> Iar problema aici, de asemenea, este că software-ul nu este 1585 01:19:22,690 --> 01:19:26,080 ceva ce se poate vedea într-adevăr, cu excepția cazului aveți așa-numitul cod sursă. 1586 01:19:26,080 --> 01:19:29,060 Așa că există două tipuri diferite de code-- cel puțin două tipuri diferite 1587 01:19:29,060 --> 01:19:30,130 de cod din lume. 1588 01:19:30,130 --> 01:19:33,150 Nu e ceva ce se numește sursă cod, care nu este, spre deosebire de ceea ce 1589 01:19:33,150 --> 01:19:37,240 ne-am scris, codul sursă. 1590 01:19:37,240 --> 01:19:40,099 >> Acesta este codul sursă scris în un limbaj numit pseudocod, 1591 01:19:40,099 --> 01:19:41,640 care este doar ceva englez-like. 1592 01:19:41,640 --> 01:19:43,140 Nu există nici o definiție formală a acestuia. 1593 01:19:43,140 --> 01:19:46,770 Dar C și Java, C ++, cele sunt toate limbile oficiale care, 1594 01:19:46,770 --> 01:19:50,610 atunci când scrie în ele, ceea ce ai este un fișier text care conține codul sursă. 1595 01:19:50,610 --> 01:19:54,850 >> Dar există și ceva în lumea numit cod mașină. 1596 01:19:54,850 --> 01:20:00,579 Și cod mașină, din păcate, este doar 0 și 1 lui. 1597 01:20:00,579 --> 01:20:02,870 Așa că cod mașină este ceea ce mașinile să înțeleagă, desigur. 1598 01:20:02,870 --> 01:20:04,470 Codul sursă este ceea ce înțelegem oamenii. 1599 01:20:04,470 --> 01:20:08,390 >> Și, în general, dar nu întotdeauna, există un program 1600 01:20:08,390 --> 01:20:14,090 că un programator folosește care ia sursa cod și se transformă în cod mașină. 1601 01:20:14,090 --> 01:20:17,400 Si acel program este în general, numit un compilator. 1602 01:20:17,400 --> 01:20:19,820 Astfel încât dvs. de intrare este codul sursă, ieșire este cod mașină, 1603 01:20:19,820 --> 01:20:22,890 iar compilatorul este o bucată de software-ul care face acest proces. 1604 01:20:22,890 --> 01:20:26,260 Așa că acest fapt harti frumos la intrările noastre, algoritmi, ieșiri. 1605 01:20:26,260 --> 01:20:30,400 >> Dar aceasta este o incarnare foarte specifică de aceea, ceea ce înseamnă că, 1606 01:20:30,400 --> 01:20:34,200 chiar dacă dețineți unul dintre Volkswagen mașini care se face vinovat de acest lucru, 1607 01:20:34,200 --> 01:20:38,390 nu e ca tine se poate deschide doar hota sau deschide manualul utilizatorului sau uita-te 1608 01:20:38,390 --> 01:20:42,690 la codul sursă, deoarece până în momentul ea ajunge la masina in fata casei, 1609 01:20:42,690 --> 01:20:45,580 au trecut deja convertit în 0 și 1 lui. 1610 01:20:45,580 --> 01:20:51,310 Și este foarte greu, nu imposibil, dar foarte greu să culeagă spice mult din nimic 1611 01:20:51,310 --> 01:20:53,710 de la doar se uită la care stau la baza 0 și 1 lui. 1612 01:20:53,710 --> 01:20:57,150 Deci, vă puteți da seama, în cele din urmă, în cazul în care ați înțeles modul în care o mașină operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- dacă înțelegi arhitectura Intel, 1614 01:20:59,870 --> 01:21:01,440 dar este foarte consumatoare de timp. 1615 01:21:01,440 --> 01:21:05,010 Și chiar acolo, s-ar putea să nu fie în măsură să vadă totul 1616 01:21:05,010 --> 01:21:08,220 că codul poate face de fapt. 1617 01:21:08,220 --> 01:21:12,521 >> Întrebări cu privire la acest lucru sau acest lucru un fel de proces mai general? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 Și, de fapt, putem lega această discuție la discuția de ieri de la Apple. 1620 01:21:18,300 --> 01:21:22,500 Acest lucru, de asemenea, este motivul pentru care FBI-ul nu se poate pur și simplu du-te si uita-te în telefonul suspectului 1621 01:21:22,500 --> 01:21:26,820 și pentru a găsi liniile de cod, pentru de exemplu, care să permită parola 1622 01:21:26,820 --> 01:21:28,940 sau activați această întârziere de 80-milisecundă. 1623 01:21:28,940 --> 01:21:31,630 Pentru că de multe ori este pe colegii iPhone, 1624 01:21:31,630 --> 01:21:34,975 au trecut deja convertit la 0 și 1 lui. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Ei bine, să oprim aici pentru nostru uita-te la gândire de calcul. 1627 01:21:40,820 --> 01:21:42,320 De ce nu luăm o pauză de 15 minute. 1628 01:21:42,320 --> 01:21:44,130 Iar când ne vom întoarce, vom să ia o privire la programare 1629 01:21:44,130 --> 01:21:46,550 în sine și de a începe să harta unele a acestor concepte de nivel înalt 1630 01:21:46,550 --> 01:21:49,780 la un real, dacă este jucaus, limbaj de programare. 1631 01:21:49,780 --> 01:21:51,089