1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Speel van musiek] 3 00:00:10,830 --> 00:00:12,080 [MUSIEK - Rossini, "RANZ DES VACHES "van William Tell] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIEK - DIE ENGELSE klop, "opmars VAN DIE SWIVEL koppe "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Applous en die gejuig] 8 00:02:31,510 --> 00:02:33,520 >> David Malan: So dit is CS50. 9 00:02:33,520 --> 00:02:34,730 My naam is David Malan. 10 00:02:34,730 --> 00:02:39,250 En 73% van julle het geen vorige ervaring met 'n rekenaar wetenskap, 11 00:02:39,250 --> 00:02:41,300 In teenstelling met wat jy dalk dink. 12 00:02:41,300 --> 00:02:45,290 So vandag het ons gedink ons ​​sou chip weg aan dat die gebrek aan kennis nie, maar ook 13 00:02:45,290 --> 00:02:48,970 gee jou 'n gevoel van, vir dié van julle met meer gemak, wat aanwysings 14 00:02:48,970 --> 00:02:50,550 jy kan gaan hierdie semester. 15 00:02:50,550 --> 00:02:51,890 >> So laat ons begin met hierdie. 16 00:02:51,890 --> 00:02:55,490 Ek het werklik geen idee wat binne in 'n rekenaar, selfs al is, soos jy, het ek 17 00:02:55,490 --> 00:02:56,780 gebruik dit elke dag. 18 00:02:56,780 --> 00:03:00,000 Maar dit is 'n soort van boks, en daar is nie baie insette in dit. 19 00:03:00,000 --> 00:03:01,350 Minimaal, daar is, wat? 20 00:03:01,350 --> 00:03:03,120 Waarskynlik 'n krag koord. 21 00:03:03,120 --> 00:03:06,640 >> En inderdaad met hierdie een bestanddeel, elektrisiteit, lyk ons ​​in staat wees om 22 00:03:06,640 --> 00:03:09,490 doen nogal 'n bietjie van hierdie dae. 23 00:03:09,490 --> 00:03:12,130 Maar aan die einde van die dag, het ons het die dinge te verteenwoordig 24 00:03:12,130 --> 00:03:12,860 dat ons omgee. 25 00:03:12,860 --> 00:03:15,240 Ons het inligting voor te stel in een of ander vorm. 26 00:03:15,240 --> 00:03:18,365 En jy is waarskynlik ten minste vaagweg vertroud is met die idee van binêre of 27 00:03:18,365 --> 00:03:21,370 stukkies op die een of ander, rekenaars verminder tot nulle en ene. 28 00:03:21,370 --> 00:03:26,320 Maar kan ons aanvaar dat en ten minste sit 'n bietjie van die lig daarvan? 29 00:03:26,320 --> 00:03:28,880 >> So ek het hierdie klein lessenaar lampe hier. 30 00:03:28,880 --> 00:03:30,450 Ek het 'n kragpunt hier. 31 00:03:30,450 --> 00:03:33,930 En ek gaan dit binne-in te stel van my rekenaar is ten minste een van die 32 00:03:33,930 --> 00:03:37,300 hierdie dinge, iets in staat om aan-en afgeskakel. 33 00:03:37,300 --> 00:03:40,200 In hierdie geval, dit is inderdaad 'n lessenaar lamp, maar op die onderste vlak, dit is iets 34 00:03:40,200 --> 00:03:41,500 bekend as 'n transistor. 35 00:03:41,500 --> 00:03:44,730 >> Maar in ons wêreld, is dit 'n lessenaar lamp, so Ek gaan om voort te gaan en dit sluit 36 00:03:44,730 --> 00:03:47,990 in my elektrisiteit hier. 37 00:03:47,990 --> 00:03:52,970 En ek beweer dat die gebruik van hierdie eenvoudige, eenvoudige toestel, hierdie eenvoudige skakelaar, ek 38 00:03:52,970 --> 00:03:54,850 kan stel inligting. 39 00:03:54,850 --> 00:03:58,090 Byvoorbeeld, nou is ek wat niks nie, reg? 40 00:03:58,090 --> 00:04:01,820 Ek verteenwoordig wat ek sal noem 0 of vals is, die teenoorgestelde van iets 41 00:04:01,820 --> 00:04:03,130 eintlik teenwoordig is. 42 00:04:03,130 --> 00:04:07,050 Maar as ek net weer die skakelaar, nou het ek verteenwoordig 'n 1. 43 00:04:07,050 --> 00:04:10,720 Sodat die gebruik van hierdie baie eenvoudige stuk geheue, as jy wil, kan ek verteenwoordig 44 00:04:10,720 --> 00:04:11,450 inligting. 45 00:04:11,450 --> 00:04:14,350 >> Nou ongelukkig, my rekenaar nie kan doen nie alles wat veel. 46 00:04:14,350 --> 00:04:17,430 Dit kan net verteenwoordig twee waardes in die hele wêreld - 47 00:04:17,430 --> 00:04:18,620 0 of 1. 48 00:04:18,620 --> 00:04:21,839 Maar wat is 'n duidelike oplossing, nou, As ons wil hê dat ons rekenaar uit te brei 49 00:04:21,839 --> 00:04:25,120 geheue en verteenwoordig meer as net 0 en 1? 50 00:04:25,120 --> 00:04:27,060 >> Wel, laat gryp nog so 'n bietjie. 51 00:04:27,060 --> 00:04:30,260 Kom ons gryp 'n ander skakelaar, 'n ander transistor, maar jy wil 52 00:04:30,260 --> 00:04:31,130 daaroor dink. 53 00:04:31,130 --> 00:04:34,170 Laat my gaan voort en prop dit in my rekenaar as well. 54 00:04:34,170 --> 00:04:38,270 En ek gaan om te eis, nou, wat deur met behulp van 'n bietjie meer elektrisiteit en 55 00:04:38,270 --> 00:04:42,290 draai meer van hierdie skakel aan en af, kan ek verteenwoordig meer sulke 56 00:04:42,290 --> 00:04:43,020 inligting. 57 00:04:43,020 --> 00:04:44,660 >> So nou, dit is 1. 58 00:04:44,660 --> 00:04:48,120 As ek nou wil stel 2, kon ek dit doen. 59 00:04:48,120 --> 00:04:51,510 Maar tipies, konvensie, soos ons sal uiteindelik sien, sal my dit doen. 60 00:04:51,510 --> 00:04:55,260 So dit is 0, dit is 1. 61 00:04:55,260 --> 00:04:56,720 Dit sou wees 2. 62 00:04:56,720 --> 00:04:59,920 En nie verrassend nie, sou dit wees 3. 63 00:04:59,920 --> 00:05:02,610 >> So op hierdie manier, nog steeds, kan ons tel selfs verder? 64 00:05:02,610 --> 00:05:06,500 As ek 'n derde bietjie, 'n derde skakelaar, wat is die grootste getal kan ek nou 65 00:05:06,500 --> 00:05:09,720 tel tot by 0? 66 00:05:09,720 --> 00:05:12,020 So 7 As ek begin by 0, reg? 67 00:05:12,020 --> 00:05:15,980 Want as ek draai die lig op en eintlik prop die derde en finale 68 00:05:15,980 --> 00:05:20,090 lig in my elektriese aansluiting hier, dan het ek die vermoë te verteenwoordig 69 00:05:20,090 --> 00:05:24,930 enige van twee waardes hier twee waardes hier, twee waardes hier - 70 00:05:24,930 --> 00:05:32,610 en so ek kan verteenwoordig 2 keer 2 keer 2, of agt moontlike waardes. 71 00:05:32,610 --> 00:05:36,340 En as ek begin rekeningkunde by 0, so dit is 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> So hierdie program nie. 73 00:05:37,480 --> 00:05:39,420 Dit is regtig so eenvoudig soos dit. 74 00:05:39,420 --> 00:05:41,930 En Ek wil argumenteer dat dit eintlik ' redelik vertroud met die meeste 75 00:05:41,930 --> 00:05:43,180 Almal in die kamer. 76 00:05:43,180 --> 00:05:45,710 Laat my gaan voort en maak 'n min teks editor hier. 77 00:05:45,710 --> 00:05:49,040 >> En jy kan onthou van graad skool dat ons dinge soos die honderde 78 00:05:49,040 --> 00:05:51,970 plek, die tien plek, en die een plek. 79 00:05:51,970 --> 00:05:55,040 En onthou dat as jy 'n paar desimale nommer, soos iets wat lukraak 80 00:05:55,040 --> 00:05:59,470 soos 123, jy sou in wese skryf dit uit in die vorm 81 00:05:59,470 --> 00:06:00,450 van hierdie drie kolomme. 82 00:06:00,450 --> 00:06:04,070 En hoekom is 1, 2, 3 wat ons weet as 123? 83 00:06:04,070 --> 00:06:11,220 Wel, in die linker kolom, het ons ' 'n 100 plus twee 10s, so dit is 120, 84 00:06:11,220 --> 00:06:14,250 plus drie 1s, so dit is 123. 85 00:06:14,250 --> 00:06:17,990 >> Nou hierdie wêreld dat ons net verlig is presies dieselfde as 86 00:06:17,990 --> 00:06:21,150 jy is vertroud met vir die jaar, Behalwe nou, ons kolomme 87 00:06:21,150 --> 00:06:22,060 is nie magte van 10. 88 00:06:22,060 --> 00:06:23,780 Hulle is net magte van 2. 89 00:06:23,780 --> 00:06:27,830 So, terwyl dit is die mense wat plaasvind, is hierdie gaan die twee-twee plek wees, is dit 90 00:06:27,830 --> 00:06:29,540 gaan na die viere plek wees. 91 00:06:29,540 --> 00:06:33,260 >> En omdat ek slegs met behulp van die eenvoudigste van die meganismes dinge om te draai 92 00:06:33,260 --> 00:06:37,100 op en af ​​- elektrisiteit vloei of elektrisiteit vloei nie - 93 00:06:37,100 --> 00:06:40,880 Ek het nie heeltemal nie dieselfde uitdrukkingsvolle reeks as 0 tot nege. 94 00:06:40,880 --> 00:06:43,270 Ons gaan om te hou dit super eenvoudige in hierdie wêreld van rekenaars. 95 00:06:43,270 --> 00:06:45,060 Ek het net 0 of 1 - 96 00:06:45,060 --> 00:06:47,890 af of op, vals of waar. 97 00:06:47,890 --> 00:06:52,610 >> En wat ek nou verteenwoordig is 1, 1, 1, want elkeen van hierdie 98 00:06:52,610 --> 00:06:54,000 ligte is verlig. 99 00:06:54,000 --> 00:06:59,600 Wel, dit gee my 'n 4 plus een 2, so dit is 6, plus een 1, en dit is 7. 100 00:06:59,600 --> 00:07:03,450 En ergo doen hierdie volgorde van drie stukkies verteenwoordig die aantal 7. 101 00:07:03,450 --> 00:07:06,330 >> So al hierdie tyd, binne-in jou rekenaar, is 'n aantal 102 00:07:06,330 --> 00:07:08,090 transistors, enige aantal stukkies. 103 00:07:08,090 --> 00:07:10,380 Maar aan die einde van die dag, het ons kan stel inligting 104 00:07:10,380 --> 00:07:12,560 so eenvoudig soos dit. 105 00:07:12,560 --> 00:07:16,770 Nou ongelukkig, ons het net getel tot 7 in CS50 tot dusver, maar 106 00:07:16,770 --> 00:07:18,550 hopelik kan ons doen 'n bietjie beter as dit. 107 00:07:18,550 --> 00:07:19,550 En inderdaad ons kan. 108 00:07:19,550 --> 00:07:23,570 >> Veronderstel dat ons as mense net arbitrêr besluit dat ons gaan 109 00:07:23,570 --> 00:07:28,750 getalle te assosieer soos 1 en 2, 3, 4, 5, 6, 7, met spesifieke letters van 110 00:07:28,750 --> 00:07:29,410 die alfabet. 111 00:07:29,410 --> 00:07:32,350 En vir historiese redes, gaan ek begin ietwat arbitrêr, maar ek is 112 00:07:32,350 --> 00:07:36,880 gaan om te sê, die mens, gaan ons besluit om as 'n standaard, wêreldwyd, wat die 113 00:07:36,880 --> 00:07:43,200 65 verteenwoordig die aantal die letter A. 66 sal verteenwoordig B. Dot, dot, dot. 114 00:07:43,200 --> 00:07:45,140 90 sal verteenwoordig die letter Z. 115 00:07:45,140 --> 00:07:48,000 >> En laat ons dink nie, as ons regtig 'n plaas gedink het in dit, kan ons kom 116 00:07:48,000 --> 00:07:50,860 met nommers vir uitroep punte en kleinletters, en inderdaad, 117 00:07:50,860 --> 00:07:52,710 ander mense gedoen het wat vir ons. 118 00:07:52,710 --> 00:07:56,410 So nou het ons stukkies met wat ons kan getalle, getalle waarmee 119 00:07:56,410 --> 00:08:00,130 ons kan verteenwoordig briewe, en met letters kan ons nou begin met die saamstel 120 00:08:00,130 --> 00:08:02,650 e-pos en druk karakters op die skerm. 121 00:08:02,650 --> 00:08:05,850 >> So laat my nooi, as ek kon, agt dapper vrywilligers - 122 00:08:05,850 --> 00:08:09,200 wat nie omgee verskyn nie net op kamera, maar op die internet - 123 00:08:09,200 --> 00:08:13,130 om te kom hier en verteenwoordig agt sulke stukkies, eerder as om hierdie drie. 124 00:08:13,130 --> 00:08:14,380 So hoe oor een, twee? 125 00:08:14,380 --> 00:08:16,290 Hoe omtrent drie? 126 00:08:16,290 --> 00:08:20,230 Hoe oor die vier in die lig blou, vyf aan die einde? 127 00:08:20,230 --> 00:08:21,250 Oor iemand hier? 128 00:08:21,250 --> 00:08:25,320 Ses voor sewe in die voorkant, en agt in die voorkant, as well. 129 00:08:25,320 --> 00:08:29,050 >> So ek het net so gebeur het om voorbereid te kom met 'n hele klomp van die strokies papier. 130 00:08:29,050 --> 00:08:34,150 En op hierdie stukkies papier is getalle wat stel watter kolomme 131 00:08:34,150 --> 00:08:35,809 julle gaan verteenwoordig. 132 00:08:35,809 --> 00:08:36,740 So sal jy wees - wat is jou naam? 133 00:08:36,740 --> 00:08:37,570 >> STUDENT: Anna Lea. 134 00:08:37,570 --> 00:08:40,370 >> David Malan: Anna Lea, het jy sal die 128s kolom wees. 135 00:08:40,370 --> 00:08:41,059 Jy is? 136 00:08:41,059 --> 00:08:41,510 >> STUDENT: Chris. 137 00:08:41,510 --> 00:08:43,620 >> David Malan: Chris sal die 64s kolom. 138 00:08:43,620 --> 00:08:44,070 Jy is? 139 00:08:44,070 --> 00:08:44,540 >> STUDENT: Dan. 140 00:08:44,540 --> 00:08:46,970 >> David Malan: Dan sal die 32s kolom. 141 00:08:46,970 --> 00:08:47,470 >> STUDENT: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> David Malan: Pramit sal die 16s kolom. 143 00:08:49,430 --> 00:08:50,290 >> STUDENT: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> David Malan: Lillian sal die 8's wees. 145 00:08:51,904 --> 00:08:52,768 >> STUDENT: Jill. 146 00:08:52,768 --> 00:08:55,025 >> David Malan: Jill sal die 4s kolom. 147 00:08:55,025 --> 00:08:55,400 >> STUDENT: Mary. 148 00:08:55,400 --> 00:08:57,000 >> David Malan: Mary sal wees om die 2's, en? 149 00:08:57,000 --> 00:08:57,470 >> STUDENT: David. 150 00:08:57,470 --> 00:08:59,220 >> David Malan: Dawid sal wees om die 1'e kolom. 151 00:08:59,220 --> 00:09:02,030 So as jy ouens kon stap 'n bietjie vorentoe, sodat almal dit kan sien. 152 00:09:02,030 --> 00:09:05,370 Wat julle sien nie, is dat die terug van die strokies papier is 'n 153 00:09:05,370 --> 00:09:09,760 bietjie oneerlik vel wat oor te opdrag hierdie agt stukkies om óf 154 00:09:09,760 --> 00:09:12,380 verhoog hul hand of nie verhoog hul hand. 155 00:09:12,380 --> 00:09:14,100 As hulle hand gaan op, hulle is verteenwoordig 'n 1. 156 00:09:14,100 --> 00:09:17,120 As hulle hand bly af, hulle is wat 'n 0. 157 00:09:17,120 --> 00:09:21,410 >> Intussen het ons die publiek moet wees in staat om uit te vind, wat gebaseer is op hierdie 158 00:09:21,410 --> 00:09:26,490 kartering, wat drie-letter woord hierdie mense is omtrent om uit te spel. 159 00:09:26,490 --> 00:09:29,700 So in 'n oomblik, jy gaan te lees die eerste reël uit die agterkant van 160 00:09:29,700 --> 00:09:32,880 jou oneerlik vel, en jy is óf gaan om te verhoog of nie verhoog jou hand. 161 00:09:32,880 --> 00:09:35,710 As jy 'n 1 en jy maak, as jy is 'n 0, staan ​​jy daar 162 00:09:35,710 --> 00:09:38,594 ongemaklik, net soos dit. 163 00:09:38,594 --> 00:09:40,386 Gaan. 164 00:09:40,386 --> 00:09:43,945 Watter getal in die eerste plek, hierdie ouens wat? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, reg? 168 00:09:49,560 --> 00:09:52,400 Ons het 'n 1 in die 64s kolom 'n 1 in die 2s kolom. 169 00:09:52,400 --> 00:09:56,340 Dit gee my 66, so wat verskyn te verteenwoordig B. So 170 00:09:56,340 --> 00:09:57,075 julle ouens gespel het - 171 00:09:57,075 --> 00:09:58,300 OK, dis genoeg. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> So laat ons nou beweeg op ons tweede brief. 174 00:10:01,610 --> 00:10:03,530 Gaan. 175 00:10:03,530 --> 00:10:06,860 Wie is die vinnigste in wiskunde hier? 176 00:10:06,860 --> 00:10:07,750 So 79. 177 00:10:07,750 --> 00:10:11,840 Weereens, as ons al die kolomme waarin daar is 'n 1, tans, net 178 00:10:11,840 --> 00:10:14,840 soos ons gedoen het voordat met die eenvoudigste voorbeelde van 7, het ons nou 179 00:10:14,840 --> 00:10:16,140 kry die nommer 79. 180 00:10:16,140 --> 00:10:19,910 Wat volgens ons kartering is die brief O. So ons is amper daar. 181 00:10:19,910 --> 00:10:22,590 B, O. En laastens, gaan. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Wat is dit wat nou? 184 00:10:30,120 --> 00:10:31,370 Minder konsensus. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Dit is net 'n absolute bruis. 187 00:10:36,460 --> 00:10:40,090 Ja, dit is in werklikheid 87. 188 00:10:40,090 --> 00:10:40,490 Goed. 189 00:10:40,490 --> 00:10:44,480 >> So as ons nou kaart wat terug tot - laat begin bel ons ASCII grafiek, 190 00:10:44,480 --> 00:10:46,450 American Standard Code vir Inligting wisselaar. 191 00:10:46,450 --> 00:10:47,700 Dit gee ons die brief - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 nie "bo" nie, maar "boog." En dit is 'n perfekte wit vir julle 'n boog te neem 194 00:10:54,810 --> 00:10:56,100 en kop op die rug. 195 00:10:56,100 --> 00:10:56,980 Baie dankie. 196 00:10:56,980 --> 00:10:57,886 >> [Applous] 197 00:10:57,886 --> 00:10:59,136 >> David Malan: Jy kan hou nie. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Alhoewel eintlik, sou iemand soos 'n lessenaar lamp, ook? 200 00:11:05,942 --> 00:11:07,300 >> [Toet UIT GEHOOR] 201 00:11:07,300 --> 00:11:08,390 >> David Malan: Balie lamp? 202 00:11:08,390 --> 00:11:10,850 >> [Gelag] 203 00:11:10,850 --> 00:11:11,860 >> David Malan: Regtig? 204 00:11:11,860 --> 00:11:13,230 Lessenaar lampe vir almal? 205 00:11:13,230 --> 00:11:14,310 Alle regte. 206 00:11:14,310 --> 00:11:20,990 So begin met die heel eenvoudigste beginsels, ons het nou nie net getel 207 00:11:20,990 --> 00:11:24,750 uit 0 al die pad tot 7, het ons aanvaar dat net deur die gooi meer 208 00:11:24,750 --> 00:11:28,080 stukkies of meer ligte of meer transistors na hierdie probleem, kan ons 209 00:11:28,080 --> 00:11:32,680 verteenwoordig groter en groter getalle, en ergo, groter en groter wissel van 210 00:11:32,680 --> 00:11:33,780 alfabet, soos Engels. 211 00:11:33,780 --> 00:11:37,770 En net laat neem oor geloof vir vandag wat insgelyks kan ons begin om te 212 00:11:37,770 --> 00:11:42,220 stel beelde en video en enige aantal ander media waarmee ons 213 00:11:42,220 --> 00:11:43,610 vertroud vandag. 214 00:11:43,610 --> 00:11:49,240 >> So dit is CS50, en in hierdie klas saam met van julle is, weer, baie 215 00:11:49,240 --> 00:11:53,050 klasmaats wat so min ervaar as jy. 216 00:11:53,050 --> 00:11:57,730 En Ek noem dit net omdat baie dikwels, insluitend so onlangs as een van 217 00:11:57,730 --> 00:12:01,860 die groentjie adviseer gebeure en by verlede jaar se stage te adviseer 218 00:12:01,860 --> 00:12:06,420 gebeurtenis, hoor ons dikwels studente ontken toe kom die CS tafel, goed, 219 00:12:06,420 --> 00:12:10,070 Ek het gedink oor die neem van hierdie intro klas nie, maar ek is nie regtig 'n 220 00:12:10,070 --> 00:12:11,120 rekenaar persoon. 221 00:12:11,120 --> 00:12:13,220 Of nie, maar almal sekerlik weet meer as ek. 222 00:12:13,220 --> 00:12:17,340 En ek het dit in die grootste font moontlik is, oor te dra hierdie boodskap wat 223 00:12:17,340 --> 00:12:18,730 dit is in werklikheid nie die geval nie. 224 00:12:18,730 --> 00:12:21,100 >> En as jy wonder, moet Ek, in werklikheid, hier te wees? 225 00:12:21,100 --> 00:12:25,950 Besef dat nie net is hierdie kursus se titel Inleiding tot Rekenaar 226 00:12:25,950 --> 00:12:31,740 Wetenskap, dit is Inleiding tot Rekenaar Wetenskap I. So is daar inderdaad 227 00:12:31,740 --> 00:12:33,170 'n tweede so 'n inleiding. 228 00:12:33,170 --> 00:12:35,390 So jy is nie, in werklikheid, in die verkeerde plek. 229 00:12:35,390 --> 00:12:39,000 En onder die doelwitte wat ek vir vandag te sus enige sodanige bekommernisse 230 00:12:39,000 --> 00:12:42,430 mag hê nie, maar ook om te verf 'n prentjie van wat in die winkel vir 231 00:12:42,430 --> 00:12:45,720 studente minder en meer gemaklik gelyk in hierdie kursus. 232 00:12:45,720 --> 00:12:49,320 >> Maar eers 'n woord op een van die aalmoese jy het vandag, waaronder 233 00:12:49,320 --> 00:12:50,780 is 'n aantal van vrae. 234 00:12:50,780 --> 00:12:54,290 Dit was 'n visie van ons vir 'n geruime tyd nou 'n nuwe gradering te stel 235 00:12:54,290 --> 00:12:57,010 opsie in hierdie kursus - naamlik, Saterdag / UNSAT. 236 00:12:57,010 --> 00:13:01,930 Filosofies vir my, dit is baie, baie, baie meer belangrik dat die 237 00:13:01,930 --> 00:13:05,050 studente in die klas betrokke te raak met die materiaal, uitgedaag word deur die 238 00:13:05,050 --> 00:13:09,800 materiaal, en veel bekommerd wees nie, veel minder oor die meganika van werklike tellings 239 00:13:09,800 --> 00:13:12,590 en 'n brief grade by semester se einde nie, maar werklik omhels die 240 00:13:12,590 --> 00:13:13,970 natuurlik en sy materiaal. 241 00:13:13,970 --> 00:13:18,140 En regtig dit voel, meer in die algemeen, vir wat is interessant om hulle te 242 00:13:18,140 --> 00:13:21,390 voel uitgedaag en beloon word, maar sonder vrees vir mislukking. 243 00:13:21,390 --> 00:13:25,030 >> En inderdaad, dit is te 'n herhalende tema in hierdie en ander inleidende 244 00:13:25,030 --> 00:13:28,680 kursusse in ander gebiede, dat jy hierdie angs wanneer dit kom by 245 00:13:28,680 --> 00:13:31,040 om 'n mens se tone in onbekende waters. 246 00:13:31,040 --> 00:13:34,880 Ek myself, terug in 1995, was 'n groentjie. 247 00:13:34,880 --> 00:13:37,990 Ek was baie gefokus op wat 'n regering concentrator hier. 248 00:13:37,990 --> 00:13:41,060 En tog het ek altyd grootgeword met 'n bietjie van 'n belang in Rekenaarwetenskap. 249 00:13:41,060 --> 00:13:42,180 Ek was nog altyd nuuskierig. 250 00:13:42,180 --> 00:13:47,610 >> Maar terug dan, selfs, ek het hierdie vrees om selfs voet in CS50, soveel 251 00:13:47,610 --> 00:13:49,420 sodat ek het nie eens shop dit eerstejaars jaar. 252 00:13:49,420 --> 00:13:53,460 En die enigste rede waarom ek 'n voet in die deur stage jaar was omdat ek 253 00:13:53,460 --> 00:13:55,340 is toegelaat om te neem dit slaag / druip. 254 00:13:55,340 --> 00:13:58,920 Maar selfs slaag / druip vereis dat ek die senuwee om 'n afspraak te maak 255 00:13:58,920 --> 00:14:01,970 met Professor Kernehan by die tyd, bring hierdie groot vel papier, en vra 256 00:14:01,970 --> 00:14:04,470 hom vir sy handtekening en sy toestemming te verken 257 00:14:04,470 --> 00:14:05,700 hierdie onbekende waters. 258 00:14:05,700 --> 00:14:09,030 >> En dit het nie gehelp nie in die afgelope jaar dat wanneer om dit te doen in CS50, wanneer ons 259 00:14:09,030 --> 00:14:12,500 gebruik word om te wees slaag / druip, insgelyks sou dekades of honderde van jou klasmaats 260 00:14:12,500 --> 00:14:15,970 het om te kom, God verbied, by die voor Sanders met hierdie vorm, wat 261 00:14:15,970 --> 00:14:19,520 in sommige mense verteenwoordig 'n onvermoë, Durf ek sê, uit te voer 262 00:14:19,520 --> 00:14:20,800 is jou maats se vlak. 263 00:14:20,800 --> 00:14:23,410 Dit is belaglik, maar ek dink daar is dat die mentaliteit. 264 00:14:23,410 --> 00:14:27,210 En daar was nog nooit in hierdie kultuur van SAT / UNSAT, of slaag / druip meer 265 00:14:27,210 --> 00:14:30,610 in die algemeen, in hierdie kursus, of eintlik op hierdie kampus. 266 00:14:30,610 --> 00:14:32,310 >> So hierdie jaar het ons verander nie. 267 00:14:32,310 --> 00:14:35,630 Ek sou in ekstase helfte van wees hierdie klas of meer geëindig 268 00:14:35,630 --> 00:14:38,700 up neem CS50 SAT / UNSAT. 269 00:14:38,700 --> 00:14:42,130 In 'n jaar se tyd, sou dit wonderlik wees As amper almal is. 270 00:14:42,130 --> 00:14:44,410 Daarna miskien sal ons werk op brief grade by Harvard 271 00:14:44,410 --> 00:14:45,480 Kollege meer algemeen. 272 00:14:45,480 --> 00:14:48,900 Maar vir nou, sal ons dit doen binne ons eie gebied, en ek sou harte 273 00:14:48,900 --> 00:14:53,400 aanmoedig om die vrae te hersien en vra vrae soos jy goeddink, sodat 274 00:14:53,400 --> 00:14:58,000 Hopelik sal jy, in teenstelling met my, sal nie heeltemal het dieselfde vrees faktor wanneer 275 00:14:58,000 --> 00:15:01,040 verken wat waarskynlik 'n onbekende plek. 276 00:15:01,040 --> 00:15:02,786 >> So, wat is CS50? 277 00:15:02,786 --> 00:15:06,150 Dit is 'n inleiding tot die intellektuele ondernemings van die rekenaar 278 00:15:06,150 --> 00:15:07,700 wetenskap en die kuns van die ontwikkeling. 279 00:15:07,700 --> 00:15:08,770 Maar wat beteken dit werklik? 280 00:15:08,770 --> 00:15:12,510 >> Wel, tot dusver, het ons gepraat baie kortliks oor wat inligting. 281 00:15:12,510 --> 00:15:15,070 Maar veronderstel dat ons eintlik wil hê om iets te doen met dit. 282 00:15:15,070 --> 00:15:17,890 Ons moet die idee van in te voer wat ons noem 'n algoritme. 283 00:15:17,890 --> 00:15:21,540 'N Algoritme is 'n proses, 'n proses, 'n stel instruksies vir 284 00:15:21,540 --> 00:15:22,780 om iets te doen. 285 00:15:22,780 --> 00:15:25,620 >> En 'n algoritme kan iets wees super eenvoudig. 286 00:15:25,620 --> 00:15:28,660 Byvoorbeeld, 'n voorbeeld van wat 'n paar van julle dalk bekend wees, is hierdie 287 00:15:28,660 --> 00:15:29,350 ding hier. 288 00:15:29,350 --> 00:15:32,510 Daarom is hierdie boek hier is toenemend gedateer nie, maar eens op 'n tyd, is dit 289 00:15:32,510 --> 00:15:34,720 bevat 'n hele klomp van die name en telefoonnommers. 290 00:15:34,720 --> 00:15:37,710 En inderdaad, as ek wou om uit te vind iemand in die telefoon boek - 291 00:15:37,710 --> 00:15:39,800 sê, iemand met die naam Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Ek kon vind Mike Smith in 'n aantal van redelik eenvoudige maniere. 293 00:15:43,810 --> 00:15:47,700 Ek kon begin by die begin en beweeg na bladsy 1, nie daar nie. 294 00:15:47,700 --> 00:15:49,240 Page 2, nie daar nie. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 Is dat algoritme, is dat proses, korrek? 297 00:15:53,430 --> 00:15:54,620 >> So dit korrek is, reg? 298 00:15:54,620 --> 00:15:58,070 Ek is soort van 'n idioot vir die doen dit in daardie manier, maar uiteindelik het ek sal 299 00:15:58,070 --> 00:16:02,670 vind die van S, en hopelik Mike is in daardie artikel, en ek sal 300 00:16:02,670 --> 00:16:04,100 gedoen met my algoritme. 301 00:16:04,100 --> 00:16:05,440 Maar seker dit is nie intuïtief. 302 00:16:05,440 --> 00:16:08,020 Die meeste elke redelike mens in hierdie kamer sou nie gedoen het nie. 303 00:16:08,020 --> 00:16:10,180 Wat sou jy gedoen het? 304 00:16:10,180 --> 00:16:11,480 >> Jy wil reguit gegaan tot in die middel, reg? 305 00:16:11,480 --> 00:16:12,000 Sowat tot in die middel. 306 00:16:12,000 --> 00:16:16,310 En jy besef, o, dit is die me So Mike Smith, laaste naam om Smith, 307 00:16:16,310 --> 00:16:19,050 is nie duidelik, dan in die linker helfte van die boek. 308 00:16:19,050 --> 00:16:21,040 Hy moet na die S is in die regterkant. 309 00:16:21,040 --> 00:16:24,090 En op hierdie punt, maar die meeste van ons doen dit nie in werklikheid, kan ons 310 00:16:24,090 --> 00:16:27,125 letterlik skeur hierdie probleem in die helfte. 311 00:16:27,125 --> 00:16:27,640 >> [Juig en applous] 312 00:16:27,640 --> 00:16:28,950 >> David Malan: Dankie. 313 00:16:28,950 --> 00:16:30,150 >> [Juig en applous] 314 00:16:30,150 --> 00:16:34,660 >> David Malan: Jy kan letterlik skeur hierdie probleem in die helfte, laat my met, 315 00:16:34,660 --> 00:16:36,120 letterlik, 'n probleem helfte so groot. 316 00:16:36,120 --> 00:16:39,750 So as hierdie telefoon boek was - en dit waarskynlik was - sowat 1000 bladsye, nou 317 00:16:39,750 --> 00:16:40,840 dit is net 500. 318 00:16:40,840 --> 00:16:44,710 As ek dit weer doen en ek besef, o, Damn, ek het te ver gegaan, ek is in die Ts 319 00:16:44,710 --> 00:16:46,480 artikel, ek kan op soortgelyke wyse - 320 00:16:46,480 --> 00:16:48,030 figuurlik of letterlik - 321 00:16:48,030 --> 00:16:50,260 rip die telefoon boek - dit was eintlik baie makliker daardie tydstip. 322 00:16:50,260 --> 00:16:53,610 Ek kan letterlik rip die telefoon boek in die helfte, laat my nou met 323 00:16:53,610 --> 00:16:55,186 nie 1000, nie 500 - 324 00:16:55,186 --> 00:16:56,680 250 bladsye. 325 00:16:56,680 --> 00:17:00,210 En ek kan 125 gaan, en die ander helfte van daardie, en helfte van daardie, en die helfte van daardie, 326 00:17:00,210 --> 00:17:04,760 totdat ek sal gelaat word met slegs 'n enkele bladsy. 327 00:17:04,760 --> 00:17:06,430 >> [Gelag] 328 00:17:06,430 --> 00:17:07,589 >> David Malan: Dit is die deel ek nie op. 329 00:17:07,589 --> 00:17:10,400 Een enkele bladsy waarop Mike is hopelik. 330 00:17:10,400 --> 00:17:14,630 Nou die verskillende algoritmes kan wees soort van 'n vasgestelde of geëvalueer in 331 00:17:14,630 --> 00:17:15,270 verskillende maniere. 332 00:17:15,270 --> 00:17:17,300 Die eerste een was baie lineêre, reg? 333 00:17:17,300 --> 00:17:18,500 Draai bladsy, kyk vir Mike. 334 00:17:18,500 --> 00:17:19,630 Draai bladsy, kyk vir Mike. 335 00:17:19,630 --> 00:17:20,560 Dit is baie lineêre. 336 00:17:20,560 --> 00:17:23,339 As daar een meer bladsy in die telefoon boek, dit is waarskynlik gaan om my te neem 337 00:17:23,339 --> 00:17:27,380 nog 'n tweede, nog een eenheid van tyd, Maar ons is die berekening van die tyd. 338 00:17:27,380 --> 00:17:32,470 >> Sodat ek kan leer soos hierdie hierdie lyn hier waar as die grootte van die 339 00:17:32,470 --> 00:17:34,700 probleem toe van links na regs - 340 00:17:34,700 --> 00:17:37,480 telefoon boek word kleiner na groter - 341 00:17:37,480 --> 00:17:41,080 en die tyd gaan te verhoog die vertikale as, die groter 342 00:17:41,080 --> 00:17:42,030 die telefoon boek is. 343 00:17:42,030 --> 00:17:46,180 So n is net 'n algemene veranderlike wat rekenaar wetenskaplikes gebruik te verteenwoordig 344 00:17:46,180 --> 00:17:48,210 'n bietjie waarde, 'n paar nommer. 345 00:17:48,210 --> 00:17:50,740 So n gaan lineêr toeneem. 346 00:17:50,740 --> 00:17:53,040 Dubbel die grootte van die telefoon boek, is dit gaan my twee keer soveel neem 347 00:17:53,040 --> 00:17:54,780 tyd, waarskynlik, om uit te vind Mike. 348 00:17:54,780 --> 00:17:56,390 >> Nou ek kon gewees het slim oor hierdie, reg? 349 00:17:56,390 --> 00:17:57,800 Ek was verveeld vinnig. 350 00:17:57,800 --> 00:17:58,910 Kan dit gedoen word deur twee-twee. 351 00:17:58,910 --> 00:18:01,870 So twee bladsye, dan vier, toe ses, dan agt. 352 00:18:01,870 --> 00:18:05,220 En ek kon begin vlieg deur dit 'n bietjie vinniger, al is dit teen geringe risiko van 353 00:18:05,220 --> 00:18:09,210 oordoen Mike, maar dat kurwe is nie gaan wees al wat verskil. 354 00:18:09,210 --> 00:18:12,550 Dit is nog steeds gaan 'n reguit lyn, maar effens vinniger. 355 00:18:12,550 --> 00:18:13,710 >> Maar wat het ek gedoen? 356 00:18:13,710 --> 00:18:15,845 Ek het eintlik het iets fundamenteel beter. 357 00:18:15,845 --> 00:18:21,990 Ek het bereik wat ons bel logaritmiese tyd, log van n, waardeur hierdie groen 358 00:18:21,990 --> 00:18:27,730 lyn het 'n baie, baie, baie minder reguit rand om dit te. 359 00:18:27,730 --> 00:18:33,050 En eerder, dit stel, as dit sorteer na oneindig ooit so geleidelik, 360 00:18:33,050 --> 00:18:36,700 dat ek kan eintlik 'n 1000-bladsy telefoon boek, dubbel sy grootte 361 00:18:36,700 --> 00:18:39,610 volgende jaar - omdat veronderstel 'n baie meer mense beweeg in die dorp. 362 00:18:39,610 --> 00:18:43,250 >> So nou is ek het 2000 bladsye, maar hoe baie meer stappe is dat slimmer 363 00:18:43,250 --> 00:18:45,200 algoritme gaan neem? 364 00:18:45,200 --> 00:18:46,060 Net een. 365 00:18:46,060 --> 00:18:48,060 Ek bedoel, dit is 'n kragtige ding. 366 00:18:48,060 --> 00:18:51,400 As ons na 4000 bladsye volgende jaar, wat gaan om my te neem 367 00:18:51,400 --> 00:18:53,020 nog net twee stappe. 368 00:18:53,020 --> 00:18:56,500 So jy kan gooi groter en groter probleme by my, nie in teenstelling met die web is 369 00:18:56,500 --> 00:18:59,560 gooi groter en groter probleme elke dag op Googles en Facebooks van 370 00:18:59,560 --> 00:19:01,590 die wêreld, en dit is nie so 'n groot deal. 371 00:19:01,590 --> 00:19:05,840 Omdat ek meer gedink en sorg in my algoritme waarmee op te los 372 00:19:05,840 --> 00:19:07,020 probleme doeltreffend. 373 00:19:07,020 --> 00:19:09,260 >> En inderdaad, dit sal wees een van die doelwitte van hierdie kursus. 374 00:19:09,260 --> 00:19:11,230 Jy sal, langs die pad, leer hoe om te program. 375 00:19:11,230 --> 00:19:13,360 Jy sal leer hoe om die program in 'n aantal tale. 376 00:19:13,360 --> 00:19:16,670 Maar aan die einde van die dag, die kursus is oor die probleme op te los en om 377 00:19:16,670 --> 00:19:20,490 beter op die oplossing van probleme - en, soos in gevalle soos hierdie, probleme op te los 378 00:19:20,490 --> 00:19:22,030 meer doeltreffend. 379 00:19:22,030 --> 00:19:23,990 >> Nou tot dusver, het ons nou gedoen redelik intuïtief. 380 00:19:23,990 --> 00:19:27,420 Kom ons stel om iets redelik generiese genoem pseudokode. 381 00:19:27,420 --> 00:19:29,150 So sal ons uiteindelik kry, in hierdie kursus te 382 00:19:29,150 --> 00:19:30,570 verskeie programmeertale. 383 00:19:30,570 --> 00:19:34,280 Maar vandag sal ons doen dit in Engels-agtige sintaksis, waar jy net 'n soort van sê 384 00:19:34,280 --> 00:19:37,330 wat jy bedoel, maar jy ooit so bondige en jy moenie bekommerd wees oor 385 00:19:37,330 --> 00:19:38,960 grammatika en volledige sinne. 386 00:19:38,960 --> 00:19:41,600 Jy moet net jouself uitdruk as saaklik as moontlik. 387 00:19:41,600 --> 00:19:45,400 >> So pseudokode is Engels-agtige sintaksis wat verteenwoordig 388 00:19:45,400 --> 00:19:46,750 'n programmeertaal. 389 00:19:46,750 --> 00:19:51,170 En in die rigting van die einde, laat my stel voor dat Ons het nou 'n model van die proses het ons net 390 00:19:51,170 --> 00:19:54,990 beskryf van die tel van iets 'n bietjie anders, hierdie keer om 'n 391 00:19:54,990 --> 00:19:59,040 kyk na hierdie vyf-minute video wat deur ons vriende by die TED wat 392 00:19:59,040 --> 00:20:03,170 definieer wat pseudokode is, definieer wat algoritmiese denke is, en selfs 393 00:20:03,170 --> 00:20:07,030 al die voorbeeld wat jy oor om te sien is, in sigself, super eenvoudige, dit is 394 00:20:07,030 --> 00:20:09,820 gaan om te begin om te gee ons die geestelike model, die woordeskat, waarmee 395 00:20:09,820 --> 00:20:14,588 doen baie, baie meer kompleks algoritmes redelik vinnig. 396 00:20:14,588 --> 00:20:15,576 >> [Begin video afspeel] 397 00:20:15,576 --> 00:20:29,920 >> [Speel van musiek] 398 00:20:29,920 --> 00:20:31,100 >> NARRATOR: Wat is 'n algoritme? 399 00:20:31,100 --> 00:20:34,730 In rekenaarwetenskap, 'n algoritme is 'n stel instruksies vir die oplos van sommige 400 00:20:34,730 --> 00:20:36,620 probleem stap vir stap. 401 00:20:36,620 --> 00:20:39,650 Tipies, is algoritmes uitgevoer deur rekenaars, maar ons mense het 402 00:20:39,650 --> 00:20:41,230 algoritmes, as well. 403 00:20:41,230 --> 00:20:43,290 Byvoorbeeld, hoe sal jy gaan oor die tel van die aantal 404 00:20:43,290 --> 00:20:44,750 van mense in 'n kamer? 405 00:20:44,750 --> 00:20:47,980 Wel, as jy soos ek is, sal jy waarskynlik punt by elke persoon, een op 406 00:20:47,980 --> 00:20:50,120 'n tyd, en tel van 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, en so meer. 408 00:20:52,970 --> 00:20:54,140 >> Wel, dit is 'n algoritme. 409 00:20:54,140 --> 00:20:57,600 In werklikheid, laat ons probeer om dit uit te druk 'n bietjie meer formeel in pseudokode - 410 00:20:57,600 --> 00:21:00,700 Engels-agtige sintaksis wat lyk soos 'n programmeertaal. 411 00:21:00,700 --> 00:21:02,580 Laat N gelyke 0. 412 00:21:02,580 --> 00:21:06,970 Vir elke persoon in die kamer, stel N gelyk aan N plus 1. 413 00:21:06,970 --> 00:21:08,400 >> Hoe om hierdie pseudokode te interpreteer? 414 00:21:08,400 --> 00:21:12,840 Wel, lyn een verklaar, om so te praat, 'n veranderlike genoem en N initialisatie 415 00:21:12,840 --> 00:21:14,250 die waarde na 0. 416 00:21:14,250 --> 00:21:17,550 Dit beteken net dat aan die begin van ons algoritme, die ding waarmee 417 00:21:17,550 --> 00:21:19,650 ons is toe 'n waarde van 0. 418 00:21:19,650 --> 00:21:22,620 Na alles, voordat ons begin tel, ons het nie getel nog niks. 419 00:21:22,620 --> 00:21:25,340 Noem hierdie veranderlike N is net 'n konvensie. 420 00:21:25,340 --> 00:21:26,890 Ek kon genoem het dit die nodigste het nie. 421 00:21:26,890 --> 00:21:30,560 >> Nou word twee demarks die begin van 'n lus, 'n reeks stappe wat 422 00:21:30,560 --> 00:21:32,310 herhaal n paar paar keer. 423 00:21:32,310 --> 00:21:35,910 So in ons voorbeeld, die stap ons neem is toe mense in die kamer. 424 00:21:35,910 --> 00:21:38,730 Onder lyn twee is lyn drie, wat beskryf presies hoe 425 00:21:38,730 --> 00:21:40,160 ons gaan oor te tel. 426 00:21:40,160 --> 00:21:43,440 Die inkeping impliseer dat dit lyn drie wat sal herhaal. 427 00:21:43,440 --> 00:21:47,380 >> So, wat die pseudokode sê, is dat na begin by 0, vir elke 428 00:21:47,380 --> 00:21:50,690 persoon in die kamer, sal ons verhoog deur N 1. 429 00:21:50,690 --> 00:21:53,050 Nou is hierdie algoritme korrek? 430 00:21:53,050 --> 00:21:54,580 Wel, laat ons bang op dit 'n bietjie. 431 00:21:54,580 --> 00:21:57,270 Werk dit as daar twee mense in die kamer? 432 00:21:57,270 --> 00:21:58,170 Kom ons kyk. 433 00:21:58,170 --> 00:22:00,260 >> In lyn een, ons inisialiseer N 0. 434 00:22:00,260 --> 00:22:03,660 Vir elk van hierdie twee mense, Ons het toe inkrementeer N deur 1. 435 00:22:03,660 --> 00:22:07,310 So op die eerste reis deur die lus, ons werk N 0-1. 436 00:22:07,310 --> 00:22:11,070 Op die tweede reis deur dieselfde lus, ons werk N Van 1 tot 2. 437 00:22:11,070 --> 00:22:15,780 En so deur hierdie algoritme se einde, n is 2, wat ooreenstem inderdaad die aantal 438 00:22:15,780 --> 00:22:16,700 mense in die kamer. 439 00:22:16,700 --> 00:22:17,760 >> So ver, so goed. 440 00:22:17,760 --> 00:22:19,610 Hoe om 'n hoek geval, al is? 441 00:22:19,610 --> 00:22:22,590 Veronderstel daar is 0 mense in die kamer - buiten My 442 00:22:22,590 --> 00:22:24,170 wat doen die tel. 443 00:22:24,170 --> 00:22:27,150 In lyn een, ons inisialiseer N 0. 444 00:22:27,150 --> 00:22:30,280 Hierdie tyd, al is, reël drie nie uitgevoer te word nie, want daar is nie 'n 445 00:22:30,280 --> 00:22:31,370 persoon in die kamer. 446 00:22:31,370 --> 00:22:35,260 En so bly N 0, wat ooreenstem met die aantal mense in die kamer. 447 00:22:35,260 --> 00:22:36,420 Eenvoudig, reg? 448 00:22:36,420 --> 00:22:39,630 >> Maar toe mense een op 'n tyd is redelik ondoeltreffend, ook nie? 449 00:22:39,630 --> 00:22:40,920 Nee, ons beter kan doen. 450 00:22:40,920 --> 00:22:43,120 Hoekom nie tel twee mense op 'n tyd? 451 00:22:43,120 --> 00:22:49,300 In plaas van die tel van 1, 2, 3, 4, 5, 6, 7, 8, en so meer, waarom nie tel, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, en so aan? 453 00:22:51,460 --> 00:22:53,700 Dit klink selfs vinniger, en dit is seker. 454 00:22:53,700 --> 00:22:56,240 >> Kom ons druk hierdie optimalisering in pseudokode. 455 00:22:56,240 --> 00:22:57,800 Laat N gelyke 0. 456 00:22:57,800 --> 00:23:02,450 Vir elke paar van die mense in die kamer, stel N gelyk aan N plus 2. 457 00:23:02,450 --> 00:23:04,120 Pretty eenvoudige verandering, reg? 458 00:23:04,120 --> 00:23:06,750 Eerder as om telling mense een op 'n tyd, het ons in plaas tel 459 00:23:06,750 --> 00:23:08,300 hulle twee op 'n tyd. 460 00:23:08,300 --> 00:23:10,980 Hierdie algoritme is dus twee keer so vinnig as die laaste. 461 00:23:10,980 --> 00:23:12,180 >> Maar is dit korrek? 462 00:23:12,180 --> 00:23:12,920 Kom ons kyk. 463 00:23:12,920 --> 00:23:15,330 Werk dit as daar twee mense in die kamer? 464 00:23:15,330 --> 00:23:17,550 In lyn een, ons inisialiseer N 0. 465 00:23:17,550 --> 00:23:20,920 Vir dat 'n paar van die mense, Ons het toe inkrementeer N deur twee. 466 00:23:20,920 --> 00:23:24,860 En so deur hierdie algoritme se einde, N is 2, wat ooreenstem inderdaad die aantal 467 00:23:24,860 --> 00:23:25,650 mense in die kamer. 468 00:23:25,650 --> 00:23:28,250 >> Veronderstel volgende dat daar 0 mense in die kamer. 469 00:23:28,250 --> 00:23:30,840 In lyn een, ons inisialiseer N 0. 470 00:23:30,840 --> 00:23:34,330 Soos voorheen, nie in lyn drie nie uitvoer Glad nie, want daar is nie enige pare 471 00:23:34,330 --> 00:23:35,380 van die mense in die kamer. 472 00:23:35,380 --> 00:23:38,350 En so bly N 0, wat inderdaad ooreenstem met die aantal 473 00:23:38,350 --> 00:23:39,570 mense in die kamer. 474 00:23:39,570 --> 00:23:42,280 >> Maar wat as daar drie mense in die kamer? 475 00:23:42,280 --> 00:23:44,130 Hoe werk hierdie algoritme tarief? 476 00:23:44,130 --> 00:23:44,990 Kom ons kyk. 477 00:23:44,990 --> 00:23:47,460 In lyn een, ons inisialiseer N 0. 478 00:23:47,460 --> 00:23:50,870 Vir 'n paar van die mense, Ons het toe inkrementeer N deur 2. 479 00:23:50,870 --> 00:23:51,800 Maar wat dan? 480 00:23:51,800 --> 00:23:54,960 Daar is nie 'n ander vol paar mense in die kamer, so word twee geen 481 00:23:54,960 --> 00:23:56,180 meer van toepassing nie. 482 00:23:56,180 --> 00:24:00,530 En so deur hierdie algoritme se einde, N is nog steeds 2, wat nie korrek is nie. 483 00:24:00,530 --> 00:24:03,810 >> Inderdaad, is hierdie algoritme gesê word karretjie, want dit het 'n fout gemaak het. 484 00:24:03,810 --> 00:24:05,820 Kom ons stel met 'n paar nuwe pseudokode. 485 00:24:05,820 --> 00:24:09,670 Laat n gelyke 0 vir elke paar van die mense in die kamer. 486 00:24:09,670 --> 00:24:12,550 Stel N gelyk aan N plus 2. 487 00:24:12,550 --> 00:24:17,140 As een persoon bly ongepaarde, stel N gelyk aan N plus 1. 488 00:24:17,140 --> 00:24:20,140 Hierdie spesifieke probleem op te los, het ons bekendgestel, in lyn vier, 'n 489 00:24:20,140 --> 00:24:24,520 toestand, andersins bekend as 'n tak wat voer slegs indien daar is een 490 00:24:24,520 --> 00:24:26,640 persoon wat ons nie kan paar met mekaar. 491 00:24:26,640 --> 00:24:30,440 En so nou is, of daar is een of drie of enige onewe aantal mense in 492 00:24:30,440 --> 00:24:33,290 die kamer, die algoritme sal nou hulle tel. 493 00:24:33,290 --> 00:24:34,560 >> Kan ons dit doen selfs beter? 494 00:24:34,560 --> 00:24:38,820 Wel, ons kan tel in 3'e of 4s of selfs 5'e en 10'e, maar as dit nie, is dit 495 00:24:38,820 --> 00:24:41,360 gaan 'n bietjie te kry moeilik om te punt. 496 00:24:41,360 --> 00:24:44,660 Aan die einde van die dag, of uitgevoer deur rekenaars of die mens, 497 00:24:44,660 --> 00:24:46,750 algoritmes is net 'n stel instruksies met 498 00:24:46,750 --> 00:24:48,290 wat probleme op te los. 499 00:24:48,290 --> 00:24:49,792 Dit was net drie. 500 00:24:49,792 --> 00:24:52,404 Watter probleem sou jy op te los met 'n algoritme? 501 00:24:52,404 --> 00:24:52,901 >> [Einde video-vertoning] 502 00:24:52,901 --> 00:24:55,883 >> David Malan: Dit is die enigste keer Ek verskyn in strokiesprent vorm. 503 00:24:55,883 --> 00:25:01,050 Maar waar dat die storie blare af, nou, is hoe kan ons beter doen? 504 00:25:01,050 --> 00:25:04,680 Drieë en viere, eis ons, ons kan tel mense baie vinniger, maar kan ons 505 00:25:04,680 --> 00:25:06,290 doen fundamenteel beter as dit? 506 00:25:06,290 --> 00:25:07,540 En ek verbintenis wat ons kan. 507 00:25:07,540 --> 00:25:11,980 >> As ons 'n bietjie van ons eie pseudokode hier, ek gaan voor te stel 508 00:25:11,980 --> 00:25:14,550 dat ons kan bereik 'n lyn soos hierdie. 509 00:25:14,550 --> 00:25:17,280 Ons gaan nie mense om te tel een, twee, drie, vier. 510 00:25:17,280 --> 00:25:19,470 Ons is nie van plan om twee te gaan, vier, ses, agt. 511 00:25:19,470 --> 00:25:23,390 Ons gaan om te doen nie fundamenteel beter deur rethinking die probleem, en in hierdie 512 00:25:23,390 --> 00:25:27,080 geval is, gebruik te maak van 'n andersins onderbenut hulpbron. 513 00:25:27,080 --> 00:25:31,460 >> In net 'n oomblik, ek hoop jy sal vergewe en humor ons by te staan ​​in 514 00:25:31,460 --> 00:25:34,470 plek, op watter punt ons gaan vra elkeen van julle te neem in jou 515 00:25:34,470 --> 00:25:36,400 verstand om die nommer 1. 516 00:25:36,400 --> 00:25:39,560 Jy is dan gaan toenemend ongemaklik, soos die tyd verby, vind 517 00:25:39,560 --> 00:25:42,740 iemand anders wat staan, kombineer jou getalle bymekaar 518 00:25:42,740 --> 00:25:43,720 deur toe te voeg tot. 519 00:25:43,720 --> 00:25:47,490 Een van julle is dan gaan wedloop te sit eers sit en die ander persoon 520 00:25:47,490 --> 00:25:48,880 gaan herhaal. 521 00:25:48,880 --> 00:25:53,090 >> So in ander woorde, deur loting al jy met die getal 1, en dan 522 00:25:53,090 --> 00:25:57,800 kombinasie van die 1'e in 2's en diegene 2s in 4s, met almal toenemend 523 00:25:57,800 --> 00:26:02,740 sit, moet ons aan die einde van hierdie algoritme, het net een lening 524 00:26:02,740 --> 00:26:07,570 siel wat gaan sit nie vinnig genoeg, maar wat die hele gehore telling het 525 00:26:07,570 --> 00:26:09,180 in sy of haar verstand. 526 00:26:09,180 --> 00:26:13,730 >> So as jy wil, laat ons gaan voort en - stap een - staan ​​in die plek. 527 00:26:13,730 --> 00:26:15,600 En uit te voer. 528 00:26:15,600 --> 00:26:36,580 >> [SKARE Verset] 529 00:26:36,580 --> 00:26:38,820 >> David Malan: Weet jy waar Lauren is? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [SKARE Verset] 532 00:27:23,350 --> 00:27:24,340 >> David Malan: Alle reg? 533 00:27:24,340 --> 00:27:39,110 >> [SKARE Verset] 534 00:27:39,110 --> 00:27:41,365 >> David Malan: Alle reg, ons moet word nader aan die einde. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Ons sien een man wat hier staan ​​steeds. 537 00:27:47,670 --> 00:27:48,770 Wie moet anders om te kom saam? 538 00:27:48,770 --> 00:27:50,020 As jy ouens wil saam gaan. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Iemand het bo-op. 541 00:27:56,520 --> 00:27:58,150 Hoekom kan ek nie leen 'n hand hier. 542 00:27:58,150 --> 00:28:01,370 Vir die baie min mense wat nog staan, wat getalle doen jy 543 00:28:01,370 --> 00:28:02,790 het in jou gedagtes? 544 00:28:02,790 --> 00:28:04,020 >> STUDENT: 78. 545 00:28:04,020 --> 00:28:06,010 >> David Malan: 78 plus - 546 00:28:06,010 --> 00:28:07,840 wie staan ​​hier? 547 00:28:07,840 --> 00:28:08,370 >> STUDENT: 39. 548 00:28:08,370 --> 00:28:09,590 >> David Malan: Plus 39. 549 00:28:09,590 --> 00:28:12,310 Plus wat anders is nog steeds staan? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, wie anders? 552 00:28:15,960 --> 00:28:17,200 Nog 'n 81? 553 00:28:17,200 --> 00:28:17,860 Sjoe. 554 00:28:17,860 --> 00:28:19,210 En dan wat is in die rug? 555 00:28:19,210 --> 00:28:20,360 >> STUDENT: 49. 556 00:28:20,360 --> 00:28:21,812 >> David Malan: 49, plus? 557 00:28:21,812 --> 00:28:22,950 >> STUDENT: 98. 558 00:28:22,950 --> 00:28:24,980 >> David Malan: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Is dat iemand anders? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Goeie werk. 562 00:28:30,460 --> 00:28:33,610 >> [Gelag] 563 00:28:33,610 --> 00:28:34,690 >> David Malan: Ag, 112 - 564 00:28:34,690 --> 00:28:35,410 O. 565 00:28:35,410 --> 00:28:36,220 Goeie werk! 566 00:28:36,220 --> 00:28:38,660 >> [Gelag] 567 00:28:38,660 --> 00:28:42,570 >> [Applous] 568 00:28:42,570 --> 00:28:43,820 >> David Malan: Iemand anders nog staan? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Jammer? 571 00:28:47,260 --> 00:28:48,110 >> STUDENT: 99. 572 00:28:48,110 --> 00:28:49,810 >> David Malan: 99. 573 00:28:49,810 --> 00:28:52,620 Enigiemand anders nog staan? 574 00:28:52,620 --> 00:28:57,290 En die totale aantal studente hier is eintlik, volgens - 575 00:28:57,290 --> 00:28:59,400 het jy 'n getal? 576 00:28:59,400 --> 00:29:03,170 O ja, die werklike aantal mense in die kamer, volgens die rekening wat 577 00:29:03,170 --> 00:29:07,660 die onderrig metgeselle besig was op almal se manier, was 729. 578 00:29:07,660 --> 00:29:11,070 So uit 'n volle kamer van Harvard studente wat hulself getel, het die 579 00:29:11,070 --> 00:29:14,126 antwoord is 637. 580 00:29:14,126 --> 00:29:15,480 >> [Gelag] 581 00:29:15,480 --> 00:29:16,350 >> David Malan: So naby. 582 00:29:16,350 --> 00:29:17,360 Maar nog steeds. 583 00:29:17,360 --> 00:29:22,110 OK, so dit is 'n onderrig oomblik, reg? 584 00:29:22,110 --> 00:29:24,120 Dit is nou wat ons beskryf as 'n fout. 585 00:29:24,120 --> 00:29:28,120 Iewers langs die pad, ons het 'n paar rekenkundige verkeerd is, of iemand gaan sit het, 586 00:29:28,120 --> 00:29:29,930 of verlaat, of iets verkeerd geloop het. 587 00:29:29,930 --> 00:29:30,930 Maar dit is goed. 588 00:29:30,930 --> 00:29:33,390 Want selfs nog steeds, ons het redelik naby. 589 00:29:33,390 --> 00:29:37,480 En Ek wil argumenteer dat ons aan die verkeerde antwoord op 'n baie vinniger as wat ek wil hê 590 00:29:37,480 --> 00:29:39,770 gebruik my meer lineêre benadering. 591 00:29:39,770 --> 00:29:42,630 >> So laat ons veronderstel ons het in werklikheid kry wat korrek, maar dink nou oor wat 592 00:29:42,630 --> 00:29:46,870 gebeur elke keer, teenoor my eie naïef wys algoritme. 593 00:29:46,870 --> 00:29:48,420 Een, twee, drie. 594 00:29:48,420 --> 00:29:53,010 As daar wel 729 of 637 mense hier, sou dit my geneem het 595 00:29:53,010 --> 00:29:57,720 letterlik 637 of 729 pointings van die vinger en 596 00:29:57,720 --> 00:29:59,490 verhoog van my totale telling. 597 00:29:59,490 --> 00:30:01,910 En ek kon 'n bietjie beter te doen deur gaan twee, vier, ses, agt, en 598 00:30:01,910 --> 00:30:05,660 dubbel wat spoed, miskien selfs driedubbele of quadruple, afhangende van hoe goed ek kan 599 00:30:05,660 --> 00:30:07,110 doen wat tel in my kop. 600 00:30:07,110 --> 00:30:10,720 >> Maar hierdie benadering dat jy ouens het was fundamenteel anders. 601 00:30:10,720 --> 00:30:12,770 Want aan die begin, almal van julle het opgestaan. 602 00:30:12,770 --> 00:30:14,620 So al 729. 603 00:30:14,620 --> 00:30:17,370 En dan letterlik half van julle gaan sit. 604 00:30:17,370 --> 00:30:19,720 En daarna 'n ander die helfte van julle gaan sit. 605 00:30:19,720 --> 00:30:22,650 En daarna 'n ander die helfte van julle gaan sit. 606 00:30:22,650 --> 00:30:27,470 >> En die totale aantal kere wat jy ouens kon gesit het af is ongeveer 607 00:30:27,470 --> 00:30:31,740 agt of nege of tien totale keer, afhangende van wat ons totale telling is. 608 00:30:31,740 --> 00:30:33,300 En ons kan sorteer doen hierdie die ander kant. 609 00:30:33,300 --> 00:30:37,740 As ons het 1024 mense in die kamer, die totale aantal kere wat jy kan 610 00:30:37,740 --> 00:30:41,870 halveer 1024 mense is 10. 611 00:30:41,870 --> 00:30:43,370 >> Nou dink oor dit in die ander rigting. 612 00:30:43,370 --> 00:30:49,170 Veronderstel, belaglik, wat ons gehad het, sê 4000000000 mense in hierdie kamer, 613 00:30:49,170 --> 00:30:50,860 of 'n effens groter kamer. 614 00:30:50,860 --> 00:30:54,550 Hoeveel keer sou ons gegaan het deur middel van hierdie algoritme, so dat die helfte 615 00:30:54,550 --> 00:30:58,110 van daardie klas sit? 616 00:30:58,110 --> 00:31:03,050 Dit gaan slegs 32 sulke te neem bedrywighede, selfs in 'n klas van grootte 617 00:31:03,050 --> 00:31:03,770 4000000000. 618 00:31:03,770 --> 00:31:04,055 Hoekom? 619 00:31:04,055 --> 00:31:06,980 Omdat 4000000000 gaan na twee miljard, gaan aan een miljoen, gaan aan 620 00:31:06,980 --> 00:31:09,925 500000000, gaan na 250 miljoen, dot, dot, dot. 621 00:31:09,925 --> 00:31:14,940 Ek kan dit net doen afdeling sowat 32 keer, op watter punt, almal behalwe 622 00:31:14,940 --> 00:31:17,820 een persoon sal gelaat word staan. 623 00:31:17,820 --> 00:31:21,590 >> En dit is ook 'n soort van 'n kragtige idee dat hoe meer sal ons probeer om 624 00:31:21,590 --> 00:31:24,690 hefboom in hierdie kursus, en in ontwikkeling en rekenaarwetenskap meer 625 00:31:24,690 --> 00:31:29,400 in die algemeen, hierdie kieme van 'n idee met wat kan ons dan probleme op te los baie, 626 00:31:29,400 --> 00:31:31,130 veel meer kragtig. 627 00:31:31,130 --> 00:31:34,610 So het ons begin eenvoudig met daardie pseudokode en 'n man in 'n kamer, maar 628 00:31:34,610 --> 00:31:38,205 nou met 'n hele kamer vol mense het ons gedoen fundamenteel beter. 629 00:31:38,205 --> 00:31:41,460 >> Wel, laat ons nou die oorgang van pseudokode tot 'n werklike kode. 630 00:31:41,460 --> 00:31:44,200 Hierdie taal wat jy oor om te sien gebeur genoem te word nie JavaScript, en 631 00:31:44,200 --> 00:31:46,190 Ons sal terugkeer na hierdie rigting semester se einde. 632 00:31:46,190 --> 00:31:49,960 Dit is 'n programmeertaal wat jy gebruik om webtuistes en ander so te maak 633 00:31:49,960 --> 00:31:51,360 sagteware hierdie dae. 634 00:31:51,360 --> 00:31:54,890 En ons het dit gebruik het, te danke aan 'n vriend van ons by Stanford, te enkodeer 635 00:31:54,890 --> 00:31:56,630 'n paar verborge inligting hier. 636 00:31:56,630 --> 00:31:59,500 Dit is die kuns van steganografie, om so te praat, waar jy kan wegsteek 637 00:31:59,500 --> 00:32:03,990 inligting in wat andersins blyk te 'n geraas of 'n heeltemal ander 638 00:32:03,990 --> 00:32:05,220 beeld geheel en al. 639 00:32:05,220 --> 00:32:10,120 Maar is ingesluit in hierdie spesifieke beeld is inderdaad 'n geheime boodskap van spesies. 640 00:32:10,120 --> 00:32:12,950 >> So laat my gaan voort en trek dieselfde beeld hier, hierdie 641 00:32:12,950 --> 00:32:14,270 keer in 'n webblaaier. 642 00:32:14,270 --> 00:32:17,710 En ek gaan my hand te beweeg na 'n paar van die besonderhede vir vandag, veral 643 00:32:17,710 --> 00:32:21,780 Vir dié van julle wat dit lyk soos nie net JavaScript maar Grieks, as 'n 644 00:32:21,780 --> 00:32:23,930 heeltemal onbekende taal. 645 00:32:23,930 --> 00:32:26,190 Maar dit is 'n voorbeeld van 'n programmeertaal. 646 00:32:26,190 --> 00:32:30,660 >> En vir nou, neem op die geloof wat die eerste reël van die kode - 647 00:32:30,660 --> 00:32:32,470 en deur die kode, het ek net beteken teks. 648 00:32:32,470 --> 00:32:35,660 Teks wat ek letterlik kon getik het in Microsoft Word, as ek die 649 00:32:35,660 --> 00:32:37,630 regte sagteware om dan iets te doen met dit. 650 00:32:37,630 --> 00:32:42,120 Programmering bron kode, ontwikkeling kode, is eintlik net die teks, en dit 651 00:32:42,120 --> 00:32:45,420 lyk anders wat gebaseer is op die taal wat jy gebruik, nie in teenstelling met Engels en 652 00:32:45,420 --> 00:32:49,200 Spaans en Russies almal anders lyk wanneer jy tik op jou sleutelbord. 653 00:32:49,200 --> 00:32:53,520 >> So die eerste lyn, want nou neem geloof, maak net 'n grafiese uit die 654 00:32:53,520 --> 00:32:56,160 internet, wat lawaaierige grafiese Ons het nou net gesien het. 655 00:32:56,160 --> 00:32:59,900 Hierdie volgende reël hier is 'n voorbeeld van 'n lus, en ons eintlik sien dat dieselfde 656 00:32:59,900 --> 00:33:01,130 jargon in die TED video. 657 00:33:01,130 --> 00:33:03,750 'N lus is iets wat weer gebeur en weer, en selfs al is dit 658 00:33:03,750 --> 00:33:08,440 absoluut lyk kripties, met die navraag vir, en 'n paar hakies, en 659 00:33:08,440 --> 00:33:09,510 sommige kommapunte. 660 00:33:09,510 --> 00:33:13,070 Ons kom terug na wat voor lank, maar dat lus daar is in wese 661 00:33:13,070 --> 00:33:17,310 vertel van die program, Itereer oor die hele van daardie lawaaierige kolle, van links na 662 00:33:17,310 --> 00:33:18,980 regs, bo na onder. 663 00:33:18,980 --> 00:33:21,260 >> Want aan die einde van die dag, 'n beeld soos hierdie - en jy kan eintlik 664 00:33:21,260 --> 00:33:22,860 soort van sien dit op hierdie projektor - 665 00:33:22,860 --> 00:33:25,280 is eintlik net 'n rooster van punte. 666 00:33:25,280 --> 00:33:29,730 So ons kan identifiseer elk van die punte deur 'n koördinaatstelsel, x, y, en met hierdie 667 00:33:29,730 --> 00:33:33,890 program, kan ons nou begin om te om iets te doen aan diegene kolle. 668 00:33:33,890 --> 00:33:37,540 >> So wat ek gaan om voort te gaan hier en nie, is ek gaan 'n paar veranderinge aan te bring. 669 00:33:37,540 --> 00:33:41,000 Eerste Ek gaan om voort te gaan en ontslae te raak van al wat groen en blou 670 00:33:41,000 --> 00:33:43,520 geraas, en ek gaan om voort te gaan en tik die volgende 671 00:33:43,520 --> 00:33:45,710 weliswaar kriptiese sintaksis. 672 00:33:45,710 --> 00:33:48,020 im vir die beeld. 673 00:33:48,020 --> 00:33:53,380 stel blou op plek x, komma, plek y, na 0. 674 00:33:53,380 --> 00:33:55,610 Met ander woorde, ek wil net draai af al die blou 675 00:33:55,610 --> 00:33:56,920 punte in die foto. 676 00:33:56,920 --> 00:33:59,800 >> Ek gaan om voort te gaan nou en klik hierdie Run / Save-knoppie, en jy sal 677 00:33:59,800 --> 00:34:02,850 kennisgewing aan die regterkant, die gevolglike beeld verskyn. 678 00:34:02,850 --> 00:34:06,120 Nou is sy super groen, maar dit is nie verbasend nie, want ek het letterlik 679 00:34:06,120 --> 00:34:11,070 af, deur die maak van 'n 1 'n 0, al die blou in die foto. 680 00:34:11,070 --> 00:34:12,540 >> Wel, nou kom ons doen dit 'n bietjie meer. 681 00:34:12,540 --> 00:34:16,989 im vir die beeld, dot setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 En dit beteken dat net iteraat van links na regs en dan bo tot onder. 683 00:34:20,659 --> 00:34:23,520 Draai dit af met 'n waarde van 0, as well. 684 00:34:23,520 --> 00:34:24,750 Red. 685 00:34:24,750 --> 00:34:28,100 En op die projektor, kan jy nie eintlik regtig iets sien nie. 686 00:34:28,100 --> 00:34:31,380 >> Op my laptop skerm, as ek loer in net op die regte manier, kan ek sien 'n bietjie van 'n 687 00:34:31,380 --> 00:34:33,300 beeld, want hulle is nog steeds 'n paar rooi in daar. 688 00:34:33,300 --> 00:34:35,540 As jy al ooit gehoor van die afkorting RGB - 689 00:34:35,540 --> 00:34:36,830 rooi, groen, blou - 690 00:34:36,830 --> 00:34:39,110 dit verwys na die samestelling van 'n beeld met behulp van 691 00:34:39,110 --> 00:34:40,230 net die drie kleure. 692 00:34:40,230 --> 00:34:43,159 En nou het ons weggegooi al die groen, al die blou, maar 693 00:34:43,159 --> 00:34:44,500 daar is nie veel rooi. 694 00:34:44,500 --> 00:34:45,920 >> So laat my crank op die rooi. 695 00:34:45,920 --> 00:34:47,070 Hoe kan ek dit doen? 696 00:34:47,070 --> 00:34:49,300 Wel, die eerste, ek gaan om te vra hierdie program 'n vraag. 697 00:34:49,300 --> 00:34:52,030 Ek gaan om voort te gaan en laat ons noem dit 'n veranderlike, net soos in algebra. 698 00:34:52,030 --> 00:34:54,060 Jy kan x of y of z. 699 00:34:54,060 --> 00:34:57,230 Ek gaan 'n veranderlike te verklaar en sê, sit in hierdie veranderlike, 700 00:34:57,230 --> 00:35:02,790 tydelik, die waarde van die beelde getRed waarde by x, y. 701 00:35:02,790 --> 00:35:05,870 >> En weer, sal ons terug te kom na al van hierdie detail in die toekoms. 702 00:35:05,870 --> 00:35:10,630 Maar vir nou, net om op die geloof wat hierdie lyn is vra die program, wat 703 00:35:10,630 --> 00:35:12,740 is die rooi waarde op x, y? 704 00:35:12,740 --> 00:35:14,450 Op daardie spesifieke dot? 705 00:35:14,450 --> 00:35:15,710 >> Dan gaan ek om iets te doen om dit te. 706 00:35:15,710 --> 00:35:21,100 Dan gaan ek beeld dot stel rooi te doen by x, y, y, maar hierdie keer gaan ek 707 00:35:21,100 --> 00:35:24,760 versterk dit deur dit te doen rooi tye, kom ons sê, 10. 708 00:35:24,760 --> 00:35:26,870 So verhoog dit met 'n faktor van 10. 709 00:35:26,870 --> 00:35:29,880 Laat my uitzoem nou en kliek kon loop / Save. 710 00:35:29,880 --> 00:35:36,430 En siedaar, wat daar was die hele tyd, selfs al is ons menslike oë 711 00:35:36,430 --> 00:35:37,900 kon nie heeltemal sien. 712 00:35:37,900 --> 00:35:41,470 >> So weereens, dit is nou die werklike kode, 'n voorbeeld van 'n taal wat ons sal kom 713 00:35:41,470 --> 00:35:42,770 terug na voor lank. 714 00:35:42,770 --> 00:35:46,670 Maar besef, veral dié van julle met geen sodanige ondervinding, is dit baie 715 00:35:46,670 --> 00:35:50,280 gou dat ons onsself sal wees kode skryf soos dit daar. 716 00:35:50,280 --> 00:35:54,520 In werklikheid, 'n instrument waarmee jy al ietwat vertroud is, miskien, is CS50 se 717 00:35:54,520 --> 00:35:57,330 eie koers-shopping instrument, wat eintlik weer begin hierdie somer deur sommige 718 00:35:57,330 --> 00:36:01,070 van CS50 se eie oud-studente, nou draai TFS. 719 00:36:01,070 --> 00:36:04,740 >> So gebeur dit na 'n webwerf gebou word in 'n taal, die sogenaamde PHP. 720 00:36:04,740 --> 00:36:08,510 Dit maak gebruik van 'n databasis genaamd MySQL, dinge waarmee ons ons hande 721 00:36:08,510 --> 00:36:10,190 vuil later in die semester. 722 00:36:10,190 --> 00:36:14,140 Maar glo dit of nie, selfs iets soos dit verminder uiteindelik tot die 723 00:36:14,140 --> 00:36:19,480 eenvoudigste van lusse en voorwaardes en takke, soos dié wat ons gesien het net 'n 724 00:36:19,480 --> 00:36:21,530 oomblik gelede in die TED video. 725 00:36:21,530 --> 00:36:25,180 >> Wat ek gedink ek wil doen, is nou deel nie net iets wat ons die personeel het 726 00:36:25,180 --> 00:36:28,010 vir die kampus nie, maar eerder iets 'n voormalige student - drie 727 00:36:28,010 --> 00:36:29,080 studente, in werklikheid - 728 00:36:29,080 --> 00:36:33,950 het die afgelope jaar, Sierra, Daniël en Sam, die laaste van hulle het geen vorige 729 00:36:33,950 --> 00:36:36,370 programing ervaring toe hy CS50. 730 00:36:36,370 --> 00:36:39,950 En vir hul finale projek, het hulle uitgestal word, by die CS50 Fair, 'n 731 00:36:39,950 --> 00:36:43,720 aansoek genoem wrdly, wat 'n web-gebaseerde program waarvoor hulle gemaak 732 00:36:43,720 --> 00:36:47,670 hierdie video wat ek gedink ek wil deel te gee jou 'n gevoel van net wat 733 00:36:47,670 --> 00:36:49,280 moontlik deur die term se einde. 734 00:36:49,280 --> 00:37:57,170 >> [Speel van musiek] 735 00:37:57,170 --> 00:38:00,570 >> David Malan: Dit is van Week Zero om Week 12 die afgelope jaar. 736 00:38:00,570 --> 00:38:05,470 >> [Applous] 737 00:38:05,470 --> 00:38:09,520 >> David Malan: As 'n teaser, ook werklik aan te wakker om jou eetlus is na wat 738 00:38:09,520 --> 00:38:14,580 moontlik is, kan jy reeds gesien het, of dalk binnekort sien, market.cs50.net, 'n 739 00:38:14,580 --> 00:38:17,710 Nuwe instrument dat die kursus se span het is besig om op, hierdie keer in 740 00:38:17,710 --> 00:38:21,530 samewerking met Harvard Student Agentskappe, soos dat die begin van die jaar 741 00:38:21,530 --> 00:38:24,980 en voortgesette hopelik in hierdie komende somer sal jy het 'n standaard 742 00:38:24,980 --> 00:38:27,890 geleentheid om op kampus te koop en verkoop dinge van belang is vir jou. 743 00:38:27,890 --> 00:38:32,220 En met die vennootskap deur HSA, sal jy ook in staat wees om items af te laai 744 00:38:32,220 --> 00:38:35,950 in een van HSA se fisiese winkels op 'n sekere punt in die toekoms, so as te 745 00:38:35,950 --> 00:38:39,150 volmag dinge, veral as jy gradueer en nie noodwendig wil 746 00:38:39,150 --> 00:38:44,110 gooi dinge, maar eintlik betaal om dit stuur na mense wat kan volg 747 00:38:44,110 --> 00:38:45,270 hier op die kampus. 748 00:38:45,270 --> 00:38:46,740 So meer oor dit te kom. 749 00:38:46,740 --> 00:38:49,830 >> Maar 'n bietjie meer konkrete, 'n instrument wat kom uit CS50 in onlangse 750 00:38:49,830 --> 00:38:52,760 jaar, met wat sommige van julle kan wees bekende en ander van julle kan wees 751 00:38:52,760 --> 00:38:57,940 googlen nou, op CS50.net/2x, sal jy 'n skakel na 'n Chrome uitbreiding 752 00:38:57,940 --> 00:39:01,250 wat demonstratiewe van hoe jy kan gebruik JavaScript, wat dieselfde taal wat ons 753 00:39:01,250 --> 00:39:06,660 gebruik word met die Eiffel-toring 'n oomblik gelede 2x afspeel spoed te implementeer 754 00:39:06,660 --> 00:39:09,000 vir alle Harvard iSites videos. 755 00:39:09,000 --> 00:39:11,880 Dit is iets wat gebou in CS50 se eie video-speler. 756 00:39:11,880 --> 00:39:14,870 Maar dit is ook aan as jy begin grawe in die bron-kode, wat ons 757 00:39:14,870 --> 00:39:18,840 gelukkig beskikbaar te maak, sal jy sien hoe jy kan selfs probleme op te los soos dit, 758 00:39:18,840 --> 00:39:23,180 versnel widgets in webwerwe met wat jy reeds goed vertroud is. 759 00:39:23,180 --> 00:39:26,630 >> So 'n woord nou op die baan en verwagtinge en wat nog voorlê. 760 00:39:26,630 --> 00:39:29,445 In die algemeen, ons sal wel hier bymekaar op Maandae en Woensdae - al 761 00:39:29,445 --> 00:39:31,490 hierdie Vrydag, sal ons bymekaar omdat van Shopping Week - 762 00:39:31,490 --> 00:39:34,640 1:00-14:00, alhoewel soms tot 02:30. 763 00:39:34,640 --> 00:39:38,700 Gegee dat jy dus kan of wil het 'n paar klas te neem om 02:00 764 00:39:38,700 --> 00:39:42,480 af, of selfs voor, besef nie die Natuurlik is ondersteunend van wat genoem 765 00:39:42,480 --> 00:39:45,900 gelyktydige registrasie, waardeur ons sal ondersteuning van 'n petisie aan die Ad Raad en 766 00:39:45,900 --> 00:39:49,400 jou inwoner dekane namens u indien jy het 'n konflik iewers in hierdie 767 00:39:49,400 --> 00:39:50,790 1:00-02:30 reeks. 768 00:39:50,790 --> 00:39:54,110 Kop aan dat URL aanlyn verdere besonderhede. 769 00:39:54,110 --> 00:39:57,750 >> Maar in terme van die ondersteuning struktuur wat kenmerkend CS50, vir studente 770 00:39:57,750 --> 00:40:01,750 meer en minder gemaklik gelyk, ons bied duidelike spore van artikels. 771 00:40:01,750 --> 00:40:04,730 En dit is 'n paar weke af, maar kort voor lank, sal jy gevra word om te 772 00:40:04,730 --> 00:40:05,770 jou comfort vlak. 773 00:40:05,770 --> 00:40:08,590 Is jy onder diegene wat minder gemaklik, meer gemaklik, of 774 00:40:08,590 --> 00:40:10,520 iewers tussen in? 775 00:40:10,520 --> 00:40:13,150 >> En ons sal drie afsonderlike spore wat voorsiening maak vir 776 00:40:13,150 --> 00:40:14,470 juis daardie gehore. 777 00:40:14,470 --> 00:40:17,900 So op geen punt in die kwartaal moet jy selfs voel soos jy meeding 778 00:40:17,900 --> 00:40:21,390 teen enige student met meer min of agtergrond as jy. 779 00:40:21,390 --> 00:40:24,160 Inderdaad, is die kursus bedoel om te wees baie meer samewerking en veel 780 00:40:24,160 --> 00:40:25,650 meer oop as dit. 781 00:40:25,650 --> 00:40:29,030 >> In terme van die probleem stelle, sal jy vind ook dat bykomend tot die 782 00:40:29,030 --> 00:40:32,130 standaard uitgawe van elke week se probleem stel, daar is dikwels 'n "hacker 783 00:40:32,130 --> 00:40:37,010 uitgawe "wat bedoel is om te word geteiken op die 5% tot 10% of so van die 784 00:40:37,010 --> 00:40:40,270 demografiese wie is inderdaad onder dié meer gemaklik en wil graag meer 785 00:40:40,270 --> 00:40:43,960 van 'n uitdaging as die standaard uitgawe van die pset verwag. 786 00:40:43,960 --> 00:40:46,390 Meer besonderhede oor dié wat vir gevind in die leerplan. 787 00:40:46,390 --> 00:40:49,430 >> Maar ook daar gevind kan word besonderhede oor die kursusse laat dae. 788 00:40:49,430 --> 00:40:51,570 Tipies probleem sit is die gevolg op Donderdae. 789 00:40:51,570 --> 00:40:55,550 Jy kan egter verleng baie van jou deadlines hierdie val uit Donderdae om 790 00:40:55,550 --> 00:41:00,010 Vrydae net deur ons te ontmoet halfpad, om so te praat, beantwoord 'n paar warm-up 791 00:41:00,010 --> 00:41:03,370 vrae in 'n paar van die week se probleem stelle, wat outomaties 792 00:41:03,370 --> 00:41:05,710 dan gee jy 'n ekstra 24 uur. 793 00:41:05,710 --> 00:41:09,120 Ons sal ook daal jou laagste telling, soos per die leerplan. 794 00:41:09,120 --> 00:41:12,170 >> Om jou 'n gevoel van wat die probleem stelle is - want dit is inderdaad 795 00:41:12,170 --> 00:41:15,120 die kursus se probleem sit dat uiteindelik byna elke definieer 796 00:41:15,120 --> 00:41:18,760 student se ervaring, meer as lesings, meer as afdelings, meer 797 00:41:18,760 --> 00:41:21,230 so as die meeste ander aspek van die kursus. 798 00:41:21,230 --> 00:41:25,140 Verlede jaar, byvoorbeeld, het ons begin, soos Ons sal hierdie jaar begin, met krap. 799 00:41:25,140 --> 00:41:29,150 Veral hierdie Vrydag, sal ons gebruik, net een dag se tyd, 'n grafiese 800 00:41:29,150 --> 00:41:32,260 programmeertaal, waarmee ons sal begin ontwikkeling deur te sleep en 801 00:41:32,260 --> 00:41:37,580 val stukke van die legkaart dat slegs vergader fisies as dit sin maak 802 00:41:37,580 --> 00:41:38,990 om dit logies te doen. 803 00:41:38,990 --> 00:41:43,460 >> Volgende week, sal ons vinnig oorgang na C, 'n redelik oud, maar baie klein en 804 00:41:43,460 --> 00:41:48,510 eenvoudige taal wat jou sal toelaat om ons te werklik gaan 0-60 oor die verloop 805 00:41:48,510 --> 00:41:52,290 van net 'n paar weke, en dan parlay diegene wat dieselfde vaardighede en kennis van 806 00:41:52,290 --> 00:41:56,160 om basiese konstrukte in hoër-vlak tale soos PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, en nog ander nog steeds. 808 00:41:58,240 --> 00:42:02,560 >> Verlede jaar, die derde pset in die loop was dié van kriptografie, 'n 809 00:42:02,560 --> 00:42:06,380 domein-spesifieke aansoek waardeur ons studente uitgedaag om enige te implementeer 810 00:42:06,380 --> 00:42:11,140 aantal karakters, programme waarmee te klouter of ontleden inligting, 811 00:42:11,140 --> 00:42:11,880 om dit te enkripteer. 812 00:42:11,880 --> 00:42:16,300 Vir die hacker uitgawe, daarenteen, ons het die hacker studente 'n lêer 813 00:42:16,300 --> 00:42:19,900 van 'n standaard Unix rekenaar met gebruikers name en wagwoorde, 814 00:42:19,900 --> 00:42:22,740 die laaste wat was geïnkripteer, en ons uitgedaag om die hacker 815 00:42:22,740 --> 00:42:26,850 studente te decrypt, as die beste wat hulle kon, diegene wagwoorde, nog steeds op daardie 816 00:42:26,850 --> 00:42:27,770 dieselfde domein. 817 00:42:27,770 --> 00:42:30,580 >> Geskarrel, 'n spel met 'n paar wat van julle is dalk bekend. 818 00:42:30,580 --> 00:42:34,410 'N forensiese stuk, waar ons vra studente data wat was om te herstel 819 00:42:34,410 --> 00:42:38,530 andersins verwyder uit my eie digitale kamera se kompakte flits kaart, deur 820 00:42:38,530 --> 00:42:42,740 eintlik skryf sagteware om uit te vind, Waar was die nulle en ene in 821 00:42:42,740 --> 00:42:46,850 dat die digitale kamera wat voorheen saamgestel uit 'n JPEG prent? 822 00:42:46,850 --> 00:42:49,710 >> 'N uitdaging van die spesies verlede jaar met die skryf van die vinnigste 823 00:42:49,710 --> 00:42:53,160 speltoetser moontlik meeding teen vriende en klasmaats as 824 00:42:53,160 --> 00:42:53,860 hulle wil. 825 00:42:53,860 --> 00:42:56,330 Implementering van Huff 'n pofadder, 'n kompressie-program. 826 00:42:56,330 --> 00:43:01,930 En dan eindig die semester met CS50 Finansies, 'n web-gebaseerde program met 827 00:43:01,930 --> 00:43:06,570 wat jy 'n Etrade-agtige webwerf te koop en verkoop aandele, so te 828 00:43:06,570 --> 00:43:09,860 praat, deur eintlik trek byna real-time kwotasies Yahoo! 829 00:43:09,860 --> 00:43:10,450 Finansier. 830 00:43:10,450 --> 00:43:13,590 >> Wat ons nie gedoen het nie verlede jaar was een probleem stel wat oorbly 831 00:43:13,590 --> 00:43:14,810 nietemin 'n gunsteling. 832 00:43:14,810 --> 00:43:18,400 As jy nog nooit weg te shuttle.cs50.net, sien jy 'n gebruiker 833 00:43:18,400 --> 00:43:19,670 koppeling tussen 'n bietjie soos hierdie. 834 00:43:19,670 --> 00:43:23,530 Maar twee jaar gelede, het die klas geïmplementeer word, met behulp van Google Maps en die 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in en 'n bietjie van vaardig met die ry om die kampus, 836 00:43:28,570 --> 00:43:33,290 sodat die doel van die spel was, as jy kan sien 'n paar van die gesigte, 837 00:43:33,290 --> 00:43:37,530 is om te ry om die kampus op soek na personeel, onderrig maats en geoktrooieerde rekenmeesters, en 838 00:43:37,530 --> 00:43:40,080 wanneer jy dit doen, om hulle op jou shuttle bus. 839 00:43:40,080 --> 00:43:44,035 Nie een van hulle eintlik lyk om hier te wees, so ons gaan 'n oneerlik kode in te voer. 840 00:43:44,035 --> 00:43:47,150 >> [Gelag] 841 00:43:47,150 --> 00:43:48,430 >> David Malan: Daar gaan ons. 842 00:43:48,430 --> 00:43:49,240 Alle regte. 843 00:43:49,240 --> 00:43:51,750 En hier is nou die personeel gedraai soos oral op kampus. 844 00:43:51,750 --> 00:43:54,530 En soos jy kan sien, op die regterkant kant van die skerm, die bus 845 00:43:54,530 --> 00:43:55,510 het leë sitplekke. 846 00:43:55,510 --> 00:43:59,000 En die doel was om die te skryf kode waarmee dit na te boots 847 00:43:59,000 --> 00:44:01,790 ry en optel en laat val af van die passasiers. 848 00:44:01,790 --> 00:44:04,960 Dat 'n mens ook, met behulp van 'n taal genoem JavaScript. 849 00:44:04,960 --> 00:44:10,030 So besef dat programme soos wat wees op ons dieselfde trajek hierdie 850 00:44:10,030 --> 00:44:10,910 jaar, as well. 851 00:44:10,910 --> 00:44:13,640 >> In terme, nou, van bykomende ondersteuning, ons het kantoorure. 852 00:44:13,640 --> 00:44:16,520 As jy dalk gesien het in jou eie huis eetsaal of in Annenberg, 853 00:44:16,520 --> 00:44:19,280 sal ons in die huis eet sale vier nagte 'n week - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot en Annenberg hierdie jaar, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 En wat ons gedink het ons wil hierdie jaar te doen is iets wat 'n bietjie anders. 856 00:44:26,830 --> 00:44:29,650 >> As jy gehoor dreunings verlede jaar dat dit was 'n bietjie te spanningsvol, hierdie 857 00:44:29,650 --> 00:44:32,800 jaar se kantoorure, as ons sal beskryf volgende week, sal meer organiese, 858 00:44:32,800 --> 00:44:36,900 waardeur by aankoms, sal jy gestuur na 'n spesifieke tafel 859 00:44:36,900 --> 00:44:39,860 waar verskeie personeellede wag, en ons sal dit doen dinge baie meer 860 00:44:39,860 --> 00:44:40,440 organies. 861 00:44:40,440 --> 00:44:43,740 Geen meer ry nie, nie meer iPad, maar eerder meer intieme 862 00:44:43,740 --> 00:44:47,300 gesprekke rondom 'n tafel van net agt of so studente, sodat ons 863 00:44:47,300 --> 00:44:50,880 benader die gevoel van wat andersins sou 'n veel kleiner klas wees. 864 00:44:50,880 --> 00:44:54,120 >> Ons bied, asook, hierdie dinge is ons genoem ipv, video verfilm in 865 00:44:54,120 --> 00:44:57,330 bevorder deur een van die kursus se onderrig maats Zamyla, waarin sy 866 00:44:57,330 --> 00:45:00,690 stap vir stap deur die week se probleem stelle, bied wenke en truuks vir die 867 00:45:00,690 --> 00:45:02,640 uitdagings wat voorlê. 868 00:45:02,640 --> 00:45:06,230 En omgekeerd, na die probleem stelle is as gevolg van hierdie jaar, sal ons ook vry 869 00:45:06,230 --> 00:45:09,100 bietjie knipsels noem nadoodse ondersoeke wat eintlik loop jy deur 870 00:45:09,100 --> 00:45:13,630 verteenwoordiger oplossings, beide goed en sleg, via wat jy kan aflei hoe 871 00:45:13,630 --> 00:45:17,550 jy kan hê of behoort te hê geïmplementeer om jou eie oplossing. 872 00:45:17,550 --> 00:45:20,500 >> En wat ons sal bied vir die eerste keer hierdie jaar so goed, veral 873 00:45:20,500 --> 00:45:23,420 vir studente wat hulself maak van die kursus se ander 874 00:45:23,420 --> 00:45:28,580 hulpbronne, maar tog sukkel al te veel, die loop 875 00:45:28,580 --> 00:45:33,030 self sal paar diegene studente, soos hulpbronne dit toelaat, met tutors sodat 876 00:45:33,030 --> 00:45:35,840 jy het 'n baie meer intieme geleentheid as huis eetsale 877 00:45:35,840 --> 00:45:38,700 voorsiening te maak vir een-tot-een-hulp. 878 00:45:38,700 --> 00:45:42,780 >> Nou 'n finale blik op 'n sekere van die einde speletjies in sig nie. 879 00:45:42,780 --> 00:45:44,580 Jy mag dalk vertroud wees met die CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Wel, kom hierdie Desember, van 08:00 PM om 07:00, by die begin van 881 00:45:48,120 --> 00:45:51,410 Lees tydperk sal 'n geleentheid wees in te samel met klasmaats - 882 00:45:51,410 --> 00:45:53,130 dit sou wees om 21:00 - 883 00:45:53,130 --> 00:45:56,550 waartydens jy duik in jou finale projek se implementering saam 884 00:45:56,550 --> 00:45:59,910 klasmaats, vriende, en voedsel. 885 00:45:59,910 --> 00:46:03,680 Dit sou wees om 01:00, wanneer die eerste groep van voedsel aangekom het. 886 00:46:03,680 --> 00:46:08,470 En dit is omtrent 04:00 wat betrokke jaar by die CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Maar die ware hoogtepunt van die kursus is bedoel om die CS50 Fair, 'n kampuswye 888 00:46:12,000 --> 00:46:15,790 uitstalling van jou eie finale projekte, wat familie en vriende is almal 889 00:46:15,790 --> 00:46:18,730 genooi, as ons werwers en ons vriende uit die bedryf. 890 00:46:18,730 --> 00:46:22,170 Dit, byvoorbeeld, is 'n blik op die 2000-plus mense wat bygewoon het 891 00:46:22,170 --> 00:46:23,160 verlede jaar. 892 00:46:23,160 --> 00:46:27,180 Uitdrukkings soos hierdie is nie ongewoon nie, en net so doen jou 893 00:46:27,180 --> 00:46:29,660 klasmaats verlustig in dinge jy bereik het. 894 00:46:29,660 --> 00:46:33,170 >> En eintlik, in die rigting van die einde, ons het 'n begin-van-kwartaal geval, as well. 895 00:46:33,170 --> 00:46:37,400 As dinge soos hierdie 'n beroep op jou, of jy ten minste nuuskierig wat 896 00:46:37,400 --> 00:46:41,590 Jy moet dan weet dat 'n nuwe tradisie van die Natuurlik is genoem CS50 legkaart Day. 897 00:46:41,590 --> 00:46:45,710 En dit is 'n paar van die ingestel jaar terug om werklik sein na die kampus 898 00:46:45,710 --> 00:46:48,930 dat die rekenaar wetenskap is nie oor programmering, en dit is beslis nie 899 00:46:48,930 --> 00:46:51,960 oor die aanvaarding van slegs daardie studente oor vorige ervaring het. 900 00:46:51,960 --> 00:46:54,200 Dit is regtig oor die probleem op te los meer in die algemeen. 901 00:46:54,200 --> 00:46:57,360 >> En so legkaart Day, oor die afgelope paar jaar nou, het ontwikkel in 'n mooi 902 00:46:57,360 --> 00:47:00,500 vennootskap met ons vriende by Facebook, waardeur daar sal heerlik wees 903 00:47:00,500 --> 00:47:04,830 pryse en pizza oor die rivier by die i-laboratorium eerskomende Saterdag. 904 00:47:04,830 --> 00:47:09,180 Kop aan dat URL met twee of drie vriende as jy wil graag om deel te neem 905 00:47:09,180 --> 00:47:10,830 in hierdie nuwe tradisie. 906 00:47:10,830 --> 00:47:14,180 >> So ek wil graag vra dat jy een ding in gedagte, en ons het net 'n perfekte 907 00:47:14,180 --> 00:47:17,070 twee minute clip waarop te sluit vandag. 908 00:47:17,070 --> 00:47:19,640 73% is die nommer om te onthou. 909 00:47:19,640 --> 00:47:23,900 Koek, sal ook wag jy buite hierdie dwars as ons verdaag in net 'n 910 00:47:23,900 --> 00:47:26,710 paar oomblikke, wat is 'n tradisie van die kursus, as well. 911 00:47:26,710 --> 00:47:29,860 Maar dit is die sleutel aanhaling uit die Natuurlik se leerplan in gedagte te hou. 912 00:47:29,860 --> 00:47:32,820 Wat belangrik is, uiteindelik in hierdie kursus is nie soseer waar jy beland 913 00:47:32,820 --> 00:47:36,580 relatief tot jou klasmaats maar waar jy, in Week 12, beland met betrekking tot 914 00:47:36,580 --> 00:47:37,960 jouself in Week 0. 915 00:47:37,960 --> 00:47:43,670 >> Maar die blik dat ons jou sal laat met vandag hier is die laaste een hier 916 00:47:43,670 --> 00:47:47,580 deur ons dieselfde Daniel, wat het die wrdly video net 'n oomblik gelede. 917 00:47:47,580 --> 00:47:50,000 Ek los jou met hierdie blik van wat voorlê. 918 00:47:50,000 --> 00:47:53,360 En as ons dit doen, as ons kon CS50 personeel van die voorkant van die kamer 919 00:47:53,360 --> 00:47:57,280 om te kom op tot op die stadium al te verf die meer van 'n visuele prentjie te 920 00:47:57,280 --> 00:47:59,100 wat vir jou wag vanjaar - 921 00:47:59,100 --> 00:48:00,350 kry ongemaklik. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Ons sal afsluit met hierdie hier op die skerm. 924 00:48:05,188 --> 00:48:18,634 >> [Speel van musiek] 925 00:48:18,634 --> 00:48:21,124 >> David Malan: Dit is CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIEK - mat & Kim, "dit is in orde"] 927 00:50:00,226 --> 00:50:03,245 >> Spreker 1: Ek is mal CS50 meer as katte. 928 00:50:03,245 --> 00:50:06,030 >> Spreker 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Gelag] 930 00:50:06,990 --> 00:50:08,140 >> David Malan: Dit is dan, is CS50. 931 00:50:08,140 --> 00:50:10,050 Ons sal sien dat jy op Vrydag. 932 00:50:10,050 --> 00:50:13,370 >> [Applous en die gejuig] 933 00:50:13,370 --> 00:50:17,540 >> NARRATOR: By die volgende CS50, 'n verhoog demo gaan nie soos beplan. 934 00:50:17,540 --> 00:50:19,080 >> David Malan: Ons wil Mike te vind Smith in die telefoon boek. 935 00:50:19,080 --> 00:50:20,380 Wel, wat is jou instink? 936 00:50:20,380 --> 00:50:23,750 Ek kan rofweg spring tot in die middel van die telefoon boek, oë neer, sien dat 937 00:50:23,750 --> 00:50:26,830 Ek is by M, en ek weet nou dat Mike Smith is nie aan die linkerkant. 938 00:50:26,830 --> 00:50:27,840 Hy moet na die regterkant. 939 00:50:27,840 --> 00:50:30,515 En so op hierdie punt, ons kan letterlik skeur - 940 00:50:30,515 --> 00:50:33,300 Op hierdie punt, ons kan letterlik skeur - 941 00:50:33,300 --> 00:50:36,490 Op hierdie punt, ons kan figuurlik skeur die telefoon boek in die helfte. 942 00:50:36,490 --> 00:50:38,954 >> [Ukelele getokkel]