1 00:00:00,000 --> 00:00:03,440 >> [Speel van musiek] 2 00:00:03,440 --> 00:01:57,217 3 00:01:57,217 --> 00:02:00,710 >> [Applous] 4 00:02:00,710 --> 00:02:05,700 5 00:02:05,700 --> 00:02:09,669 >> David J. Malan Dit is CS50, Harvard Universiteit se bekendstelling 6 00:02:09,669 --> 00:02:12,370 die intellektuele ondernemings van rekenaarwetenskap 7 00:02:12,370 --> 00:02:14,180 en die kuns van die ontwikkeling. 8 00:02:14,180 --> 00:02:17,530 Nou as jy een van diegene wat elke jaar hier sit 9 00:02:17,530 --> 00:02:21,450 met 'n bietjie van die senuwees in jou gedagtes, soos dat jy dink nie jy hier hoort, 10 00:02:21,450 --> 00:02:24,270 jy dink dat die meeste iemand sit rondom jou 11 00:02:24,270 --> 00:02:27,730 weet baie meer as wat jy, is inderdaad meer gemaklik as jy op die rekenaar 12 00:02:27,730 --> 00:02:30,430 wetenskap of rekenaars meer in die algemeen, besef 13 00:02:30,430 --> 00:02:36,140 dat 78% van die studente wat nou neem CS50 het geen vorige ervaring. 14 00:02:36,140 --> 00:02:39,570 >> Trouens, daar is 100 punte daar op die skerm, 78 van wat 15 00:02:39,570 --> 00:02:43,540 soliede groen, wat beteken dat jy, As jy onder die demografiese, 16 00:02:43,540 --> 00:02:46,420 is in 'n baie goeie geselskap hier op uit. 17 00:02:46,420 --> 00:02:50,320 En as jy in plaas onder die 22% van die CS50 studente wat wel doen 18 00:02:50,320 --> 00:02:53,920 het vorige ondervinding, hetsy in hoërskool of 'n ander program, 19 00:02:53,920 --> 00:02:56,430 besef dat jy ook sal uitgedaag word in die kursus. 20 00:02:56,430 --> 00:02:59,930 >> Nie net het ons verskillende spore vir studente minder gemaklik en meer 21 00:02:59,930 --> 00:03:03,789 gemaklik gelyk in afdelings, ons ook sogenaamde hacker uitgawes 22 00:03:03,789 --> 00:03:06,080 van die meeste probleem sit dat sal studente daag 23 00:03:06,080 --> 00:03:09,650 met die bykomende ondervinding soortgelyke materiaal te verken 24 00:03:09,650 --> 00:03:12,140 maar van 'n meer gesofistikeerde perspektief. 25 00:03:12,140 --> 00:03:13,900 >> Maar wat is die rekenaar wetenskap? 26 00:03:13,900 --> 00:03:17,750 Wel, uiteindelik, wat gaan saak as jy verken hierdie gebied is nie 27 00:03:17,750 --> 00:03:20,500 soveel waar jy eindig relatief tot jou klasmaats, 28 00:03:20,500 --> 00:03:25,350 Maar waar jy jouself uiteindelik in week 12 versus waar jy hier begin 29 00:03:25,350 --> 00:03:26,720 in week nul. 30 00:03:26,720 --> 00:03:31,850 Nou rekenaar goed science--, laat noem dit die wetenskap van computation-- 31 00:03:31,850 --> 00:03:35,910 waar berekening is regtig net 'n fancy manier om te sê, die neem van 'n paar insette, 32 00:03:35,910 --> 00:03:39,460 vervaardiging van sommige uitvoer, en doen deur die loop van algoritmes, 33 00:03:39,460 --> 00:03:43,700 stelle van instruksies vir die oplossing 'n probleem op die insette 34 00:03:43,700 --> 00:03:48,460 ten einde 'n uitset te produseer of oplossing waarin jy belangstel. 35 00:03:48,460 --> 00:03:51,310 >> So het ons onlangs gehad geleentheid om te reis 36 00:03:51,310 --> 00:03:53,170 Kalifornië te ontmoet met 'n alumna. 37 00:03:53,170 --> 00:03:54,650 Haar naam is Susan Susan. 38 00:03:54,650 --> 00:03:57,190 En sy wil om te praat aan jou hier op video 39 00:03:57,190 --> 00:04:01,690 om te getuig net hoe toepassing selfs net 'n voorsmakie van die rekenaar 40 00:04:01,690 --> 00:04:03,770 wetenskap aan die inleidende vlak kan wees. 41 00:04:03,770 --> 00:04:06,870 Selfs as jy nie gaan nie op na te streef rekenaarwetenskap as 'n veld, 42 00:04:06,870 --> 00:04:09,330 of selfs ingenieurswese, of steel meer algemeen, 43 00:04:09,330 --> 00:04:12,360 jy sal sien, in werklikheid, hoe om 'n sekere Natuurlik haar lewe so beïnvloed. 44 00:04:12,360 --> 00:04:16,630 En sy net het dit toe sy was 'n senior hier by Harvard College. 45 00:04:16,630 --> 00:04:19,482 >> As ons die ligte vir Susan kon verdof. 46 00:04:19,482 --> 00:04:20,690 Susan Susan: Hello, world. 47 00:04:20,690 --> 00:04:22,100 Ek is Susan Susan. 48 00:04:22,100 --> 00:04:24,110 Ek is die hoof uitvoerende beampte van YouTube. 49 00:04:24,110 --> 00:04:29,150 En ek het CS50 toe ek 'n senior by Harvard in 1990. 50 00:04:29,150 --> 00:04:31,220 Ek was eintlik 'n geskiedenis en literatuur groot. 51 00:04:31,220 --> 00:04:36,760 >> En my junior somer, Ek het besef dat ek dalk 52 00:04:36,760 --> 00:04:39,060 wou iets om te leer oor rekenaars. 53 00:04:39,060 --> 00:04:40,930 En so, ek het terug gekom. 54 00:04:40,930 --> 00:04:42,500 Ek het CS50. 55 00:04:42,500 --> 00:04:46,940 Dit was moeilik, maar dit was die mees ongelooflike klas ek geneem het. 56 00:04:46,940 --> 00:04:49,630 >> Dit verander hoe ek dink oor alles. 57 00:04:49,630 --> 00:04:55,810 En wanneer ek gegradueer van Harvard in 1990, het ek na Silicon Valley. 58 00:04:55,810 --> 00:04:57,140 En ek het 'n werk. 59 00:04:57,140 --> 00:05:00,150 En ek het gewerk in tegnologie sedertdien. 60 00:05:00,150 --> 00:05:02,650 David J. Malan Nou wat Susan het nie in hierdie video praat, 61 00:05:02,650 --> 00:05:05,340 dat dit eintlik in haar garage dat Google self was 62 00:05:05,340 --> 00:05:07,420 gestig deur Larry en Sergey. 63 00:05:07,420 --> 00:05:11,169 >> Nou het ons ook bereik uit na ons vriende by code.org, 'n organisasie wat 64 00:05:11,169 --> 00:05:13,460 oor die afgelope jaar was om mense veral 65 00:05:13,460 --> 00:05:16,520 opgewonde oor rekenaarwetenskap en ontwikkeling, in die besonder. 66 00:05:16,520 --> 00:05:20,590 Maar dit is die moeite werd om daarop te let dat ontwikkeling is nie rekenaarwetenskap per se. 67 00:05:20,590 --> 00:05:22,090 Rekenaarwetenskap is nie programmering. 68 00:05:22,090 --> 00:05:24,560 Eerder ontwikkeling is net 'n tool-- waarmee almal van julle 69 00:05:24,560 --> 00:05:27,510 sal al te goed wees vertroud met semester se end-- 70 00:05:27,510 --> 00:05:30,650 sodanig dat jy nie kan aansoek doen net om toekomstige kursusse in CS 71 00:05:30,650 --> 00:05:33,670 maar alles velde waaruit jy kom, in die geesteswetenskappe, 72 00:05:33,670 --> 00:05:36,090 sosiale wetenskappe, natuurlike wetenskap, of die wil. 73 00:05:36,090 --> 00:05:39,740 >> Inderdaad, toelaat dat 'n paar ander alumni en hul kollegas 74 00:05:39,740 --> 00:05:43,400 te praat van die toepaslikheid van die veld wat wag. 75 00:05:43,400 --> 00:05:52,340 76 00:05:52,340 --> 00:05:57,350 >> Bill Gates: Ek was 13 toe ek die eerste keer toegang tot 'n rekenaar. 77 00:05:57,350 --> 00:06:00,485 >> JACK DORSEY: My ouers gekoop het vir my 'n Macintosh in 1984 78 00:06:00,485 --> 00:06:01,640 Toe ek agt jaar oud was. 79 00:06:01,640 --> 00:06:02,990 >> Mark Zuckerberg: Ek was in die sesde graad. 80 00:06:02,990 --> 00:06:04,670 >> Spreker 1: Ek het geleer om te kode in die kollege. 81 00:06:04,670 --> 00:06:09,080 >> Ruchi SANGHVI: eerste jaar, in die eerste semester, Inleiding tot Rekenaarwetenskap. 82 00:06:09,080 --> 00:06:11,850 >> Bill Gates: Ek het 'n program wat gespeel tic-tac-toe. 83 00:06:11,850 --> 00:06:14,100 >> DREW HOUSTON: Ek dink dit was mooi nederige begin. 84 00:06:14,100 --> 00:06:16,370 Ek dink die eerste program Ek het gevra dinge soos, 85 00:06:16,370 --> 00:06:17,820 Wat is jou gunsteling kleur? 86 00:06:17,820 --> 00:06:18,696 Of hoe oud is jy? 87 00:06:18,696 --> 00:06:21,070 ELENA SILENOK: Ek het eers geleer hoe om 'n groen sirkel te maak 88 00:06:21,070 --> 00:06:23,670 en 'n rooi vierkant op die skerm verskyn. 89 00:06:23,670 --> 00:06:25,420 GABE NEWELL: Die eerste tyd wat ek eintlik moes 90 00:06:25,420 --> 00:06:27,360 iets kom en sê hallo, wêreld. 91 00:06:27,360 --> 00:06:29,710 En ek het 'n rekenaar doen. 92 00:06:29,710 --> 00:06:30,850 Dit was net verstommend. 93 00:06:30,850 --> 00:06:33,224 >> Mark Zuckerberg: Leer hoe om program nie begin 94 00:06:33,224 --> 00:06:35,450 as wil leer al rekenaarwetenskap 95 00:06:35,450 --> 00:06:38,630 of probeer om dit te bemeester dissipline of iets soos dit. 96 00:06:38,630 --> 00:06:41,591 Dit het net begin af, want ek wou dit 'n eenvoudige ding om te doen. 97 00:06:41,591 --> 00:06:44,340 Ek wou iets te maak wat was groot pret vir myself en my susters. 98 00:06:44,340 --> 00:06:46,399 >> En ek het hierdie klein program. 99 00:06:46,399 --> 00:06:48,440 En dan basies net bygevoeg 'n bietjie om dit te. 100 00:06:48,440 --> 00:06:49,930 En dan wanneer ek nodig het iets nuuts om te leer, 101 00:06:49,930 --> 00:06:52,210 Ek kyk dit op, óf in 'n boek of op die internet, 102 00:06:52,210 --> 00:06:53,240 en toe 'n bietjie om dit te. 103 00:06:53,240 --> 00:06:56,300 >> DREW HOUSTON: Dit is regtig nie in teenstelling met 'n instrument speel of iets 104 00:06:56,300 --> 00:07:00,007 of speel 'n sport. 105 00:07:00,007 --> 00:07:01,090 David J. Malan Alle regte. 106 00:07:01,090 --> 00:07:04,120 So laat ons nou eintlik duik in 'n bietjie dieper. 107 00:07:04,120 --> 00:07:07,430 Wat is hierdie insette en uitsette dat ons hier praat? 108 00:07:07,430 --> 00:07:09,110 >> So hoe oor iets eenvoudig? 109 00:07:09,110 --> 00:07:12,120 Jy weet waarskynlik, selfs al het jy geen kennis van rekenaarwetenskap 110 00:07:12,120 --> 00:07:16,570 ookal, dat rekenaars of ander manier gebruik en verstaan ​​net nulle en ene. 111 00:07:16,570 --> 00:07:20,500 Maar hoe kan dit moontlik gegee word hoe veel vandag se desktops en skootrekenaars gelyk 112 00:07:20,500 --> 00:07:21,280 kan doen nie? 113 00:07:21,280 --> 00:07:24,310 >> Die DNA van die dag, die enigste alfabet dat hulle verstaan 114 00:07:24,310 --> 00:07:26,410 is 'n nul of 'n een. 115 00:07:26,410 --> 00:07:27,470 Wel, oorweeg dit. 116 00:07:27,470 --> 00:07:30,840 Ons, die mens, is geneig om die gebruik desimale stelsel. "Desember" beteken 10. 117 00:07:30,840 --> 00:07:33,970 En dit is 10, want ons het 10 syfers, 0 tot nege. 118 00:07:33,970 --> 00:07:36,180 >> Nou rekenaars, daarenteen, geneig binêre te gebruik. 119 00:07:36,180 --> 00:07:37,270 "Bi" beteken twee. 120 00:07:37,270 --> 00:07:39,560 So is hulle geneig om net nul en een gebruik. 121 00:07:39,560 --> 00:07:42,680 Maar dit blyk dat selfs net met nulle en ene, wat 122 00:07:42,680 --> 00:07:45,900 is 'n groot genoeg alfabet waarmee die meeste te verteenwoordig 123 00:07:45,900 --> 00:07:48,490 enige stuk data wat jy wil, of dit 'n nommer, 124 00:07:48,490 --> 00:07:52,100 of dit nou 'n brief, of dit nou 'n grafiese of video op die skerm. 125 00:07:52,100 --> 00:07:57,140 >> Oorweeg, byvoorbeeld, hoe ons mense tipies interpreteer hierdie getal hier. 126 00:07:57,140 --> 00:08:00,010 Dit is net drie syfers, een, twee, drie. 127 00:08:00,010 --> 00:08:04,570 Maar ons weet hierdie getal ingebore nou as 123. 128 00:08:04,570 --> 00:08:05,510 Maar hoekom is dit? 129 00:08:05,510 --> 00:08:07,570 >> Wel, as jy dink terug miskien graad skool, 130 00:08:07,570 --> 00:08:11,700 jy waarskynlik geleer om te dink aan hierdie getalle as in kolomme, 131 00:08:11,700 --> 00:08:14,700 waar die een is in die honderde plek, die twee is in die tien plek, 132 00:08:14,700 --> 00:08:16,360 en die drie is in dié plek. 133 00:08:16,360 --> 00:08:17,790 Hoekom is dit werklik nuttig? 134 00:08:17,790 --> 00:08:19,665 Wel, dink oor die super eenvoudige rekenkundige 135 00:08:19,665 --> 00:08:22,219 dat ons almal is doen vir die jaar. 136 00:08:22,219 --> 00:08:24,510 Effektief, as jy het ' 'n een in die honderde plek, 137 00:08:24,510 --> 00:08:29,610 jy die vinnige wiskunde 100 keer 1 plus 10 keer 2-- 138 00:08:29,610 --> 00:08:33,059 omdat twee is in die tien place-- plus 1 keer 3-- 139 00:08:33,059 --> 00:08:34,830 want drie is in dié plek. 140 00:08:34,830 --> 00:08:37,039 So, natuurlik, as ons eintlik hierdie vermenigvuldig, 141 00:08:37,039 --> 00:08:39,600 wat ons werklik verteenwoordig met hierdie pattern-- een 142 00:08:39,600 --> 00:08:46,150 twee three-- is 100 plus 20 plus 3, wat natuurlik, is 123. 143 00:08:46,150 --> 00:08:51,130 >> Nou binêre, en rekenaars regtig, fundamenteel dieselfde taal praat 144 00:08:51,130 --> 00:08:51,680 wat ons doen. 145 00:08:51,680 --> 00:08:53,400 Hulle het net 'n kleiner alfabet. 146 00:08:53,400 --> 00:08:57,100 So rekenaars net nulle en kinders tot hulle beskikking. 147 00:08:57,100 --> 00:09:02,500 So, terwyl ons mense in wese magte van 10 in elk van hierdie places-- 148 00:09:02,500 --> 00:09:06,810 10 tot die nul, 10 aan die een, tien aan die twee, gee jou 110 en 100 149 00:09:06,810 --> 00:09:07,700 onderskeidelik. 150 00:09:07,700 --> 00:09:12,140 >> Omdat rekenaars slegs twee waardes hulle kan verstaan, nul en een, 151 00:09:12,140 --> 00:09:16,600 hulle verskillende waardes te gebruik in hierdie kolomme, een, twee, vier. 152 00:09:16,600 --> 00:09:20,480 En as ons aan die gang gehou, agt, 16, 32, 64, en so meer. 153 00:09:20,480 --> 00:09:24,220 Maar die patroon en die mentaliteit is presies dieselfde. 154 00:09:24,220 --> 00:09:27,340 >> So deur hierdie logika, enigiemand, hoe sou Ek gaan verteenwoordig die aantal 155 00:09:27,340 --> 00:09:28,530 een in binêre? 156 00:09:28,530 --> 00:09:33,080 As jy nog nooit eens daaraan gedink dit voor, wat jou ingewande sê? 157 00:09:33,080 --> 00:09:33,777 >> Publiek: Een. 158 00:09:33,777 --> 00:09:34,610 David J. Malan Een. 159 00:09:34,610 --> 00:09:35,660 Presies. 160 00:09:35,660 --> 00:09:38,100 Ons moet net 'n een in die kinders plaasvind, omdat die nulle 161 00:09:38,100 --> 00:09:40,610 voldoende om ons te gee nie 'n vier of 'n twee. 162 00:09:40,610 --> 00:09:42,440 So een keer een is gelyk aan een. 163 00:09:42,440 --> 00:09:43,940 Nou dinge 'n bietjie interessant. 164 00:09:43,940 --> 00:09:46,830 As ek wil verteenwoordig in Binêre die aantal two-- maar 165 00:09:46,830 --> 00:09:49,790 weer, selfs as jy nog nooit hierdie taal voor gepraat, 166 00:09:49,790 --> 00:09:54,680 hoe kan ons verteenwoordig in binêre die waarde wat ons mense ken as twee? 167 00:09:54,680 --> 00:09:55,570 Zero 'n nul. 168 00:09:55,570 --> 00:09:57,620 Net die een in die kolom wat jy dit wil hê. 169 00:09:57,620 --> 00:09:59,560 >> Nou is dit redelik om maklik waarskynlik nou. 170 00:09:59,560 --> 00:10:02,950 So as ek wil three-- te verteenwoordig daar is geen drie se kolom. 171 00:10:02,950 --> 00:10:06,770 So, weer, ek kan nou hierdie waardes voeg saam deur 'n mens hier. 172 00:10:06,770 --> 00:10:10,320 So 2 keer 1 plus 1 keer 1 is, natuurlik, 3. 173 00:10:10,320 --> 00:10:13,480 >> Nou dinge 'n bietjie pret in dat die kinders raak nou nulle. 174 00:10:13,480 --> 00:10:15,480 En vier voor te stel, kry ek hierdie. 175 00:10:15,480 --> 00:10:19,310 En as ons inkrementeer stadig here-- dat vyf sou wees. 176 00:10:19,310 --> 00:10:20,700 Dit sou ses. 177 00:10:20,700 --> 00:10:22,100 Dit sou sewe. 178 00:10:22,100 --> 00:10:25,310 >> Maar nou lyk asof ek 'n hardloop in 'n probleem. 179 00:10:25,310 --> 00:10:30,520 Hoe kan ek gaan verteenwoordig eight-- sou die volgende waarde wees. 180 00:10:30,520 --> 00:10:31,900 Ja, so ons moet 'n nuwe stukkies. 181 00:10:31,900 --> 00:10:33,899 En, inderdaad, as jy het hoor hierdie frase voor, 182 00:10:33,899 --> 00:10:37,380 stukkies, dis net kort vir binêre syfer, nul of een. 183 00:10:37,380 --> 00:10:41,520 >> En so het ek gebeur te verteenwoordig slegs drie sulke stukkies hier. 184 00:10:41,520 --> 00:10:44,900 Maar as ek 'n manier van die stoor nie drie verskillende stukkies, maar vier, 185 00:10:44,900 --> 00:10:47,250 ja, ek kan verteenwoordig agt, en dan nege, en dan 186 00:10:47,250 --> 00:10:49,400 10, en selfs hoër en hoër. 187 00:10:49,400 --> 00:10:52,140 >> Maar wat dan roep in die vraag hoe ons kan 188 00:10:52,140 --> 00:10:54,540 gaan oor hierdie verteenwoordig dinge in die eerste plek. 189 00:10:54,540 --> 00:10:56,950 Dit is een ding om te trek hulle hier op 'n skyfie, 190 00:10:56,950 --> 00:11:00,660 maar hoe hulle verteenwoordig jy nie as jy 'n meganiese toestel? 191 00:11:00,660 --> 00:11:04,390 Wat is 'n rekenaar te doen om verteenwoordig die insette en uitsette wat 192 00:11:04,390 --> 00:11:09,020 fundamenteel definieer berekening aan die einde van die dag? 193 00:11:09,020 --> 00:11:12,090 >> Wel, wat oor iets super eenvoudige soos hierdie? 194 00:11:12,090 --> 00:11:13,200 Dit is net 'n gloeilamp. 195 00:11:13,200 --> 00:11:15,460 En ek kan dit veroorsaak gloeilamp om te gaan op 196 00:11:15,460 --> 00:11:17,920 deur die draai sommige elektrisiteit op en om elektrone 197 00:11:17,920 --> 00:11:22,585 om deur te vloei, wat verander sy staat of sy waarde, om so te praat. 198 00:11:22,585 --> 00:11:24,460 Byvoorbeeld, dit is 'n ou skool lessenaar lamp 199 00:11:24,460 --> 00:11:27,250 hier met een so 'n gloeilamp binnekant van dit. 200 00:11:27,250 --> 00:11:29,940 En nou is dit nie regtig doen iets nuttig. 201 00:11:29,940 --> 00:11:32,680 Maar so gou as ek prop dit in 'n stopcontact 202 00:11:32,680 --> 00:11:36,390 en gebruik dan hierdie switch-- of ons kan selfs noem dit 'n transistor 203 00:11:36,390 --> 00:11:39,970 of dink dat dit as such-- Ek kan nou stel óf 204 00:11:39,970 --> 00:11:44,120 hierdie waarde, waar die gloeilamp se natuurlik af of die waarde. 205 00:11:44,120 --> 00:11:46,060 Hierdie waarde of hierdie waarde. 206 00:11:46,060 --> 00:11:47,520 Hierdie waarde en so meer. 207 00:11:47,520 --> 00:11:51,220 >> So binnekant van 'n rekenaar, vermoedelik, is veel kleiner stukke van die hardeware, 208 00:11:51,220 --> 00:11:52,970 maar dat aan die einde van die dag eenvoudig 209 00:11:52,970 --> 00:11:55,360 gebruik electricity-- miskien vang it-- 210 00:11:55,360 --> 00:11:59,730 en dan óf iets hou op of hou iets af. 211 00:11:59,730 --> 00:12:02,021 Natuurlik, dit is nie veral interessant om te doen 212 00:12:02,021 --> 00:12:03,270 met net 'n enkele gloeilamp. 213 00:12:03,270 --> 00:12:06,726 >> Trouens, hoe hoog kan ek tel in binêre met hierdie lessenaar lamp hier? 214 00:12:06,726 --> 00:12:07,420 >> Publiek: Een. 215 00:12:07,420 --> 00:12:08,545 >> David J. Malan Een, reg? 216 00:12:08,545 --> 00:12:11,020 Ek wil graag meer lessenaar lampe as ek eintlik wil hoër te tel. 217 00:12:11,020 --> 00:12:12,210 Maar ons kan beter as dit doen. 218 00:12:12,210 --> 00:12:14,460 Omdat die gloeilampe wat ons sit het in hierdie dinge 219 00:12:14,460 --> 00:12:17,730 is eintlik liefhebber gloeilampe as weleer sou toelaat. 220 00:12:17,730 --> 00:12:20,310 En hulle is eintlik netwerk gloeilampe. 221 00:12:20,310 --> 00:12:23,160 En trosse van maatskappye maak hierdie dinge deesdae. 222 00:12:23,160 --> 00:12:25,190 >> Maar dit blyk dat hierdie een in die besonder 223 00:12:25,190 --> 00:12:27,680 kom met 'n funksie waardeur jy die kleure kan verander. 224 00:12:27,680 --> 00:12:30,810 So byvoorbeeld, as jy versier jou koshuiskamer 225 00:12:30,810 --> 00:12:33,200 met 'n paar van hierdie lig bolle, afhangende van jou bui, 226 00:12:33,200 --> 00:12:35,366 afhangende van wat kom in, afhangende van die weer, 227 00:12:35,366 --> 00:12:37,360 afhangende van die tyd van die dag, kan jy eintlik 228 00:12:37,360 --> 00:12:40,300 verander die kleure van die gloeilampe in jou kamer. 229 00:12:40,300 --> 00:12:43,740 En dit is omdat hierdie lig gloeilampe en ander soos dit het, wat is 230 00:12:43,740 --> 00:12:48,010 genoem 'n API, 'n aansoek programming interface, wat 231 00:12:48,010 --> 00:12:50,920 is 'n onderwerp wat jy sal goed wees vertroud is met deur semester se einde. 232 00:12:50,920 --> 00:12:53,710 >> En dit is net 'n fancy, kriptiese manier om te sê, 233 00:12:53,710 --> 00:12:57,570 jy kan hierdie lig program bolle jou bied om te doen. 234 00:12:57,570 --> 00:13:00,360 Jy kan hulle boodskappe stuur net soos jy, 'n mens, 235 00:13:00,360 --> 00:13:03,640 kan 'n boodskap stuur na 'n web bediener sê, gee my vandag se nuus 236 00:13:03,640 --> 00:13:05,110 of gee my e-pos. 237 00:13:05,110 --> 00:13:08,010 >> Jy kan stuur vir meer arcane boodskappe op hierdie gloeilampe 238 00:13:08,010 --> 00:13:09,700 om te sê, draai op en af. 239 00:13:09,700 --> 00:13:11,370 Maar dit is nie al wat interessant. 240 00:13:11,370 --> 00:13:14,280 Jy kan sê, draai op die rooi, draai op die groen, draai op blou, 241 00:13:14,280 --> 00:13:15,990 almal met dieselfde gloeilamp. 242 00:13:15,990 --> 00:13:20,990 En jy kan selfs met 'n bietjie meer vaardig, sê, draai om jouself te blou 243 00:13:20,990 --> 00:13:24,710 wanneer dit is 'n somber dag buite, byvoorbeeld. 244 00:13:24,710 --> 00:13:27,910 Dit kan eintlik lap in 'n weer API en vind uit 245 00:13:27,910 --> 00:13:32,260 wat die weer is, of die tyd van die dag, of sodanige ander snellers. 246 00:13:32,260 --> 00:13:35,550 >> So, in die feit dat twee van CS50 se eie personeel, 247 00:13:35,550 --> 00:13:38,827 Dan Bradley en Ansel Duff hier, vriendelik verkry 248 00:13:38,827 --> 00:13:40,410 ons 'n hele klomp van die gloeilampe. 249 00:13:40,410 --> 00:13:42,910 En hulle CS50 se gebou eerste binêre bolle, 250 00:13:42,910 --> 00:13:46,850 waar ons verteenwoordig here-- met hierdie speels bietjie magnets-- 251 00:13:46,850 --> 00:13:49,780 die verskillende plekhouers ons verwys na net 'n bietjie gelede. 252 00:13:49,780 --> 00:13:52,572 >> So manier hier is die kinders plek, twee, vier. 253 00:13:52,572 --> 00:13:54,030 En ons het nie hoër as dié sien. 254 00:13:54,030 --> 00:13:55,613 Maar, natuurlik, hulle is magte van twee. 255 00:13:55,613 --> 00:13:59,490 Agt, 16, 32, 64, en 128. 256 00:13:59,490 --> 00:14:03,320 So as ek wil nou 'n bietjie liefhebber as die gebruik van hierdie ou skool skakel, 257 00:14:03,320 --> 00:14:07,310 Ek het hier op hierdie iPad 'n super eenvoudige koppelvlak 258 00:14:07,310 --> 00:14:10,440 dat Dan Bradley, 'n voormalige student en nou onderrig mede, 259 00:14:10,440 --> 00:14:13,510 geprogrammeerde behulp van 'n HTML en JavaScript, wat 260 00:14:13,510 --> 00:14:15,685 is opmaak en ontwikkeling tale onderskeidelik. 261 00:14:15,685 --> 00:14:17,560 En jy kan waarskynlik see-- selfs in die back-- 262 00:14:17,560 --> 00:14:21,670 daar is 'n groot plus en 'n groot minus, plus een knoppie vir elk van hierdie bolle. 263 00:14:21,670 --> 00:14:25,740 En wat dit gaan my toe te laat om doen is, byvoorbeeld, op die plus 264 00:14:25,740 --> 00:14:28,250 en nou verteenwoordig, van Natuurlik, watter getal? 265 00:14:28,250 --> 00:14:28,750 Een. 266 00:14:28,750 --> 00:14:30,220 En ek kan dit weer getref. 267 00:14:30,220 --> 00:14:31,480 Twee. 268 00:14:31,480 --> 00:14:32,800 Drie. 269 00:14:32,800 --> 00:14:33,950 Vier. 270 00:14:33,950 --> 00:14:35,200 Vyf. 271 00:14:35,200 --> 00:14:36,360 Ses. 272 00:14:36,360 --> 00:14:36,880 Sewe. 273 00:14:36,880 --> 00:14:40,740 >> En hier kry ons dat roll, maar ons het 'n vierde bietjie hierdie tyd, 274 00:14:40,740 --> 00:14:42,180 So nou het ons agt. 275 00:14:42,180 --> 00:14:44,000 So kan ons dit doen vir 'n geruime tyd. 276 00:14:44,000 --> 00:14:46,530 In werklikheid, as 'n eenkant, hoe hoog kan ons reken? 277 00:14:46,530 --> 00:14:48,318 Enigiemand? 278 00:14:48,318 --> 00:14:49,270 >> Publiek: 255. 279 00:14:49,270 --> 00:14:51,420 >> David J. Malan 255, reg? 280 00:14:51,420 --> 00:14:54,900 Moenie te veel bekommerd wees oor die wiskunde vir nou, maar dit is 'n mooi ordentlike nommer. 281 00:14:54,900 --> 00:14:59,140 Maar dit eintlik net gebind hoeveel stukkies inligting, 282 00:14:59,140 --> 00:15:01,760 soos 'n brief of 'n grafiese dat ons kan verteenwoordig. 283 00:15:01,760 --> 00:15:02,697 >> Maar maak nie saak vir nou. 284 00:15:02,697 --> 00:15:04,530 Ek gaan om voort te gaan en draai hulle almal af. 285 00:15:04,530 --> 00:15:09,670 En as ek kon, sou ek graag om te vra vir 'n vrywilliger, ons eerste volunteer-- 286 00:15:09,670 --> 00:15:11,342 O, hello-- op die verhoog. 287 00:15:11,342 --> 00:15:14,050 Die vangs is wat jy hoef te wees gemaklik verskyn, as jy duidelik 288 00:15:14,050 --> 00:15:17,421 is in die voorkant van al jou klasmaats, sowel as op die internet. 289 00:15:17,421 --> 00:15:20,420 En laat my kyk 'n bietjie verder as the-- hoe oor hier in die wit hemp? 290 00:15:20,420 --> 00:15:20,920 En oorhandig het. 291 00:15:20,920 --> 00:15:22,071 Kom op. 292 00:15:22,071 --> 00:15:22,820 Wat is jou naam? 293 00:15:22,820 --> 00:15:23,760 >> Publiek: Jackie. 294 00:15:23,760 --> 00:15:24,718 >> David J. Malan Jackie. 295 00:15:24,718 --> 00:15:25,820 Jackie, kom op. 296 00:15:25,820 --> 00:15:29,820 So, wat is daar ook op hierdie iPad is 'n knoppie genoem Game af. 297 00:15:29,820 --> 00:15:32,570 En dit spel af is gaan my toelaat om insette 298 00:15:32,570 --> 00:15:35,780 vooraf 'n bepaalde desimale nommer, die getalle wat ons mense is 299 00:15:35,780 --> 00:15:36,760 vertroud is met. 300 00:15:36,760 --> 00:15:39,820 En dan sal jy uitgedaag word hier om die knoppies te gebruik 301 00:15:39,820 --> 00:15:42,140 op die top-- een vir elk van hierdie bulbs-- 302 00:15:42,140 --> 00:15:45,050 om werklik uit te vind die patroon van die gloeilampe 303 00:15:45,050 --> 00:15:46,970 dat die aantal in die vraag. 304 00:15:46,970 --> 00:15:47,790 >> En ek is jammer, wat was jou naam nou weer? 305 00:15:47,790 --> 00:15:48,250 >> Publiek: Jackie. 306 00:15:48,250 --> 00:15:48,620 >> David J. Malan Jackie. 307 00:15:48,620 --> 00:15:48,920 Alle regte. 308 00:15:48,920 --> 00:15:49,740 Goed om jou te ontmoet. 309 00:15:49,740 --> 00:15:54,580 >> So laat my voor en program in te gaan vir die wêreld die nommer 15 te sien. 310 00:15:54,580 --> 00:15:56,360 Ons sal dit klein hou op die eerste hier. 311 00:15:56,360 --> 00:15:58,240 En ek gaan om te gaan in spel af. 312 00:15:58,240 --> 00:16:01,160 En ek gaan om te spesifiseer, gee ons die nommer 15. 313 00:16:01,160 --> 00:16:01,900 >> OK. 314 00:16:01,900 --> 00:16:05,510 En nou met almal watching-- indien jy wil miskien staan ​​hierdie manier, 315 00:16:05,510 --> 00:16:09,970 want dit sal in lyn up-- voort te gaan en wissel die agt knoppies langs die top 316 00:16:09,970 --> 00:16:12,530 die bolle om te draai of af soos jy goeddink. 317 00:16:12,530 --> 00:16:13,530 >> Publiek: OK. 318 00:16:13,530 --> 00:16:17,720 >> David J. Malan En geen bedrog deur slaan plus 15 keer. 319 00:16:17,720 --> 00:16:19,275 O, ons gaan om dit te doen. 320 00:16:19,275 --> 00:16:20,069 >> Publiek: O, wag. 321 00:16:20,069 --> 00:16:20,610 Ek is so jammer. 322 00:16:20,610 --> 00:16:22,660 >> David J. Malan Jy kan ook draai die gloeilampe op individueel 323 00:16:22,660 --> 00:16:24,076 met elkeen van hierdie knoppies op die top. 324 00:16:24,076 --> 00:16:24,844 Publiek: O, OK. 325 00:16:24,844 --> 00:16:27,429 So sal dit wees like-- 326 00:16:27,429 --> 00:16:28,220 David J. Malan OK. 327 00:16:28,220 --> 00:16:29,100 So nou het ons agt. 328 00:16:29,100 --> 00:16:31,280 So laat ons breek vir die gehoor hier betrokke te raak. 329 00:16:31,280 --> 00:16:34,300 Watter getal is Jackie tans verteenwoordig? 330 00:16:34,300 --> 00:16:34,800 11. 331 00:16:34,800 --> 00:16:35,730 So ons is amper daar. 332 00:16:35,730 --> 00:16:38,360 333 00:16:38,360 --> 00:16:39,630 En 'n uitstekende. 334 00:16:39,630 --> 00:16:41,487 So het ons ons eerste wenner. 335 00:16:41,487 --> 00:16:42,445 Baie geluk. 336 00:16:42,445 --> 00:16:48,200 >> En ons het gedink ons ​​wil ' n paar pragtige geskenke. 337 00:16:48,200 --> 00:16:50,860 As jy wil een so te wees koshuiskamer hier op kampus, 338 00:16:50,860 --> 00:16:56,126 kan jy jouself 'n finale projek gebruik nou hierdie API, te danke aan Jackie. 339 00:16:56,126 --> 00:16:57,050 So now-- 340 00:16:57,050 --> 00:16:58,902 >> [Applous] 341 00:16:58,902 --> 00:17:01,690 342 00:17:01,690 --> 00:17:04,839 >> --if ons kon, een soos om van hierdie. 343 00:17:04,839 --> 00:17:07,690 O, nou almal wil 'n paar gloeilampe. 344 00:17:07,690 --> 00:17:11,790 Vir die sogenaamde hacker uitgawe, ons gaan om dit te oprit a-- o, 345 00:17:11,790 --> 00:17:12,770 ja, ontwykend. 346 00:17:12,770 --> 00:17:16,010 Ek dink jy kom nou as jou hand is om af te gaan. 347 00:17:16,010 --> 00:17:16,800 Wat is jou naam? 348 00:17:16,800 --> 00:17:17,424 >> Publiek: Alex. 349 00:17:17,424 --> 00:17:19,440 David J. Malan Alex, kom hier. 350 00:17:19,440 --> 00:17:26,190 So vir Alex, gaan ons program in 'n effens groter nommer. 351 00:17:26,190 --> 00:17:27,790 Miskien in orde is. 352 00:17:27,790 --> 00:17:29,110 Die nommer 50. 353 00:17:29,110 --> 00:17:29,744 >> Publiek: OK. 354 00:17:29,744 --> 00:17:31,660 David J. Malan Maar, soos Ek said-- en jy kan 355 00:17:31,660 --> 00:17:33,580 wil om hier te staan ​​sodat dat die knoppies line-up 356 00:17:33,580 --> 00:17:37,115 as jy wil expect-- maar ek het noem dit die hacker uitgawe. 357 00:17:37,115 --> 00:17:47,125 So-- baie geluk! 358 00:17:47,125 --> 00:17:48,416 >> [Gelag] 359 00:17:48,416 --> 00:17:58,570 360 00:17:58,570 --> 00:18:02,050 >> Jy sal in staat wees om om te draai hulle af as you-- OK. 361 00:18:02,050 --> 00:18:02,880 Uitstekend. 362 00:18:02,880 --> 00:18:03,675 Wonderlik. 363 00:18:03,675 --> 00:18:04,341 Baie geluk. 364 00:18:04,341 --> 00:18:08,730 >> [Applous] 365 00:18:08,730 --> 00:18:10,355 Ek dink ek moet betaal. 366 00:18:10,355 --> 00:18:11,830 Baie geluk aan Alex sowel. 367 00:18:11,830 --> 00:18:12,330 OK. 368 00:18:12,330 --> 00:18:15,550 >> So die uiteindelike afhaal hier is hopelik, eerlik, 369 00:18:15,550 --> 00:18:18,109 die simplicity-- die eenvoud waarmee 370 00:18:18,109 --> 00:18:20,650 jy kan 'n paar mooi lig kry bolle, blykbaar in [onhoorbaar]. 371 00:18:20,650 --> 00:18:23,000 Maar hulle verteenwoordig, uiteindelik dieselfde idees 372 00:18:23,000 --> 00:18:26,310 waarmee ons mense is reeds al te bekend. 373 00:18:26,310 --> 00:18:28,660 So wat kan die volgende stap in die vordering 374 00:18:28,660 --> 00:18:30,920 probeer om iets te doen interessant met data 375 00:18:30,920 --> 00:18:34,950 en verteenwoordig insette wat nie net getalle nie, maar is dalk letters of meer? 376 00:18:34,950 --> 00:18:37,820 >> Wel, dit blyk dat die rekenaar wêreld, vir baie jare, 377 00:18:37,820 --> 00:18:43,300 bloot 'n arbitrêre, maar 'n aangenome konsekwent standaard wat kaarte nommers 378 00:18:43,300 --> 00:18:44,610 letters van die alfabet. 379 00:18:44,610 --> 00:18:47,120 Byvoorbeeld, hier is 'n uittreksel uit die kartering. 380 00:18:47,120 --> 00:18:48,350 Dit is bekend Ascii. 381 00:18:48,350 --> 00:18:53,220 A-S-C-ek-ek. En dit is net 'n tabel wat kaarte hoofletters letters-- 382 00:18:53,220 --> 00:18:56,600 in hierdie case-- na desimale getalle. 383 00:18:56,600 --> 00:18:57,890 >> Maar wat is die implikasie? 384 00:18:57,890 --> 00:19:01,090 Wel, as jy eintlik wil stel iets soos 'n e-pos of teks 385 00:19:01,090 --> 00:19:03,310 op 'n webblad, jy natuurlik wil om te wys 386 00:19:03,310 --> 00:19:06,100 die menslike letters van die alfabet, nie-nommers. 387 00:19:06,100 --> 00:19:09,140 So, afhangende van die konteks van die program 388 00:19:09,140 --> 00:19:12,600 dat 'n gebruiker is te gebruik, al is dit 'n webblaaier of e-pos kliënt, 389 00:19:12,600 --> 00:19:16,090 getalle kan seker wees geïnterpreteer as letters. 390 00:19:16,090 --> 00:19:20,290 Dit is om te sê, patrone van stukkies kan maklik vertolk word as letters. 391 00:19:20,290 --> 00:19:24,700 >> En ja, wat ons kan is die letter A wese 392 00:19:24,700 --> 00:19:28,410 verteenwoordig as 65, B verteenwoordig word as 66. 393 00:19:28,410 --> 00:19:30,900 So as ons 'n super kort woord, soos hi, 394 00:19:30,900 --> 00:19:35,740 wat 'n rekenaar sou uiteindelik winkel in desimale maar regtig in binêre, 395 00:19:35,740 --> 00:19:40,070 behulp van 'n reeks van stukkies, gebruik te maak 'n bietjie van elektrisiteit in een of ander manier, 396 00:19:40,070 --> 00:19:44,010 sou wees om die twee getalle 72 en 73. 397 00:19:44,010 --> 00:19:46,780 >> Maar die patroon van die stukkies wat verteenwoordig daardie waardes. 398 00:19:46,780 --> 00:19:49,820 So hierdie is dan hoe ons dit kan verteenwoordig ons insette en uitsette. 399 00:19:49,820 --> 00:19:52,630 En is dit voldoende om te sê, ons kan doen meer kompleks vertoë 400 00:19:52,630 --> 00:19:56,450 uiteindelik met dinge soos beelde, video's, musiek, en meer 401 00:19:56,450 --> 00:19:58,190 soos ons sal later hierdie kwartaal sien. 402 00:19:58,190 --> 00:20:00,630 >> Sodat net laat dan algoritmes, hierdie stelle 403 00:20:00,630 --> 00:20:03,490 instruksies waarmee ons die oplossing van werklike probleme. 404 00:20:03,490 --> 00:20:05,820 Ons is verby in insette te algoritmes. 405 00:20:05,820 --> 00:20:09,630 En die algoritmes is die vervaardiging van uitgange, hopelik korrek uitgange 406 00:20:09,630 --> 00:20:14,160 en hopelik ook doeltreffend versamel uitgange. 407 00:20:14,160 --> 00:20:16,890 Met ander woorde, dit is een ding iets om te korrek te implementeer. 408 00:20:16,890 --> 00:20:20,790 Dit is 'n ander ding om te implementeer iets goed of doeltreffend. 409 00:20:20,790 --> 00:20:23,690 >> Byvoorbeeld, een demonstrasie dat ons lief in die kursus 410 00:20:23,690 --> 00:20:24,460 is hierdie een. 411 00:20:24,460 --> 00:20:26,345 Maar hierdie dinge is om toenemend moeilik om te vind. 412 00:20:26,345 --> 00:20:28,930 Maar dit is inderdaad 'n ou skool telefoon boek, binnekant van wat 413 00:20:28,930 --> 00:20:32,580 is 1000 plus bladsye van name en telefoonnommers. 414 00:20:32,580 --> 00:20:34,830 En as ek wou om te kyk iemand in hierdie telefoon boek, 415 00:20:34,830 --> 00:20:38,640 Ek kon net nie 'n baie naïef algoritme. 416 00:20:38,640 --> 00:20:42,150 Ek kon oopmaak om die eerste bladsy, en Ek kan begin om te kyk vir, sê, iemand 417 00:20:42,150 --> 00:20:43,130 vernoem Mike Smith. 418 00:20:43,130 --> 00:20:46,160 En as hy nie op die eerste bladsy, ek vorder na die tweede, 419 00:20:46,160 --> 00:20:49,120 en dan na die derde, en dan die vierde, en so meer, 420 00:20:49,120 --> 00:20:51,430 totdat ek uiteindelik vind Mike Smith. 421 00:20:51,430 --> 00:20:53,010 >> Nou is dat algoritme korrek? 422 00:20:53,010 --> 00:20:53,896 >> Gehoor: Ja. 423 00:20:53,896 --> 00:20:54,248 >> David J. Malan Ja. 424 00:20:54,248 --> 00:20:56,039 As hy daar, ek sal uiteindelik vind hom. 425 00:20:56,039 --> 00:20:58,820 Maar dit is waarskynlik nie baie doeltreffende, beslis nie 'n vinnige, 426 00:20:58,820 --> 00:21:01,200 want my God, waarom word ek mors my tyd daarby 427 00:21:01,200 --> 00:21:04,500 deur al hierdie bladsye wanneer ek kon beslis nie hierdie fisies vinniger? 428 00:21:04,500 --> 00:21:08,210 >> Wel, 'n effense optimalisering, so te praat, dalk nie een bladsy op 'n tyd wees, 429 00:21:08,210 --> 00:21:11,610 maar twee, vier, ses, agt, 10. 430 00:21:11,610 --> 00:21:12,725 Nog korrek? 431 00:21:12,725 --> 00:21:14,030 >> GEHOOR: Nee 432 00:21:14,030 --> 00:21:17,040 >> David J. Malan So nie as ek vir byvoorbeeld spring oor Mike Smith. 433 00:21:17,040 --> 00:21:20,530 Maar so lank as wat ek terug trap een bladsy, as ek oorskiet hom 434 00:21:20,530 --> 00:21:25,240 miskien kan ons reg wat anders kan wees om 'n Gotcha. 435 00:21:25,240 --> 00:21:26,020 >> Maar is dit beter? 436 00:21:26,020 --> 00:21:27,469 Is dit vinniger? 437 00:21:27,469 --> 00:21:28,010 Ek bedoel, ja. 438 00:21:28,010 --> 00:21:30,950 Dit is letterlik twee keer so vinnig as ek dit doen twee bladsye op 'n slag. 439 00:21:30,950 --> 00:21:35,720 So as ek oorspronklik 1000 bladsye, nou is ek net 500 keer om te draai, 440 00:21:35,720 --> 00:21:39,429 nie ten volle 1000 bladsye te kry potensieel in die ergste geval 441 00:21:39,429 --> 00:21:41,220 aan die einde van die telefoon boek, waar iemand 442 00:21:41,220 --> 00:21:44,380 soos Mike Smith of iemand met 'n later naam dalk eintlik kan wees. 443 00:21:44,380 --> 00:21:46,540 >> Maar, natuurlik, ons mens beslis nie 444 00:21:46,540 --> 00:21:49,250 gaan word om dit te doen, beslis nie op hierdie stadium in ons lewens. 445 00:21:49,250 --> 00:21:51,454 Wat is 'n redelike menslike waarskynlik gaan om te doen? 446 00:21:51,454 --> 00:21:52,870 Publiek: Gaan reguit na the9 S se. 447 00:21:52,870 --> 00:21:53,860 David J. Malan Gaan reguit na die S se? 448 00:21:53,860 --> 00:21:55,563 Hoe gaan ek reguit na die S se? 449 00:21:55,563 --> 00:21:57,342 >> Publiek: rip dit in die helfte. 450 00:21:57,342 --> 00:21:59,050 David J. MALAN: Wel, daar is geen merk. 451 00:21:59,050 --> 00:22:02,116 So, ja, al was daar wel 'n etiket of 'n taai blad vir S, 452 00:22:02,116 --> 00:22:03,240 ons moet net daar spring. 453 00:22:03,240 --> 00:22:05,420 Maar dit is redelik onskadelike. 454 00:22:05,420 --> 00:22:08,480 So die beste wat ek kan doen, is ongeveer die S artikel of miskien rofweg 455 00:22:08,480 --> 00:22:09,650 in die middel. 456 00:22:09,650 --> 00:22:12,110 Maar die sleutel afhaal now-- en die aanvoeling 457 00:22:12,110 --> 00:22:14,430 dat jy vir geneem het verleen vir die jaar probably-- 458 00:22:14,430 --> 00:22:17,103 is dat dit wat nou te doen wat jy weet oor hierdie probleem? 459 00:22:17,103 --> 00:22:19,320 >> Publiek: [onhoorbaar] 460 00:22:19,320 --> 00:22:22,290 >> David J. Malan Mike Smith is sekerlik nie in hierdie helfte van die probleem 461 00:22:22,290 --> 00:22:25,600 omdat Smith kom nadat die middel wat ongeveer die M artikel, 462 00:22:25,600 --> 00:22:26,510 dit blyk te wees. 463 00:22:26,510 --> 00:22:30,340 So as jy dalk gesien het by Bezoeken, kan ons nou letterlik 464 00:22:30,340 --> 00:22:31,737 skeur hierdie probleem in die helfte. 465 00:22:31,737 --> 00:22:32,320 Publiek: Woo! 466 00:22:32,320 --> 00:22:33,690 David J. MALAN: Dit is om makliker en makliker. 467 00:22:33,690 --> 00:22:34,666 [Applous] 468 00:22:34,666 --> 00:22:36,618 Daar gaan jy. 469 00:22:36,618 --> 00:22:39,060 [Gelag] 470 00:22:39,060 --> 00:22:41,870 En nou het ek fundamenteel het dieselfde probleem, 471 00:22:41,870 --> 00:22:43,866 maar dit is letterlik die helfte so groot. 472 00:22:43,866 --> 00:22:45,240 Ek is nog steeds op soek na Mike Smith. 473 00:22:45,240 --> 00:22:47,950 En ek daresay, ek kan nog steeds kyk vir hom op dieselfde manier, 474 00:22:47,950 --> 00:22:51,200 verdeel die probleem in die helfte weer die probleem skeur weer 475 00:22:51,200 --> 00:22:54,140 in die helfte, wat nou laat my met 'n probleem 'n kwart van die grootte, 476 00:22:54,140 --> 00:22:58,710 dramaties gooi dat die helfte weg, en weer en weer herhaal hierdie proses 477 00:22:58,710 --> 00:23:01,150 en weer, skrams af by elke punt te sien 478 00:23:01,150 --> 00:23:03,400 As Mike Smith is op die betrokke bladsy. 479 00:23:03,400 --> 00:23:06,190 >> Maar as ek doen dit reg, uiteindelik gaan ek myself 480 00:23:06,190 --> 00:23:11,085 met net een bladsy waarop Mike Smith is as hy inderdaad in die telefoon boek. 481 00:23:11,085 --> 00:23:13,510 Natuurlik, ek kon nooit Mike weer bel. 482 00:23:13,510 --> 00:23:18,800 Maar die punt is hier dat as ons begin met 1000 bladsye, my eerste algoritme 483 00:23:18,800 --> 00:23:21,620 flip die bladsy, miskien 1000 times-- beslis minder, want dit is 484 00:23:21,620 --> 00:23:26,430 'n naam en nie 'n Z naam nie, maar as soveel as 1000 bladsye potensieel. 485 00:23:26,430 --> 00:23:27,590 >> Tweede algoritme, hoe beter. 486 00:23:27,590 --> 00:23:28,480 500 bladsye. 487 00:23:28,480 --> 00:23:31,230 Derde algoritme, al is, hoeveel stappe sal dit 488 00:23:31,230 --> 00:23:35,520 neem 'n 1000 bladsy te verdeel telefoon boek in die helfte soos wat? 489 00:23:35,520 --> 00:23:37,000 10, gee of neem. 490 00:23:37,000 --> 00:23:40,770 So slegs deur daarby deur daardie telefoon boek, duik en 'n oorwinnaar 491 00:23:40,770 --> 00:23:46,130 so te sê, 10 keer, sal ek my pad af na slegs 'n enkele bladsy. 492 00:23:46,130 --> 00:23:48,880 >> En so kan ons hierdie intuïsie vang nou 'n bietjie grafies 493 00:23:48,880 --> 00:23:51,320 as jy net oorweeg hierdie super eenvoudige grafiek. 494 00:23:51,320 --> 00:23:55,470 Ons is op die x-as, of horisontale as, is die grootte van my probleem, 495 00:23:55,470 --> 00:23:57,100 die aantal bladsye in die telefoon boek. 496 00:23:57,100 --> 00:23:59,040 En rekenaar wetenskaplikes algemeen 'n beroep 497 00:23:59,040 --> 00:24:02,180 die grootte van 'n probleem N, waar N is net 'n paar veranderlike wat 498 00:24:02,180 --> 00:24:04,310 represents-- in hierdie case-- aantal bladsye. 499 00:24:04,310 --> 00:24:07,412 >> Die vertikale of y-as, hier is gaan die tyd op te los te wees, 500 00:24:07,412 --> 00:24:09,870 Miskien is die aantal bladsy draaie, Dalk is dit die aantal sekondes 501 00:24:09,870 --> 00:24:11,960 of minute, wat ookal jou eenheid van meet is. 502 00:24:11,960 --> 00:24:14,337 En so gaan dit rooi lyn die eerste algoritme 503 00:24:14,337 --> 00:24:16,670 want daar is 'n 1-1 verhouding tussen die getal 504 00:24:16,670 --> 00:24:18,880 bladsye en die bedrag van die tyd wat dit neem. 505 00:24:18,880 --> 00:24:22,240 >> As Verizon verdubbel die aantal bladsye in volgende jaar die telefoon boek, 506 00:24:22,240 --> 00:24:24,590 my loop time-- die tyd wat nodig is om uit te voer 507 00:24:24,590 --> 00:24:27,610 dat die eerste algorithm-- verdubbel in die ergste geval. 508 00:24:27,610 --> 00:24:30,690 Maar die tweede algoritme waar ek daarby deur twee, 509 00:24:30,690 --> 00:24:33,650 verg minder tyd vir 'n gegewe grootte probleem. 510 00:24:33,650 --> 00:24:36,090 So as ek dit baie bladsye here-- kennisgewing 511 00:24:36,090 --> 00:24:38,870 dat die geel lyn dui daarop minder tyd op te los. 512 00:24:38,870 --> 00:24:42,490 En inderdaad, dit verteenwoordig, ons sal sê, n oor twee. 513 00:24:42,490 --> 00:24:47,717 >> Maar wat is die vorm van die derde en finale kurwe gaan lyk? 514 00:24:47,717 --> 00:24:50,800 Ja, dit is inderdaad gaan ek te look-- Ek weet nie wat jy gaan om te sê. 515 00:24:50,800 --> 00:24:52,300 Maar laat ons sien wat jy gaan om te sê. 516 00:24:52,300 --> 00:24:53,280 >> Publiek: soos dit. 517 00:24:53,280 --> 00:24:57,060 >> David J. Malan Dit gaan lyk hierdie, 'n logaritmiese slope-- exactly-- 518 00:24:57,060 --> 00:24:59,770 waardeur jy hierdie nuuskierig helling. 519 00:24:59,770 --> 00:25:01,235 Dit is nie meer 'n reguit lyn. 520 00:25:01,235 --> 00:25:05,000 En wat is dwingende oor dit is dat selfs al is die grafiek word nou afgesny, 521 00:25:05,000 --> 00:25:07,790 jy kan ekstrapoleer in jou herinner ons dat die groen lyn is nie 522 00:25:07,790 --> 00:25:10,060 gaan toeneem in hoogte alles wat veel 523 00:25:10,060 --> 00:25:13,500 as jy verder gaan bepaal dat die horisontale as. 524 00:25:13,500 --> 00:25:15,890 >> Inderdaad, Verizon, vir Byvoorbeeld, kan verdubbel 525 00:25:15,890 --> 00:25:19,100 die aantal bladsye in die telefoon boek tussen hierdie jaar en volgende jaar 526 00:25:19,100 --> 00:25:22,140 vanaf 1000 tot 2000 bladsye, maar nie 'n groot deal. 527 00:25:22,140 --> 00:25:24,960 Met hierdie derde en finale, daar is 'n intuïtiewe algoritme 528 00:25:24,960 --> 00:25:26,209 verdeel en verower. 529 00:25:26,209 --> 00:25:29,000 Dit gaan my te neem hoeveel meer stappe volgende jaar om iemand te vind 530 00:25:29,000 --> 00:25:29,700 wil Mike Smith? 531 00:25:29,700 --> 00:25:30,560 >> Publiek: Een. 532 00:25:30,560 --> 00:25:31,230 >> David J. Malan Daar is net een. 533 00:25:31,230 --> 00:25:34,430 En hulle kan vier keer, dis gaan my net twee stappe te neem 534 00:25:34,430 --> 00:25:35,210 en so meer. 535 00:25:35,210 --> 00:25:38,730 En so is dit bewys van net hoe sommige versigtig ontwerp 536 00:25:38,730 --> 00:25:42,437 en sommige waardering vir wat u insette is selfs beter kan doen. 537 00:25:42,437 --> 00:25:44,270 Nou het ons verkul n bietjie in die sin 538 00:25:44,270 --> 00:25:46,350 dat ons gebruik te maak van 'n aanname. 539 00:25:46,350 --> 00:25:48,500 Wat is my aanname oor ons telefoon boek 540 00:25:48,500 --> 00:25:52,720 wat my toegelaat om te verdeel en oorwin in hierdie intuïtiewe en nog regte manier? 541 00:25:52,720 --> 00:25:53,705 >> Publiek: [onhoorbaar] 542 00:25:53,705 --> 00:25:54,580 David J. Malan Ja. 543 00:25:54,580 --> 00:25:55,440 So was dit bestel. 544 00:25:55,440 --> 00:25:57,392 Dit is analfabeet deur die telefoon boek maatskappy. 545 00:25:57,392 --> 00:26:00,100 As dit in enige volgorde, wat sou 'n hel van 'n telefoon boek wees, 546 00:26:00,100 --> 00:26:02,850 maar dit sou beslis nie leen tot die algoritme 547 00:26:02,850 --> 00:26:05,950 Ek gebruik nie, want jy sal nooit net gebeur oor Mike Smith 548 00:26:05,950 --> 00:26:09,210 As jy gehou verdeling in half in die pad deur die kans. 549 00:26:09,210 --> 00:26:12,060 >> So laat ons nou die formalisering Wat is duidelik intuïtief. 550 00:26:12,060 --> 00:26:13,950 So iets genoem pseudokode is waar ons sal 551 00:26:13,950 --> 00:26:15,780 begin om sommige van ons aanvanklike probleme. 552 00:26:15,780 --> 00:26:20,410 En dit is 'n generiese manier om te beskryf 'n algoritme of 'n rekenaar program, 553 00:26:20,410 --> 00:26:24,150 nie die gebruik van C of C ++, of Java, of enige spesifieke taal, 554 00:26:24,150 --> 00:26:27,430 maar net die gebruik van Engels, met wat enige mens vertroud kan wees. 555 00:26:27,430 --> 00:26:31,220 >> En ons kan die pseudokode skryf vir hierdie probleem soos volg. 556 00:26:31,220 --> 00:26:33,520 Stap een, haal die telefoon boek. 557 00:26:33,520 --> 00:26:35,840 Stap twee, oop te middel van die telefoon boek. 558 00:26:35,840 --> 00:26:37,730 Stap drie, kyk na die name. 559 00:26:37,730 --> 00:26:40,630 Stap vier, as Smith is een van names-- 560 00:26:40,630 --> 00:26:42,960 >> En nou is dit 'n interessante konstruk. 561 00:26:42,960 --> 00:26:44,290 Dit is 'n besluit punt. 562 00:26:44,290 --> 00:26:47,920 Dit is 'n vurk in die pad, as jy sal 'n tak, om so te praat. 563 00:26:47,920 --> 00:26:50,810 So ek gaan ingekeep net deur die konvensie step-- 564 00:26:50,810 --> 00:26:53,950 nie five-- wat tot sê, ek sal Mike bel. 565 00:26:53,950 --> 00:26:57,290 So hierdie inkeping, heeltemal arbitrêre menslike konvensie, maar dit is 566 00:26:57,290 --> 00:27:01,160 net bedoel semanties dra dat indien Smith is een van die name, 567 00:27:01,160 --> 00:27:03,310 dan moet ek Mike bel. 568 00:27:03,310 --> 00:27:06,630 >> Intussen is in stap ses, kennisgewing dat die inkeping weg. 569 00:27:06,630 --> 00:27:10,980 So anders is die ander vurk in die pad, die ander pad wat ek kan reis. 570 00:27:10,980 --> 00:27:14,130 So anders as Smith is vroeër in die boek, wat is 571 00:27:14,130 --> 00:27:16,964 my volgende stap waarskynlik gaan om hier te wees? 572 00:27:16,964 --> 00:27:18,380 Publiek: Jy gaan na die linkerkant. 573 00:27:18,380 --> 00:27:21,004 David J. Malan Ja, so gaan na die linker helfte van die telefoon boek. 574 00:27:21,004 --> 00:27:24,140 Gooi weg die regter helfte as Smith is vroeër in die boek. 575 00:27:24,140 --> 00:27:27,140 So oop tot in die middel van die linker helfte van die boek. 576 00:27:27,140 --> 00:27:30,240 >> En dan stap agt, gaan te reël drie. 577 00:27:30,240 --> 00:27:34,520 En dit is 'n snaakse lus ek is beïnvloeding, 'n rekursie so te praat. 578 00:27:34,520 --> 00:27:35,990 Maar meer oor dit in die toekoms. 579 00:27:35,990 --> 00:27:39,590 >> Ek gebruik my dieselfde algoritme my dieselfde pseudokode, 580 00:27:39,590 --> 00:27:43,020 weer dieselfde probleem op te los want die enigste ding wat verander 581 00:27:43,020 --> 00:27:46,550 is die omvang van die probleem, nie my doel, en nie die persoon 582 00:27:46,550 --> 00:27:47,340 Ek is op soek na. 583 00:27:47,340 --> 00:27:51,610 So ek kan die algoritme hergebruik dat ek reeds gedefinieer. 584 00:27:51,610 --> 00:27:53,580 >> Anders as Smith is later in book-- jy dalk 585 00:27:53,580 --> 00:27:56,200 guess-- oop tot in die middel van die regter helfte van die boek. 586 00:27:56,200 --> 00:27:58,350 En weer, gaan na reël drie. 587 00:27:58,350 --> 00:28:01,480 Else-- wat is die laaste lyn in hierdie program gaan wees? 588 00:28:01,480 --> 00:28:03,580 As hy nie onder die name op die bladsy is ek 589 00:28:03,580 --> 00:28:06,870 op, as hy nie vroeër in die boek, en hy is nie later 590 00:28:06,870 --> 00:28:09,899 in die boek, wat weet ek waar is oor Mike Smith nou? 591 00:28:09,899 --> 00:28:11,190 Publiek: Hy is nie in die boek. 592 00:28:11,190 --> 00:28:12,731 David J. Malan Hy is nie in die boek. 593 00:28:12,731 --> 00:28:16,040 Dus is die beste wat ek kan doen, is net gee en stop hierdie program. 594 00:28:16,040 --> 00:28:16,540 Alle regte. 595 00:28:16,540 --> 00:28:20,350 So op hierdie punt, laat ons 'n vinnige toer van sommige van wat wag. 596 00:28:20,350 --> 00:28:23,620 En in die feit, ek hier aangesluit deur 'n aantal van CS50 personeel. 597 00:28:23,620 --> 00:28:26,940 As hierdie mense kon al saam met my hier op die verhoog. 598 00:28:26,940 --> 00:28:28,900 >> [Applous] 599 00:28:28,900 --> 00:28:35,280 600 00:28:35,280 --> 00:28:38,170 >> Mind u, dit is slegs 'n subset van CS50 personeel, 601 00:28:38,170 --> 00:28:42,380 aangesien elke jaar het ons byna 100 personeel lede in rolle natuurlik assistente, 602 00:28:42,380 --> 00:28:44,410 onderrig genote, en nog baie meer. 603 00:28:44,410 --> 00:28:45,700 Kom op. 604 00:28:45,700 --> 00:28:48,820 So sal hulle by ons aansluit hier ongemaklik vir 'n oomblik 605 00:28:48,820 --> 00:28:54,230 as ons gee 'n warrelwind toer van wat jy moet hier verwag in die kursus. 606 00:28:54,230 --> 00:28:59,640 >> So in die eerste plek, ons het Saterdag / UNS as die gradering opsie in die kursus. 607 00:28:59,640 --> 00:29:03,180 Dit is doelbewus bedoel 'n opsie waar te wees 608 00:29:03,180 --> 00:29:05,570 As jy 'n bietjie ongemaklik daarna om in die loop, 609 00:29:05,570 --> 00:29:09,390 en jy hoef nie te vrees failure-- selfs al eerlik mislukking beteken seer jou GPA, 610 00:29:09,390 --> 00:29:13,180 om 'n B en nie 'n A-- wat presies wat, seker vir 'n gateway 611 00:29:13,180 --> 00:29:15,750 kursus soos CS50 en ander inleidende kursusse 612 00:29:15,750 --> 00:29:17,540 hierdie gradering opsie is bedoel om voorsiening te maak. 613 00:29:17,540 --> 00:29:19,930 >> Ek stem heelhartig moedig students-- veral 614 00:29:19,930 --> 00:29:23,090 As daar op die fence-- die begin Natuurlik SAT / UNS, selfs bly SAT / UNS. 615 00:29:23,090 --> 00:29:27,310 Maar jy kan beslis oor te skakel na 'n brief graad deur die vyfde Maandag in die term. 616 00:29:27,310 --> 00:29:31,560 >> Om eerlik te wees, toe ek was 'n groentjie in 1995, 617 00:29:31,560 --> 00:29:34,630 Ek myself het nie eens CS50 want ek het nie die senuwee 618 00:29:34,630 --> 00:29:36,540 om werklik te voet stap in die klaskamer. 619 00:29:36,540 --> 00:29:40,020 Dit was 'n domein veels te onbekend aan my en eintlik net 620 00:29:40,020 --> 00:29:43,080 Vir diegene van my vriende, eerlik, wat al die programmering 621 00:29:43,080 --> 00:29:45,570 want hulle was van ses of miskien 10-jaar-oud. 622 00:29:45,570 --> 00:29:48,640 En dit was net omdat ek staat CS50 te neem in my dag 623 00:29:48,640 --> 00:29:52,720 in die ekwivalent weergawe van SAT / UNS-- slaag / druip terug in die day-- 624 00:29:52,720 --> 00:29:53,850 dat selfs ek het 50. 625 00:29:53,850 --> 00:29:57,440 En een of ander manier, ek is hier weer met jou vandag. 626 00:29:57,440 --> 00:30:00,690 >> Nou intussen wat jy nog moet in gedagte hou sowat 50 627 00:30:00,690 --> 00:30:01,910 is gelyktydige registrasie. 628 00:30:01,910 --> 00:30:03,785 In teenstelling met gerugte dat jy dalk gehoor het, 629 00:30:03,785 --> 00:30:07,650 jy kan, in werklikheid, gelyktydig skryf in CS50 en 'n ander klas wat 630 00:30:07,650 --> 00:30:12,150 vergader op dieselfde of 'n oorvleueling tyd as CS50 se lesings hier. 631 00:30:12,150 --> 00:30:16,420 Sien die leerplan van die besonderhede van die implementering daarvan. 632 00:30:16,420 --> 00:30:19,540 >> Lesings, intussen, in teenstelling met Wat is amptelik in die katalogus, 633 00:30:19,540 --> 00:30:22,060 sal oor die algemeen net ontmoet vir net 'n uur. 634 00:30:22,060 --> 00:30:24,240 By geleentheid kan loop ons 'n bietjie lank. 635 00:30:24,240 --> 00:30:26,800 Maar hou in gedagte dat die doel in CS50 se lesings 636 00:30:26,800 --> 00:30:28,980 is om jou te voorsien met 'n konseptuele oorsig, 637 00:30:28,980 --> 00:30:31,830 hopelik 'n paar demonstrasies, miskien selfs 'n paar geskenke, 638 00:30:31,830 --> 00:30:34,390 van wat wag vir die week wat volg. 639 00:30:34,390 --> 00:30:37,730 >> En so in lesings, sal ons ondersoek daardie onderwerpe en voorbeelde saam 640 00:30:37,730 --> 00:30:41,420 bring studente op die verhoog, en personeel op die verhoog so dikwels as wat ons kan, 641 00:30:41,420 --> 00:30:43,740 vir net 'n paar uur elke week. 642 00:30:43,740 --> 00:30:47,435 Afdelings, intussen, sal wat aangebied word deur hierdie mense here-- baie 643 00:30:47,435 --> 00:30:50,060 van hulle onderrig genote, sommige van hulle natuurlik assistants-- wil 644 00:30:50,060 --> 00:30:51,160 weekliks gebeur. 645 00:30:51,160 --> 00:30:52,940 >> En wat is die sleutel te hou in gedagte is dat ons 646 00:30:52,940 --> 00:30:55,920 nie have-- nie anders as die eerste Nagte, die musiek class-- 647 00:30:55,920 --> 00:30:59,220 verskillende spore van artikels vir studente minder gemaklik, meer 648 00:30:59,220 --> 00:31:01,150 gemaklik, en iewers tussen in. 649 00:31:01,150 --> 00:31:03,559 En eerlik, jy weet as jy minder gemaklik. 650 00:31:03,559 --> 00:31:05,600 En jy waarskynlik weet of jy meer gemaklik. 651 00:31:05,600 --> 00:31:09,920 En as jy nie seker is, is jy per definisie iewers tussen in. 652 00:31:09,920 --> 00:31:12,850 So wanneer dit kom tyd om te deel in 'n week of so, volgens die leerplan, 653 00:31:12,850 --> 00:31:14,070 ons sal vra om die vraag. 654 00:31:14,070 --> 00:31:16,890 En jy kan self-kies op jou eie comfort vlak 655 00:31:16,890 --> 00:31:22,220 en met students-- wees met groen dots-- soortgelyke comfort vlak vir jou. 656 00:31:22,220 --> 00:31:25,710 >> Intussen het ons 'n probleem stel, wat sal uiteindelik 657 00:31:25,710 --> 00:31:28,310 jou ervaring in hierdie kursus te definieer. 658 00:31:28,310 --> 00:31:30,370 Hulle is tipies aangebied in verskeie uitgawes. 659 00:31:30,370 --> 00:31:34,150 'N standaard uitgawe dat ons die meeste verwag elke student in die kursus aan te pak 660 00:31:34,150 --> 00:31:37,900 maar ook 'n sogenaamde hacker uitgawe wat bied geen vorm van ekstra krediet 661 00:31:37,900 --> 00:31:41,980 blatante maar regtig die bragging rights om te sê dat jy probeer en aangepak 662 00:31:41,980 --> 00:31:45,250 die kursus se hacker uitgawes wat die soortgelyke materiaal benader 663 00:31:45,250 --> 00:31:47,370 maar van 'n meer gesofistikeerde hoek. 664 00:31:47,370 --> 00:31:49,480 >> Wat ons bied vir die standaard uitgawe, vir, 665 00:31:49,480 --> 00:31:51,420 weer 'n super meerderheid van studente, is nie 666 00:31:51,420 --> 00:31:54,060 net loop-throughs, wat videos gelei deur personeel die kursus se 667 00:31:54,060 --> 00:31:57,840 wat werklik loop jy deur die Natuurlik se probleme en moontlike ontwerp 668 00:31:57,840 --> 00:31:58,910 implementering. 669 00:31:58,910 --> 00:32:01,434 En ons het ook na die Trouens, bied postmortems, 670 00:32:01,434 --> 00:32:03,350 waardeur as jy wonder hoe jy kan hê 671 00:32:03,350 --> 00:32:05,930 of moet opgelos het 'n paar probleem, die dosente 672 00:32:05,930 --> 00:32:08,640 sal loop jy deur diegene wat op video as well. 673 00:32:08,640 --> 00:32:14,350 >> Intussen, wat wag ook is vyf dae laat en die feit 674 00:32:14,350 --> 00:32:16,680 dat ons sal daal jou laagste probleem gestel telling. 675 00:32:16,680 --> 00:32:20,370 Ons het seker besef dat in ruil vir die werklading wat 50 word verwag 676 00:32:20,370 --> 00:32:24,020 van julle lewe in die pad soms, indien nie vyf keer. 677 00:32:24,020 --> 00:32:26,150 En so sal dit bied jy 'n bietjie van buigsaamheid, 678 00:32:26,150 --> 00:32:29,400 die uitbreiding van jou sperdatum van, sê, 'n Donderdag middag na 'n Vrydag middag. 679 00:32:29,400 --> 00:32:33,150 Sien die leerplan vir die implementering besonderhede daarvan. 680 00:32:33,150 --> 00:32:34,702 >> Nou wat nou wag? 681 00:32:34,702 --> 00:32:36,660 En dit is net voorkom vir my nou net hoe lank 682 00:32:36,660 --> 00:32:38,333 Ek het julle staan ​​hier op die verhoog. 683 00:32:38,333 --> 00:32:39,060 >> [Gelag] 684 00:32:39,060 --> 00:32:41,867 >> David J. Malan Maar ons sal kry om die klimaks afwerking voor lank. 685 00:32:41,867 --> 00:32:43,700 So, wat wag in terme van die probleem stelle? 686 00:32:43,700 --> 00:32:47,099 Wel, miskien 'n teaser van wat ons almal het verlede jaar met jou voorgangers. 687 00:32:47,099 --> 00:32:49,140 In die eerste probleem stel verlede jaar, het ons ' 688 00:32:49,140 --> 00:32:51,630 Nuuts af, 'n grafiese taal wat 689 00:32:51,630 --> 00:32:54,570 kan jy letterlik program sleep stukke van die legkaart, 690 00:32:54,570 --> 00:32:57,220 soos hierdie, wat herinner aan die konstrukte 691 00:32:57,220 --> 00:32:59,260 sal net een week sien Daarom, toe ons skakel 692 00:32:59,260 --> 00:33:01,870 na 'n meer tradisionele taal, bekend as C. 693 00:33:01,870 --> 00:33:03,930 >> Verlede jaar het ons voortgegaan om hierdie probleem stel, 694 00:33:03,930 --> 00:33:06,720 wat vir kriptografie, die skommeling van inligting 695 00:33:06,720 --> 00:33:10,410 om dit te hou van die regering of vriende se oë wat jy nie wil hê om dit te sien. 696 00:33:10,410 --> 00:33:12,540 Ingebou in hier is 'n boodskap wat vinnig jy 697 00:33:12,540 --> 00:33:15,740 sal in staat wees om te ontsyfer of de-geskarrel. 698 00:33:15,740 --> 00:33:17,960 >> Tempo was 'n probleem stel verlede jaar, waarin 699 00:33:17,960 --> 00:33:21,530 jy hierdie nuwe gevind ontwikkeling gebruik vaardighede om werklik te implementeer 700 00:33:21,530 --> 00:33:24,840 'n spel wherein-- as jy kan onthou uit childhood-- 701 00:33:24,840 --> 00:33:28,040 Die doel was om die te bash stene wat bo-op die skerm 702 00:33:28,040 --> 00:33:30,190 hier, die opbou van 'n telling langs die pad, 703 00:33:30,190 --> 00:33:35,460 en implementering van jou eie algoritmes waarmee hierdie oplossing uiteindelik 704 00:33:35,460 --> 00:33:37,357 kan jy die spel speel. 705 00:33:37,357 --> 00:33:39,440 Intussen het later in die semester, sal ons gee jou 706 00:33:39,440 --> 00:33:43,470 'n woordeboek van 143091 Engelse woorde. 707 00:33:43,470 --> 00:33:46,300 En jy sal uitgedaag word 'n program te skryf wat 708 00:33:46,300 --> 00:33:50,260 spel tjeks, dokumente, deur laai dat baie woorde in die geheue 709 00:33:50,260 --> 00:33:52,300 so doeltreffend as moontlik te maak. 710 00:33:52,300 --> 00:33:54,240 Die algemeen beit jy teen jou klasmaats 711 00:33:54,240 --> 00:33:56,610 as jy kies in 'n bietjie van 'n uitdaging in die leier raad 712 00:33:56,610 --> 00:34:00,090 om te sien wie kan die geringste sekondes hardloop tyd, 713 00:34:00,090 --> 00:34:03,550 en die minste aantal megagrepe geheue, 714 00:34:03,550 --> 00:34:08,659 en eintlik verfyn jou programme ongelooflik hulpbron doeltreffend nie 715 00:34:08,659 --> 00:34:09,820 net die tyd. 716 00:34:09,820 --> 00:34:13,239 >> Verlede jaar het ook gekyk na die einde van die semester op die web ontwikkeling. 717 00:34:13,239 --> 00:34:16,230 En inderdaad, sal ons weer doen wat jaar met verskeie probleem stelle, 718 00:34:16,230 --> 00:34:20,290 bekend te stel aan die tegnieke en die ingesteldheid waarmee jy kan aansoek doen 719 00:34:20,290 --> 00:34:23,489 hierdie programmeringsvaardighede te webtuistes, dinamiese webblaaie, 720 00:34:23,489 --> 00:34:26,639 webwerwe wat eintlik los probleme en anders optree 721 00:34:26,639 --> 00:34:30,620 en is nie net statiese webwerwe met statiese inligting. 722 00:34:30,620 --> 00:34:32,854 >> Die finale projek uiteindelik definieer, al is, 723 00:34:32,854 --> 00:34:34,770 die klimaks van die kursus vir studente, waarin 724 00:34:34,770 --> 00:34:37,228 jy sal uitgedaag word om te implementeer mees iets van belang 725 00:34:37,228 --> 00:34:40,590 aan jou, so lank as dit een of ander manier trek op die kursus se lesse. 726 00:34:40,590 --> 00:34:42,930 >> En as jy in die gesien video aan die begin, 727 00:34:42,930 --> 00:34:47,340 ons sal die semester met die gevolgtrekking CS50 Hackathon, wat as onbekende, 728 00:34:47,340 --> 00:34:51,420 begin om 07:00 een nag en eindig op 07:00 die volgende oggend. 729 00:34:51,420 --> 00:34:53,614 Rondom 09:00, sal ons Om in die eerste ete. 730 00:34:53,614 --> 00:34:55,489 Rondom 01:00, sal ons Om in die tweede ete. 731 00:34:55,489 --> 00:34:57,490 En as jy nog staan ​​op 05:00, ons 732 00:34:57,490 --> 00:35:00,320 sal shuttle bus jy te IHOP vir ontbyt. 733 00:35:00,320 --> 00:35:04,980 >> Die CS50 Fair, intussen, is 'n gebeurtenis waartoe 2000 plus fakulteit, studente, 734 00:35:04,980 --> 00:35:07,850 en personeel van regoor kampus sal kom jou prestasies te sien 735 00:35:07,850 --> 00:35:10,150 in die loop en die finale projekte en skeppings 736 00:35:10,150 --> 00:35:14,960 wat jy skep op jou skootrekenaars, desktops, of miskien selfs gloeilampe. 737 00:35:14,960 --> 00:35:17,340 >> Intussen kantoorure en die ondersteuning struktuur. 738 00:35:17,340 --> 00:35:20,480 En nou is dit sou gewees het 'n beter tyd om julle almal te bring. 739 00:35:20,480 --> 00:35:24,310 >> Kantoorure vier nagte plaasvind 'n week vir verskeie ure elke nag 740 00:35:24,310 --> 00:35:27,710 algemeen 20 tot 30 van die Natuurlik se personeel aan diens in 'n keer 741 00:35:27,710 --> 00:35:31,240 om jou te voorsien met 'n intieme een-tot-een-geleenthede vir ondersteuning 742 00:35:31,240 --> 00:35:33,790 met die kursus se probleem stelle. 743 00:35:33,790 --> 00:35:36,120 Tutoring te wees beskikbaar is nie, veral 744 00:35:36,120 --> 00:35:39,630 vir studente minder comfortable-- of waag om te sê die minste comfortable-- vir wie 745 00:35:39,630 --> 00:35:41,869 kantoorure is nie die die meeste koester omgewing 746 00:35:41,869 --> 00:35:43,660 en is beslis nie die meeste stres-vrye. 747 00:35:43,660 --> 00:35:47,430 Veral wanneer spertye te druk, ons sal proaktief paar jy onsself 748 00:35:47,430 --> 00:35:51,440 met 'n lid van die personeel te werk met op sommige gereelde skedule as jou behoeftes 749 00:35:51,440 --> 00:35:53,850 en hulle skedule dit toelaat. 750 00:35:53,850 --> 00:35:55,260 >> En personeel. 751 00:35:55,260 --> 00:36:01,020 Laat my toe om Davon, Rob te stel, en Gabriel, vanjaar se koppe. 752 00:36:01,020 --> 00:36:02,370 As jy wil graag elke say-- 753 00:36:02,370 --> 00:36:03,349 >> [Applous] 754 00:36:03,349 --> 00:36:03,849 --a woord. 755 00:36:03,849 --> 00:36:05,328 [Applous] 756 00:36:05,328 --> 00:36:10,270 757 00:36:10,270 --> 00:36:13,220 Davon hier is die Natuurlik se bestuurder, wat 758 00:36:13,220 --> 00:36:15,730 beteken in sy voltydse rol Hy help met die uitvoering 759 00:36:15,730 --> 00:36:18,424 en logistiek van CS50. 760 00:36:18,424 --> 00:36:19,340 Davon: Ja, hi, ouens. 761 00:36:19,340 --> 00:36:20,965 Jy sal 'n baie te sien aan my by kantoorure. 762 00:36:20,965 --> 00:36:22,110 Ek sal onderrig word om dele. 763 00:36:22,110 --> 00:36:25,150 En as jy skiet die e-pos wat voorlê, Ek sal waarskynlik reageer word. 764 00:36:25,150 --> 00:36:27,670 So ek sal sien baie van julle almal semester. 765 00:36:27,670 --> 00:36:29,890 En welkom by CS50. 766 00:36:29,890 --> 00:36:38,330 >> David J. Malan En nou Gabriel, wat self was net 'n groentjie verlede jaar, 767 00:36:38,330 --> 00:36:41,820 maar vir die afgelope paar jaar het is wat sy eie weergawe van CS50 768 00:36:41,820 --> 00:36:44,660 in Brasilië, waar hy afgelaai al van die kursus se content-- 769 00:36:44,660 --> 00:36:46,890 wat duidelik verfilm en geplaas online-- 770 00:36:46,890 --> 00:36:51,480 sodat hy dit kan vertaal na Portugees en dan leer meer as 100 771 00:36:51,480 --> 00:36:54,610 van sy klasmaats oor die loop van 'n paar jaar, 772 00:36:54,610 --> 00:36:57,650 onderrig in sy moedertaal die kursus se kurrikulum. 773 00:36:57,650 --> 00:36:58,964 >> GABRIEL: Hello. 774 00:36:58,964 --> 00:37:00,912 >> [Applous] 775 00:37:00,912 --> 00:37:06,669 776 00:37:06,669 --> 00:37:07,710 GABRIEL: Hi, ek is Gabriël. 777 00:37:07,710 --> 00:37:09,340 Ek is die hoof TF van die kursus. 778 00:37:09,340 --> 00:37:10,780 En ek hoop dat jy lief CS50. 779 00:37:10,780 --> 00:37:12,830 Dit is CS50. 780 00:37:12,830 --> 00:37:14,697 >> David J. Malan Nou vir Rob. 781 00:37:14,697 --> 00:37:15,780 O, jy wil inleiding? 782 00:37:15,780 --> 00:37:16,696 >> ROB: Nee, ek weet nie. 783 00:37:16,696 --> 00:37:18,225 [Gelag] 784 00:37:18,225 --> 00:37:19,475 David J. Malan en Rob Boden. 785 00:37:19,475 --> 00:37:22,300 [Gelag] 786 00:37:22,300 --> 00:37:23,800 ROB: Hi, ek is Rob. 787 00:37:23,800 --> 00:37:27,220 Dit is my vyfde jaar betrokke by die kursus. 788 00:37:27,220 --> 00:37:29,220 Elke jaar, is dit net 'n beter en beter klas 789 00:37:29,220 --> 00:37:31,550 sodat julle ouens is duidelik gaan awesome wees. 790 00:37:31,550 --> 00:37:33,181 Ek hoop julle almal het baie pret met dit. 791 00:37:33,181 --> 00:37:34,430 Ek gaan om pret te hê met dit. 792 00:37:34,430 --> 00:37:36,670 So sien jou rond. 793 00:37:36,670 --> 00:37:38,445 >> David J. Malan En tyd sal nie toelaat us-- 794 00:37:38,445 --> 00:37:39,670 >> [Applous] 795 00:37:39,670 --> 00:37:41,661 >> Tyd sal nie toelaat dat ons almal bekend te stel 796 00:37:41,661 --> 00:37:44,660 op die verhoog en al van hul kollegas wat inkopies klasse vandag. 797 00:37:44,660 --> 00:37:47,390 Maar laat my in te voer Belinda en CS50 legkaart 798 00:37:47,390 --> 00:37:49,550 Dag, wat wag om hierdie Eerskomende Saterdag, wat 799 00:37:49,550 --> 00:37:51,800 is die eerste van die Natuurlik se groot gebeurtenisse. 800 00:37:51,800 --> 00:37:54,300 >> Hierdie een in die besonder bedoel huis hamer die punt 801 00:37:54,300 --> 00:37:57,580 dat die rekenaar wetenskap is uiteindelik nie oor ontwikkeling nie, maar eerder 802 00:37:57,580 --> 00:37:59,280 oor die probleem oplos meer algemeen. 803 00:37:59,280 --> 00:38:01,450 En legkaart Day, soos u sal sien, sal jy bring 804 00:38:01,450 --> 00:38:04,207 en jou klasmaats saam op ons hoop dat hierdie Saterdag. 805 00:38:04,207 --> 00:38:04,961 >> BELINDA: OK. 806 00:38:04,961 --> 00:38:05,750 Hi, ouens. 807 00:38:05,750 --> 00:38:06,740 So dankie. 808 00:38:06,740 --> 00:38:10,120 So as ons roemryke kaptein gesê, my naam se Belinda. 809 00:38:10,120 --> 00:38:12,100 Ek is 'n stage by Quincy House. 810 00:38:12,100 --> 00:38:15,730 >> Ek, net soos julle, het CS50 verlede jaar, regtig mal daaroor. 811 00:38:15,730 --> 00:38:17,960 Ek het 'n sagte plekkie vir julle ouens in die derde ry. 812 00:38:17,960 --> 00:38:21,384 En ek is trots om te sê, ek is nou in 'n toegewyde verhouding 813 00:38:21,384 --> 00:38:22,300 met CS50 [onhoorbaar]. 814 00:38:22,300 --> 00:38:22,799 OK. 815 00:38:22,799 --> 00:38:26,140 Dit was my lam weergawe van 'n grap. 816 00:38:26,140 --> 00:38:28,320 >> In elk geval, so beweeg op, wou net te nooi 817 00:38:28,320 --> 00:38:31,439 julle al die i-laboratorium, of HBS korwe. 818 00:38:31,439 --> 00:38:33,730 Ons gaan word met Legkaart Day 12:00-03:00. 819 00:38:33,730 --> 00:38:37,680 En dit is 'n wonderlike geleentheid vir jou ouens jou mede CS vriende te ontmoet, 820 00:38:37,680 --> 00:38:42,780 los 'n paar nie-CS raaisels, soos Kaptein genoem, en eet ook 'n paar gratis kos, 821 00:38:42,780 --> 00:38:46,910 verdien 'n paar awesome pryse, soos geskenk kaarte, $ 75 per persoon, 822 00:38:46,910 --> 00:38:48,400 en also-- wat was dit? 823 00:38:48,400 --> 00:38:49,540 Wii U of iets? 824 00:38:49,540 --> 00:38:50,333 Wii U? 825 00:38:50,333 --> 00:38:51,040 Ja. 826 00:38:51,040 --> 00:38:52,330 Vir ons tombola. 827 00:38:52,330 --> 00:38:52,830 Awesome. 828 00:38:52,830 --> 00:38:54,310 So ek sal hou om na die klas. 829 00:38:54,310 --> 00:38:56,770 En as julle enige vrae, laat my weet. 830 00:38:56,770 --> 00:38:59,980 >> David J. Malan en jy sal sien, buite hierdie is daar is niks om te doen vandag. 831 00:38:59,980 --> 00:39:01,920 Die eerste probleem stel gaan uit Vrydag. 832 00:39:01,920 --> 00:39:05,420 Maar ons huis toe te bring vandag, wil ek graag stel jy spesifiek 'n meer 833 00:39:05,420 --> 00:39:09,080 lid van die personeel, Colton Ogden hier, wie se hande is nou 834 00:39:09,080 --> 00:39:12,250 bo jou beskerm met hierdie MIDI kontroleerder 835 00:39:12,250 --> 00:39:15,170 huis tot op die punt verder hamer dat die rekenaar wetenskap, ook 836 00:39:15,170 --> 00:39:19,130 het toepaslikheid ver buite ingenieurswese en die stam en rekenaarwetenskap self, 837 00:39:19,130 --> 00:39:22,890 selfs tot op domeine soos musiek. 838 00:39:22,890 --> 00:39:30,590 >> Colton het vriendelik offered-- Ek het gedink een van hulle is van plan om die fokus te los. 839 00:39:30,590 --> 00:39:34,400 Andrew, as ons kon ontbied fokus hier vir net 'n oomblik. 840 00:39:34,400 --> 00:39:36,780 >> Wat Colton gedoen vooruit is program 841 00:39:36,780 --> 00:39:40,345 hierdie toestel, hierdie pad van knoppies wat jy sien foto hier, 842 00:39:40,345 --> 00:39:42,470 as 'n MIDI kontroleerder, waardeur elk van die knoppies 843 00:39:42,470 --> 00:39:47,080 is bedraad om 'n bepaalde musikale noot of 'n gesonde, meer in die algemeen 'n opname, 844 00:39:47,080 --> 00:39:50,445 sodanig dat deur die speel van patrone van hierdie knoppies, baie soos patrone van stukkies, 845 00:39:50,445 --> 00:39:52,620 ander kan verteenwoordig hoër vlak konsepte. 846 00:39:52,620 --> 00:39:56,750 Sal hy in staat wees om uiteindelik ons huis toe te neem vandag hier? 847 00:39:56,750 --> 00:39:59,540 Sonder verdere uitstel het, indien ons die ligte kan verswak 848 00:39:59,540 --> 00:40:03,145 en draai op die skerm agter Colton. 849 00:40:03,145 --> 00:40:03,865 >> Publiek: Woo! 850 00:40:03,865 --> 00:40:06,090 >> David J. Malan Dit is CS50. 851 00:40:06,090 --> 00:40:10,518 >> [Speel van musiek] 852 00:40:10,518 --> 00:42:46,018 853 00:42:46,018 --> 00:42:49,420 >> [Applous] 854 00:42:49,420 --> 00:42:54,766 855 00:42:54,766 --> 00:42:56,450 >> Dit is dit vir CS50. 856 00:42:56,450 --> 00:42:57,950 Ons sal sien jy Vrydag. 857 00:42:57,950 --> 00:42:59,890 Sommige koek wag vir jou in die transept. 858 00:42:59,890 --> 00:43:04,046 859 00:43:04,046 --> 00:43:08,850 >> [Speel van musiek] 860 00:43:08,850 --> 00:45:49,227