1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [MUSICA ROCK] 2 00:00:32,435 --> 00:00:35,429 [MUSICA - "HAPPY TOGETHER" LE TARTARUGHE] 3 00:01:27,330 --> 00:01:30,170 DAVID MALAN: Oggi iniziamo la nostra esplorazione del 4 00:01:30,170 --> 00:01:32,710 fondamenti di informatica e la nostra introduzione, 5 00:01:32,710 --> 00:01:35,070 Ora, la tecnica di programmazione, di cui questo è 6 00:01:35,070 --> 00:01:36,260 solo un esempio. 7 00:01:36,260 --> 00:01:39,600 Ma con lo stesso spirito di problem solving, sa che 8 00:01:39,600 --> 00:01:42,080 Giorno Puzzle tradizionale CS50 è domani. 9 00:01:42,080 --> 00:01:45,190 Se non hai ancora risposto per questo evento, si può andare a 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 È possibile portare squadre di due o tre o quattro. 12 00:01:50,940 --> 00:01:53,080 Sarete sfidati con problemi come quello che hai visto 13 00:01:53,080 --> 00:01:54,190 lassù all'inizio. 14 00:01:54,190 --> 00:01:57,000 Tutti i nuovi problemi di quest'anno se si partecipava l'anno scorso, e si 15 00:01:57,000 --> 00:01:59,680 avrà la possibilità poi di vincere fantastici premi. 16 00:01:59,680 --> 00:02:02,750 Tra questi, un Wii e alcuni buoni regalo e simili, 17 00:02:02,750 --> 00:02:05,650 il tutto mentre in giro con CS50 studenti e compagni di classe 18 00:02:05,650 --> 00:02:07,720 e pizza e Facebook. 19 00:02:07,720 --> 00:02:10,430 Quindi, più su che domani, se si desidera. 20 00:02:10,430 --> 00:02:13,330 >> Questo è quindi CS50, per quelli di voi con noi per la 21 00:02:13,330 --> 00:02:14,510 prima volta. 22 00:02:14,510 --> 00:02:18,030 E so che questo corso è particolarmente determinato a ottenere 23 00:02:18,030 --> 00:02:22,605 attraverso questo corso al suo fine, a questo punto si 24 00:02:22,605 --> 00:02:24,270 avrà non solo la comprensione di questi 25 00:02:24,270 --> 00:02:26,450 fondamenti di informatica, ma si dovrà 26 00:02:26,450 --> 00:02:29,120 questo insieme di abilità molto pratico che è possibile riprendere a 27 00:02:29,120 --> 00:02:31,370 suo reparto, che si tratti di scienze ingegneristiche, 28 00:02:31,370 --> 00:02:33,570 matematica applicata, le scienze fisiche, naturali 29 00:02:33,570 --> 00:02:34,780 scienza, o simili. 30 00:02:34,780 --> 00:02:37,030 In effetti, cosa c'è di così eccitante informatica questi 31 00:02:37,030 --> 00:02:39,900 giorni è che è proprio così applicabile a 32 00:02:39,900 --> 00:02:40,990 tutti i tipi di campi. 33 00:02:40,990 --> 00:02:46,210 E anche se oggi, ci sarà solo graffiare la superficie di un 34 00:02:46,210 --> 00:02:49,020 linguaggio di programmazione molto tradizionale conosciuto come C, faremo 35 00:02:49,020 --> 00:02:51,040 invece guardate cosa chiamata Scratch, qualcosa con 36 00:02:51,040 --> 00:02:53,420 che quella storia d'amore biscotto è stato attuato da uno dei tuoi 37 00:02:53,420 --> 00:02:57,020 predecessori negli anni passati, per raccontare storie, per creare giochi, 38 00:02:57,020 --> 00:03:00,060 per creare arte interattiva, e di iniziare effettivamente per avvolgere il nostro 39 00:03:00,060 --> 00:03:02,240 menti intorno alcuni dei costrutti fondamentali che 40 00:03:02,240 --> 00:03:05,390 alla base di programmazione, ma in un contesto, come si vedrà, è 41 00:03:05,390 --> 00:03:09,140 molto meno spaventoso, che è molto meno arcano, che si vedrà 42 00:03:09,140 --> 00:03:10,140 in breve tempo. 43 00:03:10,140 --> 00:03:12,410 E rendersi conto, anche, per quelli di voi solo per noi partecipare a questo 44 00:03:12,410 --> 00:03:16,170 semestre, le frasi su cui abbiamo finito lezione di Mercoledì, 45 00:03:16,170 --> 00:03:20,260 non è così importante dove si finisce relative alla vostra 46 00:03:20,260 --> 00:03:22,950 compagni di classe in questa classe, ma dove, entro la fine del semestre di 47 00:03:22,950 --> 00:03:27,190 in settimana 11, finiscono per rispetto a te stesso proprio in questo giorno. 48 00:03:27,190 --> 00:03:32,000 >> Quindi, senza ulteriori indugi, questa è anche la pena notare che 49 00:03:32,000 --> 00:03:34,450 quelli meno confortevole, quelli di mezzo, sono 50 00:03:34,450 --> 00:03:36,825 inoltre, in base alla progettazione di questo corso, non ad ogni svantaggio 51 00:03:36,825 --> 00:03:38,760 vis-a-vis quelli più a suo agio 52 00:03:38,760 --> 00:03:39,920 entrando in questa classe. 53 00:03:39,920 --> 00:03:41,810 Come si vedrà nel corso delle settimane a venire, ci sono diversi 54 00:03:41,810 --> 00:03:44,600 tracce per back background disparati, sezioni per chi 55 00:03:44,600 --> 00:03:46,500 meno comodo, più confortevole, quelli da qualche parte 56 00:03:46,500 --> 00:03:47,250 in mezzo. 57 00:03:47,250 --> 00:03:49,520 Come si vedrà in questo weekend e la prossima settimana, due versioni di 58 00:03:49,520 --> 00:03:52,410 maggior parte dei set di problemi sia in edizione standard e hacker in modo 59 00:03:52,410 --> 00:03:55,390 che tutti possono auto-selezionare lungo il sentiero con il quale si 60 00:03:55,390 --> 00:03:56,615 sono più comodi. 61 00:03:56,615 --> 00:03:58,770 >> Così oggi, ci immergiamo in questa programmazione 62 00:03:58,770 --> 00:04:00,060 linguaggio chiamato Scratch. 63 00:04:00,060 --> 00:04:02,250 E 'un linguaggio di programmazione grafica, e tuttavia ha il 64 00:04:02,250 --> 00:04:04,500 stesse caratteristiche di alcuni dei linguaggi di livello superiore avremo 65 00:04:04,500 --> 00:04:07,050 esplorare in seguito nel semestre, tra i quali C e 66 00:04:07,050 --> 00:04:08,670 JavaScript e PHP. 67 00:04:08,670 --> 00:04:11,890 Ma sta andando per permetterci di evitare alcune delle distrazioni 68 00:04:11,890 --> 00:04:14,890 nella fase iniziale della sintassi, cose come punto e virgola, parentesi, 69 00:04:14,890 --> 00:04:17,720 e altri dettagli oscuri che, a prima vista, non sono solo 70 00:04:17,720 --> 00:04:19,916 a tutti intellettualmente interessante e tendono a entrare in 71 00:04:19,916 --> 00:04:22,310 modo da qualche comprensione fondamentale. 72 00:04:22,310 --> 00:04:24,870 Per quanto riguarda ora la struttura di supporto in avanti, realizzato questo 73 00:04:24,870 --> 00:04:27,570 strumento, CS50 discutere, che sarà collegato sul suo corso la 74 00:04:27,570 --> 00:04:30,320 sito web più tardi di oggi, è il forum di discussione on-line in 75 00:04:30,320 --> 00:04:32,480 che sarete in grado di porre domande di ogni altro e 76 00:04:32,480 --> 00:04:35,020 personale, ed è anche uno strumento, come vedremo la prossima settimana, 77 00:04:35,020 --> 00:04:37,240 che useremo molto in modo integrato 78 00:04:37,240 --> 00:04:38,780 orario d'ufficio pure. 79 00:04:38,780 --> 00:04:41,670 In effetti, orario d'ufficio iniziare lunedì, e, francamente, il primo 80 00:04:41,670 --> 00:04:43,930 settimana di ore di ufficio è fondamentale piuttosto bassa. 81 00:04:43,930 --> 00:04:46,820 >> Non credo che troverete tutto ciò che Scratch inaccessibile. 82 00:04:46,820 --> 00:04:48,930 E 'piuttosto auto-esplicativo, come vedremo, e quindi ciò che 83 00:04:48,930 --> 00:04:51,380 lo useremo per oggi è quello di estrarre una parte del 84 00:04:51,380 --> 00:04:53,990 idee fondamentali che, poi, persistono per tutta la 85 00:04:53,990 --> 00:04:54,900 resto del semestre. 86 00:04:54,900 --> 00:04:57,980 Ma a partire da lunedì, alle 8:00 PM tramite 23:00 sarà 87 00:04:57,980 --> 00:05:01,530 orari d'ufficio in oltre Annenberg pausa cervello. 88 00:05:01,530 --> 00:05:04,490 Sezionamento due inizierà questa sera, in modo a volte questo 89 00:05:04,490 --> 00:05:07,260 fine settimana, andare a cs50.net/section, e ti 90 00:05:07,260 --> 00:05:08,530 chiesto una serie di domande. 91 00:05:08,530 --> 00:05:10,290 Tra questi, come descriveresti la tua 92 00:05:10,290 --> 00:05:12,040 livello di comfort fino ad oggi? 93 00:05:12,040 --> 00:05:14,450 Non c'è duro, regola veloce da chi è in cui secchio. 94 00:05:14,450 --> 00:05:17,170 E 'proprio il tipo di cosa che probabilmente sapete se si 95 00:05:17,170 --> 00:05:20,280 sono tra quelle che la meno confortevole o meno. 96 00:05:20,280 --> 00:05:21,350 >> E ora, procedure dettagliate. 97 00:05:21,350 --> 00:05:24,020 Il set di specifiche problema per questa settimana, sia standard 98 00:05:24,020 --> 00:05:28,560 e l'edizione per gli stessi hacker, è online all'indirizzo cs50.net fin d'ora. 99 00:05:28,560 --> 00:05:31,500 E vedrai che la prima di queste edizioni, il 100 00:05:31,500 --> 00:05:33,940 edizione standard ogni settimana, è accompagnata da qualcosa che 101 00:05:33,940 --> 00:05:36,550 chiamare una procedura dettagliata codice, una sessione guidata da uno dei 102 00:05:36,550 --> 00:05:39,100 compagni di insegnamento del corso di guidare l'utente attraverso, fornire 103 00:05:39,100 --> 00:05:42,290 consigli su, e si ottiene un percorso particolare quando si tratta 104 00:05:42,290 --> 00:05:44,150 di iniziare questi insiemi di problemi. 105 00:05:44,150 --> 00:05:46,790 Quindi, con ciascuno di questi set di problema, se hai mai voglia 106 00:05:46,790 --> 00:05:50,250 per te da dove cominciare, si inizia con questi 107 00:05:50,250 --> 00:05:50,890 procedure dettagliate. 108 00:05:50,890 --> 00:05:53,450 E infatti, mi permetta di introdurre Zamyla Chan, questa 109 00:05:53,450 --> 00:05:55,870 anno svolge attività didattica che guiderà ogni 110 00:05:55,870 --> 00:05:56,910 una di queste procedure dettagliate. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Applausi] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA Chandler: Oh, ciao a tutti. 114 00:06:03,975 --> 00:06:05,130 Il mio nome è Zamyla. 115 00:06:05,130 --> 00:06:08,250 Sono un giovane studio di ingegneria a Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Ma cerco di corrispondere il molti corsi di informatica come ho 117 00:06:10,890 --> 00:06:13,350 può, che è per questo che sono davvero entusiasta di essere alla guida di questa 118 00:06:13,350 --> 00:06:14,590 quest'anno procedure dettagliate. 119 00:06:14,590 --> 00:06:16,950 Procedure dettagliate, per me, erano una parte essenziale del mio CS50 120 00:06:16,950 --> 00:06:17,910 esperienza. 121 00:06:17,910 --> 00:06:22,710 Durante la procedura dettagliata, per ogni p-set, andremo attraverso 122 00:06:22,710 --> 00:06:25,580 il problema posto insieme, guardare oltre i problemi, specie di 123 00:06:25,580 --> 00:06:27,360 dividerli fino a morsi gestibili. 124 00:06:27,360 --> 00:06:28,990 Ti darò suggerimenti, tecniche, per ottenere 125 00:06:28,990 --> 00:06:30,820 attraverso e iniziare. 126 00:06:30,820 --> 00:06:33,510 Spero di vedervi tutti alle procedure dettagliate. 127 00:06:33,510 --> 00:06:34,720 Se non è possibile farlo di persona, quindi 128 00:06:34,720 --> 00:06:36,580 si prega di fare tune-in online. 129 00:06:36,580 --> 00:06:36,840 >> DAVID MALAN: Eccellente. 130 00:06:36,840 --> 00:06:37,950 Grazie, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Così si rendono conto che procedure dettagliate sono, infatti, di Venerdì 132 00:06:40,870 --> 00:06:43,110 pomeriggio, ma questo è volutamente di progettazione in modo che 133 00:06:43,110 --> 00:06:45,750 anche se si preferisce non frequentare le lezioni di Venerdì 134 00:06:45,750 --> 00:06:48,490 pomeriggio, i video sarà tutto lo più rapidamente nel 135 00:06:48,490 --> 00:06:48,990 il fine settimana. 136 00:06:48,990 --> 00:06:51,880 Così si rendono conto che cs50.net sarà tutto di Zamyla di 137 00:06:51,880 --> 00:06:53,130 procedure dettagliate. 138 00:06:54,800 --> 00:06:56,890 E che ci sia data odierna e l'ora, 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 E alcuni dei compagni di insegnamento hanno anche preparato 141 00:07:00,080 --> 00:07:03,250 alcune osservazioni per voi in contumacia per darvi un po 'di 142 00:07:03,250 --> 00:07:06,760 punto di vista di ciò che la loro esperienza in entrata e in 143 00:07:06,760 --> 00:07:08,990 uscendo CS50 era come. 144 00:07:08,990 --> 00:07:11,250 Quindi, se si potesse abbassare le luci per un attimo, ti do 145 00:07:11,250 --> 00:07:18,100 una parte del personale di CS50. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: ho preso l'anno scorso CS50 come matricola nel 147 00:07:20,440 --> 00:07:22,880 cadere, e assolutamente saltato la mia mente. 148 00:07:22,880 --> 00:07:25,090 Non avevo mai preso tutte le classi di programmazione prima, 149 00:07:25,090 --> 00:07:26,380 e non è mai entrato in con qualsiasi informatica 150 00:07:26,380 --> 00:07:27,320 esperienza. 151 00:07:27,320 --> 00:07:29,240 E proprio, ho sentito il ronzio sulla classe e 152 00:07:29,240 --> 00:07:30,050 deciso di prendere. 153 00:07:30,050 --> 00:07:31,780 >> JULIA Mitelman: E 'stato davvero divertente, molto coinvolgente. 154 00:07:31,780 --> 00:07:33,480 Ho ancora, fino ad oggi - 155 00:07:33,480 --> 00:07:36,560 Ho da poco visto che ho il floppy disk che David ci ha dato 156 00:07:36,560 --> 00:07:38,140 il nostro primo giorno di lezione. 157 00:07:38,140 --> 00:07:40,020 Avevo appeso sul mio muro. 158 00:07:40,020 --> 00:07:42,410 Questo è probabilmente un po 'nerd, ma ho appeso in sul mio 159 00:07:42,410 --> 00:07:46,930 parete durante la classe come un promemoria di quanto freddo è stato. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: E 'così imbarazzante. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: Informatica è qualcosa che si 162 00:07:50,770 --> 00:07:52,370 dovrebbe provare, anche se non sei uno per 163 00:07:52,370 --> 00:07:54,980 le scienze tradizionali. 164 00:07:54,980 --> 00:07:58,510 E 'la propria esperienza, e CS50 farà in modo che tu sei 165 00:07:58,510 --> 00:08:01,520 supportato bene attraverso di essa con il suo vero e proprio esercito di TF. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: l'ho presa come una matricola, e così ho fatto un sacco 167 00:08:03,700 --> 00:08:04,215 di nuovi amici. 168 00:08:04,215 --> 00:08:07,170 Ho anche ottenuto introdotto per intero e questa concentrazione 169 00:08:07,170 --> 00:08:10,770 intera scuola di ingegneria, e quindi lo consiglio vivamente 170 00:08:10,770 --> 00:08:14,360 e vi danno il benvenuto nella nostra famiglia CS50. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv Yacoby: CS50 insegna te come utilizzare gli strumenti 172 00:08:17,510 --> 00:08:19,210 che sono ampiamente accessibili. 173 00:08:19,210 --> 00:08:21,840 Hai solo bisogno di un computer portatile, è necessario un browser web, e si 174 00:08:21,840 --> 00:08:26,030 bisogno di imparare a scrivere del codice, e si può veramente costruire 175 00:08:26,030 --> 00:08:27,400 altre belle cose. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: E 'così bello essere in grado di fare qualcosa di 177 00:08:31,660 --> 00:08:34,580 e sono persone lo usano e hanno la gente lo vede, e questo è 178 00:08:34,580 --> 00:08:35,900 quello che mi piace molto su di esso. 179 00:08:35,900 --> 00:08:37,429 >> TIM MCLAUGHLIN: - un senso di comunità, credo che, in questo 180 00:08:37,429 --> 00:08:39,470 corso più di qualsiasi altro corso che ho preso finora. 181 00:08:39,470 --> 00:08:41,350 Lei non è solo prendendo un altro - 182 00:08:41,350 --> 00:08:42,740 non si sta riempiendo un altro requisito. 183 00:08:42,740 --> 00:08:45,310 Lei non è solo andando a lezioni e andare alla sezione. 184 00:08:45,310 --> 00:08:49,630 Ma che stai facendo tonnellate di cose che sono tutti di 185 00:08:49,630 --> 00:08:51,560 programmazione e tutto sulla tecnologia, ma non è così 186 00:08:51,560 --> 00:08:53,090 veramente sentire come una classe la maggior parte del tempo. 187 00:08:53,090 --> 00:08:55,012 >> DOWNS Travis: E il primo giorno, hanno distribuito torta, e 188 00:08:55,012 --> 00:08:56,215 Sono stato subito venduto. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: caramelle gratis e pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - indipendentemente dal tuo livello di interesse, credo 191 00:08:59,820 --> 00:09:05,170 che CS50, vi divertirete, e sarete intellettualmente 192 00:09:05,170 --> 00:09:06,070 stimolato. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: E 'sempre una festa in classe, ed è un 194 00:09:07,926 --> 00:09:09,990 festa ogni sera a lavorare sul set-p. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Ogni volta che si finisce un set di problema, è 196 00:09:11,880 --> 00:09:13,710 si sente come si è finito un progetto. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: E 'stato primo anno, e mi è stato fatto shopping. 198 00:09:16,580 --> 00:09:19,030 Ho avuto i miei quattro classi pronto, e io ero in Annenberg. 199 00:09:19,030 --> 00:09:21,670 E mi imbatto in un amico, e lui dice, ehi, sto acquistando 200 00:09:21,670 --> 00:09:24,330 questa classe denominata CS50, e dovresti venire con me. 201 00:09:24,330 --> 00:09:28,150 Finito per prendere in modo che cadono, e dopo quella classe, mi 202 00:09:28,150 --> 00:09:30,510 pensato che forse ho intenzione di minore CS. 203 00:09:30,510 --> 00:09:33,760 Ma eccomi qui, tre anni più tardi, ancora studiando del computer 204 00:09:33,760 --> 00:09:36,680 scienza e farlo veramente come un importante, e mi è piaciuto ogni 205 00:09:36,680 --> 00:09:37,780 momento di esso. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: Non ne ho idea. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Vediamo un po '. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: follia. 209 00:09:49,200 --> 00:09:50,610 >> SPEAKER 1: Mi sento come se sarei molto cliché. 210 00:09:50,610 --> 00:09:52,530 Vorrei solo dire, come, impressionante. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv Yacoby: Accessibilità. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: caramelle gratis e pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: Impossibile rifiutare una classe che distribuisce torta. 214 00:09:57,310 --> 00:09:58,510 >> TIM MCLAUGHLIN: Energetica. 215 00:09:58,510 --> 00:10:00,040 >> VIPUL Shekhawat: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Fammi pensare a una risposta. 217 00:10:02,636 --> 00:10:04,480 Credo di avere qualcosa. 218 00:10:04,480 --> 00:10:07,092 Oh, dio. 219 00:10:07,092 --> 00:10:13,370 Sì, il mio nome è Rob Bowden, e questo è CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Applausi] 221 00:10:20,810 --> 00:10:23,390 DAVID MALAN: Va bene, allora cominciamo a dipingere un quadro 222 00:10:23,390 --> 00:10:26,230 della direzione in cui possiamo andare, e introduciamo 223 00:10:26,230 --> 00:10:28,190 questo concetto qui noto come pseudocodice. 224 00:10:28,190 --> 00:10:29,560 Così pseudocodice non è una programmazione 225 00:10:29,560 --> 00:10:30,810 linguaggio a se stessa. 226 00:10:30,810 --> 00:10:33,250 Non è niente di tecnica di per sé, ma è solo una specie di 227 00:10:33,250 --> 00:10:36,490 modo generale di esprimere se stessi con precisione, 228 00:10:36,490 --> 00:10:39,730 abbastanza algoritmicamente, piuttosto procedurale, ma senza 229 00:10:39,730 --> 00:10:42,570 doversi preoccupare di quale lingua si sta esprimendo 230 00:10:42,570 --> 00:10:43,150 te trovi 231 00:10:43,150 --> 00:10:46,280 E 'un po' il modello della lingua inglese e linguaggi di programmazione con 232 00:10:46,280 --> 00:10:48,790 che vi capita di essere a conoscenza, in modo da poter iniziare a 233 00:10:48,790 --> 00:10:50,600 scrivere questo genere di cose come andiamo. 234 00:10:50,600 --> 00:10:54,450 E infatti, Joseph, potrei prendere in prestito fino ad essere sul palco 235 00:10:54,450 --> 00:10:55,490 scriba qui? 236 00:10:55,490 --> 00:11:00,130 Sono andato avanti qui in anticipo e dimenticato di mettere 237 00:11:00,130 --> 00:11:02,920 su un paio di calzini di oggi, e questo sarà tra i nostri più 238 00:11:02,920 --> 00:11:03,780 Esempi di ridicolo. 239 00:11:03,780 --> 00:11:04,580 >> Ora, ho bisogno di te qui. 240 00:11:04,580 --> 00:11:05,630 Farò la parte calzini. 241 00:11:05,630 --> 00:11:08,040 Quindi qui abbiamo un pad piccolo graffio. 242 00:11:08,040 --> 00:11:09,940 Questo è letteralmente TextEdit in Mac. 243 00:11:09,940 --> 00:11:12,270 Non stiamo in realtà sta per scrivere un programma eseguibile, ma 244 00:11:12,270 --> 00:11:14,220 stiamo solo andando a iniziare a delineare basato pseudocodice 245 00:11:14,220 --> 00:11:17,830 su alcuni dei consigli forniti dall'utente a me qui. 246 00:11:17,830 --> 00:11:20,760 Quindi, ecco la mia pila di calzini a casa. 247 00:11:20,760 --> 00:11:23,320 Non ho calze a quando mi sveglio la mattina, e ora 248 00:11:23,320 --> 00:11:26,280 bisogno di scrivere un programma, un algoritmo di sorta, con la quale 249 00:11:26,280 --> 00:11:27,900 per ottenere queste calze in piedi. 250 00:11:27,900 --> 00:11:30,860 E lungo la strada, vediamo se ci inciampare, o di incontrare, 251 00:11:30,860 --> 00:11:32,860 alcune delle idee che si sta andando ad avere per iniziare a 252 00:11:32,860 --> 00:11:35,470 pensare molto più seriamente quando si programma 253 00:11:35,470 --> 00:11:37,950 perché i programmi non si comportano affatto come previsto. 254 00:11:37,950 --> 00:11:39,580 >> Così mi siedo qui. 255 00:11:39,580 --> 00:11:41,180 Ho il mio mucchio di calzini. 256 00:11:41,180 --> 00:11:43,780 Qual è la prima cosa che un essere umano sarebbe ragionevole 257 00:11:43,780 --> 00:11:46,600 fare quando l'obiettivo è quello di mettere su un paio di calzini? 258 00:11:46,600 --> 00:11:49,190 Qualcuno mi dia un passo, e solo un passo. 259 00:11:49,190 --> 00:11:49,796 Si '? 260 00:11:49,796 --> 00:11:50,690 PUBBLICO: Piegare verso il basso. 261 00:11:50,690 --> 00:11:54,290 DAVID MALAN: Piegare verso il basso, Ok. 262 00:11:54,290 --> 00:11:55,540 Fase due. 263 00:11:59,975 --> 00:12:00,645 Fase due. 264 00:12:00,645 --> 00:12:01,840 PUBBLICO: Prendi il tuo calzino. 265 00:12:01,840 --> 00:12:03,220 DAVID MALAN: Prendi il tuo calzino. 266 00:12:03,220 --> 00:12:07,610 Ok, così lieve ambiguità qui, e questo è uno dei primi 267 00:12:07,610 --> 00:12:09,380 pietre d'inciampo che dovremmo deliberatamente 268 00:12:09,380 --> 00:12:10,290 incontrano qui. 269 00:12:10,290 --> 00:12:14,110 E 'un po' ambigua, in modo da scegliere il vostro calzino. 270 00:12:14,110 --> 00:12:17,425 Bene, prendo questo, ma un computer, realizzare in un 271 00:12:17,425 --> 00:12:20,420 bit, non ha intenzione di avere quel tipo di istinto umano a poco 272 00:12:20,420 --> 00:12:21,490 scegliere quello più vicino. 273 00:12:21,490 --> 00:12:23,590 Stiamo per iniziare, in breve tempo, esprimendo 274 00:12:23,590 --> 00:12:24,610 noi stessi con maggiore precisione. 275 00:12:24,610 --> 00:12:26,600 >> Va bene, allora la fase due è prendere il vostro calzino. 276 00:12:26,600 --> 00:12:27,520 Lo prendiamo. 277 00:12:27,520 --> 00:12:28,620 Fase tre. 278 00:12:28,620 --> 00:12:29,532 Nella parte posteriore. 279 00:12:29,532 --> 00:12:30,900 PUBBLICO: Trovare una coppia assortita. 280 00:12:30,900 --> 00:12:32,060 DAVID MALAN: Trova una ragazza alla corrispondenza. 281 00:12:32,060 --> 00:12:34,740 Ok, quindi questo è un bene. 282 00:12:34,740 --> 00:12:35,650 Ho dovuto scegliere questa calza. 283 00:12:35,650 --> 00:12:39,200 Quindi l'obiettivo è di trovare un calzino corrispondenza, ora, ma ciò che 284 00:12:39,200 --> 00:12:39,990 vuol dire? 285 00:12:39,990 --> 00:12:42,130 Un essere umano ragionevole essere, proprio come il Mercoledì, quando ho 286 00:12:42,130 --> 00:12:44,700 sapeva come trovare Mike Smith in una rubrica telefonica, solo tipo di 287 00:12:44,700 --> 00:12:45,640 è andato con il loro istinto. 288 00:12:45,640 --> 00:12:49,220 Ma qui, è ovviamente questa calza qui, ma di un computer 289 00:12:49,220 --> 00:12:51,350 non sarà così istintivo. 290 00:12:51,350 --> 00:12:53,830 Un computer sta per avere un insieme di bit, come abbiamo 291 00:12:53,830 --> 00:12:55,380 discusso il Mercoledì, e questi sono 292 00:12:55,380 --> 00:12:56,710 organizzata in qualche modo nella memoria. 293 00:12:56,710 --> 00:13:00,400 Ma il punto è che un computer ha solo la capacità 294 00:13:00,400 --> 00:13:03,390 di guardare le cose una alla volta, e di fatto, anche noi 295 00:13:03,390 --> 00:13:05,980 gli esseri umani - anche se ci si sente come se lo sguardo verso il basso e una scissione 296 00:13:05,980 --> 00:13:08,900 secondo dopo So dove il calzino sia, il mio cervello e gli occhi 297 00:13:08,900 --> 00:13:12,000 presumibilmente ha un rapido scorrere di quei calzini, e poi bloccata 298 00:13:12,000 --> 00:13:13,400 a quello in esame. 299 00:13:13,400 --> 00:13:15,780 >> Quindi se tanto più deliberata ora come un computer, 300 00:13:15,780 --> 00:13:17,780 come faccio a trovare questa coppia di corrispondenza? 301 00:13:17,780 --> 00:13:18,890 Beh, dobbiamo iterare. 302 00:13:18,890 --> 00:13:21,440 Dobbiamo forse ciclo su questo pasticcio di calze sul 303 00:13:21,440 --> 00:13:25,760 piano in base al quale io dico una cosa del genere PER OGNI calzino, raccoglierlo 304 00:13:25,760 --> 00:13:30,195 , e se la stessa forma e dimensioni, come l'altro, POI 305 00:13:30,195 --> 00:13:32,150 dot, dot, dot, continueremo la storia. 306 00:13:32,150 --> 00:13:34,430 Così, per ogni calza, quindi prendo questo. 307 00:13:34,430 --> 00:13:36,520 Posso controllare è questo uguale a questo. 308 00:13:36,520 --> 00:13:38,250 Non è, quindi ho messo da parte laterale. 309 00:13:38,250 --> 00:13:39,220 Poi mi scorrere di nuovo. 310 00:13:39,220 --> 00:13:40,340 E `uguale uno? 311 00:13:40,340 --> 00:13:42,010 No, non è, così l'ho messo da parte. 312 00:13:42,010 --> 00:13:42,710 E 'questo? 313 00:13:42,710 --> 00:13:43,200 No. 314 00:13:43,200 --> 00:13:43,670 Questo? 315 00:13:43,670 --> 00:13:44,520 No, e così via. 316 00:13:44,520 --> 00:13:48,730 E poi finalmente, si spera, mi incontreranno questa calza qui. 317 00:13:48,730 --> 00:13:51,350 Quindi, se è la stessa forma, le dimensioni, la prenda. 318 00:13:51,350 --> 00:13:53,980 >> E ora, che cosa sarebbe il nostro prossimo passo qui? 319 00:13:53,980 --> 00:13:54,402 Si '? 320 00:13:54,402 --> 00:13:56,090 PUBBLICO: Identificare la destra dalla sinistra. 321 00:13:56,090 --> 00:13:58,980 DAVID MALAN: Okay, identificare destra e sinistra, in modo da 322 00:13:58,980 --> 00:14:01,870 per fortuna, questo tipo di opere. 323 00:14:01,870 --> 00:14:04,020 Un po 'di simmetrico, o ho semplicemente indossato in quel modo. 324 00:14:04,020 --> 00:14:07,020 Va bene, così ho identificato il diritto. 325 00:14:07,020 --> 00:14:09,980 E ora, prima di procedere, vorrei sottolineare quello che Giuseppe 326 00:14:09,980 --> 00:14:12,890 state facendo qui come una sorta di un programmatore esperto. 327 00:14:12,890 --> 00:14:15,800 Quindi, di nuovo, non c'è un modo di fare questo, ma oltre la semplice 328 00:14:15,800 --> 00:14:18,480 numerare le righe, Joseph ha già iniziato a fare questo 329 00:14:18,480 --> 00:14:19,460 sorta di rientro. 330 00:14:19,460 --> 00:14:21,950 Infatti, questa è una convenzione molto comune in programmazione, 331 00:14:21,950 --> 00:14:26,110 per cui quando si fa qualcosa di iterativo, looping stile, come 332 00:14:26,110 --> 00:14:28,480 stiamo implicando con la frase inglese "PER OGNI 333 00:14:28,480 --> 00:14:31,090 calza, "la convenzione in pseudocodice e, come vedremo, 334 00:14:31,090 --> 00:14:33,410 linguaggi di programmazione normali, è di appena rientro. 335 00:14:33,410 --> 00:14:36,240 Premi la barra spaziatrice un paio di volte, premere il tasto Tab o simili, 336 00:14:36,240 --> 00:14:40,660 in modo che nidificato sotto "PER OGNI calzino" è il pezzo di 337 00:14:40,660 --> 00:14:43,430 roba che avete bisogno di fare come a causa di tale ciclo. 338 00:14:43,430 --> 00:14:45,940 Ecco, questo è tutto ciò che è trasporto semanticamente. 339 00:14:45,940 --> 00:14:48,620 Ora invece, il "Se è la stessa forma e dimensione," l' 340 00:14:48,620 --> 00:14:51,590 fatto che "Take" è rientrato ulteriormente significa solo 341 00:14:51,590 --> 00:14:54,370 questa è l'unica cosa che si dovrebbe fare se tale condizione, 342 00:14:54,370 --> 00:14:59,770 se quel ramo, che bivio, è in effetti vero. 343 00:14:59,770 --> 00:15:02,130 >> Così ora qui, siamo in quattro fasi, identificare destra e sinistra. 344 00:15:02,130 --> 00:15:03,410 Ho identificato destra. 345 00:15:03,410 --> 00:15:05,150 Dammi punto cinque. 346 00:15:05,150 --> 00:15:07,880 E tecnicamente, potremmo davvero chiamare 347 00:15:07,880 --> 00:15:09,510 la per ogni cosa - 348 00:15:09,510 --> 00:15:11,450 probabilmente si dovrebbe numerare tutte le linee, se 349 00:15:11,450 --> 00:15:12,190 stiamo andando a fare questo. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [incomprensibile] 351 00:15:14,006 --> 00:15:14,610 DAVID MALAN: [incomprensibile]? 352 00:15:14,610 --> 00:15:16,070 Ok, va bene, va bene, lo faremo il vostro senso. 353 00:15:16,070 --> 00:15:19,590 Va bene, allora passo cinque, come si fa a fare la calza giusta? 354 00:15:19,590 --> 00:15:22,310 Come procedere dopo, qui? 355 00:15:22,310 --> 00:15:22,730 Sì? 356 00:15:22,730 --> 00:15:24,300 PUBBLICO: Sollevare la gamba destra. 357 00:15:24,300 --> 00:15:27,100 DAVID MALAN: Sollevare la gamba destra, Ok. 358 00:15:27,100 --> 00:15:29,330 Fase sei? 359 00:15:29,330 --> 00:15:30,728 Rapidamente. 360 00:15:30,728 --> 00:15:31,202 Gia '. 361 00:15:31,202 --> 00:15:33,100 PUBBLICO: Trova una estremità aperta della calza. 362 00:15:33,100 --> 00:15:34,440 DAVID MALAN: Okay, trova l'estremità aperta della calza. 363 00:15:34,440 --> 00:15:34,840 Così buono. 364 00:15:34,840 --> 00:15:37,180 Così qui, onestamente, un istinto molto comune sarebbe solo 365 00:15:37,180 --> 00:15:39,880 messo in calza destra, ma anche questo è abbastanza ambiguo. 366 00:15:39,880 --> 00:15:42,750 A meno che il computer o umano sa esattamente che cosa significa, 367 00:15:42,750 --> 00:15:45,160 non sarà per l'esecuzione che, ecco, ho 368 00:15:45,160 --> 00:15:46,520 trovato l'apertura del magazzino. 369 00:15:46,520 --> 00:15:48,222 Passo sette? 370 00:15:48,222 --> 00:15:49,700 PUBBLICO: Toccare le dita dei piedi. 371 00:15:49,700 --> 00:15:51,070 DAVID MALAN: dita Touch. 372 00:15:51,070 --> 00:15:53,546 Bene, ora andiamo - 373 00:15:53,546 --> 00:15:56,480 Va bene, ho intenzione di prendere alcune libertà qui. 374 00:15:56,480 --> 00:15:57,110 Grazie. 375 00:15:57,110 --> 00:15:59,210 Passo otto? 376 00:15:59,210 --> 00:16:00,060 Indossare calzino. 377 00:16:00,060 --> 00:16:02,060 Bene, ora io, che siamo abbastanza vicini per ordinare di prendere 378 00:16:02,060 --> 00:16:03,480 questo a casa. 379 00:16:03,480 --> 00:16:05,980 Va bene, quindi questo sale. 380 00:16:05,980 --> 00:16:07,950 Prenderò alcune libertà con ciò che significa, in realtà. 381 00:16:07,950 --> 00:16:08,920 Mettere il calzino su. 382 00:16:08,920 --> 00:16:10,853 Va bene, ora passo nove? 383 00:16:10,853 --> 00:16:11,740 PUBBLICO: Metti piede. 384 00:16:11,740 --> 00:16:12,510 DAVID MALAN: Grazie. 385 00:16:12,510 --> 00:16:15,610 Passo nove, messo piede, e ora, possiamo ripetere. 386 00:16:15,610 --> 00:16:19,540 Quindi presumibilmente, ora possiamo andare in punto 10 e dire identificare 387 00:16:19,540 --> 00:16:21,960 sinistra calzino, ma questo è presumibilmente già fatto. 388 00:16:21,960 --> 00:16:24,100 >> E così poi, posso ordinare di ripetere la procedura. 389 00:16:24,100 --> 00:16:25,260 Ma questo tipo di pone la questione. 390 00:16:25,260 --> 00:16:28,100 Prima, l'ultima volta che abbiamo voluto ripetere qualcosa, 391 00:16:28,100 --> 00:16:30,730 ha fatto in modo iterativo, ancora e ancora, un ciclo FOR 392 00:16:30,730 --> 00:16:32,660 Ogni ciclo per così dire. 393 00:16:32,660 --> 00:16:36,420 Avrebbe senso utilizzare un ciclo, al fine di gestire sia 394 00:16:36,420 --> 00:16:38,470 la sinistra e la destra calzino? 395 00:16:38,470 --> 00:16:40,460 Perché ci si sente come queste operazioni sono più o meno 396 00:16:40,460 --> 00:16:43,090 identiche tranne per il fatto che uno inizia qui e uno 397 00:16:43,090 --> 00:16:44,850 inizia da qui? 398 00:16:44,850 --> 00:16:47,400 Abbiamo loop, o dobbiamo solo continuare a passi di scrittura 399 00:16:47,400 --> 00:16:48,745 10 e 11 e 12? 400 00:16:48,745 --> 00:16:50,540 PUBBLICO: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID MALAN: Ok, quindi ciclo. 402 00:16:52,240 --> 00:16:54,730 Io in realtà potuto dire solo andare avanti. 403 00:16:54,730 --> 00:16:55,720 Allora, perché è questo il caso? 404 00:16:55,720 --> 00:16:57,940 Beh, questo è in realtà il primo della nostra non ovvio 405 00:16:57,940 --> 00:17:01,210 decisioni di progettazione, e in effetti, uno dei parametri con cui 406 00:17:01,210 --> 00:17:03,990 inizieremo a valutare, per noi e per voi, il 407 00:17:03,990 --> 00:17:06,780 qualità del programma è proprio come è ben progettato. 408 00:17:06,780 --> 00:17:09,619 Hai fatto la minima quantità di lavoro necessario per 409 00:17:09,619 --> 00:17:12,480 ottenere il lavoro fatto più velocemente, sia in termini di 410 00:17:12,480 --> 00:17:15,430 il vostro tempo o, in termini di tempo di esecuzione del computer? 411 00:17:15,430 --> 00:17:17,589 Quante operazioni ci vuole per eseguire? 412 00:17:17,589 --> 00:17:20,180 Quindi probabilmente, questa è l'occasione per un ciclo perché 413 00:17:20,180 --> 00:17:22,829 appena comincio a copiare e incollare, come Giuseppe efficace 414 00:17:22,829 --> 00:17:25,010 sarebbe iniziare a fare in un attimo, sei una specie di sprecare il vostro 415 00:17:25,010 --> 00:17:27,140 tempo, e sei stato doppiamente espressiva. 416 00:17:27,140 --> 00:17:30,260 >> Ma, allo stesso tempo, questi sono in realtà solo due speciali 417 00:17:30,260 --> 00:17:31,890 casi, sinistra e destra. 418 00:17:31,890 --> 00:17:34,930 E mentre prima, potrei avere 10 o 20 o più calzini in 419 00:17:34,930 --> 00:17:37,960 una pila, fa decisamente senso di non avere 50 linee di 420 00:17:37,960 --> 00:17:40,180 codice di controllo dicendo questa calza, quindi il prossimo, 421 00:17:40,180 --> 00:17:41,300 poi il successivo. 422 00:17:41,300 --> 00:17:43,450 Ecco, è un po 'meno ovvio, e mi ha proposto 423 00:17:43,450 --> 00:17:44,390 che abbiamo potuto andare in entrambi i modi. 424 00:17:44,390 --> 00:17:46,720 Potevamo o avere quel ciclo, anche se solo i loop 425 00:17:46,720 --> 00:17:50,620 due volte, o potremmo semplicemente copiare e incollare solo un po ' 426 00:17:50,620 --> 00:17:53,270 qui, al fine di ottenere il lavoro fatto. 427 00:17:53,270 --> 00:17:55,210 Ma questo programma è bacato, per così dire. 428 00:17:55,210 --> 00:17:59,120 Potrebbe avere alcuni errori, errori o casi d'angolo, in modo da 429 00:17:59,120 --> 00:18:00,860 dire, che non abbiamo davvero anticipare. 430 00:18:00,860 --> 00:18:03,400 Nulla è andato storto questa volta, ma quello che poteva andare storto 431 00:18:03,400 --> 00:18:06,100 durante l'esecuzione di questo programma? 432 00:18:06,100 --> 00:18:07,040 PUBBLICO: Non ci sono calzini. 433 00:18:07,040 --> 00:18:08,980 >> DAVID MALAN: Quindi ci potrebbe essere senza calze lì sorta. 434 00:18:08,980 --> 00:18:10,380 Quindi consideriamo questo caso angolo. 435 00:18:10,380 --> 00:18:14,670 Quindi, se si potesse scorrere indietro fino al punto uno, quindi passo uno è stato 436 00:18:14,670 --> 00:18:16,540 piegare verso il basso, in modo che i controlli fuori. 437 00:18:16,540 --> 00:18:21,250 Fase due, prendi il tuo calzino, ma poi trovare corrispondenza calzino, 438 00:18:21,250 --> 00:18:22,420 identificare destra. 439 00:18:22,420 --> 00:18:25,050 Abbiamo fatto una specie di sacco di ipotesi, e questo è, 440 00:18:25,050 --> 00:18:27,720 francamente, perché a volte in crash del programma. 441 00:18:27,720 --> 00:18:30,240 Se si, il programmatore, hanno fatto alcune ipotesi, come 442 00:18:30,240 --> 00:18:33,000 sicuramente ci sarà calzini o sicuramente ci sara ' 443 00:18:33,000 --> 00:18:35,310 per essere memoria disponibile nel computer, sicuramente ci sara ' 444 00:18:35,310 --> 00:18:37,420 ad essere lo spazio su disco a sinistra sul disco rigido - 445 00:18:37,420 --> 00:18:39,040 Beh, se si fanno queste ipotesi, e che non è, 446 00:18:39,040 --> 00:18:41,880 in realtà, la realtà, che sa a volte ciò che del computer 447 00:18:41,880 --> 00:18:42,520 intenzione di fare? 448 00:18:42,520 --> 00:18:44,450 E a volte, quando si ottiene la palla che gira spiaggia o la 449 00:18:44,450 --> 00:18:47,750 congelati di Windows o simili, è proprio perché alcuni 450 00:18:47,750 --> 00:18:50,980 programmatore non ha previsto i cosiddetti casi d'angolo. 451 00:18:50,980 --> 00:18:53,050 Che altro poteva andare storto in questo programma? 452 00:18:53,050 --> 00:18:53,330 Si '? 453 00:18:53,330 --> 00:18:55,950 >> PUBBLICO: Non si dispone di una gamba destra e gamba sinistra. 454 00:18:55,950 --> 00:18:58,920 DAVID MALAN: Okay, non potrebbe disporre sia di una gamba destra e una 455 00:18:58,920 --> 00:19:01,940 gamba sinistra, e quindi il programma potrebbe non essere universalmente 456 00:19:01,940 --> 00:19:02,590 applicabile. 457 00:19:02,590 --> 00:19:03,658 Altri? 458 00:19:03,658 --> 00:19:05,650 PUBBLICO: Si potrebbe avere preso un calzino orfano. 459 00:19:05,650 --> 00:19:07,970 DAVID MALAN: avrei preso un calzino orfano, quindi un 460 00:19:07,970 --> 00:19:11,250 non corrispondente calzino che ha appena non fratelli perché ho 461 00:19:11,250 --> 00:19:13,650 perso, è strappata, è ancora nel lavaggio, o simili. 462 00:19:13,650 --> 00:19:15,550 Così che, anche, non è stato realmente gestito. 463 00:19:15,550 --> 00:19:15,790 Si '? 464 00:19:15,790 --> 00:19:17,510 PUBBLICO: Si potrebbe già avere calzini. 465 00:19:17,510 --> 00:19:19,050 DAVID MALAN: Potrei già calze. 466 00:19:19,050 --> 00:19:20,080 Io in realtà non controllare. 467 00:19:20,080 --> 00:19:23,350 SE non si dispone di calze, quindi procedere a fare 468 00:19:23,350 --> 00:19:24,330 linea uno e due. 469 00:19:24,330 --> 00:19:24,980 E che potrebbe accadere. 470 00:19:24,980 --> 00:19:26,880 Si addormenta con i tuoi calzini e simili, in modo da 471 00:19:26,880 --> 00:19:28,860 anche questo, un caso d'angolo molto ragionevole. 472 00:19:28,860 --> 00:19:29,630 E forse altro? 473 00:19:29,630 --> 00:19:31,310 PUBBLICO: La calza è dentro e fuori. 474 00:19:31,310 --> 00:19:34,000 DAVID MALAN: Quindi il calzino è dentro e fuori, quindi abbiamo fatto nessun errore 475 00:19:34,000 --> 00:19:35,330 controllo, insomma. 476 00:19:35,330 --> 00:19:38,550 Non abbiamo controllato se lo stato del mondo è come ci aspettiamo. 477 00:19:38,550 --> 00:19:41,310 Non abbiamo controllato se in realtà abbiamo trovato quello che stiamo cercando. 478 00:19:41,310 --> 00:19:43,310 >> E anche se questa è una sorta di un esempio ridicolo 479 00:19:43,310 --> 00:19:46,110 coinvolgendo calzini, alla fine della giornata, questo è esattamente l' 480 00:19:46,110 --> 00:19:48,740 tipo di mentalità è necessario avere durante la scrittura di programmi, 481 00:19:48,740 --> 00:19:51,740 anche in Scratch così come in C, in JavaScript, in PHP, 482 00:19:51,740 --> 00:19:53,920 perché altrimenti, i vostri programmi esporrà la 483 00:19:53,920 --> 00:19:56,980 equivalente di quel pallone da spiaggia filatura o semplicemente cedere 484 00:19:56,980 --> 00:19:58,210 risultati imprecisi. 485 00:19:58,210 --> 00:20:00,250 Ringraziamenti vanno qui per il nostro scrivano di Joseph. 486 00:20:00,250 --> 00:20:05,060 [Applausi] 487 00:20:05,060 --> 00:20:06,850 >> DAVID MALAN: Va bene, allora ciò che è, in 488 00:20:06,850 --> 00:20:08,230 Infatti, un programma per computer? 489 00:20:08,230 --> 00:20:09,670 Bene, diamo una rapida occhiata a un 490 00:20:09,670 --> 00:20:11,100 rappresentante uno qui. 491 00:20:11,100 --> 00:20:15,260 Quindi questo è un programma scritto in un linguaggio chiamato C. C è 492 00:20:15,260 --> 00:20:17,830 lingue più recenti piuttosto vecchie in questi giorni, ma molti sono costruiti 493 00:20:17,830 --> 00:20:18,460 su di esso. 494 00:20:18,460 --> 00:20:21,180 In effetti, PHP, uno dei web-centric lingue faremo 495 00:20:21,180 --> 00:20:24,050 usare verso la fine del periodo, si ha quello che viene chiamato un 496 00:20:24,050 --> 00:20:27,550 interprete, un programma che è scritto in C, ma più su quello 497 00:20:27,550 --> 00:20:28,690 in molte settimane da oggi. 498 00:20:28,690 --> 00:20:30,840 Ma questo programma, e questo è ciò che significa scrivere un 499 00:20:30,840 --> 00:20:32,880 programma, anche se molto semplice. 500 00:20:32,880 --> 00:20:35,540 Abbiamo un po 'di sintassi piuttosto criptico qui, ma è possibile 501 00:20:35,540 --> 00:20:38,340 intuire, anche se non hai mai programmato prima, che cosa 502 00:20:38,340 --> 00:20:39,750 questo programma fa. 503 00:20:39,750 --> 00:20:43,640 In effetti, io non so che cosa è printf, ma di certo la stampa 504 00:20:43,640 --> 00:20:45,700 evoca l'idea di stampare qualcosa. 505 00:20:45,700 --> 00:20:48,590 E quindi sì, questo programma è in ultima analisi, andando a stampare 506 00:20:48,590 --> 00:20:50,250 le parole "Hello, World". 507 00:20:50,250 --> 00:20:53,390 >> Ora, se si dispone di un Mac o di un PC o un computer Linux, le probabilità 508 00:20:53,390 --> 00:20:55,550 sono, almeno se si è scaricato un po 'di libertà 509 00:20:55,550 --> 00:20:58,000 software disponibile, si sarebbe potuto scrivere programmi su 510 00:20:58,000 --> 00:21:00,310 il proprio computer portatile per un bel po 'di tempo. 511 00:21:00,310 --> 00:21:03,040 In Mac OS, per esempio, c'è questo programma chiamato 512 00:21:03,040 --> 00:21:05,340 Terminale che viene fornito con un Mac, che di solito è nel vostro 513 00:21:05,340 --> 00:21:07,550 Cartella Utilities, e si apre in genere un bianco e 514 00:21:07,550 --> 00:21:09,820 bianco o una finestra bianco e nero in cui si dispone di un 515 00:21:09,820 --> 00:21:11,410 richiedere a cui è possibile digitare dei comandi. 516 00:21:11,410 --> 00:21:13,060 Quindi, questo è in realtà ricorda ciò che i computer 517 00:21:13,060 --> 00:21:15,100 usato per essere prima utente grafica 518 00:21:15,100 --> 00:21:16,710 interfacce GUI, è arrivato. 519 00:21:16,710 --> 00:21:19,200 Ora, in Windows, si dispone di un meccanismo simile nella forma 520 00:21:19,200 --> 00:21:20,130 del prompt dei comandi. 521 00:21:20,130 --> 00:21:23,430 >> Ma che cosa ho intenzione di fare è aprire, diciamo, 522 00:21:23,430 --> 00:21:26,580 TextEdit di nuovo, quindi lo stesso programma che stavamo usando per 523 00:21:26,580 --> 00:21:28,870 pseudocodice un momento fa, e ho intenzione di andare avanti e 524 00:21:28,870 --> 00:21:30,080 scrivere il mio primo programma. 525 00:21:30,080 --> 00:21:34,030 Include stdio.h, qualunque cosa significhi, int main 526 00:21:34,030 --> 00:21:36,880 vuoto, qualunque cosa significhi, e poi in mezzo qui, 527 00:21:36,880 --> 00:21:40,560 printf ("ciao, mondo."). E poi citazione vicino, 528 00:21:40,560 --> 00:21:42,340 chiudere parentesi, punto e virgola. 529 00:21:42,340 --> 00:21:44,460 Ora ho intenzione di andare avanti e basta premere Comando-S. Vado 530 00:21:44,460 --> 00:21:47,650 di andare avanti e salvare questo come hello.c, in modo che la convenzione in 531 00:21:47,650 --> 00:21:50,530 il mondo della programmazione C è il nome del file del punto c. 532 00:21:50,530 --> 00:21:52,880 Ho intenzione di mettere solo nella directory Home John Harvard, 533 00:21:52,880 --> 00:21:56,370 qui, fare clic su Salva, e ora ho intenzione di andare oltre a questo 534 00:21:56,370 --> 00:21:59,110 finestra di terminale, che è di nuovo presente in bianco e nero rapida 535 00:21:59,110 --> 00:22:00,860 dove posso eseguire i comandi. 536 00:22:00,860 --> 00:22:04,550 >> Posso eseguire programmi digitando il loro nome, non per 537 00:22:04,550 --> 00:22:06,710 doppio clic icone nel senso comune del termine. 538 00:22:06,710 --> 00:22:10,590 Ma la cosa è di circa C è che un linguaggio come C prima 539 00:22:10,590 --> 00:22:13,150 si presenta in questa forma, qualcosa chiamato codice sorgente. 540 00:22:13,150 --> 00:22:15,400 Qualcosa che sembra un po 'come l'inglese, ma è 541 00:22:15,400 --> 00:22:17,980 sicuramente meno come l'inglese di un pseudocodice Giuseppe 542 00:22:17,980 --> 00:22:18,930 momento fa. 543 00:22:18,930 --> 00:22:20,560 E 'un po' di più arcano. 544 00:22:20,560 --> 00:22:22,830 Sembra seguire alcuni schemi o regole. 545 00:22:22,830 --> 00:22:25,300 Il fatto che ho parentesi graffe, punti e virgola, le citazioni, 546 00:22:25,300 --> 00:22:28,240 parentesi angolari, si sente come un computer si avvicinò con questo 547 00:22:28,240 --> 00:22:29,250 genere di linguaggio. 548 00:22:29,250 --> 00:22:32,010 Ma se vado, adesso, a questa finestra di terminale, posso eseguire un 549 00:22:32,010 --> 00:22:35,250 comando che sta per convertire il codice sorgente è 550 00:22:35,250 --> 00:22:36,610 qualcosa chiamato codice oggetto. 551 00:22:36,610 --> 00:22:39,690 Che sta per convertire inglese sintassi simile a zero 552 00:22:39,690 --> 00:22:41,760 e quelli, lo stesso tipo di zero e uno noi 553 00:22:41,760 --> 00:22:42,820 parlato di Mercoledì. 554 00:22:42,820 --> 00:22:44,810 Ora, ho intenzione di eseguire un comando chiamato Clang. 555 00:22:44,810 --> 00:22:47,750 Maggiori informazioni su questo nelle settimane a venire, ma è un programma con 556 00:22:47,750 --> 00:22:52,330 che posso convertire hello.c in un sacco 557 00:22:52,330 --> 00:22:53,640 di zero e uno. 558 00:22:53,640 --> 00:22:54,950 >> Ora, ho eseguito questo comando. 559 00:22:54,950 --> 00:22:57,940 Ho eseguito Clang, e poi ho detto correre da soli su questo file 560 00:22:57,940 --> 00:23:00,630 chiamato hello.c, che ho creato un momento fa, e 561 00:23:00,630 --> 00:23:02,090 nulla sembra accadere. 562 00:23:02,090 --> 00:23:05,550 Ma in effetti, se io curiosato mia home directory, vedrei 563 00:23:05,550 --> 00:23:09,620 che questo programma a.out stupidamente chiamato ora esiste. 564 00:23:09,620 --> 00:23:12,250 Questo è solo il nome di default per un programma quando si scrive in 565 00:23:12,250 --> 00:23:15,140 C. Siamo in grado di eseguire l'override di questo alla fine, ma è il a.out 566 00:23:15,140 --> 00:23:18,340 nome del programma che ho appena convertito in zero e uno. 567 00:23:18,340 --> 00:23:21,490 E ora che si tratta di zero e uno, il mio Mac, in questo caso, o 568 00:23:21,490 --> 00:23:24,670 PC Windows, in grado di capire i bit, quelle 569 00:23:24,670 --> 00:23:25,410 zero e uno. 570 00:23:25,410 --> 00:23:29,130 E così, quando ho colpito Invio, vedo "ciao, mondo!" 571 00:23:29,130 --> 00:23:31,270 >> Ma è un po 'bacato. 572 00:23:31,270 --> 00:23:34,110 Non riusciva a dire "ciao, mondo: aria: - jharvard." Aria è 573 00:23:34,110 --> 00:23:35,020 il nome del mio computer. 574 00:23:35,020 --> 00:23:37,730 Jharvard è il nome dell'account, quindi quello che ho chiaramente 575 00:23:37,730 --> 00:23:41,070 omettere dal programma? 576 00:23:41,070 --> 00:23:42,480 Una specie di interruzione di riga. 577 00:23:42,480 --> 00:23:45,150 Non ho colpito l'equivalente di Enter o il ritorno a capo, 578 00:23:45,150 --> 00:23:47,760 e questo è, ancora una volta, testimonianza del fatto che i computer possono 579 00:23:47,760 --> 00:23:49,800 solo fare quello che dicono loro di fare. 580 00:23:49,800 --> 00:23:52,400 E il fatto che non ho detto il computer spostare il 581 00:23:52,400 --> 00:23:53,860 cursore sulla riga successiva - 582 00:23:53,860 --> 00:23:55,200 beh, non è certo intenzione di farlo e basta 583 00:23:55,200 --> 00:23:56,750 presuntuosamente per me. 584 00:23:56,750 --> 00:24:00,860 Quindi, se torno al mio programma, e dico \ n - 585 00:24:00,860 --> 00:24:03,180 Quindi \ n, come vedremo presto, è la via della 586 00:24:03,180 --> 00:24:06,910 rappresentare le cose strane come caratteri di nuova riga, cose 587 00:24:06,910 --> 00:24:08,840 che altrimenti essere il risultato di 588 00:24:08,840 --> 00:24:09,940 premendo il tasto Invio. 589 00:24:09,940 --> 00:24:11,730 Ma per ora, è sufficiente sapere che premendo il tasto Invio si 590 00:24:11,730 --> 00:24:14,170 solo fare il nostro codice in modo strano, così il mondo ha deciso, lo sai 591 00:24:14,170 --> 00:24:16,580 ciò che, per mantenere le cose più belle, di tenerlo su una riga, facciamo 592 00:24:16,580 --> 00:24:19,070 solo dire \ n rappresenta una nuova riga. 593 00:24:19,070 --> 00:24:22,260 Vorrei salvare nuovamente il mio file, tornare alla finestra di terminale, e 594 00:24:22,260 --> 00:24:25,290 re-run a.out, Invio. 595 00:24:25,290 --> 00:24:28,374 Ancora buggy, ma perché? 596 00:24:28,374 --> 00:24:29,750 >> PUBBLICO: [incomprensibile] 597 00:24:29,750 --> 00:24:31,540 DAVID MALAN: Sì, quindi ho bisogno di ricompilarlo. 598 00:24:31,540 --> 00:24:34,610 Quindi, per compilare un programma significa semplicemente convertirlo da fonte 599 00:24:34,610 --> 00:24:37,660 codice al codice oggetto il codice sorgente, di zero e uno. 600 00:24:37,660 --> 00:24:40,830 Ora, il solo fatto che mi ha colpito in questo Salva TextEdit non ha 601 00:24:40,830 --> 00:24:43,450 cuscinetto su questi zero e uno, perché ho bisogno di 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, ho cambiato le righe di codice, il 603 00:24:48,260 --> 00:24:49,040 codice sorgente. 604 00:24:49,040 --> 00:24:51,010 Hai bisogno di rigenerare a.out. 605 00:24:51,010 --> 00:24:52,990 Niente sembra essere successo, ma in un computer, 606 00:24:52,990 --> 00:24:55,820 dalla riga di comando, per così dire, in cui non accade nulla, 607 00:24:55,820 --> 00:24:57,510 di solito significa che tutto va bene. 608 00:24:57,510 --> 00:24:59,040 Quando qualcosa accade, significa che 609 00:24:59,040 --> 00:25:00,420 hai sbagliato, in generale. 610 00:25:00,420 --> 00:25:04,020 >> Quindi cerchiamo di andare subito ad a.out, e in effetti ora, ho "ciao, 611 00:25:04,020 --> 00:25:04,440 mondo. " 612 00:25:04,440 --> 00:25:05,990 E ora, che dire di questi zero e uno? 613 00:25:05,990 --> 00:25:07,520 Dove, infatti, sono quelli? 614 00:25:07,520 --> 00:25:10,710 Beh, non posso davvero solo tipo di poke in giro molto 615 00:25:10,710 --> 00:25:11,210 efficace. 616 00:25:11,210 --> 00:25:12,650 Vorrei aprire TextEdit. 617 00:25:12,650 --> 00:25:14,060 Ecco a.out. 618 00:25:14,060 --> 00:25:17,390 Lasciatemi andare avanti e aprire questo, e questo è ciò che il mio apparentemente 619 00:25:17,390 --> 00:25:19,080 programma è simile. 620 00:25:19,080 --> 00:25:21,570 Così ho aperto, non hello.c, ma a.out. 621 00:25:21,570 --> 00:25:23,960 Ma questo non è in realtà quello che il mio programma è in realtà. 622 00:25:23,960 --> 00:25:26,450 Chiaramente, questo è una sorta di caratteri alfabetici. 623 00:25:26,450 --> 00:25:28,670 Non vedo zero e uno, ma questo è 624 00:25:28,670 --> 00:25:30,780 perché a.out è un programma. 625 00:25:30,780 --> 00:25:33,540 Zero e uno - ma TextEdit, come suggerisce il nome, è 626 00:25:33,540 --> 00:25:37,130 proprio come Blocco note di Windows, è solo un editor di testo, in modo che sia 627 00:25:37,130 --> 00:25:39,730 confondendo tutti questi zeri e uno in 628 00:25:39,730 --> 00:25:41,870 se fossero, che cosa? 629 00:25:41,870 --> 00:25:43,380 Caratteri ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Così ricordo il Mercoledì, abbiamo appena si avvicinò con questo 631 00:25:45,020 --> 00:25:48,740 mappatura arbitraria di numeri, o bit, alle lettere dell'alfabeto 632 00:25:48,740 --> 00:25:51,690 alfabeto e simboli di punteggiatura e simili. 633 00:25:51,690 --> 00:25:54,920 Così TextEdit, che si tratta di un editor di testo viene erroneamente interpretato 634 00:25:54,920 --> 00:25:57,270 quei modelli di zero e uno, che si suppone essere 635 00:25:57,270 --> 00:25:59,990 Parole di stampa, come "ciao, mondo". E 'loro visualizzazione 636 00:25:59,990 --> 00:26:02,150 come ASCII, ed è per questo che sembra un po 'disordinato. 637 00:26:02,150 --> 00:26:04,910 Ora, ci sono alcuni suggerimenti di correttezza a qui. 638 00:26:04,910 --> 00:26:08,090 Notate se evidenziare, vi è un accenno di realtà "ciao, 639 00:26:08,090 --> 00:26:10,810 mondo ", così da qualche parte in questo programma è 640 00:26:10,810 --> 00:26:12,120 la frase che ho scritto. 641 00:26:12,120 --> 00:26:14,610 Ma andiamo avanti e ora vedere con un programma diverso. 642 00:26:14,610 --> 00:26:17,420 Questo non è quello che utilizzeremo spesso, ma si tratta anche di 643 00:26:17,420 --> 00:26:19,970 un Mac e sarà all'interno dell'apparecchio CS50. 644 00:26:19,970 --> 00:26:23,940 Lasciatemi andare avanti e aprire con un programma chiamato XXD. 645 00:26:23,940 --> 00:26:26,530 >> Indietro nel giorno, la maggior parte dei programmi sono stati nominati piuttosto criptico, 646 00:26:26,530 --> 00:26:28,200 e così la tendenza continua. 647 00:26:28,200 --> 00:26:31,160 Ma-b significa sputare questo programma come binario. 648 00:26:31,160 --> 00:26:32,330 Non eseguirlo. 649 00:26:32,330 --> 00:26:35,770 Mostra a me come zeri e uno, e questa è la C 650 00:26:35,770 --> 00:26:37,190 programmare abbiamo appena scritto. 651 00:26:37,190 --> 00:26:39,920 Ora, io, come un essere umano qui, onestamente non so cosa 652 00:26:39,920 --> 00:26:42,230 questi modelli diversi di zero e uno rappresentano. 653 00:26:42,230 --> 00:26:45,320 Indietro nel giorno, io, con le mie schede perforate o simili, sarebbe 654 00:26:45,320 --> 00:26:48,080 in realtà hanno a cercare ciò che questi diversi modelli di 655 00:26:48,080 --> 00:26:51,560 01111000, rappresentano di fatto. 656 00:26:51,560 --> 00:26:54,390 O peggio, avrei bisogno di fare la punzonatura o la creazione 657 00:26:54,390 --> 00:26:56,130 di questi modelli di zero e uno. 658 00:26:56,130 --> 00:27:00,410 Ma per ora, prendere sulla fede che una CPU, Intel all'interno, in modo 659 00:27:00,410 --> 00:27:03,440 a parlare, all'interno di tutti i nostri computer in questi giorni, lo sa 660 00:27:03,440 --> 00:27:05,100 come interpretare questi zero e uno. 661 00:27:05,100 --> 00:27:07,010 E alcuni zero e uno significa di stampa. 662 00:27:07,010 --> 00:27:09,040 Alcuni zero e uno significa riprodurre un suono. 663 00:27:09,040 --> 00:27:13,630 Alcuni zeri e di uno significa prendere l'input dell'utente da una tastiera. 664 00:27:13,630 --> 00:27:15,960 Ci sono tutti i tipi di modelli diversi, ma noi per fortuna, 665 00:27:15,960 --> 00:27:19,680 come esseri umani, solo in generale bisogno di preoccuparsi di programmazione in 666 00:27:19,680 --> 00:27:21,270 questo livello piuttosto elevato. 667 00:27:21,270 --> 00:27:24,320 E in altre classi CS si può scavare verso il basso più profondo e guardare 668 00:27:24,320 --> 00:27:26,820 le cose come quelle zero e uno, o ancora 669 00:27:26,820 --> 00:27:28,000 altre cose ancora. 670 00:27:28,000 --> 00:27:29,210 >> Quindi ora cerchiamo di convertire questo. 671 00:27:29,210 --> 00:27:32,550 Passiamo molto rapidamente dalla C e passare a qualcosa di un 672 00:27:32,550 --> 00:27:36,390 poco più confortante, un po 'più eccitante, in quanto 673 00:27:36,390 --> 00:27:39,340 possiamo tornare le nostre animazioni e suoni e simili, che 674 00:27:39,340 --> 00:27:40,940 chiaramente ci hanno specificati in 675 00:27:40,940 --> 00:27:42,480 piuttosto interfaccia primitiva. 676 00:27:42,480 --> 00:27:46,430 Quindi questo stesso programma in C può essere rappresentato ora in questo 677 00:27:46,430 --> 00:27:50,060 linguaggio di programmazione chiamato Scratch come segue. 678 00:27:50,060 --> 00:27:54,230 Questo è l'equivalente di questo programma ciao mondo scritto in 679 00:27:54,230 --> 00:27:57,370 questo puzzle in stile linguaggio pezzo intitolato Scratch. 680 00:27:57,370 --> 00:28:00,600 Permettetemi quindi di andare avanti e di aprire questo programma molto. 681 00:28:00,600 --> 00:28:01,850 E 'di nuovo chiamato Scratch. 682 00:28:01,850 --> 00:28:03,880 E 'liberamente disponibile, e questa è la stessa cosa che 683 00:28:03,880 --> 00:28:05,120 iniziato oggi. 684 00:28:05,120 --> 00:28:07,790 >> Quindi questo qui è Scratch, ed è suddiviso in alcuni 685 00:28:07,790 --> 00:28:09,700 diversi pezzi. 686 00:28:09,700 --> 00:28:12,690 Sulla destra cima, abbiamo la cosiddetta fase, e 687 00:28:12,690 --> 00:28:13,670 anzi, è lì che i biscotti 688 00:28:13,670 --> 00:28:15,440 eseguito solo un po 'fa. 689 00:28:15,440 --> 00:28:19,660 E su quel palco sono cose chiamate sprite, caratteri o 690 00:28:19,660 --> 00:28:21,030 oggetti, o entità. 691 00:28:21,030 --> 00:28:23,320 Non ha molta importanza come si pensa di loro, ma 692 00:28:23,320 --> 00:28:26,740 sono programmabili, cose mobili, e in questo caso, questo 693 00:28:26,740 --> 00:28:30,730 programma che il nostro studente ha scritto ha un paio di pan di zenzero 694 00:28:30,730 --> 00:28:32,990 biscotti, un paio di biscotti circolari, un grosso insieme di 695 00:28:32,990 --> 00:28:35,430 cuori, un grosso insieme di occhiali. 696 00:28:38,170 --> 00:28:42,420 A causa di questo, egli o ella è in grado di programmare ciascuno dei 697 00:28:42,420 --> 00:28:44,720 singoli caratteri separatamente. 698 00:28:44,720 --> 00:28:46,480 >> Ora, che cosa significa programmare questi personaggi? 699 00:28:46,480 --> 00:28:49,440 Beh, lasciatemi andare avanti e fare clic su questo cookie mano sinistra 700 00:28:49,440 --> 00:28:51,830 e scorrere verso l'alto a sinistra qui. 701 00:28:51,830 --> 00:28:53,670 In alto a sinistra del mio schermo ora è il 702 00:28:53,670 --> 00:28:55,280 cosiddetta zona di script. 703 00:28:55,280 --> 00:28:58,790 Questa è una sorta di tabula rasa, inizialmente, su cui posso 704 00:28:58,790 --> 00:29:01,540 trascinare e rilasciare i pezzi di un puzzle che, francamente, non 705 00:29:01,540 --> 00:29:03,020 esattamente quello che dicono. 706 00:29:03,020 --> 00:29:05,820 Nella parte superiore di questa pila di pezzi del puzzle è la parola 707 00:29:05,820 --> 00:29:09,340 Quando Bandiera Verde clic, e se non hai notato prima, 708 00:29:09,340 --> 00:29:12,300 il modo in cui ho iniziato a quella canzone cookie è stato clic, letteralmente, 709 00:29:12,300 --> 00:29:13,320 una bandiera verde. 710 00:29:13,320 --> 00:29:16,590 Così quel pezzo di puzzle in alto a sinistra ci indica quando il 711 00:29:16,590 --> 00:29:19,780 clic umani la bandiera verde, proceduto a fare 712 00:29:19,780 --> 00:29:21,110 le seguenti cose. 713 00:29:21,110 --> 00:29:23,330 >> Ora, che cosa hanno fatto biscotto procedere a fare? 714 00:29:23,330 --> 00:29:25,810 Io non so davvero come interpretare questo ancora, ma la 715 00:29:25,810 --> 00:29:29,220 biscotto apparentemente impostare la sua gola a zero, poi attese 716 00:29:29,220 --> 00:29:31,740 tre secondi, poi cambiato gruppo a uno, allora 717 00:29:31,740 --> 00:29:33,590 aspettò un attimo, poi ha cambiato il suo 718 00:29:33,590 --> 00:29:35,100 solco posteriore a uno. 719 00:29:35,100 --> 00:29:37,373 E poi questo si presenta come un po 'di un bug, non dovrebbe 720 00:29:37,373 --> 00:29:39,440 cambiare la sua gola ancora e ancora meno che non sia 721 00:29:39,440 --> 00:29:43,380 essere cambiato altrove, ma questa serie di passaggi è ciò che è 722 00:29:43,380 --> 00:29:46,800 dettando il comportamento di questo particolare biscotto. 723 00:29:46,800 --> 00:29:49,180 Quindi cerchiamo di fatto scorrere avanti e non guardare qualcosa 724 00:29:49,180 --> 00:29:50,430 proprio così complesso ma. 725 00:29:50,430 --> 00:29:52,260 Lasciatemi andare avanti e andare su File, Nuovo, 726 00:29:52,260 --> 00:29:53,560 e ottenere una tabula rasa. 727 00:29:53,560 --> 00:29:56,590 >> Così ora, ho effettivamente un'area vuota dello script, uno stadio vuoto, 728 00:29:56,590 --> 00:29:59,380 Scratch con la nostra impostazione predefinita sprite, e in alto a sinistra 729 00:29:59,380 --> 00:30:01,670 sul mio schermo ho la paletta di tutte le loro 730 00:30:01,670 --> 00:30:03,400 pezzi del puzzle disponibili. 731 00:30:03,400 --> 00:30:06,300 E non passerà attraverso quasi che molte di queste cose 732 00:30:06,300 --> 00:30:09,470 oggi, perché, ancora una volta, la maggior parte sono auto-esplicativo, ma lo faremo 733 00:30:09,470 --> 00:30:12,370 cercare di classificarli e di evidenziare le somiglianze 734 00:30:12,370 --> 00:30:15,380 con queste lingue in futuro a cui ci si immergerà. 735 00:30:15,380 --> 00:30:19,180 E in alto a sinistra qui è la prima volta Bandiera Verde clic, 736 00:30:19,180 --> 00:30:22,170 per cui vorrei trascinare questa qui, diminuire un po '. 737 00:30:22,170 --> 00:30:25,780 E se clicco la bandiera verde, non succede nulla proprio perché 738 00:30:25,780 --> 00:30:29,360 Non ho attaccato ogni logica, ogni dichiarazione per così dire, a 739 00:30:29,360 --> 00:30:31,040 quella bandiera verde, per cui vorrei andare fino alla 740 00:30:31,040 --> 00:30:32,500 categorie qui. 741 00:30:32,500 --> 00:30:34,840 Sono attualmente nella categoria di controllo. 742 00:30:34,840 --> 00:30:37,630 Ho invece intenzione di andare verso il basso per la categoria Aspetto e 743 00:30:37,630 --> 00:30:39,970 c'è un sacco di cose qui che dire, dì, 744 00:30:39,970 --> 00:30:43,110 Pensate, Cambia colore, Costume Switch. 745 00:30:43,110 --> 00:30:44,860 >> Così si possono fare cose stupide con costumi e 746 00:30:44,860 --> 00:30:45,870 suoni e simili. 747 00:30:45,870 --> 00:30:49,970 Lasciatemi andare avanti e dire Say, e ora notare come mi trascina 748 00:30:49,970 --> 00:30:52,940 e rilasciare questo pezzo di puzzle, sta andando a voler a scrocco 749 00:30:52,940 --> 00:30:55,010 nella forma corrispondente. 750 00:30:55,010 --> 00:30:58,020 Così, quando ho andare avanti e lasciare andare il mio mouse, si bloccano 751 00:30:58,020 --> 00:31:01,770 insieme, e ora se vado qui e fare clic sulla bandiera verde, 752 00:31:01,770 --> 00:31:05,910 il gatto è in realtà dire ciao, perché questo è ciò che è dentro 753 00:31:05,910 --> 00:31:06,980 di questa scatola bianca. 754 00:31:06,980 --> 00:31:08,900 Vedremo che questa finestra di bianco è quello che si chiama un 755 00:31:08,900 --> 00:31:10,250 argomento, o un parametro. 756 00:31:10,250 --> 00:31:12,560 E 'un modo di cambiare il comportamento, in questo caso, un 757 00:31:12,560 --> 00:31:15,070 pezzo di puzzle, ma se voglio dire esattamente quello che ho detto 758 00:31:15,070 --> 00:31:18,610 prima, dire ciao, mondo, ora posso tornare qui, 759 00:31:18,610 --> 00:31:21,990 cliccare play, e "ciao, mondo" è quello che ha detto. 760 00:31:21,990 --> 00:31:24,340 >> Quindi siamo letteralmente programmazione ora. 761 00:31:24,340 --> 00:31:27,540 Non è tutto ciò che convincente di un programma, ma almeno 762 00:31:27,540 --> 00:31:30,140 si tratta di un qualcosa di più convincente di quello sembra, a 763 00:31:30,140 --> 00:31:31,300 prima vista, come questo. 764 00:31:31,300 --> 00:31:34,190 E siamo in grado di ottenere molto rapidamente tanto più espressiva 765 00:31:34,190 --> 00:31:36,600 perché in Scratch, come in altre lingue, c'è tutto 766 00:31:36,600 --> 00:31:40,010 i tipi di dichiarazioni, non basta dire o la stampa qualcosa, ma 767 00:31:40,010 --> 00:31:42,650 si possono fare cose come in attesa, come abbiamo appena visto con 768 00:31:42,650 --> 00:31:44,240 il cookie, un certo numero di secondi. 769 00:31:44,240 --> 00:31:46,440 È possibile riprodurre i suoni in un ambiente di Scratch solo 770 00:31:46,440 --> 00:31:49,050 come si può in un normale riproduzione audio programma per computer. 771 00:31:49,050 --> 00:31:52,440 È possibile controllare le cosiddette espressioni booleane. 772 00:31:52,440 --> 00:31:55,630 Così ora, cominciamo ad aggiungere al nostro kit di strumenti un po 'di terminologia 773 00:31:55,630 --> 00:31:58,840 che riguarda in realtà l'esempio che Joseph e l'ho fatto 774 00:31:58,840 --> 00:32:00,080 qui con i calzini. 775 00:32:00,080 --> 00:32:03,040 Quindi le dichiarazioni sono solo dichiarazioni di fatto. 776 00:32:03,040 --> 00:32:04,160 Fate questo. 777 00:32:04,160 --> 00:32:07,370 Una direttiva per lo sprite, o me l'umano, di fare qualcosa. 778 00:32:07,370 --> 00:32:10,420 Un'espressione booleana è qualcosa che ha un valore, un 779 00:32:10,420 --> 00:32:14,580 cosiddetto valore di verità, che è uno zero o uno, false o 780 00:32:14,580 --> 00:32:17,890 vero, acceso o spento, no o sì. 781 00:32:17,890 --> 00:32:19,730 Non importa come si pensa di questo, ma è un 782 00:32:19,730 --> 00:32:20,700 binario Stato. 783 00:32:20,700 --> 00:32:22,610 Nate Come discusso nel video di Mercoledì, due 784 00:32:22,610 --> 00:32:23,570 cose diverse. 785 00:32:23,570 --> 00:32:25,740 >> Quindi, in Scratch, espressioni booleane capita di guardare 786 00:32:25,740 --> 00:32:28,910 come questi oggetti blu qui, e in questo caso, la domanda 787 00:32:28,910 --> 00:32:30,960 marchio implica che si sta facendo una domanda. 788 00:32:30,960 --> 00:32:34,250 È il gatto, o lo sprite, toccando il puntatore del mouse? 789 00:32:34,250 --> 00:32:36,580 Quindi questo è solo un esempio di un blocco Scratch che sta 790 00:32:36,580 --> 00:32:39,950 per permetterci di controllare sì o no, è il mouse tocca il 791 00:32:39,950 --> 00:32:40,790 sprite sullo schermo? 792 00:32:40,790 --> 00:32:42,840 E questo può essere utile se si vuole realmente fare le cose 793 00:32:42,840 --> 00:32:43,820 con il mouse. 794 00:32:43,820 --> 00:32:46,470 Oltre alle espressioni booleane, abbiamo cose 795 00:32:46,470 --> 00:32:49,110 come è il mouse verso il basso, in modo da poter rilevare questo tipo di 796 00:32:49,110 --> 00:32:50,200 mettere in discussione pure. 797 00:32:50,200 --> 00:32:52,590 Siamo in grado di fare matematica se si vuole realmente, e non c'è 798 00:32:52,590 --> 00:32:55,170 usi in realtà più interessanti per questo che solo pura 799 00:32:55,170 --> 00:32:56,400 aritmetica, come vedremo. 800 00:32:56,400 --> 00:32:59,690 Pseudo casualità e rendere il vostro programma sembrano pensare 801 00:32:59,690 --> 00:33:03,490 o si comporta in modo diverso sulla base di alcuni valori apparentemente casuali, 802 00:33:03,490 --> 00:33:06,610 e poi ci sono cose come espressioni booleane come AND. 803 00:33:06,610 --> 00:33:08,830 Quindi, se si vuole realmente controllare due valori, vedremo in 804 00:33:08,830 --> 00:33:11,110 Gratta che si può effettivamente verificare se questo è 805 00:33:11,110 --> 00:33:13,190 vero e questo è vero. 806 00:33:13,190 --> 00:33:15,300 Ad esempio, nel caso dei miei calzini, avrei potuto in 807 00:33:15,300 --> 00:33:19,045 molto fine ha fatto la domanda se calza a sinistra è a destra e calza 808 00:33:19,045 --> 00:33:20,610 è su, chiudere. 809 00:33:20,610 --> 00:33:22,710 Hai fatto tutto per il giorno, in modo che sarebbe un 810 00:33:22,710 --> 00:33:24,300 possibilità per tale. 811 00:33:24,300 --> 00:33:27,740 >> Quindi cerchiamo di andare avanti e cercare di mettere insieme alcuni di questi 812 00:33:27,740 --> 00:33:31,570 e andare in un paio di esempi più 813 00:33:31,570 --> 00:33:32,610 convincente di questo. 814 00:33:32,610 --> 00:33:35,770 Permettetemi quindi di andare avanti qui e aprire alcuni degli esempi 815 00:33:35,770 --> 00:33:38,350 che sarà sempre sul sito web del corso, come bene, e 816 00:33:38,350 --> 00:33:39,870 aprire hello2. 817 00:33:39,870 --> 00:33:42,910 Quindi, in hello2 qui, abbiamo un programma che sta facendo alcuni 818 00:33:42,910 --> 00:33:46,290 cose, ma non lo fa nel modo più efficace come si potrebbe. 819 00:33:46,290 --> 00:33:48,900 Così qui si dice "ciao, mondo" per un secondo e poi aspetta 820 00:33:48,900 --> 00:33:49,450 per un secondo. 821 00:33:49,450 --> 00:33:51,720 E poi fa di nuovo, e poi lo fa di nuovo. 822 00:33:51,720 --> 00:33:55,530 Quindi, se clicco la bandiera verde, dice Scratch "Ciao, mondo. 823 00:33:55,530 --> 00:33:57,160 Ciao, mondo. 824 00:33:57,160 --> 00:34:00,080 Ciao, mondo. "E questa è, ovviamente, candidato ora 825 00:34:00,080 --> 00:34:00,860 miglioramento. 826 00:34:00,860 --> 00:34:03,070 >> Qual è il miglioramento marginale, si spera, siamo in grado di 827 00:34:03,070 --> 00:34:07,610 ora fare se Scratch supporta il concetto? 828 00:34:07,610 --> 00:34:08,310 Una specie di loop. 829 00:34:08,310 --> 00:34:10,960 Una specie di ripetizione, ora, sarebbe bello, così mi lascia 830 00:34:10,960 --> 00:34:11,920 effettivamente provare che. 831 00:34:11,920 --> 00:34:13,870 Lasciatemi in realtà andare a spostare questo. 832 00:34:13,870 --> 00:34:16,449 Quindi bando può staccare i blocchi con la stessa facilità è possibile aggiungere al 833 00:34:16,449 --> 00:34:17,420 allegate. 834 00:34:17,420 --> 00:34:20,730 Lasciami andare sotto controllo, scorrere verso il basso qui, e anzi, 835 00:34:20,730 --> 00:34:24,000 c'è questo pezzo di puzzle qui, ripetizione e sempre e 836 00:34:24,000 --> 00:34:24,870 Se per sempre. 837 00:34:24,870 --> 00:34:28,500 Quindi c'è un certo numero di modi di esprimere costrutti di loop 838 00:34:28,500 --> 00:34:29,340 in Scratch. 839 00:34:29,340 --> 00:34:31,730 Quello che probabilmente vuole qui non è per sempre, perché ho solo 840 00:34:31,730 --> 00:34:34,639 voglio che questo accada per tre volte, ma probabilmente Ripeti. 841 00:34:34,639 --> 00:34:38,449 Permettetemi quindi di trascinare Ripetere qui, drag and drop, e 842 00:34:38,449 --> 00:34:42,530 ora invece di dire "ciao, mondo" tre volte separate, 843 00:34:42,530 --> 00:34:44,230 vorrei trascinare questo pezzo del puzzle qui. 844 00:34:44,230 --> 00:34:46,610 E anche se non sembra in forma, il programma è intelligente 845 00:34:46,610 --> 00:34:48,920 per rendersi conto che crescerà a riempire, quindi è il 846 00:34:48,920 --> 00:34:51,270 forme che la materia e non la dimensione assoluta. 847 00:34:51,270 --> 00:34:54,030 Vorrei cambiare la ripetizione a tre, e ora lasciami andare 848 00:34:54,030 --> 00:34:56,560 avanti e trascinare attendere un secondo in là pure. 849 00:34:56,560 --> 00:34:59,220 Sta per scattare in pure, e così ora ho intenzione di trascinare 850 00:34:59,220 --> 00:35:01,370 questi ragazzi qui da noi e solo buttare via perché mi 851 00:35:01,370 --> 00:35:02,710 non ne ho più bisogno. 852 00:35:02,710 --> 00:35:05,920 Fammi zoom indietro e fare clic sulla bandiera verde ora, e abbiamo 853 00:35:05,920 --> 00:35:09,600 lo stesso programma, ma, come previsto prima, meglio 854 00:35:09,600 --> 00:35:12,200 progettato perché si può immaginare quanto male questo programma 855 00:35:12,200 --> 00:35:14,410 otterrebbe, sicuramente esteticamente, se si doveva 856 00:35:14,410 --> 00:35:16,640 avviare la copia e incolla, copia e incolla, o 857 00:35:16,640 --> 00:35:20,020 trascinando le stesse cose darn ancora e ancora. 858 00:35:20,020 --> 00:35:22,260 >> Ora, semplicemente dicendo cose sullo schermo, la stampa su 859 00:35:22,260 --> 00:35:25,350 schermo, in realtà non è poi così eccitante, quindi cerchiamo di aprire un 860 00:35:25,350 --> 00:35:26,580 varianza terza quivi. 861 00:35:26,580 --> 00:35:29,810 E ora, come si vedrà, questo prende subito fastidioso - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID MALAN: - ma è anche carino. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID MALAN: Okay, quindi meglio, e possiamo certamente utilizzare che 866 00:35:37,460 --> 00:35:41,060 stessa transizione di questa suddivisione in blocchi in su in un loop 867 00:35:41,060 --> 00:35:43,520 struttura, ma cerchiamo di renderlo più interessante ancora. 868 00:35:43,520 --> 00:35:47,480 >> Lasciatemi andare avanti e aprire una varianza quarto qui, dove ho 869 00:35:47,480 --> 00:35:50,020 prendere le cose un passo avanti. 870 00:35:50,020 --> 00:35:54,450 Quindi, secondo questo, sciocco anche se questo è in un primo momento 871 00:35:54,450 --> 00:35:58,530 sguardo, che cosa è questo programma intenzione di fare? 872 00:35:58,530 --> 00:35:59,790 Sta andando a miagolare una volta. 873 00:35:59,790 --> 00:36:00,160 Perché? 874 00:36:00,160 --> 00:36:03,340 Bene, uno è, per quanto ne so, sempre meno di due. 875 00:36:03,340 --> 00:36:04,890 Non c'è concetto di casualità qui. 876 00:36:04,890 --> 00:36:07,240 Ho letteralmente hardcoded uno e due, ma questo è un 877 00:36:07,240 --> 00:36:10,370 esempio ora effettivamente utilizzando un'espressione booleana. 878 00:36:10,370 --> 00:36:13,650 Molto simile a come fece Giuseppe nel suo pseudocodice, il rientro IF 879 00:36:13,650 --> 00:36:17,170 a trovare calze di corrispondenza quindi effettuare le seguenti, qui abbiamo 880 00:36:17,170 --> 00:36:19,750 un'espressione Se uno è inferiore a due POI - 881 00:36:19,750 --> 00:36:21,820 e infatti abbiamo anche un po 'di rientro, 882 00:36:21,820 --> 00:36:24,480 dove il viola è leggermente rientrato verso destra - 883 00:36:24,480 --> 00:36:26,600 Allora si sta andando a giocare il miagolio suono. 884 00:36:26,600 --> 00:36:30,060 Ora, in questo caso, che si è sempre inferiore a due, in modo tale 885 00:36:30,060 --> 00:36:31,970 è una specie di perdita di una condizione. 886 00:36:31,970 --> 00:36:34,890 Ma saremo in grado, come vedremo, di inserire altre cose in 887 00:36:34,890 --> 00:36:37,420 questi segnaposto dove uno e due sono ora. 888 00:36:37,420 --> 00:36:41,340 Quindi cerchiamo di ora passare esempio cinque di questi diversi 889 00:36:41,340 --> 00:36:45,850 saluti e guardare a ciò che questo programma sta per fare. 890 00:36:45,850 --> 00:36:48,710 >> Così ora, in una frase in inglese, come fa questo 891 00:36:48,710 --> 00:36:51,460 programma si comportano? 892 00:36:51,460 --> 00:36:52,950 PUBBLICO: miagolii la metà del tempo. 893 00:36:52,950 --> 00:36:55,380 DAVID MALAN: metà Meow di tempo, quindi questo è un modo di 894 00:36:55,380 --> 00:36:56,700 trasmettere un'idea molto semplice. 895 00:36:56,700 --> 00:36:59,400 Anche se ci capita di utilizzare alcune disuguaglianze qui 896 00:36:59,400 --> 00:37:01,860 in alcuni numeri, questo è davvero solo un programmatico 897 00:37:01,860 --> 00:37:09,490 modo, un modo preciso, di dire se la moneta viene testa, andare 898 00:37:09,490 --> 00:37:10,270 avanti e meow. 899 00:37:10,270 --> 00:37:13,540 O al contrario, se la moneta viene croce, non miagolare. 900 00:37:13,540 --> 00:37:15,110 E in questo caso, come possiamo esprimere questo? 901 00:37:15,110 --> 00:37:17,950 Ci scegliere un numero casuale da 1 a 10, e se questo 902 00:37:17,950 --> 00:37:21,110 numero è inferiore a 6, andare avanti e miagolare. 903 00:37:21,110 --> 00:37:22,260 E come ha fatto questa a entrare? 904 00:37:22,260 --> 00:37:24,620 Bene ancora una volta, si noti solo il trascinamento della selezione e 905 00:37:24,620 --> 00:37:26,190 cose scatta in posizione. 906 00:37:26,190 --> 00:37:28,020 >> Così ora vediamo se funziona questa casualità. 907 00:37:28,020 --> 00:37:29,845 Lasciatemi andare avanti e fare clic sulla bandiera verde. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID MALAN: Okay. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID MALAN: Okay. 912 00:37:35,260 --> 00:37:38,510 Ok, bene, così abbiamo ottenuto teste, teste, le code in modo efficace. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 DAVID MALAN: Bagni. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID MALAN: Eccellente. 918 00:37:44,040 --> 00:37:46,220 E 'sempre imbarazzante quando solo statisticamente si ottiene un cattivo 919 00:37:46,220 --> 00:37:48,510 eseguito, ed è tutte le teste, e il programma in realtà non lo fa 920 00:37:48,510 --> 00:37:49,230 funzionano come ci si speranza. 921 00:37:49,230 --> 00:37:51,210 Ma questa volta, ha funzionato, e ci sembra di avere, se abbiamo fatto 922 00:37:51,210 --> 00:37:53,830 questo un numero infinito di volte, il 50% delle quote. 923 00:37:53,830 --> 00:37:56,950 Ora di nuovo, non tutto ciò che interessa, solo fare i gatti 924 00:37:56,950 --> 00:37:59,840 meow, così vediamo se non possiamo avanzare questo un po 'più 925 00:37:59,840 --> 00:38:01,820 qui in versione sei. 926 00:38:01,820 --> 00:38:05,620 Così ora, abbiamo la versione davvero fastidioso - 927 00:38:05,620 --> 00:38:08,215 [Miagolii ogni pochi secondi] 928 00:38:08,215 --> 00:38:10,640 DAVID MALAN: - e questo è ciò che è noto, in generale, come 929 00:38:10,640 --> 00:38:11,670 ciclo infinito. 930 00:38:11,670 --> 00:38:14,190 >> Così ciclo infinito, in questo caso si sente male. 931 00:38:14,190 --> 00:38:16,970 E 'sicuramente per avviare il suono male, ma infinito 932 00:38:16,970 --> 00:38:18,740 cicli non sono sempre male. 933 00:38:18,740 --> 00:38:20,910 Riuscite a pensare contesto in programmi per computer in cui ci si 934 00:38:20,910 --> 00:38:22,910 in realtà vuole un loop infinito? 935 00:38:22,910 --> 00:38:23,691 Si '? 936 00:38:23,691 --> 00:38:26,520 PUBBLICO: Quando si desidera controllare una condizione. 937 00:38:26,520 --> 00:38:28,240 DAVID MALAN: Ok, quando si desidera mantenere il controllo di una condizione? 938 00:38:28,240 --> 00:38:29,190 Per esempio? 939 00:38:29,190 --> 00:38:30,440 PUBBLICO: [incomprensibile] 940 00:38:36,060 --> 00:38:38,170 DAVID MALAN: Ok, bene, quindi se hai avuto qualche programma, un po 'di 941 00:38:38,170 --> 00:38:40,440 genere di cose domotica, in cui si desidera costantemente 942 00:38:40,440 --> 00:38:41,980 monitor è qualcosa di così. 943 00:38:41,980 --> 00:38:42,850 Sono le luci accese? 944 00:38:42,850 --> 00:38:45,020 Le luci accese perché forse si ha un timer, e 945 00:38:45,020 --> 00:38:47,360 si desidera loro di andare via, potrebbe essere necessario fare qualcosa 946 00:38:47,360 --> 00:38:48,290 ancora e ancora. 947 00:38:48,290 --> 00:38:50,540 E infatti, parlando di timer, qualcuno di voi che hanno 948 00:38:50,540 --> 00:38:53,100 orologi sul computer o orologi digitali, che è un 949 00:38:53,100 --> 00:38:54,210 ciclo infinito. 950 00:38:54,210 --> 00:38:56,980 Continua ad aggiornare l'ora, perché è costantemente 951 00:38:56,980 --> 00:38:59,750 controllo e verifica e controllo ha il tempo di cambiata, 952 00:38:59,750 --> 00:39:01,000 e se sì, oh, mio ​​dio. 953 00:39:03,670 --> 00:39:04,740 L'orologio è finalmente cambiato. 954 00:39:04,740 --> 00:39:07,020 Ha bisogno di visualizzare tale valore per voi. 955 00:39:07,020 --> 00:39:10,880 Quindi, considerando che la maggior parte dei loop temporali infiniti sono un errore, 956 00:39:10,880 --> 00:39:13,950 o per lo meno una decisione di design povero, a volte lo fanno 957 00:39:13,950 --> 00:39:14,785 hanno il loro valore. 958 00:39:14,785 --> 00:39:18,170 >> Bene, cerchiamo di avanzare ulteriormente qui per hello7. 959 00:39:18,170 --> 00:39:20,410 Così ora il programma un po 'più interattivo. 960 00:39:20,410 --> 00:39:23,120 Vorrei ingrandire qui, e ancora una volta, questo è ciò che è bello 961 00:39:23,120 --> 00:39:23,640 su Scratch. 962 00:39:23,640 --> 00:39:26,760 E lo useremo per essere chiari, Scratch, proprio oggi e in 963 00:39:26,760 --> 00:39:27,780 problema della prossima settimana impostato. 964 00:39:27,780 --> 00:39:31,920 Ma il Lunedi, ci immergiamo in C. In questo programma, lo fa, 965 00:39:31,920 --> 00:39:33,190 sempre, il seguente. 966 00:39:33,190 --> 00:39:35,890 SE toccare il puntatore del mouse - ora, chi è il 967 00:39:35,890 --> 00:39:36,420 contesto qui? 968 00:39:36,420 --> 00:39:39,670 Beh, e notare che chi è selezionata qui in basso 969 00:39:39,670 --> 00:39:43,060 è proprio il gatto, sprite uno, così questi script, questo 970 00:39:43,060 --> 00:39:45,720 programma, vale per lo specifico. 971 00:39:45,720 --> 00:39:48,950 Quindi, se questo gatto è a contatto con il puntatore del mouse, quindi sta andando 972 00:39:48,950 --> 00:39:51,350 per giocare a questo verso il basso e attendere due secondi, e 973 00:39:51,350 --> 00:39:53,030 quindi ripetere fino alla nausea. 974 00:39:53,030 --> 00:39:55,360 >> Quindi cerchiamo di andare avanti e ha colpito il gioco. 975 00:39:55,360 --> 00:39:57,580 Non succede nulla, ma se voglio il pet 976 00:39:57,580 --> 00:39:59,310 gatto ora, posso solo. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID MALAN: adorabile. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID MALAN: Okay, meno fastidioso, ma diventa anche noioso, 981 00:40:08,750 --> 00:40:11,480 quindi cerchiamo di andare avanti e vedere se non si può iniettare 982 00:40:11,480 --> 00:40:12,460 una logica poco più. 983 00:40:12,460 --> 00:40:14,300 E 'stato ad esempio sette. 984 00:40:14,300 --> 00:40:16,090 >> Qui a esempio otto, andremo a 985 00:40:16,090 --> 00:40:18,670 introdurre una condizione ELSE. 986 00:40:18,670 --> 00:40:21,440 Quindi, molto simile a un bivio letterale della strada, in cui si può andare 987 00:40:21,440 --> 00:40:24,260 a sinistra oppure si può andare a destra, una condizione in un linguaggio di programmazione 988 00:40:24,260 --> 00:40:28,120 lingua come Gratta e Vinci, o come vedremo C, può permettere di 989 00:40:28,120 --> 00:40:32,230 andare in una direzione o in un altro tramite un IF ELSE costruire. 990 00:40:32,230 --> 00:40:35,160 Così letteralmente, se toccando puntatore del mouse, questo 991 00:40:35,160 --> 00:40:38,680 riprodurrà un suono, ELSE è andare a giocare a questo altro 992 00:40:38,680 --> 00:40:39,800 suono, miagolio. 993 00:40:39,800 --> 00:40:42,510 Ora, se si può dedurre dal nome di questi suoni, è possibile 994 00:40:42,510 --> 00:40:45,310 probabilmente pensare che questo programma è destinata ad evocare 995 00:40:45,310 --> 00:40:46,250 l'idea. 996 00:40:46,250 --> 00:40:48,742 Questo gatto è miagolando felicemente. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID MALAN: Fortunatamente, ma non lo fa 999 00:40:51,410 --> 00:40:52,926 piace molto essere toccato. 1000 00:40:52,926 --> 00:40:54,550 [Roars] 1001 00:40:54,550 --> 00:40:57,500 DAVID MALAN: Così ora abbiamo un gatto che griderà contro di voi. 1002 00:40:57,500 --> 00:41:00,570 >> Va bene, un ultimo esempio con i gatti qui, e 1003 00:41:00,570 --> 00:41:02,920 cerchiamo di versione open nove di questo qui. 1004 00:41:02,920 --> 00:41:06,190 Così ora, abbiamo il suono successivo più fastidioso che ho potuto 1005 00:41:06,190 --> 00:41:11,630 trovare, quindi abbiamo un tricheco o leone di mare qui che sta per 1006 00:41:11,630 --> 00:41:13,222 effettuare le seguenti operazioni. 1007 00:41:13,222 --> 00:41:20,870 [CORTECCIA SEAL] 1008 00:41:20,870 --> 00:41:23,310 DAVID MALAN: Ok, questo andrà avanti fino a quando non capire come 1009 00:41:23,310 --> 00:41:24,640 questo programma funziona. 1010 00:41:24,640 --> 00:41:28,560 Così questa volta, questo animale ha due script, e ciò che è 1011 00:41:28,560 --> 00:41:31,050 interessante è che questi script sono in corso di esecuzione 1012 00:41:31,050 --> 00:41:32,260 in parallelo. 1013 00:41:32,260 --> 00:41:35,340 Quindi, perché entrambi iniziano con una bandiera verde cliccato, 1014 00:41:35,340 --> 00:41:38,080 è come andare in questo modo, entrambi i programmi e iniziare a correre è 1015 00:41:38,080 --> 00:41:41,370 una volta anche se sono loop per sempre. 1016 00:41:41,370 --> 00:41:44,420 Così nello script in alto, ho un po 'logica. 1017 00:41:44,420 --> 00:41:49,275 Quali caratteristiche che forniscono fino lì? 1018 00:41:49,275 --> 00:41:50,740 [CORTECCIA SEAL] 1019 00:41:50,740 --> 00:41:51,670 PUBBLICO: [incomprensibile] 1020 00:41:51,670 --> 00:41:53,295 DAVID MALAN: Se si tratta di che cosa? 1021 00:41:53,295 --> 00:41:53,760 [CORTECCIA SEAL] 1022 00:41:53,760 --> 00:41:55,852 PUBBLICO: Se disattivato a zero, sta andando a continuare a giocare il 1023 00:41:55,852 --> 00:41:58,410 suono. [CORTECCIA SEAL] 1024 00:41:58,410 --> 00:41:58,940 DAVID MALAN: Ok, bene. 1025 00:41:58,940 --> 00:42:01,960 Quindi, se disattivato, qualsiasi cosa sia, questa cosa arancione è pari a zero, 1026 00:42:01,960 --> 00:42:05,370 Quindi riprodurre il suono leone di mare e pensare "Oh, 1027 00:42:05,370 --> 00:42:06,770 ciao, "per due secondi. 1028 00:42:06,770 --> 00:42:09,380 Ora, io non so cosa è disattivato, ma nulla evoca l' 1029 00:42:09,380 --> 00:42:11,230 idea di false o off. 1030 00:42:11,230 --> 00:42:14,490 Quindi, se disattivato è falsa, quindi se non disattivato, 1031 00:42:14,490 --> 00:42:15,660 mantenere la riproduzione del suono. 1032 00:42:15,660 --> 00:42:17,350 Va bene, come possiamo disattivare questa cosa? 1033 00:42:17,350 --> 00:42:19,310 >> Bene, diamo un'occhiata al secondo script laggiù. 1034 00:42:19,310 --> 00:42:22,130 Il secondo script dice impostato su disattivato a zero. 1035 00:42:22,130 --> 00:42:25,180 Nota è anche arancione, quindi cosa Scratch fa è che i colori 1036 00:42:25,180 --> 00:42:27,400 blocchi dello stesso colore, se è una specie 1037 00:42:27,400 --> 00:42:28,850 di logicamente correlati. 1038 00:42:28,850 --> 00:42:32,850 Così come rabboccare sordina era arancione, è così mute qui 1039 00:42:32,850 --> 00:42:34,060 menzionato nel blocco arancione. 1040 00:42:34,060 --> 00:42:36,170 Ma questo è un assegnazioni delle variabili, così come in 1041 00:42:36,170 --> 00:42:39,170 algebra, si ha x e y e z, nella programmazione è necessario 1042 00:42:39,170 --> 00:42:41,440 variabili, ma sono in genere - 1043 00:42:41,440 --> 00:42:42,580 Soffermiamoci per un momento e figura come 1044 00:42:42,580 --> 00:42:44,280 per fermare questo abbaiare. 1045 00:42:44,280 --> 00:42:45,480 Come posso fare questo? 1046 00:42:45,480 --> 00:42:46,480 [CORTECCIA SEAL] 1047 00:42:46,480 --> 00:42:47,920 DAVID MALAN: Okay. 1048 00:42:47,920 --> 00:42:49,490 Si è fermato. Va bene. 1049 00:42:49,490 --> 00:42:52,230 >> Così come in algebra si dispone di variabili x, y, z, ma in 1050 00:42:52,230 --> 00:42:55,260 programmazione, avente come variabili x, y, z ed è generalmente 1051 00:42:55,260 --> 00:42:57,330 visto di buon occhio perché non sono per niente espressiva. 1052 00:42:57,330 --> 00:43:00,070 Essi non hanno alcun significato semantico di sorta, così nella maggior parte 1053 00:43:00,070 --> 00:43:02,110 linguaggi di programmazione, le variabili possono avere piena 1054 00:43:02,110 --> 00:43:05,270 veri e propri nomi, parole o frasi, come in sordina, a dire 1055 00:43:05,270 --> 00:43:06,030 quello che fanno. 1056 00:43:06,030 --> 00:43:09,380 Quindi questo secondo script è stato anche ascoltare per sempre, e ha detto 1057 00:43:09,380 --> 00:43:12,100 se la chiave, la barra spaziatrice della tastiera, è 1058 00:43:12,100 --> 00:43:13,370 premuto, il punto interrogativo. 1059 00:43:13,370 --> 00:43:16,300 Quindi c'è una condizione con una espressione booleana che è 1060 00:43:16,300 --> 00:43:19,010 andando a rispondere a una domanda sia veritiero o falso, 1061 00:43:19,010 --> 00:43:22,880 allora che ho dentro di esso se il tasto viene premuto e lo spazio 1062 00:43:22,880 --> 00:43:28,020 SE sordina è pari a zero, impostare sordina a uno, ELSE impostare sordina a zero. 1063 00:43:28,020 --> 00:43:30,510 Così questa altra forcella nella strada, e notate come ho 1064 00:43:30,510 --> 00:43:33,500 nidificato le due condizioni IF, è un modo di controllo è il 1065 00:43:33,500 --> 00:43:36,610 Space Bar premuto perché in tal caso, sia io voglio andare questo 1066 00:43:36,610 --> 00:43:38,000 modo o in quel modo. 1067 00:43:38,000 --> 00:43:40,210 E come faccio a invertire il valore disattivato? 1068 00:43:40,210 --> 00:43:41,410 Devo controllare è pari a zero? 1069 00:43:41,410 --> 00:43:45,890 Se è così, ne fanno uno, altrimenti lo rendono lo zero per passare quindi 1070 00:43:45,890 --> 00:43:47,670 i suoi due stati. 1071 00:43:47,670 --> 00:43:50,030 >> Va bene, quindi abbiamo poi alcuni di questi fondamentali 1072 00:43:50,030 --> 00:43:50,540 costrutti. 1073 00:43:50,540 --> 00:43:52,810 Ci sono espressioni booleane, e realizzare, anche, questi sono 1074 00:43:52,810 --> 00:43:54,050 non è poi così sconosciuto. 1075 00:43:54,050 --> 00:43:56,730 In realtà, questa è una schermata veloce suo corso Harvard CS50 1076 00:43:56,730 --> 00:43:59,740 strumento commerciale, e qualsiasi sito web là fuori che ha caselle di controllo 1077 00:43:59,740 --> 00:44:02,420 e menu a discesa sono davvero, per tutto questo tempo, usato 1078 00:44:02,420 --> 00:44:03,430 Espressioni booleane. 1079 00:44:03,430 --> 00:44:05,760 In questo caso qui, se si fa clic sulla casella di controllo accanto a 1080 00:44:05,760 --> 00:44:08,620 Ovviamente maggiore o uguale a 4,5, o la prossima stesso 1081 00:44:08,620 --> 00:44:11,200 facoltà, si sta specificando una espressione booleana. 1082 00:44:11,200 --> 00:44:14,780 Mostrami corsi per i quali tale espressione è vera. 1083 00:44:14,780 --> 00:44:17,080 Oppure, a destra, non è in contrasto con i corsi che sono 1084 00:44:17,080 --> 00:44:20,440 prendere, se è selezionata, allora sì, si desidera controllare 1085 00:44:20,440 --> 00:44:22,890 questa condizione, altrimenti si desidera ignorarlo. 1086 00:44:22,890 --> 00:44:25,170 Le espressioni booleane Così sono una sorta di tutto, ma quando 1087 00:44:25,170 --> 00:44:28,080 li mettiamo in condizioni, se le condizioni IF, IF 1088 00:44:28,080 --> 00:44:30,480 Altre famiglie, o si può anche simulare più profonda 1089 00:44:30,480 --> 00:44:32,830 livelli, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 in modo che una specie di stato ternario. 1091 00:44:34,430 --> 00:44:36,920 Si può andare in questo modo o in questo modo o in questo modo. 1092 00:44:36,920 --> 00:44:39,680 Siamo in grado di mantenere le cose di nidificazione di andare in direzioni diverse. 1093 00:44:39,680 --> 00:44:41,800 >> Così Scratch ha questi cicli, come sempre. 1094 00:44:41,800 --> 00:44:44,750 Ha queste caratteristiche come ripetizione 10, un po 'di 1095 00:44:44,750 --> 00:44:46,260 numero finito di volte. 1096 00:44:46,260 --> 00:44:49,040 Abbiamo la possibilità ora di impostare le variabili, in questo caso 1097 00:44:49,040 --> 00:44:51,810 Ho dichiarato, ad esempio, una variabile chiamata calzini. 1098 00:44:51,810 --> 00:44:54,340 Ho inizializzato a 0, e questo è ancora un altro senso 1099 00:44:54,340 --> 00:44:56,940 abbiamo potuto prendere qui con Giuseppe, per cui forse 1100 00:44:56,940 --> 00:45:00,150 basta tenere traccia del numero di calzini che ho su e terminare 1101 00:45:00,150 --> 00:45:03,490 il programma quando il valore che la variabile è 2. 1102 00:45:03,490 --> 00:45:05,660 Questo sarebbe un altro modo di generalizzare tale tipo di 1103 00:45:05,660 --> 00:45:08,820 problema e fare qualcosa di nuovo e di nuovo. 1104 00:45:08,820 --> 00:45:12,080 Bene, andiamo avanti e ora introdurre un paio di cose nuove. 1105 00:45:12,080 --> 00:45:14,100 Così quelli di voi con precedente esperienza di programmazione sarà 1106 00:45:14,100 --> 00:45:17,120 So che un sacco di lingue hanno array, o vettori o 1107 00:45:17,120 --> 00:45:19,970 liste, e in effetti, Scratch ha qualcosa di simile, anche. 1108 00:45:19,970 --> 00:45:22,510 Quindi cerchiamo di vedere se non possiamo prendere le cose al livello successivo qui. 1109 00:45:22,510 --> 00:45:24,920 Se ho la possibilità, ora, con questi pezzi di puzzle per 1110 00:45:24,920 --> 00:45:29,080 aggiungere qualcosa, come una parola o un numero, a una variabile, posso 1111 00:45:29,080 --> 00:45:30,550 iniziare ad accumulare cose. 1112 00:45:30,550 --> 00:45:33,630 E questo è in realtà a proposito belle per cose come i giochi, 1113 00:45:33,630 --> 00:45:35,810 giochi di ruolo in cui sei una specie di giro 1114 00:45:35,810 --> 00:45:38,600 un mondo di fantasia raccogliere le cose, raccogliendo le cose, 1115 00:45:38,600 --> 00:45:39,900 accumulare punti, o simili. 1116 00:45:39,900 --> 00:45:42,310 Si potrebbe desiderare di tenere traccia di un qualche tipo di inventario, e 1117 00:45:42,310 --> 00:45:45,180 in effetti, questo è quello che uno dei nostri ex studenti qui fatto con 1118 00:45:45,180 --> 00:45:47,750 qualcosa chiamato Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Permettetemi quindi di andare avanti e di aprire questa cosa qui, e in 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, abbiamo questo mondo fino in cima. 1121 00:45:56,260 --> 00:45:58,820 Permettetemi quindi di andare avanti e fare clic sulla bandiera verde. 1122 00:45:58,820 --> 00:46:01,040 Si noti in alto a sinistra è una sorta di inventario. 1123 00:46:01,040 --> 00:46:04,110 Questo è implementato in Scratch come quello che chiameremo un array o 1124 00:46:04,110 --> 00:46:06,890 un elenco, e ora abbiamo questa piccola animazione. 1125 00:46:06,890 --> 00:46:10,440 Così come abbiamo iniziato prima, con questa storia d'amore cookie, 1126 00:46:10,440 --> 00:46:13,320 e poi abbiamo avanzato ai gatti e leoni marini, ora siamo in grado di avere 1127 00:46:13,320 --> 00:46:15,100 cose che sono ancora più interattivo. 1128 00:46:15,100 --> 00:46:18,250 E questo piccoletto blu, posso iniziare a muoversi intorno al suo 1129 00:46:18,250 --> 00:46:19,500 casetta qui. 1130 00:46:19,500 --> 00:46:22,570 Quindi sembra che lui ha una via d'uscita verso il basso qui, quindi sto usando 1131 00:46:22,570 --> 00:46:25,260 i tasti freccia, su, giù, sinistra destra. 1132 00:46:25,260 --> 00:46:28,370 E ora sono fuori, quindi cerchiamo è quello che abbiamo qui. 1133 00:46:28,370 --> 00:46:30,920 Sembra un arancio, e in effetti, non appena tocco la 1134 00:46:30,920 --> 00:46:33,110 arancione, si lasciò cadere nel mio inventario. 1135 00:46:33,110 --> 00:46:35,640 Se vado qui per le ciliegie, ora ho qualcosa 1136 00:46:35,640 --> 00:46:36,760 altro nel mio inventario. 1137 00:46:36,760 --> 00:46:39,100 E questo è tutto bello e carino, ma pensare a come, ora, questa 1138 00:46:39,100 --> 00:46:39,840 è implementato. 1139 00:46:39,840 --> 00:46:42,490 Beh, abbiamo questa idea di una lista, e questo è apparentemente un 1140 00:46:42,490 --> 00:46:45,470 pezzo di puzzle che basta dire quello che vuoi aggiungere ad essa, aggiungere 1141 00:46:45,470 --> 00:46:46,950 arancia, aggiungere le ciliegie. 1142 00:46:46,950 --> 00:46:48,540 Ora, che cosa è questo piccoletto blu facendo? 1143 00:46:48,540 --> 00:46:49,810 Beh, e 'un folletto. 1144 00:46:49,810 --> 00:46:52,190 E presumibilmente, l'arancia e le ciliegie - 1145 00:46:52,190 --> 00:46:54,140 essi stessi erano sprite separati. 1146 00:46:54,140 --> 00:46:56,980 E l'utilizzo di condizioni di espressioni booleane, le 1147 00:46:56,980 --> 00:47:00,530 studente era probabilmente in grado di esprimere IF ragazzo blu è 1148 00:47:00,530 --> 00:47:04,590 ciliegie che toccano poi aggiungere le ciliegie parola al suo 1149 00:47:04,590 --> 00:47:07,890 inventario, e quindi anche nascondere lo sprite ciliegio. 1150 00:47:07,890 --> 00:47:10,600 Quindi, sotto il cofano, probabilmente è ancora una ciliegia 1151 00:47:10,600 --> 00:47:11,350 sprite lì. 1152 00:47:11,350 --> 00:47:14,160 Abbiamo appena detto di diventare effettivamente invisibile. 1153 00:47:14,160 --> 00:47:16,340 >> Ora, se io continuo a camminare qui, possiamo anche farlo 1154 00:47:16,340 --> 00:47:19,150 cosa prossimale, dove posso andare a leggere il cartello. 1155 00:47:19,150 --> 00:47:23,170 Quindi, se tizio blu toccare segno, possiamo avere questo blocco Say 1156 00:47:23,170 --> 00:47:26,455 proprio come il gatto ci ha parlato in parole, ciao, prima, "Got 1157 00:47:26,455 --> 00:47:26,880 un po 'di frutta? 1158 00:47:26,880 --> 00:47:29,290 Portare al posto della frutta. "Va bene, così ora, a quanto pare, 1159 00:47:29,290 --> 00:47:30,550 Io ho le mie indicazioni. 1160 00:47:30,550 --> 00:47:33,050 Posso andare qui al posto della frutta, in fila me up 1161 00:47:33,050 --> 00:47:33,740 con la porta. 1162 00:47:33,740 --> 00:47:35,390 Ora, io sono qui. 1163 00:47:35,390 --> 00:47:38,120 Posso salire l'uomo al bancone. 1164 00:47:38,120 --> 00:47:40,330 Egli rileva che sono vicino a lui, in modo che non deve essere 1165 00:47:40,330 --> 00:47:46,780 tutto identico toccare, e ho vinto la partita. 1166 00:47:46,780 --> 00:47:49,890 Così ci abbiamo Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Così siamo in grado di fare le cose ancora più avanzate di questo. 1168 00:47:52,200 --> 00:47:53,200 Siamo in grado di aggiungere suoni. 1169 00:47:53,200 --> 00:47:54,610 Possiamo aggiungere casualità pseudo. 1170 00:47:54,610 --> 00:47:56,260 Possiamo aggiungere complessità. 1171 00:47:56,260 --> 00:47:58,490 Lasciami andare avanti qui, e piuttosto che fare da solo, 1172 00:47:58,490 --> 00:48:01,240 ti faccio vedere uno dei mezzi più sofisticati 1173 00:48:01,240 --> 00:48:06,640 abbiamo ottenuto lo scorso anno da una persona di nome Blake. 1174 00:48:06,640 --> 00:48:08,910 Possiamo avere un volontario che è comodo che figurano 1175 00:48:08,910 --> 00:48:12,600 fotocamera e per la riproduzione di un gioco? 1176 00:48:12,600 --> 00:48:13,450 Che ne dici proprio lì? 1177 00:48:13,450 --> 00:48:15,380 Vieni su. 1178 00:48:15,380 --> 00:48:19,680 Va bene, allora il gioco che avete appena inconsapevolmente 1179 00:48:19,680 --> 00:48:20,780 volontari per giocare - 1180 00:48:20,780 --> 00:48:25,910 [Applausi] 1181 00:48:25,910 --> 00:48:28,610 DAVID MALAN: - è una cosa di altri tempi chiamato 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Qual è il tuo nome? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID MALAN: Redna? 1185 00:48:31,050 --> 00:48:32,530 RENDA: E 'come Brenda con una b. 1186 00:48:32,530 --> 00:48:33,190 DAVID MALAN: Okay, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Lieto di vederla. 1189 00:48:34,580 --> 00:48:38,690 >> Quindi, qui a "Frogger", e se potessimo alzare il volume appena 1190 00:48:38,690 --> 00:48:39,780 un po ', tu sei questo piccolo 1191 00:48:39,780 --> 00:48:41,010 rana verde sul fondo. 1192 00:48:41,010 --> 00:48:43,940 È possibile utilizzare sinistra, destra, su e giù, e il vostro obiettivo è quello di 1193 00:48:43,940 --> 00:48:46,510 attraversare la strada, attraversare il fiume, e toccare il giglio pad 1194 00:48:46,510 --> 00:48:47,760 in alto. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Una t più - 1197 00:48:54,630 --> 00:48:56,400 rifare, va bene? 1198 00:48:56,400 --> 00:48:58,890 Fermiamoci successo. 1199 00:48:58,890 --> 00:49:00,140 Nessuno ha visto. 1200 00:49:10,470 --> 00:49:12,930 [Applausi] 1201 00:49:17,023 --> 00:49:17,850 [Applausi] 1202 00:49:17,850 --> 00:49:19,341 DAVID MALAN: Già. 1203 00:49:19,341 --> 00:49:20,832 Molto ben fatto. 1204 00:49:20,832 --> 00:49:22,082 Eccellente, grazie. 1205 00:49:27,300 --> 00:49:29,430 >> In modo che non vi era Frogger. Ora che sapete che cosa hai 1206 00:49:29,430 --> 00:49:32,170 ottenuto in voi stessi, un altro volontario per una diversa 1207 00:49:32,170 --> 00:49:34,910 gioco presentato da un altro studente. 1208 00:49:34,910 --> 00:49:35,560 Vuoi venire in su? 1209 00:49:35,560 --> 00:49:36,576 Qual è il tuo nome? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID MALAN: Richard. 1212 00:49:37,420 --> 00:49:39,732 Va bene, Richard, vieni su. 1213 00:49:39,732 --> 00:49:42,187 [Applausi] 1214 00:49:45,140 --> 00:49:47,030 DAVID MALAN: Tu hai qualcosa che ti suona 1215 00:49:47,030 --> 00:49:54,180 familiare presto, per cui qui sono le vostre istruzioni. 1216 00:49:54,180 --> 00:49:56,580 Quindi, in un momento, alcuni pezzi del puzzle stanno andando a scorrere verso l'alto 1217 00:49:56,580 --> 00:49:58,150 dalla schermata che sembrano sia a sinistra 1218 00:49:58,150 --> 00:49:59,450 o destra verso l'alto o verso il basso. 1219 00:49:59,450 --> 00:50:01,230 Stai andando ad avere per colpire i tasti freccia in modo 1220 00:50:01,230 --> 00:50:04,540 che corrisponde a quei pezzi del puzzle in fila con 1221 00:50:04,540 --> 00:50:05,720 i segnaposto in alto. 1222 00:50:05,720 --> 00:50:07,500 Così, quando si vede una freccia a sinistra, e si allinei con la sinistra 1223 00:50:07,500 --> 00:50:09,260 freccia, premere la freccia sinistra. 1224 00:50:09,260 --> 00:50:10,866 Si può iniziare. 1225 00:50:10,866 --> 00:50:13,674 [MUSICA - "PIU 'FORTE" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 DAVID MALAN: Va bene, grande applauso per Richard. 1227 00:51:23,470 --> 00:51:26,082 [Applausi] 1228 00:51:32,426 --> 00:51:33,720 DAVID MALAN: Molto ben fatto. 1229 00:51:33,720 --> 00:51:34,110 Grazie. 1230 00:51:34,110 --> 00:51:37,104 [Applausi] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID MALAN: divertente e, apparentemente, una sorta di 1232 00:51:44,330 --> 00:51:46,590 intimidatorio come potrebbe essere quello di realizzare qualcosa di 1233 00:51:46,590 --> 00:51:49,550 apparentemente sofisticati come questo, si rende conto che lo studente 1234 00:51:49,550 --> 00:51:51,450 non ha indicato e solo scrivere tutto questo in una sola volta. 1235 00:51:51,450 --> 00:51:54,200 Piuttosto, è possibile scomporre un problema apparentemente complesso 1236 00:51:54,200 --> 00:51:56,840 come tale in pezzi molto più piccoli, e anche questo è 1237 00:51:56,840 --> 00:51:57,560 Sarà un tema. 1238 00:51:57,560 --> 00:52:00,490 La cosa peggiore che si può fare in scrittura di un programma nella maggior parte qualsiasi 1239 00:52:00,490 --> 00:52:03,480 linguaggio è quello di sedersi, ottenere davvero eccitato, scrivere il 1240 00:52:03,480 --> 00:52:07,200 tutta la dannata cosa, e quindi spero solo che funzioni dal 1241 00:52:07,200 --> 00:52:08,510 volta che si è finito di scrivere. 1242 00:52:08,510 --> 00:52:10,920 Piuttosto, il processo di programmazione deve generalmente 1243 00:52:10,920 --> 00:52:13,440 essere molto consapevole, molto iterativo, per cui è sufficiente 1244 00:52:13,440 --> 00:52:16,955 impostare piccoli passi per voi stessi, dimensione di un boccone 1245 00:52:16,955 --> 00:52:20,070 vuoi mordere, e in modo da avere queste sanità mentale 1246 00:52:20,070 --> 00:52:21,740 controlli, le tappe piccoli si possono incontrare. 1247 00:52:21,740 --> 00:52:24,170 E poi si costruisce rispetto a quelle per creare più 1248 00:52:24,170 --> 00:52:25,400 cose ancora più sofisticati. 1249 00:52:25,400 --> 00:52:26,820 >> Così, per esempio, come potremmo fare per 1250 00:52:26,820 --> 00:52:28,380 l'attuazione di un gioco come questo? 1251 00:52:28,380 --> 00:52:30,160 Beh, francamente, avrei certamente iniziare da solo 1252 00:52:30,160 --> 00:52:32,260 sostenere un tasto alla volta. 1253 00:52:32,260 --> 00:52:34,840 Diciamo solo implementare il supporto per la freccia sinistra. 1254 00:52:34,840 --> 00:52:37,610 Così lo studente ha dovuto creare in qualche modo in Photoshop, o in 1255 00:52:37,610 --> 00:52:40,340 Gratta stesso utilizzando il piccolo editor grafico, un 1256 00:52:40,340 --> 00:52:42,680 freccia che assomiglia a quello in alto a sinistra lì, proprio 1257 00:52:42,680 --> 00:52:43,910 il segnaposto grigio. 1258 00:52:43,910 --> 00:52:46,610 Poi lo studente doveva capire cosa x, coordinata y 1259 00:52:46,610 --> 00:52:48,380 metterlo, dove metterlo nella finestra. 1260 00:52:48,380 --> 00:52:50,730 0, 0 è qui, in modo da avere per capire il numero di 1261 00:52:50,730 --> 00:52:53,690 pixel, o punti, a compensare quella freccia da 1262 00:52:53,690 --> 00:52:54,800 la parte superiore dello schermo. 1263 00:52:54,800 --> 00:52:57,040 E poi una volta che è in atto, il programma non fa in realtà 1264 00:52:57,040 --> 00:53:00,380 fa ancora nulla, quindi è quindi necessario uno sprite secondo, per 1265 00:53:00,380 --> 00:53:04,470 esempio una freccia verde che è anche verso sinistra, e si 1266 00:53:04,470 --> 00:53:06,710 quindi bisogno di iniziare a scrivere alcuni script per questo. 1267 00:53:06,710 --> 00:53:09,310 >> E si nota, forse, che queste cose cominciarono ad arrivare a 1268 00:53:09,310 --> 00:53:11,470 velocità diverse, ed i colori erano diversi 1269 00:53:11,470 --> 00:53:13,750 luoghi, e questo perché lo studente ha utilizzato un po 'di 1270 00:53:13,750 --> 00:53:14,990 pseudo casualità. 1271 00:53:14,990 --> 00:53:17,440 E da pseudo casualità, voglio solo dire scegliere un numero 1272 00:53:17,440 --> 00:53:20,230 tra qualcosa e qualcosa perché è possibile 1273 00:53:20,230 --> 00:53:22,890 iniziano a cose spilli, come se il numero è compreso tra uno e 1274 00:53:22,890 --> 00:53:24,940 cinque, beh, facciamo la cosa verde. 1275 00:53:24,940 --> 00:53:28,290 Se è tra 6 e 10, facciamo il pezzo del puzzle 1276 00:53:28,290 --> 00:53:29,730 rosso invece. 1277 00:53:29,730 --> 00:53:31,840 Finché si dispone di un modo di generare un qualche tipo di 1278 00:53:31,840 --> 00:53:34,730 casualità, è possibile prendere decisioni in base a tale 1279 00:53:34,730 --> 00:53:35,260 casualità. 1280 00:53:35,260 --> 00:53:37,490 E continuo dicendo pseudo casuale, perché c'è un 1281 00:53:37,490 --> 00:53:38,390 piccolo sporco segreto. 1282 00:53:38,390 --> 00:53:41,130 I computer non può venire con numeri casuali. 1283 00:53:41,130 --> 00:53:42,800 Essi possono solo fare quello che viene detto, perché 1284 00:53:42,800 --> 00:53:44,110 sono artificiali dispositivi. 1285 00:53:44,110 --> 00:53:45,880 Non possono indovinare un numero come noi esseri umani 1286 00:53:45,880 --> 00:53:46,960 sentire come possiamo. 1287 00:53:46,960 --> 00:53:50,970 Un computer ha a che fare qualcosa di matematica per evocare la 1288 00:53:50,970 --> 00:53:53,970 illusione di numero matematico, a volte usando il 1289 00:53:53,970 --> 00:53:57,420 giorno corrente del tempo come un input per capire cosa 1290 00:53:57,420 --> 00:53:59,570 numero di tornare, ma più su che un'altra volta. 1291 00:53:59,570 --> 00:54:02,060 Per ora, è sufficiente sapere che siamo in grado di generare pseudo casualità. 1292 00:54:02,060 --> 00:54:04,610 >> Quindi, una volta che ho la possibilità per la freccia a sinistra per avviare la 1293 00:54:04,610 --> 00:54:07,990 appare in tempi diversi e con velocità diverse, allora 1294 00:54:07,990 --> 00:54:10,230 Posso tornare indietro e aggiungere un po 'di queste condizioni IF. 1295 00:54:10,230 --> 00:54:14,950 Se questo sprite sta toccando l'altra, e la freccia sinistra 1296 00:54:14,950 --> 00:54:16,330 tasto è stato premuto - 1297 00:54:16,330 --> 00:54:17,900 quindi tre condizioni in quel caso. 1298 00:54:17,900 --> 00:54:20,750 Posso usare che e bloccare forse, in questo caso - 1299 00:54:20,750 --> 00:54:23,210 Poi voglio andare avanti e incrementare il punteggio. 1300 00:54:23,210 --> 00:54:25,130 E in alto, abbiamo un punteggio, abbiamo Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, buona, e Boo. 1302 00:54:26,510 --> 00:54:29,810 Quindi c'è apparentemente cinque variabili che questo studente 1303 00:54:29,810 --> 00:54:32,220 utilizzato per tenere traccia di questi parametri diversi. 1304 00:54:32,220 --> 00:54:34,180 Così, in breve, il risultato finale è sorprendente. 1305 00:54:34,180 --> 00:54:37,320 E 'divertente, è divertente da giocare, è coinvolgente, ma questo non è 1306 00:54:37,320 --> 00:54:38,380 in cui lo studente ha avuto inizio. 1307 00:54:38,380 --> 00:54:42,210 Lui o lei ha iniziato ad un set più piccolo di passaggi. 1308 00:54:42,210 --> 00:54:44,470 >> Ma quali sono alcuni altri blocchi da costruzione che possiamo 1309 00:54:44,470 --> 00:54:45,760 tessere in questi programmi? 1310 00:54:45,760 --> 00:54:48,750 Beh, c'è questo altro concetto nella maggior parte delle lingue, 1311 00:54:48,750 --> 00:54:50,730 Gratta tra di loro, noto come thread. 1312 00:54:50,730 --> 00:54:54,660 Quindi, un computer non può fare le cose in realtà molto di più in un 1313 00:54:54,660 --> 00:54:56,730 tempo, almeno non solito. 1314 00:54:56,730 --> 00:54:59,930 Piuttosto, un computer ha generalmente solo una CPU, e persino 1315 00:54:59,930 --> 00:55:02,230 se i computer sono super veloci e possono dunque, 1316 00:55:02,230 --> 00:55:04,740 creare l'illusione di fare le cose in una sola volta - 1317 00:55:04,740 --> 00:55:06,180 controllare la vostra posta elettronica, ottenendo un istante 1318 00:55:06,180 --> 00:55:07,770 messaggio, la stampa di un documento - 1319 00:55:07,770 --> 00:55:11,530 in realtà, un computer è solo saltando dalla stampa alla IMing 1320 00:55:11,530 --> 00:55:15,160 all'invio, indietro e avanti e avanti e indietro così veloce che abbiamo 1321 00:55:15,160 --> 00:55:18,170 lenti esseri umani stupidi non si rendono conto che in realtà è 1322 00:55:18,170 --> 00:55:21,240 l'esecuzione di tali programmi un po 'alla volta. 1323 00:55:21,240 --> 00:55:23,960 Ora, questo un po 'di bianco, si trovano in questi giorni perché, al giorno d'oggi, 1324 00:55:23,960 --> 00:55:26,740 molti nostri computer sono ciò che sono chiamati multi-core, in modo da 1325 00:55:26,740 --> 00:55:29,760 hanno una CPU, ma più core, che è un po 'come 1326 00:55:29,760 --> 00:55:31,760 con più CPU. 1327 00:55:31,760 --> 00:55:35,020 >> E così a volte, i computer possono davvero fare le cose più 1328 00:55:35,020 --> 00:55:38,500 alla volta, ma generalmente all'interno di un programma, programmi 1329 00:55:38,500 --> 00:55:40,200 affidamento su queste cose chiamate thread. 1330 00:55:40,200 --> 00:55:43,160 Quindi un thread è un po 'come un programma in miniatura che può 1331 00:55:43,160 --> 00:55:46,540 coesistenza di un altro programma in miniatura e può funzionare 1332 00:55:46,540 --> 00:55:51,250 in parallelo, o almeno può essere eseguito con l'illusione che 1333 00:55:51,250 --> 00:55:52,990 sono in esecuzione simultaneamente. 1334 00:55:52,990 --> 00:55:55,060 Così Scratch supporta queste cose chiamate thread. 1335 00:55:55,060 --> 00:55:57,580 È possibile disporre di più script in esecuzione in una sola volta, proprio come noi 1336 00:55:57,580 --> 00:56:00,220 fatto con il lupo di mare, e questo ci permette di realtà 1337 00:56:00,220 --> 00:56:03,620 poi interazioni tra questi sprite. 1338 00:56:03,620 --> 00:56:09,910 Lasciami andare avanti qui e tirare su, diciamo, fili, e 1339 00:56:09,910 --> 00:56:11,870 giocare a questo come segue. 1340 00:56:11,870 --> 00:56:13,950 Abbiamo due sprite, ciascuno dei quali vedremo 1341 00:56:13,950 --> 00:56:15,720 ha un solo script. 1342 00:56:15,720 --> 00:56:18,000 E si nota sembra che ci sia un po 'di intelligenza nel 1343 00:56:18,000 --> 00:56:21,335 gatto in questo perché si sta avvicinando - 1344 00:56:21,335 --> 00:56:21,730 [Roars] 1345 00:56:21,730 --> 00:56:24,540 DAVID MALAN: - e più vicino alla uccellino. 1346 00:56:24,540 --> 00:56:26,570 >> Così come è il sistema operativo uccello? 1347 00:56:26,570 --> 00:56:28,200 Bene, diamo uno sguardo al primo uccello. 1348 00:56:28,200 --> 00:56:31,220 Lo script uccello ha detto che quando la bandiera verde si fa clic, andare a x 1349 00:56:31,220 --> 00:56:34,020 uguale negativo 115 e y è uguale a 150. 1350 00:56:34,020 --> 00:56:37,010 Così ho capito una posizione casuale in cui ho voluto il 1351 00:56:37,010 --> 00:56:39,580 uccello per iniziare, e io lo mise lì per impostazione predefinita. 1352 00:56:39,580 --> 00:56:42,800 Poi, sempre se non si toccano gatto, quindi questo è un altro 1353 00:56:42,800 --> 00:56:45,080 tipo di costrutto di ciclo, ma la stessa idea, farlo di nuovo e 1354 00:56:45,080 --> 00:56:45,780 ancora e ancora. 1355 00:56:45,780 --> 00:56:49,410 Fino a quando non si sta toccando il gatto, spostare tre passi, e 1356 00:56:49,410 --> 00:56:51,680 se siete al balzo bordo,, dove è una specie di 1357 00:56:51,680 --> 00:56:53,320 riflessione nel senso biliardo. 1358 00:56:53,320 --> 00:56:56,140 È così che l'uccello si muove intorno tipo di 1359 00:56:56,140 --> 00:56:58,890 apparentemente in modo casuale, ma è solo perché è rimbalza 1360 00:56:58,890 --> 00:57:00,170 le pareti in questo caso. 1361 00:57:00,170 --> 00:57:03,170 >> Ora il gatto, invece, è una specie di truffa. 1362 00:57:03,170 --> 00:57:05,520 Il gatto, quando la bandiera verde si fa clic, si, inizia a 1363 00:57:05,520 --> 00:57:07,390 una certa posizione, una posizione casuale - 1364 00:57:07,390 --> 00:57:09,590 almeno in parte secondo il pick 1365 00:57:09,590 --> 00:57:11,430 casuale blocco verde lì - 1366 00:57:11,430 --> 00:57:14,660 e poi per sempre se toccando l'uccello, riprodurre il suono leone, 1367 00:57:14,660 --> 00:57:15,790 e poi fermarsi script. 1368 00:57:15,790 --> 00:57:18,560 Così, quando ho detto terminare o uscire prima, c'è un puzzle 1369 00:57:18,560 --> 00:57:20,600 pezzo in Scratch che sarà solo uccidere il programma in questione 1370 00:57:20,600 --> 00:57:22,900 punto perché è una specie di logica fatto. 1371 00:57:22,900 --> 00:57:25,030 Ma per il resto, qui, notare ciò che sta per accadere. 1372 00:57:25,030 --> 00:57:28,470 Punto verso l'uccello e si muovono un passo. 1373 00:57:28,470 --> 00:57:31,390 Quindi questo punto verso l'uccello è una specie di un vantaggio del gatto 1374 00:57:31,390 --> 00:57:34,640 ha in che è homing in su l'uccello in movimento, e possiamo 1375 00:57:34,640 --> 00:57:37,370 ora fanno di questo programma ancora più interessante. 1376 00:57:37,370 --> 00:57:41,520 Invece di muovere un passo alla volta per ogni ciclo della CPU, per 1377 00:57:41,520 --> 00:57:44,280 colpire pedaggio della campana, per così dire, lasciatemi andare avanti e 1378 00:57:44,280 --> 00:57:47,350 spostare, diciamo, cinque punti in un tempo come il gatto. 1379 00:57:47,350 --> 00:57:51,120 Fare clic su Esegui, e ora si trova proprio lui in fretta. 1380 00:57:51,120 --> 00:57:55,620 Se raddoppiamo ulteriormente per 10 passi, che tipo di va 1381 00:57:55,620 --> 00:57:56,370 giusto per lui. 1382 00:57:56,370 --> 00:57:57,750 Ora, siamo in grado di dare l'uccello, 1383 00:57:57,750 --> 00:57:59,540 forse, un po 'di vantaggio. 1384 00:57:59,540 --> 00:58:02,370 Andiamo l'uccello e dire invece di spostare tre fasi, 1385 00:58:02,370 --> 00:58:07,140 andiamo avanti lo 30 gradini. 1386 00:58:07,140 --> 00:58:08,700 Ma ancora stato preso alla fine. 1387 00:58:08,700 --> 00:58:10,430 >> Ecco, ci sono due thread. 1388 00:58:10,430 --> 00:58:13,230 E 'rinchiuso in Scratch con due script e due 1389 00:58:13,230 --> 00:58:16,150 sprite, ma l'idea in altre lingue è che si può 1390 00:58:16,150 --> 00:58:19,220 scrivere, in sostanza, troppi programmi come questo e hanno 1391 00:58:19,220 --> 00:58:22,950 eseguirli realmente o immaginariamente, in parallelo. 1392 00:58:22,950 --> 00:58:25,280 >> Ora, c'è anche questo concetto in programmazione nota come 1393 00:58:25,280 --> 00:58:28,010 eventi, e questo è qualcosa che non vedremo in C, i 1394 00:58:28,010 --> 00:58:30,500 lingua conosciuta come C. Lo vedremo verso la fine del semestre 1395 00:58:30,500 --> 00:58:33,240 nella programmazione web, quando si introduce JavaScript e il 1396 00:58:33,240 --> 00:58:36,970 concetto di costruzione di pagine web che sono dinamici e interagire 1397 00:58:36,970 --> 00:58:37,710 con gli utenti. 1398 00:58:37,710 --> 00:58:40,430 Quindi, in questo caso, abbiamo un esempio molto semplice di due 1399 00:58:40,430 --> 00:58:43,860 sprite, ragazzo e ragazza, ciascuno dei quali hanno il loro rispettivo 1400 00:58:43,860 --> 00:58:48,040 discussioni, ma in qualche modo questi due sono comunicanti tra loro per mezzo 1401 00:58:48,040 --> 00:58:49,490 di una cosa chiamata eventi. 1402 00:58:49,490 --> 00:58:52,750 Permettetemi quindi di andare avanti qui e ingrandire sceneggiatura del ragazzo, 1403 00:58:52,750 --> 00:58:54,050 che assomiglia a questo. 1404 00:58:54,050 --> 00:58:57,510 Quando si fa clic su bandiera verde, per sempre effettuare le seguenti operazioni. 1405 00:58:57,510 --> 00:59:01,510 Se lo spazio delle chiavi, o la barra spaziatrice, si preme dire 1406 00:59:01,510 --> 00:59:03,900 Marco per due secondi, che è puramente estetica sul 1407 00:59:03,900 --> 00:59:06,860 schermo, un po 'fumetto, ma poi in onda. 1408 00:59:06,860 --> 00:59:09,240 >> Così trasmissione è un altro pezzo che è Scratch 1409 00:59:09,240 --> 00:59:12,050 rappresentativo di una classe di funzionalità in programmazione 1410 00:59:12,050 --> 00:59:15,080 che permette ai programmi diversi, filati diversi, 1411 00:59:15,080 --> 00:59:17,120 per inter-comunicare, di inviare in qualche modo 1412 00:59:17,120 --> 00:59:18,520 messaggi, uno ad un altro. 1413 00:59:18,520 --> 00:59:21,930 Il passaggio di un pezzo di carta in classe è una sorta di low tech 1414 00:59:21,930 --> 00:59:22,700 equivalenti. 1415 00:59:22,700 --> 00:59:24,300 Così evento di trasmissione. 1416 00:59:24,300 --> 00:59:26,210 Posso inviare questo messaggio, e l'evento parola 1417 00:59:26,210 --> 00:59:27,270 è del tutto arbitraria. 1418 00:59:27,270 --> 00:59:30,000 Scratch ha a volte questi elenchi a discesa, quindi ho appena si avvicinò 1419 00:59:30,000 --> 00:59:33,230 con una parola a caso come evento perché ora, quello che il ragazzo non fa 1420 00:59:33,230 --> 00:59:36,600 quando si preme il tasto è che trasmette questo evento. 1421 00:59:36,600 --> 00:59:39,270 E se guardo ora lo script della ragazza, il suo script è 1422 00:59:39,270 --> 00:59:42,690 super semplice, perché tutto quello che deve fare è non agire quando 1423 00:59:42,690 --> 00:59:44,100 la bandiera verde si fa clic. 1424 00:59:44,100 --> 00:59:47,910 È progettata per azione quando riceve citazione, unquote, 1425 00:59:47,910 --> 00:59:51,210 "Evento", e, a quel punto, sta ascoltando quindi per 1426 00:59:51,210 --> 00:59:52,960 il cosiddetto evento ripetutamente. 1427 00:59:52,960 --> 00:59:55,790 Appena riceve questo caso, sta per gridare 1428 00:59:55,790 --> 00:59:57,680 Polo per due secondi. 1429 00:59:57,680 --> 01:00:01,090 >> E così si può forse dedurre da questo esattamente ciò che il 1430 01:00:01,090 --> 01:00:03,190 risultato successivo sarà. 1431 01:00:03,190 --> 01:00:04,910 Permettetemi di fare clic sulla bandiera verde. 1432 01:00:04,910 --> 01:00:06,610 Non succede niente perché ho bisogno di fare che cosa? 1433 01:00:06,610 --> 01:00:07,310 PUBBLICO: barra spaziatrice. 1434 01:00:07,310 --> 01:00:08,630 DAVID MALAN: barra spaziatrice. 1435 01:00:08,630 --> 01:00:11,990 Ragazzo dice Marco, ragazza dice Polo. 1436 01:00:11,990 --> 01:00:13,670 Ma non è difficile codificato per sé. 1437 01:00:13,670 --> 01:00:16,740 Questo è inter-comunicazione tra gli script, così ora abbiamo 1438 01:00:16,740 --> 01:00:19,240 hanno la capacità di rendere i programmi ancora più complesso in cui 1439 01:00:19,240 --> 01:00:22,830 questi due sono in qualche modo comunicanti tra loro. 1440 01:00:22,830 --> 01:00:25,260 >> Quindi, in quali direzioni si può prendere questo? 1441 01:00:25,260 --> 01:00:28,260 Beh, in set problema 0, in realtà, l'obiettivo è quello di 1442 01:00:28,260 --> 01:00:29,830 divertirsi con Scratch. 1443 01:00:29,830 --> 01:00:32,440 Per l'edizione hacker, avrete invece divertirsi con una più 1444 01:00:32,440 --> 01:00:35,850 versione sofisticata di Scratch chiamato BYOB, Build 1445 01:00:35,850 --> 01:00:38,040 I blocchi, ma l'idea è la stessa. 1446 01:00:38,040 --> 01:00:38,780 Sarete in grado - 1447 01:00:38,780 --> 01:00:39,710 Sì, era intenzionale. 1448 01:00:39,710 --> 01:00:42,450 E 'venuto da Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB è la versione pirata di questa edizione, ma entrambi 1450 01:00:45,200 --> 01:00:48,180 demografia, edizione standard e l'edizione per gli stessi hacker, il 1451 01:00:48,180 --> 01:00:50,940 obiettivo a portata di mano per la prossima settimana è in realtà solo di immergersi in 1452 01:00:50,940 --> 01:00:53,050 profondo, sporcarsi le mani con la programmazione, e fare 1453 01:00:53,050 --> 01:00:55,240 qualcosa di interessante, fare qualcosa di interattivo, si faccia 1454 01:00:55,240 --> 01:00:58,020 qualcosa di artistico, fare qualcosa di divertente in realtà 1455 01:00:58,020 --> 01:01:01,020 dimostrare, in modo che entro la fine della settimana, avrai un progetto, 1456 01:01:01,020 --> 01:01:03,770 non solo per la tua prima CS50 pset, ma avrete un 1457 01:01:03,770 --> 01:01:05,620 po 'di qualcosa che si può mostrare in Annenberg per 1458 01:01:05,620 --> 01:01:08,830 amici o addirittura parenti di caricarlo al sito del MIT. 1459 01:01:08,830 --> 01:01:11,760 E così come ho detto il Mercoledì, ci aspettiamo che il 90% della classe, 1460 01:01:11,760 --> 01:01:13,970 in generale, a fare le edizioni standard. 1461 01:01:13,970 --> 01:01:16,660 Rendetevi conto che c'è anche questo sbocco per quelli di voi che 1462 01:01:16,660 --> 01:01:18,990 altrimenti potrebbero trovarvi un po 'annoiato con le basi 1463 01:01:18,990 --> 01:01:21,650 e tanta voglia di tuffarsi dentro e realizzare una visione che già 1464 01:01:21,650 --> 01:01:25,380 hanno con precedenti conoscenze di questo più accogliente 1465 01:01:25,380 --> 01:01:26,240 ambiente. 1466 01:01:26,240 --> 01:01:29,030 >> Permettetemi quindi di tirare su un altro esempio che uno dei nostri ex 1467 01:01:29,030 --> 01:01:33,830 studenti qui fatto e raccontare un po 'di qualcosa attraverso il canto. 1468 01:01:33,830 --> 01:01:37,430 Che allo stesso modo, come questo gioca, pensare a come si va su 1469 01:01:37,430 --> 01:01:40,520 attuazione del presente programma usando proprio questi stessi 1470 01:01:40,520 --> 01:01:44,180 blocchi, un po 'di casualità, e una pseudo 1471 01:01:44,180 --> 01:01:46,010 po 'di canzone familiare. 1472 01:01:46,010 --> 01:01:47,910 Se potessimo alzare il volume solo un po '? 1473 01:01:47,910 --> 01:01:49,160 [MUSICA - "Piove Men" The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID MALAN: Questo è tutto per CS50. 1475 01:03:03,930 --> 01:03:05,860 Ci vediamo il Lunedi. 1476 01:03:05,860 --> 01:03:21,152 [Applausi]