1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Redarea muzicii] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - ROSSINI, "Ranz DES Vaches "Din William Tell] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - BEAT limba engleză, "MARTIE A capete rotative, "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Aplauze si a aplauda] 8 00:02:31,510 --> 00:02:33,520 >> DAVID MALAN: Deci asta este CS50. 9 00:02:33,520 --> 00:02:34,730 Numele meu este David Malan. 10 00:02:34,730 --> 00:02:39,250 Și 73% dintre voi nu au nici o experiență anterioară cu informatică, 11 00:02:39,250 --> 00:02:41,300 Contrar a ceea ce s-ar putea crede. 12 00:02:41,300 --> 00:02:45,290 Așa că astăzi ne-am gândit să cip departe la care nu sunt familiarizați, dar, de asemenea, 13 00:02:45,290 --> 00:02:48,970 vă dau un sentiment de, pentru cei dintre voi cu mai mult confort, care direcțiile 14 00:02:48,970 --> 00:02:50,550 poti sa te duci acest semestru. 15 00:02:50,550 --> 00:02:51,890 >> Așa că haideți să începem cu asta. 16 00:02:51,890 --> 00:02:55,490 N-am nici o idee ce e în interiorul un calculator, chiar dacă, la fel ca tine, am 17 00:02:55,490 --> 00:02:56,780 să-l utilizați în fiecare zi. 18 00:02:56,780 --> 00:03:00,000 Dar e un fel de cutie, și nu e nu multe intrări în ea. 19 00:03:00,000 --> 00:03:01,350 Minim, nu e, ce? 20 00:03:01,350 --> 00:03:03,120 Probabil un cablu de alimentare. 21 00:03:03,120 --> 00:03:06,640 >> Și într-adevăr cu aceasta un singur ingredient, electricitate, se pare să fie capabil să 22 00:03:06,640 --> 00:03:09,490 face destul de un pic în aceste zile. 23 00:03:09,490 --> 00:03:12,130 Dar la sfârșitul zilei, ne trebuie să reprezinte lucrurile 24 00:03:12,130 --> 00:03:12,860 că ne pasă. 25 00:03:12,860 --> 00:03:15,240 Trebuie să reprezinte informații într-o formă. 26 00:03:15,240 --> 00:03:18,365 Si tu esti, probabil, cel puțin vag familiarizat cu ideea de binar sau 27 00:03:18,365 --> 00:03:21,370 biți într-un fel sau altul, calculatoare redusă la zero si unu. 28 00:03:21,370 --> 00:03:26,320 Dar putem imbratisa ca și cel puțin pune un pic de lumină în asta? 29 00:03:26,320 --> 00:03:28,880 >> Așa că am aceste mici lămpi de birou aici. 30 00:03:28,880 --> 00:03:30,450 Am o priză electrică aici. 31 00:03:30,450 --> 00:03:33,930 Și am de gând să propun ca în interiorul de computer este de cel puțin unul dintre 32 00:03:33,930 --> 00:03:37,300 aceste lucruri, ceva capabil de a fi pornit sau oprit. 33 00:03:37,300 --> 00:03:40,200 În acest caz, este într-adevăr o lampă de birou, dar la nivelul inferior, e ceva 34 00:03:40,200 --> 00:03:41,500 numit un tranzistor. 35 00:03:41,500 --> 00:03:44,730 >> Dar, în lumea noastră, este o lampă de birou, astfel Am de gând să merg mai departe și conectați acest 36 00:03:44,730 --> 00:03:47,990 în energie electrică mea aici. 37 00:03:47,990 --> 00:03:52,970 Și eu susțin că folosind acest simplu, dispozitiv simplu, acest comutator simplu, am 38 00:03:52,970 --> 00:03:54,850 poate reprezenta informații. 39 00:03:54,850 --> 00:03:58,090 De exemplu, chiar acum, eu sunt reprezintă nimic, nu? 40 00:03:58,090 --> 00:04:01,820 Sunt reprezentând ceea ce voi numi 0 sau fals, opusul a ceva 41 00:04:01,820 --> 00:04:03,130 fiind de fapt prezent. 42 00:04:03,130 --> 00:04:07,050 Dar dacă mă întorc pur și simplu acest comutator, acum am reprezentat un 1. 43 00:04:07,050 --> 00:04:10,720 Deci, folosind această piesă foarte simplu de memorie, dacă vreți, eu pot reprezenta 44 00:04:10,720 --> 00:04:11,450 informații. 45 00:04:11,450 --> 00:04:14,350 >> Acum, din păcate, computerul meu nu se poate face tot atât de mult. 46 00:04:14,350 --> 00:04:17,430 Acesta poate reprezenta doar două valori în întreaga lume - 47 00:04:17,430 --> 00:04:18,620 0 sau 1. 48 00:04:18,620 --> 00:04:21,839 Dar ceea ce este o soluție evidentă, acum, daca dorim sa ne extindem calculatorul nostru 49 00:04:21,839 --> 00:04:25,120 memorie și reprezintă mai mult decât 0 și 1? 50 00:04:25,120 --> 00:04:27,060 >> Ei bine, să luăm o astfel de biți. 51 00:04:27,060 --> 00:04:30,260 Să luăm un alt switch, un alt tranzistor, cu toate acestea pe care doriți să 52 00:04:30,260 --> 00:04:31,130 cred despre el. 53 00:04:31,130 --> 00:04:34,170 Lasă-mă să merg mai departe și să conectați acest în calculatorul meu, de asemenea. 54 00:04:34,170 --> 00:04:38,270 Și am de gând să pretind, acum, că prin folosind un pic mai mult de energie electrică și 55 00:04:38,270 --> 00:04:42,290 de cotitură mai multe dintre aceste switch-uri pe și off, nu pot reprezenta mai mult, cum ar 56 00:04:42,290 --> 00:04:43,020 informații. 57 00:04:43,020 --> 00:04:44,660 >> Deci, chiar acum, aceasta este 1. 58 00:04:44,660 --> 00:04:48,120 Dacă vreau să reprezinte acum 2, am putea face acest lucru. 59 00:04:48,120 --> 00:04:51,510 Dar, de obicei, convenție, așa cum vom în cele din urmă a se vedea, va trebui să fac asta. 60 00:04:51,510 --> 00:04:55,260 Deci, aceasta este 0, aceasta este 1. 61 00:04:55,260 --> 00:04:56,720 Acest lucru ar fi 2. 62 00:04:56,720 --> 00:04:59,920 Și nu este surprinzător, acest lucru ar fi 3. 63 00:04:59,920 --> 00:05:02,610 >> În acest fel, încă, pot numărăm mai mult? 64 00:05:02,610 --> 00:05:06,500 Dacă am lua un al treilea pic, un al treilea comutator, ceea ce este cel mai mare număr pot acum 65 00:05:06,500 --> 00:05:09,720 număra până la de la 0? 66 00:05:09,720 --> 00:05:12,020 Deci, 7 dacă încep de la 0, nu? 67 00:05:12,020 --> 00:05:15,980 Pentru că dacă am transforma aceasta lumina si conectați de fapt, acest al treilea și ultimul 68 00:05:15,980 --> 00:05:20,090 lumina in priza electrică mea aici, apoi am capacitatea de a reprezenta 69 00:05:20,090 --> 00:05:24,930 oricare dintre cele două valori aici, două valori aici, două valori aici - 70 00:05:24,930 --> 00:05:32,610 și așa că am putea reprezenta 2 ori 2 ori 2, sau opt valori posibile. 71 00:05:32,610 --> 00:05:36,340 Și dacă încep de contabilitate de la 0, astfel încât care este 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Deci, acest lucru binar. 73 00:05:37,480 --> 00:05:39,420 Este într-adevăr este la fel de simplu ca asta. 74 00:05:39,420 --> 00:05:41,930 Și aș spune că aceasta este de fapt destul de familiar pentru majoritatea 75 00:05:41,930 --> 00:05:43,180 toată lumea în această cameră. 76 00:05:43,180 --> 00:05:45,710 Lasă-mă să merg mai departe și deschide un editor de text puțin aici. 77 00:05:45,710 --> 00:05:49,040 >> Și s-ar putea retrage de la scoala că am avut lucruri de genul sute 78 00:05:49,040 --> 00:05:51,970 loc, locul zeci, iar cele loc. 79 00:05:51,970 --> 00:05:55,040 Și amintesc că, dacă ați avut unele zecimal număr, cum ar fi ceva aleatoriu 80 00:05:55,040 --> 00:05:59,470 cum ar fi 123, v-ar esență, scrie că în formularul de 81 00:05:59,470 --> 00:06:00,450 din aceste trei coloane. 82 00:06:00,450 --> 00:06:04,070 Și de ce este de 1, 2, 3 ce stim ca 123? 83 00:06:04,070 --> 00:06:11,220 Ei bine, în coloana din stânga, avem unul 100 plus doi 10s, astfel încât este de 120, 84 00:06:11,220 --> 00:06:14,250 plus trei 1s, așa că e 123. 85 00:06:14,250 --> 00:06:17,990 >> Acum, această lume pe care ne-am iluminat este exact la fel ca 86 00:06:17,990 --> 00:06:21,150 ai fost familiarizat cu de ani, cu excepția acum, coloane noastre 87 00:06:21,150 --> 00:06:22,060 nu sunt puteri de 10. 88 00:06:22,060 --> 00:06:23,780 Sunt doar puteri ale 2. 89 00:06:23,780 --> 00:06:27,830 Deci, în timp ce acesta este locul unde cei, acest va fi locul doi cate doi, acest lucru este 90 00:06:27,830 --> 00:06:29,540 Va fi locul patru labe. 91 00:06:29,540 --> 00:06:33,260 >> Și pentru că eu sunt, folosind doar simple de mecanisme pentru a transforma lucrurile 92 00:06:33,260 --> 00:06:37,100 on și off - electricitate curge sau electricitatea nu curge - 93 00:06:37,100 --> 00:06:40,880 Nu prea au aceeași expresiv Gama de la 0 la nouă. 94 00:06:40,880 --> 00:06:43,270 Am de gând să-l păstrați super-simplu în această lume de computere. 95 00:06:43,270 --> 00:06:45,060 Am doar 0 sau 1 - 96 00:06:45,060 --> 00:06:47,890 off sau pe, fals sau adevărat. 97 00:06:47,890 --> 00:06:52,610 >> Și așa cum am reprezentând acum este de 1, 1, 1, pentru că fiecare dintre acestea 98 00:06:52,610 --> 00:06:54,000 lumini se aprinde. 99 00:06:54,000 --> 00:06:59,600 Ei bine, care îmi dă un 4 plus unu 2, astfel asta e 6, plus un 1, și asta e 7. 100 00:06:59,600 --> 00:07:03,450 Și ergo face această secvență de trei biți reprezintă numărul 7. 101 00:07:03,450 --> 00:07:06,330 >> Deci, tot acest timp, în interiorul dvs. calculator, au fost orice număr de 102 00:07:06,330 --> 00:07:08,090 tranzistori, orice număr de biți. 103 00:07:08,090 --> 00:07:10,380 Dar la sfârșitul zilei, ne poate reprezenta informații 104 00:07:10,380 --> 00:07:12,560 cât mai simplu ca. 105 00:07:12,560 --> 00:07:16,770 Acum, din păcate, am doar numărat până la 7 în CS50 până acum, dar 106 00:07:16,770 --> 00:07:18,550 sperăm că putem face un pic mai mult decât atât. 107 00:07:18,550 --> 00:07:19,550 Și într-adevăr putem. 108 00:07:19,550 --> 00:07:23,570 >> Să presupunem că noi, ca oameni doar arbitrar a decis că vom 109 00:07:23,570 --> 00:07:28,750 pentru a asocia numere ca 1 și 2, 3, 4, 5, 6, 7, cu litere specifice ale 110 00:07:28,750 --> 00:07:29,410 alfabetul. 111 00:07:29,410 --> 00:07:32,350 Și, din motive istorice, am de gând să începe oarecum arbitrar, dar eu sunt 112 00:07:32,350 --> 00:07:36,880 de gând să spun, oamenii, vom să decidă ca un standard, la nivel global, care 113 00:07:36,880 --> 00:07:43,200 65 reprezintă numărul litera A. 66 vor reprezenta B. Dot, dot, dot. 114 00:07:43,200 --> 00:07:45,140 90 vor reprezenta Z. litera 115 00:07:45,140 --> 00:07:48,000 >> Și să presupunem că, dacă am pus într-adevăr unele crezut în ea, am putea veni 116 00:07:48,000 --> 00:07:50,860 cu numere de semne de exclamare și litere mici, și într-adevăr, 117 00:07:50,860 --> 00:07:52,710 alte persoane au făcut asta pentru noi. 118 00:07:52,710 --> 00:07:56,410 Deci, acum am avut biti cu care putem reprezintă numere, numere cu care 119 00:07:56,410 --> 00:08:00,130 putem reprezenta litere, și cu scrisori putem începe acum compunerea 120 00:08:00,130 --> 00:08:02,650 e-mailuri și caractere de tipar de pe ecran. 121 00:08:02,650 --> 00:08:05,850 >> Deci, lasă-mă invita, dacă aș putea, opt voluntari curajoși - 122 00:08:05,850 --> 00:08:09,200 care nu minte apar nu numai pe camera, dar pe internet - 123 00:08:09,200 --> 00:08:13,130 de a veni aici și reprezintă opt astfel de biți, mai degrabă decât acestea trei. 124 00:08:13,130 --> 00:08:14,380 Deci, ce zici de una, două? 125 00:08:14,380 --> 00:08:16,290 Cum despre trei? 126 00:08:16,290 --> 00:08:20,230 Cum despre patru în lumina albastru, cinci la final? 127 00:08:20,230 --> 00:08:21,250 Despre cineva pe aici? 128 00:08:21,250 --> 00:08:25,320 Șase în față, șapte în față, și opt în față, de asemenea. 129 00:08:25,320 --> 00:08:29,050 >> Asa ca am doar sa întâmplat să vină pregătiți cu o grămadă de bucăți de hârtie. 130 00:08:29,050 --> 00:08:34,150 Și pe aceste bucăți de hârtie sunt numere care reprezintă ceea ce coloane 131 00:08:34,150 --> 00:08:35,809 voi o să reprezinte. 132 00:08:35,809 --> 00:08:36,740 Deci, va fi - Care e numele tău? 133 00:08:36,740 --> 00:08:37,570 >> STUDENT: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID MALAN: Anna Leah, tu va fi coloana 128S. 135 00:08:40,370 --> 00:08:41,059 Tu ești? 136 00:08:41,059 --> 00:08:41,510 >> STUDENT: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID MALAN: Chris va fie coloana 64s. 138 00:08:43,620 --> 00:08:44,070 Tu ești? 139 00:08:44,070 --> 00:08:44,540 >> STUDENT: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID MALAN: Dan va fie coloana 32s. 141 00:08:46,970 --> 00:08:47,470 >> STUDENT: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID MALAN: Pramit va fie coloana 16S. 143 00:08:49,430 --> 00:08:50,290 >> STUDENT: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID MALAN: Lillian va fi 8s. 145 00:08:51,904 --> 00:08:52,768 >> STUDENT: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID MALAN: Jill va fie coloana 4s. 147 00:08:55,025 --> 00:08:55,400 >> STUDENT: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID MALAN: Maria va fi de 2S, și? 149 00:08:57,000 --> 00:08:57,470 >> STUDENT: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID MALAN: David fie coloana 1s. 151 00:08:59,220 --> 00:09:02,030 Deci, dacă voi putea pas un pic înainte, astfel încât toată lumea poate vedea. 152 00:09:02,030 --> 00:09:05,370 Ceea ce voi nu vedeți este că pe din spate a acestor bucățele de hârtie este un 153 00:09:05,370 --> 00:09:09,760 foaie de ieftin mic, care e pe cale de a instrui aceste opt biti fie 154 00:09:09,760 --> 00:09:12,380 ridice mâna lor sau nu ridice mâna lor. 155 00:09:12,380 --> 00:09:14,100 Dacă mâna lor merge în sus, sunt reprezentând un 1. 156 00:09:14,100 --> 00:09:17,120 Dacă mâna lor rămâne jos, sunt reprezentând un 0. 157 00:09:17,120 --> 00:09:21,410 >> Între timp, am publicul ar trebui să fie în măsură să dau afară, pe baza acestei 158 00:09:21,410 --> 00:09:26,490 cartografiere, ce cuvânt din trei litere acestea oameni sunt pe cale de a preciza. 159 00:09:26,490 --> 00:09:29,700 Deci, într-o clipă, ai de gând să citiți prima linie de pe partea din spate a 160 00:09:29,700 --> 00:09:32,880 foaie de ieftin ta, si tu esti, fie va ridica sau nu ridice mana. 161 00:09:32,880 --> 00:09:35,710 Dacă sunteți un 1, plusezi, dacă esti un 0, stai acolo 162 00:09:35,710 --> 00:09:38,594 dur, la fel ca asta. 163 00:09:38,594 --> 00:09:40,386 Du-te. 164 00:09:40,386 --> 00:09:43,945 Ce număr, în primul rând, sunt tipii ăștia reprezintă? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, nu? 168 00:09:49,560 --> 00:09:52,400 Avem un 1 în coloana 64s, o 1 în coloana 2s. 169 00:09:52,400 --> 00:09:56,340 Asta îmi dă 66, astfel încât apare să fie reprezentând B. Deci 170 00:09:56,340 --> 00:09:57,075 voi ați scris - 171 00:09:57,075 --> 00:09:58,300 OK, asta e destul. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Deci, acum să mergem pe a doua scrisoare nostru. 174 00:10:01,610 --> 00:10:03,530 Du-te. 175 00:10:03,530 --> 00:10:06,860 Cine e mai rapid la matematică aici? 176 00:10:06,860 --> 00:10:07,750 Deci, 79. 177 00:10:07,750 --> 00:10:11,840 Din nou, dacă vom aduna toate coloanele în care există un 1, în prezent, doar 178 00:10:11,840 --> 00:10:14,840 așa cum am făcut-o înainte cu cele mai simple de exemple de 7, am acum 179 00:10:14,840 --> 00:10:16,140 a obține numărul 79. 180 00:10:16,140 --> 00:10:19,910 Care, conform cartografierea noastră este scrisoare O. Deci suntem aproape acolo. 181 00:10:19,910 --> 00:10:22,590 B, O. Și, în fine, du-te. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Ce sunt ele reprezintă acum? 184 00:10:30,120 --> 00:10:31,370 Mai puțin consens. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Asta e doar un murmur absolut. 187 00:10:36,460 --> 00:10:40,090 Da, este, de fapt, 87. 188 00:10:40,090 --> 00:10:40,490 Bun. 189 00:10:40,490 --> 00:10:44,480 >> Deci, dacă am harta acum că înapoi până la - să începe de asteptare graficul nostru ASCII, 190 00:10:44,480 --> 00:10:46,450 American Standard Code pentru Schimbul de informații. 191 00:10:46,450 --> 00:10:47,700 Asta ne dă scrisoarea - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 nu "bo", ci "arc". Și că este o perfectă Cue pentru voi să ia un arc 194 00:10:54,810 --> 00:10:56,100 și capul pe spate. 195 00:10:56,100 --> 00:10:56,980 Mulțumesc mult. 196 00:10:56,980 --> 00:10:57,886 >> [Aplauze] 197 00:10:57,886 --> 00:10:59,136 >> DAVID MALAN: Aveți posibilitatea să le păstrați. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Deși de fapt, ar vrea cineva cum ar fi o lampă de birou, de asemenea? 200 00:11:05,942 --> 00:11:07,300 >> [Huiduială din partea publicului] 201 00:11:07,300 --> 00:11:08,390 >> DAVID MALAN: lampă de birou? 202 00:11:08,390 --> 00:11:10,850 >> [Râsete] 203 00:11:10,850 --> 00:11:11,860 >> DAVID MALAN: Serios? 204 00:11:11,860 --> 00:11:13,230 Lămpi de birou pentru toată lumea? 205 00:11:13,230 --> 00:11:14,310 Bine. 206 00:11:14,310 --> 00:11:20,990 Deci, începând cu cele mai simple de principii, am acum nu doar numărate 207 00:11:20,990 --> 00:11:24,750 de la 0 tot drumul până la 7, ne-am presupune că doar prin aruncarea mai mult 208 00:11:24,750 --> 00:11:28,080 biți sau mai multe lumini sau mai multe tranzistoare la această problemă, putem 209 00:11:28,080 --> 00:11:32,680 reprezintă numere mai mari și mai mari, și ergo, game tot mai mare a 210 00:11:32,680 --> 00:11:33,780 alfabete, cum ar fi limba engleză. 211 00:11:33,780 --> 00:11:37,770 Și doar să luăm în credință pentru ziua de azi că la fel am putea începe să 212 00:11:37,770 --> 00:11:42,220 reprezintă grafice și video și orice serie de alte mass-media cu care suntem 213 00:11:42,220 --> 00:11:43,610 cunoscut azi. 214 00:11:43,610 --> 00:11:49,240 >> Deci, aceasta este CS50, iar în această clasă alături de voi sunt, din nou, foarte multe 215 00:11:49,240 --> 00:11:53,050 colegii care au mai putin experienta ca tine. 216 00:11:53,050 --> 00:11:57,730 Și am spus asta doar pentru că destul de adesea, inclusiv ca recent ca una dintre 217 00:11:57,730 --> 00:12:01,860 student în anul întâi consilierea evenimente și la al doilea de studentie in primavara anului trecut de consiliere 218 00:12:01,860 --> 00:12:06,420 eveniment, am auzit de multe ori elevii își declină atunci când vine la masa de CS, de asemenea, 219 00:12:06,420 --> 00:12:10,070 M-am gândit de a lua acest clasa intro, dar eu nu sunt chiar un 220 00:12:10,070 --> 00:12:11,120 persoană calculator. 221 00:12:11,120 --> 00:12:13,220 Sau, dar cu siguranță toată lumea știe mai multe decât mine. 222 00:12:13,220 --> 00:12:17,340 Și am pus acest lucru în cel mai mare font posibil, pentru a transmite acest mesaj pe care 223 00:12:17,340 --> 00:12:18,730 care nu este, de fapt, cazul. 224 00:12:18,730 --> 00:12:21,100 >> Și dacă vă întrebați, ar trebui I, de fapt, să fie aici? 225 00:12:21,100 --> 00:12:25,950 Dau seama că nu numai că este acest curs de Titlul Introducere în Computer 226 00:12:25,950 --> 00:12:31,740 Știință, este Introducere în calculator Știința I. Deci, există într-adevăr 227 00:12:31,740 --> 00:12:33,170 un al doilea astfel de introducere. 228 00:12:33,170 --> 00:12:35,390 Deci tu nu esti, de fapt, în locul nepotrivit. 229 00:12:35,390 --> 00:12:39,000 Și printre obiectivele pe care le am pentru ziua de azi sunt pentru a calma orice astfel de preocupări te 230 00:12:39,000 --> 00:12:42,430 ar putea avea, dar, de asemenea, să picteze o imagine a ceea ce e în magazin pentru 231 00:12:42,430 --> 00:12:45,720 elevii mai puțin și mai confortabil la fel în acest curs. 232 00:12:45,720 --> 00:12:49,320 >> Dar, mai întâi, un cuvânt pe unul dintre materiale aveți azi, printre care 233 00:12:49,320 --> 00:12:50,780 sunt o serie de întrebări frecvente. 234 00:12:50,780 --> 00:12:54,290 A fost o viziune de-al nostru de ceva timp acum să se introducă o nouă clasificare 235 00:12:54,290 --> 00:12:57,010 opțiune în acest curs - și anume, SAT / UnSat. 236 00:12:57,010 --> 00:13:01,930 Filozofic pentru mine, este mult mai mult, mult mai important ca 237 00:13:01,930 --> 00:13:05,050 elevii din această clasă se angajeze cu Materialul, este contestată de către 238 00:13:05,050 --> 00:13:09,800 materiale, și vă faceți griji mult, mult mai puțin despre mecanica scorurilor 239 00:13:09,800 --> 00:13:12,590 și clasele scrisoare de la semestru sfârșit, dar cu adevărat îmbrățișează 240 00:13:12,590 --> 00:13:13,970 cursul și materialul. 241 00:13:13,970 --> 00:13:18,140 Și într-adevăr acest lucru se simte, mai general, pentru ceea ce este interesant pentru ei, pentru a 242 00:13:18,140 --> 00:13:21,390 se simt provocate și recompensat, dar fără teama de eșec. 243 00:13:21,390 --> 00:13:25,030 >> Și într-adevăr, acesta este de asemenea un recurent Tema din acest și alte introductivă 244 00:13:25,030 --> 00:13:28,680 cursuri în alte domenii, pe care le au această agitație atunci când vine vorba de 245 00:13:28,680 --> 00:13:31,040 pune degetele de la picioare unul în ape necunoscute. 246 00:13:31,040 --> 00:13:34,880 M-am, în 1995, a fost un student în anul întâi. 247 00:13:34,880 --> 00:13:37,990 Am fost foarte concentrat pe a fi un concentrator Gov aici. 248 00:13:37,990 --> 00:13:41,060 Și totuși aș mereu crescut cu un pic de un interes în informatică. 249 00:13:41,060 --> 00:13:42,180 Am fost mereu curios. 250 00:13:42,180 --> 00:13:47,610 >> Dar atunci, chiar, am avut această teamă de chiar pas cu pas picior în CS50, atât de mult 251 00:13:47,610 --> 00:13:49,420 așa că nu am nici magazin este primul an de facultate. 252 00:13:49,420 --> 00:13:53,460 Și singurul motiv pentru care am pus un picior în Ușa anul al doilea de studentie a fost pentru că am 253 00:13:53,460 --> 00:13:55,340 a fost permis să-l admis / respins. 254 00:13:55,340 --> 00:13:58,920 Dar chiar și pass / fail necesare pe care le primesc curaj pentru a face o programare 255 00:13:58,920 --> 00:14:01,970 cu profesorul Kernehan la momentul respectiv, aduce această foaie mare de hârtie, și de a pune 256 00:14:01,970 --> 00:14:04,470 l pentru semnătura lui și a lui permisiunea de a explora 257 00:14:04,470 --> 00:14:05,700 aceste ape necunoscute. 258 00:14:05,700 --> 00:14:09,030 >> Și aceasta nu a ajutat în ultimii ani, că, atunci când faci acest lucru în CS50, când am 259 00:14:09,030 --> 00:14:12,500 folosit pentru a fi admis / respins, la fel ar fi zeci sau sute de colegii dvs. 260 00:14:12,500 --> 00:14:15,970 Trebuie să vină, Doamne ferește, la fata de Sanders cu această formă, care 261 00:14:15,970 --> 00:14:19,520 în unele minți reprezintă o incapacitate, Îndrăznesc să spun că, pentru a efectua 262 00:14:19,520 --> 00:14:20,800 sunt la nivel colegii dumneavoastră ". 263 00:14:20,800 --> 00:14:23,410 Ceea ce este ridicol, dar eu nu cred acolo e mentalitatea. 264 00:14:23,410 --> 00:14:27,210 Și acolo nu a fost niciodată în această cultură de SAT / UnSat, sau pass / fail mai mult 265 00:14:27,210 --> 00:14:30,610 în general, în acest curs, sau într-adevăr pe acest campus. 266 00:14:30,610 --> 00:14:32,310 >> Deci, în acest an am schimbat. 267 00:14:32,310 --> 00:14:35,630 Mi-ar fi jumătate extatică a această clasă sau mai multe finalizate 268 00:14:35,630 --> 00:14:38,700 inițierea CS50 SAT / UnSat. 269 00:14:38,700 --> 00:14:42,130 În timp de un an, ar fi minunat în cazul în care aproape toată lumea este. 270 00:14:42,130 --> 00:14:44,410 După aceea, probabil, vom lucra pe clasele scrisoare de la Harvard 271 00:14:44,410 --> 00:14:45,480 Colegiu în general. 272 00:14:45,480 --> 00:14:48,900 Dar pentru acum, vom face acest lucru în nostru sferă proprie, și aș toată inima 273 00:14:48,900 --> 00:14:53,400 încurajăm să revizuiască aceste întrebări frecvente și pune întrebări cum credeți de cuviință, astfel încât 274 00:14:53,400 --> 00:14:58,000 sperăm că vă, spre deosebire de mine, nu destul de au același factor de teamă atunci când 275 00:14:58,000 --> 00:15:01,040 explorarea ceea ce este, probabil, un loc nefamiliar. 276 00:15:01,040 --> 00:15:02,786 >> Deci, ce este CS50? 277 00:15:02,786 --> 00:15:06,150 Aceasta este o introducere Intreprinderi intelectuale de calculator 278 00:15:06,150 --> 00:15:07,700 știința și arta de programare. 279 00:15:07,700 --> 00:15:08,770 Dar ce înseamnă asta cu adevărat? 280 00:15:08,770 --> 00:15:12,510 >> Ei bine, până acum, am vorbit foarte pe scurt despre care reprezintă informații. 281 00:15:12,510 --> 00:15:15,070 Dar să presupunem că suntem de fapt doresc de a face ceva cu ea. 282 00:15:15,070 --> 00:15:17,890 Trebuie să introducem noțiunea de ceea ce vom numi un algoritm. 283 00:15:17,890 --> 00:15:21,540 Un algoritm este o procedură, un proces, un set de instrucțiuni pentru 284 00:15:21,540 --> 00:15:22,780 a face ceva. 285 00:15:22,780 --> 00:15:25,620 >> Și un algoritm poate fi ceva super-simplu. 286 00:15:25,620 --> 00:15:28,660 De exemplu, un exemplu cu care anumite de s-ar putea să fie familiarizat este aceasta 287 00:15:28,660 --> 00:15:29,350 lucru aici. 288 00:15:29,350 --> 00:15:32,510 Deci, această carte aici este din ce în ce datat, dar o dată la un moment dat, ea 289 00:15:32,510 --> 00:15:34,720 conținea o mulțime de nume și numere de telefon. 290 00:15:34,720 --> 00:15:37,710 Și într-adevăr, dacă am vrut să găsesc cineva în această carte de telefon - 291 00:15:37,710 --> 00:15:39,800 spun, cineva pe nume Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Am găsit pe Mike Smith, în orice număr de metode destul de simple. 293 00:15:43,810 --> 00:15:47,700 Am putea începe de la început și trece la pagina 1, nu acolo. 294 00:15:47,700 --> 00:15:49,240 Page 2, nu acolo. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Este că algoritmul, este faptul că proces, corect? 297 00:15:53,430 --> 00:15:54,620 >> Deci, este corect, nu? 298 00:15:54,620 --> 00:15:58,070 Sunt un fel de idiot pentru a face aceasta în acest mod, dar în cele din urmă o voi face 299 00:15:58,070 --> 00:16:02,670 găsi numele S, și sperăm că Mike este în această secțiune, si eu va deveni 300 00:16:02,670 --> 00:16:04,100 face cu algoritmul meu. 301 00:16:04,100 --> 00:16:05,440 Dar cu siguranță nu este intuitiv. 302 00:16:05,440 --> 00:16:08,020 Cele mai multe fiecare om rezonabil în acest Camera nu ar fi făcut asta. 303 00:16:08,020 --> 00:16:10,180 Ce ai fi făcut? 304 00:16:10,180 --> 00:16:11,480 >> Te-ai fi dus direct la mijloc, nu? 305 00:16:11,480 --> 00:16:12,000 Aproximativ la mijloc. 306 00:16:12,000 --> 00:16:16,310 Și îți dai seama, oh, acestea sunt d-na Deci Mike Smith, numele de familie fiind Smith, 307 00:16:16,310 --> 00:16:19,050 nu este, în mod clar, apoi în jumătatea din stânga a cărții. 308 00:16:19,050 --> 00:16:21,040 El trebuie să fie spre S e în dreapta. 309 00:16:21,040 --> 00:16:24,090 Și în acest moment, deși cele mai multe dintre noi nu fac acest lucru în realitate, putem 310 00:16:24,090 --> 00:16:27,125 rupe literalmente această problemă în jumătate. 311 00:16:27,125 --> 00:16:27,640 >> [Urale și aplauze] 312 00:16:27,640 --> 00:16:28,950 >> DAVID MALAN: Mulțumesc. 313 00:16:28,950 --> 00:16:30,150 >> [Urale și aplauze] 314 00:16:30,150 --> 00:16:34,660 >> DAVID MALAN: Puteți rupe literalmente acest Problema în jumătate, lăsându-mă cu, 315 00:16:34,660 --> 00:16:36,120 literalmente, o jumătate problemă la fel de mare. 316 00:16:36,120 --> 00:16:39,750 Deci, dacă acest cartea de telefon a fost - și-l probabil a fost - aproximativ 1.000 de pagini, acum 317 00:16:39,750 --> 00:16:40,840 E doar 500. 318 00:16:40,840 --> 00:16:44,710 Dacă am face acest lucru din nou și îmi dau seama, oh, La naiba, am mers prea departe, eu sunt în Ts 319 00:16:44,710 --> 00:16:46,480 secțiune, am putea la fel - 320 00:16:46,480 --> 00:16:48,030 figurat sau literal - 321 00:16:48,030 --> 00:16:50,260 rupe cartea de telefon - a fost de fapt mult mai ușor acel moment. 322 00:16:50,260 --> 00:16:53,610 Eu pot rupe literalmente cartea de telefon în jumătate, lăsându-mă acum cu 323 00:16:53,610 --> 00:16:55,186 Nu 1.000, nu 500 - 324 00:16:55,186 --> 00:16:56,680 250 de pagini. 325 00:16:56,680 --> 00:17:00,210 Și eu pot merge 125, și jumătate din care, și jumătate din care, și jumătate din care, 326 00:17:00,210 --> 00:17:04,760 până când în sfârșit voi fi plecat cu doar o singură pagină. 327 00:17:04,760 --> 00:17:06,430 >> [Râsete] 328 00:17:06,430 --> 00:17:07,589 >> DAVID MALAN: Asta e partea I nu mai departe. 329 00:17:07,589 --> 00:17:10,400 O singură pagină pe care Mike sperăm este. 330 00:17:10,400 --> 00:17:14,630 Acum, aceste diferite algoritmi pot fi un fel de evaluat sau evaluate în 331 00:17:14,630 --> 00:17:15,270 diferite moduri. 332 00:17:15,270 --> 00:17:17,300 Prima a fost foarte liniar, nu? 333 00:17:17,300 --> 00:17:18,500 Întoarce pagina, uita-te pentru Mike. 334 00:17:18,500 --> 00:17:19,630 Întoarce pagina, uita-te pentru Mike. 335 00:17:19,630 --> 00:17:20,560 Este foarte liniar. 336 00:17:20,560 --> 00:17:23,339 Dacă există o pagină mai în telefon carte, este, probabil, să-mi iau 337 00:17:23,339 --> 00:17:27,380 o secundă, o unitate de timp, Cu toate acestea suntem calcul timp. 338 00:17:27,380 --> 00:17:32,470 >> Așa că s-ar putea trage ca aceasta aceasta linie aici, prin care ca mărimea 339 00:17:32,470 --> 00:17:34,700 crește problema de la stânga la dreapta - 340 00:17:34,700 --> 00:17:37,480 cartea de telefon devine mai mici la mare - 341 00:17:37,480 --> 00:17:41,080 și de timp este de gând să crească pe axa verticală, mai mare 342 00:17:41,080 --> 00:17:42,030 cartea de telefon este. 343 00:17:42,030 --> 00:17:46,180 Deci, n este doar o variabilă generală care oamenii de stiinta de calculator utilizat pentru a reprezenta 344 00:17:46,180 --> 00:17:48,210 o valoare, un număr. 345 00:17:48,210 --> 00:17:50,740 Deci, n va crește liniar. 346 00:17:50,740 --> 00:17:53,040 Dubla dimensiunea de cartea de telefon, e O să mă ia de două ori mai mult 347 00:17:53,040 --> 00:17:54,780 timp, cel mai probabil, pentru a găsi Mike. 348 00:17:54,780 --> 00:17:56,390 >> Acum, am fi putut fi inteligent despre asta, nu? 349 00:17:56,390 --> 00:17:57,800 Am fost obtinerea plictisit repede. 350 00:17:57,800 --> 00:17:58,910 Ar fi putut face acest lucru de câte doi. 351 00:17:58,910 --> 00:18:01,870 Deci două pagini, apoi patru, apoi șase, apoi opt. 352 00:18:01,870 --> 00:18:05,220 Și am putea începe să zboare printr-o ceva mai repede, chiar dacă la risc minor de 353 00:18:05,220 --> 00:18:09,210 depășire Mike, dar care nu este curba va fi foarte diferit. 354 00:18:09,210 --> 00:18:12,550 Este încă de gând să fie o dreaptă linie, dar ceva mai rapid. 355 00:18:12,550 --> 00:18:13,710 >> Dar ce am făcut? 356 00:18:13,710 --> 00:18:15,845 Am făcut-o de fapt ceva fundamental mai bine. 357 00:18:15,845 --> 00:18:21,990 Am realizat ceea ce vom numi logaritmică timp, jurnalul de n, prin care acest verde 358 00:18:21,990 --> 00:18:27,730 linie are o mult, mult, mult margine mai puțin direct la ea. 359 00:18:27,730 --> 00:18:33,050 Și mai degrabă, se sugerează, așa cum un fel de se apropie de infinit vreodată atât de treptat, 360 00:18:33,050 --> 00:18:36,700 că am putea lua de fapt o mie de pagini cartea de telefon, dubla mărimea 361 00:18:36,700 --> 00:18:39,610 anul viitor - să presupunem că o mulțime mai mulți oameni se mute în oraș. 362 00:18:39,610 --> 00:18:43,250 >> Deci, acum am 2.000 de pagini, dar cum mai multe etape este că inteligent 363 00:18:43,250 --> 00:18:45,200 Algoritmul de gând să ia? 364 00:18:45,200 --> 00:18:46,060 Doar unul. 365 00:18:46,060 --> 00:18:48,060 Vreau să spun, că e un lucru puternic. 366 00:18:48,060 --> 00:18:51,400 Dacă vom merge la 4.000 de pagini anul viitor, că o să mă ia 367 00:18:51,400 --> 00:18:53,020 numai două mai multe etape. 368 00:18:53,020 --> 00:18:56,500 Astfel încât să puteți arunca mai mare și mai mare probleme la mine, nu spre deosebire de web este 369 00:18:56,500 --> 00:18:59,560 aruncarea probleme mai mari și mai mari în fiecare zi de la Googles și Facebooks de 370 00:18:59,560 --> 00:19:01,590 în lume, și nu este o astfel de afacere mare. 371 00:19:01,590 --> 00:19:05,840 Pentru că am pus mai mult gândire și de îngrijire în Algoritmul mea cu care să rezolve 372 00:19:05,840 --> 00:19:07,020 problemele eficient. 373 00:19:07,020 --> 00:19:09,260 >> Și într-adevăr, care va fi unul dintre obiectivele acestui curs. 374 00:19:09,260 --> 00:19:11,230 Veți, de-a lungul drum, învăța cum să program. 375 00:19:11,230 --> 00:19:13,360 Veți învăța cum să program în orice număr de limbi. 376 00:19:13,360 --> 00:19:16,670 Dar la sfârșitul zilei, cursul este despre rezolvarea problemelor și obținerea 377 00:19:16,670 --> 00:19:20,490 mai bine la rezolvarea problemelor - și, la fel ca în cazuri de acest fel, rezolvarea problemelor 378 00:19:20,490 --> 00:19:22,030 mai eficient. 379 00:19:22,030 --> 00:19:23,990 >> Acum, până acum, am făcut acest lucru destul de intuitiv. 380 00:19:23,990 --> 00:19:27,420 Să introducă ceva destul de generic numit pseudocod. 381 00:19:27,420 --> 00:19:29,150 Asa ca vom lua în cele din urmă, în acest curs, pentru a 382 00:19:29,150 --> 00:19:30,570 diverse limbaje de programare. 383 00:19:30,570 --> 00:19:34,280 Dar azi vom face în limba engleză, cum ar fi sintaxa, în cazul în care doar un fel de spune 384 00:19:34,280 --> 00:19:37,330 ce vrei să spui, dar tu ești tot atât de succint și nu vă faceți griji cu privire la 385 00:19:37,330 --> 00:19:38,960 gramatică și propoziții complete. 386 00:19:38,960 --> 00:19:41,600 Trebuie doar să vă exprimați ca mai concis posibil. 387 00:19:41,600 --> 00:19:45,400 >> Deci, pseudocod este limba engleză, cum ar fi sintaxă care reprezintă 388 00:19:45,400 --> 00:19:46,750 un limbaj de programare. 389 00:19:46,750 --> 00:19:51,170 Și spre acest scop, permiteți-mi să propun ca ne modela acum procesul de ne-am 390 00:19:51,170 --> 00:19:54,990 descris de numărare ceva un pic diferit, de data aceasta luând o 391 00:19:54,990 --> 00:19:59,040 uita-te la acest video de cinci minute de produse de prietenii nostri de la TED că 392 00:19:59,040 --> 00:20:03,170 definește ceea ce pseudocod este, definește ceea ce gândirea algoritmică este, și chiar 393 00:20:03,170 --> 00:20:07,030 deși exemplu, esti pe cale de a vedea este, în sine, super-simplu, e 394 00:20:07,030 --> 00:20:09,820 O să încep să ne dea mental Modelul, vocabularul, cu care a 395 00:20:09,820 --> 00:20:14,588 face mult, mult mai complex algoritmi destul de repede. 396 00:20:14,588 --> 00:20:15,576 >> [Începe redarea VIDEO] 397 00:20:15,576 --> 00:20:29,920 >> [Redarea muzicii] 398 00:20:29,920 --> 00:20:31,100 >> NARATOR: Ce este un algoritm? 399 00:20:31,100 --> 00:20:34,730 În informatică, un algoritm este o set de instrucțiuni pentru rezolvarea unor 400 00:20:34,730 --> 00:20:36,620 Problema pas cu pas. 401 00:20:36,620 --> 00:20:39,650 De obicei, algoritmii sunt executate de calculatoare, dar noi, oamenii, au 402 00:20:39,650 --> 00:20:41,230 algoritmi, precum și. 403 00:20:41,230 --> 00:20:43,290 De exemplu, cum te-ai duce despre numărarea 404 00:20:43,290 --> 00:20:44,750 de persoane într-o cameră? 405 00:20:44,750 --> 00:20:47,980 Ei bine, daca esti ca mine, ai, probabil, Punct la fiecare persoană, unul la 406 00:20:47,980 --> 00:20:50,120 un timp, și numere de la 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, și așa mai departe. 408 00:20:52,970 --> 00:20:54,140 >> Ei bine, asta e un algoritm. 409 00:20:54,140 --> 00:20:57,600 De fapt, hai să încercăm să-l exprime o bit mai mult formal în pseudocod - 410 00:20:57,600 --> 00:21:00,700 Engleză-ca sintaxă care seamana cu un limbaj de programare. 411 00:21:00,700 --> 00:21:02,580 Fie N egal 0. 412 00:21:02,580 --> 00:21:06,970 Pentru fiecare persoana in camera, stabilit N egal cu N, plus 1. 413 00:21:06,970 --> 00:21:08,400 >> Cum de a interpreta acest pseudocod? 414 00:21:08,400 --> 00:21:12,840 Ei bine, linia unu declară, ca să spunem așa, o variabilă numită N și inițializează 415 00:21:12,840 --> 00:21:14,250 valoarea sa la 0. 416 00:21:14,250 --> 00:21:17,550 Acest lucru înseamnă doar că, la începutul algoritmul nostru, lucru cu care 417 00:21:17,550 --> 00:21:19,650 suntem de numărare are o valoare de 0. 418 00:21:19,650 --> 00:21:22,620 După toate, înainte de a începe numărarea, nu am numărat nimic încă. 419 00:21:22,620 --> 00:21:25,340 Apelarea această variabilă N este doar o convenție. 420 00:21:25,340 --> 00:21:26,890 Am fi putut numit-o cel mai mult nimic. 421 00:21:26,890 --> 00:21:30,560 >> Acum linia doi demarks începerea unui buclă, o succesiune de etape care vor 422 00:21:30,560 --> 00:21:32,310 repeta un numar de ori. 423 00:21:32,310 --> 00:21:35,910 Deci, în exemplul nostru, pas vom lua este de numărare de persoane în cameră. 424 00:21:35,910 --> 00:21:38,730 Sub linia doi este linia de trei, care descrie exact cum 425 00:21:38,730 --> 00:21:40,160 vom merge de numărare. 426 00:21:40,160 --> 00:21:43,440 Indentare presupune că este trei linii, care se va repeta. 427 00:21:43,440 --> 00:21:47,380 >> Deci, ceea ce pseudocod se spune este că după pornirea la 0, pentru fiecare 428 00:21:47,380 --> 00:21:50,690 persoana in camera, vom crește N de 1. 429 00:21:50,690 --> 00:21:53,050 Acum este acest algoritm corect? 430 00:21:53,050 --> 00:21:54,580 Ei bine, hai să-bang-ului pe ea un pic. 431 00:21:54,580 --> 00:21:57,270 Funcționează în cazul în care există două persoane în cameră? 432 00:21:57,270 --> 00:21:58,170 Să vedem. 433 00:21:58,170 --> 00:22:00,260 >> În conformitate o, am inițializa N la 0. 434 00:22:00,260 --> 00:22:03,660 Pentru fiecare dintre aceste două persoane, am incrementa apoi N de 1. 435 00:22:03,660 --> 00:22:07,310 Deci, la prima calatorie prin buclă, am actualizat N la 0 la 1. 436 00:22:07,310 --> 00:22:11,070 Pe cea de a doua calatorie prin aceeași buclă, am actualizat N 1-2. 437 00:22:11,070 --> 00:22:15,780 Și așa până la sfârșitul acestui algoritm, n este 2, care se potrivește într-adevăr, numărul de 438 00:22:15,780 --> 00:22:16,700 persoane in camera. 439 00:22:16,700 --> 00:22:17,760 >> Până în prezent, atât de bine. 440 00:22:17,760 --> 00:22:19,610 Ce zici de un caz colț, deși? 441 00:22:19,610 --> 00:22:22,590 Să presupunem că există 0 persoane în cameră - în afară de mine, 442 00:22:22,590 --> 00:22:24,170 cine face numărătoarea. 443 00:22:24,170 --> 00:22:27,150 În conformitate o, am inițializa N la 0. 444 00:22:27,150 --> 00:22:30,280 De data aceasta, însă, linia de trei nu executa la toate, deoarece nu există o 445 00:22:30,280 --> 00:22:31,370 persoană în cameră. 446 00:22:31,370 --> 00:22:35,260 Și așa N rămâne 0, care se potrivește Numărul de persoane în cameră. 447 00:22:35,260 --> 00:22:36,420 Destul de simplu, nu? 448 00:22:36,420 --> 00:22:39,630 >> Dar de numărare oameni unul la un moment dat este destul de ineficient, de asemenea, nu? 449 00:22:39,630 --> 00:22:40,920 Desigur, putem face mai bine. 450 00:22:40,920 --> 00:22:43,120 De ce nu conta doi oameni la un moment dat? 451 00:22:43,120 --> 00:22:49,300 În loc de numărare 1, 2, 3, 4, 5, 6, 7, 8, și așa mai departe, de ce nu conta, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, și așa mai departe? 453 00:22:51,460 --> 00:22:53,700 Chiar suna mai repede, și cu siguranță este. 454 00:22:53,700 --> 00:22:56,240 >> Să-și exprime această optimizare în pseudocod. 455 00:22:56,240 --> 00:22:57,800 Fie N egal 0. 456 00:22:57,800 --> 00:23:02,450 Pentru fiecare pereche de oameni în cameră, N setat egal cu N plus 2. 457 00:23:02,450 --> 00:23:04,120 Schimbare destul de simplu, nu? 458 00:23:04,120 --> 00:23:06,750 Mai degrabă decât numărul de persoane una la un moment dat, am în schimb conta 459 00:23:06,750 --> 00:23:08,300 ele două la un moment dat. 460 00:23:08,300 --> 00:23:10,980 Acest algoritm este, astfel, de două ori la fel de repede ca ultima. 461 00:23:10,980 --> 00:23:12,180 >> Dar este corect? 462 00:23:12,180 --> 00:23:12,920 Să vedem. 463 00:23:12,920 --> 00:23:15,330 Funcționează în cazul în care există două persoane în cameră? 464 00:23:15,330 --> 00:23:17,550 În conformitate o, am inițializa N la 0. 465 00:23:17,550 --> 00:23:20,920 Pentru că o pereche de oameni, am incrementa apoi N de două. 466 00:23:20,920 --> 00:23:24,860 Și așa până la sfârșitul acestui algoritm, n este 2, care se potrivește într-adevăr, numărul de 467 00:23:24,860 --> 00:23:25,650 persoane in camera. 468 00:23:25,650 --> 00:23:28,250 >> Să presupunem în continuare că există 0 persoane in camera. 469 00:23:28,250 --> 00:23:30,840 În conformitate o, am inițializa N la 0. 470 00:23:30,840 --> 00:23:34,330 Ca și înainte, linia de trei nu execută la toate, deoarece nu există perechi 471 00:23:34,330 --> 00:23:35,380 de persoane în cameră. 472 00:23:35,380 --> 00:23:38,350 Și așa N rămâne 0, care într-adevăr coincide cu numărul de 473 00:23:38,350 --> 00:23:39,570 persoane in camera. 474 00:23:39,570 --> 00:23:42,280 >> Dar ceea ce în cazul în care există trei persoane in camera? 475 00:23:42,280 --> 00:23:44,130 Cum face acest tarif algoritm? 476 00:23:44,130 --> 00:23:44,990 Să vedem. 477 00:23:44,990 --> 00:23:47,460 În conformitate o, am inițializa N la 0. 478 00:23:47,460 --> 00:23:50,870 Pentru o pereche de aceste persoane, am incrementa apoi N de 2. 479 00:23:50,870 --> 00:23:51,800 Dar atunci ce? 480 00:23:51,800 --> 00:23:54,960 Nu există o altă pereche plin de oameni in camera, astfel încât linia doi nu 481 00:23:54,960 --> 00:23:56,180 se mai aplică. 482 00:23:56,180 --> 00:24:00,530 Și așa până la sfârșitul acestui algoritm, N este încă 2, care nu este corectă. 483 00:24:00,530 --> 00:24:03,810 >> Într-adevăr, acest algoritm se spune că este buggy, pentru că are o greșeală. 484 00:24:03,810 --> 00:24:05,820 Permite atac cu unele noi pseudocod. 485 00:24:05,820 --> 00:24:09,670 Se notează cu n egal 0 pentru fiecare pereche de persoane în cameră. 486 00:24:09,670 --> 00:24:12,550 Setat N egal cu N, plus 2. 487 00:24:12,550 --> 00:24:17,140 Dacă o persoană rămâne nepereche, setat N egal cu N, plus 1. 488 00:24:17,140 --> 00:24:20,140 Pentru a rezolva această problemă special, ne-am a introdus, în linie patru, un 489 00:24:20,140 --> 00:24:24,520 stare, altfel cunoscut ca o ramură că numai execută în cazul în care există o 490 00:24:24,520 --> 00:24:26,640 persoana care nu am putut pereche cu un altul. 491 00:24:26,640 --> 00:24:30,440 Iar acum, dacă există unul sau trei sau orice număr impar de persoane, în 492 00:24:30,440 --> 00:24:33,290 cameră, acest algoritm va conta acum ei. 493 00:24:33,290 --> 00:24:34,560 >> Putem face chiar mai bine? 494 00:24:34,560 --> 00:24:38,820 Ei bine, am putea conta în 3s sau 4s sau chiar 5s și 10s, dar dincolo de asta, e 495 00:24:38,820 --> 00:24:41,360 mergi la a lua un pic greu de punct. 496 00:24:41,360 --> 00:24:44,660 La sfârșitul zilei, fie că se realizează de computere sau de oameni, 497 00:24:44,660 --> 00:24:46,750 algoritmi sunt doar un set de instrucțiuni cu 498 00:24:46,750 --> 00:24:48,290 care pentru a rezolva problemele. 499 00:24:48,290 --> 00:24:49,792 Acestea au fost doar trei. 500 00:24:49,792 --> 00:24:52,404 Ce probleme ai rezolva cu un algoritm? 501 00:24:52,404 --> 00:24:52,901 >> [END redare video] 502 00:24:52,901 --> 00:24:55,883 >> DAVID MALAN: Aceasta este singura dată Eu va apărea în formă de desene animate. 503 00:24:55,883 --> 00:25:01,050 Dar, în cazul în care această poveste frunzele, acum, este cum putem face mai bine? 504 00:25:01,050 --> 00:25:04,680 Câte trei și patru labe, vom cere, putem conta oameni mult mai rapid, dar putem 505 00:25:04,680 --> 00:25:06,290 face fundamental mai bine decât asta? 506 00:25:06,290 --> 00:25:07,540 Și eu pariu putem. 507 00:25:07,540 --> 00:25:11,980 >> Dacă vom introduce un pic de propria noastră pseudocod aici, am de gând să propună 508 00:25:11,980 --> 00:25:14,550 că putem realiza o linie de genul asta. 509 00:25:14,550 --> 00:25:17,280 Noi nu vom conta persoane unul, doi, trei, patru. 510 00:25:17,280 --> 00:25:19,470 Noi nu vom merge doi, patru, șase, opt. 511 00:25:19,470 --> 00:25:23,390 Vom face în mod fundamental mai bine prin regândirea problema, și în acest 512 00:25:23,390 --> 00:25:27,080 caz, pârghie o altfel insuficient de resurse. 513 00:25:27,080 --> 00:25:31,460 >> Într-o clipă, sper că vei ierta și ne plac de picioare în 514 00:25:31,460 --> 00:25:34,470 loc, moment în care vom rog pe fiecare dintre voi să-și asume în ta 515 00:25:34,470 --> 00:25:36,400 mințile numărul 1. 516 00:25:36,400 --> 00:25:39,560 Te apoi merge la din ce în ce dur, cum trece timpul, găsi 517 00:25:39,560 --> 00:25:42,740 cineva care este în picioare, combina numerele împreună 518 00:25:42,740 --> 00:25:43,720 adăugându-le în sus. 519 00:25:43,720 --> 00:25:47,490 Unul dintre voi este apoi merge la cursa de stea mai întâi, iar cealaltă persoană 520 00:25:47,490 --> 00:25:48,880 se va repeta. 521 00:25:48,880 --> 00:25:53,090 >> Deci, cu alte cuvinte, prin însămânțarea toți vă cu numărul 1, și apoi 522 00:25:53,090 --> 00:25:57,800 combinarea celor 1s în 2S și cele 2s în 4S, cu toată lumea din ce în ce 523 00:25:57,800 --> 00:26:02,740 ședinței în jos, ar trebui să ne, la sfârșitul anului acest algoritm, au doar un singur împrumut 524 00:26:02,740 --> 00:26:07,570 Sufletul care nu sa așezat destul de repede, dar care are întreaga numărul de audiențe 525 00:26:07,570 --> 00:26:09,180 în mintea lui sau a ei. 526 00:26:09,180 --> 00:26:13,730 >> Deci, dacă ar fi, să mergem mai departe și - primul pas - sta in loc. 527 00:26:13,730 --> 00:26:15,600 Și executa. 528 00:26:15,600 --> 00:26:36,580 >> [Mulțime murmurând] 529 00:26:36,580 --> 00:26:38,820 >> DAVID MALAN: Stii unde Lauren este? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Mulțime murmurând] 532 00:27:23,350 --> 00:27:24,340 >> DAVID MALAN: În regulă? 533 00:27:24,340 --> 00:27:39,110 >> [Mulțime murmurând] 534 00:27:39,110 --> 00:27:41,365 >> DAVID MALAN: Bine, ar trebui să ne se apropie de final. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Vedem un om în picioare aici încă. 537 00:27:47,670 --> 00:27:48,770 Cine altcineva trebuie să fie asociat? 538 00:27:48,770 --> 00:27:50,020 Dacă vreți să cuplezi. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Cineva sus. 541 00:27:56,520 --> 00:27:58,150 De ce nu am da o mână de aici. 542 00:27:58,150 --> 00:28:01,370 Pentru foarte puțini oameni care sunt încă în picioare, ceea ce numere nu- 543 00:28:01,370 --> 00:28:02,790 au în mintea ta? 544 00:28:02,790 --> 00:28:04,020 >> STUDENT: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID MALAN: 78 plus - 546 00:28:06,010 --> 00:28:07,840 care stă aici? 547 00:28:07,840 --> 00:28:08,370 >> STUDENT: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID MALAN: Plus 39. 549 00:28:09,590 --> 00:28:12,310 Plus, care mai este încă în picioare? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, cine altcineva? 552 00:28:15,960 --> 00:28:17,200 Un alt 81? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 Și atunci ce e în spate? 555 00:28:19,210 --> 00:28:20,360 >> STUDENT: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID MALAN: 49, plus? 557 00:28:21,812 --> 00:28:22,950 >> STUDENT: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID MALAN: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Este că altcineva? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Bună treabă. 562 00:28:30,460 --> 00:28:33,610 >> [Râsete] 563 00:28:33,610 --> 00:28:34,690 >> DAVID MALAN: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Bună treabă! 566 00:28:36,220 --> 00:28:38,660 >> [Râsete] 567 00:28:38,660 --> 00:28:42,570 >> [Aplauze] 568 00:28:42,570 --> 00:28:43,820 >> DAVID MALAN: Oricine altcineva încă în picioare? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Îmi pare rău? 571 00:28:47,260 --> 00:28:48,110 >> STUDENT: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID MALAN: 99. 573 00:28:49,810 --> 00:28:52,620 Oricine altcineva încă în picioare? 574 00:28:52,620 --> 00:28:57,290 Și numărul total de studenți aici este, de fapt, în conformitate cu - 575 00:28:57,290 --> 00:28:59,400 aveți un număr? 576 00:28:59,400 --> 00:29:03,170 Oh, numărul real de persoane în Camera, conform cont că 577 00:29:03,170 --> 00:29:07,660 semenii didactice făceau pe cale de toată lumea în, a fost 729. 578 00:29:07,660 --> 00:29:11,070 Deci, dintr-o cameră plină de studenții de la Harvard care s-au numărat, 579 00:29:11,070 --> 00:29:14,126 Răspunsul este 637. 580 00:29:14,126 --> 00:29:15,480 >> [Râsete] 581 00:29:15,480 --> 00:29:16,350 >> DAVID MALAN: Atât de aproape. 582 00:29:16,350 --> 00:29:17,360 Dar încă. 583 00:29:17,360 --> 00:29:22,110 OK, astfel că este o învățătură momentul, nu? 584 00:29:22,110 --> 00:29:24,120 Acest lucru acum este ceea ce vom descrie ca un bug. 585 00:29:24,120 --> 00:29:28,120 Undeva pe drum, am făcut unele aritmetică greșit, sau cineva se așeză, 586 00:29:28,120 --> 00:29:29,930 sau la stânga, sau ceva a mers prost. 587 00:29:29,930 --> 00:29:30,930 Dar asta e bine. 588 00:29:30,930 --> 00:29:33,390 Deoarece chiar și în continuare, ne- am destul de aproape. 589 00:29:33,390 --> 00:29:37,480 Și aș spune că am ajuns la greșit răspunde mult mai repede decât mi-ar fi 590 00:29:37,480 --> 00:29:39,770 folosind abordarea mea mai liniar. 591 00:29:39,770 --> 00:29:42,630 >> Deci, hai sa presupunem ca am de fapt, aia corecta, dar cred că acum despre ceea ce 592 00:29:42,630 --> 00:29:46,870 se întâmpla de fiecare dată, comparativ cu meu propriul algoritm arătând naiv. 593 00:29:46,870 --> 00:29:48,420 Unu, doi, trei. 594 00:29:48,420 --> 00:29:53,010 Dacă există într-adevăr, 729 sau 637 de persoane aici, care m-ar fi luat 595 00:29:53,010 --> 00:29:57,720 literalmente 637 sau 729 pointings de deget și 596 00:29:57,720 --> 00:29:59,490 incrementarea numărul meu total. 597 00:29:59,490 --> 00:30:01,910 Și am putea face un pic mai bine de merg două, patru, șase, opt, și 598 00:30:01,910 --> 00:30:05,660 dubla viteza, poate chiar triple sau Cameră cu patru paturi, în funcție de cât de bine pot 599 00:30:05,660 --> 00:30:07,110 face ca numărare a voturilor în capul meu. 600 00:30:07,110 --> 00:30:10,720 >> Dar această abordare ca voi sa a fost fundamental diferit. 601 00:30:10,720 --> 00:30:12,770 Pentru că la început, toți s-au ridicat. 602 00:30:12,770 --> 00:30:14,620 Deci, tot 729. 603 00:30:14,620 --> 00:30:17,370 Și apoi literalmente jumătate de te-ai așezat jos. 604 00:30:17,370 --> 00:30:19,720 Și după aceea, un alt jumătate dintre voi așezat. 605 00:30:19,720 --> 00:30:22,650 Și după aceea, un alt jumătate dintre voi așezat. 606 00:30:22,650 --> 00:30:27,470 >> Și numărul total de ori pe care le baieti ar fi așezat este de aproximativ 607 00:30:27,470 --> 00:30:31,740 opt sau nouă sau zece ori totale, în funcție de ceea ce numărul nostru total este. 608 00:30:31,740 --> 00:30:33,300 Și putem rezolva de face acest alt mod. 609 00:30:33,300 --> 00:30:37,740 Dacă am fi avut 1.024 de oameni in camera, numărul total de ori, putem 610 00:30:37,740 --> 00:30:41,870 înjumătăți 1.024 de oameni este 10. 611 00:30:41,870 --> 00:30:43,370 >> Acum gândiți-vă la cealaltă direcție. 612 00:30:43,370 --> 00:30:49,170 Să presupunem, ridicol, că am avut, să zicem patru miliarde de oameni din această cameră, 613 00:30:49,170 --> 00:30:50,860 sau o cameră puțin mai mare. 614 00:30:50,860 --> 00:30:54,550 De câte ori ne-ar fi dus prin acest algoritm, astfel încât jumătate 615 00:30:54,550 --> 00:30:58,110 de clasa sta jos? 616 00:30:58,110 --> 00:31:03,050 Este doar de gând să ia 32 de astfel de operațiuni, chiar și într-o clasă de mărime 617 00:31:03,050 --> 00:31:03,770 patru miliarde. 618 00:31:03,770 --> 00:31:04,055 De ce? 619 00:31:04,055 --> 00:31:06,980 Pentru că patru miliarde merge la doi miliarde de euro, se duce la un milion, duce la 620 00:31:06,980 --> 00:31:09,925 500 de milioane, se duce la 250 milioane de euro, punct, punct, punct. 621 00:31:09,925 --> 00:31:14,940 Eu pot face numai că divizia de aproximativ 32 ori, moment în care, toată lumea, cu excepția 622 00:31:14,940 --> 00:31:17,820 o persoană ar fi ramas in picioare. 623 00:31:17,820 --> 00:31:21,590 >> Și că, de asemenea, este un fel de puternic Ideea că tot vom încerca să 624 00:31:21,590 --> 00:31:24,690 pârghie în acest curs, și în programare și informatică mai mult 625 00:31:24,690 --> 00:31:29,400 în general, aceste germeni de o idee cu care putem rezolva apoi probleme mult, 626 00:31:29,400 --> 00:31:31,130 mult mai puternic. 627 00:31:31,130 --> 00:31:34,610 Așa că am început destul de simplu cu care pseudocod și un tip într-o cameră, dar 628 00:31:34,610 --> 00:31:38,205 acum cu o camera plina de oameni am făcut fundamental mai bine. 629 00:31:38,205 --> 00:31:41,460 >> Ei bine, hai acum trecerea de la pseudocod la unele codul actual. 630 00:31:41,460 --> 00:31:44,200 Acest limbaj sunteți pe cale să se întâmple să fie numit JavaScript, și 631 00:31:44,200 --> 00:31:46,190 ne vom întoarce la această spre sfârșitul semestru. 632 00:31:46,190 --> 00:31:49,960 Este un limbaj de programare pe care le folosi pentru a face site-uri și alte astfel de 633 00:31:49,960 --> 00:31:51,360 software-ul în aceste zile. 634 00:31:51,360 --> 00:31:54,890 Și l-am folosit, datorită unui prieten de-al nostru de la Stanford, pentru a codifica 635 00:31:54,890 --> 00:31:56,630 unele informații ascunse aici. 636 00:31:56,630 --> 00:31:59,500 Aceasta este arta de a steganografia, ca să spunem așa, unde te poți ascunde 637 00:31:59,500 --> 00:32:03,990 informații în ceea ce pare altfel fi zgomot sau un complet diferit 638 00:32:03,990 --> 00:32:05,220 imagine cu totul. 639 00:32:05,220 --> 00:32:10,120 Dar încorporate în această imagine special este într-adevăr un mesaj secret de felul. 640 00:32:10,120 --> 00:32:12,950 >> Așa că lasă-mă să merg mai departe și trage în sus aceeași imagine aici, aceasta 641 00:32:12,950 --> 00:32:14,270 timp într-un browser web. 642 00:32:14,270 --> 00:32:17,710 Și am de gând să facă cu mâna mea la unele dintre detaliile pentru ziua de azi, în special 643 00:32:17,710 --> 00:32:21,780 pentru cei dintre voi care acest lucru arata ca nu numai JavaScript ci grec, ca o 644 00:32:21,780 --> 00:32:23,930 complet limbă necunoscută. 645 00:32:23,930 --> 00:32:26,190 Dar aceasta este un exemplu de un limbaj de programare. 646 00:32:26,190 --> 00:32:30,660 >> Și de acum, să ia pe credința că aceasta prima linie de cod - 647 00:32:30,660 --> 00:32:32,470 și de cod, vreau să spun doar text. 648 00:32:32,470 --> 00:32:35,660 Textul pe care am fi putut scris literalmente în Microsoft Word, dacă am avut 649 00:32:35,660 --> 00:32:37,630 software-ul potrivit pentru atunci face ceva cu ea. 650 00:32:37,630 --> 00:32:42,120 Codul sursă de programare, de programare cod, este de fapt doar de text, și-l 651 00:32:42,120 --> 00:32:45,420 arată diferit în funcție de ceea ce limbă pe care îl utilizați, nu spre deosebire de limba engleză și 652 00:32:45,420 --> 00:32:49,200 Spaniolă și rusă toate arate diferit atunci când le tastați la tastatură. 653 00:32:49,200 --> 00:32:53,520 >> Deci, această primă linie, de acum ia pe credință, deschide pur și simplu un grafic de 654 00:32:53,520 --> 00:32:56,160 internet, care grafic zgomotos tocmai am văzut. 655 00:32:56,160 --> 00:32:59,900 Această linie următor aici este un exemplu de buclă, și am văzut că de fapt același 656 00:32:59,900 --> 00:33:01,130 jargon în video TED. 657 00:33:01,130 --> 00:33:03,750 O buclă este ceva care se întâmplă din nou și din nou, și chiar dacă acest lucru 658 00:33:03,750 --> 00:33:08,440 absolut pare criptic, cu cuvânt pentru, și unele paranteze, și 659 00:33:08,440 --> 00:33:09,510 unele punct și virgulă. 660 00:33:09,510 --> 00:33:13,070 Vom reveni la acest înainte de mult timp, dar că bucla nu este în esență 661 00:33:13,070 --> 00:33:17,310 spune programul, repeta peste tot dintre aceste puncte zgomotoase, de la stânga la 662 00:33:17,310 --> 00:33:18,980 dreapta, de sus în jos. 663 00:33:18,980 --> 00:33:21,260 >> Deoarece la sfârșitul zilei, o imagine ca acest lucru - și vă puteți de fapt, 664 00:33:21,260 --> 00:33:22,860 un fel de-l vezi pe acest proiector - 665 00:33:22,860 --> 00:33:25,280 este de fapt doar o grilă de puncte. 666 00:33:25,280 --> 00:33:29,730 Deci, putem identifica fiecare dintre aceste puncte de o coordonată, x, y, și cu aceasta 667 00:33:29,730 --> 00:33:33,890 Programul, acum putem începe să face ceva pentru aceste puncte. 668 00:33:33,890 --> 00:33:37,540 >> Deci, ce am de gând să merg mai departe aici și nu este am de gând să facă unele schimbări. 669 00:33:37,540 --> 00:33:41,000 În primul rând am de gând să merg mai departe și de a scăpa tuturor acestora verzui și albăstrui 670 00:33:41,000 --> 00:33:43,520 zgomot, și am de gând să merg mai departe și tastați următoarele 671 00:33:43,520 --> 00:33:45,710 Desigur sintaxa criptic. 672 00:33:45,710 --> 00:33:48,020 IM pentru imagine. 673 00:33:48,020 --> 00:33:53,380 set albastru la locația x, virgulă, locație y, la 0. 674 00:33:53,380 --> 00:33:55,610 Cu alte cuvinte, vreau sa doar opriți toate albastru 675 00:33:55,610 --> 00:33:56,920 puncte în acea imagine. 676 00:33:56,920 --> 00:33:59,800 >> Am de gând să merg mai departe acum și faceți clic pe acest Run / butonul Save, și veți 677 00:33:59,800 --> 00:34:02,850 observa pe partea dreaptă, apare imaginea rezultată. 678 00:34:02,850 --> 00:34:06,120 Acum, super-verde sa, dar că nu este surprinzător, pentru că m-am întors literalmente 679 00:34:06,120 --> 00:34:11,070 off, prin efectuarea unei 1a 0, toate albastru în fotografie. 680 00:34:11,070 --> 00:34:12,540 >> Ei bine, acum să-l facem un pic mai mult. 681 00:34:12,540 --> 00:34:16,989 IM pentru imagine, punct setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 Și asta înseamnă că doar itera din stânga la dreapta și apoi de sus în jos. 683 00:34:20,659 --> 00:34:23,520 Oprește-l cu o valoare de la 0, precum și. 684 00:34:23,520 --> 00:34:24,750 Salvare. 685 00:34:24,750 --> 00:34:28,100 Și de pe proiector, nu puteți de fapt, a se vedea nimic, la toate. 686 00:34:28,100 --> 00:34:31,380 >> Pe ecranul laptop-ul meu, daca ma uit in doar în mod corect, eu pot vedea un pic de o 687 00:34:31,380 --> 00:34:33,300 imagine, pentru că sunt încă unele roșu acolo. 688 00:34:33,300 --> 00:34:35,540 Dacă ați auzit vreodată acronimul RGB - 689 00:34:35,540 --> 00:34:36,830 roșu, verde, albastru - 690 00:34:36,830 --> 00:34:39,110 se referă la această compoziție a unei imagini utilizând 691 00:34:39,110 --> 00:34:40,230 doar cele trei culori. 692 00:34:40,230 --> 00:34:43,159 Și chiar acum, ne-am aruncat tot verde, tot albastru, dar 693 00:34:43,159 --> 00:34:44,500 nu e mult roșu. 694 00:34:44,500 --> 00:34:45,920 >> Deci, lasă-mă să manivelă până roșu. 695 00:34:45,920 --> 00:34:47,070 Cum pot face asta? 696 00:34:47,070 --> 00:34:49,300 Ei bine, în primul rând, am de gând să cer acest program o întrebare. 697 00:34:49,300 --> 00:34:52,030 Am de gând să merg mai departe și să-l numim o variabilă, la fel ca în algebra. 698 00:34:52,030 --> 00:34:54,060 Puteți avea x sau y sau z. 699 00:34:54,060 --> 00:34:57,230 Am de gând să declare o variabilă și spune, a pus în această variabilă, 700 00:34:57,230 --> 00:35:02,790 temporar, valoarea imagini valoare getRed la x, y. 701 00:35:02,790 --> 00:35:05,870 >> Și, din nou, ne vom întoarce la toate din acest detaliu în viitor. 702 00:35:05,870 --> 00:35:10,630 Dar pentru acum, doar ia de la credință că această linie se cere programul, ceea ce 703 00:35:10,630 --> 00:35:12,740 este valoarea roșu la x, y? 704 00:35:12,740 --> 00:35:14,450 În acel punct particular? 705 00:35:14,450 --> 00:35:15,710 >> Apoi, am de gând să fac ceva pentru ea. 706 00:35:15,710 --> 00:35:21,100 Apoi, am de gând să fac imagine dot set roșu la x, y, y, dar de data aceasta am de gând să 707 00:35:21,100 --> 00:35:24,760 impuls de care are de a face ori roșu, să zicem, 10. 708 00:35:24,760 --> 00:35:26,870 Deci, crește cu un factor de 10. 709 00:35:26,870 --> 00:35:29,880 Lasă-mă depărta acum și click putea rula / Save. 710 00:35:29,880 --> 00:35:36,430 Și voila, că a fost acolo tot timp, chiar dacă ochii noștri umane 711 00:35:36,430 --> 00:35:37,900 nu a putut chiar vedea. 712 00:35:37,900 --> 00:35:41,470 >> Deci, din nou, acest lucru este acum cod reală, o exemplu de o limbă pe care o vom veni 713 00:35:41,470 --> 00:35:42,770 înapoi la înainte de mult timp. 714 00:35:42,770 --> 00:35:46,670 Dar dau seama, mai ales cei dintre voi cu nici o astfel de experiență, este destul de 715 00:35:46,670 --> 00:35:50,280 curând că ne va fi scrierea de cod de genul asta acolo. 716 00:35:50,280 --> 00:35:54,520 De fapt, un instrument cu care ești oarecum familiar, probabil, este de CS50 717 00:35:54,520 --> 00:35:57,330 propriul instrument de curs-shopping, care a fost de fapt repornit în această vară de către unii 718 00:35:57,330 --> 00:36:01,070 proprii foști elevi CS50 lui, întoarce acum TFS. 719 00:36:01,070 --> 00:36:04,740 >> Deci, acest lucru se întâmplă să fie un site web construit într-un limbaj numit PHP. 720 00:36:04,740 --> 00:36:08,510 Acesta folosește o bază de date numită MySQL, lucrurile cu care vom ajunge pe mâinile noastre 721 00:36:08,510 --> 00:36:10,190 murdar mai târziu în semestrul. 722 00:36:10,190 --> 00:36:14,140 Dar crezi sau nu, chiar ceva ca aceasta din urmă se reduce la 723 00:36:14,140 --> 00:36:19,480 simplu de bucle și condițiile și ramuri, cum ar fi cele am văzut doar o 724 00:36:19,480 --> 00:36:21,530 clipă în urmă în video TED. 725 00:36:21,530 --> 00:36:25,180 >> Ceea ce am crezut că mi-ar face acum este parte nu doar ceva ce personalul a făcut 726 00:36:25,180 --> 00:36:28,010 pentru campus, ci mai degrabă ceva un fost student - trei 727 00:36:28,010 --> 00:36:29,080 studenți, în fapt - 728 00:36:29,080 --> 00:36:33,950 făcut acest an trecut, Sierra, Daniel, și Sam, ultimul de care nu a avut înainte 729 00:36:33,950 --> 00:36:36,370 experiență de programare când a luat CS50. 730 00:36:36,370 --> 00:36:39,950 Și pentru proiectul lor finală, acestea expus, la CS50 Fair, un 731 00:36:39,950 --> 00:36:43,720 aplicație numită wrdly, care este un Programul de web-based pentru care au făcut 732 00:36:43,720 --> 00:36:47,670 acest film pe care m-am gândit să împărtășesc vă dau un sentiment de doar ceea ce este 733 00:36:47,670 --> 00:36:49,280 posibil până la sfârșitul termenului. 734 00:36:49,280 --> 00:37:57,170 >> [Redarea muzicii] 735 00:37:57,170 --> 00:38:00,570 >> DAVID MALAN: Asta-i de la Săptămâna Zero la Săptămâna 12 în acest an trecut. 736 00:38:00,570 --> 00:38:05,470 >> [Aplauze] 737 00:38:05,470 --> 00:38:09,520 >> DAVID MALAN: Ca un teaser, de asemenea, într-adevăr pentru a vă deschide apetitul este de la ceea ce este 738 00:38:09,520 --> 00:38:14,580 posibil, este posibil să fi văzut deja, sau ar putea vedea în curând, market.cs50.net, un 739 00:38:14,580 --> 00:38:17,710 nou instrument care echipa curs are a fost de lucru pe, de data aceasta în 740 00:38:17,710 --> 00:38:21,530 colaborare cu Harvard Student Agenții, astfel că începând cu acest an 741 00:38:21,530 --> 00:38:24,980 și continuând sperăm în acest vin de vara va avea un standard de 742 00:38:24,980 --> 00:38:27,890 oportunitate în campus pentru a cumpăra și vinde lucruri de interes pentru tine. 743 00:38:27,890 --> 00:38:32,220 Și cu parteneriatul prin HSA, veți fi, de asemenea, posibilitatea de a fixa elemente off 744 00:38:32,220 --> 00:38:35,950 în unul din magazinele fizice HSA, la unele punct în viitor, astfel încât să se 745 00:38:35,950 --> 00:38:39,150 lucruri proxy, în special în ceea ce absolvi și nu doresc neapărat să 746 00:38:39,150 --> 00:38:44,110 arunca lucruri, dar de fapt plata transmite la oameni care s-ar putea urma 747 00:38:44,110 --> 00:38:45,270 aici, în campus. 748 00:38:45,270 --> 00:38:46,740 Astfel mai mult pe care să vină. 749 00:38:46,740 --> 00:38:49,830 >> Dar un pic mai concret, un instrument care a venit din CS50 în recent 750 00:38:49,830 --> 00:38:52,760 ani, cu care unii dintre voi ar putea fi familiar și alții dintre voi ar putea fi 751 00:38:52,760 --> 00:38:57,940 googling acum, la CS50.net/2x, vei găsi o legătură într-o extensie Chrome 752 00:38:57,940 --> 00:39:01,250 care este demonstrativ de modul în care se poate folosesc JavaScript, că aceeași limbă ne 753 00:39:01,250 --> 00:39:06,660 utilizat cu Turnul Eiffel acum o clipă, să pună în aplicare 2x viteza de redare 754 00:39:06,660 --> 00:39:09,000 pentru toate videoclipurile Harvard iSites. 755 00:39:09,000 --> 00:39:11,880 Acest lucru este ceva care este construit în video player propriu CS50 lui. 756 00:39:11,880 --> 00:39:14,870 Dar acest lucru, de asemenea, în cazul în care veți începe să sapi în codul sursă, pe care le vom 757 00:39:14,870 --> 00:39:18,840 fericit pune la dispoziție, veți vedea cât de puteți rezolva chiar si probleme de genul asta, 758 00:39:18,840 --> 00:39:23,180 accelerarea widget-uri în site-uri cu care sunteți deja bine cunoscut. 759 00:39:23,180 --> 00:39:26,630 >> Deci, un cuvânt acum pe cursul și așteptări și ceea ce se află înainte. 760 00:39:26,630 --> 00:39:29,445 În general, vom aduna într-adevăr aici în zilele de luni și miercuri - deși 761 00:39:29,445 --> 00:39:31,490 aceasta vineri, vom aduna din cauza Săptămâna de cumparaturi - 762 00:39:31,490 --> 00:39:34,640 1:00 - 02:00, deși uneori până la 02:30. 763 00:39:34,640 --> 00:39:38,700 Având în vedere că, prin urmare, ați putea dori sau trebuie să ia unele clase de la 02:00 764 00:39:38,700 --> 00:39:42,480 mai departe, sau chiar înainte, ne dăm seama curs este de sustinere a ceea ce se numește 765 00:39:42,480 --> 00:39:45,900 înscrierea simultană, prin care vom susține o petiție către Consiliul de anunțuri și 766 00:39:45,900 --> 00:39:49,400 dvs. rezident decanii în numele dumneavoastră dacă aveți un conflict undeva în această 767 00:39:49,400 --> 00:39:50,790 1:00 - 02:30 gamă. 768 00:39:50,790 --> 00:39:54,110 Meciuri că URL-ul on-line pentru detalii suplimentare. 769 00:39:54,110 --> 00:39:57,750 >> Dar în ceea ce privește structura de sprijin care caracterizează CS50, pentru studenți 770 00:39:57,750 --> 00:40:01,750 mai mult și mai puțin confortabil la fel, am ofera piese distincte ale secțiunilor. 771 00:40:01,750 --> 00:40:04,730 Și aceasta este o câteva săptămâni off, dar înainte de mult timp, vi se va cere să 772 00:40:04,730 --> 00:40:05,770 nivelul de confort. 773 00:40:05,770 --> 00:40:08,590 Esti printre cei mai putin confortabil, mai confortabil, sau 774 00:40:08,590 --> 00:40:10,520 undeva în între? 775 00:40:10,520 --> 00:40:13,150 >> Și vom avea trei distincte piese care contribuie la 776 00:40:13,150 --> 00:40:14,470 exact acele audiențe. 777 00:40:14,470 --> 00:40:17,900 Deci, în nici un punct în termen ar trebui să vă chiar simti ca esti in competitie 778 00:40:17,900 --> 00:40:21,390 față de orice student cu mai sau mai puțin fundal decât tine. 779 00:40:21,390 --> 00:40:24,160 Într-adevăr, cursul este menit să fie mult mai mult de colaborare și mult 780 00:40:24,160 --> 00:40:25,650 mai deschisă decât atât. 781 00:40:25,650 --> 00:40:29,030 >> În ceea ce privește seturi de problemă, veți găsi, de asemenea, că, în plus față de 782 00:40:29,030 --> 00:40:32,130 Standard Edition a problemei în fiecare săptămână stabilite, există de multe ori un "hacker 783 00:40:32,130 --> 00:40:37,010 Edition ", care este menit să fie orientate la 5% la 10% sau astfel de 784 00:40:37,010 --> 00:40:40,270 demografic care este într-adevăr printre cei mai confortabil si-ar dori mai mult 785 00:40:40,270 --> 00:40:43,960 de o provocare decât standardul Ediția din acest PSET așteaptă. 786 00:40:43,960 --> 00:40:46,390 Mai multe detalii despre cele care trebuie găsite în programă. 787 00:40:46,390 --> 00:40:49,430 >> Dar, de asemenea, acolo pot fi găsite detalii pe cursurile de sfârșitul de zile. 788 00:40:49,430 --> 00:40:51,570 De obicei problema stabilește sunt datorate în zilele de joi. 789 00:40:51,570 --> 00:40:55,550 Cu toate acestea, puteți extinde multe dintre dvs. termenele în această toamnă de la joi la 790 00:40:55,550 --> 00:41:00,010 Vineri pur și simplu prin îndeplinirea ne jumătate, ca să spunem așa, răspunde la câteva warm-up 791 00:41:00,010 --> 00:41:03,370 întrebări în unele probleme săptămână seturi, care va automat 792 00:41:03,370 --> 00:41:05,710 atunci vă dau un plus de 24 de ore. 793 00:41:05,710 --> 00:41:09,120 Noi va scădea, de asemenea, cel mai mic dvs. scor, conform programă. 794 00:41:09,120 --> 00:41:12,170 >> Pentru a vă da un sentiment de ceea ce este problema seturi sunt - pentru că este într-adevăr 795 00:41:12,170 --> 00:41:15,120 Problema cursului stabilește că în cele din urmă să definească aproape în fiecare 796 00:41:15,120 --> 00:41:18,760 experiența student, mai mult decât prelegeri, mai mult decât secțiuni, mai multe 797 00:41:18,760 --> 00:41:21,230 mult decât cele mai multe alte aspect al cursului. 798 00:41:21,230 --> 00:41:25,140 Anul trecut, de exemplu, am început, ca vom începe în acest an, cu Scratch. 799 00:41:25,140 --> 00:41:29,150 Deosebit de aceasta vineri, vom folosi, pentru doar timp de o zi, o grafică 800 00:41:29,150 --> 00:41:32,260 limbaj de programare, cu care vom începe de programare prin glisare și 801 00:41:32,260 --> 00:41:37,580 in scadere piese de puzzle care numai asambla fizic, dacă are sens 802 00:41:37,580 --> 00:41:38,990 să facă acest lucru logic. 803 00:41:38,990 --> 00:41:43,460 >> Săptămâna viitoare, vom repede trecerea la C, un destul de vechi, dar foarte mici și 804 00:41:43,460 --> 00:41:48,510 limbaj simplu, care ne va permite să într-adevăr merge la 0 la 60 de-a lungul 805 00:41:48,510 --> 00:41:52,290 de doar câteva săptămâni, și apoi pariu aceste competențe și aceeași cunoaștere a 806 00:41:52,290 --> 00:41:56,160 constructe de bază în limbaje de nivel superior, cum ar fi PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, și încă altele încă. 808 00:41:58,240 --> 00:42:02,560 >> Anul trecut, a treia PSET în cursul a fost că de criptografie, un 809 00:42:02,560 --> 00:42:06,380 Cererea specifice domeniului în care ne elevii contestat de a realiza orice 810 00:42:06,380 --> 00:42:11,140 numărul de cifruri, programe cu care pentru a lupta sau a decoda informații, 811 00:42:11,140 --> 00:42:11,880 pentru a cripta. 812 00:42:11,880 --> 00:42:16,300 Pentru ediția hacker, prin contrast, ne-a dat elevilor hacker-un fișier 813 00:42:16,300 --> 00:42:19,900 de la un calculator standard, Unix conține nume de utilizator și parole, 814 00:42:19,900 --> 00:42:22,740 acesta din urmă din care au fost criptate, și am provocat pe cei hacker 815 00:42:22,740 --> 00:42:26,850 studenți pentru a decripta, cel mai bine cum au putut, aceste parole, încă de la acea 816 00:42:26,850 --> 00:42:27,770 același domeniu. 817 00:42:27,770 --> 00:42:30,580 >> Scramble, un joc cu care unii dintre voi sunt, probabil, familiar. 818 00:42:30,580 --> 00:42:34,410 O bucată criminalistica, unde cerem elevilor pentru a recupera datele care au fost 819 00:42:34,410 --> 00:42:38,530 altfel șters din propria mea digitală compact flash card camera lui, prin 820 00:42:38,530 --> 00:42:42,740 scris de fapt, software-ul pentru a afla, unde au fost zerouri și cele din 821 00:42:42,740 --> 00:42:46,850 ca aparat de fotografiat digital, care anterior compus dintr-un grafic JPEG? 822 00:42:46,850 --> 00:42:49,710 >> O provocare de felul anul trecut care implică scris cel mai rapid 823 00:42:49,710 --> 00:42:53,160 ortografic posibil, concurente cu prietenii și colegii de clasă, dacă 824 00:42:53,160 --> 00:42:53,860 le-ar plăcea. 825 00:42:53,860 --> 00:42:56,330 Implementarea Huff 'n Puff, un program de compresie. 826 00:42:56,330 --> 00:43:01,930 Și apoi se încheie semestru cu CS50 Finanțe, o aplicație web-based cu 827 00:43:01,930 --> 00:43:06,570 care vă creați un site eTrade, cum ar fi să cumpere și să vândă stocurile, astfel încât să 828 00:43:06,570 --> 00:43:09,860 vorbesc, de fapt, trăgând aproape cotatii in timp real Yahoo! 829 00:43:09,860 --> 00:43:10,450 Finanțe. 830 00:43:10,450 --> 00:43:13,590 >> Ceea ce nu am făcut anul trecut a fost un set de probleme care rămâne 831 00:43:13,590 --> 00:43:14,810 cu toate acestea, un favorit. 832 00:43:14,810 --> 00:43:18,400 Dacă nu ați plecat la shuttle.cs50.net, veți vedea un utilizator 833 00:43:18,400 --> 00:43:19,670 interfață un pic ca aceasta. 834 00:43:19,670 --> 00:43:23,530 Dar acum doi ani, clasa implementat, folosind Google Maps și 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in și un pic de savvy de conducere în jurul valorii campus, 836 00:43:28,570 --> 00:43:33,290 astfel încât Obiectivul acestui joc a fost, după cum puteți vedea unele dintre fete, 837 00:43:33,290 --> 00:43:37,530 este de a conduce în jurul campusului cauta personal, colegii de predare și CAS, și 838 00:43:37,530 --> 00:43:40,080 atunci când nu, pune-le pe autobuzul de transfer. 839 00:43:40,080 --> 00:43:44,035 Nici unul dintre ei, de fapt par a fi aici, deci vom introduce un cod de ieftin. 840 00:43:44,035 --> 00:43:47,150 >> [Râsete] 841 00:43:47,150 --> 00:43:48,430 >> DAVID MALAN: Acolo mergem. 842 00:43:48,430 --> 00:43:49,240 Bine. 843 00:43:49,240 --> 00:43:51,750 Și aici este personalul dantelat în întreaga campus. 844 00:43:51,750 --> 00:43:54,530 Și, după cum puteți vedea, pe dreapta parte a ecranului, autobuzul de transfer 845 00:43:54,530 --> 00:43:55,510 are locuri goale. 846 00:43:55,510 --> 00:43:59,000 Iar obiectivul a fost de a scrie cod cu care a simula acest 847 00:43:59,000 --> 00:44:01,790 de conducere și ridicarea și fixarea off de pasageri. 848 00:44:01,790 --> 00:44:04,960 Acela, de asemenea, folosind un limbaj numit JavaScript. 849 00:44:04,960 --> 00:44:10,030 Astfel seama că programele de genul asta se va fie pe aceeași traiectorie noastră acest 850 00:44:10,030 --> 00:44:10,910 an, precum și. 851 00:44:10,910 --> 00:44:13,640 >> În ceea ce privește, acum, de sprijin suplimentar, avem ore de birou. 852 00:44:13,640 --> 00:44:16,520 După cum s-ar putea fi văzut în casa ta sala de mese sau în Annenberg, 853 00:44:16,520 --> 00:44:19,280 vom fi în sala de mese casa săli de patru nopți pe săptămână - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot și Annenberg acest an, 8:00 - 23:00. 855 00:44:24,450 --> 00:44:26,830 Și ceea ce ne-am gandit face în acest an este ceva un pic diferit. 856 00:44:26,830 --> 00:44:29,650 >> Dacă ați auzit zvonuri anul trecut că a fost un pic prea stresant, acest 857 00:44:29,650 --> 00:44:32,800 orelor de anul acesta, așa cum vom descrie saptamana viitoare, va fi mult mai organic, 858 00:44:32,800 --> 00:44:36,900 prin care la sosire, veți fi expediate la o masă special 859 00:44:36,900 --> 00:44:39,860 în cazul în care mai mulți membri ai personalului așteaptă, și vom face lucruri mult mai mult 860 00:44:39,860 --> 00:44:40,440 organic. 861 00:44:40,440 --> 00:44:43,740 Nu mai coada, nu mai iPad, dar mai degrabă au mai intim 862 00:44:43,740 --> 00:44:47,300 conversații în jurul unei mese de doar opt sau așa de studenți, astfel încât să putem 863 00:44:47,300 --> 00:44:50,880 aproximativ simt de ceea ce altfel ar fi o clasă mult mai mic. 864 00:44:50,880 --> 00:44:54,120 >> Oferim, de asemenea, aceste lucruri ne numit walkthroughs, video filmat în 865 00:44:54,120 --> 00:44:57,330 avans, prin una dintre predarea cursului de baieti, Zamyla, în care ea 866 00:44:57,330 --> 00:45:00,690 te plimba prin probleme săptămână seturi, oferind sfaturi și trucuri pentru 867 00:45:00,690 --> 00:45:02,640 provocări care stau în față. 868 00:45:02,640 --> 00:45:06,230 Și invers, după seturi de probleme sunt datorat, în acest an, vom lansa, de asemenea, 869 00:45:06,230 --> 00:45:09,100 clipuri mici numesc post-mortem care de fapt, te plimbi prin 870 00:45:09,100 --> 00:45:13,630 soluții reprezentative, atât de bună și rău, prin care se poate deduce cum 871 00:45:13,630 --> 00:45:17,550 ai putea avea sau ar trebui să aibă implementat solutia ta. 872 00:45:17,550 --> 00:45:20,500 >> Și ce vom oferi pentru prima dată și în acest an, în special 873 00:45:20,500 --> 00:45:23,420 pentru acei studenți care se folosesc Desigur, altul 874 00:45:23,420 --> 00:45:28,580 resurse, dar cu toate acestea se luptă prea mult, desigur 875 00:45:28,580 --> 00:45:33,030 se va asocia acestor elevi, ca resursele permit, cu tutori, astfel încât 876 00:45:33,030 --> 00:45:35,840 aveți o mult mai intim oportunitatea de casa săli de mese 877 00:45:35,840 --> 00:45:38,700 permite pentru asistență unu-la-unu. 878 00:45:38,700 --> 00:45:42,780 >> Acum, o privire final de la un de jocuri un scop în vedere. 879 00:45:42,780 --> 00:45:44,580 S-ar putea să fie familiarizat cu Hackathon CS50. 880 00:45:44,580 --> 00:45:48,120 Ei bine, venind în decembrie, de la 08:00 PM la 7:00, la începutul anului 881 00:45:48,120 --> 00:45:51,410 Citirea Perioada, va fi o oportunitate pentru a aduna cu colegii - 882 00:45:51,410 --> 00:45:53,130 acest lucru ar fi în jur de 21:00 - 883 00:45:53,130 --> 00:45:56,550 în care se arunca cu capul în finala implementarea proiectului, alături 884 00:45:56,550 --> 00:45:59,910 colegii, prietenii, și alimente. 885 00:45:59,910 --> 00:46:03,680 Acest lucru ar fi în jur de 1:00, atunci când primul lot de alimente au sosit. 886 00:46:03,680 --> 00:46:08,470 Și acest lucru este de aproximativ 4:0 că an special la CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Dar adevăratul punctul culminant al cursului este menite să Târgul CS50, un nivel de campus 888 00:46:12,000 --> 00:46:15,790 Expoziția de propriile proiecte finale, la care familia și prietenii sunt toate 889 00:46:15,790 --> 00:46:18,730 invitat, în calitate de recrutori noastre și prietenii noștri din industrie. 890 00:46:18,730 --> 00:46:22,170 Aceasta, de exemplu, este o bucatica de Oameni de 2000 de plus care au participat 891 00:46:22,170 --> 00:46:23,160 ultimii ani. 892 00:46:23,160 --> 00:46:27,180 Expresii de acest gen nu sunt mai puțin frecvente, și de a face similar dvs. 893 00:46:27,180 --> 00:46:29,660 colegii plăcere în lucrurile ai realizat. 894 00:46:29,660 --> 00:46:33,170 >> Și, de fapt, spre acest scop, ne-am un eveniment de lansare de termen, precum și. 895 00:46:33,170 --> 00:46:37,400 Dacă lucrurile ca acest apel să vă, sau tu ești cel puțin curios ca la ceea ce 896 00:46:37,400 --> 00:46:41,590 acest lucru, știu că o nouă tradiție a Cursul se numește CS50 Ziua Puzzle. 897 00:46:41,590 --> 00:46:45,710 Și acest lucru a fost instituit un cuplu de ani în urmă pentru a semnala într-adevăr la campus 898 00:46:45,710 --> 00:46:48,930 că informatica nu este despre programare, și cu siguranță nu este 899 00:46:48,930 --> 00:46:51,960 despre care cuprinde numai acei studenți care au experiență anterioară. 900 00:46:51,960 --> 00:46:54,200 Este într-adevăr despre rezolvarea problemelor mai general. 901 00:46:54,200 --> 00:46:57,360 >> Și astfel Puzzle Ziua, pe parcursul ultimilor ani, a evoluat într-un frumos 902 00:46:57,360 --> 00:47:00,500 parteneriat cu prietenii noștri de la Facebook, prin care nu va fi fabulos 903 00:47:00,500 --> 00:47:04,830 premii și pizza peste râu la I-Lab această sâmbătă vine. 904 00:47:04,830 --> 00:47:09,180 Cap de la acea adresă URL cu două sau trei Prietenii dacă doriți să împărtășească 905 00:47:09,180 --> 00:47:10,830 în această nouă tradiție. 906 00:47:10,830 --> 00:47:14,180 >> Așa că aș vrea să vă întreb care vă păstrați o lucru în minte, și avem doar o 907 00:47:14,180 --> 00:47:17,070 două minute clip pe care pentru a închide astăzi. 908 00:47:17,070 --> 00:47:19,640 73% este numărul să-și amintească. 909 00:47:19,640 --> 00:47:23,900 Tort, de asemenea, va va astepta afara acestui transept ca sa continuam la doar o 910 00:47:23,900 --> 00:47:26,710 câteva momente, care este o tradiție de curs, precum și. 911 00:47:26,710 --> 00:47:29,860 Dar acest lucru este citat cheia de la Programa cursului a păstra în minte. 912 00:47:29,860 --> 00:47:32,820 Ceea ce contează în cele din urmă în acest curs nu este atât de mult în cazul în care ajunge 913 00:47:32,820 --> 00:47:36,580 în raport cu colegii dumneavoastră, dar în cazul în care te, în săptămâna 12, ajunge în raport cu 914 00:47:36,580 --> 00:47:37,960 te în Săptămâna 0. 915 00:47:37,960 --> 00:47:43,670 >> Dar idee pe care vă va lăsa cu aici, astăzi, este aceasta ultima unul aici 916 00:47:43,670 --> 00:47:47,580 de nostru același Daniel, care a făcut wrdly video de acum doar o clipă. 917 00:47:47,580 --> 00:47:50,000 Am plecat cu această idee de ceea ce se află înainte. 918 00:47:50,000 --> 00:47:53,360 Și cum vom face acest lucru, dacă am putea avea CS50 Personalul de la partea din față a camerei 919 00:47:53,360 --> 00:47:57,280 pentru a veni în până la stadiul de a picta toate mai mult de o imagine vizuală ca să 920 00:47:57,280 --> 00:47:59,100 ceea ce vă așteaptă în acest an - 921 00:47:59,100 --> 00:48:00,350 obtinerea ciudat. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Vom încheia cu acest aici, pe ecran. 924 00:48:05,188 --> 00:48:18,634 >> [Redarea muzicii] 925 00:48:18,634 --> 00:48:21,124 >> DAVID MALAN: Acesta este CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIC - MATT & KIM, "Este in regula"] 927 00:50:00,226 --> 00:50:03,245 >> SPEAKER 1: Îmi place CS50 mai mult de pisici. 928 00:50:03,245 --> 00:50:06,030 >> DIFUZOR 2: Whoooooooaaaah! 929 00:50:06,030 --> 00:50:06,990 >> [Râsete] 930 00:50:06,990 --> 00:50:08,140 >> DAVID MALAN: Acest lucru, atunci, este CS50. 931 00:50:08,140 --> 00:50:10,050 Vă vom vedea vineri. 932 00:50:10,050 --> 00:50:13,370 >> [Aplauze si a aplauda] 933 00:50:13,370 --> 00:50:17,540 >> NARATOR: La CS50 următoare, o scena demo-ul nu merge conform planului. 934 00:50:17,540 --> 00:50:19,080 >> DAVID MALAN: Vrem să găsim Mike Smith în cartea de telefon. 935 00:50:19,080 --> 00:50:20,380 Ei bine, ce sunt instinctele tale? 936 00:50:20,380 --> 00:50:23,750 S-ar putea sari aproximativ la mijlocul cartea de telefon, privirea în jos, vedem că 937 00:50:23,750 --> 00:50:26,830 Sunt la M, și eu știu acum că Mike Smith nu este la stânga. 938 00:50:26,830 --> 00:50:27,840 El trebuie să fie la dreapta. 939 00:50:27,840 --> 00:50:30,515 Și astfel încât în ​​acest moment, am se poate rupe literalmente - 940 00:50:30,515 --> 00:50:33,300 În acest moment, putem rupe literalmente - 941 00:50:33,300 --> 00:50:36,490 În acest moment, putem figurat rupe cartea de telefon în jumătate. 942 00:50:36,490 --> 00:50:38,954 >> [Vibreze ukelele]