1 00:00:14,320 --> 00:00:17,970 Så det er min største fornøjelse at byde jer alle her i dag 2 00:00:17,970 --> 00:00:20,600 for første forelæsning af, godt, Introduktion 3 00:00:20,600 --> 00:00:22,510 til Computing og programmering. 4 00:00:22,510 --> 00:00:29,110 Også kendt som CS50 eller godt, CPSC 100, officielt her på Yale. 5 00:00:29,110 --> 00:00:34,820 >> Så vi kunne ikke være mere begejstret at byde jer alle her. 6 00:00:34,820 --> 00:00:36,620 Mit navn er Patrick Rebeschini. 7 00:00:36,620 --> 00:00:39,180 Jeg er hovedet instruktør for klassen. 8 00:00:39,180 --> 00:00:43,600 Jeg er her repræsenterer en gruppe af omkring 60 medarbejdere 9 00:00:43,600 --> 00:00:46,380 der vil arbejde med dig hele semesteret. 10 00:00:46,380 --> 00:00:49,040 Dette tal er næsten 60 af os. 11 00:00:49,040 --> 00:00:52,440 Endnu langs den ekstraordinære Niveauet for forpligtelserne 12 00:00:52,440 --> 00:00:56,555 at vi sætter ind i denne klasse, gør CS50 klassen 13 00:00:56,555 --> 00:01:00,690 på Yale University, der tilbyder den største grad af støtte 14 00:01:00,690 --> 00:01:01,960 til alle jer. 15 00:01:01,960 --> 00:01:05,940 Og vi kunne ikke være mere stolt af tilbyder denne klasse her igen. 16 00:01:05,940 --> 00:01:11,380 >> Faktisk som du vil snart opleve, CS50 er meget mere end en klasse. 17 00:01:11,380 --> 00:01:13,120 Det er et fællesskab. 18 00:01:13,120 --> 00:01:15,250 Og du vil være en del snart af dette fællesskab. 19 00:01:15,250 --> 00:01:18,730 Dette er det andet år, Yale tilbyder denne klasse. 20 00:01:18,730 --> 00:01:21,640 Vi bygger på den yderste succes sidste år, hvor 21 00:01:21,640 --> 00:01:24,340 for første gang, her på dette universitet, 22 00:01:24,340 --> 00:01:28,930 bachelor læring assistent blev vedtaget i klasseværelser. 23 00:01:28,930 --> 00:01:32,650 Det hele startede med denne klasse sidste år. 24 00:01:32,650 --> 00:01:37,050 >> Så som du ved, er klassen undervises sammen med Harvard University. 25 00:01:37,050 --> 00:01:39,920 At undervise dette kursus vi er relying-- vi kan 26 00:01:39,920 --> 00:01:44,850 regne med stor ekspertise David Malan og Harvard holdet. 27 00:01:44,850 --> 00:01:48,930 David har været undervisning CS50 for godt 10 år nu. 28 00:01:48,930 --> 00:01:51,160 Og hvert år har han været skubbe grænserne 29 00:01:51,160 --> 00:01:54,210 og forbedre oplevelsen klasseværelset. 30 00:01:54,210 --> 00:01:58,940 Igen kunne vi ikke være mere glade for at fortsætte dette samarbejde med dem. 31 00:01:58,940 --> 00:02:01,840 >> Faktisk er en af ​​de mest interessante dele, 32 00:02:01,840 --> 00:02:06,560 Jeg vil sige at køre denne klasse nu, både på Harvard og her på Yale, 33 00:02:06,560 --> 00:02:09,420 er det virkelig utroligt gensidig inspiration 34 00:02:09,420 --> 00:02:13,770 af ideer, der tager sigte på at forbedre lærerig oplevelse for jer alle. 35 00:02:13,770 --> 00:02:18,130 Så som et resultat af denne omfattende samarbejde mellem de to 36 00:02:18,130 --> 00:02:23,070 universitet, CS50 er stolt over at annoncere den nye version i år 37 00:02:23,070 --> 00:02:24,770 med mærkbare ændringer. 38 00:02:24,770 --> 00:02:27,580 David vil alle fortælle os om dem nu. 39 00:02:27,580 --> 00:02:31,450 Så please-- dette væsen sagde, bedes du tilmelde mig 40 00:02:31,450 --> 00:02:34,220 og velkommen til at give et store runde af bifald 41 00:02:34,220 --> 00:02:37,290 at byde velkommen til David og Harvard hold her på Yale. 42 00:02:37,290 --> 00:02:40,032 >> [BIFALD] 43 00:02:40,032 --> 00:02:41,882 44 00:02:41,882 --> 00:02:43,247 >> DAVID MALAN: Tak. 45 00:02:43,247 --> 00:02:43,746 Tak. 46 00:02:43,746 --> 00:02:46,550 47 00:02:46,550 --> 00:02:51,400 Dette er CS50, Harvard University og Yale University introduktion 48 00:02:51,400 --> 00:02:53,960 til den intellektuelle virksomheder af datalogi 49 00:02:53,960 --> 00:02:55,490 og kunsten at programmering. 50 00:02:55,490 --> 00:02:59,640 Og hvad det betyder, er, at dette kursus i sidste ende, handler om problemløsning. 51 00:02:59,640 --> 00:03:01,849 Faktisk mange af jer måske er kommet ud af gymnasiet 52 00:03:01,849 --> 00:03:04,931 eller har brugt de sidste par år gad vide hvad nogle af dine venner 53 00:03:04,931 --> 00:03:06,380 gjorde sidste år eller i andre klasser. 54 00:03:06,380 --> 00:03:08,449 Og dog, er virkeligheden er, uanset hvad vi 55 00:03:08,449 --> 00:03:11,740 gøre ved slutningen af ​​dagen i denne klasse, det vil være om problemløsning. 56 00:03:11,740 --> 00:03:14,320 >> Og som sådan, måske tage nogle tryghed i det faktum, 57 00:03:14,320 --> 00:03:16,770 at 73% af de studerende, der tage denne klasse, både her 58 00:03:16,770 --> 00:03:20,235 på Yale samt på Harvard, har aldrig taget en CS klasse før. 59 00:03:20,235 --> 00:03:22,610 Så hvis du sidder her i publikum i dag spekulerer 60 00:03:22,610 --> 00:03:24,520 hvorfor du sidder her i publikum i dag, 61 00:03:24,520 --> 00:03:26,300 eller måske du bare fulgt sammen med nogle venner, 62 00:03:26,300 --> 00:03:28,299 eller måske du har været en lidt spændt på, hvad 63 00:03:28,299 --> 00:03:30,194 datalogi og programmering er, indser 64 00:03:30,194 --> 00:03:32,860 at de fleste af dine klassekammerater til til venstre og til højre for dig 65 00:03:32,860 --> 00:03:35,840 er meget i samme demografiske. 66 00:03:35,840 --> 00:03:38,120 >> Og ja, hvis vi ser På sidste års statistik 67 00:03:38,120 --> 00:03:42,760 inden de studerende af CS50, både her og på Harvard, 58% af de studerende 68 00:03:42,760 --> 00:03:44,630 beskriver sig selv som mindre komfortabel. 69 00:03:44,630 --> 00:03:46,090 9% er mere komfortabel. 70 00:03:46,090 --> 00:03:47,699 Og så 33% er et sted midt imellem. 71 00:03:47,699 --> 00:03:50,240 Og der er ingen formel definition hvad disse skovle betyder. 72 00:03:50,240 --> 00:03:52,335 Du slags ved, du er mindre behageligt, hvis du er. 73 00:03:52,335 --> 00:03:54,840 Du føler lidt urolig med måske at være i klassen. 74 00:03:54,840 --> 00:03:57,840 Du er ikke helt sikker på, om en computer videnskab klasse er i sidste ende for dig, 75 00:03:57,840 --> 00:04:00,009 og indse, at du er i meget godt selskab. 76 00:04:00,009 --> 00:04:01,800 Og faktisk sortering, og vurderingen, 77 00:04:01,800 --> 00:04:04,466 og den feedback, og alt dette støttestruktur i klassen 78 00:04:04,466 --> 00:04:06,550 til sidst meget individuel. 79 00:04:06,550 --> 00:04:09,187 Højere grad end de fleste helst anden klasse ved design. 80 00:04:09,187 --> 00:04:11,520 Og ja, der i sidste ende spørgsmål i denne klasse er ikke 81 00:04:11,520 --> 00:04:14,180 så meget, hvor du ender op i forhold til andre, 82 00:04:14,180 --> 00:04:18,070 men hvor man, i uge 11 eller sidste, og i forhold til dig selv i uge 83 00:04:18,070 --> 00:04:20,372 0 her vores første. 84 00:04:20,372 --> 00:04:21,330 Så hvad betyder det? 85 00:04:21,330 --> 00:04:24,750 Nå, det betyder af disse 73% af studerende sidste år, der aldrig havde taget 86 00:04:24,750 --> 00:04:26,917 en CS klasse før, ved semesterstart, de 87 00:04:26,917 --> 00:04:29,500 var dypning i et sprog kaldet Scratch, som vi selv 88 00:04:29,500 --> 00:04:30,340 vil se her i dag. 89 00:04:30,340 --> 00:04:32,190 Og ved udgangen af semester havde de gået 90 00:04:32,190 --> 00:04:34,700 gennem hele denne liste over udfordringer. 91 00:04:34,700 --> 00:04:36,399 Startende med et sprog kaldet c. 92 00:04:36,399 --> 00:04:38,190 Implementering, hvad er ved første øjekast, går 93 00:04:38,190 --> 00:04:41,010 at være lidt af en udfordring for nogle, men temmelig glædeligt, når du 94 00:04:41,010 --> 00:04:44,510 få Super Mario hoppende op og ned en pyramide 95 00:04:44,510 --> 00:04:47,005 gennemført, omend, med blot noget, der hedder ASCII kunst. 96 00:04:47,005 --> 00:04:49,380 Implementering sidste year-- hvad de studerende sidste år derefter 97 00:04:49,380 --> 00:04:53,270 gjorde efter det var gennemføre deres egen Cæsar cipher og vigenere cipher. 98 00:04:53,270 --> 00:04:55,180 Så krypteringsalgoritmer som du kunne 99 00:04:55,180 --> 00:04:58,920 scramble oplysninger og derefter unscramble oplysninger til at sende hemmelige beskeder. 100 00:04:58,920 --> 00:05:00,010 Spillet af 15. 101 00:05:00,010 --> 00:05:02,260 Hvis du kan huske fra barndommen eller nogle af parterne fordel, 102 00:05:02,260 --> 00:05:05,000 den lille plastik spil hvor du flytter numrene op, ned, venstre og højre 103 00:05:05,000 --> 00:05:07,500 at forsøge at få dem i rækkefølge, faktisk at gennemføre det spil 104 00:05:07,500 --> 00:05:09,640 og løse logikken kræves der. 105 00:05:09,640 --> 00:05:11,640 Og så vi dabbled i retsvidenskab sidste år. 106 00:05:11,640 --> 00:05:13,810 >> Så i midten af ​​semesteret, studerende, der aldrig har haft 107 00:05:13,810 --> 00:05:16,130 brugt deres tastaturer til dette formål før, 108 00:05:16,130 --> 00:05:19,030 skrev software at komme sig, så at sige, 109 00:05:19,030 --> 00:05:21,420 JPEG eller fotografier at vi havde et uheld 110 00:05:21,420 --> 00:05:24,430 slettet fra et digitalt hukommelseskortet fra et kamera. 111 00:05:24,430 --> 00:05:28,130 Gendannelse hemmelige beskeder fra indersiden af ​​en bitmap billede, 112 00:05:28,130 --> 00:05:30,030 og andre sådanne typer af grafik samt. 113 00:05:30,030 --> 00:05:32,770 >> Vi omformede derefter til at give hele klassen en ordbog. 114 00:05:32,770 --> 00:05:36,330 Kun en virkelig stor tekstfil med 150.000 engelske ord. 115 00:05:36,330 --> 00:05:39,080 Og alle blev udfordret en eller anden måde at læse, så at sige, 116 00:05:39,080 --> 00:05:40,780 disse ord ind i hukommelsen. 117 00:05:40,780 --> 00:05:42,060 Ind i computerens hukommelse. 118 00:05:42,060 --> 00:05:44,310 Og så besvare spørgsmål af formen, er det et ord? 119 00:05:44,310 --> 00:05:44,934 Er det et ord? 120 00:05:44,934 --> 00:05:45,580 Er det et ord? 121 00:05:45,580 --> 00:05:47,880 Virkelig bare gennemføre en stavekontrol. 122 00:05:47,880 --> 00:05:50,320 Og så udfordrer hver andet med en stor board-- 123 00:05:50,320 --> 00:05:53,040 en leder bord for at se, hvem der kunne bruge den mindste mængde hukommelse, 124 00:05:53,040 --> 00:05:56,470 i det mindste beløb af tid til at faktisk stavekontrol store dokumenter. 125 00:05:56,470 --> 00:05:59,760 >> Vi skiftet fra da til gennemføre sin egen webserver. 126 00:05:59,760 --> 00:06:04,070 Så ikke gøre websider i sprog som HTML og CSS, hvis du er fortrolig. 127 00:06:04,070 --> 00:06:06,360 Men faktisk gennemføre den server, 128 00:06:06,360 --> 00:06:09,260 lytter på internettet for anmodninger fra browsere 129 00:06:09,260 --> 00:06:11,022 og derefter reagere på disse anmodninger. 130 00:06:11,022 --> 00:06:13,230 Så gennemføre vores egen e-handel som hjemmeside, hvor 131 00:06:13,230 --> 00:06:15,490 studerende kunne købe og sælge aktier. 132 00:06:15,490 --> 00:06:18,590 Tegning i næsten realtid aktiekurser fra Yahoo Finance. 133 00:06:18,590 --> 00:06:21,200 Og giver eleverne mulighed for at se hvordan deres portefølje udvikler sig. 134 00:06:21,200 --> 00:06:23,570 Og så endelig et mash up Google News og Google 135 00:06:23,570 --> 00:06:26,540 Maps hvorved studerende ved sigt ved vilkår ende 136 00:06:26,540 --> 00:06:30,110 havde evnen til at klikke, og runde, og søgning på et Google-kort. 137 00:06:30,110 --> 00:06:32,060 Og så se alle nyhedsartikler, der 138 00:06:32,060 --> 00:06:33,940 er proksimalt for disse særlige områder. 139 00:06:33,940 --> 00:06:36,180 Så virkelig går fra nul til 60. 140 00:06:36,180 --> 00:06:39,420 >> Og undervejs har det, vi havde sidste år kaldte, hacker tilføjelser. 141 00:06:39,420 --> 00:06:41,211 At hæve yderligere for dem af jer 142 00:06:41,211 --> 00:06:44,390 der kan meget vel have en god mængde erfaring bliver i at 9% 143 00:06:44,390 --> 00:06:45,349 på mere komfortabel. 144 00:06:45,349 --> 00:06:47,140 Så indser, at der er en meget høj loft 145 00:06:47,140 --> 00:06:49,200 selv inden de udfordringer for studerende 146 00:06:49,200 --> 00:06:50,660 kommer fra en anden baggrund. 147 00:06:50,660 --> 00:06:52,618 Fordi i slutningen af den dag, vi er i sidste ende 148 00:06:52,618 --> 00:06:54,910 fokuseret ganske enkelt på dette. 149 00:06:54,910 --> 00:06:57,010 >> Men hvad betyder dette betyde, problemløsning? 150 00:06:57,010 --> 00:06:59,100 Så lad os foreslå, at vi destillere det sådan. 151 00:06:59,100 --> 00:07:01,550 Så problemløsning er virkelig netop denne form for billede. 152 00:07:01,550 --> 00:07:04,675 Så du har fået input til nogle problemer, noget, du rent faktisk ønsker at løse. 153 00:07:04,675 --> 00:07:07,020 Målet er at få output, en løsning på dette problem. 154 00:07:07,020 --> 00:07:09,950 Og så i midten er hvad vi vil kalde en sort boks. 155 00:07:09,950 --> 00:07:13,970 Du behøver ikke nødvendigvis kender eller endda ligeglad med, hvad der er indeni den sorte boks. 156 00:07:13,970 --> 00:07:16,670 Alt du ved er, at når du fodrer input ind i det, 157 00:07:16,670 --> 00:07:19,890 du forhåbentlig få output eller en opløsning fra det. 158 00:07:19,890 --> 00:07:22,380 Og mens vi i dag vil se både på ind- og udgange, 159 00:07:22,380 --> 00:07:24,838 vi får lang sigt, og over løbet af hele semestret, 160 00:07:24,838 --> 00:07:26,880 fokusere på, hvad der er indeni den kasse. 161 00:07:26,880 --> 00:07:30,040 >> Og deri vil ligge noget, der hedder algoritmer. 162 00:07:30,040 --> 00:07:33,300 Trin for trin instruktioner til faktisk løse nogle problemer. 163 00:07:33,300 --> 00:07:35,090 Men hvad er et eksempel på nogle input? 164 00:07:35,090 --> 00:07:37,840 Så måske en simpel ting på start af hvert skoleår, nogen 165 00:07:37,840 --> 00:07:39,090 måske ønsker at tage fremmøde. 166 00:07:39,090 --> 00:07:42,030 Så vi kan gøre en, to, tre, fire, fem, seks, 167 00:07:42,030 --> 00:07:44,010 og hvordan ville jeg holde styr på disse oplysninger. 168 00:07:44,010 --> 00:07:46,051 Jeg kunne bare gå en, to, tre, fire, fem, seks. 169 00:07:46,051 --> 00:07:47,720 Og bare bruge slags enkelt cifre. 170 00:07:47,720 --> 00:07:51,210 >> Eller jeg kunne faktisk optage dette lidt længere sigt. 171 00:07:51,210 --> 00:07:53,340 Og hvordan gør jeg repræsenterer alle mennesker i dette rum? 172 00:07:53,340 --> 00:07:54,900 Tja, jeg kan gøre noget lignende, OK. 173 00:07:54,900 --> 00:07:56,070 Jeg ser en person. 174 00:07:56,070 --> 00:07:56,600 Okay. 175 00:07:56,600 --> 00:08:01,180 Jeg ser en anden person, en tredje person, og så videre. 176 00:08:01,180 --> 00:08:04,070 Men ingen tæller folk som dette. 177 00:08:04,070 --> 00:08:06,952 Så bogstaveligt, de fleste af os, hvis vi er selv kommer til at tegne noget som helst, 178 00:08:06,952 --> 00:08:08,910 sandsynligvis kommer til at gå en to tre fire, 179 00:08:08,910 --> 00:08:14,240 måske få lidt fancy, fem, seks, syv, otte, ni, ti og så videre. 180 00:08:14,240 --> 00:08:16,960 >> Og det er faktisk en system kaldet unary. 181 00:08:16,960 --> 00:08:20,549 Uno, ligesom uno indebærer en, hvor man bare have et bogstav i alfabetet. 182 00:08:20,549 --> 00:08:21,840 Du har lige fået denne hash mærke. 183 00:08:21,840 --> 00:08:24,570 Og jeg, for effektivitet, bare trak disse hash mærker, i sidste ende 184 00:08:24,570 --> 00:08:25,500 som lige linjer. 185 00:08:25,500 --> 00:08:27,666 Men jeg kunne have trukket dem som små tændstikmænd. 186 00:08:27,666 --> 00:08:29,550 Hvor til at repræsentere en person, en indgang, 187 00:08:29,550 --> 00:08:32,210 Jeg bare trække en pind figur eller en hash mærke. 188 00:08:32,210 --> 00:08:33,910 Men det er ikke alt, udtryksfulde. 189 00:08:33,910 --> 00:08:38,020 >> Hvis alt jeg har, er disse hash mærker, endsige tændstikmænd, 190 00:08:38,020 --> 00:08:41,410 hvordan kan jeg repræsenterer noget som nummer 15? 191 00:08:41,410 --> 00:08:43,050 Eller 15 mennesker i lokalet? 192 00:08:43,050 --> 00:08:48,740 Jeg måske nødt til at gøre noget som en, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 193 00:08:48,740 --> 00:08:51,270 14, 15. 194 00:08:51,270 --> 00:08:52,830 Det bare ikke skalerer meget godt. 195 00:08:52,830 --> 00:08:55,730 Som indgangene få store, vi har brug for et bedre system end dette. 196 00:08:55,730 --> 00:08:57,910 >> Og det viser sig, at system, som computere bruger 197 00:08:57,910 --> 00:09:00,510 er ikke så forskellig fra hvad du og jeg ved. 198 00:09:00,510 --> 00:09:03,301 De fleste mennesker i dette rum, selv hvis du er blandt dem mindre 199 00:09:03,301 --> 00:09:06,300 komfortable, ikke nødvendigvis ved hvordan din Mac eller pc virkelig virker, 200 00:09:06,300 --> 00:09:09,810 du har sikkert mindst hørt, at under emhætten er 0'er og 1'er. 201 00:09:09,810 --> 00:09:11,390 Det såkaldte binære system. 202 00:09:11,390 --> 00:09:15,340 Så ja, computere har mere end bare hash mærker i deres ordforråd, 203 00:09:15,340 --> 00:09:17,450 men ikke så meget af en ordforråd som vi mennesker. 204 00:09:17,450 --> 00:09:19,210 >> Faktisk behøver vi mennesker ikke bruge binær. 205 00:09:19,210 --> 00:09:21,160 Bi betyder 2, 0 og 1. 206 00:09:21,160 --> 00:09:24,140 Men decimal, deca hvilket betyder 10, 0 til 9. 207 00:09:24,140 --> 00:09:27,660 Så vi har en meget mere udtryksfuld kapaciteter i vores normale menneskelige verden. 208 00:09:27,660 --> 00:09:31,720 Men jeg vil hævde, at disse systemer, binær, og decimal, og alt 209 00:09:31,720 --> 00:09:35,290 i mellem og ud over, er faktisk alle helt fortrolig. 210 00:09:35,290 --> 00:09:39,650 For eksempel overveje dette eksempel her, 123. 211 00:09:39,650 --> 00:09:43,850 Så dette virkelig er, selvfølgelig, et tal, vi kender som 123. 212 00:09:43,850 --> 00:09:47,160 Men alt jeg bare trak var bare denne mønster af symboler, glyffer så at sige. 213 00:09:47,160 --> 00:09:49,100 Slags figurer på tavlen med kridt. 214 00:09:49,100 --> 00:09:52,951 >> Men hvorfor gør vi det samme og intuitivt forstå dette som 123? 215 00:09:52,951 --> 00:09:54,700 Tja, hvis du var ligesom mig i folkeskolen, 216 00:09:54,700 --> 00:09:59,920 du sikkert erfaret, at dette er den 1s kolonne, er dette kolonnen 10s, 217 00:09:59,920 --> 00:10:01,330 dette er kolonnen 100s. 218 00:10:01,330 --> 00:10:02,860 Og hvorfor er det nyttigt? 219 00:10:02,860 --> 00:10:06,440 Tja, det er simpelt aritmetisk du nu gøre for at komme fra et mønster af symboler 220 00:10:06,440 --> 00:10:08,940 til en række vi forstår intuitivt. 221 00:10:08,940 --> 00:10:14,160 Er hvad, 100 gange 1, og derefter 10 gange 2, og 1 gange 3, 222 00:10:14,160 --> 00:10:17,860 hvilket naturligvis er kun 100, og dette er 20, og det er tre. 223 00:10:17,860 --> 00:10:19,740 Og så hvis vi tilføje dem together-- ah. 224 00:10:19,740 --> 00:10:23,880 Så deri ligger slags ræsonnement bag hvorfor dette sæt af symboler 225 00:10:23,880 --> 00:10:26,550 betyder noget virkeligt og numerisk. 226 00:10:26,550 --> 00:10:32,030 >> Nå, computere gør præcis det samme, men de kun kan tælle så højt som én. 227 00:10:32,030 --> 00:10:34,400 Betragtninger jeg var i stand til tæller så højt som tre. 228 00:10:34,400 --> 00:10:37,380 Og i virkeligheden, hvis jeg holdt vil jeg kunne gå så højt som ni i dette system. 229 00:10:37,380 --> 00:10:40,430 Computere har kun nuller og dem i deres alfabet. 230 00:10:40,430 --> 00:10:41,410 >> Så hvad betyder det? 231 00:10:41,410 --> 00:10:46,900 Tja, det betyder bare, at hvis en computer ønsker at repræsentere, siger tallet 0, 232 00:10:46,900 --> 00:10:51,300 måske ved hjælp af tre characters-- tre bogstaver i alfabetet så at sige, 233 00:10:51,300 --> 00:10:53,050 det er sådan en computer repræsenterer 0. 234 00:10:53,050 --> 00:10:54,620 Så ikke alt, skræmmende hidtil. 235 00:10:54,620 --> 00:10:56,450 Det er præcis, hvad vi mennesker ville gøre. 236 00:10:56,450 --> 00:10:59,410 Og i virkeligheden, de fleste af os ville bare ignorere nuller alligevel. 237 00:10:59,410 --> 00:11:01,640 >> En computer, hvis det ønsker at gemme nummeret 1, 238 00:11:01,640 --> 00:11:03,330 viser sig kommer til at gøre dette. 239 00:11:03,330 --> 00:11:05,630 Og en computer til at lagre nummer 2 er ikke 240 00:11:05,630 --> 00:11:09,280 vil gøre det unary systemet, som jeg hentydet til tidligere. 241 00:11:09,280 --> 00:11:11,360 Det er faktisk kommer til at gøre dette. 242 00:11:11,360 --> 00:11:13,570 Og det er sandsynligvis hvor mønstret begynder 243 00:11:13,570 --> 00:11:15,570 at blive mindre indlysende for de fleste folk. 244 00:11:15,570 --> 00:11:18,580 Det er to, det er 3. 245 00:11:18,580 --> 00:11:21,600 Mærkeligt, det er nu fire. 246 00:11:21,600 --> 00:11:24,120 Og nu er det virkelig synes at være måske kryptisk, 247 00:11:24,120 --> 00:11:26,762 men det er ikke, hvis vi betragter hvad binære egentlig betyder. 248 00:11:26,762 --> 00:11:28,720 Det betyder, at du har to bogstaver i dit alfabet. 249 00:11:28,720 --> 00:11:31,940 Så to mulige tegn for hver pladsholder. 250 00:11:31,940 --> 00:11:35,970 >> Så det virkelig betyder, at vi skal hen brug for en 1s sted, eller 2s sted, 251 00:11:35,970 --> 00:11:40,800 et 4s sted og derefter 8, og 16, 32, og 64. 252 00:11:40,800 --> 00:11:42,290 Og hvad er forskellen der? 253 00:11:42,290 --> 00:11:47,150 Ligesom disse er 1, 2, 4, 8, 16, 32, 64. 254 00:11:47,150 --> 00:11:50,690 Og før vi havde 110, 100.000, 10.000. 255 00:11:50,690 --> 00:11:53,170 Hvad er ligheden der? 256 00:11:53,170 --> 00:11:54,940 Og hvad er mønstret? 257 00:11:54,940 --> 00:11:55,505 Ja. 258 00:11:55,505 --> 00:11:57,380 STUDENT: beføjelser 2 i stedet for beføjelser 10. 259 00:11:57,380 --> 00:11:57,660 DAVID MALAN: Ja. 260 00:11:57,660 --> 00:11:59,290 Beføjelser to i stedet for beføjelser 10. 261 00:11:59,290 --> 00:12:02,160 Og så hvis jeg ønskede at holde går, 8, 16s og så forth-- 262 00:12:02,160 --> 00:12:05,822 men nu, hvis du har den slags af fingerpeg, nu det binære system 263 00:12:05,822 --> 00:12:07,280 er faktisk temmelig ligetil. 264 00:12:07,280 --> 00:12:10,910 Hvorfor er dette mønster af 0'er i verden af ​​computere 0? 265 00:12:10,910 --> 00:12:14,910 Tja, fordi det er 4 gange 0, 2 gange 0, 1 gange 0 og du får 0. 266 00:12:14,910 --> 00:12:16,650 >> Hvorfor er dette nummer 1? 267 00:12:16,650 --> 00:12:20,070 Samme ræsonnement, men nu er vi har en 1 i 1 kolonne. 268 00:12:20,070 --> 00:12:21,840 Hvorfor er dette 2? 269 00:12:21,840 --> 00:12:24,450 Vi har et 1 i den 2s kolonne. 270 00:12:24,450 --> 00:12:30,190 Og hvordan så gør jeg repræsenterer sige, nummer 7 i binær? 271 00:12:30,190 --> 00:12:31,324 Sig højere. 272 00:12:31,324 --> 00:12:32,170 >> STUDENT: Tre 1s. 273 00:12:32,170 --> 00:12:33,086 >> DAVID MALAN: Tre 1s. 274 00:12:33,086 --> 00:12:37,110 Så 1, 1, 1, fordi vi kun har brug for 4 plus 2 plus 1 giver mig 7. 275 00:12:37,110 --> 00:12:37,610 Okay. 276 00:12:37,610 --> 00:12:40,410 Så derfra, hvordan gør vi repræsenterer 8 med 3 pladsholdere? 277 00:12:40,410 --> 00:12:43,310 278 00:12:43,310 --> 00:12:43,922 Ja. 279 00:12:43,922 --> 00:12:45,070 >> STUDENT: 1, 0, 0, 0. 280 00:12:45,070 --> 00:12:46,970 >> DAVID MALAN: Ja 1, 0, 0, 0. 281 00:12:46,970 --> 00:12:49,380 Og dog måske, jeg slags af teknisk brug 282 00:12:49,380 --> 00:12:52,380 at tilføje en anden pladsholder til bestyrelsen. 283 00:12:52,380 --> 00:12:55,480 Hvis jeg ønsker at passe, at jeg faktisk nødt til at gøre noget som dette. 284 00:12:55,480 --> 00:12:58,990 Så jeg faktisk nødt til at bruge nu den 8s kolonne, og det er fint. 285 00:12:58,990 --> 00:13:02,680 Men det mærkelige i computing er at der kommer til at koste os noget. 286 00:13:02,680 --> 00:13:04,390 Du har brug for mere RAM i din computer nu. 287 00:13:04,390 --> 00:13:06,348 Du har brug for mere hukommelse fordi du har brug for noget 288 00:13:06,348 --> 00:13:09,650 fysisk at lagre, at ekstra bit, så at sige. 289 00:13:09,650 --> 00:13:10,700 Binære cifre. 290 00:13:10,700 --> 00:13:13,260 Og ja alle, der er sket her, ligesom decimal systemet, 291 00:13:13,260 --> 00:13:17,380 hvis vi bliver ved med at tilføje numre op og op og op, vi går til 5 til 6 til 7 til 8 292 00:13:17,380 --> 00:13:19,330 det er ligesom at bære en, bogstaveligt talt. 293 00:13:19,330 --> 00:13:21,940 Og så alt det andet går tilbage ned til nul. 294 00:13:21,940 --> 00:13:25,870 >> Men hvordan vi faktisk repræsenterer disse ting fysisk i en computer? 295 00:13:25,870 --> 00:13:29,380 Nå, i slutningen af ​​dagen, det eneste fysisk input går ind i min computer 296 00:13:29,380 --> 00:13:33,630 her er denne strømkablet, så elektricitet eller elektroner fra væggen. 297 00:13:33,630 --> 00:13:36,920 Og så hvordan får jeg fra noget fysisk sådan til rent faktisk 298 00:13:36,920 --> 00:13:40,630 repræsenterer en idé som denne i stedet. 299 00:13:40,630 --> 00:13:41,930 >> Tja, hvad kan vi gøre? 300 00:13:41,930 --> 00:13:45,560 Vi kunne overveje at, okay, måske hvis elektriciteten flyder 301 00:13:45,560 --> 00:13:47,420 Jeg kunne gemme det og holde fast i det. 302 00:13:47,420 --> 00:13:49,250 Og hvis jeg holder på til nogle el, 303 00:13:49,250 --> 00:13:51,700 der er lige til at vilkårligt repræsenterer en 1. 304 00:13:51,700 --> 00:13:53,997 Og hvis jeg trække stikket og der er ikke noget der, 305 00:13:53,997 --> 00:13:56,330 du ved, der er bare til vilkårligt at repræsentere en 0. 306 00:13:56,330 --> 00:13:57,700 >> Så hvis noget er der, en. 307 00:13:57,700 --> 00:13:59,280 Hvis intet er der, 0. 308 00:13:59,280 --> 00:14:01,420 Eller du kan gøre det lidt mere visuel. 309 00:14:01,420 --> 00:14:02,704 Her er en 0. 310 00:14:02,704 --> 00:14:05,370 Der er ikke noget interessant igangværende på omkring bagsiden af ​​min telefon. 311 00:14:05,370 --> 00:14:08,690 Men hvis jeg tillader lidt bit af elektricitet til at flyde, 312 00:14:08,690 --> 00:14:11,490 selvom det er lidt lys i her, min lommelygte gik. 313 00:14:11,490 --> 00:14:15,840 Så jeg opbevare en ladning og ergo, denne telefon er nu en 1. 314 00:14:15,840 --> 00:14:17,700 Så 0 1. 315 00:14:17,700 --> 00:14:23,630 >> Så med en iPhone hvor højt kan jeg tælle bruge denne form for tilgang? 316 00:14:23,630 --> 00:14:24,490 Jeg mener at en. 317 00:14:24,490 --> 00:14:25,900 Det er ikke alle, der overbevisende. 318 00:14:25,900 --> 00:14:27,170 Så hvad mere kan vi gøre? 319 00:14:27,170 --> 00:14:31,180 Jamen så lad os se, er nogen på deres telefon lige nu, at jeg kunne låne? 320 00:14:31,180 --> 00:14:33,800 Enhver, der har en telefon med en lommelygte indbygget? 321 00:14:33,800 --> 00:14:34,969 Må jeg låne? 322 00:14:34,969 --> 00:14:36,010 Jeg har ikke brug for det ulåst. 323 00:14:36,010 --> 00:14:36,510 Okay. 324 00:14:36,510 --> 00:14:37,150 Tak. 325 00:14:37,150 --> 00:14:37,780 Lad mig låne dette. 326 00:14:37,780 --> 00:14:38,279 Okay. 327 00:14:38,279 --> 00:14:45,570 Så hvis jeg nu rulle op og her, hvad skal jeg repræsenterer nu? 328 00:14:45,570 --> 00:14:46,070 Ja. 329 00:14:46,070 --> 00:14:49,350 Så det er en tre, fordi det er i 1s kolonne, er dette i 2s kolonne. 330 00:14:49,350 --> 00:14:50,480 Så 1 plus 2 er 3. 331 00:14:50,480 --> 00:14:53,410 Og så hvis vi forsøger at få virkelig creative-- Åh, tak. 332 00:14:53,410 --> 00:14:54,690 Meget forebyggende. 333 00:14:54,690 --> 00:14:55,560 Okay. 334 00:14:55,560 --> 00:14:57,100 Jeg har nu tre iPhones. 335 00:14:57,100 --> 00:14:58,810 Okay. 336 00:14:58,810 --> 00:15:02,500 >> Og nu denne-- jeg vil ikke gøre nogen videre end dette. 337 00:15:02,500 --> 00:15:04,380 Hvad skal jeg repræsenterer nu? 338 00:15:04,380 --> 00:15:05,090 Kun syvere. 339 00:15:05,090 --> 00:15:08,000 Men jeg havde brug for fysisk mere hukommelse i dette tilfælde. 340 00:15:08,000 --> 00:15:08,920 Men det er alt det er. 341 00:15:08,920 --> 00:15:12,870 Du kan tænke på, hvad der foregår on-- tak du-- indersiden af ​​din telefon 342 00:15:12,870 --> 00:15:16,240 som blot at være en switch, der er bliver slået til og fra. 343 00:15:16,240 --> 00:15:18,350 >> Og hvis du nogensinde har hørt ordet transistor. 344 00:15:18,350 --> 00:15:21,312 Eller hvis du nogensinde har hørt markedsføring taler Intel indeni, 345 00:15:21,312 --> 00:15:24,270 der er taler til den slags hardware der er inde i computeren. 346 00:15:24,270 --> 00:15:26,707 Intel gør CPU'er, CPU'er, 347 00:15:26,707 --> 00:15:28,790 som er ligesom hjernerne indersiden af ​​din computer. 348 00:15:28,790 --> 00:15:30,640 Og disse CPU'er og ting, de har forbindelse 349 00:15:30,640 --> 00:15:32,740 at have masser og masser af bittesmå switche. 350 00:15:32,740 --> 00:15:36,440 Millioner, milliarder af switche kan enten være tændt eller slukket. 351 00:15:36,440 --> 00:15:38,840 >> Så computere, heldigvis, ligesom vores Mac'er og pc'er, 352 00:15:38,840 --> 00:15:43,830 kan tælle måde højere end 7 eller 8 fordi de har måde mere end tre 353 00:15:43,830 --> 00:15:44,660 eller fire bit. 354 00:15:44,660 --> 00:15:48,140 Måde mere end hvad der svarer til den tre lommelygter, som vi netop haft. 355 00:15:48,140 --> 00:15:52,110 Men nu er dette begynder at få temmelig uinteressant hurtigt. 356 00:15:52,110 --> 00:15:55,810 Hvis jeg vil nu faktisk være i stand til til at gøre noget mere interessant, 357 00:15:55,810 --> 00:16:00,340 Jeg ønsker at være i stand til at hoppe til noget som dette. 358 00:16:00,340 --> 00:16:03,604 >> Så ASCII, det ikke er virkelig en nyttig akronym, men American Standard Code 359 00:16:03,604 --> 00:16:04,770 til udveksling af information. 360 00:16:04,770 --> 00:16:07,450 Det betyder bare, nogle år siden vi mennesker besluttet, 361 00:16:07,450 --> 00:16:10,724 Ved du hvad, vi ønsker at være i stand til at gøre mere med computere end bare tal. 362 00:16:10,724 --> 00:16:12,890 Vi ønsker ikke, at de bare være dyre regnemaskiner, 363 00:16:12,890 --> 00:16:16,730 vi vil gerne være i stand til at gøre ting som tekstbehandling, omend meget enkelt. 364 00:16:16,730 --> 00:16:20,030 Senere havde vi e-mail og andre sådanne medier. 365 00:16:20,030 --> 00:16:23,700 >> Og så verden besluttede nogle år siden ifølge dette system ASCII, 366 00:16:23,700 --> 00:16:24,770 du ved hvad? 367 00:16:24,770 --> 00:16:26,970 I visse typer af programmer enhver gang du 368 00:16:26,970 --> 00:16:30,649 se hvad der svarer til antallet 65, ligesom det mønster af bit. 369 00:16:30,649 --> 00:16:32,440 Og vi kunne gøre det matematik her på brættet. 370 00:16:32,440 --> 00:16:34,450 Mønstret af bits, der repræsenterer 65. 371 00:16:34,450 --> 00:16:37,240 Tror ikke på det som 65 i decimal. 372 00:16:37,240 --> 00:16:41,620 Tænk på det som vilkårligt, men globalt, konsekvent som hovedstad 373 00:16:41,620 --> 00:16:42,201 EN. 374 00:16:42,201 --> 00:16:43,950 Og derefter verden besluttet, ved du hvad? 375 00:16:43,950 --> 00:16:45,630 Lad os tage et andet mønster af bit. 376 00:16:45,630 --> 00:16:47,770 Og hvis vi nogensinde se nummer 66, lad os bare 377 00:16:47,770 --> 00:16:50,573 antager, at det er kapital B. Hurtigt frem til H 378 00:16:50,573 --> 00:16:55,510 og jeg, hvis du ser 72 eller 73, at bør være et H og en I, henholdsvis. 379 00:16:55,510 --> 00:16:57,780 Og så længe hele verden er enig i dette. 380 00:16:57,780 --> 00:17:01,342 Så når du modtager en e-mail, eller du ville få en fil på en USB-stick, 381 00:17:01,342 --> 00:17:03,800 eller noget lignende at-- når du se, at mønstret af bits, 382 00:17:03,800 --> 00:17:06,980 De ved, at det bør være denne brev eller en anden skrivelse. 383 00:17:06,980 --> 00:17:08,620 >> Men det er kontekst specifik, højre. 384 00:17:08,620 --> 00:17:12,250 En e-mail-program kan fortolke disse ting som figurer, 385 00:17:12,250 --> 00:17:15,760 men en grafregner eller lommeregner kan repræsentere eller fortolke 386 00:17:15,760 --> 00:17:18,370 disse ting, selvfølgelig, som breve. 387 00:17:18,370 --> 00:17:21,610 >> Så med det sagt, hurtig lille anmeldelse. 388 00:17:21,610 --> 00:17:25,440 Dette er måske en tre tegn e-mail, der er blevet sendt til mig. 389 00:17:25,440 --> 00:17:27,990 Under hætten det hele er i 0'er og 1-taller, men vi er ligeglade. 390 00:17:27,990 --> 00:17:31,580 Vi vil begynde at abstrakte over 0'er og 1'er til breve. 391 00:17:31,580 --> 00:17:36,830 Og hvis jeg ser et mønster af 0'er og 1'er, der virkelig repræsenterer 72, tip, tip, 73, 392 00:17:36,830 --> 00:17:38,866 og derefter 33, hvad er budskabet? 393 00:17:38,866 --> 00:17:40,348 >> STUDENT: [uhørligt] 394 00:17:40,348 --> 00:17:42,639 DAVID MALAN: Så hvis du tror tilbage bare for et øjeblik siden, HI 395 00:17:42,639 --> 00:17:47,210 var det budskab, jeg forsøgte at kommunikere her, fordi H er 72, 396 00:17:47,210 --> 00:17:50,925 Jeg er 73, og nu 33-- ikke ville du nødvendigvis vide dette på forhånd, 397 00:17:50,925 --> 00:17:53,800 men det viser sig, hvis du rent faktisk se mere af diagrammet og systemet 398 00:17:53,800 --> 00:17:56,800 at menneskeheden aftalt år siden, det er bare et udråbstegn. 399 00:17:56,800 --> 00:18:01,590 Og ja, der er et mønster af symboler og tal for hvert tegn 400 00:18:01,590 --> 00:18:03,849 at du kan have på dit tastatur. 401 00:18:03,849 --> 00:18:04,389 >> Okay. 402 00:18:04,389 --> 00:18:05,660 Lad os abstract yderligere. 403 00:18:05,660 --> 00:18:09,380 Hvis vi ikke ønsker at bare have ting som tal og bogstaver, 404 00:18:09,380 --> 00:18:11,420 vi faktisk ønsker at gennemføre grafik. 405 00:18:11,420 --> 00:18:13,351 Tja, hvis du nogensinde har hørt akronymet RGB. 406 00:18:13,351 --> 00:18:15,559 Det er lidt dateret nu, men det er stadig slags der. 407 00:18:15,559 --> 00:18:17,380 RGB er rød, grøn, blå. 408 00:18:17,380 --> 00:18:19,380 Og det er bare et system at sige, ved du hvad, 409 00:18:19,380 --> 00:18:21,650 lad os bruge tre sæt bits. 410 00:18:21,650 --> 00:18:25,280 Et sæt af 8 bit, et andet sæt af 8 bits, og et andet sæt af 8 bit. 411 00:18:25,280 --> 00:18:27,710 Og lad os bruge disse bits at lagre, hvor meget rødt vi 412 00:18:27,710 --> 00:18:31,430 ønsker på vores skærm, hvor meget green vi ønsker på vores skærm, 413 00:18:31,430 --> 00:18:34,070 og hvor meget blå, vi ønsker på vores skærm. 414 00:18:34,070 --> 00:18:37,860 Og dette betyder blot, at hvis du har en lot-- et stort antal for rød, 415 00:18:37,860 --> 00:18:39,200 det betyder at give mig en masse rød. 416 00:18:39,200 --> 00:18:41,658 Hvis du har en stor nummer til grøn, giver mig en masse grønt. 417 00:18:41,658 --> 00:18:44,660 Og hvis du har bare en lille smule blå eller et lille antal som 33, 418 00:18:44,660 --> 00:18:45,960 give mig en lille smule blå. 419 00:18:45,960 --> 00:18:49,720 Og hvis du tilfældigvis til at kombinere dem tre størrelser, så at sige, 420 00:18:49,720 --> 00:18:53,160 du får her-- du næsten ikke kan se på projektoren her, men dette skumle 421 00:18:53,160 --> 00:18:54,630 nuance af gul eller brun. 422 00:18:54,630 --> 00:18:58,590 >> Men dette er at sige, ved hjælp af denne mønster af 8 plus 8 plus plus 8-- 423 00:18:58,590 --> 00:19:01,710 dette mønster på 24 bit er, hvordan en computer ville 424 00:19:01,710 --> 00:19:06,460 gemme disse nuance af gul i én lille prik en pixel på skærmen. 425 00:19:06,460 --> 00:19:10,570 Så vi er gået fra 0'er og 1'er til decimal numre til bogstaver i alfabetet. 426 00:19:10,570 --> 00:19:13,680 Eller mere interessant, farvede prikker. 427 00:19:13,680 --> 00:19:16,200 >> Nå, hvad selvfølgelig så kommer det næste? 428 00:19:16,200 --> 00:19:19,040 Nå, hvad er et billede, som du se på Facebook eller komme i en e-mail? 429 00:19:19,040 --> 00:19:20,172 Eller lignende? 430 00:19:20,172 --> 00:19:22,130 Hvad er definitionen teknisk af et billede? 431 00:19:22,130 --> 00:19:25,090 432 00:19:25,090 --> 00:19:27,710 Ja. 433 00:19:27,710 --> 00:19:31,270 Hvad er et billede, der består af, hvis du ser virkelig tæt på din skærm? 434 00:19:31,270 --> 00:19:31,770 Ja. 435 00:19:31,770 --> 00:19:33,186 Det er bare en hel masse pixels. 436 00:19:33,186 --> 00:19:35,220 Faktisk, hvis du tager din laptop måske senere, 437 00:19:35,220 --> 00:19:37,180 og ser virkelig nøje på det-- afhængigt 438 00:19:37,180 --> 00:19:40,370 om hvor dyrt den bærbare computer er, og hvor høj kvalitet skærmen er, 439 00:19:40,370 --> 00:19:43,480 du kan meget vel se alle de små prikker på skærmen. 440 00:19:43,480 --> 00:19:45,890 >> Og de prikker eller pixels, hvilket betyder, at der er 441 00:19:45,890 --> 00:19:49,810 24 bit, som repræsenterer hver pixel i det fotografi, som du ser på Facebook, 442 00:19:49,810 --> 00:19:52,049 eller at du bare tog på din iPhone for nylig. 443 00:19:52,049 --> 00:19:54,090 Og så er, hvordan vi får til ting som grafik. 444 00:19:54,090 --> 00:19:55,120 Nå, hvad er en video? 445 00:19:55,120 --> 00:19:58,660 En video er blot et sæt af grafik fører ved skærmen igen 446 00:19:58,660 --> 00:19:59,780 og igen og igen. 447 00:19:59,780 --> 00:20:04,080 Og så videoer rigtig, er blot mønstre af bits, der repræsenterer gitre, rækker 448 00:20:04,080 --> 00:20:06,880 og søjler af prikker, fører ved skærmbilledet, 449 00:20:06,880 --> 00:20:09,240 efter billedet, efter billedet, alias 450 00:20:09,240 --> 00:20:10,650 Film. 451 00:20:10,650 --> 00:20:12,340 Så det er det for ind- og udgange. 452 00:20:12,340 --> 00:20:14,420 >> Alt, hvad vi har nu, er en antagelse, at du 453 00:20:14,420 --> 00:20:17,190 hvad, hvis vi ønsker en computer at repræsentere information, 454 00:20:17,190 --> 00:20:18,560 vi har et system til at gøre det. 455 00:20:18,560 --> 00:20:20,780 Vi kan gøre det med 0'er og 1s ved udgangen af ​​dagen. 456 00:20:20,780 --> 00:20:23,160 Men vi kan abstrakt, så til at tale, oven i købet 457 00:20:23,160 --> 00:20:25,140 således at udgøre mere interessante ting. 458 00:20:25,140 --> 00:20:28,790 Og her på ud i CS50, og datalogi mere generelt, 459 00:20:28,790 --> 00:20:31,250 vi nu står på skuldrene af alle de mennesker, der 460 00:20:31,250 --> 00:20:33,530 kom før os, der regnede med, at ud. 461 00:20:33,530 --> 00:20:38,170 Og nu bare antage, at computere kan repræsentere ind- og udgange. 462 00:20:38,170 --> 00:20:41,140 >> Men lad os nu faktisk gøre noget med dem. 463 00:20:41,140 --> 00:20:44,850 Så en algoritme er blot et sæt af instruktioner, trin for trin, 464 00:20:44,850 --> 00:20:46,340 for at løse nogle problemer. 465 00:20:46,340 --> 00:20:48,730 Og hvad kunne man sådan problem være. 466 00:20:48,730 --> 00:20:52,440 Så dette er en gammel skole teknologi, en telefonbog. 467 00:20:52,440 --> 00:20:55,534 Og inde i en telefonbog er en hel masse navne og numre. 468 00:20:55,534 --> 00:20:57,700 Og disse navne er generelt sorteret alfabetisk. 469 00:20:57,700 --> 00:21:01,310 >> Så hvis jeg ønskede at finde en person i denne telefon bog som Mike Smith, 470 00:21:01,310 --> 00:21:02,930 hvad er en typisk menneske kommer til at gøre? 471 00:21:02,930 --> 00:21:06,000 Nå, du kunne blot åbne det op, se på den første side. 472 00:21:06,000 --> 00:21:07,390 Jeg kan ikke se Mike Smith. 473 00:21:07,390 --> 00:21:09,740 Drej til den anden side, Jeg kan ikke se Mike Smith. 474 00:21:09,740 --> 00:21:11,830 Og bare holde ud og gå. 475 00:21:11,830 --> 00:21:14,397 Er dette trinvis fremgangsmåde korrekt? 476 00:21:14,397 --> 00:21:17,380 477 00:21:17,380 --> 00:21:18,310 Ja. 478 00:21:18,310 --> 00:21:20,080 Det er lidt dumt, højre. 479 00:21:20,080 --> 00:21:21,646 Det er ineffektivt, højre. 480 00:21:21,646 --> 00:21:24,520 Fordi det vil tage for evigt at komme til Mike, men det er korrekt. 481 00:21:24,520 --> 00:21:26,620 For hvis Mike er her Jeg vil faktisk finde ham. 482 00:21:26,620 --> 00:21:29,030 >> Så hvad er en lidt mere fornuftig person vil gøre? 483 00:21:29,030 --> 00:21:32,180 De kan stadig åbne til fronten, og måske flyve gennem telefonbogen 484 00:21:32,180 --> 00:21:33,250 to sider ad gangen. 485 00:21:33,250 --> 00:21:34,840 To, fire, seks, otte. 486 00:21:34,840 --> 00:21:36,830 Jeg kan faktisk ikke fysisk gør det meget godt. 487 00:21:36,830 --> 00:21:39,560 Men i teorien, bør dette være dobbelt så hurtigt, to sider ad gangen. 488 00:21:39,560 --> 00:21:41,152 Er denne algoritme korrekt? 489 00:21:41,152 --> 00:21:43,252 >> STUDENT: [uhørligt] 490 00:21:43,252 --> 00:21:44,460 DAVID MALAN: Ikke nødvendigvis. 491 00:21:44,460 --> 00:21:44,960 God. 492 00:21:44,960 --> 00:21:46,112 Hvorfor dette forbehold? 493 00:21:46,112 --> 00:21:50,020 >> STUDENT: Fordi han kunne være på én af de sider, som du springer. 494 00:21:50,020 --> 00:21:50,770 DAVID MALAN: Ja. 495 00:21:50,770 --> 00:21:52,260 Så selv om jeg kommer tættere og tættere på. 496 00:21:52,260 --> 00:21:56,150 Hvad hvis han er bare et uheld, ved dårlig held, klemt inde mellem de to sider 497 00:21:56,150 --> 00:21:57,290 at jeg flyver over? 498 00:21:57,290 --> 00:21:59,920 499 00:21:59,920 --> 00:22:01,730 Så vi har brug for en rettelse til dette. 500 00:22:01,730 --> 00:22:03,590 Vi har faktisk brug for at så sige, vent et minut, 501 00:22:03,590 --> 00:22:06,240 måske hvis vi går for vidt, måske hvis vi ramte T-sektion, 502 00:22:06,240 --> 00:22:09,670 for T kommer efter Smith, så vi skal mindst dobbelt tilbage mindst én side. 503 00:22:09,670 --> 00:22:12,630 Så fixable, men der er en betinget problem der. 504 00:22:12,630 --> 00:22:16,159 Så det er dobbelt så hurtigt, men du måske nødt til at fordoble tilbage bare en lille smule. 505 00:22:16,159 --> 00:22:19,200 Men ingen i hans værelse, selvom du ikke rigtig bruge telefon bøger længere, 506 00:22:19,200 --> 00:22:20,740 kommer til at starte ved begyndelsen. 507 00:22:20,740 --> 00:22:23,317 Hvad vil du gøre leder efter Mike Smith? 508 00:22:23,317 --> 00:22:24,900 Du kommer til at gå nogenlunde til S '. 509 00:22:24,900 --> 00:22:26,820 Eller hvis du ikke rigtig har snyde ark på papiret, 510 00:22:26,820 --> 00:22:28,365 du kommer til at gå mindst omtrent til midten. 511 00:22:28,365 --> 00:22:30,220 Og slet ikke til forsiden af ​​bogen. 512 00:22:30,220 --> 00:22:31,130 Du kommer til at kigge ned. 513 00:22:31,130 --> 00:22:33,770 Og matematisk du sandsynligvis vil se M sektion, der 514 00:22:33,770 --> 00:22:34,890 er nogenlunde i midten. 515 00:22:34,890 --> 00:22:36,848 Og så du kommer til at indse, hvad der er sandt? 516 00:22:36,848 --> 00:22:37,968 Hvor er Mike? 517 00:22:37,968 --> 00:22:39,170 >> STUDENT: [uhørligt] 518 00:22:39,170 --> 00:22:39,920 DAVID MALAN: Ja. 519 00:22:39,920 --> 00:22:41,530 Så han er over på denne side. 520 00:22:41,530 --> 00:22:42,710 Og så hvad kan du gøre? 521 00:22:42,710 --> 00:22:48,870 Tja, både billedligt og bogstaveligt kan du rive problemet i halvdelen én gang? 522 00:22:48,870 --> 00:22:54,260 Og så vide, at du kan smide denne halvdel af problemet væk. 523 00:22:54,260 --> 00:22:58,170 Og nu er vi tilbage med fundamentalt det samme problem, men det er halvt så stor. 524 00:22:58,170 --> 00:22:59,920 Og så nu, hvad der er den sæt af instruktioner? 525 00:22:59,920 --> 00:23:01,753 Hvad er algoritmen til at finde Mike Smith? 526 00:23:01,753 --> 00:23:03,030 Det er præcis det samme. 527 00:23:03,030 --> 00:23:05,750 >> Nu er dette sker for at være M sektion og dette er Z sektion, 528 00:23:05,750 --> 00:23:08,650 men det grundlæggende formel er stadig den samme. 529 00:23:08,650 --> 00:23:10,800 Gå omtrent til midten, se ned, åh, darn det. 530 00:23:10,800 --> 00:23:13,160 Nu er jeg i T-sektion, Jeg har gået for vidt. 531 00:23:13,160 --> 00:23:16,640 Men også her kan du anvende den samme logik. 532 00:23:16,640 --> 00:23:19,189 Kast halvdel af problemet væk og nu er vi 533 00:23:19,189 --> 00:23:21,230 tilbage med et problem, der er en fjerdedel af størrelsen. 534 00:23:21,230 --> 00:23:28,140 Og vi kan gentage og vi kan gentage, og vi kan gentage indtil teoretisk 535 00:23:28,140 --> 00:23:32,190 der er bare én side tilbage på som Mike enten er eller ikke er. 536 00:23:32,190 --> 00:23:34,014 >> Så hvad er så kraftig, om denne idé? 537 00:23:34,014 --> 00:23:35,680 Jeg mener trods alt, er det temmelig intuitiv. 538 00:23:35,680 --> 00:23:37,390 Ingen kommer til at starte på begyndelsen af ​​telefonbogen 539 00:23:37,390 --> 00:23:39,320 og flip 1.000 sider for at finde Mike Smith. 540 00:23:39,320 --> 00:23:42,319 De fleste alle i dette rum går at gøre nogenlunde den slags algoritme 541 00:23:42,319 --> 00:23:43,220 Gem for tåreflåd. 542 00:23:43,220 --> 00:23:45,480 >> Og så hvorfor gjorde vi det? 543 00:23:45,480 --> 00:23:47,810 Nå, overveje effektiviteten. 544 00:23:47,810 --> 00:23:51,500 Tænk, hvor meget bedre dette algoritme var ved at bryde det ned 545 00:23:51,500 --> 00:23:52,890 i dens bestanddele. 546 00:23:52,890 --> 00:23:53,980 Så hvad gjorde jeg først gøre? 547 00:23:53,980 --> 00:23:55,389 Jeg tog telefonbogen. 548 00:23:55,389 --> 00:23:57,180 Og en datalog, og en programmør, 549 00:23:57,180 --> 00:24:00,090 mere generelt det viser sig, går at begynde at tælle alt på 0. 550 00:24:00,090 --> 00:24:00,610 >> Hvorfor? 551 00:24:00,610 --> 00:24:03,240 Tja, det er lidt mærkeligt at vi mennesker noget ud, generelt, 552 00:24:03,240 --> 00:24:04,400 startende fra én. 553 00:24:04,400 --> 00:24:08,110 For hvad er det mindste tal Vi kan tydeligt repræsenterer baseret 554 00:24:08,110 --> 00:24:09,930 selv på vores gamle klasse skole matematik? 555 00:24:09,930 --> 00:24:12,400 Nå, det var 0, hvorvidt det er i decimal eller binær. 556 00:24:12,400 --> 00:24:14,900 Og så kan du se i verden af computere og programmering, 557 00:24:14,900 --> 00:24:17,620 specifikt, vi starter tælle alt fra 0. 558 00:24:17,620 --> 00:24:19,690 >> Så jeg tog telefonen bog trin 0. 559 00:24:19,690 --> 00:24:21,924 Jeg har tænkt mig at åbne for Midt i telefonbogen. 560 00:24:21,924 --> 00:24:23,840 Og det er faktisk en udtryk for, hvad jeg gjorde. 561 00:24:23,840 --> 00:24:25,900 Og så trin to var kig på navnene. 562 00:24:25,900 --> 00:24:29,110 Trin tre er lidt forskellige konceptuelt. 563 00:24:29,110 --> 00:24:30,600 Jeg spørger mig selv et spørgsmål. 564 00:24:30,600 --> 00:24:33,610 Hvis Smith er blandt de navne, Jeg har tænkt mig at tage en beslutning. 565 00:24:33,610 --> 00:24:36,550 Hvis han er blandt de navne, så jeg har tænkt mig at ringe til Mike. 566 00:24:36,550 --> 00:24:39,590 Og jeg har tænkt mig at tage en beslutning baseret på denne oplysning. 567 00:24:39,590 --> 00:24:44,100 >> Men hvis ikke, hvis Smith er tidligere i bogen til venstre, 568 00:24:44,100 --> 00:24:48,200 Jeg har tænkt mig at åbne til midten af den venstre halvdel af bogen. 569 00:24:48,200 --> 00:24:51,674 Og så her er den dygtighed, Jeg har tænkt mig at gå tilbage til trin to. 570 00:24:51,674 --> 00:24:53,590 Jeg har tænkt mig at sortere i stå på mine egne skuldre 571 00:24:53,590 --> 00:24:55,110 og bare gentage det tidligere arbejde jeg gjorde. 572 00:24:55,110 --> 00:24:58,062 Men det arbejde, jeg har tilbage, er mindre og mindre og mindre. 573 00:24:58,062 --> 00:24:59,270 Men det er stadig at gå på arbejde. 574 00:24:59,270 --> 00:25:02,110 Men hvis Mike, stedet, er senere i bogen til højre, 575 00:25:02,110 --> 00:25:04,980 Jeg har tænkt mig at åbne til midten af den højre halvdel af bogen, 576 00:25:04,980 --> 00:25:07,240 derefter gå tilbage til trin to. 577 00:25:07,240 --> 00:25:09,330 >> Men der er faktisk en fjerde scenario. 578 00:25:09,330 --> 00:25:13,336 Mikes enten her, eller her, eller her, eller-- 579 00:25:13,336 --> 00:25:14,152 >> STUDENT: Ikke der. 580 00:25:14,152 --> 00:25:15,110 DAVID MALAN: Ikke der. 581 00:25:15,110 --> 00:25:18,580 Og ja, hvis vi forventer ikke denne fjerde og sidste scenarie 582 00:25:18,580 --> 00:25:21,510 vores program kan være fejlbehæftet eller fejlbehæftet på en eller anden måde. 583 00:25:21,510 --> 00:25:25,020 Else, quit i tilfælde af, at Vi har ikke fundet Mike overhovedet. 584 00:25:25,020 --> 00:25:27,720 Og ja, hvis du nogensinde har lagt mærke til din computer hængende, eller alle 585 00:25:27,720 --> 00:25:30,490 pludselig ord eller en anden program bare afsluttes uventet, 586 00:25:30,490 --> 00:25:32,614 og nogle gange dig fejl besked er bogstaveligt det. 587 00:25:32,614 --> 00:25:34,070 Dette program afsluttes uventet. 588 00:25:34,070 --> 00:25:35,570 Det kan være for en række årsager. 589 00:25:35,570 --> 00:25:38,120 Men nogle gange er det noget så simpelt som dette. 590 00:25:38,120 --> 00:25:40,440 Den humane programmør der skrev, at software 591 00:25:40,440 --> 00:25:43,610 var ikke klar over at, åh, der er en frem ting, der rent faktisk kan ske. 592 00:25:43,610 --> 00:25:46,480 Og hvis du ikke skrive kode til fange den fjerde scenarie, 593 00:25:46,480 --> 00:25:51,342 det er faktisk uventet tider hvad computeren kan faktisk gøre. 594 00:25:51,342 --> 00:25:53,050 Lad os nu kalde en nogle af disse ting. 595 00:25:53,050 --> 00:25:55,465 Så i gult her, jeg har fremhævet vilkår 596 00:25:55,465 --> 00:25:57,590 der nu er vi bare vil kalde funktioner. 597 00:25:57,590 --> 00:26:00,700 Funktioner i verden af programmering er ligesom tiltag, 598 00:26:00,700 --> 00:26:01,850 opgørelser af handlinger. 599 00:26:01,850 --> 00:26:05,720 Så afhente, åben for, se på, ring, åben, åbne, holde op. 600 00:26:05,720 --> 00:26:09,350 Det er en funktion, en procedure, en handling, helst antal synonymer 601 00:26:09,350 --> 00:26:10,184 ville fungere så godt. 602 00:26:10,184 --> 00:26:11,850 Nu hvad er disse ting nu er i gult? 603 00:26:11,850 --> 00:26:14,210 Hvis andet, hvis andet, hvis andet, det er dem 604 00:26:14,210 --> 00:26:16,500 vi vil kalde forhold i programmering, 605 00:26:16,500 --> 00:26:19,270 eller grene, beslutning peger, hvis du vil. 606 00:26:19,270 --> 00:26:22,759 Men hvordan kan du vide, hvilken gaffel i vejen for at tage, så at sige? 607 00:26:22,759 --> 00:26:24,550 Vi er nødt til at fremhæve vilkårene til højre 608 00:26:24,550 --> 00:26:27,570 der, som er disse ja, ingen spørgsmål. 609 00:26:27,570 --> 00:26:29,040 Disse sande falske spørgsmål. 610 00:26:29,040 --> 00:26:30,880 Smith blandt navne? 611 00:26:30,880 --> 00:26:32,190 Smith tidligere i bogen? 612 00:26:32,190 --> 00:26:33,260 Smith senere i bogen? 613 00:26:33,260 --> 00:26:35,490 Det er spørgsmål til hvor der er et ja eller nej, 614 00:26:35,490 --> 00:26:42,110 eller ækvivalent sandt eller falsk, eller ækvivalent, et eller nul svar. 615 00:26:42,110 --> 00:26:44,260 >> Og i mellemtiden er der kun et sidste stykke. 616 00:26:44,260 --> 00:26:45,940 Denne her har, hvad slags effekt? 617 00:26:45,940 --> 00:26:48,230 Uanset om du programmerer før, hvordan ville du 618 00:26:48,230 --> 00:26:51,030 beskrive, hvad trin syv og 10 gør? 619 00:26:51,030 --> 00:26:54,110 620 00:26:54,110 --> 00:26:55,027 Hvad sagde du? 621 00:26:55,027 --> 00:26:56,110 STUDENT: En rekursiv trin. 622 00:26:56,110 --> 00:26:56,980 DAVID MALAN: En rekursiv trin. 623 00:26:56,980 --> 00:26:58,000 Ja, det væsentlige. 624 00:26:58,000 --> 00:27:00,384 Det er teknisk iterativ her, hvis du er fortrolig. 625 00:27:00,384 --> 00:27:01,550 Men vi vil vende tilbage til. 626 00:27:01,550 --> 00:27:03,930 Men det gør noget klart. 627 00:27:03,930 --> 00:27:06,370 Igen, det inducerer en cyklus, en løkke, højre. 628 00:27:06,370 --> 00:27:08,770 Du bogstaveligt går tilbage til en tidligere trin. 629 00:27:08,770 --> 00:27:12,592 Og så ja, det kommer til at gennemføre en form for cyklus. 630 00:27:12,592 --> 00:27:15,050 Men du kommer ikke til at få fast i denne uendelige, højre. 631 00:27:15,050 --> 00:27:19,290 For hvis du konstant tjekker er Mike her, eller til venstre, eller ikke her, 632 00:27:19,290 --> 00:27:21,360 i sidste ende er han ikke kommer til at være der. 633 00:27:21,360 --> 00:27:24,590 Og du kan bare afslutte helt som pr den sidste linje. 634 00:27:24,590 --> 00:27:25,834 >> Så det er det for ordforråd. 635 00:27:25,834 --> 00:27:28,250 Og det var, hvad vi ville generelt kalder pseudokode kode. 636 00:27:28,250 --> 00:27:29,570 Det er ikke en egentlig sprog. 637 00:27:29,570 --> 00:27:32,405 Det er bare meget lakoniske engelsk, men det kommunikerer det punkt. 638 00:27:32,405 --> 00:27:33,780 Der er ingen formel struktur her. 639 00:27:33,780 --> 00:27:35,738 Du bruger bare det er nogle ord, men så klare ord 640 00:27:35,738 --> 00:27:37,870 som du kan for at kommunikere din idé. 641 00:27:37,870 --> 00:27:40,580 >> Nu hvor god er, at algoritmen og hvor meget bedre er det? 642 00:27:40,580 --> 00:27:43,570 Nå, har vi ikke at komme ind i detaljerne i tal eller noget 643 00:27:43,570 --> 00:27:44,069 sådan. 644 00:27:44,069 --> 00:27:46,300 Men vi kan se på form af denne opløsning. 645 00:27:46,300 --> 00:27:50,194 Så hvis vi bare trække nogle xy plot her på den vandrette akse her. 646 00:27:50,194 --> 00:27:51,860 Lad os bare kalde størrelsen af ​​problemet. 647 00:27:51,860 --> 00:27:55,540 Og en datalog ville bruger typisk n som variablen her. 648 00:27:55,540 --> 00:27:59,690 Så n sider, eller n personer i rummet, eller hvad det er du prøver at tælle. 649 00:27:59,690 --> 00:28:03,039 >> Og så på den lodrette akse på venstre, vil der være tid til at løse. 650 00:28:03,039 --> 00:28:05,330 Så hvor mange sekunder gør det tage mig at finde Mike Smith? 651 00:28:05,330 --> 00:28:06,621 Eller hvor mange skridt tager det? 652 00:28:06,621 --> 00:28:08,100 Hvor mange side drejninger tager det? 653 00:28:08,100 --> 00:28:11,370 Så det er, hvor meget det koster mig i tide til at løse et problem. 654 00:28:11,370 --> 00:28:15,030 Og vi kunne trække den første algoritmer hældning, hvis du vil, 655 00:28:15,030 --> 00:28:16,910 som netop denne lige linje i rødt. 656 00:28:16,910 --> 00:28:18,450 Og jeg vil kalde det n. 657 00:28:18,450 --> 00:28:19,117 >> Hvorfor n? 658 00:28:19,117 --> 00:28:20,950 Hvorfor er det bare denne ene til én forhold? 659 00:28:20,950 --> 00:28:22,700 Tja, hvis Verizon eller uanset teleselskab 660 00:28:22,700 --> 00:28:25,130 tilføjer endnu en side til telefonbogen næste år, 661 00:28:25,130 --> 00:28:28,370 der kan skubbe Mike én endnu et skridt tættere på slutningen, 662 00:28:28,370 --> 00:28:29,950 afhængigt af hvor den pågældende side er. 663 00:28:29,950 --> 00:28:32,380 Og så effekten kan bare være at tilføje endnu en anden. 664 00:28:32,380 --> 00:28:33,520 Eller én side mere tur. 665 00:28:33,520 --> 00:28:34,970 En en til en forhold. 666 00:28:34,970 --> 00:28:37,410 >> Derimod anden algoritme. 667 00:28:37,410 --> 00:28:41,406 Hvor meget hurtigere var det intuitivt? 668 00:28:41,406 --> 00:28:42,780 Hvor jeg gik to sider ad gangen? 669 00:28:42,780 --> 00:28:43,664 Ja. 670 00:28:43,664 --> 00:28:44,497 >> STUDENT: [uhørligt] 671 00:28:44,497 --> 00:28:47,255 672 00:28:47,255 --> 00:28:48,080 >> DAVID MALAN: Ja. 673 00:28:48,080 --> 00:28:49,220 Så det kommer til at være dobbelt så hurtigt. 674 00:28:49,220 --> 00:28:51,344 Og vi ville tegne det her afhængigt af omfanget. 675 00:28:51,344 --> 00:28:54,220 Det er stadig en ret linie, men lavere end den røde linje. 676 00:28:54,220 --> 00:28:56,410 Fordi nogle nummer sider, hvis det tager 677 00:28:56,410 --> 00:28:58,360 du dette mange trin med den første algoritme, 678 00:28:58,360 --> 00:29:00,570 det vil tage dig halvdelen som mange skridt med den anden. 679 00:29:00,570 --> 00:29:02,770 Og så den gule linje beskriver den anden algoritme 680 00:29:02,770 --> 00:29:03,990 er bare at ligge under det. 681 00:29:03,990 --> 00:29:07,250 >> Men hvad er virkelig kraftfuld, er at tænke på den tredje og sidste, 682 00:29:07,250 --> 00:29:10,480 og forbløffende mest intuitive algoritme, der har denne form. 683 00:29:10,480 --> 00:29:12,720 Teknisk vi ville kalde dette en logaritmisk kurve. 684 00:29:12,720 --> 00:29:14,309 Log bund 2 af n i dette tilfælde. 685 00:29:14,309 --> 00:29:15,600 Men det betyder ikke rigtig noget. 686 00:29:15,600 --> 00:29:19,140 Det afgørende er virkelig den fundamentalt forskellig form, det har. 687 00:29:19,140 --> 00:29:22,810 Og du kan overveje, hvor meget kortere denne linje virkelig 688 00:29:22,810 --> 00:29:24,620 er i det lange løb. 689 00:29:24,620 --> 00:29:25,870 Det er konstant stigende. 690 00:29:25,870 --> 00:29:27,620 Det betyder ikke flade ud perfekt. 691 00:29:27,620 --> 00:29:34,030 Men det vokser stadig så meget langsommere da problemet bliver større og større. 692 00:29:34,030 --> 00:29:36,710 Og du kan tænke på det på denne way-- hvis Verizon ikke bare 693 00:29:36,710 --> 00:29:40,410 tilføje en side til næste år, men double antallet af sider i telefonbogen, 694 00:29:40,410 --> 00:29:42,740 den første algoritme might tage dobbelt så mange trin. 695 00:29:42,740 --> 00:29:45,360 Hvis det er 1.000 sider dette år, 2.000 sider næste år, 696 00:29:45,360 --> 00:29:47,180 Mike kunne være, at meget længere væk. 697 00:29:47,180 --> 00:29:49,380 Så det er 1.000 ekstra skridt for at finde ham. 698 00:29:49,380 --> 00:29:51,610 Den anden algoritme måske kun 500 mere 699 00:29:51,610 --> 00:29:55,490 skridt til at finde ham, fordi igen, Jeg flyver gennem det to ad gangen. 700 00:29:55,490 --> 00:29:56,950 >> Men hvad med den tredje algoritme? 701 00:29:56,950 --> 00:29:59,010 Hvis Verizon fordobler størrelsen af ​​telefonbogen 702 00:29:59,010 --> 00:30:02,620 næste år fra 1000 til 2000 sider, hvor mange flere trin 703 00:30:02,620 --> 00:30:05,540 er min tredje algoritme vil tage? 704 00:30:05,540 --> 00:30:06,630 Ja, det er kun én. 705 00:30:06,630 --> 00:30:08,600 Og det er den kraftfulde idé. 706 00:30:08,600 --> 00:30:12,780 Du kan tage 1000 side bid ud af dette problem på en gang. 707 00:30:12,780 --> 00:30:14,510 Og nu, hvis du overveje en dum situation, 708 00:30:14,510 --> 00:30:17,320 men det slags taler til effekt af dette slags intuition-- 709 00:30:17,320 --> 00:30:21,494 hvis en telefonbog havde ligesom, fire milliarder sider, føles som en rigtig stort problem. 710 00:30:21,494 --> 00:30:23,410 Og ja, måske det tage mig fire milliarder side 711 00:30:23,410 --> 00:30:26,549 vender sig for at finde Mike Smith i, at tilfældet med den første algoritme. 712 00:30:26,549 --> 00:30:28,840 Men hvor mange skridt ville det tage i den tredje algoritme 713 00:30:28,840 --> 00:30:31,585 at finde Mike blandt fire milliard stykker papir? 714 00:30:31,585 --> 00:30:34,865 715 00:30:34,865 --> 00:30:36,240 Så fire milliarder du rive i halve. 716 00:30:36,240 --> 00:30:37,220 Du får to milliarder. 717 00:30:37,220 --> 00:30:42,810 Så en milliard, så 500 millioner, 250 mio, 125 million-- men det 718 00:30:42,810 --> 00:30:44,780 føles som det er kommer til at tage et stykke tid. 719 00:30:44,780 --> 00:30:47,340 Jeg muligvis 32 fingre at tælle det højt op. 720 00:30:47,340 --> 00:30:51,340 Men det er faktisk som få som 32 sider tårer. 721 00:30:51,340 --> 00:30:54,060 Du kan gå fra fire milliarder til én side dividere 722 00:30:54,060 --> 00:30:57,030 det oprindelige antal sider i halvdelen 32 gange 723 00:30:57,030 --> 00:30:59,290 indtil du er tilbage med bare, at enkelt side. 724 00:30:59,290 --> 00:31:01,320 >> Nu, selvfølgelig, jeg snyder her. 725 00:31:01,320 --> 00:31:06,470 Det er ikke, at vi bare er ved at blive sort af dum helt med de to første 726 00:31:06,470 --> 00:31:07,470 algoritmer. 727 00:31:07,470 --> 00:31:11,500 Jeg snyd i en vis forstand, eller virkelig jeg udnytte en antagelse. 728 00:31:11,500 --> 00:31:15,610 Hvad var sandt om telefonbogen i sin oprindelige form, der tillod 729 00:31:15,610 --> 00:31:17,450 mig til selv at bruge det tredje algoritme? 730 00:31:17,450 --> 00:31:18,110 Ja? 731 00:31:18,110 --> 00:31:19,360 PUBLIKUM: Det blev ordnet alfabetisk. 732 00:31:19,360 --> 00:31:21,130 DAVID MALAN: Det blev ordnet alfabetisk, ikke? 733 00:31:21,130 --> 00:31:23,500 Hvis det var bare i tilfældig orden, det er spild 734 00:31:23,500 --> 00:31:24,880 af tid, hele denne samtale. 735 00:31:24,880 --> 00:31:27,500 Jeg er nødt til at se på hver side, hvis det er i tilfældig rækkefølge 736 00:31:27,500 --> 00:31:30,350 at finde Mike Smith, før jeg kan konkludere, at han er der eller ej. 737 00:31:30,350 --> 00:31:32,880 Og så om hjørnet, vi har skåret er, at jeg har 738 00:31:32,880 --> 00:31:35,752 antages, at en anden i dette tilfælde gjorde arbejdet for mig. 739 00:31:35,752 --> 00:31:38,460 Og så i sidste ende invitationer spørgsmålet, ja, vent et øjeblik. 740 00:31:38,460 --> 00:31:41,284 Hvordan du sortere 1000 sider af navne og numre? 741 00:31:41,284 --> 00:31:43,200 Det er faktisk en anden problem, noget 742 00:31:43,200 --> 00:31:44,574 vi vil vende tilbage til i fremtiden. 743 00:31:44,574 --> 00:31:48,130 Men når man tænker over hjemmesider som Facebook og Google Gmail 744 00:31:48,130 --> 00:31:50,450 og ting som Googles egne søgning indekser, 745 00:31:50,450 --> 00:31:53,800 når du har millioner eller milliarder af stykker af data, der lagres i disse dage, 746 00:31:53,800 --> 00:31:56,660 searching-- og ikke at nævne sortering disse problems-- 747 00:31:56,660 --> 00:31:59,450 er i sidste ende en udfordring i sig selv. 748 00:31:59,450 --> 00:32:02,250 Og ja, det er da blot en af ​​disse udfordringer 749 00:32:02,250 --> 00:32:03,460 at vi vil se på. 750 00:32:03,460 --> 00:32:05,590 >> Så lad os nu tage et øjeblik og tage et kig på CS50 751 00:32:05,590 --> 00:32:09,082 selv og give dig en følelse af hvad der er i vente i dette semester. 752 00:32:09,082 --> 00:32:11,540 Ja, hvis du ikke allerede har, tager et kig på denne webadresse. 753 00:32:11,540 --> 00:32:13,880 Og da Patrick hentydede til, i år er vi 754 00:32:13,880 --> 00:32:17,130 at gøre en betydelig investering alle den mere i løbet støtte 755 00:32:17,130 --> 00:32:20,170 struktur i form af TAS og CA'er, kontortid, 756 00:32:20,170 --> 00:32:23,520 §§ tilgængelighed, og digitale materialer online, så godt. 757 00:32:23,520 --> 00:32:27,489 Faktisk, i form af kursets foredrag, vi er her i dag. 758 00:32:27,489 --> 00:32:29,780 Og forventningerne dette år officielt af kurset 759 00:32:29,780 --> 00:32:32,370 er deltage til i dag, kursets sidste forelæsning, og et kursus 760 00:32:32,370 --> 00:32:35,161 omtrent i midten af ​​semestret med hvert foredrag i mellem 761 00:32:35,161 --> 00:32:37,280 stilles til rådighed generelt på en fredag ​​eftermiddag 762 00:32:37,280 --> 00:32:40,240 online, både for Yale studerende og Harvard studerende i år. 763 00:32:40,240 --> 00:32:42,090 Faktisk er en af ​​de grundlæggende ændringer er 764 00:32:42,090 --> 00:32:44,310 at vi vedtager på Harvard et paradigme meget 765 00:32:44,310 --> 00:32:46,570 som vi gjorde her sidste år og nu i år, 766 00:32:46,570 --> 00:32:50,300 så ens, vi stadig filme mest af kursets forelæsninger i Cambridge 767 00:32:50,300 --> 00:32:52,900 men gøre dem tilgængelige tidligere end vi har i fortiden 768 00:32:52,900 --> 00:32:55,540 således at de af du-- hvis du gerne, for eksempel, 769 00:32:55,540 --> 00:32:58,400 få et forspring på materialer på den første weekend i stedet 770 00:32:58,400 --> 00:33:02,000 end den anden weekend, har du adgang til disse former for materialer, 771 00:33:02,000 --> 00:33:06,561 søgbar, indlejres, hyperlinkable til relaterede ressourcer desto tidligere. 772 00:33:06,561 --> 00:33:09,560 Med hensyn til de emner, for at give dig en følelse af kursets trajectory-- 773 00:33:09,560 --> 00:33:12,365 og nogle af dette kan være jargon for nu, men ikke for længe, ​​bare rolig. 774 00:33:12,365 --> 00:33:15,010 Vi starter i dag, i sidste ende, med at se på en programmering 775 00:33:15,010 --> 00:33:16,260 sprog kaldet Scratch. 776 00:33:16,260 --> 00:33:19,380 Vi vil overgangen derefter næste uge til noget, der hedder C 777 00:33:19,380 --> 00:33:22,140 og derefter se på andre bygning blokke til løsning af problemer, 778 00:33:22,140 --> 00:33:26,230 ting kaldet arrays og algoritmer, hvordan vi bruger hukommelse til vores fordel 779 00:33:26,230 --> 00:33:28,326 og ulempe, og ting som datastrukturer, 780 00:33:28,326 --> 00:33:31,200 og derefter mod den bageste ende af klasse kigger på machine learning 781 00:33:31,200 --> 00:33:33,410 og ser på en anden sprog kaldet Python, 782 00:33:33,410 --> 00:33:37,460 hvordan internettet fungerer, hvordan internettet mere generelt fungerer, protokoller som HTTP, 783 00:33:37,460 --> 00:33:40,950 sprog til databaser som SQL, JavaScript til web, 784 00:33:40,950 --> 00:33:43,000 og i sidste ende at binde samtlige anmodninger. 785 00:33:43,000 --> 00:33:44,708 >> Og så ja, på slutningen af ​​dagen, du 786 00:33:44,708 --> 00:33:50,250 vil ikke lære i denne klasse Scratch eller C eller Python eller SQL eller JavaScript. 787 00:33:50,250 --> 00:33:53,560 Du vil i stedet mere generelt lære datalogi og grundlaget 788 00:33:53,560 --> 00:33:55,790 deraf, og du vil lære at programmere 789 00:33:55,790 --> 00:33:58,800 i vilkårligt blandt disse sprog undervejs. 790 00:33:58,800 --> 00:34:00,970 Så ja, et af målene af kurset i sidste ende 791 00:34:00,970 --> 00:34:04,160 er at tage ud alle kursets uddannelse hjul med disse sidste uger 792 00:34:04,160 --> 00:34:06,710 så efter dette, kan man vende tilbage til din egen fields-- 793 00:34:06,710 --> 00:34:08,510 om dette er eller er ikke datalogi 794 00:34:08,510 --> 00:34:12,290 eller ingeniør, i den naturlige videnskaber, kunst, humaniora, eller beyond-- 795 00:34:12,290 --> 00:34:14,720 og bringe nogle af denne kursets ideer og dette feltets 796 00:34:14,720 --> 00:34:17,400 ideer og praktisk færdigheder til dit eget domæne 797 00:34:17,400 --> 00:34:19,480 for at løse problemer deri. 798 00:34:19,480 --> 00:34:22,990 >> Det, vi vil gøre her i mellemtiden i de fleste torsdage efter dag 799 00:34:22,990 --> 00:34:26,160 er med kursets hoveder førende hvad vi vil kalde walkthroughs 800 00:34:26,160 --> 00:34:27,620 af kursets problemet sæt. 801 00:34:27,620 --> 00:34:29,610 Så hver uge, når vi har et problem sæt, vil vi 802 00:34:29,610 --> 00:34:32,900 være at gå igennem på et sted ligesom dette kursets udfordringer, 803 00:34:32,900 --> 00:34:35,582 tilbyder dig nogle tips og tricks og design teknikker. 804 00:34:35,582 --> 00:34:37,540 Men hvis du ikke er i stand at gøre dem i person, 805 00:34:37,540 --> 00:34:39,760 realisere dem samme ressourcer vil blive indlejret 806 00:34:39,760 --> 00:34:41,590 af en af ​​kursets undervisningsassistenter 807 00:34:41,590 --> 00:34:43,860 i problemet sætter sig selv, så godt. 808 00:34:43,860 --> 00:34:47,124 >> Problemet sætter i år, i modsætning til sidste år, baseret på feedback, 809 00:34:47,124 --> 00:34:48,540 vil stadig blive udgivet om fredagen. 810 00:34:48,540 --> 00:34:51,310 Men snarere end at være på grund af den efterfølgende fredag 811 00:34:51,310 --> 00:34:55,079 hvilket giver dig kun syv dage vil effektivt være på grund 10 dage senere. 812 00:34:55,079 --> 00:34:57,620 Og ja, vil det betyde, at de vil overlappe med en weekend. 813 00:34:57,620 --> 00:34:59,369 Men vi håber, at dette år især dette vil 814 00:34:59,369 --> 00:35:02,320 give studerende mulighed for bedre plads ebbe og flow i deres tidsplaner, 815 00:35:02,320 --> 00:35:05,040 uanset om det er akademikere eller extracurriculars eller atletik 816 00:35:05,040 --> 00:35:06,280 eller midtvejs sæson. 817 00:35:06,280 --> 00:35:10,060 Du kan enten front-load eller back-load din uge med fokus på CS50 baseret 818 00:35:10,060 --> 00:35:12,400 på din egen uges aktuelle kursus belastning. 819 00:35:12,400 --> 00:35:14,990 >> Problemet sætter sig selv vil dække en række sprog, 820 00:35:14,990 --> 00:35:17,990 selvom vi vil fokusere overvejende tidligt på C 821 00:35:17,990 --> 00:35:23,040 før vi fokuserer derefter på højere niveau, flere web-centreret sprog. 822 00:35:23,040 --> 00:35:25,970 Og så et par ofte stillede spørgsmål her-- bør du tage en klasse som CS50 823 00:35:25,970 --> 00:35:26,900 som et første-år? 824 00:35:26,900 --> 00:35:27,970 Så absolut. 825 00:35:27,970 --> 00:35:30,470 Og ja, det er ikke nødvendigvis noget 826 00:35:30,470 --> 00:35:34,440 du bør udskyde, indtil du har skåret dine tænder på andre typer af klasser. 827 00:35:34,440 --> 00:35:36,290 Men snarere, overveje at for mange studerende, 828 00:35:36,290 --> 00:35:39,040 inklusive mig selv tilbage i dag, dette er en meget uvant område, 829 00:35:39,040 --> 00:35:40,997 især hvis du aldrig tage en AP CSA 830 00:35:40,997 --> 00:35:42,580 eller sådan noget i gymnasiet. 831 00:35:42,580 --> 00:35:44,705 Men indse, at tidligt, uanset om det er dette kursus 832 00:35:44,705 --> 00:35:47,900 eller en anden indledende kursus, nu er faktisk det bedste tidspunkt, 833 00:35:47,900 --> 00:35:52,082 Jeg tror, ​​at finde nogle nye sti eller nogle nye akademisk interesse, så godt. 834 00:35:52,082 --> 00:35:55,040 Og derefter at tage med andre courses-- så en af ​​de vigtigste forskelle her 835 00:35:55,040 --> 00:35:57,906 versus Harvard er, at vi kun tage fire kurser pr semester 836 00:35:57,906 --> 00:35:59,030 på Harvard eller anden grund. 837 00:35:59,030 --> 00:36:01,494 Og jer faktisk trække fra nogle 36 kurser i alt 838 00:36:01,494 --> 00:36:04,410 i løbet af dine fire år, hvilket betyder generelt fire eller fem 839 00:36:04,410 --> 00:36:05,040 klasser. 840 00:36:05,040 --> 00:36:08,367 Og jeg synes det er helt fair at sige og at fralægge CS50, ved design, er 841 00:36:08,367 --> 00:36:10,700 sandsynligvis ikke den type klassen at du skal typisk 842 00:36:10,700 --> 00:36:13,680 tage med fire andre kurser for i alt fem 843 00:36:13,680 --> 00:36:16,249 fordi psets er ved designe temmelig intensiv. 844 00:36:16,249 --> 00:36:18,040 Ja, jeg også lært dette tilbage i dag. 845 00:36:18,040 --> 00:36:21,110 Jeg vil ikke beskrive CS50 og datalogi, programmering 846 00:36:21,110 --> 00:36:24,477 som så meget hårdt, som det er blot tidskrævende. 847 00:36:24,477 --> 00:36:26,560 Det er ikke den slags ting hvor efter middagen, du 848 00:36:26,560 --> 00:36:28,310 kan gå tilbage til din kollegieværelse værelse, sidde ned, og start 849 00:36:28,310 --> 00:36:29,710 fokus på pset tænker, okay, 850 00:36:29,710 --> 00:36:31,340 Jeg vil bang det ud i aften og derefter flytte 851 00:36:31,340 --> 00:36:33,000 videre til mit næste emne næste dag. 852 00:36:33,000 --> 00:36:34,450 Nogle gange du bare ramt en mur. 853 00:36:34,450 --> 00:36:35,690 Du har fejl i din kode. 854 00:36:35,690 --> 00:36:37,900 Du behøver ikke nødvendigvis kender hvordan man løser nogle problemer. 855 00:36:37,900 --> 00:36:41,670 Og en af ​​de vigtigste elementer i programmering for mig selv den dag i dag 856 00:36:41,670 --> 00:36:44,480 er du lige slags nødt til at tage et skridt tilbage nogle gange, sove på det 857 00:36:44,480 --> 00:36:47,870 eller tror på det i løbet af en løbetur eller en anden aktivitet, 858 00:36:47,870 --> 00:36:49,240 og derefter vende tilbage til det friske. 859 00:36:49,240 --> 00:36:50,930 Og du skal bare disse vinduer af tid. 860 00:36:50,930 --> 00:36:52,910 >> Og ja, det er derfor vi har forlænget tidsrum 861 00:36:52,910 --> 00:36:55,710 til rådighed for problemet sæt i år og også, pr denne webadresse 862 00:36:55,710 --> 00:36:57,950 Jeg sætter op tidligere for at hvad der er nyt i dette semester, 863 00:36:57,950 --> 00:37:00,950 trimmet problemet indstiller således at de er fundamentalt ikke mindre strenge, 864 00:37:00,950 --> 00:37:03,741 og grillbarer er ikke mindre, men der er en masse mindre forreste sag, 865 00:37:03,741 --> 00:37:07,630 en masse mindre benarbejde, at du skal gøre på forsiden af ​​ethvert problem sæt, 866 00:37:07,630 --> 00:37:10,680 som du kan se, før du kan faktisk dykke ned i kød af det. 867 00:37:10,680 --> 00:37:13,500 Så indse, at disse og andre ændringer er i horisonten 868 00:37:13,500 --> 00:37:16,490 til bedre rumme studerende, men i sidste ende for at sikre 869 00:37:16,490 --> 00:37:18,860 at grillbarer er faktisk så højt som muligt. 870 00:37:18,860 --> 00:37:21,330 Så mens mere arbejde, end det kan være i en typisk klasse, 871 00:37:21,330 --> 00:37:25,120 Vi håber, at afkastet for dig og grillbarer for dig 872 00:37:25,120 --> 00:37:27,490 og de færdigheder og ideer som du afslutter 873 00:37:27,490 --> 00:37:29,921 er så meget mere overbevisende som et resultat. 874 00:37:29,921 --> 00:37:32,420 Og for at få dig there-- og dette er en af ​​de vigtigste grillbarer, 875 00:37:32,420 --> 00:37:35,470 som Patrick hentydede earlier-- er kursets støttestrukturen. 876 00:37:35,470 --> 00:37:39,720 Så ikke alene CS50 har en af de største kursus stabe på campus. 877 00:37:39,720 --> 00:37:41,750 Det har også en af ​​de mest bachelor. 878 00:37:41,750 --> 00:37:43,700 Faktisk CS50 sidste år var den første klasse 879 00:37:43,700 --> 00:37:45,366 at have en bachelor lærerkræfter. 880 00:37:45,366 --> 00:37:48,570 Og bevis på, at succes gør nu mange andre kurser inden for Yale CS 881 00:37:48,570 --> 00:37:49,500 har det, samt. 882 00:37:49,500 --> 00:37:52,906 Og for studerende, specifikt vil disse AT'er og kursus assistenter 883 00:37:52,906 --> 00:37:55,030 være støtte en hel netværk af supportressourcer, 884 00:37:55,030 --> 00:37:58,250 blandt dem sektioner eller recitationer, ugentlige muligheder 885 00:37:58,250 --> 00:38:01,674 at have mere intime diskussioner og anmeldelser af materiale målrettet 886 00:38:01,674 --> 00:38:04,590 for forskellige spor, for studerende mindre behagelig, mere komfortabel, 887 00:38:04,590 --> 00:38:05,720 eller midt imellem. 888 00:38:05,720 --> 00:38:08,886 Disse vil følge tilgængeligheden af forelæsningerne ved flere dage hver uge 889 00:38:08,886 --> 00:38:09,970 mandag og tirsdag. 890 00:38:09,970 --> 00:38:11,970 Og så office hours-- en-til-én muligheder 891 00:38:11,970 --> 00:38:15,490 om hjælp fra kurset CA'er og AT'er vil være på onsdage og torsdage 892 00:38:15,490 --> 00:38:18,400 og søndage på flere gange, som alle 893 00:38:18,400 --> 00:38:22,180 vil blive lagt ud på kursets hjemmeside, endnu mere end sidste år, så godt. 894 00:38:22,180 --> 00:38:25,501 >> Men hvad er nøglen til CS50, hvis ikke ganske vist lidt usædvanligt, 895 00:38:25,501 --> 00:38:27,750 er kursets kultur, vi har prøvet at dyrke, 896 00:38:27,750 --> 00:38:30,672 både i Cambridge i mange år og nu senest i New Haven. 897 00:38:30,672 --> 00:38:33,130 Og i virkeligheden, kommer op denne Lørdag, hvis du ikke har hørt, 898 00:38:33,130 --> 00:38:36,410 er CS50 Puzzle Day, som har intet at gøre med datalogi 899 00:38:36,410 --> 00:38:39,430 men er udelukkende beregnet til at sende en besked om, at datalogi er 900 00:38:39,430 --> 00:38:40,665 om problemløsning. 901 00:38:40,665 --> 00:38:43,540 Og ja, hvis du gerne vil partner med en eller to eller tre venner 902 00:38:43,540 --> 00:38:46,150 og danne et hold til CS50 Puzzle Day, tage et kig 903 00:38:46,150 --> 00:38:48,010 på reklamer, der er på vej ud. 904 00:38:48,010 --> 00:38:51,582 Og tre timer af pizza og gåder og præmier venter. 905 00:38:51,582 --> 00:38:53,290 Og ja, for første gang i år, 906 00:38:53,290 --> 00:38:54,873 det vil ikke blive afholdt i fællesskab med Harvard. 907 00:38:54,873 --> 00:38:57,530 Det vil være her uafhængigt på Yale. 908 00:38:57,530 --> 00:38:59,815 Så hold øje med dem, hvis du ikke har. 909 00:38:59,815 --> 00:39:02,440 De fleste hver fredag ​​i semesteret skal vi forsøge at gøre en stor klasse 910 00:39:02,440 --> 00:39:06,710 føler små og bringe nogle 50 elever til frokost med kursets personale, 911 00:39:06,710 --> 00:39:08,730 med alumni, venner fra industrien til at tale 912 00:39:08,730 --> 00:39:12,630 om, hvordan livet er efter en klasse som CS50 og over somre 913 00:39:12,630 --> 00:39:14,250 og efter endt uddannelse. 914 00:39:14,250 --> 00:39:16,280 Så hold øje med invitationer til at. 915 00:39:16,280 --> 00:39:17,988 For første gang nogensinde i år vil vi 916 00:39:17,988 --> 00:39:21,420 holde den første nogensinde CS50 kodning konkurrence, en valgfri opt-in mulighed 917 00:39:21,420 --> 00:39:25,580 mid-semester, efter at alle af os har haft nogle seks eller syv ugers programmering 918 00:39:25,580 --> 00:39:30,100 i C under deres bælter til at konkurrere, hvis du vil så choose-- igen 919 00:39:30,100 --> 00:39:32,460 på teams-- forsøger at løse så mange udfordringer 920 00:39:32,460 --> 00:39:36,160 som du kan i programmering med af dine venner mod andre. 921 00:39:36,160 --> 00:39:38,850 >> Og mod halen af ​​semestret vil vi charter nogle busser, 922 00:39:38,850 --> 00:39:40,850 faktisk bruge lidt tid i Cambridge, hvis du ville 923 00:39:40,850 --> 00:39:43,460 gerne slutte sig til os, for såkaldte CS50 hackathon. 924 00:39:43,460 --> 00:39:44,600 Ved 19:00 vil vi begynde. 925 00:39:44,600 --> 00:39:45,970 Omkring 09:00, vil vi have pizza. 926 00:39:45,970 --> 00:39:47,650 Omkring 01:00, vil vi have burritos. 927 00:39:47,650 --> 00:39:50,550 Og nogen stadig vågen på bustur hjem omkring 05:00, 928 00:39:50,550 --> 00:39:54,070 vi stoppe til pandekager på IHOP på vej home-- 929 00:39:54,070 --> 00:39:57,540 en 12-timers mulighed for at fordybe dig selv med klassekammerater og personale 930 00:39:57,540 --> 00:39:59,950 i løbet endelige projekt, der er en mulighed 931 00:39:59,950 --> 00:40:01,870 til at gå langt ud over den kursets problem sæt 932 00:40:01,870 --> 00:40:05,950 og design og implementere de fleste noget af interesse for dig, 933 00:40:05,950 --> 00:40:09,170 der i sidste ende vil være featured her i Commons. 934 00:40:09,170 --> 00:40:12,510 Den første nogensinde CS50 messen var sidste år, en end-of-semester udstilling 935 00:40:12,510 --> 00:40:15,460 eller fejring af, hvad alle i klassen havde udført, 936 00:40:15,460 --> 00:40:19,810 især dem, igen, der gik fra intet til noget, fra nul til 60, 937 00:40:19,810 --> 00:40:22,450 ikke har nogen forudgående baggrund og som udviser, i sidste ende, 938 00:40:22,450 --> 00:40:26,960 noget for hele campus og, hvis online, til verden se, så godt. 939 00:40:26,960 --> 00:40:30,780 >> Nu, disse her er blot et par af de TAs og CA'er, der gør CS50 muligt. 940 00:40:30,780 --> 00:40:33,034 Tillad mig at invitere nogen af disse ansatte 941 00:40:33,034 --> 00:40:35,700 der er her for at komme op på scenen, samt kursets hoveder, 942 00:40:35,700 --> 00:40:38,785 at tilbyde nogle ord inspiration, samt. 943 00:40:38,785 --> 00:41:03,138 944 00:41:03,138 --> 00:41:03,950 >> ANDI: Hej, gutter. 945 00:41:03,950 --> 00:41:05,290 Kan du fyre høre mig? 946 00:41:05,290 --> 00:41:10,260 Tak for slutter sig til os på denne dejlige, regnfuld torsdag eftermiddag. 947 00:41:10,260 --> 00:41:11,010 Mit navn er Andi. 948 00:41:11,010 --> 00:41:12,070 Jeg er en junior i Berkeley. 949 00:41:12,070 --> 00:41:17,250 Og sammen med Stelios og sommer, vi vil være din tre hoved undervisning 950 00:41:17,250 --> 00:41:19,277 assistenter til denne kommende år. 951 00:41:19,277 --> 00:41:21,110 Så jeg tror, ​​show af hands-- hvor mange af jer 952 00:41:21,110 --> 00:41:26,680 har ikke til hensigt at være en CS større eller virkelig dykning dybt 953 00:41:26,680 --> 00:41:29,930 i datalogi som en vigtig her? 954 00:41:29,930 --> 00:41:30,520 Awesome. 955 00:41:30,520 --> 00:41:32,730 Det er strålende. 956 00:41:32,730 --> 00:41:35,850 >> Så jeg er faktisk en global anliggender og kognitiv videnskab major. 957 00:41:35,850 --> 00:41:37,780 Jeg bogstaveligt talt kom til Yale med den hensigt 958 00:41:37,780 --> 00:41:42,199 af aldrig at skulle se på en nummer nogensinde igen i mit liv. 959 00:41:42,199 --> 00:41:44,990 Da jeg kom til Yale, var dette noget, der var aldrig på min radar. 960 00:41:44,990 --> 00:41:46,460 Jeg ønskede at lære om poesi. 961 00:41:46,460 --> 00:41:48,500 Jeg ønskede at lære om internationale anliggender. 962 00:41:48,500 --> 00:41:50,510 Jeg ønskede at lære om akvarel tegninger. 963 00:41:50,510 --> 00:41:53,360 Ja, vi tilbyder en klasse på akvarel tegninger. 964 00:41:53,360 --> 00:41:57,340 >> Men jeg har aldrig rigtig var interesseret i noget STEM relateret. 965 00:41:57,340 --> 00:41:59,620 Men så ældre jeg fik, jo mere jeg indså 966 00:41:59,620 --> 00:42:03,340 at alle områder virkelig i nogle fornuft beskæftiger datalogi, 967 00:42:03,340 --> 00:42:05,700 eller hvis ikke datalogi, beregning. 968 00:42:05,700 --> 00:42:08,300 Faktisk for min globale anliggender capstone projekt, 969 00:42:08,300 --> 00:42:12,020 vi bruger data analytics at analysere terrorangreb 970 00:42:12,020 --> 00:42:13,680 for Boko Haram i Nigeria. 971 00:42:13,680 --> 00:42:17,510 Og så som du kan se, uanset af, hvad store du ender forfølger 972 00:42:17,510 --> 00:42:21,640 eller hvad dine interesser her på Yale er, programmering og grundlaget 973 00:42:21,640 --> 00:42:24,130 uanset færdigheder er super nyttige. 974 00:42:24,130 --> 00:42:29,840 Og CS50 virkelig er godt rustet til slags låne en masse af sine ressourcer 975 00:42:29,840 --> 00:42:32,060 til dig, uanset hvordan komfortable du er 976 00:42:32,060 --> 00:42:34,590 eller hvordan interesserede du er i at forfølge klassen. 977 00:42:34,590 --> 00:42:37,290 >> Sommer kommer til at snakke lidt lidt om, hvad du fyre er 978 00:42:37,290 --> 00:42:39,635 kommer til at lære om dette år. 979 00:42:39,635 --> 00:42:40,510 SOMMER: Hej, alle. 980 00:42:40,510 --> 00:42:41,320 Jeg er Summer Wu. 981 00:42:41,320 --> 00:42:43,090 Jeg er en junior i Morse. 982 00:42:43,090 --> 00:42:48,100 Og jeg faktisk startede ud som CS50 studerende selv. 983 00:42:48,100 --> 00:42:51,460 Så tre år siden, var jeg på et hul år. 984 00:42:51,460 --> 00:42:53,940 Jeg havde aldrig taget en CS klasse i gymnasiet, 985 00:42:53,940 --> 00:42:57,800 men jeg tænkte, at i min fritid, det ville være fedt at lære at kode. 986 00:42:57,800 --> 00:43:02,610 Så jeg gjorde en hurtig Google-søgning, så for hvad var tilgængelig online, 987 00:43:02,610 --> 00:43:06,990 og så denne video med muppets og DJs og cool websites. 988 00:43:06,990 --> 00:43:09,450 Jeg var ligesom, jeg ønsker at lære at gøre det. 989 00:43:09,450 --> 00:43:14,690 >> Så jeg tog kurset, og jeg lige faldt i kærlighed med det. 990 00:43:14,690 --> 00:43:20,410 Men jeg kan huske at være så jaloux på børn, der kunne deltage i hackathon, 991 00:43:20,410 --> 00:43:24,610 deltage Puzzle Day, deltage kontor timer, få hjælp fra TAs personligt. 992 00:43:24,610 --> 00:43:27,410 Og så jeg aldrig forestillet mig at jeg ville få chancen 993 00:43:27,410 --> 00:43:30,640 at være her involveret i kurset, der først fik 994 00:43:30,640 --> 00:43:33,630 mig interesseret i computer videnskab og er grunden 995 00:43:33,630 --> 00:43:35,690 Jeg er en computer science stor dag. 996 00:43:35,690 --> 00:43:39,290 Så jeg vil advare dig, denne klasse kommer til at strække dig. 997 00:43:39,290 --> 00:43:41,120 Det kommer til at udfordre dig. 998 00:43:41,120 --> 00:43:43,910 Men det er også kommer til at lære dig at gøre ting 999 00:43:43,910 --> 00:43:45,506 at du aldrig forestillet du kunne. 1000 00:43:45,506 --> 00:43:49,330 1001 00:43:49,330 --> 00:43:52,160 >> Stelios: Hej, alle. 1002 00:43:52,160 --> 00:43:53,510 Mit navn er Stelios. 1003 00:43:53,510 --> 00:43:58,240 Jeg er en junior i Branford College og en CS major. 1004 00:43:58,240 --> 00:44:01,640 Jeg er også fra Athen, Grækenland. 1005 00:44:01,640 --> 00:44:03,830 Jeg ser virkelig frem til at møde jer alle, 1006 00:44:03,830 --> 00:44:09,010 chatte med dig på afsnittet på kontortid, ved fredag ​​frokoster. 1007 00:44:09,010 --> 00:44:11,250 Jeg er virkelig begejstret, fordi vi har lagt så meget arbejde 1008 00:44:11,250 --> 00:44:14,650 i at skabe en unik støtte struktur for alle jer 1009 00:44:14,650 --> 00:44:19,170 at gøre din oplevelse med kurset bedst muligt. 1010 00:44:19,170 --> 00:44:22,640 Og jeg håber, at selv om de fleste af du har nok ikke taget en CS 1011 00:44:22,640 --> 00:44:27,310 kursus før, jeg håber, det er CS50 for dig er, hvad gnister interesse 1012 00:44:27,310 --> 00:44:30,260 til at fortsætte computer videnskab i fremtiden, 1013 00:44:30,260 --> 00:44:33,270 som det har gjort med så mange mennesker i fortiden. 1014 00:44:33,270 --> 00:44:36,740 Så tak fordi du er her, spændt på at se dig. 1015 00:44:36,740 --> 00:44:38,487 Jason Hirschhorn. 1016 00:44:38,487 --> 00:44:39,820 JASON HIRSCHHORN: Hej, alle. 1017 00:44:39,820 --> 00:44:41,700 Mit navn er Jason Hirschhorn. 1018 00:44:41,700 --> 00:44:43,050 Jeg bor i Silliman. 1019 00:44:43,050 --> 00:44:46,910 Og jeg gik til Harvard som en bachelorstuderendes og hovedfag i samfundsfag 1020 00:44:46,910 --> 00:44:48,870 og minored i datalogi. 1021 00:44:48,870 --> 00:44:53,100 Og en af ​​mine vigtigste roller her er at støtte denne vidunderlige personale 1022 00:44:53,100 --> 00:44:54,630 som de støtter jer alle. 1023 00:44:54,630 --> 00:44:56,410 I virkeligheden er dette ikke dem alle. 1024 00:44:56,410 --> 00:45:01,230 Der er 55 bachelorer og kandidater her for at støtte jer alle. 1025 00:45:01,230 --> 00:45:04,420 Og jeg daresay en af ​​bedste dele af kurset for dig 1026 00:45:04,420 --> 00:45:08,080 alle er at komme til at arbejde med dem, at kende dem, 1027 00:45:08,080 --> 00:45:12,389 få at se dem, både i CS50 og uden for CS50 dette semester 1028 00:45:12,389 --> 00:45:13,680 og for mange semestre til at komme. 1029 00:45:13,680 --> 00:45:16,770 Så forhåbentlig vil du tage kursus, fordi forhåbentlig du 1030 00:45:16,770 --> 00:45:21,060 komme til at interagere med vidunderlige personale, vi har på scenen. 1031 00:45:21,060 --> 00:45:24,977 >> SPEAKER: Nå, lad mig slutte ved at sige, at det vil være sjovt. 1032 00:45:24,977 --> 00:45:26,810 DAVID MALAN: Nå, takket være vores hele holdet. 1033 00:45:26,810 --> 00:45:29,610 Tillad mig at dæmpe lyset og tillade nogle flere af vores team, 1034 00:45:29,610 --> 00:45:32,890 både fra Cambridge og New Haven, for at sige hej, da disse fyre fil fra. 1035 00:45:32,890 --> 00:45:36,130 Og efter det vil vi overgangen til den første af vores programmering træfninger 1036 00:45:36,130 --> 00:45:37,584 med dette sprog kaldes Scratch. 1037 00:45:37,584 --> 00:45:38,500 Så tak til holdet. 1038 00:45:38,500 --> 00:45:40,770 Lad os dæmp lyset og høre fra et par andre. 1039 00:45:40,770 --> 00:45:44,207 >> [BIFALD] 1040 00:45:44,207 --> 00:45:45,680 1041 00:45:45,680 --> 00:45:48,140 >> [VIDEO PLAYBACK] 1042 00:45:48,140 --> 00:45:53,210 >> -Den Mission CS50 er at gøre dig mere komfortabel med en helt ny måde 1043 00:45:53,210 --> 00:45:54,947 at tænke på, denne beregningsmæssige tankegang. 1044 00:45:54,947 --> 00:45:56,780 -Det Gjorde datalogi interessant, som 1045 00:45:56,780 --> 00:46:00,241 er noget jeg ikke rigtig klar over var muligt, indtil jeg tog klassen. 1046 00:46:00,241 --> 00:46:00,990 -Jeg Var ligesom, whoa. 1047 00:46:00,990 --> 00:46:04,120 Jeg er virkelig oversætte mine tanker ind i en computer lige nu. 1048 00:46:04,120 --> 00:46:07,970 >> -Selv Hvis du ikke har nogen baggrund i datalogi eller nogen erfaring, 1049 00:46:07,970 --> 00:46:10,140 det er faktisk den klasse for dig. 1050 00:46:10,140 --> 00:46:12,250 >> -Så Jeg absolut vil mine studerende til bare 1051 00:46:12,250 --> 00:46:14,350 få begejstrede datalogi. 1052 00:46:14,350 --> 00:46:17,187 Ikke bare programmering, men tænke som en datalog 1053 00:46:17,187 --> 00:46:19,270 er virkelig, hvad jeg ønsker at forsøge at lære min freshman. 1054 00:46:19,270 --> 00:46:21,560 >> -CS50 Er hård og givende. 1055 00:46:21,560 --> 00:46:22,592 >> -En Oplevelse. 1056 00:46:22,592 --> 00:46:23,456 >> -Extravaganza. 1057 00:46:23,456 --> 00:46:26,350 >> -Det Er bringer os til det næste niveau. 1058 00:46:26,350 --> 00:46:28,850 >> [MUSIK AFSPILLER] 1059 00:46:28,850 --> 00:46:32,167 >> -De TF'er er, tror jeg, at livsnerven i kurset. 1060 00:46:32,167 --> 00:46:34,560 >> -Jeg Glade for at have mine elever jeg hjælpe 1061 00:46:34,560 --> 00:46:38,027 har at aha øjeblik til at realisere hvad de faktisk forsøger 1062 00:46:38,027 --> 00:46:39,610 at gøre, for at finde ud af at gøre en pset. 1063 00:46:39,610 --> 00:46:41,438 >> -CS50 Er helt sikkert en hård kurs. 1064 00:46:41,438 --> 00:46:43,960 Men i modsætning til alle andre kursus virkelig på Yale, 1065 00:46:43,960 --> 00:46:45,759 det har sådan en stor, støttende fællesskab. 1066 00:46:45,759 --> 00:46:47,550 -Du Absolut ikke brug for at vide noget 1067 00:46:47,550 --> 00:46:49,341 om kodning at kunne at tage kurset. 1068 00:46:49,341 --> 00:46:52,270 -Det Er fantastisk at se, hvor langt folk kommer i et semester. 1069 00:46:52,270 --> 00:46:55,610 >> -Du Var ikke alene sidder i dit værelse lære at kode, 1070 00:46:55,610 --> 00:46:57,170 men det var mere end bare en klasse. 1071 00:46:57,170 --> 00:46:58,044 Det var en oplevelse. 1072 00:46:58,044 --> 00:47:02,500 -Den Bedste måde at lære begreber og at forarbejde dem er ved at undervise andre. 1073 00:47:02,500 --> 00:47:04,033 >> -Hvad Er telefonen split? 1074 00:47:04,033 --> 00:47:06,934 >> [MUSIK AFSPILLER] 1075 00:47:06,934 --> 00:47:08,080 >> -Og Det er CS50. 1076 00:47:08,080 --> 00:47:10,810 >> [MUSIK AFSPILLER] 1077 00:47:10,810 --> 00:47:11,720 1078 00:47:11,720 --> 00:47:12,380 >> -Det Er CS50. 1079 00:47:12,380 --> 00:47:13,446 >> -Got Et problem? 1080 00:47:13,446 --> 00:47:14,852 Riv det i halve. 1081 00:47:14,852 --> 00:47:15,804 >> [MUSIK AFSPILLER] 1082 00:47:15,804 --> 00:47:18,184 >> Smide det væk. 1083 00:47:18,184 --> 00:47:19,520 >> DAVID MALAN: Okay. 1084 00:47:19,520 --> 00:47:23,190 Så lad os tackle-- i en lille bit øvrigt er det 1085 00:47:23,190 --> 00:47:25,270 været denne tradition for anden grund i 10 år 1086 00:47:25,270 --> 00:47:27,260 at tjene kage på start og afslutning CS50. 1087 00:47:27,260 --> 00:47:30,800 Så venter dig i slutningen af dag, udover pensum, 1088 00:47:30,800 --> 00:47:34,270 vil være nogle kage samt, og kursets personale til at sige hej. 1089 00:47:34,270 --> 00:47:37,110 Men nu, lad os overgang til første af vores sprog, hvor 1090 00:47:37,110 --> 00:47:40,970 vi vil tilbringe egentlig bare en uge og en problem indstillet på dette domæne, Scratch. 1091 00:47:40,970 --> 00:47:43,160 Og du vil finde, hvis du har programmeret før, mange 1092 00:47:43,160 --> 00:47:46,280 af de ideer og Mulighederne er velkendt for dig. 1093 00:47:46,280 --> 00:47:48,160 Men du opdage, at det er sjovt undervejs 1094 00:47:48,160 --> 00:47:51,201 at finde ud af præcis hvordan at oversætte nogle af de ideer, du allerede kender 1095 00:47:51,201 --> 00:47:53,852 til denne særlige miljø til virkelig at imponere din familie 1096 00:47:53,852 --> 00:47:57,060 og venner med dit arbejde, som kan gå online, hvis du ønsker det, bagefter. 1097 00:47:57,060 --> 00:47:58,851 >> Og hvis du ikke har tidligere erfaring og er 1098 00:47:58,851 --> 00:48:01,540 blandt flertallet af studerende mindre komfortable, 1099 00:48:01,540 --> 00:48:05,320 indse, at mange af de tanker, vi bare udforsket med reality-- ting 1100 00:48:05,320 --> 00:48:07,970 ligesom telefonbøger og fremmøde og så forth-- oversætte 1101 00:48:07,970 --> 00:48:12,280 temmelig pænt til en computer, men ikke hvis du bruger, 1102 00:48:12,280 --> 00:48:13,710 oprindeligt, et sprog som denne. 1103 00:48:13,710 --> 00:48:16,290 Så dette er et program skrevet på et sprog, kaldet C. 1104 00:48:16,290 --> 00:48:18,590 Og vi vil tilbringe en hel tid i C, i sidste ende. 1105 00:48:18,590 --> 00:48:22,560 Men odds er, vil dette se lidt kryptisk for dig ved første øjekast. 1106 00:48:22,560 --> 00:48:25,760 Faktisk er der er en masse underlige syntaks, parenteser, vinkelparenteser, 1107 00:48:25,760 --> 00:48:27,422 krøllede parenteser, citater og semikoloner. 1108 00:48:27,422 --> 00:48:29,880 Og ja, hvis du dykke ned i programmering for første gang 1109 00:48:29,880 --> 00:48:33,420 ser på og prøver at skabe stuff som dette, ærligt, du bliver så nedsunket 1110 00:48:33,420 --> 00:48:36,500 så ofte i bare dum minutia, der intet 1111 00:48:36,500 --> 00:48:38,240 intellektuelt interessant om det. 1112 00:48:38,240 --> 00:48:40,980 >> Men tænk, hvis du kunne skabe denne samme program-- som, 1113 00:48:40,980 --> 00:48:46,200 som du måske slags udlede, sandsynligvis prints "Hej, verden" på en eller anden. 1114 00:48:46,200 --> 00:48:49,850 Vi kan destillere den samme idé til blot to puslespilsbrikker, hvis du vil. 1115 00:48:49,850 --> 00:48:52,850 Faktisk Scratch er interessant fordi det er det grafiske sprog. 1116 00:48:52,850 --> 00:48:56,110 Du kan trække og slippe disse puslespilsbrikker der kun interlock 1117 00:48:56,110 --> 00:48:57,940 hvis det giver logisk mening at gøre det. 1118 00:48:57,940 --> 00:48:59,830 Og så i Scratch, vi vil snart se, det er 1119 00:48:59,830 --> 00:49:03,460 hvordan du ville gennemføre denne samme program, med blot to puslespilsbrikker 1120 00:49:03,460 --> 00:49:05,420 at stort set gøre, hvad de siger. 1121 00:49:05,420 --> 00:49:08,870 >> Men vi vil se på bare et øjeblik, at nogle af byggestenene, som vi hentydede 1122 00:49:08,870 --> 00:49:12,140 til tidligere og et par mere er alt, i sidste ende kommer til at udgøre 1123 00:49:12,140 --> 00:49:13,460 nogle af vores tidligste programmer. 1124 00:49:13,460 --> 00:49:15,460 Vi kommer til at have ting ligesom functions-- bare 1125 00:49:15,460 --> 00:49:18,034 handlinger, der gør noget, gerne sige hej, verden. 1126 00:49:18,034 --> 00:49:20,200 Vi kommer til at have sløjfer, ting, der inducerer cyklusser 1127 00:49:20,200 --> 00:49:23,210 igen og igen, ligesom vi gjorde for et øjeblik siden med søgning 1128 00:49:23,210 --> 00:49:24,110 for Mike Smith. 1129 00:49:24,110 --> 00:49:27,190 Variabler, som i algebra, hvis du har x eller y, der kan lagre et tal. 1130 00:49:27,190 --> 00:49:29,940 Tja, i et program, kan du faktisk lagre mere end bare tal. 1131 00:49:29,940 --> 00:49:34,290 Du kan gemme ord og sætninger og grafik og andre ting stille. 1132 00:49:34,290 --> 00:49:37,530 Boolske udtryk, bare questions-- ja eller nej, sandt eller falsk. 1133 00:49:37,530 --> 00:49:40,680 Betingelser, beslutninger lave baseret på disse ja / nej svar. 1134 00:49:40,680 --> 00:49:43,890 >> Og derefter mere avanceret ting som array og tråde og arrangementer 1135 00:49:43,890 --> 00:49:46,100 og et vilkårligt antal andre funktioner, men som alle 1136 00:49:46,100 --> 00:49:48,670 kort meget pænt til meget venlige blokke som denne. 1137 00:49:48,670 --> 00:49:52,736 Dette vil være en funktion, en lilla brik, der bare siger 1138 00:49:52,736 --> 00:49:54,717 hvad navnet is-- i denne sag, siger. 1139 00:49:54,717 --> 00:49:56,550 Og så ofte, er der en hvid boks, som du 1140 00:49:56,550 --> 00:49:58,550 kan skrive eller trække en vis værdi ind. 1141 00:49:58,550 --> 00:50:01,370 Og det er, hvad der er generelt kaldes et argument eller en parameter. 1142 00:50:01,370 --> 00:50:04,110 Det er en måde at ændre standard opførsel af et puslespil 1143 00:50:04,110 --> 00:50:07,530 stykke eller en funktion, således at den gør noget skik for du kan lide at sige, 1144 00:50:07,530 --> 00:50:12,570 hej, verden eller hej, Andy eller goddag, Jason eller en anden sætning i stedet. 1145 00:50:12,570 --> 00:50:15,830 >> Hvis du vil sige, at en lot-- bogstaveligt forever-- 1146 00:50:15,830 --> 00:50:18,142 du kan tage en anden puslespilsbrik kaldes evigt 1147 00:50:18,142 --> 00:50:20,100 og lige klemt den to sammen på denne måde. 1148 00:50:20,100 --> 00:50:24,090 Og at løkke, som billedet antyder, betyder bare sige hej, verden for evigt, 1149 00:50:24,090 --> 00:50:25,810 igen og igen og igen. 1150 00:50:25,810 --> 00:50:28,840 Eller, hvis du kun ønsker at gøre det en endeligt antal gange, ligesom 50 gange, 1151 00:50:28,840 --> 00:50:32,050 Der kommer til at være en anden puslespil stykke for at-- gentag 50 gange. 1152 00:50:32,050 --> 00:50:34,190 >> I mellemtiden, hvis du ønsker til et varierende 1153 00:50:34,190 --> 00:50:36,090 i dette sprog er vi om at lege med, 1154 00:50:36,090 --> 00:50:37,880 du kan bruge en appelsin blok som denne. 1155 00:50:37,880 --> 00:50:40,750 Og denne variabel jeg vilkårligt opfordrede jeg til heltal. 1156 00:50:40,750 --> 00:50:42,290 Og jeg bare sætte det lig med 0. 1157 00:50:42,290 --> 00:50:44,780 Og så måske jeg, i dette case-- dette variable-- 1158 00:50:44,780 --> 00:50:46,630 repræsenterer en persons score i et spil. 1159 00:50:46,630 --> 00:50:49,680 Du starter ved nul, og hver gang du gøre et mål eller sådan noget, 1160 00:50:49,680 --> 00:50:51,270 du får en ekstra punkt. 1161 00:50:51,270 --> 00:50:52,830 >> Du kan stille spørgsmål i Scratch. 1162 00:50:52,830 --> 00:50:55,390 Hvis vi trækker og slipper puslespil stykker i et øjeblik som dette, 1163 00:50:55,390 --> 00:50:58,470 du kan stille spørgsmål som, godt, er jeg mindre end 50? 1164 00:50:58,470 --> 00:51:00,060 Måske har du brug 50 point for at vinde. 1165 00:51:00,060 --> 00:51:01,893 Og så det ville være det spørgsmål, du ville spørge. 1166 00:51:01,893 --> 00:51:04,030 Eller mere generelt, du kunne sige, er x mindre end y, 1167 00:51:04,030 --> 00:51:05,780 hvor der er to variabler involveret? 1168 00:51:05,780 --> 00:51:08,320 Nu, dette er en meget større ved første øjekast, 1169 00:51:08,320 --> 00:51:11,470 men virkelig ikke alt, mere kompleks. 1170 00:51:11,470 --> 00:51:15,390 >> Dette er blot en kombination betingelser og variabler 1171 00:51:15,390 --> 00:51:19,370 og boolske udtryk til at spørge tre questions-- er x mindre end y? 1172 00:51:19,370 --> 00:51:20,660 Hvis ja, så sig det. 1173 00:51:20,660 --> 00:51:22,170 Sig, x er mindre end y. 1174 00:51:22,170 --> 00:51:26,571 Else, hvis x er større end y, skal ellers x være lig med y. 1175 00:51:26,571 --> 00:51:29,070 Og mens med Mike Smith, var der fire scenarier, her 1176 00:51:29,070 --> 00:51:32,270 i verden af ​​tal, x er enten mindre end, større end eller lig med. 1177 00:51:32,270 --> 00:51:34,531 Alt, hvad vi har er tre gafler i vejen. 1178 00:51:34,531 --> 00:51:36,530 Og så er der fancier puslespilsbrikker som denne 1179 00:51:36,530 --> 00:51:39,613 for ting som arrays, hvor vi er vil være i stand til at lagre oplysninger. 1180 00:51:39,613 --> 00:51:43,590 Vi kommer til at se blokke, der tillader os til at gennemføre flere tråde, 1181 00:51:43,590 --> 00:51:46,620 en anden funktion vi vil bruge, og så også noget, der hedder begivenheder. 1182 00:51:46,620 --> 00:51:49,390 Men før vi kommer til det punkt og skabe endnu, 1183 00:51:49,390 --> 00:51:52,000 i sidste ende, vores egne brugerdefinerede puslespilsbrikker, lad os 1184 00:51:52,000 --> 00:51:53,950 faktisk åbne selve programmet. 1185 00:51:53,950 --> 00:51:54,860 >> Så dette er Scratch. 1186 00:51:54,860 --> 00:51:57,490 Det er tilgængeligt på scratch.mit.edu. 1187 00:51:57,490 --> 00:51:59,650 Og du er velkommen til at spille nu eller senere, så godt. 1188 00:51:59,650 --> 00:52:01,330 Dette sker for at være offline version. 1189 00:52:01,330 --> 00:52:03,129 For folk, der ikke gør nødvendigvis stor internet, 1190 00:52:03,129 --> 00:52:04,962 du kan downloade samme software, samt. 1191 00:52:04,962 --> 00:52:07,460 Og der er virkelig kun tre komponenter til denne software. 1192 00:52:07,460 --> 00:52:10,860 På det øverste venstre hjørne af skærmen er den slags scenen 1193 00:52:10,860 --> 00:52:13,800 at Scratch, der som standard ligner en kat, bor inde. 1194 00:52:13,800 --> 00:52:16,799 Han kan bevæge sig op, ned, til venstre og højre og gøre en række andre ting, 1195 00:52:16,799 --> 00:52:20,520 og kan se en række forskellige måder baseret på de kostumer, som du tildeler ham. 1196 00:52:20,520 --> 00:52:22,980 Men det er, hvad vi vil kalde en sprite, en slags tegn. 1197 00:52:22,980 --> 00:52:25,429 Og du kan have flere tegn, som vi vil snart se. 1198 00:52:25,429 --> 00:52:30,060 >> I midten nu er alle disse puslespil stykker og disse kategorier eller paller 1199 00:52:30,060 --> 00:52:30,900 deraf. 1200 00:52:30,900 --> 00:52:32,429 Så lige nu, jeg klikkede på Motion. 1201 00:52:32,429 --> 00:52:35,900 Og så jeg ser alle de motion-relaterede puslespilsbrikker eller blokke, 1202 00:52:35,900 --> 00:52:37,950 så funktioner, der har at gøre med at gå op, 1203 00:52:37,950 --> 00:52:39,950 ned, til venstre eller til højre eller nogle andre operation. 1204 00:52:39,950 --> 00:52:43,790 Men hvis jeg klikkede på Looks, du kunne se ting som siger blokken 1205 00:52:43,790 --> 00:52:45,084 at vi så bare et øjeblik siden. 1206 00:52:45,084 --> 00:52:48,250 Og hvis jeg klikker på kontrol, vil du se ting som gentagelse og for evigt 1207 00:52:48,250 --> 00:52:50,410 og hvis blok, vi så for et øjeblik siden. 1208 00:52:50,410 --> 00:52:51,670 >> Og så finder du at vi bare ridse 1209 00:52:51,670 --> 00:52:53,750 overfladen af ​​nogle af de puslespil stykker sammen, 1210 00:52:53,750 --> 00:52:55,833 men det er alle temmelig intuitiv og punkt og klik. 1211 00:52:55,833 --> 00:52:58,219 Faktisk Scratch designet for yngre studerende 1212 00:52:58,219 --> 00:53:00,730 at hjælpe med at give dem en stikkontakt for kreativ tænkning. 1213 00:53:00,730 --> 00:53:03,040 Og alligevel vidunderligt, det er en vidunderlig springbræt 1214 00:53:03,040 --> 00:53:07,020 til nøjagtig de ideer, vi kommer til at udforske i C og Python og JavaScript, 1215 00:53:07,020 --> 00:53:07,719 såvel. 1216 00:53:07,719 --> 00:53:11,960 >> På højre side, endelig, her er dette, det såkaldte scripts område. 1217 00:53:11,960 --> 00:53:15,750 Og dette er kun den blank tavle med som du begynder at skrive et program. 1218 00:53:15,750 --> 00:53:16,897 Og jeg vil netop dette. 1219 00:53:16,897 --> 00:53:19,980 Nu, jeg tilfældigvis at vide, hvor tingene er fordi jeg har gjort dette et par gange. 1220 00:53:19,980 --> 00:53:22,710 Men jeg ved, at i henhold til kategorien Begivenheder, 1221 00:53:22,710 --> 00:53:25,520 der er denne blok her-- når grønne flag klikkes. 1222 00:53:25,520 --> 00:53:28,790 Og varsel, hvis jeg zoome ud og tilbage i over her på scenen, 1223 00:53:28,790 --> 00:53:31,190 Skrab liv inden for dette lille rektangulær verden, 1224 00:53:31,190 --> 00:53:33,920 oven som er en grøn flag og en rød stopskilt. 1225 00:53:33,920 --> 00:53:36,180 Så gå og stoppe hhv. 1226 00:53:36,180 --> 00:53:38,710 >> Og så hvad gør jeg ønsker at gøre når det grønne flag er klikket? 1227 00:53:38,710 --> 00:53:40,900 Nå, lad mig gå til det Ser kategori. 1228 00:53:40,900 --> 00:53:43,357 Og lad mig gå videre og trække og slippe dette. 1229 00:53:43,357 --> 00:53:45,940 Og mærke, så snart det bliver tæt, de er slags magnetisk. 1230 00:53:45,940 --> 00:53:48,489 Så hvis jeg nu giver slip, det klikker sammen flot og rent. 1231 00:53:48,489 --> 00:53:51,030 Og jeg har tænkt mig at gå videre og sige noget lignende hej, verden 1232 00:53:51,030 --> 00:53:52,190 i to sekunder. 1233 00:53:52,190 --> 00:53:56,730 Lad mig zoome ud og klik nu på grønne flag, og sige, hej, verden. 1234 00:53:56,730 --> 00:53:57,230 Okay. 1235 00:53:57,230 --> 00:53:58,460 Så det er alt fint og godt. 1236 00:53:58,460 --> 00:53:59,900 Ikke alt, spændende. 1237 00:53:59,900 --> 00:54:01,340 Lad os gøre det lidt mere nuttet. 1238 00:54:01,340 --> 00:54:03,494 Og jeg ved, at i forvejen, sker Scratch 1239 00:54:03,494 --> 00:54:05,160 til at komme med nogle søde ting som dette. 1240 00:54:05,160 --> 00:54:07,720 Så spille lyd meow indtil gjort. 1241 00:54:07,720 --> 00:54:09,531 Så lad os gøre det. 1242 00:54:09,531 --> 00:54:10,380 >> [MEOW] 1243 00:54:10,380 --> 00:54:11,819 >> Øv, det er henrivende. 1244 00:54:11,819 --> 00:54:12,860 Og hvis jeg klikker på det igen-- 1245 00:54:12,860 --> 00:54:14,920 >> [MEOW] 1246 00:54:14,920 --> 00:54:15,460 >> Og igen. 1247 00:54:15,460 --> 00:54:16,740 >> [MEOW] 1248 00:54:16,740 --> 00:54:18,760 >> Men jeg bliver ved at skulle genoplive Scratch. 1249 00:54:18,760 --> 00:54:20,010 Men jeg kan gøre det bedre end dette. 1250 00:54:20,010 --> 00:54:23,060 Hvorfor jeg ikke bare trække tre af disse. 1251 00:54:23,060 --> 00:54:24,821 Og nu er det tre gange så yndig. 1252 00:54:24,821 --> 00:54:26,264 >> [Mjavende] 1253 00:54:26,264 --> 00:54:28,190 >> OK, faktisk, det er lidt utryg. 1254 00:54:28,190 --> 00:54:31,020 Så vi har brug for noget i mellem der. 1255 00:54:31,020 --> 00:54:33,870 Hvis jeg går til kontrol, det ligner der er faktisk en ventetid blok. 1256 00:54:33,870 --> 00:54:36,994 Og så varsel, hvis jeg svæver over there-- og lad mig gøre dette til en lidt større. 1257 00:54:36,994 --> 00:54:38,780 Hvis jeg hover, går det at falde på plads. 1258 00:54:38,780 --> 00:54:41,660 Så vent et sekund, vent et sekund. 1259 00:54:41,660 --> 00:54:43,170 Lad os hit grønne flag igen. 1260 00:54:43,170 --> 00:54:46,330 >> [Mjavende] 1261 00:54:46,330 --> 00:54:47,695 1262 00:54:47,695 --> 00:54:50,660 >> OK, lidt mere naturligt, men ikke meget effektiv. 1263 00:54:50,660 --> 00:54:54,300 Så dette er korrekt, hvis min programmets Målet blev Meow tre gange. 1264 00:54:54,300 --> 00:54:56,410 Men det er ikke meget veltilrettelagt. 1265 00:54:56,410 --> 00:54:57,740 Jeg slags skære nogle hjørner. 1266 00:54:57,740 --> 00:54:58,730 Jeg fik lidt doven. 1267 00:54:58,730 --> 00:55:05,620 Hvad føler like-- hvad gør jeg synes at have gjort dårligt, ville du sige? 1268 00:55:05,620 --> 00:55:07,197 Ja? 1269 00:55:07,197 --> 00:55:08,030 Ja, i midten. 1270 00:55:08,030 --> 00:55:11,208 1271 00:55:11,208 --> 00:55:13,083 PUBLIKUM: Bruges mere hukommelse end du behov for at 1272 00:55:13,083 --> 00:55:15,005 fordi du bruger så mange forskellige linje. 1273 00:55:15,005 --> 00:55:16,380 DAVID MALAN: Ja, så flere linjer. 1274 00:55:16,380 --> 00:55:19,190 Og det ville ikke nødvendigvis være hukommelsen, selvom det kunne ses som den måde. 1275 00:55:19,190 --> 00:55:20,898 Men det er definitely-- der er redundans. 1276 00:55:20,898 --> 00:55:23,440 Og jeg bogstaveligt talt slags slæbt og faldt de samme ting. 1277 00:55:23,440 --> 00:55:26,564 Og hvis du slags extrapolate-- hvis det er ikke indlysende her-- godt, hvordan ville 1278 00:55:26,564 --> 00:55:27,910 Jeg meow 30 gange? 1279 00:55:27,910 --> 00:55:31,450 Jeg ville trække og slippe, ligesom, 30 flere par af puslespilsbrikker. 1280 00:55:31,450 --> 00:55:32,890 Og sikkert, der er en bedre måde. 1281 00:55:32,890 --> 00:55:34,056 Og vi har set en bedre måde. 1282 00:55:34,056 --> 00:55:36,870 Hvad intuitivt ville være den bedre måde? 1283 00:55:36,870 --> 00:55:37,890 Ja, bare bruge en løkke. 1284 00:55:37,890 --> 00:55:38,810 Ingen kopiere og indsætte. 1285 00:55:38,810 --> 00:55:40,790 Og ja, når som helst dette semester, hvis du starter 1286 00:55:40,790 --> 00:55:43,890 at finde dig selv at trække og slippe, eller virkelig kopiere og indsætte, 1287 00:55:43,890 --> 00:55:47,050 farlig vane at komme ind, fordi det er bare ikke meget at vedligeholde. 1288 00:55:47,050 --> 00:55:49,740 For eksempel, hvis jeg ønsker at ændre lyden til noget andet, 1289 00:55:49,740 --> 00:55:52,826 Jeg er nødt til at ændre det nu i tre placeringer i stedet for bare én. 1290 00:55:52,826 --> 00:55:54,575 Fordi ja, hvis jeg bryde denne away-- jeg 1291 00:55:54,575 --> 00:55:56,170 bare kommer til at afkoble det sådan. 1292 00:55:56,170 --> 00:56:01,900 Lad mig få fat i en gentagelse blok, og klik derefter på tre, skriv tre, 1293 00:56:01,900 --> 00:56:04,015 smide nogle af disse væk ved blot at give slip. 1294 00:56:04,015 --> 00:56:05,890 Og så bemærke det ligner ikke det passer, 1295 00:56:05,890 --> 00:56:08,139 men magnetisk, går det til ikke kun snap på plads 1296 00:56:08,139 --> 00:56:09,510 men vokser til at passe formen. 1297 00:56:09,510 --> 00:56:10,310 Så det er godt. 1298 00:56:10,310 --> 00:56:11,530 Og nu, hvis jeg klikker play. 1299 00:56:11,530 --> 00:56:13,870 >> [Mjavende] 1300 00:56:13,870 --> 00:56:14,370 1301 00:56:14,370 --> 00:56:15,620 Meget fint. 1302 00:56:15,620 --> 00:56:16,126 Okay. 1303 00:56:16,126 --> 00:56:18,500 Og nu er det meget nemt at ændre, også fordi jeg kan bare 1304 00:56:18,500 --> 00:56:20,670 ændre et nummer på ét sted. 1305 00:56:20,670 --> 00:56:22,500 Men også dette er ikke alt det interessant. 1306 00:56:22,500 --> 00:56:25,350 Lad os rent faktisk har Scratch ikke mjave, men bevæge sig. 1307 00:56:25,350 --> 00:56:32,680 Lad mig gå til Motion og flytte 10 trin inde of-- hovsa, lad mig ordne dette. 1308 00:56:32,680 --> 00:56:37,460 Lad mig få det at flytte 10 steps-- faktisk, lad os ikke gentage. 1309 00:56:37,460 --> 00:56:40,670 Lad mig få fat i en kontrol blok, og gør følgende for evigt. 1310 00:56:40,670 --> 00:56:42,720 Forever, flytte 10 trin. 1311 00:56:42,720 --> 00:56:45,070 Og klik på Afspil. 1312 00:56:45,070 --> 00:56:45,600 >> OKAY. 1313 00:56:45,600 --> 00:56:46,740 Så heldigvis, stopper han. 1314 00:56:46,740 --> 00:56:49,710 Ellers ville børnene få meget ked når de slags mister deres kat. 1315 00:56:49,710 --> 00:56:52,720 Men i det mindste jeg kan trække ham tilbage ind i skærmen. 1316 00:56:52,720 --> 00:56:56,177 Men det er ikke alt, stor af et spil eller animation. 1317 00:56:56,177 --> 00:56:58,260 Det ville være rart, hvis måske han sprang ud over kanten. 1318 00:56:58,260 --> 00:57:00,020 Så hvad gør vi? 1319 00:57:00,020 --> 00:57:04,302 Hvad konstruktion har vi brug for at have Scratch beslutter at hoppe, tror du, 1320 00:57:04,302 --> 00:57:06,010 selv hvis du har aldrig set Scratch før? 1321 00:57:06,010 --> 00:57:06,593 Ja, i ryggen. 1322 00:57:06,593 --> 00:57:08,359 PUBLIKUM: Du har brug for en hvis blokken eller hvis-så. 1323 00:57:08,359 --> 00:57:10,650 DAVID MALAN: Ja, så nogle slags hvis blok eller hvis-så. 1324 00:57:10,650 --> 00:57:12,275 Så faktisk har vi en af ​​disse her. 1325 00:57:12,275 --> 00:57:14,500 Så if-- så lad mig få slippe af bevægelsen. 1326 00:57:14,500 --> 00:57:16,070 Lad mig zoome ind, så det er større. 1327 00:57:16,070 --> 00:57:16,890 Så hvad med dette. 1328 00:57:16,890 --> 00:57:21,920 Forever, hvis Sensing-- Vi har ikke set det før. 1329 00:57:21,920 --> 00:57:23,160 Jeg har brug for en boolesk udtryk. 1330 00:57:23,160 --> 00:57:25,970 Og det viser sig, om at røre hvad? 1331 00:57:25,970 --> 00:57:29,030 Hvis røre kanten, hvad ønsker jeg at gøre? 1332 00:57:29,030 --> 00:57:32,030 Tja, hvis jeg gå tilbage til Motion, viser sig, åh, jeg kan vende rundt. 1333 00:57:32,030 --> 00:57:33,350 Lad mig trække denne her. 1334 00:57:33,350 --> 00:57:36,430 Hvorfor kan jeg ikke gå videre og vende 180 grader? 1335 00:57:36,430 --> 00:57:38,190 >> Og nu, lad mig bare flytte i slutningen. 1336 00:57:38,190 --> 00:57:40,500 Jeg kunne sætte bevægelsen i begyndelsen eller slutningen. 1337 00:57:40,500 --> 00:57:44,452 Men logisk, hver gang jeg flytter, jeg vil kontrollere, jeg rører kanten? 1338 00:57:44,452 --> 00:57:45,410 Er jeg rører kanten? 1339 00:57:45,410 --> 00:57:46,490 Er jeg rører kanten? 1340 00:57:46,490 --> 00:57:49,200 Så logisk jeg vende rundt, hvis det. 1341 00:57:49,200 --> 00:57:51,190 Så lad os hit spil. 1342 00:57:51,190 --> 00:57:52,030 >> OKAY. 1343 00:57:52,030 --> 00:57:53,910 Så det er lidt buggy, så at sige. 1344 00:57:53,910 --> 00:57:56,560 Og en fejl er bare en fejltagelse i et computerprogram. 1345 00:57:56,560 --> 00:57:57,800 Men i det mindste det virker. 1346 00:57:57,800 --> 00:57:59,420 Og i virkeligheden, kan jeg gå ind her. 1347 00:57:59,420 --> 00:58:03,130 Og lad mig gøre det ikke 10 trin på en tid, men det er alt animation er. 1348 00:58:03,130 --> 00:58:05,310 Det er alt sammen en tegneserie eller endda en film er. 1349 00:58:05,310 --> 00:58:07,110 Lad mig flytte 20 trin ad gangen. 1350 00:58:07,110 --> 00:58:11,200 Så 20 gange så mange ting sker gang, eller dobbelt så mange, i dette tilfælde. 1351 00:58:11,200 --> 00:58:12,600 Og han bevæger sig hurtigere. 1352 00:58:12,600 --> 00:58:15,150 Lad mig ændre til 30. 1353 00:58:15,150 --> 00:58:17,450 100. 1354 00:58:17,450 --> 00:58:19,406 1.000. 1355 00:58:19,406 --> 00:58:20,530 Og det går rigtig hurtigt. 1356 00:58:20,530 --> 00:58:22,190 Og dette is-- yeah, OK. 1357 00:58:22,190 --> 00:58:24,130 >> Så nu er vi bare rode med det. 1358 00:58:24,130 --> 00:58:24,954 OK, så buggy. 1359 00:58:24,954 --> 00:58:26,620 Men vi kan trække ham ud af vejen her. 1360 00:58:26,620 --> 00:58:28,286 Men vi kan gøre mere sjov med dette, også. 1361 00:58:28,286 --> 00:58:30,710 Hvad her-- han er på hovedet. 1362 00:58:30,710 --> 00:58:32,800 Men det viser sig Scratch-- og der er faktisk, 1363 00:58:32,800 --> 00:58:35,510 Jeg er nødt til at fralægge, ingen akademisk værdi til hvad jeg er ved at gøre. 1364 00:58:35,510 --> 00:58:40,200 Men hvis jeg åbner mikrofonen, lad os stoppe ham og gøre noget som dette. 1365 00:58:40,200 --> 00:58:41,960 Av! 1366 00:58:41,960 --> 00:58:42,884 >> [GRINE] 1367 00:58:42,884 --> 00:58:45,200 1368 00:58:45,200 --> 00:58:45,990 >> Det var sød. 1369 00:58:45,990 --> 00:58:46,740 Tak. 1370 00:58:46,740 --> 00:58:50,850 Nu, dette er hvad min stemme ser ud, når jeg råber ouch. 1371 00:58:50,850 --> 00:58:52,630 Jeg tror ikke, vi fanget din latter. 1372 00:58:52,630 --> 00:58:53,280 Det er ok. 1373 00:58:53,280 --> 00:58:56,550 Lad mig spare dette som "Ouch." 1374 00:58:56,550 --> 00:58:57,915 Lad os gemme denne som "av". 1375 00:58:57,915 --> 00:58:59,410 Og nu vil vi gå tilbage til Scripts. 1376 00:58:59,410 --> 00:59:01,660 Og nu need-- jeg lad os se, Sound. 1377 00:59:01,660 --> 00:59:03,160 Åh, afspille lyd ouch. 1378 00:59:03,160 --> 00:59:08,180 Så hvis jeg rører kanten, lad mig første play ouch, og derefter vende rundt. 1379 00:59:08,180 --> 00:59:10,191 Og lad os nu sætte ham i midten. 1380 00:59:10,191 --> 00:59:14,754 >> [SIGER "OUCH"] 1381 00:59:14,754 --> 00:59:15,740 >> Dobbelt så hurtig. 1382 00:59:15,740 --> 00:59:20,660 1383 00:59:20,660 --> 00:59:21,830 >> OKAY. 1384 00:59:21,830 --> 00:59:23,780 Men det er bogstaveligt talt gør, hvad jeg siger. 1385 00:59:23,780 --> 00:59:27,580 Så det er faktisk korrekt, er det bare lidt irriterende hurtigt. 1386 00:59:27,580 --> 00:59:30,330 Så lad os tilføje noget mere interessant at dette. 1387 00:59:30,330 --> 00:59:32,950 Lad mig faktisk åbne en, som jeg gjorde i forvejen, 1388 00:59:32,950 --> 00:59:38,560 rammende kaldt Pet den Kat, der gør dette. 1389 00:59:38,560 --> 00:59:40,340 Her er scriptet heroppe. 1390 00:59:40,340 --> 00:59:44,510 Hvad er dette vil gøre i engelske termer? 1391 00:59:44,510 --> 00:59:45,820 Hvad er det designet til at gøre? 1392 00:59:45,820 --> 00:59:47,900 Ja, lad os gå some-- ikke? 1393 00:59:47,900 --> 00:59:49,665 >> PUBLIKUM: Når du kæle katten, det mijaver. 1394 00:59:49,665 --> 00:59:52,290 DAVID MALAN: Ja, så når du kæle katten, går det at mjave. 1395 00:59:52,290 --> 00:59:55,452 Så med andre ord, er der nu et evigt loop stadig kombineret 1396 00:59:55,452 --> 00:59:57,660 med en tilstand, kombineret med et Boolsk udtryk, 1397 00:59:57,660 --> 01:00:00,140 kombineret med et par funktioner, effekten 1398 01:00:00,140 --> 01:00:02,610 hvoraf, når jeg spiller dette program, er intet 1399 01:00:02,610 --> 01:00:06,820 sker indtil jeg flytter markøren tættere og tættere og tættere og-- 1400 01:00:06,820 --> 01:00:08,029 >> [MEOW] 1401 01:00:08,029 --> 01:00:09,320 Så er det ligesom petting katten. 1402 01:00:09,320 --> 01:00:11,210 [MEOW] 1403 01:00:11,210 --> 01:00:14,270 Kun én gang du faktisk flytte markøren over ham. 1404 01:00:14,270 --> 01:00:19,964 Nu, jeg pisket også op ikke kæledyr katten, der gør dette i stedet. 1405 01:00:19,964 --> 01:00:21,350 >> [Mjavende] 1406 01:00:21,350 --> 01:00:23,485 >> Så han er bare konstant meowing. 1407 01:00:23,485 --> 01:00:24,455 >> [Mjavende] 1408 01:00:24,455 --> 01:00:27,705 >> Men hvis jeg får for close-- 1409 01:00:27,705 --> 01:00:29,645 >> [Mjavende] 1410 01:00:29,645 --> 01:00:32,080 >> [BRØL] 1411 01:00:32,080 --> 01:00:33,590 >> Så hvordan fungerer det? 1412 01:00:33,590 --> 01:00:35,880 Nu jeg bare have en to-vejs gaffel i vejen. 1413 01:00:35,880 --> 01:00:38,930 Hvis røre musemarkøren, derefter spille løven lyd. 1414 01:00:38,930 --> 01:00:41,950 Else bare spille den meow lyd, og derefter vente tre sekunder, så 1415 01:00:41,950 --> 01:00:43,880 at det er sådan at gøre det meget roligt. 1416 01:00:43,880 --> 01:00:44,380 Okay. 1417 01:00:44,380 --> 01:00:47,290 Så det er at kombinere nogle flere ideer stadig. 1418 01:00:47,290 --> 01:00:50,870 Lad os tage et kig på dette eksempel Jeg pisket op kaldet tråde. 1419 01:00:50,870 --> 01:00:54,020 Og denne ene er fundamentalt anderledes, idet der frigøres 1420 01:00:54,020 --> 01:00:56,070 en funktion af mange programmeringssprog kaldet 1421 01:00:56,070 --> 01:00:59,970 tråde, evnen af ​​et program til bogstaveligt gøre to ting samtidigt. 1422 01:00:59,970 --> 01:01:03,600 Faktisk er disse dage, hvis du bruger Google Docs eller Microsoft Word, 1423 01:01:03,600 --> 01:01:09,620 og dit dokument er konstant stave-kontrolleres selv som du Motortype- eller du 1424 01:01:09,620 --> 01:01:11,580 hit Kommando-P eller Ctrl-P og udskrive noget, 1425 01:01:11,580 --> 01:01:13,380 det udskrives, mens du fortsætter med at skrive. 1426 01:01:13,380 --> 01:01:16,680 Programmer i dag kan faktisk gøre flere ting på én gang, ligesom i Scratch 1427 01:01:16,680 --> 01:01:17,180 her. 1428 01:01:17,180 --> 01:01:20,400 >> Så her, jeg har to sprites nu, en fugl og en kat. 1429 01:01:20,400 --> 01:01:22,780 Og hvis jeg klikker på hvert af de tegn et ad gangen, 1430 01:01:22,780 --> 01:01:25,590 Jeg ser lige nu fuglens scripts øverst til højre. 1431 01:01:25,590 --> 01:01:27,270 Nu kan jeg se kattens. 1432 01:01:27,270 --> 01:01:28,540 Birds, kattens. 1433 01:01:28,540 --> 01:01:30,270 Så hver af dem har deres eget script. 1434 01:01:30,270 --> 01:01:32,700 Men varsel, hvad puslespilsbrik har de begge begynde med? 1435 01:01:32,700 --> 01:01:34,260 Når grønne flag klikkede. 1436 01:01:34,260 --> 01:01:36,890 Og fugl, når grønne flag klikkes. 1437 01:01:36,890 --> 01:01:40,870 Så når jeg klikker på den grønne flag, begge disse scripts eller programmer 1438 01:01:40,870 --> 01:01:42,759 kommer til at løbe parallelt. 1439 01:01:42,759 --> 01:01:45,800 Og du vil opdage, at fuglen er bare mindlessly hoppen ud over kanten. 1440 01:01:45,800 --> 01:01:50,890 Katten tydeligvis er programmeret med en strategisk fordel. 1441 01:01:50,890 --> 01:01:52,704 Og-- 1442 01:01:52,704 --> 01:01:53,490 >> [BRØL] 1443 01:01:53,490 --> 01:01:53,821 1444 01:01:53,821 --> 01:01:54,320 Okay. 1445 01:01:54,320 --> 01:01:57,340 Så katten fanget fuglen i dette tilfælde. 1446 01:01:57,340 --> 01:01:58,390 Hvorfor det? 1447 01:01:58,390 --> 01:02:03,310 Nå, varsel først vi bare nødt fuglen bare mindlessly gå 1448 01:02:03,310 --> 01:02:05,120 til denne indledende placering, og derefter for evigt, 1449 01:02:05,120 --> 01:02:06,774 hvis ikke røre katten, bare flytte. 1450 01:02:06,774 --> 01:02:08,190 Og hvis du er på kanten, hoppe. 1451 01:02:08,190 --> 01:02:08,870 Og bare flytte. 1452 01:02:08,870 --> 01:02:10,286 Og hvis du er på kanten, hoppe. 1453 01:02:10,286 --> 01:02:12,840 Men katten, i mellemtiden, har nogle ekstra logik 1454 01:02:12,840 --> 01:02:18,250 der siger denne-- første, bare så at dette ikke er helt forudindtaget 1455 01:02:18,250 --> 01:02:21,191 mod fuglen, bemærke, at jeg har brugt en grøn puslespilsbrik der 1456 01:02:21,191 --> 01:02:22,690 der faktisk opfanger et tilfældigt tal. 1457 01:02:22,690 --> 01:02:26,179 Et træk ved mange sprog er at give du tilfældige eller pseudotilfældige tal. 1458 01:02:26,179 --> 01:02:29,220 Så i dette tilfælde, katten oprindeligt vælger et tilfældigt tal mellem, lignende, 1459 01:02:29,220 --> 01:02:31,727 90 grader og 180 grader i det væsentlige, så 1460 01:02:31,727 --> 01:02:33,310 at der er en lille smule af varians. 1461 01:02:33,310 --> 01:02:37,000 Og så evigt, hvis rørende fuglen, spille løven lyd. 1462 01:02:37,000 --> 01:02:38,754 Ellers bare pege mod fuglen. 1463 01:02:38,754 --> 01:02:39,670 Pege mod fuglen. 1464 01:02:39,670 --> 01:02:44,199 Peger mod fuglen, som er en brik i sig selv i dette tilfælde. 1465 01:02:44,199 --> 01:02:45,740 Tja, vi kan gøre en anden ting her. 1466 01:02:45,740 --> 01:02:49,820 Lad mig åbne events program her. 1467 01:02:49,820 --> 01:02:53,520 Og her er vi igen har to sprites, der ligne disse to marionetter her. 1468 01:02:53,520 --> 01:02:55,710 Og hvad er interessant her er dette. 1469 01:02:55,710 --> 01:02:59,140 Den orange fyr har denne sæt puslespilsbrikker her. 1470 01:02:59,140 --> 01:03:01,700 Forever gøre following-- hvis der trykkes på mellemrumstasten, 1471 01:03:01,700 --> 01:03:05,430 så sige, Marco, og derefter transmittere en begivenhed. 1472 01:03:05,430 --> 01:03:09,460 Og i mellemtiden, den blå fyr her har denne-- når du modtager begivenheden, 1473 01:03:09,460 --> 01:03:10,540 siger Polo. 1474 01:03:10,540 --> 01:03:12,850 Så det viser sig i Scratch og på andre sprog, 1475 01:03:12,850 --> 01:03:15,830 der er måder til to programmer eller to scripts, i dette tilfælde, 1476 01:03:15,830 --> 01:03:20,310 at intercommunicate så når jeg ramte mellemrumstasten, siger han Marco. 1477 01:03:20,310 --> 01:03:23,539 Og den anden hører, at, så at tale, og siger Polo som svar. 1478 01:03:23,539 --> 01:03:26,080 Så du kan skrive programmer, faktisk interagerer på denne måde. 1479 01:03:26,080 --> 01:03:28,630 Og hvis jeg gør dette én i stedet, Jeg kan endda tilføje variabler, 1480 01:03:28,630 --> 01:03:31,287 bare ved hjælp af en sprite i dette tilfælde. 1481 01:03:31,287 --> 01:03:32,578 Denne ene er især irriterende. 1482 01:03:32,578 --> 01:03:36,174 >> [SEAL BARKING] 1483 01:03:36,174 --> 01:03:37,100 1484 01:03:37,100 --> 01:03:42,490 >> Nu, meddelelse om ret vi har fået nogle ekstra logik herovre. 1485 01:03:42,490 --> 01:03:45,146 Hvordan kan jeg stoppe denne segl fra gøen? 1486 01:03:45,146 --> 01:03:48,320 >> [SEAL BARKING] 1487 01:03:48,320 --> 01:03:52,830 1488 01:03:52,830 --> 01:03:55,630 >> Det ligner på højre hånd side er, hvad der er at spille lyden. 1489 01:03:55,630 --> 01:03:58,500 Men det er kun at spille en lyde, hvis det, der er sandt? 1490 01:03:58,500 --> 01:04:03,390 Hvis en variable-- appelsin block-- dæmpet er nul. 1491 01:04:03,390 --> 01:04:07,916 Hvordan ændrer jeg dæmpet til at være en, betyder sandt, gør dette dæmpet? 1492 01:04:07,916 --> 01:04:12,455 Tilsyneladende, den anden skrift, kan jeg ramte mellemrumstasten, og nu stopper han. 1493 01:04:12,455 --> 01:04:15,080 Så vi kan have denne indbyrdes kommunikation tværs scripts, så godt, 1494 01:04:15,080 --> 01:04:18,349 ved blot at dele en variabel på tværs af to som denne. 1495 01:04:18,349 --> 01:04:19,890 Nu, dette er ikke alt, interessant. 1496 01:04:19,890 --> 01:04:24,360 Lad os gå videre og gøre det og kombinere en masse af disse ideer med dette program 1497 01:04:24,360 --> 01:04:25,940 her. 1498 01:04:25,940 --> 01:04:28,100 Før vi gør det, selv om, hvordan omkring en frivillig? 1499 01:04:28,100 --> 01:04:30,558 Lad mig tage presset væk af mig, fordi jeg faktisk ikke 1500 01:04:30,558 --> 01:04:31,280 spille dette spil. 1501 01:04:31,280 --> 01:04:33,030 Lad os få en, vi ikke har set før. 1502 01:04:33,030 --> 01:04:36,420 Du er nødt til at være behagelige kommer op på scenen her, på kameraet. 1503 01:04:36,420 --> 01:04:37,430 OK, kom op. 1504 01:04:37,430 --> 01:04:38,130 Meget modig. 1505 01:04:38,130 --> 01:04:39,052 Hvad hedder du? 1506 01:04:39,052 --> 01:04:39,962 >> IDRIS: Idris. 1507 01:04:39,962 --> 01:04:40,753 DAVID MALAN: Undskyld? 1508 01:04:40,753 --> 01:04:41,196 IDRIS: Idris. 1509 01:04:41,196 --> 01:04:42,670 DAVID MALAN: Idris, rart at møde dig. 1510 01:04:42,670 --> 01:04:43,170 Kom op. 1511 01:04:43,170 --> 01:04:45,630 Og nu, på din egen mobil telefon, du spiller Pokemon GO? 1512 01:04:45,630 --> 01:04:46,567 >> IDRIS: Nej. 1513 01:04:46,567 --> 01:04:47,400 DAVID MALAN: Virkelig? 1514 01:04:47,400 --> 01:04:48,104 IDRIS: Ja. 1515 01:04:48,104 --> 01:04:48,770 DAVID MALAN: OK. 1516 01:04:48,770 --> 01:04:49,020 Okay. 1517 01:04:49,020 --> 01:04:49,978 Nå, rart at møde dig. 1518 01:04:49,978 --> 01:04:50,820 Kom her over. 1519 01:04:50,820 --> 01:04:51,950 Jeg gør heller ikke. 1520 01:04:51,950 --> 01:04:55,380 Så vi vil finde ud af sammen, hvordan man spille dette, som nogen faktisk 1521 01:04:55,380 --> 01:05:00,140 gik og gennemført i Scratch ved at ændre katten til væsentlige 1522 01:05:00,140 --> 01:05:02,260 forskellige figurer alle sammen. 1523 01:05:02,260 --> 01:05:04,870 Og hvis jeg fullscreen dette her, vi kommer 1524 01:05:04,870 --> 01:05:06,860 at se følgende spil sammen. 1525 01:05:06,860 --> 01:05:09,560 Opdaterer, stadig læsning. 1526 01:05:09,560 --> 01:05:10,270 Kom nu. 1527 01:05:10,270 --> 01:05:12,590 Lad mig gøre det. 1528 01:05:12,590 --> 01:05:14,520 Kom nu. 1529 01:05:14,520 --> 01:05:17,200 Dette spil er så stor, at det styrtede ned. 1530 01:05:17,200 --> 01:05:18,980 Stå ved. 1531 01:05:18,980 --> 01:05:22,390 Prøv en gang til. 1532 01:05:22,390 --> 01:05:23,710 Kom nu. 1533 01:05:23,710 --> 01:05:24,211 Okay. 1534 01:05:24,211 --> 01:05:26,840 1535 01:05:26,840 --> 01:05:27,430 >> Sådan der. 1536 01:05:27,430 --> 01:05:27,929 OKAY. 1537 01:05:27,929 --> 01:05:29,330 Grøn flag. 1538 01:05:29,330 --> 01:05:30,190 Så her vi går. 1539 01:05:30,190 --> 01:05:30,950 >> [MUSIK AFSPILLER] 1540 01:05:30,950 --> 01:05:32,510 >> Vælg den midterste niveau her. 1541 01:05:32,510 --> 01:05:34,200 Klik på den blå fyr der. 1542 01:05:34,200 --> 01:05:34,700 Okay. 1543 01:05:34,700 --> 01:05:37,860 Og du kan bruge pilen keys-- op, ned, venstre, højre. 1544 01:05:37,860 --> 01:05:42,150 Lad os nu betragte som vi gør denne-- og derefter gå efter tegnet der. 1545 01:05:42,150 --> 01:05:42,650 Yep. 1546 01:05:42,650 --> 01:05:45,786 Og nu klikke ham med musen. 1547 01:05:45,786 --> 01:05:46,693 Åhh ja. 1548 01:05:46,693 --> 01:05:47,193 Bevæge sig. 1549 01:05:47,193 --> 01:05:47,662 Hvor er pilen? 1550 01:05:47,662 --> 01:05:48,131 Vær så god. 1551 01:05:48,131 --> 01:05:48,600 Så klik på der. 1552 01:05:48,600 --> 01:05:48,840 Ja. 1553 01:05:48,840 --> 01:05:49,340 Okay. 1554 01:05:49,340 --> 01:05:56,008 Så nu, jeg har fået fortalt du har en Poke bold, at hvis klikker på det, vil det gøre det. 1555 01:05:56,008 --> 01:05:57,932 Meget godt. 1556 01:05:57,932 --> 01:06:00,390 Ved at øve for i dag, jeg fundet denne version af spillets 1557 01:06:00,390 --> 01:06:01,760 faktisk ikke meget hårdt. 1558 01:06:01,760 --> 01:06:07,650 Så hvis du ønsker at gå igen her, gå ned til denne Poke bolden. 1559 01:06:07,650 --> 01:06:08,780 Og derefter gå til højre. 1560 01:06:08,780 --> 01:06:11,200 Prøv at klikke på det. 1561 01:06:11,200 --> 01:06:13,120 Åh, faktisk, det er butikken, tilsyneladende. 1562 01:06:13,120 --> 01:06:14,170 OK, så lukker det. 1563 01:06:14,170 --> 01:06:15,150 Aldrig gjort før. 1564 01:06:15,150 --> 01:06:16,566 Måske gå op til denne ting op her. 1565 01:06:16,566 --> 01:06:17,460 Åh, der du går. 1566 01:06:17,460 --> 01:06:18,910 Vent, der er en derovre. 1567 01:06:18,910 --> 01:06:20,412 Åh, der er en anden. 1568 01:06:20,412 --> 01:06:21,285 OKAY. 1569 01:06:21,285 --> 01:06:21,785 Ned. 1570 01:06:21,785 --> 01:06:23,210 Ja, klik. 1571 01:06:23,210 --> 01:06:24,635 >> OK, det er meget sød. 1572 01:06:24,635 --> 01:06:27,485 1573 01:06:27,485 --> 01:06:28,810 OK, meget godt klaret. 1574 01:06:28,810 --> 01:06:30,010 Dette spil er ikke meget hårdt. 1575 01:06:30,010 --> 01:06:30,510 OKAY. 1576 01:06:30,510 --> 01:06:32,150 Tillykke. 1577 01:06:32,150 --> 01:06:34,720 Her har vi en CS50 stress bold for dig. 1578 01:06:34,720 --> 01:06:37,680 Men tænk for et øjeblik, hvad nogle af grillbarer er der. 1579 01:06:37,680 --> 01:06:39,263 Lettere end det rigtige spil, tilsyneladende. 1580 01:06:39,263 --> 01:06:41,809 Men alt, hvad vi har at gå her er et tegn 1581 01:06:41,809 --> 01:06:44,100 der sandsynligvis har en vis form af sløjfe forbundet med det. 1582 01:06:44,100 --> 01:06:44,590 Det er ikke en kat. 1583 01:06:44,590 --> 01:06:45,860 Det er denne karakter i stedet. 1584 01:06:45,860 --> 01:06:49,052 Og at løkken er bare konstant sige, hvis det pil op presset, 1585 01:06:49,052 --> 01:06:51,260 hvis pil ned presset, hvis venstre pil presset eller højre 1586 01:06:51,260 --> 01:06:53,960 arrow presset, bevæge sig op eller ned eller til venstre eller højre. 1587 01:06:53,960 --> 01:06:57,870 Eller hvis der er en anden brik der der siger ved berøring anden sprite, 1588 01:06:57,870 --> 01:07:01,320 ved berøring en af ​​personerne til Poke bolden, hvis rørende, 1589 01:07:01,320 --> 01:07:02,440 derefter gøre dette. 1590 01:07:02,440 --> 01:07:04,800 >> Så alle de ideer, vi brugt hidtil virkelig 1591 01:07:04,800 --> 01:07:09,130 kan bare anvendes i dette særlige sammenhæng at spille dette spil, så godt. 1592 01:07:09,130 --> 01:07:13,580 Lad mig gå videre og trække op en anden her, faktisk. 1593 01:07:13,580 --> 01:07:17,060 Lad mig gå videre og trække op, lad os sige, dette. 1594 01:07:17,060 --> 01:07:18,540 Dette er noget, vi remixet. 1595 01:07:18,540 --> 01:07:20,329 Lavet af en af ​​vores studerende i Cambridge, 1596 01:07:20,329 --> 01:07:23,370 og så gik jeg igennem og ændrede stort set hver instans af Harvard 1597 01:07:23,370 --> 01:07:25,580 til Yale denne gang. 1598 01:07:25,580 --> 01:07:27,870 Vil nogen gerne konkurrere mod de Ivies 1599 01:07:27,870 --> 01:07:31,650 her i en anden akkumulation af alle disse ideer? 1600 01:07:31,650 --> 01:07:32,662 Kom ned, ja. 1601 01:07:32,662 --> 01:07:33,370 Hvad hedder du? 1602 01:07:33,370 --> 01:07:34,190 >> DINA: Dina. 1603 01:07:34,190 --> 01:07:35,015 >> DAVID MALAN: Adina? 1604 01:07:35,015 --> 01:07:35,380 >> DINA: Dina. 1605 01:07:35,380 --> 01:07:36,410 >> DAVID MALAN: Dina, kom ned. 1606 01:07:36,410 --> 01:07:37,320 Okay, Dina. 1607 01:07:37,320 --> 01:07:40,780 Så dette spil bliver sværere og sværere, fordi der i dette spil, 1608 01:07:40,780 --> 01:07:43,970 der er variable er anvendt såvel der er konstant at holde styr 1609 01:07:43,970 --> 01:07:45,930 af hvilket niveau du er i spillet. 1610 01:07:45,930 --> 01:07:47,120 Så rart at møde dig. 1611 01:07:47,120 --> 01:07:48,250 Kom her omkring. 1612 01:07:48,250 --> 01:07:51,460 Og så målet her er at sortere af gøre din vej gennem en labyrint 1613 01:07:51,460 --> 01:07:52,710 at denne elev gennemføres. 1614 01:07:52,710 --> 01:07:55,334 >> Og bare for at sætte scenen, hver af billederne på skærmen 1615 01:07:55,334 --> 01:07:57,222 er sin egen sprite, sin egen karakter. 1616 01:07:57,222 --> 01:07:59,680 Så disse var som standard katte, men den studerende ændrede dem 1617 01:07:59,680 --> 01:08:01,480 til de forskellige Ivies logoer her. 1618 01:08:01,480 --> 01:08:04,370 Og så vil du se, at netop ved anvendelse af betingelser og løkker 1619 01:08:04,370 --> 01:08:06,848 og funktioner og mere, får du dette. 1620 01:08:06,848 --> 01:08:07,478 >> [MUSIK AFSPILLER] 1621 01:08:07,478 --> 01:08:09,228 [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1622 01:08:09,228 --> 01:08:13,060 1623 01:08:13,060 --> 01:08:14,018 >> Ja, OK. 1624 01:08:14,018 --> 01:08:17,371 1625 01:08:17,371 --> 01:08:20,110 Ja, holde ud. 1626 01:08:20,110 --> 01:08:21,180 Første niveau er meget let. 1627 01:08:21,180 --> 01:08:22,554 Du har lige fået til at gå derovre. 1628 01:08:22,554 --> 01:08:25,644 Men igen, overveje, dette er blot en loop lytte efter pilen keys-- 1629 01:08:25,644 --> 01:08:26,560 op, ned, venstre, højre. 1630 01:08:26,560 --> 01:08:28,320 Og nu en sensing blok. 1631 01:08:28,320 --> 01:08:29,345 Meget fint. 1632 01:08:29,345 --> 01:08:32,600 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1633 01:08:32,600 --> 01:08:40,340 1634 01:08:40,340 --> 01:08:41,288 >> Meget fint. 1635 01:08:41,288 --> 01:08:44,550 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1636 01:08:44,550 --> 01:08:55,540 1637 01:08:55,540 --> 01:08:56,430 >> Meget fint. 1638 01:08:56,430 --> 01:08:57,975 Temmelig let, Crimson. 1639 01:08:57,975 --> 01:08:59,060 Okay. 1640 01:08:59,060 --> 01:09:00,250 Levels-- uh-oh. 1641 01:09:00,250 --> 01:09:02,380 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1642 01:09:02,380 --> 01:09:04,980 1643 01:09:04,980 --> 01:09:07,150 >> Og igen, i disse tre Harvard Kamme, 1644 01:09:07,150 --> 01:09:10,334 du skal bare logik siger, hvis på kanten, bounce. 1645 01:09:10,334 --> 01:09:13,238 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1646 01:09:13,238 --> 01:09:14,690 1647 01:09:14,690 --> 01:09:17,651 >> OK, hvad du laver er mere interessant end hvorfor. 1648 01:09:17,651 --> 01:09:18,150 Meget fint. 1649 01:09:18,150 --> 01:09:18,810 Meget fint. 1650 01:09:18,810 --> 01:09:20,270 Åh åh. 1651 01:09:20,270 --> 01:09:23,350 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1652 01:09:23,350 --> 01:09:26,005 1653 01:09:26,005 --> 01:09:27,630 Jeg tror, ​​du har til at ofre sig selv. 1654 01:09:27,630 --> 01:09:30,372 [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1655 01:09:30,372 --> 01:09:30,872 Quick! 1656 01:09:30,872 --> 01:09:34,848 1657 01:09:34,848 --> 01:09:38,824 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1658 01:09:38,824 --> 01:09:44,288 1659 01:09:44,288 --> 01:09:44,788 Pæn. 1660 01:09:44,788 --> 01:09:52,240 1661 01:09:52,240 --> 01:09:52,740 Det er ok. 1662 01:09:52,740 --> 01:09:53,770 Du får det. 1663 01:09:53,770 --> 01:09:56,304 Ja, ja! 1664 01:09:56,304 --> 01:09:58,256 Meget fint. 1665 01:09:58,256 --> 01:10:01,184 >> [JUBEL] 1666 01:10:01,184 --> 01:10:02,160 1667 01:10:02,160 --> 01:10:05,576 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1668 01:10:05,576 --> 01:10:09,480 1669 01:10:09,480 --> 01:10:10,940 >> Pæn! 1670 01:10:10,940 --> 01:10:14,370 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1671 01:10:14,370 --> 01:10:39,050 1672 01:10:39,050 --> 01:10:39,550 Forstået. 1673 01:10:39,550 --> 01:10:41,510 Kom nu! 1674 01:10:41,510 --> 01:10:43,470 Andet til sidste niveau. 1675 01:10:43,470 --> 01:10:46,900 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1676 01:10:46,900 --> 01:10:49,588 1677 01:10:49,588 --> 01:10:50,580 >> Okay. 1678 01:10:50,580 --> 01:10:54,052 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1679 01:10:54,052 --> 01:11:00,992 1680 01:11:00,992 --> 01:11:01,492 Ja. 1681 01:11:01,492 --> 01:11:06,230 1682 01:11:06,230 --> 01:11:08,020 God brug af variabler her. 1683 01:11:08,020 --> 01:11:09,770 [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1684 01:11:09,770 --> 01:11:10,770 Ja. 1685 01:11:10,770 --> 01:11:14,743 [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1686 01:11:14,743 --> 01:11:16,707 1687 01:11:16,707 --> 01:11:17,689 Pæn. 1688 01:11:17,689 --> 01:11:21,126 [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1689 01:11:21,126 --> 01:11:23,581 1690 01:11:23,581 --> 01:11:24,570 Det er ok. 1691 01:11:24,570 --> 01:11:25,770 Vi fik at komme til slutningen. 1692 01:11:25,770 --> 01:11:26,270 Der. 1693 01:11:26,270 --> 01:11:27,010 Oh! 1694 01:11:27,010 --> 01:11:29,980 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1695 01:11:29,980 --> 01:11:32,160 1696 01:11:32,160 --> 01:11:34,866 >> Måske køre sent i dag, men det bliver det værd. 1697 01:11:34,866 --> 01:11:38,200 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1698 01:11:38,200 --> 01:11:39,640 1699 01:11:39,640 --> 01:11:42,520 >> Du kan gøre det! 1700 01:11:42,520 --> 01:11:43,480 Yeah! 1701 01:11:43,480 --> 01:11:46,278 >> [JUBEL] 1702 01:11:46,278 --> 01:11:47,230 1703 01:11:47,230 --> 01:11:50,086 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1704 01:11:50,086 --> 01:11:51,470 >> Denne ene er virkelig svært. 1705 01:11:51,470 --> 01:11:54,070 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1706 01:11:54,070 --> 01:11:57,458 1707 01:11:57,458 --> 01:11:59,000 >> Vi giver dig flere to liv. 1708 01:11:59,000 --> 01:11:59,968 Kan du gøre det? 1709 01:11:59,968 --> 01:12:03,356 >> [MUSIC - MC HAMMER, "U kan ikke røre  DENNE"] 1710 01:12:03,356 --> 01:12:06,744 1711 01:12:06,744 --> 01:12:07,244 >> Okay. 1712 01:12:07,244 --> 01:12:09,160 Hvad med en stor rund bifald alligevel. 1713 01:12:09,160 --> 01:12:10,800 Du fik til det andet til sidste niveau. 1714 01:12:10,800 --> 01:12:11,723 Tak. 1715 01:12:11,723 --> 01:12:14,964 >> [BIFALD] 1716 01:12:14,964 --> 01:12:15,890 1717 01:12:15,890 --> 01:12:19,600 >> Så det er kun at sige, hvor meget du kan gøre med den slags ting. 1718 01:12:19,600 --> 01:12:21,892 Og indse, også, at når puslespilsbrikker ikke exist-- 1719 01:12:21,892 --> 01:12:24,891 og ja, dette vil være en af de beføjelser, med det første problem 1720 01:12:24,891 --> 01:12:27,080 sæt og beyond-- er at faktisk oprette din egen. 1721 01:12:27,080 --> 01:12:28,860 Og dette er blot et uddrag af et af eksemplerne 1722 01:12:28,860 --> 01:12:30,230 vil du være i stand til at spille med online, hvor 1723 01:12:30,230 --> 01:12:33,380 hvis du ikke har bygget ind i Scratch noget som en hoste puslespilsbrik, 1724 01:12:33,380 --> 01:12:35,470 du rent faktisk kan gøre det selv. 1725 01:12:35,470 --> 01:12:37,387 >> Og så alt dette og mere venter. 1726 01:12:37,387 --> 01:12:39,470 Og bare for at male en endelig billede af faktisk, hvad der er 1727 01:12:39,470 --> 01:12:43,120 forude i vente for klassen for dig, baseret på nogle billeder fra klassekammerater 1728 01:12:43,120 --> 01:12:46,970 fortid, tillad mig at dæmpe lyset en sidste gang og vise dig CS50. 1729 01:12:46,970 --> 01:12:49,580 1730 01:12:49,580 --> 01:12:53,038 >> [MUSIK AFSPILLER] 1731 01:12:53,038 --> 01:14:38,210 1732 01:14:38,210 --> 01:14:38,860 >> Okay. 1733 01:14:38,860 --> 01:14:41,540 Det var det for CS50. 1734 01:14:41,540 --> 01:14:44,964 Kage er nu serveret. 1735 01:14:44,964 --> 01:14:50,610 1736 01:14:50,610 --> 01:14:53,960 >> [MUSIK AFSPILLER] 1737 01:14:53,960 --> 01:15:07,624