1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [Muzica rock] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "fericiți împreună" Testoasele] 3 00:01:27,330 --> 00:01:30,170 DAVID MALAN: Astăzi, vom începe explorarea noastră a 4 00:01:30,170 --> 00:01:32,710 fundamentale ale informaticii și introducerea noastră, 5 00:01:32,710 --> 00:01:35,070 acum, la arta de programare, dintre care faptul că este 6 00:01:35,070 --> 00:01:36,260 doar un exemplu. 7 00:01:36,260 --> 00:01:39,600 Dar, în aceeași ordine de idei de rezolvare a problemelor, știu că 8 00:01:39,600 --> 00:01:42,080 Ziua lui CS50 Puzzle tradițională este mâine. 9 00:01:42,080 --> 00:01:45,190 Dacă nu ați încă am RSVP pentru acest eveniment, puteti merge la 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Puteți aduce echipe de câte doi sau trei sau patru. 12 00:01:50,940 --> 00:01:53,080 Veți fi contestată cu probleme, cum ar fi cea pe care o am văzut 13 00:01:53,080 --> 00:01:54,190 acolo la început. 14 00:01:54,190 --> 00:01:57,000 Toate problemele noi în acest an, dacă împărtășit anul trecut, și tu 15 00:01:57,000 --> 00:01:59,680 va avea o șansă de a câștiga, apoi câteva premii fabuloase. 16 00:01:59,680 --> 00:02:02,750 Printre ei, un Wii și unele, cum ar fi certificatele de cadou și, 17 00:02:02,750 --> 00:02:05,650 toate în timp ce agățat cu studenții și colegii CS50 18 00:02:05,650 --> 00:02:07,720 și pizza și Facebook. 19 00:02:07,720 --> 00:02:10,430 Deci, mai mult pe faptul că mâine, dacă doriți. 20 00:02:10,430 --> 00:02:13,330 >> Acest lucru este atunci CS50, pentru cei dintre voi alături de noi pentru 21 00:02:13,330 --> 00:02:14,510 prima dată. 22 00:02:14,510 --> 00:02:18,030 Și știu că acest curs este deosebit de determinat pentru a obține 23 00:02:18,030 --> 00:02:22,605 tine prin acest curs până la sfârșitul său final, moment în care 24 00:02:22,605 --> 00:02:24,270 va avea nu numai o înțelegere a acestor 25 00:02:24,270 --> 00:02:26,450 fundamentale ale științei calculator, dar va avea 26 00:02:26,450 --> 00:02:29,120 acest set de aptitudini foarte practic pe care le poate lua apoi înapoi la 27 00:02:29,120 --> 00:02:31,370 departament propriu, fie că este vorba științe inginerești, 28 00:02:31,370 --> 00:02:33,570 matematici aplicate, științele fizice, naturale 29 00:02:33,570 --> 00:02:34,780 știință, sau similar. 30 00:02:34,780 --> 00:02:37,030 Într-adevăr, ceea ce este atât de interesant despre știință de calculator aceste 31 00:02:37,030 --> 00:02:39,900 de zile este faptul că acesta este doar atât de aplicabilă 32 00:02:39,900 --> 00:02:40,990 tot felul de domenii. 33 00:02:40,990 --> 00:02:46,210 Și chiar dacă astăzi, vom zgâria doar suprafața unui 34 00:02:46,210 --> 00:02:49,020 limbaj de programare foarte tradițional cunoscut sub numele de C, vă vom 35 00:02:49,020 --> 00:02:51,040 în loc să se uite la ceva numit Scratch, ceva cu 36 00:02:51,040 --> 00:02:53,420 care acest poveste de dragoste cookie a fost pus în aplicare de către unul dintre dvs. 37 00:02:53,420 --> 00:02:57,020 predecesorii în ultimii ani, să spună povești, pentru a crea jocuri, 38 00:02:57,020 --> 00:03:00,060 pentru a crea artă interactivă, precum și pentru a începe efectiv să-și încheie nostru 39 00:03:00,060 --> 00:03:02,240 mințile în jurul unele dintre constructe fundamentale care 40 00:03:02,240 --> 00:03:05,390 stau la baza de programare, dar într-un context, după cum veți vedea, asta e 41 00:03:05,390 --> 00:03:09,140 mult mai puțin înfricoșător, care este mult mai puțin arcane, decât veți vedea 42 00:03:09,140 --> 00:03:10,140 înainte de timp. 43 00:03:10,140 --> 00:03:12,410 Și dau seama, de asemenea, pentru cei dintre voi doar alaturi de noi acest 44 00:03:12,410 --> 00:03:16,170 semestru, frazele pe care am terminat prelegerea de miercuri, 45 00:03:16,170 --> 00:03:20,260 nu este atât de important în cazul în care va ajunge relativ la dvs. 46 00:03:20,260 --> 00:03:22,950 colegii din această clasă, dar în cazul în care, până la sfârșitul semestrului lui 47 00:03:22,950 --> 00:03:27,190 în săptămâna 11, ajung relativ la tine chiar în ziua de azi. 48 00:03:27,190 --> 00:03:32,000 >> Deci, fără alte formalități, acesta este, de asemenea, demn de remarcat faptul că 49 00:03:32,000 --> 00:03:34,450 cei mai puțin confortabile, cele undeva la mijloc, sunt 50 00:03:34,450 --> 00:03:36,825 De asemenea, prin proiectarea acestui curs, nu cu orice dezavantaj 51 00:03:36,825 --> 00:03:38,760 vis-a-vis de cele mai confortabile 52 00:03:38,760 --> 00:03:39,920 vin în această clasă. 53 00:03:39,920 --> 00:03:41,810 După cum veți vedea în următoarele săptămâni să vină, avem diferite 54 00:03:41,810 --> 00:03:44,600 piese de fundal spate disparate, secțiuni pentru cei 55 00:03:44,600 --> 00:03:46,500 mai putin confortabil, mai confortabil, cele undeva 56 00:03:46,500 --> 00:03:47,250 între. 57 00:03:47,250 --> 00:03:49,520 După cum veți vedea în acest weekend și săptămâna viitoare, două versiuni ale 58 00:03:49,520 --> 00:03:52,410 cele mai multe seturi de probleme, atât în ​​ediția standard, și așa hacker 59 00:03:52,410 --> 00:03:55,390 pe care le toți pot auto-selecta jos calea cu care 60 00:03:55,390 --> 00:03:56,615 sunt cele mai confortabile. 61 00:03:56,615 --> 00:03:58,770 >> Așa că astăzi, am arunca cu capul în această programare 62 00:03:58,770 --> 00:04:00,060 limbaj numit Scratch. 63 00:04:00,060 --> 00:04:02,250 Este un limbaj de programare grafică, și totuși are 64 00:04:02,250 --> 00:04:04,500 aceleași caracteristici ale unora dintre limbile nivel mai ridicat vom 65 00:04:04,500 --> 00:04:07,050 explora mai târziu în semestrul, printre care și C 66 00:04:07,050 --> 00:04:08,670 JavaScript și PHP. 67 00:04:08,670 --> 00:04:11,890 Dar o să ne permită să evite unele dintre distrageri 68 00:04:11,890 --> 00:04:14,890 de timpuriu de sintaxă, lucruri cum ar fi punct și virgulă, paranteze, 69 00:04:14,890 --> 00:04:17,720 și alte detalii arcane că, la prima vedere, nu sunt doar 70 00:04:17,720 --> 00:04:19,916 la toate intelectual interesant și au tendința de a obține, în 71 00:04:19,916 --> 00:04:22,310 drumul de la o înțelegere fundamentală. 72 00:04:22,310 --> 00:04:24,870 În ceea ce privește structura de sprijin acum înainte, a realizat acest 73 00:04:24,870 --> 00:04:27,570 instrument, CS50 Discuta, care va fi legat în cursul lui 74 00:04:27,570 --> 00:04:30,320 site-ul mai târziu astăzi, este un forum de discuții online, în 75 00:04:30,320 --> 00:04:32,480 care vei fi capabil de a pune întrebări unul de celălalt și 76 00:04:32,480 --> 00:04:35,020 personal, și este, de asemenea, un instrument, după cum vom vedea săptămâna viitoare, 77 00:04:35,020 --> 00:04:37,240 pe care le vom folosi destul de integratedly în 78 00:04:37,240 --> 00:04:38,780 orelor de serviciu, precum și. 79 00:04:38,780 --> 00:04:41,670 Într-adevăr, orelor de program începe luni, și, sincer, prima 80 00:04:41,670 --> 00:04:43,930 săptămâni de ore de birou este cheia destul de scăzută. 81 00:04:43,930 --> 00:04:46,820 >> Nu cred că veți găsi tot ce Scratch inaccesibile. 82 00:04:46,820 --> 00:04:48,930 E destul de auto-explicative, după cum vom vedea, și așa mai departe ceea ce 83 00:04:48,930 --> 00:04:51,380 vom folosi pentru astăzi este de a extrage o parte din 84 00:04:51,380 --> 00:04:53,990 idei fundamentale care vor, apoi, de-a lungul persistă 85 00:04:53,990 --> 00:04:54,900 restul semestrului. 86 00:04:54,900 --> 00:04:57,980 Dar începând de luni, la 8:00 PM prin intermediul 23:00 va fi 87 00:04:57,980 --> 00:05:01,530 orelor de serviciu în Annenberg peste pauza de creier. 88 00:05:01,530 --> 00:05:04,490 Secționarea doi vor începe în această seară, așa cândva această 89 00:05:04,490 --> 00:05:07,260 week-end, du-te la cs50.net/section, și veți 90 00:05:07,260 --> 00:05:08,530 se cere o serie de întrebări. 91 00:05:08,530 --> 00:05:10,290 Printre ei, cum ați descrie dvs. 92 00:05:10,290 --> 00:05:12,040 nivelul de confort ca de azi? 93 00:05:12,040 --> 00:05:14,450 Nu e nici o regulă greu, rapid cu privire la cine e în care găleată. 94 00:05:14,450 --> 00:05:17,170 E doar un fel de lucru pe care știi, probabil, dacă 95 00:05:17,170 --> 00:05:20,280 sunt printre cei mai puțin confortabil sau în alt mod. 96 00:05:20,280 --> 00:05:21,350 >> Și acum, walkthroughs. 97 00:05:21,350 --> 00:05:24,020 Setul caietul de sarcini problemă pentru această săptămână, atât standard, 98 00:05:24,020 --> 00:05:28,560 și ediția hacker deopotrivă, este online la cs50.net ca de acum. 99 00:05:28,560 --> 00:05:31,500 Și veți vedea că prima dintre aceste ediții, 100 00:05:31,500 --> 00:05:33,940 Versiunea standard în fiecare săptămână, este însoțită de ceva ce am 101 00:05:33,940 --> 00:05:36,550 apela un walkthrough cod, o sesiune condusă de unul dintre 102 00:05:36,550 --> 00:05:39,100 colegii de curs de predare pentru a vă ghida prin, furnizează 103 00:05:39,100 --> 00:05:42,290 sfaturi cu privire la, și veți obține pe o cale special atunci când vine vorba de 104 00:05:42,290 --> 00:05:44,150 de a începe aceste seturi de probleme. 105 00:05:44,150 --> 00:05:46,790 Deci, cu fiecare dintre aceste probleme seturi, daca esti vreodata doresc 106 00:05:46,790 --> 00:05:50,250 pentru tine în cazul în care încep, începe cu aceste 107 00:05:50,250 --> 00:05:50,890 walkthroughs. 108 00:05:50,890 --> 00:05:53,450 Și, de fapt, permiteți-mi să introducă Zamyla Chan, această 109 00:05:53,450 --> 00:05:55,870 coleg de an de predare, care va conduce fiecare 110 00:05:55,870 --> 00:05:56,910 unul dintre aceste walkthroughs. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Aplauze] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: Oh, bună, toată lumea. 114 00:06:03,975 --> 00:06:05,130 Numele meu este Zamyla. 115 00:06:05,130 --> 00:06:08,250 Sunt o inginerie junior studiază în Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Dar am încerca și în formă în cât mai multe cursuri de informatică ca am 117 00:06:10,890 --> 00:06:13,350 poate, motiv pentru care eu sunt foarte incantata sa fie conduce această 118 00:06:13,350 --> 00:06:14,590 an walkthroughs. 119 00:06:14,590 --> 00:06:16,950 Walkthroughs, pentru mine, au fost o parte esențială a CS50 meu 120 00:06:16,950 --> 00:06:17,910 experiență. 121 00:06:17,910 --> 00:06:22,710 În timpul walkthrough, pentru fiecare p-set, vom trece prin 122 00:06:22,710 --> 00:06:25,580 problema stabilit împreună, uita-te peste problemele, un fel de 123 00:06:25,580 --> 00:06:27,360 împărțiți-le în sus, în mușcăturile de gestionat. 124 00:06:27,360 --> 00:06:28,990 Îți dau sfaturi, tehnici, pentru a obține 125 00:06:28,990 --> 00:06:30,820 Noțiuni de bază și prin intermediul. 126 00:06:30,820 --> 00:06:33,510 Sper să vă văd pe toți la walkthroughs. 127 00:06:33,510 --> 00:06:34,720 Dacă nu se poate face în persoană, atunci 128 00:06:34,720 --> 00:06:36,580 vă rugăm să ton în on-line. 129 00:06:36,580 --> 00:06:36,840 >> DAVID MALAN: Excelent. 130 00:06:36,840 --> 00:06:37,950 Mulțumesc, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Deci dau seama că walkthroughs sunt, într-adevăr, într-o vineri 132 00:06:40,870 --> 00:06:43,110 dupa-amiaza, dar acest lucru este în mod deliberat de proiectare, astfel încât 133 00:06:43,110 --> 00:06:45,750 chiar daca nu ar participa mai degrabă de clasă pe o zi de vineri 134 00:06:45,750 --> 00:06:48,490 după-amiază, videoclipuri vor fi tot mai repede peste 135 00:06:48,490 --> 00:06:48,990 week-end. 136 00:06:48,990 --> 00:06:51,880 Deci dau seama că cs50.net va fi tot a lui Zamyla 137 00:06:51,880 --> 00:06:53,130 walkthroughs. 138 00:06:54,800 --> 00:06:56,890 Și că nu există data de astăzi și 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 Și unii dintre semenii didactice au, de asemenea, pregătite 141 00:07:00,080 --> 00:07:03,250 unele remarci pentru tine, în contumacie pentru a vă oferi un pic de 142 00:07:03,250 --> 00:07:06,760 perspectiva a ceea ce experiența lor și intrarea în 143 00:07:06,760 --> 00:07:08,990 ies din CS50 a fost ca. 144 00:07:08,990 --> 00:07:11,250 Deci, dacă am putea dim luminile pentru o clipă, îți dau 145 00:07:11,250 --> 00:07:18,100 unii dintre angajații CS50 lui. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: Am luat CS50 anul trecut, ca un boboc în 147 00:07:20,440 --> 00:07:22,880 cădea, și a suflat absolut mintea mea. 148 00:07:22,880 --> 00:07:25,090 Nu am avut niciodata luat nici un fel de programare înainte de clase, 149 00:07:25,090 --> 00:07:26,380 și niciodată nu a venit cu nici o stiinta calculatoarelor 150 00:07:26,380 --> 00:07:27,320 experiență la toate. 151 00:07:27,320 --> 00:07:29,240 Și doar, am auzit noutăți despre clasa și 152 00:07:29,240 --> 00:07:30,050 a decis să-l ia. 153 00:07:30,050 --> 00:07:31,780 >> JULIA MITELMAN: A fost foarte distractiv, foarte angajarea. 154 00:07:31,780 --> 00:07:33,480 Eu încă, la această zi - 155 00:07:33,480 --> 00:07:36,560 Tocmai am vazut am dischetă care ne-a dat lui David 156 00:07:36,560 --> 00:07:38,140 în prima noastră zi de curs. 157 00:07:38,140 --> 00:07:40,020 Aș fi atârnat pe peretele meu. 158 00:07:40,020 --> 00:07:42,410 Aceasta este, probabil, un pic tocilar, dar am atârnat în pe pagina mea 159 00:07:42,410 --> 00:07:46,930 perete în timpul clasei ca un memento de cât de mișto a fost. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: E atât de jenant. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: Computer știința este ceva ce 162 00:07:50,770 --> 00:07:52,370 Ar trebui să încercați chiar daca nu esti unul pentru 163 00:07:52,370 --> 00:07:54,980 științele tradiționale. 164 00:07:54,980 --> 00:07:58,510 E propria sa experiență, și CS50 va asigurați-vă că sunteți 165 00:07:58,510 --> 00:08:01,520 sprijinite bine prin ea, cu armata sa veritabila de TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI NAHM: l-am luat ca un boboc, și așa am făcut o mulțime 167 00:08:03,700 --> 00:08:04,215 de prieteni noi. 168 00:08:04,215 --> 00:08:07,170 De asemenea, am fost introdus la această concentrare în întregime și 169 00:08:07,170 --> 00:08:10,770 întregii școli de inginerie, și așa am foarte recomanda 170 00:08:10,770 --> 00:08:14,360 și vă urez bun venit în familia noastră CS50. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv YACOBY: CS50 doar te învață cum să utilizeze instrumentele 172 00:08:17,510 --> 00:08:19,210 care sunt accesibile pe scară largă. 173 00:08:19,210 --> 00:08:21,840 Ai nevoie doar de un laptop, aveți nevoie de un browser web, și tu 174 00:08:21,840 --> 00:08:26,030 Trebuie să învețe să scrie un cod, și puteți construi cu adevărat 175 00:08:26,030 --> 00:08:27,400 lucruri îngrijite. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: E atat de cool pentru a fi în măsură să facă ceva 177 00:08:31,660 --> 00:08:34,580 și au oamenii o folosesc și să-l văd oameni, și asta e 178 00:08:34,580 --> 00:08:35,900 ceea ce am place foarte mult despre asta. 179 00:08:35,900 --> 00:08:37,429 >> TIM McLaughlin: - un sentiment de comunitate, cred că, în acest 180 00:08:37,429 --> 00:08:39,470 mai mult decât orice alt curs le-am luat până acum desigur. 181 00:08:39,470 --> 00:08:41,350 Nu te lua doar un alt - 182 00:08:41,350 --> 00:08:42,740 nu te umple o altă cerință. 183 00:08:42,740 --> 00:08:45,310 Tu nu esti doar de gând să merg la cursuri și secțiune. 184 00:08:45,310 --> 00:08:49,630 Dar ce te faci de tone de lucruri care sunt toate despre 185 00:08:49,630 --> 00:08:51,560 programare și totul despre tehnologie, dar aceasta nu 186 00:08:51,560 --> 00:08:53,090 Chiar simt ca o clasă cele mai multe ori. 187 00:08:53,090 --> 00:08:55,012 >> DOWNS Travis: Și în prima zi, au înmânat tort, și 188 00:08:55,012 --> 00:08:56,215 Am fost imediat vândut. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: bomboane gratuit și pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - indiferent de nivelul de interes, cred 191 00:08:59,820 --> 00:09:05,170 că CS50, te vei distra, și veți fi intelectual 192 00:09:05,170 --> 00:09:06,070 stimulat. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: Este întotdeauna o petrecere în clasă, și este o 194 00:09:07,926 --> 00:09:09,990 petrecere în fiecare noapte de lucru pe dumneavoastră p-set. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: De fiecare dată când termin un set de probleme, vă 196 00:09:11,880 --> 00:09:13,710 se vor simți ca și cum ai terminat un proiect. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: A fost primul an de facultate, și am fost făcut cumpărături. 198 00:09:16,580 --> 00:09:19,030 Am avut patru clase gata mele, și am fost în Annenberg. 199 00:09:19,030 --> 00:09:21,670 Și am ciocni într-un prieten, iar el spune, hei, eu sunt la cumpărături 200 00:09:21,670 --> 00:09:24,330 această clasă numit CS50, și tu ar trebui să vină cu mine. 201 00:09:24,330 --> 00:09:28,150 Sfârșit a lua-o ca toamna, iar dupa acea clasă, am 202 00:09:28,150 --> 00:09:30,510 gândit că am de gând să minore în CS. 203 00:09:30,510 --> 00:09:33,760 Dar iată-mă, trei ani mai târziu, încă studiază calculator 204 00:09:33,760 --> 00:09:36,680 știință și de fapt, o fac ca o mare, și am iubit fiecare 205 00:09:36,680 --> 00:09:37,780 moment de ea. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: Nu am nici o idee. 207 00:09:46,408 --> 00:09:48,060 >> ALI NAHM: Să vedem. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: Nebunia. 209 00:09:49,200 --> 00:09:50,610 >> DIFUZOR 1: Mă simt ca și cum mi-ar fi foarte clișeu. 210 00:09:50,610 --> 00:09:52,530 Aș spune doar, ca, minunat. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv YACOBY: Accesibilitate. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: bomboane gratuit și pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: Nu se poate refuza o clasa care mainile tort. 214 00:09:57,310 --> 00:09:58,510 >> TIM McLaughlin: energetica. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Shekhawat: esențială. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Lasă-mă să gândesc la un răspuns. 217 00:10:02,636 --> 00:10:04,480 Cred că am găsit ceva. 218 00:10:04,480 --> 00:10:07,092 Oh, Doamne. 219 00:10:07,092 --> 00:10:13,370 Da, numele meu e Rob Bowden, iar acest lucru este CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Aplauze] 221 00:10:20,810 --> 00:10:23,390 DAVID MALAN: În regulă, așa că hai să încep să picteze o imagine 222 00:10:23,390 --> 00:10:26,230 de direcția în care putem merge, și să introducă 223 00:10:26,230 --> 00:10:28,190 acest concept cunoscut sub numele de aici, pseudocod. 224 00:10:28,190 --> 00:10:29,560 Deci pseudocod nu este o programare 225 00:10:29,560 --> 00:10:30,810 limba în sine. 226 00:10:30,810 --> 00:10:33,250 Nu e nimic tehnic în sine, dar e doar un fel de 227 00:10:33,250 --> 00:10:36,490 modul general de a te exprima destul de precis, 228 00:10:36,490 --> 00:10:39,730 destul de algoritmic, destul de procedural, dar fără 229 00:10:39,730 --> 00:10:42,570 având să vă faceți griji cu privire la ceea ce limba te exprima 230 00:10:42,570 --> 00:10:43,150 te inch 231 00:10:43,150 --> 00:10:46,280 E un model de limba engleză și limbaje de programare, cu 232 00:10:46,280 --> 00:10:48,790 care se întâmplă să fie familiarizați, astfel încât să putem începe 233 00:10:48,790 --> 00:10:50,600 scris acest fel de lucruri ca vom merge. 234 00:10:50,600 --> 00:10:54,450 Și, de fapt, Iosif, aș putea să te împrumuta până pe scenă pentru a fi 235 00:10:54,450 --> 00:10:55,490 scrib aici? 236 00:10:55,490 --> 00:11:00,130 Am plecat înainte aici, în avans și uitat să afișezi 237 00:11:00,130 --> 00:11:02,920 pe unele șosete astăzi, iar acest lucru va fi printre noi mai mult 238 00:11:02,920 --> 00:11:03,780 exemple ridicole. 239 00:11:03,780 --> 00:11:04,580 >> Acum, am nevoie de tine aici. 240 00:11:04,580 --> 00:11:05,630 Voi face parte șosete. 241 00:11:05,630 --> 00:11:08,040 Deci, aici avem un pic de notițe. 242 00:11:08,040 --> 00:11:09,940 Aceasta este literalmente doar TextEdit într-un Mac. 243 00:11:09,940 --> 00:11:12,270 Noi nu suntem de fapt de gând să scrie un program de runnable, dar 244 00:11:12,270 --> 00:11:14,220 suntem doar de gând să înceapă schița pe bază de pseudocod 245 00:11:14,220 --> 00:11:17,830 pe unele dintre sfat le furnizați la mine aici. 246 00:11:17,830 --> 00:11:20,760 Deci, aici este meu gramada șosete la domiciliu. 247 00:11:20,760 --> 00:11:23,320 Nu am nici ciorapi pe când mă trezesc dimineața, iar noi acum 248 00:11:23,320 --> 00:11:26,280 Trebuie să scrie un program, un algoritm de felul, cu care 249 00:11:26,280 --> 00:11:27,900 pentru a obține aceste șosete pe picioarele mele. 250 00:11:27,900 --> 00:11:30,860 Și de-a lungul drum, hai sa vedem daca putem excursie de peste, sau se confruntă, 251 00:11:30,860 --> 00:11:32,860 unele dintre ideile pe care ai de gând să aibă de a începe 252 00:11:32,860 --> 00:11:35,470 gândesc mult mai în serios atunci când programarea 253 00:11:35,470 --> 00:11:37,950 ca nu cumva programele nu se comporta la fel de destinat. 254 00:11:37,950 --> 00:11:39,580 >> Așa că stau aici. 255 00:11:39,580 --> 00:11:41,180 Am gramada mea de șosete. 256 00:11:41,180 --> 00:11:43,780 Care e primul lucru pe care o ființă umană ar fi rezonabil 257 00:11:43,780 --> 00:11:46,600 fac atunci când scopul este de a pune pe o pereche de șosete? 258 00:11:46,600 --> 00:11:49,190 Cineva să-mi dai un pas, și numai un pas. 259 00:11:49,190 --> 00:11:49,796 Da? 260 00:11:49,796 --> 00:11:50,690 PUBLICUL: Apleacă jos. 261 00:11:50,690 --> 00:11:54,290 DAVID MALAN: aplecați, Ok. 262 00:11:54,290 --> 00:11:55,540 Pasul doi. 263 00:11:59,975 --> 00:12:00,645 Pasul doi. 264 00:12:00,645 --> 00:12:01,840 PUBLICUL: Ridică șosete ta. 265 00:12:01,840 --> 00:12:03,220 DAVID MALAN: Ridică șosete ta. 266 00:12:03,220 --> 00:12:07,610 Bine, ambiguitate atat de usoara aici, și aceasta este una dintre primele 267 00:12:07,610 --> 00:12:09,380 pietre de poticnire pe care suntem ar trebui să în mod deliberat 268 00:12:09,380 --> 00:12:10,290 întâlni aici. 269 00:12:10,290 --> 00:12:14,110 E un pic cam ambiguu, astfel încât până ia șosetele dumneavoastră. 270 00:12:14,110 --> 00:12:17,425 Bine, voi lua asta, dar un calculator, realizat în doar o 271 00:12:17,425 --> 00:12:20,420 bit, nu este de gând să aibă acest fel de instinct uman la doar 272 00:12:20,420 --> 00:12:21,490 alege cel mai apropiat. 273 00:12:21,490 --> 00:12:23,590 Vom avea să înceapă, înainte de mult timp, exprimându- 274 00:12:23,590 --> 00:12:24,610 ne mai exact. 275 00:12:24,610 --> 00:12:26,600 >> În regulă, deci pasul doi este ridica ciorap ta. 276 00:12:26,600 --> 00:12:27,520 Ne vom lua. 277 00:12:27,520 --> 00:12:28,620 Pasul trei. 278 00:12:28,620 --> 00:12:29,532 În spate. 279 00:12:29,532 --> 00:12:30,900 PUBLICUL: Găsiți o pereche de potrivire. 280 00:12:30,900 --> 00:12:32,060 DAVID MALAN: Găsiți pereche de potrivire. 281 00:12:32,060 --> 00:12:34,740 Ok, deci asta e bine. 282 00:12:34,740 --> 00:12:35,650 Am avut de a alege acest ciorap. 283 00:12:35,650 --> 00:12:39,200 Deci, scopul este de a găsi o șosetă de potrivire, acum, dar ceea ce 284 00:12:39,200 --> 00:12:39,990 înseamnă asta? 285 00:12:39,990 --> 00:12:42,130 Un om rezonabil fiind, la fel ca miercuri, când am 286 00:12:42,130 --> 00:12:44,700 știut cum să găsească Mike Smith într-o carte de telefon, doar un fel de 287 00:12:44,700 --> 00:12:45,640 a plecat cu instinctul lor. 288 00:12:45,640 --> 00:12:49,220 Dar aici, e evident asta șosete aici, dar un computer 289 00:12:49,220 --> 00:12:51,350 nu va fi atât de instinctiv. 290 00:12:51,350 --> 00:12:53,830 Un computer este de gând să aibă o colecție de biți, așa cum am 291 00:12:53,830 --> 00:12:55,380 discutat, miercuri, și acestea sunt 292 00:12:55,380 --> 00:12:56,710 organizat într-un fel în memorie. 293 00:12:56,710 --> 00:13:00,400 Dar ideea este că un computer are doar capacitatea de 294 00:13:00,400 --> 00:13:03,390 să se uite la lucrurile unul câte unul, și, de fapt, chiar am 295 00:13:03,390 --> 00:13:05,980 oameni - chiar dacă se simte ca și cum m-am uitat în jos și o ruptură 296 00:13:05,980 --> 00:13:08,900 secundă mai târziu Știu unde este șosete, creierul meu și ochii mei 297 00:13:08,900 --> 00:13:12,000 probabil ai o rapidă degresat a acestor șosete, și apoi fixat 298 00:13:12,000 --> 00:13:13,400 pe cel în cauză. 299 00:13:13,400 --> 00:13:15,780 >> Deci, dacă am fi mai deliberată acum ca un computer, 300 00:13:15,780 --> 00:13:17,780 cum pot că acest pereche? 301 00:13:17,780 --> 00:13:18,890 Ei bine, trebuie să itera. 302 00:13:18,890 --> 00:13:21,440 Trebuie să probabil bucla peste mizeria asta de șosete pe 303 00:13:21,440 --> 00:13:25,760 podea prin care spun ceva de genul PENTRU FIECARE ciorap, îl iau 304 00:13:25,760 --> 00:13:30,195 în sus, și dacă aceeași formă și mărime ca și celălalt, ATUNCI 305 00:13:30,195 --> 00:13:32,150 dot, dot, dot, vom continua povestea. 306 00:13:32,150 --> 00:13:34,430 Deci, pentru fiecare ciorap, așa că am ridica asta. 307 00:13:34,430 --> 00:13:36,520 Am verificat este egală cu această asta. 308 00:13:36,520 --> 00:13:38,250 Nu e, așa că am pus deoparte partea. 309 00:13:38,250 --> 00:13:39,220 Apoi am repeta din nou. 310 00:13:39,220 --> 00:13:40,340 Este acest egal unul? 311 00:13:40,340 --> 00:13:42,010 Nu, nu e, așa că am pus-o deoparte. 312 00:13:42,010 --> 00:13:42,710 Este aceasta? 313 00:13:42,710 --> 00:13:43,200 Nu. 314 00:13:43,200 --> 00:13:43,670 Acesta? 315 00:13:43,670 --> 00:13:44,520 Nu, și așa mai departe. 316 00:13:44,520 --> 00:13:48,730 Și apoi în cele din urmă, sper, voi întâlni acest ciorap aici. 317 00:13:48,730 --> 00:13:51,350 Deci, dacă e aceeași formă, dimensiune, ia-o. 318 00:13:51,350 --> 00:13:53,980 >> Și acum, ce-ar fi următorul nostru pas aici? 319 00:13:53,980 --> 00:13:54,402 Da? 320 00:13:54,402 --> 00:13:56,090 PUBLICUL: Identificarea dreapta la stânga. 321 00:13:56,090 --> 00:13:58,980 DAVID MALAN: Bine, să identifice dreapta și la stânga, așa 322 00:13:58,980 --> 00:14:01,870 din fericire, acest tip de lucrări. 323 00:14:01,870 --> 00:14:04,020 Un pic simetric, sau tocmai am purtat-le în acest fel. 324 00:14:04,020 --> 00:14:07,020 În regulă, așa că am identificat corect. 325 00:14:07,020 --> 00:14:09,980 Și acum, înainte de a continua, permiteți-mi să subliniez ceea ce lui Iosif 326 00:14:09,980 --> 00:14:12,890 făcut aici, ca un fel de programator versat. 327 00:14:12,890 --> 00:14:15,800 Deci, din nou, nu e singura cale de a face acest, dar dincolo de doar 328 00:14:15,800 --> 00:14:18,480 numerotarea liniilor, Joseph a început deja să facă acest lucru 329 00:14:18,480 --> 00:14:19,460 un fel de indentare. 330 00:14:19,460 --> 00:14:21,950 Într-adevăr, aceasta este o convenție foarte frecvente în programare, 331 00:14:21,950 --> 00:14:26,110 prin care, atunci când faci ceva iterativ, looping stil, așa cum 332 00:14:26,110 --> 00:14:28,480 suntem ceea ce presupune cu sintagma engleză "PENTRU FIECARE 333 00:14:28,480 --> 00:14:31,090 ciorap, "convenția în pseudocod și, după cum vom vedea, 334 00:14:31,090 --> 00:14:33,410 limbi normale de programare, este la doar liniuță. 335 00:14:33,410 --> 00:14:36,240 A lovit bara de spațiu de câteva ori, a lovit tasta Tab sau similare, 336 00:14:36,240 --> 00:14:40,660 astfel încât imbricate sub "PENTRU FIECARE ciorap" este bucata de 337 00:14:40,660 --> 00:14:43,430 lucruri de care aveți nevoie pentru a face ca un rezultat al acestei bucla. 338 00:14:43,430 --> 00:14:45,940 Deci, asta e tot ce-a de transport semantic. 339 00:14:45,940 --> 00:14:48,620 Acum Între timp, "Dacă e aceeași formă și mărime," 340 00:14:48,620 --> 00:14:51,590 faptul că "Ia-l" este indentat în continuare înseamnă doar 341 00:14:51,590 --> 00:14:54,370 asta e singurul lucru pe care ar trebui să faceți în cazul în care această condiție, 342 00:14:54,370 --> 00:14:59,770 în cazul în care ramură, care furculiță în drum, este de fapt adevărat. 343 00:14:59,770 --> 00:15:02,130 >> Deci, acum aici, suntem la pasul patru, să identifice dreapta și la stânga. 344 00:15:02,130 --> 00:15:03,410 Am identificat drept. 345 00:15:03,410 --> 00:15:05,150 Dă-mi pasul cinci. 346 00:15:05,150 --> 00:15:07,880 Și punct de vedere tehnic, am putea numi cu adevarat 347 00:15:07,880 --> 00:15:09,510 pentru fiecare lucru - 348 00:15:09,510 --> 00:15:11,450 ar trebui să numeroteze, probabil, în cazul în care toate liniile 349 00:15:11,450 --> 00:15:12,190 vom face acest lucru. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [inaudibil] 351 00:15:14,006 --> 00:15:14,610 DAVID MALAN: [inaudibil]? 352 00:15:14,610 --> 00:15:16,070 Bine, bine, bine, vom face cum vrei tu. 353 00:15:16,070 --> 00:15:19,590 În regulă, deci pasul cinci, cum facem șosete corect? 354 00:15:19,590 --> 00:15:22,310 Cum procedăm viitoare, aici? 355 00:15:22,310 --> 00:15:22,730 Da? 356 00:15:22,730 --> 00:15:24,300 PUBLICUL: Ridicați piciorul drept. 357 00:15:24,300 --> 00:15:27,100 DAVID MALAN: Ridicați piciorul drept, Ok. 358 00:15:27,100 --> 00:15:29,330 Pasul șase? 359 00:15:29,330 --> 00:15:30,728 Rapid. 360 00:15:30,728 --> 00:15:31,202 Da. 361 00:15:31,202 --> 00:15:33,100 PUBLICUL: Găsiți un capăt deschis al șosete. 362 00:15:33,100 --> 00:15:34,440 DAVID MALAN: Bine, găsiți capătul deschis al șosete. 363 00:15:34,440 --> 00:15:34,840 Atât de bun. 364 00:15:34,840 --> 00:15:37,180 Deci, aici, sincer, un instinct foarte comun ar fi doar 365 00:15:37,180 --> 00:15:39,880 pus pe ciorap dreapta, dar asta este destul de ambiguu. 366 00:15:39,880 --> 00:15:42,750 Cu excepția cazului în computer sau umană știe exact ce înseamnă asta, 367 00:15:42,750 --> 00:15:45,160 nu va fi de a executa că, așa aici, am 368 00:15:45,160 --> 00:15:46,520 găsit deschiderea stocului. 369 00:15:46,520 --> 00:15:48,222 Pasul șapte? 370 00:15:48,222 --> 00:15:49,700 PUBLICUL: Atingeți degetele de la picioare. 371 00:15:49,700 --> 00:15:51,070 DAVID MALAN: degetele de la picioare Touch. 372 00:15:51,070 --> 00:15:53,546 Ok, deci acum mergem - 373 00:15:53,546 --> 00:15:56,480 În regulă, mă duc să iau niște libertăți aici. 374 00:15:56,480 --> 00:15:57,110 Multumesc. 375 00:15:57,110 --> 00:15:59,210 Pasul opt? 376 00:15:59,210 --> 00:16:00,060 Pune pe ciorap. 377 00:16:00,060 --> 00:16:02,060 Ok, deci acum, cred că suntem destul de aproape pentru a sorta de ia 378 00:16:02,060 --> 00:16:03,480 aceasta la domiciliu. 379 00:16:03,480 --> 00:16:05,980 În regulă, deci asta se duce în sus. 380 00:16:05,980 --> 00:16:07,950 Voi lua niște libertăți cu ceea ce înseamnă, de fapt. 381 00:16:07,950 --> 00:16:08,920 Pune soseta pe. 382 00:16:08,920 --> 00:16:10,853 În regulă, acum pasul nouă? 383 00:16:10,853 --> 00:16:11,740 PUBLICUL: Pune piciorul jos. 384 00:16:11,740 --> 00:16:12,510 DAVID MALAN: Mulțumesc. 385 00:16:12,510 --> 00:16:15,610 Pasul nouă, pune piciorul jos, iar acum, putem repeta. 386 00:16:15,610 --> 00:16:19,540 Deci probabil, putem merge acum în pasul 10 si spun identifica 387 00:16:19,540 --> 00:16:21,960 a plecat ciorap, dar asta e, probabil deja făcut. 388 00:16:21,960 --> 00:16:24,100 >> Și așa, atunci, pot sorta a repeta acești pași. 389 00:16:24,100 --> 00:16:25,260 Dar acest tip de întrebare ridică. 390 00:16:25,260 --> 00:16:28,100 Înainte de a, ultima dată când am vrut să repete ceva, am 391 00:16:28,100 --> 00:16:30,730 a făcut-o iterativ, din nou și din nou, A pentru 392 00:16:30,730 --> 00:16:32,660 Fiecare buclă ca să spunem așa. 393 00:16:32,660 --> 00:16:36,420 Ar avea sens pentru a utiliza o buclă, în scopul de a gestiona atât 394 00:16:36,420 --> 00:16:38,470 stânga și dreapta șosete? 395 00:16:38,470 --> 00:16:40,460 Pentru că se simte ca și cum aceste operațiuni sunt destul de mult 396 00:16:40,460 --> 00:16:43,090 identice, cu excepția faptului că unul începe aici și unul 397 00:16:43,090 --> 00:16:44,850 Începe aici? 398 00:16:44,850 --> 00:16:47,400 Avem bucla, sau se poate menține la doar câțiva pași de scris 399 00:16:47,400 --> 00:16:48,745 10 și 11 și 12? 400 00:16:48,745 --> 00:16:50,540 PUBLICUL: Buclă. 401 00:16:50,540 --> 00:16:52,240 >> DAVID MALAN: Ok, deci bucla. 402 00:16:52,240 --> 00:16:54,730 Eu de fapt ar fi putut spune doar continui. 403 00:16:54,730 --> 00:16:55,720 Deci, de ce este acest caz? 404 00:16:55,720 --> 00:16:57,940 Ei bine, aceasta este de fapt primul nostru non-evidente 405 00:16:57,940 --> 00:17:01,210 deciziile de design, și, de fapt, una dintre valorile cu care 406 00:17:01,210 --> 00:17:03,990 vom începe să evalueze, pentru noi înșine și pentru tine, 407 00:17:03,990 --> 00:17:06,780 Calitatea unui program este doar cât de bine conceput este. 408 00:17:06,780 --> 00:17:09,619 Ați făcut cantitatea minimă de muncă necesară pentru a 409 00:17:09,619 --> 00:17:12,480 a face o treabă mai repede, fie din punct de vedere 410 00:17:12,480 --> 00:17:15,430 de timp sau în termeni de timp a calculatorului de alergare? 411 00:17:15,430 --> 00:17:17,589 Câte operații durează să execute? 412 00:17:17,589 --> 00:17:20,180 Deci, fără îndoială, aceasta este o oportunitate pentru o buclă, deoarece 413 00:17:20,180 --> 00:17:22,829 de îndată ce am începe copierea și lipirea, ca Joseph eficient 414 00:17:22,829 --> 00:17:25,010 ar începe să faci într-o clipă, tu ești un fel de pierde dvs. 415 00:17:25,010 --> 00:17:27,140 timp, și ești de două ori expresiv. 416 00:17:27,140 --> 00:17:30,260 >> Dar, în același timp, acestea sunt într-adevăr numai două specială 417 00:17:30,260 --> 00:17:31,890 cazuri, la stânga și la dreapta. 418 00:17:31,890 --> 00:17:34,930 Și întrucât înainte, am putea avea 10 sau 20 sau mai multe șosete în 419 00:17:34,930 --> 00:17:37,960 o gramada, ea face cu siguranță sens a nu avea 50 de linii de 420 00:17:37,960 --> 00:17:40,180 Codul spunând verifica acest ciorap, apoi următoarea, 421 00:17:40,180 --> 00:17:41,300 apoi pe următorul. 422 00:17:41,300 --> 00:17:43,450 Uite, e un pic mai puțin evidentă, și aș propus 423 00:17:43,450 --> 00:17:44,390 că am putea merge, fie un fel. 424 00:17:44,390 --> 00:17:46,720 Am putea avea, fie că bucla, deși numai bucle 425 00:17:46,720 --> 00:17:50,620 de două ori, sau am putea copia pur și simplu și să lipiți doar un pic 426 00:17:50,620 --> 00:17:53,270 aici, în scopul de a face o treabă. 427 00:17:53,270 --> 00:17:55,210 Dar acest program este buggy, ca să spunem așa. 428 00:17:55,210 --> 00:17:59,120 S-ar putea avea unele greșeli, erori, sau cazuri de colț, astfel încât să 429 00:17:59,120 --> 00:18:00,860 Vorbim, pe care nu am anticipat într-adevăr. 430 00:18:00,860 --> 00:18:03,400 Nimic nu a mers greșit de data asta, dar ce-ar fi putut mers prost 431 00:18:03,400 --> 00:18:06,100 în timp ce executa acest program? 432 00:18:06,100 --> 00:18:07,040 PUBLICUL: Nu aveți nici o șosete. 433 00:18:07,040 --> 00:18:08,980 >> DAVID MALAN: Deci, ar putea exista nici un fel de sosete acolo. 434 00:18:08,980 --> 00:18:10,380 Deci, haideți să considerăm acest caz colț. 435 00:18:10,380 --> 00:18:14,670 Deci, dacă am putea derula înapoi la pasul unu, pasul astfel unul a fost 436 00:18:14,670 --> 00:18:16,540 îndoiți în jos, astfel încât să se verifică. 437 00:18:16,540 --> 00:18:21,250 Etapa a doua, ridica ciorap, dar apoi găsiți șosete de potrivire, 438 00:18:21,250 --> 00:18:22,420 identifică drept. 439 00:18:22,420 --> 00:18:25,050 Am un fel de făcut o grămadă de ipoteze, iar acest lucru este, 440 00:18:25,050 --> 00:18:27,720 sincer, de ce programul prăbuși uneori. 441 00:18:27,720 --> 00:18:30,240 Dacă vă, programator, s-au făcut anumite ipoteze, cum ar fi 442 00:18:30,240 --> 00:18:33,000 va exista cu siguranță va fi cu siguranta acolo șosete sau se întâmplă 443 00:18:33,000 --> 00:18:35,310 pentru a fi lăsat în memoria calculatorului, cu siguranta acolo se întâmplă 444 00:18:35,310 --> 00:18:37,420 să fie lăsat spațiu pe disc pe hard disk - 445 00:18:37,420 --> 00:18:39,040 Ei bine, dacă faci aceste ipoteze, și că nu e, 446 00:18:39,040 --> 00:18:41,880 în fapt, realitatea, cine știe ce, uneori, computerului 447 00:18:41,880 --> 00:18:42,520 de gând să faci? 448 00:18:42,520 --> 00:18:44,450 Și, uneori, atunci când vei ajunge mingea plajă filare sau 449 00:18:44,450 --> 00:18:47,750 Windows sau congelate cum ar fi, e tocmai pentru că unele 450 00:18:47,750 --> 00:18:50,980 programator nu a anticipat aceste cazuri, așa-numitele colț. 451 00:18:50,980 --> 00:18:53,050 Ce altceva ar fi putut greșit la acest program? 452 00:18:53,050 --> 00:18:53,330 Da? 453 00:18:53,330 --> 00:18:55,950 >> PUBLICUL: Nu aveți un picior drept si un picior stang. 454 00:18:55,950 --> 00:18:58,920 DAVID MALAN: Bine, nu poate avea atât un picior drept și o 455 00:18:58,920 --> 00:19:01,940 piciorul stâng, și astfel acest program ar putea să nu fie universal 456 00:19:01,940 --> 00:19:02,590 aplicabil. 457 00:19:02,590 --> 00:19:03,658 Altele? 458 00:19:03,658 --> 00:19:05,650 PUBLICUL: S-ar putea fi preluat de un ciorap orfan. 459 00:19:05,650 --> 00:19:07,970 DAVID MALAN: S-ar putea fi luat un ciorap orfan, asa ca o 460 00:19:07,970 --> 00:19:11,250 non-potrivire șosete, care are doar nu frați pentru că am 461 00:19:11,250 --> 00:19:13,650 pierdut-o, e rupt, e în continuare spălare, sau ca. 462 00:19:13,650 --> 00:19:15,550 Așa că, de asemenea, nu a fost într-adevăr manipulate. 463 00:19:15,550 --> 00:19:15,790 Da? 464 00:19:15,790 --> 00:19:17,510 PUBLICUL: S-ar putea avea deja șosete pe. 465 00:19:17,510 --> 00:19:19,050 DAVID MALAN: S-ar putea avea deja șosete pe. 466 00:19:19,050 --> 00:19:20,080 Nu am verifica de fapt. 467 00:19:20,080 --> 00:19:23,350 DACĂ nu aveți șosete pe, continuați apoi să facă 468 00:19:23,350 --> 00:19:24,330 linia unu și doi. 469 00:19:24,330 --> 00:19:24,980 Și asta ar putea întâmpla. 470 00:19:24,980 --> 00:19:26,880 Ai adormi cu șosete dvs. pe și cum ar fi, astfel 471 00:19:26,880 --> 00:19:28,860 că, de asemenea, un caz colt foarte rezonabil. 472 00:19:28,860 --> 00:19:29,630 Și poate că celălalt? 473 00:19:29,630 --> 00:19:31,310 PUBLICUL: ciorap este pe dos. 474 00:19:31,310 --> 00:19:34,000 DAVID MALAN: Deci, șosete este pe dos, așa că am făcut nicio eroare 475 00:19:34,000 --> 00:19:35,330 verificarea, pe scurt. 476 00:19:35,330 --> 00:19:38,550 Noi nu am verifica dacă starea lumii este ca ne asteptam. 477 00:19:38,550 --> 00:19:41,310 Noi nu am verifica dacă am găsit ceea ce de fapt căutăm. 478 00:19:41,310 --> 00:19:43,310 >> Și chiar dacă acest lucru este un fel de exemplu ridicol 479 00:19:43,310 --> 00:19:46,110 care implică șosete, la sfârșitul zilei, acest lucru este exact 480 00:19:46,110 --> 00:19:48,740 un fel de stare de spirit, trebuie să aveți în timp ce scrierea de programe, 481 00:19:48,740 --> 00:19:51,740 chiar și în Scratch, precum și în C, în JavaScript, în PHP, 482 00:19:51,740 --> 00:19:53,920 pentru că altfel, programele vor expune 483 00:19:53,920 --> 00:19:56,980 echivalent din minge de plajă filare sau a randamentului doar 484 00:19:56,980 --> 00:19:58,210 rezultate inexacte. 485 00:19:58,210 --> 00:20:00,250 Deci, de multe mulțumiri aici pentru a cărturarului Iosif nostru. 486 00:20:00,250 --> 00:20:05,060 [Aplauze] 487 00:20:05,060 --> 00:20:06,850 >> DAVID MALAN: În regulă, deci ceea ce este, în 488 00:20:06,850 --> 00:20:08,230 fapt, un program de calculator? 489 00:20:08,230 --> 00:20:09,670 Ei bine, haideți să aruncăm o privire rapidă la un 490 00:20:09,670 --> 00:20:11,100 Reprezentantul unul aici. 491 00:20:11,100 --> 00:20:15,260 Deci, acesta este un program scris într-un limbaj numit C. C este 492 00:20:15,260 --> 00:20:17,830 limbile destul de vechi in aceste zile, dar multe sunt construite noi 493 00:20:17,830 --> 00:20:18,460 pe partea de sus a acesteia. 494 00:20:18,460 --> 00:20:21,180 Într-adevăr, PHP, una dintre limbile de web-centrice vom 495 00:20:21,180 --> 00:20:24,050 folosesc spre sfarsitul lui termen, în sine are ceea ce se numește un 496 00:20:24,050 --> 00:20:27,550 interpret, un program care este scris în C, dar mai mult pe faptul că 497 00:20:27,550 --> 00:20:28,690 în multe saptamani de acum. 498 00:20:28,690 --> 00:20:30,840 Dar acest program, iar acest lucru este ceea ce înseamnă să scrie o 499 00:20:30,840 --> 00:20:32,880 Programul, deși unul foarte simplu. 500 00:20:32,880 --> 00:20:35,540 Avem unele destul de criptic sintaxa aici, dar puteți 501 00:20:35,540 --> 00:20:38,340 probabil că, chiar dacă nu ați programat înainte, ceea ce 502 00:20:38,340 --> 00:20:39,750 acest program nu. 503 00:20:39,750 --> 00:20:43,640 Într-adevăr, nu știu ce este printf, dar cu siguranță imprima 504 00:20:43,640 --> 00:20:45,700 evocă ideea de imprimare ceva. 505 00:20:45,700 --> 00:20:48,590 Și așa da, acest program este în cele din urmă de gând să imprima 506 00:20:48,590 --> 00:20:50,250 cuvintele "Hello, World". 507 00:20:50,250 --> 00:20:53,390 >> Acum, dacă aveți un Mac sau un PC sau un computer Linux, cote 508 00:20:53,390 --> 00:20:55,550 sunt, cel puțin în cazul în care ați descărcat unele primare 509 00:20:55,550 --> 00:20:58,000 software-ul disponibil, ai fi putut fi scris de programe pe 510 00:20:58,000 --> 00:21:00,310 laptop propriu de ceva timp acum. 511 00:21:00,310 --> 00:21:03,040 Pe Mac OS, de exemplu, e un program numit 512 00:21:03,040 --> 00:21:05,340 Terminal care vine cu un Mac, care este, de obicei, în ta 513 00:21:05,340 --> 00:21:07,550 Folderul Utilities, și se deschide, în general, un negru și 514 00:21:07,550 --> 00:21:09,820 alb sau o fereastră alb și negru, la care aveți o 515 00:21:09,820 --> 00:21:11,410 prompt la care puteți introduce comenzi. 516 00:21:11,410 --> 00:21:13,060 Deci, aceasta este de fapt o reminiscență a ceea ce computerele 517 00:21:13,060 --> 00:21:15,100 folosit pentru a fi înainte de grafică de utilizator 518 00:21:15,100 --> 00:21:16,710 interfețe GUI, de-a lungul a venit,. 519 00:21:16,710 --> 00:21:19,200 Acum, în Windows, aveți un mecanism similar în formă 520 00:21:19,200 --> 00:21:20,130 din promptul de comandă. 521 00:21:20,130 --> 00:21:23,430 >> Dar ce am de gând să fac aici este deschis în sus, să zicem, 522 00:21:23,430 --> 00:21:26,580 TextEdit din nou, astfel încât același program am fost folosiți pentru 523 00:21:26,580 --> 00:21:28,870 pseudocod un moment în urmă, și am de gând să merg mai departe și 524 00:21:28,870 --> 00:21:30,080 scrie program de prima mea. 525 00:21:30,080 --> 00:21:34,030 Include stdio.h, orice ar insemna asta, int main 526 00:21:34,030 --> 00:21:36,880 nule, orice ar insemna asta, și apoi în mijloc aici, 527 00:21:36,880 --> 00:21:40,560 printf ("Hello, World".). Și apoi închide oferta, 528 00:21:40,560 --> 00:21:42,340 aproape paren, punct și virgulă. 529 00:21:42,340 --> 00:21:44,460 Acum am de gând să merg mai departe și a lovit doar Command-S. Mă duc 530 00:21:44,460 --> 00:21:47,650 pentru a merge mai departe și de a salva acest lucru ca hello.c, astfel încât convenția de la 531 00:21:47,650 --> 00:21:50,530 lumea de programare C este numele fișierului punct c.. 532 00:21:50,530 --> 00:21:52,880 Mă duc să pun doar în directorul Ioan Harvard, 533 00:21:52,880 --> 00:21:56,370 aici, faceți clic pe Salvare, iar acum am de gând să merg pe la această 534 00:21:56,370 --> 00:21:59,110 fereastră de terminal, care din nou este acest prompt în alb și negru 535 00:21:59,110 --> 00:22:00,860 unde pot executa comenzi. 536 00:22:00,860 --> 00:22:04,550 >> Eu pot rula programe prin tastarea numelui lor, nu prin 537 00:22:04,550 --> 00:22:06,710 dublu-clic pe pictogramele în sensul obișnuit. 538 00:22:06,710 --> 00:22:10,590 Dar chestia este despre C este faptul că o limbă ca prima C 539 00:22:10,590 --> 00:22:13,150 vine în această formă, ceva numit codul sursă. 540 00:22:13,150 --> 00:22:15,400 Ceva care arată un pic ca limba engleză, dar este 541 00:22:15,400 --> 00:22:17,980 cu siguranță mai puțin ca în engleză decât un pseudocod lui Iosif 542 00:22:17,980 --> 00:22:18,930 clipă în urmă. 543 00:22:18,930 --> 00:22:20,560 E un pic mai mult arcane. 544 00:22:20,560 --> 00:22:22,830 Se pare să urmeze anumite tipare sau reguli. 545 00:22:22,830 --> 00:22:25,300 Faptul că am acolade, punct și virgulă, Citate, 546 00:22:25,300 --> 00:22:28,240 bretele unghi, se simte ca un computer a venit cu această 547 00:22:28,240 --> 00:22:29,250 un fel de limbaj. 548 00:22:29,250 --> 00:22:32,010 Dar dacă Mă duc, acum, la această fereastră terminal, eu pot rula un 549 00:22:32,010 --> 00:22:35,250 comandă care va converti codul sursă, care este 550 00:22:35,250 --> 00:22:36,610 ceva numit cod obiect. 551 00:22:36,610 --> 00:22:39,690 Asta se întâmplă pentru a converti Traducere engleză-ca sintaxa pentru a zerouri 552 00:22:39,690 --> 00:22:41,760 și cele, aceleași tipuri de zerouri și cele noi 553 00:22:41,760 --> 00:22:42,820 a vorbit despre miercuri. 554 00:22:42,820 --> 00:22:44,810 Acum, am de gând să rulați o comandă numită zăngănit. 555 00:22:44,810 --> 00:22:47,750 Mai multe despre acest lucru în următoarele săptămâni să vină, dar e un program cu 556 00:22:47,750 --> 00:22:52,330 pe care eu pot converti hello.c într-o grămadă 557 00:22:52,330 --> 00:22:53,640 de zero-uri și unu. 558 00:22:53,640 --> 00:22:54,950 >> Acum, am rula această comandă. 559 00:22:54,950 --> 00:22:57,940 Am alerga zăngănit, și apoi i-am spus executați te la acest fișier 560 00:22:57,940 --> 00:23:00,630 numit hello.c, pe care am creat-o clipă în urmă, și 561 00:23:00,630 --> 00:23:02,090 nimic nu pare să se întâmple. 562 00:23:02,090 --> 00:23:05,550 Dar, într-adevăr, dacă am bagat în jurul valorii de directorul meu home, mi-ar vedea 563 00:23:05,550 --> 00:23:09,620 că acest program de stupid numit a.out acum există. 564 00:23:09,620 --> 00:23:12,250 Acesta este doar numele implicit pentru un program pentru scrierea în 565 00:23:12,250 --> 00:23:15,140 C. Putem trece peste asta în cele din urmă, dar este a.out 566 00:23:15,140 --> 00:23:18,340 numele programului am transformat în zerouri și cele. 567 00:23:18,340 --> 00:23:21,490 Și acum că zerouri sale și cele, Mac-ul meu, în acest caz, sau 568 00:23:21,490 --> 00:23:24,670 PC-ul Windows, pot înțelege acele biti, aceste 569 00:23:24,670 --> 00:23:25,410 zero și unu. 570 00:23:25,410 --> 00:23:29,130 Și așa că atunci când l-am lovit Enter, eu văd "Bună ziua, lume!" 571 00:23:29,130 --> 00:23:31,270 >> Dar e un pic buggy. 572 00:23:31,270 --> 00:23:34,110 N-am spus destul de "Bună ziua, lume: aer: -! Jharvard." Aerul este 573 00:23:34,110 --> 00:23:35,020 numele calculatorului meu. 574 00:23:35,020 --> 00:23:37,730 Jharvard e numele contului, astfel încât ceea ce am în mod clar 575 00:23:37,730 --> 00:23:41,070 omite din program? 576 00:23:41,070 --> 00:23:42,480 Un fel de sfârșit de linie. 577 00:23:42,480 --> 00:23:45,150 Nu am lovit echivalentul Enter sau retur de car, 578 00:23:45,150 --> 00:23:47,760 și acest lucru este, din nou, marturie a faptului că computerele pot 579 00:23:47,760 --> 00:23:49,800 doar fac ceea ce le spui sa faca. 580 00:23:49,800 --> 00:23:52,400 Și faptul că nu am spus calculatorul muta 581 00:23:52,400 --> 00:23:53,860 cursorul la următoarea linie - 582 00:23:53,860 --> 00:23:55,200 Ei bine, cu siguranță nu este de gând să o fac pur și simplu 583 00:23:55,200 --> 00:23:56,750 îndrăzneală pentru mine. 584 00:23:56,750 --> 00:24:00,860 Așa că, dacă mă duc înapoi la programul meu, iar eu spun \ n - 585 00:24:00,860 --> 00:24:03,180 Deci \ n, așa cum vom vedea în curând, este modul de 586 00:24:03,180 --> 00:24:06,910 reprezentând lucruri ciudate, cum ar fi caractere de linie noi, lucruri 587 00:24:06,910 --> 00:24:08,840 care altfel ar fi rezultatul 588 00:24:08,840 --> 00:24:09,940 apăsarea tastei Enter. 589 00:24:09,940 --> 00:24:11,730 Dar pentru acum, știu doar că lovind tasta Enter ar 590 00:24:11,730 --> 00:24:14,170 doar face codul nostru arata ciudat, asa ca lumea a hotărât, știi 591 00:24:14,170 --> 00:24:16,580 ceea ce, pentru a păstra lucrurile mai frumoasa, să-l păstrați pe o singură linie, hai să 592 00:24:16,580 --> 00:24:19,070 spun doar \ n reprezintă o linie nouă. 593 00:24:19,070 --> 00:24:22,260 Lasă-mă să resalvați dosarul meu, du-te înapoi la fereastra terminalului, și 594 00:24:22,260 --> 00:24:25,290 Re-run a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Totusi buggy, dar de ce? 596 00:24:28,374 --> 00:24:29,750 >> PUBLICUL: [inaudibil] 597 00:24:29,750 --> 00:24:31,540 DAVID MALAN: Da, așa că am nevoie să-l recompilați. 598 00:24:31,540 --> 00:24:34,610 Deci, pentru a compila un program înseamnă doar converti l de la sursa 599 00:24:34,610 --> 00:24:37,660 cod obiect codul codul sursă, să zerouri și cele. 600 00:24:37,660 --> 00:24:40,830 Acum, simplul fapt că l-am lovit Salvare în acest TextEdit nu are nici o 601 00:24:40,830 --> 00:24:43,450 poartă cu privire la aceste zero și unu, deoarece am mai întâi trebuie să 602 00:24:43,450 --> 00:24:48,260 tell zăngănit hei, m-am schimbat acele linii de cod, 603 00:24:48,260 --> 00:24:49,040 codul sursă. 604 00:24:49,040 --> 00:24:51,010 Ai nevoie de a regenera a.out. 605 00:24:51,010 --> 00:24:52,990 Nimic nu pare să se fi întâmplat, dar într-un calculator, 606 00:24:52,990 --> 00:24:55,820 la o linie de comandă, ca să spunem așa, atunci când nu se întâmplă nimic, 607 00:24:55,820 --> 00:24:57,510 faptul că, de obicei, înseamnă totul este bine. 608 00:24:57,510 --> 00:24:59,040 Atunci când ceva se întâmplă, înseamnă 609 00:24:59,040 --> 00:25:00,420 Ai stricat, în general. 610 00:25:00,420 --> 00:25:04,020 >> Așa că hai să mergem acum la a.out, și într-adevăr acum, am "Bună ziua, 611 00:25:04,020 --> 00:25:04,440 lume. " 612 00:25:04,440 --> 00:25:05,990 Și acum, ce zici de zero-uri și unu aceste? 613 00:25:05,990 --> 00:25:07,520 În cazul în care, în fapt, sunt alea? 614 00:25:07,520 --> 00:25:10,710 Ei bine, eu nu pot cu adevărat doar un fel de poke în jurul valorii de foarte 615 00:25:10,710 --> 00:25:11,210 în mod eficient. 616 00:25:11,210 --> 00:25:12,650 Lasă-mă să deschid TextEdit. 617 00:25:12,650 --> 00:25:14,060 Iată a.out. 618 00:25:14,060 --> 00:25:17,390 Lasă-mă să mergeți mai departe și deschide acest, și aceasta este ceea ce în aparență meu 619 00:25:17,390 --> 00:25:19,080 Programul pare. 620 00:25:19,080 --> 00:25:21,570 Așa că am deschis, nu hello.c, dar a.out. 621 00:25:21,570 --> 00:25:23,960 Dar acest lucru nu este de fapt ceea ce este într-adevăr programul meu. 622 00:25:23,960 --> 00:25:26,450 În mod evident, acest lucru este un fel de caractere alfabetice. 623 00:25:26,450 --> 00:25:28,670 Nu văd nici un zero-uri și unu, dar acest lucru este 624 00:25:28,670 --> 00:25:30,780 deoarece este un program de a.out. 625 00:25:30,780 --> 00:25:33,540 Zerouri și cele - dar TextEdit, după cum sugerează și numele, este 626 00:25:33,540 --> 00:25:37,130 la fel ca Notepad pe Windows, este doar un editor de text, deci este 627 00:25:37,130 --> 00:25:39,730 confuz toate aceste zero și unu ca 628 00:25:39,730 --> 00:25:41,870 deși acestea au fost, ce? 629 00:25:41,870 --> 00:25:43,380 Caractere ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Deci, amintesc de miercuri, am venit cu această 631 00:25:45,020 --> 00:25:48,740 cartografiere arbitrară de numere, sau biți, la scrisorile de 632 00:25:48,740 --> 00:25:51,690 alfabetul și semne de punctuație și cum ar fi. 633 00:25:51,690 --> 00:25:54,920 Deci TextEdit, că este un editor de text este interpretarea greșită a 634 00:25:54,920 --> 00:25:57,270 acele modele de zerouri și cele care ar trebui să fie 635 00:25:57,270 --> 00:25:59,990 Cuvinte de imprimare, cum ar fi "Bună ziua, lume." E le afișează 636 00:25:59,990 --> 00:26:02,150 ca ASCII, și de aceea se pare un pic murdar. 637 00:26:02,150 --> 00:26:04,910 Acum, există unele indicii de corectitudine aici. 638 00:26:04,910 --> 00:26:08,090 Observați dacă aș sublinia, există un indiciu de fapt "Bună ziua, 639 00:26:08,090 --> 00:26:10,810 lume ", astfel încât undeva în program este 640 00:26:10,810 --> 00:26:12,120 teză am scris. 641 00:26:12,120 --> 00:26:14,610 Dar să mergem mai departe și acum vedea cu un alt program. 642 00:26:14,610 --> 00:26:17,420 Acest lucru nu este cel pe care îl vom folosi ca de multe ori, dar, de asemenea, vine cu 643 00:26:17,420 --> 00:26:19,970 un Mac și va fi în interiorul aparatului de CS50. 644 00:26:19,970 --> 00:26:23,940 Lasă-mă să merg mai departe și să deschideți cu un program numit XXD. 645 00:26:23,940 --> 00:26:26,530 >> Înapoi în zi, majoritatea programelor au fost numiți destul de criptic, 646 00:26:26,530 --> 00:26:28,200 și astfel tendința continuă. 647 00:26:28,200 --> 00:26:31,160 Dar-b înseamnă scuipe acest program ca binar. 648 00:26:31,160 --> 00:26:32,330 Nu-l rulați. 649 00:26:32,330 --> 00:26:35,770 Afișa pentru mine, ca și cele zerouri, iar acest lucru este C 650 00:26:35,770 --> 00:26:37,190 programa tocmai am scris. 651 00:26:37,190 --> 00:26:39,920 Acum, eu, ca un om aici, nu am nici o idee ce sincer 652 00:26:39,920 --> 00:26:42,230 aceste modele diferite de zero-uri și unu reprezintă. 653 00:26:42,230 --> 00:26:45,320 Înapoi în zi, eu, cu cartele perforate mei sau similare, ar fi 654 00:26:45,320 --> 00:26:48,080 de fapt, trebuie să te uiți la ceea ce aceste modele diferite de 655 00:26:48,080 --> 00:26:51,560 01111000, reprezintă, de fapt. 656 00:26:51,560 --> 00:26:54,390 Sau mai rău, mi-ar trebui să fac perforare sau creare 657 00:26:54,390 --> 00:26:56,130 dintre aceste modele de zero și unu. 658 00:26:56,130 --> 00:27:00,410 Dar pentru acum, să ia pe credința că un procesor, Intel interior, astfel încât 659 00:27:00,410 --> 00:27:03,440 să vorbească, în interiorul toate computerele noastre în aceste zile, știe 660 00:27:03,440 --> 00:27:05,100 cum să interpreteze aceste zerouri și cele. 661 00:27:05,100 --> 00:27:07,010 Și unele zero și unu înseamnă de imprimare. 662 00:27:07,010 --> 00:27:09,040 Unele zero și unu înseamnă reda un sunet. 663 00:27:09,040 --> 00:27:13,630 Unele zerouri și cele înseamnă să ia datele introduse de utilizator de la tastatură. 664 00:27:13,630 --> 00:27:15,960 Există tot felul de modele diferite, dar noi din fericire, 665 00:27:15,960 --> 00:27:19,680 ca oameni, în general, trebuie doar să vă faceți griji cu privire la programarea la 666 00:27:19,680 --> 00:27:21,270 acest lucru destul de ridicat nivel. 667 00:27:21,270 --> 00:27:24,320 Și în alte clase CS poate te infiltrezi mai adanc jos și căutați 668 00:27:24,320 --> 00:27:26,820 la aceste lucruri cum ar fi zero și unu, sau încă 669 00:27:26,820 --> 00:27:28,000 alte lucruri încă. 670 00:27:28,000 --> 00:27:29,210 >> Deci, acum să transforme acest lucru. 671 00:27:29,210 --> 00:27:32,550 Să se misca foarte repede departe de C și de a trece la ceva un 672 00:27:32,550 --> 00:27:36,390 puțin mai reconfortant, un pic mai interesant, în care 673 00:27:36,390 --> 00:27:39,340 ne putem întoarce animații și sunete noastre si de genul asta 674 00:27:39,340 --> 00:27:40,940 în mod clar ne-au scăpat în acest 675 00:27:40,940 --> 00:27:42,480 destul de primitiv interfață. 676 00:27:42,480 --> 00:27:46,430 Deci, acest program aceeași în C poate fi reprezentat acum în acest 677 00:27:46,430 --> 00:27:50,060 limbaj de programare numit Scratch, după cum urmează. 678 00:27:50,060 --> 00:27:54,230 Aceasta este echivalent cu a acestui program Salut lume scris în 679 00:27:54,230 --> 00:27:57,370 această piesă de puzzle stil de limbaj numit Scratch. 680 00:27:57,370 --> 00:28:00,600 Așa că lasă-mă să mergeți mai departe și să se deschidă acest program foarte. 681 00:28:00,600 --> 00:28:01,850 Se numește din nou Scratch. 682 00:28:01,850 --> 00:28:03,880 E liber la dispoziție, iar acest lucru este același lucru am 683 00:28:03,880 --> 00:28:05,120 a inceput astazi pe. 684 00:28:05,120 --> 00:28:07,790 >> Deci, asta este aici Scratch, și este rupt în sus, în câteva 685 00:28:07,790 --> 00:28:09,700 piese diferite. 686 00:28:09,700 --> 00:28:12,690 La dreapta foarte sus, avem etapa așa-numitul, și 687 00:28:12,690 --> 00:28:13,670 într-adevăr, că e în cazul în care cookie-urile 688 00:28:13,670 --> 00:28:15,440 efectuat doar un pic în urmă. 689 00:28:15,440 --> 00:28:19,660 Și pe această etapă sunt lucruri numite sprite, caractere, sau 690 00:28:19,660 --> 00:28:21,030 obiecte, sau entități. 691 00:28:21,030 --> 00:28:23,320 Nu contează cu adevărat modul în care vă gândiți la ele, dar ele 692 00:28:23,320 --> 00:28:26,740 sunt lucruri programabile, mobile, și, în acest caz, această 693 00:28:26,740 --> 00:28:30,730 program care studentul nostru scris are un cuplu de turtă dulce 694 00:28:30,730 --> 00:28:32,990 cookie-uri, un cuplu de cookie-uri circulare, o grămadă de 695 00:28:32,990 --> 00:28:35,430 inimi, o grămadă de ochelari de vedere. 696 00:28:38,170 --> 00:28:42,420 Din aceasta cauza, el sau ea este în măsură să programeze fiecare dintre cei 697 00:28:42,420 --> 00:28:44,720 caractere individuale separat. 698 00:28:44,720 --> 00:28:46,480 >> Acum, ce înseamnă să programați aceste personaje? 699 00:28:46,480 --> 00:28:49,440 Ei bine, lasă-mă să mergeți mai departe și faceți clic pe acest cookie mâna stângă 700 00:28:49,440 --> 00:28:51,830 și defilați pe la stânga sus aici. 701 00:28:51,830 --> 00:28:53,670 În stânga sus a ecranului meu este acum 702 00:28:53,670 --> 00:28:55,280 așa-numita zonă de script-uri. 703 00:28:55,280 --> 00:28:58,790 Aceasta este un fel de tabula rasa, inițial, pe care pot 704 00:28:58,790 --> 00:29:01,540 glisați și fixați piese de puzzle, care, sincer, împrejurimi 705 00:29:01,540 --> 00:29:03,020 exact ceea ce spun ei. 706 00:29:03,020 --> 00:29:05,820 La foarte de sus a acestui teanc de piese de puzzle este cuvântul 707 00:29:05,820 --> 00:29:09,340 Când Steag Verde clic, iar dacă nu ai observat înainte, 708 00:29:09,340 --> 00:29:12,300 modul în care am început să melodia asta cookie a fost clic, literalmente, 709 00:29:12,300 --> 00:29:13,320 un verde pavilion. 710 00:29:13,320 --> 00:29:16,590 Așa că piesa de puzzle din stanga sus acolo înseamnă că atunci când 711 00:29:16,590 --> 00:29:19,780 clicuri umane steagul verde, a procedat pentru a face 712 00:29:19,780 --> 00:29:21,110 următoarele lucruri. 713 00:29:21,110 --> 00:29:23,330 >> Acum, ce au cookie proceda să facă? 714 00:29:23,330 --> 00:29:25,810 Nu știu cu adevărat cum să interpreteze acest lucru încă, dar 715 00:29:25,810 --> 00:29:29,220 cookie stabilit aparent canelură la zero, apoi a asteptat 716 00:29:29,220 --> 00:29:31,740 trei secunde, apoi a schimbat grupul său la una, apoi 717 00:29:31,740 --> 00:29:33,590 așteptat un al doilea, apoi a schimbat său 718 00:29:33,590 --> 00:29:35,100 inapoi la un canal. 719 00:29:35,100 --> 00:29:37,373 Și apoi acest fapt arata ca un pic de un bug, nu ar trebui să 720 00:29:37,373 --> 00:29:39,440 Trebuie să schimbăm canalul său nou și din nou dacă nu e 721 00:29:39,440 --> 00:29:43,380 fiind schimbat în altă parte, dar această serie de pasi este ceea ce-i 722 00:29:43,380 --> 00:29:46,800 dicta comportamentul acestui cookie special. 723 00:29:46,800 --> 00:29:49,180 Deci, haideți să derulați de fapt, înapoi, și nu uita-te la ceva 724 00:29:49,180 --> 00:29:50,430 destul de atât de complexă încă. 725 00:29:50,430 --> 00:29:52,260 Lasă-mă să mergeți mai departe și du-te la File, New, 726 00:29:52,260 --> 00:29:53,560 și a obține o tabula rasa. 727 00:29:53,560 --> 00:29:56,590 >> Deci, acum, într-adevăr, am un script de zonă goală, o scenă goală, 728 00:29:56,590 --> 00:29:59,380 nostru implicit Scratch Sprite, iar la stânga sus 729 00:29:59,380 --> 00:30:01,670 pe ecranul meu nu am palet a tuturor acestora 730 00:30:01,670 --> 00:30:03,400 piese de puzzle disponibile. 731 00:30:03,400 --> 00:30:06,300 Și nu ne va trece prin aproape că multe din aceste lucruri 732 00:30:06,300 --> 00:30:09,470 astăzi, deoarece, din nou, cele mai multe sunt auto-explicative, dar vom 733 00:30:09,470 --> 00:30:12,370 încerca să le clasifice și subliniază asemănările 734 00:30:12,370 --> 00:30:15,380 cu aceste limbi viitoare la care ne vom scufunda. 735 00:30:15,380 --> 00:30:19,180 Și în stânga sus aici este prima dată când Steag Verde clic, 736 00:30:19,180 --> 00:30:22,170 asa ca lasa-mi trage peste asta aici, micșora un pic. 737 00:30:22,170 --> 00:30:25,780 Și dacă fac clic pe steagul verde, nimic nu se întâmplă cu adevărat, deoarece 738 00:30:25,780 --> 00:30:29,360 Nu am atasat nici logică, nici o declarație de ca să spunem așa, să 739 00:30:29,360 --> 00:30:31,040 faptul că steagul verde, asa ca lasa-ma sa plec pana la 740 00:30:31,040 --> 00:30:32,500 categorii de aici. 741 00:30:32,500 --> 00:30:34,840 Eu sunt în prezent în categoria de control. 742 00:30:34,840 --> 00:30:37,630 Mă duc în loc să meargă în jos la categoria Aspect, și 743 00:30:37,630 --> 00:30:39,970 există o grămadă de lucruri aici pe care Say Say, 744 00:30:39,970 --> 00:30:43,110 Gândiți-vă, schimbare de culoare, costum Comutare. 745 00:30:43,110 --> 00:30:44,860 >> Astfel încât să puteți face lucruri stupide cu costume și 746 00:30:44,860 --> 00:30:45,870 sunete și similare. 747 00:30:45,870 --> 00:30:49,970 Lasă-mă să merg mai departe și spun doar Say, iar acum observăm cum am trageți 748 00:30:49,970 --> 00:30:52,940 și plasați această piesă de puzzle, o să vrei să dispozitivul de blocare 749 00:30:52,940 --> 00:30:55,010 în forma corespunzătoare. 750 00:30:55,010 --> 00:30:58,020 Așa că atunci când am merge mai departe și să meargă de mouse-ul meu, ei bloca 751 00:30:58,020 --> 00:31:01,770 împreună, și acum, dacă mă duc aici și faceți clic pe steagul verde, 752 00:31:01,770 --> 00:31:05,910 pisica are, de fapt, spune salut pentru că asta e ceea ce se află în interiorul 753 00:31:05,910 --> 00:31:06,980 din această casetă albă. 754 00:31:06,980 --> 00:31:08,900 Vom vedea în curând că această casetă de alb este ceea ce se numește un 755 00:31:08,900 --> 00:31:10,250 argument, sau un parametru. 756 00:31:10,250 --> 00:31:12,560 E un mod de a schimba comportamentul, în acest caz, o 757 00:31:12,560 --> 00:31:15,070 puzzle bucată, dar dacă vreau să spun exact ceea ce am spus 758 00:31:15,070 --> 00:31:18,610 înainte, Say Hello, lume, eu pot merge acum din nou aici, 759 00:31:18,610 --> 00:31:21,990 faceți clic pe joc, si "Hello, World", este ceea ce a spus. 760 00:31:21,990 --> 00:31:24,340 >> Deci, noi suntem literalmente programare acum. 761 00:31:24,340 --> 00:31:27,540 Nu e tot ce convingatoare a unui program, dar cel puțin 762 00:31:27,540 --> 00:31:30,140 e ceva mai mult decât convingătoare care arată, la 763 00:31:30,140 --> 00:31:31,300 prima vedere, ca aceasta. 764 00:31:31,300 --> 00:31:34,190 Și putem obține foarte repede tot mai expresiv 765 00:31:34,190 --> 00:31:36,600 deoarece în Scratch, ca și în alte limbi, nu e tot 766 00:31:36,600 --> 00:31:40,010 felul de declarații, nu spune doar imprimare sau ceva, dar 767 00:31:40,010 --> 00:31:42,650 poti sa faci lucruri cum ar fi de așteptare, după cum tocmai am văzut cu 768 00:31:42,650 --> 00:31:44,240 cookie, un numar de secunde. 769 00:31:44,240 --> 00:31:46,440 Puteți juca sunete în mediul de Scratch doar 770 00:31:46,440 --> 00:31:49,050 ca tine poate într-un joc normal de calculator program de sunet. 771 00:31:49,050 --> 00:31:52,440 Puteți verifica ceea ce se numesc expresii booleene. 772 00:31:52,440 --> 00:31:55,630 Deci, acum, hai să începem să le adăugați la set de instrumente noastră unele terminologia 773 00:31:55,630 --> 00:31:58,840 că de fapt se referă la exemplul pe care Iosif și am făcut 774 00:31:58,840 --> 00:32:00,080 aici, cu șosete. 775 00:32:00,080 --> 00:32:03,040 Deci declarații sunt doar declarații de fapt. 776 00:32:03,040 --> 00:32:04,160 Face acest lucru. 777 00:32:04,160 --> 00:32:07,370 O directivă pentru sprite, sau mi-uman, de a face ceva. 778 00:32:07,370 --> 00:32:10,420 O expresie booleană este ceva care are o valoare, un 779 00:32:10,420 --> 00:32:14,580 așa-numita valoare de adevăr, care e fie un zero sau unul, sau falsă 780 00:32:14,580 --> 00:32:17,890 adevărat, în afara sau pe, sau nu da. 781 00:32:17,890 --> 00:32:19,730 Nu conteaza foarte mult cum crezi de acest lucru, dar este o 782 00:32:19,730 --> 00:32:20,700 binar de stat. 783 00:32:20,700 --> 00:32:22,610 Așa cum sa discutat în Nate filme de miercuri, doi 784 00:32:22,610 --> 00:32:23,570 lucruri diferite. 785 00:32:23,570 --> 00:32:25,740 >> Deci, în Scratch, expresii booleene se întâmplă să uite 786 00:32:25,740 --> 00:32:28,910 ca aceste obiecte albastre aici, și, în acest caz, întrebarea 787 00:32:28,910 --> 00:32:30,960 Marca implică faptul că sunteți a pune o întrebare. 788 00:32:30,960 --> 00:32:34,250 Este pisica, sau sprite, atingând cursorul mouse-ului? 789 00:32:34,250 --> 00:32:36,580 Deci, acesta este doar un exemplu al unui bloc Scratch care va 790 00:32:36,580 --> 00:32:39,950 pentru a ne permite să verifice da sau nu, este mouse-ul atinge 791 00:32:39,950 --> 00:32:40,790 Sprite pe ecran? 792 00:32:40,790 --> 00:32:42,840 Și acest lucru poate fi util în cazul în care tu de fapt vrei să faci lucruri 793 00:32:42,840 --> 00:32:43,820 cu mouse-ul. 794 00:32:43,820 --> 00:32:46,470 În plus față de expresii booleene, avem lucruri 795 00:32:46,470 --> 00:32:49,110 cum ar fi mouse-ul este jos, astfel încât să puteți detecta acest tip de 796 00:32:49,110 --> 00:32:50,200 îndoială, de asemenea. 797 00:32:50,200 --> 00:32:52,590 Putem face matematică, dacă chiar vrei, și nu e 798 00:32:52,590 --> 00:32:55,170 utilizări de fapt mai convingătoare pentru acest lucru decât doar pura de 799 00:32:55,170 --> 00:32:56,400 aritmetică, după cum vom vedea. 800 00:32:56,400 --> 00:32:59,690 Pseudo aleatoriu și de a face programul tau par să se gândească 801 00:32:59,690 --> 00:33:03,490 sau să se comporte diferit pe baza unor valori aparent aleatorii, 802 00:33:03,490 --> 00:33:06,610 și apoi avem lucruri, cum ar fi expresii booleene, cum ar fi ȘI. 803 00:33:06,610 --> 00:33:08,830 Deci, dacă doriți să verificați, de fapt două valori, vom vedea în 804 00:33:08,830 --> 00:33:11,110 Scratch că putem testa de fapt, în cazul în care acest lucru este 805 00:33:11,110 --> 00:33:13,190 adevărat și acest lucru este adevărat. 806 00:33:13,190 --> 00:33:15,300 De exemplu, în cazul de șosete mele, am fi putut la 807 00:33:15,300 --> 00:33:19,045 foarte sfârșitul întrebat întrebarea dacă șosete stânga și la dreapta este pe ciorap 808 00:33:19,045 --> 00:33:20,610 este pe, demisia. 809 00:33:20,610 --> 00:33:22,710 Ești terminat pentru a doua zi, astfel că ar fi o 810 00:33:22,710 --> 00:33:24,300 oportunitate pentru asta. 811 00:33:24,300 --> 00:33:27,740 >> Așa că hai să mergem mai departe și să încerce să adune unele dintre acestea, împreună 812 00:33:27,740 --> 00:33:31,570 și du-te într-un cuplu de exemple mai mult 813 00:33:31,570 --> 00:33:32,610 convingătoare decât aceasta. 814 00:33:32,610 --> 00:33:35,770 Așa că lasă-mă să mergeți mai departe și să se deschidă aici unele din exemplele de mai 815 00:33:35,770 --> 00:33:38,350 , care va fi întotdeauna pe site-ul cursului, precum și, 816 00:33:38,350 --> 00:33:39,870 deschide hello2. 817 00:33:39,870 --> 00:33:42,910 Deci, în hello2 aici, avem un program care face câteva 818 00:33:42,910 --> 00:33:46,290 lucruri, dar nu o face la fel de eficient ca am putea. 819 00:33:46,290 --> 00:33:48,900 Deci, aici se spune "Hello, World" pentru o secundă și apoi așteaptă 820 00:33:48,900 --> 00:33:49,450 pentru o secundă. 821 00:33:49,450 --> 00:33:51,720 Și apoi o face din nou, și apoi face-o din nou. 822 00:33:51,720 --> 00:33:55,530 Deci, dacă am clic pe steagul verde, Scratch spune "Bună ziua, lume. 823 00:33:55,530 --> 00:33:57,160 Bună ziua, lume. 824 00:33:57,160 --> 00:34:00,080 Bună ziua, lume. "Și aceasta este în mod evident candidat acum 825 00:34:00,080 --> 00:34:00,860 îmbunătățire. 826 00:34:00,860 --> 00:34:03,070 >> Care este îmbunătățirea marginală, sperăm, putem 827 00:34:03,070 --> 00:34:07,610 acum face dacă Scratch sprijină conceptul de? 828 00:34:07,610 --> 00:34:08,310 Un fel de buclă. 829 00:34:08,310 --> 00:34:10,960 Un fel de repetiție, acum, ar fi frumos, asa ca lasa-ma 830 00:34:10,960 --> 00:34:11,920 încercați de fapt asta. 831 00:34:11,920 --> 00:34:13,870 Lasă-mă să merg de fapt, și pentru a muta acest lucru. 832 00:34:13,870 --> 00:34:16,449 Deci, se poate desprinde Notă blocuri fel de ușor ca puteți adăuga la 833 00:34:16,449 --> 00:34:17,420 atașați-le. 834 00:34:17,420 --> 00:34:20,730 Lasă-mă să merg în control, defilați în jos aici, și într-adevăr, 835 00:34:20,730 --> 00:34:24,000 există această piesă de puzzle aici, Repetare și pentru totdeauna și 836 00:34:24,000 --> 00:34:24,870 În cazul în care pentru totdeauna. 837 00:34:24,870 --> 00:34:28,500 Deci, există un număr de moduri de a exprima constructe buclă 838 00:34:28,500 --> 00:34:29,340 în Scratch. 839 00:34:29,340 --> 00:34:31,730 L-am dori, probabil, aici nu este pentru totdeauna, deoarece am doar 840 00:34:31,730 --> 00:34:34,639 doriți să se întâmple acest de trei ori, dar, probabil, Repetare. 841 00:34:34,639 --> 00:34:38,449 Așa că lasă-mă să trageți repetă aici, glisați și fixați-l, și 842 00:34:38,449 --> 00:34:42,530 acum, în loc de a spune "Hello, World", de trei ori separate, 843 00:34:42,530 --> 00:34:44,230 lasă-mă să trageți această piesă de puzzle aici. 844 00:34:44,230 --> 00:34:46,610 Și chiar dacă nu pare să se potrivească, programul este inteligent 845 00:34:46,610 --> 00:34:48,920 suficient pentru a realiza aceasta va creste pentru a umple, așa că e 846 00:34:48,920 --> 00:34:51,270 forme care contează, și nu mărimea absolută. 847 00:34:51,270 --> 00:34:54,030 Lasă-mă să schimbați repetiție la trei, iar acum lasă-mă să merg 848 00:34:54,030 --> 00:34:56,560 înainte și trageți Asteapta o secunda acolo, de asemenea. 849 00:34:56,560 --> 00:34:59,220 Se va fixa în cât de bine, si asa ca acum am de gând să trageți 850 00:34:59,220 --> 00:35:01,370 tipii ăștia de aici și doar să le arunce pentru că am 851 00:35:01,370 --> 00:35:02,710 nu au nevoie de ele mai. 852 00:35:02,710 --> 00:35:05,920 Lasă-mă să micșorați și faceți clic pe steagul verde acum, și ne-am 853 00:35:05,920 --> 00:35:09,600 același program, dar, așa cum am prezis înainte, mai bine 854 00:35:09,600 --> 00:35:12,200 concepute pentru că vă puteți imagina cât de rău acest program 855 00:35:12,200 --> 00:35:14,410 ar obține, cu siguranță punct de vedere estetic, dacă ar trebui să 856 00:35:14,410 --> 00:35:16,640 începe copierea și lipirea, copierea și lipirea, sau 857 00:35:16,640 --> 00:35:20,020 glisare și fixare aceleași lucruri naibii din nou și din nou. 858 00:35:20,020 --> 00:35:22,260 >> Acum, pur și simplu, spunând chestii pe ecran, imprimare pentru a 859 00:35:22,260 --> 00:35:25,350 ecran, într-adevăr, nu tot ceea ce interesant, deci hai să deschidă un 860 00:35:25,350 --> 00:35:26,580 varianța treia aici. 861 00:35:26,580 --> 00:35:29,810 Și acum, după cum veți vedea, asta va ajunge rapid enervant - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID MALAN: - dar este, de asemenea, un fel de drăguț. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID MALAN: Ok, asa ca e bine, si putem folosi cu siguranță că 866 00:35:37,460 --> 00:35:41,060 tranziție același chunking asta într-un looping 867 00:35:41,060 --> 00:35:43,520 Structura, dar să-l facem mai interesant încă. 868 00:35:43,520 --> 00:35:47,480 >> Lasă-mă să mergeți mai departe și de a deschide o variație patra aici, unde am 869 00:35:47,480 --> 00:35:50,020 ia lucrurile un pas mai departe. 870 00:35:50,020 --> 00:35:54,450 Deci, în funcție de acest lucru, deși acest lucru este o prostie la prima 871 00:35:54,450 --> 00:35:58,530 ochire, ceea ce este acest program de gând să faci? 872 00:35:58,530 --> 00:35:59,790 O să miau dată. 873 00:35:59,790 --> 00:36:00,160 De ce? 874 00:36:00,160 --> 00:36:03,340 Ei bine, unul este, în măsura în care știu, întotdeauna mai puțin decât două. 875 00:36:03,340 --> 00:36:04,890 Nu e nici noțiunea de dezordine aici. 876 00:36:04,890 --> 00:36:07,240 Am literalmente hard-coded unu și doi, dar acest lucru este o 877 00:36:07,240 --> 00:36:10,370 exemplu acum de fapt, folosind o expresie booleană. 878 00:36:10,370 --> 00:36:13,650 De mult ca și Iosif a făcut în pseudocod său, indentarea dacă 879 00:36:13,650 --> 00:36:17,170 veți găsi șosete de potrivire face atunci următor, aici avem 880 00:36:17,170 --> 00:36:19,750 o expresie dacă unul este mai mică de două ATUNCI - 881 00:36:19,750 --> 00:36:21,820 și, de fapt, avem chiar și un pic de indentare, 882 00:36:21,820 --> 00:36:24,480 în cazul în care este ușor violet indentat la dreapta - 883 00:36:24,480 --> 00:36:26,600 Atunci ai de gând să joci miau sunet. 884 00:36:26,600 --> 00:36:30,060 Acum, în acest caz, că una este întotdeauna mai mic de doi, astfel încât acest 885 00:36:30,060 --> 00:36:31,970 este un fel de o pierdere de o condiție. 886 00:36:31,970 --> 00:36:34,890 Dar vom fi capabili, după cum vom vedea, să conectați alte lucruri în 887 00:36:34,890 --> 00:36:37,420 aceste substituenți în cazul în care una și două sunt acum. 888 00:36:37,420 --> 00:36:41,340 Deci, haideți să avanseze acum la exemplul cinci dintre acestea mai multe 889 00:36:41,340 --> 00:36:45,850 hellos și Uită-te la ceea ce acest program se va face. 890 00:36:45,850 --> 00:36:48,710 >> Așa că acum, într-o propoziție limba engleză, cum face acest lucru 891 00:36:48,710 --> 00:36:51,460 Programul se comporta? 892 00:36:51,460 --> 00:36:52,950 PUBLICUL: miauna jumatate din timp. 893 00:36:52,950 --> 00:36:55,380 DAVID MALAN: jumătate Miau de timp, astfel încât acesta este un mod de a 894 00:36:55,380 --> 00:36:56,700 transmițând o idee foarte simpla. 895 00:36:56,700 --> 00:36:59,400 Chiar dacă se întâmplă să fie folosirea unor inegalități aici 896 00:36:59,400 --> 00:37:01,860 în unele numere, aceasta este de fapt doar o programatic 897 00:37:01,860 --> 00:37:09,490 Astfel, un mod precis, de a spune dacă moneda vine capete, du-te 898 00:37:09,490 --> 00:37:10,270 înainte și miau. 899 00:37:10,270 --> 00:37:13,540 Sau invers, în cazul în care moneda vine cozi, nu miau. 900 00:37:13,540 --> 00:37:15,110 Și în acest caz, cum ne exprimăm asta? 901 00:37:15,110 --> 00:37:17,950 Vom alege un număr aleatoriu din 1 la 10, și în cazul în care 902 00:37:17,950 --> 00:37:21,110 Numărul este mai mic de 6, mergeți mai departe și miau. 903 00:37:21,110 --> 00:37:22,260 Și cum a ajuns asta aici? 904 00:37:22,260 --> 00:37:24,620 Ei bine, din nou, observați doar glisare și fixare și 905 00:37:24,620 --> 00:37:26,190 lucrurile oarba în loc. 906 00:37:26,190 --> 00:37:28,020 >> Deci, acum să vedem dacă această dezordine functioneaza. 907 00:37:28,020 --> 00:37:29,845 Lasă-mă să mergeți mai departe și faceți clic pe steagul verde. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID MALAN: Ok. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID MALAN: Ok. 912 00:37:35,260 --> 00:37:38,510 Bine, bine, deci avem capete, capete, cozi în mod eficient. 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: șefii. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID MALAN: Excelent. 918 00:37:44,040 --> 00:37:46,220 Întotdeauna e ciudat atunci când doar statistic, ai un prost 919 00:37:46,220 --> 00:37:48,510 a alerga, și e toate capetele, iar programul de fapt, nu 920 00:37:48,510 --> 00:37:49,230 lucra ca ai spera. 921 00:37:49,230 --> 00:37:51,210 Dar de data asta, el a lucrat, și am par să aibă, dacă am făcut-o 922 00:37:51,210 --> 00:37:53,830 acest număr un infinit de ori, 50% cote. 923 00:37:53,830 --> 00:37:56,950 Acum, din nou, nu tot ceea ce interesant, făcând doar pisici 924 00:37:56,950 --> 00:37:59,840 miau, așa că hai să vedem dacă nu putem avansa acest bit o continuare 925 00:37:59,840 --> 00:38:01,820 aici, în versiunea șase. 926 00:38:01,820 --> 00:38:05,620 Deci, acum, avem varianta foarte enervant - 927 00:38:05,620 --> 00:38:08,215 [Miauna la fiecare câteva secunde] 928 00:38:08,215 --> 00:38:10,640 DAVID MALAN: - și aceasta este ceea ce se numește, generală, ca o 929 00:38:10,640 --> 00:38:11,670 infinit buclă. 930 00:38:11,670 --> 00:38:14,190 >> Deci bucla infinită, în acest caz, se simte rău. 931 00:38:14,190 --> 00:38:16,970 Este cu siguranta va începe de sondare de rău, și totuși infinit 932 00:38:16,970 --> 00:38:18,740 buclele nu sunt întotdeauna rele. 933 00:38:18,740 --> 00:38:20,910 Puteți să vă gândiți de contextul în programele de calculator în cazul în care te-ai 934 00:38:20,910 --> 00:38:22,910 dori de fapt, o buclă infinită? 935 00:38:22,910 --> 00:38:23,691 Da? 936 00:38:23,691 --> 00:38:26,520 PUBLICUL: Atunci când doriți să verificați o condiție. 937 00:38:26,520 --> 00:38:28,240 DAVID MALAN: Bine, atunci când doriți să păstrați o stare de verificare? 938 00:38:28,240 --> 00:38:29,190 Ca ce? 939 00:38:29,190 --> 00:38:30,440 PUBLICUL: [inaudibil] 940 00:38:36,060 --> 00:38:38,170 DAVID MALAN: Bine, bine, asa ca daca ai avut un anumit program, unii 941 00:38:38,170 --> 00:38:40,440 un fel de lucru de automatizare a casei, în cazul în care doriți să mod constant 942 00:38:40,440 --> 00:38:41,980 monitor este ceva cazul. 943 00:38:41,980 --> 00:38:42,850 Sunt luminile de la? 944 00:38:42,850 --> 00:38:45,020 Sunt luminile aprinse, deoarece poate aveți un cronometru, și 945 00:38:45,020 --> 00:38:47,360 doriți să le să plece, s-ar putea nevoie pentru a face ceva 946 00:38:47,360 --> 00:38:48,290 din nou și din nou. 947 00:38:48,290 --> 00:38:50,540 Și, de fapt, vorbind de cronometre, oricare dintre voi care s-au 948 00:38:50,540 --> 00:38:53,100 ceasurile de pe computer sau de ceasuri digitale, care este un 949 00:38:53,100 --> 00:38:54,210 infinit buclă. 950 00:38:54,210 --> 00:38:56,980 Ea continuă să actualizeze timp, deoarece este în mod constant 951 00:38:56,980 --> 00:38:59,750 verificarea și controlul și verificarea are timp sa schimbat, 952 00:38:59,750 --> 00:39:01,000 și dacă da, oh, Doamne. 953 00:39:03,670 --> 00:39:04,740 Ceasul e în cele din urmă sa schimbat. 954 00:39:04,740 --> 00:39:07,020 Este nevoie de afișa acea valoare pentru tine. 955 00:39:07,020 --> 00:39:10,880 Deci, întrucât de cele mai multe bucle infinite de timp sunt o greșeală, 956 00:39:10,880 --> 00:39:13,950 sau cel puțin o decizie de design slabă, uneori o fac 957 00:39:13,950 --> 00:39:14,785 au valoarea lor. 958 00:39:14,785 --> 00:39:18,170 >> Ei bine, hai să avanseze în continuare aici pentru a hello7. 959 00:39:18,170 --> 00:39:20,410 Deci, acum programul va primi un pic mai interactiv. 960 00:39:20,410 --> 00:39:23,120 Lasă-mă să zoom in aici, și, din nou, aceasta este ceea ce e frumos 961 00:39:23,120 --> 00:39:23,640 despre Scratch. 962 00:39:23,640 --> 00:39:26,760 Și vom folosi pentru a fi clar, Scratch, doar astăzi și în 963 00:39:26,760 --> 00:39:27,780 Problema săptămâna viitoare stabilite. 964 00:39:27,780 --> 00:39:31,920 Dar luni, vom arunca cu capul în C. În acest program de aici, o face, 965 00:39:31,920 --> 00:39:33,190 pentru totdeauna, următorul. 966 00:39:33,190 --> 00:39:35,890 DACĂ atinge cursorul mouse-ului - acum, cine e 967 00:39:35,890 --> 00:39:36,420 Contextul aici? 968 00:39:36,420 --> 00:39:39,670 Ei bine, și observați că cine este selectat aici la partea de jos 969 00:39:39,670 --> 00:39:43,060 drept este pisica, sprite unul, astfel încât aceste script-uri, acest lucru 970 00:39:43,060 --> 00:39:45,720 Programul, se aplică în mod specific la el. 971 00:39:45,720 --> 00:39:48,950 Deci, în cazul în care pisica atinge cursorul mouse-ului, apoi se va 972 00:39:48,950 --> 00:39:51,350 pentru a juca acest jos și așteptați două secunde, și 973 00:39:51,350 --> 00:39:53,030 apoi repetați nauseum anunț. 974 00:39:53,030 --> 00:39:55,360 >> Așa că hai să mergem mai departe și a lovit joc. 975 00:39:55,360 --> 00:39:57,580 Nu se întâmplă nimic, dar dacă vreau să mângâi 976 00:39:57,580 --> 00:39:59,310 pisica acum, pur și simplu, nu pot. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID MALAN: Adorabil. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID MALAN: Bine, mai putin enervant, dar, de asemenea, devine plictisitoare, 981 00:40:08,750 --> 00:40:11,480 așa că hai să mergem mai departe și să vedem dacă nu putem injecta 982 00:40:11,480 --> 00:40:12,460 o logica pic mai mult. 983 00:40:12,460 --> 00:40:14,300 Asta a fost de exemplu șapte ani. 984 00:40:14,300 --> 00:40:16,090 >> Aici, în exemplul opt, vom 985 00:40:16,090 --> 00:40:18,670 introducă o condiție ELSE. 986 00:40:18,670 --> 00:40:21,440 Atât de mult ca o furculiță literală în drum, în care puteți merge 987 00:40:21,440 --> 00:40:24,260 stânga sau poti sa te duci drept, o condiție într-o programare 988 00:40:24,260 --> 00:40:28,120 cum ar fi limba Scratch, sau ca vom vedea C, vă poate permite să 989 00:40:28,120 --> 00:40:32,230 du-te într-o direcție sau alta printr-un FI ELSE construi. 990 00:40:32,230 --> 00:40:35,160 Deci destul de literalmente, DACĂ atinge indicatorul mouse-ului, acest 991 00:40:35,160 --> 00:40:38,680 va juca un sunet, altfel va juca acest alt 992 00:40:38,680 --> 00:40:39,800 sunet, miau. 993 00:40:39,800 --> 00:40:42,510 Acum, dacă poți deduce din numele acestor sunete, puteți 994 00:40:42,510 --> 00:40:45,310 ghici ce, probabil, acest program este menit sa evoce 995 00:40:45,310 --> 00:40:46,250 ideea de. 996 00:40:46,250 --> 00:40:48,742 Aceasta pisica este meowing fericit. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID MALAN: fericire, dar nu 999 00:40:51,410 --> 00:40:52,926 destul de place să fie atins. 1000 00:40:52,926 --> 00:40:54,550 [Hohote] 1001 00:40:54,550 --> 00:40:57,500 DAVID MALAN: Deci, acum avem o pisica, care va țipa la tine. 1002 00:40:57,500 --> 00:41:00,570 >> În regulă, ei bine, un exemplu ultima cu pisici aici, și 1003 00:41:00,570 --> 00:41:02,920 Să versiune open nouă a acestui aici. 1004 00:41:02,920 --> 00:41:06,190 Deci, acum, avem sunetul următoarea cea mai enervant că am putut 1005 00:41:06,190 --> 00:41:11,630 găsi, așa că avem o morsă sau leu de mare aici care va 1006 00:41:11,630 --> 00:41:13,222 procedați în felul următor. 1007 00:41:13,222 --> 00:41:20,870 [SCOARTA SEAL] 1008 00:41:20,870 --> 00:41:23,310 DAVID MALAN: Ok, deci acest lucru va continua până când îți dai seama cât de 1009 00:41:23,310 --> 00:41:24,640 acest program de lucrări. 1010 00:41:24,640 --> 00:41:28,560 Deci acest timp, acest animal are două scenarii, și ceea ce este 1011 00:41:28,560 --> 00:41:31,050 interesant aici este faptul că aceste scripturi sunt de gând să execute 1012 00:41:31,050 --> 00:41:32,260 în paralel. 1013 00:41:32,260 --> 00:41:35,340 Deci, pentru că ambele au început cu un singur clic steagul verde, 1014 00:41:35,340 --> 00:41:38,080 e ca si cum merg așa, și ambele programe începe să ruleze aceasta 1015 00:41:38,080 --> 00:41:41,370 o dată, chiar dacă acestea sunt looping pentru totdeauna. 1016 00:41:41,370 --> 00:41:44,420 Deci, în scenariul de sus, am o anumită logică. 1017 00:41:44,420 --> 00:41:49,275 Ce caracteristici are, care oferă acolo sus? 1018 00:41:49,275 --> 00:41:50,740 [SCOARTA SEAL] 1019 00:41:50,740 --> 00:41:51,670 PUBLICUL: [inaudibil] 1020 00:41:51,670 --> 00:41:53,295 DAVID MALAN: Dacă e ce? 1021 00:41:53,295 --> 00:41:53,760 [SCOARTA SEAL] 1022 00:41:53,760 --> 00:41:55,852 PUBLICUL: Dacă mute la zero, se va păstra joc 1023 00:41:55,852 --> 00:41:58,410 suna. [SCOARTA SEAL] 1024 00:41:58,410 --> 00:41:58,940 DAVID MALAN: Bine, bine. 1025 00:41:58,940 --> 00:42:01,960 Deci, dacă sunetul oprit, orice ar fi asta, chestia asta portocaliu este zero, 1026 00:42:01,960 --> 00:42:05,370 Apoi juca sunetul leu de mare și cred că "Oh, 1027 00:42:05,370 --> 00:42:06,770 hi, "timp de două secunde. 1028 00:42:06,770 --> 00:42:09,380 Acum, eu nu știu ce este dezactivat, dar zero, evocă 1029 00:42:09,380 --> 00:42:11,230 Ideea de fals sau off. 1030 00:42:11,230 --> 00:42:14,490 Deci, dacă mut este falsă, așa că, dacă nu suprimate, 1031 00:42:14,490 --> 00:42:15,660 să continui să joci sunet. 1032 00:42:15,660 --> 00:42:17,350 În regulă, ei bine, cum putem dezactiva chestia asta? 1033 00:42:17,350 --> 00:42:19,310 >> Ei bine, să ne uităm la două script-ul acolo. 1034 00:42:19,310 --> 00:42:22,130 Scriptul doilea spune setat mute la zero. 1035 00:42:22,130 --> 00:42:25,180 Observă că e, de asemenea, de portocale, astfel încât ceea ce se Scratch este culori 1036 00:42:25,180 --> 00:42:27,400 blocuri în aceeași nuanță, dacă e un fel 1037 00:42:27,400 --> 00:42:28,850 de logic legate. 1038 00:42:28,850 --> 00:42:32,850 Deci, la fel ca și partea de sus până mut a fost portocalie, deci este dezactivat aici 1039 00:42:32,850 --> 00:42:34,060 menționate în bloc portocaliu. 1040 00:42:34,060 --> 00:42:36,170 Dar aceasta este o variabilă sarcini, astfel încât la fel ca în 1041 00:42:36,170 --> 00:42:39,170 algebră, ai x și y și z, în programarea aveți 1042 00:42:39,170 --> 00:42:41,440 variabile, dar sunt, în general, - 1043 00:42:41,440 --> 00:42:42,580 Să ne pauză pentru un moment și dau seama cum 1044 00:42:42,580 --> 00:42:44,280 pentru a opri această lătratul. 1045 00:42:44,280 --> 00:42:45,480 Cum să fac asta? 1046 00:42:45,480 --> 00:42:46,480 [SCOARTA SEAL] 1047 00:42:46,480 --> 00:42:47,920 DAVID MALAN: Ok. 1048 00:42:47,920 --> 00:42:49,490 Sa oprit. Bine. 1049 00:42:49,490 --> 00:42:52,230 >> Deci, la fel ca și în algebra aveți variabile x, y, și z, dar în 1050 00:42:52,230 --> 00:42:55,260 programare, având în variabile, cum ar fi x, y, și z este, în general, 1051 00:42:55,260 --> 00:42:57,330 frowned, deoarece acestea nu sunt deloc expresiv. 1052 00:42:57,330 --> 00:43:00,070 Ei nu au nici un fel de sens semantic, astfel încât în ​​cele mai multe 1053 00:43:00,070 --> 00:43:02,110 limbaje de programare, variabilele pot avea deplină 1054 00:43:02,110 --> 00:43:05,270 nume de sine stătătoare sau cuvinte sau fraze, cum ar fi suprimate, să spun 1055 00:43:05,270 --> 00:43:06,030 ceea ce fac ei. 1056 00:43:06,030 --> 00:43:09,380 Deci, acest script doilea, de asemenea, a fost ascultat pentru totdeauna, și a zis: 1057 00:43:09,380 --> 00:43:12,100 în cazul în care cheia, tasta Space tastatura, este 1058 00:43:12,100 --> 00:43:13,370 apăsat, semn de întrebare. 1059 00:43:13,370 --> 00:43:16,300 Deci, există o condiție, cu o expresie booleană care este 1060 00:43:16,300 --> 00:43:19,010 de gând să răspundă la o întrebare, fie sincer sau false, 1061 00:43:19,010 --> 00:43:22,880 atunci am interiorul-l dacă tasta este apăsată și spațiul 1062 00:43:22,880 --> 00:43:28,020 DACĂ mut este zero, setați mut la unul, ELSE stabilit mut la zero. 1063 00:43:28,020 --> 00:43:30,510 Deci, acest furculita alt drum, și cum Am Notă 1064 00:43:30,510 --> 00:43:33,500 imbricat doua, daca condiții, este o modalitate de verificare este 1065 00:43:33,500 --> 00:43:36,610 Apăsat Space Bar pentru că dacă este așa, eu vreau să merg fie această 1066 00:43:36,610 --> 00:43:38,000 un fel sau așa. 1067 00:43:38,000 --> 00:43:40,210 Și cum am inversa valoarea dezactivat? 1068 00:43:40,210 --> 00:43:41,410 Trebuie să verific este zero? 1069 00:43:41,410 --> 00:43:45,890 Dacă este așa, îl face unul, face altceva, la zero pentru a comuta, prin urmare, 1070 00:43:45,890 --> 00:43:47,670 cele două state. 1071 00:43:47,670 --> 00:43:50,030 >> În regulă, așa că avem atunci unele dintre aceste fundamentale 1072 00:43:50,030 --> 00:43:50,540 constructe. 1073 00:43:50,540 --> 00:43:52,810 Avem expresii booleene, și realizează, de asemenea, acestea sunt 1074 00:43:52,810 --> 00:43:54,050 Nu tot ceea ce nefamiliare. 1075 00:43:54,050 --> 00:43:56,730 De fapt, aici e un screenshot rapid al lui desigur Harvard CS50 1076 00:43:56,730 --> 00:43:59,740 instrument de cumpărături, precum și orice site-ul de acolo, care are căsuțele 1077 00:43:59,740 --> 00:44:02,420 și coborâșuri picătură într-adevăr au, în tot acest timp, a fost folosind 1078 00:44:02,420 --> 00:44:03,430 Expresii booleene. 1079 00:44:03,430 --> 00:44:05,760 În acest caz aici, dacă faceți clic pe caseta de selectare de lângă 1080 00:44:05,760 --> 00:44:08,620 mai mare sau egală cu 4,5, sau lângă același curs 1081 00:44:08,620 --> 00:44:11,200 facultate, te specificând o expresie booleană. 1082 00:44:11,200 --> 00:44:14,780 Arată-mi cursuri pentru care această expresie este adevarata. 1083 00:44:14,780 --> 00:44:17,080 Sau la dreapta, nu intră în conflict cu cursuri eu sunt 1084 00:44:17,080 --> 00:44:20,440 luând, în cazul în care este bifată, atunci da, vă doriți să verificați 1085 00:44:20,440 --> 00:44:22,890 această condiție, altceva ce doriti sa-l ignore. 1086 00:44:22,890 --> 00:44:25,170 Deci, expresii booleene sunt un fel de toate în jurul valorii de, dar când 1087 00:44:25,170 --> 00:44:28,080 le punem în condiții, dacă cazul în care condițiile, IF 1088 00:44:28,080 --> 00:44:30,480 Elses, sau putem simula chiar mai 1089 00:44:30,480 --> 00:44:32,830 nivelurile, DACĂ ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 asa ca asta e un fel de stat ternar. 1091 00:44:34,430 --> 00:44:36,920 Puteți merge în acest fel sau acest fel sau în acest fel. 1092 00:44:36,920 --> 00:44:39,680 Putem păstra lucrurile să meargă cuibăresc în direcții diferite. 1093 00:44:39,680 --> 00:44:41,800 >> Deci, Scratch are aceste bucle, cum ar fi pentru totdeauna. 1094 00:44:41,800 --> 00:44:44,750 Ea are aceste caracteristici, cum ar fi Repetare 10, unele 1095 00:44:44,750 --> 00:44:46,260 număr finit de ori. 1096 00:44:46,260 --> 00:44:49,040 Avem capacitatea de a stabili acum variabile, astfel încât în ​​acest caz, 1097 00:44:49,040 --> 00:44:51,810 Am declarat, de exemplu, o variabilă numită șosete. 1098 00:44:51,810 --> 00:44:54,340 Am inițializat la 0, și asta e încă o altă direcție 1099 00:44:54,340 --> 00:44:56,940 am fi putut luat aici cu Iosif, care poate am 1100 00:44:56,940 --> 00:45:00,150 ține evidența doar de cât de multe șosete am pornit și rezilieze 1101 00:45:00,150 --> 00:45:03,490 program atunci când valoarea pe care variabila este 2. 1102 00:45:03,490 --> 00:45:05,660 Asta ar fi un alt mod de a fel de generalizare, care 1103 00:45:05,660 --> 00:45:08,820 problemă și de a face ceva nou și din nou. 1104 00:45:08,820 --> 00:45:12,080 Ei bine, hai să mergem mai departe și să introducă acum câteva lucruri noi. 1105 00:45:12,080 --> 00:45:14,100 Deci, aceia dintre voi cu experiență anterioară de programare va fi 1106 00:45:14,100 --> 00:45:17,120 știu că o mulțime de limbi au tablouri sau vectori, sau 1107 00:45:17,120 --> 00:45:19,970 liste, și într-adevăr, Scratch are ceva de genul asta, de asemenea. 1108 00:45:19,970 --> 00:45:22,510 Deci, hai sa vedem daca nu putem lua lucrurile la nivelul următor aici. 1109 00:45:22,510 --> 00:45:24,920 Dacă am abilitatea, acum, cu aceste piese de puzzle pentru 1110 00:45:24,920 --> 00:45:29,080 adăuga ceva, cum ar fi un cuvânt sau număr, într-o variabilă, pot 1111 00:45:29,080 --> 00:45:30,550 începe să se acumuleze lucruri. 1112 00:45:30,550 --> 00:45:33,630 Și aceasta este, de fapt destul de apropos de lucruri, cum ar fi jocuri, 1113 00:45:33,630 --> 00:45:35,810 role-playing jocuri în cazul în care sunteți un fel de mers pe jos în jurul valorii de 1114 00:45:35,810 --> 00:45:38,600 o lume fantastică de colectare lucruri, iau lucrurile, 1115 00:45:38,600 --> 00:45:39,900 câștiga puncte, sau ca. 1116 00:45:39,900 --> 00:45:42,310 S-ar putea dori pentru a urmări un fel de inventar, precum și 1117 00:45:42,310 --> 00:45:45,180 într-adevăr, asta e ceea ce-unul din studenții noștri foști aici făcut-o cu 1118 00:45:45,180 --> 00:45:47,750 ceva numit Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Așa că lasă-mă să mergeți mai departe și să se deschidă acest lucru aici, și în 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, avem această lume până în partea de sus. 1121 00:45:56,260 --> 00:45:58,820 Așa că lasă-mă să mergeți mai departe și faceți clic pe steagul verde. 1122 00:45:58,820 --> 00:46:01,040 Comunicarea din stanga sus este un fel de inventar. 1123 00:46:01,040 --> 00:46:04,110 Asta puse în aplicare în Scratch ca ceea ce vom numi o matrice sau 1124 00:46:04,110 --> 00:46:06,890 o listă, iar acum avem această mică animație. 1125 00:46:06,890 --> 00:46:10,440 Deci, la fel cum am început mai devreme, cu această poveste de dragoste cookie, 1126 00:46:10,440 --> 00:46:13,320 și apoi am avansat la pisici si lei de mare, acum putem avea 1127 00:46:13,320 --> 00:46:15,100 lucruri care sunt chiar mai interactiv. 1128 00:46:15,100 --> 00:46:18,250 Și tipul ăsta mic albastru, pot începe să se miște în jurul valorii de sale 1129 00:46:18,250 --> 00:46:19,500 acasă puțin aici. 1130 00:46:19,500 --> 00:46:22,570 Deci, se pare ca el are o ieșire aici, așa că eu sunt cu ajutorul 1131 00:46:22,570 --> 00:46:25,260 tastele săgeți, sus, jos, stanga dreapta. 1132 00:46:25,260 --> 00:46:28,370 Și acum sunt în afara, asa ca lasa-i ce am ajuns aici. 1133 00:46:28,370 --> 00:46:30,920 Se pare ca o portocală, și, într-adevăr, de îndată ce ating 1134 00:46:30,920 --> 00:46:33,110 portocaliu, acesta devine plopped în inventarul meu. 1135 00:46:33,110 --> 00:46:35,640 Dacă mă duc pe aici la cireșe, acum am ceva 1136 00:46:35,640 --> 00:46:36,760 altceva in inventar mea. 1137 00:46:36,760 --> 00:46:39,100 Și asta este tot frumos și drăguț, dar gandeste-te cum, acum, acest 1138 00:46:39,100 --> 00:46:39,840 este pusă în aplicare. 1139 00:46:39,840 --> 00:46:42,490 Ei bine, avem această noțiune de o listă, și că este aparent o 1140 00:46:42,490 --> 00:46:45,470 piesa de puzzle pe care le spune doar ceea ce vrei să-l adăugați, adăugați 1141 00:46:45,470 --> 00:46:46,950 portocaliu, adauga cireșe. 1142 00:46:46,950 --> 00:46:48,540 Acum, ceea ce este acest tip mic albastru faci? 1143 00:46:48,540 --> 00:46:49,810 Ei bine, el e un sprite. 1144 00:46:49,810 --> 00:46:52,190 Și probabil, portocaliu și cireșe - 1145 00:46:52,190 --> 00:46:54,140 ei înșiși erau sprites separate. 1146 00:46:54,140 --> 00:46:56,980 Și folosind condițiile în expresii booleene, de 1147 00:46:56,980 --> 00:47:00,530 elev a fost, probabil, în măsură să-și exprime dacă tipul este albastru 1148 00:47:00,530 --> 00:47:04,590 cireșe ating apoi adăugați cireșe sugerate său 1149 00:47:04,590 --> 00:47:07,890 inventar, și apoi ascunde, de asemenea, sprite cireșe. 1150 00:47:07,890 --> 00:47:10,600 Deci, sub capota, nu există, probabil, încă mai este o cireașă 1151 00:47:10,600 --> 00:47:11,350 Sprite acolo. 1152 00:47:11,350 --> 00:47:14,160 Tocmai am spus-o pentru a deveni invizibil în mod eficient. 1153 00:47:14,160 --> 00:47:16,340 >> Acum, dacă am ține de mers pe jos de aici, putem face, de asemenea, acest 1154 00:47:16,340 --> 00:47:19,150 lucru proximală, unde pot merge și să citească semnul. 1155 00:47:19,150 --> 00:47:23,170 Deci, dacă tip albastru atinge semn, putem avea acest bloc Say 1156 00:47:23,170 --> 00:47:26,455 la fel ca pisica ne-a vorbit în cuvinte, Buna, ziua, mai devreme, "Got 1157 00:47:26,455 --> 00:47:26,880 unele fructe? 1158 00:47:26,880 --> 00:47:29,290 Adu-l la locul de fructe "Bine, asa ca acum, se pare., 1159 00:47:29,290 --> 00:47:30,550 Am directii mele. 1160 00:47:30,550 --> 00:47:33,050 Eu pot merge aici la locul de fructe, aliniați eu te 1161 00:47:33,050 --> 00:47:33,740 cu ușa. 1162 00:47:33,740 --> 00:47:35,390 Acum, eu sunt aici. 1163 00:47:35,390 --> 00:47:38,120 Eu pot merge până la omul de la tejghea. 1164 00:47:38,120 --> 00:47:40,330 El detectează că sunt aproape de el, așa că nu trebuie să fie 1165 00:47:40,330 --> 00:47:46,780 destul de identic atinge, și am câștigat jocul. 1166 00:47:46,780 --> 00:47:49,890 Deci nu avem Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Deci, putem face lucruri chiar mai avansate decat aceasta. 1168 00:47:52,200 --> 00:47:53,200 Putem adăuga sunete. 1169 00:47:53,200 --> 00:47:54,610 Putem adăuga dezordine pseudo. 1170 00:47:54,610 --> 00:47:56,260 Putem adauga complexitate. 1171 00:47:56,260 --> 00:47:58,490 Lasă-mă să merg mai departe aici, și mai degrabă decât face acest lucru singur, 1172 00:47:58,490 --> 00:48:01,240 lasă-mă să-ți arăt unul dintre argumentele mai sofisticate 1173 00:48:01,240 --> 00:48:06,640 am primit anul trecut de la un anume cineva pe nume Blake. 1174 00:48:06,640 --> 00:48:08,910 Putem avea un voluntar care este confortabil figurează pe 1175 00:48:08,910 --> 00:48:12,600 aparat de fotografiat și este de până pentru a juca un joc? 1176 00:48:12,600 --> 00:48:13,450 Ce zici acolo? 1177 00:48:13,450 --> 00:48:15,380 Vino sus. 1178 00:48:15,380 --> 00:48:19,680 În regulă, deci joc pe care îl avea doar necunoștință 1179 00:48:19,680 --> 00:48:20,780 oferit voluntar pentru a juca - 1180 00:48:20,780 --> 00:48:25,910 [Aplauze] 1181 00:48:25,910 --> 00:48:28,610 DAVID MALAN: - este ceva de odinioară numit 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Care este numele tau? 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 ca Brenda cu un b. 1186 00:48:32,530 --> 00:48:33,190 DAVID MALAN: Bine, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Îmi pare bine. 1189 00:48:34,580 --> 00:48:38,690 >> Deci, aici, în "Frogger", și dacă am putea ridica volumul doar 1190 00:48:38,690 --> 00:48:39,780 un pic, ești acest mic 1191 00:48:39,780 --> 00:48:41,010 broasca verde pe partea de jos. 1192 00:48:41,010 --> 00:48:43,940 Aveți posibilitatea să utilizați la stânga, dreapta, în sus și în jos, și de obiectivul dvs. este de a 1193 00:48:43,940 --> 00:48:46,510 traversa strada, traversa râul, și atingeți plăcuțele de crin 1194 00:48:46,510 --> 00:48:47,760 în partea de sus. 1195 00:48:52,090 --> 00:48:53,440 AW. 1196 00:48:53,440 --> 00:48:54,630 One t mai mult - 1197 00:48:54,630 --> 00:48:56,400 reface, în regulă? 1198 00:48:56,400 --> 00:48:58,890 Să oprire hit. 1199 00:48:58,890 --> 00:49:00,140 Nimeni nu a văzut asta. 1200 00:49:10,470 --> 00:49:12,930 [Aplauze] 1201 00:49:17,023 --> 00:49:17,850 [Aplauze] 1202 00:49:17,850 --> 00:49:19,341 DAVID MALAN: Da. 1203 00:49:19,341 --> 00:49:20,832 Foarte bine făcut. 1204 00:49:20,832 --> 00:49:22,082 Excelent, multumesc. 1205 00:49:27,300 --> 00:49:29,430 >> Astfel încât nu a fost Frogger. Acum, că știți ce ați 1206 00:49:29,430 --> 00:49:32,170 ajuns în voi înșivă, voluntar una pentru un alt 1207 00:49:32,170 --> 00:49:34,910 Joc prezentat de un alt elev. 1208 00:49:34,910 --> 00:49:35,560 Vrei să vii pe sus? 1209 00:49:35,560 --> 00:49:36,576 Care e numele tău? 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 În regulă, Richard, vino sus. 1213 00:49:39,732 --> 00:49:42,187 [Aplauze] 1214 00:49:45,140 --> 00:49:47,030 DAVID MALAN: Ai ceva care să sune 1215 00:49:47,030 --> 00:49:54,180 familiar în curând, așa că aici sunt instrucțiunile dumneavoastră. 1216 00:49:54,180 --> 00:49:56,580 Deci, într-un moment, unele piese de puzzle sunt de gând pentru a defila în sus 1217 00:49:56,580 --> 00:49:58,150 de ecran care arata, fie a plecat 1218 00:49:58,150 --> 00:49:59,450 sau la dreapta în sus sau în jos. 1219 00:49:59,450 --> 00:50:01,230 Ai de gând să aibă de a lovi tastele săgeată într-un mod 1220 00:50:01,230 --> 00:50:04,540 că acesta corespunde acestor piese de puzzle cu captuseala 1221 00:50:04,540 --> 00:50:05,720 substituenții de la partea de sus. 1222 00:50:05,720 --> 00:50:07,500 Deci, când veți vedea o săgeată la stânga, și se aliniază cu stânga 1223 00:50:07,500 --> 00:50:09,260 săgeată, a lovit săgeata stânga. 1224 00:50:09,260 --> 00:50:10,866 Puteti incepe. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "puternic" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 DAVID MALAN: Pe tot parcursul dreptul, mare de aplauze pentru Richard. 1227 00:51:23,470 --> 00:51:26,082 [Aplauze] 1228 00:51:32,426 --> 00:51:33,720 DAVID MALAN: Foarte bine făcut. 1229 00:51:33,720 --> 00:51:34,110 Mulțumesc. 1230 00:51:34,110 --> 00:51:37,104 [Aplauze] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID MALAN: distracție Minimal, aparent, un fel de 1232 00:51:44,330 --> 00:51:46,590 intimidarea cum ar fi să pună în aplicare ceva la fel de 1233 00:51:46,590 --> 00:51:49,550 aparent sofisticat ca aceasta, realizăm că studentul 1234 00:51:49,550 --> 00:51:51,450 nu a stabilit si scrie asta pe toate odată. 1235 00:51:51,450 --> 00:51:54,200 Mai degrabă, se poate rupe în jos ca o problemă aparent complexă 1236 00:51:54,200 --> 00:51:56,840 deoarece acest lucru în bucăți mai mici, iar acest lucru, de asemenea, este 1237 00:51:56,840 --> 00:51:57,560 O să fie o temă. 1238 00:51:57,560 --> 00:52:00,490 Cel mai rau lucru care le puteți face în scris, un program în aproape orice 1239 00:52:00,490 --> 00:52:03,480 limba este de a sta jos, pentru a primi cu adevărat excitat, scrie 1240 00:52:03,480 --> 00:52:07,200 Toată chestia naibii, și apoi sperăm că acesta acționează prin 1241 00:52:07,200 --> 00:52:08,510 timp ce ați terminat de scris. 1242 00:52:08,510 --> 00:52:10,920 Mai degrabă, procesul de programare ar trebui să, în general, 1243 00:52:10,920 --> 00:52:13,440 fi foarte deliberată, foarte iterativ, prin care tocmai l-ați 1244 00:52:13,440 --> 00:52:16,955 set pași foarte mici pentru voi înșivă, bucăți mici 1245 00:52:16,955 --> 00:52:20,070 vrei sa mușca, și așa că aveți aceste sanity 1246 00:52:20,070 --> 00:52:21,740 verificări, repere mici poti intalni. 1247 00:52:21,740 --> 00:52:24,170 Și apoi să se bazeze pe partea de sus a celor pentru a crea mai mult 1248 00:52:24,170 --> 00:52:25,400 lucruri sofisticate încă. 1249 00:52:25,400 --> 00:52:26,820 >> Deci, de exemplu, cum am putea să meargă despre 1250 00:52:26,820 --> 00:52:28,380 de punere în aplicare un joc in genul asta? 1251 00:52:28,380 --> 00:52:30,160 Ei bine, sincer, aș începe cu siguranță doar prin 1252 00:52:30,160 --> 00:52:32,260 sprijinirea o cheie la un moment dat. 1253 00:52:32,260 --> 00:52:34,840 Să pună în aplicare doar de sprijin pentru săgeata stânga. 1254 00:52:34,840 --> 00:52:37,610 Deci, studentul a trebuit să creeze într-un fel în Photoshop, sau în 1255 00:52:37,610 --> 00:52:40,340 Scratch sine folosind editorul grafic mic, o 1256 00:52:40,340 --> 00:52:42,680 tasta săgeată care arată ca cel de la partea din stânga sus acolo, pur și simplu 1257 00:52:42,680 --> 00:52:43,910 gri substituent. 1258 00:52:43,910 --> 00:52:46,610 Apoi, studentul a trebuit să dau seama ce x, y coordonează la 1259 00:52:46,610 --> 00:52:48,380 pune-l, în cazul în care să-l pună în fereastra. 1260 00:52:48,380 --> 00:52:50,730 0, 0 este aici, deci va trebui să dau seama de numărul 1261 00:52:50,730 --> 00:52:53,690 pixeli sau puncte, pentru a compensa faptul că, de la săgeată 1262 00:52:53,690 --> 00:52:54,800 partea de sus a ecranului. 1263 00:52:54,800 --> 00:52:57,040 Și apoi, o dată care este în loc, programul nu face de fapt 1264 00:52:57,040 --> 00:53:00,380 face încă nimic, asa ca ai nevoie, atunci un sprite de altă parte, pentru 1265 00:53:00,380 --> 00:53:04,470 exemplu, o săgeată verde, care, de asemenea, spre stânga, și tu 1266 00:53:04,470 --> 00:53:06,710 apoi trebuie să înceapă să scrie unele script-uri pentru el. 1267 00:53:06,710 --> 00:53:09,310 >> Și tu observi, probabil, că aceste lucruri au început să vin la 1268 00:53:09,310 --> 00:53:11,470 viteze diferite, iar culorile au fost în diferite 1269 00:53:11,470 --> 00:53:13,750 locații, și asta pentru că studentul a folosit un pic de 1270 00:53:13,750 --> 00:53:14,990 pseudo-aleatoriu. 1271 00:53:14,990 --> 00:53:17,440 Și de dezordine pseudo, vreau să spun doar alegeți un număr 1272 00:53:17,440 --> 00:53:20,230 între ceva și ceva, deoarece puteți 1273 00:53:20,230 --> 00:53:22,890 începe să lucruri harta, cum ar fi în cazul în care numărul este între unu și 1274 00:53:22,890 --> 00:53:24,940 cinci, ei bine, hai să facem chestia verde. 1275 00:53:24,940 --> 00:53:28,290 Dacă e între 6 și 10, hai să facem piesa de puzzle 1276 00:53:28,290 --> 00:53:29,730 roșu în loc. 1277 00:53:29,730 --> 00:53:31,840 Atâta timp cât aveți o modalitate de a genera un fel de 1278 00:53:31,840 --> 00:53:34,730 aleatoriu, puteți face apoi decizii pe baza acelei 1279 00:53:34,730 --> 00:53:35,260 aleatoriu. 1280 00:53:35,260 --> 00:53:37,490 Și I a păstra pseudo aleatoare spun că există o 1281 00:53:37,490 --> 00:53:38,390 mic secret murdar. 1282 00:53:38,390 --> 00:53:41,130 Computerele nu pot veni cu numere aleatoare. 1283 00:53:41,130 --> 00:53:42,800 Ei pot face doar ceea ce li se spune, deoarece 1284 00:53:42,800 --> 00:53:44,110 sunt om dispozitive. 1285 00:53:44,110 --> 00:53:45,880 Ele nu pot ghici doar un numar ca noi, oamenii, 1286 00:53:45,880 --> 00:53:46,960 simt ca putem. 1287 00:53:46,960 --> 00:53:50,970 Un computer are de a face ceva matematic pentru a evoca 1288 00:53:50,970 --> 00:53:53,970 iluzie a numărului matematic, uneori folosind 1289 00:53:53,970 --> 00:53:57,420 ziua curentă de timp, ca o contribuție la imaginind ceea ce 1290 00:53:57,420 --> 00:53:59,570 numărul să se întoarcă, dar mai mult pe altă dată. 1291 00:53:59,570 --> 00:54:02,060 Pentru moment, doar știi că putem genera dezordine pseudo. 1292 00:54:02,060 --> 00:54:04,610 >> Deci, odată ce am capacitatea de săgeată stânga pentru a începe 1293 00:54:04,610 --> 00:54:07,990 apar în momente diferite și cu viteze diferite, atunci 1294 00:54:07,990 --> 00:54:10,230 Pot să mă întorc și se adaugă unele dintre acestea dacă condițiile. 1295 00:54:10,230 --> 00:54:14,950 Dacă această Sprite atinge celălalt, și săgeata stânga 1296 00:54:14,950 --> 00:54:16,330 tasta a fost apăsată - 1297 00:54:16,330 --> 00:54:17,900 astfel trei condiții, în acest caz. 1298 00:54:17,900 --> 00:54:20,750 Eu pot folosi ca si bloca, probabil, în acest caz - 1299 00:54:20,750 --> 00:54:23,210 Apoi vreau să merg mai departe și incrementa scorul. 1300 00:54:23,210 --> 00:54:25,130 Iar la partea de sus, avem un scor, avem Awesome, 1301 00:54:25,130 --> 00:54:26,510 Rece, este bun, și Boo. 1302 00:54:26,510 --> 00:54:29,810 Deci, nu e aparent cinci variabile care acest student 1303 00:54:29,810 --> 00:54:32,220 folosit pentru a ține evidența acestor valori diferite. 1304 00:54:32,220 --> 00:54:34,180 Deci, pe scurt, rezultatul final este uimitor. 1305 00:54:34,180 --> 00:54:37,320 E distractiv, e distractiv să joci, e angajarea, dar acest lucru nu este 1306 00:54:37,320 --> 00:54:38,380 în cazul în care studentul a început. 1307 00:54:38,380 --> 00:54:42,210 El sau ea a început la un set mult mai mic de pași. 1308 00:54:42,210 --> 00:54:44,470 >> Deci, ce sunt câteva blocuri de constructii alte pe care le putem 1309 00:54:44,470 --> 00:54:45,760 țese în aceste programe? 1310 00:54:45,760 --> 00:54:48,750 Ei bine, e un alt concept în cele mai multe limbi, 1311 00:54:48,750 --> 00:54:50,730 Scratch printre ei, cunoscut sub numele de fire. 1312 00:54:50,730 --> 00:54:54,660 Deci, un calculator nu poate de fapt face cu adevărat mai multe lucruri de la o 1313 00:54:54,660 --> 00:54:56,730 timp, cel puțin nu de obicei. 1314 00:54:56,730 --> 00:54:59,930 Mai degrabă, un calculator are, în general, doar un singur procesor, și chiar 1315 00:54:59,930 --> 00:55:02,230 deși calculatoarele sunt super rapid și pot, prin urmare, 1316 00:55:02,230 --> 00:55:04,740 a crea iluzia de a face mai multe lucruri în același timp - 1317 00:55:04,740 --> 00:55:06,180 verificarea e-mail-ul tău, obtinerea-o clipă 1318 00:55:06,180 --> 00:55:07,770 mesaj, imprimarea unui document - 1319 00:55:07,770 --> 00:55:11,530 într-adevăr, un calculator este doar sărind de la imprimare la mesageria instant 1320 00:55:11,530 --> 00:55:15,160 la email, înapoi și înapoi și înainte și înapoi atât de repede ca noi 1321 00:55:15,160 --> 00:55:18,170 oamenii lente minte pur și simplu nu-și dau seama că e de fapt 1322 00:55:18,170 --> 00:55:21,240 care rulează aceste programe un pic la un moment dat. 1323 00:55:21,240 --> 00:55:23,960 Acum, acest bit o de un alb se află în aceste zile, deoarece, în prezent, 1324 00:55:23,960 --> 00:55:26,740 multe noastre calculatoarele sunt ceea ce se numesc multi-core, astfel încât să 1325 00:55:26,740 --> 00:55:29,760 au un procesor, ci mai multe nuclee, care este un fel de 1326 00:55:29,760 --> 00:55:31,760 având în mai multe procesoare. 1327 00:55:31,760 --> 00:55:35,020 >> Și astfel, uneori, computerele pot face cu adevărat mai multe lucruri 1328 00:55:35,020 --> 00:55:38,500 la un moment dat, dar, în general, în cadrul unui program, programele de 1329 00:55:38,500 --> 00:55:40,200 se bazează pe aceste lucruri numite fire. 1330 00:55:40,200 --> 00:55:43,160 Deci, un fir este ca un fel de program de miniatură care poate 1331 00:55:43,160 --> 00:55:46,540 există alături de un alt program in miniatura si pot rula 1332 00:55:46,540 --> 00:55:51,250 în paralel, sau cel puțin se poate rula sub iluzia că 1333 00:55:51,250 --> 00:55:52,990 ei execută simultan. 1334 00:55:52,990 --> 00:55:55,060 Deci, Scratch susține aceste lucruri numite fire. 1335 00:55:55,060 --> 00:55:57,580 Puteți avea mai multe scripturi de executare, la o dată, la fel cum am 1336 00:55:57,580 --> 00:56:00,220 făcut-o cu leul de mare, iar acest fapt ne permite să 1337 00:56:00,220 --> 00:56:03,620 apoi au interacțiunile dintre aceste sprites. 1338 00:56:03,620 --> 00:56:09,910 Lasă-mă să merg mai departe aici și trageți în sus, să zicem, fire, și 1339 00:56:09,910 --> 00:56:11,870 juca acest după cum urmează. 1340 00:56:11,870 --> 00:56:13,950 Avem două sprite, fiecare dintre aceștia vom vedea 1341 00:56:13,950 --> 00:56:15,720 are doar un singur script. 1342 00:56:15,720 --> 00:56:18,000 Și ai observat se pare că există unele informații în 1343 00:56:18,000 --> 00:56:21,335 pisică în aceasta pentru că el se apropie - 1344 00:56:21,335 --> 00:56:21,730 [Hohote] 1345 00:56:21,730 --> 00:56:24,540 DAVID MALAN: - si mai aproape de pasăre mică. 1346 00:56:24,540 --> 00:56:26,570 >> Deci, cum este pasărea de operare? 1347 00:56:26,570 --> 00:56:28,200 Ei bine, haideți să aruncăm o privire la prima pasare. 1348 00:56:28,200 --> 00:56:31,220 Scriptul pasăre a spus atunci când se face clic pe steagul verde, du-te la x 1349 00:56:31,220 --> 00:56:34,020 este egal cu 115 și negativ y este egal cu 150. 1350 00:56:34,020 --> 00:56:37,010 Asa ca am dat seama de o locație aleatorie în cazul în care mi-am dorit 1351 00:56:37,010 --> 00:56:39,580 pasăre pentru a începe, și eu l-plopped acolo în mod implicit. 1352 00:56:39,580 --> 00:56:42,800 Atunci pentru totdeauna, dacă nu atinge pisica, astfel încât acesta este un alt 1353 00:56:42,800 --> 00:56:45,080 un fel de construct looping, dar aceeași idee, fac acest lucru din nou și 1354 00:56:45,080 --> 00:56:45,780 din nou și din nou. 1355 00:56:45,780 --> 00:56:49,410 Atâta timp cât nu te atinge pisica, a muta trei etape, și 1356 00:56:49,410 --> 00:56:51,680 daca esti pe margine, saritura, în cazul în care este un fel de 1357 00:56:51,680 --> 00:56:53,320 reflecție în sensul de biliard. 1358 00:56:53,320 --> 00:56:56,140 Deci asta e modul în care pasărea este în mișcare în jurul valorii de un fel de 1359 00:56:56,140 --> 00:56:58,890 aparent aleator, dar e doar pentru că e cade pe 1360 00:56:58,890 --> 00:57:00,170 pereții în acest caz. 1361 00:57:00,170 --> 00:57:03,170 >> Acum pisica, între timp, este un fel de înșelăciune. 1362 00:57:03,170 --> 00:57:05,520 Pisică, atunci când se face clic pe steagul verde, da, începe în 1363 00:57:05,520 --> 00:57:07,390 locații, o locație aleatoare - 1364 00:57:07,390 --> 00:57:09,590 cel puțin în parte ca pe murături 1365 00:57:09,590 --> 00:57:11,430 Blocul aleatoare verde acolo - 1366 00:57:11,430 --> 00:57:14,660 și apoi pentru totdeauna, dacă atingerea pasăre, reda sunetul leu, 1367 00:57:14,660 --> 00:57:15,790 și se va opri apoi script-ul. 1368 00:57:15,790 --> 00:57:18,560 Asa ca atunci cand am spus termina, sau pentru a ieși înainte, e un puzzle 1369 00:57:18,560 --> 00:57:20,600 piesă în Scratch, care va ucide doar programul de la acea 1370 00:57:20,600 --> 00:57:22,900 punctul pentru că e un fel de logic făcut. 1371 00:57:22,900 --> 00:57:25,030 Dar altfel, aici, observați ce se va întâmpla. 1372 00:57:25,030 --> 00:57:28,470 Punctul spre pasăre și pentru a trece cu un pas. 1373 00:57:28,470 --> 00:57:31,390 Deci, acest punct față de pasăre este un fel de un avantaj pisica 1374 00:57:31,390 --> 00:57:34,640 are in care e localizare pe pasăre în mișcare, și putem 1375 00:57:34,640 --> 00:57:37,370 acum face acest program tot mai interesant. 1376 00:57:37,370 --> 00:57:41,520 În loc de mișcare cu un pas la un moment dat pe ciclu de procesor, pe 1377 00:57:41,520 --> 00:57:44,280 grevă de taxare de clopot, ca să spunem așa, lasă-mă să merg mai departe și 1378 00:57:44,280 --> 00:57:47,350 mutați, să zicem, cinci etape, la un moment, ca pisica. 1379 00:57:47,350 --> 00:57:51,120 Faceți clic pe Executare, iar acum el chiar îl găsește repede. 1380 00:57:51,120 --> 00:57:55,620 Dacă vom dubla acest lucru în continuare la 10 pasi, e cam merge 1381 00:57:55,620 --> 00:57:56,370 drept pentru el. 1382 00:57:56,370 --> 00:57:57,750 Acum, putem da pasăre, 1383 00:57:57,750 --> 00:57:59,540 probabil, un pic de un avantaj. 1384 00:57:59,540 --> 00:58:02,370 Să mergem la păsări și spune în loc de a muta trei etape, 1385 00:58:02,370 --> 00:58:07,140 hai să-l mutați 30 de etape. 1386 00:58:07,140 --> 00:58:08,700 Dar el încă a fost prins în sfârșit. 1387 00:58:08,700 --> 00:58:10,430 >> Deci, aici, avem două fire. 1388 00:58:10,430 --> 00:58:13,230 Este încarcerat în Scratch cu două scripturi și două 1389 00:58:13,230 --> 00:58:16,150 sprite, dar ideea in alte limbi este că puteți 1390 00:58:16,150 --> 00:58:19,220 scrie, în esență, prea multe programe, cum ar fi acest lucru și au 1391 00:58:19,220 --> 00:58:22,950 executați-le cu adevărat, sau imaginar, în paralel. 1392 00:58:22,950 --> 00:58:25,280 >> Acum, există, de asemenea, acest concept în programare cunoscut sub numele de 1393 00:58:25,280 --> 00:58:28,010 evenimente, și acest lucru este ceva ce nu vom vedea în C, 1394 00:58:28,010 --> 00:58:30,500 Limba cunoscut sub numele de C. Vom vedea spre sfarsitul semestrului lui 1395 00:58:30,500 --> 00:58:33,240 în programare web, atunci când vom introduce JavaScript și 1396 00:58:33,240 --> 00:58:36,970 Noțiunea de pagini web de construcție care sunt dinamice și de a interacționa 1397 00:58:36,970 --> 00:58:37,710 cu utilizatorii. 1398 00:58:37,710 --> 00:58:40,430 Deci, în acest caz, avem un exemplu foarte simplu de două 1399 00:58:40,430 --> 00:58:43,860 sprite, băiat și fată, fiecare dintre care au normele lor 1400 00:58:43,860 --> 00:58:48,040 fire, dar cumva aceste două sunt inter-comunicarea prin intermediul 1401 00:58:48,040 --> 00:58:49,490 de ceva numit evenimente. 1402 00:58:49,490 --> 00:58:52,750 Așa că lasă-mă să merg mai departe aici și mări în script-ul baiatului, 1403 00:58:52,750 --> 00:58:54,050 care arata ca acest lucru. 1404 00:58:54,050 --> 00:58:57,510 Când steagul verde clic, faceți totdeauna următor. 1405 00:58:57,510 --> 00:59:01,510 Dacă spațiul tasta, sau Space Bar, este apăsat, spune 1406 00:59:01,510 --> 00:59:03,900 Marco timp de două secunde, în care e pur estetic pe 1407 00:59:03,900 --> 00:59:06,860 ecran, un balon mic discurs, dar a difuzat apoi. 1408 00:59:06,860 --> 00:59:09,240 >> Deci, este o altă piesă de difuzare Scratch asta e 1409 00:59:09,240 --> 00:59:12,050 reprezentant al unei clase de funcționalitate în programare 1410 00:59:12,050 --> 00:59:15,080 care permite diferite programe, fire diferite, 1411 00:59:15,080 --> 00:59:17,120 inter-comunica, pentru a trimite cumva 1412 00:59:17,120 --> 00:59:18,520 mesaje, unul la altul. 1413 00:59:18,520 --> 00:59:21,930 Trece o bucată de hârtie în clasa este un fel de tehnologie scăzută 1414 00:59:21,930 --> 00:59:22,700 echivalentă. 1415 00:59:22,700 --> 00:59:24,300 Difuzat atât de eveniment. 1416 00:59:24,300 --> 00:59:26,210 Eu pot trimite acest mesaj, iar evenimentul cuvântul 1417 00:59:26,210 --> 00:59:27,270 este complet arbitrară. 1418 00:59:27,270 --> 00:59:30,000 Scratch are, uneori, aceste coborâșuri picătură, așa că am venit 1419 00:59:30,000 --> 00:59:33,230 cu un cuvânt aleatoare ca eveniment, deoarece acum, ceea ce face băiatul 1420 00:59:33,230 --> 00:59:36,600 atunci când am apăsați tasta e difuzează acest eveniment. 1421 00:59:36,600 --> 00:59:39,270 Și dacă mă uit acum la scenariul fetei, script-ul ei este 1422 00:59:39,270 --> 00:59:42,690 super-simplu pentru că tot ce trebuie să facă, nu se acționează atunci când 1423 00:59:42,690 --> 00:59:44,100 steagul verde se face clic. 1424 00:59:44,100 --> 00:59:47,910 Ea este conceput pentru a acțiunii, atunci când ea primește oferta, citatul, 1425 00:59:47,910 --> 00:59:51,210 "Eveniment", și în acel moment, ea a asculta, prin urmare, pentru 1426 00:59:51,210 --> 00:59:52,960 eveniment așa-numitul nou și din nou. 1427 00:59:52,960 --> 00:59:55,790 De îndată ce primește acest caz, ea va striga 1428 00:59:55,790 --> 00:59:57,680 Polo timp de două secunde. 1429 00:59:57,680 --> 01:00:01,090 >> Și așa se poate deduce, probabil, din această exact ceea ce 1430 01:00:01,090 --> 01:00:03,190 rezultatul următor va fi. 1431 01:00:03,190 --> 01:00:04,910 Lasă-mă să faceți clic pe steagul verde. 1432 01:00:04,910 --> 01:00:06,610 Nimic nu se întâmplă pentru că am nevoie să fac ce? 1433 01:00:06,610 --> 01:00:07,310 PUBLICUL: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID MALAN: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Boy spune Marco, spune fata Polo. 1436 01:00:11,990 --> 01:00:13,670 Dar asta nu e greu codificate în sine. 1437 01:00:13,670 --> 01:00:16,740 Asta e inter-comunicare între scripturilor, asa ca acum am 1438 01:00:16,740 --> 01:00:19,240 au capacitatea de a face programe mai complexe în cazul în care 1439 01:00:19,240 --> 01:00:22,830 aceste două sunt oarecum inter-comunicare. 1440 01:00:22,830 --> 01:00:25,260 >> Deci, în ceea ce directii putem lua asta? 1441 01:00:25,260 --> 01:00:28,260 Ei bine, în set de probleme 0, într-adevăr, obiectivul este de a 1442 01:00:28,260 --> 01:00:29,830 sa te distrezi cu Scratch. 1443 01:00:29,830 --> 01:00:32,440 Pentru ediția hacker, vei avea loc de distracție, cu o mai 1444 01:00:32,440 --> 01:00:35,850 Versiunea sofisticată a Scratch numit BYOB, Build 1445 01:00:35,850 --> 01:00:38,040 Blocurile de proprii, dar ideea este aceeași. 1446 01:00:38,040 --> 01:00:38,780 Veți putea - 1447 01:00:38,780 --> 01:00:39,710 Da, asta a fost deliberat. 1448 01:00:39,710 --> 01:00:42,450 A venit de la Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB este versiunea ediție hacker de acest lucru, dar ambele 1450 01:00:45,200 --> 01:00:48,180 demografice, ediția standard și ediția hacker deopotrivă, 1451 01:00:48,180 --> 01:00:50,940 obiectiv la îndemână pentru săptămâna următoare este de fapt doar să se scufunde în 1452 01:00:50,940 --> 01:00:53,050 adânc, ia-ți mâinile murdare cu programarea, și să facă 1453 01:00:53,050 --> 01:00:55,240 ceva interesant, faci ceva interactiv, fac 1454 01:00:55,240 --> 01:00:58,020 ceva artistic, face ceva distractiv de a efectiv 1455 01:00:58,020 --> 01:01:01,020 să demonstreze, astfel încât până la sfârșitul săptămânii, vei avea un proiect, 1456 01:01:01,020 --> 01:01:03,770 nu numai pentru prima ta CS50 PSET, dar vei avea un 1457 01:01:03,770 --> 01:01:05,620 ceva pe care le puteți scoate în evidență în Annenberg a 1458 01:01:05,620 --> 01:01:08,830 prieteni sau chiar de familie prin încărcarea acestuia pe site-ul MIT. 1459 01:01:08,830 --> 01:01:11,760 Și așa cum am spus, miercuri, ne așteptăm ca 90% din clasa, 1460 01:01:11,760 --> 01:01:13,970 în general, pentru a face edițiile standard. 1461 01:01:13,970 --> 01:01:16,660 Dau seama că există, de asemenea, această piață de desfacere pentru cei dintre voi care 1462 01:01:16,660 --> 01:01:18,990 în caz contrar ar putea găsi te un pic plictisit cu elementele de bază 1463 01:01:18,990 --> 01:01:21,650 și doresc cu adevărat să se scufunde într-o viziune și ambarcațiunile de tine deja 1464 01:01:21,650 --> 01:01:25,380 au cu fundal anterior în acest mai prietenos 1465 01:01:25,380 --> 01:01:26,240 mediu. 1466 01:01:26,240 --> 01:01:29,030 >> Așa că lasă-mă să trag în sus cu un alt exemplu că unul dintre fostul nostru 1467 01:01:29,030 --> 01:01:33,830 studentii de aici a făcut și spune ceva prin cântec. 1468 01:01:33,830 --> 01:01:37,430 Că în mod similar, deoarece aceasta joacă, gândiți-vă cum te duci despre 1469 01:01:37,430 --> 01:01:40,520 punere în aplicare a acestui program folosind exact același acestea 1470 01:01:40,520 --> 01:01:44,180 blocuri, un pic de dezordine, și o pseudo- 1471 01:01:44,180 --> 01:01:46,010 biți de cântec familiar. 1472 01:01:46,010 --> 01:01:47,910 Dacă am putea ridica volumul doar un pic? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "Ploua MEN" Fetele METEO] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID MALAN: Asta e. pentru CS50. 1475 01:03:03,930 --> 01:03:05,860 Vă vom vedea pe luni. 1476 01:03:05,860 --> 01:03:21,152 [Aplauze]