1 00:00:00,000 --> 00:00:02,952 >> [MUSIK AFSPILLER] 2 00:00:02,952 --> 00:00:11,316 3 00:00:11,316 --> 00:00:13,284 >> [MUSIK AFSPILLER] 4 00:00:13,284 --> 00:00:18,722 5 00:00:18,722 --> 00:00:19,680 DAVID MALAN: Okay. 6 00:00:19,680 --> 00:00:21,983 Dette er CS50. 7 00:00:21,983 --> 00:00:24,108 [Musik spiller Tritonal, Cash Cash,  "Untouchable"] 8 00:00:24,108 --> 00:01:40,846 9 00:01:40,846 --> 00:01:41,844 [MUSIK AFSPILLER] 10 00:01:41,844 --> 00:01:45,337 SPEAKER 1: Jeg har tænkt mig at Frankrig, og du vil også. 11 00:01:45,337 --> 00:01:48,331 [MUSIK AFSPILLER] 12 00:01:48,331 --> 00:02:38,100 13 00:02:38,100 --> 00:02:41,930 DAVID MALAN: Dette er CS50, Harvard University introduktion 14 00:02:41,930 --> 00:02:44,520 til den intellektuelle virksomheder af datalogi 15 00:02:44,520 --> 00:02:47,940 og kunst af program-- og for første gang i historien, 16 00:02:47,940 --> 00:02:49,800 Yale University er så godt. 17 00:02:49,800 --> 00:02:53,830 Faktisk, uanset om du er her i Cambridge eller i New Haven eller Miami eller St. Louis 18 00:02:53,830 --> 00:02:55,550 eller Amsterdam eller hvor som helst jorden rundt 19 00:02:55,550 --> 00:03:00,080 tager CS50, computer videnskab E50, CS50X, CS50 AP, 20 00:03:00,080 --> 00:03:02,090 vi er alle én og samme. 21 00:03:02,090 --> 00:03:04,490 Velkommen til CS50. 22 00:03:04,490 --> 00:03:05,380 >> Det vi have-- 23 00:03:05,380 --> 00:03:06,348 >> [BIFALD] 24 00:03:06,348 --> 00:03:07,800 >> [Griner] 25 00:03:07,800 --> 00:03:10,220 >> [BIFALD] 26 00:03:10,220 --> 00:03:13,610 27 00:03:13,610 --> 00:03:16,920 >> Så jeg har lavet en fejl selv nogle tid siden, da jeg startede college. 28 00:03:16,920 --> 00:03:21,580 Og jeg fik på college, og jeg besluttede at ærligt, holde inden for min comfort zone. 29 00:03:21,580 --> 00:03:24,475 Jeg endte hvorved en fusion, eller en større, for regeringen. 30 00:03:24,475 --> 00:03:27,880 Ant, der var for det meste en funktion af mig være temmelig bekendt med regeringen 31 00:03:27,880 --> 00:03:31,270 eller i det mindste historie eller jeg kunne virkelig godt lide forfatningsret i gymnasiet. 32 00:03:31,270 --> 00:03:34,150 Og så når jeg fik her, jeg slags af gravitated mod ting 33 00:03:34,150 --> 00:03:35,800 som jeg var allerede bekendt. 34 00:03:35,800 --> 00:03:36,300 Højre? 35 00:03:36,300 --> 00:03:38,167 Gud forbyde jeg gør dårligt i klassen. 36 00:03:38,167 --> 00:03:40,250 Jeg bestemt ønskede at blive inden min comfort zone, 37 00:03:40,250 --> 00:03:43,010 og det var ikke før sophomore år, at jeg endelig 38 00:03:43,010 --> 00:03:46,820 stod op den frækhed at skridt mund i et klasseværelse kaldet CS50. 39 00:03:46,820 --> 00:03:51,150 Og på det tidspunkt, gjorde jeg endelig indser at, min Gud, hjemmearbejde kunne faktisk 40 00:03:51,150 --> 00:03:51,910 være sjovt. 41 00:03:51,910 --> 00:03:54,410 >> Ja, jeg var en af ​​de børn der på fredag ​​aftener, når 42 00:03:54,410 --> 00:03:57,640 P-SÆT ville blive frigivet, jeg ville gå tilbage til mit værelse og dykke 43 00:03:57,640 --> 00:03:58,790 i nattens P-SÆT. 44 00:03:58,790 --> 00:04:01,606 Og for mig, der var et tegn at dette var et felt for mig. 45 00:04:01,606 --> 00:04:04,480 Men hvad var vigtigere var den faktum, at jeg fik op denne nerve 46 00:04:04,480 --> 00:04:08,000 at udforske farvande ukendte for mig og komme ud over min egen komfort zone 47 00:04:08,000 --> 00:04:12,320 og helt ærligt, jeg kun var i stand til at gøre det sophomore år ved at tage denne klasse 48 00:04:12,320 --> 00:04:13,050 bestået / ikke bestået. 49 00:04:13,050 --> 00:04:16,470 >> Faktisk var det den sidste dag, Jeg endelig skiftede og endelig 50 00:04:16,470 --> 00:04:19,707 erklæret CS som min koncentration, sætte gov på det tidspunkt bag mig. 51 00:04:19,707 --> 00:04:22,290 Og så er vi ikke sætte i dette kursus for at slå jer alle 52 00:04:22,290 --> 00:04:25,780 ind i CS majors eller koncentratorer, men snarere at give dig en mulighed 53 00:04:25,780 --> 00:04:29,780 forhåbentlig gå ud over verden som du i øjeblikket kender 54 00:04:29,780 --> 00:04:33,660 og bringe tilbage fra denne verden færdigheder og viden og kyndige 55 00:04:33,660 --> 00:04:36,220 at du kan anvende til din egen verden, uanset om det er 56 00:04:36,220 --> 00:04:39,080 inden for humaniora, samfundsvidenskab, naturvidenskab, eller ud over. 57 00:04:39,080 --> 00:04:40,871 >> Ja, hvis du er følelse lidt frygtløs 58 00:04:40,871 --> 00:04:43,250 om at være i dette rum endsige i denne klasse, 59 00:04:43,250 --> 00:04:47,560 indse, at hvis historien er nogen indikation, 72% af jer 60 00:04:47,560 --> 00:04:49,802 har aldrig taget en CS kursus før. 61 00:04:49,802 --> 00:04:52,760 Så det er med alle midler ikke tilfældet at den studerende sidder til venstre 62 00:04:52,760 --> 00:04:56,850 eller til højre eller foran eller bag dig ved langt mere om CS 63 00:04:56,850 --> 00:04:58,820 eller programmering især end dig. 64 00:04:58,820 --> 00:05:00,432 Det er faktisk ikke tilfældet. 65 00:05:00,432 --> 00:05:02,140 Og ja, meget af støttestrukturen 66 00:05:02,140 --> 00:05:04,600 at vi har sat op i denne kursus i de seneste mange år 67 00:05:04,600 --> 00:05:08,840 har været for netop dette reason-- til tilvejebringe en on rampe, der stadig kommer ud 68 00:05:08,840 --> 00:05:11,640 lige så strengt og lige så højt som ever-- 69 00:05:11,640 --> 00:05:14,860 men hvis hældning tillade studerende mindre komfortabel og mere behagelig 70 00:05:14,860 --> 00:05:18,420 både til at lykkes, uanset af hans eller hendes tidligere baggrund. 71 00:05:18,420 --> 00:05:20,610 >> Faktisk hvad i sidste ende spørgsmål i denne klasse er ikke 72 00:05:20,610 --> 00:05:22,830 så meget, hvor du ender i forhold til dine klassekammerater 73 00:05:22,830 --> 00:05:26,000 men hvor man i uge 12 ender i forhold til dig selv 74 00:05:26,000 --> 00:05:28,720 i uge nul, hvilket er hvor vi er her i dag. 75 00:05:28,720 --> 00:05:32,315 >> Faktisk og dette kan meget vel og sandsynligvis ser ud som græsk 76 00:05:32,315 --> 00:05:32,940 til mange af jer. 77 00:05:32,940 --> 00:05:35,200 Men bare rolig, der dette og meget mere 78 00:05:35,200 --> 00:05:38,990 kommer til at være helt inden for dit gribe i bare en lille smule tid. 79 00:05:38,990 --> 00:05:41,410 >> Men i dag har vi fokus på nogle af de højere niveau ideer 80 00:05:41,410 --> 00:05:43,822 at give dig en smag af CS50 og datalogi 81 00:05:43,822 --> 00:05:45,530 i en fornemmelse af, hvad du tilmelder dig for. 82 00:05:45,530 --> 00:05:48,000 Og ja, datalogi kan være destilleret mere 83 00:05:48,000 --> 00:05:51,209 blot som beregningsmæssige thinking-- tænke som en computer, hvis du vil. 84 00:05:51,209 --> 00:05:54,000 Og der er så mange forskellige ting ingredienser, der går ind i denne, 85 00:05:54,000 --> 00:05:56,240 men lad os foreslå blot tre for i dag. 86 00:05:56,240 --> 00:05:59,420 Hvis målet af klassen i sidste ende er ikke at lære dig at programmere, 87 00:05:59,420 --> 00:06:03,022 er ikke at lære dig C eller PHP eller SQL eller en række af ordene 88 00:06:03,022 --> 00:06:04,730 og akronymer i kursus beskrivelse, 89 00:06:04,730 --> 00:06:07,850 men snarere at lære dig at løse problemer mere effektivt 90 00:06:07,850 --> 00:06:11,670 og til at tænke mere metodisk og mere algoritmisk, så at sige. 91 00:06:11,670 --> 00:06:13,610 Lad os se, hvad der præcist betyder. 92 00:06:13,610 --> 00:06:17,000 >> Så ville jeg foreslå, at tænkning beregningsmæssigt koges ned 93 00:06:17,000 --> 00:06:17,834 at løse problemer. 94 00:06:17,834 --> 00:06:19,333 Hvad har du brug for at løse et problem? 95 00:06:19,333 --> 00:06:21,470 Du er nødt til input-- ligesom input til problem-- 96 00:06:21,470 --> 00:06:23,636 du har brug for et output, som er forhåbentlig løsningen, 97 00:06:23,636 --> 00:06:26,720 og så skal du have en proces, som at løse dette problem, som 98 00:06:26,720 --> 00:06:30,030 vi vil kalde en algorithm-- et sæt af instruktioner til at løse nogle problemer. 99 00:06:30,030 --> 00:06:33,340 >> Men først, lad os fokusere på den første og den sidste af disse indgange og udgange. 100 00:06:33,340 --> 00:06:38,070 Computere trods alt, tilsyneladende kun forstår nuller og ettaller. 101 00:06:38,070 --> 00:06:39,299 Men hvordan kan det muligvis være? 102 00:06:39,299 --> 00:06:42,090 Selv hvis du ikke kender overhovedet med, hvad der er under hætten, 103 00:06:42,090 --> 00:06:44,980 du formentlig mindst hørt, at computere forstår binary-- 104 00:06:44,980 --> 00:06:48,050 bare nuller og ones-- men hvordan kan du overhovedet gøre noget interessant? 105 00:06:48,050 --> 00:06:49,960 >> Tja, et af temaerne af klassen går 106 00:06:49,960 --> 00:06:53,293 at være denne layering-- hvor der i dag, vil vi tage et hurtigt blik på det laveste niveau 107 00:06:53,293 --> 00:06:55,620 detaljer, men med hver dag der går, hvor vi lag 108 00:06:55,620 --> 00:06:59,420 eller abstrakt på toppen af ​​de detaljer til faktisk løse højere niveau 109 00:06:59,420 --> 00:07:01,080 problemer af interesse for os. 110 00:07:01,080 --> 00:07:04,730 >> Så her er, hvad vi kunne kalde binary-- med blot et alfabet af 0 og 1. 111 00:07:04,730 --> 00:07:06,960 Men vi mennesker er for det meste fortrolig med decimal. 112 00:07:06,960 --> 00:07:08,130 December betydning 10. 113 00:07:08,130 --> 00:07:09,070 Bi betyder to. 114 00:07:09,070 --> 00:07:12,100 Og så i decimal systemet, har vi 10 cifre 115 00:07:12,100 --> 00:07:14,099 på vores disposal-- af Selvfølgelig nul til ni. 116 00:07:14,099 --> 00:07:16,140 Så hvis du ser på en række som dette, de fleste af jer 117 00:07:16,140 --> 00:07:19,016 intuitivt bare fatte det er 123. 118 00:07:19,016 --> 00:07:20,640 Der er ikke noget virkelig hårdt om. 119 00:07:20,640 --> 00:07:22,452 Men hvorfor er det 123? 120 00:07:22,452 --> 00:07:24,660 Tja, hvis du tænker tilbage på klasse school-- eller i det mindste 121 00:07:24,660 --> 00:07:26,410 den måde, jeg lærte dette slags verden-dig 122 00:07:26,410 --> 00:07:29,640 kan huske, at vi behandlede disse ting i kolonner eller steder. 123 00:07:29,640 --> 00:07:31,412 >> Så vi har dem sted til højre. 124 00:07:31,412 --> 00:07:32,620 TEN sted i midten. 125 00:07:32,620 --> 00:07:34,240 De hundredvis placerer til venstre. 126 00:07:34,240 --> 00:07:36,980 Og så hvordan får vi fra dette mønster symbols-- 127 00:07:36,980 --> 00:07:41,771 1 2 3-- til dette højere niveau idé, at vi kender som 123? 128 00:07:41,771 --> 00:07:43,461 Tja, det er bare nogle simple aritmetiske. 129 00:07:43,461 --> 00:07:43,960 Højre? 130 00:07:43,960 --> 00:07:48,960 >> Den ene er det væsentlige betyder give os 100 gange 1 plus 10 gange 131 00:07:48,960 --> 00:07:50,410 2 plus 1 gange 3. 132 00:07:50,410 --> 00:07:53,430 Og selvfølgelig, hvis vi gør ud matematik der, det er 100 plus 20 133 00:07:53,430 --> 00:07:56,480 plus 3-- ellers kendt som 123. 134 00:07:56,480 --> 00:07:58,820 >> Så hvis du er på samme side som denne ret 135 00:07:58,820 --> 00:08:02,320 nu og er fortrolig med såkaldt decimal system, som et menneske, 136 00:08:02,320 --> 00:08:05,750 det er faktisk godt inden Deres anvendelsesområde komfort 137 00:08:05,750 --> 00:08:07,220 at overveje nu det binære system. 138 00:08:07,220 --> 00:08:10,110 Tag en vild guess-- dette repræsenterer, i verden af ​​computere 139 00:08:10,110 --> 00:08:12,001 i binary-- hvad nummer? 140 00:08:12,001 --> 00:08:12,500 Nul. 141 00:08:12,500 --> 00:08:13,580 >> Men hvorfor er det? 142 00:08:13,580 --> 00:08:17,460 Tja, det viser sig, at søjlerne eller steder her-- de ikke er beføjelser 10. 143 00:08:17,460 --> 00:08:19,670 1, 10, 100, 1000, og så videre. 144 00:08:19,670 --> 00:08:21,890 De er i stedet, helt simpelthen, potenser af 2. 145 00:08:21,890 --> 00:08:25,400 Så, 1, 2, 4, 8, 16, 32, og så videre. 146 00:08:25,400 --> 00:08:29,630 Og så nu vi naturligvis komme til 0 her simpelthen fordi vi har 4 gange 147 00:08:29,630 --> 00:08:34,510 0 plus 2 gange 0 plus 1 gange 0, hvilket naturligvis giver os 0. 148 00:08:34,510 --> 00:08:37,399 >> Men hvordan kan jeg gå om repræsenterer tallet 1? 149 00:08:37,399 --> 00:08:39,440 Hvad er mønsteret af nuller og ettaller til at repræsentere 150 00:08:39,440 --> 00:08:42,720 de numeriske vi mennesker kender som en? 151 00:08:42,720 --> 00:08:44,280 001. 152 00:08:44,280 --> 00:08:46,370 Og 2? 153 00:08:46,370 --> 00:08:47,480 010. 154 00:08:47,480 --> 00:08:49,760 >> Og nu mønstret begynder at gentagelser. 155 00:08:49,760 --> 00:08:50,890 Nu er det 011. 156 00:08:50,890 --> 00:08:54,310 Og igen, 0 fours, en 2, en 1. 157 00:08:54,310 --> 00:08:55,180 Så 2 plus 1. 158 00:08:55,180 --> 00:08:56,140 Det er tre. 159 00:08:56,140 --> 00:08:59,069 >> Og nu til at repræsentere 4, vi ikke bare ændre det 0 til en 1. 160 00:08:59,069 --> 00:09:01,360 Du slags nødt til at bære, så at sige, og tallene 161 00:09:01,360 --> 00:09:03,700 begynde at spejlvende rundt bare ligesom i decimaltegnet verden. 162 00:09:03,700 --> 00:09:04,670 >> Så dette er fire. 163 00:09:04,670 --> 00:09:05,410 Dette er 5. 164 00:09:05,410 --> 00:09:06,330 Dette er 6. 165 00:09:06,330 --> 00:09:07,580 Det er 7. 166 00:09:07,580 --> 00:09:09,720 Og så vi har talt så højt som 7. 167 00:09:09,720 --> 00:09:12,400 >> Nu mangler vi bare brug for, er mere en bits-- mere nuller og ens. 168 00:09:12,400 --> 00:09:15,700 Og faktisk "bits", hvis du har hørte dette term-- binært ciffer. 169 00:09:15,700 --> 00:09:17,470 Bit er hvor der kommer fra. 170 00:09:17,470 --> 00:09:20,190 Og så hvis vi ønsker at repræsentere større tal, vi har brug for flere bit. 171 00:09:20,190 --> 00:09:24,360 Men lad os bevæge sig væk fra dias nu til noget lidt mere reel. 172 00:09:24,360 --> 00:09:27,540 Antag, at vi ønsker at faktisk repræsenterer denne ting. 173 00:09:27,540 --> 00:09:31,790 >> Jamen så lad os tage et kig nu ved en lille demonstration. 174 00:09:31,790 --> 00:09:35,270 Så dette er en webbaseret applikation at en af ​​CS50 egen, Michael G, 175 00:09:35,270 --> 00:09:38,160 sat sammen denne sommer til at hjælpe os belyse netop denne idé. 176 00:09:38,160 --> 00:09:40,420 Og ville nogen som at vove op på scenen 177 00:09:40,420 --> 00:09:42,915 foran alle hans eller hendes klassekammerater? 178 00:09:42,915 --> 00:09:43,790 Lige der foran. 179 00:09:43,790 --> 00:09:45,660 Kom op. 180 00:09:45,660 --> 00:09:48,350 >> Du er nødt til at være behagelige på kamera og internettet. 181 00:09:48,350 --> 00:09:50,930 182 00:09:50,930 --> 00:09:52,450 Åh, lige her. 183 00:09:52,450 --> 00:09:52,950 OKAY. 184 00:09:52,950 --> 00:09:53,740 Vi er OK. 185 00:09:53,740 --> 00:09:54,240 Okay. 186 00:09:54,240 --> 00:09:54,740 Kom op. 187 00:09:54,740 --> 00:09:56,150 Hvad hedder du? 188 00:09:56,150 --> 00:09:58,550 Emily kom op. 189 00:09:58,550 --> 00:09:59,410 Så dette er Emily. 190 00:09:59,410 --> 00:10:00,840 Hvilket år er du? 191 00:10:00,840 --> 00:10:01,660 >> Freshman. 192 00:10:01,660 --> 00:10:02,810 >> Emily, rart at møde dig. 193 00:10:02,810 --> 00:10:03,310 David. 194 00:10:03,310 --> 00:10:03,810 >> Okay. 195 00:10:03,810 --> 00:10:06,120 Så op på skærmen her, vi har denne touch screen 196 00:10:06,120 --> 00:10:08,425 som vil tillade os at faktisk interagere med dette program, 197 00:10:08,425 --> 00:10:09,265 og det er bare en browser. 198 00:10:09,265 --> 00:10:11,390 Det er Chrome fuld screenet i øjeblikket, men det er 199 00:10:11,390 --> 00:10:14,030 programmeret af Michael til reagere på en måde, der tillader 200 00:10:14,030 --> 00:10:15,970 os til at lege med binære cifre. 201 00:10:15,970 --> 00:10:20,220 >> Så for eksempel, her har vi ikke tre, men otte bits-- nuller og ettaller. 202 00:10:20,220 --> 00:10:22,000 Lige nu er vi se på antallet 0. 203 00:10:22,000 --> 00:10:25,150 Og ja, alle otte nuller i decimal betyder nul. 204 00:10:25,150 --> 00:10:26,900 Så det er alle, der er bliver antydet her. 205 00:10:26,900 --> 00:10:29,395 >> Så hvis du ønsker at repræsenterer antallet 8, 206 00:10:29,395 --> 00:10:31,520 hvad er mønster af nuller og dem, som du ønsker? 207 00:10:31,520 --> 00:10:35,160 Du kan blot trykke op eller ned eller numrene selv. 208 00:10:35,160 --> 00:10:35,660 Okay. 209 00:10:35,660 --> 00:10:37,659 Så det er naturligvis 8, som du kan se deroppe. 210 00:10:37,659 --> 00:10:41,260 Og hvis vi ønskede at gør 16, hvad gør vi? 211 00:10:41,260 --> 00:10:42,701 >> Jep, bare røre det igen. 212 00:10:42,701 --> 00:10:43,200 16. 213 00:10:43,200 --> 00:10:43,870 Okay. 214 00:10:43,870 --> 00:10:46,522 Så dette er alt fint og godt, det er stadig meget lavt niveau. 215 00:10:46,522 --> 00:10:48,230 Vi har brug for en måde i virkelige verden til Emily 216 00:10:48,230 --> 00:10:50,550 af faktisk repræsenterer disse ting. 217 00:10:50,550 --> 00:10:54,230 Og så formoder, at vi slå disse nuller og ettaller, som er meget 218 00:10:54,230 --> 00:10:55,980 konceptuelle, til egentlige pærer. 219 00:10:55,980 --> 00:10:56,480 Højre? 220 00:10:56,480 --> 00:10:59,540 >> En computer er et fysisk, mekaniske, elektriske apparat. 221 00:10:59,540 --> 00:11:02,220 Og dens input-- mindst hvis du tilslutter den eller afgift det-- 222 00:11:02,220 --> 00:11:05,090 er at have batteristrøm og elektroner flyder ind og ud. 223 00:11:05,090 --> 00:11:08,150 >> Så nu, hvorfor vi ikke stoppe med at tænke om bits som nuller og ettaller, 224 00:11:08,150 --> 00:11:10,470 men noget mere fysisk ligesom pærer her. 225 00:11:10,470 --> 00:11:13,815 Og hvis Dan Armendariz kunne slutte mig for bare en moment-- komme på spiller det, 226 00:11:13,815 --> 00:11:15,440 vi kommer til at stå i kø en ansøgning. 227 00:11:15,440 --> 00:11:15,940 >> Kom forbi, Emily. 228 00:11:15,940 --> 00:11:18,270 Beklager dette er den mest akavet demo for dig nogensinde. 229 00:11:18,270 --> 00:11:20,330 Kom herover. 230 00:11:20,330 --> 00:11:22,080 Vi kommer til at stå i kø op med tak til Dan 231 00:11:22,080 --> 00:11:25,300 Armendariz, et andet medlem af vores medarbejdere, en ansøgning kaldet binære pære. 232 00:11:25,300 --> 00:11:28,070 >> Så hvad vi har her er en iPad applikation 233 00:11:28,070 --> 00:11:31,970 der har følgende bruger grænseflade på skærmen for Emily. 234 00:11:31,970 --> 00:11:35,400 Det har lige fået nøjagtig de samme UI væsentlige det er derovre. 235 00:11:35,400 --> 00:11:39,220 Og hvis du nu ønsker at repræsenterer antallet, siger 8, 236 00:11:39,220 --> 00:11:42,094 hvordan ville du gå om at gøre denne bemærke til højre, 237 00:11:42,094 --> 00:11:43,510 pærer, som vi har her? 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 Magical. 241 00:11:48,290 --> 00:11:51,830 Så hvis vi ønsker at nu gøre dette til noget lidt mere udfordrende, 242 00:11:51,830 --> 00:11:58,100 og lad os gå videre og vælge en tilfældig tal som tallet 50 her. 243 00:11:58,100 --> 00:11:59,015 Input dette. 244 00:11:59,015 --> 00:12:01,640 Og hvis du kan nu blive udfordret til at komme op med nummeret 50, 245 00:12:01,640 --> 00:12:04,268 vi får en fabelagtig pris for dig. 246 00:12:04,268 --> 00:12:06,144 >> EMILY: OK. 247 00:12:06,144 --> 00:12:08,692 Åh gud. 248 00:12:08,692 --> 00:12:10,650 DAVID MALAN: Arithmetic er faktisk hårdt foran 249 00:12:10,650 --> 00:12:12,860 af hundredvis af dine klassekammerater. 250 00:12:12,860 --> 00:12:16,260 Men 50 har været svaret her. 251 00:12:16,260 --> 00:12:18,132 >> [BIFALD] 252 00:12:18,132 --> 00:12:21,875 >> Og så nu, det er meningen, at være demonstrative for Emily. 253 00:12:21,875 --> 00:12:24,315 Så i her, er lidt lys pærer ganske som disse, 254 00:12:24,315 --> 00:12:26,190 men det er faktisk den små magnetiske strimler. 255 00:12:26,190 --> 00:12:28,570 Og hvad er cool om disse og årsagen til at vi bruger dem i CS50 256 00:12:28,570 --> 00:12:31,640 er, at de støtter noget, der hedder en API-- en application programming 257 00:12:31,640 --> 00:12:34,681 interface, som er bare en fancy måde at sige, at hvad en af ​​vores medarbejdere 258 00:12:34,681 --> 00:12:37,284 gjorde i løbet af sommeren blev skabe en iPad applikation her 259 00:12:37,284 --> 00:12:39,700 der taler over internettet til de pærer herovre, 260 00:12:39,700 --> 00:12:41,810 som er trådløst forbundet til en anden enhed. 261 00:12:41,810 --> 00:12:43,912 Men det er nu en mulighed for de endelige projekter. 262 00:12:43,912 --> 00:12:46,370 Og så Emily, hvis du ville så lignende, ved slutningen af ​​udtrykket, 263 00:12:46,370 --> 00:12:48,703 du kan pryde dit kollegieværelse i mellemtiden med dem. 264 00:12:48,703 --> 00:12:50,376 Tak til Emily så godt. 265 00:12:50,376 --> 00:12:53,244 >> [BIFALD] 266 00:12:53,244 --> 00:12:56,590 267 00:12:56,590 --> 00:13:00,055 >> Men nu, lad os vende vores opmærksomhed på, hvad 268 00:13:00,055 --> 00:13:03,180 dette budskab kunne have set ud, og det er lidt noget som dette. 269 00:13:03,180 --> 00:13:05,320 I virkeligheden er dette en eksempel blot som en teaser 270 00:13:05,320 --> 00:13:08,400 af hvad der er at komme af, hvad der er kaldes en API anmodning. 271 00:13:08,400 --> 00:13:11,409 Og så det, vi har her, er simpelthen præcis de typer meddelelser 272 00:13:11,409 --> 00:13:13,200 at efter et par uger tid i CS50, vil du 273 00:13:13,200 --> 00:13:16,590 kunne sende til noget temmelig velkendt sådan til rent faktisk 274 00:13:16,590 --> 00:13:18,100 slå dem til og fra. 275 00:13:18,100 --> 00:13:19,350 Men det er alt fint og godt. 276 00:13:19,350 --> 00:13:19,850 Højre? 277 00:13:19,850 --> 00:13:22,710 Vi har den mentale model forhåbentlig til at repræsentere tal med 278 00:13:22,710 --> 00:13:23,660 nuller og ens. 279 00:13:23,660 --> 00:13:26,290 Og fra nuller og ettaller, kan vi komme til højere tal som 50, 280 00:13:26,290 --> 00:13:29,460 som Emily lige gjorde, eller vi kan bevæge sig op fra det. 281 00:13:29,460 --> 00:13:32,160 Og jeg påstå, at vi kan repræsentere ting som breve samt. 282 00:13:32,160 --> 00:13:32,660 Højre? 283 00:13:32,660 --> 00:13:35,360 >> Computere er langt mere interessant end bare tal. 284 00:13:35,360 --> 00:13:37,340 Og så hvordan kan du gå om der repræsenterer ord 285 00:13:37,340 --> 00:13:39,420 på skærmen eller e-mails eller essays eller lignende? 286 00:13:39,420 --> 00:13:43,170 Tja, det viser sig, at computere simpelthen abstrakt oven på disse lavt niveau 287 00:13:43,170 --> 00:13:47,380 detaljer og mennesker for nogen tid siden, kom op med en vilkårlig, men en konsekvent, 288 00:13:47,380 --> 00:13:51,710 kortlægning af numre til letters-- så at hver gang du ser et stort bogstav 289 00:13:51,710 --> 00:13:54,170 A på din computer skærm, odds er, hvad der er 290 00:13:54,170 --> 00:13:57,370 under emhætten er en mønster af nuller og ettaller 291 00:13:57,370 --> 00:14:00,650 at repræsenterer antallet, per dette skema, 65. 292 00:14:00,650 --> 00:14:02,830 >> Og mere fysisk indersiden af ​​din computer, 293 00:14:02,830 --> 00:14:06,450 er millioner af ting kaldet transistors-- disse days-- som 294 00:14:06,450 --> 00:14:10,190 er bare skifter hvis du vil, ting der kan gå til og fra og så forestille sig. 295 00:14:10,190 --> 00:14:14,130 Ikke otte af disse store pærer men millioner af disse lillebitte lys 296 00:14:14,130 --> 00:14:17,490 løg, eller kontakter eller transistorer, der kan tænde og slukke 297 00:14:17,490 --> 00:14:19,170 baseret på hvordan du programmere dem. 298 00:14:19,170 --> 00:14:22,120 Og så nu har vi en måde at repræsenterer breve så godt. 299 00:14:22,120 --> 00:14:25,300 >> Faktisk, hvis jeg skulle bruge denne kortlægning her og forsøge at faktisk 300 00:14:25,300 --> 00:14:28,731 stave noget ud, kunne vi se på dette mønster af decimaltal 301 00:14:28,731 --> 00:14:29,230 lige nu. 302 00:14:29,230 --> 00:14:31,354 Så vi kommer ikke til at selv fokusere på binære længere. 303 00:14:31,354 --> 00:14:35,910 Lad os bare betragte disse som decimaltal 72, 73, 33. 304 00:14:35,910 --> 00:14:38,044 Men hvad kan dette repræsenterer? 305 00:14:38,044 --> 00:14:39,960 Nogen der har en tilstrækkelig fotografisk hukommelse 306 00:14:39,960 --> 00:14:43,060 at vide, hvad er stavet på skærmen her? 307 00:14:43,060 --> 00:14:43,560 Ja et par stykker. 308 00:14:43,560 --> 00:14:44,190 Så hej. 309 00:14:44,190 --> 00:14:48,330 H-I og derefter et udråbstegn, som ikke var faktisk på skærmen. 310 00:14:48,330 --> 00:14:51,060 Men faktisk er der en kortlægning for hvert bogstav til hvert nummer 311 00:14:51,060 --> 00:14:53,340 at du måske ønsker at skrive på tastaturet. 312 00:14:53,340 --> 00:14:55,430 >> Men tal behøver ikke at repræsenterer kun bogstaver. 313 00:14:55,430 --> 00:14:55,930 Højre? 314 00:14:55,930 --> 00:14:59,570 Alle os vide om billeder og fotografier og lydfiler 315 00:14:59,570 --> 00:15:00,870 og videofiler og lignende. 316 00:15:00,870 --> 00:15:03,580 Så klart kan vi repræsentere højere niveau ting stille. 317 00:15:03,580 --> 00:15:06,920 Og så hvad en computer gør, er simpelthen vælge 318 00:15:06,920 --> 00:15:11,240 at fortolke mønstre af nul dem forskelligt baseret på sammenhængen. 319 00:15:11,240 --> 00:15:13,130 >> Hvis du dobbeltklikker på en Microsoft Word-ikon, 320 00:15:13,130 --> 00:15:15,900 du ser ordene på skærmen i stedet for farver og billeder 321 00:15:15,900 --> 00:15:18,850 fordi ord ved, at dette er en essay, at du faktisk har indtastet. 322 00:15:18,850 --> 00:15:21,510 Hvis du i stedet dobbeltklik på en JPEG eller en GIF eller en PNG, 323 00:15:21,510 --> 00:15:27,070 den åbner op og er et billede, fordi det .PNG Eller .docx eller hvad filen 324 00:15:27,070 --> 00:15:30,450 udvidelse er og hvad software du bruger ved at fortolke 325 00:15:30,450 --> 00:15:34,420 et mønster af nuller og ettaller forskelligt baseret på, hvad dens formål i livet er. 326 00:15:34,420 --> 00:15:37,330 >> Så for eksempel dette samme sekvens af tal 327 00:15:37,330 --> 00:15:41,250 kan repræsentere hvor meget rød gør du ønsker, hvor meget grøn vil du, 328 00:15:41,250 --> 00:15:42,810 og hvor meget blå vil du. 329 00:15:42,810 --> 00:15:47,490 Og ja, hvis du nogensinde har hørt RGB-- så bare rød grøn blå. 330 00:15:47,490 --> 00:15:51,380 Og så hvis jeg ser numre som dette giv mig 72 røde, giv mig 73 grøn, 331 00:15:51,380 --> 00:15:56,910 og 33 blå, det er sådan en computer ved hjælp tre bytes-- hvor 332 00:15:56,910 --> 00:16:01,470 en byte er otte bits eller 24 bits-- ville udgøre en temmelig ubehagelig skygge 333 00:16:01,470 --> 00:16:03,660 af brun eller gul her. 334 00:16:03,660 --> 00:16:07,500 Og i forskellige sammenhænge, ​​kunne de, nøjagtig samme mønstre i nuller og ettaller 335 00:16:07,500 --> 00:16:10,780 betyde noget helt anderledes så godt. 336 00:16:10,780 --> 00:16:13,899 >> Så vi har nu en måde at repræsentere oplysninger-- nuller og ettaller. 337 00:16:13,899 --> 00:16:15,190 Oven i det, får vi breve. 338 00:16:15,190 --> 00:16:16,860 Oven i det, kan vi få farver. 339 00:16:16,860 --> 00:16:19,730 Og lad os antage, for i dag at vi kan få lyd og video 340 00:16:19,730 --> 00:16:22,590 og tingene så meget mere sofistikeret end det. 341 00:16:22,590 --> 00:16:25,370 >> Men lad os nu overveje hvordan vi bruger disse input 342 00:16:25,370 --> 00:16:27,390 og producere dem udgange nu hvor vi har 343 00:16:27,390 --> 00:16:29,830 en måde at repræsentere disse oplysninger. 344 00:16:29,830 --> 00:16:31,820 Tja, vi har brug for noget kaldes en algoritme. 345 00:16:31,820 --> 00:16:34,320 Igen, et sæt instruktioner for at løse nogle problem 346 00:16:34,320 --> 00:16:37,580 trin step-- og mere præcis, jo bedre. 347 00:16:37,580 --> 00:16:42,090 >> Og så et eksempel, som mennesker er ganske vist mindre kendte disse dage, 348 00:16:42,090 --> 00:16:44,300 men ikke desto mindre er stadig med os i software, 349 00:16:44,300 --> 00:16:47,490 er processen med at se up person i en telefonbog. 350 00:16:47,490 --> 00:16:51,690 >> Nu, færre og færre folk ved hver år, hvad denne levn faktisk er her. 351 00:16:51,690 --> 00:16:53,470 Men tilbage i min dag, dette var en telefonbog 352 00:16:53,470 --> 00:16:57,266 med tusindvis af sider og tal og folks navne fra A gennem Z. 353 00:16:57,266 --> 00:17:00,390 Og selvom vi er slags snyd en bit-- dette er for det meste gule sider. 354 00:17:00,390 --> 00:17:01,920 Der var også hvide sider på det tidspunkt, hvor 355 00:17:01,920 --> 00:17:04,720 havde alle disse navne og antal faktiske mennesker. 356 00:17:04,720 --> 00:17:07,970 >> Og hvis jeg ønskede at se en person op i en telefonbog som denne dag, selvfølgelig, 357 00:17:07,970 --> 00:17:11,010 Jeg bare skrive de første par tegn i hans eller hendes navn, 358 00:17:11,010 --> 00:17:13,480 og min telefon finder, at oplysninger. 359 00:17:13,480 --> 00:17:15,970 Men den proces, hvorved din iPhone eller Android-telefon 360 00:17:15,970 --> 00:17:18,730 eller hvad er faktisk at finde person på din kontaktliste 361 00:17:18,730 --> 00:17:22,099 er identisk med det, vi mennesker sandsynligvis har gjort i nogen tid. 362 00:17:22,099 --> 00:17:24,260 >> Nu kunne jeg tage dette problem, hvis du vil, 363 00:17:24,260 --> 00:17:26,220 samt input her er ikke nuller og ettaller. 364 00:17:26,220 --> 00:17:28,730 De er Og den slags lignende, lad os sige 1.000 sider. 365 00:17:28,730 --> 00:17:32,650 Og hvis jeg ønskede at se op nogen gerne Mike Smith i denne telefonbog, 366 00:17:32,650 --> 00:17:35,570 Jeg kunne starte ved begyndelsen og se, at jeg er i A sektionen 367 00:17:35,570 --> 00:17:38,300 og derefter slå en side ad en tid, leder og leder 368 00:17:38,300 --> 00:17:42,820 som jeg gør til BS og C-og D's og så fremdeles for Mike Smith. 369 00:17:42,820 --> 00:17:46,000 Smith begynder med et S, jeg vil forhåbentlig med tiden finde ham. 370 00:17:46,000 --> 00:17:50,090 >> Er dette algorithm-- der process-- korrekt? 371 00:17:50,090 --> 00:17:50,590 Ja. 372 00:17:50,590 --> 00:17:51,610 Det er korrekt. 373 00:17:51,610 --> 00:17:57,040 Jeg vil finde Mike hvis han er i her, men hvad er det forbehold, at du kan tilbyde. 374 00:17:57,040 --> 00:17:57,541 Det er langsom. 375 00:17:57,541 --> 00:17:58,040 Højre? 376 00:17:58,040 --> 00:18:00,975 Jeg ved Mike S er slags mod den sidste halvdel af telefonbogen. 377 00:18:00,975 --> 00:18:02,766 Hvorfor dælen er jeg begyndende ved begyndelsen 378 00:18:02,766 --> 00:18:04,349 og går side ved side for side. 379 00:18:04,349 --> 00:18:06,890 Så selvfølgelig, kunne jeg vende det rundt og starte fra bagsiden, 380 00:18:06,890 --> 00:18:08,973 men det kommer til at få mig der i samme tempo, 381 00:18:08,973 --> 00:18:10,930 hvis du willl-- side efter side efter side. 382 00:18:10,930 --> 00:18:14,190 Og det kommer ikke til at fungere, hvis jeg vil have at søge efter en anden, hvis 383 00:18:14,190 --> 00:18:15,880 navn kommer tidligere i alfabetet. 384 00:18:15,880 --> 00:18:17,240 >> Så hvad nu hvis jeg gør, hvad jeg lært i folkeskolen, 385 00:18:17,240 --> 00:18:19,205 igen, gør tingene ikke af dem, men af ​​toere. 386 00:18:19,205 --> 00:18:23,060 Så 2, 4, 6, 8, 10, 12, og så videre. 387 00:18:23,060 --> 00:18:23,740 Er det korrekt? 388 00:18:23,740 --> 00:18:27,030 389 00:18:27,030 --> 00:18:27,560 Ingen. 390 00:18:27,560 --> 00:18:28,830 Det er slags korrekt. 391 00:18:28,830 --> 00:18:33,210 Men nogle af jer, der mumlede nej, hvor er problemet, eller fejlen, 392 00:18:33,210 --> 00:18:34,240 den fejl så at sige. 393 00:18:34,240 --> 00:18:34,580 Ja. 394 00:18:34,580 --> 00:18:36,570 >> STUDENT: Du kan springe over højre post. 395 00:18:36,570 --> 00:18:37,320 >> DAVID MALAN: Ja. 396 00:18:37,320 --> 00:18:40,340 Jeg kunne springe over Mike Smith er fordi jeg har taget to sider på en gang 397 00:18:40,340 --> 00:18:43,190 og han tilfældigvis bare for at være indlagt mellem disse to sider. 398 00:18:43,190 --> 00:18:46,500 Jeg kunne indse, at Jeg er på til T-sektion 399 00:18:46,500 --> 00:18:48,690 ikke har fundet Mike Smith endnu. 400 00:18:48,690 --> 00:18:50,820 >> Og så hvad kan den faste der være? 401 00:18:50,820 --> 00:18:52,709 Tja, hvis jeg gør ramt Ts i telefonbogen, 402 00:18:52,709 --> 00:18:54,500 Jeg skal muligvis til at fordoble sikkerhedskopiere en eller så siden. 403 00:18:54,500 --> 00:18:56,830 Så det er fixable, men det er ikke helt så enkel 404 00:18:56,830 --> 00:18:59,170 som bare går med to for at fremskynde min præstation. 405 00:18:59,170 --> 00:18:59,680 Men hvad? 406 00:18:59,680 --> 00:19:00,180 Kom nu. 407 00:19:00,180 --> 00:19:03,530 Hvad er hvad de fleste mennesker går at gøre med denne slags telefonbog? 408 00:19:03,530 --> 00:19:04,696 Du er givet telefonbogen. 409 00:19:04,696 --> 00:19:06,280 Hvad laver du? 410 00:19:06,280 --> 00:19:06,922 >> Hvad er det? 411 00:19:06,922 --> 00:19:07,630 Gå til midten. 412 00:19:07,630 --> 00:19:10,620 Så hørte jeg gå til midten, og jeg finde mig nogenlunde i M sektion, 413 00:19:10,620 --> 00:19:11,120 så at sige. 414 00:19:11,120 --> 00:19:12,670 Og nu, hvad gør jeg ønsker at gøre? 415 00:19:12,670 --> 00:19:14,077 Godt arbejde. 416 00:19:14,077 --> 00:19:14,785 Hvad hedder du? 417 00:19:14,785 --> 00:19:15,350 >> JAMES: James. 418 00:19:15,350 --> 00:19:15,890 >> DAVID MALAN: James, okay. 419 00:19:15,890 --> 00:19:16,829 Hvad gør jeg nu? 420 00:19:16,829 --> 00:19:18,620 JAMES: Du går i halvdelen har S '. 421 00:19:18,620 --> 00:19:18,740 DAVID MALAN: Okay. 422 00:19:18,740 --> 00:19:20,910 Jeg har tænkt mig at gå ind i halvdelen har S 'i det, fordi, igen, 423 00:19:20,910 --> 00:19:22,920 en bestemmelse her var at denne ting er sorteret. 424 00:19:22,920 --> 00:19:25,461 Det er en temmelig ubrugelig 1000 sider, hvis Verizon faktisk ikke 425 00:19:25,461 --> 00:19:27,339 sortere disse ting for os en gennem Z. 426 00:19:27,339 --> 00:19:30,130 Så hvis jeg ved, Mike er sandsynligvis i den sidste halvdel af telefonbogen, 427 00:19:30,130 --> 00:19:31,536 Jeg kan nu. 428 00:19:31,536 --> 00:19:33,388 >> [Griner] 429 00:19:33,388 --> 00:19:35,240 430 00:19:35,240 --> 00:19:37,391 >> Riv problemet i halve. 431 00:19:37,391 --> 00:19:38,615 >> [BIFALD] 432 00:19:38,615 --> 00:19:39,115 433 00:19:39,115 --> 00:19:40,300 Tak. 434 00:19:40,300 --> 00:19:42,510 Riv problemet i halve. 435 00:19:42,510 --> 00:19:44,440 Det var faktisk real-- denne kamp. 436 00:19:44,440 --> 00:19:47,050 Så rive telefonbogen i halve og efterlod mig selv 437 00:19:47,050 --> 00:19:48,580 med grundlæggende det samme problem. 438 00:19:48,580 --> 00:19:50,060 Men naturligvis halvt så stor. 439 00:19:50,060 --> 00:19:52,550 Og hvis jeg følger James ' rådgivning igen, og jeg går her. 440 00:19:52,550 --> 00:19:54,400 Jeg siger, åh nu er jeg i T-sektion. 441 00:19:54,400 --> 00:19:56,460 >> Og så selvfølgelig, jeg kan rive telefonbogen 442 00:19:56,460 --> 00:19:59,660 i halvdelen en gang mere, hvilket efterlader mig med et problem, der er 443 00:19:59,660 --> 00:20:00,810 nu en fjerdedel af størrelsen. 444 00:20:00,810 --> 00:20:05,335 Så jeg har gået fra 1000 til 500 til 250 til 125 og så videre. 445 00:20:05,335 --> 00:20:07,350 Det føles som om jeg er tager større bid ud 446 00:20:07,350 --> 00:20:10,615 af dette problem med hver iteration, eller hvert trin i det. 447 00:20:10,615 --> 00:20:15,580 >> Og ja, den tid, jeg har tænkt mig at bruge finde Mike Smith i dette eksempel 448 00:20:15,580 --> 00:20:18,970 er så meget mindre, fordi i sidste ende er jeg gå til skære denne pone bog ned 449 00:20:18,970 --> 00:20:20,192 til blot én enlig side. 450 00:20:20,192 --> 00:20:23,010 Og hvis Mike er på denne side, er jeg kommer til at gå videre og give ham 451 00:20:23,010 --> 00:20:24,670 et opkald have fundet ham. 452 00:20:24,670 --> 00:20:27,030 >> Men hvor meget bedre er, at algorithm-- 453 00:20:27,030 --> 00:20:29,690 der tør sige intuitiv algorithm-- end dem, vi 454 00:20:29,690 --> 00:20:34,920 i gang med som vi er meget linear-- venstre til right-- i et tempo på 1 eller 2x? 455 00:20:34,920 --> 00:20:36,100 >> Nå, lad os plot dette. 456 00:20:36,100 --> 00:20:39,380 Vi behøver ikke at bekymre dig for meget om matematik eller tal i dette tilfælde her. 457 00:20:39,380 --> 00:20:40,550 Vi ser netop på et plot. 458 00:20:40,550 --> 00:20:43,600 Så på x eller vandret akse, er størrelsen af ​​den problem-- 459 00:20:43,600 --> 00:20:44,700 Hvor mange sider er der. 460 00:20:44,700 --> 00:20:46,760 På Y, eller den lodrette aksen, er, hvor meget tid 461 00:20:46,760 --> 00:20:48,218 er det vil tage mig at løse det. 462 00:20:48,218 --> 00:20:50,760 Og måske det er, hvor mange side sving, hvor mange sekunder, 463 00:20:50,760 --> 00:20:52,370 hvordan many-- nogle enhed af foranstaltninger. 464 00:20:52,370 --> 00:20:57,810 >> Og jeg har tegnet en rød lige linjer her, fordi hvis hver ekstra side 465 00:20:57,810 --> 00:21:01,740 af telefonbogen, jeg kræver at gøre et yderligere trin. 466 00:21:01,740 --> 00:21:03,680 Så hvis Verizon tilføjer en mere side næste år, 467 00:21:03,680 --> 00:21:06,970 Jeg måske nødt til at vende endnu en side at finde en som Mike Smith. 468 00:21:06,970 --> 00:21:11,340 >> I mellemtiden er den anden algoritme, som Jeg gik toere, er den samme form. 469 00:21:11,340 --> 00:21:15,220 Det er stadig meget lineær, meget overladt til ret, idet lige byte hver gang, 470 00:21:15,220 --> 00:21:16,900 men hældningen er lidt lavere. 471 00:21:16,900 --> 00:21:23,590 >> For eksempel, hvis størrelse problemet var groft her 472 00:21:23,590 --> 00:21:25,990 og jeg brugte min første algoritme, Jeg måske ender hele vejen 473 00:21:25,990 --> 00:21:27,480 på toppen af ​​denne røde linje. 474 00:21:27,480 --> 00:21:29,390 Men hvis jeg bruger i stedet til twosies nærmer, 475 00:21:29,390 --> 00:21:31,480 den gule linje antyder fordi det er lavere, 476 00:21:31,480 --> 00:21:33,790 at det kommer til at tage mig mindre tid på at løse. 477 00:21:33,790 --> 00:21:37,400 >> Men hvad er formen af tredje algorithm-- igen, velsagtens 478 00:21:37,400 --> 00:21:38,707 den mest intuitive algoritme? 479 00:21:38,707 --> 00:21:40,540 Tja, det ser lidt noget som dette. 480 00:21:40,540 --> 00:21:43,480 Det er buet eller logaritmisk, i form. 481 00:21:43,480 --> 00:21:46,510 Og selv om det aldrig slags flader ud, 482 00:21:46,510 --> 00:21:50,770 det asymptotisk inches op og op og op, men frygtelig langsomt 483 00:21:50,770 --> 00:21:52,129 versus alt andet. 484 00:21:52,129 --> 00:21:53,170 Og hvad er det tage væk? 485 00:21:53,170 --> 00:21:54,215 Nå, vi kalder det log n. 486 00:21:54,215 --> 00:21:55,820 Men hvad betyder det egentlig? 487 00:21:55,820 --> 00:21:58,580 Tja, hvis Verizon fordoblet antallet af sider i telefonbogen 488 00:21:58,580 --> 00:22:00,810 næste år fra 1.000 til 2.000. 489 00:22:00,810 --> 00:22:04,600 Hvor mange flere skridt er min første algoritme vil tage? 490 00:22:04,600 --> 00:22:05,440 >> Min første algoritme. 491 00:22:05,440 --> 00:22:06,399 Måske 1.000 flere trin. 492 00:22:06,399 --> 00:22:08,106 Hvis de fordoblet telefonbog, jeg har tænkt mig 493 00:22:08,106 --> 00:22:10,590 at skulle bladre gennem en anden 1.000 sider for at finde Mike. 494 00:22:10,590 --> 00:22:13,240 Selvfølgelig, hvis det andet algoritme, måske 500, fordi jeg er 495 00:22:13,240 --> 00:22:14,610 går dobbelt så hurtigt. 496 00:22:14,610 --> 00:22:18,380 >> Men hvis Verizon fordobler antallet af sider mellem år og næste år, 497 00:22:18,380 --> 00:22:21,650 med min tredje algorithm-- kløften og erobre, at James foreslog, 498 00:22:21,650 --> 00:22:24,450 går i halvt af og half-- hvor mange flere skridt vil 499 00:22:24,450 --> 00:22:29,030 det tage mig næste år at have en telefonbog med en størrelse 2000? 500 00:22:29,030 --> 00:22:29,670 Bare en. 501 00:22:29,670 --> 00:22:34,110 For med et bid, kan jeg tage, ud af dette problem, halvdelen af ​​siderne 502 00:22:34,110 --> 00:22:34,694 væk. 503 00:22:34,694 --> 00:22:37,860 Og hvis du tænker over dette lidt sindssygt nu-- hvis telefonbogen ikke gør 504 00:22:37,860 --> 00:22:41,810 har 1.000 eller 2000 Side, men lad os sige 4 milliarder Og den slags 505 00:22:41,810 --> 00:22:45,282 det er en stor telefon book-- hvordan mange gange, eller hvor mange skridt 506 00:22:45,282 --> 00:22:47,740 er det vil tage mig at finde Mike Smith i telefonbogen 507 00:22:47,740 --> 00:22:50,489 med 4 milliarder sider. 508 00:22:50,489 --> 00:22:52,030 Du kan slags begynde at gøre det math. 509 00:22:52,030 --> 00:22:52,200 Okay. 510 00:22:52,200 --> 00:22:53,175 4 milliarder divideres med 2. 511 00:22:53,175 --> 00:22:54,550 Så det er 2 mia divideret med en. 512 00:22:54,550 --> 00:22:55,510 Det er 1 mia. 513 00:22:55,510 --> 00:22:56,410 Så en halv milliard. 514 00:22:56,410 --> 00:22:59,940 Så 250-- så du kan gøre det igen og igen, men ikke så mange gange før 515 00:22:59,940 --> 00:23:01,020 du kommer til en side. 516 00:23:01,020 --> 00:23:04,360 >> Og faktisk, selvom telefonen bog er 4 milliarder sider 517 00:23:04,360 --> 00:23:08,340 eller den database, du søger er 4 milliarder optegnelser lang, 518 00:23:08,340 --> 00:23:12,720 det vil tage dig give eller tage 32 trin kun at finde Mike Smith. 519 00:23:12,720 --> 00:23:15,990 Og hvis du fordobler telefonbogen næste år fra 4 milliarder til at 8 milliarder, 520 00:23:15,990 --> 00:23:19,010 33 trin i stedet for kun 32. 521 00:23:19,010 --> 00:23:21,100 >> Og dette er Testamente til en af ​​idéerne 522 00:23:21,100 --> 00:23:24,100 at vi kunne omfavne i computer videnskab mere generelt som 523 00:23:24,100 --> 00:23:26,760 er denne beregningsmæssige tænkning og nærmer sig et problem 524 00:23:26,760 --> 00:23:29,479 helt ærligt ved hjælp af værktøjer fra din allerede velkendt redskab 525 00:23:29,479 --> 00:23:31,520 kit-- din virkelige verden med som du er fortrolig, 526 00:23:31,520 --> 00:23:34,730 men udnytte disse idéer til faktisk at løse problemer. 527 00:23:34,730 --> 00:23:37,200 >> Men vi er nødt til at formalisere vores løsninger på disse problemer. 528 00:23:37,200 --> 00:23:40,200 Og så lad mig introducere et øjeblik noget, vi kunne kalde pseudokode. 529 00:23:40,200 --> 00:23:44,260 En stor del af semestret, vil vi bruge hjælp faktiske kode i sprog som C og PHP 530 00:23:44,260 --> 00:23:46,570 og JavaScript og SQL og lignende. 531 00:23:46,570 --> 00:23:49,000 >> Men for nu, lad os bare se på noget temmelig intuitiv 532 00:23:49,000 --> 00:23:49,930 som engelsk. 533 00:23:49,930 --> 00:23:52,490 Jeg kunne destillere at algoritme, med hvilken 534 00:23:52,490 --> 00:23:54,650 Jeg fandt Mike i trin som denne. 535 00:23:54,650 --> 00:23:55,760 >> Pick up telefonbogen 536 00:23:55,760 --> 00:23:57,121 >> Åben for midten af ​​telefonbog 537 00:23:57,121 --> 00:23:57,870 Kig på navns 538 00:23:57,870 --> 00:23:59,290 Hvis Mike er blandt navns 539 00:23:59,290 --> 00:24:00,450 Ring Mike 540 00:24:00,450 --> 00:24:02,290 Else hvis Smith er tidligere i bogen 541 00:24:02,290 --> 00:24:04,540 Åben for midten af den venstre halvdel af bogen 542 00:24:04,540 --> 00:24:06,244 Else går til linje 3 543 00:24:06,244 --> 00:24:07,660 Else hvis Smith er senere i bogen 544 00:24:07,660 --> 00:24:09,330 Åben for midten af højre halvdel af bogen 545 00:24:09,330 --> 00:24:09,996 Gå til linje tre 546 00:24:09,996 --> 00:24:10,720 Andet 547 00:24:10,720 --> 00:24:11,500 Give op 548 00:24:11,500 --> 00:24:15,360 Og der er et par karakteristika nu af dette, der er værd at påpege. 549 00:24:15,360 --> 00:24:18,370 Så en, alle linjer Jeg har markeret med gult 550 00:24:18,370 --> 00:24:21,430 vi kommer til at begynde at kalde udtalelser eller funktioner eller procedurer. 551 00:24:21,430 --> 00:24:24,160 De er bare handlinger gør dette, og der er ikke 552 00:24:24,160 --> 00:24:26,400 så meget variation til den. 553 00:24:26,400 --> 00:24:30,850 >> Næste skridt her selv, er disse conditions-- hvis ellers, ellers hvis andet. 554 00:24:30,850 --> 00:24:34,020 Og disse kaldes betingelser, eller grene, og de er beslutningspunkter. 555 00:24:34,020 --> 00:24:36,780 Og de tillader os at gøre noget betinget. 556 00:24:36,780 --> 00:24:39,650 >> Og i virkeligheden, så lad os tage et hurtigt se på måske en velkendt face-- 557 00:24:39,650 --> 00:24:43,380 vi vil kalde ham Bill-- og præcis hvad disse betingelser, 558 00:24:43,380 --> 00:24:45,670 hvordan disse kan anvendes. 559 00:24:45,670 --> 00:24:48,230 >> Bill Gates: Folk gør beslutninger hver dag. 560 00:24:48,230 --> 00:24:51,800 For eksempel, før du går udenfor dig slags har en if-sætning, der siger, 561 00:24:51,800 --> 00:24:55,650 hvis det regner, så jeg brug for at få min jakke. 562 00:24:55,650 --> 00:25:00,990 >> Og computere er forbløffende, når du beslutte den slags udsagn 563 00:25:00,990 --> 00:25:06,450 at de pålideligt kan udføre disse ting på utrolig hastighed. 564 00:25:06,450 --> 00:25:12,470 Og så et computerprogram virkelig er en lille smule af matematik og nogle 565 00:25:12,470 --> 00:25:16,890 hvis udsagn hvor afgørelsen bliver lavet. 566 00:25:16,890 --> 00:25:19,432 >> DAVID MALAN: Så lad os nu fokus på et par forskellige lines-- 567 00:25:19,432 --> 00:25:21,140 dem jeg har fremhævet i gul her. 568 00:25:21,140 --> 00:25:23,890 Og det viser sig at der er forskellige måder at udtrykke denne idé. 569 00:25:23,890 --> 00:25:28,550 Men intuitivt hvad vores linjer 8 og 11 at jeg har fremhævet her fortæller dig 570 00:25:28,550 --> 00:25:29,100 at gøre? 571 00:25:29,100 --> 00:25:33,081 Ja, gå til linje 3, men hvad adfærd er det virkelig fremkalde? 572 00:25:33,081 --> 00:25:35,580 Det er en form for løkke eller cykle, og du kan slags se det. 573 00:25:35,580 --> 00:25:36,079 Højre? 574 00:25:36,079 --> 00:25:39,710 Hvis der på linje 8, du går tilbage til linje 3, og så du rammer linje 8 igen, 575 00:25:39,710 --> 00:25:42,700 du kan gå tilbage til linie 3, tilbage til linie 3, tilbage til linje 3. 576 00:25:42,700 --> 00:25:44,530 Der er denne slags cyklus eller loop. 577 00:25:44,530 --> 00:25:47,177 Og ja, der er induceret i linie 11 potentielt så godt. 578 00:25:47,177 --> 00:25:49,260 Og dette er en grundlæggende programmering konstruere samt. 579 00:25:49,260 --> 00:25:51,593 >> Du kan ikke bare ønsker at gøre noget med en erklæring 580 00:25:51,593 --> 00:25:54,280 eller gøre noget betinget med en tilstand eller en filial. 581 00:25:54,280 --> 00:25:56,644 Du vil måske gøre noget cyklisk med en løkke. 582 00:25:56,644 --> 00:25:59,810 Og vi vil have en anden, med hvem du måske familiar-- vi vil kalde ham 583 00:25:59,810 --> 00:26:02,996 Mark-- forklare dette begreb her. 584 00:26:02,996 --> 00:26:04,870 Mark Zuckerberg: One ting, at computere er 585 00:26:04,870 --> 00:26:07,460 rigtig god til er at gentage kommandoer. 586 00:26:07,460 --> 00:26:09,510 Som person, ville du få virkelig keder sig, hvis du 587 00:26:09,510 --> 00:26:12,310 havde at gøre det samme masser af gange i træk, 588 00:26:12,310 --> 00:26:16,230 men en computer kan gøre det samme millioner eller endda milliarder af gange 589 00:26:16,230 --> 00:26:18,930 og ikke kede sig og være i stand til at udføre den rigtig godt. 590 00:26:18,930 --> 00:26:21,240 >> Altså for eksempel, hvis jeg ønsker at ønske alle 591 00:26:21,240 --> 00:26:24,450 på Facebook tillykke med fødselsdagen ved at sende dem en e-mail, 592 00:26:24,450 --> 00:26:27,037 det kan tage mig mere end en århundrede til rent faktisk at skrive 593 00:26:27,037 --> 00:26:28,370 alle disse e-mails til alle. 594 00:26:28,370 --> 00:26:33,500 Men med blot et par linjer kode, kan jeg have et system sende en e-mail til alle 595 00:26:33,500 --> 00:26:35,460 på Facebook, der ønsker dem tillykke med fødselsdagen. 596 00:26:35,460 --> 00:26:38,330 >> Så det er hvad loops er, og hvorfor de er værdifulde og noget 597 00:26:38,330 --> 00:26:40,076 at computere kan gøre meget godt. 598 00:26:40,076 --> 00:26:43,109 >> DAVID MALAN: Mange tak til vores venner ved code.org for disse to film. 599 00:26:43,109 --> 00:26:46,150 Og netop i sidste uge, har du måske set, at Mark Zuckerberg og Facebook 600 00:26:46,150 --> 00:26:47,940 bogført denne meddelelse, som er, at de blot 601 00:26:47,940 --> 00:26:50,398 have bestået en vigtig milepæl for første gang nogensinde. 602 00:26:50,398 --> 00:26:54,320 1 milliard mennesker brugte Facebook i en eneste dag, specielt sidste mandag. 603 00:26:54,320 --> 00:26:58,650 En ud af syv mennesker på Jorden tilsyneladende logget ind på Facebook. 604 00:26:58,650 --> 00:27:03,310 >> Nå, synes dette en god mulighed at se tilbage på, hvor Facebook begyndte, 605 00:27:03,310 --> 00:27:06,840 og vi gik gennem CS50 egen arkiver, fordi det viser sig i 2005, 606 00:27:06,840 --> 00:27:10,020 Mark gav en gæsteforelæsning i CS50. 607 00:27:10,020 --> 00:27:13,870 Du vil se, at produktionen værdier var ikke helt det samme dengang 608 00:27:13,870 --> 00:27:16,110 med hensyn til teknologi tilgængelige, og du vil også 609 00:27:16,110 --> 00:27:18,310 se, at tilstedeværelsen af denne gæsteforelæsning 610 00:27:18,310 --> 00:27:22,470 ikke nødvendigvis vække interesse af de studerende, dine forgængere, 611 00:27:22,470 --> 00:27:24,910 så meget som det kunne have blot et par år senere. 612 00:27:24,910 --> 00:27:27,902 >> Så lad os tage et kig ved Science Center C. 613 00:27:27,902 --> 00:27:29,389 614 00:27:29,389 --> 00:27:31,014 SPEAKER 2: Please join mig, og velkommen. 615 00:27:31,014 --> 00:27:33,374 616 00:27:33,374 --> 00:27:36,577 [BIFALD] 617 00:27:36,577 --> 00:27:37,410 Mark Zuckerberg: Yo. 618 00:27:37,410 --> 00:27:37,900 Okay. 619 00:27:37,900 --> 00:27:40,420 Cool det er første gang, jeg nogensinde har har måtte holde en af ​​disse ting. 620 00:27:40,420 --> 00:27:42,336 Så jeg vil blot vedhæfte det virkelig hurtigt. 621 00:27:42,336 --> 00:27:54,354 622 00:27:54,354 --> 00:27:54,854 Okay. 623 00:27:54,854 --> 00:27:57,314 Kan du høre det? 624 00:27:57,314 --> 00:27:58,298 Er det godt? 625 00:27:58,298 --> 00:28:00,684 Er det forstærkes på alle? 626 00:28:00,684 --> 00:28:01,184 Okay. 627 00:28:01,184 --> 00:28:02,040 Sød. 628 00:28:02,040 --> 00:28:06,860 Så det er ligesom en af ​​de første gange Jeg har været til et foredrag på Harvard, 629 00:28:06,860 --> 00:28:08,660 men-- 630 00:28:08,660 --> 00:28:12,510 >> DAVID MALAN: Så til sidst Science Center gjorde zoome ind på videoen, 631 00:28:12,510 --> 00:28:15,110 men ikke før du tager denne uddrag hvor Marks tale, 632 00:28:15,110 --> 00:28:18,230 som han diskuterede sin værelseskammerat, Dustin, der 633 00:28:18,230 --> 00:28:20,885 ønskede at give en hånd med dette websted kaldet Facebook.com 634 00:28:20,885 --> 00:28:24,540 og indså, at Mark er ved at nævne programmering languages-- 635 00:28:24,540 --> 00:28:27,290 en kaldet Perl, en kaldet PHP-- da han diskuterer 636 00:28:27,290 --> 00:28:28,840 oprindelsen af ​​Dustin bidrag. 637 00:28:28,840 --> 00:28:31,499 638 00:28:31,499 --> 00:28:33,290 Mark Zuckerberg: Jeg begyndte at løbe sitet 639 00:28:33,290 --> 00:28:37,770 og lancerede det på Harvard i februar, 2004. 640 00:28:37,770 --> 00:28:39,540 Så jeg gætter næsten to år siden nu. 641 00:28:39,540 --> 00:28:42,322 Og inden for et par uger, en par tusinde mennesker havde tilmeldt, 642 00:28:42,322 --> 00:28:45,280 og vi begyndte at få nogle e-mails fra folk på andre gymnasier spørger 643 00:28:45,280 --> 00:28:47,520 for os at lancere det på deres skoler. 644 00:28:47,520 --> 00:28:49,455 >> Og jeg tog 161 på det tidspunkt. 645 00:28:49,455 --> 00:28:52,080 Så jeg ved ikke, hvis du fyre kender omdømme, at selvfølgelig, 646 00:28:52,080 --> 00:28:54,402 men det var slags tung. 647 00:28:54,402 --> 00:28:57,110 Det var en virkelig sjovt kursus, men det havde ingen mig med megen tid 648 00:28:57,110 --> 00:28:59,260 at gøre noget andet med Facebook. 649 00:28:59,260 --> 00:29:04,309 Så min roommate Dustin, som jeg gætte var lige blevet færdig CS50, var ligesom, hey. 650 00:29:04,309 --> 00:29:05,100 Jeg ønsker at hjælpe. 651 00:29:05,100 --> 00:29:08,760 Jeg ønsker at gøre udvidelsen og hjælpe du finde ud af at gøre de ting. 652 00:29:08,760 --> 00:29:10,780 >> Så jeg var ligesom, det er ret cool, dude. 653 00:29:10,780 --> 00:29:13,130 Men du ved ikke rigtig nogen PHP eller noget lignende. 654 00:29:13,130 --> 00:29:16,444 Så det weekend gik han hjem, købte bogen Perl for Dummies, 655 00:29:16,444 --> 00:29:17,860 kom tilbage og var ligesom, okay. 656 00:29:17,860 --> 00:29:18,940 Jeg er klar til at gå. 657 00:29:18,940 --> 00:29:23,010 >> Jeg var som, mand, er sitet skrevet i PHP ikke Perl, men det er cool. 658 00:29:23,010 --> 00:29:28,530 >> Så han tog PHP løbet ligesom en par dage, fordi jeg 659 00:29:28,530 --> 00:29:30,790 lover, at hvis du har en god baggrund i C, 660 00:29:30,790 --> 00:29:32,970 PHP er en meget simpel ting at samle op. 661 00:29:32,970 --> 00:29:37,480 Og han lige slags gik til arbejde. 662 00:29:37,480 --> 00:29:40,500 >> Før vi kigger nu på hvor kurset foregår, 663 00:29:40,500 --> 00:29:43,047 tillade mig at invitere blot nogle af SC50 personale op på scenen. 664 00:29:43,047 --> 00:29:44,880 Nogle af dem er ude deres egne kurser. 665 00:29:44,880 --> 00:29:48,390 Men hvis disse TF'er og CA og kursus hoveder, der er her kunne komme på op 666 00:29:48,390 --> 00:29:50,230 og slutte sig til mig for en hurtig hej. 667 00:29:50,230 --> 00:29:54,670 >> Tillad mig at præsentere i særdeleshed, Hanna, Maria, Daven, og Rob, 668 00:29:54,670 --> 00:29:59,666 CS50 kursus hoveder her i Cambridge. 669 00:29:59,666 --> 00:30:02,106 >> [BIFALD] 670 00:30:02,106 --> 00:30:07,490 671 00:30:07,490 --> 00:30:11,060 >> DAVID MALAN: Ja, vidner om støttestruktur, at forløbet har 672 00:30:11,060 --> 00:30:15,660 bygget ud over de sidste mange år, CS50 medarbejdere i år antallet næsten 100, 673 00:30:15,660 --> 00:30:17,170 og det er her i Cambridge alene. 674 00:30:17,170 --> 00:30:21,240 I mellemtiden, i New Haven, er der nogle 40 TF'er og CA og medarbejdere der 675 00:30:21,240 --> 00:30:22,800 at køre forløbet samt. 676 00:30:22,800 --> 00:30:26,125 >> Tillad os at præsentere første, Rob Bowden. 677 00:30:26,125 --> 00:30:26,750 ROB BOWDEN: Hej. 678 00:30:26,750 --> 00:30:27,620 Jeg er Rob. 679 00:30:27,620 --> 00:30:32,750 Dette er mit sjette år TFing i løbet. 680 00:30:32,750 --> 00:30:37,970 Så helt tilbage i min freshman år, havde jeg ikke tage CS50. 681 00:30:37,970 --> 00:30:40,270 Din freshman fall-- du måske være bekendt 682 00:30:40,270 --> 00:30:43,270 at du kun kan tage fire kurser og der er så mange baner i dag. 683 00:30:43,270 --> 00:30:44,450 Så jeg er ligesom, eh. 684 00:30:44,450 --> 00:30:48,050 Jeg tog AP CS min senior år i gymnasiet det var forfærdelig. 685 00:30:48,050 --> 00:30:48,900 Så jeg er ligesom, eh. 686 00:30:48,900 --> 00:30:50,380 Datalogi er ikke for mig. 687 00:30:50,380 --> 00:30:53,000 >> Så det var over løbet af mit første 688 00:30:53,000 --> 00:30:58,960 falde, at jeg havde en ven i CS50, og Jeg tror, ​​jeg deltog en forelæsning med hende. 689 00:30:58,960 --> 00:31:03,760 Det er ligesom, åh, det er lidt bedre end hvad jeg havde i gymnasiet. 690 00:31:03,760 --> 00:31:06,990 >> Og i løbet af den år, havde jeg min egen problem sæt 691 00:31:06,990 --> 00:31:08,750 i kurserne var jeg faktisk at tage. 692 00:31:08,750 --> 00:31:11,870 Men jeg fandt, at når jeg ønskede at nøle på dem, 693 00:31:11,870 --> 00:31:15,111 Jeg vil gå tilbage til CS50 og se på nogle af de ting. 694 00:31:15,111 --> 00:31:15,610 Så, ja. 695 00:31:15,610 --> 00:31:16,140 Jeg er cool. 696 00:31:16,140 --> 00:31:19,350 Jeg Smøleri med kodning. 697 00:31:19,350 --> 00:31:22,910 Så så er det i slutningen af efteråret, at jeg indser, hey, 698 00:31:22,910 --> 00:31:24,410 datalogi er ret cool. 699 00:31:24,410 --> 00:31:27,730 Jeg ender med at tage CS51. 700 00:31:27,730 --> 00:31:30,430 I det næste semester, Jeg ender med at tage CS61. 701 00:31:30,430 --> 00:31:32,727 Og det hele derfra, så jeg ender erklære 702 00:31:32,727 --> 00:31:35,310 datalogi, som jeg havde absolut ingen intentioner om at gøre 703 00:31:35,310 --> 00:31:36,740 da jeg kom ind i college. 704 00:31:36,740 --> 00:31:39,330 Og nu er jeg her. 705 00:31:39,330 --> 00:31:42,230 Så kurset er hvad du gør det. 706 00:31:42,230 --> 00:31:43,463 Jeg håber du nyder det. 707 00:31:43,463 --> 00:31:44,066 >> [BIFALD] 708 00:31:44,066 --> 00:31:45,315 DAVID MALAN: Tak til Rob. 709 00:31:45,315 --> 00:31:49,020 710 00:31:49,020 --> 00:31:52,180 >> Og nu Maria, vores hoved kursus assistent. 711 00:31:52,180 --> 00:31:53,140 >> MARIA: Hey gutter. 712 00:31:53,140 --> 00:31:53,880 Mit navn er Maria. 713 00:31:53,880 --> 00:31:56,930 Jeg er en sophomore i Cabot House, der kommer fra Bulgarien, 714 00:31:56,930 --> 00:31:59,880 og jeg er super glade for at være del af personalet i år. 715 00:31:59,880 --> 00:32:03,380 Jeg tog CS50 som en freshman sidste år, og jeg har aldrig selv 716 00:32:03,380 --> 00:32:04,750 tænkte CS forhånd. 717 00:32:04,750 --> 00:32:08,380 Så jeg elsker absolut selvfølgelig, og jeg håber du alle elsker det så meget, som jeg gjorde. 718 00:32:08,380 --> 00:32:09,250 Og, ja. 719 00:32:09,250 --> 00:32:10,868 Velkommen til CS50. 720 00:32:10,868 --> 00:32:12,201 DAVID MALAN: Tak til Maria. 721 00:32:12,201 --> 00:32:13,674 [BIFALD] 722 00:32:13,674 --> 00:32:16,129 723 00:32:16,129 --> 00:32:19,580 Nu Hanna, vores hoved undervisning fyr. 724 00:32:19,580 --> 00:32:20,480 HANNA: Hej, jeg er Hanna. 725 00:32:20,480 --> 00:32:22,990 Jeg er en senior i Cabot studerer datalogi. 726 00:32:22,990 --> 00:32:28,120 Jeg tog CS50 som en freshman og havde været TFing-- dette vil være min tredje år. 727 00:32:28,120 --> 00:32:31,000 Så jeg vil blive lykkeligt involveret i CS50 for alle fire år, 728 00:32:31,000 --> 00:32:33,569 og jeg ser frem til at arbejde med jer alle. 729 00:32:33,569 --> 00:32:34,902 DAVID MALAN: Tak til Hanna. 730 00:32:34,902 --> 00:32:36,870 [BIFALD] 731 00:32:36,870 --> 00:32:37,854 732 00:32:37,854 --> 00:32:40,274 Og endelig, Daven, vores precepter. 733 00:32:40,274 --> 00:32:40,940 Daven: Hey gutter. 734 00:32:40,940 --> 00:32:42,390 Jeg er en forskrift ovre i datalogi her. 735 00:32:42,390 --> 00:32:44,010 Dette vil være min fjerde år undervisning. 736 00:32:44,010 --> 00:32:45,261 Jeg hjælper også administrere kurset. 737 00:32:45,261 --> 00:32:47,801 Så jeg er sikker på du vil se mig omkring, især på kontortid. 738 00:32:47,801 --> 00:32:48,970 Jeg er altid på kontortid. 739 00:32:48,970 --> 00:32:51,640 Så hvis du ser mig gå rundt, helt sikkert komme sige hej. 740 00:32:51,640 --> 00:32:52,681 Jeg elsker at møde alle. 741 00:32:52,681 --> 00:32:55,830 Ellers har det sjovt, og jeg vil se dig omkring. 742 00:32:55,830 --> 00:32:58,210 >> DAVID MALAN: Tak til Daven så godt. 743 00:32:58,210 --> 00:33:01,290 Så du opfylde alle disse folk inden længe. 744 00:33:01,290 --> 00:33:03,040 Men uden yderligere ståhej, hvis du fyre ville 745 00:33:03,040 --> 00:33:05,840 gerne genoptage dine pladser fra tidligere. 746 00:33:05,840 --> 00:33:10,940 Tillad mig at præsentere langvejs nu nogle af vores venner fra New Haven, 747 00:33:10,940 --> 00:33:14,690 især kursets hoveder, der vil være tilsyn CS50 there-- Professor 748 00:33:14,690 --> 00:33:19,550 Brian Scassellati, Jason, og Andi, der bare-- så vi ikke friste skæbnen 749 00:33:19,550 --> 00:33:22,610 med enhver FaceTime eller like-- har netop sendt os minutter 750 00:33:22,610 --> 00:33:27,380 siden den følgende video, hvor de siger Hej fra auditoriet 751 00:33:27,380 --> 00:33:31,480 på Yale, hvor foredrag bliver streamet lige nu. 752 00:33:31,480 --> 00:33:34,052 >> Så vores venner fra Yale. 753 00:33:34,052 --> 00:33:35,260 BRIAN Scassellati: Hej, David. 754 00:33:35,260 --> 00:33:36,480 Hej, alle på Harvard. 755 00:33:36,480 --> 00:33:41,400 Vi er så glade for at være at bringe CS50 til Yale dette semester. 756 00:33:41,400 --> 00:33:45,250 Mit navn er Brian Scassellati, men alle bare kalder mig scas. 757 00:33:45,250 --> 00:33:50,402 Og jeg er her i dag for at indføre til dig CS50 personale. 758 00:33:50,402 --> 00:33:52,346 >> [JUBEL] 759 00:33:52,346 --> 00:33:55,760 760 00:33:55,760 --> 00:33:59,780 >> Og endnu vigtigere, jeg er her at indføre, og 761 00:33:59,780 --> 00:34:03,690 alle eleverne på Yale, der som i morges 762 00:34:03,690 --> 00:34:09,289 har gjort dette til den mest populære kursus på Yale de CS50 studerende. 763 00:34:09,289 --> 00:34:12,090 >> [JUBEL] 764 00:34:12,090 --> 00:34:25,850 765 00:34:25,850 --> 00:34:28,310 >> Så vi er meget glade at se dig her 766 00:34:28,310 --> 00:34:34,239 fredag ​​og lørdag for Puzzle Dag og har en stor forelæsning. 767 00:34:34,239 --> 00:34:35,440 Farvel. 768 00:34:35,440 --> 00:34:37,360 >> [BIFALD] 769 00:34:37,360 --> 00:34:42,170 770 00:34:42,170 --> 00:34:45,497 >> DAVID MALAN: På skærmen her er navnene på nogle af 140 ansatte 771 00:34:45,497 --> 00:34:48,330 medlemmer, der venter dig over løbet af semester-- nogle af dem 772 00:34:48,330 --> 00:34:50,540 her i Cambridge, nogle af dem her i New Haven. 773 00:34:50,540 --> 00:34:52,706 Og faktisk vil du have en mulighed denne lørdag, 774 00:34:52,706 --> 00:34:54,530 som SCAS noter, deltage CS50 Puzzle Day. 775 00:34:54,530 --> 00:34:57,780 Du har måske set små puslespilsbrikker smuttede under dine døråbninger nylig. 776 00:34:57,780 --> 00:35:00,420 Vi har et par ekstra her senere, når du eksisterer. 777 00:35:00,420 --> 00:35:04,030 Hvis du samle alle fire puslespil stykker og flette sammen med værelser 778 00:35:04,030 --> 00:35:06,450 nærliggende dit i dit hus eller kollegieværelset, vil de 779 00:35:06,450 --> 00:35:09,690 samles til en QR code-- eller en todimensional stregkode, at 780 00:35:09,690 --> 00:35:12,970 er samlet og scannet med din telefon vil føre dig 781 00:35:12,970 --> 00:35:17,060 til nogle fantastiske præmie eller-- jeg formoder du bare kunne fotografere det nu 782 00:35:17,060 --> 00:35:17,560 såvel. 783 00:35:17,560 --> 00:35:22,560 >> Men find de puslespilsbrikker alligevel for at vinde denne fabelagtige præmie. 784 00:35:22,560 --> 00:35:25,900 Og faktisk en af ​​de traditioner i SC50-- ah, for langsomt. 785 00:35:25,900 --> 00:35:29,790 En af traditionerne i CS50 er at tjene kage efter den første forelæsning. 786 00:35:29,790 --> 00:35:31,620 >> Og så ja, i en få minutter fra nu, 787 00:35:31,620 --> 00:35:36,040 vil der være kage serveret udenfor både her og New Haven så godt. 788 00:35:36,040 --> 00:35:39,530 >> Men first-- vi dekoreret dem selv. 789 00:35:39,530 --> 00:35:43,360 Men first-- og forhåbentlig der vil være nok. 790 00:35:43,360 --> 00:35:44,830 >> Men først et hurtigt kig. 791 00:35:44,830 --> 00:35:47,880 Så foredrag er rent faktisk vil være produceret det meste her i Cambridge. 792 00:35:47,880 --> 00:35:51,580 Men hver måned, vil vi hoppe ned til Yale med CS50 produktion team og strøm 793 00:35:51,580 --> 00:35:53,730 forløbet i omvendt retning samt så 794 00:35:53,730 --> 00:35:56,840 for at bringe disse to campusser virkelig for første gang i historien 795 00:35:56,840 --> 00:36:00,450 så tæt sammen som muligt som en i det samme kursus. 796 00:36:00,450 --> 00:36:04,050 >> Med hensyn til støttestrukturen, der er blevet stod op her i Cambridge samt 797 00:36:04,050 --> 00:36:05,646 som i New Haven, er sektioner. 798 00:36:05,646 --> 00:36:08,020 Således som nogle af jer måske ved, har vi forskellige spor 799 00:36:08,020 --> 00:36:10,850 inden kurset for de mindre behagelig, mere komfortabel, 800 00:36:10,850 --> 00:36:14,610 og midt imellem, så uanset din forudgående baggrund, 801 00:36:14,610 --> 00:36:17,670 kan du i sidste ende lykkes i klassen. 802 00:36:17,670 --> 00:36:21,320 >> Kontortid mellemtiden er en mulighed på mandage og tirsdage 803 00:36:21,320 --> 00:36:26,570 og torsdag aftener til at arbejde både her og i New Haven på vores kursets 804 00:36:26,570 --> 00:36:30,370 problem sæt med snesevis af kursets personale i nærheden af ​​dig. 805 00:36:30,370 --> 00:36:35,380 >> Problem sætter i mellemtiden, er støttet af ting, vi kalder 806 00:36:35,380 --> 00:36:39,140 walkthroughs, som er video baseret tutorials, der virkelig besvare FAQ 807 00:36:39,140 --> 00:36:41,670 af hvor man skal begynde en uges udfordring. 808 00:36:41,670 --> 00:36:44,290 Og postmortems gå dig gennem mulige løsninger 809 00:36:44,290 --> 00:36:46,490 således at enden af problem indstillet for, du 810 00:36:46,490 --> 00:36:50,820 vide præcis, hvad du kunne have gjort anderledes eller helt andet. 811 00:36:50,820 --> 00:36:53,895 >> Problemet sætter selv komme i to udgaver, en standard udgave 812 00:36:53,895 --> 00:36:57,510 at vi forventer og invitere de fleste af den class-- omkring 90% plus at do-- 813 00:36:57,510 --> 00:37:00,520 og en såkaldt hacker udgave hvor hver side er indgraveret 814 00:37:00,520 --> 00:37:02,790 hacker udgave, hacker udgave, hacker udgave, 815 00:37:02,790 --> 00:37:07,550 så du har at karma hvis du vil, til dykning 816 00:37:07,550 --> 00:37:10,230 til mere avancerede versioner af kursets problemet sæt 817 00:37:10,230 --> 00:37:14,970 at dække angiveligt det samme materiale men med en mere raffineret fremgangsmåde 818 00:37:14,970 --> 00:37:19,020 og med yderligere baggrund undertiden introduceret. 819 00:37:19,020 --> 00:37:22,350 >> I mellemtiden er der ni sene dage, du kan anvende på kursets problem 820 00:37:22,350 --> 00:37:26,160 sætter såvel som den laveste score, som vi slip på vilkår ende. 821 00:37:26,160 --> 00:37:26,900 >> Men hvad der venter? 822 00:37:26,900 --> 00:37:29,300 Tja, en smag af problemet sætter hånden på fredag 823 00:37:29,300 --> 00:37:31,959 og i næste uge, hvor vi fuske for blot et par dage i noget 824 00:37:31,959 --> 00:37:35,000 kaldet Scratch, en grafisk programmering sprog udviklet af vores venner 825 00:37:35,000 --> 00:37:39,290 på MIT Media Lab, der giver dig at programmere enten for første gang 826 00:37:39,290 --> 00:37:43,510 eller i et nyt miljø helt ved hjælp af en træk og slip typen miljø. 827 00:37:43,510 --> 00:37:45,595 Hvorved puslespilsbrikker kun interlock sammen 828 00:37:45,595 --> 00:37:48,080 hvis det giver logisk mening at gøre det. 829 00:37:48,080 --> 00:37:50,440 >> I mellemtiden i problem sæt to sidste år for eksempel, 830 00:37:50,440 --> 00:37:53,010 vi introducerer klassen til en verden af ​​kryptografi, 831 00:37:53,010 --> 00:37:55,370 kunsten at kryptere eller scrambling information. 832 00:37:55,370 --> 00:37:58,940 Faktisk denne tekst her, hvis dekrypteret, vil faktisk 833 00:37:58,940 --> 00:38:01,277 føre dig til nogle sjove destination. 834 00:38:01,277 --> 00:38:03,110 Og i problemet indstillet, hvad vi havde elever 835 00:38:03,110 --> 00:38:06,280 gøre, er at gennemføre netop dem former for things-- en algoritme, 836 00:38:06,280 --> 00:38:09,530 eller et sæt af instruktioner til scrambling og scrambling information. 837 00:38:09,530 --> 00:38:11,850 >> Og i hacker-udgave i samme problem sæt, 838 00:38:11,850 --> 00:38:15,800 vi udfordrer de studerende til at tage en krypteret fil fra en typisk computer 839 00:38:15,800 --> 00:38:18,840 system med masser af brugernavne og krypterede adgangskoder 840 00:38:18,840 --> 00:38:21,400 og at knække disse passwords-- faktisk regne ud 841 00:38:21,400 --> 00:38:25,870 hvad de var uden at vide noget a priori om disse faktiske adgangskoder. 842 00:38:25,870 --> 00:38:27,620 I mellemtiden, gør vi overgang i problemet 843 00:38:27,620 --> 00:38:29,536 satte derefter se på verden af ​​grafik. 844 00:38:29,536 --> 00:38:32,240 Og i virkeligheden, kan du forestille dig nu, at dette kunne måske 845 00:38:32,240 --> 00:38:35,200 være den enkleste måde at repræsentere et sort-hvidt billede. 846 00:38:35,200 --> 00:38:39,570 >> En hvid pixel, eller firkantet, som øverst til højre der, 847 00:38:39,570 --> 00:38:41,620 kan være repræsenteret med en 1 og en sort firkant 848 00:38:41,620 --> 00:38:43,490 kan være repræsenteret med en 0. 849 00:38:43,490 --> 00:38:47,670 Og blot ved hjælp af flere bit ligesom vi foreslået tidligere med 72 og 73 og 33, 850 00:38:47,670 --> 00:38:49,882 kunne vi repræsenterer farvepixel så godt. 851 00:38:49,882 --> 00:38:51,590 Og hvad vi gør i løbet af dette problem sæt er 852 00:38:51,590 --> 00:38:54,660 generelt tage en tur rundt campus med et digitalt kamera, 853 00:38:54,660 --> 00:38:56,730 tage billeder af personer, steder og ting. 854 00:38:56,730 --> 00:38:59,270 Så en eller anden måde hvert semester, vi synes at et uheld 855 00:38:59,270 --> 00:39:02,600 slettet eller beskadige hukommelseskortet hvor alle disse billeder er, 856 00:39:02,600 --> 00:39:04,610 og så du bliver udfordret for derefter at skrive software 857 00:39:04,610 --> 00:39:09,650 med til at genvinde disse JPEG fra en kopi af vores kameras kort. 858 00:39:09,650 --> 00:39:13,550 >> I mellemtiden har vi afleverer du senere i udtrykket en ordbog af engelske ord 859 00:39:13,550 --> 00:39:16,680 at have 143.000 ord, og du har brug for at komme op 860 00:39:16,680 --> 00:39:19,240 med en smart måde lægger dem i hukommelsen, 861 00:39:19,240 --> 00:39:22,850 eller RAM så at sige, at besvare forespørgsler af formen: er dette et ord, 862 00:39:22,850 --> 00:39:25,910 er dette et ord, gennemførelse af hurtigste stavekontrol, at du kan, 863 00:39:25,910 --> 00:39:28,180 selv pinning dig selv potentielt mod klassekammerater 864 00:39:28,180 --> 00:39:30,460 for at se, hvem af jer bruger den mindste mængde af tid 865 00:39:30,460 --> 00:39:33,440 når du kører din kode og endda den mindste mængde hukommelse. 866 00:39:33,440 --> 00:39:36,060 >> Senere på sigt gøre du faktisk implementere din egen webserver. 867 00:39:36,060 --> 00:39:39,470 Så ikke bare en hjemmeside i en sprog kaldet HTML og mere, 868 00:39:39,470 --> 00:39:43,300 men en webserver, der faktisk lytter til anmodninger på internettet 869 00:39:43,300 --> 00:39:44,460 og reagerer på dem. 870 00:39:44,460 --> 00:39:47,210 Og ja, det er sådan vi bro vores verden af ​​C med som du 871 00:39:47,210 --> 00:39:50,550 blive fortrolig næste uge og PHP og HTML og JavaScript 872 00:39:50,550 --> 00:39:51,820 og CSS og lignende. 873 00:39:51,820 --> 00:39:54,820 >> Fordi en af ​​den første bane baseret projekt vi gøre senere i udtrykket 874 00:39:54,820 --> 00:39:57,516 er historisk CS50 Finance. 875 00:39:57,516 --> 00:40:02,580 Etrade.com stil et websted, der tillader dig til at købe og sælge aktier stort set 876 00:40:02,580 --> 00:40:08,240 samtidig skrive kode til at tale med Yahoo Finans få semi realtid lager 877 00:40:08,240 --> 00:40:11,490 citerer for at ajourføre din egen portefølje. 878 00:40:11,490 --> 00:40:13,370 >> Men endelig selvfølgelig, er den endelige project-- 879 00:40:13,370 --> 00:40:16,960 en mulighed for at gøre de fleste noget af interesse for dig at løse et problem her 880 00:40:16,960 --> 00:40:20,970 eller ud over af interesse for du, det er en eller anden måde inspireret 881 00:40:20,970 --> 00:40:22,670 af de erfaringer i klassen. 882 00:40:22,670 --> 00:40:26,140 >> Og klassen, som du måske ved, kulminerer i såkaldt CS50 hackathon 883 00:40:26,140 --> 00:40:29,330 og CS50 Fair og et vilkårligt antal af andre kulturelle begivenheder 884 00:40:29,330 --> 00:40:31,770 hele semestret der tillader dig at engagere 885 00:40:31,770 --> 00:40:33,460 med hinanden og kurset personale. 886 00:40:33,460 --> 00:40:37,170 >> For eksempel, på Fire and Ice i Sitar i år, godt, fredag ​​eftermiddag, 887 00:40:37,170 --> 00:40:39,220 inviterer vi nogle 50 studerende til frokost, hvem 888 00:40:39,220 --> 00:40:41,190 vil gerne slutte sig til os, mig selv, og personalet, 889 00:40:41,190 --> 00:40:44,840 og vores venner fra industrien og alums at chatte om livet i den virkelige verden 890 00:40:44,840 --> 00:40:46,670 og videre, mens du nyder en god frokost. 891 00:40:46,670 --> 00:40:49,050 På hackathon vil du ser sådanne billeder 892 00:40:49,050 --> 00:40:53,740 da disse, herunder masser af candy-- og fra 2014 for første time-- 893 00:40:53,740 --> 00:40:55,096 grøntsager. 894 00:40:55,096 --> 00:40:56,960 >> [BIFALD] 895 00:40:56,960 --> 00:40:58,358 896 00:40:58,358 --> 00:41:02,710 >> Men ved 5:00, gør scenen normalt ser lidt noget som dette. 897 00:41:02,710 --> 00:41:05,330 Og så bare en uge eller så senere, er CS50 Fair 898 00:41:05,330 --> 00:41:08,270 som nogle 2000 plus studerende og medarbejdere og fakultet 899 00:41:08,270 --> 00:41:11,910 medlemmer fra hele campus og på tværs af campusser i år 900 00:41:11,910 --> 00:41:15,620 kommer til at se og glæde i resultater af CS50 studerende, der 901 00:41:15,620 --> 00:41:16,140 er nu. 902 00:41:16,140 --> 00:41:19,000 >> Og ja, mens dette år vil vi være indbydende og busing nogen 903 00:41:19,000 --> 00:41:22,460 ved på Yale, der gerne vil komme op til Cambridge denne lørdag for CS50 Puzzle 904 00:41:22,460 --> 00:41:26,410 Dag, og vi vil gøre præcis det samme i december for CS50 hackathon 905 00:41:26,410 --> 00:41:30,080 således at Harvard og Yale studerende både deltage i begge disse begivenheder. 906 00:41:30,080 --> 00:41:33,630 >> Vi vil også holde CS50 messer i Cambridge og i New Haven i år 907 00:41:33,630 --> 00:41:36,480 så eleverne på både campusser og personale og fakultet 908 00:41:36,480 --> 00:41:39,260 kan se hver respektiv campus s realisering. 909 00:41:39,260 --> 00:41:41,540 Og disse resultater vil fremkalde en sådan hukommelse 910 00:41:41,540 --> 00:41:45,440 da dette og dette og i sidste ende dette, hvor alle jer 911 00:41:45,440 --> 00:41:48,460 forlade klassen iført lidt noget, hvor du var forhåbentlig 912 00:41:48,460 --> 00:41:52,680 glad eller stolt af at sige, at jeg tog CS50. 913 00:41:52,680 --> 00:41:55,220 >> Men inden da, og før vi tjener kage, 914 00:41:55,220 --> 00:41:58,980 Vi har lagt together-- tak til CS50 s produktion team og en vis selv 915 00:41:58,980 --> 00:42:03,120 stick, den ene lejlighed, vi bruger sådanne ting for-- når vi sendt det 916 00:42:03,120 --> 00:42:05,380 ikke kun her til Cambridge men også til New Haven 917 00:42:05,380 --> 00:42:08,760 at samle et par hellos fra kursus personale og alle de folk 918 00:42:08,760 --> 00:42:12,640 du vil møde både her og i New Haven løbet af de følgende måneder. 919 00:42:12,640 --> 00:42:15,449 >> Tillad mig at præsentere en nogle flere af CS50 personale. 920 00:42:15,449 --> 00:42:16,990 Mark Zuckerberg: Har at gøre det gå? 921 00:42:16,990 --> 00:42:18,266 Åh, det går. 922 00:42:18,266 --> 00:42:20,910 Det kommer. 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 spiller Andy Grammer, "Skat, jeg'M  GOD"] 926 00:42:25,350 --> 00:42:29,672 927 00:42:29,672 --> 00:42:32,152 >> MARY: Dette er Caitlin. 928 00:42:32,152 --> 00:42:34,515 Det er Jay, og jeg er Mary. 929 00:42:34,515 --> 00:42:35,140 SATO: Hej, gutter. 930 00:42:35,140 --> 00:42:35,640 Jeg er Sato. 931 00:42:35,640 --> 00:42:36,264 MICHAEL G .: Hej. 932 00:42:36,264 --> 00:42:37,181 Mit navn er Michael, G. 933 00:42:37,181 --> 00:42:38,014 DOUG LLOYD: Jeg er ikke. 934 00:42:38,014 --> 00:42:38,540 Ingen. 935 00:42:38,540 --> 00:42:39,310 Jeg er Doug Lloyd. 936 00:42:39,310 --> 00:42:41,757 Jeg kan ikke tro, at jeg holder en selfie stick lige nu. 937 00:42:41,757 --> 00:42:42,340 SPEAKER 4: Hej. 938 00:42:42,340 --> 00:42:42,560 SPEAKER 5: Hej. 939 00:42:42,560 --> 00:42:43,307 SPEAKER 6: Hej. 940 00:42:43,307 --> 00:42:44,023 SPEAKER 7: Hej. 941 00:42:44,023 --> 00:42:44,648 SPEAKER 8: Hey. 942 00:42:44,648 --> 00:42:46,436 Vi hænger ud på Yale. 943 00:42:46,436 --> 00:42:48,910 Vi er virkelig glade for dette semester, fordi det er 944 00:42:48,910 --> 00:42:50,840 første gang det kommer til Yale. 945 00:42:50,840 --> 00:42:53,012 Det kommer til at være awesome! 946 00:42:53,012 --> 00:42:55,928 >> [MUSIK AFSPILLER] 947 00:42:55,928 --> 00:43:02,190 948 00:43:02,190 --> 00:43:04,664 >> JACOB SCHERBA: Mit navn er Jacob Scherba. 949 00:43:04,664 --> 00:43:08,310 Jeg er spændt på at undervise CS50 fordi jeg tror 950 00:43:08,310 --> 00:43:11,429 det bringe datalogi til mennesker i og imødekommende måde. 951 00:43:11,429 --> 00:43:13,220 SPEAKER 9: Jeg er virkelig glade for at undervise CS50 952 00:43:13,220 --> 00:43:17,717 fordi jeg tog klassen sidste år, og det er en af ​​de bedste klasser. 953 00:43:17,717 --> 00:43:18,425 SPEAKER 10: Ja. 954 00:43:18,425 --> 00:43:20,476 Mit råd er, at du skal tage CS50. 955 00:43:20,476 --> 00:43:23,350 JACOB SCHERBA: Jeg valgte CS, fordi Jeg synes det er en sjov og kreativ måde 956 00:43:23,350 --> 00:43:25,314 at løse problemer i en analytisk måde. 957 00:43:25,314 --> 00:43:28,480 SPEAKER 11: Tilbage da jeg var en lille Russer og bange for datalogi 958 00:43:28,480 --> 00:43:30,229 og bange for at gøre teknik og kram, 959 00:43:30,229 --> 00:43:34,091 det var den første hårde klasse tog jeg, og det var også min favorit klasse nogensinde. 960 00:43:34,091 --> 00:43:36,090 DOUG LLOYD: Dette er min niende år undervisning CS50. 961 00:43:36,090 --> 00:43:37,482 Det gør mig lyde så gammel! 962 00:43:37,482 --> 00:43:38,690 Der er altid noget nyt. 963 00:43:38,690 --> 00:43:39,550 Der er altid noget spændende. 964 00:43:39,550 --> 00:43:43,077 Der er altid nye udfordringer, som nye studerende, og det er sjovt at hjælpe dem 965 00:43:43,077 --> 00:43:44,910 og at opleve dem udfordringer med dem 966 00:43:44,910 --> 00:43:45,925 og hjælpe dem med at løse deres problemer. 967 00:43:45,925 --> 00:43:47,955 >> SPEAKER 12: Da jeg først lært, hvordan man gør CS, 968 00:43:47,955 --> 00:43:49,413 det var ligesom at lære en supermagt. 969 00:43:49,413 --> 00:43:53,749 Og at se, at i andre studerende og at hjælpe dem gennem denne proces 970 00:43:53,749 --> 00:43:55,665 er en af ​​de mest givende ting, jeg nogensinde har. 971 00:43:55,665 --> 00:43:58,706 >> SPEAKER 7: Jeg valgte CS fordi det i begynder, jeg var en matematisk koncentrator 972 00:43:58,706 --> 00:44:00,497 og jeg tog CS50 og faldt i kærlighed med det. 973 00:44:00,497 --> 00:44:02,455 Jeg følte også, at med CS, jeg kunne bygge ting. 974 00:44:02,455 --> 00:44:04,410 Og det, jeg tænkte, var en virkelig cool aspekt. 975 00:44:04,410 --> 00:44:08,156 >> SPEAKER 13: Nogle råd til nye studerende er at gå til kontortid 976 00:44:08,156 --> 00:44:09,573 og hænge ud med awesome TF'er. 977 00:44:09,573 --> 00:44:11,906 SPEAKER 14: Start din P-sæt tidligt, gå til kontortid, 978 00:44:11,906 --> 00:44:13,457 bliver frends med din TF. 979 00:44:13,457 --> 00:44:14,165 SPEAKER 15: Ja. 980 00:44:14,165 --> 00:44:16,164 Alt sagde hun. 981 00:44:16,164 --> 00:44:17,997 SPEAKER 16: Må ikke være bange for at bede om hjælp. 982 00:44:17,997 --> 00:44:18,980 SPEAKER 17: Ja. 983 00:44:18,980 --> 00:44:22,052 SPEAKER 18: Start din P-sæt tidligt. 984 00:44:22,052 --> 00:44:23,760 SPEAKER 19: Det er en store social oplevelse. 985 00:44:23,760 --> 00:44:25,112 Lav en masse venner på denne måde. 986 00:44:25,112 --> 00:44:26,570 SPEAKER 14: Gå til afsnittet Det er sjovt. 987 00:44:26,570 --> 00:44:28,050 SPEAKER 11: Jeg mener, gå til den. 988 00:44:28,050 --> 00:44:28,770 Det er virkelig svært. 989 00:44:28,770 --> 00:44:30,581 Du får ud af det hvad du har lagt i det, 990 00:44:30,581 --> 00:44:32,580 men det er en virkelig sjovt klasse især hvis du er 991 00:44:32,580 --> 00:44:35,496 villige til at sætte den tid i det, men det hjælper, hvis du lægger tid i det. 992 00:44:35,496 --> 00:44:38,336 Du får meget mere ud af det senere. 993 00:44:38,336 --> 00:44:38,960 MIKE: Jeg er Mike. 994 00:44:38,960 --> 00:44:39,882 CAMILLE: Jeg er Camille. 995 00:44:39,882 --> 00:44:40,590 Hanya: Jeg er Hanya. 996 00:44:40,590 --> 00:44:41,310 MAT: Jeg er Matt. 997 00:44:41,310 --> 00:44:42,140 Peter: Jeg er Peter. 998 00:44:42,140 --> 00:44:42,620 PHILLIP: Jeg er Phillip. 999 00:44:42,620 --> 00:44:43,495 PATRICK: Jeg er Patrick. 1000 00:44:43,495 --> 00:44:45,234 ROB BOWDEN: Jeg er Rob Bowden. 1001 00:44:45,234 --> 00:44:47,150 BRIAN Scassellati: My navn er SCAS, og denne-- 1002 00:44:47,150 --> 00:44:49,958 ALL: --is CS50. 1003 00:44:49,958 --> 00:44:50,806 SPEAKER 20: At Yale. 1004 00:44:50,806 --> 00:44:51,639 SPEAKER 21: At Yale. 1005 00:44:51,639 --> 00:44:52,840 [LAUGHING] 1006 00:44:52,840 --> 00:44:54,270 DAVID MALAN: Det er det for CS50. 1007 00:44:54,270 --> 00:44:59,000 Vi vil se dig fra Yale på Fredag, Puzzle Day på lørdag. 1008 00:44:59,000 --> 00:45:00,475 Kage er nu serveret. 1009 00:45:00,475 --> 00:45:01,640 Dette er CS50. 1010 00:45:01,640 --> 00:45:05,314 1011 00:45:05,314 --> 00:45:10,992 >> [MUSIK AFSPILLER] 1012 00:45:10,992 --> 00:47:00,434