1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [MUSIC PLAYING] 3 00:00:10,830 --> 00:00:12,080 [MUSICA - ROSSINI, "RANZ DES VACHES "dal Guglielmo Tell] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSICA - THE BEAT INGLESE, "MARZO DEI CAPI Orientamento "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Applausi e tifo] 8 00:02:31,510 --> 00:02:33,520 >> DAVID MALAN: Quindi questo è CS50. 9 00:02:33,520 --> 00:02:34,730 Il mio nome è David Malan. 10 00:02:34,730 --> 00:02:39,250 E il 73% di voi non hanno alcuna esperienza precedente con l'informatica, 11 00:02:39,250 --> 00:02:41,300 contrariamente a quanto si potrebbe pensare. 12 00:02:41,300 --> 00:02:45,290 Così oggi abbiamo pensato di sgretolare a che la mancanza di familiarità, ma anche 13 00:02:45,290 --> 00:02:48,970 vi darà un senso di, per quelli di voi più comfort, quali direzioni 14 00:02:48,970 --> 00:02:50,550 si può andare in questo semestre. 15 00:02:50,550 --> 00:02:51,890 >> Quindi cominciamo con questo. 16 00:02:51,890 --> 00:02:55,490 Io davvero non ho idea di quello che c'è dentro di un computer, anche se, come te, ho 17 00:02:55,490 --> 00:02:56,780 usare ogni giorno. 18 00:02:56,780 --> 00:03:00,000 Ma è una specie di scatola, e non c'è non molti ingressi in esso. 19 00:03:00,000 --> 00:03:01,350 Minimamente, non c'è, che cosa? 20 00:03:01,350 --> 00:03:03,120 Probabilmente un cavo di alimentazione. 21 00:03:03,120 --> 00:03:06,640 >> E in effetti con questo ingrediente, elettricità, ci sembrano essere in grado di 22 00:03:06,640 --> 00:03:09,490 facendo un bel po 'in questi giorni. 23 00:03:09,490 --> 00:03:12,130 Ma alla fine della giornata, abbiamo devono rappresentare le cose 24 00:03:12,130 --> 00:03:12,860 che ci sta a cuore. 25 00:03:12,860 --> 00:03:15,240 Dobbiamo rappresentare le informazioni in qualche forma. 26 00:03:15,240 --> 00:03:18,365 E tu sei probabilmente almeno vagamente familiarità con l'idea di binario o 27 00:03:18,365 --> 00:03:21,370 bit in qualche modo, i computer ridotta a zero e uno. 28 00:03:21,370 --> 00:03:26,320 Ma possiamo abbracciare e che almeno mettere un po 'di luce a questo? 29 00:03:26,320 --> 00:03:28,880 >> Così ho questi piccoli lampade da tavolo qui. 30 00:03:28,880 --> 00:03:30,450 Ho una presa elettrica qui. 31 00:03:30,450 --> 00:03:33,930 E ho intenzione di proporre che all'interno del mio computer è almeno uno dei 32 00:03:33,930 --> 00:03:37,300 queste cose, qualcosa capace di essere acceso o spento. 33 00:03:37,300 --> 00:03:40,200 In questo caso, è davvero una lampada da tavolo, ma a livello più basso, è qualcosa 34 00:03:40,200 --> 00:03:41,500 chiamato un transistor. 35 00:03:41,500 --> 00:03:44,730 >> Ma nel nostro mondo, è una lampada da scrivania, in modo Ho intenzione di andare avanti e collegare questo 36 00:03:44,730 --> 00:03:47,990 nella mia elettricità qui. 37 00:03:47,990 --> 00:03:52,970 E io sostengo che l'utilizzo di questo semplice, semplice dispositivo, questo semplice interruttore, ho 38 00:03:52,970 --> 00:03:54,850 può rappresentare informazioni. 39 00:03:54,850 --> 00:03:58,090 Per esempio, in questo momento, io sono rappresenta niente, giusto? 40 00:03:58,090 --> 00:04:01,820 Sto rappresentando ciò che io chiamo 0 o falso, il contrario di qualcosa 41 00:04:01,820 --> 00:04:03,130 effettivamente essere presenti. 42 00:04:03,130 --> 00:04:07,050 Ma se io semplicemente rivolgo questo interruttore, ora ho rappresentato un 1. 43 00:04:07,050 --> 00:04:10,720 Quindi, utilizzando questo semplice pezzo di memoria, se si vuole, mi può rappresentare 44 00:04:10,720 --> 00:04:11,450 informazioni. 45 00:04:11,450 --> 00:04:14,350 >> Ora, purtroppo, il mio computer non può fare più di tanto. 46 00:04:14,350 --> 00:04:17,430 Esso può rappresentare solo due valori in tutto il mondo - 47 00:04:17,430 --> 00:04:18,620 0 o 1. 48 00:04:18,620 --> 00:04:21,839 Ma che cosa è una soluzione ovvia, ora, se vogliamo espandere il nostro computer di 49 00:04:21,839 --> 00:04:25,120 memoria e rappresentare più che solo 0 e 1? 50 00:04:25,120 --> 00:04:27,060 >> Bene, cerchiamo di prendere un altro po 'così. 51 00:04:27,060 --> 00:04:30,260 Andiamo a prendere un altro interruttore, un altro transistor, comunque ti piacerebbe 52 00:04:30,260 --> 00:04:31,130 pensarci. 53 00:04:31,130 --> 00:04:34,170 Lasciami andare avanti e collegarlo nel mio computer come bene. 54 00:04:34,170 --> 00:04:38,270 E ho intenzione di rivendicare, ora, che da utilizzando un po 'più elettricità e 55 00:04:38,270 --> 00:04:42,290 girando più di questi switch on e fuori, posso rappresentare più tale 56 00:04:42,290 --> 00:04:43,020 informazioni. 57 00:04:43,020 --> 00:04:44,660 >> Quindi, in questo momento, questo è 1. 58 00:04:44,660 --> 00:04:48,120 Se voglio ora rappresentare 2, avrei potuto fare questo. 59 00:04:48,120 --> 00:04:51,510 Ma in genere, convention, come vedremo finalmente vedere, avrà a fare questo. 60 00:04:51,510 --> 00:04:55,260 Quindi questo è 0, questo è 1. 61 00:04:55,260 --> 00:04:56,720 Questo sarebbe 2. 62 00:04:56,720 --> 00:04:59,920 E non a caso, questo sarebbe 3. 63 00:04:59,920 --> 00:05:02,610 >> In questo modo, comunque, possono contiamo ancora di più? 64 00:05:02,610 --> 00:05:06,500 Se ho un terzo bit, un terzo interruttore, qual è il numero più alto che posso ora 65 00:05:06,500 --> 00:05:09,720 contare fino a da 0? 66 00:05:09,720 --> 00:05:12,020 Quindi 7 se sto partendo da 0, giusto? 67 00:05:12,020 --> 00:05:15,980 Perché se mi rivolgo questa luce accesa e effettivamente collegare questa terza e ultima 68 00:05:15,980 --> 00:05:20,090 luce nella mia presa di corrente qui, poi ho la capacità di rappresentare 69 00:05:20,090 --> 00:05:24,930 qualsiasi dei due valori qui, due valori qui, due valori qui - 70 00:05:24,930 --> 00:05:32,610 e quindi posso rappresentare 2 volte 2 volte 2, o otto possibili valori. 71 00:05:32,610 --> 00:05:36,340 E se mi metto contabilità a 0, quindi questo è 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Quindi questo binario. 73 00:05:37,480 --> 00:05:39,420 E 'davvero così semplice come sembra. 74 00:05:39,420 --> 00:05:41,930 E direi che questo è in realtà abbastanza familiare alla maggior parte 75 00:05:41,930 --> 00:05:43,180 tutti in questa stanza. 76 00:05:43,180 --> 00:05:45,710 Lasciami andare avanti e aprire un piccolo editor di testo qui. 77 00:05:45,710 --> 00:05:49,040 >> E si potrebbe richiamare dalla scuola elementare che avevamo cose come le centinaia 78 00:05:49,040 --> 00:05:51,970 luogo, il posto delle decine, e quelle posto. 79 00:05:51,970 --> 00:05:55,040 E ricorda che se tu avessi qualche decimale numero, come qualcosa di casuale 80 00:05:55,040 --> 00:05:59,470 come il 123, si farebbe essenzialmente scrivere che in forma 81 00:05:59,470 --> 00:06:00,450 di questi tre colonne. 82 00:06:00,450 --> 00:06:04,070 E perché è 1, 2, 3 quello che noi conosciamo come 123? 83 00:06:04,070 --> 00:06:11,220 Ebbene, nella colonna più a sinistra, abbiamo uno 100 più due 10s, così che è 120, 84 00:06:11,220 --> 00:06:14,250 più tre 1s, così che è 123. 85 00:06:14,250 --> 00:06:17,990 >> Ora questo mondo che abbiamo appena illuminati è esattamente lo stesso come 86 00:06:17,990 --> 00:06:21,150 siete stati a conoscenza da anni, solo che adesso, le nostre colonne 87 00:06:21,150 --> 00:06:22,060 non sono potenze di 10. 88 00:06:22,060 --> 00:06:23,780 Sono solo potenze di 2. 89 00:06:23,780 --> 00:06:27,830 Così, mentre questo è il posto quelle, questo sta per essere il luogo in gruppi di due, questo è 90 00:06:27,830 --> 00:06:29,540 sarà il posto a quattro zampe. 91 00:06:29,540 --> 00:06:33,260 >> E poiché Io uso solo la più semplice di meccanismi per cambiare le cose 92 00:06:33,260 --> 00:06:37,100 on e off - elettricità fluisce o di energia elettrica non scorre - 93 00:06:37,100 --> 00:06:40,880 Non ho ben ho la stessa espressiva Campo da 0 a nove. 94 00:06:40,880 --> 00:06:43,270 Abbiamo intenzione di tenerlo super semplice in questo mondo di computer. 95 00:06:43,270 --> 00:06:45,060 Ho solo 0 o 1 - 96 00:06:45,060 --> 00:06:47,890 spento o acceso, falso o vero. 97 00:06:47,890 --> 00:06:52,610 >> E così quello che sto rappresentando in questo momento è 1, 1, 1, perché ciascuno di essi 98 00:06:52,610 --> 00:06:54,000 le luci sono accese. 99 00:06:54,000 --> 00:06:59,600 Beh, questo mi dà un 4 più uno due, in modo da che è 6, più un 1, e questo è 7. 100 00:06:59,600 --> 00:07:03,450 E ergo fa questa sequenza di tre bit rappresentano il numero 7. 101 00:07:03,450 --> 00:07:06,330 >> Quindi tutto questo tempo, all'interno della vostra calcolatore, sono stati qualsiasi numero di 102 00:07:06,330 --> 00:07:08,090 transistori, qualsiasi numero di bit. 103 00:07:08,090 --> 00:07:10,380 Ma alla fine della giornata, abbiamo può rappresentare informazioni 104 00:07:10,380 --> 00:07:12,560 più semplicemente quello. 105 00:07:12,560 --> 00:07:16,770 Ora, purtroppo, abbiamo solo contato fino a 7 in CS50 finora, ma 106 00:07:16,770 --> 00:07:18,550 speriamo di fare un po ' meglio di così. 107 00:07:18,550 --> 00:07:19,550 E in effetti possiamo. 108 00:07:19,550 --> 00:07:23,570 >> Supponiamo che noi, come esseri umani solo arbitrariamente deciso che ci accingiamo 109 00:07:23,570 --> 00:07:28,750 associare numeri come 1 e 2, 3, 4, 5, 6, 7, con lettere specifiche di 110 00:07:28,750 --> 00:07:29,410 l'alfabeto. 111 00:07:29,410 --> 00:07:32,350 E per ragioni storiche, ho intenzione di Comincio un po 'arbitrariamente, ma sono 112 00:07:32,350 --> 00:07:36,880 per dire, gli esseri umani, ci accingiamo a decidere come standard, a livello globale, che 113 00:07:36,880 --> 00:07:43,200 65 rappresenta il numero la lettera A. 66 rappresenterà B. Dot, puntini, puntini. 114 00:07:43,200 --> 00:07:45,140 90 rappresenterà la lettera Z. 115 00:07:45,140 --> 00:07:48,000 >> E supponiamo, se davvero mettere un po ' pensiero in esso, si potrebbe venire 116 00:07:48,000 --> 00:07:50,860 con i numeri di punti esclamativi e le lettere minuscole, e anzi, 117 00:07:50,860 --> 00:07:52,710 altre persone hanno fatto per noi. 118 00:07:52,710 --> 00:07:56,410 Così ora abbiamo avuto punte con cui possiamo rappresentare i numeri, i numeri con i quali 119 00:07:56,410 --> 00:08:00,130 possiamo rappresentare lettere, e con lettere possono ora iniziare a comporre 120 00:08:00,130 --> 00:08:02,650 messaggi di posta elettronica e caratteri di stampa sullo schermo. 121 00:08:02,650 --> 00:08:05,850 >> Quindi, mi permetta di invito, se potessi, otto volontari coraggiosi - 122 00:08:05,850 --> 00:08:09,200 che non mente che appare non solo sulla macchina fotografica, ma su internet - 123 00:08:09,200 --> 00:08:13,130 di venire qui e rappresentano otto tale bit, piuttosto che questi tre. 124 00:08:13,130 --> 00:08:14,380 Così come su uno, due? 125 00:08:14,380 --> 00:08:16,290 Che ne dici di tre? 126 00:08:16,290 --> 00:08:20,230 Che ne dici di quattro in luce blu, cinque alla fine? 127 00:08:20,230 --> 00:08:21,250 A proposito qualcuno qui? 128 00:08:21,250 --> 00:08:25,320 Sei di fronte, sette davanti, e otto di fronte, pure. 129 00:08:25,320 --> 00:08:29,050 >> Così ho solo così è capitato di venire preparati con tutta una serie di strisce di carta. 130 00:08:29,050 --> 00:08:34,150 E su questi pezzi di carta sono numeri che rappresentano le colonne 131 00:08:34,150 --> 00:08:35,809 voi ragazzi stanno andando a rappresentare. 132 00:08:35,809 --> 00:08:36,740 Così si sarà - come ti chiami? 133 00:08:36,740 --> 00:08:37,570 >> STUDENTE: Anna Lia. 134 00:08:37,570 --> 00:08:40,370 >> DAVID MALAN: Anna Leah, è sarà la colonna 128s. 135 00:08:40,370 --> 00:08:41,059 Lei è? 136 00:08:41,059 --> 00:08:41,510 >> STUDENTE: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID MALAN: Chris volontà essere la colonna 64s. 138 00:08:43,620 --> 00:08:44,070 Lei è? 139 00:08:44,070 --> 00:08:44,540 >> STUDENTE: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID MALAN: Dan essere la colonna 32s. 141 00:08:46,970 --> 00:08:47,470 >> STUDENTE: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID MALAN: Pramit volontà essere la colonna 16s. 143 00:08:49,430 --> 00:08:50,290 >> STUDENTE: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID MALAN: Lillian sarà il 8s. 145 00:08:51,904 --> 00:08:52,768 >> STUDENTE: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID MALAN: Jill volontà essere la colonna 4s. 147 00:08:55,025 --> 00:08:55,400 >> STUDENTE: Maria. 148 00:08:55,400 --> 00:08:57,000 >> DAVID MALAN: Maria sarà il 2s, e? 149 00:08:57,000 --> 00:08:57,470 >> STUDENTE: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID MALAN: David volontà essere la colonna 1s. 151 00:08:59,220 --> 00:09:02,030 Quindi, se voi ragazzi poteste passo un po ' avanti in modo che tutti possano vedere. 152 00:09:02,030 --> 00:09:05,370 Che voi ragazzi non si vede è che il retro di questi fogli di carta è un 153 00:09:05,370 --> 00:09:09,760 piccolo foglietto che sta per istruire questi otto bit a uno 154 00:09:09,760 --> 00:09:12,380 alzare la mano o no alzare la mano. 155 00:09:12,380 --> 00:09:14,100 Se la mano va su, sono rappresenta un 1. 156 00:09:14,100 --> 00:09:17,120 Se la mano resta giù, sono rappresenta un 0. 157 00:09:17,120 --> 00:09:21,410 >> Nel frattempo, abbiamo il pubblico dovrebbe essere in grado di capire, in base a questo 158 00:09:21,410 --> 00:09:26,490 mappatura, cosa parola di tre lettere questi persone stanno per precisare. 159 00:09:26,490 --> 00:09:29,700 Quindi, in un momento, si sta andando a leggere la prima riga dal retro di 160 00:09:29,700 --> 00:09:32,880 il vostro foglietto, e tu sei uno dei due andando ad alzare o non alzare la mano. 161 00:09:32,880 --> 00:09:35,710 Se sei un 1, si alza, se sei un 0, tu stai lì 162 00:09:35,710 --> 00:09:38,594 goffamente, proprio così. 163 00:09:38,594 --> 00:09:40,386 Go. 164 00:09:40,386 --> 00:09:43,945 Che numero, prima di tutto, stanno rappresentando questi ragazzi? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, giusto? 168 00:09:49,560 --> 00:09:52,400 Abbiamo un 1 nella colonna 64s, un 1 nella colonna 2s. 169 00:09:52,400 --> 00:09:56,340 Questo mi dà 66, in modo da visualizzare di rappresentare B. Quindi 170 00:09:56,340 --> 00:09:57,075 voi ragazzi hanno scritto - 171 00:09:57,075 --> 00:09:58,300 OK, questo è sufficiente. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Così ora passiamo sul la seconda lettera. 174 00:10:01,610 --> 00:10:03,530 Go. 175 00:10:03,530 --> 00:10:06,860 Chi è più veloce in matematica qui? 176 00:10:06,860 --> 00:10:07,750 Così 79. 177 00:10:07,750 --> 00:10:11,840 Anche in questo caso, se sommiamo tutte le colonne in cui c'è un 1, attualmente, basta 178 00:10:11,840 --> 00:10:14,840 come abbiamo fatto prima con il più semplice di esempi di 7, ora 179 00:10:14,840 --> 00:10:16,140 ottenere il numero 79. 180 00:10:16,140 --> 00:10:19,910 Che secondo la nostra mappatura è il lettera O. Così ci siamo quasi. 181 00:10:19,910 --> 00:10:22,590 B, O. E, infine, andare. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Che cosa stanno rappresentando ora? 184 00:10:30,120 --> 00:10:31,370 Meno consenso. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Questo è solo un mormorio assoluto. 187 00:10:36,460 --> 00:10:40,090 Sì, è in realtà 87. 188 00:10:40,090 --> 00:10:40,490 Buono. 189 00:10:40,490 --> 00:10:44,480 >> Quindi, se abbiamo un mappa che indietro fino a - diamo iniziare a chiamare la nostra tabella ASCII, 190 00:10:44,480 --> 00:10:46,450 Americana Standard Code for Information Interchange. 191 00:10:46,450 --> 00:10:47,700 Questo ci dà la lettera - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 non "bo", ma "arco". E questo è un perfetto spunto per voi ragazzi a prendere un arco 194 00:10:54,810 --> 00:10:56,100 e la testa sulla schiena. 195 00:10:56,100 --> 00:10:56,980 Grazie mille. 196 00:10:56,980 --> 00:10:57,886 >> [Applausi] 197 00:10:57,886 --> 00:10:59,136 >> DAVID MALAN: è possibile tenerli. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Anche se in realtà, qualcuno dovrebbe come una lampada da tavolo, anche? 200 00:11:05,942 --> 00:11:07,300 >> [HOOT DAL PUBBLICO] 201 00:11:07,300 --> 00:11:08,390 >> DAVID MALAN: Lampada da scrivania? 202 00:11:08,390 --> 00:11:10,850 >> [Risata] 203 00:11:10,850 --> 00:11:11,860 >> DAVID MALAN: Davvero? 204 00:11:11,860 --> 00:11:13,230 Lampade da tavolo per tutti? 205 00:11:13,230 --> 00:11:14,310 D'accordo. 206 00:11:14,310 --> 00:11:20,990 Così cominciare dal più semplice dei principi, abbiamo ora non solo contato 207 00:11:20,990 --> 00:11:24,750 su da 0 tutta la strada fino a 7, abbiamo ipotizzato che proprio da buttare di più 208 00:11:24,750 --> 00:11:28,080 bit o più luci o più transistor a questo problema, possiamo 209 00:11:28,080 --> 00:11:32,680 rappresentare i numeri sempre più grandi, e ergo, gamme sempre più grandi di 210 00:11:32,680 --> 00:11:33,780 alfabeti, come l'inglese. 211 00:11:33,780 --> 00:11:37,770 E proprio diamo sulla fede per oggi che allo stesso modo potremmo iniziare a 212 00:11:37,770 --> 00:11:42,220 rappresentare grafica e video e qualsiasi numero di altri mezzi di comunicazione con cui siamo 213 00:11:42,220 --> 00:11:43,610 familiare oggi. 214 00:11:43,610 --> 00:11:49,240 >> Quindi questo è CS50, ed in questa classe a fianco di voi sono, ancora una volta, molto numerosi 215 00:11:49,240 --> 00:11:53,050 compagni di classe che hanno come poco esperienza come te. 216 00:11:53,050 --> 00:11:57,730 E Dico questo solo perché molto spesso, anche di recente, uno dei 217 00:11:57,730 --> 00:12:01,860 la matricola consulenza eventi e alle sophomore della scorsa primavera consulenza 218 00:12:01,860 --> 00:12:06,420 evento, si sente spesso studenti declinano quando venire al tavolo CS, bene, 219 00:12:06,420 --> 00:12:10,070 Ho pensato di prendere questo classe intro, ma io non sono davvero un 220 00:12:10,070 --> 00:12:11,120 persona computer. 221 00:12:11,120 --> 00:12:13,220 Oppure, ma tutti sicuramente sa più di me. 222 00:12:13,220 --> 00:12:17,340 E ho messo questo nel font più grande possibile, di trasmettere questo messaggio che 223 00:12:17,340 --> 00:12:18,730 questo non è effettivamente il caso. 224 00:12:18,730 --> 00:12:21,100 >> E se vi state chiedendo, dovrebbe Io, infatti, essere qui? 225 00:12:21,100 --> 00:12:25,950 Rendetevi conto che non è solo di questo corso titolo Introduzione alla Computer 226 00:12:25,950 --> 00:12:31,740 Scienza, è Introduzione alla Computer Scienza I. Quindi non vi è infatti 227 00:12:31,740 --> 00:12:33,170 un secondo tale introduzione. 228 00:12:33,170 --> 00:12:35,390 Quindi non sei, infatti, nel posto sbagliato. 229 00:12:35,390 --> 00:12:39,000 E tra gli obiettivi che ho per oggi sono a placare tali preoccupazioni si 230 00:12:39,000 --> 00:12:42,430 potrebbe avere, ma anche per dipingere un foto di quello che c'è in serbo per 231 00:12:42,430 --> 00:12:45,720 gli studenti di meno e più confortevole allo stesso modo in questo corso. 232 00:12:45,720 --> 00:12:49,320 >> Ma prima, una parola su una delle dispense che avete oggi, tra i quali 233 00:12:49,320 --> 00:12:50,780 sono una serie di domande frequenti. 234 00:12:50,780 --> 00:12:54,290 E 'stata una visione del nostro per un certo tempo ora di introdurre una nuova classificazione 235 00:12:54,290 --> 00:12:57,010 opzione in questo corso - vale a dire, SAT / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Filosoficamente per me, è molto molto, molto più importante che la 237 00:13:01,930 --> 00:13:05,050 studenti in questa classe si confrontano con il materiale, essere contestata dal 238 00:13:05,050 --> 00:13:09,800 materiale, e preoccuparsi molto, molto meno su la meccanica di punteggi effettivi 239 00:13:09,800 --> 00:13:12,590 e gradi di lettera al semestre di fine, ma vivere l' 240 00:13:12,590 --> 00:13:13,970 corso e il suo materiale. 241 00:13:13,970 --> 00:13:18,140 E proprio questo si sente, più in generale, per ciò che è interessante per loro, a 242 00:13:18,140 --> 00:13:21,390 sentirsi sfidati e premiati, ma senza paura di fallire. 243 00:13:21,390 --> 00:13:25,030 >> E in effetti, anche questo è un ricorrente tema in questo e in altri introduttivo 244 00:13:25,030 --> 00:13:28,680 corsi in altri campi, che avete questa trepidazione quando si tratta di 245 00:13:28,680 --> 00:13:31,040 mettere i propri piedi in acque sconosciute. 246 00:13:31,040 --> 00:13:34,880 Io stesso, nel 1995, era una matricola. 247 00:13:34,880 --> 00:13:37,990 Ero molto concentrato sul benessere un concentratore Gov qui. 248 00:13:37,990 --> 00:13:41,060 Eppure avevo sempre cresciuto con un po ' di un interesse per l'informatica. 249 00:13:41,060 --> 00:13:42,180 Sono sempre stato curioso. 250 00:13:42,180 --> 00:13:47,610 >> Ma allora, ancora, ho avuto questa paura di nemmeno mettere piede in CS50, tanto 251 00:13:47,610 --> 00:13:49,420 in modo che non ho nemmeno negozio esso anno da matricola. 252 00:13:49,420 --> 00:13:53,460 E l'unico motivo per cui ho messo un piede in porta secondo anno è stato perché ho 253 00:13:53,460 --> 00:13:55,340 è stato permesso di prendere pass / fail. 254 00:13:55,340 --> 00:13:58,920 Ma anche Pass / Fail richiesto che ottengo il coraggio di prendere un appuntamento 255 00:13:58,920 --> 00:14:01,970 con il professor Kernehan, al momento, portare questo grande foglio di carta, e chiedere 256 00:14:01,970 --> 00:14:04,470 lui per la sua firma e il suo il permesso di esplorare 257 00:14:04,470 --> 00:14:05,700 queste acque sconosciute. 258 00:14:05,700 --> 00:14:09,030 >> E non ha aiutato negli ultimi anni che quando si fa questo in CS50, quando abbiamo 259 00:14:09,030 --> 00:14:12,500 usato per essere pass / fail, similmente sarebbe decine o centinaia di tuoi compagni di classe 260 00:14:12,500 --> 00:14:15,970 avere a venire, Dio non voglia, al davanti a Sanders con questa forma, che 261 00:14:15,970 --> 00:14:19,520 in alcune menti rappresenta una incapacità, Oserei dire, per eseguire 262 00:14:19,520 --> 00:14:20,800 sono di livello i vostri coetanei. 263 00:14:20,800 --> 00:14:23,410 Il che è ridicolo, ma io credo che c'è quella mentalità. 264 00:14:23,410 --> 00:14:27,210 E non c'è mai stato in questa cultura di SAT / UNSAT, o passa / non passa più 265 00:14:27,210 --> 00:14:30,610 generalmente, in questo corso, o davvero in questo campus. 266 00:14:30,610 --> 00:14:32,310 >> Così quest'anno abbiamo cambiato quello. 267 00:14:32,310 --> 00:14:35,630 Sarei metà estatica di questa classe o più finita 268 00:14:35,630 --> 00:14:38,700 per prendere CS50 SAT / UNSAT. 269 00:14:38,700 --> 00:14:42,130 In un anno di tempo, sarebbe meraviglioso se quasi tutti sono. 270 00:14:42,130 --> 00:14:44,410 Successivamente forse lavoreremo sulla lettera gradi di Harvard 271 00:14:44,410 --> 00:14:45,480 Collegio più in generale. 272 00:14:45,480 --> 00:14:48,900 Ma per ora, lo faremo all'interno della nostra proprio ambito, e lo farei di cuore 273 00:14:48,900 --> 00:14:53,400 invitiamo a rivedere le domande frequenti e porre domande, come si vede in forma, in modo che 274 00:14:53,400 --> 00:14:58,000 speriamo che, a differenza di me, non sarà abbastanza avere lo stesso fattore di paura quando 275 00:14:58,000 --> 00:15:01,040 esplorare ciò che è probabilmente un luogo sconosciuto. 276 00:15:01,040 --> 00:15:02,786 >> Così che cosa è CS50? 277 00:15:02,786 --> 00:15:06,150 Si tratta di una introduzione al aziende intellettuale di informatica 278 00:15:06,150 --> 00:15:07,700 la scienza e l'arte della programmazione. 279 00:15:07,700 --> 00:15:08,770 Ma che cosa significa in realtà? 280 00:15:08,770 --> 00:15:12,510 >> Beh, finora, abbiamo parlato molto brevemente di rappresentazione delle informazioni. 281 00:15:12,510 --> 00:15:15,070 Ma supponiamo che vogliamo davvero di fare qualcosa con esso. 282 00:15:15,070 --> 00:15:17,890 Abbiamo bisogno di introdurre la nozione di quello che chiameremo un algoritmo. 283 00:15:17,890 --> 00:15:21,540 Un algoritmo è una procedura, un processo, un insieme di istruzioni per 284 00:15:21,540 --> 00:15:22,780 fare qualcosa. 285 00:15:22,780 --> 00:15:25,620 >> E un algoritmo può essere qualcosa super semplice. 286 00:15:25,620 --> 00:15:28,660 Per esempio, un esempio con cui alcuni di voi potrebbe avere familiarità è presente 287 00:15:28,660 --> 00:15:29,350 cosa qui. 288 00:15:29,350 --> 00:15:32,510 Quindi questo libro qui è sempre più datato, ma un tempo, si 289 00:15:32,510 --> 00:15:34,720 conteneva un sacco di nomi e numeri di telefono. 290 00:15:34,720 --> 00:15:37,710 E in effetti, se volevo trovare qualcuno in questa rubrica - 291 00:15:37,710 --> 00:15:39,800 dire, qualcuno di nome Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Sono riuscito a trovare Mike Smith in qualsiasi numero di modi abbastanza semplici. 293 00:15:43,810 --> 00:15:47,700 Potrei cominciare dall'inizio e passare alla pagina 1, non c'è. 294 00:15:47,700 --> 00:15:49,240 Pagina 2, non c'è. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 E 'questo algoritmo, è che processo, giusto? 297 00:15:53,430 --> 00:15:54,620 >> Quindi è corretto, giusto? 298 00:15:54,620 --> 00:15:58,070 Sono un po 'un idiota per farlo in che modo, ma alla fine lo farò 299 00:15:58,070 --> 00:16:02,670 trovare il cognome S, e si spera Mike è in quella sezione, e io diventerò 300 00:16:02,670 --> 00:16:04,100 fatto con il mio algoritmo. 301 00:16:04,100 --> 00:16:05,440 Ma sicuramente non è intuitivo. 302 00:16:05,440 --> 00:16:08,020 La maggior parte ogni uomo ragionevole in questo camera non avrebbe fatto questo. 303 00:16:08,020 --> 00:16:10,180 Che cosa avresti fatto? 304 00:16:10,180 --> 00:16:11,480 >> Saresti andato dritto al centro, giusto? 305 00:16:11,480 --> 00:16:12,000 Circa a metà. 306 00:16:12,000 --> 00:16:16,310 E ti rendi conto, oh, questi sono i Ms. Così Mike Smith, il cognome essendo Smith, 307 00:16:16,310 --> 00:16:19,050 non è, chiaramente, quindi nel la metà sinistra del libro. 308 00:16:19,050 --> 00:16:21,040 Egli deve essere verso il S 'nel giusto. 309 00:16:21,040 --> 00:16:24,090 E a questo punto, anche se la maggior parte di noi non fare questo, in realtà, possiamo 310 00:16:24,090 --> 00:16:27,125 letteralmente strappare questo problema a metà. 311 00:16:27,125 --> 00:16:27,640 >> [Applausi e applausi] 312 00:16:27,640 --> 00:16:28,950 >> DAVID MALAN: Grazie. 313 00:16:28,950 --> 00:16:30,150 >> [Applausi e applausi] 314 00:16:30,150 --> 00:16:34,660 >> DAVID MALAN: si può letteralmente strappare questo problema a metà, lasciandomi con, 315 00:16:34,660 --> 00:16:36,120 letteralmente, un problema grande come un mezzo. 316 00:16:36,120 --> 00:16:39,750 Quindi, se questa rubrica è stata - ed è probabilmente era - circa 1.000 pagine, ora 317 00:16:39,750 --> 00:16:40,840 è solo 500. 318 00:16:40,840 --> 00:16:44,710 Se lo faccio di nuovo questo e mi rendo conto, oh, accidenti, sono andato troppo lontano, io sono in Ts 319 00:16:44,710 --> 00:16:46,480 sezione, posso allo stesso modo - 320 00:16:46,480 --> 00:16:48,030 metaforicamente o letteralmente - 321 00:16:48,030 --> 00:16:50,260 strappare l'elenco telefonico - era in realtà molto più facile che il tempo. 322 00:16:50,260 --> 00:16:53,610 Posso letteralmente strappare la rubrica telefonica a metà, lasciandomi ora con 323 00:16:53,610 --> 00:16:55,186 non 1.000, non 500 - 324 00:16:55,186 --> 00:16:56,680 250 pagine. 325 00:16:56,680 --> 00:17:00,210 E posso andare a 125, e la metà di quello, e metà di quella, e la metà di questo, 326 00:17:00,210 --> 00:17:04,760 fino a quando finalmente sarò lasciato con solo una singola pagina. 327 00:17:04,760 --> 00:17:06,430 >> [Risata] 328 00:17:06,430 --> 00:17:07,589 >> DAVID MALAN: Questo è il parte non riesco a. 329 00:17:07,589 --> 00:17:10,400 Una pagina singola su cui Mike si spera sia. 330 00:17:10,400 --> 00:17:14,630 Ora quelle differenti algoritmi possono essere sorta di o che siano valutate in 331 00:17:14,630 --> 00:17:15,270 modi diversi. 332 00:17:15,270 --> 00:17:17,300 Il primo è stato molto lineare, giusto? 333 00:17:17,300 --> 00:17:18,500 Girare pagina, cercare Mike. 334 00:17:18,500 --> 00:17:19,630 Girare pagina, cercare Mike. 335 00:17:19,630 --> 00:17:20,560 E 'molto lineare. 336 00:17:20,560 --> 00:17:23,339 Se c'è ancora una pagina nel telefono libro, è probabilmente andando a prendere me 337 00:17:23,339 --> 00:17:27,380 un altro secondo, una unità di tempo, tuttavia stiamo calcolando il tempo. 338 00:17:27,380 --> 00:17:32,470 >> Quindi potrei disegnare come questa questa linea qui, per cui la dimensione della 339 00:17:32,470 --> 00:17:34,700 problema aumenta da sinistra a destra - 340 00:17:34,700 --> 00:17:37,480 rubrica telefonica diventa più piccolo al più grande - 341 00:17:37,480 --> 00:17:41,080 e il tempo è destinato ad aumentare in l'asse verticale, maggiore 342 00:17:41,080 --> 00:17:42,030 la rubrica è. 343 00:17:42,030 --> 00:17:46,180 Quindi n è solo una variabile generale che gli informatici utilizzano per rappresentare 344 00:17:46,180 --> 00:17:48,210 qualche valore, qualche numero. 345 00:17:48,210 --> 00:17:50,740 Quindi n è destinato ad aumentare linearmente. 346 00:17:50,740 --> 00:17:53,040 Raddoppia la dimensione della rubrica telefonica, è andando a prendere me il doppio 347 00:17:53,040 --> 00:17:54,780 tempo, molto probabilmente, di trovare Mike. 348 00:17:54,780 --> 00:17:56,390 >> Ora avrei potuto essere intelligente su questo, giusto? 349 00:17:56,390 --> 00:17:57,800 Stavo annoiando in fretta. 350 00:17:57,800 --> 00:17:58,910 Avrebbe potuto fare questo a due a due. 351 00:17:58,910 --> 00:18:01,870 Così due pagine, poi quattro, poi sei, poi otto. 352 00:18:01,870 --> 00:18:05,220 E potrei iniziare a volare attraverso un piccolo più velocemente, seppure a rischio minore di 353 00:18:05,220 --> 00:18:09,210 overshooting Mike, ma che la curva non è sta per essere così diverso. 354 00:18:09,210 --> 00:18:12,550 E 'ancora in corso di essere un dritto linea, ma leggermente più veloce. 355 00:18:12,550 --> 00:18:13,710 >> Ma che cosa ho fatto? 356 00:18:13,710 --> 00:18:15,845 Ho effettivamente fatto qualcosa fondamentalmente meglio. 357 00:18:15,845 --> 00:18:21,990 Ho ottenuto quello che noi chiameremo logaritmica tempo, registro di n, per cui questo verde 358 00:18:21,990 --> 00:18:27,730 linea ha una molto, molto, molto edge meno direttamente ad esso. 359 00:18:27,730 --> 00:18:33,050 E invece, suggerisce, come una sorta di tende all'infinito mai così a poco a poco, 360 00:18:33,050 --> 00:18:36,700 che ho potuto effettivamente prendere un 1.000-pagina rubrica telefonica, raddoppiare le sue dimensioni 361 00:18:36,700 --> 00:18:39,610 l'anno prossimo - perché supponiamo che un sacco sempre più persone si muovono in città. 362 00:18:39,610 --> 00:18:43,250 >> Così ora ho 2.000 pagine, ma come molti più passi è che più intelligenti 363 00:18:43,250 --> 00:18:45,200 algoritmo di andare a prendere? 364 00:18:45,200 --> 00:18:46,060 Solo una. 365 00:18:46,060 --> 00:18:48,060 Voglio dire, che è una cosa potente. 366 00:18:48,060 --> 00:18:51,400 Se andiamo a 4.000 pagine l'anno prossimo, che sta andando a prendere me 367 00:18:51,400 --> 00:18:53,020 solo altri due passi. 368 00:18:53,020 --> 00:18:56,500 Così si può buttare sempre più grande problemi a me, non a differenza del web è 369 00:18:56,500 --> 00:18:59,560 gettando i problemi sempre più grandi ogni giorno alle Googles e Facebooks di 370 00:18:59,560 --> 00:19:01,590 il mondo, e non è un grande affare. 371 00:19:01,590 --> 00:19:05,840 Perché ho messo più il pensiero e la cura in mio algoritmo con cui risolvere 372 00:19:05,840 --> 00:19:07,020 problemi in modo efficiente. 373 00:19:07,020 --> 00:19:09,260 >> E in effetti, che sarà uno dei gli obiettivi di questo corso. 374 00:19:09,260 --> 00:19:11,230 Si vuole, lungo la strada, imparare a programmare. 375 00:19:11,230 --> 00:19:13,360 Potrai imparare a programmare in qualsiasi numero di lingue. 376 00:19:13,360 --> 00:19:16,670 Ma alla fine della giornata, il corso è sulla risoluzione dei problemi e ottenere 377 00:19:16,670 --> 00:19:20,490 meglio a risolvere i problemi - e, come in casi come questo, la risoluzione di problemi 378 00:19:20,490 --> 00:19:22,030 più efficiente. 379 00:19:22,030 --> 00:19:23,990 >> Ora, finora, abbiamo fatto questa abbastanza intuitivo. 380 00:19:23,990 --> 00:19:27,420 Cerchiamo di introdurre qualcosa di abbastanza generico chiamato pseudocodice. 381 00:19:27,420 --> 00:19:29,150 Così avremo finalmente arriviamo, in questo corso, per 382 00:19:29,150 --> 00:19:30,570 vari linguaggi di programmazione. 383 00:19:30,570 --> 00:19:34,280 Ma oggi lo faremo in inglese-come sintassi, dove basta sorta di dire 384 00:19:34,280 --> 00:19:37,330 quello che vuoi dire, ma tu sei sempre così succinta e non si preoccupano di 385 00:19:37,330 --> 00:19:38,960 grammatica e frasi complete. 386 00:19:38,960 --> 00:19:41,600 Devi solo esprimerti come conciso possibile. 387 00:19:41,600 --> 00:19:45,400 >> Così pseudocodice è simile all'inglese sintassi che rappresenta 388 00:19:45,400 --> 00:19:46,750 un linguaggio di programmazione. 389 00:19:46,750 --> 00:19:51,170 E verso quel fine, lasciatemi propongo ora modellare il processo che abbiamo appena 390 00:19:51,170 --> 00:19:54,990 descritto di contare qualcosa di un po ' diversamente, questa volta prendendo un 391 00:19:54,990 --> 00:19:59,040 guardate questo video di cinque minuti prodotto dai nostri amici di TED che 392 00:19:59,040 --> 00:20:03,170 definisce ciò che è pseudocodice, definisce ciò che pensiero algoritmico è, e anche 393 00:20:03,170 --> 00:20:07,030 se l'esempio che state per vedere è, in se stessa, super semplice, è 394 00:20:07,030 --> 00:20:09,820 intenzione di iniziare a darci il mentale modello, il vocabolario, con cui 395 00:20:09,820 --> 00:20:14,588 fare molto, molto più complessa algoritmi abbastanza rapidamente. 396 00:20:14,588 --> 00:20:15,576 >> [BEGIN RIPRODUZIONE VIDEO] 397 00:20:15,576 --> 00:20:29,920 >> [MUSIC PLAYING] 398 00:20:29,920 --> 00:20:31,100 >> NARRATORE: Che cos'è un algoritmo? 399 00:20:31,100 --> 00:20:34,730 In informatica, un algoritmo è un set di istruzioni per la risoluzione di alcuni 400 00:20:34,730 --> 00:20:36,620 problema passo per passo. 401 00:20:36,620 --> 00:20:39,650 Tipicamente, gli algoritmi vengono eseguiti da computer, ma noi umani abbiamo 402 00:20:39,650 --> 00:20:41,230 algoritmi, pure. 403 00:20:41,230 --> 00:20:43,290 Per esempio, come si va di contare il numero 404 00:20:43,290 --> 00:20:44,750 di persone in una stanza? 405 00:20:44,750 --> 00:20:47,980 Beh, se siete come me, si sarebbe probabilmente punto in ogni persona, uno alla 406 00:20:47,980 --> 00:20:50,120 una volta, e contare da 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, e così via. 408 00:20:52,970 --> 00:20:54,140 >> Beh, questo è un algoritmo. 409 00:20:54,140 --> 00:20:57,600 In realtà, cerchiamo di esprimere un po 'più formale in pseudocodice - 410 00:20:57,600 --> 00:21:00,700 Inglese-come sintassi che assomiglia un linguaggio di programmazione. 411 00:21:00,700 --> 00:21:02,580 Sia N uguale 0. 412 00:21:02,580 --> 00:21:06,970 Per ogni persona in camera, impostare N uguale a N + 1. 413 00:21:06,970 --> 00:21:08,400 >> Come interpretare questo pseudocodice? 414 00:21:08,400 --> 00:21:12,840 Beh, linea uno dichiara, per così dire, una variabile chiamata N e inizializza 415 00:21:12,840 --> 00:21:14,250 il suo valore a 0. 416 00:21:14,250 --> 00:21:17,550 Questo significa solo che all'inizio di il nostro algoritmo, la cosa con la quale 417 00:21:17,550 --> 00:21:19,650 contiamo ha un valore di 0. 418 00:21:19,650 --> 00:21:22,620 Dopo tutto, prima di iniziare il conteggio, non abbiamo ancora contato nulla. 419 00:21:22,620 --> 00:21:25,340 Chiamare questa variabile N è solo una convenzione. 420 00:21:25,340 --> 00:21:26,890 Avrei chiamato più nulla. 421 00:21:26,890 --> 00:21:30,560 >> Ora linea due demarks l'inizio di una loop, una sequenza di passi che 422 00:21:30,560 --> 00:21:32,310 ripetere certo numero di volte. 423 00:21:32,310 --> 00:21:35,910 Quindi, nel nostro esempio, il passo che stiamo prendendo sta contando persone nella stanza. 424 00:21:35,910 --> 00:21:38,730 Sotto la linea due è la linea tre, che descrive esattamente come 425 00:21:38,730 --> 00:21:40,160 andremo a contare. 426 00:21:40,160 --> 00:21:43,440 Il rientro implica che si tratta di tre linee che si ripeteranno. 427 00:21:43,440 --> 00:21:47,380 >> Così che cosa lo pseudocodice sta dicendo è che dopo aver iniziato a 0, per ciascun 428 00:21:47,380 --> 00:21:50,690 persona nella stanza, faremo aumentare N di 1. 429 00:21:50,690 --> 00:21:53,050 Ora è questo algoritmo è corretto? 430 00:21:53,050 --> 00:21:54,580 Bene, Bang on un po '. 431 00:21:54,580 --> 00:21:57,270 Funziona se ci sono due persone nella stanza? 432 00:21:57,270 --> 00:21:58,170 Vediamo. 433 00:21:58,170 --> 00:22:00,260 >> In linea uno, inizializziamo N a 0. 434 00:22:00,260 --> 00:22:03,660 Per ciascuna di queste due persone, abbiamo poi incrementiamo N da 1. 435 00:22:03,660 --> 00:22:07,310 Quindi, il primo viaggio attraverso il cappio, aggiorniamo N 0-1. 436 00:22:07,310 --> 00:22:11,070 Al secondo viaggio attraverso quella stessa cappio, aggiorniamo N 1-2. 437 00:22:11,070 --> 00:22:15,780 E così per la fine di questo algoritmo, n è 2, che in effetti corrisponde al numero di 438 00:22:15,780 --> 00:22:16,700 persone nella stanza. 439 00:22:16,700 --> 00:22:17,760 >> Fin qui, tutto bene. 440 00:22:17,760 --> 00:22:19,610 Come su un caso d'angolo, però? 441 00:22:19,610 --> 00:22:22,590 Supponiamo che ci sono 0 persone in sala - oltre a me, 442 00:22:22,590 --> 00:22:24,170 che sta facendo il conteggio. 443 00:22:24,170 --> 00:22:27,150 In linea uno, inizializziamo N a 0. 444 00:22:27,150 --> 00:22:30,280 Questa volta, però, non linea tre eseguire a tutti in quanto non vi è un 445 00:22:30,280 --> 00:22:31,370 persona nella stanza. 446 00:22:31,370 --> 00:22:35,260 E così N rimane 0, che corrisponde al numero di persone nella stanza. 447 00:22:35,260 --> 00:22:36,420 Abbastanza semplice, giusto? 448 00:22:36,420 --> 00:22:39,630 >> Ma conteggio persone una alla volta è piuttosto inefficiente, troppo, no? 449 00:22:39,630 --> 00:22:40,920 Sicuramente possiamo fare meglio. 450 00:22:40,920 --> 00:22:43,120 Perché non contare due persone alla volta? 451 00:22:43,120 --> 00:22:49,300 Invece di contare 1, 2, 3, 4, 5, 6, 7, 8, e così via, perché non conta, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, e così via? 453 00:22:51,460 --> 00:22:53,700 E anche i suoni più veloce, ed è sicuramente. 454 00:22:53,700 --> 00:22:56,240 >> Diamo esprimono questa ottimizzazione in pseudocodice. 455 00:22:56,240 --> 00:22:57,800 Sia N uguale 0. 456 00:22:57,800 --> 00:23:02,450 Per ogni coppia di persone in camera, impostare N pari a N + 2. 457 00:23:02,450 --> 00:23:04,120 Abbastanza semplice cambiamento, giusto? 458 00:23:04,120 --> 00:23:06,750 Piuttosto che le persone contano uno alla volta, noi invece contiamo 459 00:23:06,750 --> 00:23:08,300 due alla volta. 460 00:23:08,300 --> 00:23:10,980 Questo algoritmo è quindi due volte veloce come l'ultima. 461 00:23:10,980 --> 00:23:12,180 >> Ma è corretto? 462 00:23:12,180 --> 00:23:12,920 Vediamo. 463 00:23:12,920 --> 00:23:15,330 Funziona se ci sono due persone nella stanza? 464 00:23:15,330 --> 00:23:17,550 In linea uno, inizializziamo N a 0. 465 00:23:17,550 --> 00:23:20,920 Per usare una coppia di persone, abbiamo poi incrementiamo N per due. 466 00:23:20,920 --> 00:23:24,860 E così per la fine di questo algoritmo, n è 2, che in effetti corrisponde al numero di 467 00:23:24,860 --> 00:23:25,650 persone nella stanza. 468 00:23:25,650 --> 00:23:28,250 >> Supponiamo successivo che ci sono 0 persone nella stanza. 469 00:23:28,250 --> 00:23:30,840 In linea uno, inizializziamo N a 0. 470 00:23:30,840 --> 00:23:34,330 Come prima, la linea tre non esegue affatto, poiché non ci sono i paia 471 00:23:34,330 --> 00:23:35,380 di persone nella stanza. 472 00:23:35,380 --> 00:23:38,350 E così N rimane 0, che anzi corrisponde al numero di 473 00:23:38,350 --> 00:23:39,570 persone nella stanza. 474 00:23:39,570 --> 00:23:42,280 >> Ma cosa succede se ci sono tre persone nella stanza? 475 00:23:42,280 --> 00:23:44,130 Come funziona questo algoritmo tariffa? 476 00:23:44,130 --> 00:23:44,990 Vediamo. 477 00:23:44,990 --> 00:23:47,460 In linea uno, inizializziamo N a 0. 478 00:23:47,460 --> 00:23:50,870 Per un paio di quelle persone, abbiamo poi incrementiamo N da 2. 479 00:23:50,870 --> 00:23:51,800 Ma allora che cosa? 480 00:23:51,800 --> 00:23:54,960 Non vi è un altro paio pieno di persone nella stanza, in modo da linea due no 481 00:23:54,960 --> 00:23:56,180 applica più. 482 00:23:56,180 --> 00:24:00,530 E così per la fine di questo algoritmo, N è ancora 2, il che non è corretto. 483 00:24:00,530 --> 00:24:03,810 >> In effetti, questo algoritmo ha detto di essere buggy, perché ha un errore. 484 00:24:03,810 --> 00:24:05,820 Consente di correggere con qualche nuovo pseudocodice. 485 00:24:05,820 --> 00:24:09,670 Sia n uguale 0 per ogni coppia di persone in camera. 486 00:24:09,670 --> 00:24:12,550 Impostare N pari a N + 2. 487 00:24:12,550 --> 00:24:17,140 Se una persona rimane spaiato, impostare N pari a N + 1. 488 00:24:17,140 --> 00:24:20,140 Per risolvere questo problema particolare, abbiamo introdotto, in linea quattro, un 489 00:24:20,140 --> 00:24:24,520 condizione, altrimenti noto come un ramo che viene eseguito solo se c'è una 490 00:24:24,520 --> 00:24:26,640 persona che non poteva coppia con un altro. 491 00:24:26,640 --> 00:24:30,440 E così ora, se c'è uno o tre o qualsiasi numero dispari di persone 492 00:24:30,440 --> 00:24:33,290 la stanza, questo algoritmo sarà ora contarli. 493 00:24:33,290 --> 00:24:34,560 >> Possiamo fare ancora meglio? 494 00:24:34,560 --> 00:24:38,820 Beh, potremmo contare in 3s o 4s o anche 5s e 10s, ma al di là di questo, è 495 00:24:38,820 --> 00:24:41,360 andando a prendere un po ' difficile punto. 496 00:24:41,360 --> 00:24:44,660 Alla fine della giornata, se eseguito dai computer o esseri umani, 497 00:24:44,660 --> 00:24:46,750 algoritmi sono solo un insieme di istruzioni con 498 00:24:46,750 --> 00:24:48,290 che per risolvere i problemi. 499 00:24:48,290 --> 00:24:49,792 Questi sono solo tre. 500 00:24:49,792 --> 00:24:52,404 Quale problema si risolve con un algoritmo? 501 00:24:52,404 --> 00:24:52,901 >> [FINE RIPRODUZIONE VIDEO] 502 00:24:52,901 --> 00:24:55,883 >> DAVID MALAN: Questa è l'unica volta Io apparirò in forma di cartone animato. 503 00:24:55,883 --> 00:25:01,050 Ma dove la storia lascia fuori, ora, è come possiamo migliorare? 504 00:25:01,050 --> 00:25:04,680 Tre e quattro zampe, si pretende, si possono contare persone molto più veloce, ma possiamo 505 00:25:04,680 --> 00:25:06,290 fare fondamentalmente meglio di così? 506 00:25:06,290 --> 00:25:07,540 E scommetto che possiamo. 507 00:25:07,540 --> 00:25:11,980 >> Se introduciamo un po 'del nostro pseudocodice qui, ho intenzione di proporre 508 00:25:11,980 --> 00:25:14,550 che siamo in grado di realizzare una linea come questa. 509 00:25:14,550 --> 00:25:17,280 Non stiamo andando a contare le persone uno, due, tre, quattro. 510 00:25:17,280 --> 00:25:19,470 Non abbiamo intenzione di andare a due, quattro, sei, otto. 511 00:25:19,470 --> 00:25:23,390 Stiamo andando a fare fondamentalmente meglio da ripensare il problema, e in questo 512 00:25:23,390 --> 00:25:27,080 caso, facendo leva su un altrimenti sottoutilizzate risorse. 513 00:25:27,080 --> 00:25:31,460 >> In un momento, spero che perdonerai e umorismo ci da in piedi in 514 00:25:31,460 --> 00:25:34,470 luogo, al punto che andremo a chiedere a ognuno di voi di assumere in 515 00:25:34,470 --> 00:25:36,400 mente il numero 1. 516 00:25:36,400 --> 00:25:39,560 Stai andando poi a sempre più goffamente, col passare del tempo, trovare 517 00:25:39,560 --> 00:25:42,740 qualcun altro che è in piedi, si combinano i numeri insieme 518 00:25:42,740 --> 00:25:43,720 aggiungendole up. 519 00:25:43,720 --> 00:25:47,490 Uno di voi è poi andare a correre a sedersi primo down, e l'altra persona 520 00:25:47,490 --> 00:25:48,880 sta per ripetere. 521 00:25:48,880 --> 00:25:53,090 >> Quindi, in altre parole, mediante inseminazione di tutti con il numero 1, e quindi 522 00:25:53,090 --> 00:25:57,800 combinando quelli 1s in 2s e quelli 2s in 4s, con tutti sempre più 523 00:25:57,800 --> 00:26:02,740 seduti, dovremmo, al termine del questo algoritmo, hanno solo un prestito 524 00:26:02,740 --> 00:26:07,570 anima che non si sedette abbastanza veloce ma che ha l'intero conteggio pubblico 525 00:26:07,570 --> 00:26:09,180 nella sua mente. 526 00:26:09,180 --> 00:26:13,730 >> Quindi, se volete, andiamo avanti e - passo uno - stare in piedi al suo posto. 527 00:26:13,730 --> 00:26:15,600 Ed eseguire. 528 00:26:15,600 --> 00:26:36,580 >> [FOLLA mormorando] 529 00:26:36,580 --> 00:26:38,820 >> DAVID MALAN: Sai dove Lauren è? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [FOLLA mormorando] 532 00:27:23,350 --> 00:27:24,340 >> DAVID MALAN: Va bene? 533 00:27:24,340 --> 00:27:39,110 >> [FOLLA mormorando] 534 00:27:39,110 --> 00:27:41,365 >> DAVID MALAN: Va bene, dovremmo essere quasi alla fine. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Vediamo un collega qui in piedi ancora. 537 00:27:47,670 --> 00:27:48,770 Chi altro deve essere associato? 538 00:27:48,770 --> 00:27:50,020 Se voi volete fare coppia. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Qualcuno sulla parte superiore. 541 00:27:56,520 --> 00:27:58,150 Perché non dare una mano qui. 542 00:27:58,150 --> 00:28:01,370 Per le poche persone che sono ancora in piedi, che numeri ti 543 00:28:01,370 --> 00:28:02,790 avere nella vostra mente? 544 00:28:02,790 --> 00:28:04,020 >> STUDENTE: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID MALAN: 78 plus - 546 00:28:06,010 --> 00:28:07,840 che sta in piedi qui? 547 00:28:07,840 --> 00:28:08,370 >> STUDENTE: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID MALAN: più 39. 549 00:28:09,590 --> 00:28:12,310 Più che altro è ancora in piedi? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, chi altro? 552 00:28:15,960 --> 00:28:17,200 Un altro 81? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 E allora cosa c'è dietro? 555 00:28:19,210 --> 00:28:20,360 >> STUDENTE: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID MALAN: 49, più? 557 00:28:21,812 --> 00:28:22,950 >> STUDENTE: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID MALAN: 98 plus? 559 00:28:24,980 --> 00:28:28,190 E 'qualcun altro? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Buon lavoro. 562 00:28:30,460 --> 00:28:33,610 >> [Risata] 563 00:28:33,610 --> 00:28:34,690 >> DAVID MALAN: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Buon lavoro! 566 00:28:36,220 --> 00:28:38,660 >> [Risata] 567 00:28:38,660 --> 00:28:42,570 >> [Applausi] 568 00:28:42,570 --> 00:28:43,820 >> DAVID MALAN: Chiunque altro ancora in piedi? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Siamo spiacenti? 571 00:28:47,260 --> 00:28:48,110 >> STUDENTE: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID MALAN: 99. 573 00:28:49,810 --> 00:28:52,620 Chiunque altro ancora in piedi? 574 00:28:52,620 --> 00:28:57,290 E il numero totale di studenti qui è in realtà, secondo - 575 00:28:57,290 --> 00:28:59,400 avete un numero? 576 00:28:59,400 --> 00:29:03,170 Oh, il numero effettivo di persone nel stanza, secondo l'account che 577 00:29:03,170 --> 00:29:07,660 i compagni di insegnamento stavano facendo sulla strada di tutti in, era 729. 578 00:29:07,660 --> 00:29:11,070 Così fuori di una stanza piena di studenti di Harvard che si contato, la 579 00:29:11,070 --> 00:29:14,126 risposta è 637. 580 00:29:14,126 --> 00:29:15,480 >> [Risata] 581 00:29:15,480 --> 00:29:16,350 >> DAVID MALAN: Così vicino. 582 00:29:16,350 --> 00:29:17,360 Ma ancora. 583 00:29:17,360 --> 00:29:22,110 OK, quindi questo è un insegnamento momento, giusto? 584 00:29:22,110 --> 00:29:24,120 Questo ora è ciò che noi descriviamo come un bug. 585 00:29:24,120 --> 00:29:28,120 Da qualche parte lungo la strada, abbiamo fatto un po 'di aritmetico sbagliato, o qualcuno si sedette, 586 00:29:28,120 --> 00:29:29,930 o di sinistra, o qualcosa è andato storto. 587 00:29:29,930 --> 00:29:30,930 Ma va bene così. 588 00:29:30,930 --> 00:29:33,390 Perché anche ancora, abbiamo ottenuto abbastanza vicino. 589 00:29:33,390 --> 00:29:37,480 E direi che siamo arrivati ​​alla sbagliato rispondere molto più velocemente di quanto avrei 590 00:29:37,480 --> 00:29:39,770 usando il mio approccio più lineare. 591 00:29:39,770 --> 00:29:42,630 >> Quindi supponiamo che abbiamo infatti otteniamo che correggere, ma pensare ora a cosa 592 00:29:42,630 --> 00:29:46,870 che accadeva ogni volta, contro la mia proprio ingenuo algoritmo di puntamento. 593 00:29:46,870 --> 00:29:48,420 Uno, due, tre. 594 00:29:48,420 --> 00:29:53,010 Se ci sono infatti 729 o 637 persone qui, che mi avrebbe preso 595 00:29:53,010 --> 00:29:57,720 letteralmente a 637 o 729 puntamenti del dito e 596 00:29:57,720 --> 00:29:59,490 incrementare il mio conteggio totale. 597 00:29:59,490 --> 00:30:01,910 E ho potuto fare un po 'meglio di andare due, quattro, sei, otto, e 598 00:30:01,910 --> 00:30:05,660 raddoppiare la velocità, forse anche tripla o quadruple, a seconda di quanto bene posso 599 00:30:05,660 --> 00:30:07,110 fare che contare nella mia testa. 600 00:30:07,110 --> 00:30:10,720 >> Ma questo approccio che voi ragazzi ha preso era fondamentalmente diverso. 601 00:30:10,720 --> 00:30:12,770 Perché all'inizio, voi tutti si alzarono. 602 00:30:12,770 --> 00:30:14,620 Quindi tutto 729. 603 00:30:14,620 --> 00:30:17,370 E poi letteralmente la metà di si sedette. 604 00:30:17,370 --> 00:30:19,720 E dopo che, un'altra la metà di voi si sedette. 605 00:30:19,720 --> 00:30:22,650 E dopo che, un'altra la metà di voi si sedette. 606 00:30:22,650 --> 00:30:27,470 >> E il numero totale di volte che si ragazzi avrebbero potuto sedere è più o meno 607 00:30:27,470 --> 00:30:31,740 otto o nove o dieci volte in totale, seconda di ciò che il nostro conteggio totale è. 608 00:30:31,740 --> 00:30:33,300 E possiamo ordinare di fare questo l'altro modo. 609 00:30:33,300 --> 00:30:37,740 Se abbiamo avuto 1.024 persone nella stanza, il numero totale di volte che si poteva 610 00:30:37,740 --> 00:30:41,870 dimezzare 1.024 persone è 10. 611 00:30:41,870 --> 00:30:43,370 >> Ora pensate a l'altra direzione. 612 00:30:43,370 --> 00:30:49,170 Supponiamo, ridicolmente, che abbiamo avuto, diciamo quattro miliardi di persone in questa stanza, 613 00:30:49,170 --> 00:30:50,860 o una camera leggermente più grande. 614 00:30:50,860 --> 00:30:54,550 Quante volte avremmo andati attraverso questo algoritmo, tale che metà 615 00:30:54,550 --> 00:30:58,110 di quella classe si siede? 616 00:30:58,110 --> 00:31:03,050 E 'solo andando a prendere 32 ad operazioni, anche in una classe di dimensione 617 00:31:03,050 --> 00:31:03,770 quattro miliardi. 618 00:31:03,770 --> 00:31:04,055 Perché? 619 00:31:04,055 --> 00:31:06,980 Perché quattro miliardi vanno ai due miliardi di euro, va a un milione, va a 620 00:31:06,980 --> 00:31:09,925 500 milioni di euro, va a 250 milioni di euro, dot, dot, dot. 621 00:31:09,925 --> 00:31:14,940 Posso solo fare un po 'di quella divisione 32 volte, a quel punto, tutti tranne 622 00:31:14,940 --> 00:31:17,820 una persona sarebbe rimasta in piedi. 623 00:31:17,820 --> 00:31:21,590 >> E questo, anche, è una sorta di potente idea che sempre cercheremo di 624 00:31:21,590 --> 00:31:24,690 leva in questo corso, e in la programmazione e l'informatica più 625 00:31:24,690 --> 00:31:29,400 generalmente, questi germi di un'idea con quale possiamo poi risolvere problemi molto, 626 00:31:29,400 --> 00:31:31,130 molto più potente. 627 00:31:31,130 --> 00:31:34,610 Così abbiamo iniziato abbastanza semplice con quella pseudocodice e un ragazzo in una stanza, ma 628 00:31:34,610 --> 00:31:38,205 ora con tutta una stanza piena di gente abbiamo fatto decisamente migliore. 629 00:31:38,205 --> 00:31:41,460 >> Bene, ora transizione da pseudocodice di un codice vero e proprio. 630 00:31:41,460 --> 00:31:44,200 Questo linguaggio che state per vedere accadere di essere chiamato JavaScript, e 631 00:31:44,200 --> 00:31:46,190 torneremo a questo verso fine del semestre. 632 00:31:46,190 --> 00:31:49,960 E 'un linguaggio di programmazione che si usare per fare siti web e altri come 633 00:31:49,960 --> 00:31:51,360 software in questi giorni. 634 00:31:51,360 --> 00:31:54,890 E lo abbiamo usato, grazie a un amico dei nostri a Stanford, per codificare 635 00:31:54,890 --> 00:31:56,630 alcune informazioni nascoste qui. 636 00:31:56,630 --> 00:31:59,500 Questa è l'arte della steganografia, per così dire, dove si può nascondere 637 00:31:59,500 --> 00:32:03,990 informazioni in ciò che altrimenti sembra essere un rumore o una completamente diversa 638 00:32:03,990 --> 00:32:05,220 immagine del tutto. 639 00:32:05,220 --> 00:32:10,120 Ma incorporato in questa particolare immagine è davvero un messaggio segreto di sorta. 640 00:32:10,120 --> 00:32:12,950 >> Quindi, mi permetta di andare avanti e tiro su la stessa immagine qui, questa 641 00:32:12,950 --> 00:32:14,270 tempo in un browser web. 642 00:32:14,270 --> 00:32:17,710 E ho intenzione di sventolare la mano ad alcuni dei i dettagli per oggi, in particolare 643 00:32:17,710 --> 00:32:21,780 per quelli di voi che questo sembra non solo di JavaScript, ma greco, come un 644 00:32:21,780 --> 00:32:23,930 completamente lingua sconosciuta. 645 00:32:23,930 --> 00:32:26,190 Ma questo è un esempio di un linguaggio di programmazione. 646 00:32:26,190 --> 00:32:30,660 >> E per ora, prendere sulla fede che questa prima riga di codice - 647 00:32:30,660 --> 00:32:32,470 e per codice, mi riferisco solo testo. 648 00:32:32,470 --> 00:32:35,660 Il testo che ho potuto letteralmente digitato in Microsoft Word, se avessi avuto la 649 00:32:35,660 --> 00:32:37,630 software giusto per poi fare qualcosa con esso. 650 00:32:37,630 --> 00:32:42,120 Il codice sorgente di programmazione, programmazione codice, è in realtà solo il testo, e 651 00:32:42,120 --> 00:32:45,420 un aspetto diverso in base a quale lingua si sta utilizzando, non diversamente inglese e 652 00:32:45,420 --> 00:32:49,200 Spagnolo e russo sembrano tutti diversi quando si digita li a vostra tastiera. 653 00:32:49,200 --> 00:32:53,520 >> Quindi questa prima linea, per ora assumere fede, si apre semplicemente un grafico dal 654 00:32:53,520 --> 00:32:56,160 internet, che grafico rumoroso abbiamo appena visto. 655 00:32:56,160 --> 00:32:59,900 Questa successiva linea qui è un esempio di un loop, e in realtà abbiamo visto che lo stesso 656 00:32:59,900 --> 00:33:01,130 gergo nel video TED. 657 00:33:01,130 --> 00:33:03,750 Un ciclo è una cosa che accade di nuovo e di nuovo, e anche se questo 658 00:33:03,750 --> 00:33:08,440 assolutamente sembra criptico, con il per parola chiave, e alcuni tra parentesi, e 659 00:33:08,440 --> 00:33:09,510 alcuni punti e virgola. 660 00:33:09,510 --> 00:33:13,070 Torneremo a che tra non molto, ma questo loop è essenzialmente 661 00:33:13,070 --> 00:33:17,310 raccontando il programma, iterare tutti dei dot rumorosi, da sinistra a 662 00:33:17,310 --> 00:33:18,980 a destra, dall'alto in basso. 663 00:33:18,980 --> 00:33:21,260 >> Perché alla fine della giornata, un'immagine come questo - e in realtà si può 664 00:33:21,260 --> 00:33:22,860 tipo di vederla su questo proiettore - 665 00:33:22,860 --> 00:33:25,280 è in realtà solo una griglia di punti. 666 00:33:25,280 --> 00:33:29,730 Così siamo in grado di identificare ciascuno di questi punti da una coordinata, x, y, e con questo 667 00:33:29,730 --> 00:33:33,890 programma, ora possiamo cominciare a fare qualcosa per quei punti. 668 00:33:33,890 --> 00:33:37,540 >> Così che cosa ho intenzione di andare avanti qui e non è che io vado a fare alcune modifiche. 669 00:33:37,540 --> 00:33:41,000 In primo luogo ho intenzione di andare avanti e di liberarsi di tutto questo verdastro e bluastro 670 00:33:41,000 --> 00:33:43,520 rumore, e ho intenzione di andare avanti e digitare il seguente 671 00:33:43,520 --> 00:33:45,710 dichiaratamente sintassi criptica. 672 00:33:45,710 --> 00:33:48,020 im per un'immagine. 673 00:33:48,020 --> 00:33:53,380 impostare blu alla posizione x, virgola, posizione y, a 0. 674 00:33:53,380 --> 00:33:55,610 In altre parole, voglio solo spegnere tutti i blu 675 00:33:55,610 --> 00:33:56,920 punti in quella foto. 676 00:33:56,920 --> 00:33:59,800 >> Ho intenzione di andare avanti ora e fare clic su Pulsante questo Run / Salva, e ti 677 00:33:59,800 --> 00:34:02,850 notare sul lato destro, appare l'immagine risultante. 678 00:34:02,850 --> 00:34:06,120 Ora il suo super-verde, ma non è sorprendente, perché ho letteralmente girato 679 00:34:06,120 --> 00:34:11,070 off, facendo a 1 a 0, tutti il blu in quella foto. 680 00:34:11,070 --> 00:34:12,540 >> Bene, ora facciamo un po 'di più. 681 00:34:12,540 --> 00:34:16,989 im per un'immagine, dot setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 E questo significa solo iterate da sinistra a destra e dall'alto verso il basso. 683 00:34:20,659 --> 00:34:23,520 Spegnerlo con un valore di 0, pure. 684 00:34:23,520 --> 00:34:24,750 Salva. 685 00:34:24,750 --> 00:34:28,100 E sul proiettore, non è possibile in realtà davvero vedere nulla. 686 00:34:28,100 --> 00:34:31,380 >> Sul mio schermo del computer portatile, se scruto in appena nel modo giusto, posso vedere un po 'di un 687 00:34:31,380 --> 00:34:33,300 immagine, perché sono ancora qualche rosso in là. 688 00:34:33,300 --> 00:34:35,540 Se hai mai sentito la sigla RGB - 689 00:34:35,540 --> 00:34:36,830 rosso, verde, blu - 690 00:34:36,830 --> 00:34:39,110 , esso si riferisce a questa composizione di un'immagine utilizzando 691 00:34:39,110 --> 00:34:40,230 solo quei tre colori. 692 00:34:40,230 --> 00:34:43,159 E proprio ora, abbiamo buttato via tutto verde, tutto blu, ma 693 00:34:43,159 --> 00:34:44,500 non c'è molto rosso. 694 00:34:44,500 --> 00:34:45,920 >> Quindi, mi permetta di alzare il rosso. 695 00:34:45,920 --> 00:34:47,070 Come posso fare questo? 696 00:34:47,070 --> 00:34:49,300 Beh, in primo luogo, ho intenzione di chiedere questo programma di una domanda. 697 00:34:49,300 --> 00:34:52,030 Ho intenzione di andare avanti e chiamiamolo una variabile, proprio come in algebra. 698 00:34:52,030 --> 00:34:54,060 Si può avere x oppure y o z. 699 00:34:54,060 --> 00:34:57,230 Ho intenzione di dichiarare una variabile e dire, mettere in questa variabile, 700 00:34:57,230 --> 00:35:02,790 temporaneamente, il valore del immagini getRed valore in x, y. 701 00:35:02,790 --> 00:35:05,870 >> E ancora, ci torneremo a tutti di questo dettaglio in futuro. 702 00:35:05,870 --> 00:35:10,630 Ma per ora, basta prendere sulla fede che questa linea sta chiedendo il programma, cosa 703 00:35:10,630 --> 00:35:12,740 è il valore di rosso in x, y? 704 00:35:12,740 --> 00:35:14,450 In quel particolare punto? 705 00:35:14,450 --> 00:35:15,710 >> Poi ho intenzione di fare qualcosa per esso. 706 00:35:15,710 --> 00:35:21,100 Poi ho intenzione di fare immagine puntino rosso set in x, y, y, ma questa volta ho intenzione di 707 00:35:21,100 --> 00:35:24,760 incrementare esso facendo volte rosse, diciamo, 10. 708 00:35:24,760 --> 00:35:26,870 Quindi aumentarlo di un fattore 10. 709 00:35:26,870 --> 00:35:29,880 Permettetemi di zoom out ora e scatto potrebbe Esegui / Salva. 710 00:35:29,880 --> 00:35:36,430 E voilà, che era lì l'intera tempo, anche se i nostri occhi umani 711 00:35:36,430 --> 00:35:37,900 non riusciva a vederlo. 712 00:35:37,900 --> 00:35:41,470 >> Quindi, di nuovo, questo ora è il codice vero e proprio, un esempio di un linguaggio che verremo 713 00:35:41,470 --> 00:35:42,770 Torna alla prima lunga. 714 00:35:42,770 --> 00:35:46,670 Ma rendersi conto, in particolare quelli di voi senza tale esperienza, è abbastanza 715 00:35:46,670 --> 00:35:50,280 presto che noi stessi saremo scrittura del codice come quello lì. 716 00:35:50,280 --> 00:35:54,520 In effetti, uno strumento con cui siete tutti un po 'familiare, forse, è CS50 di 717 00:35:54,520 --> 00:35:57,330 proprio strumento di corso-shopping, che è stato effettivamente riavviato questa estate da parte di alcuni 718 00:35:57,330 --> 00:36:01,070 dei propri ex studenti del CS50, ora girare TFS. 719 00:36:01,070 --> 00:36:04,740 >> Quindi, questo sembra essere un sito web costruito in un linguaggio chiamato PHP. 720 00:36:04,740 --> 00:36:08,510 Esso utilizza un database chiamato MySQL, cose grazie al quale potremo mettere le mani 721 00:36:08,510 --> 00:36:10,190 sporco più avanti nel semestre. 722 00:36:10,190 --> 00:36:14,140 Ma che ci crediate o no, anche qualcosa di come questo riduce in ultima analisi, alla 723 00:36:14,140 --> 00:36:19,480 semplice dei cicli e delle condizioni e rami, come quelli che abbiamo visto solo un 724 00:36:19,480 --> 00:36:21,530 poco fa nel video TED. 725 00:36:21,530 --> 00:36:25,180 >> Che cosa ho pensato di fare ora è quota non solo qualcosa che il personale abbiamo fatto 726 00:36:25,180 --> 00:36:28,010 per il campus, ma piuttosto qualcosa di un ex studente - tre 727 00:36:28,010 --> 00:36:29,080 studenti, infatti - 728 00:36:29,080 --> 00:36:33,950 fatto lo scorso anno, la Sierra, Daniel, e Sam, l'ultimo dei quali non aveva alcun precedente 729 00:36:33,950 --> 00:36:36,370 esperienza di programmazione quando ha preso CS50. 730 00:36:36,370 --> 00:36:39,950 E per il loro progetto finale, esposto, presso la Fiera CS50, un 731 00:36:39,950 --> 00:36:43,720 applicazione chiamata wrdly, che è un programma basato su Web per la quale hanno fatto 732 00:36:43,720 --> 00:36:47,670 questo video che ho pensato di condividere a vi darà un senso di ciò che è 733 00:36:47,670 --> 00:36:49,280 possibile dalla fine del periodo. 734 00:36:49,280 --> 00:37:57,170 >> [MUSIC PLAYING] 735 00:37:57,170 --> 00:38:00,570 >> DAVID MALAN: Ecco da Zero Settimana alla Settimana 12 lo scorso anno. 736 00:38:00,570 --> 00:38:05,470 >> [Applausi] 737 00:38:05,470 --> 00:38:09,520 >> DAVID MALAN: Come un teaser, troppo, davvero per stuzzicare l'appetito è quello di ciò che è 738 00:38:09,520 --> 00:38:14,580 possibile, potreste aver visto già, o potrebbe presto vedere, market.cs50.net, un 739 00:38:14,580 --> 00:38:17,710 nuovo strumento che la squadra del corso ha lavorato su, questa volta in 740 00:38:17,710 --> 00:38:21,530 collaborazione con la Harvard Student Agenzie, in modo tale che a partire da quest'anno 741 00:38:21,530 --> 00:38:24,980 e continuando auspicabilmente in questa prossima estate avrai uno standard 742 00:38:24,980 --> 00:38:27,890 opportunità nel campus di acquistare e vendere le cose che vi interessano. 743 00:38:27,890 --> 00:38:32,220 E con la collaborazione con HSA, ti anche essere in grado di rilasciare gli elementi fuori 744 00:38:32,220 --> 00:38:35,950 in uno dei negozi fisici di HSA a un certo punto in futuro, così da 745 00:38:35,950 --> 00:38:39,150 cose proxy, in particolare, come si laurearsi e non necessariamente vogliono 746 00:38:39,150 --> 00:38:44,110 scartare le cose, ma in realtà pagarlo inoltrare a persone che potrebbero seguire voi 747 00:38:44,110 --> 00:38:45,270 qui nel campus. 748 00:38:45,270 --> 00:38:46,740 Quindi, più su quello a venire. 749 00:38:46,740 --> 00:38:49,830 >> Ma un po 'più concretamente, un utensile che è uscito di recente in CS50 750 00:38:49,830 --> 00:38:52,760 anni, con la quale alcuni di voi potrebbero essere familiare e gli altri di voi potrebbero essere 751 00:38:52,760 --> 00:38:57,940 googling ora, a CS50.net/2x, si trovare un link ad una estensione Chrome 752 00:38:57,940 --> 00:39:01,250 che è dimostrativa di come si può utilizzare JavaScript, quella stessa lingua che 753 00:39:01,250 --> 00:39:06,660 usato con la torre Eiffel un momento fa, di attuare velocità di riproduzione 2x 754 00:39:06,660 --> 00:39:09,000 per tutti Harvard iSites video. 755 00:39:09,000 --> 00:39:11,880 Questo è qualcosa che è costruito in un lettore video del CS50. 756 00:39:11,880 --> 00:39:14,870 Ma anche questo, se si comincia a scavare nel codice sorgente, che faremo 757 00:39:14,870 --> 00:39:18,840 felicemente a disposizione, si vedrà come si può anche risolvere problemi come questo, 758 00:39:18,840 --> 00:39:23,180 accelerando widget in siti web con che si è già familiare. 759 00:39:23,180 --> 00:39:26,630 >> Così una parola ora sul corso e aspettative e quello che ci aspetta. 760 00:39:26,630 --> 00:39:29,445 In generale, ci riuniamo in effetti qui il lunedì e il mercoledì - anche se 761 00:39:29,445 --> 00:39:31,490 questo Venerdì, ci riuniamo perché di Shopping Week - 762 00:39:31,490 --> 00:39:34,640 1:00-14:00, anche se a volte fino alle 2:30. 763 00:39:34,640 --> 00:39:38,700 Dato che si potrebbe quindi voler o prendere un po 'di classe a 02:00 764 00:39:38,700 --> 00:39:42,480 poi, o anche prima, non realizzare l' corso è di supporto di quella che viene chiamata 765 00:39:42,480 --> 00:39:45,900 contemporanea iscrizione, per cui faremo sostegno di una petizione per l'annuncio Board e 766 00:39:45,900 --> 00:39:49,400 il tuo residente presidi per vostro conto se si dispone di un conflitto da qualche parte in questo 767 00:39:49,400 --> 00:39:50,790 1:00-02:30 gamma. 768 00:39:50,790 --> 00:39:54,110 Testa a tale URL online ulteriori dettagli. 769 00:39:54,110 --> 00:39:57,750 >> Ma in termini di struttura di supporto che caratterizza CS50, per gli studenti 770 00:39:57,750 --> 00:40:01,750 più e meno confortevole allo stesso modo, abbiamo offrire percorsi distinti di sezioni. 771 00:40:01,750 --> 00:40:04,730 E questo è un paio di settimane di riposo, ma In poco tempo, ti verrà chiesto da 772 00:40:04,730 --> 00:40:05,770 il livello di comfort. 773 00:40:05,770 --> 00:40:08,590 Sei tra quelli meno confortevole, più confortevole, o 774 00:40:08,590 --> 00:40:10,520 una via di mezzo? 775 00:40:10,520 --> 00:40:13,150 >> E avremo tre distinti tracce che si rivolgono a 776 00:40:13,150 --> 00:40:14,470 proprio quei pubblico. 777 00:40:14,470 --> 00:40:17,900 Quindi, in nessun punto del termine si dovrebbe anche sentire come si è in competizione 778 00:40:17,900 --> 00:40:21,390 contro ogni studente con più o meno sfondo di te. 779 00:40:21,390 --> 00:40:24,160 Infatti, il corso è destinato a essere molto più collaborativo e molto 780 00:40:24,160 --> 00:40:25,650 più aperto di quello. 781 00:40:25,650 --> 00:40:29,030 >> In termini di set di problema, sarete trovare, anche, che oltre alla 782 00:40:29,030 --> 00:40:32,130 edizione standard del problema di ogni settimana impostato, c'è spesso un "hacker 783 00:40:32,130 --> 00:40:37,010 edizione "che è destinato a essere preso di mira al 5% al ​​10% circa del 784 00:40:37,010 --> 00:40:40,270 demografiche che è infatti tra quelli più confortevole e vorrebbe più 785 00:40:40,270 --> 00:40:43,960 di una sfida quella standard edizione che pset aspetta. 786 00:40:43,960 --> 00:40:46,390 Maggiori dettagli su quelle che saranno trovato nel programma. 787 00:40:46,390 --> 00:40:49,430 >> Ma anche lì si possono trovare i dettagli sui corsi di giorni di ritardo. 788 00:40:49,430 --> 00:40:51,570 Tipicamente problema imposta sono dovuti il ​​giovedì. 789 00:40:51,570 --> 00:40:55,550 Tuttavia, è possibile estendere molti dei vostri scadenze di questo autunno da giovedì a 790 00:40:55,550 --> 00:41:00,010 Venerdì semplicemente incontrarci a metà strada, per così dire, rispondendo a un paio di warm-up 791 00:41:00,010 --> 00:41:03,370 domande in alcuni dei problemi della settimana set, che automaticamente 792 00:41:03,370 --> 00:41:05,710 poi vi darà un extra di 24 ore. 793 00:41:05,710 --> 00:41:09,120 Ci sarà anche cadere il più basso punteggio, come da programma. 794 00:41:09,120 --> 00:41:12,170 >> Per darvi un'idea di ciò che il problema set sono - perché è davvero 795 00:41:12,170 --> 00:41:15,120 il problema del corso stabilisce che infine definire quasi ogni 796 00:41:15,120 --> 00:41:18,760 L'esperienza di studente, più che lezioni, più che le sezioni, più 797 00:41:18,760 --> 00:41:21,230 in modo che la maggior parte qualsiasi altro aspetto del corso. 798 00:41:21,230 --> 00:41:25,140 L'anno scorso, per esempio, abbiamo cominciato, come inizieremo quest'anno, con Scratch. 799 00:41:25,140 --> 00:41:29,150 In particolare questo Venerdì, useremo, per giusto il tempo di un giorno, un grafico 800 00:41:29,150 --> 00:41:32,260 linguaggio di programmazione, con la quale faremo avviare la programmazione trascinando e 801 00:41:32,260 --> 00:41:37,580 lasciando cadere pezzi di un puzzle che solo assemblare fisicamente se ha un senso 802 00:41:37,580 --> 00:41:38,990 per fare in modo logico. 803 00:41:38,990 --> 00:41:43,460 >> La prossima settimana, faremo in modo rapido passaggio alla C, una abbastanza vecchio ma molto piccola e 804 00:41:43,460 --> 00:41:48,510 linguaggio semplice che ci permetterà di davvero andare da 0 a 60 nel corso 805 00:41:48,510 --> 00:41:52,290 di appena un paio di settimane, e poi Parlay quelle stesse competenze e conoscenze di 806 00:41:52,290 --> 00:41:56,160 costrutti di programmazione di base in linguaggi di alto livello come PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript e ancora altri ancora. 808 00:41:58,240 --> 00:42:02,560 >> L'anno scorso, il terzo pset in corso era quello di crittografia, un 809 00:42:02,560 --> 00:42:06,380 applicazione specifico del dominio per cui abbiamo studenti sfidato per attuare qualsiasi 810 00:42:06,380 --> 00:42:11,140 numero di cifre, i programmi con i quali per rimescolare o decodificare le informazioni, 811 00:42:11,140 --> 00:42:11,880 di cifratura. 812 00:42:11,880 --> 00:42:16,300 Per l'edizione pirata, per contrasto, abbiamo dato agli studenti degli hacker un file 813 00:42:16,300 --> 00:42:19,900 da un computer Unix standard contenente nomi utente e password, 814 00:42:19,900 --> 00:42:22,740 il secondo di che fosse cifrato, e abbiamo sfidato quelle degli hacker 815 00:42:22,740 --> 00:42:26,850 studenti a decifrare, come meglio potevano, le password, ancora su quel 816 00:42:26,850 --> 00:42:27,770 stesso dominio. 817 00:42:27,770 --> 00:42:30,580 >> Scramble, un gioco con cui alcuni di voi sono forse familiarità. 818 00:42:30,580 --> 00:42:34,410 Un pezzo forense, in cui chiediamo agli studenti per recuperare i dati che erano stati 819 00:42:34,410 --> 00:42:38,530 altrimenti cancellato dalla mia digitale scheda Compact Flash della fotocamera, da 820 00:42:38,530 --> 00:42:42,740 in realtà la scrittura di software per capire, dove erano gli zeri e di uno in 821 00:42:42,740 --> 00:42:46,850 che la macchina fotografica digitale che in precedenza composto da un grafico JPEG? 822 00:42:46,850 --> 00:42:49,710 >> Una sfida del genere l'anno scorso coinvolgendo scrittura il più veloce 823 00:42:49,710 --> 00:42:53,160 correttore ortografico possibile, in competizione contro gli amici e compagni di classe, se 824 00:42:53,160 --> 00:42:53,860 vorrebbero. 825 00:42:53,860 --> 00:42:56,330 Implementazione Huff 'n Puff, un programma di compressione. 826 00:42:56,330 --> 00:43:01,930 E poi termina il semestre con CS50 Finanza, una applicazione web-based con 827 00:43:01,930 --> 00:43:06,570 che si crea un sito web eTrade simile per comprare e vendere azioni, in modo da 828 00:43:06,570 --> 00:43:09,860 parlare, da realtà tirando quasi quotazioni in tempo reale Yahoo! 829 00:43:09,860 --> 00:43:10,450 Finanza. 830 00:43:10,450 --> 00:43:13,590 >> Ciò che non abbiamo fatto l'anno scorso era un set problema che rimane 831 00:43:13,590 --> 00:43:14,810 comunque un favorito. 832 00:43:14,810 --> 00:43:18,400 Se non sei mai andato a shuttle.cs50.net, vedrai un utente 833 00:43:18,400 --> 00:43:19,670 interfacciare un po 'come questo. 834 00:43:19,670 --> 00:43:23,530 Ma due anni fa, la classe implementato, utilizzando Google Maps e la 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in e un po ' di buon senso con la guida intorno alla città universitaria, 836 00:43:28,570 --> 00:43:33,290 in modo che l'obiettivo di questo gioco è stato, come potete vedere alcuni dei volti, 837 00:43:33,290 --> 00:43:37,530 è quello di guidare intorno alla città universitaria cercando personale, compagni di insegnamento e CA, e 838 00:43:37,530 --> 00:43:40,080 quando si fanno, mettendoli sul vostro bus navetta. 839 00:43:40,080 --> 00:43:44,035 Nessuno di loro sembra davvero di essere qui, così stiamo per entrare in un cheat code. 840 00:43:44,035 --> 00:43:47,150 >> [Risata] 841 00:43:47,150 --> 00:43:48,430 >> DAVID MALAN: Ci andiamo. 842 00:43:48,430 --> 00:43:49,240 D'accordo. 843 00:43:49,240 --> 00:43:51,750 E qui ora è il personale cucita tutta campus. 844 00:43:51,750 --> 00:43:54,530 E come potete vedere, sulla destra lato dello schermo, la navetta 845 00:43:54,530 --> 00:43:55,510 ha posti vuoti. 846 00:43:55,510 --> 00:43:59,000 E l'obiettivo è stato quello di scrivere il codice con cui simulare questo 847 00:43:59,000 --> 00:44:01,790 di guida e di far salire e abbandonano off di passeggeri. 848 00:44:01,790 --> 00:44:04,960 Anche questa qui, utilizzando un linguaggio chiamata JavaScript. 849 00:44:04,960 --> 00:44:10,030 Quindi rendersi conto che i programmi del genere sarà essere sulla nostra stessa traiettoria questa 850 00:44:10,030 --> 00:44:10,910 anno, pure. 851 00:44:10,910 --> 00:44:13,640 >> In termini, ora, di supporto aggiuntivo, abbiamo orari di ufficio. 852 00:44:13,640 --> 00:44:16,520 Come forse avrete visto nella propria casa sala da pranzo o in Annenberg, 853 00:44:16,520 --> 00:44:19,280 saremo in sala da casa sale quattro notti a settimana - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot e Annenberg quest'anno, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 E che cosa abbiamo pensato di fare questo anno è una cosa un po 'diversa. 856 00:44:26,830 --> 00:44:29,650 >> Se avete sentito brontolii dello scorso anno che era un po 'troppo stressante, questo 857 00:44:29,650 --> 00:44:32,800 orario di ufficio anno, come vedremo descriviamo la prossima settimana, sarà più organico, 858 00:44:32,800 --> 00:44:36,900 per cui al momento dell'arrivo, sarete inviato a una particolare tabella 859 00:44:36,900 --> 00:44:39,860 in cui più membri dello staff attendono, e noi faremo cose molto più 860 00:44:39,860 --> 00:44:40,440 organicamente. 861 00:44:40,440 --> 00:44:43,740 Niente più code, niente più iPad, ma Preferirei avere più intimo 862 00:44:43,740 --> 00:44:47,300 conversazioni intorno a un tavolo di soli otto o così gli studenti, in modo da 863 00:44:47,300 --> 00:44:50,880 approssimare la sensazione di ciò che altrimenti sarebbe una classe molto più piccolo. 864 00:44:50,880 --> 00:44:54,120 >> Offriamo, così, queste cose noi chiamato procedure dettagliate, video girati in 865 00:44:54,120 --> 00:44:57,330 avanzare di uno degli insegnamenti del corso borsisti, Zamyla, in cui ha 866 00:44:57,330 --> 00:45:00,690 ti guida attraverso problema della settimana set, che offre suggerimenti e trucchi per la 867 00:45:00,690 --> 00:45:02,640 le sfide che ci attendono. 868 00:45:02,640 --> 00:45:06,230 E viceversa, dopo il set problema sono dovuta, quest'anno, ci sarà anche rilasciare 869 00:45:06,230 --> 00:45:09,100 piccole clip chiamano autopsie che effettivamente camminare attraverso 870 00:45:09,100 --> 00:45:13,630 soluzioni rappresentative, nel bene e nel male, attraverso la quale si può dedurre come 871 00:45:13,630 --> 00:45:17,550 si potrebbe avere o dovrebbe avere implementato la propria soluzione. 872 00:45:17,550 --> 00:45:20,500 >> E ciò che vi offriamo per la prima volta anche quest'anno, in particolare 873 00:45:20,500 --> 00:45:23,420 per gli studenti che si avvalgono del corso di altra 874 00:45:23,420 --> 00:45:28,580 risorse, ma comunque sono in difficoltà tutto troppo, il corso 875 00:45:28,580 --> 00:45:33,030 stessa sarà accoppiare gli studenti, come le risorse lo permettono, con i tutor in modo che 876 00:45:33,030 --> 00:45:35,840 si dispone di un molto più intimo opportunità di casa sale da pranzo 877 00:45:35,840 --> 00:45:38,700 consentire l'assistenza one-to-one. 878 00:45:38,700 --> 00:45:42,780 >> Ora uno sguardo finale ad un certo dei giochi si vede la fine. 879 00:45:42,780 --> 00:45:44,580 Si potrebbe avere familiarità con il CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Beh, venendo a dicembre, dalle ore 8:00 PM a 7:00, all'inizio del 881 00:45:48,120 --> 00:45:51,410 Leggere Periodo, sarà l'occasione per riunirsi con i compagni di classe - 882 00:45:51,410 --> 00:45:53,130 questo sarebbe di circa 9:00 PM - 883 00:45:53,130 --> 00:45:56,550 durante il quale ci si immerge nella finale implementazione del progetto a fianco 884 00:45:56,550 --> 00:45:59,910 compagni di classe, amici e cibo. 885 00:45:59,910 --> 00:46:03,680 Questo sarebbe di circa 1:00, quando il primo lotto di cibo arrivato. 886 00:46:03,680 --> 00:46:08,470 E questa è circa 4:00 che particolare anno alla CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Ma il vero culmine del corso è significato per la Fiera CS50, un campus a livello 888 00:46:12,000 --> 00:46:15,790 mostra dei vostri progetti finali, a cui la famiglia e gli amici sono tutti 889 00:46:15,790 --> 00:46:18,730 invitato, come i nostri reclutatori e i nostri amici da industria. 890 00:46:18,730 --> 00:46:22,170 Questo, per esempio, è uno scorcio del 2.000 e più persone che hanno partecipato 891 00:46:22,170 --> 00:46:23,160 anni passati. 892 00:46:23,160 --> 00:46:27,180 Espressioni come questo non sono rari, e allo stesso modo fare la tua 893 00:46:27,180 --> 00:46:29,660 compagni di classe dilettano nelle cose che hai compiuto. 894 00:46:29,660 --> 00:46:33,170 >> E in realtà, verso quel fine, abbiamo un evento di avvio del termine, pure. 895 00:46:33,170 --> 00:46:37,400 Se le cose come questo appello a voi, o siete almeno curioso di sapere cosa 896 00:46:37,400 --> 00:46:41,590 questo, sappiate che una nuova tradizione del corso si chiama CS50 Puzzle Giorno. 897 00:46:41,590 --> 00:46:45,710 E questo è stato istituito un paio di anni fa per segnalare veramente al campus 898 00:46:45,710 --> 00:46:48,930 che l'informatica non si tratta di programmazione, e non è certamente 899 00:46:48,930 --> 00:46:51,960 circa abbracciando solo quegli studenti che hanno una precedente esperienza. 900 00:46:51,960 --> 00:46:54,200 E 'davvero di risolvere i problemi più in generale. 901 00:46:54,200 --> 00:46:57,360 >> E così Puzzle Giorno, negli ultimi pochi anni, si è evoluto in un bel 902 00:46:57,360 --> 00:47:00,500 partnership con i nostri amici a Facebook, per cui ci sarà favoloso 903 00:47:00,500 --> 00:47:04,830 premi e pizza attraverso il fiume a l'i-lab il prossimo Sabato. 904 00:47:04,830 --> 00:47:09,180 Dirigetevi verso l'URL con due o tre amici se si desidera partecipare 905 00:47:09,180 --> 00:47:10,830 in questa nuova tradizione. 906 00:47:10,830 --> 00:47:14,180 >> Quindi vorrei chiedere di mantenere uno cosa in mente, e abbiamo solo un 907 00:47:14,180 --> 00:47:17,070 due minuti clip sul quale per chiudere oggi. 908 00:47:17,070 --> 00:47:19,640 73% è il numero di ricordare. 909 00:47:19,640 --> 00:47:23,900 Torta, troppo, vi attenderà fuori dal transetto come aggiornare in appena un 910 00:47:23,900 --> 00:47:26,710 paio di momenti, che è una tradizione del corso, pure. 911 00:47:26,710 --> 00:47:29,860 Ma questa è la citazione chiave dal piano di studi del corso da tenere a mente. 912 00:47:29,860 --> 00:47:32,820 Ciò che conta in ultima analisi, in questo corso non è tanto dove si finisce 913 00:47:32,820 --> 00:47:36,580 relativa ai vostri compagni di classe, ma in cui si, in settimana 12, finisce rispetto al 914 00:47:36,580 --> 00:47:37,960 te nella Settimana 0. 915 00:47:37,960 --> 00:47:43,670 >> Ma il colpo d'occhio che ci lascerà con oggi è quest'ultimo qui 916 00:47:43,670 --> 00:47:47,580 dal nostro stesso Daniel, che ha fatto il Video wrdly solo un momento fa. 917 00:47:47,580 --> 00:47:50,000 Vi lascio con questo scorcio di quello che ci aspetta. 918 00:47:50,000 --> 00:47:53,360 E come facciamo questo, se potessimo avere CS50 personale dalla parte anteriore della camera 919 00:47:53,360 --> 00:47:57,280 a venire su fino alla fase di dipingere tutto più di un'immagine visiva da 920 00:47:57,280 --> 00:47:59,100 cosa vi aspetta quest'anno - 921 00:47:59,100 --> 00:48:00,350 sempre imbarazzante. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Concluderemo con questo qui sullo schermo. 924 00:48:05,188 --> 00:48:18,634 >> [MUSIC PLAYING] 925 00:48:18,634 --> 00:48:21,124 >> DAVID MALAN: Questo è CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSICA - MATT & Kim, "Va tutto bene"] 927 00:50:00,226 --> 00:50:03,245 >> SPEAKER 1: I love CS50 più di gatti. 928 00:50:03,245 --> 00:50:06,030 >> SPEAKER 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Risata] 930 00:50:06,990 --> 00:50:08,140 >> DAVID MALAN: Questo, poi, è CS50. 931 00:50:08,140 --> 00:50:10,050 Ci vediamo il Venerdì. 932 00:50:10,050 --> 00:50:13,370 >> [Applausi e tifo] 933 00:50:13,370 --> 00:50:17,540 >> NARRATORE: Al prossimo CS50, un palco demo non va come previsto. 934 00:50:17,540 --> 00:50:19,080 >> DAVID MALAN: vogliamo trovare Mike Smith in questa rubrica. 935 00:50:19,080 --> 00:50:20,380 Ebbene, quali sono i tuoi istinti? 936 00:50:20,380 --> 00:50:23,750 Potrei saltare all'incirca alla metà del l'elenco telefonico, sguardo basso, vedere che 937 00:50:23,750 --> 00:50:26,830 Sono a M, e ora so che Mike Smith non è a sinistra. 938 00:50:26,830 --> 00:50:27,840 Egli deve essere a destra. 939 00:50:27,840 --> 00:50:30,515 E quindi a questo punto, abbiamo può letteralmente strappare - 940 00:50:30,515 --> 00:50:33,300 A questo punto, possiamo letteralmente strappare - 941 00:50:33,300 --> 00:50:36,490 A questo punto, possiamo figurativamente strappare la rubrica a metà. 942 00:50:36,490 --> 00:50:38,954 >> [Strumming Ukelele]