1 00:00:00,000 --> 00:00:15,059 >> [MUZICĂ] 2 00:00:15,059 --> 00:00:19,170 >> Acest lucru este CS50-- la Harvard Introducerea Universității 3 00:00:19,170 --> 00:00:22,070 la intelectual întreprinderile de informatică 4 00:00:22,070 --> 00:00:23,800 și arta de programare. 5 00:00:23,800 --> 00:00:27,020 Și numele meu este David Malan, și Mă gândeam în dimineața asta, 6 00:00:27,020 --> 00:00:33,120 au trecut uimitor de 20 de ani de azi de când am trecut a stat în cazul în care voi face acum. 7 00:00:33,120 --> 00:00:33,840 >> Era 1996. 8 00:00:33,840 --> 00:00:37,550 Am fost anul doi, și am fost de a lua CS50 pentru prima dată. 9 00:00:37,550 --> 00:00:40,890 Si nu am mai ajuns la nervul să-l ia mine în primul an, 10 00:00:40,890 --> 00:00:42,500 în parte din cauza timpului. 11 00:00:42,500 --> 00:00:44,782 știința calculatoarelor pentru mine a fost ca un fel de, meh. 12 00:00:44,782 --> 00:00:46,990 Am fost un pic de un tocilar în creștere în sus, dar nu am făcut-o într-adevăr 13 00:00:46,990 --> 00:00:49,180 au nici un intelectual interesul pentru ceea ce a apărut 14 00:00:49,180 --> 00:00:51,920 să fie doar o grămadă de oameni de programare, tot timpul. 15 00:00:51,920 --> 00:00:53,904 >> Si m-am speriat să fiu sincer. 16 00:00:53,904 --> 00:00:56,820 Cursul calculator și știința mai mult în general, a avut și într-o oarecare măsură, 17 00:00:56,820 --> 00:01:01,230 încă mai are această reputație de un domeniu feriți-vă, în cazul în care numai pentru că atât de mulți dintre noi 18 00:01:01,230 --> 00:01:04,410 nu sunt familiarizați cu ea și sigur de ea. 19 00:01:04,410 --> 00:01:08,480 Și, într-adevăr nu a fost până când am efectuat cumpărături această clasă că anul doi fall-- 20 00:01:08,480 --> 00:01:10,880 și chiar și atunci, m-am înscris doar deoarece professor-- 21 00:01:10,880 --> 00:01:13,950 una dintre primele mele mentori, Brian Kernighan acum la Princeton-- 22 00:01:13,950 --> 00:01:15,700 mi-a permis să ia treci clasa eșuează. 23 00:01:15,700 --> 00:01:18,020 Și într-adevăr, de aceea astăzi permitem și să încurajeze 24 00:01:18,020 --> 00:01:20,030 elevii să ia această clasă saturată / UnSat. 25 00:01:20,030 --> 00:01:22,040 >> Și numai atunci, de sfârșitul semestrului 26 00:01:22,040 --> 00:01:24,870 am dat seama cum ar fi, wow, acest lucru nu a fost un astfel de câmp necunoscut. 27 00:01:24,870 --> 00:01:26,850 Într-adevăr, aceasta a fost o domeniu foarte abilitare, 28 00:01:26,850 --> 00:01:28,970 si mai tulburator, mai ales ulterior, 29 00:01:28,970 --> 00:01:32,809 așa cum am urmat cursuri Artă dramatică și 101 Latină A 30 00:01:32,809 --> 00:01:34,600 și apoi, eventual, arheologie școală grad, 31 00:01:34,600 --> 00:01:37,860 am începe cu adevărat Ca să vezi intersecții din acest domeniu, calculator 32 00:01:37,860 --> 00:01:41,979 știință, cu umaniste, științe naturale, arte, medicina, 33 00:01:41,979 --> 00:01:42,520 și altele asemenea. 34 00:01:42,520 --> 00:01:44,420 Și astfel, asta e doar asa îngrijite despre știința calculatoarelor 35 00:01:44,420 --> 00:01:46,930 în cele din urmă, după cum sperăm că veți see-- este aplicabilitatea sa 36 00:01:46,930 --> 00:01:50,280 la aceste alte domenii, și cum poți ia unele dintre astăzi și semestru 37 00:01:50,280 --> 00:01:53,070 idei și abilități practice înapoi la propriul domeniu, 38 00:01:53,070 --> 00:01:58,200 și de fapt, a explora această intersecție a artelor liberale și a științelor. 39 00:01:58,200 --> 00:02:02,690 >> Așa că 73% dintre voi, dacă ultima dată an este orice indicație, 40 00:02:02,690 --> 00:02:04,390 nu au luat niciodată un curs CS, înainte. 41 00:02:04,390 --> 00:02:06,389 Așa că, dacă, la fel ca mine, esti simt un pic 42 00:02:06,389 --> 00:02:09,190 speriat, sau sincer nu ești într-adevăr sigur de ce ești chiar aici. 43 00:02:09,190 --> 00:02:11,510 Poate că tocmai ați urmat unele prieteni peste Sanders chiar acum. 44 00:02:11,510 --> 00:02:12,490 Asta e total bine. 45 00:02:12,490 --> 00:02:15,059 Scopul aici este de a cârlig vă și să vă asigur 46 00:02:15,059 --> 00:02:17,100 că, dacă te uiți la la stânga și la dreapta, 47 00:02:17,100 --> 00:02:21,480 vei vedea colegii de clasă cu ca experiență puțin sau la fel de mult 48 00:02:21,480 --> 00:02:22,890 pe care le-ar putea avea. 49 00:02:22,890 --> 00:02:25,280 Și într-adevăr, vom împărtăși unele statistici mai târziu astăzi 50 00:02:25,280 --> 00:02:28,120 Cu privire la ce datele demografice ale clasa de obicei arata. 51 00:02:28,120 --> 00:02:31,440 >> Și, după cum a adăugat reassurance-- și acest lucru ne-am înseamnă de când am preluat cursul 52 00:02:31,440 --> 00:02:33,252 câțiva ani în ago-- Programa cursului 53 00:02:33,252 --> 00:02:35,460 este astea-- că ceea ce în cele din urmă aspecte în acest curs 54 00:02:35,460 --> 00:02:38,040 nu este atât de mult în cazul în care ajungi până în raport cu colegii, 55 00:02:38,040 --> 00:02:43,110 dar, în cazul în care vă în săptămâna 11, sfârșitul fișierului semestru, sfârșesc în raport cu tine 56 00:02:43,110 --> 00:02:46,280 în săptămâna 0, care este în cazul în care ne aflăm astăzi aici. 57 00:02:46,280 --> 00:02:48,704 Și acest lucru este ceea ce am realizat atâția ani în urmă. 58 00:02:48,704 --> 00:02:50,620 Și știu că o mulțime de clase spun acest lucru, dar este 59 00:02:50,620 --> 00:02:52,450 valabil mai ales în știința calculatoarelor. 60 00:02:52,450 --> 00:02:55,320 La sfârșitul zilei, acest câmp nu este familiar așa cum a fost pentru mine 61 00:02:55,320 --> 00:02:58,590 și ar putea fi pentru tine, este într-adevăr doar despre rezolvarea problemelor. 62 00:02:58,590 --> 00:03:01,324 Și, ca atare, ea are această aplicabilitatea pentru a obține alte domenii. 63 00:03:01,324 --> 00:03:03,490 Și, de fapt, dacă am încercat pentru a distila ceea ce înseamnă acest lucru, 64 00:03:03,490 --> 00:03:06,897 aceasta este rezolvarea problemelor în esența ei, îndrăznesc să spun. 65 00:03:06,897 --> 00:03:09,480 Nu e așa de input-- orice ar fi este că încerci să o rezolve. 66 00:03:09,480 --> 00:03:12,264 Nu există ieșire, care este, sperăm soluția la această problemă. 67 00:03:12,264 --> 00:03:14,180 Și apoi, după cum ne-ar spune în informatică, 68 00:03:14,180 --> 00:03:17,310 există această casetă negru în dispozitivul de mijloc pe care nu neapărat 69 00:03:17,310 --> 00:03:19,450 trebuie să aibă grijă de modul în care funcționează. 70 00:03:19,450 --> 00:03:22,230 Te în cele din urmă s-ar putea punerea în aplicare a ceea ce este în interiorul acea cutie. 71 00:03:22,230 --> 00:03:25,194 Dar, pentru scopurile de astăzi și mai mult în general, în viață, îți pasă 72 00:03:25,194 --> 00:03:26,610 este că aceste probleme se rezolve. 73 00:03:26,610 --> 00:03:29,340 >> Și ce acest curs este în cele din urmă este de a explora despre 74 00:03:29,340 --> 00:03:31,700 intersecția aceste intrări și ieșiri, 75 00:03:31,700 --> 00:03:34,410 și aceste așa-numitele algoritmi, după cum vom vedea în curând, 76 00:03:34,410 --> 00:03:37,450 că punerea în aplicare a ceea ce este dedesubt acolo, capota. 77 00:03:37,450 --> 00:03:40,487 Dar, aceste intrări și aceste outputs-- Ce înseamnă asta de fapt? 78 00:03:40,487 --> 00:03:43,570 Ei bine, la sfârșitul zilei, avem nevoie un mod de reprezentare a informațiilor. 79 00:03:43,570 --> 00:03:46,660 Acest lucru este valabil mai ales într-un calculator, care la fel de fantezie și complexe cum 80 00:03:46,660 --> 00:03:48,160 s-ar putea părea, este un dispozitiv destul de prost. 81 00:03:48,160 --> 00:03:52,240 Este nevoie de electricity-- dacă de la un cablu sau o baterie ca input-- 82 00:03:52,240 --> 00:03:55,820 și apoi produce unele Răspunsurile preprogramed pe ecran. 83 00:03:55,820 --> 00:03:57,970 >> Dar, cum putem obține de la începe să termine acolo? 84 00:03:57,970 --> 00:03:59,470 Ei bine, ceea ce este o problemă care trebuie rezolvată? 85 00:03:59,470 --> 00:04:01,050 Ei bine, poate că am putea, la începutul oricărui semestru, 86 00:04:01,050 --> 00:04:02,841 încercați să luați prezență într-o cameră ca asta. 87 00:04:02,841 --> 00:04:04,750 Așa că am putea face ca unul, doi, trei. 88 00:04:04,750 --> 00:04:07,060 Sau poate, dacă am făcut-o pentru a păstra un fel de cale ferată 89 00:04:07,060 --> 00:04:10,560 de myself-- pentru a ține evidența lucruri-- Aș putea alerga repede din degete. 90 00:04:10,560 --> 00:04:14,650 Așa că s-ar putea face doar hash o marks-- persoană, două, trei, patru, cinci, șase, 91 00:04:14,650 --> 00:04:15,431 șapte, opt. 92 00:04:15,431 --> 00:04:17,930 Iar noi toți avem, probabil, făcut acest lucru, fie pe mâini 93 00:04:17,930 --> 00:04:19,680 sau pe o bucată de hârtie. 94 00:04:19,680 --> 00:04:22,140 Și acest lucru este de fapt doar ceva numit notation-- unar 95 00:04:22,140 --> 00:04:26,130 în cazul în care, dacă aveți doar o singură literă în alfabetul, unul sau hash 96 00:04:26,130 --> 00:04:29,440 marca, în acest caz, pentru fiecare de intrare pe care doriți să conta, 97 00:04:29,440 --> 00:04:32,330 aveți nevoie pentru a pune jos unul dintre acestea letters-- una dintre aceste semne. 98 00:04:32,330 --> 00:04:32,510 >> In regula. 99 00:04:32,510 --> 00:04:34,790 Asta e tot fin și bun și nu tot atât de complicat. 100 00:04:34,790 --> 00:04:37,800 Dar, computerele nu sunt toate că mult mai complicat. 101 00:04:37,800 --> 00:04:40,770 Intr-adevar, cele mai multe dintre voi, probabil, știu, chiar dacă nu ați cu adevărat 102 00:04:40,770 --> 00:04:44,080 a considerat ceea ce înseamnă, că calculatoare să înțeleagă numai zerouri 103 00:04:44,080 --> 00:04:45,870 și ones-- sistemul binar așa-numitele. 104 00:04:45,870 --> 00:04:49,390 Noi oamenii, prin contrast, sunt atât de mult mai sofisticate în măsura în care 105 00:04:49,390 --> 00:04:51,770 așa cum înțelegem prin zerouri nouari. 106 00:04:51,770 --> 00:04:55,740 >> Dar, chiar dacă binare este, la început vedere, nu toate familiar, 107 00:04:55,740 --> 00:05:00,330 se pare că e la fel ca sistemele și ideile pe care le știm deja. 108 00:05:00,330 --> 00:05:02,420 Deci, de exemplu, ia în considerare acest lucru. 109 00:05:02,420 --> 00:05:03,896 Aceasta este doar o secvență de simboluri. 110 00:05:03,896 --> 00:05:05,770 Și, voi toți, atunci când se uite la ea, probabil 111 00:05:05,770 --> 00:05:09,380 cred că 123-- nimic într-adevăr interesant acolo. 112 00:05:09,380 --> 00:05:11,940 Dar de ce este acest număr, 123? 113 00:05:11,940 --> 00:05:14,440 Acestea sunt doar pe Glyphs screen-- doar modele 114 00:05:14,440 --> 00:05:16,387 că cineva ar fi putut desenat sau scris. 115 00:05:16,387 --> 00:05:18,970 Dar, dacă ești ca mine, probabil, amintiți-vă de la școală clasa 116 00:05:18,970 --> 00:05:21,610 că există un fel de coloane sau locuri aici. 117 00:05:21,610 --> 00:05:25,340 Acolo e locul celei a lui, iar locul zece și o sută locul lui. 118 00:05:25,340 --> 00:05:29,820 Iar motivul pentru care acest lucru este 123 și nu doar un model de trei simboluri 119 00:05:29,820 --> 00:05:33,090 se datorează faptului că, desigur, dacă ne au unul în locul sutelor, 120 00:05:33,090 --> 00:05:36,610 tu faci matematica de 100 de ori unul, și apoi două în loc a zece. 121 00:05:36,610 --> 00:05:41,390 Deci, asta e de 10 ori mai 2, și apoi trei în locul cel și asta e de 1 de ori 3. 122 00:05:41,390 --> 00:05:45,670 Iar atunci când adăugați toți cei în sus, de Desigur, veți obține 100, plus 20, plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Așa că am început cu doar un model din symbols-- unui alphabet-- 124 00:05:48,220 --> 00:05:51,670 dar apoi am trasat un sens pe prin intermediul acestor coloane. 125 00:05:51,670 --> 00:05:54,450 Ei bine, se pare că computerele nu sunt cu adevărat 126 00:05:54,450 --> 00:05:56,300 tot ce diferit de tine și de mine. 127 00:05:56,300 --> 00:06:01,840 Dar, în loc să folosească puteri de 10, astfel încât să speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 loc și așa mai departe forth-- ei de fapt 129 00:06:04,330 --> 00:06:08,930 folosesc doar puteri de 2-- astfel încât unul, 2, 4, și apoi 130 00:06:08,930 --> 00:06:12,810 dacă am pus mai multe cifre, 8, 16, 32, 64, 128, și așa mai departe. 131 00:06:12,810 --> 00:06:16,050 Și, astfel încât acesta este modul în care un calculator ar reprezenta numărul 0, 132 00:06:16,050 --> 00:06:17,300 la fel ca noi oamenii. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- și, probabil, puteți ghici ce model de zero-uri și altele, 134 00:06:21,660 --> 00:06:24,610 în cazul în care un calculator poate doar vorbesc 0 sau 1-- ce 135 00:06:24,610 --> 00:06:29,110 model va reprezenta numărul pe oamenii stiu ca 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 In regula. 138 00:06:31,090 --> 00:06:35,900 Așa că 0, 0, 1 este modul în care ne reprezentăm 1, astfel încât s-ar putea fi înclinat atunci 139 00:06:35,900 --> 00:06:39,510 pentru a reprezenta numărul 2, dacă aveți locul patru și locul doi lui 140 00:06:39,510 --> 00:06:48,290 ca un singur loc, s-ar putea spune, bine, dacă am fi avut un 1 în locul celei a lui, 141 00:06:48,290 --> 00:06:50,430 iar acum vrem să conta până la 2, s-ar putea 142 00:06:50,430 --> 00:06:53,310 a face acest lucru și se lasă acest lucru să fie un zero. 143 00:06:53,310 --> 00:06:56,397 Dar, desigur, acest lucru nu este modul în care sistemul zecimal funcționează fie. 144 00:06:56,397 --> 00:06:58,230 Dacă ați pus o cifră în aceste două coloane, 145 00:06:58,230 --> 00:06:59,563 ai să faci aritmetică. 146 00:06:59,563 --> 00:07:01,930 Deci, ce număr am făcut-o accidental reprezintă pur și simplu? 147 00:07:01,930 --> 00:07:06,710 >> Deci este de 3, pentru că de 2 ori 1 plus 1 1 ori, desigur, ne dă trei. 148 00:07:06,710 --> 00:07:08,340 Deci, acest lucru ar fi doi. 149 00:07:08,340 --> 00:07:12,730 Bitul fel de flips, ca să spunem așa, ca 0 devine una, la fel ca un 9 roluri peste 150 00:07:12,730 --> 00:07:14,840 și devine 0 când transportați 1. 151 00:07:14,840 --> 00:07:16,510 Acest lucru, atunci ar fi trei, desigur. 152 00:07:16,510 --> 00:07:20,170 Four-- un alt lucru interesant se întâmplă, unde cei rostogolească 153 00:07:20,170 --> 00:07:21,750 și transportați 1, ca să spunem așa. 154 00:07:21,750 --> 00:07:23,320 Deci, acest lucru, desigur, este de 4. 155 00:07:23,320 --> 00:07:25,160 >> Dar dacă te repede acum inainte, ceea ce este cel mai mare număr merge 156 00:07:25,160 --> 00:07:26,660 să fie faptul că un calculator poate reprezenta? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Deci, e doar șapte, în acest caz, nu? 159 00:07:32,380 --> 00:07:35,570 Pentru că ai una din cele patru, una din cele două, una în cea. 160 00:07:35,570 --> 00:07:36,900 Deci, asta e 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Astfel că vă oferă șapte. 162 00:07:37,972 --> 00:07:39,680 Și într-adevăr, aceasta ar par la prima vedere 163 00:07:39,680 --> 00:07:43,750 că computerele pot conta nu este mai mare decât aceasta. 164 00:07:43,750 --> 00:07:45,210 >> Dar acest lucru, desigur, nu este adevărat. 165 00:07:45,210 --> 00:07:48,243 Ce fac oamenii atunci când vrem pentru a conta mai mare decât 999 cum ar fi? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Transporta doar una și doar se adaugă o a patra cifră la stânga. 168 00:07:53,900 --> 00:07:55,070 Și așa, într-adevăr am putut. 169 00:07:55,070 --> 00:07:57,900 Am putea avea un opt lui locul și locul al 16-lea a lui, 170 00:07:57,900 --> 00:08:02,000 și locul de 32, 64 au, 128-- și tu poate păstra doar merge mai departe până la infinit. 171 00:08:02,000 --> 00:08:04,640 Deci, aceste zerouri și ones-- așa-numitul system-- binar 172 00:08:04,640 --> 00:08:10,290 sunt ceea ce un om de știință de calculator ar suna în general, un pic, sau o cifră binară. 173 00:08:10,290 --> 00:08:13,590 >> Dar acum, cum putem lua de la concept sau grafica acestor lucruri 174 00:08:13,590 --> 00:08:14,620 la un calculator real? 175 00:08:14,620 --> 00:08:17,170 Se pare că ne sar peste un pas aici. 176 00:08:17,170 --> 00:08:20,210 Ei bine, singura intrare la sfârșitul anului a doua zi, la laptop-ul meu aici 177 00:08:20,210 --> 00:08:22,060 este acest flux de energie electrică. 178 00:08:22,060 --> 00:08:24,560 Chiar dacă a fost o lungă timp de când te-ai gândit 179 00:08:24,560 --> 00:08:26,580 sau nu sa gândit niciodată despre cum functioneaza electricitatea, 180 00:08:26,580 --> 00:08:30,909 există electroni care curge sau afară, și asta e genul meu de intrare. 181 00:08:30,909 --> 00:08:34,659 >> Așa că, dacă asta e tot ce suntem obtinerea ca intrare aici, 182 00:08:34,659 --> 00:08:36,830 ce putem face cu aceste informații? 183 00:08:36,830 --> 00:08:40,040 Ei bine, ne-am putea gândi la un zero doar o absență de energie electrică. 184 00:08:40,040 --> 00:08:42,540 Nimic nu este flowinw, nimic nu este în mișcare, nu se întâmplă nimic. 185 00:08:42,540 --> 00:08:44,690 Asta e doar implicit state-- zero. 186 00:08:44,690 --> 00:08:48,200 Dar dacă există curge de energie electrică, de ce nu am doar în mod arbitrar, dar la nivel global 187 00:08:48,200 --> 00:08:50,250 în mod constant, numesc asta unul. 188 00:08:50,250 --> 00:08:54,760 >> Așa că, pur și simplu prin a avea nici o putere, avem, da putere zero, 189 00:08:54,760 --> 00:08:57,520 avem, da nici o putere de putere Unu. 190 00:08:57,520 --> 00:09:01,520 Și, în acest fel, folosind ceva mai mult fizic sau electronic 191 00:09:01,520 --> 00:09:05,340 vom începe să pună în aplicare această noțiune de ceva fiind fie unul sau zero. 192 00:09:05,340 --> 00:09:07,230 Intr-adevar, am putea face acest lucru aici. 193 00:09:07,230 --> 00:09:10,590 Nu asa ca aici, am trei, dar opt becuri, fiecare dintre acestea 194 00:09:10,590 --> 00:09:11,810 are propriul comutator. 195 00:09:11,810 --> 00:09:15,760 >> Și, așa că, dacă am vrut să reprezinte numărul șapte aici, 196 00:09:15,760 --> 00:09:18,510 S-ar putea activa aceste trei becuri. 197 00:09:18,510 --> 00:09:21,470 Și într-adevăr, în interiorul computerul meu este milioane de oameni, 198 00:09:21,470 --> 00:09:25,650 miliarde de lucruri care sunt doar mai mică decât cea, numite tranzistori, 199 00:09:25,650 --> 00:09:27,330 switch-uri, pe care tocmai l-ați activa și dezactiva. 200 00:09:27,330 --> 00:09:30,420 Deci, acestea sunt relativ big-- comutatoare big-- în interiorul laptop-- meu 201 00:09:30,420 --> 00:09:32,150 sunt multe, multe, multe, mai multe switch-uri. 202 00:09:32,150 --> 00:09:35,160 Dar, tot ce fac este exact that-- rândul său, ceva, întoarce ceva off. 203 00:09:35,160 --> 00:09:38,076 Și, ca atare, un computer poate reprezenta, cu acele milioane sau miliarde 204 00:09:38,076 --> 00:09:40,480 de tranzistori, loturi și o mulțime de zero-uri și altele. 205 00:09:40,480 --> 00:09:43,160 Și nu există alte componente hardware, totuși, că vă permite să stocați informații pe termen lung, 206 00:09:43,160 --> 00:09:45,243 astfel încât, atunci când trageți conectați, nu-l pierd. 207 00:09:45,243 --> 00:09:46,900 Dar asta este o poveste pentru o altă zi. 208 00:09:46,900 --> 00:09:51,170 >> Deci, ce putem face cu acești biți? 209 00:09:51,170 --> 00:09:54,309 Am putea doar să ia presiunea de pe mine-- 210 00:09:54,309 --> 00:09:56,600 ar putea cineva vrea să vină aici și să ofere un demo? 211 00:09:56,600 --> 00:09:57,516 Am văzut prima dată această mână. 212 00:09:57,516 --> 00:09:58,709 Care e numele tău? 213 00:09:58,709 --> 00:09:59,250 Maday: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID MALAN: Maday, vino sus. 215 00:10:00,542 --> 00:10:01,250 Încântat de cunoştinţă. 216 00:10:01,250 --> 00:10:02,390 Maday: Mă bucur să te cunosc. 217 00:10:02,390 --> 00:10:02,930 >> DAVID MALAN: Vino în acest fel. 218 00:10:02,930 --> 00:10:04,182 Nu va trebui să-ți buza în sus. 219 00:10:04,182 --> 00:10:04,682 In regula. 220 00:10:04,682 --> 00:10:11,090 Deci, aici, avem, notice-- unul, two-- vom edita că out-- una, două, patru, 221 00:10:11,090 --> 00:10:13,350 opt, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Acest lucru este în mod deliberat. 223 00:10:14,220 --> 00:10:17,370 Există opt biți aici-- binar zero digits-- și cele. 224 00:10:17,370 --> 00:10:21,460 Și un pic este o unitate utilă de measure-- nu la fel de utilă o unitate de măsură 225 00:10:21,460 --> 00:10:21,999 pe sine. 226 00:10:21,999 --> 00:10:24,290 De obicei, doriți cel puțin opt dintre aceste lucruri, a.k.a. 227 00:10:24,290 --> 00:10:24,790 un octet. 228 00:10:24,790 --> 00:10:26,230 Așa că avem un octet de biți aici. 229 00:10:26,230 --> 00:10:31,130 >> Așa că, dacă am vrut să te provoc, de exemplu, enumerând, în binar, 230 00:10:31,130 --> 00:10:33,230 această valoare aici-- 42. 231 00:10:33,230 --> 00:10:35,140 Vrei să ia o lovitură de cuțit la asta? 232 00:10:35,140 --> 00:10:36,034 >> Maday: [inaudibil]. 233 00:10:36,034 --> 00:10:38,700 DAVID MALAN: Da, trebuie doar să împingeți mici comutatoare alb în față. 234 00:10:38,700 --> 00:10:41,290 Și tu vrei să scrie din 42, și puse la bătaie 235 00:10:41,290 --> 00:10:44,061 este acest stres CS50 dacă te pasă asta. 236 00:10:44,061 --> 00:10:44,560 In regula. 237 00:10:44,560 --> 00:10:46,420 Așa că ai 32. 238 00:10:46,420 --> 00:10:48,430 Vom avea nevoie de 42. 239 00:10:48,430 --> 00:10:51,410 Deci asta e un opt, așa că e 40. 240 00:10:51,410 --> 00:10:54,160 Si excellent-- foarte bine făcut. 241 00:10:54,160 --> 00:10:55,186 Mulțumesc. 242 00:10:55,186 --> 00:10:58,790 >> [APLAUZE] 243 00:10:58,790 --> 00:10:59,290 In regula. 244 00:10:59,290 --> 00:11:00,623 Așa că avem mai o minge de stres. 245 00:11:00,623 --> 00:11:03,595 Hai să facem asta încă o dată, dacă am putea. 246 00:11:03,595 --> 00:11:05,368 Un alt voluntar? 247 00:11:05,368 --> 00:11:07,970 stres sferic liber, minge de stres gratuit. 248 00:11:07,970 --> 00:11:08,470 O.K. 249 00:11:08,470 --> 00:11:11,640 Aici, în mijloc, vrei să vii? 250 00:11:11,640 --> 00:11:14,100 In regula. 251 00:11:14,100 --> 00:11:15,552 Stiu. 252 00:11:15,552 --> 00:11:16,360 Acolo mergem. 253 00:11:16,360 --> 00:11:20,818 >> Astfel încât numerele de vin pe jos aici--. 254 00:11:20,818 --> 00:11:21,567 Cum te numești? 255 00:11:21,567 --> 00:11:21,984 >> DAVEY: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID MALAN: Davey. 257 00:11:22,820 --> 00:11:23,320 O.K. 258 00:11:23,320 --> 00:11:24,810 Vino, Davey. 259 00:11:24,810 --> 00:11:25,890 Încântat de cunoştinţă. 260 00:11:25,890 --> 00:11:28,639 Și ce vom ai spell-- dacă ai putea persista acolo 261 00:11:28,639 --> 00:11:32,810 pentru doar un singur moment-- este numărul 50. 262 00:11:32,810 --> 00:11:36,293 Dar, dar, dar, dar, dar, acestea sunt magneți de școală de grad pentru un motiv. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Tocmai am primit un pic mai greu, bine? 265 00:11:43,327 --> 00:11:44,160 Nu există încă opt. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 In regula. 268 00:11:47,320 --> 00:11:48,486 Deci, ce avem acolo? 269 00:11:48,486 --> 00:11:51,356 Avem 32. 270 00:11:51,356 --> 00:11:54,344 Frumos. 271 00:11:54,344 --> 00:11:58,610 32, plus 16 ne oferă 48-- atât de aproape. 272 00:11:58,610 --> 00:12:00,390 Și minunat. 273 00:12:00,390 --> 00:12:02,831 Felicitări pentru Davey, de asemenea. 274 00:12:02,831 --> 00:12:05,720 >> [APLAUZE] 275 00:12:05,720 --> 00:12:06,516 >> In regula. 276 00:12:06,516 --> 00:12:09,390 Deci, putem face acest lucru toată ziua, și nu devine tot atât de mult mai mult 277 00:12:09,390 --> 00:12:10,800 interesant și mai provocator. 278 00:12:10,800 --> 00:12:13,250 Dar asta e cu adevărat point-- este modul relativ simplu 279 00:12:13,250 --> 00:12:16,930 este, la sfârșitul zilei, ce calculator nu pentru a stoca informații, 280 00:12:16,930 --> 00:12:21,740 pentru a stoca intrări și în cele din urmă stoca sau reprezintă acele ieșiri. 281 00:12:21,740 --> 00:12:23,750 Dar, numere singure nu sunt tot ceea ce interesant. 282 00:12:23,750 --> 00:12:26,069 >> Așa că oamenii, în urmă cu câțiva ani, a hotărât, știi ce? 283 00:12:26,069 --> 00:12:27,860 Ar fi frumos dacă computerele nu erau doar 284 00:12:27,860 --> 00:12:31,030 calculatoare pentru aritmetică operațiuni, dar, de fapt, ar putea 285 00:12:31,030 --> 00:12:35,209 face lucruri cum ar fi procesare de text, sau e-mail, sau încarnări mai moderne 286 00:12:35,209 --> 00:12:36,500 acestor tipuri de tehnologii. 287 00:12:36,500 --> 00:12:40,680 Și așa lumea a decis în mod arbitrar, dar universal, 288 00:12:40,680 --> 00:12:44,380 că, dacă doriți să stocați capital litera A într-un computer, știi ce? 289 00:12:44,380 --> 00:12:47,730 Hai doar cu toții de acord pentru a stoca unele model de zero-uri și ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- că în cele din urmă reprezintă numărul zecimal 65. 291 00:12:52,422 --> 00:12:53,630 Ne vom doar cu toții de acord cu asta. 292 00:12:53,630 --> 00:12:56,620 >> 66 ar reprezenta B, 67 ar reprezenta C, 293 00:12:56,620 --> 00:13:00,210 și există ciorchini de alte modele de zero-uri și altele, sau numere care stau la baza, 294 00:13:00,210 --> 00:13:02,224 care ar reprezenta alte scrisori încă. 295 00:13:02,224 --> 00:13:04,390 Așa că, dacă ai un fel de mental absorbi acest lucru pentru un moment, 296 00:13:04,390 --> 00:13:10,900 Am pus în mod deliberat de la A I, în cazul în care Ha 72 și I este 73. 297 00:13:10,900 --> 00:13:15,830 În cazul în care un computer, apoi, în contextul un program de procesare de text sau un e-mail, 298 00:13:15,830 --> 00:13:19,620 a dezvăluit sub capota pentru a avea aceste modele de model bits-- 299 00:13:19,620 --> 00:13:22,500 de biți reprezentând 72, apoi 73, apoi 33-- 300 00:13:22,500 --> 00:13:26,640 ce s-ar putea vraja asta în acel program? 301 00:13:26,640 --> 00:13:28,150 >> Așa că hi, și apoi ceva. 302 00:13:28,150 --> 00:13:31,460 Noi nu știm în mod necesar, dar într-adevăr, 33-- nu pe graficul earlier-- 303 00:13:31,460 --> 00:13:33,170 a fost pur și simplu un punct de exclamare. 304 00:13:33,170 --> 00:13:38,870 Așa că 72 era H, 73 este I, 33 se întâmplă să fie un punct de exclamare încă. 305 00:13:38,870 --> 00:13:41,719 Dar asta e tot fin și bun, și, de fapt, în zilele noastre, mai degrabă decât 306 00:13:41,719 --> 00:13:43,760 utilizați doar șapte sau opt biți, datorită ceva 307 00:13:43,760 --> 00:13:46,530 numit Unicode, spre deosebire la ascii înapoi în a doua zi, 308 00:13:46,530 --> 00:13:50,010 noi de fapt, poate reprezenta chiar mai mult personaje interesante decât doar 309 00:13:50,010 --> 00:13:52,980 aceste limba engleză originală părtinitoare litere. 310 00:13:52,980 --> 00:13:56,030 Dar, de asemenea, putem reprezenta chiar lucruri cum ar fi culori. neater 311 00:13:56,030 --> 00:13:59,750 >> Dacă v-ați auzit vreodată acronimul RGB, roșu, verde, albastru, care 312 00:13:59,750 --> 00:14:03,510 înseamnă doar că un calculator foloseste de obicei trei seturi de bits-- 313 00:14:03,510 --> 00:14:06,760 unele număr de biți care reprezintă un număr pentru cât de mult roșu pe care doriți, 314 00:14:06,760 --> 00:14:08,940 un alt set de biți pentru cât de mult verde pe care doriți, 315 00:14:08,940 --> 00:14:11,430 și un alt număr stabilit pentru cât de mult albastru dorit. 316 00:14:11,430 --> 00:14:14,457 Deci, un număr mare înseamnă o mulțime de număr roșu, mic înseamnă că nici un roșu. 317 00:14:14,457 --> 00:14:16,290 Și, astfel încât acestea sunt un fel de valori de mijloc aici. 318 00:14:16,290 --> 00:14:20,180 >> Așa că dă-mi niște roșii, da-mi ceva verde, și dă-mi un pic de albastru. 319 00:14:20,180 --> 00:14:24,260 Și, dacă se amestecă aceste trei nuanțe de culoare împreună, în acest caz, 320 00:14:24,260 --> 00:14:26,850 veți obține această nuanță întunecos de galben sau maro. 321 00:14:26,850 --> 00:14:32,330 Dar, acel model de opt plus opt plus eight--, astfel 24 bits-- 322 00:14:32,330 --> 00:14:36,550 la stânga la dreapta, este modul in care un calculator ar reprezenta culoarea respectivă. 323 00:14:36,550 --> 00:14:38,090 Acum, acesta este doar un punct pe un ecran. 324 00:14:38,090 --> 00:14:42,230 Dacă te uiți foarte aproape la televizorul tau calculator, veți vedea puncte sau pixeli. 325 00:14:42,230 --> 00:14:45,420 Și, dacă aveți o întreagă rețea de pixeli, pe orizontală și pe verticală, 326 00:14:45,420 --> 00:14:46,630 Aveti imagini. 327 00:14:46,630 --> 00:14:49,029 Și apoi, dacă luați o imagine și apoi se spală 328 00:14:49,029 --> 00:14:52,070 arată-te o altă imagine, o alta imagine, o altă imagine, o altă imagine, 329 00:14:52,070 --> 00:14:54,760 foarte repede, ai avea, bineînțeles, filme. 330 00:14:54,760 --> 00:14:56,109 >> Și așa am început să observăm unde. 331 00:14:56,109 --> 00:14:57,650 Am început cu aceste zerouri și cele. 332 00:14:57,650 --> 00:15:00,570 Am lucrat de acolo în zecimal numere, cum le reprezintă. 333 00:15:00,570 --> 00:15:02,070 Acum avem litere ale alfabetului. 334 00:15:02,070 --> 00:15:05,664 Dar, în alte contexte, așteptați, putem folosi alte câteva biți și culori reprezintă. 335 00:15:05,664 --> 00:15:07,830 De îndată ce aveți la dispoziție capacitatea de a reprezenta culorile, 336 00:15:07,830 --> 00:15:11,200 aveți capacitatea de a reprezenta fotografii și gif-uri animate 337 00:15:11,200 --> 00:15:13,780 și alte astfel de caractere de pe ecran. 338 00:15:13,780 --> 00:15:17,160 Iar când ai o grămadă de imagini care zboară către om dintr-o dată, 339 00:15:17,160 --> 00:15:21,480 se pare ca imagini în mișcare, și astfel încât să obțineți clipuri video, de asemenea. 340 00:15:21,480 --> 00:15:23,460 >> Deci, folosind aceste foarte Primitive simplu face noi 341 00:15:23,460 --> 00:15:28,070 au modul de reprezentare în cele din urmă toate aceste forme de media. 342 00:15:28,070 --> 00:15:30,450 Si ne-am abstras din nou și din nou și din nou, până când vom 343 00:15:30,450 --> 00:15:33,467 obține de la cel mai scăzut nivel la acest cel mai înalt nivel. 344 00:15:33,467 --> 00:15:35,550 Astfel că ne dă această idee generală de abstracție. 345 00:15:35,550 --> 00:15:36,990 Dar, am început aici. 346 00:15:36,990 --> 00:15:38,790 >> Aici acum, am putea reprezintă într-un calculator 347 00:15:38,790 --> 00:15:41,920 intrările noastre cu zero-uri și altele, ieșirile noastre în zero-uri și altele, 348 00:15:41,920 --> 00:15:43,640 dar ce se întâmplă în interiorul cutiei? 349 00:15:43,640 --> 00:15:46,080 Asta e în cazul în care computerul știința devine interesantă. 350 00:15:46,080 --> 00:15:49,770 Asta e în cazul în care vă aduce de fapt tau minți proprii să le suporte pentru a rezolva problemele. 351 00:15:49,770 --> 00:15:52,590 Noi putem prevedea acum, pentru Restul semestrului, da. 352 00:15:52,590 --> 00:15:53,870 Știu cum funcționează binar. 353 00:15:53,870 --> 00:15:57,942 Îmi amintesc cum Ascii sau Unicode-- de cartografiere a letters-- lucrări. 354 00:15:57,942 --> 00:15:59,650 Și se află cu siguranță motivul pentru care noi 355 00:15:59,650 --> 00:16:03,470 ar putea reprezenta roșu și verde și albastru, și reprezintă multimedia, de asemenea. 356 00:16:03,470 --> 00:16:05,390 Dar acest lucru este lucruri interesante. 357 00:16:05,390 --> 00:16:09,790 Aceasta este ceea ce face ca cineva capabilă să rezolve probleme. 358 00:16:09,790 --> 00:16:11,980 >> Și într-o astfel de problemă ne place să facem, într-adevăr, 359 00:16:11,980 --> 00:16:15,345 este de a lua de prezență, sau a face acest lucru în mod algoritmic. 360 00:16:15,345 --> 00:16:16,470 Și din nou, aș putea face asta. 361 00:16:16,470 --> 00:16:19,580 S-ar putea face unul, doi, trei, patru cinci, șase, șapte, opt și nouă. 362 00:16:19,580 --> 00:16:21,520 Și aș putea scrie în jos pentru a ține evidența acesteia. 363 00:16:21,520 --> 00:16:23,769 Dar asta e doar cum mi-ar reprezintă informația. 364 00:16:23,769 --> 00:16:27,550 Sau aș putea face acest lucru faster-- doi, patru, șase, opt, zece, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- se simte ca de două ori la fel de repede, dar este încă 366 00:16:30,380 --> 00:16:32,050 va lua o mulțime de timp. 367 00:16:32,050 --> 00:16:35,990 >> Dar, se pare, dacă ne folosim încă un alt resource-- și într-adevăr calculatoare 368 00:16:35,990 --> 00:16:38,940 aceste zile au mai multe procesoare sau creier. 369 00:16:38,940 --> 00:16:41,970 Se pare ca computerele pot face o mulțime de lucruri dintr-o dată, 370 00:16:41,970 --> 00:16:44,460 și într-adevăr, noi, în această cameră, ar putea reprezenta exact acest lucru. 371 00:16:44,460 --> 00:16:47,130 >> Deci, e un pic social incomode, dar dacă ar fi umorul ma 372 00:16:47,130 --> 00:16:51,550 pentru doar un proces în trei etape, să mi toată lumea, în loc acolo doar 373 00:16:51,550 --> 00:16:54,640 să se ridice în picioare pentru un moment. 374 00:16:54,640 --> 00:16:57,380 Ridica-te. 375 00:16:57,380 --> 00:17:01,580 Deci, gândiți să le număr astfel încât toată lumea în Unu această cameră, 376 00:17:01,580 --> 00:17:05,010 cu excepția persoanelor care nu au obligă, se gândesc numărul unu. 377 00:17:05,010 --> 00:17:06,510 Așadar, acesta este numărul tău chiar acum. 378 00:17:06,510 --> 00:17:09,399 Acesta este primul pas, sau ca om de știință de calculator sau de un programator 379 00:17:09,399 --> 00:17:11,827 s-ar face în mod obișnuit, vom merge pentru a începe numărarea de la zero. 380 00:17:11,827 --> 00:17:14,410 În cazul în care cel mai mic număr putem reprezintă cu acele becuri 381 00:17:14,410 --> 00:17:17,410 este zero, prin doar lăsându-le toate off, aș putea la fel de bine doar 382 00:17:17,410 --> 00:17:19,271 începe numărarea de la zero în loc de unul. 383 00:17:19,271 --> 00:17:21,020 Și astfel, asta oamenii de știință de calculator fac. 384 00:17:21,020 --> 00:17:23,750 Așa că un pas de zero, stand up și gândiți-vă la numărul unu. 385 00:17:23,750 --> 00:17:26,339 Următorul pas este de astea-- pereche off cu cineva în picioare 386 00:17:26,339 --> 00:17:27,660 și adăugați numerele împreună. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Extraordinar. 389 00:17:32,850 --> 00:17:37,640 >> Astfel încât în ​​acest moment în timp, literalmente toată lumea participă 390 00:17:37,640 --> 00:17:41,930 se gândește la numărul 2, cu excepția pentru o singură persoană ciudată dacă avem 391 00:17:41,930 --> 00:17:43,450 un număr impar de persoane în cameră. 392 00:17:43,450 --> 00:17:50,640 Și acum al treilea pas aici va să fie astea-- unul dintre voi ar trebui să stai jos. 393 00:17:50,640 --> 00:17:54,490 Unul dintre voi ar trebui să stai jos, și dacă sunteți încă în picioare, 394 00:17:54,490 --> 00:17:56,590 du-te înapoi la pasul unu. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 In regula. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 In regula. 399 00:19:01,650 --> 00:19:03,880 Astfel încât tot mai mulți oameni ar trebui să fie așezat în jos. 400 00:19:03,880 --> 00:19:08,280 Observați că acest lucru a indus un loop-- un fel de ciclu. 401 00:19:08,280 --> 00:19:11,983 Unii dintre voi ar trebui să fie stângaci blocat, merge înainte și înapoi între primul pas 402 00:19:11,983 --> 00:19:14,180 și doi, unu și doi, unu și doi. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Asta e ok. 405 00:19:21,810 --> 00:19:22,630 Primul nostru bug. 406 00:19:22,630 --> 00:19:24,740 Ne vom ocupa de asta. 407 00:19:24,740 --> 00:19:25,320 In regula. 408 00:19:25,320 --> 00:19:27,370 Lasă-mă să încerc să impulsioneze lucrurile. 409 00:19:27,370 --> 00:19:31,454 >> Teoretic, numai o singură persoană este în picioare ca toată lumea continuă să se împărți câte doi. 410 00:19:31,454 --> 00:19:33,870 Dar, lasă-mă să accelereze lucrurile cu oamenii încă în picioare. 411 00:19:33,870 --> 00:19:35,480 Ce număr te gândești? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 O.K. 414 00:19:36,570 --> 00:19:37,820 Du-te și stai jos. 415 00:19:37,820 --> 00:19:39,190 Voi sunt încă în picioare. 416 00:19:39,190 --> 00:19:42,130 Cine e încă în picioare? 417 00:19:42,130 --> 00:19:45,240 Ce număr te gândești? 418 00:19:45,240 --> 00:19:46,160 O.K. 419 00:19:46,160 --> 00:19:47,900 >> Așa că ne vom întoarce la tine. 420 00:19:47,900 --> 00:19:49,630 In spate? 421 00:19:49,630 --> 00:19:50,790 Ce este asta? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK altcineva da sus top--? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 O.K. 426 00:19:58,300 --> 00:20:02,780 Aici pe right-- mea aici? 427 00:20:02,780 --> 00:20:06,820 132, foarte frumos. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> O.K. 430 00:20:08,990 --> 00:20:10,031 Și cine e încă în picioare? 431 00:20:10,031 --> 00:20:11,000 Aici? 432 00:20:11,000 --> 00:20:14,520 46, foarte frumos. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Nu pot bloca mult mai mult timp. 435 00:20:18,220 --> 00:20:20,520 Da? 436 00:20:20,520 --> 00:20:22,490 30, frumos. 437 00:20:22,490 --> 00:20:24,120 Aici? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> Și cred că asta e toată lumea cu excepția voi, nici o presiune. 441 00:20:30,920 --> 00:20:32,860 Oh, așteptați. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Doar opt. 445 00:20:38,281 --> 00:20:38,780 O.K. 446 00:20:38,780 --> 00:20:41,030 Doar opt. 447 00:20:41,030 --> 00:20:42,580 Aici jos? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Aceasta este cea mai proastă implementare din acest algoritm vreodată. 454 00:20:54,690 --> 00:20:55,190 O.K. 455 00:20:55,190 --> 00:20:59,760 Așa că oricine altcineva? 456 00:20:59,760 --> 00:21:00,421 Oricine altcineva? 457 00:21:00,421 --> 00:21:00,920 O.K. 458 00:21:00,920 --> 00:21:03,300 Încă una. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 O.K. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 In regula. 463 00:21:06,010 --> 00:21:09,070 Așa că, dacă n-am ratat pe nimeni în strălucirea aici, atunci când am lovit Enter, 464 00:21:09,070 --> 00:21:13,091 vom vedea, algoritmic Numărul total de persoane Sanders. 465 00:21:13,091 --> 00:21:16,340 Pentru că, din nou, este ca și cum toată lumea așa cum ați așezat, a trecut numărul tău off 466 00:21:16,340 --> 00:21:19,215 la altcineva, altcineva, la altcineva, astfel că, în teorie, 467 00:21:19,215 --> 00:21:22,304 în cele din urmă, doar unul ciudat persoană ar trebui să fie lăsată în picioare. 468 00:21:22,304 --> 00:21:22,970 Dar asta e bine. 469 00:21:22,970 --> 00:21:24,290 Am accelerat lucrurile manual. 470 00:21:24,290 --> 00:21:27,590 Este deosebit de greu pentru a vedea în acest spațiu special. 471 00:21:27,590 --> 00:21:34,200 >> Și numărul total de persoane credem că există aici este 546. 472 00:21:34,200 --> 00:21:37,330 Numărul total am fost predat de semenii didactice, 473 00:21:37,330 --> 00:21:40,660 care a făcut-vechiul mod lent școală, a fost de 820. 474 00:21:40,660 --> 00:21:43,660 >> [RAZAND] 475 00:21:43,660 --> 00:21:47,170 >> [APLAUZE] 476 00:21:47,170 --> 00:21:48,670 >> Asta e ok. 477 00:21:48,670 --> 00:21:50,740 Așa că cu siguranță, atunci, există aceste bug-uri. 478 00:21:50,740 --> 00:21:51,460 Și asta e bine. 479 00:21:51,460 --> 00:21:53,810 Și așa cred că din nou pe acest prima dată când ceva 480 00:21:53,810 --> 00:21:55,420 scrieți nu funcționează în mod necesar. 481 00:21:55,420 --> 00:21:57,620 Acest lucru sa întâmplat cu mine aici. 482 00:21:57,620 --> 00:22:00,844 Dar, hai acum ia în considerare modul în care am putea aplică aceeași idee la ceva 483 00:22:00,844 --> 00:22:03,760 v-ar fi văzut mai înainte, care este această veche tehnologie aici-- școală 484 00:22:03,760 --> 00:22:05,130 o carte de telefon foarte mare. 485 00:22:05,130 --> 00:22:09,380 Și să presupunem că această carte de telefon are 1000 de pagini și 1.000 de nume 486 00:22:09,380 --> 00:22:11,360 și numere în ordine alfabetică în interiorul acestuia. 487 00:22:11,360 --> 00:22:14,860 >> Ei bine, am putea aplica un fel de un anunț similar idee la această problemă foarte fizică, 488 00:22:14,860 --> 00:22:16,270 doar folosind mine. 489 00:22:16,270 --> 00:22:18,810 Am doar un fel de inselat prin mobilizarea pe toți 490 00:22:18,810 --> 00:22:23,240 cu o mulțime și o mulțime de diferite procesoare sau creierul executa unele algoritm. 491 00:22:23,240 --> 00:22:25,440 Dar, dacă e doar un pic vechi mine, eu pot încă 492 00:22:25,440 --> 00:22:29,630 pârghie aceeași esență a unei idei de divizare și de a cuceri această problemă 493 00:22:29,630 --> 00:22:32,970 din nou și din nou, prin care jumătate din voi, jumatate dintre voi, jumatate din voi, jumatate dintre voi, 494 00:22:32,970 --> 00:22:35,830 teoretic, ținut ședinței în jos, până când am rămas, teoretic, 495 00:22:35,830 --> 00:22:36,990 cu doar o singură persoană. 496 00:22:36,990 --> 00:22:39,810 >> Deci, în această școală veche technology-- noi nu facem 497 00:22:39,810 --> 00:22:43,030 au nevoie de acest map-- această tehnologie de școală veche, 498 00:22:43,030 --> 00:22:47,300 am putea începe căutarea pentru cineva ca Mike Smith, o pagină la un moment dat. 499 00:22:47,300 --> 00:22:49,410 Și văd că nu, Mike nu e aici. 500 00:22:49,410 --> 00:22:51,110 Sunt încă în secțiunea A. 501 00:22:51,110 --> 00:22:53,900 În cele din urmă, am găsit eu în secțiunea B. 502 00:22:53,900 --> 00:22:56,910 Și acest lucru este un algorithm-- pas-cu-pas instrucțiuni. 503 00:22:56,910 --> 00:22:59,890 Se începe de la pagina de început și unul la un moment dat, uita-te pentru Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Este aceasta correct-- această algoritm sau o abordare? 505 00:23:03,410 --> 00:23:04,550 >> Da, e corect. 506 00:23:04,550 --> 00:23:06,840 În cazul în care Mike e aici, în cele din urmă O să ajung la el. 507 00:23:06,840 --> 00:23:08,139 Dar nu este eficient. 508 00:23:08,139 --> 00:23:09,180 Este, evident, foarte lent. 509 00:23:09,180 --> 00:23:11,340 Deci, eu pot pârghie de aceeași twosies abordare. 510 00:23:11,340 --> 00:23:15,350 Pot să fac un fel de două, patru, șase, opt, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Este de două ori mai repede. 512 00:23:16,330 --> 00:23:18,290 Mă duc să ajung la Mike mai repede dacă el e acolo. 513 00:23:18,290 --> 00:23:20,770 Este corect? 514 00:23:20,770 --> 00:23:22,320 Da, dar am auzit nici un little--. 515 00:23:22,320 --> 00:23:24,200 Acum am auzit un nr. 516 00:23:24,200 --> 00:23:24,700 Da. 517 00:23:24,700 --> 00:23:26,190 E un bug potențial. 518 00:23:26,190 --> 00:23:29,374 Poate că Mike devine doar accidental prins între două pagini, 519 00:23:29,374 --> 00:23:31,290 pentru că eu sunt de zbor prin acest lucru de două la un moment dat. 520 00:23:31,290 --> 00:23:33,580 Așa că, cel puțin avem nevoie de ceva un fel de fix condiționată. 521 00:23:33,580 --> 00:23:35,330 Trebuie să spun, hei, dacă am lovit pe cineva a cărui 522 00:23:35,330 --> 00:23:39,190 Numele începe cu un T în loc de un S, Mai bine dublu înapoi cel puțin o pagină. 523 00:23:39,190 --> 00:23:40,767 Așa că buggy la început, dar fixabil. 524 00:23:40,767 --> 00:23:43,850 Dar nici unul dintre noi nu vor să caute Mike Smith, printr-un telefon de 1.000 de pagini 525 00:23:43,850 --> 00:23:45,290 puteți rezerva o singură pagină la un moment dat. 526 00:23:45,290 --> 00:23:48,486 Ce este o persoană normală de gând să faci? 527 00:23:48,486 --> 00:23:50,860 Ai de gând să meargă la S, dacă ai ști în cazul în care S. 528 00:23:50,860 --> 00:23:54,230 S-ar putea merge aproximativ la mijloc sau ușor înclinată spre sfârșitul anului. 529 00:23:54,230 --> 00:23:56,850 Și mă uit în jos aici și Sunt în secțiunea M. 530 00:23:56,850 --> 00:23:58,952 Dar ce știi despre această problemă acum, 531 00:23:58,952 --> 00:24:02,160 că noi nu știm în mod necesar înainte de cu noi toți doar de numărare pe noi înșine 532 00:24:02,160 --> 00:24:03,030 echivalent? 533 00:24:03,030 --> 00:24:06,010 Ei bine, Mike este în mod clar întâmplă să fie în această jumătate din carte 534 00:24:06,010 --> 00:24:07,920 dacă e deloc aici pentru că sortate. 535 00:24:07,920 --> 00:24:10,160 >> Și, astfel încât să puteți dramatically-- foarte 536 00:24:10,160 --> 00:24:11,250 >> [Trăgîndu] 537 00:24:11,250 --> 00:24:12,300 >> Stiu. 538 00:24:12,300 --> 00:24:16,940 >> [APLAUZE] 539 00:24:16,940 --> 00:24:19,450 >> Este de fapt foarte ușor dacă ai făcut-o în jos a coloanei vertebrale acolo. 540 00:24:19,450 --> 00:24:22,070 Dar vă puteți arunca apoi jumătate din problema imediat. 541 00:24:22,070 --> 00:24:25,950 Acum, am rămas cu același problem-- găsi Mike Smith într-un telefon book-- 542 00:24:25,950 --> 00:24:29,610 dar acum cartea de telefon începe la M și se duce la Z, dar este pe jumătate la fel de mare. 543 00:24:29,610 --> 00:24:30,890 >> Dar aceasta este ceea ce este impresionant. 544 00:24:30,890 --> 00:24:34,170 La fel ca în teorie, voi, atunci când ai stat cu toții în jos doar jumătate de la un moment dat, 545 00:24:34,170 --> 00:24:37,150 problema a primit o jumătate la fel de mare, pe jumătate la fel de mare, din nou și din nou. 546 00:24:37,150 --> 00:24:40,260 Așa a devenit această problemă aceeași problemă, dar pe jumătate la fel de mare. 547 00:24:40,260 --> 00:24:42,670 Acum este o problemă de 250 pagini. 548 00:24:42,670 --> 00:24:45,340 De îndată ce îmi dau seama, oh, eu sunt în secțiunea T accidental. 549 00:24:45,340 --> 00:24:46,590 Am mers prea departe. 550 00:24:46,590 --> 00:24:48,500 Pot să arunc acea jumătate din cartea de telefon departe. 551 00:24:48,500 --> 00:24:50,410 Acum, eu sunt în jos într-un sfert din problema. 552 00:24:50,410 --> 00:24:53,910 >> Si se poate repeta, repeta, se repetă până când, în teorie, tu ești 553 00:24:53,910 --> 00:24:55,460 a plecat cu doar o singură pagină. 554 00:24:55,460 --> 00:24:59,010 Iar dacă Mike este pe acea pagină, Pot rezolva acum această problemă. 555 00:24:59,010 --> 00:25:00,810 Dar, cât de repede am rezolvat? 556 00:25:00,810 --> 00:25:05,420 În primul caz, mi-a luat ca poate că 1.000 pași pentru a găsi Mike Smith. 557 00:25:05,420 --> 00:25:09,260 S-ar putea fi luat mine-- Am luat cartea de telefon 558 00:25:09,260 --> 00:25:11,440 și am început să caut o singură pagină la un moment dat, 559 00:25:11,440 --> 00:25:13,480 și Mike s-ar putea fi de 1.000 de pagini mai târziu. 560 00:25:13,480 --> 00:25:16,020 >> A doua abordare poate mă ia 500 de pași, 561 00:25:16,020 --> 00:25:17,960 pentru că eu sunt zboară prin intermediul a două la un moment dat. 562 00:25:17,960 --> 00:25:21,082 Iar a treia abordare, deși, este deosebit de puternic. 563 00:25:21,082 --> 00:25:23,790 Dar, să ia în considerare ceea ce de fapt a făcut cu această a treia abordare. 564 00:25:23,790 --> 00:25:27,590 O să am ceea ce eu voi numi doar aceste declarații aici, câte unul la un moment dat. 565 00:25:27,590 --> 00:25:28,560 Ridica o carte de telefon. 566 00:25:28,560 --> 00:25:30,130 Deschide la mijlocul cărții de telefon. 567 00:25:30,130 --> 00:25:31,419 Uită-te la nume. 568 00:25:31,419 --> 00:25:33,960 Și apoi lucrurile devin un pic mai mult intelectual interesant, 569 00:25:33,960 --> 00:25:35,170 dacă încă mai simplu. 570 00:25:35,170 --> 00:25:38,350 În cazul în care Smith se numără printre numele de pe pagina curentă, 571 00:25:38,350 --> 00:25:40,170 apoi face ceva în mod condiționat. 572 00:25:40,170 --> 00:25:41,840 E ca o furculiță în drum. 573 00:25:41,840 --> 00:25:42,660 Sună-Mike. 574 00:25:42,660 --> 00:25:44,930 În cazul în care Mike este printre numele pe acea pagină, numită Mike. 575 00:25:44,930 --> 00:25:49,720 Dar nu numai linia de patru, dacă linia copac, dacă vreți, este adevărat. 576 00:25:49,720 --> 00:25:51,590 Răspunsul la această întrebare este da. 577 00:25:51,590 --> 00:25:55,520 >> Altfel, dacă Smith este mai devreme în book-- cu alte cuvinte, dacă sunt în secțiunea M 578 00:25:55,520 --> 00:25:58,540 și caut pe cineva care să la stânga, atunci ce ar trebui să fac 579 00:25:58,540 --> 00:26:00,300 este ceva foarte asemănător. 580 00:26:00,300 --> 00:26:03,440 Apoi ar trebui să deschidă la mijloc din jumătatea din stânga a cărții. 581 00:26:03,440 --> 00:26:07,930 Așa că du-te la stânga, și apoi du-te înapoi la pasul doi. 582 00:26:07,930 --> 00:26:09,290 Uită-te la numele de acolo. 583 00:26:09,290 --> 00:26:12,779 >> Deci, cu alte cuvinte, face același lucru, dar pe o problemă care a fost redus la jumătate. 584 00:26:12,779 --> 00:26:13,570 Știi ce altceva? 585 00:26:13,570 --> 00:26:16,470 În cazul în care Smith este mai târziu în carte bazat pe pagina mă uit, 586 00:26:16,470 --> 00:26:18,790 deschis la mijlocul de jumătate din dreapta a cărții 587 00:26:18,790 --> 00:26:22,050 și apoi du-te înapoi din nou la pasul doi, else-- 588 00:26:22,050 --> 00:26:24,000 există oa patra posibilitate aici. 589 00:26:24,000 --> 00:26:28,830 Mike fie aici, fie la stânga sau la dreapta sau nu acolo. 590 00:26:28,830 --> 00:26:30,570 Și aici mai bine considera acest lucru. 591 00:26:30,570 --> 00:26:33,360 Și, de fapt, dacă ați avut vreodată computerul dvs. doar accident de pe tine, 592 00:26:33,360 --> 00:26:36,822 care este uneori, dar nu întotdeauna, rezultat doar un programator uman nu 593 00:26:36,822 --> 00:26:39,280 realizând, oh trage, există de fapt, acest al patrulea scenariu. 594 00:26:39,280 --> 00:26:41,650 Și, dacă nu scrie cod să se ocupe de acest scenariu, 595 00:26:41,650 --> 00:26:43,220 uneori, nu știi ce s-ar putea face computerul. 596 00:26:43,220 --> 00:26:44,770 Și, într-adevăr, un program s-ar putea prăbuși. 597 00:26:44,770 --> 00:26:47,550 >> Dar, în acest caz, m-am gândit cu privire la aceasta, și am spus, altfel renunț, 598 00:26:47,550 --> 00:26:49,850 pentru că este a patra logic scenariu posibil. 599 00:26:49,850 --> 00:26:51,950 Acum, hai să adăugați unele de vocabular asa ca am 600 00:26:51,950 --> 00:26:55,320 pot începe să arunce în jurul valorii de termeni care altfel sunt destul de intuitiv. 601 00:26:55,320 --> 00:26:57,870 Toate lucrurile pe care le-am am doar evidențiat în galben aici, 602 00:26:57,870 --> 00:27:00,140 Eu doar merg la funcții sau proceduri. 603 00:27:00,140 --> 00:27:01,590 Sunt doar un fel de acțiuni. 604 00:27:01,590 --> 00:27:04,900 Deci, pick up, deschis, uita-te la, cerere, deschis, deschis, 605 00:27:04,900 --> 00:27:09,170 quit-- acestea sunt doar acțiuni, sau vom le numesc mai mult formal, funcții. 606 00:27:09,170 --> 00:27:11,410 >> Între timp, acum în galben, Am evidențiat lucruri 607 00:27:11,410 --> 00:27:14,084 that-- hai să începem de asteptare le condiții sau ramuri. 608 00:27:14,084 --> 00:27:16,750 Acestea sunt puncte de decizie, în cazul s-ar putea merge în acest fel, în acest fel, 609 00:27:16,750 --> 00:27:18,100 sau o altă direcție, încă. 610 00:27:18,100 --> 00:27:19,430 Astfel încât acestea vor fi condiții. 611 00:27:19,430 --> 00:27:20,930 Și acum asta e un pic columbofil. 612 00:27:20,930 --> 00:27:24,600 Să numim aceste întrebări expresii booleene, 613 00:27:24,600 --> 00:27:26,530 după cineva cu un ultim nume Bool. 614 00:27:26,530 --> 00:27:28,340 >> Și o expresie booleană este doar ceva 615 00:27:28,340 --> 00:27:30,290 că este fie adevărat, fie fals, da sau nu. 616 00:27:30,290 --> 00:27:35,870 Așa că e întrebarea a cărei tine răspuns grijă, astfel încât să se într-o stare 617 00:27:35,870 --> 00:27:39,210 face un decision-- primi înapoi un răspuns, și apoi du-te la stânga sau la dreapta, sau ceva de genul 618 00:27:39,210 --> 00:27:40,450 altceva cu totul. 619 00:27:40,450 --> 00:27:42,860 >> Și apoi în cele din urmă, acestea Liniile aici-- du-te înapoi 620 00:27:42,860 --> 00:27:44,737 la pasul doi, du-te înapoi la pasul two-- am putea 621 00:27:44,737 --> 00:27:46,320 pune în aplicare această idee în diferite moduri. 622 00:27:46,320 --> 00:27:49,028 Și apoi aceia dintre voi cu Experiența de programare s-ar fi făcut 623 00:27:49,028 --> 00:27:50,670 sau pot imagina făcând acest lucru în mod diferit. 624 00:27:50,670 --> 00:27:53,170 Dar, pentru scopurile de astăzi, este doar ideea că contează. 625 00:27:53,170 --> 00:27:55,400 Aceasta induce ce vom numi în general 626 00:27:55,400 --> 00:28:00,110 un loop-- un fel de ciclu, deoarece asta mă face să fac ceva din nou. 627 00:28:00,110 --> 00:28:03,340 >> Așa că acum, să ia în considerare doar cât de bun este acest algoritm. 628 00:28:03,340 --> 00:28:03,899 Este corect. 629 00:28:03,899 --> 00:28:06,940 În cazul în care Mike în carte, este unul dintre cei patru scenarios-- din nou și din nou 630 00:28:06,940 --> 00:28:08,023 și din nou, îl vom găsi. 631 00:28:08,023 --> 00:28:08,890 Dar, cât de bun este? 632 00:28:08,890 --> 00:28:10,150 Ei bine, nu avem să fie prea formal aici. 633 00:28:10,150 --> 00:28:12,066 Dar, hai să complot ceva, x și y, pentru a obține 634 00:28:12,066 --> 00:28:14,470 un sentiment de forma acestei probleme. 635 00:28:14,470 --> 00:28:17,160 >> Pe axa x este aici dimensiunea problemei mele. 636 00:28:17,160 --> 00:28:20,256 Și au o axa y aici va fi timp pentru a rezolva. 637 00:28:20,256 --> 00:28:21,630 Deci, poate că acest lucru este numărul de pagini. 638 00:28:21,630 --> 00:28:24,400 Poate că acest lucru este de secunde sau pagina turns-- indiferent. 639 00:28:24,400 --> 00:28:27,290 Cu toate acestea pe care doriți să conta este ce această imagine va reprezenta. 640 00:28:27,290 --> 00:28:30,630 Și acest prim algoritm, voi pentru a descrie ca doar o linie dreaptă. 641 00:28:30,630 --> 00:28:33,120 În cazul în care există n pagini în cartea de telefon, atunci 642 00:28:33,120 --> 00:28:36,010 ar putea să mă ia cât mai multe ca n pași pentru a găsi Mike. 643 00:28:36,010 --> 00:28:38,930 În cazul în care Verizon sau compania de telefonie adaugă mai multe pagini de anul viitor, 644 00:28:38,930 --> 00:28:42,170 ar putea să mă ia una mai step-- una mai unitate de timp pentru a găsi Mike. 645 00:28:42,170 --> 00:28:44,230 Deci, există doar acesta, pentru a un anumit raport. 646 00:28:44,230 --> 00:28:45,970 Este o pantă linie dreaptă. 647 00:28:45,970 --> 00:28:49,110 >> Între timp, această a doua algorithm-- dacă sunt 648 00:28:49,110 --> 00:28:51,570 merge doi la time-- doi, patru, șase, opt sau double-- 649 00:28:51,570 --> 00:28:54,550 trecând prin paginile de două ori la un moment dat, două la un moment dat, 650 00:28:54,550 --> 00:28:55,710 este încă în linie dreaptă. 651 00:28:55,710 --> 00:28:58,720 Acum exista o una-doi raport, dar doar un pic mai mic. 652 00:28:58,720 --> 00:29:02,240 Așa că, dacă există atât de multe pagini pe grafic aici, în galben, 653 00:29:02,240 --> 00:29:04,800 care ar putea să-mi ia acest lucru mulți pași sau secunde, 654 00:29:04,800 --> 00:29:07,980 în caz contrar, o să mă ia de două ori mai multe pe linia roșie. 655 00:29:07,980 --> 00:29:10,190 >> Dar linia verde este MENIUL reală. 656 00:29:10,190 --> 00:29:12,290 Aceasta este ceea ce noi, în general, apelați un jurnal logorithm-- 657 00:29:12,290 --> 00:29:13,840 n, unde n este numărul de pagini. 658 00:29:13,840 --> 00:29:16,450 Dar este forma care contează astăzi, pentru că nu avem 659 00:29:16,450 --> 00:29:17,950 să se gândească chiar despre puncte complot. 660 00:29:17,950 --> 00:29:19,830 >> Gândiți-vă la un scenariu extrem. 661 00:29:19,830 --> 00:29:23,070 Să presupunem că mâine Verizon dublează numărul de pagini din cartea de telefon, 662 00:29:23,070 --> 00:29:24,900 de la 1000 la 2000. 663 00:29:24,900 --> 00:29:28,440 In primul algoritm, am ar putea să pierdeți un plus de 1.000 664 00:29:28,440 --> 00:29:32,080 pași în căutarea pentru Mike, doar pentru că Verizon dublat dimensiunea cărții. 665 00:29:32,080 --> 00:29:34,740 A doua algorithm-- s-ar putea ia-mi un plus de 500 de pași. 666 00:29:34,740 --> 00:29:38,370 mai mult de 1.000 de pagini, mă duc două la un time-- mai mult de 500 de pași pentru a găsi Mike. 667 00:29:38,370 --> 00:29:41,020 >> Dar acest lucru al treilea algoritm este un fel de magic. 668 00:29:41,020 --> 00:29:44,270 Verizon dublează numărul de pagini de la 1.000 la 2.000, 669 00:29:44,270 --> 00:29:47,730 dar câți mai mulți pași nu ia-mă să caut Mike? 670 00:29:47,730 --> 00:29:51,220 Este doar un singur, pentru că eu pot doar rupe cartea de telefon mai mult de o dată 671 00:29:51,220 --> 00:29:55,280 dintr-o problemă 2000 pagina unui 1.000 problemă pagină, și voila. 672 00:29:55,280 --> 00:29:57,030 Am luat o muscatura masivă din ea. 673 00:29:57,030 --> 00:29:59,405 >> Și dacă te duci într-adevăr extremă, să presupunem că agenda telefonică 674 00:29:59,405 --> 00:30:03,600 companie a avut ceva nebunesc o carte de telefon 4 miliarde de pagini. 675 00:30:03,600 --> 00:30:07,020 Ei bine, câți pași s-ar putea lua pentru a găsi Mike Smith într-un 4 miliarde 676 00:30:07,020 --> 00:30:09,990 Pagina de telefon de carte? 677 00:30:09,990 --> 00:30:16,450 Este un număr mare, dar doar 4 miliarde 2000000000 la un miliard pentru a 500 milioane de euro, 678 00:30:16,450 --> 00:30:18,720 250 million-- încă sună ca un număr mare, 679 00:30:18,720 --> 00:30:20,980 dar eu sunt foarte repede obtinerea la valori mai mici. 680 00:30:20,980 --> 00:30:24,790 >> Și, de fapt, dacă eu fac matematica Bine, eu pot împărți doar 4 miliarde 681 00:30:24,790 --> 00:30:28,750 de aproximativ 32 de ori înainte de I a lua în jos la doar unul. 682 00:30:28,750 --> 00:30:31,640 Așa că, dacă cartea de telefon au fost 4 miliarde de pagini lung, nu e mare. 683 00:30:31,640 --> 00:30:35,270 În termen de câteva secunde, poate 32 secunde, aș putea să-l împartă în jumătate 684 00:30:35,270 --> 00:30:39,560 și în cele din urmă găsi Mike sau ajung la concluzia ca nu e acolo. 685 00:30:39,560 --> 00:30:42,219 Și asta e esența unui algorithm-- un algoritm bun. 686 00:30:42,219 --> 00:30:44,260 Și asta e unul din obiectivele unei clase ca aceasta, 687 00:30:44,260 --> 00:30:47,350 încearcă să dau seama cum fac rezolva problema nu doar corect, 688 00:30:47,350 --> 00:30:52,360 ca intotdeauna am stiut cum sa o fac una pagină la un time-- dar corect și bine. 689 00:30:52,360 --> 00:30:55,034 Cum fac un design bun soluții la problemele? 690 00:30:55,034 --> 00:30:57,200 Așa că hai să luăm un moment aici și ai da un sens acum 691 00:30:57,200 --> 00:31:00,260 din CS50 cursului itself-- introduce membri ai personalului câteva curs de. 692 00:31:00,260 --> 00:31:02,010 Chiar înainte de a 2:00, vom să ia o scurtă pauză 693 00:31:02,010 --> 00:31:03,520 astfel încât aceia dintre voi care sunt pot cumpărături 694 00:31:03,520 --> 00:31:05,130 rață afară și să ia o uita-te la o altă clasă 695 00:31:05,130 --> 00:31:06,580 și urmăriți restul on-line. 696 00:31:06,580 --> 00:31:09,250 Dar, pentru moment, permiteți-mi să introducă CS50, clasa în sine, 697 00:31:09,250 --> 00:31:11,330 și în special în ceea ce este nou. 698 00:31:11,330 --> 00:31:13,960 >> Așa că primăvara trecută, noi a petrecut destul de un pic de time-- 699 00:31:13,960 --> 00:31:17,911 Personalul cursului și Eu-- gândire despre ce este vrem CS50 să fie, 700 00:31:17,911 --> 00:31:19,910 și merge înapoi la prima principii, ca să spunem așa, 701 00:31:19,910 --> 00:31:22,760 să ia în considerare ceea ce este dorim acest curs să arate ca și să fie 702 00:31:22,760 --> 00:31:23,740 cum ar fi pentru studenții săi. 703 00:31:23,740 --> 00:31:26,480 Și așa cum veți vedea în problema set zero, precum și, o invitație 704 00:31:26,480 --> 00:31:28,780 să aruncăm o privire la faptul că URL-ul care rezumă 705 00:31:28,780 --> 00:31:33,270 unele dintre motivațiile din spatele următoarele caracteristici ale toamna 2016. 706 00:31:33,270 --> 00:31:35,570 >> Deci, după cum este posibil să fi spicuite din TL: handout DR, 707 00:31:35,570 --> 00:31:39,060 Programa de astăzi, cât și din catalog Desigur, acest an în CS50, 708 00:31:39,060 --> 00:31:42,540 te doar de așteptat să participe today-- atât de locuri de muncă bine done-- 709 00:31:42,540 --> 00:31:45,960 și ultima prelegere în 21 noiembrie. 710 00:31:45,960 --> 00:31:49,150 Și tu ești binevenită, dar nu este de așteptat să participe la aceste cursuri în mijloc, 711 00:31:49,150 --> 00:31:51,180 pentru că ceea ce facem în acest an, este de fotografiere 712 00:31:51,180 --> 00:31:52,661 în timp real materialul cursului. 713 00:31:52,661 --> 00:31:54,660 Așa că totul va rămâne curente și încorporate 714 00:31:54,660 --> 00:31:57,410 cele mai bune ca can-- evenimente curente și conversații ca oamenii s-ar putea 715 00:31:57,410 --> 00:32:00,400 fie având în industrie din mondială, dar ceea ce face ca materialul 716 00:32:00,400 --> 00:32:03,892 disponibile, ca urmare, chiar earlier-- complet cu transcrieri text complet 717 00:32:03,892 --> 00:32:05,850 și de căutare și pentru link-uri către alte resurse. 718 00:32:05,850 --> 00:32:07,930 >> Și într-adevăr, am fost acordarea de ceva timp 719 00:32:07,930 --> 00:32:10,830 și noi credem acum acest lucru, pe care o putem crea, digital, 720 00:32:10,830 --> 00:32:15,170 o mai captivantă, o mai convingătoare experiență educațională, în opoziție 721 00:32:15,170 --> 00:32:19,110 pentru a aduna aici circa 23 de ori în persoană, auzind pe cineva ca mine 722 00:32:19,110 --> 00:32:22,925 pur și simplu vorbim despre știința calculatoarelor, spre deosebire de angajarea mai activ. 723 00:32:22,925 --> 00:32:25,800 Așa că veți vedea în programa cursului o schiță a semestrului aici, 724 00:32:25,800 --> 00:32:27,840 alături atunci când prelegeri vor să fie filmat, la care ești 725 00:32:27,840 --> 00:32:29,710 Bine ai venit, dar nu este de așteptat, și atunci când acestea vor 726 00:32:29,710 --> 00:32:31,640 să fie lansat pe site-ul cursului. 727 00:32:31,640 --> 00:32:34,300 >> Și ce vom face aici Miercuri începând cu săptămâna viitoare, 728 00:32:34,300 --> 00:32:37,362 este mult mai intim, cu numai acei oameni care doresc să participe, 729 00:32:37,362 --> 00:32:39,820 este așa-numita plimbare prin, unde am și capetele ale cursului 730 00:32:39,820 --> 00:32:41,730 va face de fapt lucrurile un pic mai intim 731 00:32:41,730 --> 00:32:44,313 aici în orchestră secțiune, încă mai au unele tehnologii 732 00:32:44,313 --> 00:32:46,365 și se plimbe prin set de probleme săptămâna curente, 733 00:32:46,365 --> 00:32:50,020 și vă oferă particularly-- dacă printre cei mai comfortable-- cu atât mai mult 734 00:32:50,020 --> 00:32:52,790 orientare pe care le-ar putea dori sau au nevoie pentru provocarea săptămânii. 735 00:32:52,790 --> 00:32:55,820 Și, în mod similar, pentru cei care nu pot participa la cei în persoană, nu e mare. 736 00:32:55,820 --> 00:32:58,486 Vor fi conduse în mod similar prin unul dintre personalul superior cursului, 737 00:32:58,486 --> 00:33:02,650 Zamalya, aceeași oportunitate încorporat în problema ei înșiși seturi. 738 00:33:02,650 --> 00:33:04,960 >> Problemă stabilește acest an va fi lansat în zilele de vineri 739 00:33:04,960 --> 00:33:08,080 și nu se mai face șapte zile mai târziu, dar 10 zile later-- în mod deliberat 740 00:33:08,080 --> 00:33:10,910 suprapunere cu fiecare problemă set, pentru a se potrivi mai bine, 741 00:33:10,910 --> 00:33:13,050 sperăm, și refluxul flux în programele de student, 742 00:33:13,050 --> 00:33:16,550 în special atunci când midterms sau atletism sau cadre universitare sau extracurriculars 743 00:33:16,550 --> 00:33:18,465 tind să vină și să plece mai ales la mijlocul-semestru. 744 00:33:18,465 --> 00:33:21,340 Asta ar trebui să vă dea un pic mai mult marjă de apreciere pentru a stabili dacă aveți față 745 00:33:21,340 --> 00:33:25,690 încărcați săptămână cu CS50 sau încărcare din spate l pe următorul week-end în loc. 746 00:33:25,690 --> 00:33:28,817 Asa ca uita-te pentru a programa cursului aici pentru orarul acestora. 747 00:33:28,817 --> 00:33:30,900 Și veți observa prea printre schimbările în acest an, 748 00:33:30,900 --> 00:33:34,082 pentru cei mai familiarizați cu Programarea în trecut, 749 00:33:34,082 --> 00:33:36,290 vom începe semestrul ca vom astăzi în Scratch, 750 00:33:36,290 --> 00:33:39,730 se concentreze în special asupra limbii numit C, și apoi nu tranziție 751 00:33:39,730 --> 00:33:43,430 PHP, dar într-un limbaj numit Python spre sfârșitul semestrului 752 00:33:43,430 --> 00:33:46,565 în contextul programării web, împreună cu SQL și JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, și totuși mai mult. 754 00:33:48,930 --> 00:33:51,790 >> Și, într-un răspuns la un FAQ, este într-adevăr cazul 755 00:33:51,790 --> 00:33:55,520 că CS nu este la fel de înfricoșător ca și eu o dată a crezut că a fost, dar este la fel de mult de lucru 756 00:33:55,520 --> 00:33:57,280 așa cum am auzit că ar putea fi. 757 00:33:57,280 --> 00:34:03,210 Dar aceasta este spune că aici sunt unele Statisticile din toamna anului 2015 corp student, 758 00:34:03,210 --> 00:34:06,460 prin care liniile orizontale albastre reprezintă numărul mediu de ore 759 00:34:06,460 --> 00:34:06,960 raportat. 760 00:34:06,960 --> 00:34:10,570 Și veți vedea o medie de șase până la 10 la 16, poate 12-- 761 00:34:10,570 --> 00:34:14,580 sau așa și așa mai departe, dar cu variație ridicată să fie clar. 762 00:34:14,580 --> 00:34:18,570 Si astfel dau seama că nu există nu numai elevii mai confortabil și mai puțin 763 00:34:18,570 --> 00:34:22,150 confortabil în curs, ci un suport corespunzător 764 00:34:22,150 --> 00:34:25,699 structura pentru a obține acei studenți prin semestru cu succes. 765 00:34:25,699 --> 00:34:29,409 >> Într-adevăr, într-un răspuns la un FAQ, ar trebui să luați CS50 ca un prim an? 766 00:34:29,409 --> 00:34:30,139 Absolut. 767 00:34:30,139 --> 00:34:32,690 Și, de fapt, eu nu regret nu au găsit calea mea 768 00:34:32,690 --> 00:34:35,170 sau a găsit un nou câmp primul an, de asemenea. 769 00:34:35,170 --> 00:34:39,149 Și ar trebui să luați CS50 cu alte cursuri, cu siguranță, ca well-- 770 00:34:39,149 --> 00:34:41,940 și sfaturi generale am putea da studenților, că CS50 e, probabil, 771 00:34:41,940 --> 00:34:44,929 nu genul de clasă sau de clasă intro că ar trebui să luați cu trei 772 00:34:44,929 --> 00:34:47,199 altele sau alte patru clase set-p. 773 00:34:47,199 --> 00:34:50,583 Dar, dacă luați alte două p-set clase, altceva, și CS50, 774 00:34:50,583 --> 00:34:51,499 absolut ușor de gestionat. 775 00:34:51,499 --> 00:34:54,900 Am avut mulți elevi în făcut acest lucru destul de singur cu succes. 776 00:34:54,900 --> 00:34:57,490 >> Și pentru a te spre asta termina cu succes linia, 777 00:34:57,490 --> 00:35:00,260 are curs au sections-- trasee diferite pentru studenți 778 00:35:00,260 --> 00:35:03,100 mai puțin confortabil, mai confortabil, și undeva între, 779 00:35:03,100 --> 00:35:04,850 astfel încât în ​​timpul cursului Primul set problemă, 780 00:35:04,850 --> 00:35:06,360 vi se va cere să le descrie. 781 00:35:06,360 --> 00:35:09,151 Iar dacă sunteți printre cei mai puțin confortabil, este genul de lucru 782 00:35:09,151 --> 00:35:10,420 pe care pur și simplu mai degrabă știi. 783 00:35:10,420 --> 00:35:13,010 Și într-adevăr, că a fost în creștere demografică în CS50 784 00:35:13,010 --> 00:35:14,090 pentru destul de câțiva ani. 785 00:35:14,090 --> 00:35:17,680 >> Ca de toamna trecuta pentru exemplu, 58% din clasa 786 00:35:17,680 --> 00:35:20,560 s-au descris ca fiind printre cei mai puțin confortabile, 787 00:35:20,560 --> 00:35:23,210 cu 9% printre cei mai confortabil, și apoi 788 00:35:23,210 --> 00:35:25,900 alți studenți acolo, în roșu care descriu ei înșiși 789 00:35:25,900 --> 00:35:27,890 ca undeva intre. 790 00:35:27,890 --> 00:35:31,980 Și veți vedea aici subiectele de ansamblu și programul de secțiuni, toate acestea 791 00:35:31,980 --> 00:35:34,820 sunt oferite în persoană, în în timp real, cu curs 792 00:35:34,820 --> 00:35:38,320 Personalul uimitor de semenii didactice și asistenți Desigur, unii dintre ei 793 00:35:38,320 --> 00:35:39,660 te vei întâlni în doar o clipă. 794 00:35:39,660 --> 00:35:42,993 >> Secțiunile însele, după cum veți vedea, se va să fie de luni și marți și miercuri, 795 00:35:42,993 --> 00:35:45,910 astfel încât să permită să se scufunde după angajarea, în cazul în care acest lucru 796 00:35:45,910 --> 00:35:48,110 alege, în curs prelegere la începutul săptămânii. 797 00:35:48,110 --> 00:35:51,420 Și apoi ore de birou, care cu siguranță, cu fiecare an care trece, 798 00:35:51,420 --> 00:35:54,110 au fost nu mai puțin de un provocare pentru curs. 799 00:35:54,110 --> 00:35:57,040 Și în acest an, nu suntem de planificare numai să dețină birou hours-- unul 800 00:35:57,040 --> 00:36:00,300 pe unul oportunități de ajutor pentru studenți în zilele de miercuri joi 801 00:36:00,300 --> 00:36:03,790 si duminica, ultima dintre aceste fiind în după-amiaza de proiectare 802 00:36:03,790 --> 00:36:06,910 pentru a reduce unele dintre stres care invariabil apare noaptea târziu 803 00:36:06,910 --> 00:36:10,180 p-settting cu un termen looming-- dar orele de birou vor fi, de asemenea, oferite 804 00:36:10,180 --> 00:36:14,920 în zilele de luni și marți și Miercuri și vineri și sâmbătă, 805 00:36:14,920 --> 00:36:17,080 mulțumită prietenilor noștri de la HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 are acum propriul spațiu pentru studenții și personalul CS50, 807 00:36:20,330 --> 00:36:23,070 vârful 67 Mount Auburn Street, chiar acolo, în Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Viziunea pentru care este că CS50 lui TFS și CAs pe tot parcursul săptămânii, 809 00:36:26,340 --> 00:36:29,052 destul de mult în cea mai mare zile, va fi acolo pentru sprijin. 810 00:36:29,052 --> 00:36:30,760 Așa că, dacă ai niște întrebare pe un set de p- 811 00:36:30,760 --> 00:36:33,093 sau te simți un pic blocat sau un pic confuz, 812 00:36:33,093 --> 00:36:35,640 și naiba, ai o oră sau o jumătate de oră între clase, 813 00:36:35,640 --> 00:36:38,920 mai ales în square-- poate pop și au răspuns la această întrebare 814 00:36:38,920 --> 00:36:41,720 a avea acea confuzie clarified-- foarte mult în spiritul, 815 00:36:41,720 --> 00:36:45,490 sunteți familiarizat, de matematica departament propriu centru întrebări de matematică, 816 00:36:45,490 --> 00:36:49,300 dar destul de mult în jurul valorii de ceas pe [? Gcal?], Pe care o vom posta on-line. 817 00:36:49,300 --> 00:36:52,400 >> Tutoring este de asemenea disponibil pentru cei care studenți, liber de curs 818 00:36:52,400 --> 00:36:54,750 personalul propriu, dacă doriți mai intim unu la unu, 819 00:36:54,750 --> 00:36:58,940 sau numai doi sau trei colegi, de lucru cu unul dintre membrii personalului cursului. 820 00:36:58,940 --> 00:37:02,320 Și într-adevăr, acestea sunt doar aici unii dintre membrii personalului cursului, 821 00:37:02,320 --> 00:37:04,120 câțiva dintre care vă veți întâlni în doar o clipă. 822 00:37:04,120 --> 00:37:07,440 De fapt, lui CS50 proprii colegi de predare cap, 823 00:37:07,440 --> 00:37:09,790 și desigur cap asistent, și preceptor, 824 00:37:09,790 --> 00:37:12,998 ar putea veni pe sus, să permită ei să spună salut. 825 00:37:12,998 --> 00:37:22,498 >> [APLAUZE] 826 00:37:22,498 --> 00:37:23,456 VORBITOR 1: [inaudibil]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [APLAUZE] 829 00:37:57,856 --> 00:37:58,814 VORBITOR 2: [inaudibil]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [APLAUZE] 832 00:38:27,238 --> 00:38:28,196 VORBITOR 3: [inaudibil]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [APLAUZE] 835 00:39:03,120 --> 00:39:06,740 >> DAVID MALAN: Și ne permite să aduce la bord doi dintre lui CS50 cele mai 836 00:39:06,740 --> 00:39:09,730 personalul de conducere, Rob și Zamayla, de asemenea. 837 00:39:09,730 --> 00:39:15,120 >> [APLAUZE] 838 00:39:15,120 --> 00:39:17,226 >> Într-adevăr, atât Rob și Zamayla au fost cu noi 839 00:39:17,226 --> 00:39:19,940 atât de mult timp, că am fost în stare pentru a intra în arhivele lui CS50 840 00:39:19,940 --> 00:39:22,470 și pentru a găsi acest lucru foarte SD imagini de ele participante 841 00:39:22,470 --> 00:39:25,402 pe scena ei înșiși în urmă cu câțiva ani. 842 00:39:25,402 --> 00:39:26,110 ROB: [inaudibil]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [APLAUZE] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [inaudibil] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [APLAUZE] 848 00:40:52,467 --> 00:40:53,425 David MALAN: Vă mulțumesc. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Deci, în plus față de acestea membrii echipei aici, 851 00:40:58,030 --> 00:41:01,662 CS50 are o echipa de aproape 100 membri ai personalului, toti acestia 852 00:41:01,662 --> 00:41:04,370 vor fi disponibile pentru secțiunile și orele de birou și multe altele. 853 00:41:04,370 --> 00:41:06,920 Și, după cum spune Rob prea, acest lucru este cea mai importantă revizuire 854 00:41:06,920 --> 00:41:09,534 din CS50 în cei 10 ani care Am fost în [inaudibil]. 855 00:41:09,534 --> 00:41:12,200 [Inaudibil] sa concentrat în special în asigurarea unei structuri de sprijin, 856 00:41:12,200 --> 00:41:14,050 tundere departe o mulțime de cea mai mare parte, care a fost 857 00:41:14,050 --> 00:41:16,870 acumulat în 10 ani evoluția de iterative 858 00:41:16,870 --> 00:41:18,120 pe seturi de probleme ale cursului. 859 00:41:18,120 --> 00:41:21,470 >> Așa că în acest an, nu numai în clasă, dar De asemenea, sub forma problemei cursului 860 00:41:21,470 --> 00:41:24,800 seturi, ar trebui să găsească lucruri să fie mai simplificat, tuns, mult 861 00:41:24,800 --> 00:41:26,700 mai ușor de gestionat decât în ultimii ani, așa cum am 862 00:41:26,700 --> 00:41:31,330 vărsat o parte din bagajul pe care-i dezvoltat de natura anului în evoluție 863 00:41:31,330 --> 00:41:32,970 după an și recapitularea. 864 00:41:32,970 --> 00:41:35,110 Așa că noi și îmbunătățite, începe astăzi. 865 00:41:35,110 --> 00:41:37,860 >> Vei întâlni unele mai multe din Personalul curs în [inaudibil] 866 00:41:37,860 --> 00:41:40,186 la 2:30, în cazul în care ne-am servi, ca o tradiție, tort. 867 00:41:40,186 --> 00:41:42,060 E un tort pic mai mult decât atât, dar tu vei 868 00:41:42,060 --> 00:41:44,690 Erin se întâlnesc și Tobias și încă altele. 869 00:41:44,690 --> 00:41:46,470 Dați-mi voie să vă dau un tur înainte de a auzi 870 00:41:46,470 --> 00:41:49,600 de la unii dintre ceilalți membri ai personalului în clasa a ceea ce așteaptă de asemenea. 871 00:41:49,600 --> 00:41:52,730 De fapt, vom începe întotdeauna CS50 lui semestru vine sâmbătă, 872 00:41:52,730 --> 00:41:54,330 cu ceea ce se numește Ziua CS50 puzzle. 873 00:41:54,330 --> 00:41:56,710 >> Nu are nimic de-a face cu informatică per se, 874 00:41:56,710 --> 00:41:58,669 dar cu privire la problema rezolvarea mai general. 875 00:41:58,669 --> 00:42:01,210 Și, dacă aleg să ia parte, pe unele dintre invitatii, 876 00:42:01,210 --> 00:42:03,460 ar putea să fi văzut ușă a scăzut sau pe scenă aici, 877 00:42:03,460 --> 00:42:05,830 este o oportunitate în echipe de doi sau trei sau patru, 878 00:42:05,830 --> 00:42:10,680 pentru a participa pentru puzzle-uri și pizza iar premiile și more-- această sâmbătă, 879 00:42:10,680 --> 00:42:12,560 Stay tuned pentru mai mult. 880 00:42:12,560 --> 00:42:15,082 >> Veți găsi, de asemenea, că fiecare Vineri, la foc și gheață, 881 00:42:15,082 --> 00:42:16,790 nu CS50 aduce un întregul grup de elevi 882 00:42:16,790 --> 00:42:19,100 la masa de prânz, pentru a face o mare clasa se simt mai intim, 883 00:42:19,100 --> 00:42:21,820 și, în general, să reunească absolventii si prieteni din industrie 884 00:42:21,820 --> 00:42:24,710 pentru a vorbi despre ceea ce le-au fost de până la, deoarece a absolvit. 885 00:42:24,710 --> 00:42:27,820 În mod similar, în acest an, va vom inaugura prima vreodată CS50 50 886 00:42:27,820 --> 00:42:31,390 codare contest-- un mid-semestru posibilitatea de a permite tuturor 887 00:42:31,390 --> 00:42:35,430 pe un opt în bază, pentru a avea un provocarea de inteligența împotriva colegilor, 888 00:42:35,430 --> 00:42:39,250 din nou, în echipe de câte doi sau trei sau patru, folosind doar acea programare 889 00:42:39,250 --> 00:42:41,920 savvy pe care apoi au sub centura după doar șase sau șapte 890 00:42:41,920 --> 00:42:44,710 săptămâni ale clasei și participante în acest tip de competiție 891 00:42:44,710 --> 00:42:50,261 online-- dacă doriți să vă perfecționa propriul abilități tot mai mult în această provocare. 892 00:42:50,261 --> 00:42:52,760 La sfârșitul semestrului este așa-numitul CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 o oportunitate care începe la ora 7:00 PM se termină la 07:00, și de-a lungul drum 894 00:42:56,970 --> 00:43:01,900 12 ore de seară, în care să se scufunde în project-- final al cursului 895 00:43:01,900 --> 00:43:04,820 o oportunitate de a proiecta și să pună în aplicare cele mai multe ceva de interes 896 00:43:04,820 --> 00:43:06,980 pentru a vă cu predare îndrumarea colegilor lui. 897 00:43:06,980 --> 00:43:09,600 În jurul valorii de 9:00 vom face în mod tipic servi pizza, 01:00, 898 00:43:09,600 --> 00:43:13,210 Philippe, și puțini dintre noi care sunt încă treaz la ora 5:00 dimineața, 899 00:43:13,210 --> 00:43:16,310 sunt de transfer de la bussed în jos drumul spre IHOP pentru micul dejun. 900 00:43:16,310 --> 00:43:19,340 >> Și apoi câteva zile mai târziu este așa-numitul CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 un capăt de expoziție semestru celebrare a cât de departe atât de multe 902 00:43:23,450 --> 00:43:28,200 din CS50 studenți au venit de la săptămâna zero, tot drumul pana in saptamana, 903 00:43:28,200 --> 00:43:32,610 și ținând cont de faptul că 73% dintre cei colegii de clasă și a ta acest an au 904 00:43:32,610 --> 00:43:34,840 luat niciodată o clasă de CS, înainte. 905 00:43:34,840 --> 00:43:39,226 De fapt, la reemphasize la fel de mult, aici este mai mult câteva fețe din personalul CS50 lui. 906 00:43:39,226 --> 00:43:40,184 VORBITOR 4: [inaudibil]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 VORBITOR 5: [inaudibil]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 VORBITOR 6: [inaudibil]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 VORBITOR 7: [inaudibil]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 DIFUZOR 8: [inaudibil] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 VORBITOR 9: [inaudibil]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> VORBITOR 4: [inaudibil]. 919 00:44:15,461 --> 00:44:16,461 >> VORBITOR 10: [inaudibil]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 VORBITOR 11: [inaudibil]. 922 00:44:23,438 --> 00:44:24,438 VORBITOR 12: [inaudibil]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 VORBITOR 13: [inaudibil] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> VORBITOR 14: [inaudibil]. 927 00:44:40,342 --> 00:44:42,863 >> VORBITOR 13: [inaudibil]. 928 00:44:42,863 --> 00:44:43,821 VORBITOR 15: [inaudibil] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 VORBITOR 16: [inaudibil]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> VORBITOR 11: [inaudibil] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 VORBITOR 5: [inaudibil]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID MALAN: O parte din echipa sunt ele însele cumpărături clase. 937 00:45:15,130 --> 00:45:17,760 Dar, dacă acei membri personalului CS50 sunt aici, 938 00:45:17,760 --> 00:45:19,230 ar putea veni pe sus pentru un moment. 939 00:45:19,230 --> 00:45:23,450 CS50 lui TFS și CAs și [? personal?] Membrii aici-- acestea sunt doar câteva 940 00:45:23,450 --> 00:45:28,880 din cel faces-- căruia tocmai ați a văzut, și câteva other-- și alte câteva 941 00:45:28,880 --> 00:45:30,020 încă. 942 00:45:30,020 --> 00:45:33,242 De ce nu am merge mai departe și să permită voi o pauză de cinci minute. 943 00:45:33,242 --> 00:45:35,450 În cazul în care aveți nevoie pentru a te apleca la clase de magazin, e în regulă. 944 00:45:35,450 --> 00:45:38,900 Și, în cinci minute, vom relua, luând o privire la primul rămășițe 945 00:45:38,900 --> 00:45:42,420 limbii noastre de programare, să îndeplinească Personalul cursului de aici ceva mai mult, 946 00:45:42,420 --> 00:45:45,020 și în cele din urmă să se concentreze la problema setată la zero. 947 00:45:45,020 --> 00:45:46,710 Așa că vom fi din nou în cinci minute. 1 00:45:46,864 --> 00:45:47,370 >> In regula. 2 00:45:47,370 --> 00:45:48,590 Așa că ne-am întors. 3 00:45:48,590 --> 00:45:51,330 Și, în restul de nostru timp astăzi, obiectivul 4 00:45:51,330 --> 00:45:54,320 este la nivel terenul de joc în ceea ce privește o anumită terminologie, 5 00:45:54,320 --> 00:45:55,297 în ceea ce privește anumite idei. 6 00:45:55,297 --> 00:45:57,380 Pentru că, într-adevăr, conform unele dintre graficele anterioare, 7 00:45:57,380 --> 00:46:00,130 acolo va fi o serie de niveluri de experiență în clasă, 8 00:46:00,130 --> 00:46:03,210 unii dintre ai căror studenți au luate unele de programare, înainte, 9 00:46:03,210 --> 00:46:04,200 unii dintre ei nu au. 10 00:46:04,200 --> 00:46:07,430 Și așa, cu această primă problemă set și cu această primă limbă 11 00:46:07,430 --> 00:46:10,830 avem o oportunitate de a începe să ia acordat după ziua de azi 12 00:46:10,830 --> 00:46:12,960 unele de vocabular și idee comună. 13 00:46:12,960 --> 00:46:15,590 >> Si vom face acest lucru prin intermediul Primul languages-- cursului 14 00:46:15,590 --> 00:46:21,070 în plus față de C și Python și JavaScript și SQL și HTML și CSS, 15 00:46:21,070 --> 00:46:24,450 ne vom concentra inițial și doar pentru problema setată la zero 16 00:46:24,450 --> 00:46:28,160 pe acest limbaj grafic, numit Zero, dezvoltat de MIT Media Lab 17 00:46:28,160 --> 00:46:30,880 pe drum, pentru a ajuta studenți și copii, în special 18 00:46:30,880 --> 00:46:35,070 se exprima algorithmically-- într-un mod mai coerent cu ceea ce 19 00:46:35,070 --> 00:46:37,300 am putea numi gândire de calcul. 20 00:46:37,300 --> 00:46:40,985 >> Și este un limbaj util, deoarece foarte repede săptămâna viitoare într-o saptamana, 21 00:46:40,985 --> 00:46:44,360 facem trecerea la o mai limba tradițională și arcane numit 22 00:46:44,360 --> 00:46:46,370 C, care este pur textuală. 23 00:46:46,370 --> 00:46:48,930 Utilizați numai tastatura în pentru a scrie instrucțiuni 24 00:46:48,930 --> 00:46:50,230 ca acestea, pe ecran. 25 00:46:50,230 --> 00:46:52,840 Dar, chiar dacă ați mai văzut niciodată un limbaj de programare, înainte, 26 00:46:52,840 --> 00:46:55,170 în doar uitându-se la acest lucru, fie că este vorba totul criptic, 27 00:46:55,170 --> 00:47:00,010 puteți ghici, probabil că probabil, imprimă Hello World. 28 00:47:00,010 --> 00:47:02,050 Dar există o mulțime de deasupra capului sintactic acolo. 29 00:47:02,050 --> 00:47:05,770 Există, hash ciudat simbol sau hash tag-ul de top în sus. 30 00:47:05,770 --> 00:47:08,900 Nu există paranteze unghiulare, unele paranteze, acolade, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 există doar atât de mult vizual sintaxă care devine în mod. 32 00:47:11,880 --> 00:47:13,940 Vom începe cursul cu Zgârietură, astfel încât pentru a obține 33 00:47:13,940 --> 00:47:17,600 trecut toate de cei intelectual distracții neinteresante, 34 00:47:17,600 --> 00:47:20,290 și să se concentreze în schimb pe idei. 35 00:47:20,290 --> 00:47:22,540 >> De fapt, aceasta poate fi înainte. 36 00:47:22,540 --> 00:47:24,830 Acest lucru, pentru aceasta, săptămână va fi după. 37 00:47:24,830 --> 00:47:26,760 Acest lucru, în acest grafic Scratch limba, 38 00:47:26,760 --> 00:47:29,870 este modul în care v-ar pune în aplicare aceeași program-- un program care, atunci când executați, 39 00:47:29,870 --> 00:47:31,340 pur și simplu spune Bună ziua lume. 40 00:47:31,340 --> 00:47:34,740 Și ce e frumos despre Scratch este că este această programare grafică 41 00:47:34,740 --> 00:47:38,780 mediu care utilizează piese de puzzle sau blocuri, că doar interblocare împreună 42 00:47:38,780 --> 00:47:40,440 dacă are sens logic să facă acest lucru. 43 00:47:40,440 --> 00:47:43,810 Si cu Scratch poate dezvolta animații și jocuri interactive 44 00:47:43,810 --> 00:47:47,270 și artă, precum și orice număr de lucruri care s-ar putea imagina în propria ta minte, 45 00:47:47,270 --> 00:47:51,200 și le pune în aplicare prin simpla glisare și fixare piese de puzzle. 46 00:47:51,200 --> 00:47:54,265 >> Și într-adevăr, vom avea capacitatea să-și exprime unele dintre aceleași idei 47 00:47:54,265 --> 00:47:56,890 că am menționat doar un moment Acum, în contextul lui Mike Smith 48 00:47:56,890 --> 00:48:00,670 și căutarea lucruri pe un telefon book-- cum ar fi funcții, doar acțiuni, 49 00:48:00,670 --> 00:48:03,070 lucruri cum ar fi buclele care fac lucruri din nou și din nou, 50 00:48:03,070 --> 00:48:05,170 variabile, care este ceva ce vom introduce, 51 00:48:05,170 --> 00:48:08,086 dar este familiar, probabil, de la algebra-- doar un fel de înlocuitor 52 00:48:08,086 --> 00:48:10,840 pentru a stoca o anumită valoare pe care s-ar putea au nevoie de expresii booleene later--, 53 00:48:10,840 --> 00:48:13,720 în cazul în care cei care nu da sau adevărat întrebări false de dinainte. 54 00:48:13,720 --> 00:48:17,117 Condițiile sunt acele furci în cadrul road-- acele ramuri ca să spunem așa. 55 00:48:17,117 --> 00:48:19,700 Și apoi există unele crescatorul caracteristici, vom vedea chiar și astăzi, 56 00:48:19,700 --> 00:48:22,850 numitele tablouri și fire și evenimente, pe care le vom revedea apoi peste 57 00:48:22,850 --> 00:48:24,460 timp în diferite limbi. 58 00:48:24,460 --> 00:48:26,790 Dar, Scratch ne permite pentru a explora toate acestea. 59 00:48:26,790 --> 00:48:30,779 Deci, aici, în Scratch, acest purpuriu bloc este ceea ce este în mod tipic o funcție 60 00:48:30,779 --> 00:48:31,570 va arăta. 61 00:48:31,570 --> 00:48:35,620 Această piesă de puzzle violet, care are unele cuvânt cum ar fi spus, care este acțiunea, 62 00:48:35,620 --> 00:48:38,490 și apoi s-ar putea avea un argument sau un parameter-- un anumit fel 63 00:48:38,490 --> 00:48:41,140 de acest gen de particularizare ceea ce face acel bloc 64 00:48:41,140 --> 00:48:45,182 astfel încât nu este pre-determinată de MIT ceea ce spune acest bloc violet. 65 00:48:45,182 --> 00:48:47,390 De fapt, veți vedea într-un moment că eu sunt în măsură să tastați 66 00:48:47,390 --> 00:48:49,931 cuvinte precum lumi salut, sau salut David, sau salut Zamayla, 67 00:48:49,931 --> 00:48:53,750 sau ce vreau eu, în argumentul în acest puzzle piece-- caseta de alb 68 00:48:53,750 --> 00:48:54,251 Acolo. 69 00:48:54,251 --> 00:48:57,166 Între timp, dacă vreau o buclă, vom a se vedea că există piese de puzzle, care 70 00:48:57,166 --> 00:48:58,640 uita-te un pic de portocale ca asta. 71 00:48:58,640 --> 00:49:01,690 Și forma lor un fel de sugerează că ceva se întâmplă din nou și din nou 72 00:49:01,690 --> 00:49:02,680 într-un ciclu. 73 00:49:02,680 --> 00:49:06,800 >> Deci, dacă am înfășurați un salut bloc mondial spun cu un bloc pentru totdeauna în Scratch, 74 00:49:06,800 --> 00:49:10,307 este doar de gând să păstreze spune salut lumea pentru totdeauna, destul de literalmente. 75 00:49:10,307 --> 00:49:12,390 În același timp, există un alt tipul de buclă în Scratch 76 00:49:12,390 --> 00:49:14,348 că vom see-- o repetare block-- în cazul în care, în cazul în care 77 00:49:14,348 --> 00:49:17,940 știe în avans cât de multe ori doriți bucla pentru a executa 78 00:49:17,940 --> 00:49:21,850 un număr finit de ori în tine fact-- poate specifica faptul că prin tastarea într-un număr 79 00:49:21,850 --> 00:49:25,380 sau chiar conectarea într-o variabilă, cum ar fi x sau y după cum vom vedea. 80 00:49:25,380 --> 00:49:27,690 >> De fapt, variabile cum ar fi i în acest caz, care 81 00:49:27,690 --> 00:49:30,109 este un nume comun pentru variabilă întreagă care 82 00:49:30,109 --> 00:49:31,900 doar stochează un number-- un număr întreg ar putea fi, 83 00:49:31,900 --> 00:49:35,470 pentru a utiliza acest bloc portocaliu aici pentru a setați o variabilă ca am la zero. 84 00:49:35,470 --> 00:49:38,900 Iată un exemplu în verde a unui expresie boolean în Scratch. 85 00:49:38,900 --> 00:49:43,700 Chiar daca acest lucru arata ca o matematica formulă, inegalitățile matematice ca aceasta 86 00:49:43,700 --> 00:49:45,320 într-adevăr sunt expresii booleene. 87 00:49:45,320 --> 00:49:46,570 Acest lucru este adevărat sau fals. 88 00:49:46,570 --> 00:49:48,300 I este mai mic de 50. 89 00:49:48,300 --> 00:49:51,815 Este fie un da sau nu un răspuns sau un răspuns adevărat sau fals. 90 00:49:51,815 --> 00:49:53,940 Si noi vom numi în general aceste expresii booleene. 91 00:49:53,940 --> 00:49:55,148 Și nu trebuie să fie de 50. 92 00:49:55,148 --> 00:49:57,970 Acesta poate fi mai mic de x y, mai mare decât y, egală cu y-- 93 00:49:57,970 --> 00:50:00,020 orice număr de alte întrebări ar putea fi întrebat. 94 00:50:00,020 --> 00:50:03,250 >> Acum, la prima vedere, acest lucru ar putea arata dintr-o dată destul de îndrăzneț aici, și este. 95 00:50:03,250 --> 00:50:06,540 Dar conceptul înțelept, este destul de familiar de mai înainte. 96 00:50:06,540 --> 00:50:09,370 Dacă x este mai mic decât y, decât, să spunem la fel de mult. 97 00:50:09,370 --> 00:50:12,230 Altfel daca x este mai mare decât y, atunci spune la fel de mult. 98 00:50:12,230 --> 00:50:14,260 Altfel spus x este egal cu y. 99 00:50:14,260 --> 00:50:17,220 Așa că avem un exemplu există oa treia scenario-- 100 00:50:17,220 --> 00:50:20,600 singura possibility-- treia x este fie mai mare, mai mic sau egal cu. 101 00:50:20,600 --> 00:50:22,420 Așa că avem o furculiță cu trei căi în drum. 102 00:50:22,420 --> 00:50:26,290 >> Și observați ce e cool Scratch aici--, s-ar părea, are doar un singur puzzle 103 00:50:26,290 --> 00:50:28,840 piesă, în acest caz, în cazul în care blocul altceva. 104 00:50:28,840 --> 00:50:32,090 Și totuși, că s-ar părea să vă implice poate au doar o furculiță cu două căi în drum. 105 00:50:32,090 --> 00:50:34,631 Puteți merge, la stânga sau la dreapta, dar ce zici de asta al treilea scenariu? 106 00:50:34,631 --> 00:50:35,760 Ce se întâmplă dacă x este egal cu y? 107 00:50:35,760 --> 00:50:36,500 Nu e mare lucru. 108 00:50:36,500 --> 00:50:39,640 Ia-o singură piesă de puzzle, a pus altul in interiorul ei 109 00:50:39,640 --> 00:50:45,759 pentru a crea echivalentul semantic de cazul în care, în cazul în care altfel, else-- și acum 110 00:50:45,759 --> 00:50:47,300 au furculita cu trei cai în drum. 111 00:50:47,300 --> 00:50:49,091 Și, după cum vom observa, piese de puzzle la zero 112 00:50:49,091 --> 00:50:51,820 poate fi întins și să crească, așa ca să se ghiftui mai multe lucruri în ele. 113 00:50:51,820 --> 00:50:54,420 Tu nu trebuie să se potrivească totul în dimensiunea sa implicită. 114 00:50:54,420 --> 00:50:56,690 >> Acest lucru este ceva ce ne vom a se vedea în curând se numește o matrice. 115 00:50:56,690 --> 00:51:00,880 E ca un list-- o cale de stocarea mai multor bucăți de informații 116 00:51:00,880 --> 00:51:02,886 într-o variabilă, nu doar un număr. 117 00:51:02,886 --> 00:51:05,760 Acestea vom vedea un reprezentant al ceva numit multi-threading. 118 00:51:05,760 --> 00:51:08,280 De fapt, toate dvs. Mac-uri și PC-uri în aceste zile 119 00:51:08,280 --> 00:51:10,810 suport multi-threading, ceea ce înseamnă că puteți literalmente 120 00:51:10,810 --> 00:51:12,390 a face mai multe lucruri la un moment dat. 121 00:51:12,390 --> 00:51:15,390 Puteți avea Microsoft Word sus în prim-plan, lucru pe unele eseu. 122 00:51:15,390 --> 00:51:17,160 S-ar putea avea un browser în deschiderea de fundal 123 00:51:17,160 --> 00:51:18,720 G-mail sau Facebook sau altele asemenea. 124 00:51:18,720 --> 00:51:22,730 Calculatorul dumneavoastră poate face mai multe lucruri astăzi, pentru că este multi-threaded, 125 00:51:22,730 --> 00:51:26,390 și programele pe care le sunt în special, sunt, de asemenea, multi-thread. 126 00:51:26,390 --> 00:51:28,970 >> Există lucruri numite evenimente ca bine în lumea Scratch, 127 00:51:28,970 --> 00:51:32,640 și apoi există o cale prea, pentru a face propriile noastre piese de puzzle personalizat în cazul în care lucrurile 128 00:51:32,640 --> 00:51:34,810 nu există de fapt, în avans. 129 00:51:34,810 --> 00:51:38,260 Așa că să motiveze acest lucru, după cum urmează. 130 00:51:38,260 --> 00:51:40,580 în urmă cu câțiva ani, când am descoperită pentru prima dată la zgârieturi, 131 00:51:40,580 --> 00:51:43,530 când am fost de fapt un student la MIT, noi 132 00:51:43,530 --> 00:51:45,640 ne-au primit sarcina de a face temele. 133 00:51:45,640 --> 00:51:47,614 Si eu implemented-- care, în retrospectivă, 134 00:51:47,614 --> 00:51:50,780 a fost o decizie foarte proastă, deoarece este cântecul cel mai enervant din lume 135 00:51:50,780 --> 00:51:53,321 pentru a asculta timp de opt ore în timp ce lucrează pe homework-- ta 136 00:51:53,321 --> 00:51:57,180 dar ceva am sunat la Oscar Time, care este, probabil, un cântec familiar. 137 00:51:57,180 --> 00:51:59,820 >> CS50s proprii Jordan Hayashi, unul dintre mai mulți membri ai personalului nostru în vârstă, 138 00:51:59,820 --> 00:52:03,920 a modernizat-o pentru 2015 și acum 2016, din moment ce înapoi în ziua, 139 00:52:03,920 --> 00:52:06,610 Am avut totul merge doar în Oscar coș de gunoi. 140 00:52:06,610 --> 00:52:09,320 Acum sprijinim reciclare și compostare. 141 00:52:09,320 --> 00:52:12,050 >> Dar pentru a picta imaginea din ceea ce putem face aici 142 00:52:12,050 --> 00:52:14,130 și de a motiva unele dintre exemplele de nivel inferior, 143 00:52:14,130 --> 00:52:16,400 am putea obține un alt voluntar să vină doar pe sus 144 00:52:16,400 --> 00:52:18,331 și să se joace pentru prima mea temă pentru acasă vreodată? 145 00:52:18,331 --> 00:52:18,830 Hai sus. 146 00:52:18,830 --> 00:52:19,250 Care e numele tău? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID MALAN: Henry, vino sus. 149 00:52:22,660 --> 00:52:24,190 Hai sus. 150 00:52:24,190 --> 00:52:27,070 Cap de nici un fel, și veți vedea într-un moment, 151 00:52:27,070 --> 00:52:29,870 Mă duc să merg mai departe și a lovit pavilion verde în mâna dreaptă sus 152 00:52:29,870 --> 00:52:31,100 colt, ceea ce înseamnă că du-te. 153 00:52:31,100 --> 00:52:33,320 Pictograma mic semn de oprire va spune stop, 154 00:52:33,320 --> 00:52:35,490 și că atunci când porniți și se va opri programul. 155 00:52:35,490 --> 00:52:36,450 Încântat de cunoştinţă. 156 00:52:36,450 --> 00:52:36,950 In regula. 157 00:52:36,950 --> 00:52:39,100 Așa că vom vedea instrucțiunile pe ecran în doar un moment. 158 00:52:39,100 --> 00:52:41,450 Si tocmai de acest joc pentru câteva seconds-- încredere în mine, 159 00:52:41,450 --> 00:52:43,670 noi nu vom dori să joace tot drumul spre end-- vă va 160 00:52:43,670 --> 00:52:45,470 obține un sentiment de ceea ce face programul. 161 00:52:45,470 --> 00:52:49,170 Și, mai mult decât să se concentreze doar pe Henry fiind bune sau rele la acest joc, se concentreze 162 00:52:49,170 --> 00:52:52,600 și cum a fost pus în aplicare de mine inițial și apoi de Jordan. 163 00:52:52,600 --> 00:52:54,640 Cu alte cuvinte, în cazul în care sunt variabilele? 164 00:52:54,640 --> 00:52:55,520 Unde sunt buclele? 165 00:52:55,520 --> 00:52:56,520 În cazul în care sunt funcțiile? 166 00:52:56,520 --> 00:53:00,700 Și vom vedea dacă nu vedem cele de sub capota. 167 00:53:00,700 --> 00:53:03,660 >> Doar faceți clic și trageți coșul de gunoi la coșul corespunzător. 168 00:53:03,660 --> 00:54:02,100 >> [MUZICĂ] 169 00:54:02,100 --> 00:54:02,600 In regula. 170 00:54:02,600 --> 00:54:03,160 Asta e foarte bine. 171 00:54:03,160 --> 00:54:04,286 De ce nu l-am opri acolo. 172 00:54:04,286 --> 00:54:04,786 Mulțumesc. 173 00:54:04,786 --> 00:54:05,830 Felicitări pentru Henry. 174 00:54:05,830 --> 00:54:07,002 Mulțumesc. 175 00:54:07,002 --> 00:54:10,690 >> [APLAUZE] 176 00:54:10,690 --> 00:54:12,450 >> Imaginați-vă că programul de depanare. 177 00:54:12,450 --> 00:54:15,880 Dacă există o problemă cu două în song--, dar acest lucru minute 178 00:54:15,880 --> 00:54:17,430 Ce se întâmplă aici cu adevărat? 179 00:54:17,430 --> 00:54:20,900 La fel de complicat cum s-ar putea încep să par pentru a obține în timp, 180 00:54:20,900 --> 00:54:22,910 într-adevăr, mai mult lucrurile au început să cadă, 181 00:54:22,910 --> 00:54:25,370 Ce este interesant despre acest tip de example-- 182 00:54:25,370 --> 00:54:27,270 și vom vedea câteva others-- este că, dacă 183 00:54:27,270 --> 00:54:30,416 uite dincolo de complexitatea sau gradul de complexitate al jocului, 184 00:54:30,416 --> 00:54:33,040 există o clădire foarte simplu blocuri care play-- toate acestea, 185 00:54:33,040 --> 00:54:35,840 daca le distila celor blocuri de construcție, sunt foarte accesibile 186 00:54:35,840 --> 00:54:37,401 și implementabil ei înșiși. 187 00:54:37,401 --> 00:54:39,150 De exemplu, este a fost ceva timp, dar eu sunt 188 00:54:39,150 --> 00:54:42,900 destul de sigur ce inițial am făcut când ceea ce face acest joc pentru prima dată 189 00:54:42,900 --> 00:54:44,787 am fost complet la fel ca tergiversat. 190 00:54:44,787 --> 00:54:47,120 Nu m-am concentra deloc la logica sau piesele puzzle-ului, 191 00:54:47,120 --> 00:54:50,810 M-am concentrat asupra grafica si constatare prima stradă și coșul de gunoi 192 00:54:50,810 --> 00:54:51,540 și toate astea. 193 00:54:51,540 --> 00:54:53,456 Dar, cei care au fost solicitate ingrediente la început. 194 00:54:53,456 --> 00:54:57,220 Și odată ce am terminat și procrastinating care stabilește cadrul general, 195 00:54:57,220 --> 00:55:00,337 Am decis, lasă-mă să fac un singur bucată de gunoi cad din cer. 196 00:55:00,337 --> 00:55:02,170 Și vom vedea Scratch sprijină lucruri numite 197 00:55:02,170 --> 00:55:06,386 de caractere sprites--, care pot au costume diferite, pe atât ei 198 00:55:06,386 --> 00:55:07,010 arata diferit. 199 00:55:07,010 --> 00:55:09,660 >> Și, așa că am pus un coș de gunoi Costumul pe o astfel de sprite. 200 00:55:09,660 --> 00:55:12,007 Si eu doar nevoie să cadă din cer. 201 00:55:12,007 --> 00:55:14,590 Și așa se pare, zgârieturi, la fel ca cele mai multe limbaje de programare, 202 00:55:14,590 --> 00:55:18,099 suportă numere aleatoare sau numere aleatoare pseudocod punct de vedere tehnic, 203 00:55:18,099 --> 00:55:20,390 astfel încât prin tragere și dropping anumite piese de puzzle, 204 00:55:20,390 --> 00:55:22,890 Am fost în stare să aibă coșul de gunoi provin de la stânga la început. 205 00:55:22,890 --> 00:55:25,580 Și apoi data viitoare a căzut, de la dreapta și apoi de la mijloc. 206 00:55:25,580 --> 00:55:28,060 Și, tot jocul a fost doar au gunoi care se încadrează din cer. 207 00:55:28,060 --> 00:55:29,770 Nu ai putea indica la ea sau să faceți clic pe ea. 208 00:55:29,770 --> 00:55:31,103 Nu ai putut deschide coș de gunoi. 209 00:55:31,103 --> 00:55:32,160 Nu a putut face nimic. 210 00:55:32,160 --> 00:55:34,450 Dar a fost un pas copil spre viziunea mea finală. 211 00:55:34,450 --> 00:55:36,720 >> Și după aceea, eu de fapt pus în aplicare un fel 212 00:55:36,720 --> 00:55:41,230 de detectare, astfel încât, dacă ați făcut clic și trageți pe bucata de gunoi 213 00:55:41,230 --> 00:55:44,350 peste coșul de gunoi, Oscar capacul s-ar deschide și închide. 214 00:55:44,350 --> 00:55:47,650 Nimic nu s-ar întâmpla la coșul de gunoi, dar cel puțin capacul s-ar deschide și închide. 215 00:55:47,650 --> 00:55:49,642 Așa că verificați apoi, pasul doi din doi. 216 00:55:49,642 --> 00:55:52,100 Și acest lucru este ceea ce se întâmplă să fie cheie în ambele problemă set de zero 217 00:55:52,100 --> 00:55:55,970 și în programarea în general, este de să ia aceste măsuri foarte deliberate pentru copii. 218 00:55:55,970 --> 00:55:59,390 Pentru că nu numai că vă permite se simt sincer realizat mult mai mult 219 00:55:59,390 --> 00:56:01,250 quickly-- că este vorba cel mai rău lucru din lume 220 00:56:01,250 --> 00:56:06,149 pentru a încerca să pună în aplicare toate Oscar Time, apoi ore mai târziu, a lovit steagul verde, 221 00:56:06,149 --> 00:56:08,440 și nimic nu funcționează cum era de așteptat pentru că în cazul în care tu faci chiar 222 00:56:08,440 --> 00:56:11,150 încep să depanare sau depanarea acestui program? 223 00:56:11,150 --> 00:56:12,470 Este pur și simplu copleșitoare. 224 00:56:12,470 --> 00:56:16,792 >> Și îmbrățișând astfel încât într-adevăr această idee de a lua din nou pași steps-- pentru copii 225 00:56:16,792 --> 00:56:19,000 și again-- construirea ceva care este, în cele din urmă, 226 00:56:19,000 --> 00:56:23,672 într-adevăr impresionant și complex, dar la început, nu este aproape la fel de mult acest lucru. 227 00:56:23,672 --> 00:56:24,630 De fapt, hai să facem acest lucru. 228 00:56:24,630 --> 00:56:28,989 Lasă-mă să merg mai departe în sine si-- răzuibile există pe web la Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 și vi se va spune ca mult din nou în problemă 230 00:56:30,780 --> 00:56:34,200 set zero, caietul de sarcini care este deja pe site-ul CS50 lui. 231 00:56:34,200 --> 00:56:35,725 >> Dar aceasta este ceea ce este în sine Scratch. 232 00:56:35,725 --> 00:56:38,210 Și există într-adevăr doar trei domenii principale. 233 00:56:38,210 --> 00:56:40,980 In partea de sus din stânga acolo este așa-numita etapă. 234 00:56:40,980 --> 00:56:41,810 Acest lucru este zero. 235 00:56:41,810 --> 00:56:43,710 Costumul implicit este o pisica. 236 00:56:43,710 --> 00:56:46,950 Și aceasta este lumea dreptunghiulară pe care le puteți move-- în sus, în jos, la stânga, 237 00:56:46,950 --> 00:56:48,130 drept și alte lucruri. 238 00:56:48,130 --> 00:56:51,839 În mijloc aici sunt categoriile noastre sau paleti noastre de piese de puzzle, 239 00:56:51,839 --> 00:56:53,630 și culori diferite înseamnă lucruri diferite. 240 00:56:53,630 --> 00:56:56,520 Și dacă te traistă în jurul valorii, veți vedea lucruri cum ar fi bucle și condiții 241 00:56:56,520 --> 00:56:58,160 și variabile și alte ingrediente. 242 00:56:58,160 --> 00:57:00,060 >> Și apoi aici este zona script-uri. 243 00:57:00,060 --> 00:57:03,020 Acest lucru este în cazul în care eu pot drag and drop aceste piese de puzzle pentru a face lucruri. 244 00:57:03,020 --> 00:57:04,690 Așa că hai să facem un astfel de lucru. 245 00:57:04,690 --> 00:57:06,630 Lasă-mă să merg mai departe si-- și eu știu unde este. 246 00:57:06,630 --> 00:57:10,110 Așa că voi să faceți clic imediat pe în cazul în care știu că lucrurile sunt gata să fie, 247 00:57:10,110 --> 00:57:13,140 dar indicând și făcând clic și în jurul poking sunt inevitabile. 248 00:57:13,140 --> 00:57:15,320 Deci, atunci când steagul verde a făcut clic, Ce vreau să fac? 249 00:57:15,320 --> 00:57:17,100 Voi face asta. 250 00:57:17,100 --> 00:57:20,699 Am de gând să trageți acest puzzle violet bucată, spun salut timp de două secunde, 251 00:57:20,699 --> 00:57:21,490 și lasă-mă mări. 252 00:57:21,490 --> 00:57:23,865 >> Si voi schimba acest lucru să fie ceea ce vreau să be-- 253 00:57:23,865 --> 00:57:26,471 Salut lume timp de două secunde, este bine. 254 00:57:26,471 --> 00:57:28,970 Acum, am de gând să faceți clic pe pavilion verde, sau dacă eu chiar vreau, 255 00:57:28,970 --> 00:57:31,820 Pot să-l pe ecran complet și apoi vin înapoi. 256 00:57:31,820 --> 00:57:34,060 Acesta va păstra doar totul într-o singură fereastră. 257 00:57:34,060 --> 00:57:36,141 Green World salut flag--. 258 00:57:36,141 --> 00:57:36,640 In regula. 259 00:57:36,640 --> 00:57:38,789 Nu tot ceea ce interesant. 260 00:57:38,789 --> 00:57:40,080 Așa că lasă-mă să merg mai departe și fac acest lucru. 261 00:57:40,080 --> 00:57:41,038 Lasă-mă să încerc alta. 262 00:57:41,038 --> 00:57:44,740 Atunci când steagul verde clicked-- lui lasa a face ceva de genul un sunet. 263 00:57:44,740 --> 00:57:46,880 Și observați că din caseta gratuit veți obține 264 00:57:46,880 --> 00:57:49,910 un sunet pisică, așa cum este sprite implicit. 265 00:57:49,910 --> 00:57:52,380 Deci, acum lasă-mă să merg mai departe și a lovit steagul verde acum. 266 00:57:52,380 --> 00:57:53,224 >> [Meowing] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Asta e adorabil. 269 00:57:55,370 --> 00:57:57,040 Sunt de programare. 270 00:57:57,040 --> 00:57:58,550 Deci, ce am făcut? 271 00:57:58,550 --> 00:58:00,430 Acesta este echivalentul unui program. 272 00:58:00,430 --> 00:58:01,600 Este, evident, foarte simplu. 273 00:58:01,600 --> 00:58:05,300 Nu a fost într-adevăr să ia tot atât de mult efort și MIT a făcut cea mai mare parte munca, 274 00:58:05,300 --> 00:58:07,890 dar am numit-o funcție. 275 00:58:07,890 --> 00:58:08,940 Am folosit o funcție. 276 00:58:08,940 --> 00:58:12,480 Am făcut o acțiune, folosind doar că unul mov piesă de puzzle. 277 00:58:12,480 --> 00:58:15,960 >> Ei bine, dacă vreau să fac trei miauna într-un rând? 278 00:58:15,960 --> 00:58:18,570 Lasă-mă să merg mai departe și fac doi și trei. 279 00:58:18,570 --> 00:58:20,910 Și observați că, atunci când mutați în apropiere o piesă de puzzle, 280 00:58:20,910 --> 00:58:22,970 apare o linie pic de culoare albă un fel de magnetic, 281 00:58:22,970 --> 00:58:25,190 și se va fixa împreună când eliberați. 282 00:58:25,190 --> 00:58:26,600 Hai să vedem ce se întâmplă aici. 283 00:58:26,600 --> 00:58:27,920 >> [Meowing] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> E o eroare. 286 00:58:34,510 --> 00:58:35,650 Am auzit doar un singur miau. 287 00:58:35,650 --> 00:58:37,440 De ce s-ar putea să fie asta? 288 00:58:37,440 --> 00:58:39,001 Da? 289 00:58:39,001 --> 00:58:39,500 Da. 290 00:58:39,500 --> 00:58:41,650 Noi nu-l aud într-adevăr, dar asta e bună intuiție. 291 00:58:41,650 --> 00:58:43,400 Toți se joacă în același timp. 292 00:58:43,400 --> 00:58:44,000 De ce? 293 00:58:44,000 --> 00:58:46,587 Ei bine, computerul este doar merge să facă ceea ce îi spun să facă. 294 00:58:46,587 --> 00:58:48,670 Așa că, dacă spui tu, un sunet de redare, reda sunet, reda un sunet, 295 00:58:48,670 --> 00:58:52,887 dar nu-ți spun să joace până la ai terminat, juca până când ai terminat, 296 00:58:52,887 --> 00:58:54,970 aceasta va sufla prin programul foarte repede 297 00:58:54,970 --> 00:58:56,830 și de a face numai ceea ce îi spun să facă. 298 00:58:56,830 --> 00:58:59,040 >> Așa că am nevoie de fapt să se stabilească acest lucru în câteva moduri. 299 00:58:59,040 --> 00:59:00,623 Aș putea face doar acest lucru, a scăpa de asta. 300 00:59:00,623 --> 00:59:04,180 Lasă-mă să încercați acest alt puzzle piece-- juca miau sunet până la făcut, 301 00:59:04,180 --> 00:59:07,072 și apoi trageți-trei acestea și faceți clic pe Redare. 302 00:59:07,072 --> 00:59:09,430 >> [Meowing] 303 00:59:09,430 --> 00:59:13,350 >> Nu e cu adevărat very-- mulțumesc Tu-- foarte natural. 304 00:59:13,350 --> 00:59:16,590 Deci, de ce nu lasa Eu-- mă du-te pentru a controla aici. 305 00:59:16,590 --> 00:59:17,090 Frumos. 306 00:59:17,090 --> 00:59:22,230 Așteptați o secundă, iar acum lasă-mă să mă întorc la sunete și sunet de redare până la făcut, 307 00:59:22,230 --> 00:59:24,620 și apoi lasă-mă să aștepte o secundă. 308 00:59:24,620 --> 00:59:28,692 Și apoi lasă-mă să merg și să obțină unul mai mult sunet, și aici vom merge. 309 00:59:28,692 --> 00:59:31,350 >> [Meowing] 310 00:59:31,350 --> 00:59:35,930 >> Un pic mai natural, dar acest lucru nu este foarte eficient. 311 00:59:35,930 --> 00:59:39,830 La fel ca am fost obtinerea plictisit, toate să fie l pe scurt, făcând clic și înapoi 312 00:59:39,830 --> 00:59:42,724 și duplicarea într-adevăr work-- mea destul de mult copierea și lipirea. 313 00:59:42,724 --> 00:59:44,640 Într-adevăr, dacă am control a făcut clic dreapta sau a dat clic, 314 00:59:44,640 --> 00:59:46,500 Aș putea fi pur și simplu copiate și lipite. 315 00:59:46,500 --> 00:59:49,870 Ce ar fi mai bine construi de a utiliza? 316 00:59:49,870 --> 00:59:51,090 Ce idee de mai înainte? 317 00:59:51,090 --> 00:59:51,990 >> Da, deci o buclă. 318 00:59:51,990 --> 00:59:54,580 Și, de fapt, dacă ne-am înțepat în jurul valorii de, am putea găsi exact asta. 319 00:59:54,580 --> 00:59:57,730 Lasă-mă să merg la evenimente sau mai degrabă de control. 320 00:59:57,730 --> 00:59:59,650 Așa că repeat-- eu nu fac doresc ca acesta să fie de 10 ori. 321 00:59:59,650 --> 01:00:01,370 Asta se întâmplă pentru a obține enervant rapid. 322 01:00:01,370 --> 01:00:03,380 Dar, voi repeta de trei ori. 323 01:00:03,380 --> 01:00:06,355 Lasă-mă să mă întorc la sunet și reda sunetul până când se face. 324 01:00:06,355 --> 01:00:08,480 Lasă-mă să mă întorc la Control și doar așteptați o secundă. 325 01:00:08,480 --> 01:00:10,271 Și observați, s-ar putea cred că nu se potrivește, 326 01:00:10,271 --> 01:00:13,520 dar, din nou, dacă magnetic l-ați lăsa anticipate în loc, aceasta va crește pentru a umple. 327 01:00:13,520 --> 01:00:14,971 Ce-o joacă acum? 328 01:00:14,971 --> 01:00:18,500 >> [Meowing] 329 01:00:18,500 --> 01:00:19,000 O.K. 330 01:00:19,000 --> 01:00:19,660 Frumos. 331 01:00:19,660 --> 01:00:22,540 Și acest lucru este ceea ce s-ar fi numit un program care este, de asemenea, corect. 332 01:00:22,540 --> 01:00:27,590 Ea de trei ori în mod echitabil meowed în mod natural, dar este mai bine proiectat. 333 01:00:27,590 --> 01:00:29,580 Sunt folosind mai puțin de concediere. 334 01:00:29,580 --> 01:00:30,970 N-am copia și lipi ceva. 335 01:00:30,970 --> 01:00:32,470 Am folosit doar o idee mai bună. 336 01:00:32,470 --> 01:00:35,340 >> Acum, acest lucru nu este încă tot interesant cu Scratch nu face 337 01:00:35,340 --> 01:00:35,930 orice. 338 01:00:35,930 --> 01:00:37,388 Așa că hai să facem altceva în schimb. 339 01:00:37,388 --> 01:00:38,670 Hai să facem ceva pentru totdeauna. 340 01:00:38,670 --> 01:00:39,420 Si tu ce știi? 341 01:00:39,420 --> 01:00:40,470 Propunerea pare interesant. 342 01:00:40,470 --> 01:00:45,760 Hai să-l mute 10 pași și a lovit joacă acum. 343 01:00:45,760 --> 01:00:46,570 >> O.K. 344 01:00:46,570 --> 01:00:49,300 Ei bine, putem trage un fel de l înapoi, și el este încă 345 01:00:49,300 --> 01:00:51,250 rulează pentru că el face asta pentru totdeauna. 346 01:00:51,250 --> 01:00:53,150 Deci bucla face ceea ce spune să facă, 347 01:00:53,150 --> 01:00:54,650 dar acest lucru nu este tot ceea ce interesant. 348 01:00:54,650 --> 01:00:55,310 Sa o facem. 349 01:00:55,310 --> 01:00:59,870 Permiteți-mi să adaug un bloc de control, și de a folosi un singur dintre aceste condiții pentru prima dată. 350 01:00:59,870 --> 01:01:03,119 >> Deci, se va deplasa 10 steps-- 10 puncte, 10 pixeli pe screen-- 351 01:01:03,119 --> 01:01:04,660 atunci va pune această întrebare. 352 01:01:04,660 --> 01:01:09,340 Dacă ceva este adevărat, atunci facem ceva în interiorul acestui bloc. 353 01:01:09,340 --> 01:01:13,060 Deci, se pare că are un senzor de ansamblu buchet de expressions-- boolean 354 01:01:13,060 --> 01:01:16,580 întrebări ale □ da □ nu sau adevărat fals form-- lasă-mă să fac asta. 355 01:01:16,580 --> 01:01:19,260 >> În cazul în care touching-- și apoi există acest mic drop-jos meniu. 356 01:01:19,260 --> 01:01:20,410 Pot să-l parameterize. 357 01:01:20,410 --> 01:01:23,010 În cazul în care atinge edge-- lui lasa face ceva de genul asta. 358 01:01:23,010 --> 01:01:27,310 Așa că, dacă atinge edge-- lasă-mă să mă întorc la mișcare. 359 01:01:27,310 --> 01:01:32,281 Și de ce nu ne-am rândul său, în jurul valorii de 180 de grade? 360 01:01:32,281 --> 01:01:32,780 In regula. 361 01:01:32,780 --> 01:01:35,070 Așa că pentru totdeauna, mutați 10 pași. 362 01:01:35,070 --> 01:01:37,670 Dacă sunteți de a atinge margine, rândul său, la 180 de grade. 363 01:01:37,670 --> 01:01:39,720 Și asta nu e sfârșitul programului pentru că ești într-un bloc pentru totdeauna, 364 01:01:39,720 --> 01:01:42,053 așa că va merge din nou și din nou și din nou și din nou. 365 01:01:42,053 --> 01:01:43,980 Așa că hai să vedem ce se întâmplă. 366 01:01:43,980 --> 01:01:44,785 O.K. 367 01:01:44,785 --> 01:01:48,270 Un pic de trăsură pentru două persoane, dar un fel de rece. 368 01:01:48,270 --> 01:01:51,710 >> Și noi putem adăuga la unele lucruri stupide această care nu sunt tot ceea ce intelectual 369 01:01:51,710 --> 01:01:52,270 interesant. 370 01:01:52,270 --> 01:01:57,210 Dar, dacă am lovit acest mic microfon button-- aoleu. 371 01:01:57,210 --> 01:01:58,480 Lasă-mă să curețe asta. 372 01:01:58,480 --> 01:02:01,540 Lasă-mă să consolideze acest lucru ca ei s-ar spune la televizor. 373 01:02:01,540 --> 01:02:05,400 Curăță, Salvare, acum du-te până la script-uri. 374 01:02:05,400 --> 01:02:07,500 >> Și acum, lasă-mă să merg să sune. 375 01:02:07,500 --> 01:02:09,002 Permiteți-mi să dau un nume. 376 01:02:09,002 --> 01:02:12,440 O să sun acest aoleu. 377 01:02:12,440 --> 01:02:13,840 Iar acum joaca aoleu sunet. 378 01:02:13,840 --> 01:02:16,520 Remarcati apare în mic meniu vertical. 379 01:02:16,520 --> 01:02:17,612 Sa vedem. 380 01:02:17,612 --> 01:02:20,444 >> [Ouch] 381 01:02:20,444 --> 01:02:24,377 >> [RAZAND] 382 01:02:24,377 --> 01:02:25,835 Dar putem schimba t lui pe zbor. 383 01:02:25,835 --> 01:02:28,106 Putem fi de două ori mai enervant. 384 01:02:28,106 --> 01:02:31,760 >> [Ouch] 385 01:02:31,760 --> 01:02:35,332 >> Sau, dacă o vom face ca și 1.000 de pași la o time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> O.K. 388 01:02:40,670 --> 01:02:42,295 Așa că vom părăsi acel unul singur. 389 01:02:42,295 --> 01:02:45,290 Deci, din nou, construirea I blocks-- a început cu ceva foarte simplu, 390 01:02:45,290 --> 01:02:47,930 și apoi am adăugat o caracteristică, a adăugat o caracteristică, a adăugat o funcție. 391 01:02:47,930 --> 01:02:50,721 Si eu nu mai trebuie să vă faceți griji cu privire la modul în care prima dintre aceste caracteristici 392 01:02:50,721 --> 01:02:53,690 a fost pus în aplicare după cum am continua să strat lucruri pe partea de sus. 393 01:02:53,690 --> 01:02:55,430 Așa că, de fapt, lasă-mă să fac încă o aici. 394 01:02:55,430 --> 01:03:00,580 Lasă-mă să merg mai departe și să deschidă un fișier care Am adus în avans, numit de oaie. 395 01:03:00,580 --> 01:03:03,970 >> Deci are un ușor diferit caracter care arata ca acest lucru. 396 01:03:03,970 --> 01:03:07,370 Și lasă-mă să văd dacă nu pot face ceva folosind un contor 397 01:03:07,370 --> 01:03:09,310 în acest case-- o variabilă așa-numitele. 398 01:03:09,310 --> 01:03:15,540 Mă duc să merg mai departe și sub Events-- lasă-mă să-un steag verde a făcut clic. 399 01:03:15,540 --> 01:03:19,030 Atunci lasă-mă să merg la date, pe care știu de la doar joc în jurul valorii de mai înainte, 400 01:03:19,030 --> 01:03:20,214 este în cazul în care variabilele sunt. 401 01:03:20,214 --> 01:03:21,880 Si voi merge mai departe și trageți acest lucru. 402 01:03:21,880 --> 01:03:25,144 >> Deci, o variabilă numită contor și Am de gând să-l inițializa la zero. 403 01:03:25,144 --> 01:03:27,560 Pot să-l numesc anything-- x sau y sau z--, dar în programare, 404 01:03:27,560 --> 01:03:30,410 de asteptare ceva într-un semantically mod util, cum ar fi contra, 405 01:03:30,410 --> 01:03:34,540 care descrie ceea ce este, este un mult mai ușor de citit codul mai târziu. 406 01:03:34,540 --> 01:03:37,460 Lasă-mă să merg mai departe și a obține un bloc pentru totdeauna aici. 407 01:03:37,460 --> 01:03:41,289 Și lasă-mă să merg la aspectul pagina și de a face un bloc Say. 408 01:03:41,289 --> 01:03:44,330 Dar ceea ce e cool despre variabile este I nu trebuie să tastați doar în ceva 409 01:03:44,330 --> 01:03:47,850 cum ar fi Bună ziua lume, pe care le-am deja făcut, pot merge în schimb de date 410 01:03:47,850 --> 01:03:50,690 și trageți variabila mea, și chiar Nu deși forma nu destul 411 01:03:50,690 --> 01:03:53,000 arata ca aceasta ar trebui să se potrivească, va crește pentru a umple. 412 01:03:53,000 --> 01:03:58,396 Și eu voi spune doar contorul pentru un singur spoiler-- second-- el va conta. 413 01:03:58,396 --> 01:04:00,380 O să-l spunem pentru o secundă. 414 01:04:00,380 --> 01:04:02,840 Apoi am de gând să merg și au să-l aștepte pentru o secundă, 415 01:04:02,840 --> 01:04:04,650 așa că nu contează prea repede. 416 01:04:04,650 --> 01:04:08,430 Și apoi în cele din urmă, schimbați contra prin Unu cu alte cuvinte, 417 01:04:08,430 --> 01:04:13,520 incrementa contorul de către unul valoare suplimentară și de a face acest lucru pentru totdeauna. 418 01:04:13,520 --> 01:04:16,129 >> Asa ca oile prea, ca un programator, contează de la 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Și, dacă așteptăm suficient de mult timp, el va face acest lucru pentru totdeauna. 421 01:04:23,740 --> 01:04:27,740 Dar asta nu e chiar adevărat, pentru că De fapt, așa cum vom descoperi în prima săptămână, 422 01:04:27,740 --> 01:04:31,871 numere întregi și mai multe calculatoare în general, au doar un punct de vedere tehnic finite-- bine, 423 01:04:31,871 --> 01:04:33,829 mai degrabă calculatoare, atunci când ele reprezintă numere întregi, 424 01:04:33,829 --> 01:04:35,670 au doar un număr finit de biți. 425 01:04:35,670 --> 01:04:37,860 Acele becuri acolo poate conta doar atât de mare 426 01:04:37,860 --> 01:04:39,239 înainte de a fi de becuri. 427 01:04:39,239 --> 01:04:41,590 Și un calculator de asemenea, are doar memorie atât de mult, 428 01:04:41,590 --> 01:04:44,640 are atât de multe tranzistori, astfel că poate conta doar atât de mare. 429 01:04:44,640 --> 01:04:47,409 >> Deci, se dovedește că oile, Cred că, pot conta la 2 miliarde 430 01:04:47,409 --> 01:04:48,409 sau ceva destul de mare. 431 01:04:48,409 --> 01:04:50,325 Așa că noi nu vom așteptați pentru ca acest lucru să se întâmple. 432 01:04:50,325 --> 01:04:54,850 Dar, în cele din urmă unele bug se va întâmpla care poate avea o lume foarte reală 433 01:04:54,850 --> 01:04:55,970 ramificații. 434 01:04:55,970 --> 01:04:58,861 Dar, dincolo de oi, care doar introduce o variabilă. 435 01:04:58,861 --> 01:05:01,110 Să mergem mai departe și să se deschidă ceva ce am făcut în avans 436 01:05:01,110 --> 01:05:07,430 numit aici Pet Cat-- Pet Cat aici. 437 01:05:07,430 --> 01:05:10,420 Și observați aici este câteva blocuri, dar atunci când steagul verde 438 01:05:10,420 --> 01:05:12,474 a făcut clic, fac pentru totdeauna următoarele. 439 01:05:12,474 --> 01:05:15,265 Dacă sunteți de a atinge mouse-ul pointer--, astfel încât cursorul de pe ecran, 440 01:05:15,265 --> 01:05:18,529 play arrow-- miau sunet și apoi așteptați două secunde. 441 01:05:18,529 --> 01:05:19,570 Și chiar face asta pentru totdeauna. 442 01:05:19,570 --> 01:05:22,619 Doar așteaptă în mod constant pentru a vedea dacă pointer-- 443 01:05:22,619 --> 01:05:24,710 în cazul în care pisica atinge indicatorul. 444 01:05:24,710 --> 01:05:26,060 >> Așa că am lovit joc. 445 01:05:26,060 --> 01:05:26,920 Nu se întâmplă nimic. 446 01:05:26,920 --> 01:05:28,980 Dar, așa cum am muta cursorul peste pisica, 447 01:05:28,980 --> 01:05:31,960 >> [Meowing] 448 01:05:31,960 --> 01:05:34,750 >> Și, dacă am muta departe, nu petting pisica mai. 449 01:05:34,750 --> 01:05:38,090 Așa că unele logica condiționată imbricate în interiorul unei bucle. 450 01:05:38,090 --> 01:05:43,070 Ce zici de acest exemplu, în mod deliberat numita Nu Pet Cat? 451 01:05:43,070 --> 01:05:45,253 Ce-i asta o să fac? 452 01:05:45,253 --> 01:05:47,880 >> [Meowing] 453 01:05:47,880 --> 01:05:50,215 >> De ce ar trebui să nu animalele de companie pisica? 454 01:05:50,215 --> 01:05:59,440 >> [Meowing] 455 01:05:59,440 --> 01:06:00,699 >> O.K. 456 01:06:00,699 --> 01:06:03,880 Deci, acesta este un exemplu de dacă altcineva. 457 01:06:03,880 --> 01:06:06,482 Este un punct de decizie și pentru că stă în bucla, 458 01:06:06,482 --> 01:06:07,690 ambele sunt obtinerea verificate. 459 01:06:07,690 --> 01:06:08,280 E adevărat? 460 01:06:08,280 --> 01:06:08,760 E adevărat? 461 01:06:08,760 --> 01:06:09,250 E adevărat? 462 01:06:09,250 --> 01:06:09,791 E adevărat? 463 01:06:09,791 --> 01:06:11,880 Și în cele din urmă, unul dintre cei care urmează să se aplice 464 01:06:11,880 --> 01:06:16,480 și astfel încât să fie auziți miau sau urletul leului în acest caz. 465 01:06:16,480 --> 01:06:21,400 >> Ei bine, hai să facem unul puțin mai fantezie pe care am făcut în avans too-- fire. 466 01:06:21,400 --> 01:06:25,210 Deci, un fir este doar unul lucru pe care un calculator poate face. 467 01:06:25,210 --> 01:06:29,349 Deci, un program multi-thread este un program de care pot face mai multe lucruri în același timp. 468 01:06:29,349 --> 01:06:31,140 Și toate aceste exemple până în prezent au avut 469 01:06:31,140 --> 01:06:35,980 doar un singur script, astfel încât să speak-- un program de genul asta aici. 470 01:06:35,980 --> 01:06:38,810 Dar, observați acest program are două sprite, două caractere. 471 01:06:38,810 --> 01:06:40,020 Una dintre ele este o pasăre. 472 01:06:40,020 --> 01:06:40,870 Una dintre ele este o pisică. 473 01:06:40,870 --> 01:06:45,080 >> Și observați când fac clic pe acestea în jos stânga, fiecare dintre ele au propriile lor scripturi 474 01:06:45,080 --> 01:06:47,120 sau programe asociate acestora. 475 01:06:47,120 --> 01:06:49,420 Și ambele celor programe, aviz, începe 476 01:06:49,420 --> 01:06:52,600 cu clicked-- pavilion verde atunci când să ne uităm la cat-- 477 01:06:52,600 --> 01:06:54,030 când steagul verde a făcut clic. 478 01:06:54,030 --> 01:06:58,220 Și așa, într-adevăr, atunci când am lovit juca acum, două lucruri se va întâmpla la o dată. 479 01:06:58,220 --> 01:07:01,750 Pisica și pasărea sunt ambele O să funcționeze simultan 480 01:07:01,750 --> 01:07:03,815 pentru a crea acest efect. 481 01:07:03,815 --> 01:07:05,440 Si s-ar putea imagina ce se întâmplă. 482 01:07:05,440 --> 01:07:08,340 E o buclă și pasărea iar pisica sunt într-o buclă. 483 01:07:08,340 --> 01:07:11,270 Pasărea este la fel ca și viguros Am fost înainte când am spus aoleu. 484 01:07:11,270 --> 01:07:13,040 Dar pisica are în mod clar un avantaj. 485 01:07:13,040 --> 01:07:16,040 Există un alt bloc de detecție care arată pisica în mod deliberat 486 01:07:16,040 --> 01:07:19,836 la pasărea în acest caz aici. 487 01:07:19,836 --> 01:07:22,960 Așa că am putea să tachineze în afară, prin căutarea prin aceste blocuri, ceea ce se întâmplă. 488 01:07:22,960 --> 01:07:25,460 Dar ingredientul cheie aici este una. 489 01:07:25,460 --> 01:07:28,520 Pasărea, astfel încât acest joc nu este complet boring-- sau acest animation-- 490 01:07:28,520 --> 01:07:30,060 pornește de la o direcție aleatoare. 491 01:07:30,060 --> 01:07:32,890 Și computerul este cules un număr cuprins între 90 și 180 492 01:07:32,890 --> 01:07:36,110 în esență, astfel încât este un ușor diferite de animație de fiecare dată. 493 01:07:36,110 --> 01:07:39,480 >> Și apoi observați aici, în cazul în care pisica atinge pasărea, atunci 494 01:07:39,480 --> 01:07:42,030 juca leul patru sound-- hohote. 495 01:07:42,030 --> 01:07:46,330 Dar, între timp în păsării paleta, avem acest lucru. 496 01:07:46,330 --> 01:07:49,229 Pentru totdeauna, în cazul în care nu atinge pisica, doar păstrați în mișcare trei pași. 497 01:07:49,229 --> 01:07:50,770 Și apoi aici este o altă piesă de puzzle. 498 01:07:50,770 --> 01:07:52,030 Dacă vă aflați pe margine, saritura. 499 01:07:52,030 --> 01:07:54,840 Așa că pasărea este doar un fel de minding propria afacere, 500 01:07:54,840 --> 01:07:57,330 doar care zboară în jurul și viguros, și este într-adevăr 501 01:07:57,330 --> 01:08:01,780 pisica care a avut logica condiționată pentru a determina dacă ar fi prins pasărea. 502 01:08:01,780 --> 01:08:02,280 In regula. 503 01:08:02,280 --> 01:08:08,800 Așa că hai să facem încă o aici, aceasta fiind numită Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 Si asta aici doar ca nu acest lucru într-o buclă pentru totdeauna. 505 01:08:15,100 --> 01:08:18,925 Dar, notice-- cum ne oprim acest program foarte enervant? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 A lovit bara de spațiu. 508 01:08:22,640 --> 01:08:27,990 Pentru că dacă eu fac asta, program-- mâna stângă 509 01:08:27,990 --> 01:08:31,550 observați că este în mod constant listening-- este presa spațiu-cheie. 510 01:08:31,550 --> 01:08:34,090 Dacă bara de spațiu presat, și dacă da, ce face? 511 01:08:34,090 --> 01:08:35,980 Face o tehnica foarte frecvente. 512 01:08:35,980 --> 01:08:38,590 Aceasta stabilește o variabilă egală cu o anumită valoare. 513 01:08:38,590 --> 01:08:39,741 Dar este acea valoare comutã. 514 01:08:39,741 --> 01:08:41,490 [? Așa că aspectul?] bazat pe I shape-- 515 01:08:41,490 --> 01:08:43,160 au o variabilă pe care am a scris în prealabil numit 516 01:08:43,160 --> 01:08:44,770 Suprimată, care spune pur și simplu da sau nu. 517 01:08:44,770 --> 01:08:45,880 Este sunetul dezactivat sau nu? 518 01:08:45,880 --> 01:08:46,990 Adevărat sau fals? 519 01:08:46,990 --> 01:08:51,580 Și observați, eu spun astea-- dacă mut este zero, apoi se schimba la unul, 520 01:08:51,580 --> 01:08:53,840 altfel setați mut-l la zero. 521 01:08:53,840 --> 01:08:55,540 Deci Flip doar valoarea de la zero la unu. 522 01:08:55,540 --> 01:08:58,320 Aș putea avea done-- schimba la două la trei si de trei din două 523 01:08:58,320 --> 01:09:00,162 sau patru la aproximativ cinci și patru la șase. 524 01:09:00,162 --> 01:09:01,870 Dar nu contează ce numere pe care le folosesc, 525 01:09:01,870 --> 01:09:04,090 atâta timp cât am păstra schimbarea este opusul. 526 01:09:04,090 --> 01:09:07,290 >> Si cel mai orice programator ar fi pur și simplu alege zero și fals și adevărat Unu, 527 01:09:07,290 --> 01:09:09,510 off și on-- pentru a reprezenta acest lucru. 528 01:09:09,510 --> 01:09:10,930 Și acest lucru este încă în desfășurare. 529 01:09:10,930 --> 01:09:12,190 Dacă aș fi lovit din nou bara de spațiu 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SUNĂ] 531 01:09:13,590 --> 01:09:15,440 >> Programul este încă în desfășurare. 532 01:09:15,440 --> 01:09:18,400 Pentru că există acest alt scenariu care spune, nu pentru totdeauna următoarele. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Dacă variabila este egal cu sunetul dezactivat zero-- așa că, dacă nu sunteți dezactivat sunetul 535 01:09:24,770 --> 01:09:29,609 este logic-- dacă este fals sau nu, apoi reda sunetul, 536 01:09:29,609 --> 01:09:30,650 pentru că nu ești dezactivat. 537 01:09:30,650 --> 01:09:33,358 Ar trebui să joace sunetul și apoi cred că hi hi hi timp de două secunde 538 01:09:33,358 --> 01:09:35,790 și apoi așteptați, și fă-o din nou și din nou și din nou. 539 01:09:35,790 --> 01:09:40,760 >> Și, în acest fel avem o cale pentru oameni sa-- pentru programe pentru a interacționa. 540 01:09:40,760 --> 01:09:43,120 Și ei nu trebuie să să fie la fel de datat ca și altele. 541 01:09:43,120 --> 01:09:46,280 De fapt, poking around-- nici un joc de cuvinte intended-- 542 01:09:46,280 --> 01:09:49,250 cineva a petrecut o mare cantitate de timp pe internet de punere în aplicare 543 01:09:49,250 --> 01:09:51,580 PokemonGo în Scratch. 544 01:09:51,580 --> 01:09:55,440 Este chiar și tu geolocates în Cambridge sau Allston aici. 545 01:09:55,440 --> 01:10:03,120 Așa că, dacă doriți să vedeți prea ceea ce oamenii se poate face este astea-- meniu foarte elegant. 546 01:10:03,120 --> 01:10:04,780 Faceți clic pe aici. 547 01:10:04,780 --> 01:10:07,430 >> Acest lucru este cu mine tastele săgeată mele acum. 548 01:10:07,430 --> 01:10:09,446 Mă duc să merg după asta. 549 01:10:09,446 --> 01:10:09,946 Clic. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Și acum faceți clic pe PokeBall. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Vreau să spun, cred că ești ar trebui să faceți clic pe PokeBall. 554 01:10:20,260 --> 01:10:20,760 In regula. 555 01:10:20,760 --> 01:10:22,680 Așa că am făcut asta. 556 01:10:22,680 --> 01:10:23,950 Pot să merg aici. 557 01:10:23,950 --> 01:10:27,790 Iar această persoană a implementat unele mai multe PokeBalls peste aici-- trei PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Vom posta un link către această online, astfel încât să puteți juca. 559 01:10:29,950 --> 01:10:32,364 Dar observați există doar unele blocuri de construcție de bază. 560 01:10:32,364 --> 01:10:33,780 Se pare mult mai arătos și este. 561 01:10:33,780 --> 01:10:35,905 Acest lucru este impresionant și mai mult decât ne-ar tipic 562 01:10:35,905 --> 01:10:37,740 se așteaptă, cu siguranță pentru problema setată la zero. 563 01:10:37,740 --> 01:10:40,809 Nu am nici o idee despre cât de mult timp această persoană a petrecut on-line. 564 01:10:40,809 --> 01:10:41,850 Dar totul e doar o buclă. 565 01:10:41,850 --> 01:10:43,180 E un joc de sunet. 566 01:10:43,180 --> 01:10:44,850 E un fel de buclă pentru a asculta dacă eu sunt 567 01:10:44,850 --> 01:10:47,558 lovind pe săgeata în sus sau în jos săgeată sau la stânga și la dreapta, 568 01:10:47,558 --> 01:10:49,834 și apoi, dacă este așa, se mișcă acesta un numar de pixeli. 569 01:10:49,834 --> 01:10:51,750 Și apoi, dacă fac clic pe un alt spiriduș, există 570 01:10:51,750 --> 01:10:53,390 un fel de condiție, dacă există. 571 01:10:53,390 --> 01:10:54,806 Da, acest lucru devine prea intens. 572 01:10:54,806 --> 01:10:56,100 Mergem să se oprească. 573 01:10:56,100 --> 01:10:57,750 Este toate aceste blocuri de construcție de bază. 574 01:10:57,750 --> 01:11:01,530 Nu există alte ingrediente alte decât cele pe care le-am uitat la deja. 575 01:11:01,530 --> 01:11:04,670 >> Și totuși, aici, lasă-mă să fac un singur set final de exemple 576 01:11:04,670 --> 01:11:06,960 care pictează o imagine prea din ceea ce se poate face aici. 577 01:11:06,960 --> 01:11:10,481 Iata un program foarte simplu doar face astea-- tuse, tuse, tuse. 578 01:11:10,481 --> 01:11:12,480 Și se bazează doar pe ceea ce ne-am uitat la până acum, 579 01:11:12,480 --> 01:11:14,570 în cazul în care este evident oportunitate de îmbunătățire. 580 01:11:14,570 --> 01:11:15,570 Acest program este corect. 581 01:11:15,570 --> 01:11:17,980 De trei ori ea tușește, care este ceea ce am intenționat. 582 01:11:17,980 --> 01:11:19,650 Dar este prost pus în aplicare. 583 01:11:19,650 --> 01:11:20,600 Este prost proiectat. 584 01:11:20,600 --> 01:11:22,000 De ce? 585 01:11:22,000 --> 01:11:22,500 Da. 586 01:11:22,500 --> 01:11:23,230 Nu este o buclă. 587 01:11:23,230 --> 01:11:24,610 Și nu e atât de mult că nu este o buclă, 588 01:11:24,610 --> 01:11:26,400 este că există o mulțime de concediere. 589 01:11:26,400 --> 01:11:28,830 Acolo este copiat și cod lipite, ca să spunem așa. 590 01:11:28,830 --> 01:11:31,830 Și soluția probabil este într-adevăr, o buclă. 591 01:11:31,830 --> 01:11:34,350 Așa că lasă-mă să merg mai departe și îmbunătățească acest lucru. 592 01:11:34,350 --> 01:11:36,250 Si voi trage peste astea aici. 593 01:11:36,250 --> 01:11:39,986 Lasă-mă să merg mai departe și a obține o repetare bloc, schimba acest lucru la trei. 594 01:11:39,986 --> 01:11:41,860 Mă duc să arunc unele dintre aceste blocuri. 595 01:11:41,860 --> 01:11:43,150 >> Și veți observa că e destul de intuitiv. 596 01:11:43,150 --> 01:11:45,691 Glisați și drop și lucruri apar și dispar în cele din urmă. 597 01:11:45,691 --> 01:11:49,170 Și eu pot trage doar asta aici, și acum am o versiune mai curată încă. 598 01:11:49,170 --> 01:11:50,730 Dar știi ce? 599 01:11:50,730 --> 01:11:52,940 Nu există această oportunitate acum pentru abstraction-- 600 01:11:52,940 --> 01:11:56,350 pentru a începe să definească noul vocabular MIT nu a anticipat. 601 01:11:56,350 --> 01:11:59,110 Acolo așteptăm și repetați și pentru totdeauna și în cazul în care, 602 01:11:59,110 --> 01:12:02,590 dar ce se întâmplă dacă doresc să introducă tuse cuvânt ca un bloc? 603 01:12:02,590 --> 01:12:06,230 Ce se întâmplă dacă vreau o piesă de puzzle al cărui scop în viață este să tuse? 604 01:12:06,230 --> 01:12:10,720 >> Ei bine, să ne uităm la această versiune aici, pe care am făcut după cum urmează. 605 01:12:10,720 --> 01:12:13,579 Magic, am creat acest puzzle piesă aici, 606 01:12:13,579 --> 01:12:14,870 care Scratch vă permite să faceți. 607 01:12:14,870 --> 01:12:16,787 Și, într-adevăr, C și Python și JavaScript sunt 608 01:12:16,787 --> 01:12:18,370 va permite să faci acest lucru, de asemenea. 609 01:12:18,370 --> 01:12:21,830 Aveți posibilitatea să creați personalizat piese pe care le numiti ceea ce vrei. 610 01:12:21,830 --> 01:12:24,890 In acest caz, tusea se simte ca o definiție rezonabilă. 611 01:12:24,890 --> 01:12:27,880 Și apoi cu aceste piese în jos aici se poate defini ce înseamnă. 612 01:12:27,880 --> 01:12:30,290 >> Am târât și a scăzut de la această paletă aici-- mai mult 613 01:12:30,290 --> 01:12:33,500 blocks-- acest mare violet bloc, în cazul în care am scris în cazul tusei 614 01:12:33,500 --> 01:12:35,290 ca numele noii mele piese de puzzle. 615 01:12:35,290 --> 01:12:39,920 Și apoi eu spun orice moment un utilizator numește această nouă piesă de puzzle tuse, 616 01:12:39,920 --> 01:12:41,770 face un cuvânt de spus și o așteptați. 617 01:12:41,770 --> 01:12:46,160 Și așa până aici, în blocul meu se repetă, Pot să tuse doar de trei ori. 618 01:12:46,160 --> 01:12:49,972 >> Și aș argumenta, în special dacă acum vă ascundeți acest detaliu. 619 01:12:49,972 --> 01:12:51,430 Cui îi pasă cum este pus în aplicare tuse? 620 01:12:51,430 --> 01:12:54,390 Tot ce-mi pasă ca programator pe care le pot tuse. 621 01:12:54,390 --> 01:12:56,280 Nu-mi pasă cum spun este pus în aplicare. 622 01:12:56,280 --> 01:12:58,620 Am grijă ca pisica poate spune ceva. 623 01:12:58,620 --> 01:13:02,720 Nu pot abstract departe că detaliile și se concentreze doar pe ceea ce este pe ecran aici. 624 01:13:02,720 --> 01:13:04,400 Dar eu pot lua acest lucru cu un pas mai departe. 625 01:13:04,400 --> 01:13:08,070 >> Observați că aici, am implementat bucla de trei ori. 626 01:13:08,070 --> 01:13:11,560 Dar dacă în loc să iau această versiune? 627 01:13:11,560 --> 01:13:14,640 Și dacă în schimb în această versiune aici, 628 01:13:14,640 --> 01:13:18,730 Eu doar schimba piesa de puzzle meu pentru a lua un argument și de intrare în sine? 629 01:13:18,730 --> 01:13:21,100 Iar acea intrare poate fi un număr similar de trei. 630 01:13:21,100 --> 01:13:24,580 Deci acum, dacă eu scriu un program de și vreau pisica la tuse, 631 01:13:24,580 --> 01:13:28,270 Pot să spun de fapt puzzle piesă de câte ori la tuse, 632 01:13:28,270 --> 01:13:31,990 pentru că în partea de jos aici, crescatorul versiune a acestor piese de puzzle personalizat 633 01:13:31,990 --> 01:13:34,500 îmi permite să se precizeze că tuse de fapt, ia 634 01:13:34,500 --> 01:13:36,951 o input-- ia un argument de genul asta. 635 01:13:36,951 --> 01:13:37,700 Si tu ce știi? 636 01:13:37,700 --> 01:13:38,890 Poate îmi dau seama, așteptați un minut. 637 01:13:38,890 --> 01:13:40,680 Tusea este same-- este fundamental 638 01:13:40,680 --> 01:13:42,120 aceeași idee ca și strănutul. 639 01:13:42,120 --> 01:13:44,040 Este doar un alt cuvânt de pe ecran. 640 01:13:44,040 --> 01:13:46,550 Nu pot abstractiza în continuare și să pună în aplicare 641 01:13:46,550 --> 01:13:48,750 această versiune finală a unui tuse, care la prima vedere 642 01:13:48,750 --> 01:13:50,660 este mult mai complex în căutarea. 643 01:13:50,660 --> 01:13:52,140 Dar observați ce am făcut. 644 01:13:52,140 --> 01:13:55,930 Acum am generalized-- genericized really-- această piesă de puzzle 645 01:13:55,930 --> 01:13:59,900 să fie numit spun cuvânt de n ori. 646 01:13:59,900 --> 01:14:04,410 >> Și acum am două noi piese de puzzle aici jos definesc tuse de n ori. 647 01:14:04,410 --> 01:14:06,790 Și ce face funcția de tuse? 648 01:14:06,790 --> 01:14:08,420 Ce face piesa mea de puzzle personalizat? 649 01:14:08,420 --> 01:14:11,996 Doar numește blocul să zicem, care trece în cuvântul vreau să spun, 650 01:14:11,996 --> 01:14:13,870 care trece în numărul de ori vreau să spun. 651 01:14:13,870 --> 01:14:18,210 Pentru că acum pot să pună în aplicare trage pe nas spunând pur și simplu achoo, 652 01:14:18,210 --> 01:14:20,320 în acest caz, unele de mai multe ori. 653 01:14:20,320 --> 01:14:22,360 >> Și, așa că eu sunt stratificarea și stratificarea. 654 01:14:22,360 --> 01:14:25,690 Și din nou, cheia aici nu este modul în care l-am pus în aplicare, dar faptul 655 01:14:25,690 --> 01:14:28,070 că, dacă eu doar literalmente muta acestea de pe ecran, 656 01:14:28,070 --> 01:14:31,280 uite cât de simplu în cazul în care nu destul de programul meu arata acum. 657 01:14:31,280 --> 01:14:33,930 Pentru că ea face ce spune, am abstras 658 01:14:33,930 --> 01:14:37,640 departe ceea ce se află în interiorul acea cutie neagră. se întâmplă să fie o cutie mov aici, 659 01:14:37,640 --> 01:14:41,430 dar m-am împiedicat departe ce e înăuntru pentru că nu-mi pasă cum funcționează. 660 01:14:41,430 --> 01:14:43,650 doar îmi pasă acum că funcționează. 661 01:14:43,650 --> 01:14:46,375 >> Și într-adevăr, în problema set de zero, acest lucru este exact 662 01:14:46,375 --> 01:14:49,250 un fel de stratificarea idei pe care le veți au posibilitatea de a explora. 663 01:14:49,250 --> 01:14:53,510 Este exact oportunitatea de a se aplice tehnici de rezolvare a problemelor, 664 01:14:53,510 --> 01:14:55,550 la ceea ce este, probabil, o mediu necunoscut. 665 01:14:55,550 --> 01:14:57,890 Și, dacă nu ați programat înainte sau programată, 666 01:14:57,890 --> 01:14:59,500 veți găsi că există un pic ceva 667 01:14:59,500 --> 01:15:00,874 în acest mediu pentru toată lumea. 668 01:15:00,874 --> 01:15:02,770 Si cu problema set una în timp de o săptămână, 669 01:15:02,770 --> 01:15:06,630 vom fi transitioned la focalizare pe un limbaj de nivel superior numit 670 01:15:06,630 --> 01:15:09,290 C-- sau mai degrabă o mai mică limbaj de nivel numit 671 01:15:09,290 --> 01:15:11,347 C-- asta e chiar mai mult puternic, chiar dacă este 672 01:15:11,347 --> 01:15:12,930 un pic mai criptic la prima vedere. 673 01:15:12,930 --> 01:15:16,740 >> Si vei realiza pe TL astăzi: DR, că această problemă are un set mai scurt 674 01:15:16,740 --> 01:15:19,880 fereastra de timp decât cele viitoare, pur și simplu pentru că ar trebui să-l găsească în mod echitabil 675 01:15:19,880 --> 01:15:20,420 accesibil. 676 01:15:20,420 --> 01:15:22,211 Și să nu vă faceți griji dacă adăugați clasa târziu. 677 01:15:22,211 --> 01:15:23,920 Ne vom aborda asta înainte de mult timp. 678 01:15:23,920 --> 01:15:28,480 Și, înainte de a se suspenda pentru tort, hai termina cu doar un aspect de două minute 679 01:15:28,480 --> 01:15:30,500 la ceea ce vă așteaptă aici, în CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUZICĂ] 682 01:17:20,803 --> 01:17:21,302 In regula. 683 01:17:21,302 --> 01:17:22,690 Asta e pentru CS50. 684 01:17:22,690 --> 01:17:23,650 Ne vedem în curând. 685 01:17:23,650 --> 01:17:25,526 Calup este acum servită. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUZICĂ] 688 01:18:14,267 --> 01:18:16,350 VORBITOR 17: Ai auzit a unui sabatic, Șef? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 VORBITOR 18: Poate că există mai mult sub capota. 691 01:18:31,920 --> 01:18:38,279