1 00:00:00,000 --> 00:00:10,980 >> [MUSIC JOC] 2 00:00:10,980 --> 00:00:13,260 >> -Bine! 3 00:00:13,260 --> 00:00:16,400 >> Asta este CS50. 4 00:00:16,400 --> 00:00:18,220 >> Asta este CS50. 5 00:00:18,220 --> 00:00:19,324 >> Asta este CS50. 6 00:00:19,324 --> 00:00:20,615 [MUSIC - Iggy AZALEA, "fantezist"] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> Memorie meu preferat din CS50 a fost atunci când m-am dus la Puzzle Day. 9 00:00:33,570 --> 00:00:35,797 >> -Probabil Doar de timp petrecut de lucru pe seturi de probleme 10 00:00:35,797 --> 00:00:38,630 cu prietenii și oamenii mei care Wold deveni în cele din urmă blockmates mele. 11 00:00:38,630 --> 00:00:40,421 >> Meu cel mai bun memorie de la CS50 este Hackathon. 12 00:00:40,421 --> 00:00:41,630 -Contravaloarea CS50 Hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -Contravaloarea Hackathon 17 00:00:43,883 --> 00:00:45,027 Rob Bowden. 18 00:00:45,027 --> 00:00:46,110 Doar totul despre el. 19 00:00:46,110 --> 00:00:47,401 >> [MUSIC - Iggy AZALEA, "fantezist"] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> Memorie meu preferat este atunci când am fost la scenă și am jucat rolul de prestigiu 22 00:01:02,512 --> 00:01:04,220 unui nod [? în Linked?] [? Lista de. ?] 23 00:01:04,220 --> 00:01:08,470 >> -Când Toți avem spațiu liber Dropbox și David a fost ca, uita-te sub scaunele voastre. 24 00:01:08,470 --> 00:01:10,520 Și a fost ca, spațiu pentru toată lumea! 25 00:01:10,520 --> 00:01:11,811 >> [MUSIC - Iggy AZALEA, "fantezist"] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> Sfaturi meu pentru orice elev de intrare ar fi 28 00:01:22,830 --> 00:01:26,170 fie pentru a lucra într-adevăr pe P-seturi cu prietenii. 29 00:01:26,170 --> 00:01:27,960 >> Ore -Office este foarte mult prietenul tău. 30 00:01:27,960 --> 00:01:30,870 >> -Asigurați Din plin de experiența dumneavoastră și pentru a îndeplini cât mai mulți oameni ca tine poate. 31 00:01:30,870 --> 00:01:32,390 >> Nu fi frică pentru a cere ajutor. 32 00:01:32,390 --> 00:01:33,890 -Start- De P-seturi la începutul săptămânii. 33 00:01:33,890 --> 00:01:36,723 -Cred Cel mai important lucru este acela de a beneficia de toate resursele 34 00:01:36,723 --> 00:01:37,950 care CS50 are. 35 00:01:37,950 --> 00:01:39,960 >> -Du A orelor de începutul săptămânii. 36 00:01:39,960 --> 00:01:41,430 >> Ceas Categoric pantaloni scurți. 37 00:01:41,430 --> 00:01:42,989 >> -Nu Amâna pe dvs. P-seturi. 38 00:01:42,989 --> 00:01:45,780 -Asigurați Sigur veți găsi un grup mare de oameni pentru a lucra la P-seturi, cu. 39 00:01:45,780 --> 00:01:48,530 Puteți avea o mulțime de distracție și de a lua munca efectuată împreună. 40 00:01:48,530 --> 00:01:50,370 >> Nu fi frică să te împinge. 41 00:01:50,370 --> 00:01:52,080 Du-te pentru ediția hacker uneori. 42 00:01:52,080 --> 00:01:55,410 >> Lucruri -Scrie pe hârtie înainte de atingi vreodată computer. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 Este foarte mare la oferind modalități de a obține ajutor. 44 00:01:58,380 --> 00:02:01,134 >> Meu un sfat este somn. 45 00:02:01,134 --> 00:02:02,050 Are cineva a spus asta? 46 00:02:02,050 --> 00:02:04,100 Somn, pentru sigur. 47 00:02:04,100 --> 00:02:08,919 Este ușor să nu facă, dar le-ați luat pentru a face acest lucru, cred. 48 00:02:08,919 --> 00:02:12,982 >> -I-Ar spune într-adevăr să fie pregătit mental pentru că ai de gând să-l iubesc. 49 00:02:12,982 --> 00:02:14,273 [MUSIC - Iggy AZALEA, "fantezist"] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> Asta este CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> Asta este CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> Asta este CS50. 56 00:02:26,989 --> 00:02:28,280 [MUSIC - Iggy AZALEA, "fantezist"] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> Asta este CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [Aplauze] 61 00:02:42,270 --> 00:02:46,040 >> David J. MALAN: Deci, asta este CS50 iar acesta este sfârșitul de săptămâna 0. 62 00:02:46,040 --> 00:02:48,770 Si asta a fost doar o de personal CS50 lui care 63 00:02:48,770 --> 00:02:51,100 Te așteaptă nu numai în secțiunile și orelor de program, dar, 64 00:02:51,100 --> 00:02:54,390 De asemenea, acest week-end vin la CS50 Puzzle Day. 65 00:02:54,390 --> 00:02:56,410 Ceea ce, din nou, nu este Totul despre programare. 66 00:02:56,410 --> 00:02:59,710 Într-adevăr, este de așteptat ca nu va trebui să programa nimic, 67 00:02:59,710 --> 00:03:03,780 ci mai degrabă a rezolva problemele cu ajutorul inteligența și prietenii alături de tine. 68 00:03:03,780 --> 00:03:06,400 >> Vom fi alături de unii de prietenii nostri de la Facebook-- 69 00:03:06,400 --> 00:03:08,980 dacă vă înregistrați aici-- care pentru ultimii ani, 70 00:03:08,980 --> 00:03:11,450 de fapt, au scris aceste provocări cu noi. 71 00:03:11,450 --> 00:03:14,822 Și astfel, ei vor fi cei în cele din urmă de funcționare puzzle Day. 72 00:03:14,822 --> 00:03:17,530 Și așa, va fi contestată cu exact felul de lucruri 73 00:03:17,530 --> 00:03:20,520 și problemele pe care oamenii de la Facebook vrea să se gândească. 74 00:03:20,520 --> 00:03:21,860 Deci, care este mâine. 75 00:03:21,860 --> 00:03:25,980 Inregistreaza-te la cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Acum, un cuvânt pe un cuplu de personal, în special. 77 00:03:28,120 --> 00:03:30,090 Acest lucru aici este Ansel Duff, care este de fapt o 78 00:03:30,090 --> 00:03:33,860 dintre co-autorii acestor binar becuri care le-am văzut pe miercuri, 79 00:03:33,860 --> 00:03:36,710 în plus față de CS50 propriu Dan Bradley. 80 00:03:36,710 --> 00:03:40,094 Ansel Duff a fost, de asemenea, un fost student în anul întâi advisee de-al meu acum 3 ani 81 00:03:40,094 --> 00:03:41,760 și de fapt, el chiar a construit acest pupitru. 82 00:03:41,760 --> 00:03:45,330 A plecat să o facă științe inginerești și mai mult. 83 00:03:45,330 --> 00:03:49,279 Acum, poza lui aici este de fapt Ansel acum 3 ani de la CS50 Hackathon 84 00:03:49,279 --> 00:03:51,820 când a împrumutat unul dintre noastre baloane, sa lipit de laptop său, 85 00:03:51,820 --> 00:03:55,240 și, pentru următoarele 12 ceva ciudat ore, concentrat pe proiectul sau definitiv, 86 00:03:55,240 --> 00:03:59,150 iau pauze doar pentru a deschide saci de bomboane de la Hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Dar el a mers pe mai recent a petrece in aceasta vara trecut cu noi, 88 00:04:02,210 --> 00:04:05,270 deoarece CS50 pentru personalul său, și Acum, elevii acest semestru, 89 00:04:05,270 --> 00:04:06,770 are propria imprimantă 3D. 90 00:04:06,770 --> 00:04:10,180 Și într-o coajă de nucă de imprimante 3D este un dispozitiv care arata destul de genul asta. 91 00:04:10,180 --> 00:04:15,700 Ai umple cu o bobină de plastic care este topit de către dispozitivul 92 00:04:15,700 --> 00:04:18,940 și vă construi lucruri literalmente de la nimic. 93 00:04:18,940 --> 00:04:22,660 La fel ca o imprimanta cu jet de cerneală, de a începe scuipa puncte mici de plastic 94 00:04:22,660 --> 00:04:24,990 că forma împreună cu forma obiecte întregi. 95 00:04:24,990 --> 00:04:28,430 Și astfel Ansel de exemplu, mai devreme în această vară, are un iPhone 5 96 00:04:28,430 --> 00:04:30,722 și a decis că vrea într-adevăr să-l sprijini pe biroul lui. 97 00:04:30,722 --> 00:04:32,638 Dar el nu a vrut să du-te afară și cumpere ceva 98 00:04:32,638 --> 00:04:36,030 de la magazinul Apple sau altele asemenea, astfel încât el așezat și a început desen ceva. 99 00:04:36,030 --> 00:04:38,280 El a luat câteva măsurători cu privire la modul de gros 100 00:04:38,280 --> 00:04:41,270 și cât de mare iPhone său a fost, el a atras această imagine aici, 101 00:04:41,270 --> 00:04:43,870 el a decis că el a vrut pentru a avea o înclinare de 75 grade 102 00:04:43,870 --> 00:04:46,150 așa cum se holba la l pe biroul lui acolo. 103 00:04:46,150 --> 00:04:50,440 Apoi sa întors acest lucru, folosind software-ul, intr-un model 3D CAD 104 00:04:50,440 --> 00:04:52,400 care sa uitat un pic ceva de genul asta. 105 00:04:52,400 --> 00:04:55,940 Și apoi a continuat, în cele din urmă, să-l creeze de fapt. 106 00:04:55,940 --> 00:05:00,250 Deci, în fapt, dacă vreunul dintre voi aici, poate într-un rând care pot arunca la, avea 107 00:05:00,250 --> 00:05:06,780 an-- acolo avem oameni cu iPhone 5, și aici avem două mai mult. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Acum, să nu fie mai prejos, de CS50 propriu Cheng Gong, de asemenea, stabilite în această vară 110 00:05:17,037 --> 00:05:19,870 pentru a construi destul de câteva lucruri și, de fapt, din motive care sunt încă 111 00:05:19,870 --> 00:05:23,970 neclar, a fost lent imprimarea o armată de elefanți 112 00:05:23,970 --> 00:05:27,250 cu articularea arme și trunchiuri. 113 00:05:27,250 --> 00:05:32,515 Un cuplu de care sunt de fapt aici dacă oricine ar place-- acum un elefant. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 În regulă,. dar ceea ce Cheng, de asemenea, a făcut pentru noi este că foarte amabil înființat un aparat de fotografiat 116 00:05:40,522 --> 00:05:42,230 pentru că elefant, crezi sau nu, 117 00:05:42,230 --> 00:05:44,690 ia unele doi și un oră și jumătate pentru a imprima. 118 00:05:44,690 --> 00:05:47,840 Chiar standul iPhone a luat o oră și jumătate pentru a imprima. 119 00:05:47,840 --> 00:05:51,490 Și ce Cheng a mers mai departe și a făcut a fost înființat un aparat de fotografiat frumos în față 120 00:05:51,490 --> 00:05:55,580 de această imprimantă 3D, filmat pentru o oră și o jumătate de design de Ansel tipărită. 121 00:05:55,580 --> 00:05:58,090 Am suprapus unele sexy muzica la acesta pentru 122 00:05:58,090 --> 00:06:00,570 pentru a vă oferi acest lucru să se uite la modul în care funcționează de imprimare 3D. 123 00:06:00,570 --> 00:06:02,494 Și chiar dacă acest este, de fapt, în plastic, 124 00:06:02,494 --> 00:06:05,160 dau seama că în cazul în care acesta este un domeniu de interes pentru tine academic, 125 00:06:05,160 --> 00:06:07,120 există oameni buni, printre le Jennifer Lewis aici 126 00:06:07,120 --> 00:06:09,036 la Școala de Engineering, care sunt de fapt 127 00:06:09,036 --> 00:06:10,920 de lucru pe de imprimare 3D obiecte de plastic. 128 00:06:10,920 --> 00:06:14,150 Dar chiar, ce mai, materiale biologice pentru a rezolva 129 00:06:14,150 --> 00:06:16,530 probleme fiziologice pentru oameni. 130 00:06:16,530 --> 00:06:19,944 Dar aici este un pic ceva din CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD MECANIC zgomote] 132 00:06:31,625 --> 00:06:34,250 David J. MALAN: Nu suna ceva de genul că, în realitate, 133 00:06:34,250 --> 00:06:37,240 dar este mult mai rece să-l uit la viteza, si cu acel sunet. 134 00:06:37,240 --> 00:06:40,000 >> Acum, miercuri, modul în care am ajuns prima dată aici? 135 00:06:40,000 --> 00:06:43,345 Am început să vorbim despre calculator știință și ne-am întrebat ce era. 136 00:06:43,345 --> 00:06:46,470 Și este vorba despre o serie de lucruri, și există atât de multe direcții diferite 137 00:06:46,470 --> 00:06:48,477 în care vă puteți îndrepta după un curs ca CS50. 138 00:06:48,477 --> 00:06:50,810 De fapt, dacă ai luat o acestor ghiduri neoficiale 139 00:06:50,810 --> 00:06:54,080 la CS afara, broșura care am furnizat, dacă ești 140 00:06:54,080 --> 00:06:57,150 gândire de a lua doar CS50, sau poate face un secundar, 141 00:06:57,150 --> 00:06:59,557 sau poate chiar de concentrare în CS, nu răsfoi asta. 142 00:06:59,557 --> 00:07:01,390 Și veți vedea o diagramă spre sfârșitul că 143 00:07:01,390 --> 00:07:04,950 vă arată mai multe direcții diferite în CS care poti sa te duci pe la. 144 00:07:04,950 --> 00:07:09,030 >> Dar pentru ziua de azi, ne vom concentra, din nou, pe într-adevăr unul dintre punctele de vedere fundamentale, 145 00:07:09,030 --> 00:07:11,500 poate, în cazul în care aveți intrări la probleme, 146 00:07:11,500 --> 00:07:13,430 aveți ieșiri din probleme, și aveți 147 00:07:13,430 --> 00:07:17,420 algoritmi cu care să creeze aceste ieșiri din aceste intrări. 148 00:07:17,420 --> 00:07:20,330 Și un astfel de exemplu, a fost de Desigur, această carte de telefon aici. 149 00:07:20,330 --> 00:07:24,180 Și ne-am folosit ca un exemplu pentru a merge printr-un algoritm care a fost actualizată. 150 00:07:24,180 --> 00:07:26,490 Și apoi încă unul a fost corect, dar un pic mai repede. 151 00:07:26,490 --> 00:07:29,448 Și apoi un altul care a fost un pic mai dramatic, dar fundamental 152 00:07:29,448 --> 00:07:30,000 mai repede. 153 00:07:30,000 --> 00:07:32,720 >> Corect, această carte ne-am telefon a pretins a avut aproximativ 1.000 de pagini. 154 00:07:32,720 --> 00:07:36,200 Și de câte ori nu-i asa am pentru a rupe cartea de telefon în jumătate 155 00:07:36,200 --> 00:07:39,930 pentru a găsi pe cineva ca Mike Smith, la maximum, în 1000 pagină de carte? 156 00:07:39,930 --> 00:07:41,040 Deci, 10 sau mai puțin. 157 00:07:41,040 --> 00:07:45,050 Și așa o dată am rupt acest lucru în jumătate, sau pur și simplu, mai matur, 158 00:07:45,050 --> 00:07:48,490 împărțit în jumătate, e doar 10 de pagini din 1000. 159 00:07:48,490 --> 00:07:51,470 Și dacă extrapola, un pic nerealist pentru o carte de telefon, 160 00:07:51,470 --> 00:07:56,540 dar dacă această carte de telefon a avut un 4 miliarde de pagini din ea, atât de complet 161 00:07:56,540 --> 00:07:59,680 greoi punct de vedere fizic, cât de multe ori vrei sa imparti o 4 miliarde 162 00:07:59,680 --> 00:08:01,460 pagină de carte de telefon în jumătate? 163 00:08:01,460 --> 00:08:03,035 Deci, este de fapt 32, da sau de a lua. 164 00:08:03,035 --> 00:08:07,090 Și numai astfel de 32 de ori, în de 4 miliarde de pagini, se poate 165 00:08:07,090 --> 00:08:08,700 veți găsi pe cineva ca Mike Smith. 166 00:08:08,700 --> 00:08:09,740 Și asta e eficienta. 167 00:08:09,740 --> 00:08:12,130 Asta-i un algoritm bine, îndrăznesc să spun. 168 00:08:12,130 --> 00:08:14,480 >> Dar apoi ne-am mutat de la care pentru a încerca să-l oficializeze. 169 00:08:14,480 --> 00:08:16,100 Și mi-am propus acest cod pseudocod. 170 00:08:16,100 --> 00:08:17,800 Codul pseudocod nu este nimic oficial. 171 00:08:17,800 --> 00:08:18,880 Nu e ceva ce memorezi. 172 00:08:18,880 --> 00:08:21,588 E doar ceva ce exprima destul de intuitiv folosind limba engleză, 173 00:08:21,588 --> 00:08:24,990 sau orice limbă într-adevăr, că transmite ideile tale succint. 174 00:08:24,990 --> 00:08:26,990 Dar ceea ce este esențial despre Codul pseudocod este că 175 00:08:26,990 --> 00:08:30,331 să încerce să anticipeze toate posibilele cazuri care s-ar putea întâmpla. 176 00:08:30,331 --> 00:08:33,080 Și, într-adevăr, în acest pseudocod cod, au existat într-adevăr trei cazuri 177 00:08:33,080 --> 00:08:34,700 de fiecare dată când am împărțit cartea de telefon. 178 00:08:34,700 --> 00:08:36,006 Mike ar putea fi la stânga. 179 00:08:36,006 --> 00:08:37,130 Mike ar putea fi la dreapta. 180 00:08:37,130 --> 00:08:39,240 Sau ar putea fi chiar pe pagina sunt. 181 00:08:39,240 --> 00:08:42,110 Sau un caz colț al patrulea, ca să spunem așa. 182 00:08:42,110 --> 00:08:46,470 Un scenariu rău ar putea fi unul which-- ce se întâmplă? 183 00:08:46,470 --> 00:08:48,860 Doar Mike nu e în cartea de telefon, la toate. 184 00:08:48,860 --> 00:08:52,720 >> Și când programele crash-- când Mac și software pentru PC care voi alerga 185 00:08:52,720 --> 00:08:56,400 pe calculatoarele uneori blochează sau se închide în mod neașteptat, 186 00:08:56,400 --> 00:08:59,770 ceea ce înseamnă, în general, că unele programator, unele om ca tine curând, 187 00:08:59,770 --> 00:09:01,650 doar greșit și a făcut o greșeală. 188 00:09:01,650 --> 00:09:05,207 Poate că nu a anticipat că poate exista nu este Mike Smith în cartea de telefon. 189 00:09:05,207 --> 00:09:08,040 Și dacă nu, de fapt scrie cod să se ocupe de situatii de genul asta, 190 00:09:08,040 --> 00:09:09,890 în general imprevizibil lucruri se pot întâmpla. 191 00:09:09,890 --> 00:09:10,960 Aparatul poate îngheța. 192 00:09:10,960 --> 00:09:11,730 Se poate reporni. 193 00:09:11,730 --> 00:09:12,889 Programul poate renunta. 194 00:09:12,889 --> 00:09:14,722 Și astfel toate acestea prostii care s-ar putea 195 00:09:14,722 --> 00:09:18,030 s-au întâlnit în actuala ta viață doar cu ajutorul calculatoarelor, 196 00:09:18,030 --> 00:09:20,710 va fi din ce în ce doar explicată prin această intuiție 197 00:09:20,710 --> 00:09:24,920 și această înțelegere a ceea ce este de fapt se întâmplă sub capotă. 198 00:09:24,920 --> 00:09:27,329 >> Acum să încercăm să aruncăm o privire la o problemă mai generală. 199 00:09:27,329 --> 00:09:29,120 Mai degrabă decât să ia participarea într-un loc cum ar fi 200 00:09:29,120 --> 00:09:32,230 aceasta, ceea ce ar fi destul de lent pentru a face una, două, trei, patru. 201 00:09:32,230 --> 00:09:34,070 Sau poate două, patru, șase, opt. 202 00:09:34,070 --> 00:09:36,080 Să ne concentrăm, în schimb, pe cum am putea formaliza 203 00:09:36,080 --> 00:09:39,400 algoritmul procesului de pe care le-ar putea lua de participare. 204 00:09:39,400 --> 00:09:42,290 Și de-a lungul drum, să începem de a aplica unele nomenclatură 205 00:09:42,290 --> 00:09:47,130 că vom folosi astăzi, când suntem de fapt începe programarea într-o limbă. 206 00:09:47,130 --> 00:09:50,910 Deci, eu vă dau acum, un videoclip patru minute că ne-am pus împreună cu prietenii noștri 207 00:09:50,910 --> 00:09:52,820 de la TED, organizatia. 208 00:09:52,820 --> 00:09:56,380 Prin care am furnizat un scenariu și au adus animatori lor să le suporte, 209 00:09:56,380 --> 00:10:00,970 și de fapt a creat un 2D animație de ceea ce un algoritm este. 210 00:10:00,970 --> 00:10:02,776 Dacă am putea dim luminile. 211 00:10:02,776 --> 00:10:06,664 >> [MUSIC JOC] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 Narator: Ce este un algoritm? 214 00:10:19,140 --> 00:10:21,620 În informatică, un algoritm este un set 215 00:10:21,620 --> 00:10:24,840 de instrucțiuni rezolvarea unele probleme pas-cu-pas. 216 00:10:24,840 --> 00:10:27,310 De obicei, algoritmi sunt executate de calculatoare, 217 00:10:27,310 --> 00:10:29,365 dar oamenii au algoritmi de asemenea. 218 00:10:29,365 --> 00:10:31,240 De exemplu, cum ar fi te duci despre numărare 219 00:10:31,240 --> 00:10:32,990 numărul de persoane intr-o camera? 220 00:10:32,990 --> 00:10:36,840 Ei bine, daca esti ca mine, probabil ai punct la fiecare persoană la un moment dat 221 00:10:36,840 --> 00:10:38,370 si numara pana la zero. 222 00:10:38,370 --> 00:10:41,200 Unu, doi, trei, patru, și așa mai departe. 223 00:10:41,200 --> 00:10:42,410 Ei bine, asta e un algoritm. 224 00:10:42,410 --> 00:10:45,820 De fapt, hai să încercăm să-l exprime o pic mai mult formal în codul pseudocod. 225 00:10:45,820 --> 00:10:48,940 Sintaxă engleză-așa seamana cu un limbaj de programare. 226 00:10:48,940 --> 00:10:50,880 >> Să n egal 0. 227 00:10:50,880 --> 00:10:55,210 Pentru fiecare persoană în cameră, set n egal cu n plus 1. 228 00:10:55,210 --> 00:10:56,790 Cum de a interpreta pseudocod? 229 00:10:56,790 --> 00:10:59,490 Ei bine, o linie declară, ca să spunem așa, o variabilă 230 00:10:59,490 --> 00:11:02,880 numit n și inițializează valoarea sa la 0 Acest doar 231 00:11:02,880 --> 00:11:05,080 înseamnă că, la începând de algoritmul nostru, 232 00:11:05,080 --> 00:11:07,910 lucrul cu care suntem numărare are o valoare de 0. 233 00:11:07,910 --> 00:11:10,860 La urma urmei, înainte de a începe numărarea nu am numărat încă nimic. 234 00:11:10,860 --> 00:11:13,580 Apelarea această variabilă n este doar o convenție. 235 00:11:13,580 --> 00:11:15,130 Aș fi putut numit-o cel mai nimic. 236 00:11:15,130 --> 00:11:17,460 Acum, linia doi demarks începutul unei bucle, 237 00:11:17,460 --> 00:11:20,550 o succesiune de etape care va repeta unele număr de ori. 238 00:11:20,550 --> 00:11:24,130 Deci, în exemplul nostru, pasul suntem luare este de numărare de persoane în cameră. 239 00:11:24,130 --> 00:11:26,260 Sub linia doi este linie care descrie trei 240 00:11:26,260 --> 00:11:28,400 exact cum vom merge de numărare. 241 00:11:28,400 --> 00:11:31,720 Amprentei implică faptul că este linia de trei, care se va repeta. 242 00:11:31,720 --> 00:11:35,190 Deci, cu codul de pseudocod este spune este că, după incepand de la 0 243 00:11:35,190 --> 00:11:38,940 pentru fiecare persoană în camera vom crește n de 1 244 00:11:38,940 --> 00:11:41,310 Acum este acest algoritm corect? 245 00:11:41,310 --> 00:11:42,820 Ei bine, să-bang-ului pe el un pic. 246 00:11:42,820 --> 00:11:45,520 >> Funcționează în cazul în care există două persoane în cameră? 247 00:11:45,520 --> 00:11:46,420 Să vedem. 248 00:11:46,420 --> 00:11:48,500 În conformitate o vom inițializa n la 0. 249 00:11:48,500 --> 00:11:51,910 Pentru fiecare dintre aceste două persoane, apoi ne-am incrementa n de 1. 250 00:11:51,910 --> 00:11:55,570 Deci, în prima călătorie prin buclă, actualizăm n la 0 la 1. 251 00:11:55,570 --> 00:11:59,320 Pe cea de a doua călătorie prin care aceeași buclă, actualizăm n 1-2. 252 00:11:59,320 --> 00:12:02,850 Și astfel, prin acest algoritm scop, n este 2, care 253 00:12:02,850 --> 00:12:04,950 se potrivește într-adevăr numărul de persoane în cameră. 254 00:12:04,950 --> 00:12:06,040 Până în prezent, atât de bine. 255 00:12:06,040 --> 00:12:07,870 >> Ce zici de un caz colț, deși? 256 00:12:07,870 --> 00:12:11,090 Să presupunem că există 0 persoane în room-- în afară de mine, care-i 257 00:12:11,090 --> 00:12:12,420 face numărare. 258 00:12:12,420 --> 00:12:15,380 Într-o linie, vom inițializa din nou n la 0. 259 00:12:15,380 --> 00:12:17,810 De data aceasta însă, linie trei nu execută deloc 260 00:12:17,810 --> 00:12:19,610 deoarece nu există o persoană în cameră. 261 00:12:19,610 --> 00:12:23,540 Și așa n rămâne 0, care se potrivește într-adevăr numărul de persoane în cameră. 262 00:12:23,540 --> 00:12:24,670 Destul de simplu, nu? 263 00:12:24,670 --> 00:12:27,880 Dar de numărare oameni unul la un moment dat este destul de ineficient, de asemenea, nu? 264 00:12:27,880 --> 00:12:29,160 Desigur, putem face mai bine. 265 00:12:29,160 --> 00:12:33,440 De ce nu conta de două persoane la un moment dat, în loc de numărare unul, doi, trei, 266 00:12:33,440 --> 00:12:36,470 patru, cinci, șase, șapte, opt, și așa mai departe. 267 00:12:36,470 --> 00:12:39,106 De ce nu conta două, patru, șase, opt, și așa mai departe? 268 00:12:39,106 --> 00:12:40,670 Este chiar suna mai repede. 269 00:12:40,670 --> 00:12:41,940 Și cu siguranță este. 270 00:12:41,940 --> 00:12:44,490 >> Să-și exprime această optimizare în cod pseudocod. 271 00:12:44,490 --> 00:12:46,040 Să n egal 0. 272 00:12:46,040 --> 00:12:50,760 Pentru fiecare pereche de oameni în cameră, setați n egal cu n plus 2. 273 00:12:50,760 --> 00:12:52,360 Destul de schimbare de simplu, nu? 274 00:12:52,360 --> 00:12:56,560 Mai degrabă decât să numere oamenii la un moment dat, noi în loc să-i numeri doi la un moment dat. 275 00:12:56,560 --> 00:12:59,240 Acest algoritm, astfel, de două ori la fel de repede ca ultimul. 276 00:12:59,240 --> 00:13:00,530 Dar este corect? 277 00:13:00,530 --> 00:13:01,160 Să vedem. 278 00:13:01,160 --> 00:13:03,580 Funcționează în cazul în care există două persoane în cameră? 279 00:13:03,580 --> 00:13:05,800 Într-o linie, vom inițializa n la 0. 280 00:13:05,800 --> 00:13:09,160 Pentru că o pereche de oameni, apoi ne-am incrementa n de 2. 281 00:13:09,160 --> 00:13:11,910 Și așa de acest algoritm capăt n este 2, care 282 00:13:11,910 --> 00:13:13,910 se potrivește într-adevăr numărul de persoane în cameră. 283 00:13:13,910 --> 00:13:16,610 >> Să presupunem în continuare că există zero, persoane in camera. 284 00:13:16,610 --> 00:13:19,080 În conformitate o vom inițializa n la 0. 285 00:13:19,080 --> 00:13:21,260 Ca și înainte, linia trei nu totul executa 286 00:13:21,260 --> 00:13:25,270 deoarece nu există perechi de oameni în cameră, și așa n rămâne 0. 287 00:13:25,270 --> 00:13:27,840 Care într-adevăr se potrivește Numărul de persoane în cameră. 288 00:13:27,840 --> 00:13:30,520 Dar dacă există trei persoane în cameră? 289 00:13:30,520 --> 00:13:32,380 Cum functioneaza acest tarif algoritm? 290 00:13:32,380 --> 00:13:35,710 Să vedem, în linie una, am inițializa n la 0. 291 00:13:35,710 --> 00:13:39,140 Pentru o pereche de acei oameni, apoi ne-am incrementa n de 2. 292 00:13:39,140 --> 00:13:40,050 Dar atunci ce? 293 00:13:40,050 --> 00:13:42,340 Nu există un alt complet pereche de oameni în cameră, 294 00:13:42,340 --> 00:13:44,430 astfel încât nu se mai aplică linia doi. 295 00:13:44,430 --> 00:13:48,790 Și așa până la sfârșitul acestui algoritm, n este încă 2 care nu este corect. 296 00:13:48,790 --> 00:13:52,070 Într-adevăr, acest algoritm, a declarat pentru fi buggy, pentru că are o greșeală. 297 00:13:52,070 --> 00:13:54,070 >> Să atac cu unele Noul cod pseudocod. 298 00:13:54,070 --> 00:13:56,110 Să n egal 0. 299 00:13:56,110 --> 00:14:00,790 Pentru fiecare pereche de oameni în cameră, setați N egal cu n plus 2. 300 00:14:00,790 --> 00:14:05,410 În cazul în care o persoană rămâne nepereche, setat N egal cu n plus 1. 301 00:14:05,410 --> 00:14:09,340 Pentru a rezolva această problemă special, ne-am introdus în linie cu patru o condiție, 302 00:14:09,340 --> 00:14:12,120 altfel cunoscut ca un ramură, care doar execută 303 00:14:12,120 --> 00:14:14,890 dacă există o persoană pe care o nu ar putea asocia cu un alt. 304 00:14:14,890 --> 00:14:17,140 Iar acum, dacă nu e una, sau trei, 305 00:14:17,140 --> 00:14:21,550 sau orice număr impar de persoane în cameră, acest algoritm le va conta acum. 306 00:14:21,550 --> 00:14:22,810 Putem face chiar mai bine? 307 00:14:22,810 --> 00:14:25,890 Ei bine, am putea conta în câte trei, sau patru labe, sau chiar de cinci și zeci, 308 00:14:25,890 --> 00:14:29,390 dar dincolo de asta, o să te un pic dificil să sublinieze. 309 00:14:29,390 --> 00:14:32,900 >> La sfârșitul zilei, dacă executate de computere sau oameni, 310 00:14:32,900 --> 00:14:34,870 algoritmi sunt doar un set de instrucțiuni 311 00:14:34,870 --> 00:14:36,560 cu care pentru a rezolva problemele. 312 00:14:36,560 --> 00:14:38,360 Acestea au fost doar trei. 313 00:14:38,360 --> 00:14:41,860 Ce problemă ar tine rezolva cu un algoritm? 314 00:14:41,860 --> 00:14:44,261 >> David J. MALAN: Deci în mod deliberat, un program foarte simplu, 315 00:14:44,261 --> 00:14:46,260 un algoritm foarte simplu, pentru realizarea ceva 316 00:14:46,260 --> 00:14:48,280 foarte simplu, numărare Numărul de persoane în cameră. 317 00:14:48,280 --> 00:14:50,370 >> Dar să tachineze pe langa unele reprezentantului 318 00:14:50,370 --> 00:14:52,870 Caracteristici aici că sunt de fapt Va fi util chiar și atunci când 319 00:14:52,870 --> 00:14:54,880 de punere în aplicare cel mai mult complex de software. 320 00:14:54,880 --> 00:14:58,060 Deci, de exemplu, în această primă linie, avem ceea ce noi numim variabila, 321 00:14:58,060 --> 00:15:01,040 și de la algebra, esti în general familiar folosind x și y 322 00:15:01,040 --> 00:15:02,930 și z uneori, și așa mai departe. 323 00:15:02,930 --> 00:15:05,770 Dar, în programarea, variabile sunt încă, la sfârșitul zilei, 324 00:15:05,770 --> 00:15:06,680 foarte asemănător cu cel. 325 00:15:06,680 --> 00:15:09,910 Dar este, probabil, mai simplu de a gândi a unei variabile ca doar un container. 326 00:15:09,910 --> 00:15:13,520 Și, de fapt, e un număr de biți implementate într-un fel în hard disk 327 00:15:13,520 --> 00:15:16,410 sau în memoria computerului, dar mai mult pe faptul că, în viitor. 328 00:15:16,410 --> 00:15:17,670 E doar un container. 329 00:15:17,670 --> 00:15:20,310 Și dacă spui ceva ca să n egal 0, 330 00:15:20,310 --> 00:15:24,310 bine că e așa de asteptare această sticlă castron aici n, doar un nume arbitrar, 331 00:15:24,310 --> 00:15:26,230 și pune nimic în ea inițial. 332 00:15:26,230 --> 00:15:28,940 Deci valoarea acestui castron chiar acum este zero. 333 00:15:28,940 --> 00:15:31,380 Și, desigur, în cazul în care te percep într-o linie ulterioară, 334 00:15:31,380 --> 00:15:35,070 pentru a incrementa de fapt, unele linii de cod, ca și în acest al treilea linie aici, 335 00:15:35,070 --> 00:15:39,857 de 1, asta e cum ai spune ceea ce este Valoarea actuală a n, este 0, plus 1, 336 00:15:39,857 --> 00:15:41,690 a pus ceva ca o ping pong aici. 337 00:15:41,690 --> 00:15:45,140 Acum valoarea acestui variabila este destul de simplu de 1. 338 00:15:45,140 --> 00:15:50,064 Și ai putea extrapola foarte repede, dar acum e 2, acum e de 3, și așa mai departe. 339 00:15:50,064 --> 00:15:51,230 Deci, asta e tot o variabilă este. 340 00:15:51,230 --> 00:15:53,740 Este o piesă de stocare a stoca de fapt, unele date. 341 00:15:53,740 --> 00:15:55,050 Pentru moment este o minge de ping-pong. 342 00:15:55,050 --> 00:15:55,883 Acolo e un număr. 343 00:15:55,883 --> 00:15:58,910 Dar ar putea fi de cuvinte într-o dicționar, cum ar fi verificatorul ortografic 344 00:15:58,910 --> 00:16:02,300 Am făcut aluzie la miercuri pentru unul din seturi de probleme anul trecut. 345 00:16:02,300 --> 00:16:05,640 >> Acum, o altă idee cheie, care în mod similar este destul de intuitiv mi-ar pretinde, 346 00:16:05,640 --> 00:16:06,690 este cea a unei bucle. 347 00:16:06,690 --> 00:16:08,930 Și bucla în procesul de numărare toată lumea 348 00:16:08,930 --> 00:16:12,540 este, desigur, face același lucru lucru din nou și again-- fie una 349 00:16:12,540 --> 00:16:14,140 la un moment sau două la un moment dat. 350 00:16:14,140 --> 00:16:17,690 Și vă puteți exprima acest lucru în limba engleză, sau cod pseudocod, în orice număr de moduri, 351 00:16:17,690 --> 00:16:21,560 dar folosind acest prepoziție "pentru" este un mod foarte comun de a face asta. 352 00:16:21,560 --> 00:16:24,460 Pentru fiecare persoană în cameră, face acest lucru. 353 00:16:24,460 --> 00:16:25,350 Din nou și din nou. 354 00:16:25,350 --> 00:16:27,700 Iar faptul că este alin, linie de trei, 355 00:16:27,700 --> 00:16:29,840 înseamnă doar că ceea ce tu ar trebui să faci 356 00:16:29,840 --> 00:16:33,490 este lucrurile care se indentat sub linia doi în sine. 357 00:16:33,490 --> 00:16:35,590 Doar o convenție umană, dar unul comun 358 00:16:35,590 --> 00:16:39,010 cum vom vedea mai mare efectiv limbaje de programare de nivel. 359 00:16:39,010 --> 00:16:41,870 >> Acum pic mai interesant este atunci când vei ajunge într-un caz colț. 360 00:16:41,870 --> 00:16:43,970 De exemplu, un colț caz a fost atunci când există 361 00:16:43,970 --> 00:16:48,060 erau trei persoane, sau cinci, sau șapte, sau orice număr impar de persoane în cameră, 362 00:16:48,060 --> 00:16:51,630 pentru că faci asta de doi câte doi frâne în cele din urmă pentru că o să vă 363 00:16:51,630 --> 00:16:54,265 să fi dor de cineva, fie la foarte început sau la sfârșit 364 00:16:54,265 --> 00:16:55,390 în funcție de cum o faci. 365 00:16:55,390 --> 00:16:59,800 Și așa, acum, am această ramură, sau condiție, în cazul în care o persoană rămâne, 366 00:16:59,800 --> 00:17:04,490 apoi mergeți mai departe și se ocupe de asta persoană singuratic care nu au primit 367 00:17:04,490 --> 00:17:05,690 asociat cu altcineva. 368 00:17:05,690 --> 00:17:09,030 Deci, asta e ceea ce noi numim o condiție, sau o sucursală. 369 00:17:09,030 --> 00:17:11,500 >> Cod Acum pseudocod în general poate fi 370 00:17:11,500 --> 00:17:13,730 scris pentru a rezolva orice număr de probleme. 371 00:17:13,730 --> 00:17:16,490 Și ceea ce am crezut că ne-ar face aici este să ia un moment 372 00:17:16,490 --> 00:17:20,089 de a invita să spunem lui CS50 proprii Rob Bowden pe scena 373 00:17:20,089 --> 00:17:25,040 a fi insotiti de doi voluntari, care nu au nici o idee despre ceea ce așteaptă. 374 00:17:25,040 --> 00:17:26,890 O parte a mers în jos, cât mai curând am spus asta. 375 00:17:26,890 --> 00:17:28,700 Cum despre tine pe se încheie aici, haide sus. 376 00:17:28,700 --> 00:17:33,040 Și cum despre de mai departe departe, modul cum în spate. 377 00:17:33,040 --> 00:17:35,200 Înapoi rând, hai sus cu mâinile sus. 378 00:17:35,200 --> 00:17:36,475 Bine, și care e numele tău? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Anita. 380 00:17:36,960 --> 00:17:37,655 >> David J. MALAN: Anita. 381 00:17:37,655 --> 00:17:38,613 Bine, mă bucur să te cunosc. 382 00:17:38,613 --> 00:17:41,010 Permiteți-mi să vă prezint Rob Bowden. 383 00:17:41,010 --> 00:17:42,890 Acest lucru este Anita. 384 00:17:42,890 --> 00:17:44,033 Și care este numele tau? 385 00:17:44,033 --> 00:17:44,800 >> Kiersten: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> David J. MALAN: Kiersten. 387 00:17:46,020 --> 00:17:49,790 Kiersten, haide sus și întâlni Rob Bowden și Anita. 388 00:17:49,790 --> 00:17:51,036 Mă bucur să te cunosc. 389 00:17:51,036 --> 00:17:52,160 Kiersten: Mă bucur să te cunosc. 390 00:17:52,160 --> 00:17:53,368 David J. MALAN: Bine, Rob. 391 00:17:53,368 --> 00:17:54,650 ROB BOWDEN: Mă bucur să te cunosc. 392 00:17:54,650 --> 00:17:55,566 David J. MALAN: Anita. 393 00:17:55,566 --> 00:17:56,520 Kiersten: Hi Anita. 394 00:17:56,520 --> 00:17:58,686 David J. MALAN: Și dumneavoastră mai multe sute de colegii de clasă. 395 00:17:58,686 --> 00:18:02,490 Deci, acum lasă-mă să merg mai departe și trage up doar un simplu program aici 396 00:18:02,490 --> 00:18:05,690 pe Mac OS, care să mă las jot de fapt, unele note jos. 397 00:18:05,690 --> 00:18:09,570 Și dacă vreți să o ia fiecare Poziția la unul dintre aceste școli de acolo, 398 00:18:09,570 --> 00:18:16,360 lasă-mă să merg mai departe și începe o listă de cod pseudocod, dacă vreți. 399 00:18:16,360 --> 00:18:19,970 Și ceea ce vreau să fac aici, în cele din urmă este de tip pentru tine 400 00:18:19,970 --> 00:18:22,470 unele instrucțiuni care ne membri ai publicului sunt de fapt 401 00:18:22,470 --> 00:18:23,569 O să recite pentru noi. 402 00:18:23,569 --> 00:18:25,860 Lasă-mă să mergeți mai departe și doar schimba acest lucru pentru o listă numerotată 403 00:18:25,860 --> 00:18:27,720 pentru a se potrivi ceea ce făceam acolo. 404 00:18:27,720 --> 00:18:30,990 Și ceea ce am de gând să fac cu de ajutor, este scrie un program 405 00:18:30,990 --> 00:18:34,620 în pseudocod, cu care astia sunt de gând 406 00:18:34,620 --> 00:18:38,150 să pună în aplicare o aluna unt și gem. 407 00:18:38,150 --> 00:18:40,880 Deci, este, probabil, apropos de arata ceva unii dintre voi 408 00:18:40,880 --> 00:18:44,560 s-ar fi văzut pe internet pentru un moment enervant scurt. 409 00:18:44,560 --> 00:18:47,650 >> [MUSIC BUCKEWHEAT BOYS, "Unt de arahide  JELLY TIME "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 David J. MALAN: OK. 412 00:19:08,910 --> 00:19:10,050 Asta e destul de asta. 413 00:19:10,050 --> 00:19:12,690 Deci, aici între timp, am o pereche de Google Glasses care 414 00:19:12,690 --> 00:19:16,500 vom pune pe CS50 propriu Rob Bowden pentru a vedea lumea prin ochii lui. 415 00:19:16,500 --> 00:19:19,140 Și vom face tot posibilul în post de producție a țese de fapt 416 00:19:19,140 --> 00:19:23,100 filmul a ceea ce Rob vede acum, în această prelegere real 417 00:19:23,100 --> 00:19:26,420 videoclip cu doi nostru voluntari lângă el. 418 00:19:26,420 --> 00:19:28,480 Deci, ce am de gând să fac este, eu voi fi dactilografa. 419 00:19:28,480 --> 00:19:31,849 Avem scopul de aici scris de fapt un program de 420 00:19:31,849 --> 00:19:34,640 cu care să facă, în cele din urmă, o unt de arahide și jeleu de tip sandwich, 421 00:19:34,640 --> 00:19:37,680 dar acestea trei sunt de gând să se comporte ca și cum ele sunt calculatoare. 422 00:19:37,680 --> 00:19:40,638 Și calculatoare, la sfârșitul zilei, sunt de fapt dispozitive destul de prost. 423 00:19:40,638 --> 00:19:44,432 Sunt super-rapid, dar ei pot doar face, literalmente, ceea ce li se spune. 424 00:19:44,432 --> 00:19:46,890 Nu poți să spui doar face o aluna unt și gem. 425 00:19:46,890 --> 00:19:48,640 Trebuie să-i programeze să facă asta. 426 00:19:48,640 --> 00:19:51,420 Trebuie să le spui cu precizie ce să facă, 427 00:19:51,420 --> 00:19:54,400 mai puțin lucrurile merg oribil și, sperăm, amuzant strâmb. 428 00:19:54,400 --> 00:19:57,460 >> Deci, cu care a spus, avem nevoie de un apel de la public 429 00:19:57,460 --> 00:19:59,440 pentru ceea ce ar trebui să-și intensifice o fi, dacă scopul aici 430 00:19:59,440 --> 00:20:01,356 este de a face o aluna unt și gem. 431 00:20:01,356 --> 00:20:01,910 Da? 432 00:20:01,910 --> 00:20:03,647 >> Audiența: [inaudibil] sacul de pâine. 433 00:20:03,647 --> 00:20:05,230 David J. MALAN: Deschideți punga de pâine. 434 00:20:05,230 --> 00:20:08,360 Deci, dacă cei trei concurenți ar fi dori să continue să facă asta literalmente. 435 00:20:08,360 --> 00:20:12,394 Deschideți punga de pâine. 436 00:20:12,394 --> 00:20:15,810 >> [Audienta rîzînd] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 David J. MALAN: Deci, haideți să lucreze la asta. 439 00:20:22,300 --> 00:20:23,180 În regulă. 440 00:20:23,180 --> 00:20:25,400 Deci pasul doi, cum-- să luăm această continuare. 441 00:20:25,400 --> 00:20:26,480 Da, în partea din față. 442 00:20:26,480 --> 00:20:27,240 >> Audiența: [inaudibil] pâinea. 443 00:20:27,240 --> 00:20:27,735 >> David J. MALAN: Ce-i asta? 444 00:20:27,735 --> 00:20:28,836 >> Audiența: Scoateți pâinea. 445 00:20:28,836 --> 00:20:30,210 David J. MALAN: Scoateți pâinea. 446 00:20:30,210 --> 00:20:31,190 În mod similar succint. 447 00:20:31,190 --> 00:20:33,667 Mulțumesc. 448 00:20:33,667 --> 00:20:43,777 >> [Aplauze] 449 00:20:43,777 --> 00:20:44,860 David J. MALAN: Asta-i tot? 450 00:20:44,860 --> 00:20:48,830 OK, deci pasul doi se întâmplă pentru a fi elimina pâinea. 451 00:20:48,830 --> 00:20:51,790 Bine, cineva vrea să ne scrie o propoziție mai lungă? 452 00:20:51,790 --> 00:20:52,640 Altcineva? 453 00:20:52,640 --> 00:20:53,920 Un pic mai mult [neauzit]. 454 00:20:53,920 --> 00:20:54,810 Nu, nimic acum. 455 00:20:54,810 --> 00:20:56,094 Da? 456 00:20:56,094 --> 00:20:58,900 >> Audiența: Locul doi felii unul lângă celălalt. 457 00:20:58,900 --> 00:21:03,575 >> David J. MALAN: Locul doi felii unul lângă celălalt. 458 00:21:03,575 --> 00:21:06,420 >> [Audienta rîzînd] 459 00:21:06,420 --> 00:21:09,590 >> David J. MALAN: Locul doi felii unul lângă celălalt. 460 00:21:09,590 --> 00:21:11,334 Pasul patru. 461 00:21:11,334 --> 00:21:12,816 Da? 462 00:21:12,816 --> 00:21:14,792 >> Audiența: Ia dvs. mână și a stabilit ușor 463 00:21:14,792 --> 00:21:17,756 pe partea de sus a capacului unt de arahide. 464 00:21:17,756 --> 00:21:19,710 >> [Audienta rîzînd] 465 00:21:19,710 --> 00:21:21,710 Audiența: [inaudibil] lângă untul de arahide. 466 00:21:21,710 --> 00:21:21,870 David J. MALAN: Ce? 467 00:21:21,870 --> 00:21:22,520 Spune că din nou. 468 00:21:22,520 --> 00:21:26,308 >> Audiența: Deșurubați capacul și a pus l ușor lângă untul de arahide. 469 00:21:26,308 --> 00:21:31,490 >> David J. MALAN: Pune-l ușor lângă untul de arahide. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, progres. 472 00:21:40,090 --> 00:21:41,080 Pasul cinci. 473 00:21:41,080 --> 00:21:42,380 Excelent. 474 00:21:42,380 --> 00:21:43,261 Da? 475 00:21:43,261 --> 00:21:44,163 >> Pick up cuțit. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 David J. MALAN: Pick up cuțit. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, pasul șase. 480 00:21:53,631 --> 00:21:54,130 Da? 481 00:21:54,130 --> 00:21:56,237 >> Audiența: Țineți cuțit de mâner. 482 00:21:56,237 --> 00:21:57,945 David J. MALAN: Tine cuțit de mâner. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Țineți cuțit de mâner. 485 00:22:03,230 --> 00:22:04,880 Pasul șapte. 486 00:22:04,880 --> 00:22:05,692 Da? 487 00:22:05,692 --> 00:22:10,030 >> Audiența: [inaudibil] cuțit în arahide unt și cât mai puțin afară [neauzit]. 488 00:22:10,030 --> 00:22:13,070 >> David J. MALAN: Pune cuțit in-- I auzit "cuțit pus în unt de arahide 489 00:22:13,070 --> 00:22:19,500 și să ia cât mai puțin ca posibil. " 490 00:22:19,500 --> 00:22:22,480 Apropo, scoateți hârtia mai întâi. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Bine, pasul nouă. 493 00:22:31,890 --> 00:22:34,910 Pasul nouă. 494 00:22:34,910 --> 00:22:35,624 Pasul nouă. 495 00:22:35,624 --> 00:22:37,290 Nu am făcut de fapt un sandwich încă. 496 00:22:37,290 --> 00:22:37,790 Da? 497 00:22:37,790 --> 00:22:41,570 Audiența: Folosind cuțit în unt de arahide, aplica unt de arahide pe pâine spus. 498 00:22:41,570 --> 00:22:47,440 >> David J. MALAN: Utilizarea cuțit în unt de arahide, unt de arahide se aplică pe 499 00:22:47,440 --> 00:22:48,736 a spus pâine. 500 00:22:48,736 --> 00:22:56,030 >> [Audienta rîzînd] 501 00:22:56,030 --> 00:22:59,480 David J. MALAN: Toate pas corect 10. 502 00:22:59,480 --> 00:23:01,762 Pasul 10. 503 00:23:01,762 --> 00:23:02,750 Da? 504 00:23:02,750 --> 00:23:05,220 >> Audiența: Gust de arahide unt pentru a asigura calitatea. 505 00:23:05,220 --> 00:23:15,960 >> [Audienta rîzînd] 506 00:23:15,960 --> 00:23:16,960 David J. MALAN: Pasul 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Pasul 11. 509 00:23:21,340 --> 00:23:22,101 Pasul 11. 510 00:23:22,101 --> 00:23:22,600 Haide. 511 00:23:22,600 --> 00:23:23,099 Da? 512 00:23:23,099 --> 00:23:24,208 Chiar acolo. 513 00:23:24,208 --> 00:23:25,840 >> Audiența: alege cu atenție jeleu. 514 00:23:25,840 --> 00:23:28,220 >> David J. MALAN: alege cu atenție jeleu. 515 00:23:28,220 --> 00:23:29,970 OK, și apoi de altă parte a crescut. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Chiar în spatele tău. 518 00:23:33,520 --> 00:23:35,761 Da, în albastru. 519 00:23:35,761 --> 00:23:40,671 >> Audiența: Bine, scoateți capac din [inaudibil], da, 520 00:23:40,671 --> 00:23:42,635 scoate capacul din jeleu. 521 00:23:42,635 --> 00:23:43,617 >> [Audienta rîzînd] 522 00:23:43,617 --> 00:23:44,742 >> David J. MALAN: De la jeleu. 523 00:23:44,742 --> 00:23:45,581 Ha, ha. 524 00:23:45,581 --> 00:23:48,967 >> [Audienta rîzînd] 525 00:23:48,967 --> 00:23:49,800 David J. MALAN: Și? 526 00:23:49,800 --> 00:23:52,490 Audiența: Și abia matura orice [neauzit]. 527 00:23:52,490 --> 00:23:59,536 [Audienta rîzînd] 528 00:23:59,536 --> 00:24:04,456 Audiența: Desigur, înainte de [auzite], scoateți hârtia din jeleu. 529 00:24:04,456 --> 00:24:06,940 David J. MALAN: Scoateți hârtia din jeleu. 530 00:24:06,940 --> 00:24:08,229 Pasul 14. 531 00:24:08,229 --> 00:24:09,020 Suntem aproape acolo. 532 00:24:09,020 --> 00:24:09,857 Da? 533 00:24:09,857 --> 00:24:12,600 >> Audiența: Invert sticlă jeleu înainte de toate cade. 534 00:24:12,600 --> 00:24:16,515 >> David J. MALAN: Invert jeleu sticlă înainte de jeleu cade. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Pasul 15. 537 00:24:19,890 --> 00:24:21,130 >> Audiența: Puneți la loc capacul. 538 00:24:21,130 --> 00:24:22,463 >> David J. MALAN: Puneți la loc capacul. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Pasul 16. 541 00:24:28,190 --> 00:24:28,931 Da? 542 00:24:28,931 --> 00:24:29,806 >> Audiența: [inaudibil] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 David J. MALAN: Spune asta din nou. 545 00:24:35,400 --> 00:24:38,100 Audiența: Ia capacul de pe jeleu dumneavoastră. 546 00:24:38,100 --> 00:24:39,650 David J. MALAN: Off jeleu dumneavoastră. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Deci, care întradevăr Oops. 549 00:24:49,510 --> 00:24:50,420 Haide. 550 00:24:50,420 --> 00:24:51,740 Puneți la loc capacul. 551 00:24:51,740 --> 00:24:56,660 Pune cap-- Ai spus scoate capacul din jeleu. 552 00:24:56,660 --> 00:24:58,950 Simțiți-vă ca suntem într-un pic de o buclă. 553 00:24:58,950 --> 00:24:59,640 Pasul 17. 554 00:24:59,640 --> 00:25:00,398 Da? 555 00:25:00,398 --> 00:25:02,639 >> Audiența: [inaudibil] 556 00:25:02,639 --> 00:25:03,930 David J. MALAN: Spune asta din nou. 557 00:25:03,930 --> 00:25:05,150 Audiența: [inaudibil] 558 00:25:05,150 --> 00:25:07,835 David J. MALAN: Du-te înapoi la step-- 559 00:25:07,835 --> 00:25:10,110 Audiența: [inaudibil] 560 00:25:10,110 --> 00:25:13,760 David J. MALAN: Eliminare capac de unt de arahide. 561 00:25:13,760 --> 00:25:14,492 Da? 562 00:25:14,492 --> 00:25:16,430 >> Audiența: Abandonați toate jeleu pe pâine. 563 00:25:16,430 --> 00:25:19,040 >> David J. MALAN: Arunca toate jeleu pe pâine. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 David J. MALAN: Suntem aproape acolo. 566 00:25:26,830 --> 00:25:27,800 Pasul 19. 567 00:25:27,800 --> 00:25:30,250 >> Audiența: Îndepărtați excesul de jeleu. 568 00:25:30,250 --> 00:25:31,720 >> David J. MALAN: Haha, jeleu. 569 00:25:31,720 --> 00:25:36,615 >> [Aplauze] 570 00:25:36,615 --> 00:25:39,240 David J. MALAN: De ce nu noi-- încă un pas pentru a lua această casă. 571 00:25:39,240 --> 00:25:41,720 Încă un pas și apoi vom servi sandwich-uri. 572 00:25:41,720 --> 00:25:42,900 Da? 573 00:25:42,900 --> 00:25:45,570 >> Audiența: [inaudibil] 574 00:25:45,570 --> 00:25:50,704 >> David J. MALAN: În timp ce orice tip sandwich liniuță Să remains-- lui asta-- mânca. 575 00:25:50,704 --> 00:25:56,400 >> [Râsete] 576 00:25:56,400 --> 00:26:00,395 >> David J. MALAN: Bine, mulțumesc să voluntarii nostri aici. 577 00:26:00,395 --> 00:26:06,150 >> [Aplauze} 578 00:26:06,150 --> 00:26:08,940 >> David J. MALAN: Avem ceva frumos despărțire de cadouri pentru fiecare dintre voi. 579 00:26:08,940 --> 00:26:14,350 Propria ta unt de arahide, jeleu, și pâine pentru a aduce înapoi acasă. 580 00:26:14,350 --> 00:26:15,774 Mulțumesc. 581 00:26:15,774 --> 00:26:17,118 >> Kiersten: Mulțumesc. 582 00:26:17,118 --> 00:26:18,618 David J. MALAN: [inaudibil] bun venit. 583 00:26:18,618 --> 00:26:21,849 [Aplauze] 584 00:26:21,849 --> 00:26:24,390 David J. MALAN: Deci, aceasta este, de Desigur, un exemplu ridicol. 585 00:26:24,390 --> 00:26:24,890 Corect? 586 00:26:24,890 --> 00:26:28,890 Dar nu un fel de dezvăluie modul în care ne oamenii iau doar claritate de la sine. 587 00:26:28,890 --> 00:26:30,890 Și faptul am fost vorbesc cu un alt om, 588 00:26:30,890 --> 00:26:33,300 el sau ea doar stie ce vrei sa spui. 589 00:26:33,300 --> 00:26:35,220 >> Calculatoarele nu sunt de gând să știi ce vrei să spui, 590 00:26:35,220 --> 00:26:37,430 chiar atunci când se utilizează, ca suntem pe cale să facem astăzi, 591 00:26:37,430 --> 00:26:42,300 programare ceva în Scratch, o povara și picătură, limba puzzle stil bucată. 592 00:26:42,300 --> 00:26:44,310 Chiar și proiectat pentru tineri copii, aveți 593 00:26:44,310 --> 00:26:48,726 să fie atât de explicit și atât de literal cu ce vrei programul dumneavoastră de a face. 594 00:26:48,726 --> 00:26:50,600 Acum în cele din urmă, suntem va fi de programare 595 00:26:50,600 --> 00:26:53,550 nu în cod pseudocod, Engleză ca sintaxă, 596 00:26:53,550 --> 00:26:56,370 dar cod sau, mai corect, cod sursă. 597 00:26:56,370 --> 00:26:59,260 Codul sursă este doar modul fantezie pentru a descrie cod de fapt 598 00:26:59,260 --> 00:27:01,730 scrie cu o tastatură care este nu în limba engleză în sine. 599 00:27:01,730 --> 00:27:06,480 Este scris în C sau Java sau C ++ sau ceva cum ar fi faptul că, așa cum vom vedea în curând. 600 00:27:06,480 --> 00:27:09,510 >> Și, de fapt, doar pentru a speria un puțini dintre voi, la prima vedere, 601 00:27:09,510 --> 00:27:13,769 acesta este un program scris într-o limbă numita C. Dar, pentru a ne-o sperie unii dintre voi, 602 00:27:13,769 --> 00:27:15,560 veți complet înțeleg ce se întâmplă 603 00:27:15,560 --> 00:27:18,980 pe veni lunea viitoare, atunci când se vine vorba de ceva de genul asta. 604 00:27:18,980 --> 00:27:20,510 Sincer, aceasta este o limbă mai veche. 605 00:27:20,510 --> 00:27:22,430 Este destul de arcane, dar este reprezentativ 606 00:27:22,430 --> 00:27:26,120 de o mulțime de limbi în aceste zile că au o mulțime de paranteze și creț 607 00:27:26,120 --> 00:27:28,630 bretele si ghilimele și semne punct și virgulă. 608 00:27:28,630 --> 00:27:30,780 Și o mulțime de acest lucruri sintactic care nu este 609 00:27:30,780 --> 00:27:32,450 la toate interesant punct de vedere intelectual. 610 00:27:32,450 --> 00:27:35,790 Într-adevăr, este o distragere totală de la ideile foarte simple 611 00:27:35,790 --> 00:27:37,370 care sunt ne mirat în față. 612 00:27:37,370 --> 00:27:41,760 Acest program, cum s-ar putea ghici doar, printuri la ecranul computerului cuiva 613 00:27:41,760 --> 00:27:44,070 cuvintele "hello world virgulă." 614 00:27:44,070 --> 00:27:44,860 Asta este. 615 00:27:44,860 --> 00:27:46,580 Deci clar, nu e o mulțime de lucruri care-i 616 00:27:46,580 --> 00:27:48,970 stea în calea de unele evidență acolo, 617 00:27:48,970 --> 00:27:52,490 dar o să alunece foarte repede departe și să fie complet intuitiv. 618 00:27:52,490 --> 00:27:55,617 >> Într-adevăr, ceea ce vom face astăzi se distila acest destul de complex 619 00:27:55,617 --> 00:27:58,950 Programul cauta, care din nou va veni să înțeleagă rapid, dar la ceva 620 00:27:58,950 --> 00:27:59,710 mult mai simplu. 621 00:27:59,710 --> 00:28:01,640 Să spunem doar că ceea ce ne referim. 622 00:28:01,640 --> 00:28:05,590 Să desena o imagine a ceea ce ne referim, cu titlu de aceste piese de puzzle aici. 623 00:28:05,590 --> 00:28:09,110 >> Deci, aceasta este o programare limbă cunoscută sub numele de Scratch. 624 00:28:09,110 --> 00:28:11,080 Acesta a fost dezvoltat de MIT. 625 00:28:11,080 --> 00:28:14,830 Și ceea ce veți vedea în problema setat la zero, care va fi lansat mai târziu în seara asta, 626 00:28:14,830 --> 00:28:18,980 vom avea de a merge la acest URL aici scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 Și au un web interfață bazată prin care 628 00:28:20,940 --> 00:28:22,540 va scrie primul program. 629 00:28:22,540 --> 00:28:25,330 Sau cei dintre voi cu prealabile experiență, două programe, 630 00:28:25,330 --> 00:28:28,090 dar într-un mediu care este probabil, un pic nefamiliar și că 631 00:28:28,090 --> 00:28:32,930 vă va împinge să creeze ceva folosind acest mediu foarte vizual. 632 00:28:32,930 --> 00:28:35,940 >> Acum, ce am de gând să fac aici este deschide programul in sine. 633 00:28:35,940 --> 00:28:41,911 Ea există, nu numai ca un browser web, dar, de asemenea, ca o Programul de 634 00:28:41,911 --> 00:28:44,660 astfel încât să puteți folosi de fapt dacă nu aveți acces la internet. 635 00:28:44,660 --> 00:28:46,743 Și am de gând să fac asta aici, în Sanders, doar 636 00:28:46,743 --> 00:28:49,580 în cazul în care Wi-Fi nu coopereze super-bine. 637 00:28:49,580 --> 00:28:52,640 Și ceea ce am de gând să faceți este să punct la câteva caracteristici ale acestui program. 638 00:28:52,640 --> 00:28:55,720 Deci, să fie clar, eu am doar dublu clic pe pictograma de pe desktop-ul meu, 639 00:28:55,720 --> 00:28:59,830 sau echivalent plecat la scratch.mit.edu, și este tras în sus această fereastră. 640 00:28:59,830 --> 00:29:01,650 Acesta este un mediu de programare. 641 00:29:01,650 --> 00:29:04,110 Este o bucată de software care unii dintre prietenii nostri de la MIT 642 00:29:04,110 --> 00:29:08,850 a scris că hai să ne și voi scrie programe într-un limbaj numit Scratch. 643 00:29:08,850 --> 00:29:12,010 >> Acum, acest lucru se întâmplă să fie un pisică care, de asemenea, numit Scratch 644 00:29:12,010 --> 00:29:13,890 iar aceasta este lumea lui, în care el trăiește. 645 00:29:13,890 --> 00:29:17,175 Aceasta este etapa, ca să spunem așa, că dreptunghi pe colțul din stânga sus. 646 00:29:17,175 --> 00:29:18,800 Și el nu trebuie să arate ca o pisica. 647 00:29:18,800 --> 00:29:20,591 Puteți să-l uite ca nimic și tu 648 00:29:20,591 --> 00:29:23,700 poate avea mai multe astfel de sprite, sau caractere, într-un program. 649 00:29:23,700 --> 00:29:27,450 Între timp, pe aici din extrema drept, este o ardezie mare gol. 650 00:29:27,450 --> 00:29:30,260 Și acest lucru este în cazul în care, într-o clipă, vom începe de programare 651 00:29:30,260 --> 00:29:32,750 prin tragere și plasare aceste puzzle grafic 652 00:29:32,750 --> 00:29:35,300 piese care sunt corect aici în mijloc. 653 00:29:35,300 --> 00:29:38,140 Și există mult mai mulți decât ne vom petrece timpul pe aici în clasă 654 00:29:38,140 --> 00:29:40,080 pentru că veți găsi că toate sunt destul de intuitiv. 655 00:29:40,080 --> 00:29:41,788 Din nou, este proiectat pentru copii, dar ne-am 656 00:29:41,788 --> 00:29:45,759 să-l utilizați pentru a tachineze pe langa unele dintre cele idei fundamentale ale variabilelor, mai rapide, 657 00:29:45,759 --> 00:29:48,050 condiții, și, în curând, lucrurile cum ar fi funcții și evenimente 658 00:29:48,050 --> 00:29:51,810 și fire și alte lucruri de lux vom ajunge la timp, înainte de a crea de fapt 659 00:29:51,810 --> 00:29:53,840 ceva de la zero. 660 00:29:53,840 --> 00:29:54,810 Joc de cuvinte destinate. 661 00:29:54,810 --> 00:29:58,740 >> Acum, ce am de gând să fac aici este click pe nu mișcare, dar de control. 662 00:29:58,740 --> 00:30:01,400 Și acesta este doar un clasificare a aici-- 663 00:30:01,400 --> 00:30:03,150 și văd un alt Culoarea set de blocuri. 664 00:30:03,150 --> 00:30:05,030 Dar observați câteva cuvinte familiare. 665 00:30:05,030 --> 00:30:07,830 "Dacă" și "altfel dacă" și "repeta." 666 00:30:07,830 --> 00:30:10,440 Și puteți ghici, probabil, care este o reminiscență a filialei, 667 00:30:10,440 --> 00:30:12,870 sau condițiile-am văzut, și chiar construcția looping. 668 00:30:12,870 --> 00:30:14,760 Deci avem blocuri similare aici. 669 00:30:14,760 --> 00:30:16,720 Dar cel mai interesant unul este cel de aici. 670 00:30:16,720 --> 00:30:20,690 Când acest steag verde este apasat, aceasta, pentru cei cu programare prealabilă 671 00:30:20,690 --> 00:30:23,110 experiență, este echivalent la o funcție principală. 672 00:30:23,110 --> 00:30:25,300 Dar pentru cei nefamiliarizati, aceasta este piesa de puzzle 673 00:30:25,300 --> 00:30:27,320 care va lovi cu piciorul începe întreg programul nostru. 674 00:30:27,320 --> 00:30:31,350 Aceasta înseamnă, literal, atunci când merg, în această Programul, și faceți clic pe un flag-- verde 675 00:30:31,350 --> 00:30:35,560 pe care o puteți vedea aici, în colțul din stânga sus al UI, 676 00:30:35,560 --> 00:30:38,570 astfel vedea steagul verde lângă stația de semnul roșu? 677 00:30:38,570 --> 00:30:41,475 Când m-am faceți clic pe asta, mea Programul se va rula. 678 00:30:41,475 --> 00:30:43,850 Acum, am de gând să fac ceva super-simplu cu Scratch. 679 00:30:43,850 --> 00:30:46,640 Am de gând să merg mai departe și du-te la panoul de look 680 00:30:46,640 --> 00:30:50,010 aici, unde am o grămadă de piese de puzzle violet, 681 00:30:50,010 --> 00:30:53,887 și am de gând să mergeți mai departe și de a face ceva super-simplu ca, spune. 682 00:30:53,887 --> 00:30:55,720 Și notificare atunci-- acest text în caseta de alb 683 00:30:55,720 --> 00:30:59,290 este editable-- am de gând să spun "Bună ziua lume", la fel ca noi 684 00:30:59,290 --> 00:31:01,470 a făcut în acest text versiune în urmă o clipă. 685 00:31:01,470 --> 00:31:05,920 Și acum, dacă mă duc și faceți clic pe acest steag verde, m-am programat acum. 686 00:31:05,920 --> 00:31:07,810 Nu este o deosebit de program interesant, 687 00:31:07,810 --> 00:31:09,760 dar am făcut computerul face ceva. 688 00:31:09,760 --> 00:31:13,120 Am început un program și o a făcut ceea ce i-am spus să facă. 689 00:31:13,120 --> 00:31:16,170 Acum, eu pot continua să drag and drop mai mult și mai mult din aceste piese de puzzle 690 00:31:16,170 --> 00:31:19,220 și ei vor cupla, dar hai palmă unele terminologie pe aici 691 00:31:19,220 --> 00:31:21,680 că vom vedea recurente parcursul cursului, 692 00:31:21,680 --> 00:31:24,610 și într-adevăr în toată informatică și programarea mai general. 693 00:31:24,610 --> 00:31:27,990 >> Acest "spune" bloc, în purpuriu, să doar începe de asteptare o declarație. 694 00:31:27,990 --> 00:31:29,240 E ca o declarație de fapt. 695 00:31:29,240 --> 00:31:30,380 Faceți acest lucru. 696 00:31:30,380 --> 00:31:32,590 Deci, este o categorie de instrucțiuni pe care le 697 00:31:32,590 --> 00:31:36,760 s-ar putea alimenta un calculator ca parte a unui program sau a unui algoritm. 698 00:31:36,760 --> 00:31:39,270 Și pentru a fi clar, ai probabil luate pentru a acordat 699 00:31:39,270 --> 00:31:41,930 pe care le au programe pe computer. 700 00:31:41,930 --> 00:31:45,850 Și ei sunt un fel de algoritmi, dar o Programul este într-adevăr o grămadă de algoritmi 701 00:31:45,850 --> 00:31:47,160 că unii oameni au scris. 702 00:31:47,160 --> 00:31:49,040 Ei ambalate în sus și l-au vândut, astfel încât să, 703 00:31:49,040 --> 00:31:51,330 sau au postat pe un site pentru tine pentru a descărca. 704 00:31:51,330 --> 00:31:54,930 Deci, un program este doar un grămadă de zerouri și a celor 705 00:31:54,930 --> 00:31:56,970 că, într-un fel, oamenii creat. 706 00:31:56,970 --> 00:32:00,080 Și aceste modele de zerouri și cele reprezenta lucruri, în cele din urmă, 707 00:32:00,080 --> 00:32:04,030 cum ar fi sau "play" salut lume " această muzică "sau" juca acest videoclip " 708 00:32:04,030 --> 00:32:05,129 sau "trimite un e-mail." 709 00:32:05,129 --> 00:32:06,920 Dar să ne întoarcem la mod mai detaliat ce 710 00:32:06,920 --> 00:32:08,780 un program este atunci când, te, scrie-le. 711 00:32:08,780 --> 00:32:11,320 >> Iată un alt statement-- "Așteptați o secundă." 712 00:32:11,320 --> 00:32:14,330 Nu am folosit acest încă, dar dacă vreau programul meu pentru a întrerupe pentru un moment 713 00:32:14,330 --> 00:32:16,540 de a face ceva, eu pot spune acest lucru. 714 00:32:16,540 --> 00:32:18,450 Așteaptă o secundă. 715 00:32:18,450 --> 00:32:20,150 Acum, o alta ar putea fi "reda sunetul." 716 00:32:20,150 --> 00:32:23,270 Deci, acest lucru este unic la zero, se are capacitatea de a rula sunete. 717 00:32:23,270 --> 00:32:26,130 Deci, o declarație s-ar putea utilizare este, aici, "play sunet." 718 00:32:26,130 --> 00:32:29,530 Între timp, expresie booleană, astfel încât acesta este un cuvânt crescator 719 00:32:29,530 --> 00:32:34,490 numit după doar un tip pe nume Mr. Bool, iar acest lucru este tot despre o întrebare. 720 00:32:34,490 --> 00:32:37,470 Adevărat sau false-- este mouse-ul jos? 721 00:32:37,470 --> 00:32:41,100 O expresie booleană este doar unele expresie în limba engleză 722 00:32:41,100 --> 00:32:42,860 care este fie adevărat sau fals. 723 00:32:42,860 --> 00:32:44,140 Fie pornit sau oprit. 724 00:32:44,140 --> 00:32:45,130 Fie una sau zero. 725 00:32:45,130 --> 00:32:46,960 Vă puteți gândi la ea în orice număr de moduri, 726 00:32:46,960 --> 00:32:49,220 dar este fie adevărat sau acest fals, în cele din urmă. 727 00:32:49,220 --> 00:32:52,540 Deci, "mouse-ul în jos semn de întrebare," că ar fi o expresie booleană. 728 00:32:52,540 --> 00:32:54,300 Și vă puteți gândi la alții, poate. 729 00:32:54,300 --> 00:32:57,510 De exemplu, "este numărul din stânga mai puțin decât numărul corect? " 730 00:32:57,510 --> 00:32:59,410 Aceasta, de asemenea, ar fi o expresie booleană. 731 00:32:59,410 --> 00:33:01,540 "Mai puțin de" este o expresie booleană. 732 00:33:01,540 --> 00:33:03,280 >> Acesta, de asemenea, "indicatorul mouse-ului se ating." 733 00:33:03,280 --> 00:33:05,196 Nu sunt sigur de ce ei a numit-o indicatorul mouse-ului. 734 00:33:05,196 --> 00:33:08,430 Aceasta înseamnă doar, este cursorul, este săgeată pe ecran, atingeți pisica, 735 00:33:08,430 --> 00:33:09,022 de exemplu. 736 00:33:09,022 --> 00:33:10,480 Sau un alt aspect al ecranului. 737 00:33:10,480 --> 00:33:13,710 Și este o întrebare, din nou, și care denotă o expresie booleană. 738 00:33:13,710 --> 00:33:17,130 Ceva care s-ar putea doresc să utilizeze într-o stare. 739 00:33:17,130 --> 00:33:19,100 Deci, vom ajunge la faptul că, în doar o clipă. 740 00:33:19,100 --> 00:33:20,350 Puteți "și" lucruri împreună. 741 00:33:20,350 --> 00:33:23,099 Deci, dacă doriți să verificați dacă această este cazul și că este cazul, 742 00:33:23,099 --> 00:33:25,580 puteți utiliza un "și" bloc de genul asta. 743 00:33:25,580 --> 00:33:26,850 Și aici este această condiție. 744 00:33:26,850 --> 00:33:31,290 Observați forma mica deschidere în partea de sus a acestei piese de puzzle galben, 745 00:33:31,290 --> 00:33:34,480 este o reminiscență a formei că tocmai am văzut în urmă cu o clipă. 746 00:33:34,480 --> 00:33:37,920 Fiecare dintre aceste expresii booleene au aceste margini evidențiate 747 00:33:37,920 --> 00:33:39,030 pe stânga și dreapta. 748 00:33:39,030 --> 00:33:43,140 Și asta pentru că oamenii de la MIT a decis care prin forme transportoare vizual, 749 00:33:43,140 --> 00:33:45,780 puteți fel de a ajuta oamenii, studenți și copii deopotrivă, 750 00:33:45,780 --> 00:33:47,650 la fel de a umple golurile literalmente. 751 00:33:47,650 --> 00:33:49,780 >> Acum, că puzzle-- că deschidere este un pic mai mic, 752 00:33:49,780 --> 00:33:52,750 și cum vom vedea în cadrul programului, în Scratch, ea va crește pentru a se potrivi. 753 00:33:52,750 --> 00:33:54,830 Se va menține forma, în cele din urmă. 754 00:33:54,830 --> 00:33:58,350 Deci, o condiție să vă decideți "Ar trebui să fac ceva sau nu?" 755 00:33:58,350 --> 00:34:00,470 O expresie booleană este întrebarea reală 756 00:34:00,470 --> 00:34:04,100 pe care îl utilizați pentru a decide să mă duc la la stânga sau să mă duc la dreapta 757 00:34:04,100 --> 00:34:06,710 Când mă întâlnesc cu acest așa-numitele răscruce? 758 00:34:06,710 --> 00:34:07,980 Puteți avea două ramuri. 759 00:34:07,980 --> 00:34:10,909 Dacă ceva este adevărat, nu aceasta, mai du-te în acest fel, 760 00:34:10,909 --> 00:34:14,590 sau poti sa faci doar nimic la toate, ca acest bloc implicite. 761 00:34:14,590 --> 00:34:16,360 În mod similar, putem cuib aceste lucruri. 762 00:34:16,360 --> 00:34:20,204 Deci, dacă doriți să-și tripleze furculiță în rutier, fie a face acest lucru sau acest lucru sau că, 763 00:34:20,204 --> 00:34:21,870 poti doar cuib aceste lucruri împreună. 764 00:34:21,870 --> 00:34:24,520 Și începe pentru a obține un pic urât, în cele din urmă, pentru sigur, 765 00:34:24,520 --> 00:34:26,120 dar logica este în continuare la fel. 766 00:34:26,120 --> 00:34:28,000 Puteți citi literalmente acest sus în jos 767 00:34:28,000 --> 00:34:33,290 și se spune ce se pret-- dacă acest Este adevărat, face acest lucru, altfel, dacă altceva. 768 00:34:33,290 --> 00:34:36,179 >> O bucla nu se mai simplă în Scratch. 769 00:34:36,179 --> 00:34:37,422 Pentru totdeauna face următoarele. 770 00:34:37,422 --> 00:34:39,880 Acum, nu s-ar putea crede poate face mult pentru că acolo nu e 771 00:34:39,880 --> 00:34:42,839 mult spațiu între partea de sus și partea de jos a acestui deschidere piesă de puzzle. 772 00:34:42,839 --> 00:34:45,671 Dar veți vedea Scratch este de gând să să crească pentru a se potrivi cât mai multe piese de puzzle 773 00:34:45,671 --> 00:34:47,060 cum vrei sa se ghiftui acolo. 774 00:34:47,060 --> 00:34:48,960 O altă buclă ar putea fi și-a exprimat cu repeta. 775 00:34:48,960 --> 00:34:51,590 Dacă știți în avans, "am vrei sa faci ceva de 10 ori, " 776 00:34:51,590 --> 00:34:54,010 vă pot spune doar Scratch de a face ceva de 10 ori. 777 00:34:54,010 --> 00:34:57,260 Și, între timp, putem avea variabile. 778 00:34:57,260 --> 00:34:59,572 Deci, aici este o una arbitrară, e portocaliu în acest caz, 779 00:34:59,572 --> 00:35:00,780 iar acest lucru este un turneu vârtej de vânt. 780 00:35:00,780 --> 00:35:04,540 Din nou, veți găsi acest lucru foarte accesibil odată ce începi să indicând și făcând clic. 781 00:35:04,540 --> 00:35:07,930 Am numit n mea variabil, dar eu ar fi numit-o tot ce vreau, 782 00:35:07,930 --> 00:35:11,280 și eu o setare aici, în acest exemplu arbitrar, la zero. 783 00:35:11,280 --> 00:35:14,250 >> Acum, văzând un program de genul salut lumea nu este tot ceea ce convingatoare, 784 00:35:14,250 --> 00:35:17,900 Să fapt deschide ceva că un fost student a făcut. 785 00:35:17,900 --> 00:35:23,100 Lasă-mă să mergeți mai departe și să se deschidă, de exemplu, acesta aici, 786 00:35:23,100 --> 00:35:26,780 pentru care mi-ar placea pentru a avea un voluntar. 787 00:35:26,780 --> 00:35:28,450 Bine, cum despre-- să mergem mai departe. 788 00:35:28,450 --> 00:35:29,240 Da, haide sus. 789 00:35:29,240 --> 00:35:30,056 Care e numele tău? 790 00:35:30,056 --> 00:35:30,635 >> ABBY: Abby. 791 00:35:30,635 --> 00:35:32,010 David J. MALAN: Abby, haide sus. 792 00:35:32,010 --> 00:35:35,930 Te-ai jucat vreodată acest joc înainte? 793 00:35:35,930 --> 00:35:36,430 ABBY: Nu 794 00:35:36,430 --> 00:35:37,370 David J. MALAN: Bine. 795 00:35:37,370 --> 00:35:38,380 David, mă bucur să te cunosc. 796 00:35:38,380 --> 00:35:39,620 Vino. 797 00:35:39,620 --> 00:35:42,300 Și ceea ce este programarea fundal, dacă este cazul. 798 00:35:42,300 --> 00:35:43,914 >> ABBY: Am învățat ceva C ++. 799 00:35:43,914 --> 00:35:45,580 David J. MALAN: Ai invatat ceva C ++. 800 00:35:45,580 --> 00:35:48,382 Și ceea ce este jocul tau joc de fundal? 801 00:35:48,382 --> 00:35:49,505 >> ABBY: Nu prea mult. 802 00:35:49,505 --> 00:35:51,130 David J. MALAN: OK, deci vom lua asta. 803 00:35:51,130 --> 00:35:52,700 Deci, aici este modul în care jocul va funcționa. 804 00:35:52,700 --> 00:35:54,510 Am de gând să merg mai departe și faceți clic pe steagul verde, care 805 00:35:54,510 --> 00:35:55,830 este de până aici, la partea din dreapta sus. 806 00:35:55,830 --> 00:35:59,710 Acum, predecesorul dumneavoastră în clasa ți-a dat niște instrucțiuni aici. 807 00:35:59,710 --> 00:36:02,306 Și într-o clipă ea, spune "de spațiu pentru a începe." 808 00:36:02,306 --> 00:36:03,680 Deci, mergeți mai departe și a lovit bara de spațiu. 809 00:36:03,680 --> 00:36:05,507 >> COMPUTER GAME: Pikachu. 810 00:36:05,507 --> 00:36:08,340 David J. MALAN: Iar scopul este de a prinde alimentare, așa cum este ilustrat aici 811 00:36:08,340 --> 00:36:09,320 în partea stângă. 812 00:36:09,320 --> 00:36:11,388 Și la [inaudibil] 813 00:36:11,388 --> 00:36:15,356 >> [GAME redare a muzicii] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> David J. MALAN: Aww, bine, Vă mulțumesc pentru a juca. 816 00:36:29,610 --> 00:36:32,800 Avem aici un pic despărțire cadou pentru tine. 817 00:36:32,800 --> 00:36:35,574 Avem CS50 stres minge, dacă doriți să alegeți. 818 00:36:35,574 --> 00:36:36,820 Bine, bine să te cunosc. 819 00:36:36,820 --> 00:36:39,680 Mulțumesc că ați venit și provocatoare. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Deci avem mai multe bile de stres, astfel hai sa facem mai mult un exemplu pentru a motiva. 822 00:36:46,910 --> 00:36:48,150 Un voluntar? 823 00:36:48,150 --> 00:36:50,510 Bine, ce zici de chiar aici în față. 824 00:36:50,510 --> 00:36:51,250 Care e numele tău? 825 00:36:51,250 --> 00:36:51,660 >> PHILLIP: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> David J. MALAN: Phillip. 827 00:36:52,660 --> 00:36:54,530 Hai sus, Phillip. 828 00:36:54,530 --> 00:36:57,340 Deci, Phillip va fi contestat cu un alt joc 829 00:36:57,340 --> 00:37:00,840 că unul dintre predecesorii dumneavoastră scris ca parte a problemei set de zero, 830 00:37:00,840 --> 00:37:03,510 numit cel mai greu joc Ivy. 831 00:37:03,510 --> 00:37:05,980 Și vom vedea în doar un clipă ce se înțelege prin aceasta. 832 00:37:05,980 --> 00:37:07,400 Phillip, mă bucur să te cunosc. 833 00:37:07,400 --> 00:37:09,060 Care este trecutul tău? 834 00:37:09,060 --> 00:37:10,310 PHILLIP: făcut o mulțime de codificare. 835 00:37:10,310 --> 00:37:11,110 Adoptată un pic de joc, de asemenea. 836 00:37:11,110 --> 00:37:11,570 >> David J. MALAN: OK. 837 00:37:11,570 --> 00:37:12,620 Am o mulțime de jocuri de noroc, de asemenea. 838 00:37:12,620 --> 00:37:14,230 Și ați jucat acest joc înainte? 839 00:37:14,230 --> 00:37:14,730 >> PHILLIP: Nu 840 00:37:14,730 --> 00:37:16,438 David J. MALAN: Toate Bine, aici vom merge. 841 00:37:16,438 --> 00:37:18,434 Am de gând să merg mai departe și faceți clic pe steagul verde. 842 00:37:18,434 --> 00:37:24,160 >> [GAME MUSIC] 843 00:37:24,160 --> 00:37:27,770 >> [MUSIC MC Hammer, "U NU POATE ATINGE ACEST"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> PHILLIP: [inaudibil] 846 00:38:41,635 --> 00:38:42,760 David J. MALAN: [inaudibil] 847 00:38:42,760 --> 00:38:44,740 PHILLIP: [inaudibil] 848 00:38:44,740 --> 00:38:49,056 [Razand] 849 00:38:49,056 --> 00:38:50,680 [MUSIC MC Hammer, "U NU POATE ATINGE ACEST"] 850 00:38:50,680 --> 00:38:52,660 David J. MALAN: [inaudibil] Plug prin ea. 851 00:38:52,660 --> 00:38:54,094 PHILLIP: [inaudibil] 852 00:38:54,094 --> 00:38:55,135 David J. MALAN: Dă-i drumul. 853 00:38:55,135 --> 00:39:01,570 [MUSIC MC Hammer, "U NU POATE ATINGE ACEST"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 David J. MALAN: Bine. 856 00:39:16,915 --> 00:39:18,400 Felicitări. 857 00:39:18,400 --> 00:39:25,150 >> [Aplauze] 858 00:39:25,150 --> 00:39:27,330 >> David J. MALAN: Vom mesaj care online, mai târziu, astfel 859 00:39:27,330 --> 00:39:29,820 pe care le puteți amâna cu ea, de asemenea. 860 00:39:29,820 --> 00:39:32,550 Princeton vine următoare, după care. 861 00:39:32,550 --> 00:39:35,470 >> Deci, acum, hai, de fapt continua pentru a începe de la zero, 862 00:39:35,470 --> 00:39:39,310 ca să spunem așa, și de a construi de fapt, până la putem tachineze pe langa unele dintre aceste idei 863 00:39:39,310 --> 00:39:41,970 și a ajunge la ceva, chiar mai complexă, până la sfârșitul. 864 00:39:41,970 --> 00:39:45,240 Am de gând să merg aici și am de gând pentru a merge mai departe și de a crea un nou fișier. 865 00:39:45,240 --> 00:39:47,460 Deci, din nou, setul problemă va umbla te prin unele dintre aceste etape. 866 00:39:47,460 --> 00:39:49,300 Dar, tot ce am facut a fost sa merg la meniul File și I 867 00:39:49,300 --> 00:39:52,760 a spus "noi," atât de mult ca Microsoft Word, sau orice program de genul asta. 868 00:39:52,760 --> 00:39:56,630 >> Și să mergem mai departe și ne-am acum-- implementat "Salut" în urmă cu o clipă, 869 00:39:56,630 --> 00:39:58,410 dar hai sa facem ceva un pic mai drăguț. 870 00:39:58,410 --> 00:40:00,150 Am de gând să meargă până la evenimente. 871 00:40:00,150 --> 00:40:02,350 Și am de gând să fac ", atunci când steag verde clic. " 872 00:40:02,350 --> 00:40:05,830 Și apoi am de gând să utilizeze, să spunem, o ramură. 873 00:40:05,830 --> 00:40:07,610 Așa că am de gând să utilizeze un "dacă" starea. 874 00:40:07,610 --> 00:40:10,940 Si observa cum, de îndată ce mă apropii pentru ea, vrea să fixați împreună. 875 00:40:10,940 --> 00:40:13,020 Așa că am dat drumul și se fixează împreună. 876 00:40:13,020 --> 00:40:15,150 Și acum pot face ceva interesant. 877 00:40:15,150 --> 00:40:19,150 Dacă aș derula aici, am de gând pentru a vedea o grămadă de blocuri. 878 00:40:19,150 --> 00:40:22,620 Dacă mă duc la "date" - lasă-mă să zoom in-- există ceva despre variabile. 879 00:40:22,620 --> 00:40:26,160 Dacă mă duc la "mișcare", puteți se pare că o revenire. 880 00:40:26,160 --> 00:40:28,760 Dacă mă duc la "operatori" - oh, acest lucru este interesant, 881 00:40:28,760 --> 00:40:31,000 Eu pot alege un număr aleator. 882 00:40:31,000 --> 00:40:34,119 Așa că lasă-mă să fac ceva cu doar o oarecare probabilitate, doar pentru că. 883 00:40:34,119 --> 00:40:36,160 Am de gând să merg mai departe și trageți această piesă de puzzle, 884 00:40:36,160 --> 00:40:37,910 aceasta este faptul că mai puțin de bloc, așa că este doar 885 00:40:37,910 --> 00:40:39,480 "Este acest număr mai mic decât unul?" 886 00:40:39,480 --> 00:40:42,438 Dar eu nu vreau un cod greu un număr pentru că este destul de inutil. 887 00:40:42,438 --> 00:40:46,270 Așa că am de gând să trageți această piesă aici, și observați cum se fixează în, 888 00:40:46,270 --> 00:40:49,480 și acum lasă-mă să merg mai departe și spune "dacă numărul care este ales la întâmplare 889 00:40:49,480 --> 00:40:51,820 este mai mică de șase, procedați în felul următor. " 890 00:40:51,820 --> 00:40:52,790 Acum, de ce mai puțin de șase? 891 00:40:52,790 --> 00:40:56,400 Ce probabilitate este aceasta în mod eficient O să-mi dea, doar intuitiv? 892 00:40:56,400 --> 00:40:57,440 Aproximativ 50%, corect? 893 00:40:57,440 --> 00:41:01,190 Dacă numărul care a ghici aleatoriu între 1 și 10 este mai mic de șase, 894 00:41:01,190 --> 00:41:03,480 clar că este unul, doi, trei, patru, sau cinci. 895 00:41:03,480 --> 00:41:06,740 Și astfel încât mă va da un 50% probabilitate de ceea ce se întâmplă? 896 00:41:06,740 --> 00:41:09,890 >> Ei bine, hai sa facem ceva de genul aceasta, "play miau sunet." 897 00:41:09,890 --> 00:41:11,750 Și notificare, din nou, piesa de puzzle crește 898 00:41:11,750 --> 00:41:13,700 pentru a se potrivi, atât timp cât se potrivesc formele. 899 00:41:13,700 --> 00:41:14,910 Asta este ceea ce este important. 900 00:41:14,910 --> 00:41:18,000 Lasă-mă să merg pe la Scratch aici și faceți clic pe "joc". 901 00:41:18,000 --> 00:41:19,300 Nu se întâmplă nimic. 902 00:41:19,300 --> 00:41:21,160 Este un bug? 903 00:41:21,160 --> 00:41:21,999 Nu, nu este necesar. 904 00:41:21,999 --> 00:41:24,040 Ar putea fi doar faptul că un a fost aleasă număr mai mare. 905 00:41:24,040 --> 00:41:25,762 Deci, hai sa o facem din nou. 906 00:41:25,762 --> 00:41:27,550 Nimic. 907 00:41:27,550 --> 00:41:28,344 >> [Miau] 908 00:41:28,344 --> 00:41:29,510 David J. MALAN: Nu este. 909 00:41:29,510 --> 00:41:30,280 [Miau] 910 00:41:30,280 --> 00:41:31,690 David J. MALAN: Din nou. 911 00:41:31,690 --> 00:41:32,300 Nu 912 00:41:32,300 --> 00:41:32,922 >> [Meowing] 913 00:41:32,922 --> 00:41:35,380 David J. MALAN: Deci, dacă ai a jucat vreodata un joc, desigur, 914 00:41:35,380 --> 00:41:38,500 în cazul în care lucrurile se întâmplă la întâmplare, ca băieții răi vin sau nu 915 00:41:38,500 --> 00:41:41,350 vine pe la ecran, sau lucrurile sunt în scădere sau care nu se încadrează, 916 00:41:41,350 --> 00:41:43,610 asta e doar pentru că ceva super- simplu ca asta se intampla. 917 00:41:43,610 --> 00:41:46,010 Alege un număr aleator, iar în cazul în care este mai mică decât o anumită valoare, 918 00:41:46,010 --> 00:41:49,100 poate face acest lucru sau poate face asta. 919 00:41:49,100 --> 00:41:51,340 Putem încorpora că într-o condiție. 920 00:41:51,340 --> 00:41:52,600 Hai sa facem ceva diferit. 921 00:41:52,600 --> 00:41:53,559 >> Permiteți-mi să arunci departe. 922 00:41:53,559 --> 00:41:56,058 Puteți scăpa de lucruri de doar trăgând spre stânga 923 00:41:56,058 --> 00:41:56,810 și da drumul. 924 00:41:56,810 --> 00:42:00,310 Lasă-mă să mergeți mai departe și de a face un bloc pentru totdeauna și de a face foarte repede ceva enervant. 925 00:42:00,310 --> 00:42:03,010 Lasă-mă să mergeți mai departe și spune "play miau sunet." 926 00:42:03,010 --> 00:42:06,620 Dar eu nu vreau ca acest lucru să fie prea enervant, așa că lasă-mă să iau acest bloc, 927 00:42:06,620 --> 00:42:09,090 "Aștepta o secundă" și anunț nu mai e loc pentru ea. 928 00:42:09,090 --> 00:42:11,310 Dar dacă te duci destul de aproape, ea vrea să meargă acolo. 929 00:42:11,310 --> 00:42:14,100 Asa ca am dat drumul și se va să crească pentru a umple bloc. 930 00:42:14,100 --> 00:42:15,932 Deci, acum, aceasta este o buclă. 931 00:42:15,932 --> 00:42:16,432 [Meowing] 932 00:42:16,432 --> 00:42:18,473 David J. MALAN: Sunt literalmente face acest lucru pentru totdeauna. 933 00:42:18,473 --> 00:42:19,360 Din nou și din nou. 934 00:42:19,360 --> 00:42:21,510 Aceasta nu este doar de sondare naturale. 935 00:42:21,510 --> 00:42:24,800 Lasă-mă să mergeți mai departe și de a schimba acest lucru pentru a nu o secundă, la două secunde 936 00:42:24,800 --> 00:42:25,854 și apăsați Enter. 937 00:42:25,854 --> 00:42:28,770 Și ce e frumos despre Scratch este pe care le-ar putea programa interactiv. 938 00:42:28,770 --> 00:42:32,450 Fa o schimbare, poate lovi Enter sau Redare din nou, și-l va păstra doar merge. 939 00:42:32,450 --> 00:42:34,962 Ei bine, acum de ce nu facem ceva un pic mai drăguț? 940 00:42:34,962 --> 00:42:39,680 Mai degrabă decât a face totul de la zero, lasă-mă să mergeți mai departe și să se deschidă un avans 941 00:42:39,680 --> 00:42:43,180 a făcut o, pe care am pre-copt, numit "Pet Cat." 942 00:42:43,180 --> 00:42:44,920 Și vom posta toate aceste fișiere on-line, 943 00:42:44,920 --> 00:42:48,464 și problema setat la zero vă va spune cum să le acceseze și deschide-le. 944 00:42:48,464 --> 00:42:49,880 Și preaviz, aceasta este destul de simplu. 945 00:42:49,880 --> 00:42:53,860 Dar, în prealabil, se pare că am luat o "pentru totdeauna" bloc, așa că am o buclă. 946 00:42:53,860 --> 00:42:55,500 Și apoi am luat un "dacă" starea. 947 00:42:55,500 --> 00:42:57,410 Am o expresie booleană. 948 00:42:57,410 --> 00:43:00,100 >> Deci, în limba engleză, doar uitându-se la aceasta, mai ales dacă nu ați mai 949 00:43:00,100 --> 00:43:04,278 programat înainte, doar intuitiv, ceea ce se întâmplă acest lucru pentru a face, acest program? 950 00:43:04,278 --> 00:43:06,910 >> [Audienta Chatter] 951 00:43:06,910 --> 00:43:09,960 >> David J. MALAN: Dacă animale de companie pisica, pisica se va miau, corect? 952 00:43:09,960 --> 00:43:14,560 Pentru că "pentru totdeauna debifarea" este cursorul mouse-ului atinge pisica. 953 00:43:14,560 --> 00:43:17,630 Deci, să fie clar, și nu am spus acest lucru înainte, toate acestea puzzle 954 00:43:17,630 --> 00:43:20,750 piese și script-ul care le-am combinat in, 955 00:43:20,750 --> 00:43:25,510 ca să spunem așa, un script este sinonim cu Programul, într-adevăr, face parte din această pisică. 956 00:43:25,510 --> 00:43:30,110 Și motivul pentru care e-- deoarece aviz cum se evidențiază aceeași pisică aici, 957 00:43:30,110 --> 00:43:32,710 aici puteți crea o a doua pisică sau de câine sau chiar 958 00:43:32,710 --> 00:43:33,970 tot ce vrei grafic. 959 00:43:33,970 --> 00:43:35,900 Puteți importa ceva de la Photoshop, sau altele asemenea, 960 00:43:35,900 --> 00:43:38,300 și să se integreze ceva, dacă vrea să-l facă pentru un proiect. 961 00:43:38,300 --> 00:43:40,174 Și ce veți găsi, în cele din urmă, este că 962 00:43:40,174 --> 00:43:44,800 Puteți adăuga script-uri, adăugați puzzle piese, la caractere individuale. 963 00:43:44,800 --> 00:43:47,210 Deci, acestea toate fac parte din pisica special. 964 00:43:47,210 --> 00:43:51,770 Deci, acum, dacă am merge mai departe și să se joace acest program, nu se întâmplă nimic. 965 00:43:51,770 --> 00:43:52,970 Dar se execută. 966 00:43:52,970 --> 00:43:56,364 Programul este în acest pentru totdeauna buclă, un fel de așteptare pentru ce să se întâmple? 967 00:43:56,364 --> 00:43:57,230 >> [Audienta Chatter] 968 00:43:57,230 --> 00:43:58,130 >> David J. MALAN: la animalele de companie pisica. 969 00:43:58,130 --> 00:43:59,800 Deci, dacă am muta mouse-ul meu spre lui-- 970 00:43:59,800 --> 00:44:02,420 >> [Meowing] 971 00:44:02,420 --> 00:44:04,450 >> David J. MALAN: Deci acum Mă mângâi pisica. 972 00:44:04,450 --> 00:44:07,330 Între timp, putem avea o ramură dublu. 973 00:44:07,330 --> 00:44:10,370 Lasă-mă să mergeți mai departe și deschide până nu pentru animale de companie pisica. 974 00:44:10,370 --> 00:44:12,160 Vom posta acest on-line, de asemenea. 975 00:44:12,160 --> 00:44:16,760 Acesta este un pic mai mult complex, dar fără a spune 976 00:44:16,760 --> 00:44:18,780 puteți ghici, probabil, ceea ce se va întâmpla. 977 00:44:18,780 --> 00:44:20,160 >> [Meowing] 978 00:44:20,160 --> 00:44:23,900 >> David J. MALAN: Cat este de meowing, timp vechi de mii. 979 00:44:23,900 --> 00:44:26,690 Dar acest program este, desigur, numit "Nu Pet Cat," 980 00:44:26,690 --> 00:44:29,350 atât de clar, vreau să animalele de companie pisica. 981 00:44:29,350 --> 00:44:30,490 >> [ROARING] 982 00:44:30,490 --> 00:44:31,940 >> David J. MALAN: Nu pentru animale de companie pisica. 983 00:44:31,940 --> 00:44:34,230 Acum, haideți să aruncăm o privire la un alt exemplu aici. 984 00:44:34,230 --> 00:44:38,035 Acesta se va numi "Bună, Hi, Hi," din motive 985 00:44:38,035 --> 00:44:40,410 care va fi clar, deoarece de îndată ce am rula acest lucru-- 986 00:44:40,410 --> 00:44:41,401 >> [SEAL BARKING] 987 00:44:41,401 --> 00:44:43,942 David J. MALAN: Foarte ușor de scrie programe Scratch enervant. 988 00:44:43,942 --> 00:44:45,300 [SEAL BARKING] 989 00:44:45,300 --> 00:44:48,540 David J. MALAN: Acum nu vom mai merge în detaliu, cu toate acestea, 990 00:44:48,540 --> 00:44:51,150 dar observa există o serie de caracteristici noi aici. 991 00:44:51,150 --> 00:44:55,540 Există o variabilă, numit "dezactivat", și apoi există o grămadă de condiții. 992 00:44:55,540 --> 00:44:57,900 Și acum, lasă-mă să doar tu tachineze prin a spune 993 00:44:57,900 --> 00:45:03,170 că în cazul în care acest tip devine prea enervant, Eu pot lovi bara de spațiu și el se oprește. 994 00:45:03,170 --> 00:45:05,880 Pentru ca rolul jucat de aceste două scripturi este după cum urmează. 995 00:45:05,880 --> 00:45:08,510 Una dintre ele este de a face latra la fiecare câteva secunde. 996 00:45:08,510 --> 00:45:11,305 Celălalt este doar de așteptare pentru mine a lovit bara de spațiu. 997 00:45:11,305 --> 00:45:14,780 Și dacă eu fac lovit bara de spațiu, se va schimba 998 00:45:14,780 --> 00:45:18,096 starea acestei variabile, valoarea de această variabilă, care este aparent 999 00:45:18,096 --> 00:45:20,470 numit "dezactivat", eu nu am sunat ceva plictisitor ca n, 1000 00:45:20,470 --> 00:45:22,370 L-am sunat un cuvânt în engleză, "dezactivat". 1001 00:45:22,370 --> 00:45:24,740 De la 1 la 0 sau 0 la 1. 1002 00:45:24,740 --> 00:45:26,830 Din adevărat la fals sau fals la adevărat. 1003 00:45:26,830 --> 00:45:28,930 Și astfel încât să puteți de fapt a se vedea acum, că voi 1004 00:45:28,930 --> 00:45:31,720 ar putea avea două scripturi, două programe care rulează în același timp, 1005 00:45:31,720 --> 00:45:34,360 și amândoi s-ar putea sta într-o buclă a face ceva. 1006 00:45:34,360 --> 00:45:38,067 În așteptare pentru om de a face ceva de genul lovit bara de spațiu. 1007 00:45:38,067 --> 00:45:38,650 [SEAL BARKING] 1008 00:45:38,650 --> 00:45:40,566 David J. MALAN: Si acum el e pe drum din nou. 1009 00:45:40,566 --> 00:45:41,640 [SEAL BARKING] 1010 00:45:41,640 --> 00:45:45,220 David J. MALAN: Deci, ce altceva am putea face cu aceste exemple? 1011 00:45:45,220 --> 00:45:50,920 Ei bine, să mergem mai departe și de a face o exemplu cu numărați oi. 1012 00:45:50,920 --> 00:45:59,210 Vom continua această de-a lungul liniilor aici de-- să deschidem un exemplu de oaie. 1013 00:45:59,210 --> 00:46:02,460 Și preaviz, la fel ca înainte, aceasta, din fericire, este un pic mai puțin enervant. 1014 00:46:02,460 --> 00:46:06,940 După ce l-am lovit juca aici-- Oh, nu, asta e enervant. 1015 00:46:06,940 --> 00:46:10,130 El se va baa cu o oarecare probabilitate. 1016 00:46:10,130 --> 00:46:11,050 Să jucăm din nou. 1017 00:46:11,050 --> 00:46:15,221 >> [OAIE BLEETING] 1018 00:46:15,221 --> 00:46:18,470 David J. MALAN: Singura diferență este ne-am schimbat costumul, ca să spunem așa, 1019 00:46:18,470 --> 00:46:21,710 și suntem reducerea la jumătate și spune ce că numărul real este. 1020 00:46:21,710 --> 00:46:24,680 Ei bine, să mergem mai departe și facem un pas mai departe. 1021 00:46:24,680 --> 00:46:28,190 Și lasă-mă să te tachineze cu o altă caracteristică aici. 1022 00:46:28,190 --> 00:46:31,800 Să mergem mai departe și să se deschidă un program numit fire. 1023 00:46:31,800 --> 00:46:36,620 Atât de mult ca tine poate avea un sprite, având mai multe script-uri, 1024 00:46:36,620 --> 00:46:41,250 puteți avea două sprite, o pasăre în o pisica, fiecare având propriul lor scenariu. 1025 00:46:41,250 --> 00:46:43,976 Și fiecare dintre ele poate funcționeze simultan. 1026 00:46:43,976 --> 00:46:45,980 Dacă ați auzit vreodată Cuvântul "multithreading" 1027 00:46:45,980 --> 00:46:49,240 un calculator este mijloc "multithread" se poate face mai multe lucruri deodată, 1028 00:46:49,240 --> 00:46:50,880 și, într-adevăr, așa pot zgâria. 1029 00:46:50,880 --> 00:46:52,690 >> Și acum observa pasărea este un fel de prost. 1030 00:46:52,690 --> 00:46:55,100 Trebuie doar să faci lucruri la întâmplare, viguros pe ecran. 1031 00:46:55,100 --> 00:46:59,460 În mod evident, pisica a fost programat a avea un fel de capacități care doresc 1032 00:46:59,460 --> 00:47:02,680 la domiciliu în pe pasăre, deoarece el mereu spre el. 1033 00:47:02,680 --> 00:47:06,176 Până în cele din urmă, el prinde pasărea real. 1034 00:47:06,176 --> 00:47:08,550 Așa că nu voi insista asupra detaliilor aici, dar puteți fel de 1035 00:47:08,550 --> 00:47:12,160 bucatica de aceleași forme, unele "Dacă" condiții, unele variabile, 1036 00:47:12,160 --> 00:47:15,740 Poate unele bucle, sunt în cele din urmă a face același lucru. 1037 00:47:15,740 --> 00:47:18,400 >> Acum, lasă-mă să merg mai departe și deschide up cu totul altceva, 1038 00:47:18,400 --> 00:47:20,920 sa tachineze unii dintre voi, în special cei mai confortabil, 1039 00:47:20,920 --> 00:47:22,760 ceea ce se poate face de fapt cu asta. 1040 00:47:22,760 --> 00:47:26,080 Am de gând să merg mai departe și deschide Button aici. 1041 00:47:26,080 --> 00:47:28,740 Și aceasta este o super- program simplu, aparent, 1042 00:47:28,740 --> 00:47:34,190 dar priviți ce se întâmplă când Eu-- Uita-te la ce 1043 00:47:34,190 --> 00:47:39,860 se întâmplă atunci când am deschis această versiune a acestuia, aici în browser-ul, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 Și când am faceți clic pe acest mare și roșu buton, observa ceea ce se întâmplă. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 Deci, ce se întâmplă aici? 1047 00:47:47,647 --> 00:47:50,480 Există de fapt o complexitate mult mai întâmplă sub capotă, 1048 00:47:50,480 --> 00:47:52,896 chiar dacă le-am pus în aplicare aceasta, sau sincer, Dan Bradley 1049 00:47:52,896 --> 00:47:54,660 a pus în aplicare această așa pur și simplu. 1050 00:47:54,660 --> 00:47:59,540 El a proiectat un puzzle personalizat Scratch bucată, cunoscut ca o extensie la zgârieturi, 1051 00:47:59,540 --> 00:48:01,300 el a numit-o Toggle. 1052 00:48:01,300 --> 00:48:06,332 >> Și ce Toggle face este trimite un mesaj pe internet. 1053 00:48:06,332 --> 00:48:08,290 Și că mesajul în sine arată un pic criptic. 1054 00:48:08,290 --> 00:48:10,248 Dar acest lucru, de asemenea, veți înțelege până la sfârșitul termenului. 1055 00:48:10,248 --> 00:48:14,930 Mesajul el de fapt trimiterea arata ceva de genul asta. 1056 00:48:14,930 --> 00:48:15,921 E doar text. 1057 00:48:15,921 --> 00:48:16,420 Cryptic. 1058 00:48:16,420 --> 00:48:19,130 Veți înțelege de timp avem problema stabilit șapte. 1059 00:48:19,130 --> 00:48:22,180 E doar trimite un mesaj text pe internet la un server. 1060 00:48:22,180 --> 00:48:24,330 Și asta server este, în cele din urmă, vorbesc cu acest bec, care 1061 00:48:24,330 --> 00:48:27,240 are una dintre aceste becuri de lux în ea că, în sine, este vorba 1062 00:48:27,240 --> 00:48:30,760 la Wi-Fi în rețeaua de aici, în cazul în care un dispozitiv local de jos aici-- 1063 00:48:30,760 --> 00:48:34,400 și, în cele din urmă, este de fapt cotitură care aprinde și se stinge. 1064 00:48:34,400 --> 00:48:36,240 Dar putem face mai mult lucruri interesante încă. 1065 00:48:36,240 --> 00:48:38,270 Observați ce Dan a făcut, de asemenea, pentru noi. 1066 00:48:38,270 --> 00:48:42,210 El a făcut mai multe sprite, fiecare dintre care are un script de așteptare pentru un clic. 1067 00:48:42,210 --> 00:48:44,030 Și dacă faceți clic pe roșu, merge roșu. 1068 00:48:44,030 --> 00:48:46,780 Dacă mă albastru, merge albăstrui. 1069 00:48:46,780 --> 00:48:49,854 Verde, galben, portocaliu. 1070 00:48:49,854 --> 00:48:52,520 Și toate acestea se întâmplă de merge cale de ieșire pe internet, 1071 00:48:52,520 --> 00:48:54,690 înapoi aici la bec, pe și în afara. 1072 00:48:54,690 --> 00:48:57,981 >> Și dacă poți it-- cred și aceasta este probabil unul din cele mai complexe Scratch 1073 00:48:57,981 --> 00:49:00,930 Proiectele cineva are implemented-- el a făcut-o, în echitate, într-o zi. 1074 00:49:00,930 --> 00:49:04,180 Și asta a fost provocarea cu care ne-au aruncat jos Dan când am văzut avem becuri binare, 1075 00:49:04,180 --> 00:49:05,810 avem Scratch, cum le putem combina? 1076 00:49:05,810 --> 00:49:08,410 Și, într-adevăr, acest lucru este absolut ceva cineva în această cameră 1077 00:49:08,410 --> 00:49:14,250 ar putea face prin end-- semestru este el becuri binare reimplemented utilizând 1078 00:49:14,250 --> 00:49:18,310 aceeași interfață care a fost pe iPad nostru pe miercuri. 1079 00:49:18,310 --> 00:49:22,000 Așa că acum, dacă am de fapt faceți clic pe plus pe aici, 1080 00:49:22,000 --> 00:49:25,250 avem unul, doi, trei. 1081 00:49:25,250 --> 00:49:27,550 Eu pot lovi 16 și porniți care unul pe. 1082 00:49:27,550 --> 00:49:29,440 128, și așa mai departe. 1083 00:49:29,440 --> 00:49:31,250 >> Acum, în cazul în care are numai și cu sufletul la gură mintea ta, 1084 00:49:31,250 --> 00:49:35,680 ai putea face lucruri mult mai accesibil, nu implică nici un hardware sigur. 1085 00:49:35,680 --> 00:49:38,320 Doar lucrurile de pe ecran în sine. 1086 00:49:38,320 --> 00:49:41,110 Și, într-adevăr, ceea ce majoritatea studenților sfârșesc prin a face un fel de joc, 1087 00:49:41,110 --> 00:49:44,600 unele lucrare artistică, sau un fel de animație interactiv. 1088 00:49:44,600 --> 00:49:47,352 Și voi spune unul dintre noastre favorite a fost acesta. 1089 00:49:47,352 --> 00:49:49,060 Și m-am gândit dacă am ar putea dim luminile, 1090 00:49:49,060 --> 00:49:52,960 vom lua o privire la acest final de Proiect Scratch în concluzie. 1091 00:49:52,960 --> 00:49:57,460 Dar ceea ce veți ar trebui să păstreze în minte, ca Pot să vă șicana cu un ultim detaliu, 1092 00:49:57,460 --> 00:49:59,140 secționare va începe săptămâna viitoare. 1093 00:49:59,140 --> 00:50:00,830 Program de lucru va începe săptămâna viitoare. 1094 00:50:00,830 --> 00:50:04,410 Problema stabilit vor fi postate la zero CS50.harvard.edu mai târziu astăzi. 1095 00:50:04,410 --> 00:50:06,430 Și veți fi întâmpinați în problema set la zero 1096 00:50:06,430 --> 00:50:10,070 a CS50 propriu Zamyla Chan, care ghidează de cele mai multe walkthroughs noastre. 1097 00:50:10,070 --> 00:50:11,952 Acestea sunt clipuri video încorporate în seturi de probleme 1098 00:50:11,952 --> 00:50:15,160 care va ține de mână printr-o mulțime a stabilit inițial în sus și prin multe 1099 00:50:15,160 --> 00:50:16,570 a eventualelor decizii de proiectare. 1100 00:50:16,570 --> 00:50:19,570 Deci, dacă ați avut vreodată că emoție atunci când iau o temă pentru acasă 1101 00:50:19,570 --> 00:50:21,030 și întrebam, unde să încep? 1102 00:50:21,030 --> 00:50:23,510 Ea va avea ca răspuns pentru tine. 1103 00:50:23,510 --> 00:50:27,720 Și acum, un program de finală de la unul dintre predecesorii dumneavoastră 1104 00:50:27,720 --> 00:50:30,659 ca răspuns la întrebarea "Ce spune vulpea?" 1105 00:50:30,659 --> 00:50:32,242 [MUSIC YLVIS, "Ce spune vulpea?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (cantand) Dog merge bătătură. 1108 00:50:41,666 --> 00:50:43,650 Cat merge miau. 1109 00:50:43,650 --> 00:50:47,520 Bird merge tweet și mouse-ul merge chițăit. 1110 00:50:47,520 --> 00:50:49,240 Cow merge moo. 1111 00:50:49,240 --> 00:50:51,690 Frog merge cârâit. 1112 00:50:51,690 --> 00:50:54,630 Și elefantul merge claxona. 1113 00:50:54,630 --> 00:50:59,040 Rațe spune vraci și pește merge blub. 1114 00:50:59,040 --> 00:51:07,370 Și sigiliul se ow ow ow, dar nu e un sunet pe care nimeni nu știe, 1115 00:51:07,370 --> 00:51:10,330 ce spune vulpea? 1116 00:51:10,330 --> 00:51:11,020 Și 1117 00:51:11,020 --> 00:51:12,478 >> David J. MALAN: Asta e pentru CS50. 1118 00:51:12,478 --> 00:51:15,436 Vă vom vedea la Puzzle Ziua și pe luni. 1119 00:51:15,436 --> 00:51:16,424 >> [Aplauze] 1120 00:51:16,424 --> 00:51:19,882 >> [MUSIC YLVIS, "Ce face FOX spune?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> Narator: Și acum adânc gânduri, de Daven Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Azi am fost lovit în se confruntă cu o carte de telefon. 1125 00:51:34,570 --> 00:51:38,160 Confuz, așa cum eu sunt la acasă uitam on-line. 1126 00:51:38,160 --> 00:51:42,528