1 00:00:00,000 --> 00:00:11,120 2 00:00:11,120 --> 00:00:12,590 >> Difuzor: Sunt [neauzit]. 3 00:00:12,590 --> 00:00:14,820 Si eu sunt un senior la Leverett House. 4 00:00:14,820 --> 00:00:18,700 Am studiu informatică, si eu sunt un TF pentru CS50. 5 00:00:18,700 --> 00:00:21,640 Ca un student în anul întâi, nu am mai avea un laptop sau un smartphone. 6 00:00:21,640 --> 00:00:23,550 Nu am avut nici o experiență de programare. 7 00:00:23,550 --> 00:00:29,690 CS50 a fost cursul cel mai de neuitat, care Mi-am luat la Harvard, pentru că a fost 8 00:00:29,690 --> 00:00:32,960 o luptă, dar a fost un adevărat lupta distractiv în același timp. 9 00:00:32,960 --> 00:00:37,670 Și am făcut o mulțime de uimitoare, permanent prieteni, și am învățat o mulțime de foarte 10 00:00:37,670 --> 00:00:38,830 aptitudini aplicabile. 11 00:00:38,830 --> 00:00:43,480 Sunt atât de bucuros că nu am lăsa meu lipsa de fond să fie o scuză pentru mine 12 00:00:43,480 --> 00:00:44,840 nu ia CS50. 13 00:00:44,840 --> 00:00:46,220 Sunt [inaudibil]. 14 00:00:46,220 --> 00:00:48,910 Sunt un senior la Leverett Casa, clasa de 2014. 15 00:00:48,910 --> 00:00:51,670 Și am luat CS50. 16 00:00:51,670 --> 00:00:52,380 >> DAVID MALAN: Deci asta este CS50. 17 00:00:52,380 --> 00:00:54,400 Acesta este sfârșitul de săptămână la zero. 18 00:00:54,400 --> 00:00:58,500 Și amintesc unde am început ultima oară, era cu aceste lămpi, care au fost 19 00:00:58,500 --> 00:01:01,420 atat de popular incat ne-am dus și au cumpărat ceva mai mult azi. 20 00:01:01,420 --> 00:01:03,790 Deci, eu cred că acest lucru va fi lucru noastre din acest an - 21 00:01:03,790 --> 00:01:07,230 lămpi de birou, dacă ți-a venit pe scenă, cel puțin până când vom alerga afară. 22 00:01:07,230 --> 00:01:11,570 >> Dar am folosit aceste rechemare, să introducă elementele de bază de reprezentare a datelor. 23 00:01:11,570 --> 00:01:15,640 Avem nevoie de mod de a începe reprezentând Informatiile interiorul unui calculator. 24 00:01:15,640 --> 00:01:18,650 Și cel mai simplu mod de a face acest lucru a fost cu un singur ingredient, electricitate. 25 00:01:18,650 --> 00:01:21,760 Și cel mai simplu lucru pe care il poti face cu energie electrică este porniți-l și-l. 26 00:01:21,760 --> 00:01:23,520 Să fluxul de electroni sau nu. 27 00:01:23,520 --> 00:01:27,930 Și folosind cele două state de bază, pe și pe, sau fals și adevărat, sau zero și 28 00:01:27,930 --> 00:01:31,290 o, am început să văd că am putea construi în sus, în acest caz, cu lumina 29 00:01:31,290 --> 00:01:33,720 bulbi, mai multe numere decât doar zero și unu. 30 00:01:33,720 --> 00:01:36,160 Am numărat la fel de mare ca și șapte, de exemplu, ultima dată. 31 00:01:36,160 --> 00:01:38,840 Dar tot ce trebuie să faceți este să continuăm să aruncăm mai multe și mai multe becuri la care 32 00:01:38,840 --> 00:01:41,820 problema și, într-adevăr, putem reprezenta orice număr pe care le 33 00:01:41,820 --> 00:01:42,970 s-ar putea dori, eventual. 34 00:01:42,970 --> 00:01:47,230 >> Ei bine, ne-a trecut repede, apoi pe Miercuri la acest octet de voluntari. 35 00:01:47,230 --> 00:01:52,040 8 biți este ceea ce noi numim, în general, un octet, Deci, aici am avut opt ​​voluntari 36 00:01:52,040 --> 00:01:54,900 miercuri, care împreună au fost reprezentând opt biți. 37 00:01:54,900 --> 00:01:56,750 Și atunci când mâinile lor au sus, acestea au fost un unul. 38 00:01:56,750 --> 00:01:58,530 Și atunci când mâinile lor au fost jos, au existat un zero. 39 00:01:58,530 --> 00:02:01,970 Și am avut acești oameni veni pe scena de ce? 40 00:02:01,970 --> 00:02:06,530 Ceea ce suntem capabili de a face cu această secvență de biți? 41 00:02:06,530 --> 00:02:07,510 >> Pentru a crea un alfabet. 42 00:02:07,510 --> 00:02:11,550 Am fost capabili de a construi pe partea de sus de care lecția anterioară învățat și de fapt 43 00:02:11,550 --> 00:02:14,200 începe să facă mai interesant informații care este cel puțin mai mult 44 00:02:14,200 --> 00:02:15,330 familiar pentru noi, oamenii. 45 00:02:15,330 --> 00:02:18,360 Și acest lucru se întâmplă să fie un recurente Tema întreaga 50, dar, de asemenea, computerul 46 00:02:18,360 --> 00:02:21,470 știința în general, această idee de stratificare, în cazul în care, la sfârșitul 47 00:02:21,470 --> 00:02:24,820 zi, dacă ați început cu adevărat Noțiuni de bază cu un calculator, da, 48 00:02:24,820 --> 00:02:25,760 e zero si unu. 49 00:02:25,760 --> 00:02:27,480 Și sub care este doar energie electrică. 50 00:02:27,480 --> 00:02:30,840 Dar vom începe foarte repede pentru a lua cele detalii de nivel scăzut pentru acordarea 51 00:02:30,840 --> 00:02:35,600 și începe să strat pe partea de sus a trecut lucrat făcut pentru ca noi, în cele din urmă, prin 52 00:02:35,600 --> 00:02:38,610 sfârșitul semestrului și, într-adevăr, mai general, ca oameni de stiinta de calculator 53 00:02:38,610 --> 00:02:42,790 și programatori, pot face ceva cu adevărat lucruri mai puternic de pârghie de lucru 54 00:02:42,790 --> 00:02:46,620 care ne-au făcut și, de asemenea, în picioare pe umerii altora. 55 00:02:46,620 --> 00:02:49,300 >> Acum am trecut de repede miercuri la doar nevoia de a 56 00:02:49,300 --> 00:02:52,080 reprezintă informații care doresc de a face ceva cu ea. 57 00:02:52,080 --> 00:02:54,170 Deci, ceea ce am defini un algoritm? 58 00:02:54,170 --> 00:02:57,340 59 00:02:57,340 --> 00:02:58,900 O serie de instrucțiuni. 60 00:02:58,900 --> 00:03:03,380 Deci, este o serie de instrucțiuni, o număr de pași pe care le, un om, sau 61 00:03:03,380 --> 00:03:07,160 un calculator, mai tipic, ar executa unul după altul, în scopul de 62 00:03:07,160 --> 00:03:08,100 pentru a atinge un scop. 63 00:03:08,100 --> 00:03:11,360 Și am avut câteva obiective ultima dată, unul dintre care să număr 64 00:03:11,360 --> 00:03:12,250 persoane in camera. 65 00:03:12,250 --> 00:03:15,560 Și un alt astfel de exemplu a fost de a găsi Mike Smith într-o carte de telefon. 66 00:03:15,560 --> 00:03:19,750 >> Deci, s-ar putea aminti că am rupt un telefon carte în jumătate față de acest scop în sus 67 00:03:19,750 --> 00:03:21,280 găsirea Mike Smith. 68 00:03:21,280 --> 00:03:24,000 Scopul pe care vizuală a fost de a demonstrează, din nou, că am fost 69 00:03:24,000 --> 00:03:27,770 ruperea literalmente această problemă în jumătate, în jumătate, în jumătate, și foarte 70 00:03:27,770 --> 00:03:31,750 repede merge de la, cum ar fi de 1.000 de pagini la doar o singură pagină. 71 00:03:31,750 --> 00:03:34,860 Aceia dintre voi care au pierdut acest pe Miercuri, M-am gândit reda 72 00:03:34,860 --> 00:03:36,820 câteva fragmente din ceea ce ai pierdut. 73 00:03:36,820 --> 00:03:38,914 Să aruncăm o privire. 74 00:03:38,914 --> 00:03:40,906 >> [Redare video] 75 00:03:40,906 --> 00:03:55,360 76 00:03:55,360 --> 00:03:55,990 >> -Acolo mergem. 77 00:03:55,990 --> 00:04:01,432 1500 de pagini, linii curate Nisa, lacrimă legitim. 78 00:04:01,432 --> 00:04:02,850 >> [END redare video] 79 00:04:02,850 --> 00:04:05,230 >> DAVID MALAN: Deci, care a fost miercuri. 80 00:04:05,230 --> 00:04:09,150 Noi tranziție, deși, miercuri acum la care doresc să reprezinte algoritmi 81 00:04:09,150 --> 00:04:12,410 într-un fel oarecum iarnă, nu doar descrierea lor verbal, dar 82 00:04:12,410 --> 00:04:16,290 încercarea de a le exprima în scris sau pe un ecran de computer astfel încât să putem 83 00:04:16,290 --> 00:04:19,170 începe să se îmbunătățească, și modifica ei, și, în cele din urmă, de fapt, 84 00:04:19,170 --> 00:04:21,160 analiza cât de corect sau cât de repede au fost. 85 00:04:21,160 --> 00:04:23,360 >> Deci, am introdus această noțiune de pseudocod, care, în 86 00:04:23,360 --> 00:04:26,410 termeni de nespecialist, este ceea ce? 87 00:04:26,410 --> 00:04:26,930 OK, cuvinte. 88 00:04:26,930 --> 00:04:28,730 Să mergem puțin mai adânc decât atât. 89 00:04:28,730 --> 00:04:32,540 Engleză, sigur, sunt însă spre ce scop? 90 00:04:32,540 --> 00:04:35,180 Cuvinte cu care să creeze sau să reprezinte algoritmi. 91 00:04:35,180 --> 00:04:38,380 Deci, nu există nici o limbă cunoscută ca pseudocod în lume. 92 00:04:38,380 --> 00:04:41,110 Este doar că tu, în limba engleză, sau indiferent de limba vorbita este, folosiți 93 00:04:41,110 --> 00:04:44,930 un fel de notație sumară a transmite o idee foarte succint. 94 00:04:44,930 --> 00:04:47,930 Dar vom vedea că, cu siguranță, cu un Pseudocod engleză, și se pare că 95 00:04:47,930 --> 00:04:51,700 majoritatea limbajelor de programare în sine sunt derivat din limba engleză în sine, 96 00:04:51,700 --> 00:04:55,750 vom găsi că există unele standard, moduri de reprezentare a pseudocod și 97 00:04:55,750 --> 00:04:57,150 programare, de asemenea, codul. 98 00:04:57,150 --> 00:05:00,200 Astfel încât începi să vezi chiar și cele mai simple Exemple de azi, realiza aceste 99 00:05:00,200 --> 00:05:02,160 aceleași modele se va repeta săptămâna viitoare. 100 00:05:02,160 --> 00:05:04,710 >> Deci pseudocod a fost un fel de limbă asemănătoare 101 00:05:04,710 --> 00:05:06,170 un limbaj de programare. 102 00:05:06,170 --> 00:05:09,260 Și primul exemplu am văzut vizual scris a fost acesta. 103 00:05:09,260 --> 00:05:12,870 A fost doar un program de trei etape, din care obiectivul a fost de a număra 104 00:05:12,870 --> 00:05:15,650 de oameni într-o cameră de cămin pentru că video de miercuri. 105 00:05:15,650 --> 00:05:19,040 Dar au existat câteva aspecte interesante acestui program simplu. 106 00:05:19,040 --> 00:05:20,320 >> Și acest lucru va fi temele recurente. 107 00:05:20,320 --> 00:05:22,930 Deci, pentru cei care nu sunt familiarizati cu aceasta, unul, am introdus o variabilă. 108 00:05:22,930 --> 00:05:25,650 Și, probabil, toată lumea în această cameră este familiarizat cu o variabilă în 109 00:05:25,650 --> 00:05:27,250 contextul algebra. 110 00:05:27,250 --> 00:05:31,190 Dar aici, în programarea, variabile sunt, o, poate fi 111 00:05:31,190 --> 00:05:32,220 numit orice vrem. 112 00:05:32,220 --> 00:05:33,620 Am fost folosind n ca un contor. 113 00:05:33,620 --> 00:05:37,490 Dar am putea folosi contra cuvânt, sau, după cum veți vedea, cele mai multe orice frază care 114 00:05:37,490 --> 00:05:40,240 s-ar putea ca atât timp cât este descriptiv, dar este într-adevăr doar o 115 00:05:40,240 --> 00:05:41,250 cutie pentru depozitare. 116 00:05:41,250 --> 00:05:44,170 Este o bucată de memorie, un numar de biți, și variază de calculator, cum 117 00:05:44,170 --> 00:05:47,020 mulți biți Există care compune că variabila. 118 00:05:47,020 --> 00:05:48,450 >> Dar putem pune valorile în ea. 119 00:05:48,450 --> 00:05:50,740 Până acum, ne-am pus numai numere. 120 00:05:50,740 --> 00:05:52,290 Dar putem pune cuvinte reale. 121 00:05:52,290 --> 00:05:53,420 Putem pune paragrafe. 122 00:05:53,420 --> 00:05:54,560 Putem pune imagini - 123 00:05:54,560 --> 00:05:57,860 nimic, într-adevăr, putem reprezenta cu zero si unu, putem pune în 124 00:05:57,860 --> 00:05:59,820 această noțiune nivel superior a unei variabile. 125 00:05:59,820 --> 00:06:01,350 >> Deci, destul de drept înainte acolo. 126 00:06:01,350 --> 00:06:02,210 Și asta e linia unu. 127 00:06:02,210 --> 00:06:05,340 Dar am foarte repede mutat de la linie o să facă de fapt 128 00:06:05,340 --> 00:06:06,600 ceva cu care variabila. 129 00:06:06,600 --> 00:06:10,330 Și în conformitate trei, am actualizat N. Noi incrementat N. Și am putea scrie aceasta 130 00:06:10,330 --> 00:06:11,330 orice număr de moduri. 131 00:06:11,330 --> 00:06:14,460 Dar poate cel mai evident este doar să spun, setați N egală cu 132 00:06:14,460 --> 00:06:16,440 indiferent N este plus 1. 133 00:06:16,440 --> 00:06:17,740 Astfel că a fost creșterea noastră. 134 00:06:17,740 --> 00:06:18,740 >> Intre timp, a existat o buclă. 135 00:06:18,740 --> 00:06:20,720 Și aceasta, de asemenea, este probabil destul de intuitiv. 136 00:06:20,720 --> 00:06:24,250 O buclă este doar ceva într-un program de că se întâmplă din nou și din nou, unele 137 00:06:24,250 --> 00:06:25,190 un fel de ciclu. 138 00:06:25,190 --> 00:06:29,300 Și aceasta fraza-cheie aici, pentru fiecare, este de fapt foarte frecvente în cea mai mare 139 00:06:29,300 --> 00:06:32,300 limbaje de programare, inclusiv cele pe care le vedem în curs. 140 00:06:32,300 --> 00:06:35,850 Ori de câte ori veți vedea cuvântul pentru, ea de obicei transmite ideea că o 141 00:06:35,850 --> 00:06:38,410 buclă, ceva ciclic, este pe cale să se întâmple. 142 00:06:38,410 --> 00:06:40,980 >> Dar este demn de remarcat faptul unul alte detalii sintactice. 143 00:06:40,980 --> 00:06:44,660 Faptul că a treia linie este de fapt, dantelata de care au lovit 144 00:06:44,660 --> 00:06:46,920 Bara de spațiu de câteva ori este deliberat. 145 00:06:46,920 --> 00:06:49,870 Deoarece convenție umană este de așa natură încât, atunci când faci ceva nou și 146 00:06:49,870 --> 00:06:54,860 din nou, într-o buclă, ca început pe linia doi, te liniuță ceva care a aparținut 147 00:06:54,860 --> 00:06:58,880 pentru că bucla doar pentru a face clar că e linia trei și nu, de exemplu, 148 00:06:58,880 --> 00:07:01,910 Linia de patru sau cinci, dacă au existat linii pentru sau cinci, care sunt 149 00:07:01,910 --> 00:07:03,010 parte a acestei bucle. 150 00:07:03,010 --> 00:07:07,340 Deci, acest indentare simplu transmite ideea de bază. 151 00:07:07,340 --> 00:07:09,390 >> Așa că am aplicat acest algoritm, acum, la câteva exemple. 152 00:07:09,390 --> 00:07:12,620 Și acest lucru, de asemenea, exemplu simplu în lumea reală. 153 00:07:12,620 --> 00:07:15,440 Dar o să fie reprezentative pentru cum v-ar merge cu privire la testarea ta 154 00:07:15,440 --> 00:07:17,500 propriile programe ce în ce mai complexe. 155 00:07:17,500 --> 00:07:21,050 Încercați câteva scenarii, unele reprezentanți intrări, și vezi dacă poți 156 00:07:21,050 --> 00:07:22,180 a obține rezultatele dorite. 157 00:07:22,180 --> 00:07:25,090 >> Deci, acest exemplu a avut doi oameni stând în camera de camin. 158 00:07:25,090 --> 00:07:27,170 În partea stângă este că același cod pseudo. 159 00:07:27,170 --> 00:07:30,800 Și aceasta este o captură de ecran de foarte Ultima etapă de aplicare a acestei 160 00:07:30,800 --> 00:07:35,270 Algoritmul a acestor intrări, în cazul în care există au fost două persoane în cameră și, 161 00:07:35,270 --> 00:07:39,190 amintesc, așa cum am pas prin liniile de unul, și doi, și trei, și două 162 00:07:39,190 --> 00:07:41,000 și trei și făcut - 163 00:07:41,000 --> 00:07:44,870 până la sfârșitul anului care algoritmului, am avut într-adevăr numărat cei doi băieți care sunt 164 00:07:44,870 --> 00:07:45,360 în cameră. 165 00:07:45,360 --> 00:07:47,190 >> Și apoi am încercat un alt exemplu. 166 00:07:47,190 --> 00:07:48,990 Și am spus ce în cazul în care există zero, persoane în cameră? 167 00:07:48,990 --> 00:07:50,490 Este acest cod de mai corect? 168 00:07:50,490 --> 00:07:51,305 Și într-adevăr a fost. 169 00:07:51,305 --> 00:07:55,240 Pur și simplu se întâmplă, astfel încât linia doi și, astfel, linia de trei sau 170 00:07:55,240 --> 00:07:56,620 nu va executa. 171 00:07:56,620 --> 00:07:59,790 Ei nu vor să se întâmple la toate deoarece acestea sunt pur și simplu nu se aplică în cazul în care 172 00:07:59,790 --> 00:08:01,210 nu e zero, persoane în cameră. 173 00:08:01,210 --> 00:08:02,300 >> Dar nu este o afacere mare. 174 00:08:02,300 --> 00:08:06,620 Linia unu N inițializată la zero, deci chiar dacă numai o linie de acest 175 00:08:06,620 --> 00:08:10,930 Programul de fapt, sfârșește prin a fi util, încă dă răspunsul corect, așa cum 176 00:08:10,930 --> 00:08:13,780 indicată de portocaliu zero, în partea de jos. 177 00:08:13,780 --> 00:08:16,300 Dar apoi am decis că a fost un fel de algoritm prost. 178 00:08:16,300 --> 00:08:17,060 A fost destul de lent. 179 00:08:17,060 --> 00:08:19,720 Cu siguranță, eu pot face două, patru, șase, opt, zece, atunci când 180 00:08:19,720 --> 00:08:20,990 numărare de oameni într-o cameră. 181 00:08:20,990 --> 00:08:25,030 >> Așa că am optimizat algoritmul, pseudocod, să spunem, acum în linia doi, 182 00:08:25,030 --> 00:08:29,710 pentru fiecare pereche de oameni in camera, proceda la, în linie trei, creștere 183 00:08:29,710 --> 00:08:32,200 în prin două pe fiecare iterație. 184 00:08:32,200 --> 00:08:35,530 Deci, care ar fi lucrat aici pentru această pereche de persoane în cameră. 185 00:08:35,530 --> 00:08:38,530 >> Dar apoi, dacă începi să te gândești acest lucru, și nu ia mult timp pentru a 186 00:08:38,530 --> 00:08:40,710 realiza, așteptați un minut aceasta este va rupe, se rupe 187 00:08:40,710 --> 00:08:42,679 la ce caz simplu? 188 00:08:42,679 --> 00:08:45,500 Dacă există trei persoane în cameră sau, mai general, atunci când există o 189 00:08:45,500 --> 00:08:47,660 număr impar de persoane în cameră, inclusiv unul. 190 00:08:47,660 --> 00:08:50,390 Ne-ar dor de acea persoană aici, deoarece nu există astfel de perechi. 191 00:08:50,390 --> 00:08:58,510 Deci, ne-am adresat repede de schimb introducerea de ce suplimentare 192 00:08:58,510 --> 00:09:02,560 constructe de programare la codul de pseudo. 193 00:09:02,560 --> 00:09:04,955 >> Deci o condiție, am sunat ea, sau o sucursală. 194 00:09:04,955 --> 00:09:08,420 Și este menit să transmită, vizual, Ideea de ramură, o furculiță în drum 195 00:09:08,420 --> 00:09:11,080 unde puteți face acest lucru fie sau, poate, altceva. 196 00:09:11,080 --> 00:09:15,750 Și într-adevăr, ne rezolve această problemă prin , adăugând linia 4, prin a spune, într-adevăr la 197 00:09:15,750 --> 00:09:20,820 la sfârșit, dacă o persoană rămâne, apoi mergeți mai departe și le socotesc speciale. 198 00:09:20,820 --> 00:09:24,460 Deci, un fel de ele caz special, așa de a vorbi, așa că acum ne putem descurca 199 00:09:24,460 --> 00:09:27,810 atât un număr par de persoane și un număr impar de persoane. 200 00:09:27,810 --> 00:09:30,260 >> Acum, există un număr de moduri ne-ar fi putut exprima acest lucru. 201 00:09:30,260 --> 00:09:33,590 Și sincer, am fi putut fi chiar mai NIT pretentios atunci când a venit vorba de alegerea mea de 202 00:09:33,590 --> 00:09:35,040 Limba engleză pentru pseudocod. 203 00:09:35,040 --> 00:09:36,970 Dar cel puțin spiritul de Ideea este transmis. 204 00:09:36,970 --> 00:09:40,725 Dacă ați dat acest cod de la un prieten care nu este în CS, sau nu a mai luat 205 00:09:40,725 --> 00:09:44,560 CS, șansele sunt acestea ar putea da seama, dat trei persoane in camera, cum să 206 00:09:44,560 --> 00:09:46,870 conta acei oameni pe în aceste instrucțiuni. 207 00:09:46,870 --> 00:09:49,920 Și asta e tot într-adevăr dorim să realizăm cu pseudocod, într-un fel 208 00:09:49,920 --> 00:09:54,300 standardiza modul în care vom merge despre idei reprezentând astfel încât să putem 209 00:09:54,300 --> 00:09:56,670 începe să facă mult mai complicat lucru încă. 210 00:09:56,670 --> 00:09:58,845 >> Așa că ne duce apoi, în prezent, la codul actual. 211 00:09:58,845 --> 00:10:01,950 Vom începe să programați astăzi, deși într-un mediu prietenos. 212 00:10:01,950 --> 00:10:05,940 Și apoi am tranziție foarte repede la o sintaxa mai arcane, dar una care 213 00:10:05,940 --> 00:10:10,340 veți vedea este fundamental același ca și ideile vor vedea manifestat cu 214 00:10:10,340 --> 00:10:11,990 această altă limbă azi. 215 00:10:11,990 --> 00:10:13,920 Este doar de gând să se uite un pic diferit. 216 00:10:13,920 --> 00:10:16,590 >> Deci, mai degrabă decât numi doar acest cod, sunt va fi un pic mai precis 217 00:10:16,590 --> 00:10:20,170 și spune, de acum înainte, atunci când scrieți un Programul, scrii codul sursă. 218 00:10:20,170 --> 00:10:21,990 E un fel de pseudocod. 219 00:10:21,990 --> 00:10:26,540 Dar vom vedea că nu e un fel de liber atunci când vine vorba de alegerea cuvintelor 220 00:10:26,540 --> 00:10:27,310 pe care le utilizați. 221 00:10:27,310 --> 00:10:31,300 Când de programare într-o limbă, ai pentru a folosi cuvintele, frazele, 222 00:10:31,300 --> 00:10:36,020 sintaxa, pe care alți oameni au decis reprezintă 223 00:10:36,020 --> 00:10:37,240 limba respectivă. 224 00:10:37,240 --> 00:10:38,510 Deci, pseudocodes este de până la tine. 225 00:10:38,510 --> 00:10:42,330 Un limbaj de programare actuală ca C, așa cum vom vedea în cele din urmă, este 226 00:10:42,330 --> 00:10:43,590 standardizate de către alte persoane. 227 00:10:43,590 --> 00:10:45,590 >> Deci, cum putem merge despre scris unele codul sursă? 228 00:10:45,590 --> 00:10:46,810 Ei bine, am de gând să merg înainte și de a face acest lucru. 229 00:10:46,810 --> 00:10:49,100 Am de gând să merg mai departe și deschide o fereastră de aici. 230 00:10:49,100 --> 00:10:50,210 Mai multe despre aceasta săptămâna viitoare. 231 00:10:50,210 --> 00:10:52,300 Dar acest lucru este un dispozitiv numit CS50 aparat. 232 00:10:52,300 --> 00:10:55,480 Sunt rulează o bucată de software pe mele Mac, desi poti sa faci acelasi lucru 233 00:10:55,480 --> 00:11:00,580 pe un calculator Windows, care dă mi iluzia rulează un alt 234 00:11:00,580 --> 00:11:03,700 sistem de operare cu totul drept aici într-o fereastră de pe Mac-ul meu. 235 00:11:03,700 --> 00:11:06,790 Tocmai am complet este proiectat astfel încât să nu a se vedea de fapt, Mac OS chiar acum. 236 00:11:06,790 --> 00:11:08,340 >> Acesta este un sistem de operare numit Linux. 237 00:11:08,340 --> 00:11:09,300 Este foarte popular. 238 00:11:09,300 --> 00:11:10,120 Este foarte rapid. 239 00:11:10,120 --> 00:11:12,950 Este foarte liber, care a făcut-o foarte convingătoare, în special în 240 00:11:12,950 --> 00:11:13,970 lumea comercială. 241 00:11:13,970 --> 00:11:17,200 Și mai mult pe faptul că spre sfârșitul semestru atunci când vom folosi Linux destul de un pic 242 00:11:17,200 --> 00:11:21,230 pentru programarea web hosting și de site-uri web și proiecte concrete. 243 00:11:21,230 --> 00:11:24,910 Deci, acum, știu doar că acest lucru este un desktop care este menit să arate vag 244 00:11:24,910 --> 00:11:26,750 familiar pentru Windows și Mac OS. 245 00:11:26,750 --> 00:11:29,110 Ea are doar câteva nume diferite și icoane de lucruri. 246 00:11:29,110 --> 00:11:32,510 Dar acest lucru este așa-numitul CS50 aparat, o mașină virtuală care, 247 00:11:32,510 --> 00:11:35,310 incepand de saptamana viitoare, voi va rula în interiorul unei ferestre pe 248 00:11:35,310 --> 00:11:36,960 propriul Mac sau PC. 249 00:11:36,960 --> 00:11:39,760 >> Pentru ziua de azi, am de gând să deschidă mai simplă a programelor. 250 00:11:39,760 --> 00:11:41,110 Se numește gedit. 251 00:11:41,110 --> 00:11:42,565 Și acesta este doar un editor grafic. 252 00:11:42,565 --> 00:11:44,695 E un fel de Microsoft Cuvânt, dar simplu. 253 00:11:44,695 --> 00:11:47,110 E un fel de cum ar fi text Editare sau Notepad. 254 00:11:47,110 --> 00:11:50,280 E doar un program foarte simplu, cu care să scrie cuvintele pe ecran. 255 00:11:50,280 --> 00:11:54,510 Este doar așa se întâmplă că, dacă am salva fișierele pe care le creează atunci când acest program 256 00:11:54,510 --> 00:11:59,860 într-o extensie special ca. C, în loc de. doc sau. xls, sau orice 257 00:11:59,860 --> 00:12:04,190 esti familiarizat cu, pot de fapt, crea programe care utilizează chiar acest simplu 258 00:12:04,190 --> 00:12:05,130 editor de text. 259 00:12:05,130 --> 00:12:05,770 >> Deci, lasă-mă să fac asta. 260 00:12:05,770 --> 00:12:09,330 Lasă-mă să merg mai departe și de a salva acest primul dosar ca hello.c. 261 00:12:09,330 --> 00:12:12,350 Și din nou, această interfață utilizator va deveni familiar pentru tine repede. 262 00:12:12,350 --> 00:12:14,160 Dar pentru acum, eu doar tastând într-un nume de fișier. 263 00:12:14,160 --> 00:12:17,410 Am de gând să-l salveze pe Ioan mea Directorul de la Harvard acasa. 264 00:12:17,410 --> 00:12:20,810 Și acum am această filă care indică Sunt într-adevăr de editare 265 00:12:20,810 --> 00:12:23,070 un fișier numit hello.c. 266 00:12:23,070 --> 00:12:24,510 Deci, nimic prea interesant încă. 267 00:12:24,510 --> 00:12:26,000 >> Și acum o să obține destul de criptic. 268 00:12:26,000 --> 00:12:28,370 Am de gând să mări, doar asa ca e mai vizibil. 269 00:12:28,370 --> 00:12:35,780 Și am de gând să începeți să tastați includă stdio.h, int main, gol, deschis ondulat 270 00:12:35,780 --> 00:12:40,140 bretele, unul, doi, trei, patru spații de indentare, print f, pentru imprimare 271 00:12:40,140 --> 00:12:44,450 ceva formatat, citatul citat, "Bună ziua, lume" backslash, n, aproape 272 00:12:44,450 --> 00:12:49,640 Citat, paranteză închisă, punct și virgulă, intra backspace, backspace, backspace, 273 00:12:49,640 --> 00:12:52,310 backspace, închis cret bretele - 274 00:12:52,310 --> 00:12:53,350 Am programat. 275 00:12:53,350 --> 00:12:57,380 >> În regulă astfel încât acesta este un simplu super- Programul, într-adevăr, programul care 276 00:12:57,380 --> 00:12:59,070 cineva incepe de programare cu. 277 00:12:59,070 --> 00:13:02,300 Și tot ce face, pentru toată complexitatea sa, se imprima pe 278 00:13:02,300 --> 00:13:04,160 ecran, ghici ce? 279 00:13:04,160 --> 00:13:04,910 Bună ziua lume. 280 00:13:04,910 --> 00:13:07,500 Dar nu este suficient doar pentru a scrie un program. 281 00:13:07,500 --> 00:13:08,155 Deci, aceasta este cod. 282 00:13:08,155 --> 00:13:11,300 Acest lucru este codul sursă în un limbaj numit C. 283 00:13:11,300 --> 00:13:14,380 Acesta este salvat în prezent în un fișier numit hello.c. 284 00:13:14,380 --> 00:13:16,180 >> Acum, uita-te la partea de jos a ecranului aici. 285 00:13:16,180 --> 00:13:17,890 Mai multe despre aceasta, din nou, în săptămânile următoare. 286 00:13:17,890 --> 00:13:19,570 Dar asta este ceea ce vom numi o fereastră terminal. 287 00:13:19,570 --> 00:13:21,290 Este un intermitent, negru și prompte alb. 288 00:13:21,290 --> 00:13:24,390 Este un fel de interfață școală veche la un calculator care, în general, nu 289 00:13:24,390 --> 00:13:27,050 utilizați un mouse sau alte elemente grafice. 290 00:13:27,050 --> 00:13:28,320 Acesta utilizează doar tastatura. 291 00:13:28,320 --> 00:13:30,970 Și eu pot executa comenzi de la acest clipește prompt. 292 00:13:30,970 --> 00:13:33,820 >> Și pentru scopuri de azi, eu sunt doar O să tastați următoarele - 293 00:13:33,820 --> 00:13:35,610 să salut. 294 00:13:35,610 --> 00:13:39,370 Și că programul, face, este doar o program care, în lumea reală aceste 295 00:13:39,370 --> 00:13:40,690 zile, ne-ar faceți clic dublu pe. 296 00:13:40,690 --> 00:13:44,580 Dar în această interfață pentru ziua de azi, suntem O să tastați numele de la acest prompt. 297 00:13:44,580 --> 00:13:47,980 să salut este literalmente va fă-mă un program numit salut. 298 00:13:47,980 --> 00:13:51,360 Și că va face acest lucru uitandu-te pentru un fișier, doar prin 299 00:13:51,360 --> 00:13:53,460 implicit, numit hello.c. 300 00:13:53,460 --> 00:13:57,260 Se va asuma Vreau un program de C prin natura modul în care acest calculator 301 00:13:57,260 --> 00:13:58,230 este configurat. 302 00:13:58,230 --> 00:13:59,550 >> Așa că mergeți mai departe și a lovit intra. 303 00:13:59,550 --> 00:14:02,050 Am vedea unele de ieșire criptic, dar acest lucru va deveni prea 304 00:14:02,050 --> 00:14:03,330 cunoscut înainte de lung. 305 00:14:03,330 --> 00:14:06,870 Acest lucru sa întâmplat pentru a rula un compilator, mai pe care într-o clipă, numit zăngănit. 306 00:14:06,870 --> 00:14:09,080 Dar acum, am doar un alt clipește prompt. 307 00:14:09,080 --> 00:14:13,060 Și eu pot merge mai departe acum și tastați punct slash, pentru motive neinteresante vom 308 00:14:13,060 --> 00:14:14,730 vin înapoi la săptămâna viitoare - 309 00:14:14,730 --> 00:14:15,910 Bună ziua. 310 00:14:15,910 --> 00:14:19,650 >> Deci, toate de acest efort până acum doar la scrie mai simplu de programe care, 311 00:14:19,650 --> 00:14:22,640 de îndată ce l-am lovit Enter, face asta. 312 00:14:22,640 --> 00:14:24,510 Așa că am scris primul meu program. 313 00:14:24,510 --> 00:14:27,500 Deci, eu sunt bagi în mod deliberat distracție La acest program foarte simplu 314 00:14:27,500 --> 00:14:28,540 pentru un cuplu de motive. 315 00:14:28,540 --> 00:14:31,990 Unul, e greu pentru a obține excitat despre a lua o clasă în cazul în care 316 00:14:31,990 --> 00:14:33,430 acesta este sfârșitul jocului. 317 00:14:33,430 --> 00:14:37,100 >> Dar mai mult decât atât, există o mulțime de distrageri aici. 318 00:14:37,100 --> 00:14:40,640 Prima dată când învăța să program, pentru cei mai putin confortabil, și 319 00:14:40,640 --> 00:14:43,410 chiar eu, înapoi în a doua zi, când am văzut așa ceva - pe care le poți 320 00:14:43,410 --> 00:14:46,500 de figura care, în regulă, această este într-o lume de imprimare salut. 321 00:14:46,500 --> 00:14:47,860 Dar nu e atât de mult distragere a atenției. 322 00:14:47,860 --> 00:14:52,110 Există atât de multe sintaxa pe ecran că acesta devine în mod de foarte 323 00:14:52,110 --> 00:14:54,170 idei simple, altfel simplu,. 324 00:14:54,170 --> 00:14:56,700 >> Deci, ce vom face astăzi este că suntem O să pun deoparte C și vin 325 00:14:56,700 --> 00:14:57,630 Înapoi la care luni. 326 00:14:57,630 --> 00:15:00,860 Și am de gând să utilizeze un grafic limbaj de programare numit Scratch. 327 00:15:00,860 --> 00:15:04,470 Acesta este un limbaj de programare, pe care am a făcut aluzie la, miercuri, că va 328 00:15:04,470 --> 00:15:08,870 pentru a ne permite să facă același fel de lucruri dar închide ochii, pentru ziua de azi, 329 00:15:08,870 --> 00:15:12,270 la acolade, parantezele, cu punct și virgulă, și toate acestea stupide 330 00:15:12,270 --> 00:15:15,680 distragerile care stau în calea, în aceasta prima zi, de unele de bază, destul de 331 00:15:15,680 --> 00:15:17,230 idei interesante. 332 00:15:17,230 --> 00:15:21,350 >> Astfel spre acest scop, am de gând să merg înapoi la desktop-ul meu pe aici și 333 00:15:21,350 --> 00:15:25,890 va introduce alternativa la care Programul, care se va arata o 334 00:15:25,890 --> 00:15:30,790 ceva lumina aceasta. 335 00:15:30,790 --> 00:15:33,930 Așa am de gând să pună în aplicare această aceluiași program azi - două puzzle 336 00:15:33,930 --> 00:15:37,710 piese care, atunci când întrepătrunse și clic pe, se va spune la lume, 337 00:15:37,710 --> 00:15:39,000 Bună ziua lume. 338 00:15:39,000 --> 00:15:41,200 >> Deci, haideți să mergem de fapt acolo. 339 00:15:41,200 --> 00:15:44,965 Așa că am de gând să merg mai departe și deschide un site-ul cunoscut sub numele de scratch.mit.edu. 340 00:15:44,965 --> 00:15:47,980 341 00:15:47,980 --> 00:15:52,040 Și acest lucru mi-a va conduce acest site aici. 342 00:15:52,040 --> 00:15:54,660 În prealabil, m-am logat în acest site-ul și primele probleme care 343 00:15:54,660 --> 00:15:55,910 vă va plimba prin unele dintre aceste etape. 344 00:15:55,910 --> 00:15:58,930 Am de gând să merg mai departe și faceți clic pe pe dosarul meu de zero aici. 345 00:15:58,930 --> 00:16:00,720 >> Și acest lucru se întâmplă să-mi arate unele proiecte pe care le-am 346 00:16:00,720 --> 00:16:02,570 de fapt, creat în prealabil. 347 00:16:02,570 --> 00:16:05,860 Și se pare că acest grafic limbaj de programare nu numai că se va 348 00:16:05,860 --> 00:16:08,480 să ne lase programul de glisare și in scadere aceste piese de puzzle, te 349 00:16:08,480 --> 00:16:09,730 nu au nevoie de nici un software special. 350 00:16:09,730 --> 00:16:13,190 Este totul încorporat într-un browser, astfel pe care le puteți face acest lucru, în teorie, pe 351 00:16:13,190 --> 00:16:16,810 computerele chiar acum, așa cum unii dintre voi ar putea fi bine, chiar fără a fi nevoie 352 00:16:16,810 --> 00:16:19,870 software-ul ca CS50 aparat, care va veni saptamana viitoare. 353 00:16:19,870 --> 00:16:24,200 >> Așa că am de gând să meargă până la colțul de sus aici și faceți clic pe Creare. 354 00:16:24,200 --> 00:16:27,840 Și într-un moment am de gând pentru a obține un gol Ecranul prin care pot începe 355 00:16:27,840 --> 00:16:30,380 programare în acest grafic mediul de programare. 356 00:16:30,380 --> 00:16:36,140 Dar de data asta, o să fie mult, mult mai simplu de a face de fapt acest lucru. 357 00:16:36,140 --> 00:16:41,560 Deci, într-o clipă, atunci când Wi-Fi cooperează, acum avem acest ecran. 358 00:16:41,560 --> 00:16:44,870 Deci, un tur rapid verbal, dar îndrăznesc să spun, cu siguranță atunci când vă arunca cu capul în 359 00:16:44,870 --> 00:16:46,840 Primul set problemă, veți găsi acest toate foarte 360 00:16:46,840 --> 00:16:48,315 accesibilă și destul de intuitiv. 361 00:16:48,315 --> 00:16:50,900 Dar haideți să picteze o imagine mentală pentru doar o clipă. 362 00:16:50,900 --> 00:16:54,620 >> Deci, sub acest prompt de salvare spun modificări, esti pe cale de a vedea zero. 363 00:16:54,620 --> 00:16:55,570 Acesta este un spirit. 364 00:16:55,570 --> 00:16:56,630 Este un personaj. 365 00:16:56,630 --> 00:17:00,740 Și el trăiește în ceea ce vom numi o etapă, acest dreptunghi mare alb pe 366 00:17:00,740 --> 00:17:03,120 care se poate mișca în sus, jos, stânga, dreapta, și de a face, într-adevăr, 367 00:17:03,120 --> 00:17:04,670 alte tipuri de acțiuni. 368 00:17:04,670 --> 00:17:08,780 >> Intre timp, în mijlocul acestui utilizator interfață, avem o grămadă de 369 00:17:08,780 --> 00:17:09,750 piese de puzzle. 370 00:17:09,750 --> 00:17:14,060 Și veți vedea că ei spun lucruri, cum ar fi deplasa 10 pași, sa transformat 15 de grade, 371 00:17:14,060 --> 00:17:15,550 punct într-o anumită direcție. 372 00:17:15,550 --> 00:17:17,910 Dar există categorii de blocuri până aici. 373 00:17:17,910 --> 00:17:21,410 Deci, dacă mă duc la un aspect, veți vedea că există alte piese de puzzle care 374 00:17:21,410 --> 00:17:25,530 se pare că va spune acest lucru cit de salut, de a gândi, de a arăta 375 00:17:25,530 --> 00:17:26,780 însuși, se ascundă. 376 00:17:26,780 --> 00:17:30,830 Dacă mă duc în jos la Sunete, se dovedește există modalități de a reda sunete ca miau, 377 00:17:30,830 --> 00:17:32,670 pentru a opri toate sunetele, să joace un tambur. 378 00:17:32,670 --> 00:17:36,530 >> Deci, pe scurt, există un întreg grămadă de piese de puzzle care vă permit 379 00:17:36,530 --> 00:17:40,920 pentru a spune acest pisica, sau orice număr de alte personaje, ce să facă. 380 00:17:40,920 --> 00:17:43,850 Dar pentru a face acest lucru se întâmplă tot nevoie pentru a începe de programare. 381 00:17:43,850 --> 00:17:48,090 Și această cutie mare alb, sau o cutie gri, pe partea dreapta, acest lucru este în cazul în care 382 00:17:48,090 --> 00:17:50,170 Am de gând să trageți de fapt și renunțat la toate aceste piese de puzzle. 383 00:17:50,170 --> 00:17:54,320 Acesta este textul meu gol Fereastra echivalent. 384 00:17:54,320 --> 00:17:57,070 >> Așa că am de gând să merg mai departe și faceți clic pe Controlul la mijloc. 385 00:17:57,070 --> 00:17:58,540 Sau, mai degrabă, permiteți-mi să încep sub Events. 386 00:17:58,540 --> 00:18:01,530 Sub bancă Evenimente, veți observa o câteva lucruri care sunt în mod deliberat 387 00:18:01,530 --> 00:18:05,240 curbat pe partea de sus în așa fel încât ei, probabil, nu se intercaleze pe 388 00:18:05,240 --> 00:18:06,710 partea de sus a piesele puzzle-ului. 389 00:18:06,710 --> 00:18:10,160 Și asta pentru că demarcheze de start a unui program, începutul unei 390 00:18:10,160 --> 00:18:11,910 script-ul, ca să spunem așa. 391 00:18:11,910 --> 00:18:16,290 Deci, dacă am merge mai departe și trage, atunci când verde steag clic pe aici, și apoi am 392 00:18:16,290 --> 00:18:18,060 Vreau aceasta pisica să spun ceva la început. 393 00:18:18,060 --> 00:18:20,510 Așa că am de gând să merg în arată panoul. 394 00:18:20,510 --> 00:18:24,060 Și am de gând să merg mai departe și apuca salut bloc, și trageți, și picătură, 395 00:18:24,060 --> 00:18:27,220 și da drumul, astfel încât acesta automat uneste acolo. 396 00:18:27,220 --> 00:18:28,640 >> Și apoi observați pot faceți clic pe textul. 397 00:18:28,640 --> 00:18:31,960 Și eu pot trece peste asta să fie mai specifice cum ar fi, să zicem, salut lume. 398 00:18:31,960 --> 00:18:36,340 Și acum avem programul pe care eu pretind este echivalent cu cel mult 399 00:18:36,340 --> 00:18:39,670 Programul de arcane Am implementat în C acum o clipă. 400 00:18:39,670 --> 00:18:43,130 >> Dacă mă duc acum la partea stângă, observa nu e un semn de oprire mare 401 00:18:43,130 --> 00:18:44,520 și un mare steag verde. 402 00:18:44,520 --> 00:18:46,390 Permiteți-mi mări pentru claritate. 403 00:18:46,390 --> 00:18:49,390 Și când acum am faceți clic pe acest steag verde, probabil, puteți ghici ce această primă 404 00:18:49,390 --> 00:18:51,920 Programul este acum de gând să facă. 405 00:18:51,920 --> 00:18:55,420 Deci, nu există, de asemenea, suntem de programare, dar nu suntem de fapt împotmolit 406 00:18:55,420 --> 00:18:58,980 în unele dintre aceste sintactică, detalii minut. 407 00:18:58,980 --> 00:19:01,120 >> Dar haideți să încercăm ceva un pic mai interesant. 408 00:19:01,120 --> 00:19:04,840 Lasă-mă să intru în dosarul meu de Scratch aici. 409 00:19:04,840 --> 00:19:10,210 Și, de fapt, lasă-mă astfel să-mi deschid un program separat aici pentru doar o 410 00:19:10,210 --> 00:19:17,830 clipă, Maximizați această fereastră, Deschidere fișier, și am de gând să meargă în de astăzi 411 00:19:17,830 --> 00:19:18,620 directorul sursă. 412 00:19:18,620 --> 00:19:21,660 Ca întotdeauna, veți găsi, de azi și mai departe, că toate exemplele de astăzi 413 00:19:21,660 --> 00:19:25,225 sunt accesibile în interiorul site-ul cursului. 414 00:19:25,225 --> 00:19:31,170 >> Și am de gând să merg mai departe aici și alegeți un pic ceva diferit. 415 00:19:31,170 --> 00:19:33,970 Acest unul aici, pentru care Am nevoie de un voluntar. 416 00:19:33,970 --> 00:19:36,850 Cine vrea o lampă de birou azi? 417 00:19:36,850 --> 00:19:40,600 OK, ce zici de cineva un pic - esti pe final? 418 00:19:40,600 --> 00:19:42,124 Vino pe jos. 419 00:19:42,124 --> 00:19:47,230 Acum, doriți să participe, sau doar spun începe cu lampa de birou? 420 00:19:47,230 --> 00:19:48,190 >> VANESSA: [inaudibil]. 421 00:19:48,190 --> 00:19:48,465 >> DAVID MALAN: OK. 422 00:19:48,465 --> 00:19:49,610 Excelent, ceea ce e numele? 423 00:19:49,610 --> 00:19:49,990 Vanessa? 424 00:19:49,990 --> 00:19:50,570 David. 425 00:19:50,570 --> 00:19:51,390 Îmi pare bine. 426 00:19:51,390 --> 00:19:53,840 Asa ca haide sus și Vanessa merge sa preia controlul asupra mea 427 00:19:53,840 --> 00:19:55,490 tastatură pentru doar o clipă. 428 00:19:55,490 --> 00:19:57,850 Și ce am făcut aici, doar pentru timpul lui binele, așa cum l-am dat seama de 429 00:19:57,850 --> 00:20:01,070 Wi-Fi a fost un pic cam lent, Scratch, mediu de programare care suntem 430 00:20:01,070 --> 00:20:04,110 utilizarea, poate fi, de asemenea, descărcate și rula pe computerul local. 431 00:20:04,110 --> 00:20:06,360 Deci, ceea ce am făcut înainte de curs, în cazul în care se întâmplă, este am descărcat 432 00:20:06,360 --> 00:20:09,120 toate fișierele suntem pe cale să se joace cu astfel încât să poată rula un pic mai mult 433 00:20:09,120 --> 00:20:10,840 rapid chiar aici pe laptop-ul meu. 434 00:20:10,840 --> 00:20:13,460 Deci, de ce acum mă văd o interfață Mac-specifice. 435 00:20:13,460 --> 00:20:15,510 >> Așa că am de gând să merg mai departe și deschide asta. 436 00:20:15,510 --> 00:20:18,400 Am de gând să merg mai departe acum și ecran complet fereastra. 437 00:20:18,400 --> 00:20:21,740 Și, după cum veți vedea, putem foarte repede, ca acest student a făcut, una dintre 438 00:20:21,740 --> 00:20:26,360 predecesorii dumneavoastră, du-te la Salut lume la o mult mai mult mai convingătoare 439 00:20:26,360 --> 00:20:27,020 cerere. 440 00:20:27,020 --> 00:20:28,180 Deci, aici sunt instrucțiunile. 441 00:20:28,180 --> 00:20:29,500 Oh, și avem un alt lucru. 442 00:20:29,500 --> 00:20:31,640 M-am gândit că ar fi distractiv, deoarece, în mod normal, vom filma 443 00:20:31,640 --> 00:20:32,440 camere de acest fel. 444 00:20:32,440 --> 00:20:34,100 M-am gândit că ar fi distractiv dacă, Vanessa, am putea vedea lumea 445 00:20:34,100 --> 00:20:35,120 prin ochii tăi. 446 00:20:35,120 --> 00:20:36,670 Deci, aici avem o sticlă Google. 447 00:20:36,670 --> 00:20:39,290 >> [Gasps uimit] 448 00:20:39,290 --> 00:20:41,610 >> DAVID MALAN: Vom da numai distanță lămpi de birou azi. 449 00:20:41,610 --> 00:20:43,530 >> [Râsete] 450 00:20:43,530 --> 00:20:45,260 >> Deci, lasă-mă să tac asta. 451 00:20:45,260 --> 00:20:49,340 În regulă, deci atingeți acest lucru. 452 00:20:49,340 --> 00:20:51,910 OK, sticlă, înregistra un videoclip. 453 00:20:51,910 --> 00:20:55,700 454 00:20:55,700 --> 00:20:56,950 Bine, Vanessa? 455 00:20:56,950 --> 00:21:00,940 456 00:21:00,940 --> 00:21:05,560 Acum, ca o parte care nu are nimic de de a face cu Scratch, dacă te uiți 457 00:21:05,560 --> 00:21:08,540 ușor în sus și la dreapta, veți vedea sticla literal, și ar trebui să 458 00:21:08,540 --> 00:21:09,650 vedea-o mică fereastră dreptunghiulară. 459 00:21:09,650 --> 00:21:11,500 Ar trebui să vedeți toate colegii dvs. fiind filmat chiar acum? 460 00:21:11,500 --> 00:21:11,840 Da. 461 00:21:11,840 --> 00:21:12,340 >> VANESSA: Da. 462 00:21:12,340 --> 00:21:12,920 >> DAVID MALAN: OK. 463 00:21:12,920 --> 00:21:15,170 Așa că e bine. 464 00:21:15,170 --> 00:21:16,660 Vom lansa acest material mai târziu. 465 00:21:16,660 --> 00:21:18,460 Pentru moment, îndreptați-vă atenția la ecranul aici. 466 00:21:18,460 --> 00:21:20,990 Și ceea ce predecesorul dumneavoastră a făcut este pune unele instrucțiunile de pe ecran 467 00:21:20,990 --> 00:21:22,670 doar prin utilizarea unui program de vopsea. 468 00:21:22,670 --> 00:21:25,040 Deci, ai de gând să, într-o clipă, apăsați bara de spațiu pentru a începe. 469 00:21:25,040 --> 00:21:27,790 Și apoi unele piese de puzzle se vor pentru a începe să se deplasează în sus pe ecran. 470 00:21:27,790 --> 00:21:30,900 Și doriți să lovit tastele săgeată, doar ca în viața reală DDR, în conformitate 471 00:21:30,900 --> 00:21:32,740 cu lucruri alinierea cu aceste săgeți. 472 00:21:32,740 --> 00:21:33,020 >> VANESSA: OK. 473 00:21:33,020 --> 00:21:33,800 >> DAVID MALAN: Ai juca acest înainte. 474 00:21:33,800 --> 00:21:34,140 >> VANESSA: Da. 475 00:21:34,140 --> 00:21:37,330 >> DAVID MALAN: Bine, Vanessa, mergeți mai departe și să-l departe. 476 00:21:37,330 --> 00:22:53,082 >> [MUSIC - Kayne West, "puternic"] 477 00:22:53,082 --> 00:22:57,080 >> [Aplauze] 478 00:22:57,080 --> 00:22:59,750 >> DAVID MALAN: Deci, hai acum ia un pas de asta. 479 00:22:59,750 --> 00:23:01,230 Deci, în mod clar, că e sfârșitul jocului. 480 00:23:01,230 --> 00:23:02,880 Jocul final nu este Salut lume. 481 00:23:02,880 --> 00:23:05,520 Dar nu trebuie să facă în mod necesar lucruri care sunt atât de interactiv. 482 00:23:05,520 --> 00:23:06,810 Puteți face, de asemenea animație. 483 00:23:06,810 --> 00:23:10,790 Deci, de exemplu, un altul de ta succesorii făcut acest program de aici, 484 00:23:10,790 --> 00:23:14,100 care spune o poveste mai mult ea are implementat un joc. 485 00:23:14,100 --> 00:23:19,180 Așa că lasă-mă să merg mai departe și să se deschidă aici o programul în directorul nostru sursa de același 486 00:23:19,180 --> 00:23:20,300 din ziua de azi. 487 00:23:20,300 --> 00:23:26,990 Acest apel, și să începem cu, o poveste de dragoste cookie. 488 00:23:26,990 --> 00:23:30,750 >> Și nu pentru a face acest lucru prea academic, dar, cum te uiți la asta, cred că a 489 00:23:30,750 --> 00:23:34,030 te care dintre cei simplă conceptele de programare care am vorbit 490 00:23:34,030 --> 00:23:34,630 de până acum - 491 00:23:34,630 --> 00:23:39,250 variabile, și bucle, și condițiile, am, probabil, predecesorul dumneavoastră folosiți doar 492 00:23:39,250 --> 00:23:41,090 să pună în aplicare unele dintre de vizualizări. 493 00:23:41,090 --> 00:23:41,760 Vedeți aici. 494 00:23:41,760 --> 00:23:44,118 Deci, eu vă dau o poveste de dragoste cookie. 495 00:23:44,118 --> 00:24:06,030 >> [MUSIC - GREEN DAY, "CONCEDIU"] 496 00:24:06,030 --> 00:24:08,022 >> [CRASH] 497 00:24:08,022 --> 00:24:09,272 >> [MUSIC - țestoase, "Fericiți împreună"] 498 00:24:09,272 --> 00:24:58,328 499 00:24:58,328 --> 00:25:00,560 >> DAVID MALAN: Bine, așa că, am avut o poveste de dragoste cookie. 500 00:25:00,560 --> 00:25:01,360 Dar chiar și acolo - 501 00:25:01,360 --> 00:25:01,755 >> [Aplauze] 502 00:25:01,755 --> 00:25:08,110 >> DAVID MALAN: Bine, chiar acolo, gândească, ca acele inimi a trecut de la 503 00:25:08,110 --> 00:25:10,410 în partea de jos în partea de sus a ecranului, nu a fost de fapt un pic de 504 00:25:10,410 --> 00:25:11,440 întâmplare se întâmplă. 505 00:25:11,440 --> 00:25:14,150 Și într-adevăr, vom vedea că, chiar și în simplu de medii, cum ar fi 506 00:25:14,150 --> 00:25:18,180 Zero, la fel ca în C, poate genera numere aleatoare, sau iluzia de 507 00:25:18,180 --> 00:25:21,110 numere aleatoare, astfel că jocul este o mai interesant decât s-ar putea 508 00:25:21,110 --> 00:25:23,390 fi dacă ați avut absolut greu tot codificate. 509 00:25:23,390 --> 00:25:26,360 >> În mișcarea pe care le vezi, acolo există un fel de reacție. 510 00:25:26,360 --> 00:25:28,840 De îndată ce atinge omul de turta dulce femeie turtă dulce, ea 511 00:25:28,840 --> 00:25:30,000 pare să se mute departe. 512 00:25:30,000 --> 00:25:33,580 Și astfel, într-adevăr, vă poate pune în aplicare, în cele mai multe limbaje de programare, noțiunea 513 00:25:33,580 --> 00:25:38,680 de evenimente, prin care dacă cineva atinge mână de altă parte, care poate declanșa unele 514 00:25:38,680 --> 00:25:41,270 din codul sursă pentru de fapt executa. 515 00:25:41,270 --> 00:25:43,740 Puteți asculta pentru astfel de lucrurile de pe ecran. 516 00:25:43,740 --> 00:25:47,310 >> Deci, haideți să ia un tur rapid, apoi, de unele dintre elementele constitutive le pot utiliza 517 00:25:47,310 --> 00:25:48,790 pentru a realiza unele dintre aceste obiective. 518 00:25:48,790 --> 00:25:51,630 Deci, aici este ceea ce vom continuare suna o declarație. 519 00:25:51,630 --> 00:25:55,030 O declarație se întâmplă să fie în purpuriu Zero, ceva ca aceasta, 520 00:25:55,030 --> 00:25:56,120 dar asta e arbitrar. 521 00:25:56,120 --> 00:26:00,140 O declarație este doar o piesă de puzzle sau, în general, o instrucțiune, care 522 00:26:00,140 --> 00:26:03,370 spune computer pentru a face ceva, o declarație. 523 00:26:03,370 --> 00:26:04,680 >> Deci, aici este un eșantion simplu. 524 00:26:04,680 --> 00:26:05,930 Spune salut lume. 525 00:26:05,930 --> 00:26:08,180 Un altul ar putea fi așteptați o secundă. 526 00:26:08,180 --> 00:26:10,840 Deci, această piesă de puzzle, care este sprijinit în Scratch, vom lăsa dvs. 527 00:26:10,840 --> 00:26:13,050 caractere pauză pentru unele Numărul de secunde. 528 00:26:13,050 --> 00:26:15,330 Acest lucru, de asemenea, este doar o afirmație. 529 00:26:15,330 --> 00:26:18,640 >> Aici viitoare, avem un alt mai mult unul interesant, jocul miau sunet, și 530 00:26:18,640 --> 00:26:21,480 săgeata mică înseamnă că, în Scratch, aceasta este un meniu vertical. 531 00:26:21,480 --> 00:26:22,590 Astfel încât să puteți importa sunete. 532 00:26:22,590 --> 00:26:25,095 Puteți înregistra sunete și de a face alte lucruri amuzante în Scratch. 533 00:26:25,095 --> 00:26:28,450 Și că, de asemenea, deși, la sfârșitul a doua zi, este doar o afirmație. 534 00:26:28,450 --> 00:26:31,250 Dar acum să introducă o mai piesă interesantă, care cunoscut ca o 535 00:26:31,250 --> 00:26:32,630 Expresie booleană. 536 00:26:32,630 --> 00:26:35,180 Capital B, numit după un tip pe nume Bool. 537 00:26:35,180 --> 00:26:39,500 >> Și o expresie booleană este doar o piesă de puzzle sau, mai general, o 538 00:26:39,500 --> 00:26:42,980 bucată de informații, care este fie adevărate sau false - 539 00:26:42,980 --> 00:26:45,830 unul sau zero, da sau nu. 540 00:26:45,830 --> 00:26:48,420 Deci, este doar unul dintre cei două contrarii. 541 00:26:48,420 --> 00:26:52,840 Deci, un astfel de expresie booleană în lumea Scratch arata ca aceasta albastru 542 00:26:52,840 --> 00:26:53,560 Piesă de puzzle. 543 00:26:53,560 --> 00:26:56,735 Și se pune o întrebare, mouse-ul în jos, și care poate fi fie, de 544 00:26:56,735 --> 00:26:58,430 Desigur, adevărat sau fals. 545 00:26:58,430 --> 00:27:01,710 Deci, cu această piesă de puzzle în Scratch, Ei bine, va fi capabil de a detecta dacă un 546 00:27:01,710 --> 00:27:05,490 puzzle dacă mouse-ul este, de fapt, fiind apăsat de interactie uman 547 00:27:05,490 --> 00:27:06,550 cu programul dumneavoastră. 548 00:27:06,550 --> 00:27:08,860 >> Asta e un pic mai abstract, dar cele două cutii albe 549 00:27:08,860 --> 00:27:09,740 sunt doar pentru numere. 550 00:27:09,740 --> 00:27:12,950 Astfel încât să puteți face lucruri de genul asta număr mai mic decât celelalte? 551 00:27:12,950 --> 00:27:16,180 Și dacă da, Scratch va comporta într-un fel sau altul. 552 00:27:16,180 --> 00:27:17,505 Asta e un pic mai mult grafic. 553 00:27:17,505 --> 00:27:21,840 Este în cazul în care Sprite, în cazul în care pisica, pentru exemplu, este de fapt atingând 554 00:27:21,840 --> 00:27:22,510 cursorul mouse-ului. 555 00:27:22,510 --> 00:27:25,780 Deci, dacă puțin capul săgeții situându-se peste pisica, atunci această 556 00:27:25,780 --> 00:27:28,030 piesa de puzzle va evalua la adevarata. 557 00:27:28,030 --> 00:27:31,870 Acesta va fi adevărat, în cazul în care, dacă ați utilizați această expresie booleană, cum vom 558 00:27:31,870 --> 00:27:36,340 a se vedea într-o clipă, într-o ramură, puteți fie face acest lucru, sau puteți face asta, 559 00:27:36,340 --> 00:27:39,940 mult ca am avut o stare care verificat, există o persoană de familie 560 00:27:39,940 --> 00:27:40,460 in camera? 561 00:27:40,460 --> 00:27:42,070 Dacă este așa, se adaugă o. 562 00:27:42,070 --> 00:27:44,430 În caz contrar, nu vă faceți griji mai mult. 563 00:27:44,430 --> 00:27:48,650 >> Deci, o expresie booleană poate fi, de asemenea, și-ed împreună sau sau-ed împreună. 564 00:27:48,650 --> 00:27:53,120 Astfel încât să puteți combina expresii booleene și spun acest lucru și acest lucru trebuie să fie valabil și pentru 565 00:27:53,120 --> 00:27:54,710 totul să fie adevărat. 566 00:27:54,710 --> 00:27:56,520 Și aici este o mai real exemplu lumea. 567 00:27:56,520 --> 00:28:00,060 Dacă ați utilizat CS50 Cursuri pentru a face cursul cumpărături, aceste casete de selectare 568 00:28:00,060 --> 00:28:03,520 acolo, unde dacă verificați că caseta de lângă la cursuri, care vor spune, da, 569 00:28:03,520 --> 00:28:07,860 doar arată-mi cursuri pentru care Q valoare este de 4,5 sau mai mare. 570 00:28:07,860 --> 00:28:10,610 Dacă debifați-l, nu, nu vă faceți griji despre asta. 571 00:28:10,610 --> 00:28:13,910 Sau similar, pe dreapta, nu- Conflictul cu cursurile pe care le iau, 572 00:28:13,910 --> 00:28:15,650 care este fie adevărat sau fals. 573 00:28:15,650 --> 00:28:16,715 Este doar o expresie booleană. 574 00:28:16,715 --> 00:28:20,080 Deci, tot acest timp când le-ați folosit site-uri cu casete de selectare, esti doar 575 00:28:20,080 --> 00:28:23,570 basculând echivalentul unei Boolean Expresia de pe și în afara. 576 00:28:23,570 --> 00:28:25,270 >> Deci, în ceea ce formă folositi astea? 577 00:28:25,270 --> 00:28:28,820 Ei bine, în Scratch, vom vedea într-o clipă că există condiții care 578 00:28:28,820 --> 00:28:29,560 arata ca aceasta. 579 00:28:29,560 --> 00:28:33,130 Și asta e un fel de sensibil, deoarece mai mult ca și în pseudocod, am indentat 580 00:28:33,130 --> 00:28:38,550 un fel de piese de puzzle in forma de U, înseamnă că nimic în interiorul de care U este 581 00:28:38,550 --> 00:28:41,390 va executa, sau nu, în funcție de pe unde este. 582 00:28:41,390 --> 00:28:45,310 Deci, dacă expresie booleană, apoi ce este în interiorul va fi executat. 583 00:28:45,310 --> 00:28:46,800 >> În același timp, există o dacă / altceva bloc. 584 00:28:46,800 --> 00:28:50,320 Deci, dacă doriți o filială, care merge acest fel sau care, Scratch ne dă asta. 585 00:28:50,320 --> 00:28:54,500 Și de această logică, acum, chiar dacă această piesa de puzzle este în mod clar prea mic 586 00:28:54,500 --> 00:28:57,400 pentru fixarea altceva în interiorul de ea, piesele puzzle-ului zero, acestea sunt 587 00:28:57,400 --> 00:28:58,150 doar de gând să crească. 588 00:28:58,150 --> 00:29:01,370 Când glisați și să fixați peste ceva, acesta va crește doar pentru a se potrivi orice 589 00:29:01,370 --> 00:29:02,510 este ce încerci să faci. 590 00:29:02,510 --> 00:29:07,230 >> Astfel încât să putem lua două din aceste lucruri și face o furculiță drum trei în drum atât de 591 00:29:07,230 --> 00:29:11,300 care fie faci asta, sau asta, sau acest alt lucru doar de ei cuiburi 592 00:29:11,300 --> 00:29:12,070 în acest mod. 593 00:29:12,070 --> 00:29:14,370 Desigur, dacă faci asta mult, ea începe să iasă urât. 594 00:29:14,370 --> 00:29:17,660 Dar, la acel moment, tu esti de fapt probabil, nu de programare foarte bine. 595 00:29:17,660 --> 00:29:20,490 Și astfel încât va fi recurente Tema, de asemenea, că de stil. 596 00:29:20,490 --> 00:29:22,790 Doar cât de bine de fapt, formata codul? 597 00:29:22,790 --> 00:29:24,580 Sau cât de bine se pot concepe codul? 598 00:29:24,580 --> 00:29:26,430 Dar mai mult pe faptul că, în viitor. 599 00:29:26,430 --> 00:29:27,470 >> Și acum avem bucle. 600 00:29:27,470 --> 00:29:30,310 Există o frumoasă buclă pentru totdeauna în Scratch ceea ce înseamnă literalmente că - nu 601 00:29:30,310 --> 00:29:32,710 orice ar fi în interiorul acestui nou, și din nou, și din nou. 602 00:29:32,710 --> 00:29:35,880 Puteți fi mai concret și spune, face următorul lucru de 10 ori. 603 00:29:35,880 --> 00:29:37,620 Puteți folosi, de asemenea, variabile. 604 00:29:37,620 --> 00:29:40,260 Puteti veni cu orice nume, în care picatura jos și spune, da-mi un 605 00:29:40,260 --> 00:29:43,190 variabilă numită n și stabilit este egal cu o anumită valoare. 606 00:29:43,190 --> 00:29:44,910 Și apoi puteți avea funcții. 607 00:29:44,910 --> 00:29:46,850 Dar mai mult pe cei care într-o clipă. 608 00:29:46,850 --> 00:29:49,140 >> Lasă-mă să mă întorc la meu Scratch interfață. 609 00:29:49,140 --> 00:29:50,970 Și lasă-mă să merg mai departe de data asta. 610 00:29:50,970 --> 00:29:56,660 Și să mergem mai departe și să se deschidă, să spunem, un exemplu de la - 611 00:29:56,660 --> 00:29:58,740 că este un pic mai interesant. 612 00:29:58,740 --> 00:30:00,750 Lasă-mă să merg mai departe, și, de fapt, permiteți-mi să fac eu. 613 00:30:00,750 --> 00:30:01,960 Nu am nevoie pentru a deschide aceasta. 614 00:30:01,960 --> 00:30:03,390 Lasă-mă să mergeți la File, New. 615 00:30:03,390 --> 00:30:04,740 Am de gând să merg la evenimente. 616 00:30:04,740 --> 00:30:08,460 Am de gând să merg la atunci când steagul verde clic, și am de gând să merg la sunet. 617 00:30:08,460 --> 00:30:11,590 Și am de gând să glisați și să fixați acest piesa de puzzle, juca miau sunet. 618 00:30:11,590 --> 00:30:12,580 Este oarba împreună. 619 00:30:12,580 --> 00:30:14,327 Și acum, dacă am faceți clic pe steagul verde - 620 00:30:14,327 --> 00:30:16,260 >> [SOUND MEOW] 621 00:30:16,260 --> 00:30:17,500 >> DAVID MALAN: adorabil. 622 00:30:17,500 --> 00:30:21,560 OK, deci acum hai sa facem ceva un pic mai logic doar pentru a demonstra că 623 00:30:21,560 --> 00:30:22,760 putem, pentru acum. 624 00:30:22,760 --> 00:30:25,550 Am de gând pentru a debloca aceasta din acel tip. 625 00:30:25,550 --> 00:30:27,000 Am de gând să merg la control. 626 00:30:27,000 --> 00:30:28,770 Și am de gând să iau o condiție. 627 00:30:28,770 --> 00:30:30,600 Deci, dacă ceva atunci. 628 00:30:30,600 --> 00:30:32,020 Deci, asta e cum arată acolo. 629 00:30:32,020 --> 00:30:33,890 Așa că am nevoie de o expresie booleană. 630 00:30:33,890 --> 00:30:38,130 Și lasă-mă să merg mai departe și spune, lasă-mă să merg la operatori. 631 00:30:38,130 --> 00:30:40,270 Am de gând să fac ceva ușor Mathy, doar pentru lovituri. 632 00:30:40,270 --> 00:30:43,600 Am de gând să meargă în aici și spune, în cazul în care ceva este mai mică de altceva, 633 00:30:43,600 --> 00:30:45,030 mergeți mai departe și de a face ceva. 634 00:30:45,030 --> 00:30:46,890 Deci, acum, știți ce, un bloc aleatoriu. 635 00:30:46,890 --> 00:30:51,620 Deci observa cum, dacă treceți peste acest lucru aici, care va sari acolo. 636 00:30:51,620 --> 00:30:54,090 >> Deci, acum, notificare, am început să fac ceva deja mai logic 637 00:30:54,090 --> 00:30:54,650 interesant. 638 00:30:54,650 --> 00:30:59,720 În cazul în care un număr aleator între 1 și 10 este mai mică de, să zicem șase. 639 00:30:59,720 --> 00:31:03,670 Dacă aleg șase, care, în esență mijloace, procedați astfel cu 50% 640 00:31:03,670 --> 00:31:03,980 probabilitate. 641 00:31:03,980 --> 00:31:05,460 E ca flipping o monedă. 642 00:31:05,460 --> 00:31:07,330 Acum, eu pot face ceva condiționat. 643 00:31:07,330 --> 00:31:10,800 Și că ceva am de gând să faci este să joci sunetul. 644 00:31:10,800 --> 00:31:14,280 Așa că acum, când am faceți clic pe ecran pavilion, e ca aruncarea unei monede. 645 00:31:14,280 --> 00:31:14,610 >> [SOUND MEOW] 646 00:31:14,610 --> 00:31:17,160 >> DAVID MALAN: A fost capete sau fleacuri acolo. 647 00:31:17,160 --> 00:31:17,920 Să o facem din nou. 648 00:31:17,920 --> 00:31:18,860 >> [SOUND MEOW] 649 00:31:18,860 --> 00:31:19,790 >> DAVID MALAN: Heads din nou. 650 00:31:19,790 --> 00:31:20,280 >> [SOUND MEOW] 651 00:31:20,280 --> 00:31:21,500 >> DAVID MALAN: Heads din nou. 652 00:31:21,500 --> 00:31:22,631 Pfiu, OK. 653 00:31:22,631 --> 00:31:24,720 Cozi acel moment. 654 00:31:24,720 --> 00:31:29,545 Deci 50% din timp, dacă vom face acest lucru infinit de lung, vom primi 50% miauna 655 00:31:29,545 --> 00:31:32,180 și tăcerile 50%. 656 00:31:32,180 --> 00:31:34,850 Deci, există, doar o clădire de bază bloc, care ne permite să facem asta. 657 00:31:34,850 --> 00:31:37,710 Dar aceasta este un fel de plictisitoare pentru care am să păstreze făcând clic pe acel buton. 658 00:31:37,710 --> 00:31:39,810 Așa că hai să glisați și arunca toate aceste departe. 659 00:31:39,810 --> 00:31:42,270 Dacă le-ați târât la mijloc, se vor șterge doar ei înșiși. 660 00:31:42,270 --> 00:31:43,760 >> Lasă-mă să merg pentru a controla. 661 00:31:43,760 --> 00:31:46,060 Lasă-mă să merg la totdeauna. 662 00:31:46,060 --> 00:31:49,952 Și de data asta, am de gând să fac ceva minorly enervant. 663 00:31:49,952 --> 00:31:51,560 >> [Râsete] 664 00:31:51,560 --> 00:31:53,370 >> DAVID MALAN: Și lasă-mă să merg înainte și de a face controlul. 665 00:31:53,370 --> 00:31:57,260 Așteaptă o secundă, doar așa nu e prea grilaj. 666 00:31:57,260 --> 00:31:59,870 >> [SOUND MEOW] 667 00:31:59,870 --> 00:32:00,970 >> DAVID MALAN: Asta nu e natural. 668 00:32:00,970 --> 00:32:01,861 OK. 669 00:32:01,861 --> 00:32:04,510 >> [SOUND MEOW] 670 00:32:04,510 --> 00:32:06,406 >> DAVID MALAN: Și observați ce, frumos despre Scratch, pentru cei dintre voi care 671 00:32:06,406 --> 00:32:09,210 au experiență anterioară de programare, te nu trebuie să pornească și să oprească. 672 00:32:09,210 --> 00:32:10,060 Nu aveți nevoie pentru a compila. 673 00:32:10,060 --> 00:32:13,210 Trebuie doar schimba, iar programul va adapta dinamic. 674 00:32:13,210 --> 00:32:14,620 Deci, acest lucru devine o puțin interesant. 675 00:32:14,620 --> 00:32:16,930 Dar hai sa-l ia un pas mai departe. 676 00:32:16,930 --> 00:32:19,760 Lasă-mă să mergeți mai departe și să scăpa de acest program. 677 00:32:19,760 --> 00:32:23,300 >> [SOUND MEOW] 678 00:32:23,300 --> 00:32:25,520 >> DAVID MALAN: Asta e ceea ce vom apela un bug în Scratch. 679 00:32:25,520 --> 00:32:26,770 El nu ar trebui să țină face acel sunet. 680 00:32:26,770 --> 00:32:28,340 Așa că am să-i spun să se oprească. 681 00:32:28,340 --> 00:32:30,435 Bine, asa ca acum eu sunt merge în - 682 00:32:30,435 --> 00:32:32,180 O să MIT știu. 683 00:32:32,180 --> 00:32:35,160 Vom merge pe aici pentru totdeauna. 684 00:32:35,160 --> 00:32:37,240 Și acum, vreau să fac ceva din nou și din nou. 685 00:32:37,240 --> 00:32:38,760 Am de gând să meargă în control. 686 00:32:38,760 --> 00:32:41,570 >> Și să vedem, am de gând să trageți în cazul meu condiție acolo. 687 00:32:41,570 --> 00:32:42,850 Deci, observa acum logica. 688 00:32:42,850 --> 00:32:46,430 Când steagul verde este apasat, nu ceva pentru totdeauna, dar numai asta 689 00:32:46,430 --> 00:32:48,890 ceva în cazul în care acest alt lucru este adevărat. 690 00:32:48,890 --> 00:32:51,480 Am de gând să merg la, să spun, simțind. 691 00:32:51,480 --> 00:32:54,430 Și am de gând să merg mai departe și alege atinge și plasați-l acolo. 692 00:32:54,430 --> 00:32:55,930 Aceasta este o expresie booleană. 693 00:32:55,930 --> 00:32:57,740 >> Și acum, observa, în această scădere meniu în jos, există 694 00:32:57,740 --> 00:32:59,050 unele valori predefinite. 695 00:32:59,050 --> 00:33:00,910 Deci, eu pot spune, te ating marginea ecranului? 696 00:33:00,910 --> 00:33:03,900 Sau te ating cursorul mouse-ului, săgeata de pe ecran? 697 00:33:03,900 --> 00:33:04,620 Așa că am de gând să fac asta. 698 00:33:04,620 --> 00:33:08,770 Și dacă este așa, atunci am de gând să merg mai departe și să se joace miau sunet. 699 00:33:08,770 --> 00:33:11,250 Așa că acum am un fel de au un început de joc - 700 00:33:11,250 --> 00:33:13,110 un joc adorabil. 701 00:33:13,110 --> 00:33:14,060 >> [SOUND MEOW] 702 00:33:14,060 --> 00:33:17,250 >> DAVID MALAN: OK, un adorabil, joc buggy. 703 00:33:17,250 --> 00:33:20,770 Lasă-mă aștept, să zicem, o secundă acolo. 704 00:33:20,770 --> 00:33:24,910 Acum juca din nou, făcând clic steagul verde. 705 00:33:24,910 --> 00:33:27,860 >> [SOUND MEOW] 706 00:33:27,860 --> 00:33:30,460 >> DAVID MALAN: Deci, acum e ca mângâi o pisică. 707 00:33:30,460 --> 00:33:31,850 >> [SOUND MEOW] 708 00:33:31,850 --> 00:33:34,460 >> DAVID MALAN: Bine, acum aceasta l-am făcut în prealabil. 709 00:33:34,460 --> 00:33:39,250 Foarte târziu, ea devine un fel de ușor de a face lucruri stupide. 710 00:33:39,250 --> 00:33:40,240 Așa că lasă-mă să intru aici. 711 00:33:40,240 --> 00:33:43,720 Să spunem, că a fost Pet Cat. 712 00:33:43,720 --> 00:33:46,600 Să acum deschis Nu Pet Cat. 713 00:33:46,600 --> 00:33:48,330 Acum, dacă vom juca acest unul, puteți ghici, daca esti 714 00:33:48,330 --> 00:33:49,650 se uita la ecran - 715 00:33:49,650 --> 00:33:51,090 >> [SOUND MEOW] 716 00:33:51,090 --> 00:33:52,170 >> DAVID MALAN: Acum, dacă am animale de companie pisica 717 00:33:52,170 --> 00:33:55,420 >> [ROAR Lion] 718 00:33:55,420 --> 00:33:57,260 >> DAVID MALAN: Deci, nu, de fapt animale de companie pisica în acest caz. 719 00:33:57,260 --> 00:34:01,350 Deci, acum avem doar un exemplu de ramură care merge în două direcții. 720 00:34:01,350 --> 00:34:03,130 Acum, lasă-mă să merg mai departe și deschide unul aici. 721 00:34:03,130 --> 00:34:07,120 Acesta, de asemenea, printre sursa noastra fișiere de cod pentru a doua zi. 722 00:34:07,120 --> 00:34:13,199 Așa că lasă-mă să mă întorc la sursa mea director și du-te în, să aleagă 723 00:34:13,199 --> 00:34:15,610 acest tip de aici și vedea ceea ce este diferit. 724 00:34:15,610 --> 00:34:17,449 >> Wow, bine, asa ca acum se face un pic mai complex. 725 00:34:17,449 --> 00:34:21,300 Și înainte de a vedea ce tipul ăsta face, haideți să încercăm să deducă, din programul 726 00:34:21,300 --> 00:34:22,219 în partea dreaptă. 727 00:34:22,219 --> 00:34:25,590 Și acum zero permite în mod clar ne au mai multe script-uri, mai multe 728 00:34:25,590 --> 00:34:29,730 programele asociate cu un Sprite, cu un singur caracter, și, aparent, 729 00:34:29,730 --> 00:34:31,760 acestea sunt atât de gând să ruleze în lockstep. 730 00:34:31,760 --> 00:34:35,570 Deoarece ambele aceste programe începe cu verde atunci când clicuri de pavilion, acesta este 731 00:34:35,570 --> 00:34:38,650 aluzie la un subiect mult mai avansate, cu pe care unii dintre voi s-ar putea să fie familiarizat, 732 00:34:38,650 --> 00:34:40,580 cunoscut sub numele de filetare, sau multi-threading. 733 00:34:40,580 --> 00:34:44,400 >> Se pare că, pe scurt, calculatoare astăzi se poate face, în esență multiple 734 00:34:44,400 --> 00:34:45,270 lucruri deodată. 735 00:34:45,270 --> 00:34:48,659 Sau ei pot face un singur lucru la un moment dat atât de rapid că nici nu observă că 736 00:34:48,659 --> 00:34:50,150 este de fapt face o lucru la un moment dat. 737 00:34:50,150 --> 00:34:53,320 Dar pentru acum, să presupunem că ambele aceste programe se vor executa la 738 00:34:53,320 --> 00:34:54,310 același timp. 739 00:34:54,310 --> 00:34:57,350 Și notificare, ambii au puzzle pentru totdeauna piese. 740 00:34:57,350 --> 00:35:01,270 Astfel încât acestea sunt atât de gând să continua să fie difuzate până când am lovit un semn roșu de stop. 741 00:35:01,270 --> 00:35:02,100 >> Deci, ce au de gând să fac? 742 00:35:02,100 --> 00:35:06,030 Pe partea stângă, eu sunt aparent declararea unei variabile numite dezactivat. 743 00:35:06,030 --> 00:35:09,030 Deci, eu nu am ceva de genul numi cum ar fi plictisitor N. am numit-o dezactivat această 744 00:35:09,030 --> 00:35:10,240 timp pentru a transmite sensurile. 745 00:35:10,240 --> 00:35:11,780 Am pus-o la zero. 746 00:35:11,780 --> 00:35:16,200 Să ne gândim că sunt false, sau să ne gândim că în calitate de fals. 747 00:35:16,200 --> 00:35:17,490 >> Acum, nu pentru totdeauna următoarele. 748 00:35:17,490 --> 00:35:23,280 Dacă este apăsat bara de spațiu tastaturii, apoi, dacă mut este zero, 749 00:35:23,280 --> 00:35:25,930 apoi schimba dezactivat la egal unul. 750 00:35:25,930 --> 00:35:27,580 Altfel, setați mut la zero. 751 00:35:27,580 --> 00:35:30,530 Deci, logic, chiar dacă e un întreg grămadă de piese de puzzle, care e 752 00:35:30,530 --> 00:35:33,160 doar că, atunci când am lovit bara de spațiu, Ce trebuie să fac pentru variabila 753 00:35:33,160 --> 00:35:34,750 numit oprit? 754 00:35:34,750 --> 00:35:37,170 Schimba-l de la unu la zero, sau zero la unu. 755 00:35:37,170 --> 00:35:37,840 Asta e tot. 756 00:35:37,840 --> 00:35:40,740 Deci, e ca cotitură un comutator de lumină on sau off si amintirea, cu o 757 00:35:40,740 --> 00:35:42,330 variabilă, că am făcut asta. 758 00:35:42,330 --> 00:35:45,990 >> Intre timp, pe partea dreaptă, în termeni de nespecialist, ceea ce este scopul 759 00:35:45,990 --> 00:35:47,547 script-ul de pe dreapta? 760 00:35:47,547 --> 00:35:48,860 >> STUDENT: Pentru a reda sunetul leu de mare. 761 00:35:48,860 --> 00:35:52,500 >> DAVID MALAN: Pentru a reda sunetul Sea Lion, dacă el nu este dezactivat, prin 762 00:35:52,500 --> 00:35:53,480 natura acestei variabile. 763 00:35:53,480 --> 00:35:57,360 Deci suntem de partajare de stat, ca să spunem așa, schimbul de informații între aceste două 764 00:35:57,360 --> 00:36:00,540 script-uri, deoarece, observa aici, suntem face totdeauna următoarele. 765 00:36:00,540 --> 00:36:04,620 Dacă dezactivat este zero, deci, dacă nu este oprit - dacă mut este falsă, atunci joacă 766 00:36:04,620 --> 00:36:05,980 acest Lion sunet mare. 767 00:36:05,980 --> 00:36:09,930 Și cred că la tine, hi, hi, hi, pentru două secunde, așteptați un moment, și apoi 768 00:36:09,930 --> 00:36:11,140 verificați din nou. 769 00:36:11,140 --> 00:36:15,150 Deci, dacă mergem acum pe aici, la stânga, unde acest tip este, și a lovit 770 00:36:15,150 --> 00:36:16,662 steagul verde, 771 00:36:16,662 --> 00:36:30,260 >> [Mare leu SOUND] 772 00:36:30,260 --> 00:36:31,910 >> DAVID MALAN: La ce punct acest obține într-adevăr enervant? 773 00:36:31,910 --> 00:36:33,440 Deoarece acest lucru va merge doar pe totdeauna. 774 00:36:33,440 --> 00:36:36,490 Asa ca, uneori, bucle infinite, ca să spunem așa, sunt în mod deliberat. 775 00:36:36,490 --> 00:36:41,140 Dar, în acest caz, de îndată ce am a lovit bara de spațiu, el se oprește. 776 00:36:41,140 --> 00:36:42,800 Acum, programul nu a renuntat. 777 00:36:42,800 --> 00:36:44,760 Este încă în desfășurare în aceste bucle. 778 00:36:44,760 --> 00:36:46,540 Dar dacă am obține din nou bara de spațiu - 779 00:36:46,540 --> 00:36:47,851 >> [Mare leu SOUND] 780 00:36:47,851 --> 00:36:49,650 >> DAVID MALAN: Se va alege de unde a lasat el. 781 00:36:49,650 --> 00:36:53,240 Deci, există o modalitate pentru noi de a face ceva nou și din nou, dar, ca 782 00:36:53,240 --> 00:36:54,920 timp, numai în mod condiționat. 783 00:36:54,920 --> 00:36:58,940 Ei bine, în timp ce suntem în acest sens de a face lucruri din nou și din nou, lasă-mă să 784 00:36:58,940 --> 00:37:01,370 du-te într-un alt astfel de exemplu aici. 785 00:37:01,370 --> 00:37:04,370 Aceasta o vom numi de numărare oi. 786 00:37:04,370 --> 00:37:05,710 >> Și observa ceea ce acest tip face. 787 00:37:05,710 --> 00:37:08,540 Este de fapt un pic mai mult ca pseudocod ne-am jucat cu privire 788 00:37:08,540 --> 00:37:12,230 Miercuri, prin care el stabilește un contra, cred că de ea este ca N, din nou, la 789 00:37:12,230 --> 00:37:14,030 la zero, el are totdeauna următoarele. 790 00:37:14,030 --> 00:37:17,960 El spune că valoarea contor pentru o în al doilea rând, așteaptă o secundă, și apoi 791 00:37:17,960 --> 00:37:19,430 schimbă contorul cu o unitate. 792 00:37:19,430 --> 00:37:21,570 Și în acest context, că doar înseamnă trepte aceasta. 793 00:37:21,570 --> 00:37:23,250 Deci, el se adauga la ea. 794 00:37:23,250 --> 00:37:25,830 Deci, aceasta este literalmente - 795 00:37:25,830 --> 00:37:27,890 nu e chiar ceea ce credem de ca numărare oi. 796 00:37:27,890 --> 00:37:33,120 Este oi face numărarea, pentru totdeauna, de la zero. 797 00:37:33,120 --> 00:37:35,560 >> Deci, putem face lucruri similare acolo, în mod logic. 798 00:37:35,560 --> 00:37:37,750 Dar acum haideți să încercăm să curățați unele dintre aceste lucruri sus. 799 00:37:37,750 --> 00:37:43,440 Lasă-mă să merg mai departe acum într-un simplu de exemplu în cazul în care pisica noastră este doar de gând să 800 00:37:43,440 --> 00:37:44,750 începe tuse. 801 00:37:44,750 --> 00:37:48,830 În regulă, așa că aici avem tuse 0 - 802 00:37:48,830 --> 00:37:50,685 oamenii de stiinta de calculator începe începând de la 0. 803 00:37:50,685 --> 00:37:53,480 Deci, aceasta pisica este doar de gând la tuse de trei ori. 804 00:37:53,480 --> 00:37:54,890 Și iată cum am implementat asta. 805 00:37:54,890 --> 00:38:00,130 Când steagul verde este apasat, tuse, așteaptă, tuse, așteaptă, tuse, așteaptă. 806 00:38:00,130 --> 00:38:02,470 Și am făcut acest lucru doar prin glisarea și fixarea piese de puzzle. 807 00:38:02,470 --> 00:38:04,740 Sau, dacă începe să se joace cu Scratch, veți vedea ce poate de fapt, 808 00:38:04,740 --> 00:38:08,620 duplicat piese, astfel încât să puteți face lucrurile mai rapid, fără tragere 809 00:38:08,620 --> 00:38:10,310 și fixarea ad nauseum. 810 00:38:10,310 --> 00:38:12,680 >> Dar noi nu suntem pe calea cea mai bună aici. 811 00:38:12,680 --> 00:38:15,210 Deoarece cum îl fac tuse pentru a patra oară? 812 00:38:15,210 --> 00:38:16,790 Ei bine, am putea sorta a merge în jos aici. 813 00:38:16,790 --> 00:38:19,420 Am putea duplicat și apoi paste această acolo. 814 00:38:19,420 --> 00:38:21,740 Cum pot să-l tuse a cincea oară? 815 00:38:21,740 --> 00:38:23,230 Ei bine, copiați și inserați din nou. 816 00:38:23,230 --> 00:38:24,210 Sau trageți din nou picătură. 817 00:38:24,210 --> 00:38:26,920 Și foarte repede, acest program pornește pentru a obține într-adevăr, într-adevăr redundante, 818 00:38:26,920 --> 00:38:28,880 foarte lung, dar foarte neinteresant. 819 00:38:28,880 --> 00:38:30,120 Dar există o modalitate de a curăța asta. 820 00:38:30,120 --> 00:38:33,680 Care este modul evident pentru a curăța asta? 821 00:38:33,680 --> 00:38:36,280 >> OK, deci am putea merge de fapt, într-adevăr afară și, când te-a lovit spațiu 822 00:38:36,280 --> 00:38:37,070 bar, l-au tuse. 823 00:38:37,070 --> 00:38:40,150 Dar dacă vreau să fac ceva repetitiv, amintim că avem 824 00:38:40,150 --> 00:38:41,310 un anumit control construiește. 825 00:38:41,310 --> 00:38:43,800 Lasă-mă să mut din Astfel, du-te sub control. 826 00:38:43,800 --> 00:38:47,340 Permiteți-mi să fac o repetare, spune, de trei ori. 827 00:38:47,340 --> 00:38:49,410 Și acum să-mi fure ceva din aceste piese de puzzle. 828 00:38:49,410 --> 00:38:50,980 Lasă-mă să rup asta aici. 829 00:38:50,980 --> 00:38:52,400 Permiteți-mi să arunci astea totul. 830 00:38:52,400 --> 00:38:55,400 >> Și acum, am o mai bună program conceput. 831 00:38:55,400 --> 00:38:55,920 De ce? 832 00:38:55,920 --> 00:39:00,540 Dacă vreau să modificați numărul de ori aceasta pisica tuse, tot ce trebuie să 833 00:39:00,540 --> 00:39:05,640 faceți este să schimbați o variabilă, sau o valoare, mai degrabă de la trei, la patru, sau 834 00:39:05,640 --> 00:39:06,700 cinci sau șase. 835 00:39:06,700 --> 00:39:09,060 Sau am putea face ceva condiționat, chiar, cu spațiu 836 00:39:09,060 --> 00:39:10,320 bar, dacă am vrut să. 837 00:39:10,320 --> 00:39:11,780 >> Deci, acesta este un principiu general. 838 00:39:11,780 --> 00:39:14,950 Odată ce ați începe copierea și lipirea cod, dacă este în Scratch, sau în 839 00:39:14,950 --> 00:39:18,340 C, faci ceva greșit, cel mai probabil. 840 00:39:18,340 --> 00:39:21,950 Sau, cel puțin, o dată ce ați depășit unele un număr rezonabil de exemplare și 841 00:39:21,950 --> 00:39:24,610 paste, esti, probabil, a face ceva gresit. 842 00:39:24,610 --> 00:39:26,740 >> Dar știi ce? 843 00:39:26,740 --> 00:39:27,590 Nu-mi place foarte mult acest lucru. 844 00:39:27,590 --> 00:39:28,980 Acest lucru nu este cea mai curata de design. 845 00:39:28,980 --> 00:39:32,860 As vrea sa fie o piesa de puzzle numit tuse pentru că atunci nu ar fi 846 00:39:32,860 --> 00:39:36,100 trebuie să pună în aplicare acest lucru eu însumi, mod de modă veche, cu 847 00:39:36,100 --> 00:39:38,220 au spus, și așteaptă - 848 00:39:38,220 --> 00:39:40,320 ceea ce în cazul în care acestea au fost doar un puzzle bucată de tuse. 849 00:39:40,320 --> 00:39:41,330 >> Ei bine, eu pot face de fapt acest lucru. 850 00:39:41,330 --> 00:39:45,010 Lasă-mă să merg în mai multe blocuri, faceți clic pe Face un bloc, iar acum am obține acest 851 00:39:45,010 --> 00:39:45,610 Fereastra aici. 852 00:39:45,610 --> 00:39:47,540 Am de gând să numim acest lucru tuse. 853 00:39:47,540 --> 00:39:49,400 Am de gând să merg mai departe și faceți clic pe OK. 854 00:39:49,400 --> 00:39:53,150 Și acum notificare, am obține un nou început piesă care este curbat în partea de sus. 855 00:39:53,150 --> 00:39:56,590 Și ceea ce am de gând să fac cu acest lucru, eu sunt va fura doar aceste blocuri. 856 00:39:56,590 --> 00:39:57,800 Am de gând să le pun aici. 857 00:39:57,800 --> 00:40:00,490 >> Iar acum, cu aceste trei piese, am pus în aplicare ceea ce am de gând pentru a apela un 858 00:40:00,490 --> 00:40:03,530 funcția, sau o procedură, sau o parte din s-ar putea, stiu ca o metodă. 859 00:40:03,530 --> 00:40:05,050 Mici diferențe între cuvinte. 860 00:40:05,050 --> 00:40:06,950 Dar pentru acum, hai să numesc aceasta o funcție. 861 00:40:06,950 --> 00:40:08,750 Aceasta este doar o noua piesa de puzzle. 862 00:40:08,750 --> 00:40:11,000 Acum este pusă în aplicare ca aceasta. 863 00:40:11,000 --> 00:40:15,170 >> Dar observați că Scratch ne-a dat o reprezentarea fizică care întreg 864 00:40:15,170 --> 00:40:16,570 bloca aici. 865 00:40:16,570 --> 00:40:21,930 Deci, acum, eu pot trage doar asta aici, spune, se repetă de trei ori, și 866 00:40:21,930 --> 00:40:26,420 ce se va întâmpla acum, când mă joc acest script, este doar un singur program 867 00:40:26,420 --> 00:40:27,500 se execută la un moment dat. 868 00:40:27,500 --> 00:40:29,880 Există doar un singur atunci când steagul verde clic. 869 00:40:29,880 --> 00:40:34,010 Dar că blocul violet numit tusea este spune efectiv Scratch, fiecare 870 00:40:34,010 --> 00:40:38,160 dată când vedea că piesa de puzzle, de fapt, executa acești pași pe care am 871 00:40:38,160 --> 00:40:40,420 se întâmplă să pună în aplicare manual. 872 00:40:40,420 --> 00:40:41,410 >> Deci, asta e un fel de curat. 873 00:40:41,410 --> 00:40:44,650 Dar acum, să presupunem că am decis, eu nu fac Vreau aceasta pisica doar pentru tuse. 874 00:40:44,650 --> 00:40:46,660 Vreau ca el să fie în măsură sa stranute de asemenea. 875 00:40:46,660 --> 00:40:48,905 Ei bine, cum am putea merge despre implementarea stranut? 876 00:40:48,905 --> 00:40:51,310 Ei bine, am putea destul de mult face același lucru. 877 00:40:51,310 --> 00:40:52,690 Am putea face un alt bloc. 878 00:40:52,690 --> 00:40:55,940 Am putea numi acest strănut, faceți clic pe OK. 879 00:40:55,940 --> 00:40:59,250 >> Apoi, aici am putea de fapt, au, lasă-mă să duplicat asta - 880 00:40:59,250 --> 00:41:02,850 și acolo e unde ar trebui să se simtă ca și cum esti, probabil, nu face ceva în 881 00:41:02,850 --> 00:41:03,780 cel mai bun mod. 882 00:41:03,780 --> 00:41:06,670 Am putea spune ceva de genul, achoo, timp de o secundă. 883 00:41:06,670 --> 00:41:07,440 Așteaptă o secundă. 884 00:41:07,440 --> 00:41:08,715 Acum am un nou bloc numit stranut. 885 00:41:08,715 --> 00:41:10,210 Și într-adevăr, nu este. 886 00:41:10,210 --> 00:41:14,010 >> Dar acest lucru, de asemenea, ar trebui să înceapă să se simtă - Poate nu prima săptămână de clasă, dar 887 00:41:14,010 --> 00:41:15,730 de-al doilea - doar un pic redundant. 888 00:41:15,730 --> 00:41:17,800 În mod evident, există unele redundanță aici. 889 00:41:17,800 --> 00:41:22,090 Deci, lasă-mă să propună, în schimb, că am ameliorarea acestei definiții, după cum urmează. 890 00:41:22,090 --> 00:41:24,820 >> Lasă-mă să merg până la meniul meu dosar. 891 00:41:24,820 --> 00:41:26,090 Eu nu am de gând să salveze această versiune. 892 00:41:26,090 --> 00:41:29,080 Am de gând să merg într-unul din fișierele mele premade aici. 893 00:41:29,080 --> 00:41:31,190 Și am de gând să merg mai departe și deschide tuse 2. 894 00:41:31,190 --> 00:41:32,220 Ne pare rău că a fost tuse 2. 895 00:41:32,220 --> 00:41:36,900 Lasă-mă să merg mai departe și deschide tuse 3, care este acest director sursă. 896 00:41:36,900 --> 00:41:42,450 Tuse 3 și observa - Oh, i-am spus povestea în ordine greșită. 897 00:41:42,450 --> 00:41:45,030 Permiteți-mi recupera de la această poveste. 898 00:41:45,030 --> 00:41:48,990 >> Poveste pe care am vrut să spun se încheie cu tuse 4 - 899 00:41:48,990 --> 00:41:50,270 acolo este. 900 00:41:50,270 --> 00:41:54,380 Și ce dacă, în schimb, să definească o piesa de puzzle mai mare numit 901 00:41:54,380 --> 00:41:57,250 defini, spun cuvântul de n ori. 902 00:41:57,250 --> 00:41:59,930 Stranutul este doar, aparent, în Scratch, achoo. 903 00:41:59,930 --> 00:42:01,680 Deci, l-am exprima ca un cuvânt, doar pentru că este 904 00:42:01,680 --> 00:42:02,750 constrângere a programului. 905 00:42:02,750 --> 00:42:07,860 Și o tuse este [TUSE], dar tuse, C-O-U-G-H. Deci, asta e doar doi 906 00:42:07,860 --> 00:42:10,820 cuvinte diferite face, în esență, același lucru. 907 00:42:10,820 --> 00:42:12,820 >> Deci, eu pot face de fapt, un bloc nou ca aceasta. 908 00:42:12,820 --> 00:42:14,220 Nu am folosit această opțiune înainte de meniu. 909 00:42:14,220 --> 00:42:16,960 Dar, atunci când faceți clic-mi fac Block, puteți alege unele opțiuni. 910 00:42:16,960 --> 00:42:20,900 Și vă pot spune că acest bloc de fapt ia unele intrări, altfel 911 00:42:20,900 --> 00:42:24,710 cunoscut sub numele de argumente, sau parametri, astfel încât pe care le puteți modifica comportamentul de 912 00:42:24,710 --> 00:42:25,520 blocul tău. 913 00:42:25,520 --> 00:42:28,780 >> Deci, ceea ce am făcut acum o clipă a fost Am numit acest bloc Say. 914 00:42:28,780 --> 00:42:30,880 Și apoi mi-am spus, este nevoie de un șir de intrare. 915 00:42:30,880 --> 00:42:32,810 Și acum observați, în mod implicit, se spune șir 1. 916 00:42:32,810 --> 00:42:35,440 Un șir este doar un cuvânt, sau un frază, pentru scopurile noastre. 917 00:42:35,440 --> 00:42:37,810 Dar Mă duc să pun niște textul substituent acolo, la fel ca într-un 918 00:42:37,810 --> 00:42:40,620 site-ul, atunci când veți vedea numele de utilizator, sau parola, și apoi dispare când 919 00:42:40,620 --> 00:42:41,550 începeți să tastați. 920 00:42:41,550 --> 00:42:42,720 Asta e tot ce este. 921 00:42:42,720 --> 00:42:44,590 >> Și acum am de gând să adăuga o intrare de număr. 922 00:42:44,590 --> 00:42:47,180 Și am de gând să numim această n - dar asta e destul de arbitrar. 923 00:42:47,180 --> 00:42:49,510 Și apoi doar o etichetă, doar pentru a face acest bloc un pic mai mult de auto 924 00:42:49,510 --> 00:42:50,570 explicativ - 925 00:42:50,570 --> 00:42:53,010 ori, asta e ceea ce am făcut. 926 00:42:53,010 --> 00:42:56,540 Iar rezultatul final este că primesc un bloc care arata ca aceasta. 927 00:42:56,540 --> 00:42:58,880 >> Și acum observați, eu sunt, folosind un bloc repeta. 928 00:42:58,880 --> 00:43:03,480 Dar, mai degrabă decât greu de codificare trei, eu sunt glisare și fixare n acolo, așa că am 929 00:43:03,480 --> 00:43:05,530 poate parametrize funcția. 930 00:43:05,530 --> 00:43:08,590 Eu pot face această funcție face ceva un număr diferit de ori pe baza 931 00:43:08,590 --> 00:43:09,410 această valoare. 932 00:43:09,410 --> 00:43:14,270 >> Si observa, spun, aceasta este ceea ce am făcut aici, dacă am trage cuvânt, pot să spun nu o 933 00:43:14,270 --> 00:43:17,860 cuvânt greu codificate, dar indiferent de este trecut în timp de o secundă. 934 00:43:17,860 --> 00:43:20,200 Între timp, cum am re-pune în aplicare tuse? 935 00:43:20,200 --> 00:43:26,980 Eu definesc în schimb tuse ca spunând tuse n ori. 936 00:43:26,980 --> 00:43:30,480 >> Deci, pe scurt, am de gând prin acest repede, dar ideea de bază este la fel de repede 937 00:43:30,480 --> 00:43:32,750 pe măsură ce începe să vedeți în program că, așteptați un minut, am făcut 938 00:43:32,750 --> 00:43:36,610 ceva destul de genul asta înainte, pot factor în unele comune 939 00:43:36,610 --> 00:43:37,090 funcționalitate? 940 00:43:37,090 --> 00:43:41,090 Pot descompune ceea ce fac în câteva idei de bază? 941 00:43:41,090 --> 00:43:42,070 Asta e ceea ce facem noi aici. 942 00:43:42,070 --> 00:43:44,830 Și am stivuite aceste lucruri, vizual, una peste alta 943 00:43:44,830 --> 00:43:47,710 pentru că este o dovadă a că ideea de începând cu binar, merge la ASCII, 944 00:43:47,710 --> 00:43:51,530 realizarea programelor grafice, un fel de stratificare idei ce în ce mai complexe pe 945 00:43:51,530 --> 00:43:52,570 , unul deasupra celuilalt. 946 00:43:52,570 --> 00:43:53,730 >> Aceeași idee aici. 947 00:43:53,730 --> 00:43:56,870 Am început de la zero, de punere în aplicare tuse, apoi tuse realizat este 948 00:43:56,870 --> 00:43:58,540 într-adevăr să spun ceva. 949 00:43:58,540 --> 00:44:01,630 Deci, lasă-mă în locul implementării Noțiunea de a spune ceva. 950 00:44:01,630 --> 00:44:05,200 Și pe deasupra, pot pune în aplicare achoo, sau tuse? 951 00:44:05,200 --> 00:44:07,990 Și am putea face mai mult, cum ar variante încă. 952 00:44:07,990 --> 00:44:10,400 >> Deci, de la acest principiu de bază, putem începe să facă 953 00:44:10,400 --> 00:44:12,180 ce mai mult programe complexe. 954 00:44:12,180 --> 00:44:14,100 Lasă-mă să deschid asta. 955 00:44:14,100 --> 00:44:18,020 Putem avea de fapt mai multe sprites interactiunea pe ecran, la o dată. 956 00:44:18,020 --> 00:44:23,470 Dacă mă duc în directorul meu sursă și apuca unul numit Fire, amintim că o 957 00:44:23,470 --> 00:44:26,920 Firul este doar într-adevăr capacitatea de de două scripturi pentru a rula partea de 958 00:44:26,920 --> 00:44:28,350 parte, în același timp. 959 00:44:28,350 --> 00:44:34,490 >> Observați acum, ambele au un spirit pasăre și un sprite pisică, ambele având 960 00:44:34,490 --> 00:44:35,270 script-uri proprii. 961 00:44:35,270 --> 00:44:37,690 Deci notificare, când am faceți clic pe pisică, am obține aceste script-uri. 962 00:44:37,690 --> 00:44:39,830 Când m-am faceți clic pe pasăre, Primesc aceste script-uri. 963 00:44:39,830 --> 00:44:42,070 Deci, fiecare dintre ei are propriile programe. 964 00:44:42,070 --> 00:44:46,680 Când acum am faceți clic pe steagul verde, observa că ceea ce acest program nu este 965 00:44:46,680 --> 00:44:54,090 au pisica, incredibil încet, și alunge pasărea. 966 00:44:54,090 --> 00:44:57,120 Dar pisica are avantajul de a avea fost programat în așa fel 967 00:44:57,120 --> 00:45:00,540 că indiferent unde pasărea este, pisica merge spre el. 968 00:45:00,540 --> 00:45:02,150 >> Putem juca acest joc mult mai repede. 969 00:45:02,150 --> 00:45:07,750 Deci, dacă eu sunt pe pisica, observa că eu sunt cu, să zicem muta unul etape. 970 00:45:07,750 --> 00:45:11,680 Hai să-l mute cinci etape, la un timp, deci cinci puncte la un moment dat. 971 00:45:11,680 --> 00:45:13,580 Lasă-mă să faceți clic pe joc. 972 00:45:13,580 --> 00:45:14,490 >> [ROAR Lion] 973 00:45:14,490 --> 00:45:17,170 >> DAVID MALAN: Bine, acum putem da într-adevăr pisica avantajul. 974 00:45:17,170 --> 00:45:18,600 10 pasi, la un moment dat. 975 00:45:18,600 --> 00:45:20,120 >> [ROAR Lion] 976 00:45:20,120 --> 00:45:22,770 >> DAVID MALAN: Bine, deci foarte repede, devine un mic avantaj 977 00:45:22,770 --> 00:45:23,280 pentru pisica. 978 00:45:23,280 --> 00:45:25,310 Dar eu cu mâna mea la unele detalii. 979 00:45:25,310 --> 00:45:28,240 Dar motivul pentru care această cale este începe un pic diferit de fiecare dată 980 00:45:28,240 --> 00:45:29,700 este că eu fac un pic de dezordine. 981 00:45:29,700 --> 00:45:33,700 Sunt de fapt îndreptat pisica într-o direcție diferită, bazată pe unde am 982 00:45:33,700 --> 00:45:38,710 ca el să înceapă, astfel încât de fiecare dată de joc, sau animație, este un 983 00:45:38,710 --> 00:45:39,760 pic diferit. 984 00:45:39,760 --> 00:45:41,950 >> Acum, permiteți-mi să introducă o alte construi aici. 985 00:45:41,950 --> 00:45:43,860 Deci, în acest caz, am avut funcții. 986 00:45:43,860 --> 00:45:46,950 Există, de asemenea, va fi o piesa de puzzle cunoscut ca o matrice, sau o listă, 987 00:45:46,950 --> 00:45:50,980 care vă permite să stocați mai multe Valorile interiorul unei variabile. 988 00:45:50,980 --> 00:45:53,410 Am văzut fire, iar acum există Evenimente. 989 00:45:53,410 --> 00:45:56,330 >> Deci, aici este un eveniment cu acești doi tipi aici. 990 00:45:56,330 --> 00:46:02,490 Și dacă am deschide fișierul denumit Evenimente de la exemplele de astăzi, vom 991 00:46:02,490 --> 00:46:06,940 vezi un program care arată un pic ca aceasta. 992 00:46:06,940 --> 00:46:09,630 Și observa acum acest tip - 993 00:46:09,630 --> 00:46:11,620 așa observa Am albastru Muppet clic - 994 00:46:11,620 --> 00:46:12,990 el nu numai următoarele. 995 00:46:12,990 --> 00:46:15,540 El nu are unul din cei piese de puzzle steagul verde. 996 00:46:15,540 --> 00:46:18,620 El are o atunci când am primit eveniment - 997 00:46:18,620 --> 00:46:19,970 astfel încât un cuvânt arbitrar. 998 00:46:19,970 --> 00:46:21,590 Am tastat de eveniment acolo - 999 00:46:21,590 --> 00:46:23,740 el va spune, Polo, timp de două secunde. 1000 00:46:23,740 --> 00:46:25,800 >> Deci, aceia dintre voi care sunt familiarizați cu acest joc ar putea ști 1001 00:46:25,800 --> 00:46:26,460 în cazul în care acest lucru se întâmplă. 1002 00:46:26,460 --> 00:46:29,800 Dacă am faceți clic pe Muppet Orange, Programul său face acest lucru. 1003 00:46:29,800 --> 00:46:35,020 Pentru totdeauna, în cazul în care bara de spațiu tastatura suprimat, el va spune, Marco, 1004 00:46:35,020 --> 00:46:36,580 timp de două secunde pe ecran. 1005 00:46:36,580 --> 00:46:39,590 Dar el, de asemenea, va folosi acest crescator bloca cunoscut sub numele de difuzare. 1006 00:46:39,590 --> 00:46:42,270 El va difuza citat citez, "eveniment". 1007 00:46:42,270 --> 00:46:47,540 >> Între timp, tipul albastru, amintesc, este ascultare pentru citatul citat, "eveniment". 1008 00:46:47,540 --> 00:46:50,760 Deci într-un fel, acum, putem avea două sprite interacționează. 1009 00:46:50,760 --> 00:46:53,790 Și când vom ajunge la programare web, mai târziu, în termen, va fi la fel de acest 1010 00:46:53,790 --> 00:46:58,320 fi avantajos de a avea site-ul dvs. face ceva, ca răspuns la, pentru 1011 00:46:58,320 --> 00:47:00,130 exemplu, un clic de tastatură. 1012 00:47:00,130 --> 00:47:02,120 >> Așa că lasă-mă să merg mai departe și a lovit bara de spațiu. 1013 00:47:02,120 --> 00:47:04,020 Orange Tipul spune Marco. 1014 00:47:04,020 --> 00:47:05,840 Albastru Tipul spune Polo. 1015 00:47:05,840 --> 00:47:10,780 Dacă fac asta tip nou Orange spune Marco, albastru Tipul spune polo. 1016 00:47:10,780 --> 00:47:14,130 Așa că haideți să ia acest pas o mai departe. 1017 00:47:14,130 --> 00:47:18,790 De data aceasta, vom merge, probabil, doar câteva minute aici. 1018 00:47:18,790 --> 00:47:19,904 Avem - 1019 00:47:19,904 --> 00:47:22,380 lampă de birou, vino jos. 1020 00:47:22,380 --> 00:47:24,500 Ai dreptate pe final. 1021 00:47:24,500 --> 00:47:25,740 OK, poți veni atât de sus. 1022 00:47:25,740 --> 00:47:26,990 Avem lămpi de birou pentru toată lumea. 1023 00:47:26,990 --> 00:47:28,360 Haide. 1024 00:47:28,360 --> 00:47:30,090 Nu știu dacă putem păstra acest gag ridicol sus 1025 00:47:30,090 --> 00:47:32,035 tot semestrul, totuși. 1026 00:47:32,035 --> 00:47:33,530 În regulă, haide jos. 1027 00:47:33,530 --> 00:47:40,260 >> Și, în același timp, avem Următoarele exemple pentru a trage în sus, doar pentru a 1028 00:47:40,260 --> 00:47:45,370 accelera lucrurile acum, astfel că avea o manifestare de alta 1029 00:47:45,370 --> 00:47:48,360 predecesorul tău utilizând aceleasi blocuri de construcție de bază. 1030 00:47:48,360 --> 00:47:48,975 Care e numele tău? 1031 00:47:48,975 --> 00:47:49,240 >> JOHN: John. 1032 00:47:49,240 --> 00:47:49,770 >> DAVID MALAN: John. 1033 00:47:49,770 --> 00:47:50,400 Mă bucur să-mi să vă. 1034 00:47:50,400 --> 00:47:50,650 Și? 1035 00:47:50,650 --> 00:47:51,250 >> SETZ: Setz. 1036 00:47:51,250 --> 00:47:53,130 >> DAVID MALAN: Setz, drăguț cu mine te. 1037 00:47:53,130 --> 00:47:54,820 John, dacă doriți să vină mai întâi, aceasta este o veche 1038 00:47:54,820 --> 00:47:55,910 școală joc numit Frogger. 1039 00:47:55,910 --> 00:47:57,530 Puteți utiliza tastatura pentru aceasta, de asemenea. 1040 00:47:57,530 --> 00:48:02,425 Iar scopul este de a obține în întreaga stradă și apă. 1041 00:48:02,425 --> 00:48:12,700 >> [Frogger MUSIC și piese de teatru SOUND] 1042 00:48:12,700 --> 00:48:14,970 >> DAVID MALAN: Îmi pare rău, nu lampă de birou pentru tine azi. 1043 00:48:14,970 --> 00:48:19,110 În regulă, Setz, v-ar ca să vină pe sus? 1044 00:48:19,110 --> 00:48:20,890 Bine, hai să o facem din nou. 1045 00:48:20,890 --> 00:48:21,430 >> SETZ: pot utiliza săgețile? 1046 00:48:21,430 --> 00:48:22,360 >> DAVID MALAN: Doar tastele săgeată. 1047 00:48:22,360 --> 00:48:23,624 Sus, jos, stânga, dreapta. 1048 00:48:23,624 --> 00:48:35,700 >> [Frogger MUSIC și piese de teatru SOUND] 1049 00:48:35,700 --> 00:48:37,880 >> DAVID MALAN: Le vom numi premii de consolare de azi, 1050 00:48:37,880 --> 00:48:38,950 apoi, foarte bine făcut. 1051 00:48:38,950 --> 00:48:40,690 Aici, atât de tine, John și Setz. 1052 00:48:40,690 --> 00:48:41,940 Felicitări, în regulă. 1053 00:48:41,940 --> 00:48:46,720 1054 00:48:46,720 --> 00:48:50,620 Deci, din nou, ca acest joc joaca, cred despre ceea ce se întâmplă? 1055 00:48:50,620 --> 00:48:52,060 >> Unul, există în mod clar o mulțime de mișcare. 1056 00:48:52,060 --> 00:48:55,220 Dar am văzut cum, cu pisica și exemplu pasăre, modul în care puteți face 1057 00:48:55,220 --> 00:48:58,350 iluzia de mișcare doar prin mutarea unor numărul de pixeli din nou și din nou. 1058 00:48:58,350 --> 00:49:00,280 Și dacă aveți un bloc pentru totdeauna, ai putea avea aceste 1059 00:49:00,280 --> 00:49:02,120 masini face acest lucru pentru totdeauna. 1060 00:49:02,120 --> 00:49:03,720 Avem capacitatea de a au o întâmplare. 1061 00:49:03,720 --> 00:49:06,310 Deci, acest joc nu trebuie să fie exact același de fiecare dată. 1062 00:49:06,310 --> 00:49:09,940 Aceste jurnale, aceste masini, poate porni de la ușor diferite ori, astfel încât 1063 00:49:09,940 --> 00:49:12,690 Jocul în sine este mult mai interesant cu fiecare joc. 1064 00:49:12,690 --> 00:49:15,320 >> Și Între timp, am văzut capacitatea de pentru a asculta bara de spațiu. 1065 00:49:15,320 --> 00:49:18,830 Dar, în mod clar, în Scratch, poți, de asemenea, ascultați de sus, jos, stânga, dreapta, și 1066 00:49:18,830 --> 00:49:20,760 într-adevăr orice tastă de pe tastatură. 1067 00:49:20,760 --> 00:49:22,200 Și puteți face, de asemenea, alte lucruri. 1068 00:49:22,200 --> 00:49:24,660 Lasă-mă să merg mai departe și du-te inapoi la versiunea web. 1069 00:49:24,660 --> 00:49:30,280 >> Lasă-mă să intru în colecția noastră de exemple aici. 1070 00:49:30,280 --> 00:49:36,120 Și în studioul meu, video, care este, în esență, un folder de pe 1071 00:49:36,120 --> 00:49:37,780 scratch.mit.edu. 1072 00:49:37,780 --> 00:49:39,710 Avem versiunile web ale toate aceste proiecte. 1073 00:49:39,710 --> 00:49:42,530 Și să vedem dacă pot să-mi computerul să coopereze aici. 1074 00:49:42,530 --> 00:49:47,180 Acest lucru este scris de către unul din prietenii noștri la MIT, numit Mutați Butterfly. 1075 00:49:47,180 --> 00:49:50,250 >> Și odată ce aceasta se deschide, aceasta este va folosi de fapt, mai mult de 1076 00:49:50,250 --> 00:49:51,430 hardware-ul computerului meu. 1077 00:49:51,430 --> 00:49:53,325 Zero se întâmplă să fie puse în aplicare cu Flash. 1078 00:49:53,325 --> 00:49:56,250 Flash poate vorbi cu webcam-ul, dacă aveți unul. 1079 00:49:56,250 --> 00:50:00,210 Deci, dacă am merge mai departe și ecran complet acest aici, faceți clic pe steagul verde, notificare 1080 00:50:00,210 --> 00:50:02,530 că mesajul de securitate Flash lui se spune, vrei să 1081 00:50:02,530 --> 00:50:04,210 permite să utilizați webcam-meu? 1082 00:50:04,210 --> 00:50:05,510 >> În mod normal, ar trebui să probabil, spun Deny. 1083 00:50:05,510 --> 00:50:07,180 Dar, în acest caz, vom spune permit. 1084 00:50:07,180 --> 00:50:10,430 Apoi, am de gând să-i spun Chrome pentru a permite acest lucru, de asemenea. 1085 00:50:10,430 --> 00:50:15,010 Și acum, într-o clipă, să mă vezi, da, mă. 1086 00:50:15,010 --> 00:50:18,154 Și dacă mâna mea merge în sus - 1087 00:50:18,154 --> 00:50:20,390 Am să nu se miște meu cap, în același timp. 1088 00:50:20,390 --> 00:50:21,740 Există, de asemenea, o reflectare de pe ecran. 1089 00:50:21,740 --> 00:50:23,480 Haide, mergem - 1090 00:50:23,480 --> 00:50:27,616 îl puteți muta pe ecran, deoarece există, de asemenea, piese de puzzle - Oh, te 1091 00:50:27,616 --> 00:50:31,640 știu ce este, este pentru că tu, de asemenea, a se vedea ecran de proiecție în spatele meu. 1092 00:50:31,640 --> 00:50:33,870 Deci, avem un pic de infinit lucru se întâmplă acolo. 1093 00:50:33,870 --> 00:50:36,470 >> În regulă, așa că voi juca aici. 1094 00:50:36,470 --> 00:50:37,220 Acolo mergem. 1095 00:50:37,220 --> 00:50:41,310 Deci, există, de asemenea, o piesa de puzzle care spune că, atunci când vezi mișcare sub 1096 00:50:41,310 --> 00:50:45,470 una dintre cele sprite, puteți să-l merge sus, jos, stânga, dreapta sau altele asemenea. 1097 00:50:45,470 --> 00:50:48,950 Deci avem un pic de realitate virtuala întâmplă pe aici, de asemenea, tot în cadrul 1098 00:50:48,950 --> 00:50:52,570 limitele de browser-ul meu, doar aici folosind webcam-meu. 1099 00:50:52,570 --> 00:50:53,980 Deci, ce-i apoi la orizont. 1100 00:50:53,980 --> 00:50:58,350 Primul set problemă, după cum veți vedea, sau site-ul va merge on-line mai târziu 1101 00:50:58,350 --> 00:51:01,100 in seara asta la cs50.net, este destul de mult va fi încheiat deschisă. 1102 00:51:01,100 --> 00:51:04,410 Și punerea în aplicare a unui proiect Scratch de interes pentru tine, un joc, un 1103 00:51:04,410 --> 00:51:08,350 interacțiune, ceva artistic, și Challenge-te pentru folosi orice număr 1104 00:51:08,350 --> 00:51:09,660 din aceste piese de puzzle. 1105 00:51:09,660 --> 00:51:11,580 Și aceasta poate fi fie interactiv în acest mod. 1106 00:51:11,580 --> 00:51:15,470 Sau poate fi ceva mai mult în mod deliberat făcut pentru a spune o poveste. 1107 00:51:15,470 --> 00:51:19,200 >> Și într-adevăr, că acolo vom ajunge pe Astăzi, cu un ultim exemplu. 1108 00:51:19,200 --> 00:51:21,290 Lasă-mă să intru în Scratch la nivel local. 1109 00:51:21,290 --> 00:51:25,300 Lasă-mă să merg mai departe și deschide, și să se joace Ultima program scris de către unul 1110 00:51:25,300 --> 00:51:29,795 de predecesorii dumneavoastră, și anume să rețină aici. 1111 00:51:29,795 --> 00:51:32,960 1112 00:51:32,960 --> 00:51:35,938 Bun, ridica volumul pentru asta. 1113 00:51:35,938 --> 00:52:53,770 >> [Redarea muzicii] 1114 00:52:53,770 --> 00:52:57,255 >> NARATOR: La CS50 viitoare, David invită un voluntar pe scenă. 1115 00:52:57,255 --> 00:52:58,636 >> DAVID MALAN: Pentru această demonstrație, vom avea nevoie de un voluntar. 1116 00:52:58,636 --> 00:53:01,050 Vrei să vii pe jos? 1117 00:53:01,050 --> 00:53:02,300 Care e numele tău? 1118 00:53:02,300 --> 00:53:05,320 1119 00:53:05,320 --> 00:53:06,570 Mutarea pe. 1120 00:53:06,570 --> 00:53:08,394