1 00:00:00,000 --> 00:00:02,952 >> [Musik spelar] 2 00:00:02,952 --> 00:00:11,316 3 00:00:11,316 --> 00:00:13,284 >> [Musik spelar] 4 00:00:13,284 --> 00:00:18,722 5 00:00:18,722 --> 00:00:19,680 DAVID MALAN: Okej. 6 00:00:19,680 --> 00:00:21,983 Detta är CS50. 7 00:00:21,983 --> 00:00:24,108 [Musik spelas Tritonal, Cash,  "Kastlös"] 8 00:00:24,108 --> 00:01:40,846 9 00:01:40,846 --> 00:01:41,844 [Musik spelar] 10 00:01:41,844 --> 00:01:45,337 TALARE 1: Jag kommer att Frankrike, och du kommer också. 11 00:01:45,337 --> 00:01:48,331 [Musik spelar] 12 00:01:48,331 --> 00:02:38,100 13 00:02:38,100 --> 00:02:41,930 DAVID MALAN: Detta är CS50, Harvard University introduktion 14 00:02:41,930 --> 00:02:44,520 till den intellektuella företag i datavetenskap 15 00:02:44,520 --> 00:02:47,940 och konst av program-- och för första gången i historien, 16 00:02:47,940 --> 00:02:49,800 Yale University också. 17 00:02:49,800 --> 00:02:53,830 I själva verket, oavsett om du är här i Cambridge eller i New Haven eller Miami eller St Louis 18 00:02:53,830 --> 00:02:55,550 eller Amsterdam eller någonstans runt världen 19 00:02:55,550 --> 00:03:00,080 ta CS50, dator vetenskap E50, CS50X, CS50 AP, 20 00:03:00,080 --> 00:03:02,090 vi är alla en och samma. 21 00:03:02,090 --> 00:03:04,490 Välkommen till CS50. 22 00:03:04,490 --> 00:03:05,380 >> Vad vi have-- 23 00:03:05,380 --> 00:03:06,348 >> [APPLÅDER] 24 00:03:06,348 --> 00:03:07,800 >> [Skrattar] 25 00:03:07,800 --> 00:03:10,220 >> [APPLÅDER] 26 00:03:10,220 --> 00:03:13,610 27 00:03:13,610 --> 00:03:16,920 >> Så jag gjorde ett misstag själv några tid sedan när jag började college. 28 00:03:16,920 --> 00:03:21,580 Och jag kom till college, och jag bestämde oss för att uppriktigt sagt, stick i min komfortzon. 29 00:03:21,580 --> 00:03:24,475 Jag hamnade förklara en koncentration, eller en större, av regeringen. 30 00:03:24,475 --> 00:03:27,880 Ant som var mest en funktion av mig är ganska bekant med regeringen 31 00:03:27,880 --> 00:03:31,270 eller åtminstone historia eller jag gillade konstitutionell rätt i high school. 32 00:03:31,270 --> 00:03:34,150 Och så när jag kom hit, jag typ av drogs mot saker 33 00:03:34,150 --> 00:03:35,800 som jag var redan bekant. 34 00:03:35,800 --> 00:03:36,300 Höger? 35 00:03:36,300 --> 00:03:38,167 Gud förbjude jag gör dåligt i klassen. 36 00:03:38,167 --> 00:03:40,250 Jag ville verkligen att bo inom min komfortzon, 37 00:03:40,250 --> 00:03:43,010 och det var inte förrän sophomore år som jag äntligen 38 00:03:43,010 --> 00:03:46,820 fick upp modet att kliva fot i ett klassrum som kallas CS50. 39 00:03:46,820 --> 00:03:51,150 Och på den punkten, jag slutligen inser att min Gud, läxor kunde faktiskt 40 00:03:51,150 --> 00:03:51,910 var rolig. 41 00:03:51,910 --> 00:03:54,410 >> I själva verket var jag en av dessa barn att på fredag ​​kvällar när 42 00:03:54,410 --> 00:03:57,640 P-apparater skulle släppas, jag skulle gå tillbaka till mitt rum och dyka 43 00:03:57,640 --> 00:03:58,790 i nattens P-set. 44 00:03:58,790 --> 00:04:01,606 Och för mig, det var ett tecken att detta var ett område för mig. 45 00:04:01,606 --> 00:04:04,480 Men vad var viktigare var faktum att jag fick upp denna nerv 46 00:04:04,480 --> 00:04:08,000 att utforska vatten obekanta för mig och få bortom min egen komfortzon 47 00:04:08,000 --> 00:04:12,320 och ärligt talat, jag kunde bara göra det andra år genom att ta denna klass 48 00:04:12,320 --> 00:04:13,050 godkänd / underkänd. 49 00:04:13,050 --> 00:04:16,470 >> I själva verket var det den allra sista dagen som Jag äntligen gått över och slutligen 50 00:04:16,470 --> 00:04:19,707 förklarade CS som min koncentration, sätta gov på den punkten bakom mig. 51 00:04:19,707 --> 00:04:22,290 Och så vi inte fastställer i denna kurs att vända er alla 52 00:04:22,290 --> 00:04:25,780 i CS majors eller anrikningsverk, men snarare att ge dig en möjlighet 53 00:04:25,780 --> 00:04:29,780 att förhoppningsvis gå bortom världen som du för närvarande bekant 54 00:04:29,780 --> 00:04:33,660 och föra tillbaka från denna värld färdigheter och kunskaper och kunniga 55 00:04:33,660 --> 00:04:36,220 som du kan använda till din egen värld, oavsett om det är 56 00:04:36,220 --> 00:04:39,080 inom humaniora, samhällsvetenskap, naturvetenskap, eller utanför. 57 00:04:39,080 --> 00:04:40,871 >> Faktum är att om du är känslan lite intrepid 58 00:04:40,871 --> 00:04:43,250 om att vara i det här rummet att inte tala om i denna klass, 59 00:04:43,250 --> 00:04:47,560 inse att om historien är någon indikation, 72% av dig 60 00:04:47,560 --> 00:04:49,802 har aldrig tagit en CS kurs innan. 61 00:04:49,802 --> 00:04:52,760 Så det är med alla medel inte fallet att studenten som sitter till vänster 62 00:04:52,760 --> 00:04:56,850 eller till höger eller framför eller bakom dig vet mycket mer om CS 63 00:04:56,850 --> 00:04:58,820 eller programmering i synnerhet än dig. 64 00:04:58,820 --> 00:05:00,432 Det är i själva verket inte fallet. 65 00:05:00,432 --> 00:05:02,140 Och faktiskt, en stor del av stödstrukturen 66 00:05:02,140 --> 00:05:04,600 att vi har satt upp i detta Naturligtvis under de senaste många år 67 00:05:04,600 --> 00:05:08,840 har varit för just detta reason-- till tillhandahålla en ramp som fortfarande lämnar 68 00:05:08,840 --> 00:05:11,640 lika strikt och lika hög som ever-- 69 00:05:11,640 --> 00:05:14,860 men vars lutning tillåter studenter mindre bekväm och bekvämare 70 00:05:14,860 --> 00:05:18,420 Lika att lyckas oavsett av hans eller hennes tidigare bakgrund. 71 00:05:18,420 --> 00:05:20,610 >> I själva verket, vad slutligen frågor i denna klass är inte 72 00:05:20,610 --> 00:05:22,830 så mycket där du hamnar i förhållande till dina klasskamrater 73 00:05:22,830 --> 00:05:26,000 men där man i vecka 12 hamna i förhållande till sig själv 74 00:05:26,000 --> 00:05:28,720 i vecka noll, vilket är där vi är här i dag. 75 00:05:28,720 --> 00:05:32,315 >> I själva verket och detta kan mycket väl och förmodligen ser ut som grekiska 76 00:05:32,315 --> 00:05:32,940 för många av er. 77 00:05:32,940 --> 00:05:35,200 Men lita på att detta och så mycket mer 78 00:05:35,200 --> 00:05:38,990 kommer att vara helt i din gripa in bara lite tid. 79 00:05:38,990 --> 00:05:41,410 >> Men i dag, fokuserar vi på några av idéerna på högre nivå 80 00:05:41,410 --> 00:05:43,822 att ge dig en smak av CS50 och datavetenskap 81 00:05:43,822 --> 00:05:45,530 i en känsla för vad du registrerar dig för. 82 00:05:45,530 --> 00:05:48,000 Och faktiskt, datavetenskap kan destilleras mer 83 00:05:48,000 --> 00:05:51,209 helt enkelt som beräknings thinking-- tänka som en dator, om ni så vill. 84 00:05:51,209 --> 00:05:54,000 Och det finns så många olika saker ingredienser som går in i det, 85 00:05:54,000 --> 00:05:56,240 men låt oss föreslå bara tre för idag. 86 00:05:56,240 --> 00:05:59,420 Om målet av klassen slutligen är inte att lära dig programmering, 87 00:05:59,420 --> 00:06:03,022 är inte att lära dig C eller PHP eller SQL eller valfritt antal ord 88 00:06:03,022 --> 00:06:04,730 och akronymer i Naturligtvis beskrivning, 89 00:06:04,730 --> 00:06:07,850 utan snarare att lära dig att lösa problem på ett mer effektivt 90 00:06:07,850 --> 00:06:11,670 och att tänka mer metodiskt och mer algoritm, så att säga. 91 00:06:11,670 --> 00:06:13,610 Låt oss se vad exakt detta innebär. 92 00:06:13,610 --> 00:06:17,000 >> Så jag skulle föreslå att tänka beräknings kokar ner 93 00:06:17,000 --> 00:06:17,834 att lösa problem. 94 00:06:17,834 --> 00:06:19,333 Vad behöver du för att lösa ett problem? 95 00:06:19,333 --> 00:06:21,470 Du behöver input-- som insignalen till problem-- 96 00:06:21,470 --> 00:06:23,636 du behöver en utgång, som förhoppningsvis lösningen, 97 00:06:23,636 --> 00:06:26,720 och sedan är det en process för att lösa detta problem, som 98 00:06:26,720 --> 00:06:30,030 vi kallar en algorithm-- en uppsättning instruktioner för att lösa vissa problem. 99 00:06:30,030 --> 00:06:33,340 >> Men först, låt oss fokusera på den första och den sista av dessa in- och utgångar. 100 00:06:33,340 --> 00:06:38,070 Datorer trots allt, som synes bara förstår nollor och ettor. 101 00:06:38,070 --> 00:06:39,299 Men hur kan det möjligen vara? 102 00:06:39,299 --> 00:06:42,090 Även om du inte är bekant alls med vad som finns under huven, 103 00:06:42,090 --> 00:06:44,980 du förmodligen åtminstone hört att datorer förstår binary-- 104 00:06:44,980 --> 00:06:48,050 bara nollor och ones-- men hur kan du kanske göra något intressant? 105 00:06:48,050 --> 00:06:49,960 >> Jo, en av de teman av klassen går 106 00:06:49,960 --> 00:06:53,293 att vara så här layering-- där i dag, vi ska ta en snabb blick på den lägsta nivån 107 00:06:53,293 --> 00:06:55,620 detaljer, men med varje dag som går, där vi lager 108 00:06:55,620 --> 00:06:59,420 eller abstrakt ovanpå dessa uppgifter att faktiskt lösa högre nivå 109 00:06:59,420 --> 00:07:01,080 problem av intresse för oss. 110 00:07:01,080 --> 00:07:04,730 >> Så här är vad vi kan kalla binary-- med bara ett alfabet av 0 och 1. 111 00:07:04,730 --> 00:07:06,960 Men vi människor är mestadels bekant med decimal. 112 00:07:06,960 --> 00:07:08,130 December mening 10. 113 00:07:08,130 --> 00:07:09,070 Bi betyder två. 114 00:07:09,070 --> 00:07:12,100 Och så i decimal systemet, har vi 10 siffror 115 00:07:12,100 --> 00:07:14,099 på vår disposal-- av Naturligtvis noll till nio. 116 00:07:14,099 --> 00:07:16,140 Så om du tittar på ett antal så här, de flesta av er 117 00:07:16,140 --> 00:07:19,016 intuitivt bara förstå att är 123. 118 00:07:19,016 --> 00:07:20,640 Det finns inget riktigt hårt om det. 119 00:07:20,640 --> 00:07:22,452 Men varför är det 123? 120 00:07:22,452 --> 00:07:24,660 Tja, om du tänker tillbaka på grade school-- eller åtminstone 121 00:07:24,660 --> 00:07:26,410 hur jag lärde mig detta typ av world-- du 122 00:07:26,410 --> 00:07:29,640 kanske kommer ihåg att vi behandlade dessa saker i kolumner, eller platser. 123 00:07:29,640 --> 00:07:31,412 >> Så vi har de platsen till höger. 124 00:07:31,412 --> 00:07:32,620 De tiotals plats i mitten. 125 00:07:32,620 --> 00:07:34,240 De hundratals plats till vänster. 126 00:07:34,240 --> 00:07:36,980 Och sedan hur får vi från detta mönster symbols-- 127 00:07:36,980 --> 00:07:41,771 1 2 3-- till denna högre nivå Tanken att vi känner som 123? 128 00:07:41,771 --> 00:07:43,461 Tja, det är bara några enkla aritmetik. 129 00:07:43,461 --> 00:07:43,960 Höger? 130 00:07:43,960 --> 00:07:48,960 >> Den finns innebär i huvudsak ge oss 100 gånger 1 plus 10 gånger 131 00:07:48,960 --> 00:07:50,410 2 plus 1 gånger 3. 132 00:07:50,410 --> 00:07:53,430 Och naturligtvis om vi gör ut matematik där, det är 100 plus 20 133 00:07:53,430 --> 00:07:56,480 plus 3-- annars känd som 123. 134 00:07:56,480 --> 00:07:58,820 >> Så om du är på samma sida som denna rätt 135 00:07:58,820 --> 00:08:02,320 nu och är bekväm med sk decimalsystemet som en människa, 136 00:08:02,320 --> 00:08:05,750 det är faktiskt väl inom din räckvidd av komfort 137 00:08:05,750 --> 00:08:07,220 överväga nu det binära systemet. 138 00:08:07,220 --> 00:08:10,110 Ta en vild guess-- detta representerar, i en värld av datorer 139 00:08:10,110 --> 00:08:12,001 i binary-- hur många? 140 00:08:12,001 --> 00:08:12,500 Noll. 141 00:08:12,500 --> 00:08:13,580 >> Men varför är det? 142 00:08:13,580 --> 00:08:17,460 Tja, visar det sig att de kolumner eller platser här-- de är inte befogenheter 10. 143 00:08:17,460 --> 00:08:19,670 1, 10, 100, 1000, och så vidare. 144 00:08:19,670 --> 00:08:21,890 De är i stället helt Enkelt befogenheter 2. 145 00:08:21,890 --> 00:08:25,400 Så, 1, 2, 4, 8, 16, 32, och så vidare. 146 00:08:25,400 --> 00:08:29,630 Och så nu har vi naturligtvis få till 0 här helt enkelt eftersom vi har 4 gånger 147 00:08:29,630 --> 00:08:34,510 0 plus 2 gånger 0 plus 1 gånger 0, vilket naturligtvis ger oss 0. 148 00:08:34,510 --> 00:08:37,399 >> Men hur går jag till väga representerar antalet 1? 149 00:08:37,399 --> 00:08:39,440 Vad är mönstret för nollor och ettor att representera 150 00:08:39,440 --> 00:08:42,720 siffer vi människor känner som en? 151 00:08:42,720 --> 00:08:44,280 001. 152 00:08:44,280 --> 00:08:46,370 Och 2? 153 00:08:46,370 --> 00:08:47,480 010. 154 00:08:47,480 --> 00:08:49,760 >> Och nu mönstret börjar upprepas. 155 00:08:49,760 --> 00:08:50,890 Nu är det 011. 156 00:08:50,890 --> 00:08:54,310 Och återigen, 0 fours, en två, en 1. 157 00:08:54,310 --> 00:08:55,180 Så två plus ett. 158 00:08:55,180 --> 00:08:56,140 Det är tre. 159 00:08:56,140 --> 00:08:59,069 >> Och nu att representera fyra, vi inte bara ändra på det 0 till 1. 160 00:08:59,069 --> 00:09:01,360 Du sorts måste bära, så att säga, och siffrorna 161 00:09:01,360 --> 00:09:03,700 börja vända runt bara som i den decimala världen. 162 00:09:03,700 --> 00:09:04,670 >> Så det här är fyra. 163 00:09:04,670 --> 00:09:05,410 Detta är fem. 164 00:09:05,410 --> 00:09:06,330 Detta är sex. 165 00:09:06,330 --> 00:09:07,580 Detta är 7. 166 00:09:07,580 --> 00:09:09,720 Och så har vi räknat så högt som 7. 167 00:09:09,720 --> 00:09:12,400 >> Nu behöver vi bara är mer en bits-- mer nollor och en s. 168 00:09:12,400 --> 00:09:15,700 Och faktiskt "bitar", om du har hörde detta term-- binär siffra. 169 00:09:15,700 --> 00:09:17,470 Bit är där det kommer ifrån. 170 00:09:17,470 --> 00:09:20,190 Och så om vi vill representera större siffror, behöver vi fler bitar. 171 00:09:20,190 --> 00:09:24,360 Men låt oss komma bort från glider nu till något lite mer verklig. 172 00:09:24,360 --> 00:09:27,540 Antag att vi vill faktiskt representerar denna sak. 173 00:09:27,540 --> 00:09:31,790 >> Nå, låt oss ta en titt nu på en liten demonstration. 174 00:09:31,790 --> 00:09:35,270 Så det här är en webbaserad applikation att en av CS50: s egna, Michael G, 175 00:09:35,270 --> 00:09:38,160 sätta ihop i sommar för att hjälpa oss klargöra exakt denna idé. 176 00:09:38,160 --> 00:09:40,420 Och skulle någon som att våga upp på scenen 177 00:09:40,420 --> 00:09:42,915 framför allt sina klasskamrater? 178 00:09:42,915 --> 00:09:43,790 Rakt framför. 179 00:09:43,790 --> 00:09:45,660 Kom upp. 180 00:09:45,660 --> 00:09:48,350 >> Du måste vara bekväm på kameran och internet. 181 00:09:48,350 --> 00:09:50,930 182 00:09:50,930 --> 00:09:52,450 Åh, just här. 183 00:09:52,450 --> 00:09:52,950 OK. 184 00:09:52,950 --> 00:09:53,740 Vi är OK. 185 00:09:53,740 --> 00:09:54,240 Okej. 186 00:09:54,240 --> 00:09:54,740 Kom upp. 187 00:09:54,740 --> 00:09:56,150 Vad heter du? 188 00:09:56,150 --> 00:09:58,550 Emily komma på upp. 189 00:09:58,550 --> 00:09:59,410 Så det här är Emily. 190 00:09:59,410 --> 00:10:00,840 Vilket år är du? 191 00:10:00,840 --> 00:10:01,660 >> Förstaårselev. 192 00:10:01,660 --> 00:10:02,810 >> Emily trevligt att träffa dig. 193 00:10:02,810 --> 00:10:03,310 David. 194 00:10:03,310 --> 00:10:03,810 >> Okej. 195 00:10:03,810 --> 00:10:06,120 Så upp på skärmen här, vi har denna pekskärm 196 00:10:06,120 --> 00:10:08,425 som kommer att ge oss möjlighet att faktiskt interagera med detta program, 197 00:10:08,425 --> 00:10:09,265 och det är bara en webbläsare. 198 00:10:09,265 --> 00:10:11,390 Det är Chrome fullt skärmad just nu är men det 199 00:10:11,390 --> 00:10:14,030 programmerats av Michael till reagera på ett sätt som gör att 200 00:10:14,030 --> 00:10:15,970 oss att leka med binära siffror. 201 00:10:15,970 --> 00:10:20,220 >> Så till exempel, här har vi inte tre men åtta bits-- nollor och ettor. 202 00:10:20,220 --> 00:10:22,000 Just nu är vi titta på siffran 0. 203 00:10:22,000 --> 00:10:25,150 Och faktiskt, alla åtta nollor i decimal betyder noll. 204 00:10:25,150 --> 00:10:26,900 Så det är allt som är som antytt här. 205 00:10:26,900 --> 00:10:29,395 >> Så om du ville representerar antal 8, 206 00:10:29,395 --> 00:10:31,520 Vad är mönstret av nollor och de som du vill? 207 00:10:31,520 --> 00:10:35,160 Du kan helt enkelt peka uppåt eller nedåt eller siffrorna själva. 208 00:10:35,160 --> 00:10:35,660 Okej. 209 00:10:35,660 --> 00:10:37,659 Så det är naturligtvis 8, som du kan se upp där. 210 00:10:37,659 --> 00:10:41,260 Och om vi ville gör 16, vad gör vi? 211 00:10:41,260 --> 00:10:42,701 >> Japp, trycker bara det igen. 212 00:10:42,701 --> 00:10:43,200 16. 213 00:10:43,200 --> 00:10:43,870 Okej. 214 00:10:43,870 --> 00:10:46,522 Så det här är alla fina och bra, det är fortfarande mycket låg nivå. 215 00:10:46,522 --> 00:10:48,230 Vi behöver ett sätt i verkliga världen för Emily 216 00:10:48,230 --> 00:10:50,550 för att faktiskt representerar dessa saker. 217 00:10:50,550 --> 00:10:54,230 Och så antar att vi vänder dessa nollor och ettor, vilket är mycket 218 00:10:54,230 --> 00:10:55,980 konceptuella, till faktiska glödlampor. 219 00:10:55,980 --> 00:10:56,480 Höger? 220 00:10:56,480 --> 00:10:59,540 >> En dator är en fysisk, mekanisk, elektrisk anordning. 221 00:10:59,540 --> 00:11:02,220 Och dess input-- åtminstone om du ansluter den eller avgift det-- 222 00:11:02,220 --> 00:11:05,090 är att ha batterikraft och elektroner strömmar in och ut. 223 00:11:05,090 --> 00:11:08,150 >> Så nu, varför inte vi sluta tänka om bitar som nollor och ettor, 224 00:11:08,150 --> 00:11:10,470 men något mer fysiskt som glödlampor här. 225 00:11:10,470 --> 00:11:13,815 Och om Dan Armendariz kunde gå mig för bara en moment-- komma på up-- 226 00:11:13,815 --> 00:11:15,440 vi kommer att köa en ansökan. 227 00:11:15,440 --> 00:11:15,940 >> Kom över, Emily. 228 00:11:15,940 --> 00:11:18,270 Tyvärr är detta den mest besvärliga demo för du någonsin. 229 00:11:18,270 --> 00:11:20,330 Kom hit. 230 00:11:20,330 --> 00:11:22,080 Vi kommer att köa med tack till Dan 231 00:11:22,080 --> 00:11:25,300 Armendariz, en annan medlem av vår personal, ett program som kallas binär glödlampa. 232 00:11:25,300 --> 00:11:28,070 >> Så vad vi har här är en iPad-applikation 233 00:11:28,070 --> 00:11:31,970 som har följande användare gränssnitt på skärmen för Emily. 234 00:11:31,970 --> 00:11:35,400 Det är bara fick exakt samma gränssnitt i huvudsak det är borta. 235 00:11:35,400 --> 00:11:39,220 Och om du nu vill representerar antal, säger 8, 236 00:11:39,220 --> 00:11:42,094 Hur skulle du gå om att göra detta märker till höger, 237 00:11:42,094 --> 00:11:43,510 glödlampor som vi har här? 238 00:11:43,510 --> 00:11:46,576 239 00:11:46,576 --> 00:11:47,620 Ah-ha. 240 00:11:47,620 --> 00:11:48,290 Magisk. 241 00:11:48,290 --> 00:11:51,830 Så om vi vill nu göra detta till något lite mer utmanande, 242 00:11:51,830 --> 00:11:58,100 och låt oss gå vidare och välja en slumpmässig nummer som nummer 50 här. 243 00:11:58,100 --> 00:11:59,015 Ingång detta. 244 00:11:59,015 --> 00:12:01,640 Och om du kan nu utmanas att komma med siffran 50, 245 00:12:01,640 --> 00:12:04,268 vi kommer att ha en fantastisk pris för dig. 246 00:12:04,268 --> 00:12:06,144 >> EMILY: OK. 247 00:12:06,144 --> 00:12:08,692 Herregud. 248 00:12:08,692 --> 00:12:10,650 DAVID MALAN: Aritmetiskt är verkligen svårt framför 249 00:12:10,650 --> 00:12:12,860 av hundratals av dina klasskamrater. 250 00:12:12,860 --> 00:12:16,260 Men 50 har svaret här. 251 00:12:16,260 --> 00:12:18,132 >> [APPLÅDER] 252 00:12:18,132 --> 00:12:21,875 >> Och så nu detta är tänkt att vara demonstrativa för Emily. 253 00:12:21,875 --> 00:12:24,315 Så här är lite ljus lökar helt som dessa, 254 00:12:24,315 --> 00:12:26,190 men det är faktiskt små magnetremsor. 255 00:12:26,190 --> 00:12:28,570 Och vad är hett om dessa och anledningen till att vi använder dem i CS50 256 00:12:28,570 --> 00:12:31,640 är att de stöder något som kallas en API-- ett programmerings 257 00:12:31,640 --> 00:12:34,681 gränssnitt, som är bara ett fint sätt att säga att vad en av våra medarbetare 258 00:12:34,681 --> 00:12:37,284 gjorde under sommaren var skapa en iPad ansökan här 259 00:12:37,284 --> 00:12:39,700 som talar över internet de glödlampor över här, 260 00:12:39,700 --> 00:12:41,810 vilka är trådlöst ansluten till en annan enhet. 261 00:12:41,810 --> 00:12:43,912 Men detta är nu ett alternativ för examensarbeten. 262 00:12:43,912 --> 00:12:46,370 Och så Emily, om du skulle så liknande, vid slutet av perioden, 263 00:12:46,370 --> 00:12:48,703 du kan pryda ditt studentrum under tiden med dem. 264 00:12:48,703 --> 00:12:50,376 Tack till Emily också. 265 00:12:50,376 --> 00:12:53,244 >> [APPLÅDER] 266 00:12:53,244 --> 00:12:56,590 267 00:12:56,590 --> 00:13:00,055 >> Men nu, låt oss vända vår uppmärksamhet på vad 268 00:13:00,055 --> 00:13:03,180 meddelandet kan ha sett ut, och det är en liten sak som denna. 269 00:13:03,180 --> 00:13:05,320 I själva verket är detta en exempel precis som en teaser 270 00:13:05,320 --> 00:13:08,400 av vad som komma på vad som är kallas en begäran API. 271 00:13:08,400 --> 00:13:11,409 Och så vad vi har här är helt enkelt exakt vilka typer av meddelande 272 00:13:11,409 --> 00:13:13,200 att efter några veckor tid i CS50, du 273 00:13:13,200 --> 00:13:16,590 kunna skicka till något ganska bekant som det faktiskt 274 00:13:16,590 --> 00:13:18,100 slå på och av. 275 00:13:18,100 --> 00:13:19,350 Men detta är alla fina och bra. 276 00:13:19,350 --> 00:13:19,850 Höger? 277 00:13:19,850 --> 00:13:22,710 Vi har den mentala modell förhoppningsvis för att representera tal med 278 00:13:22,710 --> 00:13:23,660 nollor och en s. 279 00:13:23,660 --> 00:13:26,290 Och från nollor och ettor, vi kan får högre siffror som 50, 280 00:13:26,290 --> 00:13:29,460 som Emily just gjorde, eller vi kan röra sig upp från det. 281 00:13:29,460 --> 00:13:32,160 Och jag hävdar att vi kan representera saker som bokstäver också. 282 00:13:32,160 --> 00:13:32,660 Höger? 283 00:13:32,660 --> 00:13:35,360 >> Datorer är mycket mer intressant än bara siffror. 284 00:13:35,360 --> 00:13:37,340 Och så hur ska du gå om som representerar ord 285 00:13:37,340 --> 00:13:39,420 på skärmen eller e-post eller essäer eller liknande? 286 00:13:39,420 --> 00:13:43,170 Tja, visar det sig att datorer helt enkelt abstrakt ovanpå dessa låg nivå 287 00:13:43,170 --> 00:13:47,380 detaljer, och människor för en tid sedan, kom upp med ett godtyckligt, men en konsekvent, 288 00:13:47,380 --> 00:13:51,710 kartläggning av siffror att letters-- så att varje gång du ser en stor bokstav 289 00:13:51,710 --> 00:13:54,170 A på din dator skärm, oddsen är vad 290 00:13:54,170 --> 00:13:57,370 under huven är en mönster av ettor och nollor 291 00:13:57,370 --> 00:14:00,650 som står för antal, per detta diagram, 65. 292 00:14:00,650 --> 00:14:02,830 >> Och mer fysiskt insidan av din dator, 293 00:14:02,830 --> 00:14:06,450 finns miljontals saker som kallas transistors-- dessa days-- som 294 00:14:06,450 --> 00:14:10,190 är bara växlar om du vill, saker som kan gå på och av och så föreställa sig. 295 00:14:10,190 --> 00:14:14,130 Inte åtta av dessa stora glödlampor men miljontals dessa lilla ljus 296 00:14:14,130 --> 00:14:17,490 lökar, eller switchar eller transistorer, som kan sätta på och stänga 297 00:14:17,490 --> 00:14:19,170 baserat på hur du programmerar dem. 298 00:14:19,170 --> 00:14:22,120 Och så nu har vi ett sätt att representerar bokstäver samt. 299 00:14:22,120 --> 00:14:25,300 >> I själva verket, om jag skulle använda detta kartläggning här och försöker faktiskt 300 00:14:25,300 --> 00:14:28,731 stava ut något, kan vi se Detta mönster av decimaler 301 00:14:28,731 --> 00:14:29,230 just nu. 302 00:14:29,230 --> 00:14:31,354 Så vi kommer inte att ens fokusera på binär längre. 303 00:14:31,354 --> 00:14:35,910 Låt oss bara betrakta dessa som decimaltal 72, 73, 33. 304 00:14:35,910 --> 00:14:38,044 Men vad kan detta representera? 305 00:14:38,044 --> 00:14:39,960 Någon har en tillräckligt fotografiskt minne 306 00:14:39,960 --> 00:14:43,060 att veta vad som stavas på skärmen här? 307 00:14:43,060 --> 00:14:43,560 Ja några. 308 00:14:43,560 --> 00:14:44,190 Så hej. 309 00:14:44,190 --> 00:14:48,330 H-I och sedan ett utropstecken, som inte var faktiskt på skärmen. 310 00:14:48,330 --> 00:14:51,060 Men i själva verket finns det en kartläggning för varje brev till varje nummer 311 00:14:51,060 --> 00:14:53,340 att du kanske vill skriver på tangentbordet. 312 00:14:53,340 --> 00:14:55,430 >> Men siffrorna inte behöver representerar bara bokstäver. 313 00:14:55,430 --> 00:14:55,930 Höger? 314 00:14:55,930 --> 00:14:59,570 Alla vi vet om bilder och fotografier och ljudfiler 315 00:14:59,570 --> 00:15:00,870 och videofiler och liknande. 316 00:15:00,870 --> 00:15:03,580 Så klart kan vi representera högre ting nivå fortfarande. 317 00:15:03,580 --> 00:15:06,920 Och så vad en dator gör är helt enkelt välja 318 00:15:06,920 --> 00:15:11,240 att tolka mönster av noll ettor på olika sätt beroende på sammanhanget. 319 00:15:11,240 --> 00:15:13,130 >> Om du dubbelklickar på en Microsoft Word ikon, 320 00:15:13,130 --> 00:15:15,900 du ser ord på skärmen i stället för färger och bilder 321 00:15:15,900 --> 00:15:18,850 eftersom ord vet att detta är en uppsats som du faktiskt har skrivit. 322 00:15:18,850 --> 00:15:21,510 Om du istället dubbelklicka på en JPEG eller GIF eller PNG, 323 00:15:21,510 --> 00:15:27,070 det öppnar upp och är en bild på grund av PNG eller .docx eller vad filen 324 00:15:27,070 --> 00:15:30,450 förlängning är och vilka program du använder vet att tolka 325 00:15:30,450 --> 00:15:34,420 ett mönster av ettor och nollor på olika sätt baserat på vad dess syfte i livet är. 326 00:15:34,420 --> 00:15:37,330 >> Så till exempel, detta samma sekvens av siffror 327 00:15:37,330 --> 00:15:41,250 kan representera hur mycket rött gör du vill, hur mycket grönt vill du, 328 00:15:41,250 --> 00:15:42,810 och hur mycket blått gör du vill. 329 00:15:42,810 --> 00:15:47,490 Och faktiskt, om du någonsin hört RGB-- så bara röd grön blå. 330 00:15:47,490 --> 00:15:51,380 Och så om jag ser siffror som denna ge mig 72 röd, ge mig 73 grön, 331 00:15:51,380 --> 00:15:56,910 och 33 blått, är detta hur en dator med tre bytes-- där 332 00:15:56,910 --> 00:16:01,470 en byte är åtta bitar eller 24 bits-- skulle innebära en ganska otäck nyans 333 00:16:01,470 --> 00:16:03,660 av brunt eller gult här. 334 00:16:03,660 --> 00:16:07,500 Och i olika sammanhang, kunde de exakt samma mönster i nollor och ettor 335 00:16:07,500 --> 00:16:10,780 betyda något helt annorlunda. 336 00:16:10,780 --> 00:16:13,899 >> Så har vi nu ett sätt att representera information-- nollor och ettor. 337 00:16:13,899 --> 00:16:15,190 Ovanpå det, vi får brev. 338 00:16:15,190 --> 00:16:16,860 Ovanpå det, kan vi få färger. 339 00:16:16,860 --> 00:16:19,730 Och låt oss anta för dag att vi kan få ljud och video 340 00:16:19,730 --> 00:16:22,590 och saker så mycket mer sofistikerad än så. 341 00:16:22,590 --> 00:16:25,370 >> Men nu ska vi överväga hur vi använder dessa ingångar 342 00:16:25,370 --> 00:16:27,390 och framställning av sådana utgångar nu att vi har 343 00:16:27,390 --> 00:16:29,830 ett sätt att representera denna information. 344 00:16:29,830 --> 00:16:31,820 Tja, vi behöver något kallas en algoritm. 345 00:16:31,820 --> 00:16:34,320 Återigen, en uppsättning instruktioner för att lösa vissa problem 346 00:16:34,320 --> 00:16:37,580 steg för step-- och mer exakt, desto bättre. 347 00:16:37,580 --> 00:16:42,090 >> Och så ett exempel som människor är visserligen mindre kända dessa dagar, 348 00:16:42,090 --> 00:16:44,300 men icke desto mindre är fortfarande med oss ​​i programvara, 349 00:16:44,300 --> 00:16:47,490 är processen att leta upp någon i en telefonbok. 350 00:16:47,490 --> 00:16:51,690 >> Nu, allt färre människor känner varandra år vad denna relik faktiskt är här. 351 00:16:51,690 --> 00:16:53,470 Men tillbaka i min dag, Detta var en telefonbok 352 00:16:53,470 --> 00:16:57,266 med tusentals sidor och siffror och människors namn från A till Z. 353 00:16:57,266 --> 00:17:00,390 Och även om vi slags fusk en bit-- detta är mestadels gula sidorna. 354 00:17:00,390 --> 00:17:01,920 Det fanns också vit sidor på den tiden, som 355 00:17:01,920 --> 00:17:04,720 hade alla dessa namn och antalet faktiska människor. 356 00:17:04,720 --> 00:17:07,970 >> Och om jag ville se någon i en telefonbok som här i dag, naturligtvis, 357 00:17:07,970 --> 00:17:11,010 Jag skriver bara i de första få tecknen i hans eller hennes namn, 358 00:17:11,010 --> 00:17:13,480 och min telefon finner denna information. 359 00:17:13,480 --> 00:17:15,970 Men den process genom vilken din iPhone eller Android-telefon 360 00:17:15,970 --> 00:17:18,730 eller vad som faktiskt hitta någon i din kontaktlista 361 00:17:18,730 --> 00:17:22,099 är identisk med vad vi människor antagligen har gjort under en längre tid. 362 00:17:22,099 --> 00:17:24,260 >> Nu kunde jag ta detta problem, om man så vill, 363 00:17:24,260 --> 00:17:26,220 och ingångarna här är inte nollor och ettor. 364 00:17:26,220 --> 00:17:28,730 De pages-- liknande, låt oss säga 1000 sidor. 365 00:17:28,730 --> 00:17:32,650 Och om jag ville söka upp någon gillar Mike Smith i denna telefonbok, 366 00:17:32,650 --> 00:17:35,570 Jag kunde börja från början och se att jag är i ett avsnitt 367 00:17:35,570 --> 00:17:38,300 och sedan slå en sida på en tid, ser och ser 368 00:17:38,300 --> 00:17:42,820 som jag gör till B: s och C: s och D's och så vidare för Mike Smith. 369 00:17:42,820 --> 00:17:46,000 Smith börjar med ett S, jag förhoppningsvis så småningom hitta honom. 370 00:17:46,000 --> 00:17:50,090 >> Är detta algorithm-- som process-- korrekt? 371 00:17:50,090 --> 00:17:50,590 Ja. 372 00:17:50,590 --> 00:17:51,610 Det är rätt. 373 00:17:51,610 --> 00:17:57,040 Jag hittar Mike om han är här, men Vad är förbehållet att du kan erbjuda. 374 00:17:57,040 --> 00:17:57,541 Det är långsam. 375 00:17:57,541 --> 00:17:58,040 Höger? 376 00:17:58,040 --> 00:18:00,975 Jag vet att Mike S är typ av mot den senare hälften av telefonboken. 377 00:18:00,975 --> 00:18:02,766 Varför i helsike är jag med början vid början 378 00:18:02,766 --> 00:18:04,349 och går sida vid sida för sida. 379 00:18:04,349 --> 00:18:06,890 Så naturligtvis, kan jag vända det runt och börja från baksidan, 380 00:18:06,890 --> 00:18:08,973 men det kommer att få mig det i samma takt, 381 00:18:08,973 --> 00:18:10,930 Om du willl-- sida efter sida efter sida. 382 00:18:10,930 --> 00:18:14,190 Och det kommer inte att fungera om jag vill för att söka efter någon annan vars 383 00:18:14,190 --> 00:18:15,880 Namnet kommer tidigare i alfabetet. 384 00:18:15,880 --> 00:18:17,240 >> Så vad händer om jag gör vad jag lärt sig i skolan, 385 00:18:17,240 --> 00:18:19,205 igen, gör det inte av dem men två och två. 386 00:18:19,205 --> 00:18:23,060 Så 2, 4, 6, 8, 10, 12, och så vidare. 387 00:18:23,060 --> 00:18:23,740 Är det rätt? 388 00:18:23,740 --> 00:18:27,030 389 00:18:27,030 --> 00:18:27,560 Nej. 390 00:18:27,560 --> 00:18:28,830 Det är typ av rätt. 391 00:18:28,830 --> 00:18:33,210 Men en del av er som mumlade något, där är problemet, eller felet, 392 00:18:33,210 --> 00:18:34,240 misstaget så att säga. 393 00:18:34,240 --> 00:18:34,580 Ja. 394 00:18:34,580 --> 00:18:36,570 >> STUDENT: Du kan hoppa över den högra posten. 395 00:18:36,570 --> 00:18:37,320 >> DAVID MALAN: Ja. 396 00:18:37,320 --> 00:18:40,340 Jag skulle hoppa över Mike Smith är eftersom jag har tagit två sidor på en gång 397 00:18:40,340 --> 00:18:43,190 och han råkar bara vara inklämt mellan dessa två sidor. 398 00:18:43,190 --> 00:18:46,500 Jag kan förstå att Jag är på till T avsnitt 399 00:18:46,500 --> 00:18:48,690 inte ha funnit Mike Smith ännu. 400 00:18:48,690 --> 00:18:50,820 >> Och så vad kan det fasta finnas? 401 00:18:50,820 --> 00:18:52,709 Tja, om jag träffade Ts i telefonboken, 402 00:18:52,709 --> 00:18:54,500 Jag kan behöva fördubblas backa en eller så sida. 403 00:18:54,500 --> 00:18:56,830 Så det är fastställbara, men det är inte riktigt så enkelt 404 00:18:56,830 --> 00:18:59,170 som bara går genom två till påskynda min prestation. 405 00:18:59,170 --> 00:18:59,680 Men vad? 406 00:18:59,680 --> 00:19:00,180 Kom igen. 407 00:19:00,180 --> 00:19:03,530 Vad är vad de flesta människor kommer att göra med denna typ av telefonbok? 408 00:19:03,530 --> 00:19:04,696 Du har gett telefonboken. 409 00:19:04,696 --> 00:19:06,280 Vad gör du? 410 00:19:06,280 --> 00:19:06,922 >> Vad är det? 411 00:19:06,922 --> 00:19:07,630 Gå till mitten. 412 00:19:07,630 --> 00:19:10,620 Så hörde jag gå till mitten, och jag befinner mig ungefär i M avsnittet 413 00:19:10,620 --> 00:19:11,120 så att säga. 414 00:19:11,120 --> 00:19:12,670 Och nu vad vill jag göra? 415 00:19:12,670 --> 00:19:14,077 Bra jobbat. 416 00:19:14,077 --> 00:19:14,785 Vad heter du? 417 00:19:14,785 --> 00:19:15,350 >> JAMES: James. 418 00:19:15,350 --> 00:19:15,890 >> DAVID MALAN: James, okej. 419 00:19:15,890 --> 00:19:16,829 Vad ska jag göra nu? 420 00:19:16,829 --> 00:19:18,620 JAMES: Du går i halv som har S-talet. 421 00:19:18,620 --> 00:19:18,740 DAVID MALAN: Okej. 422 00:19:18,740 --> 00:19:20,910 Jag kommer att gå in i hälften har S i det eftersom, återigen, 423 00:19:20,910 --> 00:19:22,920 en bestämmelse här var att denna sak sorteras. 424 00:19:22,920 --> 00:19:25,461 Det är en ganska värdelös 1000 sidor om Verizon faktiskt inte 425 00:19:25,461 --> 00:19:27,339 sortera dessa saker för oss A till Z. 426 00:19:27,339 --> 00:19:30,130 Så om jag vet Mike är förmodligen i den senare hälften av telefonboken, 427 00:19:30,130 --> 00:19:31,536 Jag kan nu. 428 00:19:31,536 --> 00:19:33,388 >> [Skrattar] 429 00:19:33,388 --> 00:19:35,240 430 00:19:35,240 --> 00:19:37,391 >> Riv problemet i halv. 431 00:19:37,391 --> 00:19:38,615 >> [APPLÅDER] 432 00:19:38,615 --> 00:19:39,115 433 00:19:39,115 --> 00:19:40,300 Tack. 434 00:19:40,300 --> 00:19:42,510 Riv problemet i halv. 435 00:19:42,510 --> 00:19:44,440 Det var faktiskt real-- denna kamp. 436 00:19:44,440 --> 00:19:47,050 Så riva telefonboken på mitten, lämnar mig 437 00:19:47,050 --> 00:19:48,580 med i grunden samma problem. 438 00:19:48,580 --> 00:19:50,060 Men naturligtvis, hälften så stor. 439 00:19:50,060 --> 00:19:52,550 Och om jag följer James råd igen, och jag går här. 440 00:19:52,550 --> 00:19:54,400 Jag säger, åh nu är jag i T avsnitt. 441 00:19:54,400 --> 00:19:56,460 >> Och så naturligtvis, jag kan riva telefonboken 442 00:19:56,460 --> 00:19:59,660 i halv ett mer tid, lämnar mig med ett problem som är 443 00:19:59,660 --> 00:20:00,810 nu en fjärdedel av storleken. 444 00:20:00,810 --> 00:20:05,335 Så jag har gått från 1000 till 500 till 250 till 125 och så vidare. 445 00:20:05,335 --> 00:20:07,350 Det känns som jag är ta större bites ut 446 00:20:07,350 --> 00:20:10,615 om detta problem med varje iteration, eller varje steg i den. 447 00:20:10,615 --> 00:20:15,580 >> Och faktiskt, när jag kommer att tillbringa hitta Mike Smith i detta exempel 448 00:20:15,580 --> 00:20:18,970 är så mycket mindre eftersom så småningom jag kommer att skära detta skjuta upp boken ner 449 00:20:18,970 --> 00:20:20,192 bara en ensam sida. 450 00:20:20,192 --> 00:20:23,010 Och om Mike är på den sidan, jag är kommer att gå vidare och ge honom 451 00:20:23,010 --> 00:20:24,670 ett samtal har funnit honom. 452 00:20:24,670 --> 00:20:27,030 >> Men hur mycket bättre är att algorithm-- 453 00:20:27,030 --> 00:20:29,690 som vågar säga intuitivt algorithm-- än de vi 454 00:20:29,690 --> 00:20:34,920 började som vi är mycket linear-- vänster right-- i en takt av 1 eller 2x? 455 00:20:34,920 --> 00:20:36,100 >> Nåväl, låt oss rita detta. 456 00:20:36,100 --> 00:20:39,380 Vi behöver inte oroa sig alltför mycket om matematik eller siffror i det här fallet här. 457 00:20:39,380 --> 00:20:40,550 Vi ser bara på en tomt. 458 00:20:40,550 --> 00:20:43,600 Så på x eller horisontell axel, är storleken på den problem-- 459 00:20:43,600 --> 00:20:44,700 hur många sidor finns. 460 00:20:44,700 --> 00:20:46,760 På y, eller den vertikala axeln, är hur mycket tid 461 00:20:46,760 --> 00:20:48,218 kommer det att ta mig för att lösa det. 462 00:20:48,218 --> 00:20:50,760 Och kanske det är hur många sidan varv hur många sekunder, 463 00:20:50,760 --> 00:20:52,370 hur many-- någon enhet av åtgärder. 464 00:20:52,370 --> 00:20:57,810 >> Och jag har ritat en röd räta linjer här eftersom om varje ny sida 465 00:20:57,810 --> 00:21:01,740 av telefonboken kräver jag för att göra ett ytterligare steg. 466 00:21:01,740 --> 00:21:03,680 Så om Verizon lägger en mer sida nästa år, 467 00:21:03,680 --> 00:21:06,970 Jag kanske måste vända en mer sida att hitta någon som Mike Smith. 468 00:21:06,970 --> 00:21:11,340 >> Under tiden, den andra algoritmen, som Jag gick två och två, är samma form. 469 00:21:11,340 --> 00:21:15,220 Det är fortfarande väldigt linjär, mycket kvar att höger, med lika byte varje gång, 470 00:21:15,220 --> 00:21:16,900 men lutningen är lite lägre. 471 00:21:16,900 --> 00:21:23,590 >> Till exempel om storleken på problemet var ungefär här 472 00:21:23,590 --> 00:21:25,990 och jag använde min första algoritm, Jag kan sluta hela vägen 473 00:21:25,990 --> 00:21:27,480 på toppen av den röda linjen. 474 00:21:27,480 --> 00:21:29,390 Men om jag istället använda till twosies närma, 475 00:21:29,390 --> 00:21:31,480 den gula linjen antyder eftersom det är lägre, 476 00:21:31,480 --> 00:21:33,790 att det kommer att ta mig mindre tid att lösa. 477 00:21:33,790 --> 00:21:37,400 >> Men vad är formen på tredje algorithm-- igen, utan tvekan 478 00:21:37,400 --> 00:21:38,707 den mest intuitiva algoritm? 479 00:21:38,707 --> 00:21:40,540 Tja, det ser lite något som det här. 480 00:21:40,540 --> 00:21:43,480 Det är böjd eller logaritmisk, i form. 481 00:21:43,480 --> 00:21:46,510 Och även om det aldrig typ av planar ut, 482 00:21:46,510 --> 00:21:50,770 det asymptotiskt inches upp och upp och upp, men fruktansvärt långsamt 483 00:21:50,770 --> 00:21:52,129 kontra allt annat. 484 00:21:52,129 --> 00:21:53,170 Och vad är ta bort? 485 00:21:53,170 --> 00:21:54,215 Tja, vi kallar det log n. 486 00:21:54,215 --> 00:21:55,820 Men vad innebär det egentligen? 487 00:21:55,820 --> 00:21:58,580 Tja om Verizon fördubblat antalet sidor i telefonboken 488 00:21:58,580 --> 00:22:00,810 nästa år från 1000 till 2000. 489 00:22:00,810 --> 00:22:04,600 Hur många fler steg är min första algoritmen kommer att ta? 490 00:22:04,600 --> 00:22:05,440 >> Min första algoritm. 491 00:22:05,440 --> 00:22:06,399 Kanske 1000 fler steg. 492 00:22:06,399 --> 00:22:08,106 Om de fördubblades telefonbok, jag kommer 493 00:22:08,106 --> 00:22:10,590 att behöva bläddra igenom en annan 1000 sidor för att hitta Mike. 494 00:22:10,590 --> 00:22:13,240 Naturligtvis, om den andra algoritm, kanske 500 eftersom jag är 495 00:22:13,240 --> 00:22:14,610 går dubbelt så fort. 496 00:22:14,610 --> 00:22:18,380 >> Men om Verizon fördubblar antalet sidor mellan detta år och nästa, 497 00:22:18,380 --> 00:22:21,650 med mitt tredje algorithm-- klyftan och erövra att James föreslog 498 00:22:21,650 --> 00:22:24,450 går i hälften och hälften och half-- hur många fler steg kommer 499 00:22:24,450 --> 00:22:29,030 det tar mig nästa år att ha en telefonbok med en storlek 2000? 500 00:22:29,030 --> 00:22:29,670 Bara en. 501 00:22:29,670 --> 00:22:34,110 Eftersom med en bit, kan jag ta, av det problemet, halv av sidorna 502 00:22:34,110 --> 00:22:34,694 bort. 503 00:22:34,694 --> 00:22:37,860 Och om du tycker om det här lite vansinnigt now-- om telefonboken inte 504 00:22:37,860 --> 00:22:41,810 har 1000 eller 2000 sida, men låt oss säga 4000 miljoner pages-- 505 00:22:41,810 --> 00:22:45,282 Det är en stor telefon book-- hur många gånger eller hur många steg 506 00:22:45,282 --> 00:22:47,740 kommer det att ta mig för att hitta Mike Smith i telefonboken 507 00:22:47,740 --> 00:22:50,489 med 4 miljarder sidor. 508 00:22:50,489 --> 00:22:52,030 Du kan slags börja göra matten. 509 00:22:52,030 --> 00:22:52,200 Okej. 510 00:22:52,200 --> 00:22:53,175 4 miljarder delat med två. 511 00:22:53,175 --> 00:22:54,550 Så det är 2 miljarder dividerat med en. 512 00:22:54,550 --> 00:22:55,510 Det är 1 miljard. 513 00:22:55,510 --> 00:22:56,410 Sedan en halv miljard. 514 00:22:56,410 --> 00:22:59,940 Då 250-- så att du kan göra det igen och igen men inte så många gånger tidigare 515 00:22:59,940 --> 00:23:01,020 du får en sida. 516 00:23:01,020 --> 00:23:04,360 >> Och faktiskt, även om telefonen Boken är 4 miljarder sidor lång 517 00:23:04,360 --> 00:23:08,340 eller databasen du söker är 4 miljarder poster lång, 518 00:23:08,340 --> 00:23:12,720 det kommer att ta dig att ge eller ta 32 steg bara för att upptäcka Mike Smith. 519 00:23:12,720 --> 00:23:15,990 Och om du dubbla telefonboken nästa år från fyra miljarder till 8 miljarder dollar 520 00:23:15,990 --> 00:23:19,010 33 steg i stället för bara 32. 521 00:23:19,010 --> 00:23:21,100 >> Och detta är ett bevis till en av de idéer 522 00:23:21,100 --> 00:23:24,100 att vi kan omfamna i datorn vetenskap i allmänhet, som 523 00:23:24,100 --> 00:23:26,760 är denna computational tänkande och närmar ett problem 524 00:23:26,760 --> 00:23:29,479 uppriktigt att använda verktyg från din redan bekanta verktyg 525 00:23:29,479 --> 00:23:31,520 kit-- din verkliga världen med som du känner, 526 00:23:31,520 --> 00:23:34,730 men utnyttja dessa idéer att faktiskt lösa problem. 527 00:23:34,730 --> 00:23:37,200 >> Men vi måste formalisera vår lösningar på dessa problem. 528 00:23:37,200 --> 00:23:40,200 Och så låt mig presentera för ett ögonblick något som vi kan kalla pseudokod. 529 00:23:40,200 --> 00:23:44,260 En stor del av terminen, vi tillbringar med hjälp av faktiska koden i språk som C och PHP 530 00:23:44,260 --> 00:23:46,570 och JavaScript och SQL och liknande. 531 00:23:46,570 --> 00:23:49,000 >> Men nu, låt oss titta bara på något ganska intuitivt 532 00:23:49,000 --> 00:23:49,930 som engelska. 533 00:23:49,930 --> 00:23:52,490 Jag kan destillera det algoritm med vilken 534 00:23:52,490 --> 00:23:54,650 Jag hittade Mike i steg som denna. 535 00:23:54,650 --> 00:23:55,760 >> Plocka upp telefonboken 536 00:23:55,760 --> 00:23:57,121 >> Öppen för mitten av telefonbok 537 00:23:57,121 --> 00:23:57,870 Titta på namns 538 00:23:57,870 --> 00:23:59,290 Om Mike är bland namns 539 00:23:59,290 --> 00:24:00,450 ringa Mike 540 00:24:00,450 --> 00:24:02,290 Else om Smith är tidigare i boken 541 00:24:02,290 --> 00:24:04,540 Öppet till mitten av den vänstra halvan av boken 542 00:24:04,540 --> 00:24:06,244 Annars gå till linje 3 543 00:24:06,244 --> 00:24:07,660 Else om Smith är senare i boken 544 00:24:07,660 --> 00:24:09,330 Öppet till mitten av högra halvan av boken 545 00:24:09,330 --> 00:24:09,996 Gå till linje tre 546 00:24:09,996 --> 00:24:10,720 Annan 547 00:24:10,720 --> 00:24:11,500 Ge upp 548 00:24:11,500 --> 00:24:15,360 Och det finns några egenskaper nu av detta som är värt att påpeka. 549 00:24:15,360 --> 00:24:18,370 Så en, alla linjer Jag har markerat i gult 550 00:24:18,370 --> 00:24:21,430 vi kommer att börja ringa uttalanden eller funktioner eller procedurer. 551 00:24:21,430 --> 00:24:24,160 De är bara åtgärder göra detta, och det finns inte 552 00:24:24,160 --> 00:24:26,400 så mycket variation till det. 553 00:24:26,400 --> 00:24:30,850 >> Nästa steg här men är dessa conditions-- om, annars, annars om, annars. 554 00:24:30,850 --> 00:24:34,020 Och dessa kallas förhållanden, eller grenar, och de är beslutspunkter. 555 00:24:34,020 --> 00:24:36,780 Och de tillåter oss att göra något villkor. 556 00:24:36,780 --> 00:24:39,650 >> Och i själva verket, låt oss ta en snabb titta på kanske en bekant face-- 557 00:24:39,650 --> 00:24:43,380 vi kallar honom Bill-- och exakt vad dessa villkor, 558 00:24:43,380 --> 00:24:45,670 hur dessa kan användas. 559 00:24:45,670 --> 00:24:48,230 >> Bill Gates: Människor gör beslut varje dag. 560 00:24:48,230 --> 00:24:51,800 Till exempel, innan du går utanför du typ av har en if-sats som säger, 561 00:24:51,800 --> 00:24:55,650 om det regnar, då jag behöver för att få min jacka. 562 00:24:55,650 --> 00:25:00,990 >> Och datorer är häpnadsväckande när du besluta om dessa typer av uttalanden 563 00:25:00,990 --> 00:25:06,450 att de tillförlitligt kan exekvera dessa saker på otrolig hastighet. 564 00:25:06,450 --> 00:25:12,470 Och så ett datorprogram verkligen är en liten bit av matematik och vissa 565 00:25:12,470 --> 00:25:16,890 om uttalanden där beslutet skickas ut. 566 00:25:16,890 --> 00:25:19,432 >> DAVID MALAN: Så nu ska vi fokus på några olika lines-- 567 00:25:19,432 --> 00:25:21,140 de som jag har markerat i gult här. 568 00:25:21,140 --> 00:25:23,890 Och det visar sig att det finns olika sätt att uttrycka denna idé. 569 00:25:23,890 --> 00:25:28,550 Men intuitivt vad våra linjer 8 och 11 att jag har markerat här berätta 570 00:25:28,550 --> 00:25:29,100 att göra? 571 00:25:29,100 --> 00:25:33,081 Ja, gå till linje 3, men vad beteende är att verkligen inducera? 572 00:25:33,081 --> 00:25:35,580 Det är någon slags slinga eller cykel, och du kan typ av se det. 573 00:25:35,580 --> 00:25:36,079 Höger? 574 00:25:36,079 --> 00:25:39,710 Om linjen 8, går du tillbaka till linje 3, och sedan slog linje 8 igen, 575 00:25:39,710 --> 00:25:42,700 du kan gå tillbaka till linje 3, tillbaka till linje 3, tillbaka till linje 3. 576 00:25:42,700 --> 00:25:44,530 Det finns denna typ av cykel eller slinga. 577 00:25:44,530 --> 00:25:47,177 Och faktiskt, det är induceras i linje 11 potentiellt också. 578 00:25:47,177 --> 00:25:49,260 Och detta är en grundläggande programmering konstruera liksom. 579 00:25:49,260 --> 00:25:51,593 >> Du kanske inte vill bara göra något med ett uttalande 580 00:25:51,593 --> 00:25:54,280 eller göra något villkorligt med ett tillstånd eller en filial. 581 00:25:54,280 --> 00:25:56,644 Du kanske vill göra något cykliskt med en slinga. 582 00:25:56,644 --> 00:25:59,810 Och vi kommer att ha någon annan med vilken du kan vara familiar-- vi kallar honom 583 00:25:59,810 --> 00:26:02,996 Mark-- förklara detta koncept här. 584 00:26:02,996 --> 00:26:04,870 Mark Zuckerberg: En sak att datorer är 585 00:26:04,870 --> 00:26:07,460 riktigt bra på upprepar kommandon. 586 00:26:07,460 --> 00:26:09,510 Som person, skulle du få verkligen uttråkad om du 587 00:26:09,510 --> 00:26:12,310 var tvungen att göra samma sak massor av gånger i rad, 588 00:26:12,310 --> 00:26:16,230 men en dator kan göra samma sak miljoner eller miljarder gånger 589 00:26:16,230 --> 00:26:18,930 och inte bli uttråkad och kunna att utföra den riktigt bra. 590 00:26:18,930 --> 00:26:21,240 >> Så till exempel, om jag vill önska alla 591 00:26:21,240 --> 00:26:24,450 på Facebook på födelsedagen genom att skicka ett e-post, 592 00:26:24,450 --> 00:26:27,037 det kan ta mig mer än en talet faktiskt skriva ut 593 00:26:27,037 --> 00:26:28,370 alla dessa e-postmeddelanden till alla. 594 00:26:28,370 --> 00:26:33,500 Men med bara några få rader kod, kan jag har ett system skicka ett e-postmeddelande till alla 595 00:26:33,500 --> 00:26:35,460 på Facebook som önskar dem en trevlig födelsedag. 596 00:26:35,460 --> 00:26:38,330 >> Så det är vad slingor är och varför de är värdefulla och något 597 00:26:38,330 --> 00:26:40,076 att datorer kan göra mycket bra. 598 00:26:40,076 --> 00:26:43,109 >> DAVID MALAN: Ett stort tack till våra vänner på code.org för dessa två filmer. 599 00:26:43,109 --> 00:26:46,150 Och förra veckan, kanske du har sett att Mark Zuckerberg och Facebook 600 00:26:46,150 --> 00:26:47,940 postat detta tillkännagivande, nämligen att de bara 601 00:26:47,940 --> 00:26:50,398 har passerat en viktig milstolpe för första gången någonsin. 602 00:26:50,398 --> 00:26:54,320 1 miljard människor använde Facebook i en enda dag, särskilt i måndags. 603 00:26:54,320 --> 00:26:58,650 En av sju människor på jorden tydligen inloggad på Facebook. 604 00:26:58,650 --> 00:27:03,310 >> Tja, verkar detta ett bra tillfälle att se tillbaka på var Facebook började, 605 00:27:03,310 --> 00:27:06,840 och vi gick igenom CS50 egen arkiv eftersom det visar sig i 2005, 606 00:27:06,840 --> 00:27:10,020 Mark gav en gästföreläsning i CS50. 607 00:27:10,020 --> 00:27:13,870 Du ser att produktionsvärden var inte riktigt samma tiden 608 00:27:13,870 --> 00:27:16,110 i termer av den teknik tillgängliga, och du kommer också 609 00:27:16,110 --> 00:27:18,310 se att närvaron av detta pensionat föreläsning 610 00:27:18,310 --> 00:27:22,470 inte nödvändigtvis väcka intresse av studenterna, era föregångare, 611 00:27:22,470 --> 00:27:24,910 så mycket som det kan ha bara några år senare. 612 00:27:24,910 --> 00:27:27,902 >> Så låt oss ta en titt på Science Center C. 613 00:27:27,902 --> 00:27:29,389 614 00:27:29,389 --> 00:27:31,014 TALARE 2: Vänligen gå mig, och välkommen. 615 00:27:31,014 --> 00:27:33,374 616 00:27:33,374 --> 00:27:36,577 [APPLÅDER] 617 00:27:36,577 --> 00:27:37,410 Mark Zuckerberg: Yo. 618 00:27:37,410 --> 00:27:37,900 Okej. 619 00:27:37,900 --> 00:27:40,420 Cool detta är första gången jag har någonsin har varit tvungna att hålla en av dessa saker. 620 00:27:40,420 --> 00:27:42,336 Så jag ska bara fästa det riktigt snabbt. 621 00:27:42,336 --> 00:27:54,354 622 00:27:54,354 --> 00:27:54,854 Okej. 623 00:27:54,854 --> 00:27:57,314 Hör du det? 624 00:27:57,314 --> 00:27:58,298 Är det bra? 625 00:27:58,298 --> 00:28:00,684 Är detta förstärks alls? 626 00:28:00,684 --> 00:28:01,184 Okej. 627 00:28:01,184 --> 00:28:02,040 Ljuv. 628 00:28:02,040 --> 00:28:06,860 Så, detta är som en av de första gångerna Jag har varit på en föreläsning vid Harvard, 629 00:28:06,860 --> 00:28:08,660 men-- 630 00:28:08,660 --> 00:28:12,510 >> DAVID MALAN: Så småningom Science Center gjorde zooma in på videon, 631 00:28:12,510 --> 00:28:15,110 men inte innan du tar detta utdrag där Mark pratar, 632 00:28:15,110 --> 00:28:18,230 som han diskuterade sin rumskamrat, Dustin, som 633 00:28:18,230 --> 00:28:20,885 ville hjälpa till med detta plats som kallas den Facebook.com 634 00:28:20,885 --> 00:28:24,540 och insåg att Mark är på väg att nämna programmering languages-- 635 00:28:24,540 --> 00:28:27,290 en kallade Perl, en kallas PHP-- som han diskuterar 636 00:28:27,290 --> 00:28:28,840 ursprunget till Dustins bidrag. 637 00:28:28,840 --> 00:28:31,499 638 00:28:31,499 --> 00:28:33,290 Mark Zuckerberg: Jag började driva sajten 639 00:28:33,290 --> 00:28:37,770 och lanserade det i Harvard i februari 2004. 640 00:28:37,770 --> 00:28:39,540 Så jag antar att nästan två år sedan nu. 641 00:28:39,540 --> 00:28:42,322 Och inom ett par veckor, en några tusen personer hade anmält sig, 642 00:28:42,322 --> 00:28:45,280 och vi började få några e-postmeddelanden från människor på andra högskolor frågar 643 00:28:45,280 --> 00:28:47,520 för oss att lansera den på sina skolor. 644 00:28:47,520 --> 00:28:49,455 >> Och jag tog 161 vid den tidpunkten. 645 00:28:49,455 --> 00:28:52,080 Så jag vet inte om ni vet rykte den kursen, 646 00:28:52,080 --> 00:28:54,402 men det var typ av tunga. 647 00:28:54,402 --> 00:28:57,110 Det var en riktigt rolig kurs, men det inte lämna mig med mycket tid 648 00:28:57,110 --> 00:28:59,260 att göra något annat med Facebook. 649 00:28:59,260 --> 00:29:04,309 Så min rumskamrat Dustin, som jag antar hade precis avslutat CS50, var som, hej. 650 00:29:04,309 --> 00:29:05,100 Jag vill hjälpa till. 651 00:29:05,100 --> 00:29:08,760 Jag vill göra expansionen och hjälpa du räkna ut hur man gör saker. 652 00:29:08,760 --> 00:29:10,780 >> Så jag var som, det är ganska cool, dude. 653 00:29:10,780 --> 00:29:13,130 Men du vet inte riktigt något PHP eller något liknande. 654 00:29:13,130 --> 00:29:16,444 Så veckoslutet gick han hem, köpte boken Perl for Dummies, 655 00:29:16,444 --> 00:29:17,860 kom tillbaka och var, okej. 656 00:29:17,860 --> 00:29:18,940 Jag är redo att gå. 657 00:29:18,940 --> 00:29:23,010 >> Jag var som, dude, är platsen skriven i PHP inte Perl, men det är coolt. 658 00:29:23,010 --> 00:29:28,530 >> Han plockade upp PHP över som några dagar eftersom jag 659 00:29:28,530 --> 00:29:30,790 lovar att om du har en bra bakgrund i C, 660 00:29:30,790 --> 00:29:32,970 PHP är en mycket enkel sak att plocka upp. 661 00:29:32,970 --> 00:29:37,480 Och han bara typ av gick till jobbet. 662 00:29:37,480 --> 00:29:40,500 >> Innan vi tar en titt nu på där kursen är på väg, 663 00:29:40,500 --> 00:29:43,047 Låt mig bjuda bara några av SC50 personal upp på scenen. 664 00:29:43,047 --> 00:29:44,880 Några av dem handlar sina egna kurser. 665 00:29:44,880 --> 00:29:48,390 Men om dessa TF och CAS och kurs huvuden som är här kunde komma på upp 666 00:29:48,390 --> 00:29:50,230 och gå med mig för en snabb hej. 667 00:29:50,230 --> 00:29:54,670 >> Tillåt mig att presentera i synnerhet Hanna Maria, Daven, och Rob, 668 00:29:54,670 --> 00:29:59,666 CS50 kurs huvuden här i Cambridge. 669 00:29:59,666 --> 00:30:02,106 >> [APPLÅDER] 670 00:30:02,106 --> 00:30:07,490 671 00:30:07,490 --> 00:30:11,060 >> DAVID MALAN: Faktum är bevis på den stödstruktur att kursen har 672 00:30:11,060 --> 00:30:15,660 byggd under de senaste många år, CS50 personal i år siffror nästan 100, 673 00:30:15,660 --> 00:30:17,170 och det är här i Cambridge ensam. 674 00:30:17,170 --> 00:30:21,240 Under tiden i New Haven, är det något 40 TF och CA och anställda där 675 00:30:21,240 --> 00:30:22,800 att köra kursen också. 676 00:30:22,800 --> 00:30:26,125 >> Tillåt oss att presentera först, Rob Bowden. 677 00:30:26,125 --> 00:30:26,750 ROB BOWDEN: Hej. 678 00:30:26,750 --> 00:30:27,620 Jag är Rob. 679 00:30:27,620 --> 00:30:32,750 Detta är min sjätte året TFing i kursen. 680 00:30:32,750 --> 00:30:37,970 Så, hela vägen tillbaka i min freshmanår, det gjorde jag inte ta CS50. 681 00:30:37,970 --> 00:30:40,270 Din förstaårselev fall-- du kanske känner 682 00:30:40,270 --> 00:30:43,270 att du bara kan ta fyra kurser och det finns så många kurser i dag. 683 00:30:43,270 --> 00:30:44,450 Så jag är som, eh. 684 00:30:44,450 --> 00:30:48,050 Jag tog AP CS mitt sista år av high school det var hemskt. 685 00:30:48,050 --> 00:30:48,900 Så jag är som, eh. 686 00:30:48,900 --> 00:30:50,380 Datavetenskap är inte för mig. 687 00:30:50,380 --> 00:30:53,000 >> Så då var det över loppet av mitt första 688 00:30:53,000 --> 00:30:58,960 falla, att jag hade en vän i CS50, och Jag tror att jag deltog i en föreläsning med henne. 689 00:30:58,960 --> 00:31:03,760 Det är som, oh, detta är typ av bättre än vad jag hade i high school. 690 00:31:03,760 --> 00:31:06,990 >> Och under loppet av den år, hade jag mina egna problemsamlingar 691 00:31:06,990 --> 00:31:08,750 i kurserna jag faktiskt tar. 692 00:31:08,750 --> 00:31:11,870 Men jag fann att när jag ville procrastinate på dem, 693 00:31:11,870 --> 00:31:15,111 Jag skulle gå tillbaka till CS50 och titta på några av det där. 694 00:31:15,111 --> 00:31:15,610 Så ja. 695 00:31:15,610 --> 00:31:16,140 Jag är cool. 696 00:31:16,140 --> 00:31:19,350 Jag Förhalande med kodning. 697 00:31:19,350 --> 00:31:22,910 Så då är det i slutet av hösten som jag inser, hej, 698 00:31:22,910 --> 00:31:24,410 datavetenskap är ganska cool. 699 00:31:24,410 --> 00:31:27,730 Jag sluta med CS51. 700 00:31:27,730 --> 00:31:30,430 I nästa termin, Jag sluta med CS61. 701 00:31:30,430 --> 00:31:32,727 Och allt därifrån, då hamnar jag upp att förklara 702 00:31:32,727 --> 00:31:35,310 datavetenskap, som jag hade absolut ingen avsikt att göra 703 00:31:35,310 --> 00:31:36,740 När jag kom in i högskolan. 704 00:31:36,740 --> 00:31:39,330 Och nu är jag här. 705 00:31:39,330 --> 00:31:42,230 Så kursen är vad du gör av det. 706 00:31:42,230 --> 00:31:43,463 Jag hoppas du tycker om det. 707 00:31:43,463 --> 00:31:44,066 >> [APPLÅDER] 708 00:31:44,066 --> 00:31:45,315 DAVID MALAN: Tack till Rob. 709 00:31:45,315 --> 00:31:49,020 710 00:31:49,020 --> 00:31:52,180 >> Och nu Maria, vår huvudet kursassistent. 711 00:31:52,180 --> 00:31:53,140 >> MARIA: Hey guys. 712 00:31:53,140 --> 00:31:53,880 Mitt namn är Maria. 713 00:31:53,880 --> 00:31:56,930 Jag är en sophomore i Cabot House, som kommer från Bulgarien, 714 00:31:56,930 --> 00:31:59,880 och jag är superglad att vara del av den personal i år. 715 00:31:59,880 --> 00:32:03,380 Jag tog CS50 som en nybörjare förra året, och jag har aldrig ens 716 00:32:03,380 --> 00:32:04,750 tänkte på CS förväg. 717 00:32:04,750 --> 00:32:08,380 Jag älskar absolut kursen, och jag hoppas att ni alla älskar det lika mycket som jag gjorde. 718 00:32:08,380 --> 00:32:09,250 Och, ja. 719 00:32:09,250 --> 00:32:10,868 Välkommen till CS50. 720 00:32:10,868 --> 00:32:12,201 DAVID MALAN: Tack till Maria. 721 00:32:12,201 --> 00:32:13,674 [APPLÅDER] 722 00:32:13,674 --> 00:32:16,129 723 00:32:16,129 --> 00:32:19,580 Nu Hanna, vår huvud undervisning karl. 724 00:32:19,580 --> 00:32:20,480 HANNA: Hej, jag är Hanna. 725 00:32:20,480 --> 00:32:22,990 Jag är en senior i Cabot studera datavetenskap. 726 00:32:22,990 --> 00:32:28,120 Jag tog CS50 som en nybörjare och hade varit TFing-- detta blir mitt tredje år. 727 00:32:28,120 --> 00:32:31,000 Så jag kommer att vara lyckligt involverade i CS50 för alla fyra år, 728 00:32:31,000 --> 00:32:33,569 och jag ser fram emot att arbeta med er alla. 729 00:32:33,569 --> 00:32:34,902 DAVID MALAN: Tack till Hanna. 730 00:32:34,902 --> 00:32:36,870 [APPLÅDER] 731 00:32:36,870 --> 00:32:37,854 732 00:32:37,854 --> 00:32:40,274 Och slutligen, Daven, vår precepter. 733 00:32:40,274 --> 00:32:40,940 Daven: Hey guys. 734 00:32:40,940 --> 00:32:42,390 Jag är en föreskrift över i datavetenskap här. 735 00:32:42,390 --> 00:32:44,010 Detta blir min fjärde året undervisning. 736 00:32:44,010 --> 00:32:45,261 Jag hjälper också hantera kursen. 737 00:32:45,261 --> 00:32:47,801 Så jag är säker på att du kommer att se mig omkring, särskilt på kontorstid. 738 00:32:47,801 --> 00:32:48,970 Jag är alltid på kontorstid. 739 00:32:48,970 --> 00:32:51,640 Så om du ser mig gå runt, definitivt komma säga hej. 740 00:32:51,640 --> 00:32:52,681 Jag älskar att träffa alla. 741 00:32:52,681 --> 00:32:55,830 Annars har kul, och jag ser dig omkring. 742 00:32:55,830 --> 00:32:58,210 >> DAVID MALAN: Tack till Daven också. 743 00:32:58,210 --> 00:33:01,290 Så du möter alla dessa människor innan lång. 744 00:33:01,290 --> 00:33:03,040 Men utan vidare väsen, om ni skulle 745 00:33:03,040 --> 00:33:05,840 vill fortsätta era platser från tidigare. 746 00:33:05,840 --> 00:33:10,940 Tillåt mig att presentera avstånd nu några av våra vänner från New Haven, 747 00:33:10,940 --> 00:33:14,690 i synnerhet kursens huvuden som kommer att att övervaka CS50 there-- Professor 748 00:33:14,690 --> 00:33:19,550 Brian Scassellati, Jason, och Andi, som bara-- så att vi inte utmana ödet 749 00:33:19,550 --> 00:33:22,610 med någon Facetime eller like-- har precis skickat oss minuter 750 00:33:22,610 --> 00:33:27,380 sedan följande video där de säga hej från föreläsningssal 751 00:33:27,380 --> 00:33:31,480 vid Yale, där föreläsning är strömmas just nu. 752 00:33:31,480 --> 00:33:34,052 >> Så våra vänner från Yale. 753 00:33:34,052 --> 00:33:35,260 BRIAN Scassellati: Hej, David. 754 00:33:35,260 --> 00:33:36,480 Hej, alla på Harvard. 755 00:33:36,480 --> 00:33:41,400 Vi är så glada över att vara föra CS50 till Yale denna termin. 756 00:33:41,400 --> 00:33:45,250 Mitt namn är Brian Scassellati, men alla kallar mig bara SCAS. 757 00:33:45,250 --> 00:33:50,402 Och jag är här i dag för att införa till er CS50 personal. 758 00:33:50,402 --> 00:33:52,346 >> [GLÄDJANDE] 759 00:33:52,346 --> 00:33:55,760 760 00:33:55,760 --> 00:33:59,780 >> Och ännu viktigare, jag här för att införa och 761 00:33:59,780 --> 00:34:03,690 alla studenter vid Yale som från och med i morse 762 00:34:03,690 --> 00:34:09,289 har gjort detta det mest populära kurs på Yale de CS50 studenter. 763 00:34:09,289 --> 00:34:12,090 >> [GLÄDJANDE] 764 00:34:12,090 --> 00:34:25,850 765 00:34:25,850 --> 00:34:28,310 >> Så vi är mycket glada att se dig här 766 00:34:28,310 --> 00:34:34,239 på fredag ​​och på lördag för Pussel dag och har en stor föreläsning. 767 00:34:34,239 --> 00:34:35,440 Bye. 768 00:34:35,440 --> 00:34:37,360 >> [APPLÅDER] 769 00:34:37,360 --> 00:34:42,170 770 00:34:42,170 --> 00:34:45,497 >> DAVID MALAN: På skärmen här är namnen på några av 140 anställda 771 00:34:45,497 --> 00:34:48,330 medlemmar som väntar dig över loppet av semester-- vissa av dem 772 00:34:48,330 --> 00:34:50,540 här i Cambridge, några av dem här i New Haven. 773 00:34:50,540 --> 00:34:52,706 Och faktiskt har du en tillfälle denna lördag, 774 00:34:52,706 --> 00:34:54,530 som SCAS anteckningar, till närvara CS50 Puzzle dag. 775 00:34:54,530 --> 00:34:57,780 Du kanske har sett små pusselbitar halkade under dina dörrar nyligen. 776 00:34:57,780 --> 00:35:00,420 Vi har några extra här senare när du finns. 777 00:35:00,420 --> 00:35:04,030 Om du monterar alla fyra pussel bitar och sammanfoga styrkor med rum 778 00:35:04,030 --> 00:35:06,450 närliggande er i din hus eller sovsal, de ska 779 00:35:06,450 --> 00:35:09,690 montera in en QR-code-- eller en tvådimensionell streckkod, som 780 00:35:09,690 --> 00:35:12,970 en gång monterade och skannas med telefonen kommer att leda dig 781 00:35:12,970 --> 00:35:17,060 till några fantastiska pris eller-- jag antar du kan bara fotografera detta nu 782 00:35:17,060 --> 00:35:17,560 också. 783 00:35:17,560 --> 00:35:22,560 >> Men hitta de pusselbitar ändå för att vinna den fantastiska pris. 784 00:35:22,560 --> 00:35:25,900 Och faktiskt en av de traditioner i SC50-- ah, för långsam. 785 00:35:25,900 --> 00:35:29,790 En av de traditioner i CS50 är att servera tårta efter den första föreläsningen. 786 00:35:29,790 --> 00:35:31,620 >> Och så sannerligen, i en några minuter från nu, 787 00:35:31,620 --> 00:35:36,040 det kommer att bli kaka serveras utanför både här och New Haven också. 788 00:35:36,040 --> 00:35:39,530 >> Men first-- vi dekorerade dem själva. 789 00:35:39,530 --> 00:35:43,360 Men first-- och förhoppningsvis det kommer att räcka. 790 00:35:43,360 --> 00:35:44,830 >> Men först, en snabb titt. 791 00:35:44,830 --> 00:35:47,880 Så föreläsningar är verkligen kommer att vara produceras mestadels här i Cambridge. 792 00:35:47,880 --> 00:35:51,580 Men varje månad, kommer vi hoppa ner till Yale med CS50: s produktionsteam och ström 793 00:35:51,580 --> 00:35:53,730 kursen i omvänd riktning samt så 794 00:35:53,730 --> 00:35:56,840 att föra dessa två campus verkligen för första gången i historien 795 00:35:56,840 --> 00:36:00,450 så nära varandra som möjligt som en i samma kurs. 796 00:36:00,450 --> 00:36:04,050 >> I termer av den stödstruktur som är har stått upp här i Cambridge samt 797 00:36:04,050 --> 00:36:05,646 som i New Haven, är sektioner. 798 00:36:05,646 --> 00:36:08,020 I själva verket, som en del av er kan vet, har vi olika spår 799 00:36:08,020 --> 00:36:10,850 inom loppet för de mindre bekväm, bekvämare, 800 00:36:10,850 --> 00:36:14,610 och någonstans däremellan så att oavsett din tidigare bakgrund, 801 00:36:14,610 --> 00:36:17,670 kan du i slutändan lyckas i klassen. 802 00:36:17,670 --> 00:36:21,320 >> Kontorstid Samtidigt är en möjlighet på måndagar och tisdagar 803 00:36:21,320 --> 00:36:26,570 och torsdag kvällar att arbeta både här och i New Haven på vår kursens 804 00:36:26,570 --> 00:36:30,370 problem sätter med dussintals kursens personal nära dig. 805 00:36:30,370 --> 00:36:35,380 >> Problem sätter tiden är stöds av saker som vi kallar 806 00:36:35,380 --> 00:36:39,140 genomgångar, som videobaserad tutorials som verkligen svara FAQ 807 00:36:39,140 --> 00:36:41,670 av var man ska börja en veckas utmaning. 808 00:36:41,670 --> 00:36:44,290 Och postmortems att gå genom möjliga lösningar 809 00:36:44,290 --> 00:36:46,490 så att änden av det problem satt för, du 810 00:36:46,490 --> 00:36:50,820 vet exakt vad du kunde ha gjort annorlunda eller helt annorlunda. 811 00:36:50,820 --> 00:36:53,895 >> Problemet ställer sig komma i två versioner, en vanlig utgåva 812 00:36:53,895 --> 00:36:57,510 att vi förväntar oss och bjuda in de flesta av den class-- cirka 90% plus att do-- 813 00:36:57,510 --> 00:37:00,520 och en så kallad hacker edition där varje sida är tryckt 814 00:37:00,520 --> 00:37:02,790 hacker upplagan, hacker upplaga, hacker upplagan, 815 00:37:02,790 --> 00:37:07,550 så att du har den karma om man så vill, för dykning 816 00:37:07,550 --> 00:37:10,230 till mer avancerade versioner av kursens problemsamlingar 817 00:37:10,230 --> 00:37:14,970 som täcker skenbart samma material men med en mer sofistikerat tillvägagångssätt 818 00:37:14,970 --> 00:37:19,020 och med ytterligare bakgrunds ibland introduceras. 819 00:37:19,020 --> 00:37:22,350 >> Samtidigt är det nio sena dagar som du kan ansöka till kursen problem 820 00:37:22,350 --> 00:37:26,160 sätter liksom den lägsta poängen, som vi släppa vid termer änden. 821 00:37:26,160 --> 00:37:26,900 >> Men vad som väntar? 822 00:37:26,900 --> 00:37:29,300 Tja, en smak av problemet sätter till hands på fredag 823 00:37:29,300 --> 00:37:31,959 och nästa vecka där vi plaska för bara ett par dagar i något 824 00:37:31,959 --> 00:37:35,000 kallas Scratch, en grafisk programmering språk som utvecklats av våra vänner 825 00:37:35,000 --> 00:37:39,290 vid MIT Media Lab som låter dig att programmera antingen för första gången 826 00:37:39,290 --> 00:37:43,510 eller i en ny miljö helt med hjälp av en dra och släpp typ miljö. 827 00:37:43,510 --> 00:37:45,595 Varvid pusselbitar endast interlock tillsammans 828 00:37:45,595 --> 00:37:48,080 om det gör logisk mening att göra det. 829 00:37:48,080 --> 00:37:50,440 >> Under tiden i problembild två förra året till exempel, 830 00:37:50,440 --> 00:37:53,010 vi införa klassen till en värld av kryptografi, 831 00:37:53,010 --> 00:37:55,370 konsten att kryptera eller förvrängningsinformation. 832 00:37:55,370 --> 00:37:58,940 I själva verket denna text här om dekrypteras, kommer faktiskt 833 00:37:58,940 --> 00:38:01,277 leder dig till lite kul destination. 834 00:38:01,277 --> 00:38:03,110 Och i det problemet satt, vad vi hade studenter 835 00:38:03,110 --> 00:38:06,280 göra är att genomföra exakt de typer av saker-- en algoritm, 836 00:38:06,280 --> 00:38:09,530 eller en uppsättning instruktioner för kryptering och krypteringsinformation. 837 00:38:09,530 --> 00:38:11,850 >> Och i hacker edition av att samma problem set, 838 00:38:11,850 --> 00:38:15,800 vi utmanar studenter att ta en krypterad fil från en vanlig dator 839 00:38:15,800 --> 00:38:18,840 Systemet med massor av användarnamn och krypterade lösenord 840 00:38:18,840 --> 00:38:21,400 och att knäcka dessa passwords-- faktiskt räkna ut 841 00:38:21,400 --> 00:38:25,870 vad de var utan att veta något a priori om de faktiska lösenord. 842 00:38:25,870 --> 00:38:27,620 Samtidigt gör vi övergången i problemet 843 00:38:27,620 --> 00:38:29,536 sätter att sedan titta på världen av grafik. 844 00:38:29,536 --> 00:38:32,240 Och i själva verket kan du tänka dig nu att detta kan kanske 845 00:38:32,240 --> 00:38:35,200 vara det enklaste sättet att representera en svartvit bild. 846 00:38:35,200 --> 00:38:39,570 >> En vit pixel, eller fyrkantiga, som uppe till höger där, 847 00:38:39,570 --> 00:38:41,620 kan vara representerade med en en och en svart fyrkant 848 00:38:41,620 --> 00:38:43,490 kan representeras med en 0. 849 00:38:43,490 --> 00:38:47,670 Och bara genom att använda fler bitar som vi föreslagna tidigare med 72 och 73 och 33, 850 00:38:47,670 --> 00:38:49,882 kunde vi representerar färgpunkter också. 851 00:38:49,882 --> 00:38:51,590 Och vad vi gör under detta problem uppsättning är 852 00:38:51,590 --> 00:38:54,660 i allmänhet ta en promenad runt campus med en digitalkamera, 853 00:38:54,660 --> 00:38:56,730 ta fotografier av personer, platser och saker. 854 00:38:56,730 --> 00:38:59,270 Sedan på något sätt varje termin, vi verkar misstag 855 00:38:59,270 --> 00:39:02,600 bort eller skada minneskortet där alla dessa bilder är, 856 00:39:02,600 --> 00:39:04,610 och så du utmanas att sedan skriva programvara 857 00:39:04,610 --> 00:39:09,650 som att återvinna dessa JPEG från en kopia av vår kamerans kort. 858 00:39:09,650 --> 00:39:13,550 >> Samtidigt behöver vi hand du senare i termen ett lexikon för engelska ord 859 00:39:13,550 --> 00:39:16,680 som har 143.000 ord, och du måste komma upp 860 00:39:16,680 --> 00:39:19,240 med ett smart sätt att lägger dem i minnet, 861 00:39:19,240 --> 00:39:22,850 eller RAM så att säga, för att svara frågor av formen: är detta ett ord, 862 00:39:22,850 --> 00:39:25,910 är detta ett ord, att genomföra snabbaste stavningskontroll som du kan, 863 00:39:25,910 --> 00:39:28,180 även klämma fast själv potentiellt mot klasskamrater 864 00:39:28,180 --> 00:39:30,460 för att se vilka av er använder den minsta mängden tid 865 00:39:30,460 --> 00:39:33,440 när du kör din kod och även minsta minne. 866 00:39:33,440 --> 00:39:36,060 >> Senare i tiden gör du faktiskt genomföra en egen webbserver. 867 00:39:36,060 --> 00:39:39,470 Så inte bara en webbplats i en språk som kallas HTML och mer, 868 00:39:39,470 --> 00:39:43,300 men en webbserver som faktiskt lyssnar på förfrågningar på internet 869 00:39:43,300 --> 00:39:44,460 och svarar på dem. 870 00:39:44,460 --> 00:39:47,210 Och faktiskt, det är hur vi överbrygga vår värld av C som du kommer 871 00:39:47,210 --> 00:39:50,550 bekanta nästa vecka och PHP och HTML och JavaScript 872 00:39:50,550 --> 00:39:51,820 och CSS och liknande. 873 00:39:51,820 --> 00:39:54,820 >> Eftersom en av de första webbaserade projekt vi göra senare i termen 874 00:39:54,820 --> 00:39:57,516 är historiskt CS50 Finance. 875 00:39:57,516 --> 00:40:02,580 Etrade.com stil en webbplats som tillåter dig att köpa och sälja aktier nästan 876 00:40:02,580 --> 00:40:08,240 samtidigt skriva kod för att prata med Yahoo Finans få semi realtid lager 877 00:40:08,240 --> 00:40:11,490 citat för att uppdatera din egen portfölj. 878 00:40:11,490 --> 00:40:13,370 >> Men slutligen naturligtvis, är den slutliga project-- 879 00:40:13,370 --> 00:40:16,960 en möjlighet att göra de flesta något av intresse för dig att lösa ett problem här 880 00:40:16,960 --> 00:40:20,970 eller bortom av intresse för du det är på något sätt inspirerade 881 00:40:20,970 --> 00:40:22,670 av lärdomar i klassen. 882 00:40:22,670 --> 00:40:26,140 >> Och klassen, som ni kanske vet, kulminerar i så kallade CS50 hackathon 883 00:40:26,140 --> 00:40:29,330 och CS50 Fair och valfritt antal andra kulturevenemang 884 00:40:29,330 --> 00:40:31,770 hela terminen som tillåter dig att engagera 885 00:40:31,770 --> 00:40:33,460 med varandra och kursen personal. 886 00:40:33,460 --> 00:40:37,170 >> Till exempel, vid eld och is i Sitar detta år, ja, på fredag ​​eftermiddag, 887 00:40:37,170 --> 00:40:39,220 vi bjuda in några 50 studenter till lunch, vem 888 00:40:39,220 --> 00:40:41,190 vill ansluta sig till oss, själv, och personalen, 889 00:40:41,190 --> 00:40:44,840 och våra vänner från industrin och alums att prata om livet i den verkliga världen 890 00:40:44,840 --> 00:40:46,670 och bortom medan du njuter av en god lunch. 891 00:40:46,670 --> 00:40:49,050 Vid hackathon kommer du ser sådana bilder 892 00:40:49,050 --> 00:40:53,740 eftersom dessa, inklusive massor av candy-- och från och med 2014 för första time-- 893 00:40:53,740 --> 00:40:55,096 grönsaker. 894 00:40:55,096 --> 00:40:56,960 >> [APPLÅDER] 895 00:40:56,960 --> 00:40:58,358 896 00:40:58,358 --> 00:41:02,710 >> Men vid 05:00, gör scenen vanligtvis ser lite ut ungefär så här. 897 00:41:02,710 --> 00:41:05,330 Och sedan bara en vecka eller så senare, är CS50 Fair 898 00:41:05,330 --> 00:41:08,270 som vissa 2000 plus studenter och personal och lärare 899 00:41:08,270 --> 00:41:11,910 medlemmar från hela campus och över campus i år 900 00:41:11,910 --> 00:41:15,620 kommer att se och glädje i prestationer av CS50 studenter, som 901 00:41:15,620 --> 00:41:16,140 är du nu. 902 00:41:16,140 --> 00:41:19,000 >> Och faktiskt, medan detta år kommer vi vara inbjudande och busing någon 903 00:41:19,000 --> 00:41:22,460 vid vid Yale som vill komma upp till Cambridge denna lördag för CS50 Puzzle 904 00:41:22,460 --> 00:41:26,410 Dag, och vi kommer att göra exakt samma sak i december för CS50 hackathon 905 00:41:26,410 --> 00:41:30,080 så att Harvard och Yale studenter likadana tar del i båda dessa händelser. 906 00:41:30,080 --> 00:41:33,630 >> Vi kommer också att hålla CS50 mässor i Cambridge och i New Haven i år 907 00:41:33,630 --> 00:41:36,480 så att eleverna på båda campus och personal och lärare 908 00:41:36,480 --> 00:41:39,260 kan se respektive campus s prestation. 909 00:41:39,260 --> 00:41:41,540 Och de prestationer kommer att inducera en sådan minnes 910 00:41:41,540 --> 00:41:45,440 eftersom detta och detta och slutligen detta där ni alla 911 00:41:45,440 --> 00:41:48,460 gå ur klassen bär en liten något som du var förhoppningsvis 912 00:41:48,460 --> 00:41:52,680 glad eller stolt att säga att jag tog CS50. 913 00:41:52,680 --> 00:41:55,220 >> Men innan dess och innan vi serverar tårta, 914 00:41:55,220 --> 00:41:58,980 Vi har lagt together-- tack vare CS50: s produktionsteam och en viss själv 915 00:41:58,980 --> 00:42:03,120 stick, ett tillfälle som vi använder sådana saker for-- när vi skickade det 916 00:42:03,120 --> 00:42:05,380 inte bara här till Cambridge men också till New Haven 917 00:42:05,380 --> 00:42:08,760 att samla några hellos från kurs personal och alla folks 918 00:42:08,760 --> 00:42:12,640 du kommer att möta både här och i New Haven under de följande månaderna. 919 00:42:12,640 --> 00:42:15,449 >> Tillåt mig att presentera en några fler av CS50 personal. 920 00:42:15,449 --> 00:42:16,990 Mark Zuckerberg: Har som gör det? 921 00:42:16,990 --> 00:42:18,266 Åh, det kommer. 922 00:42:18,266 --> 00:42:20,910 Det går. 923 00:42:20,910 --> 00:42:21,570 Ooh. 924 00:42:21,570 --> 00:42:23,170 Yarr! 925 00:42:23,170 --> 00:42:25,350 >> [Musik spelas ANDY GRAMMER, "Älskling, jag är  BRA"] 926 00:42:25,350 --> 00:42:29,672 927 00:42:29,672 --> 00:42:32,152 >> MARY: Detta är Caitlin. 928 00:42:32,152 --> 00:42:34,515 Det är Jay, och jag är Mary. 929 00:42:34,515 --> 00:42:35,140 SATO: Hej, killar. 930 00:42:35,140 --> 00:42:35,640 Jag Sato. 931 00:42:35,640 --> 00:42:36,264 MICHAEL G .: Hej. 932 00:42:36,264 --> 00:42:37,181 Mitt namn är Michael, G. 933 00:42:37,181 --> 00:42:38,014 DOUG Lloyd: Jag är inte. 934 00:42:38,014 --> 00:42:38,540 Nej. 935 00:42:38,540 --> 00:42:39,310 Jag är Doug Lloyd. 936 00:42:39,310 --> 00:42:41,757 Jag kan inte tro att jag håller en selfiepinne just nu. 937 00:42:41,757 --> 00:42:42,340 TALARE 4: Hej. 938 00:42:42,340 --> 00:42:42,560 TALARE 5: Hej. 939 00:42:42,560 --> 00:42:43,307 TALARE 6: Hej. 940 00:42:43,307 --> 00:42:44,023 TALARE 7: Hej. 941 00:42:44,023 --> 00:42:44,648 TALARE 8: Hej. 942 00:42:44,648 --> 00:42:46,436 Vi umgås på Yale. 943 00:42:46,436 --> 00:42:48,910 Vi är verkligen glada för denna termin eftersom det är 944 00:42:48,910 --> 00:42:50,840 första gången den kommer till Yale. 945 00:42:50,840 --> 00:42:53,012 Det kommer att bli häftigt! 946 00:42:53,012 --> 00:42:55,928 >> [Musik spelar] 947 00:42:55,928 --> 00:43:02,190 948 00:43:02,190 --> 00:43:04,664 >> JACOB SCHERBA: Mitt namn är Jacob Scherba. 949 00:43:04,664 --> 00:43:08,310 Jag är glad över att lära CS50 eftersom jag tror 950 00:43:08,310 --> 00:43:11,429 det ta datavetenskap till människor i och lättillgänglig sätt. 951 00:43:11,429 --> 00:43:13,220 TALARE 9: Jag är verkligen glada att lära CS50 952 00:43:13,220 --> 00:43:17,717 eftersom jag tog klassen förra året, och det är en av de bästa klasserna. 953 00:43:17,717 --> 00:43:18,425 TALARE 10: Ja. 954 00:43:18,425 --> 00:43:20,476 Mitt råd är att du ska ta CS50. 955 00:43:20,476 --> 00:43:23,350 JACOB SCHERBA: Jag valde CS eftersom Jag tycker det är ett roligt och kreativt sätt 956 00:43:23,350 --> 00:43:25,314 att lösa problem på ett analytiskt sätt. 957 00:43:25,314 --> 00:43:28,480 TALARE 11: Tillbaka när jag var en liten nybörjare och rädd för datavetenskap 958 00:43:28,480 --> 00:43:30,229 och rädd för att göra teknik och sånt, 959 00:43:30,229 --> 00:43:34,091 Det var den första hårda klass tog jag, och det var också min favorit klass någonsin. 960 00:43:34,091 --> 00:43:36,090 DOUG Lloyd: Detta är min nionde året undervisning CS50. 961 00:43:36,090 --> 00:43:37,482 Det gör mig låter så gammal! 962 00:43:37,482 --> 00:43:38,690 Det finns alltid något nytt. 963 00:43:38,690 --> 00:43:39,550 Det finns alltid något spännande. 964 00:43:39,550 --> 00:43:43,077 Det finns alltid nya utmaningar som möter nya studenter, och det är roligt att hjälpa dem 965 00:43:43,077 --> 00:43:44,910 och uppleva dem utmaningar med dem 966 00:43:44,910 --> 00:43:45,925 och hjälpa dem att lösa sina problem. 967 00:43:45,925 --> 00:43:47,955 >> TALARE 12: När jag först lärt sig hur man gör CS, 968 00:43:47,955 --> 00:43:49,413 Det var som att lära en supermakt. 969 00:43:49,413 --> 00:43:53,749 Och se till att andra studenter och att hjälpa dem genom denna process 970 00:43:53,749 --> 00:43:55,665 är en av de mest givande saker jag någonsin. 971 00:43:55,665 --> 00:43:58,706 >> TALARE 7: Jag valde CS eftersom det i början, var jag en math koncentrator 972 00:43:58,706 --> 00:44:00,497 och jag tog CS50 och förälskade sig i den. 973 00:44:00,497 --> 00:44:02,455 Jag kände också att med CS, jag kunde bygga saker. 974 00:44:02,455 --> 00:44:04,410 Och att jag tänkte, var en riktigt cool aspekt. 975 00:44:04,410 --> 00:44:08,156 >> TALARE 13: Några råd för ny studenter är att gå till kontorstid 976 00:44:08,156 --> 00:44:09,573 och umgås med awesome TF. 977 00:44:09,573 --> 00:44:11,906 TALARE 14: Börja P-apparater tidigt, gå till kontorstid, 978 00:44:11,906 --> 00:44:13,457 bli frends med din TF. 979 00:44:13,457 --> 00:44:14,165 TALARE 15: Ja. 980 00:44:14,165 --> 00:44:16,164 Allt hon sade. 981 00:44:16,164 --> 00:44:17,997 TALARE 16: Var inte rädd för att be om hjälp. 982 00:44:17,997 --> 00:44:18,980 TALARE 17: Ja. 983 00:44:18,980 --> 00:44:22,052 TALARE 18: Börja P-apparater tidigt. 984 00:44:22,052 --> 00:44:23,760 TALARE 19: Det är en stor social upplevelse. 985 00:44:23,760 --> 00:44:25,112 Göra en massa vänner på detta sätt. 986 00:44:25,112 --> 00:44:26,570 TALARE 14: Gå till avsnittet Det är roligt. 987 00:44:26,570 --> 00:44:28,050 TALARE 11: Jag menar, gå för det. 988 00:44:28,050 --> 00:44:28,770 Det är verkligen svårt. 989 00:44:28,770 --> 00:44:30,581 Du får ut av det vad du lagt ned på det, 990 00:44:30,581 --> 00:44:32,580 men det är en riktigt kul klass särskilt om du är 991 00:44:32,580 --> 00:44:35,496 villig att lägga tid på det, men det hjälper om du lägger tid på det. 992 00:44:35,496 --> 00:44:38,336 Du får en mycket mer ut ur den senare. 993 00:44:38,336 --> 00:44:38,960 Mike: Jag är Mike. 994 00:44:38,960 --> 00:44:39,882 CAMILLE: Jag är Camille. 995 00:44:39,882 --> 00:44:40,590 Hanya: Jag är Hanya. 996 00:44:40,590 --> 00:44:41,310 MATT: Jag är Matt. 997 00:44:41,310 --> 00:44:42,140 PETER: Jag är Peter. 998 00:44:42,140 --> 00:44:42,620 PHILLIP: Jag är Phillip. 999 00:44:42,620 --> 00:44:43,495 PATRICK: Jag är Patrick. 1000 00:44:43,495 --> 00:44:45,234 ROB BOWDEN: Jag är Rob Bowden. 1001 00:44:45,234 --> 00:44:47,150 BRIAN Scassellati: My namn är SCAS, och this-- 1002 00:44:47,150 --> 00:44:49,958 ALL: --is CS50. 1003 00:44:49,958 --> 00:44:50,806 TALARE 20: vid Yale. 1004 00:44:50,806 --> 00:44:51,639 TALARE 21: vid Yale. 1005 00:44:51,639 --> 00:44:52,840 [SKRATTANDE] 1006 00:44:52,840 --> 00:44:54,270 DAVID MALAN: Det är det för CS50. 1007 00:44:54,270 --> 00:44:59,000 Vi kommer att se dig från Yale på Fredag, pussel dag på lördag. 1008 00:44:59,000 --> 00:45:00,475 Kaka serveras nu. 1009 00:45:00,475 --> 00:45:01,640 Detta är CS50. 1010 00:45:01,640 --> 00:45:05,314 1011 00:45:05,314 --> 00:45:10,992 >> [Musik spelar] 1012 00:45:10,992 --> 00:47:00,434