1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID MALAN: Bentornato, tutti. 3 00:00:01,790 --> 00:00:05,030 Così ieri, si ricorderà che ci siamo concentrati su questi temi qui. 4 00:00:05,030 --> 00:00:08,380 Così abbiamo avuto quattro topics-- generale la privacy, la sicurezza, e la società; 5 00:00:08,380 --> 00:00:11,960 tecnologie internet; cloud computing; e in ultima analisi, lo sviluppo del web. 6 00:00:11,960 --> 00:00:14,170 >> Qualcuno ha la larghezza di banda o il tempo 7 00:00:14,170 --> 00:00:16,900 per guardare un po 'John Oliver ieri sera? 8 00:00:16,900 --> 00:00:20,120 In realtà è piuttosto divertente, se non un po 'paura. 9 00:00:20,120 --> 00:00:24,700 Tutte le domande su qualsiasi cosa abbiamo fatto ieri? 10 00:00:24,700 --> 00:00:27,600 Eventuali chiarimenti? 11 00:00:27,600 --> 00:00:35,580 Tutte le domande che si desidera rendere Assicurarsi tocchiamo oggi in qualche forma? 12 00:00:35,580 --> 00:00:37,300 ardesia Così pulito. 13 00:00:37,300 --> 00:00:38,760 >> Allora, qual è all'ordine del giorno di oggi? 14 00:00:38,760 --> 00:00:41,301 Così ho pensato di cominciare oggi con uno sguardo a ciò che è generalmente 15 00:00:41,301 --> 00:00:44,460 noto come thinking-- computazionale a il rischio di semplificare eccessivamente, pensando 16 00:00:44,460 --> 00:00:46,636 come un computer, forse pensare come un ingegnere, 17 00:00:46,636 --> 00:00:48,510 e cercando di iniziare a organizzare i tuoi pensieri 18 00:00:48,510 --> 00:00:52,039 o per dare un migliore senso di ciò che è coinvolto in realtà comandare 19 00:00:52,039 --> 00:00:54,080 un computer per fare qualcosa a titolo di programmazione. 20 00:00:54,080 --> 00:00:56,663 E ci terremo in una bella di alto livello, più o meno inglese, 21 00:00:56,663 --> 00:00:59,850 ma provare a utilizzare di familiare esempi per formalizzare come 22 00:00:59,850 --> 00:01:01,450 si dovrebbe fare per risolvere i problemi. 23 00:01:01,450 --> 00:01:04,080 >> E noi rivisitare alcuni CS argomenti, come astrazione, 24 00:01:04,080 --> 00:01:06,040 che è venuto un paio dei tempi di ieri, 25 00:01:06,040 --> 00:01:07,554 algoritmi e poi rappresentazione. 26 00:01:07,554 --> 00:01:09,720 Ed è qui che inizieremo oggi in un attimo. 27 00:01:09,720 --> 00:01:11,481 Poi daremo uno sguardo a programmazione. 28 00:01:11,481 --> 00:01:13,480 Daremo uno sguardo ad alcuni costrutti fondamentali 29 00:01:13,480 --> 00:01:16,450 con il quale si potrebbe avere familiarità e potrebbe anche trovare abbastanza intuitivo. 30 00:01:16,450 --> 00:01:18,370 >> Vedremo, infatti, ad una programmazione del campione 31 00:01:18,370 --> 00:01:21,244 ambiente che è molto accessibile, molto giocoso, e in effetti mirati 32 00:01:21,244 --> 00:01:22,555 a partire dai 12 anni in su. 33 00:01:22,555 --> 00:01:25,930 Passeremo qualche minuto lì e poi prendere le cose ad un livello inferiore 34 00:01:25,930 --> 00:01:30,360 ed effettivamente parlare di alcune delle gli algoritmi e strutture dati, 35 00:01:30,360 --> 00:01:32,360 per così dire, che I programmatori utilizzano in genere 36 00:01:32,360 --> 00:01:35,040 per risolvere i problemi di gran lunga più efficiente di quanto si potrebbe 37 00:01:35,040 --> 00:01:37,322 essere in grado di fare a meno del tutto. 38 00:01:37,322 --> 00:01:40,280 Poi, dopo pranzo, daremo uno sguardo a stack tecnologici, che si trova a soli 39 00:01:40,280 --> 00:01:42,240 un modo elegante per dire collezioni di tecnologie 40 00:01:42,240 --> 00:01:43,690 che si potrebbe utilizzare per risolvere alcuni problemi. 41 00:01:43,690 --> 00:01:46,670 E parleremo l'alfabeto zuppa di lingue che esistono oggi-- 42 00:01:46,670 --> 00:01:50,930 Java e Python e C ++ e PHP e Ruby e ogni sorta di altre cose. 43 00:01:50,930 --> 00:01:53,740 >> Daremo uno sguardo brevemente a modelli di progettazione. 44 00:01:53,740 --> 00:01:57,730 I programmatori, nel corso del tempo, avere metodologie adottate 45 00:01:57,730 --> 00:02:00,690 che tendono ad aiutarli risolvere i problemi più facilmente. 46 00:02:00,690 --> 00:02:04,390 Quando si inizia a vedere se stessi scrivendo lo stesso tipo di codice più e più volte, 47 00:02:04,390 --> 00:02:08,080 persone formalizzano queste ripetizioni e nomi attribuiscono a loro 48 00:02:08,080 --> 00:02:10,084 e poi li usa e promuoverli, in ultima analisi. 49 00:02:10,084 --> 00:02:12,250 E parleremo un po ' sulle strategie mobili, 50 00:02:12,250 --> 00:02:16,099 come quello che significa in realtà fare una app mobile o di un sito web mobile. 51 00:02:16,099 --> 00:02:17,140 Lo fai per Android? 52 00:02:17,140 --> 00:02:17,730 Lo fai per iOS? 53 00:02:17,730 --> 00:02:19,160 Lo fai per entrambi questi? 54 00:02:19,160 --> 00:02:20,326 E quali sono i compromessi? 55 00:02:20,326 --> 00:02:23,180 E poi finalmente, prenderemo una programmazione web look, che 56 00:02:23,180 --> 00:02:25,380 è un termine collettivo davvero descrivere qualsiasi momento 57 00:02:25,380 --> 00:02:28,410 si scrive un software che è lo scopo di eseguire sul web, 58 00:02:28,410 --> 00:02:30,430 sia su telefoni o desktop o laptop. 59 00:02:30,430 --> 00:02:33,490 Daremo un breve sguardo banche dati e il design 60 00:02:33,490 --> 00:02:39,049 in esso, se non altro perché quasi tutte le interessante applicazione web-based 61 00:02:39,049 --> 00:02:40,590 in questi giorni ha un qualche tipo di database. 62 00:02:40,590 --> 00:02:42,380 Altrimenti, sarebbe basta essere contenuto statico. 63 00:02:42,380 --> 00:02:45,254 E un database permette di fare i cambiamenti nel corso del tempo, sia da soli 64 00:02:45,254 --> 00:02:45,960 o da parte degli utenti. 65 00:02:45,960 --> 00:02:47,820 E noi considereremo come sarebbe andato sulla progettazione 66 00:02:47,820 --> 00:02:50,510 che database e il tipo di gergo che potrebbe venire a un ingegnere di 67 00:02:50,510 --> 00:02:52,790 discussione in una scheda bianca quando in realtà attuazione 68 00:02:52,790 --> 00:02:53,900 un app per la prima volta. 69 00:02:53,900 --> 00:02:57,002 >> Parleremo brevemente API, servizi utili 70 00:02:57,002 --> 00:02:59,960 che è possibile utilizzare per stare sul spalle degli altri, se le aziende 71 00:02:59,960 --> 00:03:02,619 o individui, e risolvere il problemi più rapidamente. 72 00:03:02,619 --> 00:03:04,785 E poi ci dilettarsi forse un po 'con JavaScript, 73 00:03:04,785 --> 00:03:08,900 un linguaggio di programmazione che viene utilizzato entrambi nei browser in questi giorni, ma anche 74 00:03:08,900 --> 00:03:09,820 nei server. 75 00:03:09,820 --> 00:03:11,890 E forse, faremo rivisitare, tempo permettendo, 76 00:03:11,890 --> 00:03:15,670 alcuni degli hands-on roba web siamo ha fatto ieri e integrare i due 77 00:03:15,670 --> 00:03:17,630 insieme prima di aggiornare. 78 00:03:17,630 --> 00:03:22,380 >> Quindi, con che-- ciò che è ahead-- è Manca qualcosa che si 79 00:03:22,380 --> 00:03:26,289 vorrebbe assicurarsi che inseriamo e toccare ad un certo punto. 80 00:03:26,289 --> 00:03:28,330 Se è in mente, tirarlo su in poco tempo. 81 00:03:28,330 --> 00:03:32,010 Ma perché non si comincia con un guarda pensiero computazionale. 82 00:03:32,010 --> 00:03:35,420 >> E lasciate che propongo pensiero computazionale è, ancora, 83 00:03:35,420 --> 00:03:38,830 sorta di descrizione ad alto livello di quello che uno scienziato informatico potrebbe fare. 84 00:03:38,830 --> 00:03:42,470 E in effetti, cominciamo con tre ingredienti che 85 00:03:42,470 --> 00:03:44,207 potrebbe andare in pensiero computazionale. 86 00:03:44,207 --> 00:03:45,790 Questo è solo un modo di descriverlo. 87 00:03:45,790 --> 00:03:48,490 Potremmo certamente definire questo in qualsiasi numero di modi. 88 00:03:48,490 --> 00:03:50,630 >> Ma lasciate che propongo, per il gusto di oggi, 89 00:03:50,630 --> 00:03:53,910 che i problemi del mondo, tutti i problemi del mondo, 90 00:03:53,910 --> 00:03:56,730 quando viene avvicinato da un informatico potrebbe 91 00:03:56,730 --> 00:04:00,990 essere visto come quello che faremo ingressi di chiamata, che 92 00:04:00,990 --> 00:04:08,142 È necessario prendere alimentato in ciò che chiameremo algoritmi, che poi producono uscite. 93 00:04:08,142 --> 00:04:10,600 In altre parole, l'intero mondo della domanda di problem-solving I 94 00:04:10,600 --> 00:04:13,140 può essere distillata in questi tre ingredienti. 95 00:04:13,140 --> 00:04:14,450 Allora, cosa voglio dire con ingressi? 96 00:04:14,450 --> 00:04:17,060 Ingressi è proprio quello che sei consegnato al fine di risolvere. 97 00:04:17,060 --> 00:04:20,052 >> Per esempio, ecco un vecchio problema della scuola. 98 00:04:20,052 --> 00:04:22,760 Se ho una rubrica telefonica e qui Voglio guardare qualcosa in esso, 99 00:04:22,760 --> 00:04:23,760 questo è il mio ingresso. 100 00:04:23,760 --> 00:04:26,260 Ho 1.000 o giù di lì pagine di un libro di telefono. 101 00:04:26,260 --> 00:04:27,780 Questo è l'ingresso al mio problema. 102 00:04:27,780 --> 00:04:31,507 E voglio trovare qualcosa come Mike Smith, così un amico 103 00:04:31,507 --> 00:04:33,840 il cui nome e il numero è speriamo che a questa rubrica. 104 00:04:33,840 --> 00:04:36,430 >> Questo è prima dei giorni di cella telefoni, quindi non posso solo cercare. 105 00:04:36,430 --> 00:04:38,540 Quindi devo farlo vecchio scuola e realtà di ricerca 106 00:04:38,540 --> 00:04:41,331 questi ingressi per qualche risposta. 107 00:04:41,331 --> 00:04:43,580 E la risposta è solo andare di essere chiamato all'uscita. 108 00:04:43,580 --> 00:04:44,871 Quindi l'ingresso è la rubrica telefonica. 109 00:04:44,871 --> 00:04:47,787 L'algoritmo è qualunque insieme di passi che utilizzano per trovare Mike Smith. 110 00:04:47,787 --> 00:04:50,120 E l'uscita è, si spera, il numero di telefono di Mike Smith. 111 00:04:50,120 --> 00:04:52,703 E questo allora sarebbe giusto rappresentante della maggior parte qualsiasi problema 112 00:04:52,703 --> 00:04:55,210 a con sei ingressi handed e vogliono produrre risultati. 113 00:04:55,210 --> 00:04:59,459 >> Quindi, prima consideriamo il processo con la quale siamo in grado di risolvere il problema, 114 00:04:59,459 --> 00:05:01,250 trovando Mike Smith e qualcosa del genere, 115 00:05:01,250 --> 00:05:04,090 Consideriamo il primo e gli ingressi e le uscite last--. 116 00:05:04,090 --> 00:05:08,060 Fisicamente, naturalmente, l'ingresso qui è un sacco di carta incollati insieme 117 00:05:08,060 --> 00:05:09,400 nella forma di un elenco telefonico. 118 00:05:09,400 --> 00:05:13,660 Ma i computer, dei computer portatili naturalmente-- e desktop e persino telefoni 119 00:05:13,660 --> 00:05:16,430 questi days-- quelli sono dispositivi elettronici. 120 00:05:16,430 --> 00:05:20,920 >> E alla fine della giornata, ciò che è l'unico input a un computer? 121 00:05:20,920 --> 00:05:23,299 Beh, è ​​qualcosa di simile questo cavo di alimentazione. 122 00:05:23,299 --> 00:05:25,590 L'ho presa nel muro, e Ho un flusso di elettroni, 123 00:05:25,590 --> 00:05:27,048 che mi permette di far funzionare la macchina. 124 00:05:27,048 --> 00:05:30,420 O forse questi elettroni sono creato mediante mia batteria. 125 00:05:30,420 --> 00:05:33,790 Ma alla fine della giornata, che è l'unica cosa che va nel mio computer portatile. 126 00:05:33,790 --> 00:05:35,772 E molto interessante roba è in ultima analisi, 127 00:05:35,772 --> 00:05:37,480 coming out, se a titolo di stampante 128 00:05:37,480 --> 00:05:40,320 o lo schermo o audially o simili. 129 00:05:40,320 --> 00:05:45,320 >> Quindi, se tutto quello che abbiamo come il nostro input fondamentale per un computer 130 00:05:45,320 --> 00:05:49,160 è l'elettricità, quindi basta elettroni in entrata e in avanti o indietro, 131 00:05:49,160 --> 00:05:54,465 e così come possiamo usare tale ingresso di rappresentare realmente le informazioni? 132 00:05:54,465 --> 00:05:57,090 In altre parole, come si arriva da un semplice flusso di elettricità 133 00:05:57,090 --> 00:06:00,350 a rappresentare attuale numeri o lettere effettive 134 00:06:00,350 --> 00:06:03,620 o immagini reali sullo schermo o film attuali o e-mail 135 00:06:03,620 --> 00:06:05,690 o qualsiasi numero di questi concetti di livello superiore, 136 00:06:05,690 --> 00:06:07,680 se si vuole, che al fine della giornata qualche modo 137 00:06:07,680 --> 00:06:11,950 devono essere memorizzati in questa dispositivo meccanico elettronico 138 00:06:11,950 --> 00:06:16,260 utilizzando solo quelli semplice ingredients-- elettroni che entrano ed escono? 139 00:06:16,260 --> 00:06:19,530 >> Quindi sembrerebbe che, nella forma più semplice, 140 00:06:19,530 --> 00:06:23,260 l'unico tipo di stati Ho nel mio mondo, in modo da 141 00:06:23,260 --> 00:06:25,350 a speak-- condizioni nel mio world-- è o 142 00:06:25,350 --> 00:06:33,020 Ho elettroni che scorre, l'elettricità che scorre, o lo faccio non-- così via, via. 143 00:06:33,020 --> 00:06:35,850 E cerchiamo di formalizzare on e off, come un informatico potrebbe, 144 00:06:35,850 --> 00:06:37,255 con solo 1 e 0. 145 00:06:37,255 --> 00:06:39,880 Diciamo solo descrivere alcuni arbitrario ma il numero consistente di esso. 146 00:06:39,880 --> 00:06:41,970 1 significa acceso, 0 significa off. 147 00:06:41,970 --> 00:06:45,427 Oppure si potrebbe anche vedere questa come vero mezzo su e falsi mezzi. 148 00:06:45,427 --> 00:06:47,510 Si potrebbe anche fare il nero e bianco o rosso e blu. 149 00:06:47,510 --> 00:06:48,759 Hai solo bisogno di due descrittori. 150 00:06:48,759 --> 00:06:52,240 E un computer scienziati sarebbe in genere basta usare 0 e 1. 151 00:06:52,240 --> 00:06:58,980 >> Quindi, se questo è il caso, il mio unico alfabeto è composto di 0 e 1 di, come 152 00:06:58,980 --> 00:07:03,360 potrei arrivare a pareggiare il numero 2 in un computer, per non parlare del numero 3 153 00:07:03,360 --> 00:07:06,140 o una lettera dell'alfabeto o un'immagine o un filmato? 154 00:07:06,140 --> 00:07:08,910 Come possiamo sorta di bootstrap noi stessi da questo principio di base 155 00:07:08,910 --> 00:07:12,080 di 0 e 1 e realtà rappresentare qualcosa di più interessante? 156 00:07:12,080 --> 00:07:14,430 >> Bene, mettiamo a questa domanda in attesa per un attimo 157 00:07:14,430 --> 00:07:17,520 e prendere in considerazione qualcosa si spera familiare, 158 00:07:17,520 --> 00:07:21,150 anche se non avete mai pensato in alcun dettaglio per 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 più anni. 160 00:07:22,520 --> 00:07:24,780 Questo è ciò? 161 00:07:24,780 --> 00:07:28,050 Come si pronuncia questo? 162 00:07:28,050 --> 00:07:30,770 Non una domanda trabocchetto. 163 00:07:30,770 --> 00:07:32,950 Un numero, ma di cosa si tratta? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, o 123. 165 00:07:34,842 --> 00:07:37,800 E mi è piaciuto come hai detto 1, 2, 3, perché questo è un modo di visualizzazione. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, si tratta di una sequenza di di tre simboli. 167 00:07:39,870 --> 00:07:42,005 E 'immagini che abbiamo ora hanno parole per. 168 00:07:42,005 --> 00:07:44,880 E se si ordina di leggerli tutti insieme, un tipico umano in inglese 169 00:07:44,880 --> 00:07:46,600 direbbe 123. 170 00:07:46,600 --> 00:07:48,350 E questo è una sorta di concetto di livello superiore, 171 00:07:48,350 --> 00:07:50,340 si sente come una abbastanza grande numero. 172 00:07:50,340 --> 00:07:51,490 >> Ma come ci arriviamo? 173 00:07:51,490 --> 00:07:54,640 Beh, potrebbe essere un po 'che hai pensato in questo modo, 174 00:07:54,640 --> 00:07:56,680 ma ai miei tempi, ho tipo di imparato 175 00:07:56,680 --> 00:08:01,030 come colonna del 1, i 10 di colonna e colonna 100 del. 176 00:08:01,030 --> 00:08:06,400 Così come dice Lakisa, è 1, 2, 3, ma è anche 123. 177 00:08:06,400 --> 00:08:08,700 Ma come si arriva da la prima alla seconda? 178 00:08:08,700 --> 00:08:12,340 >> Beh, si dovrebbe in genere fare colonna 100 del, ho un 1. 179 00:08:12,340 --> 00:08:14,794 Ecco, questo è come dire 100 volte 1. 180 00:08:14,794 --> 00:08:16,210 E poi nella colonna 10 di, ho 2. 181 00:08:16,210 --> 00:08:18,464 Ecco, questo è come dire 10 volte 2. 182 00:08:18,464 --> 00:08:19,630 Nella colonna 1 del, ho 3. 183 00:08:19,630 --> 00:08:21,720 Ecco, questo è come dire 1 volte 3. 184 00:08:21,720 --> 00:08:24,290 >> E se aggiungo queste cose insieme, questo, naturalmente, 185 00:08:24,290 --> 00:08:27,470 è 100 più il 10 più 3. 186 00:08:27,470 --> 00:08:31,750 E, oh, ecco perché ottengo questo più alto livello nozione di 123. 187 00:08:31,750 --> 00:08:37,220 E 'solo la matematica di base, per cui questi simboli hanno pesi per loro, se si 188 00:08:37,220 --> 00:08:39,620 sarà, segnaposto o valori di colonna. 189 00:08:39,620 --> 00:08:42,090 E una volta moltiplico tutto fuori, ottengo questo numero. 190 00:08:42,090 --> 00:08:47,840 >> Così come molti di voi sanno come parlare binary-- 0 e 1's-- come un computer? 191 00:08:47,840 --> 00:08:50,410 OK, perfetto, nessuno, o nessuno di voi pensa che fate. 192 00:08:50,410 --> 00:08:52,550 Ma vorrei affermare te in realtà lo sanno già. 193 00:08:52,550 --> 00:08:55,330 Abbiamo solo bisogno di una sorta di modificare il nostro modello mentale un po '. 194 00:08:55,330 --> 00:08:57,250 Ma il processo è esattamente lo stesso. 195 00:08:57,250 --> 00:09:01,460 >> Mi permetta di lasciare questo uno lì e invece tirare giù questo per un momento. 196 00:09:01,460 --> 00:09:05,060 Nel mondo dei computer, abbiamo solo 0 e 1.. 197 00:09:05,060 --> 00:09:07,240 E così la cosa che è cambierà è che cosa? 198 00:09:07,240 --> 00:09:10,920 Ebbene, nel mio mondo umano, il sistema decimale, diminuire significato 10, 199 00:09:10,920 --> 00:09:12,740 Ho il numero di cifre a mia disposizione? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, giusto? 202 00:09:16,540 --> 00:09:17,880 Da 0 a 9, naturalmente. 203 00:09:17,880 --> 00:09:21,210 >> Ed è per questo abbiamo la posto 10 del luogo e la 100 del. 204 00:09:21,210 --> 00:09:22,380 Dove è che viene? 205 00:09:22,380 --> 00:09:24,430 Ebbene, questo è 10 alla potenza di 0. 206 00:09:24,430 --> 00:09:28,440 Questo è 10 alla potenza di 1, 10 alla potenza di 2, e così via. 207 00:09:28,440 --> 00:09:32,110 Basta tenere moltiplicando le colonne da 10, partendo con solo 1 208 00:09:32,110 --> 00:09:33,700 in quello più a destra qui. 209 00:09:33,700 --> 00:09:35,490 >> Così nel mondo computer, se solo 210 00:09:35,490 --> 00:09:39,600 hanno significato bi binary-- 2-- o 0 e 1., abbiamo appena 211 00:09:39,600 --> 00:09:42,420 davvero bisogno di cambiare la base di tale matematica. 212 00:09:42,420 --> 00:09:46,410 Quindi, in altre parole, ora ci limiteremo a hanno colonna 1 e il-- 213 00:09:46,410 --> 00:09:51,270 dove è questo going-- colonna del 2, colonna del 4, e forse oltre. 214 00:09:51,270 --> 00:09:52,250 Perché? 215 00:09:52,250 --> 00:09:55,650 Ebbene, questo è il potere 2 0-esimo. 216 00:09:55,650 --> 00:09:57,270 Questo è il 2 1. 217 00:09:57,270 --> 00:09:59,610 Questo è 2 a 2, e così via. 218 00:09:59,610 --> 00:10:04,910 >> Così mentre qui, abbiamo 1, 10 di, 100 del 1000, di 10.000, di, 100.000 di, 1 219 00:10:04,910 --> 00:10:10,560 milioni di persone, e così via, qui abbiamo 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Basta tenere moltiplicando per 2, invece di continuare a moltiplicare per 10. 221 00:10:13,950 --> 00:10:16,780 Così ora, se l'obiettivo a mano è quello di rappresentare 222 00:10:16,780 --> 00:10:20,240 numeri utilizzando solo 0 e 1 di, prendiamo in considerazione come ci arriviamo. 223 00:10:20,240 --> 00:10:26,540 >> Questo, naturalmente, è il modello 0 0 0, ma che numero concettualmente 224 00:10:26,540 --> 00:10:27,490 cosa rappresenta? 225 00:10:27,490 --> 00:10:35,430 Ebbene, 4 volte 0 e 2 volte 0 più 1 volte 0, aggiungiamo quelli insieme. 226 00:10:35,430 --> 00:10:40,030 4 volte 0 è, naturalmente, 0, più 2 volte 0 è, naturalmente, 0 più 1 volte 0 227 00:10:40,030 --> 00:10:40,850 è, naturalmente, 0. 228 00:10:40,850 --> 00:10:44,910 Così ah, questo rappresenta il Numero noi esseri umani sanno come 0. 229 00:10:44,910 --> 00:10:47,810 >> Bene, ora, facciamo molto avanti rapidamente veloce. 230 00:10:47,810 --> 00:10:53,600 Se non sto invece che rappresenta 0 0 0, ma facciamolo 1 0 1, 231 00:10:53,600 --> 00:10:57,010 che potrebbe essere come Lakisa, in precedenza, sarebbe solo pronunciarlo 1 0 1. 232 00:10:57,010 --> 00:11:01,020 Ma ora, come possiamo prendere al più alto livellare il numero di noi esseri umani potrebbero sapere? 233 00:11:01,020 --> 00:11:04,220 Allora, qual è questo numero? 234 00:11:04,220 --> 00:11:06,060 E '5, il numero che conosciamo come 5. 235 00:11:06,060 --> 00:11:06,870 >> Bene, perché? 236 00:11:06,870 --> 00:11:09,620 Beh, possiamo davvero una sorta di camminare attraverso di essa metodicamente 237 00:11:09,620 --> 00:11:14,880 4 volte 1, 2 volte 0, 1 volte 1. 238 00:11:14,880 --> 00:11:19,880 Aggiungere quelli insieme, in modo questo è 4 più 0 + 1. 239 00:11:19,880 --> 00:11:21,577 E questo è, in effetti, 5. 240 00:11:21,577 --> 00:11:24,660 Così si sta facendo un po 'noioso ora facendo ripetutamente l'aritmetica. 241 00:11:24,660 --> 00:11:26,300 Ma il processo è esattamente lo stesso. 242 00:11:26,300 --> 00:11:28,380 >> L'unica cosa che ha cambiato nel nostro mondo 243 00:11:28,380 --> 00:11:32,740 è che i nostri colonne sono 1, 2, 4, 8, 16, e così via, invece di 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1.000. 245 00:11:33,740 --> 00:11:40,000 E questo è solo perché il nostro alfabeto ha ridotto da 0 a 9 per solo 0-1. 246 00:11:40,000 --> 00:11:50,851 >> Così come un piccolo quiz qui, come direbbe rappresentate il numero 7 in binario? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Ebbene, 0, vuoi dire 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Dillo ancora, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfetto. 253 00:12:03,550 --> 00:12:04,370 Perché? 254 00:12:04,370 --> 00:12:08,530 E 'effettivamente 4 più 2 più 1. 255 00:12:08,530 --> 00:12:09,580 Così buono. 256 00:12:09,580 --> 00:12:14,364 >> Come si fa a rappresentare un po ' another-- come circa il numero 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Chiudere, ma all'indietro. 259 00:12:20,690 --> 00:12:21,660 Così che cosa è questo? 260 00:12:21,660 --> 00:12:26,290 È 4 più 1, in modo che è 5 di nuovo. 261 00:12:26,290 --> 00:12:28,310 >> Così what's-- Mi dispiace, 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 2 sarebbe, perché ancora una volta, anche se una sorta di non salta fuori di te, 264 00:12:34,762 --> 00:12:35,470 basta fare la matematica. 265 00:12:35,470 --> 00:12:40,390 4 volte 0, 0, 2 volte 1 è 2, 1 volte 0 è 0. 266 00:12:40,390 --> 00:12:42,830 Quindi questo è il numero che conosciamo come 2. 267 00:12:42,830 --> 00:12:44,030 >> Come circa il numero 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 Buona. 271 00:12:53,330 --> 00:12:56,130 Quindi abbiamo bisogno di un altro tipo di segnaposto. 272 00:12:56,130 --> 00:12:59,570 Abbiamo bisogno di 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 E questo è vero per la nostra specie del sistema scolastico decimali vecchi. 274 00:13:02,280 --> 00:13:05,280 Come si fa a rappresentare il numero 1000? 275 00:13:05,280 --> 00:13:08,480 >> Beh, sembrerebbe essere specie di in una posizione difficile, 276 00:13:08,480 --> 00:13:10,390 Se si chiede di rappresentare il numero 1000, 277 00:13:10,390 --> 00:13:14,960 perché anche se ti danno come 9 di questi, 9 di questi, 0 di questi, 278 00:13:14,960 --> 00:13:18,730 che è il più grande numero che si hanno, non hai abbastanza arrivare a 1.000. 279 00:13:18,730 --> 00:13:26,920 Quindi, se si 1.000, basta un'altra posizione, in modo che si può fare 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo il numero di 1.000. 281 00:13:29,460 --> 00:13:34,200 >> Così ora, cerchiamo di questa sorta di mappa discussione concettuale torna a hardware, 282 00:13:34,200 --> 00:13:37,470 dove ancora una volta, l'ingresso era solo questo piccolo cavo di alimentazione, energia elettrica 283 00:13:37,470 --> 00:13:39,300 entrando ed uscendo. 284 00:13:39,300 --> 00:13:44,740 E quindi per questo di essere mappati da qui a lì, beh, che cosa abbiamo veramente bisogno? 285 00:13:44,740 --> 00:13:49,460 Ebbene, si può pensare di essere all'interno di un computer, un sacco di lampadine, 286 00:13:49,460 --> 00:13:50,450 se vorrai. 287 00:13:50,450 --> 00:13:52,040 Sono davvero chiamati transistor. 288 00:13:52,040 --> 00:13:55,121 E transistor sono solo interruttori che può essere sia acceso o spento. 289 00:13:55,121 --> 00:13:56,870 Così si può pensare ad un transistor che è su 290 00:13:56,870 --> 00:14:00,730 sta permettendo di energia elettrica di fluire e un transistor che è fuori come l'arresto 291 00:14:00,730 --> 00:14:02,170 di energia elettrica di fluire. 292 00:14:02,170 --> 00:14:04,130 E piuttosto che prendere sopra le luci qui, 293 00:14:04,130 --> 00:14:06,450 Perché non faccio questo tipo di nuovo stile della scuola. 294 00:14:06,450 --> 00:14:11,360 Quindi questo potrebbe essere un 1, una torcia elettrica essendo in poi, solo a mala pena però. 295 00:14:11,360 --> 00:14:14,050 E questo potrebbe essere un 0, e ora è fuori. 296 00:14:14,050 --> 00:14:18,277 >> Quindi, utilizzando questo dispositivo fisico, ho ora può rappresentare il sistema binario. 297 00:14:18,277 --> 00:14:19,235 Ho solo bisogno di due stati. 298 00:14:19,235 --> 00:14:21,660 Non importa ciò che colore è o quello che è. 299 00:14:21,660 --> 00:14:25,920 Tutto ciò che conta è che non ho uno stato in un altro stato e fuori. 300 00:14:25,920 --> 00:14:30,605 Quindi, utilizzando il mio telefono qui, come faccio rappresentare il numero che conosciamo come 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 O mettere equivalentemente, cosa numero sto rappresentando ora? 303 00:14:38,550 --> 00:14:39,810 0, in quanto il dispositivo è spento. 304 00:14:39,810 --> 00:14:41,560 >> E se faccio questo? 305 00:14:41,560 --> 00:14:43,583 E ora, come faccio rappresentare il numero 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Posso prendere in prestito il telefono qui, come abbiamo fatto ieri? 308 00:14:50,930 --> 00:14:58,490 Vediamo, quindi se voglio rappresentare il numero 2, è questo il numero 2? 309 00:14:58,490 --> 00:14:59,050 No. 310 00:14:59,050 --> 00:15:02,250 Che numero sono io accidentalmente che rappresenta qui? 311 00:15:02,250 --> 00:15:03,550 Questo è in realtà il numero 3. 312 00:15:03,550 --> 00:15:05,008 >> Così che uno voglio spegnere? 313 00:15:05,008 --> 00:15:09,634 Il telefono nero or-- bene, se they're-- telefono nero o il telefono bianco? 314 00:15:09,634 --> 00:15:10,300 Il telefono bianco. 315 00:15:10,300 --> 00:15:17,020 Quindi, se mi rivolgo questa via e noi la linea in su qui, abbiamo un 1 316 00:15:17,020 --> 00:15:19,487 al posto del 2 e di un 0 al posto del 1 del. 317 00:15:19,487 --> 00:15:21,195 E quindi sono ora che rappresenta il numero 2. 318 00:15:21,195 --> 00:15:24,680 E questo, naturalmente, sarebbe il numero 3, perché ora entrambe queste luci 319 00:15:24,680 --> 00:15:25,350 sono su. 320 00:15:25,350 --> 00:15:27,480 >> E mi fermo qui, ma è ovvio 321 00:15:27,480 --> 00:15:31,100 se voglio rappresentare il il numero 4 o 8 o superiore, 322 00:15:31,100 --> 00:15:32,529 Ho intenzione di avere bisogno di altri telefoni. 323 00:15:32,529 --> 00:15:33,820 Ma questo è tutto quello che sta succedendo. 324 00:15:33,820 --> 00:15:37,800 Quindi, se avete mai sentito dire che all'interno di a-- grazie calcolatore you-- 325 00:15:37,800 --> 00:15:42,269 è milioni di transistor, questo è solo milioni di minuscoli interruttori. 326 00:15:42,269 --> 00:15:44,310 E non sono la luce lampadine che si accendono e spengono, 327 00:15:44,310 --> 00:15:48,340 ma essi permettere l'installazione di energia elettrica a scorrere da qualche parte o fermarlo. 328 00:15:48,340 --> 00:15:52,140 E così non c'è la vostra due states-- acceso o spento, acceso o spento. 329 00:15:52,140 --> 00:15:55,730 >> Così avremmo sembra ora di avere questa capacità 330 00:15:55,730 --> 00:16:00,590 per rappresentare questo concetto che vorremmo in hardware vero e proprio. 331 00:16:00,590 --> 00:16:05,520 Ma tutto quello che abbiamo ora è la capacità per rappresentare i numeri sembrerebbe. 332 00:16:05,520 --> 00:16:08,580 Quindi, come facciamo a rappresentare lettere dell'alfabeto, che 333 00:16:08,580 --> 00:16:12,310 si sente come il prossimo tipo di funzione che si vorrebbe aggiungere a un computer moderno 334 00:16:12,310 --> 00:16:14,280 una volta che hai i numeri? 335 00:16:14,280 --> 00:16:16,930 >> E in effetti, se ci pensate IT, storicamente, computer 336 00:16:16,930 --> 00:16:19,426 sono stati introdotti davvero servire calcolatrici numericamente. 337 00:16:19,426 --> 00:16:21,300 Ma naturalmente, questi giorni, fanno molto di più. 338 00:16:21,300 --> 00:16:23,799 Anche quando l'avvio, si tipicamente vedere una o più parole. 339 00:16:23,799 --> 00:16:27,420 Quindi, come si fa a rappresentare parole, Se tutto quello che hai è, ancora una volta, 340 00:16:27,420 --> 00:16:31,054 elettricità a fine giorno, o equivalentemente 0 e di 1? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Sì. 343 00:16:35,690 --> 00:16:38,320 Si, voglio dire, che tipo di fatto ieri in qualche forma, 344 00:16:38,320 --> 00:16:40,200 dove ad un certo punto, Credo di aver arbitrariamente 345 00:16:40,200 --> 00:16:46,741 Detto questo, se vogliamo rappresentare la lettera A, potremmo chiamare che un 1. 346 00:16:46,741 --> 00:16:49,990 Era nel contesto della crittografia, dove abbiamo solo bisogno di un qualche tipo di codice, 347 00:16:49,990 --> 00:16:51,160 una sorta di mappatura. 348 00:16:51,160 --> 00:16:56,680 >> Quindi forse A sarà rappresentato come un 1, e B sarà rappresentato come un 2, 349 00:16:56,680 --> 00:17:01,560 e Z sarà rappresentata come 26, per esempio. 350 00:17:01,560 --> 00:17:07,430 E poi l'unica avvertenza è che se io sono andare per codificare le lettere nella mia e-mail 351 00:17:07,430 --> 00:17:10,430 o nei miei messaggi di testo come numeri, tutti voi 352 00:17:10,430 --> 00:17:12,640 devono accettare di utilizzare il stesso insieme di convenzioni. 353 00:17:12,640 --> 00:17:14,619 E in effetti, il mondo ha fatto esattamente questo. 354 00:17:14,619 --> 00:17:18,040 >> C'è un sistema nel mondo chiamato ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Codice per scambio di informazioni, che è semplicemente una decisione alcuni anni 356 00:17:21,640 --> 00:17:25,720 fa, che gli esseri umani fatti che ha deciso che A sta per eguagliare, non 357 00:17:25,720 --> 00:17:32,260 1, 2, e 26, e così è un forth-- poco different-- ma 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 E io ti tiro su un grafico in un attimo. 359 00:17:34,010 --> 00:17:34,580 Ma è arbitrario. 360 00:17:34,580 --> 00:17:36,329 Ma non importa che è arbitraria. 361 00:17:36,329 --> 00:17:38,620 Il mondo deve essere solo coerenti. 362 00:17:38,620 --> 00:17:40,540 >> Ora, più recentemente, c'è qualcosa di più elaborato 363 00:17:40,540 --> 00:17:45,430 chiamato Unicode, in quanto genere al mondo di resi conto, dopo aver inventato i computer, 364 00:17:45,430 --> 00:17:50,977 che non c'è più che bene 256 simboli nel mondo 365 00:17:50,977 --> 00:17:53,560 che si potrebbe desiderare di rappresentare, soprattutto quando si introducono 366 00:17:53,560 --> 00:17:58,420 lingue asiatiche ed altre simbologie che hanno bisogno di più di quanto si espressività 367 00:17:58,420 --> 00:18:02,150 può andare bene nella prima versione di questo codice, che è stato chiamato ASCII. 368 00:18:02,150 --> 00:18:05,250 Così Unicode permette in realtà di utilizzare più di 0 e 2. 369 00:18:05,250 --> 00:18:08,830 In particolare, si continua a sentire il byte di parola nella società e anche solo 370 00:18:08,830 --> 00:18:09,400 ieri. 371 00:18:09,400 --> 00:18:12,040 E un byte è cosa di nuovo? 372 00:18:12,040 --> 00:18:14,840 >> Che cosa è un byte? 373 00:18:14,840 --> 00:18:15,700 E 'solo 8 bit. 374 00:18:15,700 --> 00:18:17,150 Così che cosa significa in realtà? 375 00:18:17,150 --> 00:18:22,400 Bene, questo significa che, in precedenza, quando eravamo parlando di binario e usavo 376 00:18:22,400 --> 00:18:28,010 arbitrariamente tre bit quando eravamo parlando binary-- posto del 1 del, 377 00:18:28,010 --> 00:18:33,600 luogo il 2 del, e il 4 del pozzo posto--, un byte significa solo che si sta parlando 378 00:18:33,600 --> 00:18:38,730 Non in unità di tre ma quattro, cinque, sei, sette otto, 379 00:18:38,730 --> 00:18:46,910 che ci dà luogo 8 di, 16 di 32, di 64, di, e 128 di. 380 00:18:46,910 --> 00:18:50,010 >> In altre parole, un bit non è tutto che utile un'unità di misura, 381 00:18:50,010 --> 00:18:53,132 perché è proprio come un piccolo piccolo pezzo di informazione, acceso o spento. 382 00:18:53,132 --> 00:18:54,840 Così qualche anno fa, il mondo appena deciso 383 00:18:54,840 --> 00:18:59,060 è leggermente più conveniente per parlare in termini di byte, otto cose alla volta. 384 00:18:59,060 --> 00:19:01,670 E così così è nato il concetto di un byte. 385 00:19:01,670 --> 00:19:03,640 E così abbiamo otto bit qui. 386 00:19:03,640 --> 00:19:06,810 >> E si scopre, anche, per simile motivi, il mondo ha deciso anni 387 00:19:06,810 --> 00:19:12,439 fa che rappresentare una lettera ASCII, si sta andando ad utilizzare le unità di 8 bit. 388 00:19:12,439 --> 00:19:14,230 Quindi, anche se non lo fai bisogno che molti, sei 389 00:19:14,230 --> 00:19:18,130 sempre intenzione di utilizzare 8 bit per rappresentano una lettera dell'alfabeto. 390 00:19:18,130 --> 00:19:20,950 E questo è conveniente, perché poi se si 391 00:19:20,950 --> 00:19:28,720 ricevere un messaggio che ha un 0 0 0 1 1 1 1 0 seguito da un altro 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, quindi se si riceve 16 bit, il mondo può solo 393 00:19:33,320 --> 00:19:37,460 supporre che il primo 8 sono una lettera e il secondo 8 sono un'altra lettera. 394 00:19:37,460 --> 00:19:39,240 >> Non importa quanti ce ne sono. 395 00:19:39,240 --> 00:19:41,460 E 'solo che conta siamo tutti coerenti 396 00:19:41,460 --> 00:19:42,950 quando stiamo interpretando questi bit. 397 00:19:42,950 --> 00:19:44,377 E questo era solo casuale. 398 00:19:44,377 --> 00:19:47,210 Questo significa qualcosa, ma non lo feci davvero pensare a cosa significa. 399 00:19:47,210 --> 00:19:49,620 >> Quindi è una piccola bugia bianca. 400 00:19:49,620 --> 00:19:51,990 In origine, ASCII effettivamente utilizzato solo 7 bit. 401 00:19:51,990 --> 00:19:54,180 E l'ottavo bit è chiamato ASCII esteso. 402 00:19:54,180 --> 00:19:56,290 Ma il punto è, in ultima analisi, la stessa. 403 00:19:56,290 --> 00:19:58,850 Il mondo in generale standardizzato su 8 bit. 404 00:19:58,850 --> 00:20:04,290 >> Quindi questo sembra essere un po ' limitante, perché solo io posso 405 00:20:04,290 --> 00:20:07,970 rappresentare maiuscola, capitale B a Z. capitale 406 00:20:07,970 --> 00:20:10,940 Ma in effetti non è, se vado a-- c'è un po 'di risorse 407 00:20:10,940 --> 00:20:13,695 in linea, per esempio, asciitable.com, questo 408 00:20:13,695 --> 00:20:16,310 sta per essere un po ' opprimente in un primo momento. 409 00:20:16,310 --> 00:20:18,910 Ma io segnalo ciò che è importante qui. 410 00:20:18,910 --> 00:20:24,090 >> Questo succede solo a essere-- e io walk-- vediamo, se vado qui. 411 00:20:24,090 --> 00:20:27,990 Ecco, in decimale colonna, il numero 65. 412 00:20:27,990 --> 00:20:32,201 E sulla lettera colonna di destra carattere, Chr, è la lettera A. 413 00:20:32,201 --> 00:20:34,450 E si può ignorare, per ora, tutto nel mezzo. 414 00:20:34,450 --> 00:20:36,769 Questo è esadecimale, ottale, e un codice HTML. 415 00:20:36,769 --> 00:20:39,810 Per questo sito è solo cercando di gettare un sacco di informazioni su di te in una sola volta. 416 00:20:39,810 --> 00:20:42,970 Ma tutto ciò che interessa è il decimale colonna e la colonna di caratteri. 417 00:20:42,970 --> 00:20:46,190 >> Quindi, questa logica, ciò che è il numero che il mondo 418 00:20:46,190 --> 00:20:50,510 ha deciso rappresenta un minuscolo una? 419 00:20:50,510 --> 00:20:52,230 Sì, 97. 420 00:20:52,230 --> 00:20:55,850 E proprio per confondere potenzialmente un po ', 421 00:20:55,850 --> 00:21:03,715 che numero ha il mondo ha deciso rappresenterebbe il numero 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 A destra, perché we-- 49, a quanto pare qui, giù in basso a sinistra. 424 00:21:10,910 --> 00:21:12,320 >> Ora, quello che voglio dire con questo? 425 00:21:12,320 --> 00:21:14,830 Così si scopre che nei sistemi informatici, 426 00:21:14,830 --> 00:21:16,840 vi è generalmente una differenza fondamentale 427 00:21:16,840 --> 00:21:19,920 tra un numero e un carattere. 428 00:21:19,920 --> 00:21:22,330 Un numero è la cosa che imparato crescendo quando 429 00:21:22,330 --> 00:21:23,830 siamo rimasti super giovane in grado di scuola. 430 00:21:23,830 --> 00:21:25,110 E 'cose che contano con. 431 00:21:25,110 --> 00:21:30,220 Ma un personaggio è solo una forma, glifo, per così dire, sullo schermo. 432 00:21:30,220 --> 00:21:36,200 >> Ora, noi esseri umani sorta di vedere qualcosa che assomiglia a questo. 433 00:21:36,200 --> 00:21:39,060 E diciamo, oh, che è il numero 2. 434 00:21:39,060 --> 00:21:44,999 Ma no, questo è solo un simbolo che sembra come quello che conosciamo come il numero 2. 435 00:21:44,999 --> 00:21:46,790 E così non c'è questo distinzione fondamentale 436 00:21:46,790 --> 00:21:50,340 tra i numeri reali e personaggi. 437 00:21:50,340 --> 00:21:52,130 Questo è un numero. 438 00:21:52,130 --> 00:21:54,420 Ma in generale, in contesto di un computer, 439 00:21:54,420 --> 00:21:56,809 se invece vede qualcosa di simile quoted-- 440 00:21:56,809 --> 00:21:58,600 e non lo fai sempre avere a vederlo citato, 441 00:21:58,600 --> 00:22:01,474 ma per il bene di se discussion-- vedi le citazioni intorno al numero, 442 00:22:01,474 --> 00:22:02,730 questo è ora un carattere. 443 00:22:02,730 --> 00:22:06,330 Quindi questo numero 2 sotto la cappa all'interno di un computer 444 00:22:06,330 --> 00:22:12,220 sarebbe rappresentato con un pattern di bit che rappresentano il numero 445 00:22:12,220 --> 00:22:14,850 50 secondo il grafico in linea. 446 00:22:14,850 --> 00:22:18,300 >> Tuttavia, se un computer appena vede questo, questo 447 00:22:18,300 --> 00:22:24,580 sarebbe rappresentato con il modello di bit 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Considerando che questo personaggio avrebbe in realtà essere rappresentati as-- e ora, 449 00:22:29,595 --> 00:22:34,710 Ho avuto modo di pensare un po 'harder-- quindi questo personaggio sarebbe rappresentato con 0 450 00:22:34,710 --> 00:22:39,080 0 1-- cosa ho bisogno qui? 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 Come ho fatto questo? 453 00:22:45,480 --> 00:22:49,580 Ebbene questo è il numero 50, se si moltiplicarlo utilizzando queste colonne, 454 00:22:49,580 --> 00:22:53,530 questo è il numero 2, e così è per questo che c'è questa dicotomia. 455 00:22:53,530 --> 00:22:55,850 >> E questo è solo un rompicapo ora caratteristiche 456 00:22:55,850 --> 00:22:59,710 che esistono in linguaggi di programmazione che ci tocchiamo brevemente più tardi oggi. 457 00:22:59,710 --> 00:23:01,950 In linguaggi di programmazione, avete in generale, 458 00:23:01,950 --> 00:23:04,495 ma non sempre, le cose chiamare diversi tipi di dati. 459 00:23:04,495 --> 00:23:06,870 In altre parole, un programmer-- quando lui o lei sta scrivendo, 460 00:23:06,870 --> 00:23:11,150 un programmatore arriva a decidere in quale formato per memorizzare i propri dati. 461 00:23:11,150 --> 00:23:14,120 È possibile memorizzare i dati come numeri grezzi, come il numero 2. 462 00:23:14,120 --> 00:23:17,940 Oppure è possibile memorizzare come stringhe, o sequenze di caratteri 463 00:23:17,940 --> 00:23:21,550 che si sarebbe generalmente esprimere con citazioni nel linguaggio di programmazione. 464 00:23:21,550 --> 00:23:25,230 >> Si possono avere le cose called-- Io semplificare troppo e li chiamo 465 00:23:25,230 --> 00:23:28,870 vero numbers-- in modo che i numeri non sono numeri interi, come il numero 2, 466 00:23:28,870 --> 00:23:31,310 ma numeri come 4.56. 467 00:23:31,310 --> 00:23:33,490 Così i numeri reali possono anche hanno punti decimali, 468 00:23:33,490 --> 00:23:36,340 quindi questo è un altro fondamentale piece di dati in un computer. 469 00:23:36,340 --> 00:23:41,920 E allora si può anche avere altri tipi di dati ancora. 470 00:23:41,920 --> 00:23:45,810 Ecco, questo è solo un teaser davvero di la più semplice delle decisioni di progettazione 471 00:23:45,810 --> 00:23:50,960 che un programmatore potrebbe rendere sotto la cappa. 472 00:23:50,960 --> 00:23:52,925 >> Quindi, tutte le domande appena ancora? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Quindi cerchiamo di fare questo un po 'più reale. 475 00:23:59,860 --> 00:24:02,120 Questo hardware non è tanto più in uso. 476 00:24:02,120 --> 00:24:07,420 Ma la maggior parte tutti in questa stanza, probabilmente cresciuto con e utilizza ancora i dischi rigidi 477 00:24:07,420 --> 00:24:08,010 in qualche modo. 478 00:24:08,010 --> 00:24:10,100 >> Anche se la maggior parte i nostri computer portatili non è più 479 00:24:10,100 --> 00:24:15,900 avere dispositivi che funzionano in questo modo, invece computer portatili oggi in generale 480 00:24:15,900 --> 00:24:18,590 avere dischi allo stato solido senza parti in movimento. 481 00:24:18,590 --> 00:24:22,840 E che tende ad essere più costosi, purtroppo, ma un po 'più veloce 482 00:24:22,840 --> 00:24:27,230 e a-- bene, spesso, molto più veloce, che è uno dei motivi. 483 00:24:27,230 --> 00:24:28,980 E anche non lo fa genera calore. 484 00:24:28,980 --> 00:24:31,680 Può essere più piccolo, quindi è generalmente una netta positiva. 485 00:24:31,680 --> 00:24:35,030 >> Ma questo ci permette di mappare un poco più concretamente cosa 486 00:24:35,030 --> 00:24:38,460 stiamo parlando al 0 e il livello 1 di oggi per un dispositivo fisico. 487 00:24:38,460 --> 00:24:40,810 E 'una cosa per me parlare circa 0 e 1 in termini di 488 00:24:40,810 --> 00:24:43,990 del mio telefono o astrattamente in termini di interruttori essendo on e off. 489 00:24:43,990 --> 00:24:45,340 Ma per quanto riguarda i dischi rigidi? 490 00:24:45,340 --> 00:24:48,495 Nel vostro laptop, se si dispone di un vecchio uno, o nel vostro computer desktop, 491 00:24:48,495 --> 00:24:51,200 o certamente nei server oggi, dove si ha 492 00:24:51,200 --> 00:24:53,070 hard disk che hanno un terabyte di spazio, 493 00:24:53,070 --> 00:24:55,560 4 terabyte di spazio, bene che cosa significa? 494 00:24:55,560 --> 00:24:59,560 >> Un disco rigido con 1 terabyte di mezzi spaziali 495 00:24:59,560 --> 00:25:03,890 c'è 1 trilione di byte all'interno di esso in qualche modo, 496 00:25:03,890 --> 00:25:10,450 o equivalentemente 8 trilioni di bit all'interno. 497 00:25:10,450 --> 00:25:16,240 1 terabyte sarebbe di 8 terabit o 1 trilione di bit, che 498 00:25:16,240 --> 00:25:19,330 significa che se si dispone di un disco unità, avete in qualche modo 499 00:25:19,330 --> 00:25:22,400 o altri un trilione di 0 e 1 di all'interno di esso. 500 00:25:22,400 --> 00:25:25,360 E se ci limitiamo a dare un'occhiata a un foto arbitraria di un disco rigido 501 00:25:25,360 --> 00:25:30,110 rappresentante, questo è ciò che un disco unità potrebbe sembrare tipicamente all'interno. 502 00:25:30,110 --> 00:25:32,600 >> Essa, inoltre, è un po 'come un vecchio lettore grammofono 503 00:25:32,600 --> 00:25:35,350 ma generalmente con più record all'interno, in modo 504 00:25:35,350 --> 00:25:38,270 a speak-- multipla piatti, come si chiamano, 505 00:25:38,270 --> 00:25:42,259 dischi circolari di metallo, e poi un po 'testa di lettura, 506 00:25:42,259 --> 00:25:43,550 molto simile a un vecchio giradischi. 507 00:25:43,550 --> 00:25:46,589 E che testina di lettura si muove avanti e avanti e in qualche modo si legge i bit. 508 00:25:46,589 --> 00:25:49,380 E cosa c'è in questi piatti, anche anche se noi umani non possiamo vederli, 509 00:25:49,380 --> 00:25:52,757 sia in realtà o in questa immagine, c'è minuscole particelle magnetiche. 510 00:25:52,757 --> 00:25:55,090 E anche se hai a lungo dimenticato come funziona l'elettricità, 511 00:25:55,090 --> 00:25:57,550 una particella magnetica che è addebitato in genere 512 00:25:57,550 --> 00:26:00,570 ha una estremità nord e una a sud end-- così a nord ea sud. 513 00:26:00,570 --> 00:26:03,000 E così il mondo solo deciso qualche tempo fa 514 00:26:03,000 --> 00:26:06,570 che, se un protocollo magnetica essenzialmente è allineato come questo, da nord a sud, 515 00:26:06,570 --> 00:26:07,610 chiamiamolo che un 1. 516 00:26:07,610 --> 00:26:10,470 Se è invece a sud-est, facciamo solo chiamare che un 0. 517 00:26:10,470 --> 00:26:13,350 E quindi se avete a vostra disposizione un trilione 518 00:26:13,350 --> 00:26:16,300 piccolo piccolo magnetica particles-- e, si spera, 519 00:26:16,300 --> 00:26:18,740 l'ingegno hardware Per capovolgere quelli intorno 520 00:26:18,740 --> 00:26:24,450 come si vede fit-- se si desidera rappresentano un gruppo intero di 0 di, voi 521 00:26:24,450 --> 00:26:28,120 solo bisogno di 8 particelle magnetiche tutti allineati come questo. 522 00:26:28,120 --> 00:26:30,330 E se si vuole rappresentare otto 1 di, basta 523 00:26:30,330 --> 00:26:33,170 bisogno di 8 particelle magnetiche allineati back to back to back in questo modo. 524 00:26:33,170 --> 00:26:35,515 >> Quello che voglio dire con il particelle magnetiche? 525 00:26:35,515 --> 00:26:38,390 Francamente, dopo tutti questi anni, la cosa che mi viene ancora in mente 526 00:26:38,390 --> 00:26:42,139 è questo ragazzo, se si cresciuto con questa cosa. 527 00:26:42,139 --> 00:26:43,930 Si tratta di un little-- per quelli unfamiliar-- un 528 00:26:43,930 --> 00:26:47,810 piccolo giocattolo infanzia che ha questo uomo senza peli qui 529 00:26:47,810 --> 00:26:51,690 che ha tutte queste piccolo piccolo nero particelle magnetiche che vengono con esso. 530 00:26:51,690 --> 00:26:53,930 E con quel bastone rosso, che è solo un magnete, 531 00:26:53,930 --> 00:26:58,460 si può sorta di dargli un paio di baffi o sopracciglia o capelli o nulla su di lui. 532 00:26:58,460 --> 00:27:00,710 Quindi, in realtà, se ingrandiamo in, per esempio, questo 533 00:27:00,710 --> 00:27:02,950 è il tipo di gioco che si può giocare con Wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> E questo è solo per dire, questi sono particelle magnetiche molto più grandi 535 00:27:06,570 --> 00:27:09,890 che sono in realtà su un disco rigido, e particelle magnetiche molti meno. 536 00:27:09,890 --> 00:27:11,640 Ma andiamo a vedere in realtà quindi se si ha 537 00:27:11,640 --> 00:27:14,720 minuscole particelle magnetiche in un disco rigido, come si può effettivamente 538 00:27:14,720 --> 00:27:19,090 usare quelli per rappresentare i dati. 539 00:27:19,090 --> 00:27:20,070 >> [RIPRODUZIONE VIDEO] 540 00:27:20,070 --> 00:27:24,190 >> -Il Disco rigido è dove il vostro PC memorizza la maggior parte dei suoi dati permanenti. 541 00:27:24,190 --> 00:27:27,170 Per fare questo, i dati viaggia da RAM lungo 542 00:27:27,170 --> 00:27:31,720 con segnali software che raccontano la disco rigido come memorizzare i dati. 543 00:27:31,720 --> 00:27:36,570 I circuiti del disco rigido traducono quelli segnali in fluttuazioni di tensione. 544 00:27:36,570 --> 00:27:40,880 Questi, a loro volta, controllare il disco rigido del spostando parts-- alcuni dei pochi in movimento 545 00:27:40,880 --> 00:27:43,440 parti lasciate nel computer moderno. 546 00:27:43,440 --> 00:27:47,650 >> Alcuni dei segnali di controllo di un motore, che gira piatti metallizzati. 547 00:27:47,650 --> 00:27:50,980 I tuoi dati sono in realtà memorizzati su questi piatti. 548 00:27:50,980 --> 00:27:56,250 Altri segnali si muovono le testine di lettura / scrittura per leggere o scrivere dati sui piatti. 549 00:27:56,250 --> 00:28:00,100 Questo macchinario è così preciso che un capello umano non poteva nemmeno 550 00:28:00,100 --> 00:28:02,800 passare tra le teste e piatti rotanti. 551 00:28:02,800 --> 00:28:04,887 Eppure, tutto funziona a velocità formidabili. 552 00:28:04,887 --> 00:28:05,470 [FINE RIPRODUZIONE] 553 00:28:05,470 --> 00:28:06,780 E si può vedere al coda del video, 554 00:28:06,780 --> 00:28:08,340 ci sono generalmente più piatti. 555 00:28:08,340 --> 00:28:10,250 E così che la testa di lettura non solo la lettura all'inizio. 556 00:28:10,250 --> 00:28:12,458 E 'un po' come tre o quattro o più teste di lettura 557 00:28:12,458 --> 00:28:14,920 che si muovono in questo modo, la lettura simultanea dei dati. 558 00:28:14,920 --> 00:28:17,407 >> Quindi c'è un sacco di complessità e sorta di temporizzazione 559 00:28:17,407 --> 00:28:18,740 che è coinvolto in un disco rigido. 560 00:28:18,740 --> 00:28:21,920 E la cosa è in rotazione in realtà maledettamente veloce, quindi non c'è un sacco di complessità. 561 00:28:21,920 --> 00:28:25,220 Ma cerchiamo di zoom in un po 'più profonda e vedere dove sono queste particelle magnetiche 562 00:28:25,220 --> 00:28:27,370 E come stiamo ottenendo a loro. 563 00:28:27,370 --> 00:28:28,750 >> [RIPRODUZIONE VIDEO] 564 00:28:28,750 --> 00:28:31,830 >> Lo sguardo di -let a ciò che appena visto al rallentatore. 565 00:28:31,830 --> 00:28:35,230 Quando un breve impulso di energia elettrica viene inviato alla testina di lettura / scrittura, 566 00:28:35,230 --> 00:28:39,000 si ribalta su una piccola elettromagnetica per una frazione di secondo. 567 00:28:39,000 --> 00:28:41,390 Il magnete crea un campo, che cambia 568 00:28:41,390 --> 00:28:44,600 la polarità di un piccolo, piccolo porzione delle particelle metalliche 569 00:28:44,600 --> 00:28:46,960 che rivestono la superficie di ogni piatto. 570 00:28:46,960 --> 00:28:50,020 Una serie modello di questi piccoli aree caricate su su disco 571 00:28:50,020 --> 00:28:54,590 rappresenta un singolo bit di dati nella sistema numerico binario usato dai computer. 572 00:28:54,590 --> 00:28:57,510 >> Ora, se la corrente viene inviato uno attraverso la testina di lettura / scrittura, 573 00:28:57,510 --> 00:28:59,899 la zona è polarizzata in una direzione. 574 00:28:59,899 --> 00:29:01,940 Se la corrente viene inviato direzione opposta, 575 00:29:01,940 --> 00:29:04,020 la polarizzazione è invertita. 576 00:29:04,020 --> 00:29:06,440 Come si ottiene i dati dal disco rigido? 577 00:29:06,440 --> 00:29:08,190 Basta invertire il processo. 578 00:29:08,190 --> 00:29:10,440 Quindi è particelle sulla disco che ottiene la corrente 579 00:29:10,440 --> 00:29:12,260 Nella testina di lettura / scrittura in movimento. 580 00:29:12,260 --> 00:29:14,580 Mettere insieme milioni di questi segmenti magnetizzate, 581 00:29:14,580 --> 00:29:16,220 e hai un file. 582 00:29:16,220 --> 00:29:21,030 >> Ora, i pezzi di un singolo file può essere sparsi in tutto piatti di un'unità, 583 00:29:21,030 --> 00:29:24,060 un po 'come il disordine di carte sulla scrivania. 584 00:29:24,060 --> 00:29:27,590 Quindi uno speciale extra file continua traccia di dove tutto è. 585 00:29:27,590 --> 00:29:30,440 Non si desidera si aveva qualcosa del genere? 586 00:29:30,440 --> 00:29:31,290 >> [FINE RIPRODUZIONE] 587 00:29:31,290 --> 00:29:36,260 >> Quindi, essendo accennato lì, forse, è tale argomento da ieri di cancellazione. 588 00:29:36,260 --> 00:29:38,380 Quando si elimina un File, ieri abbiamo detto 589 00:29:38,380 --> 00:29:41,020 che un computer realtà fa cosa, quando si trascina qualcosa 590 00:29:41,020 --> 00:29:44,110 per il cestino o cestino? 591 00:29:44,110 --> 00:29:45,150 E 'solo dimentica. 592 00:29:45,150 --> 00:29:47,540 Ma lo 0 e di 1, le particelle magnetiche 593 00:29:47,540 --> 00:29:50,640 quello sguardo come il rosso e il blu le cose qui, o mio braccio qui, 594 00:29:50,640 --> 00:29:52,350 sono ancora lì sul disco rigido. 595 00:29:52,350 --> 00:29:56,090 >> E così esiste software-- Norton Utilities e di ieri 596 00:29:56,090 --> 00:29:58,159 e altri più moderni software-- che proprio 597 00:29:58,159 --> 00:30:01,200 esplorerà un intero disco rigido alla ricerca a tutti quei 0 e 1., perché 598 00:30:01,200 --> 00:30:06,890 risulta che la maggior parte di file disposizioni-- documenti Word, file Excel, immagini, 599 00:30:06,890 --> 00:30:10,380 il video files-- tutti hanno certo modelli che sono comuni tra di loro. 600 00:30:10,380 --> 00:30:12,550 Ogni file video potrebbe essere di un altro video, 601 00:30:12,550 --> 00:30:14,870 ma la prima vari bit sono generalmente gli stessi. 602 00:30:14,870 --> 00:30:16,790 O l'ultima più bit di solito sono le stesse. 603 00:30:16,790 --> 00:30:19,910 >> E così con alta probabilità, si può guardare per quei modelli. 604 00:30:19,910 --> 00:30:23,700 E anche se il file è stato dimenticato, si può dire con alta probabilità, 605 00:30:23,700 --> 00:30:28,460 ma questo appare come un documento Word, lascia recuperarlo e non-dimenticarlo, 606 00:30:28,460 --> 00:30:28,990 se vorrai. 607 00:30:28,990 --> 00:30:32,330 E così è così che è possibile recuperare dati che sono stati o accidentalmente 608 00:30:32,330 --> 00:30:36,560 cancellato o eliminato o deliberatamente cancellato per qualsiasi scopo. 609 00:30:36,560 --> 00:30:42,530 >> Al contrario, la cancellazione sicura fa quello nel contesto di una foto come questa? 610 00:30:42,530 --> 00:30:44,059 Esattamente, li rende tutto casuale. 611 00:30:44,059 --> 00:30:46,350 Quindi è una sorta di muove alcune delle giù, alcuni di loro fino, 612 00:30:46,350 --> 00:30:49,433 lascia alcuni di loro invariato, e generalmente fa rumore casuale fuori di esso, 613 00:30:49,433 --> 00:30:52,960 o solo forse rende tutti li 0 di o tutti loro 1 di. 614 00:30:52,960 --> 00:30:56,350 E anche questo può generalmente fregare i dati via. 615 00:30:56,350 --> 00:31:00,160 >> Quindi torniamo ora alla questione di pensiero computazionale, per cui 616 00:31:00,160 --> 00:31:03,270 abbiamo gli ingressi formula. 617 00:31:03,270 --> 00:31:06,390 E algoritmi dà si uscite in ultima analisi. 618 00:31:06,390 --> 00:31:09,270 Ci concentriamo ora in poi gli ingressi e uscite, perché ora, ho 619 00:31:09,270 --> 00:31:12,159 affermazione abbiamo un modo di rappresentano ingressi e uscite. 620 00:31:12,159 --> 00:31:13,450 Stiamo solo andando a utilizzare binario. 621 00:31:13,450 --> 00:31:15,910 >> E non importa quello che abbiamo vuole rappresentare oggi, 622 00:31:15,910 --> 00:31:20,230 che si tratti di un numero o una lettera o migliaia loro in una rubrica telefonica 623 00:31:20,230 --> 00:31:23,210 o immagini o filmati, alla fine della giornata, è tutto 0 e 1.. 624 00:31:23,210 --> 00:31:26,640 E io sostengo che, anche se questo è un mondo super semplice con solo 0 di 625 00:31:26,640 --> 00:31:28,240 e 1 di, possiamo costruire noi stessi. 626 00:31:28,240 --> 00:31:32,210 E abbiamo visto un esempio di che con le lettere finora. 627 00:31:32,210 --> 00:31:35,615 >> Quindi concentriamoci ora su questo ingrediente centrale, un algoritmo. 628 00:31:35,615 --> 00:31:38,190 E torniamo a questo esempio di Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Quindi, in questo libro telefono, che è vero, non usiamo più così tanto, 630 00:31:41,689 --> 00:31:42,980 c'è un problema da risolvere. 631 00:31:42,980 --> 00:31:45,040 Vogliamo trovare qualcuno come Mike Smith. 632 00:31:45,040 --> 00:31:47,520 >> E che cosa potrei fare per trovare Mike? 633 00:31:47,520 --> 00:31:51,197 Beh, ho potuto solo aprire questo libro, inizia alla prima pagina, 634 00:31:51,197 --> 00:31:52,780 e realizzare, oh, io sono nella sezione A. 635 00:31:52,780 --> 00:31:53,510 Mike non c'è. 636 00:31:53,510 --> 00:31:55,510 Ho bisogno la sezione S per Smith. 637 00:31:55,510 --> 00:31:58,192 Quindi, solo continuare a girare una pagina alla volta. 638 00:31:58,192 --> 00:32:00,900 Mi permetta di fingere che questo è tutto pagine bianche e pagine gialle non, 639 00:32:00,900 --> 00:32:02,910 perché non stiamo andando a trovare Mike in pagine gialle comunque. 640 00:32:02,910 --> 00:32:04,034 Ma io sono nelle pagine bianche. 641 00:32:04,034 --> 00:32:05,340 Ed ora, io sono nella sezione B. 642 00:32:05,340 --> 00:32:06,810 Io ancora non l'ho trovato. 643 00:32:06,810 --> 00:32:08,890 Così continuo a girare una pagina alla volta. 644 00:32:08,890 --> 00:32:10,130 >> Questo è un algoritmo. 645 00:32:10,130 --> 00:32:12,440 Si tratta di un insieme di istruzioni per risolvere qualche problema. 646 00:32:12,440 --> 00:32:16,480 In altre parole, guarda pagina, se Mike non è su di esso, 647 00:32:16,480 --> 00:32:20,020 girare la pagina, e si ripete Ancora e ancora e ancora, 648 00:32:20,020 --> 00:32:21,760 idealmente guardando verso il basso, come si sta facendo. 649 00:32:21,760 --> 00:32:24,120 Quindi è questo algoritmo, questo processo, giusto? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Scusate. 652 00:32:28,830 --> 00:32:30,056 No, ho sentito alcuni nn. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, ma è-- sì, è certamente noioso. 655 00:32:36,125 --> 00:32:39,000 Come, saremo qui tutto il giorno, se mi continuare a cercare Mike a questa velocità. 656 00:32:39,000 --> 00:32:41,430 Ma lasciate che sostengono che è corretto. 657 00:32:41,430 --> 00:32:43,850 E 'stupido, ma è corretto. 658 00:32:43,850 --> 00:32:47,209 >> Alla fine della giornata, lunga come potrebbe Prendo, troverò Mike se lui è lì 659 00:32:47,209 --> 00:32:48,250 e sto prestando attenzione. 660 00:32:48,250 --> 00:32:50,230 E alla fine ho raggiungere la sua pagina. 661 00:32:50,230 --> 00:32:52,890 E se ho troppo lontano, se Ottengo alla sezione T, 662 00:32:52,890 --> 00:32:55,900 allora posso leggermente ottimizzare e dire, hm, tutto fatto. 663 00:32:55,900 --> 00:32:57,980 Non ho nemmeno bisogno di sprecare tempo andando alla Z di. 664 00:32:57,980 --> 00:33:00,010 Ma questo è molto approccio lineare, se si 665 00:33:00,010 --> 00:33:03,370 sarà, una sorta di sinistra a destra approccio, una linea retta. 666 00:33:03,370 --> 00:33:05,560 E la sua corretta ma lento. 667 00:33:05,560 --> 00:33:09,250 >> Così mi ricordo dalla scuola elementare, una sorta di una ottimizzazione da un primo selezionatore, 668 00:33:09,250 --> 00:33:13,756 dove ho imparato a non contare da quelli ma twos-- modo 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 E 'una, molto più difficile da do, ma in teoria, è 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, e così via. 671 00:33:20,149 --> 00:33:21,190 Come su tale algoritmo? 672 00:33:21,190 --> 00:33:23,150 È più efficiente? 673 00:33:23,150 --> 00:33:23,880 E 'più veloce? 674 00:33:23,880 --> 00:33:25,365 >> PUBBLICO: E 'efficiente. 675 00:33:25,365 --> 00:33:28,560 >> DAVID MALAN: Sì, quindi è def-- è letteralmente due volte più veloce, ho ammesso 676 00:33:28,560 --> 00:33:30,170 Non farsi scattato con le dita. 677 00:33:30,170 --> 00:33:32,294 E 'due volte più veloce, perché Sto girando attraverso due 678 00:33:32,294 --> 00:33:36,560 pagine alla volta invece di uno, ma è potenzialmente in corretto, perché perché? 679 00:33:36,560 --> 00:33:37,852 >> PUBBLICO: Stai saltare alcuni. 680 00:33:37,852 --> 00:33:41,185 DAVID MALAN: Destra, che cosa se Mike succede da sandwiched-- forse quando sono più avanti 681 00:33:41,185 --> 00:33:44,370 nella rubrica, Mike sembra essere inserita tra queste due pagine, 682 00:33:44,370 --> 00:33:46,720 e ho appena saltare ciecamente su di esso. 683 00:33:46,720 --> 00:33:48,490 Quindi abbiamo bisogno di un po 'di correzione lì. 684 00:33:48,490 --> 00:33:51,290 Una volta mi ha colpito la sezione T, I non si può solo dire con fiducia, 685 00:33:51,290 --> 00:33:52,420 non abbiamo trovato Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Probabilmente ho raddoppiare indietro. 687 00:33:53,770 --> 00:34:00,210 O in realtà, una volta raggiungo qualcuno chiamato S-N, invece di S-M Smith, 688 00:34:00,210 --> 00:34:02,790 subito, ho potuto raddoppiare indietro, perché forse lui 689 00:34:02,790 --> 00:34:03,900 era nella pagina precedente. 690 00:34:03,900 --> 00:34:05,070 >> Ma io non devo raddoppiare indietro lontano. 691 00:34:05,070 --> 00:34:08,030 In teoria, se lo faccio a destra tempo, mi basta andare indietro di una pagina. 692 00:34:08,030 --> 00:34:10,139 Quindi è l'aggiunta di un solo passo in più. 693 00:34:10,139 --> 00:34:13,070 Così sono andato due volte più veloce, ma mi è costato una pagina in più. 694 00:34:13,070 --> 00:34:14,699 Ma che si sente come una vittoria netta. 695 00:34:14,699 --> 00:34:17,230 >> Ma questo non è come la maggior parte delle persone in questa sala possa risolvere questo problema. 696 00:34:17,230 --> 00:34:20,313 Cosa sarebbe una persona tipica, forse un Qualche anno fa lo fanno, per trovare Mike Smith? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Sì, non ha trovato Mike. 699 00:34:24,800 --> 00:34:27,190 Cosa faccio? 700 00:34:27,190 --> 00:34:31,027 In modo da ottenere un po 'più vicino, ma lo faccio know-- ciò che è vero su una rubrica telefonica? 701 00:34:31,027 --> 00:34:32,110 PUBBLICO: E 'sequenziale. 702 00:34:32,110 --> 00:34:32,760 DAVID MALAN: E 'sequenziale. 703 00:34:32,760 --> 00:34:33,750 E 'alfabetico. 704 00:34:33,750 --> 00:34:36,540 E così, se io sono nella sezione M, Mike è chiaramente a destra, 705 00:34:36,540 --> 00:34:39,949 Posso letteralmente strappare il problema in half-- 706 00:34:39,949 --> 00:34:44,360 di solito è più facile che lacrima che-- il problema a metà e gettarlo via, 707 00:34:44,360 --> 00:34:47,627 così che ora, ho un problema che è non più di 1.000 pages-- che era difficile, 708 00:34:47,627 --> 00:34:50,210 perché penso che in realtà ho strappato la rubrica telefonica non tempo-- 709 00:34:50,210 --> 00:34:52,219 1.000 pagine, ma 500. 710 00:34:52,219 --> 00:34:54,750 >> Quindi il problema è letteralmente la metà più grande. 711 00:34:54,750 --> 00:34:58,170 E questo è piuttosto interessante, perché con i miei algoritmi precedenti, la versione 712 00:34:58,170 --> 00:35:02,870 1 e 2, stavo solo facendo il problema una pagina più piccoli, due pagine più piccoli 713 00:35:02,870 --> 00:35:03,470 Al tempo. 714 00:35:03,470 --> 00:35:07,230 Mentre ora, ho fatto 500 pagine più piccolo tutto in una volta. 715 00:35:07,230 --> 00:35:10,089 >> OK, ora, Karim propone che vado alla metà destra. 716 00:35:10,089 --> 00:35:12,380 Quindi ho intenzione di andare o meno al centro, più o meno. 717 00:35:12,380 --> 00:35:15,185 E se ho fatto questo matematicamente, Potrei andare a destra verso il centro. 718 00:35:15,185 --> 00:35:17,060 E ora, mi rendo conto, oh, Sono nella sezione T. 719 00:35:17,060 --> 00:35:18,280 Io in realtà andato troppo lontano. 720 00:35:18,280 --> 00:35:21,670 >> Ma posso, ancora una volta, strappare il problema a metà, buttarlo via. 721 00:35:21,670 --> 00:35:23,330 E i miei byte non è così grande. 722 00:35:23,330 --> 00:35:28,780 E 'solo, che cosa, 256 pagine o 250 le pagine, prendere o lasciare in questo momento. 723 00:35:28,780 --> 00:35:31,570 Ma è ancora il modo più di una pagina o due pagine. 724 00:35:31,570 --> 00:35:33,345 >> E così ora, vado più o meno a metà. 725 00:35:33,345 --> 00:35:35,330 Oh, non sono andato abbastanza lontano abbastanza ora. 726 00:35:35,330 --> 00:35:37,880 Quindi ripeto, ripetere, ripetere, ripetere, fino a quando io sono spera 727 00:35:37,880 --> 00:35:40,360 sinistra con una sola pagina. 728 00:35:40,360 --> 00:35:44,000 >> In modo che invita la questione, se io iniziato con circa 1.000 pagine, 729 00:35:44,000 --> 00:35:47,340 quanti passi ci sono voluti me con la versione 1 di mio algoritmo? 730 00:35:47,340 --> 00:35:50,420 Ebbene, se Mike è nel S sezione, nel caso peggiore, 731 00:35:50,420 --> 00:35:52,630 che è abbastanza vicino a la fine dell'alfabeto. 732 00:35:52,630 --> 00:35:56,559 Quindi, se il libro telefono è dotato di 1.000 pagine, Troverò Mike all'interno di 1.000 pagine, 733 00:35:56,559 --> 00:35:57,100 prendere o lasciare. 734 00:35:57,100 --> 00:35:59,750 Forse è come 800 o giù di lì, ma è abbastanza vicino a 1.000. 735 00:35:59,750 --> 00:36:01,680 >> Considerando che, nella seconda algoritmo, quante 736 00:36:01,680 --> 00:36:06,840 Pagina gira al massimo potrei richiedono di trovare Mike Smith? 737 00:36:06,840 --> 00:36:09,970 C'è 1.000 pagine, ma sono facendo loro due alla volta. 738 00:36:09,970 --> 00:36:13,045 A destra, in modo da max come 500ish, perché se vado attraverso l'intera rubrica telefonica, 739 00:36:13,045 --> 00:36:14,170 a quel punto, posso smettere. 740 00:36:14,170 --> 00:36:16,669 Ma posso radere alcuni da una semplice pausa nella sezione T. 741 00:36:16,669 --> 00:36:19,880 Ma è nel peggiore caso 500 pagine. 742 00:36:19,880 --> 00:36:24,710 >> Quindi, quante volte posso dividere una 1,00o-pagina del libro di telefono in una volta e mezzo 743 00:36:24,710 --> 00:36:30,450 e ancora e again-- da 1.000 500 a 250 a 125? 744 00:36:30,450 --> 00:36:32,250 Quanto tempo prima mi ha colpito una pagina? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Sì, si tratta di 10. 747 00:36:36,370 --> 00:36:40,780 A seconda di arrotondamento e tale, è circa 10 pagine fabbisogno totale per essere trasformato 748 00:36:40,780 --> 00:36:43,290 o elenchi telefonici devono essere strappata. 749 00:36:43,290 --> 00:36:44,710 >> Ecco, questo è abbastanza potente. 750 00:36:44,710 --> 00:36:48,170 Abbiamo iniziato con un problema di 1.000 pagine in tutte e tre queste storie. 751 00:36:48,170 --> 00:36:51,850 Ma nel primo algoritmo, essa mi ha portato, nel peggiore dei casi, di 1000 pagine 752 00:36:51,850 --> 00:36:52,740 si rivolge per trovare Mike. 753 00:36:52,740 --> 00:36:55,590 Secondo algoritmo, 500 pagine per trovare Mike. 754 00:36:55,590 --> 00:36:58,480 In terzo algoritmo, 10 pagine per trovare Mike. 755 00:36:58,480 --> 00:37:00,230 Ed è ancora più potente quando si pensa 756 00:37:00,230 --> 00:37:01,860 su una sorta di scenario opposto. 757 00:37:01,860 --> 00:37:05,680 Supponiamo che la compagnia telefonica successiva anno fonde forse due città insieme, 758 00:37:05,680 --> 00:37:08,550 e la rubrica è improvvisamente questo spessore, invece di questa che, 759 00:37:08,550 --> 00:37:12,470 così 2.000 pagine invece di 1.000. 760 00:37:12,470 --> 00:37:15,640 Beh, il mio primo algoritmo in cerca di Mike Smith in una rubrica di 2.000 pagine, 761 00:37:15,640 --> 00:37:21,460 caso peggiore, sta andando a prendere quanti Pagina trasforma il prossimo anno? 762 00:37:21,460 --> 00:37:24,800 >> rubrica è di 2.000 pagine, so-- bene, non più uno. 763 00:37:24,800 --> 00:37:29,540 Se la rubrica è due volte più spessa il primo algoritmo, primo algoritmo, 764 00:37:29,540 --> 00:37:30,380 2.000, giusto? 765 00:37:30,380 --> 00:37:33,005 Nel caso peggiore, Mike è veramente vicino alla fine del libro, 766 00:37:33,005 --> 00:37:34,110 quindi è di 2.000 giri pagina. 767 00:37:34,110 --> 00:37:38,070 Secondo algoritmo che va da due a due, come 1.000 pagine. 768 00:37:38,070 --> 00:37:41,490 >> Ma come circa nel mio terzo e il più recente algoritmo? 769 00:37:41,490 --> 00:37:44,950 Se la compagnia telefonica raddoppia la numero di pagine da 1.000 a 2.000, 770 00:37:44,950 --> 00:37:47,770 quante altre volte bisogno mi strappo quel libro a metà per trovare Mike? 771 00:37:47,770 --> 00:37:48,710 >> PUBBLICO: Solo una. 772 00:37:48,710 --> 00:37:51,001 >> DAVID MALAN: Solo un altro, perché con una pagina lacrima, 773 00:37:51,001 --> 00:37:53,270 Posso letteralmente dividere e conquistare, se si vuole, 774 00:37:53,270 --> 00:37:57,410 che problema a metà assunzione una massiccia morso fuori di esso. 775 00:37:57,410 --> 00:38:01,420 E così questo è un esempio di efficienza e probabilmente un algoritmo 776 00:38:01,420 --> 00:38:04,100 con la quale tutti siamo sorta di intuitivamente familiare. 777 00:38:04,100 --> 00:38:07,780 Ma è altrettanto corretto come i miei altri algoritmi 778 00:38:07,780 --> 00:38:09,630 con quella Tweak per il secondo algoritmo, 779 00:38:09,630 --> 00:38:11,290 ma è così molto più efficiente. 780 00:38:11,290 --> 00:38:14,030 >> E in effetti, ciò che un computer scienziato, o, a sua volta un programmatore, 781 00:38:14,030 --> 00:38:17,580 sarebbe tipicamente fare durante la scrittura il codice è cercare di capire, 782 00:38:17,580 --> 00:38:19,960 tutto bene, io non voglio che il mio il programma solo per essere corretta, 783 00:38:19,960 --> 00:38:23,220 Voglio anche che sia efficiente e risolvere bene i problemi. 784 00:38:23,220 --> 00:38:26,450 Immaginate nel mondo reale di oggi, come Google indicizza, ricerche 785 00:38:26,450 --> 00:38:31,580 come miliardi di pagine, immaginate se utilizzato il primo algoritmo per trovare i gatti 786 00:38:31,580 --> 00:38:34,620 tra un miliardo pages-- guardando la prima pagina nel loro database, 787 00:38:34,620 --> 00:38:37,700 il secondo, il terzo, solo guardando per un gatto, in cerca di un gatto. 788 00:38:37,700 --> 00:38:40,350 Questo è dannatamente lento sembrerebbe. 789 00:38:40,350 --> 00:38:43,170 Potrebbero invece usare qualcosa chiamata ricerca binaria, che 790 00:38:43,170 --> 00:38:47,420 c'è bi coincidence-- che significa due, abbiamo continuare a dividere qualcosa in 2, in half-- 791 00:38:47,420 --> 00:38:50,205 avrebbero potuto usare la ricerca binaria e magari trovare i gatti ancora più veloce, 792 00:38:50,205 --> 00:38:51,830 o qualunque cosa sia che stai cercando. 793 00:38:51,830 --> 00:38:54,125 >> E, francamente, non c'è anche algoritmi amatore 794 00:38:54,125 --> 00:38:56,250 che fare molto di più di una semplice dividendo le cose a metà 795 00:38:56,250 --> 00:38:58,180 al fine di trovare rapidamente le informazioni. 796 00:38:58,180 --> 00:39:00,880 E parleremo un po ' su coloro che dopo il pranzo di oggi. 797 00:39:00,880 --> 00:39:02,640 Così mi permetta solo cercare di rappresentare questo. 798 00:39:02,640 --> 00:39:05,380 Non abbiamo bisogno di andare in qualsiasi matematica o numeri reali. 799 00:39:05,380 --> 00:39:07,070 Possiamo parlare di questo in astratto. 800 00:39:07,070 --> 00:39:11,580 >> Ma lasciatemi propongo, se si stavano avendo una discussione ora 801 00:39:11,580 --> 00:39:13,491 con gli ingegneri proponendo questo algoritmo 802 00:39:13,491 --> 00:39:15,490 e si sta cercando di fare una decisione calcolata, 803 00:39:15,490 --> 00:39:17,285 perché forse il ingegnere dice a voi, 804 00:39:17,285 --> 00:39:19,910 sapere che cosa, posso implementare un ricerca lineare in come due minuti. 805 00:39:19,910 --> 00:39:21,150 E 'così facile. 806 00:39:21,150 --> 00:39:24,790 La ricerca binaria non è che la fantasia, ma sta andando a prendere me come 10 minuti, 807 00:39:24,790 --> 00:39:26,650 così 5 volte più a lungo. 808 00:39:26,650 --> 00:39:30,900 >> C'è un commercio qui, anche in termini di decidere quale software per scrivere. 809 00:39:30,900 --> 00:39:34,760 Si fa a scrivere l'algoritmo più semplice, che sarà solo si prende due minuti? 810 00:39:34,760 --> 00:39:39,880 O si spendono più tempo, 10 minuti, scrivere l'algoritmo più elaborato? 811 00:39:39,880 --> 00:39:43,540 Come si fa a decidere che tipo di domanda? 812 00:39:43,540 --> 00:39:46,710 Oppure si potrebbe rendere un po 'più reale. 813 00:39:46,710 --> 00:39:50,610 Dico al mio capo che sta andando a prendere me uno dei due settimana o 10 settimane 814 00:39:50,610 --> 00:39:52,490 per attuare la software in questo modo, come 815 00:39:52,490 --> 00:39:56,103 si fa a decidere che algoritmo per luce verde? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> PUBBLICO: Il pubblico, immagino. 818 00:39:57,550 --> 00:39:57,960 >> DAVID MALAN: Il pubblico. 819 00:39:57,960 --> 00:39:59,460 Che cosa si intende per il pubblico? 820 00:39:59,460 --> 00:40:03,460 >> PUBBLICO: Se è in corso per essere utilizzato da utenti 821 00:40:03,460 --> 00:40:09,050 che [INAUDIBLE] dagli utenti [INCOMPRENSIBILE]. 822 00:40:09,050 --> 00:40:11,232 Ma se si tratta di qualcosa che ti solo facendo per te stesso 823 00:40:11,232 --> 00:40:13,946 per facilitare un problema, [INCOMPRENSIBILE] più veloce. 824 00:40:13,946 --> 00:40:16,820 DAVID MALAN: Sì, è rapido e sporco è un buon modo per descriverlo. 825 00:40:16,820 --> 00:40:18,695 In effetti, se sei descrivendo molto del mio tempo 826 00:40:18,695 --> 00:40:23,630 a scuola grad, per cui spesso i tempi, Ho scritto male il codice consapevolmente so-- 827 00:40:23,630 --> 00:40:26,490 almeno, è così che mi it-- razionalizzato consapevolmente così, 828 00:40:26,490 --> 00:40:30,670 perché anche se stavo scrivendo codice che era relativamente lento da eseguire, 829 00:40:30,670 --> 00:40:33,750 Sono stato in grado di scrivere il codice stesso abbastanza veloce, la spesa a pochi minuti 830 00:40:33,750 --> 00:40:35,107 o meno ore di giorni. 831 00:40:35,107 --> 00:40:37,190 E si è scoperto, ho di tanto in tanto bisogno di dormire. 832 00:40:37,190 --> 00:40:41,270 Quindi, anche se il mio codice richiesto 8 ore per eseguire, così va bene, 833 00:40:41,270 --> 00:40:42,850 Andrò a dormire durante l'esecuzione. 834 00:40:42,850 --> 00:40:46,350 >> Così, al momento, ho pensato che questo era molto intelligente, anche se a quanto pare 835 00:40:46,350 --> 00:40:48,990 ha lavorato con il mio dottorato di ricerca molto lentamente. 836 00:40:48,990 --> 00:40:52,270 Ma l'inverso di quello è che, software se stessi scrivendo 837 00:40:52,270 --> 00:40:55,930 per altre persone che importava più di me, beh, 838 00:40:55,930 --> 00:40:59,580 averli aspettare 8 ore per tornare loro risultati di ricerca 839 00:40:59,580 --> 00:41:01,350 non è poi così interessante. 840 00:41:01,350 --> 00:41:04,090 E così trascorrere più tempo in anticipo per scrivere software 841 00:41:04,090 --> 00:41:07,300 che è più efficiente, più come il nostro terzo algoritmo, 842 00:41:07,300 --> 00:41:09,780 probabilmente benefici gli utenti nel corso del tempo. 843 00:41:09,780 --> 00:41:12,710 Quindi in realtà dipende sopra tempo come quei costi si sommano. 844 00:41:12,710 --> 00:41:14,960 Se avete intenzione di scrivere software usare una volta, 845 00:41:14,960 --> 00:41:17,240 Probabilmente potrebbe anche fare rapido e sporco, come si suol dire. 846 00:41:17,240 --> 00:41:18,198 Basta buttare insieme. 847 00:41:18,198 --> 00:41:20,560 E 'il codice che imbarazza te, così male, 848 00:41:20,560 --> 00:41:23,860 ma ottiene il lavoro fatto correttamente, anche se non è efficiente. 849 00:41:23,860 --> 00:41:27,200 Al contrario, si spendono più tempo su qualcosa, farlo giusto. 850 00:41:27,200 --> 00:41:30,730 E poi ammortizzato nel corso del tempo, costo che in anticipo di tempo 851 00:41:30,730 --> 00:41:34,330 è probabilmente vale la pena, se si mantiene ottimizzazione per il caso comune. 852 00:41:34,330 --> 00:41:37,620 >> E in effetti, questo è un tema in programmazione, o informatica più 853 00:41:37,620 --> 00:41:41,390 generalmente, cercando di ottimizzare non per il caso raro 854 00:41:41,390 --> 00:41:44,390 ma le case-- comuni quale operazione che sta per accadere ancora e ancora? 855 00:41:44,390 --> 00:41:47,730 Se avete intenzione di avere miliardi degli utenti di ricerca sul tuo sito web, 856 00:41:47,730 --> 00:41:52,030 probabilmente si dovrebbe spendere l'extra settimane sulla parte anteriore di scrittura software migliore, 857 00:41:52,030 --> 00:41:53,670 in modo che tutti gli utenti beneficiano. 858 00:41:53,670 --> 00:41:57,840 Ora, proviamo a catturare questo un poco pittoricamente, ma non tanto 859 00:41:57,840 --> 00:41:58,610 numericamente. 860 00:41:58,610 --> 00:42:01,680 >> Quindi, ecco un semplice grafico vecchia scuola. 861 00:42:01,680 --> 00:42:04,260 E lasciatemi dire che questo è il tempo. 862 00:42:04,260 --> 00:42:06,660 E non importa Cosa-- in realtà, no, non tempo. 863 00:42:06,660 --> 00:42:08,320 Si inseriscono le sull'altro asse. 864 00:42:08,320 --> 00:42:15,700 Diciamo che questo è il tempo, e questo è formato di problema. 865 00:42:15,700 --> 00:42:17,830 >> E un informatico potrebbe chiamare in generale 866 00:42:17,830 --> 00:42:20,820 questo solo n. n è come il nostro go-to variabile, in cui 867 00:42:20,820 --> 00:42:26,351 n è un numero, n il numero, ed è il numero di qualsiasi input che avete. 868 00:42:26,351 --> 00:42:28,100 Quindi, in questo caso, n è il numero di pagine. 869 00:42:28,100 --> 00:42:30,150 Così potrebbe essere 1.000 in il caso che abbiamo appena detto. 870 00:42:30,150 --> 00:42:31,969 >> Quindi il tempo può essere qualsiasi unità di misura. 871 00:42:31,969 --> 00:42:32,760 Forse, è secondo. 872 00:42:32,760 --> 00:42:33,410 Forse, è giorni. 873 00:42:33,410 --> 00:42:34,590 Forse, è come pagina giri. 874 00:42:34,590 --> 00:42:35,215 Non importa. 875 00:42:35,215 --> 00:42:38,840 Qualunque cosa si desidera contare in, che sarà il tempo o il costo equivalente. 876 00:42:38,840 --> 00:42:42,400 >> Quindi, con questo molto prima algoritmo, se, per esempio, 877 00:42:42,400 --> 00:42:45,920 aveva una rubrica di 1000 pagine, Io vado a disegnare un punto lì, 878 00:42:45,920 --> 00:42:51,450 perché se è 1.000 pagine, ci sono voluti circa 1000 pagine si trasforma, prendere o lasciare. 879 00:42:51,450 --> 00:42:54,100 E poi se avessi un 2.000 pagine rubrica telefonica, 880 00:42:54,100 --> 00:42:57,200 e sto andando a disegnare un secondo dot qui, perché per 2.000 pagine, 881 00:42:57,200 --> 00:42:59,810 è come 2.000 secondi o la pagina si trasforma o qualsiasi altra cosa. 882 00:42:59,810 --> 00:43:02,480 E così, quando ho detto in precedenza, si tratta di tipo di una relazione lineare, 883 00:43:02,480 --> 00:43:06,020 che è stato intenzionale, perché volevo successivamente on-- destra now-- per disegnare una linea. 884 00:43:06,020 --> 00:43:07,770 E 'una specie di una scala rapporto di linea. 885 00:43:07,770 --> 00:43:10,180 La pendenza è 1/1, se si vuole. 886 00:43:10,180 --> 00:43:14,630 >> Nel frattempo, il secondo algoritmo Detto questo, se hai 1.000 pagine 887 00:43:14,630 --> 00:43:17,680 e si stava utilizzando il secondo algoritmo, dove ho contato da 2 di, girando 888 00:43:17,680 --> 00:43:22,564 due pagine alla volta, dovrei disegnare un dot sotto o sopra il mio punto originale? 889 00:43:22,564 --> 00:43:23,450 >> PUBBLICO: Qui di seguito. 890 00:43:23,450 --> 00:43:27,992 >> DAVID MALAN: Qui di seguito, perché, come abbiamo visto, richiede meno tempo, metà del tempo. 891 00:43:27,992 --> 00:43:29,950 Così il punto dovrebbe essere a metà alto come l'altra. 892 00:43:29,950 --> 00:43:33,330 E lo stesso affare qui, questo dot probabilmente dovrebbe essere più o meno lì. 893 00:43:33,330 --> 00:43:39,666 E così il mio secondo algoritmo, allo stesso modo, ha una relazione lineare con il tempo. 894 00:43:39,666 --> 00:43:41,990 E possiamo trarre come tale. 895 00:43:41,990 --> 00:43:45,950 >> Così ora, la terza e ultima algoritmo è un po 'più difficile da disegnare. 896 00:43:45,950 --> 00:43:49,530 Ma intuitivamente, se ho 1000 pagine con il mio terzo algoritmo, 897 00:43:49,530 --> 00:43:52,340 mi dovrebbe solo prendere come 10 passaggi. 898 00:43:52,340 --> 00:43:57,500 E se ho 2.000 pagine con il mio terzo algoritmo, 899 00:43:57,500 --> 00:44:01,570 che dovrebbe prendere me non 10 passi, ma 11, solo più uno. 900 00:44:01,570 --> 00:44:03,610 Quindi stiamo a malapena andando a vedere questo. 901 00:44:03,610 --> 00:44:06,010 >> E si scopre, se Ho ingrandire questa, io sono 902 00:44:06,010 --> 00:44:09,320 andare a esagerare per effetto, la forma di quella linea, in ultima analisi, 903 00:44:09,320 --> 00:44:11,990 Non è un line-- dritto perché, infatti se fosse, 904 00:44:11,990 --> 00:44:15,390 sarebbe più simile alla others-- in realtà è una linea curva 905 00:44:15,390 --> 00:44:19,265 che, se focalizziamo l'attenzione, sta andando a guardare molto più simile a questo. 906 00:44:19,265 --> 00:44:21,670 It-- bene, OK, ignorare questa parte. 907 00:44:21,670 --> 00:44:25,330 Quella era la mia penna andare dell'angolo. 908 00:44:25,330 --> 00:44:29,000 Si tratta di una linea curva che è sempre in aumento, sempre, sempre, sempre 909 00:44:29,000 --> 00:44:32,100 aumentando, ma solo appena. 910 00:44:32,100 --> 00:44:36,260 >> E così nel corso del tempo, si dispone di una rapporto che è più simile a questo. 911 00:44:36,260 --> 00:44:37,540 Sembra quasi dritto. 912 00:44:37,540 --> 00:44:40,330 Ma è molto lentamente aumentando. 913 00:44:40,330 --> 00:44:44,780 Ma per quasi tutti i punti lungo il asse x, asse orizzontale, 914 00:44:44,780 --> 00:44:46,550 è inferiore a quelle altre linee. 915 00:44:46,550 --> 00:44:49,930 >> Quindi questo potrebbe essere un rapporto n, per cui se si dispone di n pagine, 916 00:44:49,930 --> 00:44:51,100 si n secondi porta. 917 00:44:51,100 --> 00:44:53,320 Questo potrebbe essere un rapporto n / 2. 918 00:44:53,320 --> 00:44:56,710 Hai n pagine, ci vuole si n / 2 secondi, la metà come molti. 919 00:44:56,710 --> 00:45:00,590 E questo è un logaritmica rapporto, che 920 00:45:00,590 --> 00:45:08,920 se vi ricordate, logaritmo in base 2 di n cattura questo tipo di crescita, per così dire. 921 00:45:08,920 --> 00:45:12,000 Quindi questo è il tipo di santa graal tra i tre di questi 922 00:45:12,000 --> 00:45:15,940 qui, perché è solo così molto di più efficiente, ma senza dubbio più complesso 923 00:45:15,940 --> 00:45:18,610 implementare. 924 00:45:18,610 --> 00:45:20,510 Qualsiasi domanda? 925 00:45:20,510 --> 00:45:26,220 >> Ebbene vorrei fare questo, permettetemi mi apro una finestra di testo 926 00:45:26,220 --> 00:45:29,100 solo così possiamo cercare di formalizzare qualcosa qui. 927 00:45:29,100 --> 00:45:32,410 Quindi, mi permetta di andare avanti ora e implementare questo algoritmo 928 00:45:32,410 --> 00:45:35,170 per la ricerca di Mike Smith nel codice, se si vuole, il codice pseudocodice. 929 00:45:35,170 --> 00:45:36,620 Non ho intenzione di usare Java o C ++. 930 00:45:36,620 --> 00:45:38,610 Sto solo andando a utilizzare una sorta di sintassi inglese-like, che noi 931 00:45:38,610 --> 00:45:40,151 sarebbe generalmente chiamare il codice pseudocodice. 932 00:45:40,151 --> 00:45:41,660 Qui, ho una finestra vuota. 933 00:45:41,660 --> 00:45:48,180 E sto dicendo passaggio 1 della molto primo algoritmo è prendere rubrica telefonica. 934 00:45:48,180 --> 00:45:51,740 Fase 2 è aperto il libro alla prima pagina. 935 00:45:51,740 --> 00:45:58,080 Fase 3 sarà guardare Pagina per Mike Smith. 936 00:45:58,080 --> 00:46:02,740 Se a pagina, chiamare Mike. 937 00:46:02,740 --> 00:46:11,640 voltare pagina altro e passare al punto 3. 938 00:46:11,640 --> 00:46:13,590 Fatto, diciamo. 939 00:46:13,590 --> 00:46:18,110 >> E quindi non è del tutto perfetto, che vedremo tra un attimo. 940 00:46:18,110 --> 00:46:21,050 Ma prendiamo in considerazione ciò che concetti ho introdotto qui. 941 00:46:21,050 --> 00:46:24,450 Così i punti 1 e 2 e 3 sono praticamente verbi. 942 00:46:24,450 --> 00:46:26,544 Sono dichiarazioni, actions-- farlo. 943 00:46:26,544 --> 00:46:28,710 E così in una programmazione lingua, ci sarebbe in generale 944 00:46:28,710 --> 00:46:32,349 chiamarli dichiarazioni o funzioni o procedure, 945 00:46:32,349 --> 00:46:33,640 chiamarli qualsiasi numero di cose. 946 00:46:33,640 --> 00:46:35,460 Ma sono solo actions-- fare questo. 947 00:46:35,460 --> 00:46:40,370 >> Fase 4 è fondamentalmente diverso, perché è una specie di fare una domanda. 948 00:46:40,370 --> 00:46:42,400 Si sta dicendo che siamo genere pari ad un bivio. 949 00:46:42,400 --> 00:46:48,000 Se Mike è sulla pagina, chiamare lui, in modo da girare a sinistra, se si vuole. 950 00:46:48,000 --> 00:46:52,170 E se no, tornare a un po ' altro page-- o meglio, mi dispiace, 951 00:46:52,170 --> 00:46:56,650 tornare a qualche altro passo, che induce una sorta di loop costrutto. 952 00:46:56,650 --> 00:46:59,530 E lo facciamo ancora e ancora e ancora. 953 00:46:59,530 --> 00:47:01,300 >> E in realtà, sai una cosa? 954 00:47:01,300 --> 00:47:01,800 Sì. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 altrimenti se alla fine della fermata libro. 957 00:47:09,010 --> 00:47:11,624 Quindi abbiamo bisogno di un terzo tipo condizione, perché si 958 00:47:11,624 --> 00:47:14,290 non può continuare a girare la pagina di annuncio fino alla nausea, perché alla fine, io 959 00:47:14,290 --> 00:47:15,320 colpire la fine del libro. 960 00:47:15,320 --> 00:47:18,546 E un bug in un programma potrebbe essere Non anticipando tale scenario. 961 00:47:18,546 --> 00:47:21,420 E poi ho appena realizzato, oh, attendere un minuto, ho bisogno di un terzo scenario. 962 00:47:21,420 --> 00:47:23,900 Se sono fuori di pagine, io in realtà dovrebbe solo smettere. 963 00:47:23,900 --> 00:47:25,330 Altrimenti, è indefinito. 964 00:47:25,330 --> 00:47:29,260 Cosa succederà se continuo dicendo voltare pagina e tornare indietro, 965 00:47:29,260 --> 00:47:31,810 Questo è quando i computer congelare o crash, quando si preme 966 00:47:31,810 --> 00:47:34,160 qualche situazione imprevista del genere. 967 00:47:34,160 --> 00:47:37,280 >> Ora, che dire di Mike terzo algorithm-- di Smith 968 00:47:37,280 --> 00:47:43,150 prendere l'elenco telefonico, libro aperto per first-- a 969 00:47:43,150 --> 00:47:48,640 no, non prima pagina questa volta, a middle-- oh, beh, che aveva 970 00:47:48,640 --> 00:47:49,640 il secondo algoritmo. 971 00:47:49,640 --> 00:47:50,590 Saltiamo al terzo. 972 00:47:50,590 --> 00:47:50,930 >> PUBBLICO: Oh, mi dispiace. 973 00:47:50,930 --> 00:47:51,971 >> DAVID MALAN: Va bene. 974 00:47:51,971 --> 00:47:58,590 Saltiamo all'aperto third-- a mezzo e ora guarda per Mike Smith. 975 00:47:58,590 --> 00:48:02,300 se a pagina, chiamare Mike. 976 00:48:02,300 --> 00:48:04,910 E allora cosa vogliamo dire qui? 977 00:48:04,910 --> 00:48:06,134 Altrimenti cosa? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Siamo in grado di esprimere questa in qualsiasi numero di modi. 980 00:48:12,370 --> 00:48:13,369 Non esiste una risposta giusta. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, se non nuovo, ma abbiamo bisogno di essere-- OK, noi vogliamo dividere in due, 983 00:48:23,735 --> 00:48:25,630 ma vogliamo andare a sinistra o andare a destra? 984 00:48:25,630 --> 00:48:29,560 Come esprimere questo concetto? 985 00:48:29,560 --> 00:48:31,790 Ebbene, nel caso di Mike, sì, è giusto. 986 00:48:31,790 --> 00:48:35,050 Ma OK, in modo che in realtà è un buon punto. 987 00:48:35,050 --> 00:48:35,550 Va bene. 988 00:48:35,550 --> 00:48:36,924 Vi terremo andando con questa logica. 989 00:48:36,924 --> 00:48:38,182 Così-- 990 00:48:38,182 --> 00:48:39,810 >> PUBBLICO: meno della metà. 991 00:48:39,810 --> 00:48:40,560 DAVID MALAN: Sì. 992 00:48:40,560 --> 00:48:49,820 Quindi, il resto se la pagina è, diremo, meno di Smith, a fianco di Smith, 993 00:48:49,820 --> 00:48:52,220 then-- vediamo, è questo va a complicare? 994 00:48:52,220 --> 00:49:01,885 altrimenti se la pagina viene prima di Smith, lacrima nel mezzo, buttare via cui la metà? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> PUBBLICO: Ho pensato che era [INCOMPRENSIBILE]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID MALAN: Ho sentito entrambe le risposte. 998 00:49:11,650 --> 00:49:12,431 >> PUBBLICO: a sinistra. 999 00:49:12,431 --> 00:49:14,430 DAVID MALAN: OK, buttare via lasciato a metà, come Lakisa 1000 00:49:14,430 --> 00:49:19,700 detto in precedenza, la partita la metà, poi ho sorta di 1001 00:49:19,700 --> 00:49:23,940 vuole andare solo a-- vado a destra. 1002 00:49:23,940 --> 00:49:27,380 O equivalentemente, e ho fatto un po ' po 'di confusione di inizio qui, 1003 00:49:27,380 --> 00:49:30,760 Io voglio efficace passare al punto 2 di nuovo, 1004 00:49:30,760 --> 00:49:38,270 dove aperta al middle-- o open-- Sì, diciamo solo, le pagine a metà. 1005 00:49:38,270 --> 00:49:39,020 E questo lo ripara. 1006 00:49:39,020 --> 00:49:39,936 Non è più di un libro. 1007 00:49:39,936 --> 00:49:42,210 E 'solo la metà di un libro, pagine in modo aperto a metà. 1008 00:49:42,210 --> 00:49:44,010 >> else-- erano quasi arrivati. 1009 00:49:44,010 --> 00:49:54,000 Fase 6, altrimenti se la pagina viene dopo Smith, strappare a metà, buttare via metà destra, 1010 00:49:54,000 --> 00:49:55,680 quindi passare al punto 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 altro smettere, quarto scenario, se non abbiamo pagine ancora da girare. 1013 00:50:05,230 --> 00:50:06,394 Così abbiamo potuto pulire questo. 1014 00:50:06,394 --> 00:50:07,560 E dovremmo pulire questo. 1015 00:50:07,560 --> 00:50:10,656 Questo è un codice molto pseudocodice, se si sarà, descrizione di altissimo livello. 1016 00:50:10,656 --> 00:50:12,280 Ma lo fa in genere catturare l'idea. 1017 00:50:12,280 --> 00:50:16,040 >> E, ancora, in questo scenario, abbiamo avere la nozione di una condizione, 1018 00:50:16,040 --> 00:50:20,450 un ramo, un bivio, facendo un decision-- se questo, andare in questo modo, 1019 00:50:20,450 --> 00:50:23,082 else if, andare in questo modo, else if, andare in quel modo. 1020 00:50:23,082 --> 00:50:25,040 E questo è molto comune tecnica di programmazione 1021 00:50:25,040 --> 00:50:27,721 decidere quale direzione di andare, per così dire. 1022 00:50:27,721 --> 00:50:29,970 E abbiamo anche qualche tipo di looping struttura, dove 1023 00:50:29,970 --> 00:50:32,440 stiamo facendo qualcosa di nuovo e di nuovo. 1024 00:50:32,440 --> 00:50:34,820 >> Ora, si scopre, tanto come in questo esempio, 1025 00:50:34,820 --> 00:50:37,660 essere super preciso è importante. 1026 00:50:37,660 --> 00:50:42,180 Ma abbiamo anche visto qualcosa che continuiamo a chiamare astrazione. 1027 00:50:42,180 --> 00:50:45,490 Che cosa significa per raccogliere rubrica? 1028 00:50:45,490 --> 00:50:47,740 Siamo solo tipo di presa per scontato in questa stanza 1029 00:50:47,740 --> 00:50:49,340 che che ha qualche significato semantico. 1030 00:50:49,340 --> 00:50:51,740 Tutti noi solo tipo di sapere, oh, bene, prendere l'elenco telefonico. 1031 00:50:51,740 --> 00:50:52,864 Cosa significa in realtà? 1032 00:50:52,864 --> 00:50:59,060 Bene, questo significa in realtà si estendono mano, chinarsi, estendere le dita, 1033 00:50:59,060 --> 00:51:03,890 pinch libro tra le dita, stare in piedi, tirare la mano verso di voi. 1034 00:51:03,890 --> 00:51:05,940 E potremmo essere davvero pedanti su questo, 1035 00:51:05,940 --> 00:51:08,640 davvero essere super preciso da quello che sto facendo. 1036 00:51:08,640 --> 00:51:13,300 Ma tutti questi passaggi sono collettivamente cosa vuol dire prendere una rubrica telefonica. 1037 00:51:13,300 --> 00:51:16,940 >> E così prima, quando ho detto, ogni di queste prime due istruzioni 1038 00:51:16,940 --> 00:51:20,830 può essere pensato come procedere o una funzione, 1039 00:51:20,830 --> 00:51:24,090 in realtà essa rappresenta ciò che mantenere chiamando un'astrazione. 1040 00:51:24,090 --> 00:51:28,770 E 'come un alto livello concettuale Descrizione di un problema che 1041 00:51:28,770 --> 00:51:31,110 in realtà comporta un bel paio di passi. 1042 00:51:31,110 --> 00:51:34,190 E così anche questo è un argomento ricorrente in programmazione, 1043 00:51:34,190 --> 00:51:41,125 per cui potrei scrivere un programma utilizzando la sintassi come questo-- 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 E poi sintatticamente, io sono andando a rubare qualcosa 1047 00:51:46,510 --> 00:51:48,090 dalla maggior parte dei linguaggi di programmazione. 1048 00:51:48,090 --> 00:51:51,270 >> Ora, il punto 1 sembra ancora più simile a una funzione, 1049 00:51:51,270 --> 00:51:53,160 come programmatore sarebbe chiamarla. 1050 00:51:53,160 --> 00:51:58,650 Sembra che il codice che qualcuno ha dato un nome a data e 1051 00:51:58,650 --> 00:52:03,300 a me da utilizzare in altri somehow-- parole, ciò che la linea che ho messo in evidenza 1052 00:52:03,300 --> 00:52:07,050 rappresenta la funzionalità che forse Non ho nemmeno implementare me stesso. 1053 00:52:07,050 --> 00:52:10,410 Qualcuno più vecchio, più saggio di me già capito 1054 00:52:10,410 --> 00:52:12,700 come si esprime il concetto di prendere in mano una rubrica telefonica. 1055 00:52:12,700 --> 00:52:15,860 Ed è come se i cinque passi che ho appena snocciolato, la parte superiore della mia testa. 1056 00:52:15,860 --> 00:52:19,350 >> Ma lui o lei già implementato questo, dato quelle diversi passaggi 1057 00:52:19,350 --> 00:52:22,339 un nome, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 E le parentesi è proprio quello che la maggior parte dei programmatori 1059 00:52:24,380 --> 00:52:27,100 fare alla fine di dichiarazioni di questo tipo. 1060 00:52:27,100 --> 00:52:30,190 Ora posso stare in piedi sul suo spalle e mai più, 1061 00:52:30,190 --> 00:52:32,465 pensare a che cosa significa a prendere una rubrica telefonica. 1062 00:52:32,465 --> 00:52:34,090 Posso solo dire, prendere l'elenco telefonico. 1063 00:52:34,090 --> 00:52:36,690 E questo è esattamente ciò che tutti noi esseri umani hanno fatto qui. 1064 00:52:36,690 --> 00:52:38,940 >> Quando eravamo probabilmente 1 anni, 2 anni di età, 1065 00:52:38,940 --> 00:52:41,690 qualcuno doveva insegnarci che cosa lo scopo di prendere una rubrica telefonica. 1066 00:52:41,690 --> 00:52:43,810 E da allora, abbiamo Sottratto via 1067 00:52:43,810 --> 00:52:46,739 da quelli molto interessante passaggi meccanici. 1068 00:52:46,739 --> 00:52:48,530 E non ci resta che un comprensione intuitiva 1069 00:52:48,530 --> 00:52:50,480 di ciò che significa prendere una rubrica telefonica. 1070 00:52:50,480 --> 00:52:55,730 >> E si può estrapolare ora a things-- più complicato 1071 00:52:55,730 --> 00:52:57,640 costruire un edificio. 1072 00:52:57,640 --> 00:52:59,940 Come, per alcune persone, che ha effettivamente senso. 1073 00:52:59,940 --> 00:53:03,080 Per imprenditori, agli architetti, che ha un senso. 1074 00:53:03,080 --> 00:53:06,400 E avrebbero saputo cosa fare, se Ho detto, vado costruire un edificio. 1075 00:53:06,400 --> 00:53:10,520 >> Ma la maggior parte di noi in camera non poteva che fare con quel livello di astrazione. 1076 00:53:10,520 --> 00:53:14,850 È necessario dire a noi piace andare a prendere la pala e andare a prendere il calcestruzzo 1077 00:53:14,850 --> 00:53:17,250 e inchiodare i pezzi di legno insieme e quant'altro 1078 00:53:17,250 --> 00:53:18,830 è coinvolto nella costruzione di un edificio. 1079 00:53:18,830 --> 00:53:21,690 E questo perché non abbiamo ancora stato programmato per capire 1080 00:53:21,690 --> 00:53:23,629 cosa significa costruire un edificio. 1081 00:53:23,629 --> 00:53:24,920 Non abbiamo che l'astrazione. 1082 00:53:24,920 --> 00:53:26,570 Non abbiamo tale funzionalità. 1083 00:53:26,570 --> 00:53:29,930 >> E così quello che vedrete in linguaggi di programmazione, in generale, 1084 00:53:29,930 --> 00:53:34,570 lingue soprattutto più moderne, come Java, PHP, Ruby e Python, 1085 00:53:34,570 --> 00:53:37,610 sono molto più maturo di lingue più anziani, 1086 00:53:37,610 --> 00:53:40,140 come C e C ++ e altri ancora. 1087 00:53:40,140 --> 00:53:42,580 E così arrivano con più funzionalità incorporata. 1088 00:53:42,580 --> 00:53:45,640 Più il codice è stato scritto da persone in passato 1089 00:53:45,640 --> 00:53:50,520 che ora possiamo chiamare o evocare o utilizzare, come sto accennando 1090 00:53:50,520 --> 00:53:52,231 a questo ha evidenziato la linea qui. 1091 00:53:52,231 --> 00:53:55,230 E così, anche se non stiamo parlando di linguaggi di programmazione per sé, 1092 00:53:55,230 --> 00:54:00,230 codice appena pseudocodice, tutte le le idee sono ancora in quella discussione. 1093 00:54:00,230 --> 00:54:04,600 E si scopre precisione è super importante, come è l'astrazione. 1094 00:54:04,600 --> 00:54:06,570 E proviamo a comunicare che, come segue. 1095 00:54:06,570 --> 00:54:11,000 >> Per sbaglio ho potuto viziati facendo lampeggiare una presentazione sullo schermo 1096 00:54:11,000 --> 00:54:12,260 prematuramente. 1097 00:54:12,260 --> 00:54:16,550 Ma permettetemi di chiedere un volontario coraggioso, se non ti dispiace in arrivo. 1098 00:54:16,550 --> 00:54:19,040 Sareste di fronte alla macchina fotografica, se siete d'accordo con questo. 1099 00:54:19,040 --> 00:54:24,950 Qualcuno vuole venire e dare istruzioni ai suoi colleghi qui? 1100 00:54:24,950 --> 00:54:29,540 Basta venire qui e stare qui e dire alcune parole. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria sorride più ed evitando gli occhi più. 1102 00:54:32,890 --> 00:54:34,740 Sareste disposti a venire in su? 1103 00:54:34,740 --> 00:54:35,240 OK. 1104 00:54:35,240 --> 00:54:38,480 E se tutti gli altri a portata di posti potrebbe prendere un pezzo di carta straccia, 1105 00:54:38,480 --> 00:54:39,750 se vorrai. 1106 00:54:39,750 --> 00:54:40,760 carta a righe va bene. 1107 00:54:40,760 --> 00:54:41,990 Venite intorno a questo modo. 1108 00:54:41,990 --> 00:54:44,580 Oppure parte della carta che è stata data ieri, 1109 00:54:44,580 --> 00:54:46,493 un qualsiasi foglio bianco di carta, se potessi. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 E se non si dispone di alcuna, semplicemente chiedere al vostro vicino di casa se fosse possibile. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Quindi per il momento, per questo esempio, Victoria 1114 00:55:07,580 --> 00:55:11,520 sta per svolgere il ruolo di un programmatore, un ingegnere, che 1115 00:55:11,520 --> 00:55:16,130 ha bisogno di programmare tutti voi, come i computer, di fare qualcosa. 1116 00:55:16,130 --> 00:55:19,570 E vedremo cosa ipotesi si decide di fare. 1117 00:55:19,570 --> 00:55:22,700 Vedremo come precisa lei sceglie di essere. 1118 00:55:22,700 --> 00:55:26,220 E se questa dimostrazione va pedagogicamente bene, un sacco di errori 1119 00:55:26,220 --> 00:55:29,220 saranno effettuati, che saremo poi utilizziamo che come opportunità di discussione. 1120 00:55:29,220 --> 00:55:32,010 Ma la sfida per voi dovrebbe essere quello di evitare questi errori, 1121 00:55:32,010 --> 00:55:32,896 essere un buon programmatore. 1122 00:55:32,896 --> 00:55:35,520 E quindi la sfida a portata di mano, se che ci è piaciuto di camminare qui, 1123 00:55:35,520 --> 00:55:38,799 è davanti Victoria sullo schermo qui-- e, si spera, nessuno di voi 1124 00:55:38,799 --> 00:55:40,590 ricordare questo quando ho lampeggiava sullo schermo. 1125 00:55:40,590 --> 00:55:44,097 E non girare intorno a tutti, perché c'è un altro schermo in questa stanza 1126 00:55:44,097 --> 00:55:44,930 che posso spegnere. 1127 00:55:44,930 --> 00:55:46,620 Quindi non girarsi. 1128 00:55:46,620 --> 00:55:49,090 >> Davanti Victoria è lo stesso grido. 1129 00:55:49,090 --> 00:55:54,170 E il suo lavoro ora è quello di dire a tutti voi sul pezzo di carta che cosa disegnare. 1130 00:55:54,170 --> 00:55:57,020 E vedremo, sulla base di istruzioni verbali da solo, 1131 00:55:57,020 --> 00:56:00,020 codice di computer, se si vuole, come precisa i disegni 1132 00:56:00,020 --> 00:56:02,330 are-- tue implementazioni sono. 1133 00:56:02,330 --> 00:56:02,980 Ha senso? 1134 00:56:02,980 --> 00:56:03,604 >> PUBBLICO: Sì. 1135 00:56:03,604 --> 00:56:04,980 DAVID MALAN: OK, eseguire. 1136 00:56:04,980 --> 00:56:06,030 >> PUBBLICO: Disegnare un quadrato. 1137 00:56:06,030 --> 00:56:09,050 >> [RISATA] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID MALAN: E no le domande possono essere chiesto. 1139 00:56:12,310 --> 00:56:13,720 Può fare solo quello che ti dicono. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Oh, e se si dispone di diapositive di oggi apre in una scheda, non guardare la vostra scheda. 1142 00:56:22,550 --> 00:56:23,670 ok? 1143 00:56:23,670 --> 00:56:26,135 >> PUBBLICO: OK, disegnare un cerchio. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 Un slope-- posso dire pendenza? 1146 00:56:34,872 --> 00:56:35,830 DAVID MALAN: fino a voi. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 PUBBLICO: Un pendio. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 E un triangolo. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID MALAN: Va bene. 1152 00:56:50,850 --> 00:56:52,286 E stare qui solo per un momento. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 E ho intenzione di venire intorno in un attimo. 1155 00:56:58,910 --> 00:57:02,420 E non c'è bisogno di mettere i nomi su di esso. 1156 00:57:02,420 --> 00:57:05,030 Mi permetta di venire intorno e raccogliere i vostri disegni, 1157 00:57:05,030 --> 00:57:08,330 se non ti dispiace strappandoli fuori. 1158 00:57:08,330 --> 00:57:12,110 >> Ecco cosa siamo tornati. 1159 00:57:12,110 --> 00:57:14,770 Io proietto sullo schermo. 1160 00:57:14,770 --> 00:57:18,310 Vedo un quadrato, un cerchio, pendio, e un triangolo. 1161 00:57:18,310 --> 00:57:20,130 Così che era una risposta c'è. 1162 00:57:20,130 --> 00:57:23,640 E let's-- urla. 1163 00:57:23,640 --> 00:57:25,370 Grazie. 1164 00:57:25,370 --> 00:57:30,710 Ecco un altro assortimento, e uno dietro. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Quindi, tutti sembrano catturare lo spirito. 1167 00:57:37,120 --> 00:57:38,600 Grazie. 1168 00:57:38,600 --> 00:57:44,970 C'è un altro, ed ecco un altro. 1169 00:57:44,970 --> 00:57:51,590 L'interpretazione pendenza è un po 'diverso, poco curve. 1170 00:57:51,590 --> 00:57:57,140 E la più vicina, sia per la meraviglioso specificità con cui hai 1171 00:57:57,140 --> 00:58:03,520 descritto, o forse si tipo di visto prima, questo è effettivamente 1172 00:58:03,520 --> 00:58:06,340 ciò che è stato effettivamente Victoria descrivendo. 1173 00:58:06,340 --> 00:58:09,190 >> Ma ora, chi di voi non ha ottenuto abbastanza giusto, 1174 00:58:09,190 --> 00:58:11,140 cerchiamo di offrire alcune obiezioni qui. 1175 00:58:11,140 --> 00:58:13,770 Così Victoria prima detto disegnare un quadrato. 1176 00:58:13,770 --> 00:58:15,830 E ora, si può supporre per il bene di oggi 1177 00:58:15,830 --> 00:58:17,538 che tutti sanno come disegnare un quadrato. 1178 00:58:17,538 --> 00:58:20,590 Ma non è del tutto chiaro, no? 1179 00:58:20,590 --> 00:58:23,220 In quale altro modo si potrebbe avere disegnato una piazza, o dove 1180 00:58:23,220 --> 00:58:27,114 potrebbe essere alcune delle ambiguità qui per il computer? 1181 00:58:27,114 --> 00:58:28,280 AUDIENCE: Localizzazione e dimensione. 1182 00:58:28,280 --> 00:58:28,980 DAVID MALAN: Location, giusto? 1183 00:58:28,980 --> 00:58:32,070 Tutti voi aveva una carta di qualche forma, generalmente rettangoli, ma un po ' 1184 00:58:32,070 --> 00:58:32,830 misure differenti. 1185 00:58:32,830 --> 00:58:36,250 Ma certamente potrebbe avere disegnato, se si voleva, una piazza enorme, forse 1186 00:58:36,250 --> 00:58:37,220 una piccola piazza. 1187 00:58:37,220 --> 00:58:38,417 Forse, è stato ruotato. 1188 00:58:38,417 --> 00:58:39,500 Non credo abbiamo visto che. 1189 00:58:39,500 --> 00:58:41,790 Ma avrebbe potuto essere più di diamanti come ma ancora, comunque, 1190 00:58:41,790 --> 00:58:42,900 Matematicamente un quadrato. 1191 00:58:42,900 --> 00:58:44,850 Così che era probabilmente ambiguo. 1192 00:58:44,850 --> 00:58:46,709 >> Poi disse, disegnare un cerchio. 1193 00:58:46,709 --> 00:58:49,250 Alcuni di voi ha tratto accanto a , il che non è irragionevole, 1194 00:58:49,250 --> 00:58:52,450 perché gli esseri umani tendono a pensare o leggere destra a sinistra nella maggior parte delle lingue, quindi non 1195 00:58:52,450 --> 00:58:53,017 una cattiva congettura. 1196 00:58:53,017 --> 00:58:55,100 Ma quel cerchio potrebbe avere stato dentro la piazza, 1197 00:58:55,100 --> 00:58:57,600 avrebbe potuto essere tutto il piazza, avrebbe potuto essere altrove 1198 00:58:57,600 --> 00:58:59,480 sul foglio, così probabilmente ambigua. 1199 00:58:59,480 --> 00:59:03,290 >> Slope avrebbe potuto essere forse prendendo il maggior libertà verbalmente 1200 00:59:03,290 --> 00:59:04,200 con che cosa significa. 1201 00:59:04,200 --> 00:59:06,980 E alcuni di voi interpretato come una linea ondulata 1202 00:59:06,980 --> 00:59:08,560 o una linea retta o simili. 1203 00:59:08,560 --> 00:59:11,719 E poi triangolo, troppo, potrebbe avere stato orientato in qualsiasi numero di modi. 1204 00:59:11,719 --> 00:59:14,760 Così, in breve, anche con qualcosa che si sguardo e siete come, wow, così 1205 00:59:14,760 --> 00:59:17,020 semplice, un bambino potrebbe disegnare questo, anche non 1206 00:59:17,020 --> 00:59:19,640 in realtà, a meno che non sei super, super persuasiva 1207 00:59:19,640 --> 00:59:22,045 e dire al computer esattamente cosa fare. 1208 00:59:22,045 --> 00:59:24,420 Quindi, se potessimo, se avete un altro foglio di carta, andiamo 1209 00:59:24,420 --> 00:59:26,710 provare questo ancora una volta. 1210 00:59:26,710 --> 00:59:29,880 E ho intenzione di dare una Victoria altro esempio sullo schermo qui. 1211 00:59:29,880 --> 00:59:34,060 E ancora, non girare intorno e non guardare le diapositive. 1212 00:59:34,060 --> 00:59:37,304 E darò lei un momento di pensare a come descrivere questo. 1213 00:59:37,304 --> 00:59:39,012 Non lasciare che vedono la paura nei tuoi occhi. 1214 00:59:39,012 --> 00:59:40,820 >> [RISATA] 1215 00:59:40,820 --> 00:59:43,710 >> E di nuovo, questa volta leva alcune di queste take away 1216 00:59:43,710 --> 00:59:48,130 e cercare di ottenere quasi tutti almeno la risposta giusta. 1217 00:59:48,130 --> 00:59:52,260 >> PUBBLICO: OK, prendere un pezzo di carta, guardare 1218 00:59:52,260 --> 00:59:54,500 nel mezzo di quel pezzo di carta. 1219 00:59:54,500 --> 00:59:59,591 Nel mezzo di quel pezzo di carta, disegnare un cubo. 1220 00:59:59,591 --> 01:00:01,244 >> [RISATA] 1221 01:00:01,244 --> 01:00:02,660 DAVID MALAN: Che cosa abbiamo imparato? 1222 01:00:02,660 --> 01:00:03,540 Eravamo così vicini. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, ripetere se si potesse, per tutti. 1225 01:00:09,045 --> 01:00:13,210 >> AUDIENCE: Nel mezzo del pezzo di carta, disegnare un oggetto, 1226 01:00:13,210 --> 01:00:14,842 che si presenta come un cubo. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID MALAN: OK, questo è tutto si arriva a lavorare. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Permettetemi di essere analitico e non tanto critica, 1230 01:00:23,080 --> 01:00:25,720 ma per rendere la rivendicazione che Victoria sicuramente 1231 01:00:25,720 --> 01:00:28,967 sembra pensare a molto astrazioni di alto livello, che 1232 01:00:28,967 --> 01:00:29,800 non è irragionevole. 1233 01:00:29,800 --> 01:00:32,160 Perché altrimenti, saremmo tutti essere abbastanza disfunzionale, 1234 01:00:32,160 --> 01:00:35,740 se dovessimo essere sempre così precisi con tutto ciò che facciamo nel mondo. 1235 01:00:35,740 --> 01:00:38,890 >> Ma dire andare al I middle-- Pensavo che fossimo su una buona pista così 1236 01:00:38,890 --> 01:00:42,340 lì, come andare al bel mezzo della pagina, e quindi disegnare un cubo. 1237 01:00:42,340 --> 01:00:45,730 Quindi lei sta pensando a astrazioni, perché lei è ancora la visualizzazione 1238 01:00:45,730 --> 01:00:48,490 ciò che è sullo schermo come in effetti un cubo. 1239 01:00:48,490 --> 01:00:51,185 Ma ci sono così tante opportunità per l'interpretazione lì. 1240 01:00:51,185 --> 01:00:53,560 E infatti, ci sono così tanti altri modi si potrebbe esprimere 1241 01:00:53,560 --> 01:00:55,101 questo, che mi propongo in un attimo. 1242 01:00:55,101 --> 01:00:59,770 Quindi qui abbiamo una incarnazione di colui whoops-- un'Immagine-- 1243 01:00:59,770 --> 01:01:02,830 incarnazione del quadro, quindi un poco tridimensionalità ad esso, 1244 01:01:02,830 --> 01:01:04,160 che è bello. 1245 01:01:04,160 --> 01:01:08,470 >> Qui è un altro, dove si ha la stesso, anche se è una specie di un cubo aperto. 1246 01:01:08,470 --> 01:01:12,020 Alcune persone hanno preso un po ' più piatta, bidimensionale. 1247 01:01:12,020 --> 01:01:13,910 E va bene. 1248 01:01:13,910 --> 01:01:17,380 Quindi c'è, infatti nel centro del foglio. 1249 01:01:17,380 --> 01:01:22,720 Questo penso che sarete come, perché se andiamo qui, 1250 01:01:22,720 --> 01:01:25,130 questo è quello che stava descrivendo. 1251 01:01:25,130 --> 01:01:29,570 Così ora, mi permetta di proporre in quale altro modo potremmo descrivere questa situazione. 1252 01:01:29,570 --> 01:01:34,070 >> Indietro nel giorno, uno dei più modi più comuni per imparare a programmare 1253 01:01:34,070 --> 01:01:38,900 è stato quello di scrivere codice, scrive linee di istruzioni, 1254 01:01:38,900 --> 01:01:42,640 che controllavano un po ' tartaruga sullo schermo. 1255 01:01:42,640 --> 01:01:45,660 Logo e altre varianti di questo era il nome della lingua. 1256 01:01:45,660 --> 01:01:47,550 E la tartaruga viveva in un mondo. 1257 01:01:47,550 --> 01:01:49,970 >> Quindi supponiamo che questo rettangolare lo spazio è il suo mondo. 1258 01:01:49,970 --> 01:01:53,340 E si dovrebbe iniziare assuming-- I Non so davvero come disegnare tartaruga, 1259 01:01:53,340 --> 01:01:54,740 quindi cerchiamo di fare in questo modo. 1260 01:01:54,740 --> 01:01:57,340 E poi lui ha una conchiglia e poi magari alcuni piedi. 1261 01:01:57,340 --> 01:01:59,840 Così si potrebbe avere questo piccolo personaggio sullo schermo. 1262 01:01:59,840 --> 01:02:02,270 >> E l'oggetto di questa linguaggio di programmazione 1263 01:02:02,270 --> 01:02:06,070 era quello di costringere la tartaruga andare su, giù, sinistra, destra 1264 01:02:06,070 --> 01:02:08,420 e di mettere la sua penna o ritirare la sua penna su, 1265 01:02:08,420 --> 01:02:12,720 in modo da poter effettivamente disegnare sullo schermo in questo mondo rettangolare molto piatta. 1266 01:02:12,720 --> 01:02:16,850 Allora, dove ho pensato che si potrebbe andare, e dove si dovrebbe prendere in considerazione le immersioni 1267 01:02:16,850 --> 01:02:19,520 fino a quando si descrive mentalmente istruzioni più in generale, 1268 01:02:19,520 --> 01:02:21,720 Vorrei affermare, è mettere la vostra penna nel middle-- 1269 01:02:21,720 --> 01:02:23,100 e ci arriveremo eliminare il tartaruga, perché non posso davvero 1270 01:02:23,100 --> 01:02:24,680 tenerlo disegno molto bene. 1271 01:02:24,680 --> 01:02:27,170 >> E ora, in quale altro modo poteva Dico disegnare un cubo? 1272 01:02:27,170 --> 01:02:32,830 Beh, si potrebbe dire qualcosa di simile pareggio una linea diagonale est, per esempio, 1273 01:02:32,830 --> 01:02:35,182 o con un angolo di 45 gradi verso l'alto. 1274 01:02:35,182 --> 01:02:36,640 E che potrebbe mi hanno ottenuto qui. 1275 01:02:36,640 --> 01:02:38,380 E sono abbastanza lontano da un cubo. 1276 01:02:38,380 --> 01:02:42,430 Ma ora, potrei dire qualcosa come girare di 90 gradi a sinistra 1277 01:02:42,430 --> 01:02:47,370 e tracciare una linea di uguale lunghezza nord-ovest. 1278 01:02:47,370 --> 01:02:49,470 E potrei continuare con le indicazioni simili. 1279 01:02:49,470 --> 01:02:50,720 E non sarà facile. 1280 01:02:50,720 --> 01:02:53,345 E, francamente, abbiamo probabilmente sarebbe sono qui da cinque minuti. 1281 01:02:53,345 --> 01:02:59,600 Ma forse avremmo avuto la possibilità di qualcosa che, alla fine della giornata, 1282 01:02:59,600 --> 01:03:04,280 finisce per essere un cubo, ma noi tuffato all'interno di quella astrazione 1283 01:03:04,280 --> 01:03:06,370 di farlo in un momento così bassa livello che non si può davvero 1284 01:03:06,370 --> 01:03:09,795 vedere che cosa si sta facendo fino a quando l'intero cosa è in realtà lì sulla pagina. 1285 01:03:09,795 --> 01:03:12,670 E così questo è un principio generale, ancora una volta, di programming-- questa idea 1286 01:03:12,670 --> 01:03:13,320 di astrazione. 1287 01:03:13,320 --> 01:03:15,920 E 'così meravigliosamente potente, perché ancora una volta, 1288 01:03:15,920 --> 01:03:19,281 ha appena detto, disegnare un cubo, che tutti ci sarebbe praticamente Grok molto rapidamente. 1289 01:03:19,281 --> 01:03:21,030 Vorremmo solo capire, OK, disegnare un cubo. 1290 01:03:21,030 --> 01:03:24,030 Potremmo non conoscere l'orientamento, così abbiamo potuto essere un po 'più preciso, 1291 01:03:24,030 --> 01:03:26,297 ma possiamo immaginare in generale o sanno cosa sia un cubo è. 1292 01:03:26,297 --> 01:03:28,130 E questo è utile, perché se ogni volta che si 1293 01:03:28,130 --> 01:03:31,540 sedette come programmatore presso la tastiera per scrivere il codice, 1294 01:03:31,540 --> 01:03:33,912 se si doveva pensare a tale un basso livello, nessuno di noi 1295 01:03:33,912 --> 01:03:35,120 avrebbe mai fare niente. 1296 01:03:35,120 --> 01:03:38,259 E certamente, nessuno di noi godere il processo di scrittura del codice. 1297 01:03:38,259 --> 01:03:41,550 Sarebbe come scrivere in 0 e 1 di, che francamente non era molto tempo fa 1298 01:03:41,550 --> 01:03:43,680 gli esseri umani stavano scrivendo codice 0 e 1.. 1299 01:03:43,680 --> 01:03:46,960 E siamo arrivati ​​molto rapidamente con questi languages-- livello superiore 1300 01:03:46,960 --> 01:03:49,410 C ++ e Java e altri. 1301 01:03:49,410 --> 01:03:52,500 >> Quindi proviamo questo ancora una volta solo per capovolgere i tavoli, in modo che tutti noi 1302 01:03:52,500 --> 01:03:55,450 avere la possibilità di pensare in piuttosto stesso modo. 1303 01:03:55,450 --> 01:03:59,230 Possiamo avere un altro volontario questo tempo a venire fino al bordo e disegnare, 1304 01:03:59,230 --> 01:04:01,480 Non recitare? 1305 01:04:01,480 --> 01:04:02,070 Sì, ok. 1306 01:04:02,070 --> 01:04:04,820 Ben, vieni su. 1307 01:04:04,820 --> 01:04:08,510 E, Ben, in questo caso, una volta che affrontare il consiglio, non guardare a sinistra, 1308 01:04:08,510 --> 01:04:09,370 non guardare a destra. 1309 01:04:09,370 --> 01:04:12,367 Solo fare ciò che la vostra colleghi qui ti dicono. 1310 01:04:12,367 --> 01:04:14,950 E per tutti gli altri nel stanza, ora sei il programmatore. 1311 01:04:14,950 --> 01:04:16,020 E 'il computer. 1312 01:04:16,020 --> 01:04:21,395 E l'immagine che ho scelto qui in anticipo è questo qui. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Stanno solo-- stanno pensando di una battuta divertente è tutto. 1315 01:04:27,660 --> 01:04:31,510 >> Così si fa qualcuno vuole volontariato la prima istruzione 1316 01:04:31,510 --> 01:04:35,470 o dichiarazione che dovrebbe La penna di comando di Ben? 1317 01:04:35,470 --> 01:04:40,850 E lo faremo insieme, forse un'istruzione da ogni persona. 1318 01:04:40,850 --> 01:04:41,440 Mi dispiace? 1319 01:04:41,440 --> 01:04:42,440 >> PUBBLICO: Disegnare un cerchio. 1320 01:04:42,440 --> 01:04:45,866 DAVID MALAN: Disegnare un cerchio è la prima cosa che ho sentito. 1321 01:04:45,866 --> 01:04:47,100 >> PUBBLICO: Sulla parte superiore. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID MALAN: Sulla parte superiore. 1323 01:04:48,140 --> 01:04:52,504 OK, siamo in grado di farvi eliminare, annullare. 1324 01:04:52,504 --> 01:04:53,420 E ora, qualcun altro. 1325 01:04:53,420 --> 01:04:55,994 Dan, vuoi essere comodi offrendo l'istruzione successiva? 1326 01:04:55,994 --> 01:05:02,070 >> PUBBLICO: Certo, disegnare il centro del fondo del cerchio, 1327 01:05:02,070 --> 01:05:07,121 con un small-- un po ' piccolo spazio da quella, 1328 01:05:07,121 --> 01:05:15,420 tracciare una linea retta fino a tre quarti della strada verso il basso la scheda 1329 01:05:15,420 --> 01:05:17,845 una leggera angolazione a sinistra. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID MALAN: Good. 1332 01:05:22,620 --> 01:05:24,086 >> PUBBLICO: Angolo Leggera. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID MALAN: Undo, Control-Z. OK. 1334 01:05:32,807 --> 01:05:34,890 Andrew, si vuole offrire la prossima istruzione? 1335 01:05:34,890 --> 01:05:35,515 >> PUBBLICO: Certo. 1336 01:05:35,515 --> 01:05:43,250 Dal fondo di quella linea, un ulteriore lieve angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- forse circa un terzo della lunghezza [INAUDIBLE], 1338 01:05:49,024 --> 01:05:52,928 leggera angolazione verso il basso e come un terzo della lunghezza di [INCOMPRENSIBILE]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Quindi sì, da quel punto, disegnare una linea un terzo 1341 01:06:00,578 --> 01:06:04,150 della lunghezza del precedente linea più a sinistra. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID MALAN: Che OK? 1344 01:06:10,040 --> 01:06:12,330 Retta, va bene? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, vuoi per offrire la prossima? 1346 01:06:14,900 --> 01:06:28,564 >> PUBBLICO: [INCOMPRENSIBILE] dal inferiore del cerchio, [INCOMPRENSIBILE]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Disegnare sul lato destro della strada di [incomprensibile] centimetri. 1349 01:06:45,126 --> 01:06:46,560 >> [RISATA] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID MALAN: Penso che si sta andando a necessario convertire questo è pollici qui. 1351 01:06:49,872 --> 01:06:50,764 >> PUBBLICO: Stop. 1352 01:06:50,764 --> 01:06:52,186 >> [RISATA] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID MALAN: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Vuoi per offrire la prossima? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> PUBBLICO: Disegnare un [INAUDIBLE] la parte superiore del [INCOMPRENSIBILE] lo stesso. 1357 01:07:15,443 --> 01:07:28,829 [INAUDIBLE] cerchio, disegnare al [INAUDIBLE] e disegnare [INCOMPRENSIBILE]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID MALAN: OK, non più disfare. 1360 01:07:36,730 --> 01:07:38,390 Facciamo uno o due più istruzioni. 1361 01:07:38,390 --> 01:07:40,825 Chris, si vuole offrire uno? 1362 01:07:40,825 --> 01:07:46,182 >> AUDIENCE: In fondo del circolo, [INCOMPRENSIBILE] 1363 01:07:46,182 --> 01:07:51,528 tracciare una linea slopping pari verso il basso a sinistra [INCOMPRENSIBILE]. 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 Andrea? 1367 01:08:01,170 --> 01:08:02,472 Abbiamo did-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> PUBBLICO: A partire dalla linea di destra, alla fine della linea di sinistra, il fondo, 1370 01:08:13,765 --> 01:08:21,012 si sta andando ad andare a destra su la stessa lunghezza di quella linea 1371 01:08:21,012 --> 01:08:27,680 sei su, disegno a il diritto [INCOMPRENSIBILE]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [INAUDIBLE] gradi, in modo da [INCOMPRENSIBILE] gradi sul lato destro. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID MALAN: Va bene. 1376 01:08:43,500 --> 01:08:44,029 Soffermiamoci. 1377 01:08:44,029 --> 01:08:44,950 Non girare ancora intorno. 1378 01:08:44,950 --> 01:08:46,783 Soffermiamoci, e andiamo provare un altro tentativo 1379 01:08:46,783 --> 01:08:48,850 prima di rivelare a Ben quello che ha il disegno. 1380 01:08:48,850 --> 01:08:51,189 Si può mescolare Ben a la destra- sopra o addirittura, 1381 01:08:51,189 --> 01:08:54,080 No, diciamo solo darvi un'altra scheda, ancora meglio. 1382 01:08:54,080 --> 01:08:57,640 Così sarebbe qualcuno ora vuole prendere più dell'approccio 1383 01:08:57,640 --> 01:09:02,149 che Victoria ha preso in precedenza, in cui parliamo in un livello superiore di astrazione 1384 01:09:02,149 --> 01:09:05,149 e in un periodo o due descrivono a Ben 1385 01:09:05,149 --> 01:09:07,229 cosa disegnare senza entrare le erbacce, 1386 01:09:07,229 --> 01:09:10,670 per così dire, a questo livello inferiore? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [RISATA] 1389 01:09:11,706 --> 01:09:14,249 PUBBLICO: Disegna una figura di un uomo a piedi. 1390 01:09:14,249 --> 01:09:18,866 E le sue gambe e le braccia devono essere il lato destro. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID MALAN: OK, questo è tutto quello che si ottiene. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Tutto ok. 1394 01:09:27,710 --> 01:09:31,609 Perché non rivelare a Ben quello che ha fatto. 1395 01:09:31,609 --> 01:09:32,890 Quindi un applauso. 1396 01:09:32,890 --> 01:09:35,700 Questo è stato il più difficile, forse. 1397 01:09:35,700 --> 01:09:37,931 >> Così, anche se stiamo parlando in termini abbastanza stupide 1398 01:09:37,931 --> 01:09:39,680 circa appena disegno le immagini, si spera 1399 01:09:39,680 --> 01:09:44,226 può davvero apprezzare il grado di espressività che potrebbe essere necessario 1400 01:09:44,226 --> 01:09:45,850 per raccontare un computer cosa fare. 1401 01:09:45,850 --> 01:09:50,370 Ed infatti, il fatto che Ben era in grado di disegnare questo così rapidamente 1402 01:09:50,370 --> 01:09:54,227 è una sorta di testamento di utilizzare un lingua, forse un livello superiore 1403 01:09:54,227 --> 01:09:57,060 versione di inglese, che gli permette usare solo le parole, o sentire parole 1404 01:09:57,060 --> 01:09:59,990 da Victoria, che gli consentono questi abstractions-- solo disegnano 1405 01:09:59,990 --> 01:10:03,020 Una figura a piedi al destra- sopra quella sorta di ha 1406 01:10:03,020 --> 01:10:07,100 un significato semantico in modo che non sia quasi evidente quando sei solo 1407 01:10:07,100 --> 01:10:10,310 dicendo, mettere la penna verso il basso, disegnare a destra, disegnare a sinistra. 1408 01:10:10,310 --> 01:10:12,420 >> E così anche questo è molto comune in programmazione. 1409 01:10:12,420 --> 01:10:15,253 Questo sarebbe dire di essere come un linguaggio molto a basso livello, la programmazione 1410 01:10:15,253 --> 01:10:16,730 a 0 e 1 di se si vuole. 1411 01:10:16,730 --> 01:10:19,320 E questo sarebbe un livello superiore linguaggio di programmazione in Java, 1412 01:10:19,320 --> 01:10:20,278 o qualcosa di simile. 1413 01:10:20,278 --> 01:10:22,050 Un po 'di un semplificazione eccessiva, ma questo è 1414 01:10:22,050 --> 01:10:24,310 la sorta di emotivo sensazione che si prova quando 1415 01:10:24,310 --> 01:10:26,630 utilizzando un tipo di cosa o l'altra. 1416 01:10:26,630 --> 01:10:32,650 Un po 'di frustrazione qui dalla necessità tale precisione, ma la 1417 01:10:32,650 --> 01:10:34,930 per essere un po 'più ampia con l'interpretazione qui. 1418 01:10:34,930 --> 01:10:38,060 Ma, naturalmente, insetti può derivare. 1419 01:10:38,060 --> 01:10:40,500 >> Se vuoi a home-- noi non fare questo in class-- 1420 01:10:40,500 --> 01:10:41,900 ma se si desidera portare questa casa, 1421 01:10:41,900 --> 01:10:43,387 Ho pensato che sarebbe tuffarsi in questa. 1422 01:10:43,387 --> 01:10:45,970 Quindi, se vuoi giocare a questo gioco con il vostro altro significativo 1423 01:10:45,970 --> 01:10:49,180 o bambini o simili, si potrebbe godere anche quello. 1424 01:10:49,180 --> 01:10:54,460 >> Quindi cerchiamo di andare avanti e guardare a un ultimo cosa qui per il pensiero computazionale. 1425 01:10:54,460 --> 01:10:57,010 E questo ci porta a John Oliver, non per la clip 1426 01:10:57,010 --> 01:11:00,070 si potrebbe avere visto la notte scorsa, ma per una questione un po 'recente. 1427 01:11:00,070 --> 01:11:03,310 Alcuni mesi fa, la Volkswagen ha preso un bel po 'di critiche 1428 01:11:03,310 --> 01:11:05,651 per quale motivo, se si sa? 1429 01:11:05,651 --> 01:11:07,025 Che cosa hanno fatto ad ottenere nei guai per? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Sì, così si emissions-- sono state cercando di battere le emissioni 1432 01:11:14,030 --> 01:11:19,100 test di avente essenzialmente la loro automobili inquinano l'ambiente meno 1433 01:11:19,100 --> 01:11:23,620 quando erano in fase di sperimentazione la propria auto e inquinare l'ambiente più 1434 01:11:23,620 --> 01:11:25,547 quando non erano in fase di test le auto. 1435 01:11:25,547 --> 01:11:28,630 E ciò che è sempre più interessante in tutto il mondo, come si può avere inferito 1436 01:11:28,630 --> 01:11:34,072 dalle discussioni su ciò che è like-- it-- CarPlay, software di Apple per le auto 1437 01:11:34,072 --> 01:11:35,780 ed il fatto che molti di noi sempre più 1438 01:11:35,780 --> 01:11:38,390 avere schermi touch nelle nostre auto, c'è una quantità spaventosa 1439 01:11:38,390 --> 01:11:41,250 di software nel popolo di macchine oggi, che 1440 01:11:41,250 --> 01:11:45,650 apre francamente un intero barattolo di vermi quando si tratta di sicurezza e di rischio fisico. 1441 01:11:45,650 --> 01:11:48,070 Ma per oggi, facciamo concentrarsi solo su ciò che è 1442 01:11:48,070 --> 01:11:52,170 coinvolti nel software di scrittura che avrebbe potuto gamed sistema. 1443 01:11:52,170 --> 01:11:54,510 >> Per la definizione del problema, per chi non conosce, 1444 01:11:54,510 --> 01:11:55,740 diamo uno sguardo a John Oliver. 1445 01:11:55,740 --> 01:11:58,115 E per chi ha familiarità con il problema, diamo un'occhiata a esso 1446 01:11:58,115 --> 01:12:00,480 in una lente di divertimento tramite John Oliver pure. 1447 01:12:00,480 --> 01:12:05,810 Così mi ha colpito il gioco su questo, ho pensare, a tre minuti di introduzione. 1448 01:12:05,810 --> 01:12:07,074 Accidenti. 1449 01:12:07,074 --> 01:12:07,740 [RIPRODUZIONE VIDEO] 1450 01:12:07,740 --> 01:12:08,170 -Automobili-- 1451 01:12:08,170 --> 01:12:09,919 DAVID MALAN: Ovviamente, su YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --I personaggi più intelligenti il film Fast and Furious. 1453 01:12:12,500 --> 01:12:16,080 Questa settimana, casa automobilistica tedesca Volkswagen si è trovata 1454 01:12:16,080 --> 01:12:19,430 nel mezzo di uno scandalo di proporzioni potenzialmente criminali. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Sta preparando per miliardi in multe, possibili accuse penali 1456 01:12:23,020 --> 01:12:25,530 per i suoi dirigenti, come l'azienda si scusa 1457 01:12:25,530 --> 01:12:28,790 per rigging 11 milioni di auto per aiutarla a battere le prove di emissione. 1458 01:12:28,790 --> 01:12:32,110 >> modelli diesel sono stati progettati -Certain con un software sofisticato che 1459 01:12:32,110 --> 01:12:35,410 Informazioni utilizzato, compresa la posizione del volante e del veicolo 1460 01:12:35,410 --> 01:12:38,820 velocità, per determinare la macchina era in fase di test delle emissioni. 1461 01:12:38,820 --> 01:12:42,620 In base a tale circostanza, il motore ridurrebbe le emissioni tossiche. 1462 01:12:42,620 --> 01:12:46,040 Ma la macchina era attrezzata per bypass che quando è stato guidato. 1463 01:12:46,040 --> 01:12:51,370 Le emissioni sono aumentate da 10 a 40 volte superiori ai livelli accettabili di EPA. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow, Da 10 a 40 volte maggiore della EPA consente. 1465 01:12:55,920 --> 01:12:59,570 Questa è la cosa peggiore Volkswagen ha mai fatto, 1466 01:12:59,570 --> 01:13:04,200 è qualcosa che si potrebbe dire se che non avevo mai sentito parlare della Seconda Guerra Mondiale. 1467 01:13:04,200 --> 01:13:09,710 Ma forse il segno più sicuro di come molti problemi Volkswagen è in, 1468 01:13:09,710 --> 01:13:12,730 è che le persone a molto top hanno dimesso. 1469 01:13:12,730 --> 01:13:16,320 Il CEO è dimesso il Mercoledì, dopo rimescolando per fare controllo dei danni, 1470 01:13:16,320 --> 01:13:20,380 dicendo che era infinitamente dispiaciuto, che sembrava grande fino a quando si è scoperto 1471 01:13:20,380 --> 01:13:22,920 gli dispiaceva solo il 10% ma aveva truccato la sua bocca 1472 01:13:22,920 --> 01:13:25,600 per gonfiare artificialmente il suo sorriness. 1473 01:13:25,600 --> 01:13:29,700 E nel frattempo, di Volkswagen US capo aveva scuse di suo. 1474 01:13:29,700 --> 01:13:33,580 >> -let Di essere chiari su questo, la nostra società è stata disonesta. 1475 01:13:33,580 --> 01:13:37,140 E nelle mie parole tedesche, abbiamo hanno completamente avvitato. 1476 01:13:37,140 --> 01:13:41,360 >> -Sì, Ma completamente avvitata up non sono opere tedesche. 1477 01:13:41,360 --> 01:13:43,750 E la lingua tedesca ha molte belle frasi 1478 01:13:43,750 --> 01:13:50,070 per descrivere situazioni come questa, come ad esempio [tedesco], che significa grosso modo, 1479 01:13:50,070 --> 01:13:52,870 la tristezza che deriva da bugie legate al mercato, 1480 01:13:52,870 --> 01:13:59,060 o [tedesco], che si traduce come vergogna quelli che coinvolgono il padre 1481 01:13:59,060 --> 01:14:00,352 nuvole di benzina. 1482 01:14:00,352 --> 01:14:02,060 E 'una bella lingua. 1483 01:14:02,060 --> 01:14:04,660 Si naviga appena fuori la lingua. 1484 01:14:04,660 --> 01:14:07,920 E, a proposito, mentre quello dell'uomo scusa può essere sembrata sincera, 1485 01:14:07,920 --> 01:14:12,260 vale la pena notare che stava parlando ad un party di lancio ufficiale per il 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, il che significa che a breve dopo aver detto dispiaciuto, ha detto questo. 1487 01:14:17,310 --> 01:14:18,850 >> si -Grazie molto per essere venuti. 1488 01:14:18,850 --> 01:14:19,630 Godetevi la serata. 1489 01:14:19,630 --> 01:14:21,300 Fino successivo è Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [RIPRODUZIONE DI BRANI MUSICALI] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, che termina la vostra scusa con accanto 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz non lo fa urlare la contrizione sobrio. 1493 01:14:31,940 --> 01:14:35,830 Si urla, abbiamo chiesto Bon Jovi, e lui ha detto di no. 1494 01:14:35,830 --> 01:14:38,600 marchio Volkswagen ha stato gravemente danneggiato. 1495 01:14:38,600 --> 01:14:42,466 E, francamente, il loro nuovo annuncio campagna non è esattamente aiutando. 1496 01:14:42,466 --> 01:14:47,289 >> - [Tedesco], noi di Volkswagen vorremmo di scusarsi per voi ingannare con 1497 01:14:47,289 --> 01:14:47,930 i nostri veicoli. 1498 01:14:47,930 --> 01:14:48,513 >> [FINE RIPRODUZIONE] 1499 01:14:48,513 --> 01:14:54,090 DAVID MALAN: Quindi questo è stato un modo indiretto di-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 questo era un modo indiretto di introdurre un problema fondamentale 1501 01:14:58,730 --> 01:15:02,810 in software, che è che si necessario rilevare determinate condizioni. 1502 01:15:02,810 --> 01:15:07,680 E così la questione a portata di mano qui è, come fa una macchina potenzialmente, 1503 01:15:07,680 --> 01:15:09,870 come attuato nel software da questi programmatori, 1504 01:15:09,870 --> 01:15:11,850 rileva che in realtà è in fase di test? 1505 01:15:11,850 --> 01:15:14,150 Quindi, per essere super chiaro, quello che stavano facendo 1506 01:15:14,150 --> 01:15:17,940 era, in ambienti in cui i programmatori capito 1507 01:15:17,940 --> 01:15:20,460 la vettura stava comportando testato, hanno in qualche modo fatto 1508 01:15:20,460 --> 01:15:24,840 la macchina emette meno emissioni, meno emissioni, fumi in modo meno tossici 1509 01:15:24,840 --> 01:15:25,470 e simili. 1510 01:15:25,470 --> 01:15:27,261 Ma quando è normalmente guida su strada, 1511 01:15:27,261 --> 01:15:30,350 sarebbe solo emettono tanto inquinamento come si voleva. 1512 01:15:30,350 --> 01:15:33,870 >> Così come potremmo scrivere il pseudocodice per questo algoritmo? 1513 01:15:33,870 --> 01:15:37,820 Come potremmo scrivere lo pseudocodice per il software in esecuzione in macchina? 1514 01:15:37,820 --> 01:15:43,390 Insomma, in poche parole, si riduce a qualcosa di simile. 1515 01:15:43,390 --> 01:15:48,000 se in fase di test, emettono meno. 1516 01:15:48,000 --> 01:15:50,750 altro emette più. 1517 01:15:50,750 --> 01:15:52,630 Ma questo è un po ' troppo alto livello, giusto? 1518 01:15:52,630 --> 01:15:58,580 >> Proviamo a fare immersioni in quanto a ciò che questo l'astrazione di essere mezzi testati. 1519 01:15:58,580 --> 01:16:06,340 In altre parole, anche se non si sa nulla di automobili, che tipo di domande 1520 01:16:06,340 --> 01:16:13,440 potreste chiedere, al fine di determinare se stai fase di test, se sei la macchina? 1521 01:16:13,440 --> 01:16:19,638 Quali caratteristiche potrebbe essere presentare se una macchina è in fase di test? 1522 01:16:19,638 --> 01:16:21,026 >> PUBBLICO: Apparecchiature per il test. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID MALAN: attrezzature di prova. 1524 01:16:22,420 --> 01:16:26,060 Quindi, se l'apparecchiatura di prova nelle vicinanze, quindi emettono meno. 1525 01:16:26,060 --> 01:16:28,669 Così ho potuto immaginare attuazione che con qualche tipo di telecamere 1526 01:16:28,669 --> 01:16:29,960 o la rilevazione di ciò che è intorno a voi. 1527 01:16:29,960 --> 01:16:32,870 E lasciate che propongo, che appena si sente troppo complicato 1528 01:16:32,870 --> 01:16:37,914 di avere in realtà supplementare hardware solo per questo scopo. 1529 01:16:37,914 --> 01:16:44,830 >> PUBBLICO: Se siete in parco, se la cappa è aperto. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID MALAN: In parco o cofano aperto, in modo che è buono. 1531 01:16:47,320 --> 01:16:47,420 >> PUBBLICO: E macchina in funzione. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID MALAN: e questo è un po ' più concrete-- e auto da corsa. 1533 01:16:50,480 --> 01:16:55,690 Quindi questa sarebbe la congiunzione di un alcune condizioni differenti, se si vuole. 1534 01:16:55,690 --> 01:16:59,227 Quindi, se l'auto è nel parco, e anche se questa è una cosa molto meccanico 1535 01:16:59,227 --> 01:17:01,060 in genere, ho potuto immaginare software di scrittura, 1536 01:17:01,060 --> 01:17:03,476 soprattutto perché non c'è spesso una luce là in questi giorni, 1537 01:17:03,476 --> 01:17:07,400 Potevo immaginare che ci sia software in grado di interrogare la shifter 1538 01:17:07,400 --> 01:17:10,634 o no quello, siete nel parco, sono te in auto, si è al contrario. 1539 01:17:10,634 --> 01:17:12,550 E posso tornare un rispondono che è sia sì 1540 01:17:12,550 --> 01:17:14,400 o no a questo tipo di domande. 1541 01:17:14,400 --> 01:17:17,630 >> E così ho potuto probabilmente anche rispondere una domanda simile, è il cofano aperto. 1542 01:17:17,630 --> 01:17:21,860 Forse, c'è qualche tipo di sensore che o mi restituisce un 1 o 0, 1543 01:17:21,860 --> 01:17:23,720 vero o falso, il cofano è aperto. 1544 01:17:23,720 --> 01:17:28,180 E poi auto da corsa, ho potuto rilevare che in qualche modo attraverso quale meccanismo? 1545 01:17:28,180 --> 01:17:30,430 Come, la macchina è in esecuzione, ho potrebbe rilevare che è su, 1546 01:17:30,430 --> 01:17:32,127 avrei potuto rilevare in qualche modo che la vettura è in movimento? 1547 01:17:32,127 --> 01:17:32,881 >> Pubblico: RPM. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID MALAN: Sì, quindi non c'è sempre che l'ago che 1549 01:17:35,190 --> 01:17:38,034 ti dice quanti giri al minuto le ruote stanno vivendo. 1550 01:17:38,034 --> 01:17:39,200 E così ho potuto guardare quella. 1551 01:17:39,200 --> 01:17:43,090 E se non è 0, che probabilmente significa che la vettura è in movimento. 1552 01:17:43,090 --> 01:17:45,400 Ma dobbiamo essere un poco attento lì, 1553 01:17:45,400 --> 01:17:49,780 perchè-- cerchiamo di semplificare questo-- se abbiamo appena detto, se vettura in movimento, 1554 01:17:49,780 --> 01:17:53,070 noi non vogliamo emettere poco meno, vogliamo che se l'auto è in esecuzione 1555 01:17:53,070 --> 01:17:54,310 ed è in fase di sperimentazione. 1556 01:17:54,310 --> 01:17:56,320 >> Quindi ci sono pochi altri Ingredienti che la gente 1557 01:17:56,320 --> 01:18:00,550 hanno ipotizzato il software sta facendo, perché assente il codice sorgente, 1558 01:18:00,550 --> 01:18:05,130 si può solo una sorta di dedurre dal effetti fisici della macchina su ciò 1559 01:18:05,130 --> 01:18:08,280 potrebbe essere in corso sotto la cappa in software. 1560 01:18:08,280 --> 01:18:17,090 Quindi, se auto corsa e forse, per esempio, le ruote posteriori non si muove, 1561 01:18:17,090 --> 01:18:19,420 Potrebbe questo essere indicativo di una specie di test? 1562 01:18:19,420 --> 01:18:22,830 Quello che sto suggerendo qui? 1563 01:18:22,830 --> 01:18:24,830 Sì, forse, è su una di quelle cose a rulli, 1564 01:18:24,830 --> 01:18:28,340 dove come le ruote si stanno rivolgendo nella parte anteriore o nella parte posteriore, 1565 01:18:28,340 --> 01:18:32,570 a seconda che si tratti di ruota anteriore o trazione posteriore, quindi la metà delle ruote 1566 01:18:32,570 --> 01:18:34,420 sono in movimento, ma il altri due non sono, che 1567 01:18:34,420 --> 01:18:36,320 è una situazione strana nel mondo reale. 1568 01:18:36,320 --> 01:18:38,110 Se si guida sulla strada, che non dovrebbero accadere. 1569 01:18:38,110 --> 01:18:40,568 Ma se siete in un magazzino su una sorta di sistema di rulli, 1570 01:18:40,568 --> 01:18:41,630 che potrebbe davvero accadere. 1571 01:18:41,630 --> 01:18:46,980 >> Credo che la gente anche proposto che forse, Se l'auto è in esecuzione e dello sterzo 1572 01:18:46,980 --> 01:18:51,300 ruota non si muove, che Anche potrebbe essere un segnale, 1573 01:18:51,300 --> 01:18:54,090 perché questo è ragionevole per come un rettilineo su una strada. 1574 01:18:54,090 --> 01:18:57,960 Ma anche allora, l'uomo è probabilmente spostarlo un po 'o certamente 1575 01:18:57,960 --> 01:18:59,100 over pochi secondi. 1576 01:18:59,100 --> 01:19:01,030 Oppure il corso di un minuto, le probabilità sono che non è 1577 01:19:01,030 --> 01:19:03,510 sta per essere fissata in esattamente nella stessa posizione. 1578 01:19:03,510 --> 01:19:05,440 >> In altre parole, può prendere sottrazione, 1579 01:19:05,440 --> 01:19:08,200 sei in fase di test, e abbattere tale funzionalità 1580 01:19:08,200 --> 01:19:10,420 in questi ingredienti componenti. 1581 01:19:10,420 --> 01:19:13,440 E questo è veramente ciò che Volkswagen Gli ingegneri hanno fatto in qualche modo. 1582 01:19:13,440 --> 01:19:17,070 Hanno scritto software coscientemente rilevare se l'auto è in fase di test, 1583 01:19:17,070 --> 01:19:20,440 di conseguenza emettono meno, altro emettono nel solito modo. 1584 01:19:20,440 --> 01:19:22,690 >> E il problema anche qui, è che il software non è 1585 01:19:22,690 --> 01:19:26,080 qualcosa che si può veramente vedere a meno che si ha la cosiddetta codice sorgente. 1586 01:19:26,080 --> 01:19:29,060 Quindi ci sono due diversi tipi di code-- almeno due tipi differenti 1587 01:19:29,060 --> 01:19:30,130 di codice nel mondo. 1588 01:19:30,130 --> 01:19:33,150 C'è qualcosa che si chiama fonte codice, che non è dissimile da quello 1589 01:19:33,150 --> 01:19:37,240 abbiamo scritto, il codice sorgente. 1590 01:19:37,240 --> 01:19:40,099 >> Questo è il codice sorgente scritto in un linguaggio chiamato pseudocodice, 1591 01:19:40,099 --> 01:19:41,640 che è solo qualcosa di inglese-like. 1592 01:19:41,640 --> 01:19:43,140 Non c'è definizione formale di esso. 1593 01:19:43,140 --> 01:19:46,770 Ma C e Java, C ++, quelli sono tutti i linguaggi formali che, 1594 01:19:46,770 --> 01:19:50,610 quando si scrive in loro, quello che hai è un file di testo contenente il codice sorgente. 1595 01:19:50,610 --> 01:19:54,850 >> Ma c'è anche qualcosa in mondo chiamato codice macchina. 1596 01:19:54,850 --> 01:20:00,579 E codice macchina, purtroppo, è solo 0 e 1.. 1597 01:20:00,579 --> 01:20:02,870 Così codice macchina è quello che macchine comprendono, naturalmente. 1598 01:20:02,870 --> 01:20:04,470 Il codice sorgente è ciò che gli esseri umani capiscono. 1599 01:20:04,470 --> 01:20:08,390 >> E generalmente, ma non sempre, c'è un programma 1600 01:20:08,390 --> 01:20:14,090 che un programmatore utilizza che prende origine codice e lo trasforma in codice macchina. 1601 01:20:14,090 --> 01:20:17,400 E questo programma è generalmente detto compilatore. 1602 01:20:17,400 --> 01:20:19,820 Così il vostro ingresso è il codice sorgente, l'output è codice macchina, 1603 01:20:19,820 --> 01:20:22,890 e il compilatore è un pezzo di software che fa quel processo. 1604 01:20:22,890 --> 01:20:26,260 Quindi, questo in realtà le mappe ben al i nostri ingressi, algoritmi, uscite. 1605 01:20:26,260 --> 01:20:30,400 >> Ma questo è un'incarnazione molto specifico di quello che vuol dire che, 1606 01:20:30,400 --> 01:20:34,200 anche se si possiede uno di Volkswagen auto che è colpevole di questo, 1607 01:20:34,200 --> 01:20:38,390 non è come si può solo aprire la cappuccio o aprire il manuale dell'utente o cercare 1608 01:20:38,390 --> 01:20:42,690 il codice sorgente, perché quando raggiunge l'auto nel vialetto, 1609 01:20:42,690 --> 01:20:45,580 E 'già stato convertito in 0 e 1.. 1610 01:20:45,580 --> 01:20:51,310 Ed è molto difficile, non impossibile, ma molto difficile da raccogliere molto di nulla 1611 01:20:51,310 --> 01:20:53,710 da solo guardando il alla base di 0 e 1 di. 1612 01:20:53,710 --> 01:20:57,150 Così si può capire, in ultima analisi, se si capisce come una macchina operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- se si capisce l'architettura Intel, 1614 01:20:59,870 --> 01:21:01,440 ma è molto che richiede tempo. 1615 01:21:01,440 --> 01:21:05,010 E anche lì, si potrebbe non essere in grado di vedere tutto 1616 01:21:05,010 --> 01:21:08,220 che il codice può realmente fare. 1617 01:21:08,220 --> 01:21:12,521 >> Tutte le domande su questo o questo tipo di processo, più in generale? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 E in realtà, siamo in grado di legare questa discussione alla discussione di ieri di Apple. 1620 01:21:18,300 --> 01:21:22,500 Anche questo è il motivo per cui l'FBI non può semplicemente andare a cercare nel telefono del sospetto 1621 01:21:22,500 --> 01:21:26,820 e di trovare le righe di codice, per esempio, che consentirà il codice di accesso 1622 01:21:26,820 --> 01:21:28,940 o abilitare che il ritardo di 80 millisecondi. 1623 01:21:28,940 --> 01:21:31,630 Perché per il momento si tratta di il compagno di iPhone, 1624 01:21:31,630 --> 01:21:34,975 E 'già stato convertito a 0 e 1.. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Bene, cerchiamo di mettere in pausa qui per il nostro guarda pensiero computazionale. 1627 01:21:40,820 --> 01:21:42,320 Perché non prendiamo una pausa di 15 minuti. 1628 01:21:42,320 --> 01:21:44,130 E quando torneremo, avremo dare un'occhiata a programmazione 1629 01:21:44,130 --> 01:21:46,550 stesso e iniziare a mappare alcuni di questi concetti di alto livello 1630 01:21:46,550 --> 01:21:49,780 un trasferimento reale, se giocoso, linguaggio di programmazione. 1631 01:21:49,780 --> 01:21:51,089