1 00:00:00,000 --> 00:00:10,980 >> [GIOCO MUSICA] 2 00:00:10,980 --> 00:00:13,260 >> -Alright! 3 00:00:13,260 --> 00:00:16,400 >> -Questa è CS50. 4 00:00:16,400 --> 00:00:18,220 >> -Questa è CS50. 5 00:00:18,220 --> 00:00:19,324 >> -Questa è CS50. 6 00:00:19,324 --> 00:00:20,615 [MUSICA - IGGY AZALEA, "FANTASIA"] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> -Il Mio ricordo preferito da CS50 è stato quando sono andato a Puzzle giorno. 9 00:00:33,570 --> 00:00:35,797 >> -Probabilmente Solo il tempo impiegato per lavorare sui set di problemi 10 00:00:35,797 --> 00:00:38,630 con i miei amici e le persone che Wold alla fine diventano i miei blockmates. 11 00:00:38,630 --> 00:00:40,421 >> -Il Mio miglior ricordo da CS50 è il Hackathon. 12 00:00:40,421 --> 00:00:41,630 -Il CS50 Hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -Il Hackathon 17 00:00:43,883 --> 00:00:45,027 -Rob Bowden. 18 00:00:45,027 --> 00:00:46,110 Proprio tutto di lui. 19 00:00:46,110 --> 00:00:47,401 >> [MUSICA - IGGY AZALEA, "FANTASIA"] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> -Il Mio ricordo più bello è quando ero in palco e ho svolto il ruolo di prestigio 22 00:01:02,512 --> 00:01:04,220 di un nodo [? nel Linked?] [? Lista. ?] 23 00:01:04,220 --> 00:01:08,470 >> -Quando Abbiamo tutti avuto spazio libero su Dropbox e David era come, guardare sotto i vostri posti. 24 00:01:08,470 --> 00:01:10,520 Ed è stato come, spazio per tutti! 25 00:01:10,520 --> 00:01:11,811 >> [MUSICA - IGGY AZALEA, "FANTASIA"] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> Consigli -My per qualsiasi studente in arrivo sarebbe 28 00:01:22,830 --> 00:01:26,170 essere quello di lavorare veramente su P-set con gli amici. 29 00:01:26,170 --> 00:01:27,960 >> Ore -Ufficio è molto vostro amico. 30 00:01:27,960 --> 00:01:30,870 >> -Fare Al meglio la vostra esperienza e incontrare quante più persone possibile. 31 00:01:30,870 --> 00:01:32,390 >> -Non Abbiate paura di chiedere aiuto. 32 00:01:32,390 --> 00:01:33,890 -start I P-set all'inizio della settimana. 33 00:01:33,890 --> 00:01:36,723 -I Che la cosa più importante è quello di approfittare di tutte le risorse 34 00:01:36,723 --> 00:01:37,950 che ha CS50. 35 00:01:37,950 --> 00:01:39,960 >> -Vai Di ore d'ufficio all'inizio della settimana. 36 00:01:39,960 --> 00:01:41,430 >> -decisamente Guardare i cortometraggi. 37 00:01:41,430 --> 00:01:42,989 >> -Non Procrastinare il vostro P-set. 38 00:01:42,989 --> 00:01:45,780 -Assicurarsi Si trova un grande gruppo di persone di lavorare su P-set con. 39 00:01:45,780 --> 00:01:48,530 Si può avere un sacco di divertimento e ottenere il lavoro fatto insieme. 40 00:01:48,530 --> 00:01:50,370 >> -Non Abbiate paura di spingere te stesso. 41 00:01:50,370 --> 00:01:52,080 Andare per l'edizione di hacker a volte. 42 00:01:52,080 --> 00:01:55,410 >> Cose -Scrivi su carta prima Avete mai toccare il computer. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 È davvero grande a fornendo modi per ottenere aiuto. 44 00:01:58,380 --> 00:02:01,134 >> -Mio Un consiglio è il sonno. 45 00:02:01,134 --> 00:02:02,050 Qualcuno ha detto che? 46 00:02:02,050 --> 00:02:04,100 Sonno, di sicuro. 47 00:02:04,100 --> 00:02:08,919 E 'facile non fare, ma hai avuto modo di farlo, credo. 48 00:02:08,919 --> 00:02:12,982 >> -Vorrei Dire davvero essere mentalmente preparati perché si sta andando ad amarla. 49 00:02:12,982 --> 00:02:14,273 [MUSICA - IGGY AZALEA, "FANTASIA"] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> -Questa è CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> -Questa è CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> -Questa è CS50. 56 00:02:26,989 --> 00:02:28,280 [MUSICA - IGGY AZALEA, "FANTASIA"] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> -Questa è CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [Applausi] 61 00:02:42,270 --> 00:02:46,040 >> DAVID J. MALAN: Quindi questo è CS50 e questa è la fine della settimana 0. 62 00:02:46,040 --> 00:02:48,770 E questo era solo un po ' del personale di CS50 che 63 00:02:48,770 --> 00:02:51,100 aspettano non solo nelle sezioni e le ore di ufficio, ma, 64 00:02:51,100 --> 00:02:54,390 inoltre, il prossimo fine settimana a CS50 Puzzle giorno. 65 00:02:54,390 --> 00:02:56,410 Il che, ancora una volta, non è tutto sulla programmazione. 66 00:02:56,410 --> 00:02:59,710 Infatti, ci si aspetta che si non dovranno programmare nulla, 67 00:02:59,710 --> 00:03:03,780 ma piuttosto risolvere i problemi utilizzando ingegno e amici accanto a te. 68 00:03:03,780 --> 00:03:06,400 >> Ci sarà affiancato da alcuni dei nostri amici a Facebook-- 69 00:03:06,400 --> 00:03:08,980 se si registra qui-- che per il passato parecchi anni, 70 00:03:08,980 --> 00:03:11,450 sono stati effettivamente scrivendo queste sfide con noi. 71 00:03:11,450 --> 00:03:14,822 E così, essi saranno quelli in ultima analisi, l'esecuzione Puzzle giorno. 72 00:03:14,822 --> 00:03:17,530 E così, sarete sfidati con precisione il tipo di cose 73 00:03:17,530 --> 00:03:20,520 ei problemi che la gente a Facebook piace pensare. 74 00:03:20,520 --> 00:03:21,860 In modo che sia domani. 75 00:03:21,860 --> 00:03:25,980 Registrati a cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Ora una parola su un paio del personale in particolare. 77 00:03:28,120 --> 00:03:30,090 Questo qui è Ansel Duff, che è in realtà uno 78 00:03:30,090 --> 00:03:33,860 dei co-autori di questi binari lampadine che abbiamo visto il Mercoledì, 79 00:03:33,860 --> 00:03:36,710 in aggiunta al di CS50 proprio Dan Bradley. 80 00:03:36,710 --> 00:03:40,094 Ansel Duff era anche un ex matricola advisee mio 3 anni fa 81 00:03:40,094 --> 00:03:41,760 e lui in realtà anche costruito questo leggio. 82 00:03:41,760 --> 00:03:45,330 È andato a fare scienze dell'ingegneria e altro ancora. 83 00:03:45,330 --> 00:03:49,279 Ora, la sua foto qui è in realtà Ansel 3 anni fa presso il CS50 Hackathon 84 00:03:49,279 --> 00:03:51,820 quando ha preso in prestito uno dei nostri palloncini, attaccato al suo computer portatile, 85 00:03:51,820 --> 00:03:55,240 e, per il prossimo 12 qualche strano ore, concentrato sul suo progetto finale, 86 00:03:55,240 --> 00:03:59,150 prendersi delle pause solo per aprire sacchetti di caramelle al Hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Ma continuò più recente per spendere la scorsa estate con noi, 88 00:04:02,210 --> 00:04:05,270 poiché CS50 per il suo personale, e Ora gli studenti questo semestre, 89 00:04:05,270 --> 00:04:06,770 ha la propria stampante 3D. 90 00:04:06,770 --> 00:04:10,180 E in poche parole un stampanti 3D è un dispositivo che sembra abbastanza come questo. 91 00:04:10,180 --> 00:04:15,700 Si riempie con un rocchetto di plastica che è fuso dal dispositivo 92 00:04:15,700 --> 00:04:18,940 e costruire le cose letteralmente dal nulla. 93 00:04:18,940 --> 00:04:22,660 Proprio come una stampante a getto d'inchiostro, si avvia sputare puntini di plastica 94 00:04:22,660 --> 00:04:24,990 che forma insieme a formare oggetti interi. 95 00:04:24,990 --> 00:04:28,430 E così Ansel per esempio, in precedenza questa estate, ha un iPhone 5 96 00:04:28,430 --> 00:04:30,722 e decise che voleva davvero per prop in su sulla sua scrivania. 97 00:04:30,722 --> 00:04:32,638 Ma lui non voleva uscire e comprare qualcosa 98 00:04:32,638 --> 00:04:36,030 dal negozio di Apple o simili, così si sedette e cominciò a disegnare qualcosa. 99 00:04:36,030 --> 00:04:38,280 Ha preso alcune misure per lo spessore 100 00:04:38,280 --> 00:04:41,270 e come largo il suo iPhone era, ha disegnato questa immagine qui, 101 00:04:41,270 --> 00:04:43,870 ha deciso che voleva avere una inclinazione di 75 gradi 102 00:04:43,870 --> 00:04:46,150 come è stato fissando lui sulla sua scrivania lì. 103 00:04:46,150 --> 00:04:50,440 Poi si girò questo, utilizzando software, in un modello CAD 3D 104 00:04:50,440 --> 00:04:52,400 che sembrava un po ' qualcosa di simile. 105 00:04:52,400 --> 00:04:55,940 E poi ha proceduto, infine, per creare realtà. 106 00:04:55,940 --> 00:05:00,250 Quindi, in realtà, se qualcuno di voi qui, forse in una riga che posso buttare a, avere 107 00:05:00,250 --> 00:05:06,780 an-- ci abbiamo gente con iPhone 5, e qui abbiamo due di più. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Ora, per non essere da meno, CS50 propria Cheng Gong impostato anche questa estate 110 00:05:17,037 --> 00:05:19,870 per costruire un bel po 'di cose e, infatti, per ragioni ancora 111 00:05:19,870 --> 00:05:23,970 chiaro, è stato lentamente la stampa di un esercito di elefanti 112 00:05:23,970 --> 00:05:27,250 con le braccia e tronchi articolate. 113 00:05:27,250 --> 00:05:32,515 Un paio di che in realtà sono qui chiunque sarebbe ora like-- un elefante. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 Bene,. ma quello che Cheng ha fatto anche per noi è che molto gentilmente ha istituito una fotocamera 116 00:05:40,522 --> 00:05:42,230 perché questo elefante, che ci crediate o no, 117 00:05:42,230 --> 00:05:44,690 prende circa due e una mezze ore per stampare. 118 00:05:44,690 --> 00:05:47,840 Anche il supporto iPhone ha preso un'ora e mezza da stampare. 119 00:05:47,840 --> 00:05:51,490 E che cosa Cheng è andato avanti e ha fatto è stata allestita una bella macchina fotografica di fronte 120 00:05:51,490 --> 00:05:55,580 di questa stampante 3D, girato per un'ora e un mezzo come il disegno di Ansel stampato. 121 00:05:55,580 --> 00:05:58,090 Abbiamo sovrapposto un po 'sexy musica in ordine 122 00:05:58,090 --> 00:06:00,570 per darti questo guardare come funziona la stampa 3D. 123 00:06:00,570 --> 00:06:02,494 E anche se questo è effettivamente in plastica, 124 00:06:02,494 --> 00:06:05,160 conto che se questa è un'area di vostro interesse accademico, 125 00:06:05,160 --> 00:06:07,120 ci sono persone, tra li Jennifer Lewis qui 126 00:06:07,120 --> 00:06:09,036 presso la Scuola di Ingegneria, che sono in realtà 127 00:06:09,036 --> 00:06:10,920 lavorando su stampa 3D oggetti di plastica. 128 00:06:10,920 --> 00:06:14,150 Ma anche, sempre più, materiali biologici da risolvere 129 00:06:14,150 --> 00:06:16,530 problemi fisiologici per gli esseri umani. 130 00:06:16,530 --> 00:06:19,944 Ma qui è un po ' qualcosa da CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD MECCANICA RUMORI] 132 00:06:31,625 --> 00:06:34,250 DAVID J. MALAN: Non suona qualcosa di simile, in realtà, 133 00:06:34,250 --> 00:06:37,240 ma è molto più fresco per guardarlo a quella velocità, e con quel suono. 134 00:06:37,240 --> 00:06:40,000 >> Ora, il Mercoledì, come ci siamo arrivati ​​qui prima? 135 00:06:40,000 --> 00:06:43,345 Abbiamo iniziato a parlare di computer scienza e abbiamo chiesto cosa fosse. 136 00:06:43,345 --> 00:06:46,470 E si tratta di una serie di cose, e ci sono così tante direzioni diverse 137 00:06:46,470 --> 00:06:48,477 in cui si può testa dopo un corso come CS50. 138 00:06:48,477 --> 00:06:50,810 Infatti, se avete preso uno di quelle guide non ufficiali 139 00:06:50,810 --> 00:06:54,080 di CS al di fuori, il libretto che abbiamo fornito, se siete 140 00:06:54,080 --> 00:06:57,150 pensando di prendere solo CS50, o forse facendo un secondario, 141 00:06:57,150 --> 00:06:59,557 o forse anche di concentrazione in CS, non sfogliare che. 142 00:06:59,557 --> 00:07:01,390 E vedrete un diagramma verso la fine che 143 00:07:01,390 --> 00:07:04,950 vi mostra le molte direzioni diverse in CS che si può andare fuori in. 144 00:07:04,950 --> 00:07:09,030 >> Ma per oggi, ci concentreremo, ancora una volta, il davvero una delle viste fondamentali, 145 00:07:09,030 --> 00:07:11,500 forse, dove si ha ingressi ai problemi, 146 00:07:11,500 --> 00:07:13,430 si dispone di uscite problemi, e vi hanno 147 00:07:13,430 --> 00:07:17,420 algoritmi con cui creare quelle uscite da tali ingressi. 148 00:07:17,420 --> 00:07:20,330 E un esempio, era di Naturalmente, questa rubrica qui. 149 00:07:20,330 --> 00:07:24,180 E abbiamo usato come esempio per andare attraverso un algoritmo che era corretta. 150 00:07:24,180 --> 00:07:26,490 E poi un altro stato corretta, ma un po 'più veloce. 151 00:07:26,490 --> 00:07:29,448 E poi un altro che era un po ' più drammatico, ma fondamentalmente 152 00:07:29,448 --> 00:07:30,000 veloce. 153 00:07:30,000 --> 00:07:32,720 >> Diritto, questo telefono libro abbiamo rivendicato aveva circa 1.000 pagine. 154 00:07:32,720 --> 00:07:36,200 E quante volte ho a strappare la rubrica a metà 155 00:07:36,200 --> 00:07:39,930 di trovare qualcuno come Mike Smith, al massimo, a 1.000 pagina del libro? 156 00:07:39,930 --> 00:07:41,040 Così, 10 dare o prendere. 157 00:07:41,040 --> 00:07:45,050 E così una volta ho strappato questa cosa in metà, o semplicemente, più maturo, 158 00:07:45,050 --> 00:07:48,490 diviso a metà, è solo 10 pagine su 1000. 159 00:07:48,490 --> 00:07:51,470 E se estrapolare, un po ' irrealisticamente per una rubrica telefonica, 160 00:07:51,470 --> 00:07:56,540 ma se questa rubrica aveva circa 4 miliardi di pagine in esso, in modo completamente 161 00:07:56,540 --> 00:07:59,680 ingombrante fisicamente, quanti volte si dividono un 4 miliardi 162 00:07:59,680 --> 00:08:01,460 Pagina rubrica a metà? 163 00:08:01,460 --> 00:08:03,035 Quindi è in realtà 32, prendere o lasciare. 164 00:08:03,035 --> 00:08:07,090 E solo così 32 volte, fuori di 4 miliardi di pagine, può 165 00:08:07,090 --> 00:08:08,700 trovare qualcuno come Mike Smith. 166 00:08:08,700 --> 00:08:09,740 E questo è l'efficienza. 167 00:08:09,740 --> 00:08:12,130 Questo è un buon algoritmo, oserei dire. 168 00:08:12,130 --> 00:08:14,480 >> Ma poi ci siamo trasferiti da quella per cercare di formalizzare esso. 169 00:08:14,480 --> 00:08:16,100 E ho proposto questo codice pseudocodice. 170 00:08:16,100 --> 00:08:17,800 Codice pseudocodice non è nulla formale. 171 00:08:17,800 --> 00:08:18,880 Non è qualcosa a memorizzare. 172 00:08:18,880 --> 00:08:21,588 E 'solo qualcosa che si esprimono abbastanza intuitivo usando l'inglese, 173 00:08:21,588 --> 00:08:24,990 o qualsiasi linguaggio davvero, che trasmette le tue idee in modo succinto. 174 00:08:24,990 --> 00:08:26,990 Ma cosa c'è di chiave su codice pseudocodice è che si 175 00:08:26,990 --> 00:08:30,331 cercare di anticipare tutte le casi possibili che potrebbero accadere. 176 00:08:30,331 --> 00:08:33,080 E infatti, in questo pseudocodice codice, ci sono stati davvero tre casi 177 00:08:33,080 --> 00:08:34,700 ogni volta che ho diviso l'elenco telefonico. 178 00:08:34,700 --> 00:08:36,006 Mike potrebbe essere a fianco. 179 00:08:36,006 --> 00:08:37,130 Mike potrebbe essere quella di destra. 180 00:08:37,130 --> 00:08:39,240 Oppure potrebbe essere proprio sulla pagina Sono su. 181 00:08:39,240 --> 00:08:42,110 O un quarto caso angolo, per così dire. 182 00:08:42,110 --> 00:08:46,470 Uno scenario cattivo potrebbe essere uno which-- ciò che sta accadendo? 183 00:08:46,470 --> 00:08:48,860 Mike non è solo in la rubrica a tutti. 184 00:08:48,860 --> 00:08:52,720 >> E quando i programmi crash-- quando Mac e software per PC che voi ragazzi Run 185 00:08:52,720 --> 00:08:56,400 sui computer a volte si blocca o si chiude in modo imprevisto, 186 00:08:56,400 --> 00:08:59,770 ciò significa generalmente che alcuni programmatore, qualche essere umano come voi presto, 187 00:08:59,770 --> 00:09:01,650 appena avvitato e fatto qualche errore. 188 00:09:01,650 --> 00:09:05,207 Forse non anticipare che forse ci c'è Mike Smith nella rubrica. 189 00:09:05,207 --> 00:09:08,040 E se in realtà non scrive codice per gestire situazioni del genere, 190 00:09:08,040 --> 00:09:09,890 generalmente imprevedibile cose possono accadere. 191 00:09:09,890 --> 00:09:10,960 La macchina può congelare. 192 00:09:10,960 --> 00:09:11,730 Si può riavviare. 193 00:09:11,730 --> 00:09:12,889 Il programma può chiudere. 194 00:09:12,889 --> 00:09:14,722 E così tutti questi stupidaggini che si può 195 00:09:14,722 --> 00:09:18,030 hanno incontrato nel vostro attuale vita usando solo i computer, 196 00:09:18,030 --> 00:09:20,710 sarà sempre più essere solo spiegato via da questa intuizione 197 00:09:20,710 --> 00:09:24,920 e questa comprensione di ciò che è realmente accadendo sotto il cofano. 198 00:09:24,920 --> 00:09:27,329 >> Ora proviamo a dare un'occhiata ad un problema più generale. 199 00:09:27,329 --> 00:09:29,120 Piuttosto che prendere presenza in un posto come 200 00:09:29,120 --> 00:09:32,230 questo, che sarebbe molto lenta per fare uno, due, tre, quattro. 201 00:09:32,230 --> 00:09:34,070 O forse due, quattro, sei, otto. 202 00:09:34,070 --> 00:09:36,080 Concentriamoci, invece, sulla come possiamo formalizzare 203 00:09:36,080 --> 00:09:39,400 l'algoritmo del processo che potremmo prendere presenze. 204 00:09:39,400 --> 00:09:42,290 E lungo la strada, cominciamo applicare alcuni nomenclatura 205 00:09:42,290 --> 00:09:47,130 che useremo oggi quando abbiamo effettivamente iniziare a programmare in un linguaggio. 206 00:09:47,130 --> 00:09:50,910 Quindi vi do ora, un video di quattro minuti che abbiamo messo insieme con i nostri amici 207 00:09:50,910 --> 00:09:52,820 da TED, l'organizzazione. 208 00:09:52,820 --> 00:09:56,380 Per cui abbiamo fornito uno script e hanno portato i loro animatori a sopportare, 209 00:09:56,380 --> 00:10:00,970 ed effettivamente creato un 2D Animazione di ciò che un algoritmo è. 210 00:10:00,970 --> 00:10:02,776 Se potessimo abbassare le luci. 211 00:10:02,776 --> 00:10:06,664 >> [GIOCO MUSICA] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 NARRATORE: Che cos'è un algoritmo? 214 00:10:19,140 --> 00:10:21,620 In informatica, un algoritmo è un insieme 215 00:10:21,620 --> 00:10:24,840 di istruzioni per risolvere qualche problema passo-passo. 216 00:10:24,840 --> 00:10:27,310 Tipicamente, gli algoritmi sono eseguito dal computer, 217 00:10:27,310 --> 00:10:29,365 ma noi esseri umani abbiamo algoritmi pure. 218 00:10:29,365 --> 00:10:31,240 Ad esempio, come sarebbe si va di contare 219 00:10:31,240 --> 00:10:32,990 il numero di persone in una stanza? 220 00:10:32,990 --> 00:10:36,840 Beh, se siete come me, si sarebbe probabilmente puntare ad ogni persona alla volta 221 00:10:36,840 --> 00:10:38,370 e contare da zero. 222 00:10:38,370 --> 00:10:41,200 Uno, due, tre, quattro, e così via. 223 00:10:41,200 --> 00:10:42,410 Beh, questo è un algoritmo. 224 00:10:42,410 --> 00:10:45,820 In realtà, cerchiamo di esprimere un po 'più formale nel codice pseudocodice. 225 00:10:45,820 --> 00:10:48,940 Sintassi inglese-simile assomiglia un linguaggio di programmazione. 226 00:10:48,940 --> 00:10:50,880 >> Sia n uguale a 0. 227 00:10:50,880 --> 00:10:55,210 Per ogni persona in camera, impostare n uguale a n + 1. 228 00:10:55,210 --> 00:10:56,790 Come interpretare il pseudocodice? 229 00:10:56,790 --> 00:10:59,490 Beh linea si dichiara, per così dire, una variabile 230 00:10:59,490 --> 00:11:02,880 chiamato n e inizializza il suo valore a 0 Questo solo 231 00:11:02,880 --> 00:11:05,080 significa che al inizio del nostro algoritmo, 232 00:11:05,080 --> 00:11:07,910 la cosa con la quale siamo conteggio ha un valore di 0. 233 00:11:07,910 --> 00:11:10,860 Dopo tutto, prima di cominciare a contare non abbiamo ancora contato nulla. 234 00:11:10,860 --> 00:11:13,580 Chiamare questa variabile n è solo una convenzione. 235 00:11:13,580 --> 00:11:15,130 Avrei potuto chiamato più nulla. 236 00:11:15,130 --> 00:11:17,460 Ora allineare due demarks l'inizio di un ciclo, 237 00:11:17,460 --> 00:11:20,550 una sequenza di passi che sarà ripetere certo numero di volte. 238 00:11:20,550 --> 00:11:24,130 Quindi, nel nostro esempio, il passo siamo presa conta persone nella stanza. 239 00:11:24,130 --> 00:11:26,260 Sotto la linea due è la linea tre che descrive 240 00:11:26,260 --> 00:11:28,400 esattamente come andremo a contare. 241 00:11:28,400 --> 00:11:31,720 Il rientro implica che è la linea tre che si ripeterà. 242 00:11:31,720 --> 00:11:35,190 Quindi, con il codice pseudocodice è dicendo è che dopo aver iniziato a 0 243 00:11:35,190 --> 00:11:38,940 per ogni persona in camera aumenteremo n da 1 244 00:11:38,940 --> 00:11:41,310 Ora, questo algoritmo è corretto? 245 00:11:41,310 --> 00:11:42,820 Beh diciamo bang su un po '. 246 00:11:42,820 --> 00:11:45,520 >> Funziona se ci sono due persone in camera? 247 00:11:45,520 --> 00:11:46,420 Vediamo. 248 00:11:46,420 --> 00:11:48,500 In linea uno inizializziamo n a 0. 249 00:11:48,500 --> 00:11:51,910 Per ciascuna di queste due persone, abbiamo poi incrementiamo n da 1. 250 00:11:51,910 --> 00:11:55,570 Così nel primo viaggio attraverso l' loop, aggiorniamo n da 0 a 1. 251 00:11:55,570 --> 00:11:59,320 Sul secondo viaggio attraverso quella stesso loop, aggiorniamo n 1-2. 252 00:11:59,320 --> 00:12:02,850 E così, da questo algoritmo di end, n è 2, che 253 00:12:02,850 --> 00:12:04,950 in effetti corrisponde al numero di persone nella stanza. 254 00:12:04,950 --> 00:12:06,040 Fin qui tutto bene. 255 00:12:06,040 --> 00:12:07,870 >> Come su un caso d'angolo però? 256 00:12:07,870 --> 00:12:11,090 Supponiamo che ci sono 0 persone nel camera-- oltre a me, chi è 257 00:12:11,090 --> 00:12:12,420 facendo il conteggio. 258 00:12:12,420 --> 00:12:15,380 In linea uno, abbiamo di nuovo inizializziamo n a 0. 259 00:12:15,380 --> 00:12:17,810 Questa volta, però, la linea tre non esegue affatto 260 00:12:17,810 --> 00:12:19,610 poiché non c'è una persona nella stanza. 261 00:12:19,610 --> 00:12:23,540 E così n rimane 0, che in effetti corrisponde il numero di persone nella stanza. 262 00:12:23,540 --> 00:12:24,670 Abbastanza semplice, giusto? 263 00:12:24,670 --> 00:12:27,880 Ma a contare le persone una alla volta è piuttosto inefficiente, troppo, no? 264 00:12:27,880 --> 00:12:29,160 Sicuramente possiamo fare di meglio. 265 00:12:29,160 --> 00:12:33,440 Perché non contare due persone alla volta, invece di contare uno, due, tre, 266 00:12:33,440 --> 00:12:36,470 quattro, cinque, sei, sette, otto, e così via. 267 00:12:36,470 --> 00:12:39,106 Perché non contare due, quattro, sei, otto, e così via? 268 00:12:39,106 --> 00:12:40,670 E anche i suoni più velocemente. 269 00:12:40,670 --> 00:12:41,940 Ed è sicuramente. 270 00:12:41,940 --> 00:12:44,490 >> Esprimiamo questa ottimizzazione nel codice pseudocodice. 271 00:12:44,490 --> 00:12:46,040 Sia n uguale a 0. 272 00:12:46,040 --> 00:12:50,760 Per ogni coppia di persone camera, impostare n pari a n + 2. 273 00:12:50,760 --> 00:12:52,360 Abbastanza semplice cambiamento, giusto? 274 00:12:52,360 --> 00:12:56,560 Invece di contare le persone una alla volta, noi invece li contiamo due alla volta. 275 00:12:56,560 --> 00:12:59,240 Questo algoritmo di, così, due volte più veloce del precedente. 276 00:12:59,240 --> 00:13:00,530 Ma è corretto? 277 00:13:00,530 --> 00:13:01,160 Vediamo. 278 00:13:01,160 --> 00:13:03,580 Funziona se ci sono due persone in camera? 279 00:13:03,580 --> 00:13:05,800 In linea uno, inizializziamo n a 0. 280 00:13:05,800 --> 00:13:09,160 Per questo una coppia di persone, abbiamo poi incrementiamo n da 2. 281 00:13:09,160 --> 00:13:11,910 E così da questo algoritmo di fine n è 2, che 282 00:13:11,910 --> 00:13:13,910 in effetti corrisponde al numero di persone nella stanza. 283 00:13:13,910 --> 00:13:16,610 >> Supponiamo successivo che ci sono a zero persone nella stanza. 284 00:13:16,610 --> 00:13:19,080 In linea uno inizializziamo n a 0. 285 00:13:19,080 --> 00:13:21,260 Come in precedenza, la linea tre non eseguirlo tutto 286 00:13:21,260 --> 00:13:25,270 dal momento che non ci sono coppie di persone nella stanza, e quindi n rimane 0. 287 00:13:25,270 --> 00:13:27,840 Quali effetti corrisponde al numero di persone nella stanza. 288 00:13:27,840 --> 00:13:30,520 Ma cosa succede se ci sono tre persone nella stanza? 289 00:13:30,520 --> 00:13:32,380 Come funziona questa tariffa algoritmo? 290 00:13:32,380 --> 00:13:35,710 Vediamo, in linea uno, inizializziamo n a 0. 291 00:13:35,710 --> 00:13:39,140 Per un paio di quelle persone, abbiamo poi incrementiamo n da 2. 292 00:13:39,140 --> 00:13:40,050 Ma allora che cosa? 293 00:13:40,050 --> 00:13:42,340 Non c'è un altro pieno coppia di persone nella stanza, 294 00:13:42,340 --> 00:13:44,430 quindi la linea due non è più applicabile. 295 00:13:44,430 --> 00:13:48,790 E così entro la fine di questo algoritmo, n è ancora 2 che non è corretto. 296 00:13:48,790 --> 00:13:52,070 Infatti questo algoritmo di disse essere bacato perché ha un errore. 297 00:13:52,070 --> 00:13:54,070 >> Facciamo ricorso con una certa nuovo codice pseudocodice. 298 00:13:54,070 --> 00:13:56,110 Sia n uguale a 0. 299 00:13:56,110 --> 00:14:00,790 Per ogni coppia di persone camera, impostare N pari a n + 2. 300 00:14:00,790 --> 00:14:05,410 Se una persona rimane spaiato, impostare N pari a n + 1. 301 00:14:05,410 --> 00:14:09,340 Per risolvere questo particolare problema, abbiamo introdotto in linea di quattro condizioni, 302 00:14:09,340 --> 00:14:12,120 altrimenti noto come ramo, che solo esegue 303 00:14:12,120 --> 00:14:14,890 se c'è una persona che non poteva accoppiare con un altro. 304 00:14:14,890 --> 00:14:17,140 E così ora, se ce n'è uno, o tre, 305 00:14:17,140 --> 00:14:21,550 o un qualsiasi numero dispari di persone nella stanza, questo algoritmo ora contarli. 306 00:14:21,550 --> 00:14:22,810 Possiamo fare ancora meglio? 307 00:14:22,810 --> 00:14:25,890 Beh, potremmo contare in gruppi di tre, o quattro, o anche cinque e dieci, 308 00:14:25,890 --> 00:14:29,390 ma oltre a questo, sta andando a ottenere un po 'difficile da puntare. 309 00:14:29,390 --> 00:14:32,900 >> Alla fine della giornata, se eseguita da computer o esseri umani, 310 00:14:32,900 --> 00:14:34,870 algoritmi sono solo una serie di istruzioni 311 00:14:34,870 --> 00:14:36,560 con cui risolvere i problemi. 312 00:14:36,560 --> 00:14:38,360 Questi erano solo tre. 313 00:14:38,360 --> 00:14:41,860 Che problema faresti risolvere con un algoritmo? 314 00:14:41,860 --> 00:14:44,261 >> DAVID J. MALAN: Così deliberatamente, un programma molto semplice, 315 00:14:44,261 --> 00:14:46,260 un algoritmo molto semplice, per ottenere qualcosa 316 00:14:46,260 --> 00:14:48,280 molto semplice, contando il numero di persone nella stanza. 317 00:14:48,280 --> 00:14:50,370 >> Ma cerchiamo di prendere in giro a parte alcuni del rappresentante 318 00:14:50,370 --> 00:14:52,870 caratteristiche qui che sono in realtà sta per essere utile anche quando 319 00:14:52,870 --> 00:14:54,880 attua il più complesso di software. 320 00:14:54,880 --> 00:14:58,060 Così, per esempio, in questa prima linea, abbiamo quello che chiamiamo la variabile, 321 00:14:58,060 --> 00:15:01,040 e da algebra, sei generalmente familiare con x e y 322 00:15:01,040 --> 00:15:02,930 e z volte, e così via. 323 00:15:02,930 --> 00:15:05,770 Ma in programmazione, le variabili sono ancora, al termine della giornata, 324 00:15:05,770 --> 00:15:06,680 molto simile a quella. 325 00:15:06,680 --> 00:15:09,910 Ma è forse più semplice di pensare di una variabile come solo un contenitore. 326 00:15:09,910 --> 00:15:13,520 E, in realtà, è certo numero di bit implementato in qualche modo nel vostro hard disk 327 00:15:13,520 --> 00:15:16,410 o nella memoria del computer, ma più su che in futuro. 328 00:15:16,410 --> 00:15:17,670 E 'solo un contenitore. 329 00:15:17,670 --> 00:15:20,310 E se dici qualcosa come sia n uguale a 0, 330 00:15:20,310 --> 00:15:24,310 bene che è come chiamare questo vetro ciotola qui n, solo un nome arbitrario, 331 00:15:24,310 --> 00:15:26,230 e la messa in nulla inizialmente. 332 00:15:26,230 --> 00:15:28,940 Quindi il valore di questo ciotola in questo momento è pari a zero. 333 00:15:28,940 --> 00:15:31,380 E, naturalmente, se si percepisce in una riga successiva, 334 00:15:31,380 --> 00:15:35,070 per incrementare realmente qualche linea di codice, come nella terza riga qui, 335 00:15:35,070 --> 00:15:39,857 da 1, che è come dire qual è la valore corrente di n, è 0, più 1, 336 00:15:39,857 --> 00:15:41,690 mettere qualcosa come un ping pong palla qui. 337 00:15:41,690 --> 00:15:45,140 Ora il valore di questo variabile è semplicemente 1. 338 00:15:45,140 --> 00:15:50,064 E si potrebbe molto rapidamente estrapolare, ma ora è 2, ora è 3, e così via. 339 00:15:50,064 --> 00:15:51,230 Quindi questo è tutto una variabile è. 340 00:15:51,230 --> 00:15:53,740 E 'un pezzo di archiviazione per effettivamente memorizzare alcuni dati. 341 00:15:53,740 --> 00:15:55,050 Per ora si tratta di una pallina da ping pong. 342 00:15:55,050 --> 00:15:55,883 Vi è un numero. 343 00:15:55,883 --> 00:15:58,910 Ma potrebbe essere parole in un dizionario, come il correttore ortografico 344 00:15:58,910 --> 00:16:02,300 Ho accennato il Mercoledì per uno degli insiemi di problemi dello scorso anno. 345 00:16:02,300 --> 00:16:05,640 >> Ora un'altra idea fondamentale, che allo stesso modo è abbastanza intuitivo vorrei affermare, 346 00:16:05,640 --> 00:16:06,690 è quello di un ciclo. 347 00:16:06,690 --> 00:16:08,930 E il ciclo nel processo di contare tutti 348 00:16:08,930 --> 00:16:12,540 è, naturalmente, facendo la stessa cosa di nuovo e again-- uno dei due 349 00:16:12,540 --> 00:16:14,140 alla volta o due alla volta. 350 00:16:14,140 --> 00:16:17,690 E si può esprimere questo in inglese, o codice pseudocodice, in qualsiasi numero di modi, 351 00:16:17,690 --> 00:16:21,560 ma usando questa preposizione "per" è un modo molto comune di farlo. 352 00:16:21,560 --> 00:16:24,460 Per ogni persona nella stanza, fare questo. 353 00:16:24,460 --> 00:16:25,350 Ancora e ancora. 354 00:16:25,350 --> 00:16:27,700 E il fatto che è frastagliata, linea tre, 355 00:16:27,700 --> 00:16:29,840 significa solo che quello che si suppone di fare 356 00:16:29,840 --> 00:16:33,490 è la roba che è rientrato sotto la linea due stessa. 357 00:16:33,490 --> 00:16:35,590 Solo una convenzione umana, ma un comune 358 00:16:35,590 --> 00:16:39,010 come vedremo in maggiore effettivo linguaggi di programmazione di livello. 359 00:16:39,010 --> 00:16:41,870 >> Ora, poco più interessante è quando si arriva in un caso d'angolo. 360 00:16:41,870 --> 00:16:43,970 Per esempio, un angolo caso è stato quando ci 361 00:16:43,970 --> 00:16:48,060 erano tre persone, o cinque, o sette, o un qualsiasi numero dispari di persone nella stanza, 362 00:16:48,060 --> 00:16:51,630 perché farlo a due a due freni infine perché la vostra intenzione 363 00:16:51,630 --> 00:16:54,265 perdere qualcuno, sia al molto all'inizio o alla fine 364 00:16:54,265 --> 00:16:55,390 a seconda di come lo si fa. 365 00:16:55,390 --> 00:16:59,800 E così, adesso, ho questo ramo, o condizione, se una persona rimane, 366 00:16:59,800 --> 00:17:04,490 poi andare avanti e di gestire quella persona solitaria che non ha ottenuto 367 00:17:04,490 --> 00:17:05,690 in coppia con qualcun altro. 368 00:17:05,690 --> 00:17:09,030 Ecco, questo è quello che noi chiameremmo una condizione, o di un ramo. 369 00:17:09,030 --> 00:17:11,500 >> Codice Ora pseudocodice più in generale, può essere 370 00:17:11,500 --> 00:17:13,730 scritta per risolvere qualsiasi numero di problemi. 371 00:17:13,730 --> 00:17:16,490 E quello che ho pensato di fare qui è prendere un momento 372 00:17:16,490 --> 00:17:20,089 di invitare diciamo CS50 di proprio Rob Bowden sul palco 373 00:17:20,089 --> 00:17:25,040 di essere raggiunto da due volontari, che non hanno idea di cosa vi aspetta. 374 00:17:25,040 --> 00:17:26,890 Una mano è andato giù, non appena ho detto. 375 00:17:26,890 --> 00:17:28,700 Come su di te sul finisce qui, vieni su. 376 00:17:28,700 --> 00:17:33,040 E che dire da più lontano via, come su strada nella parte posteriore. 377 00:17:33,040 --> 00:17:35,200 Seconda fila, vieni su con le mani alzate. 378 00:17:35,200 --> 00:17:36,475 Va bene, e qual è il tuo nome? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Anita. 380 00:17:36,960 --> 00:17:37,655 >> DAVID J. MALAN: Anita. 381 00:17:37,655 --> 00:17:38,613 Va bene, piacere di conoscerti. 382 00:17:38,613 --> 00:17:41,010 Lasciate che vi presento Rob Bowden. 383 00:17:41,010 --> 00:17:42,890 Questo è Anita. 384 00:17:42,890 --> 00:17:44,033 E qual è il tuo nome? 385 00:17:44,033 --> 00:17:44,800 >> Kiersten: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> DAVID J. MALAN: Kiersten. 387 00:17:46,020 --> 00:17:49,790 Kiersten, vieni su e incontrare Rob Bowden e Anita. 388 00:17:49,790 --> 00:17:51,036 Piacere di conoscerti. 389 00:17:51,036 --> 00:17:52,160 Kiersten: Piacere di conoscerti. 390 00:17:52,160 --> 00:17:53,368 DAVID J. MALAN: Va bene, Rob. 391 00:17:53,368 --> 00:17:54,650 ROB BOWDEN: Piacere di conoscerti. 392 00:17:54,650 --> 00:17:55,566 DAVID J. MALAN: Anita. 393 00:17:55,566 --> 00:17:56,520 Kiersten: Ciao Anita. 394 00:17:56,520 --> 00:17:58,686 DAVID J. MALAN: E la tua diverse centinaia di compagni di classe. 395 00:17:58,686 --> 00:18:02,490 Così, ora lasciami andare avanti e tirare up solo un semplice programma qui 396 00:18:02,490 --> 00:18:05,690 su Mac OS che mi lasci in realtà annotare alcune note verso il basso. 397 00:18:05,690 --> 00:18:09,570 E se voi volete prendere una ogni posizione in una di quelle scuole lì, 398 00:18:09,570 --> 00:18:16,360 lasciami andare avanti e inizia una lista di codice pseudocodice, se si vuole. 399 00:18:16,360 --> 00:18:19,970 E quello che voglio fare qui, in ultima analisi, è il tipo per te 400 00:18:19,970 --> 00:18:22,470 alcune istruzioni che il nostro membri del pubblico sono in realtà 401 00:18:22,470 --> 00:18:23,569 andando a recitare per noi. 402 00:18:23,569 --> 00:18:25,860 Lasciami andare avanti e basta cambiare questo a un elenco numerato 403 00:18:25,860 --> 00:18:27,720 a corrispondere a ciò che stavamo facendo lì. 404 00:18:27,720 --> 00:18:30,990 E che cosa ho intenzione di fare con il vostro aiuto, è scrivere un programma 405 00:18:30,990 --> 00:18:34,620 in pseudocodice, con cui questi ragazzi stanno andando 406 00:18:34,620 --> 00:18:38,150 attuare una nocciolina burro e gelatina di sandwich. 407 00:18:38,150 --> 00:18:40,880 Quindi è forse a proposito di mostrare qualcosa di un po 'di voi 408 00:18:40,880 --> 00:18:44,560 potrebbe aver visto su internet solo per un breve momento fastidioso. 409 00:18:44,560 --> 00:18:47,650 >> [MUSICA BUCKEWHEAT RAGAZZI, "BURRO DI ARACHIDI  Jelly Time "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 DAVID J. MALAN: OK. 412 00:19:08,910 --> 00:19:10,050 Questo è abbastanza. 413 00:19:10,050 --> 00:19:12,690 Così qui nel frattempo, ho un paio di Google Glasses cui 414 00:19:12,690 --> 00:19:16,500 metteremo su di CS50 proprio Rob Bowden di vedere il mondo attraverso i suoi occhi. 415 00:19:16,500 --> 00:19:19,140 E noi faremo del nostro meglio in post produzione effettivamente tessere 416 00:19:19,140 --> 00:19:23,100 le riprese di quello che Rob sta vedendo ora, in questa conferenza effettivo 417 00:19:23,100 --> 00:19:26,420 video con i nostri due volontari accanto a lui. 418 00:19:26,420 --> 00:19:28,480 Così che cosa ho intenzione di fare è, io sarò il dattilografo. 419 00:19:28,480 --> 00:19:31,849 Abbiamo l'obiettivo qui di in realtà la scrittura di un programma 420 00:19:31,849 --> 00:19:34,640 con cui fare, in definitiva, un burro di arachidi e gelatina di panino, 421 00:19:34,640 --> 00:19:37,680 ma questi tre stanno andando a comportarsi come se fossero dei computer. 422 00:19:37,680 --> 00:19:40,638 E computer, al termine della giornata, sono in realtà dispositivi piuttosto stupidi. 423 00:19:40,638 --> 00:19:44,432 Sono super veloce, ma solo può fare, letteralmente, ciò che viene detto. 424 00:19:44,432 --> 00:19:46,890 Non si può semplicemente dire fare una nocciolina burro e gelatina di sandwich. 425 00:19:46,890 --> 00:19:48,640 Devi programmare loro di farlo. 426 00:19:48,640 --> 00:19:51,420 Devi dire loro con precisione cosa fare, 427 00:19:51,420 --> 00:19:54,400 meno le cose vanno terribilmente e, si spera, in modo divertente storto. 428 00:19:54,400 --> 00:19:57,460 >> Quindi, con quello detto, abbiamo bisogno un call-out da parte del pubblico 429 00:19:57,460 --> 00:19:59,440 per quello che dovrebbe fare un passo un essere, se l'obiettivo qui 430 00:19:59,440 --> 00:20:01,356 è quello di fare una nocciolina burro e gelatina di sandwich. 431 00:20:01,356 --> 00:20:01,910 Sì? 432 00:20:01,910 --> 00:20:03,647 >> PUBBLICO: [incomprensibile] il sacchetto di pane. 433 00:20:03,647 --> 00:20:05,230 DAVID J. MALAN: Aprire la busta del pane. 434 00:20:05,230 --> 00:20:08,360 Quindi, se i tre concorrenti avrebbero come procedere per farlo letteralmente. 435 00:20:08,360 --> 00:20:12,394 Aprire la busta del pane. 436 00:20:12,394 --> 00:20:15,810 >> [Il pubblico ride] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 DAVID J. MALAN: Quindi cerchiamo di lavorare su questo. 439 00:20:22,300 --> 00:20:23,180 Bene. 440 00:20:23,180 --> 00:20:25,400 Così passo due, how-- prendiamo questo ulteriore. 441 00:20:25,400 --> 00:20:26,480 Sì, nella parte anteriore. 442 00:20:26,480 --> 00:20:27,240 >> PUBBLICO: [incomprensibile] il pane. 443 00:20:27,240 --> 00:20:27,735 >> DAVID J. MALAN: Che cos'è? 444 00:20:27,735 --> 00:20:28,836 >> PUBBLICO: Togliere il pane. 445 00:20:28,836 --> 00:20:30,210 DAVID J. MALAN: Togliere il pane. 446 00:20:30,210 --> 00:20:31,190 Allo stesso modo succinto. 447 00:20:31,190 --> 00:20:33,667 Grazie. 448 00:20:33,667 --> 00:20:43,777 >> [Applausi] 449 00:20:43,777 --> 00:20:44,860 DAVID J. MALAN: Questo è tutto? 450 00:20:44,860 --> 00:20:48,830 OK, quindi passo due sta andando essere togliere il pane. 451 00:20:48,830 --> 00:20:51,790 Va bene, qualcuno vuole noi scrivere una frase più lunga? 452 00:20:51,790 --> 00:20:52,640 Qualcun altro? 453 00:20:52,640 --> 00:20:53,920 Un po 'più [incomprensibile]. 454 00:20:53,920 --> 00:20:54,810 No, niente ora. 455 00:20:54,810 --> 00:20:56,094 Sì? 456 00:20:56,094 --> 00:20:58,900 >> PUBBLICO: Luogo due fette una accanto all'altra. 457 00:20:58,900 --> 00:21:03,575 >> DAVID J. MALAN: Luogo due fette una accanto all'altra. 458 00:21:03,575 --> 00:21:06,420 >> [Il pubblico ride] 459 00:21:06,420 --> 00:21:09,590 >> DAVID J. MALAN: Luogo due fette una accanto all'altra. 460 00:21:09,590 --> 00:21:11,334 Fase quattro. 461 00:21:11,334 --> 00:21:12,816 Sì? 462 00:21:12,816 --> 00:21:14,792 >> PUBBLICO: Prendete il vostro mano e lo mise alla leggera 463 00:21:14,792 --> 00:21:17,756 sulla parte superiore del coperchio burro di arachidi. 464 00:21:17,756 --> 00:21:19,710 >> [Il pubblico ride] 465 00:21:19,710 --> 00:21:21,710 PUBBLICO: [incomprensibile] accanto al burro di arachidi. 466 00:21:21,710 --> 00:21:21,870 DAVID J. MALAN: Cosa? 467 00:21:21,870 --> 00:21:22,520 Dire ancora una volta che. 468 00:21:22,520 --> 00:21:26,308 >> PUBBLICO: svitare il coperchio e mettere delicatamente accanto al burro di arachidi. 469 00:21:26,308 --> 00:21:31,490 >> DAVID J. MALAN: Mettere delicatamente accanto al burro di arachidi. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, il progresso. 472 00:21:40,090 --> 00:21:41,080 Fase cinque. 473 00:21:41,080 --> 00:21:42,380 Eccellente. 474 00:21:42,380 --> 00:21:43,261 Sì? 475 00:21:43,261 --> 00:21:44,163 >> Pick up coltello. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 DAVID J. MALAN: Pick up coltello. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, punto sei. 480 00:21:53,631 --> 00:21:54,130 Sì? 481 00:21:54,130 --> 00:21:56,237 >> PUBBLICO: Tenere coltello dalla parte del manico. 482 00:21:56,237 --> 00:21:57,945 DAVID J. MALAN: Tenere coltello per il manico. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Tenere coltello dalla parte del manico. 485 00:22:03,230 --> 00:22:04,880 Passo sette. 486 00:22:04,880 --> 00:22:05,692 Sì? 487 00:22:05,692 --> 00:22:10,030 >> PUBBLICO: coltello [incomprensibile] in arachidi il burro e il poco fuori [incomprensibile]. 488 00:22:10,030 --> 00:22:13,070 >> DAVID J. MALAN: Metti coltello dentro-- I sentito "mettere il coltello nel burro di arachidi 489 00:22:13,070 --> 00:22:19,500 e prendere come poco fuori il più possibile. " 490 00:22:19,500 --> 00:22:22,480 A proposito, rimuovere la carta prima. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Va bene, passo nove. 493 00:22:31,890 --> 00:22:34,910 Passo nove. 494 00:22:34,910 --> 00:22:35,624 Passo nove. 495 00:22:35,624 --> 00:22:37,290 Non abbiamo effettivamente fatto ancora un panino. 496 00:22:37,290 --> 00:22:37,790 Sì? 497 00:22:37,790 --> 00:22:41,570 PUBBLICO: Utilizzo di coltello nel burro di arachidi, applicare burro di arachidi su detto pane. 498 00:22:41,570 --> 00:22:47,440 >> DAVID J. MALAN: Utilizzo di coltello burro di arachidi, applicare burro di arachidi su 499 00:22:47,440 --> 00:22:48,736 detto pane. 500 00:22:48,736 --> 00:22:56,030 >> [Il pubblico ride] 501 00:22:56,030 --> 00:22:59,480 DAVID J. MALAN: Va bene il punto 10. 502 00:22:59,480 --> 00:23:01,762 Passo 10. 503 00:23:01,762 --> 00:23:02,750 Sì? 504 00:23:02,750 --> 00:23:05,220 >> PUBBLICO: Gusto di arachidi burro per garantire la qualità. 505 00:23:05,220 --> 00:23:15,960 >> [Il pubblico ride] 506 00:23:15,960 --> 00:23:16,960 DAVID J. MALAN: Passo 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Passo 11. 509 00:23:21,340 --> 00:23:22,101 Passo 11. 510 00:23:22,101 --> 00:23:22,600 Dai. 511 00:23:22,600 --> 00:23:23,099 Sì? 512 00:23:23,099 --> 00:23:24,208 Proprio lì. 513 00:23:24,208 --> 00:23:25,840 >> PUBBLICO: raccogliere con cautela gelatina. 514 00:23:25,840 --> 00:23:28,220 >> DAVID J. MALAN: raccogliere con cautela gelatina. 515 00:23:28,220 --> 00:23:29,970 OK, e poi un'altra mano era su. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Proprio dietro di te. 518 00:23:33,520 --> 00:23:35,761 Sì, in blu. 519 00:23:35,761 --> 00:23:40,671 >> PUBBLICO: Va bene, togliere coperchio da [incomprensibile], sì, 520 00:23:40,671 --> 00:23:42,635 rimuovere il coperchio dalla gelatina. 521 00:23:42,635 --> 00:23:43,617 >> [Il pubblico ride] 522 00:23:43,617 --> 00:23:44,742 >> DAVID J. MALAN: Da gelatina. 523 00:23:44,742 --> 00:23:45,581 Ah ah. 524 00:23:45,581 --> 00:23:48,967 >> [Il pubblico ride] 525 00:23:48,967 --> 00:23:49,800 DAVID J. MALAN: E? 526 00:23:49,800 --> 00:23:52,490 PUBBLICO: E a malapena spazzare qualsiasi [incomprensibile]. 527 00:23:52,490 --> 00:23:59,536 [Il pubblico ride] 528 00:23:59,536 --> 00:24:04,456 PUBBLICO: Naturalmente, prima di [incomprensibile], rimuovere la carta da gelatina. 529 00:24:04,456 --> 00:24:06,940 DAVID J. MALAN: Rimuovere la carta dalla gelatina. 530 00:24:06,940 --> 00:24:08,229 Passo 14. 531 00:24:08,229 --> 00:24:09,020 Ci siamo quasi. 532 00:24:09,020 --> 00:24:09,857 Sì? 533 00:24:09,857 --> 00:24:12,600 >> PUBBLICO: bottiglia gelatina Inverti prima che tutto cade. 534 00:24:12,600 --> 00:24:16,515 >> DAVID J. MALAN: Inverti gelatina bottiglia prima di gelatina cade. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Passo 15. 537 00:24:19,890 --> 00:24:21,130 >> PUBBLICO: Sostituire il tappo. 538 00:24:21,130 --> 00:24:22,463 >> DAVID J. MALAN: sostituire il tappo. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Passo 16. 541 00:24:28,190 --> 00:24:28,931 Sì? 542 00:24:28,931 --> 00:24:29,806 >> PUBBLICO: [incomprensibile] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 DAVID J. MALAN: Dire ancora una volta che. 545 00:24:35,400 --> 00:24:38,100 PUBBLICO: Prendere cappuccio della vostra gelatina. 546 00:24:38,100 --> 00:24:39,650 DAVID J. MALAN: Off vostra gelatina. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Così really-- Oops. 549 00:24:49,510 --> 00:24:50,420 Dai. 550 00:24:50,420 --> 00:24:51,740 Rimettere il tappo. 551 00:24:51,740 --> 00:24:56,660 Mettere cap-- Hai detto rimuovere il tappo di gelatina. 552 00:24:56,660 --> 00:24:58,950 Sento come se fossimo in un po 'di un loop. 553 00:24:58,950 --> 00:24:59,640 Passo 17. 554 00:24:59,640 --> 00:25:00,398 Sì? 555 00:25:00,398 --> 00:25:02,639 >> PUBBLICO: [incomprensibile] 556 00:25:02,639 --> 00:25:03,930 DAVID J. MALAN: Dire ancora una volta che. 557 00:25:03,930 --> 00:25:05,150 PUBBLICO: [incomprensibile] 558 00:25:05,150 --> 00:25:07,835 DAVID J. MALAN: Torna step-- 559 00:25:07,835 --> 00:25:10,110 PUBBLICO: [incomprensibile] 560 00:25:10,110 --> 00:25:13,760 DAVID J. MALAN: Rimuovere berretto da burro di arachidi. 561 00:25:13,760 --> 00:25:14,492 Sì? 562 00:25:14,492 --> 00:25:16,430 >> PUBBLICO: goccia tutto il gelatina sul pane. 563 00:25:16,430 --> 00:25:19,040 >> DAVID J. MALAN: goccia tutto la gelatina sul pane. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 DAVID J. MALAN: ci siamo quasi. 566 00:25:26,830 --> 00:25:27,800 Passo 19. 567 00:25:27,800 --> 00:25:30,250 >> PUBBLICO: Rimuovere gelatina in eccesso. 568 00:25:30,250 --> 00:25:31,720 >> DAVID J. MALAN: Haha, gelatina. 569 00:25:31,720 --> 00:25:36,615 >> [Applausi] 570 00:25:36,615 --> 00:25:39,240 DAVID J. MALAN: Perché non we-- un altro passo a prendere questa casa. 571 00:25:39,240 --> 00:25:41,720 Ancora un passo e poi ci serviamo panini. 572 00:25:41,720 --> 00:25:42,900 Sì? 573 00:25:42,900 --> 00:25:45,570 >> PUBBLICO: [incomprensibile] 574 00:25:45,570 --> 00:25:50,704 >> DAVID J. MALAN: Mentre ogni panino trattino della let remains-- questo-- mangiare. 575 00:25:50,704 --> 00:25:56,400 >> [Risate del pubblico] 576 00:25:56,400 --> 00:26:00,395 >> DAVID J. MALAN: Va bene, grazie di nostri volontari qui. 577 00:26:00,395 --> 00:26:06,150 >> [Applausi} 578 00:26:06,150 --> 00:26:08,940 >> DAVID J. MALAN: Abbiamo qualche bella separazione regali per ognuno di voi. 579 00:26:08,940 --> 00:26:14,350 Il tuo burro di arachidi, gelatina, e il pane da portare a casa. 580 00:26:14,350 --> 00:26:15,774 Grazie. 581 00:26:15,774 --> 00:26:17,118 >> Kiersten: Grazie. 582 00:26:17,118 --> 00:26:18,618 DAVID J. MALAN: [incomprensibile] benvenuto. 583 00:26:18,618 --> 00:26:21,849 [Applausi] 584 00:26:21,849 --> 00:26:24,390 DAVID J. MALAN: Quindi, questo è, di Naturalmente, un esempio ridicolo. 585 00:26:24,390 --> 00:26:24,890 Giusto? 586 00:26:24,890 --> 00:26:28,890 Ma questo tipo di rivela come gli esseri umani basta prendere chiarezza per scontato. 587 00:26:28,890 --> 00:26:30,890 E il fatto che io sono stato parlando con un altro essere umano, 588 00:26:30,890 --> 00:26:33,300 lui o lei sa solo quello che vuoi dire. 589 00:26:33,300 --> 00:26:35,220 >> I computer non sono in corso per sapere quello che vuoi dire, 590 00:26:35,220 --> 00:26:37,430 anche quando si utilizza, come stiamo per fare oggi, 591 00:26:37,430 --> 00:26:42,300 programmare qualcosa in Scratch, una resistenza and drop, la lingua di puzzle stile pezzo. 592 00:26:42,300 --> 00:26:44,310 Anche progettata per i giovani bambini, si hanno 593 00:26:44,310 --> 00:26:48,726 essere così esplicito e così letterale con che cosa volete che il vostro programma di fare. 594 00:26:48,726 --> 00:26:50,600 Ora in ultima analisi, siamo sta per essere la programmazione 595 00:26:50,600 --> 00:26:53,550 non nel codice pseudocodice, Inglese come sintassi, 596 00:26:53,550 --> 00:26:56,370 ma il codice o, più propriamente, il codice sorgente. 597 00:26:56,370 --> 00:26:59,260 Il codice sorgente è solo il modo di fantasia per descrivere il codice che effettivamente 598 00:26:59,260 --> 00:27:01,730 scrivere con una tastiera che è non in inglese di per sé. 599 00:27:01,730 --> 00:27:06,480 E 'in C o Java o C ++ o qualcosa così, come vedremo tra poco. 600 00:27:06,480 --> 00:27:09,510 >> E infatti, solo per spaventare un pochi di voi, a prima vista, 601 00:27:09,510 --> 00:27:13,769 questo è un programma scritto in un linguaggio chiamato C. Ma per non-paura alcuni di voi, 602 00:27:13,769 --> 00:27:15,560 si sarà completamente capire cosa sta succedendo 603 00:27:15,560 --> 00:27:18,980 il venire Lunedi prossimo, quando viene a qualcosa di simile. 604 00:27:18,980 --> 00:27:20,510 Francamente, questo è un linguaggio vecchio. 605 00:27:20,510 --> 00:27:22,430 E 'abbastanza arcano, ma è rappresentativo 606 00:27:22,430 --> 00:27:26,120 di un sacco di lingue in questi giorni che hanno un sacco di parentesi e ricci 607 00:27:26,120 --> 00:27:28,630 bretelle e virgolette e virgola. 608 00:27:28,630 --> 00:27:30,780 E un sacco di questo roba sintattica che non è 609 00:27:30,780 --> 00:27:32,450 a tutti intellettualmente interessante. 610 00:27:32,450 --> 00:27:35,790 In effetti, si tratta di una distrazione assoluta dalle idee molto semplici 611 00:27:35,790 --> 00:27:37,370 che ci stanno fissando in faccia. 612 00:27:37,370 --> 00:27:41,760 Questo programma, come si può solo immaginare, stampe a schermo del computer di qualcuno 613 00:27:41,760 --> 00:27:44,070 le parole "Ciao mondo virgola." 614 00:27:44,070 --> 00:27:44,860 Questo è tutto. 615 00:27:44,860 --> 00:27:46,580 Quindi, chiaramente, c'è un sacco di roba che è 616 00:27:46,580 --> 00:27:48,970 ottenere nel modo di alcune ovvietà lì, 617 00:27:48,970 --> 00:27:52,490 ma sta andando a scivolare molto rapidamente di distanza ed essere completamente intuitiva. 618 00:27:52,490 --> 00:27:55,617 >> Infatti, che cosa stiamo andando a fare oggi è distillare questa abbastanza complessa 619 00:27:55,617 --> 00:27:58,950 programma cerca, che ancora una volta si verrà a di capire rapidamente, ma a qualcosa di 620 00:27:58,950 --> 00:27:59,710 molto più semplice. 621 00:27:59,710 --> 00:28:01,640 Diciamo solo che cosa intendiamo. 622 00:28:01,640 --> 00:28:05,590 Facciamo disegnare un quadro di ciò che noi intendiamo, per mezzo di questi pezzi del puzzle qui. 623 00:28:05,590 --> 00:28:09,110 >> Quindi questa è una programmazione lingua conosciuta come Scratch. 624 00:28:09,110 --> 00:28:11,080 È stato sviluppato da Media Lab del MIT. 625 00:28:11,080 --> 00:28:14,830 E quello che vedrete nel problema set a zero, che sarà rilasciato entro questa sera, 626 00:28:14,830 --> 00:28:18,980 dovremo andare a questo URL qui scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 E hanno un sito web interfaccia basata via che 628 00:28:20,940 --> 00:28:22,540 potrete scrivere il primo programma. 629 00:28:22,540 --> 00:28:25,330 O quelli di voi con la prima esperienza, i tuoi secondo programma, 630 00:28:25,330 --> 00:28:28,090 ma in un ambiente che è probabilmente un po 'sconosciuto e che 631 00:28:28,090 --> 00:28:32,930 spingerà a creare qualcosa usando questo ambiente molto visivo. 632 00:28:32,930 --> 00:28:35,940 >> Ora, che cosa ho intenzione di fare qui è aprire il programma stesso. 633 00:28:35,940 --> 00:28:41,911 Esiste non solo come un browser web, ma anche come un programma scaricabile 634 00:28:41,911 --> 00:28:44,660 in modo che si può effettivamente utilizzare se non si dispone di accesso a Internet. 635 00:28:44,660 --> 00:28:46,743 E ho intenzione di farlo qui, in Sanders, appena 636 00:28:46,743 --> 00:28:49,580 nel caso in cui il Wi-Fi non lo fa collaborare super-bene. 637 00:28:49,580 --> 00:28:52,640 E che cosa ho intenzione di fare è punto fuori alcune caratteristiche di questo programma. 638 00:28:52,640 --> 00:28:55,720 Quindi, per essere chiari, ho appena letto cliccato l'icona sul mio desktop, 639 00:28:55,720 --> 00:28:59,830 o equivalentemente andato a scratch.mit.edu, ed è tirato su questa finestra. 640 00:28:59,830 --> 00:29:01,650 Questo è un ambiente di programmazione. 641 00:29:01,650 --> 00:29:04,110 E 'un pezzo di software che alcuni dei nostri amici del MIT 642 00:29:04,110 --> 00:29:08,850 scrisse che ti permette di noi e si scrive programmi in un linguaggio chiamato Scratch. 643 00:29:08,850 --> 00:29:12,010 >> Ora, questo sembra essere un casalingo che anche il nome Scratch 644 00:29:12,010 --> 00:29:13,890 e questo è il suo mondo in cui vive. 645 00:29:13,890 --> 00:29:17,175 Questa è la fase, per così dire, che rettangolo in alto a sinistra. 646 00:29:17,175 --> 00:29:18,800 E lui non deve apparire come un gatto. 647 00:29:18,800 --> 00:29:20,591 Puoi farlo sembrare come niente e ti 648 00:29:20,591 --> 00:29:23,700 può avere molti di questi sprite, o caratteri, in un programma. 649 00:29:23,700 --> 00:29:27,450 Nel frattempo, qui in fondo a a destra, è un grande foglio bianco. 650 00:29:27,450 --> 00:29:30,260 Ed è qui che, in un momento, stiamo per iniziare la programmazione 651 00:29:30,260 --> 00:29:32,750 trascinando questi puzzle di grafica 652 00:29:32,750 --> 00:29:35,300 pezzi che è giusto qui in mezzo. 653 00:29:35,300 --> 00:29:38,140 E non c'è modo più di loro che passeremo il tempo qui in classe 654 00:29:38,140 --> 00:29:40,080 perché troverete che sono tutti abbastanza intuitivo. 655 00:29:40,080 --> 00:29:41,788 Ancora una volta, è progettato per i bambini, ma noi 656 00:29:41,788 --> 00:29:45,759 usarlo per prendere in giro a parte alcuni di quelli idee fondamentali di variabili, cicli, 657 00:29:45,759 --> 00:29:48,050 le condizioni, e, presto, le cose come funzioni ed eventi 658 00:29:48,050 --> 00:29:51,810 e filetti e altre cose di fantasia ti raggiungere in breve tempo a creare effettivamente 659 00:29:51,810 --> 00:29:53,840 qualcosa da zero. 660 00:29:53,840 --> 00:29:54,810 Gioco di parole. 661 00:29:54,810 --> 00:29:58,740 >> Ora, che cosa ho intenzione di fare qui è clicca su moto non, ma il controllo. 662 00:29:58,740 --> 00:30:01,400 E questo è solo un categorizzazione di qui-- 663 00:30:01,400 --> 00:30:03,150 e vedo un diverso set di colori dei blocchi. 664 00:30:03,150 --> 00:30:05,030 Ma bando poche parole familiari. 665 00:30:05,030 --> 00:30:07,830 "Se" e "else if" e "repeat". 666 00:30:07,830 --> 00:30:10,440 E si può intuire che ricorda del ramo, 667 00:30:10,440 --> 00:30:12,870 o le condizioni che abbiamo visto, e anche il costrutto di ciclo. 668 00:30:12,870 --> 00:30:14,760 Così abbiamo blocchi simili qui. 669 00:30:14,760 --> 00:30:16,720 Ma la più interessante uno è questo qui. 670 00:30:16,720 --> 00:30:20,690 Quando si fa clic su questa bandiera verde, questo, per quelli con preventiva programmazione 671 00:30:20,690 --> 00:30:23,110 esperienza, è equivalente a una funzione principale. 672 00:30:23,110 --> 00:30:25,300 Ma per chi non conosce, questo è il pezzo del puzzle 673 00:30:25,300 --> 00:30:27,320 che dovrebbe dare il via tutto il nostro programma. 674 00:30:27,320 --> 00:30:31,350 Letteralmente significa quando vado, in questo programma, e fare clic su un flag-- verde 675 00:30:31,350 --> 00:30:35,560 che potete vedere qui in alto a sinistra dell'interfaccia utente, 676 00:30:35,560 --> 00:30:38,570 in modo da vedere la bandiera verde accanto al segnale di stop rosso? 677 00:30:38,570 --> 00:30:41,475 Quando faccio clic su questo, il mio programma è andare a correre. 678 00:30:41,475 --> 00:30:43,850 Ora, ho intenzione di fare qualcosa super semplice con Scratch. 679 00:30:43,850 --> 00:30:46,640 Ho intenzione di andare avanti e andare al pannello di sguardi 680 00:30:46,640 --> 00:30:50,010 qui, dove ho un sacco di pezzi del puzzle viola, 681 00:30:50,010 --> 00:30:53,887 e ho intenzione di andare avanti e fare qualcosa di super semplice come, dicono. 682 00:30:53,887 --> 00:30:55,720 E preavviso then-- questo il testo nella casella bianca 683 00:30:55,720 --> 00:30:59,290 è editable-- ho intenzione di dire "Ciao mondo", proprio come noi 684 00:30:59,290 --> 00:31:01,470 ha fatto in quella testuale versione un momento fa. 685 00:31:01,470 --> 00:31:05,920 E ora se vado e fare clic su questo verde bandiera, ora ho programmato. 686 00:31:05,920 --> 00:31:07,810 Non è particolarmente programma interessante, 687 00:31:07,810 --> 00:31:09,760 ma ho fatto il computer fare qualcosa. 688 00:31:09,760 --> 00:31:13,120 Ho iniziato un programma e fatto quello che ho detto di fare. 689 00:31:13,120 --> 00:31:16,170 Ora, posso continuare a trascinare sempre di più di questi pezzi del puzzle 690 00:31:16,170 --> 00:31:19,220 e che stanno andando a interblocco, ma cerchiamo di schiaffo po 'di terminologia qui 691 00:31:19,220 --> 00:31:21,680 che vedremo ricorrenti durante tutto il corso, 692 00:31:21,680 --> 00:31:24,610 e davvero tutta l'informatica e programmazione, più in generale. 693 00:31:24,610 --> 00:31:27,990 >> Questa "dire" block, in viola, cerchiamo di basta iniziare a chiamare una dichiarazione. 694 00:31:27,990 --> 00:31:29,240 E 'come un dato di fatto. 695 00:31:29,240 --> 00:31:30,380 Fate questo. 696 00:31:30,380 --> 00:31:32,590 Quindi, si tratta di una categoria di istruzioni che si 697 00:31:32,590 --> 00:31:36,760 potrebbe alimentare un computer come parte di un programma o di un algoritmo. 698 00:31:36,760 --> 00:31:39,270 E per essere chiari, hai probabilmente dato per scontato 699 00:31:39,270 --> 00:31:41,930 che avete programmi sul computer. 700 00:31:41,930 --> 00:31:45,850 E sono tipi di algoritmi, ma un programma è davvero un mucchio di algoritmi 701 00:31:45,850 --> 00:31:47,160 che alcuni esseri umani hanno scritto. 702 00:31:47,160 --> 00:31:49,040 Sono confezionati in su e hanno venduto in modo che lei, 703 00:31:49,040 --> 00:31:51,330 oppure pubblicate su un sito web per il download. 704 00:31:51,330 --> 00:31:54,930 Così, un programma è solo un tutta una serie di zero e uno 705 00:31:54,930 --> 00:31:56,970 che, in qualche modo, gli esseri umani creati. 706 00:31:56,970 --> 00:32:00,080 E quei modelli di zeri e rappresentano quelle cose, in ultima analisi, 707 00:32:00,080 --> 00:32:04,030 come "dire ciao mondo" o "gioco questo music "o" riprodurre il video " 708 00:32:04,030 --> 00:32:05,129 o "invia una e-mail." 709 00:32:05,129 --> 00:32:06,920 Ma ci torneremo in modo più dettagliato cosa 710 00:32:06,920 --> 00:32:08,780 un programma è quando, te, li scrivono. 711 00:32:08,780 --> 00:32:11,320 >> Ecco un altro statement-- "Aspetta un secondo." 712 00:32:11,320 --> 00:32:14,330 Non ho ancora usato questo, ma se voglio il mio programma per mettere in pausa per un momento 713 00:32:14,330 --> 00:32:16,540 di fare qualcosa, posso dire di farlo. 714 00:32:16,540 --> 00:32:18,450 Aspetta un secondo. 715 00:32:18,450 --> 00:32:20,150 Ora, un altro potrebbe essere "riprodurre il suono." 716 00:32:20,150 --> 00:32:23,270 Quindi, questo è unico a zero, ha la capacità di riprodurre suoni. 717 00:32:23,270 --> 00:32:26,130 Quindi, una dichiarazione che potrebbe utilizzo è, qui, "giocare suono." 718 00:32:26,130 --> 00:32:29,530 Nel frattempo, espressione booleana, quindi questa è una parola più elaborato 719 00:32:29,530 --> 00:32:34,490 prende il nome da solo un ragazzo di nome Mr. Bool, e questo è tutto una domanda. 720 00:32:34,490 --> 00:32:37,470 Vero o false-- è il mouse verso il basso? 721 00:32:37,470 --> 00:32:41,100 Un'espressione booleana è solo qualche espressione in inglese 722 00:32:41,100 --> 00:32:42,860 che è o vera o falsa. 723 00:32:42,860 --> 00:32:44,140 ON o OFF. 724 00:32:44,140 --> 00:32:45,130 O uno o zero. 725 00:32:45,130 --> 00:32:46,960 Si può pensare ad esso in qualsiasi numero di modi, 726 00:32:46,960 --> 00:32:49,220 ma è vero o questa falsa, in ultima analisi. 727 00:32:49,220 --> 00:32:52,540 Quindi "mouse verso il basso punto interrogativo," che sarebbe una espressione booleana. 728 00:32:52,540 --> 00:32:54,300 E si può pensare agli altri, forse. 729 00:32:54,300 --> 00:32:57,510 Ad esempio, "è il numero di sinistra inferiore al numero giusto? " 730 00:32:57,510 --> 00:32:59,410 Anche questo sarebbe un'espressione booleana. 731 00:32:59,410 --> 00:33:01,540 "Meno" è una espressione booleana. 732 00:33:01,540 --> 00:33:03,280 >> Questo, anche, "il puntatore del mouse commovente." 733 00:33:03,280 --> 00:33:05,196 Non sono sicuro perché chiamato puntatore del mouse. 734 00:33:05,196 --> 00:33:08,430 Significa solo, è il cursore, è il freccia sullo schermo, toccare il gatto, 735 00:33:08,430 --> 00:33:09,022 per esempio. 736 00:33:09,022 --> 00:33:10,480 O qualche altro aspetto della schermata. 737 00:33:10,480 --> 00:33:13,710 Ed è una questione, ancora una volta, e che denota un'espressione booleana. 738 00:33:13,710 --> 00:33:17,130 Qualcosa che si potrebbe desidera utilizzare in una condizione. 739 00:33:17,130 --> 00:33:19,100 Quindi verremo a che in un attimo. 740 00:33:19,100 --> 00:33:20,350 È possibile "e" le cose insieme. 741 00:33:20,350 --> 00:33:23,099 Quindi, se si vuole verificare se questo è il caso e che è il caso, 742 00:33:23,099 --> 00:33:25,580 è possibile utilizzare un "e" block come questo. 743 00:33:25,580 --> 00:33:26,850 Ed ecco quella condizione. 744 00:33:26,850 --> 00:33:31,290 Notare la forma della piccola apertura nella parte superiore di questo pezzo di puzzle di colore giallo, 745 00:33:31,290 --> 00:33:34,480 è che ricorda la forma che abbiamo appena visto un momento fa. 746 00:33:34,480 --> 00:33:37,920 Ognuna di queste espressioni booleane avere questi bordi appuntiti 747 00:33:37,920 --> 00:33:39,030 a sinistra ea destra. 748 00:33:39,030 --> 00:33:43,140 E questo perché la gente del MIT ha deciso che da forme di trasporto visivamente, 749 00:33:43,140 --> 00:33:45,780 è possibile genere di aiutare le persone, studenti e bambini, 750 00:33:45,780 --> 00:33:47,650 al tipo di riempire gli spazi vuoti letteralmente. 751 00:33:47,650 --> 00:33:49,780 >> Ora che puzzle-- che apertura è un po 'piccola, 752 00:33:49,780 --> 00:33:52,750 e come vedremo nel programma, in Scratch, che crescerà per adattarsi. 753 00:33:52,750 --> 00:33:54,830 Manterrà la sua forma, in ultima analisi. 754 00:33:54,830 --> 00:33:58,350 Quindi una condizione ti permette di decidere "Devo fare qualcosa o no?" 755 00:33:58,350 --> 00:34:00,470 Un'espressione booleana è la domanda reale 756 00:34:00,470 --> 00:34:04,100 si sta utilizzando per decidere vado a sinistra o devo andare a destra 757 00:34:04,100 --> 00:34:06,710 quando ho incontrato questo cosiddetto bivio? 758 00:34:06,710 --> 00:34:07,980 È possibile avere due rami. 759 00:34:07,980 --> 00:34:10,909 Se qualcosa è vero, fare questo, altrimenti andate in questo modo, 760 00:34:10,909 --> 00:34:14,590 o si può semplicemente fare nulla tutto, come questo blocco implicita. 761 00:34:14,590 --> 00:34:16,360 Allo stesso modo, possiamo nido queste cose. 762 00:34:16,360 --> 00:34:20,204 Quindi, se si vuole triplicare forchetta nel strada, o fare questo o questo o quello, 763 00:34:20,204 --> 00:34:21,870 si può solo nido queste cose insieme. 764 00:34:21,870 --> 00:34:24,520 E comincia a diventare un po ' brutto, alla fine, di sicuro, 765 00:34:24,520 --> 00:34:26,120 ma la logica è sempre la stessa. 766 00:34:26,120 --> 00:34:28,000 Si può letteralmente leggere questa cima a fondo 767 00:34:28,000 --> 00:34:33,290 e dice ciò che means-- se questo è vero, fai questo, altrimenti se altrimenti. 768 00:34:33,290 --> 00:34:36,179 >> Un ciclo non ottiene più semplice in Scratch. 769 00:34:36,179 --> 00:34:37,422 Sempre fare quanto segue. 770 00:34:37,422 --> 00:34:39,880 Ora si potrebbe pensare che non può fare molto perché non c'è 771 00:34:39,880 --> 00:34:42,839 molto spazio tra la parte superiore e la fondo di questa apertura pezzo di puzzle. 772 00:34:42,839 --> 00:34:45,671 Ma vedrete Scratch sta per crescere per soddisfare il maggior numero di pezzi di puzzle 773 00:34:45,671 --> 00:34:47,060 come si vuole stipare in là. 774 00:34:47,060 --> 00:34:48,960 Un altro ciclo potrebbe essere espresse con ripetizioni. 775 00:34:48,960 --> 00:34:51,590 Se si conosce in anticipo, "I voglia di fare qualcosa di 10 volte, " 776 00:34:51,590 --> 00:34:54,010 si può solo dire Scratch di fare qualcosa per 10 volte. 777 00:34:54,010 --> 00:34:57,260 E, nel frattempo, possiamo avere variabili. 778 00:34:57,260 --> 00:34:59,572 Così qui è arbitraria, è arancione in questo caso, 779 00:34:59,572 --> 00:35:00,780 e questo è un tour. 780 00:35:00,780 --> 00:35:04,540 Anche in questo caso, troverete questo molto accessibile una volta che si inizia puntando e cliccando. 781 00:35:04,540 --> 00:35:07,930 Ho chiamato il mio variabile n, ma io avrebbe potuto chiamò tutto ciò che voglio, 782 00:35:07,930 --> 00:35:11,280 e sto impostando qui, in questo esempio arbitrario, a zero. 783 00:35:11,280 --> 00:35:14,250 >> Ora vedendo un programma come ciao mondo non è poi così avvincente, 784 00:35:14,250 --> 00:35:17,900 quindi cerchiamo di realtà aprono qualcosa che un ex studente ha fatto. 785 00:35:17,900 --> 00:35:23,100 Lasciami andare avanti e di aprire, per esempio, questo qui, 786 00:35:23,100 --> 00:35:26,780 per cui mi piacerebbe avere un volontario. 787 00:35:26,780 --> 00:35:28,450 Va bene, come about-- andiamo più lontano. 788 00:35:28,450 --> 00:35:29,240 Sì, vieni su. 789 00:35:29,240 --> 00:35:30,056 Come ti chiami? 790 00:35:30,056 --> 00:35:30,635 >> ABBY: Abby. 791 00:35:30,635 --> 00:35:32,010 DAVID J. MALAN: Abby, vieni su. 792 00:35:32,010 --> 00:35:35,930 Quindi avete mai giocato questo gioco prima? 793 00:35:35,930 --> 00:35:36,430 ABBY: No. 794 00:35:36,430 --> 00:35:37,370 DAVID J. MALAN: Va bene. 795 00:35:37,370 --> 00:35:38,380 David, piacere di conoscerti. 796 00:35:38,380 --> 00:35:39,620 Andiamo oltre. 797 00:35:39,620 --> 00:35:42,300 E qual è la vostra programmazione sfondo, se presente. 798 00:35:42,300 --> 00:35:43,914 >> ABBY: ho imparato un po 'di C ++. 799 00:35:43,914 --> 00:35:45,580 DAVID J. MALAN: Hai imparato qualche C ++. 800 00:35:45,580 --> 00:35:48,382 E qual è il vostro gioco la riproduzione di sfondo? 801 00:35:48,382 --> 00:35:49,505 >> ABBY: Non molto. 802 00:35:49,505 --> 00:35:51,130 DAVID J. MALAN: OK, quindi prenderemo quello. 803 00:35:51,130 --> 00:35:52,700 Quindi, ecco come il gioco sta andando a lavorare. 804 00:35:52,700 --> 00:35:54,510 Ho intenzione di andare avanti e clicca la bandiera verde, che 805 00:35:54,510 --> 00:35:55,830 è qui in alto a destra. 806 00:35:55,830 --> 00:35:59,710 Ora il vostro predecessore nella classe vi ha dato qui alcune istruzioni. 807 00:35:59,710 --> 00:36:02,306 E in un attimo, si dice "spazio per iniziare." 808 00:36:02,306 --> 00:36:03,680 Quindi, andare avanti e colpire la barra spaziatrice. 809 00:36:03,680 --> 00:36:05,507 >> GIOCO DI COMPUTER: Pikachu. 810 00:36:05,507 --> 00:36:08,340 DAVID J. MALAN: E l'obiettivo è quello di prendere il cibo, come illustrato là 811 00:36:08,340 --> 00:36:09,320 sulla sinistra. 812 00:36:09,320 --> 00:36:11,388 E per [incomprensibile] 813 00:36:11,388 --> 00:36:15,356 >> [GAME MUSIC GIOCO] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> DAVID J. MALAN: Aww, bene, grazie per la riproduzione. 816 00:36:29,610 --> 00:36:32,800 Abbiamo qui un po ' separazione regalo per voi. 817 00:36:32,800 --> 00:36:35,574 Abbiamo palla antistress CS50, se vuoi scegliere. 818 00:36:35,574 --> 00:36:36,820 Va bene, buono per incontrare voi. 819 00:36:36,820 --> 00:36:39,680 Grazie per essere venuto e stimolante. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Così abbiamo più palle di stress, così facciamo un esempio più per motivare. 822 00:36:46,910 --> 00:36:48,150 Un volontario? 823 00:36:48,150 --> 00:36:50,510 Va bene, come su proprio qui di fronte. 824 00:36:50,510 --> 00:36:51,250 Come ti chiami? 825 00:36:51,250 --> 00:36:51,660 >> PHILLIP: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> DAVID J. MALAN: Phillip. 827 00:36:52,660 --> 00:36:54,530 Vieni su, Phillip. 828 00:36:54,530 --> 00:36:57,340 Così, Phillip sta per essere sfidato con un altro gioco 829 00:36:57,340 --> 00:37:00,840 che uno dei suoi predecessori ha scritto come parte del problema impostato a zero, 830 00:37:00,840 --> 00:37:03,510 chiamato gioco più difficile di Ivy. 831 00:37:03,510 --> 00:37:05,980 E vedremo in un momento che cosa si intende con questo. 832 00:37:05,980 --> 00:37:07,400 Filippo, piacere di conoscerti. 833 00:37:07,400 --> 00:37:09,060 Qual è il tuo background? 834 00:37:09,060 --> 00:37:10,310 PHILLIP: Fatto un sacco di codifica. 835 00:37:10,310 --> 00:37:11,110 Fatto un po 'di gioco, troppo. 836 00:37:11,110 --> 00:37:11,570 >> DAVID J. MALAN: OK. 837 00:37:11,570 --> 00:37:12,620 Hai un sacco di gioco, troppo. 838 00:37:12,620 --> 00:37:14,230 E hai giocato a questo gioco prima? 839 00:37:14,230 --> 00:37:14,730 >> PHILLIP: No 840 00:37:14,730 --> 00:37:16,438 DAVID J. MALAN: Tutti a destra, ecco andiamo. 841 00:37:16,438 --> 00:37:18,434 Ho intenzione di andare avanti e fare clic sulla bandiera verde. 842 00:37:18,434 --> 00:37:24,160 >> [MUSIC GAME] 843 00:37:24,160 --> 00:37:27,770 >> [MUSICA MC Hammer, "U NON PUO 'TOCCARE QUESTO"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> PHILLIP: [incomprensibile] 846 00:38:41,635 --> 00:38:42,760 DAVID J. MALAN: [incomprensibile] 847 00:38:42,760 --> 00:38:44,740 PHILLIP: [incomprensibile] 848 00:38:44,740 --> 00:38:49,056 [Ride] 849 00:38:49,056 --> 00:38:50,680 [MUSICA MC Hammer, "U NON PUO 'TOCCARE QUESTO"] 850 00:38:50,680 --> 00:38:52,660 DAVID J. MALAN: [incomprensibile] Aratro attraverso di essa. 851 00:38:52,660 --> 00:38:54,094 PHILLIP: [incomprensibile] 852 00:38:54,094 --> 00:38:55,135 DAVID J. MALAN: Vai avanti. 853 00:38:55,135 --> 00:39:01,570 [MUSICA MC Hammer, "U NON PUO 'TOCCARE QUESTO"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 DAVID J. MALAN: Va bene. 856 00:39:16,915 --> 00:39:18,400 Complimenti. 857 00:39:18,400 --> 00:39:25,150 >> [Applausi] 858 00:39:25,150 --> 00:39:27,330 >> DAVID J. MALAN: Ci sarà post che in linea poi così 859 00:39:27,330 --> 00:39:29,820 che si può procrastinare con esso pure. 860 00:39:29,820 --> 00:39:32,550 Princeton viene accanto, dopo. 861 00:39:32,550 --> 00:39:35,470 >> Così ora andiamo in realtà procediamo di ripartire da zero, 862 00:39:35,470 --> 00:39:39,310 per così dire, e in realtà costruire fino siamo in grado di prendere in giro a parte alcune di queste idee 863 00:39:39,310 --> 00:39:41,970 e arrivare a qualcosa di ancora più complessa dalla fine. 864 00:39:41,970 --> 00:39:45,240 Ho intenzione di andare qui e ho intenzione di andare avanti e creare un nuovo file. 865 00:39:45,240 --> 00:39:47,460 Così ancora una volta, il problema insieme camminerà attraverso alcuni di questi passaggi. 866 00:39:47,460 --> 00:39:49,300 Ma, tutto quello che ho fatto è stato andare al menu File e io 867 00:39:49,300 --> 00:39:52,760 ha detto "nuovo", in modo molto simile a Microsoft Word, o qualsiasi programma del genere. 868 00:39:52,760 --> 00:39:56,630 >> E andiamo avanti now-- e noi implementato "Ciao mondo" un momento fa, 869 00:39:56,630 --> 00:39:58,410 ma facciamo qualcosa di un po 'più carino. 870 00:39:58,410 --> 00:40:00,150 Ho intenzione di andare fino agli eventi. 871 00:40:00,150 --> 00:40:02,350 E ho intenzione di fare "quando bandiera verde cliccato. " 872 00:40:02,350 --> 00:40:05,830 E poi ho intenzione di utilizzare, per così dire, un ramo. 873 00:40:05,830 --> 00:40:07,610 Quindi ho intenzione di utilizzare un "se" condizione. 874 00:40:07,610 --> 00:40:10,940 E notare come appena mi avvicino ad essa, vuole scatto insieme. 875 00:40:10,940 --> 00:40:13,020 Così ho lasciato andare e non scatta insieme. 876 00:40:13,020 --> 00:40:15,150 E ora posso fare qualcosa di interessante. 877 00:40:15,150 --> 00:40:19,150 Se io scorrere qui, io vado per vedere un sacco di blocchi. 878 00:40:19,150 --> 00:40:22,620 Se vado a "dati" - mi lascia lo zoom dentro-- c'è qualcosa sulle variabili. 879 00:40:22,620 --> 00:40:26,160 Se vado in "movimento", è possibile apparentemente cambiare le cose. 880 00:40:26,160 --> 00:40:28,760 Se vado a "operatori" - Oh, questo è interessante, 881 00:40:28,760 --> 00:40:31,000 Posso scegliere un numero casuale. 882 00:40:31,000 --> 00:40:34,119 Quindi, mi permetta di fare qualcosa solo con una certa probabilità, solo perché. 883 00:40:34,119 --> 00:40:36,160 Ho intenzione di andare avanti e trascinare il pezzo di puzzle, 884 00:40:36,160 --> 00:40:37,910 questo è che meno blocco, quindi è solo 885 00:40:37,910 --> 00:40:39,480 "È questo numero inferiore a quello?" 886 00:40:39,480 --> 00:40:42,438 Ma io non voglio un codice dura un numero perché che sia abbastanza inutile. 887 00:40:42,438 --> 00:40:46,270 Quindi ho intenzione di trascinare questo pezzo qui, e notare come non scatta in, 888 00:40:46,270 --> 00:40:49,480 e ora lasciami andare avanti e dire "se il numero che è scelto in modo casuale 889 00:40:49,480 --> 00:40:51,820 è inferiore a sei, procedere nel modo seguente. " 890 00:40:51,820 --> 00:40:52,790 Ora, perché meno di sei? 891 00:40:52,790 --> 00:40:56,400 Che probabilità è questo in modo efficace andando a dare me, solo intuitivamente? 892 00:40:56,400 --> 00:40:57,440 Circa il 50%, giusto? 893 00:40:57,440 --> 00:41:01,190 Se il numero di indovinare a caso tra 1 e 10 è inferiore a sei, 894 00:41:01,190 --> 00:41:03,480 chiaramente si tratta di uno, due, tre, quattro, o cinque. 895 00:41:03,480 --> 00:41:06,740 E così che sta andando a darmi una Probabilità del 50% di quello che succede? 896 00:41:06,740 --> 00:41:09,890 >> Beh, facciamo qualcosa di simile questo, "giocare meow suono." 897 00:41:09,890 --> 00:41:11,750 E notate, ancora una volta, il pezzo del puzzle cresce 898 00:41:11,750 --> 00:41:13,700 per misura, purché le forme corrispondono. 899 00:41:13,700 --> 00:41:14,910 Questo è ciò che è importante. 900 00:41:14,910 --> 00:41:18,000 Lascia che io vada a Scratch qui e fare clic su "gioco". 901 00:41:18,000 --> 00:41:19,300 Non succede nulla. 902 00:41:19,300 --> 00:41:21,160 È che un bug? 903 00:41:21,160 --> 00:41:21,999 No, non è necessario. 904 00:41:21,999 --> 00:41:24,040 Potrebbe essere solo che una è stato scelto il numero più grande. 905 00:41:24,040 --> 00:41:25,762 Quindi cerchiamo di farlo di nuovo. 906 00:41:25,762 --> 00:41:27,550 Niente. 907 00:41:27,550 --> 00:41:28,344 >> [Miao] 908 00:41:28,344 --> 00:41:29,510 DAVID J. MALAN: Eccola. 909 00:41:29,510 --> 00:41:30,280 [Miao] 910 00:41:30,280 --> 00:41:31,690 DAVID J. MALAN: Ancora una volta. 911 00:41:31,690 --> 00:41:32,300 No. 912 00:41:32,300 --> 00:41:32,922 >> [Miagolare] 913 00:41:32,922 --> 00:41:35,380 DAVID J. MALAN: Quindi, se avete mai giocato un gioco, ovviamente, 914 00:41:35,380 --> 00:41:38,500 dove roba che sta accadendo in modo casuale, come i cattivi stanno arrivando o non 915 00:41:38,500 --> 00:41:41,350 arrivando a schermo, o le cose stanno cadendo o che non rientrano, 916 00:41:41,350 --> 00:41:43,610 questo è solo perché qualcosa di super semplice come questo sta accadendo. 917 00:41:43,610 --> 00:41:46,010 Scegli un numero casuale, e se è meno di un certo valore, 918 00:41:46,010 --> 00:41:49,100 forse fare questo o forse farlo. 919 00:41:49,100 --> 00:41:51,340 Siamo in grado di incorporare che in una condizione. 920 00:41:51,340 --> 00:41:52,600 Facciamo qualcosa di diverso. 921 00:41:52,600 --> 00:41:53,559 >> Lasciatemi buttare via tutto. 922 00:41:53,559 --> 00:41:56,058 Si può sbarazzarsi di roba da semplicemente trascinandolo verso sinistra 923 00:41:56,058 --> 00:41:56,810 e lasciarsi andare. 924 00:41:56,810 --> 00:42:00,310 Lasciatemi andare avanti e fare un blocco per sempre e molto rapidamente fare qualcosa di fastidioso. 925 00:42:00,310 --> 00:42:03,010 Lasciami andare avanti e dire "meow riprodurre il suono." 926 00:42:03,010 --> 00:42:06,620 Ma io non voglio che questo sia troppo fastidioso, per cui vorrei afferrare questo blocco, 927 00:42:06,620 --> 00:42:09,090 "Aspetta un secondo" e preavviso non c'è più spazio per esso. 928 00:42:09,090 --> 00:42:11,310 Ma se si va abbastanza vicino, vuole andare lì. 929 00:42:11,310 --> 00:42:14,100 Così ho lasciato andare e si crescere fino a riempire il blocco. 930 00:42:14,100 --> 00:42:15,932 Così ora, questo è un loop. 931 00:42:15,932 --> 00:42:16,432 [Miagolare] 932 00:42:16,432 --> 00:42:18,473 DAVID J. MALAN: io sono letteralmente fare questo per sempre. 933 00:42:18,473 --> 00:42:19,360 Ancora e ancora. 934 00:42:19,360 --> 00:42:21,510 Che non è solo suono naturale. 935 00:42:21,510 --> 00:42:24,800 Lasciami andare avanti e cambiare questo non a un secondo, o due secondi 936 00:42:24,800 --> 00:42:25,854 e premere Invio. 937 00:42:25,854 --> 00:42:28,770 E ciò che è bello di Scratch è che si può programmare in modo interattivo. 938 00:42:28,770 --> 00:42:32,450 Fare un cambiamento, forse premere Invio o Play di nuovo, e sarà solo andare avanti. 939 00:42:32,450 --> 00:42:34,962 Bene, ora perché non facciamo qualcosa di un po 'più carino? 940 00:42:34,962 --> 00:42:39,680 Invece di fare tutto da zero, lasciami andare avanti e apro un anticipo 941 00:42:39,680 --> 00:42:43,180 fatto uno, che ho precotto, chiamato "Pet il gatto." 942 00:42:43,180 --> 00:42:44,920 E postiamo tutti questi file online, 943 00:42:44,920 --> 00:42:48,464 e problema di impostare lo zero vi dirà come accedervi e aprirli. 944 00:42:48,464 --> 00:42:49,880 E notate, questo è abbastanza semplice. 945 00:42:49,880 --> 00:42:53,860 Ma in anticipo, mi sembra di aver afferrato un blocco "per sempre", così ho un ciclo. 946 00:42:53,860 --> 00:42:55,500 E poi ho un "se" condizione. 947 00:42:55,500 --> 00:42:57,410 Ho una espressione booleana. 948 00:42:57,410 --> 00:43:00,100 >> Quindi, in inglese, un semplice sguardo alla questo, soprattutto se non hai mai 949 00:43:00,100 --> 00:43:04,278 programmato prima, solo intuitivamente, che cosa è questa intenzione di fare, questo programma? 950 00:43:04,278 --> 00:43:06,910 >> [CHATTER PUBBLICO] 951 00:43:06,910 --> 00:43:09,960 >> DAVID J. MALAN: Se accarezzare i gatti, il gatto sta andando a miagolare, giusto? 952 00:43:09,960 --> 00:43:14,560 Perché "per sempre deselezionando" è il puntatore del mouse toccando il gatto. 953 00:43:14,560 --> 00:43:17,630 Quindi, per essere chiari, e non ho detto questa prima, tutti questi rompicapo 954 00:43:17,630 --> 00:43:20,750 pezzi e lo script che li abbiamo combinati in, 955 00:43:20,750 --> 00:43:25,510 per così dire, uno script è sinonimo di programma, in realtà, appartiene a questo gatto. 956 00:43:25,510 --> 00:43:30,110 E la ragione è-- perché preavviso come questo stesso gatto qui è evidenziato, 957 00:43:30,110 --> 00:43:32,710 qui è possibile creare un secondo gatto o cane o realmente 958 00:43:32,710 --> 00:43:33,970 tutto ciò che si desidera graficamente. 959 00:43:33,970 --> 00:43:35,900 È possibile importare qualcosa da Photoshop, o simili, 960 00:43:35,900 --> 00:43:38,300 e integrare qualcosa se vuole fare per un progetto. 961 00:43:38,300 --> 00:43:40,174 E ciò che troverete, in definitiva, è che si 962 00:43:40,174 --> 00:43:44,800 può aggiungere script, aggiungere di puzzle pezzi, ai singoli caratteri. 963 00:43:44,800 --> 00:43:47,210 Quindi tutti questi appartengono a questo particolare gatto. 964 00:43:47,210 --> 00:43:51,770 Così ora se vado avanti e giocare questo programma, nulla succede. 965 00:43:51,770 --> 00:43:52,970 Ma è in esecuzione. 966 00:43:52,970 --> 00:43:56,364 Il programma è in questo eterno ciclo, tipo di attesa di cosa succederà? 967 00:43:56,364 --> 00:43:57,230 >> [CHATTER PUBBLICO] 968 00:43:57,230 --> 00:43:58,130 >> DAVID J. MALAN: Per accarezzare il gatto. 969 00:43:58,130 --> 00:43:59,800 Quindi, se io muovo il mouse verso lui-- 970 00:43:59,800 --> 00:44:02,420 >> [Miagolare] 971 00:44:02,420 --> 00:44:04,450 >> DAVID J. MALAN: Così ora Sto accarezzare il gatto. 972 00:44:04,450 --> 00:44:07,330 Nel frattempo, possiamo avere un doppio ramo. 973 00:44:07,330 --> 00:44:10,370 Lasciami andare avanti e aprire up non accarezzare il gatto. 974 00:44:10,370 --> 00:44:12,160 Pubblicheremo questa linea pure. 975 00:44:12,160 --> 00:44:16,760 Questo è un po 'più complessa, ma senza dire 976 00:44:16,760 --> 00:44:18,780 si può intuire forse cosa succederà. 977 00:44:18,780 --> 00:44:20,160 >> [Miagolare] 978 00:44:20,160 --> 00:44:23,900 >> DAVID J. MALAN: Cat è miagolando, grande vecchio tempo. 979 00:44:23,900 --> 00:44:26,690 Ma questo programma è naturalmente chiamato "Non Pet il gatto," 980 00:44:26,690 --> 00:44:29,350 così chiaramente, voglio accarezzare il gatto. 981 00:44:29,350 --> 00:44:30,490 >> [ROARING] 982 00:44:30,490 --> 00:44:31,940 >> DAVID J. MALAN: Non accarezzare il gatto. 983 00:44:31,940 --> 00:44:34,230 Ora, diamo uno sguardo un altro esempio qui. 984 00:44:34,230 --> 00:44:38,035 Questa sarà chiamata "Ciao, Ciao, Ciao," per ragioni 985 00:44:38,035 --> 00:44:40,410 che sarà chiaro, perché appena ho eseguito questo cosa-- 986 00:44:40,410 --> 00:44:41,401 >> [BARKING SEAL] 987 00:44:41,401 --> 00:44:43,942 DAVID J. MALAN: Molto facile scrivere programmi Scratch fastidiosi. 988 00:44:43,942 --> 00:44:45,300 [BARKING SEAL] 989 00:44:45,300 --> 00:44:48,540 DAVID J. MALAN: Ora non andremo in grande dettaglio con tutti questi, 990 00:44:48,540 --> 00:44:51,150 ma notare vi è una paio di nuove funzionalità qui. 991 00:44:51,150 --> 00:44:55,540 C'è una variabile, denominata "sordina" e poi c'è un sacco di condizioni. 992 00:44:55,540 --> 00:44:57,900 E per ora, lasciatemi appena si prendono in giro dicendo 993 00:44:57,900 --> 00:45:03,170 che se questo ragazzo diventa troppo fastidioso, Posso colpire la barra spaziatrice e lui si ferma. 994 00:45:03,170 --> 00:45:05,880 Poiché il ruolo svolto dalla questi due script è il seguente. 995 00:45:05,880 --> 00:45:08,510 Uno di loro sta facendo il abbaiare ogni pochi secondi. 996 00:45:08,510 --> 00:45:11,305 L'altro è solo in attesa per me per colpire la barra spaziatrice. 997 00:45:11,305 --> 00:45:14,780 E se lo faccio colpito la barra spaziatrice, sta andando a cambiare 998 00:45:14,780 --> 00:45:18,096 lo stato di questa variabile, il valore di questa variabile, che è apparentemente 999 00:45:18,096 --> 00:45:20,470 chiamato "sordina," Io non ho chiamato è qualcosa di noioso come n, 1000 00:45:20,470 --> 00:45:22,370 Ho chiamato una parola inglese, "silenziato". 1001 00:45:22,370 --> 00:45:24,740 Da 1 a 0 o 0 a 1. 1002 00:45:24,740 --> 00:45:26,830 Da true a false o false a true. 1003 00:45:26,830 --> 00:45:28,930 E così si può effettivamente vedere ora, che si 1004 00:45:28,930 --> 00:45:31,720 potrebbe avere due script, due programmi in esecuzione contemporaneamente, 1005 00:45:31,720 --> 00:45:34,360 e ciascuno di essi potrebbe essere seduti in un loop di fare qualcosa. 1006 00:45:34,360 --> 00:45:38,067 Aspettando l'uomo a fare qualcosa come colpire la barra spaziatrice. 1007 00:45:38,067 --> 00:45:38,650 [BARKING SEAL] 1008 00:45:38,650 --> 00:45:40,566 DAVID J. MALAN: Ed ora lui è il suo modo di nuovo. 1009 00:45:40,566 --> 00:45:41,640 [BARKING SEAL] 1010 00:45:41,640 --> 00:45:45,220 DAVID J. MALAN: Quindi, che cosa potremmo fare con questi esempi? 1011 00:45:45,220 --> 00:45:50,920 Bene, andiamo avanti e fare un esempio di contare le pecore. 1012 00:45:50,920 --> 00:45:59,210 Continueremo questo lungo le linee qui di-- apriamo l'esempio delle pecore. 1013 00:45:59,210 --> 00:46:02,460 E notate, proprio come prima, questo, per fortuna, è un po 'meno fastidioso. 1014 00:46:02,460 --> 00:46:06,940 Una volta mi ha colpito giocare qui-- Oh no, questo è fastidioso. 1015 00:46:06,940 --> 00:46:10,130 Sta per baa con una certa probabilità. 1016 00:46:10,130 --> 00:46:11,050 Giochiamo di nuovo. 1017 00:46:11,050 --> 00:46:15,221 >> [BLEETING PECORE] 1018 00:46:15,221 --> 00:46:18,470 DAVID J. MALAN: L'unica differenza è abbiamo cambiato il costume, per così dire, 1019 00:46:18,470 --> 00:46:21,710 e stiamo dimezzando e dire cosa che il numero reale è. 1020 00:46:21,710 --> 00:46:24,680 Bene andiamo avanti e prendere ulteriormente questo un passo. 1021 00:46:24,680 --> 00:46:28,190 E lasciate che vi prendono in giro con un'altra caratteristica qui. 1022 00:46:28,190 --> 00:46:31,800 Andiamo avanti e aprono un programma chiamato Threads. 1023 00:46:31,800 --> 00:46:36,620 Così tanto come si può avere una sprite, avendo più script, 1024 00:46:36,620 --> 00:46:41,250 si possono avere due sprite, un uccello in un gatto, ciascuno con il proprio copione. 1025 00:46:41,250 --> 00:46:43,976 E ognuno di loro può operare contemporaneamente. 1026 00:46:43,976 --> 00:46:45,980 Se hai mai sentito il parola "multithreading" 1027 00:46:45,980 --> 00:46:49,240 un computer significa "multithread" si può fare più cose in una volta, 1028 00:46:49,240 --> 00:46:50,880 e, anzi, così possono graffiare. 1029 00:46:50,880 --> 00:46:52,690 >> E ora notate l'uccello è una specie di muto. 1030 00:46:52,690 --> 00:46:55,100 Sta solo facendo le cose a caso, rimbalza fuori dallo schermo. 1031 00:46:55,100 --> 00:46:59,460 Chiaramente è stato programmato il gatto avere tipo di ricerca di capacità 1032 00:46:59,460 --> 00:47:02,680 a casa in sull'uccello perché lui è sempre rivolto a lui. 1033 00:47:02,680 --> 00:47:06,176 Fino alla fine, ha cattura l'uccello reale. 1034 00:47:06,176 --> 00:47:08,550 Quindi non mi dilungo sui dettagli qui, ma si può tipo di 1035 00:47:08,550 --> 00:47:12,160 intravedere le stesse forme, alcune "Se" le condizioni, alcune variabili, 1036 00:47:12,160 --> 00:47:15,740 forse alcuni loop, sono in ultima analisi, facendo la stessa cosa. 1037 00:47:15,740 --> 00:47:18,400 >> Ora lasciami andare avanti e aprire qualcos'altro del tutto, 1038 00:47:18,400 --> 00:47:20,920 prendere in giro alcuni di voi, in particolare quelli più confortevole, 1039 00:47:20,920 --> 00:47:22,760 quello che si può effettivamente fare con questo. 1040 00:47:22,760 --> 00:47:26,080 Ho intenzione di andare avanti e di aprire Button qui. 1041 00:47:26,080 --> 00:47:28,740 E questo è un super programma di semplice apparentemente, 1042 00:47:28,740 --> 00:47:34,190 ma guarda cosa succede quando I-- guardare quello che 1043 00:47:34,190 --> 00:47:39,860 succede quando apro questa versione di esso, qui nel browser, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 E quando clicco questo grande rosso pulsante, vedere cosa succede. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 Così che cosa sta succedendo qui? 1047 00:47:47,647 --> 00:47:50,480 In realtà c'è molto di più la complessità succedendo sotto il cofano, 1048 00:47:50,480 --> 00:47:52,896 anche se ho implementato questo, o francamente, Dan Bradley 1049 00:47:52,896 --> 00:47:54,660 ha implementato questo in modo semplice. 1050 00:47:54,660 --> 00:47:59,540 Ha disegnato un puzzle Scratch personalizzato pezzo, conosciuta come estensione Scratch, 1051 00:47:59,540 --> 00:48:01,300 lo chiamò Toggle. 1052 00:48:01,300 --> 00:48:06,332 >> E che cosa fa Toggle è invia un messaggio su internet. 1053 00:48:06,332 --> 00:48:08,290 E che messaggio stesso sembra un po 'criptico. 1054 00:48:08,290 --> 00:48:10,248 Ma anche questo, ti comprendere entro la fine del periodo. 1055 00:48:10,248 --> 00:48:14,930 Il messaggio che sta effettivamente inviando sembra un po 'qualcosa di simile. 1056 00:48:14,930 --> 00:48:15,921 E 'solo testo. 1057 00:48:15,921 --> 00:48:16,420 Cryptic. 1058 00:48:16,420 --> 00:48:19,130 Capirai che per il momento otteniamo il problema impostare sette. 1059 00:48:19,130 --> 00:48:22,180 E 'solo l'invio di un messaggio di testo su internet ad un server. 1060 00:48:22,180 --> 00:48:24,330 E questo server è, in ultima analisi, parlando con questa lampadina, che 1061 00:48:24,330 --> 00:48:27,240 è una di quelle lampadine di fantasia in modo che, a sua volta, sta parlando 1062 00:48:27,240 --> 00:48:30,760 alla rete Wi-Fi in rete qui, dove un dispositivo locale giù qui-- 1063 00:48:30,760 --> 00:48:34,400 e, in ultima analisi, in realtà è trasformando quella luce e si spegne. 1064 00:48:34,400 --> 00:48:36,240 Ma possiamo fare di più cose interessanti ancora. 1065 00:48:36,240 --> 00:48:38,270 Notate ciò che Dan ha fatto anche per noi. 1066 00:48:38,270 --> 00:48:42,210 Ha fatto più sprites, ciascuna delle che ha uno script in attesa di un click. 1067 00:48:42,210 --> 00:48:44,030 E se clicco rosso, va rosso. 1068 00:48:44,030 --> 00:48:46,780 Se ottengo blu, va bluastro. 1069 00:48:46,780 --> 00:48:49,854 Verde, giallo, arancione. 1070 00:48:49,854 --> 00:48:52,520 E tutto questo sta accadendo da andando via d'uscita su internet, 1071 00:48:52,520 --> 00:48:54,690 marcia indietro qui al lampadina, on e off. 1072 00:48:54,690 --> 00:48:57,981 >> E se si può credere it-- e questo è forse uno dei più complessi Scratch 1073 00:48:57,981 --> 00:49:00,930 progetti qualcuno ha implemented-- lo ha fatto, in tutta onestà, in un giorno. 1074 00:49:00,930 --> 00:49:04,180 E che era la sfida che abbiamo buttato giù di Dan quando abbiamo visto avere lampadine binari, 1075 00:49:04,180 --> 00:49:05,810 abbiamo Scratch, come possiamo combinarli? 1076 00:49:05,810 --> 00:49:08,410 E, in effetti, questo è assolutamente qualcosa che chiunque in questa stanza 1077 00:49:08,410 --> 00:49:14,250 potrebbe fare da end-- del semestre è lui lampadine binari reimplementata utilizzando 1078 00:49:14,250 --> 00:49:18,310 la stessa interfaccia che era sul nostro iPad il Mercoledì. 1079 00:49:18,310 --> 00:49:22,000 Così ora, se ho effettivamente fare clic sul più qui, 1080 00:49:22,000 --> 00:49:25,250 abbiamo uno, due, tre. 1081 00:49:25,250 --> 00:49:27,550 Posso colpire il 16 e accendere quella su. 1082 00:49:27,550 --> 00:49:29,440 128, e così via. 1083 00:49:29,440 --> 00:49:31,250 >> Ora, se questo da solo ha e soffiato la vostra mente, 1084 00:49:31,250 --> 00:49:35,680 si potrebbe fare cose molto più accessibile, non implichi qualsiasi hardware certamente. 1085 00:49:35,680 --> 00:49:38,320 Solo cose sullo schermo stesso. 1086 00:49:38,320 --> 00:49:41,110 E, in effetti, ciò che la maggior parte degli studenti finisce per fare è una sorta di gioco, 1087 00:49:41,110 --> 00:49:44,600 qualche pezzo del lavoro artistico, o una sorta di animazione interattiva. 1088 00:49:44,600 --> 00:49:47,352 E dirò uno dei nostri preferiti è stato questo. 1089 00:49:47,352 --> 00:49:49,060 E ho pensato che se ci potrebbe abbassare le luci, 1090 00:49:49,060 --> 00:49:52,960 daremo uno sguardo a questa finale Progetto Scratch in conclusione. 1091 00:49:52,960 --> 00:49:57,460 Ma cosa ti dovrebbe tenere a mente, come Posso prendere in giro voi con un ultimo dettaglio, 1092 00:49:57,460 --> 00:49:59,140 sezionamento inizierà la prossima settimana. 1093 00:49:59,140 --> 00:50:00,830 Orario di ricevimento inizieranno la prossima settimana. 1094 00:50:00,830 --> 00:50:04,410 Problema impostato sarà inviato a zero CS50.harvard.edu più tardi oggi. 1095 00:50:04,410 --> 00:50:06,430 E sarete accolti nel problema set a zero 1096 00:50:06,430 --> 00:50:10,070 al di CS50 proprio Zamyla Chan, che guida la maggior parte del nostro procedure dettagliate. 1097 00:50:10,070 --> 00:50:11,952 Questi sono i video incorporati negli insiemi di problemi 1098 00:50:11,952 --> 00:50:15,160 che si terrà la mano attraverso un sacco della configurazione iniziale e attraverso molti 1099 00:50:15,160 --> 00:50:16,570 delle possibili scelte progettuali. 1100 00:50:16,570 --> 00:50:19,570 Quindi, se hai mai avuto quell'emozione al momento del ritiro un compito per casa 1101 00:50:19,570 --> 00:50:21,030 e si chiede, da dove comincio? 1102 00:50:21,030 --> 00:50:23,510 Avrà la risposta per voi. 1103 00:50:23,510 --> 00:50:27,720 E ora, un programma definitivo da uno dei suoi predecessori 1104 00:50:27,720 --> 00:50:30,659 in risposta alla domanda "Che cosa dice la volpe?" 1105 00:50:30,659 --> 00:50:32,242 [MUSICA YLVIS, "COSA DICE LA VOLPE?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (CANTO) Cane va woof. 1108 00:50:41,666 --> 00:50:43,650 Cat va meow. 1109 00:50:43,650 --> 00:50:47,520 Uccello va Tweet e mouse va squittio. 1110 00:50:47,520 --> 00:50:49,240 Mucca va moo. 1111 00:50:49,240 --> 00:50:51,690 Rana va gracidio. 1112 00:50:51,690 --> 00:50:54,630 E l'elefante va toot. 1113 00:50:54,630 --> 00:50:59,040 Anatre dicono ciarlatano e pesce vanno blub. 1114 00:50:59,040 --> 00:51:07,370 E il sigillo va ow ow ow, ma c'è un suono che non si sa, 1115 00:51:07,370 --> 00:51:10,330 che cosa dice la volpe? 1116 00:51:10,330 --> 00:51:11,020 E 1117 00:51:11,020 --> 00:51:12,478 >> DAVID J. MALAN: Questo è tutto per CS50. 1118 00:51:12,478 --> 00:51:15,436 Ci vediamo a Puzzle Day e il Lunedi. 1119 00:51:15,436 --> 00:51:16,424 >> [Applausi] 1120 00:51:16,424 --> 00:51:19,882 >> [MUSICA YLVIS, "COSA LA VOLPE dire?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> NARRATORE: E ora profondo pensieri, da Daven Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Oggi sono stato colpito in faccia con una rubrica telefonica. 1125 00:51:34,570 --> 00:51:38,160 Confondere, come sono al casa a guardare on-line. 1126 00:51:38,160 --> 00:51:42,528