1 00:00:00,000 --> 00:00:09,840 2 00:00:09,840 --> 00:00:10,824 >> [VIDEOAVSPELNING] 3 00:00:10,824 --> 00:00:13,284 >> [Bildörr Stänga] 4 00:00:13,284 --> 00:00:15,744 >> [CAR ENGINE START] 5 00:00:15,744 --> 00:00:19,188 >> [MUSIK SPELA] 6 00:00:19,188 --> 00:00:20,172 7 00:00:20,172 --> 00:00:24,516 >> -Moving Höger längs i jakt goda tider och goda nyheter. 8 00:00:24,516 --> 00:00:26,871 Med goda vänner du inte kan förlora. 9 00:00:26,871 --> 00:00:28,755 >> -detta Skulle kunna bli en vana. 10 00:00:28,755 --> 00:00:32,460 >> -Opportunity Stötar Låt oss bara nå ut och ta tag i den. 11 00:00:32,460 --> 00:00:32,960 -Ja! 12 00:00:32,960 --> 00:00:34,920 -Tillsammans Vi nab den. 13 00:00:34,920 --> 00:00:37,370 -Vi Hitch vandra, buss eller gul cab det. 14 00:00:37,370 --> 00:00:38,840 -Dammit. 15 00:00:38,840 --> 00:00:40,800 -Vi Flyttar höger längs. 16 00:00:40,800 --> 00:00:43,750 -Footloose Och utsmyckat fritt. 17 00:00:43,750 --> 00:00:45,960 -Att Det är halva nöjet. 18 00:00:45,960 --> 00:00:47,718 Kom dela det med mig. 19 00:00:47,718 --> 00:00:49,654 >> -Vi Flyttar höger längs. 20 00:00:49,654 --> 00:00:52,558 >> -Vi Kommer att dela lasten. 21 00:00:52,558 --> 00:00:57,604 >> -Vi Behöver inte en karta få denna show på vägen. 22 00:00:57,604 --> 00:01:00,520 -Hej Fozzy, vill jag att du svänga vänster om du kommer till en gaffel i vägen. 23 00:01:00,520 --> 00:01:01,020 -Ja, Sir. 24 00:01:01,020 --> 00:01:03,334 Sväng vänster vid vägskäl. 25 00:01:03,334 --> 00:01:05,222 Sväng vänster. 26 00:01:05,222 --> 00:01:07,582 >> -Jag Tror inte det. 27 00:01:07,582 --> 00:01:11,720 >> -Cruising Höger längs vi hittat lamporna på motorvägen. 28 00:01:11,720 --> 00:01:13,664 >> -Och Din väg eller mitt sätt. 29 00:01:13,664 --> 00:01:16,154 >> -Så Litar på min navigering. 30 00:01:16,154 --> 00:01:21,134 >> -film Stjärnor med flashiga bilar och livet med taket nere. 31 00:01:21,134 --> 00:01:23,126 >> -Vi Storma de stora kullar. 32 00:01:23,126 --> 00:01:24,122 >> -Ja, Är storm rätt. 33 00:01:24,122 --> 00:01:25,160 Ska det snöa? 34 00:01:25,160 --> 00:01:26,220 >> -Nej, Jag tror inte det. 35 00:01:26,220 --> 00:01:28,505 >> -Moving Rätt tillsammans. 36 00:01:28,505 --> 00:01:30,980 >> -Footloose Och utsmyckat fritt. 37 00:01:30,980 --> 00:01:32,960 >> -Du Redo för den stora tid. 38 00:01:32,960 --> 00:01:34,445 >> -Är Det klart för mig? 39 00:01:34,445 --> 00:01:38,900 40 00:01:38,900 --> 00:01:42,860 >> -Moving Rätt tillsammans. 41 00:01:42,860 --> 00:01:47,315 Flytta höger längs. 42 00:01:47,315 --> 00:01:52,265 Flytta höger längs. 43 00:01:52,265 --> 00:01:56,131 Flytta höger längs. 44 00:01:56,131 --> 00:01:57,380 -Jag Tror att du bättre dra över. 45 00:01:57,380 --> 00:01:58,020 -Ja, Sir. 46 00:01:58,020 --> 00:02:02,475 47 00:02:02,475 --> 00:02:03,960 >> [END SPELA] 48 00:02:03,960 --> 00:02:07,425 >> [Applåder] 49 00:02:07,425 --> 00:02:09,405 50 00:02:09,405 --> 00:02:11,930 >> DAVID J. MALAN: Detta är CS50. 51 00:02:11,930 --> 00:02:15,940 Och detta är slutet av vecka 0, men början på en underbar vänskap. 52 00:02:15,940 --> 00:02:18,250 Vi är så glada att vara här vid Yale University 53 00:02:18,250 --> 00:02:21,530 för första gången med vår vän SCAZ, och Jason och Andy. 54 00:02:21,530 --> 00:02:24,320 Alla 40 av CS50: s TF: s och CA är här på Yale. 55 00:02:24,320 --> 00:02:25,440 Och alla ni. 56 00:02:25,440 --> 00:02:28,470 Och i själva verket är det förmodligen dags att-- 57 00:02:28,470 --> 00:02:31,914 >> [Applåder] 58 00:02:31,914 --> 00:02:43,722 59 00:02:43,722 --> 00:02:47,920 >> Så, även om de flesta föreläsningarna kommer verkligen att vara i Cambridge i år, 60 00:02:47,920 --> 00:02:51,250 verkligheten är att avsiktligt, och mycket medvetet CS50, 61 00:02:51,250 --> 00:02:54,740 Jag tror att vi närmar punkten tekniskt och pedagogiskt, 62 00:02:54,740 --> 00:02:57,930 där det kan vara en överlägsen pedagogiska erfarenhet för att samarbeta med vissa 63 00:02:57,930 --> 00:02:59,610 av kursens material på nätet. 64 00:02:59,610 --> 00:03:02,862 Faktum är att reality-- och om jag tror denna philosophically-- är att föredrag 65 00:03:02,862 --> 00:03:05,070 är inte särskilt effektiva medel för att leverera 66 00:03:05,070 --> 00:03:06,900 ganska komplex information. 67 00:03:06,900 --> 00:03:09,219 Säkert över timme plus långa spännvidder tid. 68 00:03:09,219 --> 00:03:11,760 Och faktiskt var några minutes-- Jag minns mig i college-- 69 00:03:11,760 --> 00:03:14,210 du zon ut för ett ögonblick, du missa några komplicerat ämne, 70 00:03:14,210 --> 00:03:16,540 och du är borta ganska mycket för de nästa 45 minuter. 71 00:03:16,540 --> 00:03:19,414 Och verkligheten är att om du är här i New Haven eller Cambridge 72 00:03:19,414 --> 00:03:22,930 eller utanför, enkelheten av att ha möjlighet att pausa och spola framåt, 73 00:03:22,930 --> 00:03:26,270 spola tillbaka, hyperlänk till högerkolumnen resurser, sök fulltext avskrifter 74 00:03:26,270 --> 00:03:29,900 och liknande är en möjlighet som Jag vågar säga våra online studenter 75 00:03:29,900 --> 00:03:32,530 långt utanför New Haven, ger dem en möjlighet 76 00:03:32,530 --> 00:03:34,700 för att verkligen ta tag i begrepps material som vi 77 00:03:34,700 --> 00:03:36,700 föreläsningar införa desto bättre. 78 00:03:36,700 --> 00:03:39,415 >> Men i slutändan i CS50 är elevernas erfarenheter 79 00:03:39,415 --> 00:03:43,099 karakteriseras så, så mycket mer av kursens problemsamlingar, 80 00:03:43,099 --> 00:03:46,140 eller veckoprogrammeringsprojekt, den kursens avsnitt under ledning av undervisningen 81 00:03:46,140 --> 00:03:49,600 kamrater, de nattliga kontorstid under ledning av kursassistenter och undervisning 82 00:03:49,600 --> 00:03:52,330 stipendiater, och faktiskt en sådan händelser som CS50 Puzzle 83 00:03:52,330 --> 00:03:56,500 Dag, CS50: s Hack-a-thon, den CS50 Fair, veckovis luncher, och så mycket mer. 84 00:03:56,500 --> 00:03:59,580 Och så om du är här i New Haven, eller ställer in avstånd, 85 00:03:59,580 --> 00:04:02,270 idag i Cambridge, och Vi ses snart igen, 86 00:04:02,270 --> 00:04:04,580 verkligheten är det är en och samma klass. 87 00:04:04,580 --> 00:04:07,990 Och vi är så glada över att vara här tillsammans idag. 88 00:04:07,990 --> 00:04:11,110 Och så i slutet av terminen, vare sig här eller fjärran, och 89 00:04:11,110 --> 00:04:14,910 förhoppningsvis du bär stolt, lyckligt, och kanske med lite av lättnad, 90 00:04:14,910 --> 00:04:19,459 skjortan som vittnar till dig att ha tagit CS50. 91 00:04:19,459 --> 00:04:21,700 >> Så var vi lämnar ut på onsdag? 92 00:04:21,700 --> 00:04:24,410 Vi tog en titt på computational tänkande. 93 00:04:24,410 --> 00:04:27,830 Och det är mot vad vi destillerade datavetenskap till, åtminstone 94 00:04:27,830 --> 00:04:28,800 för nu. 95 00:04:28,800 --> 00:04:31,990 Men vi destillerade det lite längre in åtminstone tre komponenter element. 96 00:04:31,990 --> 00:04:34,570 >> Ingångar, vad är så problem som vi försöker lösa? 97 00:04:34,570 --> 00:04:36,650 Utgångar, vad är det svarar vi hoppas att få? 98 00:04:36,650 --> 00:04:38,210 Och representation där av. 99 00:04:38,210 --> 00:04:41,870 Och vi kommer inte bo här på efter den binära, eller till och med ASCII, 100 00:04:41,870 --> 00:04:44,050 och liknande så mycket, men snarare tar för givet 101 00:04:44,050 --> 00:04:47,520 att vi kan representera denna information, eftersom betydligt mer intressanta delar 102 00:04:47,520 --> 00:04:51,010 av dessa problem är inte bara in- och utgångar, men de algoritmer 103 00:04:51,010 --> 00:04:53,020 som går in i att lösa dessa problem. 104 00:04:53,020 --> 00:04:55,120 >> Och du kanske minns från häromdagen att vi 105 00:04:55,120 --> 00:04:59,860 tog en ganska traditionell begreppet titta upp någon 106 00:04:59,860 --> 00:05:03,240 i en ganska stor telefonbok, eller mer allmänt digitalt dessa dagar, 107 00:05:03,240 --> 00:05:04,420 bara en mycket stor datamängd. 108 00:05:04,420 --> 00:05:07,840 En riktigt stor kontaktlista, med massor av namn i alfabetisk ordning. 109 00:05:07,840 --> 00:05:11,310 Och vi insåg att medan jag kan närma sig detta problem helt enkelt 110 00:05:11,310 --> 00:05:14,520 genom användning av en linjär approach-- sida för sida, 111 00:05:14,520 --> 00:05:17,775 eller till och med två-talet på en time-- vi insåg att ju mer intuitiva algorithm-- 112 00:05:17,775 --> 00:05:20,840 bara typ att dela och erövra problemet igen, och igen, 113 00:05:20,840 --> 00:05:24,670 och igen-- halvera den med varje tid, gav oss denna gröna resultat. 114 00:05:24,670 --> 00:05:27,080 Och det är så mycket plattare eftersom det antyder 115 00:05:27,080 --> 00:05:29,160 att även när detta problem blir större och större, 116 00:05:29,160 --> 00:05:32,470 vilket är fallet i dessa dagar med data apparater och reality-- Facebook och Google 117 00:05:32,470 --> 00:05:34,630 sökresultat och like-- gör vår algoritm 118 00:05:34,630 --> 00:05:37,660 utför lika effektivt med de större bites 119 00:05:37,660 --> 00:05:40,310 som det gjorde även med de mindre bites. 120 00:05:40,310 --> 00:05:45,330 >> Nu väcker frågan, vad kan vi faktiskt lösa liknande 121 00:05:45,330 --> 00:05:46,820 med denna typ av intuition? 122 00:05:46,820 --> 00:05:48,740 Denna typ av division och erövra? 123 00:05:48,740 --> 00:05:51,029 Tja, vi kan göra något som denna dag här. 124 00:05:51,029 --> 00:05:52,070 Vi skulle kunna ta närvaro. 125 00:05:52,070 --> 00:05:56,102 Så kanske gillar 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- 126 00:05:56,102 --> 00:05:57,560 kommer inte att vara så effektiv. 127 00:05:57,560 --> 00:05:58,990 Så vänta, grundskola. 128 00:05:58,990 --> 00:06:02,770 2, 4, 6, 8, 10, 12, 14, 16, 18 och så vidare. 129 00:06:02,770 --> 00:06:04,140 Men kan vi göra lite bättre? 130 00:06:04,140 --> 00:06:06,630 >> Jag är ganska säker på att jag kan inte gör det själv. 131 00:06:06,630 --> 00:06:09,420 Så om du kommer humor oss för bara en stund, tog vi med oss 132 00:06:09,420 --> 00:06:11,640 en algoritm som är bara fick tre steg, 133 00:06:11,640 --> 00:06:15,130 men det require-- om du inte mind-- oss alla stå upp, 134 00:06:15,130 --> 00:06:15,690 om du vill. 135 00:06:15,690 --> 00:06:23,901 136 00:06:23,901 --> 00:06:29,380 Så, med alla oss stående, steg en av denna algoritm är följande. 137 00:06:29,380 --> 00:06:31,680 Stå upp och tilldela själv nummer 1. 138 00:06:31,680 --> 00:06:34,180 Så vid denna tidpunkt, bokstavligen alla i det här rummet 139 00:06:34,180 --> 00:06:38,830 förhoppningsvis tänker för sig själva, emellertid olyckligt, siffran 1. 140 00:06:38,830 --> 00:06:42,020 >> Nu steg två i denna algoritm är kommer att innebära följande. 141 00:06:42,020 --> 00:06:44,680 Steg två, paret ut med någon som står, 142 00:06:44,680 --> 00:06:47,970 lägg dina nummer tillsammans, och anta summan som ditt nya nummer. 143 00:06:47,970 --> 00:06:53,110 144 00:06:53,110 --> 00:06:55,620 Snabb sanity check. 145 00:06:55,620 --> 00:06:58,180 Vilket nummer är alla tänker på nu? 146 00:06:58,180 --> 00:07:01,930 >> Så 2, utom kanske för en, besvärliga, ensamt personen. 147 00:07:01,930 --> 00:07:04,269 Om vi ​​har ett udda antal av personer i rummet. 148 00:07:04,269 --> 00:07:06,560 Så en person kan fortfarande vara nummer 1, det är bra. 149 00:07:06,560 --> 00:07:09,440 Men steg tre här, en av bör du sitta ned. 150 00:07:09,440 --> 00:07:13,620 Den andra ska gå tillbaka till steg två, och upprepa, om du vill. 151 00:07:13,620 --> 00:07:54,430 152 00:07:54,430 --> 00:07:58,240 >> Så om det fortfarande står, bör du vara bland de som ska åka tillbaka till steg två. 153 00:07:58,240 --> 00:08:13,910 154 00:08:13,910 --> 00:08:14,574 Fortsätt. 155 00:08:14,574 --> 00:08:20,790 156 00:08:20,790 --> 00:08:22,130 Ett fåtal människor kvar. 157 00:08:22,130 --> 00:08:33,590 158 00:08:33,590 --> 00:08:35,614 >> Så, om det fortfarande står, koppla ihop med någon. 159 00:08:35,614 --> 00:08:53,710 160 00:08:53,710 --> 00:08:55,020 Okej, krympande ner. 161 00:08:55,020 --> 00:09:06,394 162 00:09:06,394 --> 00:09:07,560 Ett fåtal människor kvar. 163 00:09:07,560 --> 00:09:08,600 Jag ska hjälpa vid behov. 164 00:09:08,600 --> 00:09:11,855 Kom ihåg den viktigaste takeaway här är hur mycket snabbare det är än jag räkna. 165 00:09:11,855 --> 00:09:15,090 166 00:09:15,090 --> 00:09:16,200 >> Så låt oss se. 167 00:09:16,200 --> 00:09:16,900 Jag kan hjälpa till. 168 00:09:16,900 --> 00:09:19,425 Så hur många är du fortfarande tänker på? 169 00:09:19,425 --> 00:09:20,320 >> PUBLIK: Jag är på 44. 170 00:09:20,320 --> 00:09:22,400 >> David J. MALAN: 44, så du gå vidare och sitta ner. 171 00:09:22,400 --> 00:09:23,733 Vilket nummer tänker du på? 172 00:09:23,733 --> 00:09:24,840 PUBLIK: 74. 173 00:09:24,840 --> 00:09:27,006 >> David J. MALAN: 74. 174 00:09:27,006 --> 00:09:28,380 Okej, gå vidare och sitta ner. 175 00:09:28,380 --> 00:09:30,390 Vem annars är kvar? 176 00:09:30,390 --> 00:09:31,550 86. 177 00:09:31,550 --> 00:09:33,340 Och är någon annan kvar? 178 00:09:33,340 --> 00:09:34,976 >> Vilket nummer? 179 00:09:34,976 --> 00:09:37,380 Jag hörde 67. 180 00:09:37,380 --> 00:09:39,370 Och sedan i toppen? 181 00:09:39,370 --> 00:09:40,900 32. 182 00:09:40,900 --> 00:09:44,230 Någon annan kvar och tänker på ett nummer? 183 00:09:44,230 --> 00:09:44,730 >> Åh, hej. 184 00:09:44,730 --> 00:09:45,230 Förlåt. 185 00:09:45,230 --> 00:09:48,350 Kommer snart. 186 00:09:48,350 --> 00:09:49,520 42. 187 00:09:49,520 --> 00:09:51,758 Någon annan? 188 00:09:51,758 --> 00:09:52,610 >> PUBLIK: 47. 189 00:09:52,610 --> 00:09:54,930 >> David J. MALAN: 47. 190 00:09:54,930 --> 00:09:57,980 Är det någon annan kvar som inte har räknats? 191 00:09:57,980 --> 00:10:06,450 Så det slutliga antalet personer i ett rum som har 497 säten är-- vilka alla 192 00:10:06,450 --> 00:10:10,930 är filled-- är 390. 193 00:10:10,930 --> 00:10:12,230 Så det här är bra. 194 00:10:12,230 --> 00:10:16,435 >> Vi kommer snart att diskutera begreppet av ett fel i ett datorprogram. 195 00:10:16,435 --> 00:10:19,660 Men vi ska återkomma till det inom kort. 196 00:10:19,660 --> 00:10:22,440 Men i teorin, vad kanske har hänt just nu? 197 00:10:22,440 --> 00:10:25,930 Så även om det fanns tre stora steg till denna algoritm, var och en av dem 198 00:10:25,930 --> 00:10:27,510 var bara typ av en stor operation. 199 00:10:27,510 --> 00:10:31,020 Och det var det cyclicity till det i att om du fortfarande står, 200 00:10:31,020 --> 00:10:34,870 du hålls gå från steg 3-2, steg 3-2, steg 3-2. 201 00:10:34,870 --> 00:10:37,330 >> Men vad höll händer på varje iteration? 202 00:10:37,330 --> 00:10:39,440 Varje cykel av denna slinga? 203 00:10:39,440 --> 00:10:41,940 Vad som hände andra ställen i rummet? 204 00:10:41,940 --> 00:10:45,170 Inte bara samma sak, men vad hände hälften av er? 205 00:10:45,170 --> 00:10:46,170 Sitter ned. 206 00:10:46,170 --> 00:10:49,710 Och så där i lögner denna insikt, likt telefonboken exempel 207 00:10:49,710 --> 00:10:52,050 i att om hälften av er är sitta ned varje gång, 208 00:10:52,050 --> 00:10:54,560 problemet börjar med kanske 400 personer, 209 00:10:54,560 --> 00:10:57,780 sedan till 200 personer, än 100 personer, sedan 50 personer, och så vidare. 210 00:10:57,780 --> 00:11:00,660 >> Och så vi skära ner i teorin att bara en person, 211 00:11:00,660 --> 00:11:02,830 tänker på det totala värdet av alla. 212 00:11:02,830 --> 00:11:05,777 Nu verkligheten, vissa sociala dynamik, och vissa räknefel 213 00:11:05,777 --> 00:11:07,360 kan bidra till att det yttersta bugg. 214 00:11:07,360 --> 00:11:10,300 Men i teorin, medan jag fortfarande räkna bort, 215 00:11:10,300 --> 00:11:12,860 med flera dussin steg, eller hundratals steg 216 00:11:12,860 --> 00:11:16,240 att räkna er, att räkna ett rum fullt av 500-tal personer 217 00:11:16,240 --> 00:11:20,560 borde ha tagit betydligt färre steg, eftersom du bara kan dela 500 och 1/2 218 00:11:20,560 --> 00:11:21,350 så många gånger. 219 00:11:21,350 --> 00:11:24,120 Och så precis som med telefonen boka exempel häromdagen, 220 00:11:24,120 --> 00:11:26,740 vi har något logaritmisk så att säga, 221 00:11:26,740 --> 00:11:28,870 varvid om vi var alla verksamma unisont, 222 00:11:28,870 --> 00:11:32,000 och ignorerar additions fel, skulle vi 223 00:11:32,000 --> 00:11:34,140 har uppnått exakt den typen av gångtid? 224 00:11:34,140 --> 00:11:37,900 >> Nu för att vara rättvis, typ av lurade, i att jag utnyttjas en annan resurs. 225 00:11:37,900 --> 00:11:40,320 Det är bara en av mig, Jag belånade hundratals dig. 226 00:11:40,320 --> 00:11:43,340 Men som kan sägas vara en exempel på parallell bearbetning, 227 00:11:43,340 --> 00:11:46,400 eller ett tillstånd av konst mycket i ropet där datorer dessa dagar har 228 00:11:46,400 --> 00:11:49,830 flera processorer, eller mer tekniskt, mer flera kärnor, 229 00:11:49,830 --> 00:11:52,550 och kan verkligen göra flera saker på en gång, ungefär som du 230 00:11:52,550 --> 00:11:54,706 allt vi gör det, parallellt. 231 00:11:54,706 --> 00:11:56,580 Men minns att vad vi också gjorde på onsdagen 232 00:11:56,580 --> 00:12:02,640 var försök att fånga denna intuition och formalisera den i programkoden. 233 00:12:02,640 --> 00:12:04,165 Något som pseudo-kod. 234 00:12:04,165 --> 00:12:07,040 Och faktiskt, och jag hoppas att du kommer förlåta, det är som 80 grader här inne. 235 00:12:07,040 --> 00:12:09,420 Så jag kommer att ta det här rabatt för bara en liten bit. 236 00:12:09,420 --> 00:12:12,410 Vad jag trodde att vi skulle göra är att övergången nu till ett program där 237 00:12:12,410 --> 00:12:16,300 vi återigen engagera publiken, men skriva ett program på engelska 238 00:12:16,300 --> 00:12:19,537 liknande syntax, som till lösa detta problem här. 239 00:12:19,537 --> 00:12:20,203 [VIDEOAVSPELNING] 240 00:12:20,203 --> 00:12:22,266 -Det Är jordnötssmör gelé tid. 241 00:12:22,266 --> 00:12:23,890 Jordnötssmör jelly tid. 242 00:12:23,890 --> 00:12:25,620 Jordnötssmör jelly tid. 243 00:12:25,620 --> 00:12:26,320 >> Way ya! 244 00:12:26,320 --> 00:12:26,927 Way ya! 245 00:12:26,927 --> 00:12:27,781 Way ya! 246 00:12:27,781 --> 00:12:28,350 Way ya! 247 00:12:28,350 --> 00:12:29,723 Nu finns du går! 248 00:12:29,723 --> 00:12:30,264 Här har du! 249 00:12:30,264 --> 00:12:30,805 Här har du! 250 00:12:30,805 --> 00:12:31,710 Här har du! 251 00:12:31,710 --> 00:12:33,156 Jordnötssmör jelly! 252 00:12:33,156 --> 00:12:34,602 Jordnötssmör jelly! 253 00:12:34,602 --> 00:12:36,530 >> Jordnötssmör jelly! 254 00:12:36,530 --> 00:12:37,494 Jordnötssmör jelly! 255 00:12:37,494 --> 00:12:38,940 Peanut, jordnötssmör gelé! 256 00:12:38,940 --> 00:12:39,904 Jordnötssmör jelly! 257 00:12:39,904 --> 00:12:41,840 Jordnötssmör jelly med ett basebollträ. 258 00:12:41,840 --> 00:12:42,423 >> [END SPELA] 259 00:12:42,423 --> 00:12:45,510 David J. MALAN: --det video, men det är lite beroendeframkallande, 260 00:12:45,510 --> 00:12:46,540 om inte lite irriterande. 261 00:12:46,540 --> 00:12:49,623 Men för att göra detta, tänkte jag vad vi skulle göra är att försöka skriva ett program tillsammans, 262 00:12:49,623 --> 00:12:51,870 som vi behöver tre frivilliga. 263 00:12:51,870 --> 00:12:54,350 Måste vara bekväm på kamera och internet. 264 00:12:54,350 --> 00:12:57,820 Sam, kom upp. 265 00:12:57,820 --> 00:12:59,830 Lila skjorta, just här, kom upp. 266 00:12:59,830 --> 00:13:03,470 >> Och från hit, låt mig gå lite längre tillbaka. 267 00:13:03,470 --> 00:13:05,280 Crimson och blå skjortor, kom upp. 268 00:13:05,280 --> 00:13:06,980 Perfekt. 269 00:13:06,980 --> 00:13:09,790 Kom igen nu. 270 00:13:09,790 --> 00:13:12,490 Kom upp, kom upp. 271 00:13:12,490 --> 00:13:13,581 >> Och vad heter du? 272 00:13:13,581 --> 00:13:14,080 Erica. 273 00:13:14,080 --> 00:13:15,289 David, trevligt att träffa dig. 274 00:13:15,289 --> 00:13:16,830 Om du vill ta plats här. 275 00:13:16,830 --> 00:13:17,900 Detta är Sam. 276 00:13:17,900 --> 00:13:19,690 >> Vad heter du? 277 00:13:19,690 --> 00:13:20,260 Antonio. 278 00:13:20,260 --> 00:13:21,595 Antonio, trevligt att träffa dig. 279 00:13:21,595 --> 00:13:23,790 Erica och Sam, om du skulle vill ha en plats här. 280 00:13:23,790 --> 00:13:26,700 Vad vi har kommit förberedd med, eftersom dessa killar upptäcker, 281 00:13:26,700 --> 00:13:30,580 är ingredienserna med för att göra en jordnötssmör och gelé smörgås. 282 00:13:30,580 --> 00:13:33,520 >> Nu detta kan vara något som du tar så mycket för givet. 283 00:13:33,520 --> 00:13:35,430 Men vi har gett varje av våra tre frivilliga 284 00:13:35,430 --> 00:13:40,500 här-- två volontärer och Sam här, en limpa bröd varje, en platta, en kniv, 285 00:13:40,500 --> 00:13:43,740 en burk av gelé eller sylt, och en burk jordnötssmör. 286 00:13:43,740 --> 00:13:46,190 Och målet till hands nu är kommer att vara för dessa tre 287 00:13:46,190 --> 00:13:48,030 att göra en jordnötssmör och gelé smörgås. 288 00:13:48,030 --> 00:13:51,000 Men vad vi ska göra är att förvänta den audience-- eftersom er alla 289 00:13:51,000 --> 00:13:53,710 säkert vet hur man gör detta så bra i reality-- 290 00:13:53,710 --> 00:13:56,380 kommer att ge oss steg för steg instruktioner. 291 00:13:56,380 --> 00:13:57,970 Pseudo-kod, om ni så vill. 292 00:13:57,970 --> 00:13:59,922 >> Så jag ska spela rollen av skrivare här. 293 00:13:59,922 --> 00:14:02,880 Och jag har fått lite att göra-lista, och så att var och av er, en i taget, 294 00:14:02,880 --> 00:14:04,588 ropar en potentiell instruktions, jag 295 00:14:04,588 --> 00:14:06,110 skriva ner det, upprepa det som behövs. 296 00:14:06,110 --> 00:14:09,650 Och då ni kommer att göra en jordnötssmör och gelé smörgås 297 00:14:09,650 --> 00:14:11,171 bara genom att göra vad du säger. 298 00:14:11,171 --> 00:14:12,670 Så tänk på er själva som datorer. 299 00:14:12,670 --> 00:14:13,740 >> Du kan bara göra vad du blir tillsagd. 300 00:14:13,740 --> 00:14:14,948 Inga antaganden, inga frågor. 301 00:14:14,948 --> 00:14:16,660 Du behöver bara göra det. 302 00:14:16,660 --> 00:14:20,460 Så vem vill fara för första instruktion för att göra en PBJ smörgås? 303 00:14:20,460 --> 00:14:21,460 På balkongen finns. 304 00:14:21,460 --> 00:14:22,801 >> PUBLIK: Öppna påsen med brödet. 305 00:14:22,801 --> 00:14:26,430 >> DAVID J. MALAN: Öppna påse med bröd, om ni så vill. 306 00:14:26,430 --> 00:14:34,440 307 00:14:34,440 --> 00:14:35,230 Så låt oss se. 308 00:14:35,230 --> 00:14:37,910 Låt oss iterera, och få lite mer exakt. 309 00:14:37,910 --> 00:14:39,040 >> Bra sätt att börja om. 310 00:14:39,040 --> 00:14:42,340 Steg två, någon annan. 311 00:14:42,340 --> 00:14:43,590 Nu ingen vill frivilligt. 312 00:14:43,590 --> 00:14:44,616 Steg två, framför. 313 00:14:44,616 --> 00:14:46,532 PUBLIK: Öppna inner påse bröd samt. 314 00:14:46,532 --> 00:14:50,600 DAVID J. MALAN: Öppna inre påse bröd samt. 315 00:14:50,600 --> 00:14:51,880 Stor, lära vi. 316 00:14:51,880 --> 00:14:57,880 317 00:14:57,880 --> 00:14:59,090 Lite mer exakt. 318 00:14:59,090 --> 00:15:00,240 Låt oss få detta att fungera. 319 00:15:00,240 --> 00:15:01,180 Ja, i grön skjorta. 320 00:15:01,180 --> 00:15:04,608 >> PUBLIK: [OHÖRBAR] 321 00:15:04,608 --> 00:15:05,108 322 00:15:05,108 --> 00:15:09,040 DAVID J. MALAN: skivor av bröd. 323 00:15:09,040 --> 00:15:11,110 Försiktigt bort två skivor bröd. 324 00:15:11,110 --> 00:15:20,350 325 00:15:20,350 --> 00:15:21,000 Det är bra. 326 00:15:21,000 --> 00:15:24,300 Steg fyra, någon annan? 327 00:15:24,300 --> 00:15:25,170 Här borta, ja? 328 00:15:25,170 --> 00:15:26,130 >> PUBLIK: [OHÖRBAR] 329 00:15:26,130 --> 00:15:28,810 >> DAVID J. MALAN: Placera bröd på plattan. 330 00:15:28,810 --> 00:15:33,490 331 00:15:33,490 --> 00:15:35,290 Steg fem? 332 00:15:35,290 --> 00:15:36,020 Steg fem, ja? 333 00:15:36,020 --> 00:15:39,440 >> PUBLIK: [OHÖRBAR] 334 00:15:39,440 --> 00:15:39,940 335 00:15:39,940 --> 00:15:43,860 DAVID J. MALAN: Ovanpå of-- oh, hand. 336 00:15:43,860 --> 00:15:46,967 Placera handen ovanpå jordnötssmör. 337 00:15:46,967 --> 00:15:47,800 Är det vad jag huvudet? 338 00:15:47,800 --> 00:15:49,160 >> Målgrupp: Ja, och skruva. 339 00:15:49,160 --> 00:15:51,370 >> DAVID J. MALAN: och-- säga det igen. 340 00:15:51,370 --> 00:15:52,696 >> PUBLIK: [OHÖRBAR] 341 00:15:52,696 --> 00:15:57,990 >> DAVID J. MALAN: Och sätta lock bredvid jordnötssmör. 342 00:15:57,990 --> 00:16:00,370 Lätt placera handen på toppen av jordnötssmör, 343 00:16:00,370 --> 00:16:03,240 och skruva, och sätt på locket bredvid jordnötssmör. 344 00:16:03,240 --> 00:16:14,760 345 00:16:14,760 --> 00:16:16,260 OK, steg sex. 346 00:16:16,260 --> 00:16:17,520 Steg sex, någon annan. 347 00:16:17,520 --> 00:16:19,366 Yeah? 348 00:16:19,366 --> 00:16:22,740 >> PUBLIK: [OHÖRBAR] 349 00:16:22,740 --> 00:16:29,197 350 00:16:29,197 --> 00:16:30,405 DAVID J. MALAN: Säg det igen. 351 00:16:30,405 --> 00:16:31,946 PUBLIK: Upprepa steg fem igen. 352 00:16:31,946 --> 00:16:37,380 DAVID J. MALAN: Och upprepa steg fem igen, 353 00:16:37,380 --> 00:16:39,400 som kommer att skapa en bit av ett problem 354 00:16:39,400 --> 00:16:42,600 nu om vi gör det här steg för steg. 355 00:16:42,600 --> 00:16:44,640 Så nu går vi tillbaka till steg fem. 356 00:16:44,640 --> 00:16:47,760 Lätt placera handen ovanpå jordnötssmör och skruva 357 00:16:47,760 --> 00:16:50,990 och sätta lock bredvid jordnötssmör. 358 00:16:50,990 --> 00:16:55,340 Sedan ta tag i jordnötssmör och upprepa steg fem igen. 359 00:16:55,340 --> 00:16:58,410 >> Så vi kommer att åsidosätta det oändlig slinga, om ni så vill. 360 00:16:58,410 --> 00:17:00,400 Steg sju, någon annan. 361 00:17:00,400 --> 00:17:02,918 Ja, på baksidan. 362 00:17:02,918 --> 00:17:06,397 >> PUBLIK: [OHÖRBAR] 363 00:17:06,397 --> 00:17:16,084 364 00:17:16,084 --> 00:17:17,769 >> DAVID J. MALAN: --on ovanpå varandra. 365 00:17:17,769 --> 00:17:20,529 >> PUBLIK: [OHÖRBAR] 366 00:17:20,529 --> 00:17:23,175 >> DAVID J. MALAN: På Däremot på den andra toppen. 367 00:17:23,175 --> 00:17:28,880 368 00:17:28,880 --> 00:17:30,895 Vill du bara komma upp hit? 369 00:17:30,895 --> 00:17:34,750 Hur gör jag avslutar instruktionen? 370 00:17:34,750 --> 00:17:37,790 Vad är resten av instruktionen? 371 00:17:37,790 --> 00:17:39,140 >> PUBLIK: Ignorera den delen. 372 00:17:39,140 --> 00:17:41,050 >> DAVID J. MALAN: Ignorera den delen. 373 00:17:41,050 --> 00:17:44,192 374 00:17:44,192 --> 00:17:44,900 Låt oss börja om. 375 00:17:44,900 --> 00:17:45,400 Steg sju. 376 00:17:45,400 --> 00:17:48,516 377 00:17:48,516 --> 00:17:51,883 >> PUBLIK: [OHÖRBAR] 378 00:17:51,883 --> 00:17:56,090 >> DAVID J. MALAN: Ta tag med motsatta hand-- detta är bra. 379 00:17:56,090 --> 00:17:58,544 Detta är faktiskt bra. 380 00:17:58,544 --> 00:18:01,750 >> PUBLIK: [OHÖRBAR] 381 00:18:01,750 --> 00:18:03,975 >> DAVID J. MALAN: Och plast jar-- 382 00:18:03,975 --> 00:18:06,675 >> PUBLIK: [OHÖRBAR] 383 00:18:06,675 --> 00:18:08,420 >> DAVID J. MALAN: Och twist-- 384 00:18:08,420 --> 00:18:11,488 >> PUBLIK: [OHÖRBAR] 385 00:18:11,488 --> 00:18:13,730 >> DAVID J. MALAN: För två sekunder. 386 00:18:13,730 --> 00:18:15,800 Bara öppna jordnötssmör burken. 387 00:18:15,800 --> 00:18:19,020 388 00:18:19,020 --> 00:18:20,632 Jag hoppas att du förlåter. 389 00:18:20,632 --> 00:18:21,840 Så låt oss anta att vi kom dit. 390 00:18:21,840 --> 00:18:23,240 Öppna jordnötssmör burken. 391 00:18:23,240 --> 00:18:27,008 392 00:18:27,008 --> 00:18:32,570 >> [Applåder] 393 00:18:32,570 --> 00:18:34,790 >> DAVID J. MALAN: Steg åtta, låt oss gå. 394 00:18:34,790 --> 00:18:37,510 Steg åtta, ja, på baksidan. 395 00:18:37,510 --> 00:18:38,470 >> PUBLIK: [OHÖRBAR] 396 00:18:38,470 --> 00:18:44,772 397 00:18:44,772 --> 00:18:45,700 >> DAVID J. MALAN: Good. 398 00:18:45,700 --> 00:18:47,040 Steg nio, ja? 399 00:18:47,040 --> 00:18:48,924 >> PUBLIK: [OHÖRBAR] 400 00:18:48,924 --> 00:18:51,567 >> David J. MALAN: --out av jordnötssmör burken. 401 00:18:51,567 --> 00:18:53,830 Och-- och vad? 402 00:18:53,830 --> 00:18:54,729 >> PUBLIK: [OHÖRBAR] 403 00:18:54,729 --> 00:18:58,222 >> DAVID J. MALAN: Och sätta kniv tillbaka in jordnötssmör. 404 00:18:58,222 --> 00:19:11,130 405 00:19:11,130 --> 00:19:12,090 Steg tio. 406 00:19:12,090 --> 00:19:13,050 Steg tio. 407 00:19:13,050 --> 00:19:14,970 >> PUBLIK: [OHÖRBAR] 408 00:19:14,970 --> 00:19:20,710 >> DAVID J. MALAN: Placera kniven ut och ta bort tätningen. 409 00:19:20,710 --> 00:19:23,060 Fin. 410 00:19:23,060 --> 00:19:24,400 Av jordnötssmör. 411 00:19:24,400 --> 00:19:34,490 412 00:19:34,490 --> 00:19:36,406 Okej, steg 11. 413 00:19:36,406 --> 00:19:37,322 >> PUBLIK: [OHÖRBAR] 414 00:19:37,322 --> 00:19:42,520 415 00:19:42,520 --> 00:19:48,164 >> DAVID J. MALAN: OK, grå dator Följ blå eller röd dator. 416 00:19:48,164 --> 00:19:49,631 God. 417 00:19:49,631 --> 00:19:53,054 >> [Applåder] 418 00:19:53,054 --> 00:19:55,920 419 00:19:55,920 --> 00:19:57,170 DAVID J. MALAN: Ta oss hem. 420 00:19:57,170 --> 00:19:59,570 Några fler steg. 421 00:19:59,570 --> 00:20:00,250 Vad händer härnäst? 422 00:20:00,250 --> 00:20:02,590 Steg 12. 423 00:20:02,590 --> 00:20:04,161 Steg 12. 424 00:20:04,161 --> 00:20:05,123 Yeah? 425 00:20:05,123 --> 00:20:14,262 >> PUBLIK: Placera en av de skivor bröd försiktigt på ett av dina händer. 426 00:20:14,262 --> 00:20:17,550 >> DAVID J. MALAN: En av dina händer. 427 00:20:17,550 --> 00:20:20,760 Och sedan, steg 13. 428 00:20:20,760 --> 00:20:21,260 Yeah? 429 00:20:21,260 --> 00:20:22,220 >> PUBLIK: [OHÖRBAR] 430 00:20:22,220 --> 00:20:25,580 431 00:20:25,580 --> 00:20:27,150 >> DAVID J. MALAN: --on skiva bröd. 432 00:20:27,150 --> 00:20:29,950 God. 433 00:20:29,950 --> 00:20:32,260 Ganska bra. 434 00:20:32,260 --> 00:20:34,990 Steg 14, ja. 435 00:20:34,990 --> 00:20:38,126 >> PUBLIK: Ångra steg 13. 436 00:20:38,126 --> 00:20:39,950 >> DAVID J. MALAN: Ångra steg 13. 437 00:20:39,950 --> 00:20:42,690 438 00:20:42,690 --> 00:20:44,770 Låt oss gå vidare till gelé. 439 00:20:44,770 --> 00:20:47,900 Det är en 100- steg program, men vi var på steg 15. 440 00:20:47,900 --> 00:20:49,210 Yeah. 441 00:20:49,210 --> 00:20:50,170 >> PUBLIK: [OHÖRBAR] 442 00:20:50,170 --> 00:20:53,050 443 00:20:53,050 --> 00:20:59,570 >> David J. MALAN: 7 genom 13 användning av gelé, eftersom de gick så bra. 444 00:20:59,570 --> 00:21:02,530 Upprepa steg 7 till 13, med hjälp av gelé. 445 00:21:02,530 --> 00:21:07,940 Så förstå den nedre halvan av geléburk med en hand ovanpå. 446 00:21:07,940 --> 00:21:11,970 Å andra sidan om den andra topp, ignorerar den delen, 447 00:21:11,970 --> 00:21:15,430 greppa med motsatta händer, locket och plastburk 448 00:21:15,430 --> 00:21:18,300 vid botten, och vrid i två sekunder. 449 00:21:18,300 --> 00:21:19,940 Öppna sedan geléburk. 450 00:21:19,940 --> 00:21:23,290 451 00:21:23,290 --> 00:21:26,580 Och slutligen, låt oss försöka ge oss något ätbart. 452 00:21:26,580 --> 00:21:27,270 Steg 16. 453 00:21:27,270 --> 00:21:35,820 454 00:21:35,820 --> 00:21:37,130 Så varför vi inte lämna det där. 455 00:21:37,130 --> 00:21:38,879 Tack så mycket för våra tre frivilliga. 456 00:21:38,879 --> 00:21:41,466 [Applåder] 457 00:21:41,466 --> 00:21:45,920 458 00:21:45,920 --> 00:21:50,300 >> Vi har en liten CS50 stress boll för dig. 459 00:21:50,300 --> 00:21:54,540 Det skulle bli en smörgås men-- så vad 460 00:21:54,540 --> 00:21:57,130 var poängen, utöver att ha en lite kul med algoritmen? 461 00:21:57,130 --> 00:22:00,140 Men verkligheten är att även om du programmera en dator, 462 00:22:00,140 --> 00:22:02,050 du måste vara super exakt. 463 00:22:02,050 --> 00:22:04,030 Så komplext eller hotfull som din egen dator 464 00:22:04,030 --> 00:22:06,670 kan mycket väl vara för dig, på stone när något går fel, 465 00:22:06,670 --> 00:22:10,150 verkligheten är att det är en ganska dum enhet som uppfanns av oss människor, 466 00:22:10,150 --> 00:22:13,267 och kan bara göra en delmängd av vad vi do-- ibland säkert faster-- 467 00:22:13,267 --> 00:22:15,100 men det vet inte hur att göra antaganden. 468 00:22:15,100 --> 00:22:18,070 Det vet inte hur man ska vara på samma våglängd som ni. 469 00:22:18,070 --> 00:22:20,280 >> Det kommer bara göra exakt vad du säger det. 470 00:22:20,280 --> 00:22:22,070 Och du kommer att slås, kanske, som vi börjar 471 00:22:22,070 --> 00:22:24,770 skriva faktiska koden med första problemsamlingar och utanför, 472 00:22:24,770 --> 00:22:27,490 hur lätt det är att göra ett antagande som en människa, 473 00:22:27,490 --> 00:22:31,880 och inte räknar jag behöver för att hantera så fall eller det hörnet fall 474 00:22:31,880 --> 00:22:34,900 så att säga, det kan mycket väl uppstå om till exempel Sam hade den enda 475 00:22:34,900 --> 00:22:38,711 squeezable burk gelé, medan alla hade annars några glasburkar som 476 00:22:38,711 --> 00:22:39,210 väl. 477 00:22:39,210 --> 00:22:42,170 Så innan vi vänder vår uppmärksamhet på några faktiska koden, 478 00:22:42,170 --> 00:22:44,680 Tillåt mig att införa kursens huvuden här på Yale. 479 00:22:44,680 --> 00:22:49,058 Våra vänner SCAZ, Andy, och Jason att komma upp och säga hej. 480 00:22:49,058 --> 00:22:52,544 >> [Applåder] 481 00:22:52,544 --> 00:22:58,022 482 00:22:58,022 --> 00:23:01,060 >> SCAZ: Vi har förlorat Jason tillfälligt. 483 00:23:01,060 --> 00:23:02,440 Hej igen, alla. 484 00:23:02,440 --> 00:23:03,610 Mitt namn är SCAZ. 485 00:23:03,610 --> 00:23:06,860 Jag har undervisat på Yale sedan 2001. 486 00:23:06,860 --> 00:23:10,820 Och när jag inte undervisar, min forskning är inom robotik 487 00:23:10,820 --> 00:23:12,620 och artificiell intelligens. 488 00:23:12,620 --> 00:23:17,700 >> Och tillkännagivandet som jag har i dag är att med början i ett par veckor, 489 00:23:17,700 --> 00:23:22,170 vi kommer att föra några kompletterande material till CS50 att prata 490 00:23:22,170 --> 00:23:24,510 om Intelligence. 491 00:23:24,510 --> 00:23:28,230 Vi kommer att prata om hur platser som Netflix och Hulu 492 00:23:28,230 --> 00:23:31,780 kan rekommendera filmer kanske du vill titta på. 493 00:23:31,780 --> 00:23:35,710 Där vi pratar om hur förarlösa bilar fungerar faktiskt. 494 00:23:35,710 --> 00:23:39,020 Och vi kommer att kunna marken dessa saker i begreppen 495 00:23:39,020 --> 00:23:41,730 att du lär dig i denna klass i dag. 496 00:23:41,730 --> 00:23:45,410 >> Eftersom alla dessa saker är bygger på samma grund. 497 00:23:45,410 --> 00:23:47,396 Och det är vad detta serien kommer att undersöka. 498 00:23:47,396 --> 00:23:49,520 Så jag ser verkligen fram fram emot att se mer av dig 499 00:23:49,520 --> 00:23:53,260 allt, och du kommer att få se mer av oss alla mycket snart. 500 00:23:53,260 --> 00:23:56,500 Låt mig då presentera Jason. 501 00:23:56,500 --> 00:23:57,950 >> JASON: Hej alla. 502 00:23:57,950 --> 00:23:59,290 Mitt namn är Jason. 503 00:23:59,290 --> 00:24:03,540 Jag tyvärr gick till Harvard som en undergrad. 504 00:24:03,540 --> 00:24:07,020 Det kommer att få skära ut ur den faktiska strömmen. 505 00:24:07,020 --> 00:24:09,870 >> Och nu är jag här som en föreläsare i datorvetenskapliga institutionen. 506 00:24:09,870 --> 00:24:14,825 Och jag hjälper köra kursen med SCAZ, David och Andy. 507 00:24:14,825 --> 00:24:17,140 >> ANDY: Hey guys. 508 00:24:17,140 --> 00:24:17,980 Jag heter Andy. 509 00:24:17,980 --> 00:24:21,992 Jag är faktiskt den enda Yale student på scenen just nu. 510 00:24:21,992 --> 00:24:25,464 >> [Applåder] 511 00:24:25,464 --> 00:24:29,440 512 00:24:29,440 --> 00:24:31,770 >> Jag är i Berkeley College, ursprungligen från Solon, Ohio. 513 00:24:31,770 --> 00:24:35,240 514 00:24:35,240 --> 00:24:37,930 Och jag var en av dessa barn där, när jag kom till Yale, 515 00:24:37,930 --> 00:24:42,030 Jag trodde verkligen att jag skulle aldrig måste titta på ett antal någonsin igen. 516 00:24:42,030 --> 00:24:46,240 Och då insåg jag att du behövde både vetenskap och QR poäng till examen. 517 00:24:46,240 --> 00:24:51,340 Och så mitt första våren, tog jag en klass, en CS, intro CS klass här 518 00:24:51,340 --> 00:24:52,230 vid Yale. 519 00:24:52,230 --> 00:24:54,710 Jag var som, är detta som faktiskt ganska coolt. 520 00:24:54,710 --> 00:25:01,330 >> Och medan jag faktiskt hamnade förklara som en global frågor större, kompetens 521 00:25:01,330 --> 00:25:04,910 Jag lärde mig i CS och programmering är så tillämplig på alla fält 522 00:25:04,910 --> 00:25:05,970 du väljer att göra. 523 00:25:05,970 --> 00:25:09,770 Och personalen här på Yale, Vi har varit så hårt på jobbet 524 00:25:09,770 --> 00:25:10,800 att förbereda sig för er. 525 00:25:10,800 --> 00:25:13,410 Och vi ser fram emot att se allt i avsnittet och kontorstid. 526 00:25:13,410 --> 00:25:14,874 Så ja. 527 00:25:14,874 --> 00:25:18,178 >> [Applåder] 528 00:25:18,178 --> 00:25:19,297 529 00:25:19,297 --> 00:25:20,380 DAVID J. MALAN: Tack. 530 00:25:20,380 --> 00:25:22,940 Så strax innan lektionen började, Vi hade en möjlighet 531 00:25:22,940 --> 00:25:25,660 att gå runt campus med en mobiltelefon och ta 532 00:25:25,660 --> 00:25:30,530 vissa selfies i video form av riktigt min första turné i Yale campus här. 533 00:25:30,530 --> 00:25:35,420 Och så vi trodde att vi skulle dela en grov nedskärning av just detta som SCAZ och Andy 534 00:25:35,420 --> 00:25:37,970 och Jason tog mig runt campus. 535 00:25:37,970 --> 00:25:43,662 536 00:25:43,662 --> 00:25:44,328 [VIDEOAVSPELNING] 537 00:25:44,328 --> 00:25:47,322 [SIRENER] 538 00:25:47,322 --> 00:25:49,318 -David. 539 00:25:49,318 --> 00:25:50,132 -Välkommen Till Yale. 540 00:25:50,132 --> 00:25:50,840 -Trevligt att se dig. 541 00:25:50,840 --> 00:25:52,410 -Trevligt att träffas. 542 00:25:52,410 --> 00:25:53,340 -Kan Vi gå på en turné? 543 00:25:53,340 --> 00:25:56,845 -Låt Oss gå på en turné. 544 00:25:56,845 --> 00:25:57,523 -Road tour. 545 00:25:57,523 --> 00:25:59,106 -Det Tecken har varit där ett tag. 546 00:25:59,106 --> 00:26:00,200 -Whah, CS50. 547 00:26:00,200 --> 00:26:02,978 548 00:26:02,978 --> 00:26:05,293 >> -Hurry! 549 00:26:05,293 --> 00:26:08,970 Gå, gå, gå, gå. 550 00:26:08,970 --> 00:26:12,340 Du bör [OHÖRBAR] Harkness Tower. 551 00:26:12,340 --> 00:26:13,850 >> -Och Vi såg att ett par gånger. 552 00:26:13,850 --> 00:26:16,760 553 00:26:16,760 --> 00:26:20,155 >> [Applåder] 554 00:26:20,155 --> 00:26:21,130 555 00:26:21,130 --> 00:26:22,890 >> -Titta Ut för cykeln! 556 00:26:22,890 --> 00:26:24,500 Ahh! 557 00:26:24,500 --> 00:26:25,030 Hej Frank. 558 00:26:25,030 --> 00:26:26,314 >> -Vad är upp killar? 559 00:26:26,314 --> 00:26:26,855 -Hur mår du? 560 00:26:26,855 --> 00:26:28,474 -Trevligt att se dig. 561 00:26:28,474 --> 00:26:29,390 -Välkommen Till videon. 562 00:26:29,390 --> 00:26:32,270 Agera inte alltför upphetsad. 563 00:26:32,270 --> 00:26:34,502 >> -Jag Älskar Silliman. 564 00:26:34,502 --> 00:26:36,430 Ahh! 565 00:26:36,430 --> 00:26:39,780 >> -Det Har varit ungefär tre timmar sedan Jason hade glass och Nutella. 566 00:26:39,780 --> 00:26:43,189 Så vi måste stoppa tillbaka på Silliman för lite. 567 00:26:43,189 --> 00:26:45,137 >> -Det Är inte ens [OHÖRBAR] ändå, bara det faktum 568 00:26:45,137 --> 00:26:47,270 att de har det här är så fantastiskt. 569 00:26:47,270 --> 00:26:49,830 Dude, det finns Nutella vid varje måltid. 570 00:26:49,830 --> 00:26:51,830 >> -Det Var förra året också. 571 00:26:51,830 --> 00:26:54,220 >> -Ja. 572 00:26:54,220 --> 00:26:56,440 >> -Säg mycket om Yale hittills. 573 00:26:56,440 --> 00:26:58,485 Men jag tror nu TD borta. 574 00:26:58,485 --> 00:26:59,860 Och det är ansett utanför campus. 575 00:26:59,860 --> 00:27:03,659 >> -Här Har vi gotisk arkitektur. 576 00:27:03,659 --> 00:27:04,200 Världskänd. 577 00:27:04,200 --> 00:27:06,758 Vi har lite mer gotisk arkitektur. 578 00:27:06,758 --> 00:27:10,614 Och konstruktion, och mer gotisk arkitektur. 579 00:27:10,614 --> 00:27:11,114 Hej. 580 00:27:11,114 --> 00:27:15,470 Det är där vi ska ha kontorstid Tisdagar genom torsdagar i Hogwarts, 581 00:27:15,470 --> 00:27:16,922 som [OHÖRBAR]. 582 00:27:16,922 --> 00:27:20,620 583 00:27:20,620 --> 00:27:21,120 -Okej. 584 00:27:21,120 --> 00:27:22,078 Det var allt för turnén. 585 00:27:22,078 --> 00:27:24,030 Vi är vid Yale University s Law School, där 586 00:27:24,030 --> 00:27:25,870 dagens föreläsning är på väg att ske. 587 00:27:25,870 --> 00:27:29,220 Låt oss gå in. 588 00:27:29,220 --> 00:27:30,375 >> [END SPELA] 589 00:27:30,375 --> 00:27:32,370 >> DAVID J. MALAN: Och som ger oss här nu. 590 00:27:32,370 --> 00:27:38,040 591 00:27:38,040 --> 00:27:40,770 Så hittills har vi varit fokus på pseudokod, 592 00:27:40,770 --> 00:27:42,430 vilket är engelska-liknande syntax. 593 00:27:42,430 --> 00:27:45,030 Det har ingen föreskriven specifikation. 594 00:27:45,030 --> 00:27:47,030 Det är bara du använder några intuitiv språk om du 595 00:27:47,030 --> 00:27:48,950 vill förklara vad du vill göra. 596 00:27:48,950 --> 00:27:52,270 >> Men låt oss börja nu övergången till kod, som de flesta människor skulle säga. 597 00:27:52,270 --> 00:27:54,880 Men mer exakt, något känd som källkoden. 598 00:27:54,880 --> 00:27:58,210 Detta är det språk som människor skriver att datorer ultimately-- 599 00:27:58,210 --> 00:28:00,780 eventuellt efter ett visst antal steps-- slutligen förstår 600 00:28:00,780 --> 00:28:02,530 så att veta hur man gör något. 601 00:28:02,530 --> 00:28:05,120 Att du såg en skymt av detta kanske på onsdag. 602 00:28:05,120 --> 00:28:07,780 >> Detta är ett exempel som otroligt, underwhelming 603 00:28:07,780 --> 00:28:10,220 när den körs bara säger "hello world." 604 00:28:10,220 --> 00:28:13,510 Och det är skrivet på ett språk som kallas C, som är syntaktiskt mycket lika 605 00:28:13,510 --> 00:28:15,676 till en hel del andra språk att du kanske inte vet, 606 00:28:15,676 --> 00:28:18,409 men kanske har hört talas om som Java, och C ++, och Python, och Ruby, 607 00:28:18,409 --> 00:28:21,200 och liknande, och faktiskt, vi ska bringar en stor del av terminen med C, 608 00:28:21,200 --> 00:28:23,530 och sedan mot slutet av termin, som bygger på det, 609 00:28:23,530 --> 00:28:25,446 och införa alla antal andra språk. 610 00:28:25,446 --> 00:28:28,810 Bland dem PHP och JavaScript, ett databasspråk som kallas SQL. 611 00:28:28,810 --> 00:28:31,526 Men med C, vad vi ska ha denna bottom-up förståelse 612 00:28:31,526 --> 00:28:33,900 exakt hur datorer fungerar, vad du kan göra med dem, 613 00:28:33,900 --> 00:28:37,252 och hur du kan lösa problem desto mer effektivt genom detta 614 00:28:37,252 --> 00:28:39,460 skiktning som vi diskuterade på onsdag, och stående 615 00:28:39,460 --> 00:28:40,870 på axlarna av andra. 616 00:28:40,870 --> 00:28:42,200 Men mer om det framöver. 617 00:28:42,200 --> 00:28:46,650 >> Idag tittar vi på en enklare miljö, men en i grunden identisk 618 00:28:46,650 --> 00:28:49,970 miljö kallas Scratch av våra vänner på MIT Media Lab. 619 00:28:49,970 --> 00:28:52,570 Detta är en grafisk programmeringsspråk, Scratch, 620 00:28:52,570 --> 00:28:54,330 där du kan dra och släppa saker som 621 00:28:54,330 --> 00:28:57,430 ser ut som pusselbitar som endast spärr om det gör 622 00:28:57,430 --> 00:28:59,872 logisk eller programmatisk känsla att göra det. 623 00:28:59,872 --> 00:29:02,330 Men det kommer att ge oss möjlighet att har ett samtal om alla 624 00:29:02,330 --> 00:29:04,604 av samma program fundamenta att några av er 625 00:29:04,604 --> 00:29:06,520 kanske vet redan, att många av er kanske inte 626 00:29:06,520 --> 00:29:09,670 veta något om utan att behöva fastna ärligt talat, 627 00:29:09,670 --> 00:29:13,150 i intellektuellt ointressant syntax av semikolon, 628 00:29:13,150 --> 00:29:14,950 och parenteser, och citat, och liknande. 629 00:29:14,950 --> 00:29:16,910 Allt detta, tidigt på, är en distraktion 630 00:29:16,910 --> 00:29:20,322 vad är intressanta och verkligen användbara idéer. 631 00:29:20,322 --> 00:29:22,280 Så låt oss ta en snabb blick på miljön 632 00:29:22,280 --> 00:29:24,180 här, så att du vet vad som väntar. 633 00:29:24,180 --> 00:29:28,060 Och i själva verket bland de spel vi kan spela är några program skrivna 634 00:29:28,060 --> 00:29:30,810 av CS50 egna tidigare studenter. 635 00:29:30,810 --> 00:29:36,200 En av dem, själv, ska jag vara här skriven i forskarskolan för mig. 636 00:29:36,200 --> 00:29:39,030 >> Om jag kunde ta en volontär som är villig att spela 637 00:29:39,030 --> 00:29:40,420 ett spel för allra första gången. 638 00:29:40,420 --> 00:29:40,920 Visst. 639 00:29:40,920 --> 00:29:41,690 Kom upp. 640 00:29:41,690 --> 00:29:42,565 Vad heter du? 641 00:29:42,565 --> 00:29:43,372 >> PUBLIK: Angela. 642 00:29:43,372 --> 00:29:44,830 DAVID J. MALAN: Angela, kom upp. 643 00:29:44,830 --> 00:29:47,220 Så Scratch har varit ute för ett par år. 644 00:29:47,220 --> 00:29:49,960 Och när jag var i forskarskolan, Jag var över registrerade vid MIT, 645 00:29:49,960 --> 00:29:53,392 tar professor Mitchel Resnick s kurs i undervisningsteknik. 646 00:29:53,392 --> 00:29:56,350 Och vi var bland de allra första studenter i världen att faktiskt beta 647 00:29:56,350 --> 00:29:57,120 prov Scratch. 648 00:29:57,120 --> 00:30:00,090 Och mitt projekt var vad Angela har nu nådigt frivilligt 649 00:30:00,090 --> 00:30:02,060 att spela kallas Oscartime. 650 00:30:02,060 --> 00:30:04,507 >> Så jag kommer att gå vidare och dubbelklicka på ikonen här. 651 00:30:04,507 --> 00:30:07,590 Det kommer att öppna upp en programmerings miljö som vi snart kommer att dyka i. 652 00:30:07,590 --> 00:30:09,720 Jag kommer att fullskärmsläge det för Angela, här. 653 00:30:09,720 --> 00:30:12,490 Jag kommer att träffa green flagga på bara ett ögonblick. 654 00:30:12,490 --> 00:30:15,130 Och sedan en hel del skräp kommer att falla från himlen. 655 00:30:15,130 --> 00:30:17,830 Och du kommer att använda musen här för att faktiskt dra och släppa 656 00:30:17,830 --> 00:30:20,169 papperskorgen i Oscars soptunnor. 657 00:30:20,169 --> 00:30:23,210 Så om du vill gå vidare och klicka den gröna flaggan, kommer spelet börja. 658 00:30:23,210 --> 00:30:26,890 >> [MUSIK SPELA] 659 00:30:26,890 --> 00:30:29,980 >> Åh, jag älskar papperskorgen. 660 00:30:29,980 --> 00:30:34,840 Något smutsig eller jolleseglare eller dammig. 661 00:30:34,840 --> 00:30:39,300 Något ojämn eller ruttna eller rostig. 662 00:30:39,300 --> 00:30:43,155 Ja, jag älskar papperskorgen. 663 00:30:43,155 --> 00:30:45,530 Om du verkligen vill se något trashy, titta på detta. 664 00:30:45,530 --> 00:30:49,570 Jag har här en sneaker det är sliten och slitna. 665 00:30:49,570 --> 00:30:53,750 Det är alla fulla av hål håller och snören slits. 666 00:30:53,750 --> 00:30:57,590 En gåva från min mor den dagen jag föddes. 667 00:30:57,590 --> 00:30:59,434 Jag älskar det eftersom it's-- 668 00:30:59,434 --> 00:31:02,600 DAVID J. MALAN: --green dessa dagar bara vara att kasta allt i papperskorgen. 669 00:31:02,600 --> 00:31:04,312 Och så vad en av CS50 egen personal did-- 670 00:31:04,312 --> 00:31:06,270 Jordanien, som du kanske möta today-- har faktiskt 671 00:31:06,270 --> 00:31:08,030 uppdateras detta för dagens tider. 672 00:31:08,030 --> 00:31:10,800 Och så tillåt mig att öppna upp en remix stället för Angela. 673 00:31:10,800 --> 00:31:13,600 Och vi ska spela detta i stället för en stund där du nu vänlig 674 00:31:13,600 --> 00:31:16,600 kommer att behöva välja mellan om att kasta något i papperskorgen, 675 00:31:16,600 --> 00:31:19,050 eller återvinna det eller kompost det. 676 00:31:19,050 --> 00:31:21,280 Så det är lite av press på dig att få 677 00:31:21,280 --> 00:31:28,040 denna rätt framför din 392 till 497 klasskamrater här i hallen, 678 00:31:28,040 --> 00:31:28,724 om du vill. 679 00:31:28,724 --> 00:31:29,390 [VIDEOAVSPELNING] 680 00:31:29,390 --> 00:31:32,540 [MUSIK SPELA] 681 00:31:32,540 --> 00:31:36,280 -Oh Jag älskar papperskorgen. 682 00:31:36,280 --> 00:31:40,840 Något smutsig eller jolleseglare eller dammig. 683 00:31:40,840 --> 00:31:44,910 Något ojämn eller ruttna eller rostig. 684 00:31:44,910 --> 00:31:48,830 Ja, jag älskar papperskorgen. 685 00:31:48,830 --> 00:31:51,480 >> Om du verkligen vill se något trashy, titta på detta. 686 00:31:51,480 --> 00:31:55,540 Jag har här en sneaker det är sliten och slitna. 687 00:31:55,540 --> 00:31:59,440 Det är alla fulla av hål och snören slits. 688 00:31:59,440 --> 00:32:03,762 En gåva från min mor den dagen jag föddes. 689 00:32:03,762 --> 00:32:07,630 Jag älskar det eftersom det är skräp. 690 00:32:07,630 --> 00:32:11,570 >> Åh, jag älskar papperskorgen. 691 00:32:11,570 --> 00:32:15,512 Något smutsig, eller jolleseglare, eller dammig. 692 00:32:15,512 --> 00:32:20,200 Något ojämn eller ruttna eller rostig. 693 00:32:20,200 --> 00:32:23,856 Ja, jag älskar papperskorgen. 694 00:32:23,856 --> 00:32:26,246 Här är lite mer ruttet saker. 695 00:32:26,246 --> 00:32:28,240 Jag har här några newspaper-- 696 00:32:28,240 --> 00:32:28,889 >> [END SPELA] 697 00:32:28,889 --> 00:32:30,680 David J. MALAN: --are faktiskt komposterbar. 698 00:32:30,680 --> 00:32:32,790 Men tack till vår volontär, Angela. 699 00:32:32,790 --> 00:32:37,920 Vi har en stress boll här för dig också. 700 00:32:37,920 --> 00:32:38,790 Så tack. 701 00:32:38,790 --> 00:32:40,250 >> Så här var skriven av mig. 702 00:32:40,250 --> 00:32:44,324 Men nu en av en faktisk tidigare elev som genomfört denna, vilket är ett spel. 703 00:32:44,324 --> 00:32:46,490 Allt i detta språk som kallas Scratch, att vi ska snart 704 00:32:46,490 --> 00:32:47,850 skal tillbaka lager av. 705 00:32:47,850 --> 00:32:49,940 Men om vi skulle like-- hur om en annan volontär? 706 00:32:49,940 --> 00:32:50,440 Höger. 707 00:32:50,440 --> 00:32:50,970 >> Kom upp. 708 00:32:50,970 --> 00:32:52,070 Vad heter du? 709 00:32:52,070 --> 00:32:52,570 Blick? 710 00:32:52,570 --> 00:32:53,280 Lance. 711 00:32:53,280 --> 00:32:54,082 Lance, kom upp. 712 00:32:54,082 --> 00:32:54,790 Trevligt att träffas. 713 00:32:54,790 --> 00:32:56,170 Kom på denna väg. 714 00:32:56,170 --> 00:32:59,940 Så här kan ha en tema bekant för några av er. 715 00:32:59,940 --> 00:33:02,180 Men du ser också att det kan finnas interaktivitet, 716 00:33:02,180 --> 00:33:05,242 där du faktiskt kan vara roll av tecknet flyttar. 717 00:33:05,242 --> 00:33:05,950 Trevligt att träffas. 718 00:33:05,950 --> 00:33:06,470 David. 719 00:33:06,470 --> 00:33:10,464 >> Jag ger dig, Pikachu. 720 00:33:10,464 --> 00:33:12,380 Instruktioner kommer om att komma på skärmen. 721 00:33:12,380 --> 00:33:16,070 Men kort sagt, kommer du att vill fånga den läckra grejer, 722 00:33:16,070 --> 00:33:18,827 och undvika bomberna och andra saker. 723 00:33:18,827 --> 00:33:19,910 Med markörerna helt. 724 00:33:19,910 --> 00:33:21,320 Så tryck på mellanslagstangenten. 725 00:33:21,320 --> 00:33:21,820 -Pikachu. 726 00:33:21,820 --> 00:33:23,480 DAVID J. MALAN: Fånga grejer på vänster, 727 00:33:23,480 --> 00:33:24,938 inte fånga grejer till höger. 728 00:33:24,938 --> 00:33:27,576 729 00:33:27,576 --> 00:34:44,540 >> [MUSIK SPELA] 730 00:34:44,540 --> 00:34:46,332 >> Så en sista här. 731 00:34:46,332 --> 00:34:48,040 Om vi ​​kunde ha en mer volontär här. 732 00:34:48,040 --> 00:34:50,760 Vi trodde att vi skulle återskapa något from-- i den gula shirt-- 733 00:34:50,760 --> 00:34:53,110 från onsdag. 734 00:34:53,110 --> 00:34:54,540 Vad heter du? 735 00:34:54,540 --> 00:34:57,090 Mary, kom upp Mary. 736 00:34:57,090 --> 00:35:01,340 >> Och minns på onsdag vi införde begreppet binära och binära glödlampor. 737 00:35:01,340 --> 00:35:03,930 Detta är faktiskt nu en genomförandet av samma gränssnitt 738 00:35:03,930 --> 00:35:07,360 som vi hade på iPad med ljuset lökar, men här framförs digitalt. 739 00:35:07,360 --> 00:35:11,220 Och snarare än att göra ett stress ball-- trevligt att träffa dig, David. 740 00:35:11,220 --> 00:35:14,600 Vi tog ett par ljus lökar från Cambridge. 741 00:35:14,600 --> 00:35:18,650 >> Om du kan, klicka på dem glödlampor för att slå på och av, 742 00:35:18,650 --> 00:35:29,510 komma med binära representation av säga 256. 743 00:35:29,510 --> 00:35:32,500 Och du kommer att se i mitten, nuvarande stämmer. 744 00:35:32,500 --> 00:35:33,690 Så att man är på. 745 00:35:33,690 --> 00:35:34,810 Så biten längst till vänster är på. 746 00:35:34,810 --> 00:35:36,016 >> MARY: Ja, [OHÖRBAR] 747 00:35:36,016 --> 00:35:39,292 748 00:35:39,292 --> 00:35:41,280 >> DAVID J. MALAN: Tja, så vi har bara-- oh. 749 00:35:41,280 --> 00:35:42,780 Så det här är den 128-kolonn. 750 00:35:42,780 --> 00:35:44,460 Så vi är upp till 128. 751 00:35:44,460 --> 00:35:46,769 Vi fick komma till 256. 752 00:35:46,769 --> 00:35:48,560 Och du kan mixtra på och utanför, no big deal. 753 00:35:48,560 --> 00:35:53,700 Eller så kan du slå det 128 flera gånger om du vill. 754 00:35:53,700 --> 00:35:56,310 >> Okej, bra. 755 00:35:56,310 --> 00:35:58,090 24. 756 00:35:58,090 --> 00:35:59,790 Ja, att få närmare. 757 00:35:59,790 --> 00:36:02,105 Närmare! 758 00:36:02,105 --> 00:36:05,980 Åh, vad är problemet då? 759 00:36:05,980 --> 00:36:07,510 Så vad är problemet? 760 00:36:07,510 --> 00:36:10,040 >> Så vad behöver vi lösa detta problem? 761 00:36:10,040 --> 00:36:11,060 Så vi behöver en annan bit. 762 00:36:11,060 --> 00:36:12,770 Och det är helt rimliga i verkligheten, eller hur? 763 00:36:12,770 --> 00:36:15,800 Om du vill räkna från antalet Ett till två till 3 till fyra till 5, 6, 7, 8, 9 764 00:36:15,800 --> 00:36:18,880 faktiskt rulla över 10, du är kommer att behöva ytterligare en bit. 765 00:36:18,880 --> 00:36:21,240 Så låt oss faktiskt spola tillbaka här och komma upp 766 00:36:21,240 --> 00:36:23,790 with-- det var uppenbarligen tänkt att vara en uppsättning upp. 767 00:36:23,790 --> 00:36:25,590 >> Du kan inte göra 256 med bara en glödlampa. 768 00:36:25,590 --> 00:36:29,290 Så vad sägs om helt enkelt antalet 50? 769 00:36:29,290 --> 00:36:29,977 Nummer 50. 770 00:36:29,977 --> 00:36:34,550 771 00:36:34,550 --> 00:36:35,100 Utmärkt. 772 00:36:35,100 --> 00:36:39,050 En stor applåd för Mary och hennes samt. 773 00:36:39,050 --> 00:36:41,840 Tack. 774 00:36:41,840 --> 00:36:45,570 >> Så detta topic-- avsikt som att was-- faktiskt kommer att återkomma. 775 00:36:45,570 --> 00:36:50,020 Det största värde som du kan representera med åtta bitar, eller ett byte, 776 00:36:50,020 --> 00:36:51,750 är verkligen 256. 777 00:36:51,750 --> 00:36:55,770 Men inte om du startar räknat från 0, som vi 778 00:36:55,770 --> 00:36:58,060 verkar hålla göra genom att ha alla dessa bitar off. 779 00:36:58,060 --> 00:37:01,530 Men nu ska vi dyka in i den underliggande genomförandet av denna miljö, 780 00:37:01,530 --> 00:37:03,200 och retas isär några av dessa idéer. 781 00:37:03,200 --> 00:37:06,350 >> Så vi i ett ögonblick håller på att se en några olika programmering fundamenta. 782 00:37:06,350 --> 00:37:08,080 Den första som vi kallar uttalande. 783 00:37:08,080 --> 00:37:09,360 Typ av verb, om ni så vill. 784 00:37:09,360 --> 00:37:09,960 Handlingar. 785 00:37:09,960 --> 00:37:11,180 Saker som bör göras. 786 00:37:11,180 --> 00:37:13,430 >> Och i ett ögonblick ser du block som ser ut så här. 787 00:37:13,430 --> 00:37:14,940 Säg "Hej världen", till exempel. 788 00:37:14,940 --> 00:37:16,330 Eller vänta en sekund. 789 00:37:16,330 --> 00:37:17,834 Eller spela upp ljud jamar. 790 00:37:17,834 --> 00:37:20,500 Och faktiskt miljön i som vi kommer att göra detta 791 00:37:20,500 --> 00:37:21,610 kallas Scratch. 792 00:37:21,610 --> 00:37:25,060 >> Och om jag dra upp Scratch utan förladdning någon faktisk kod, 793 00:37:25,060 --> 00:37:27,830 låt oss ta en snabb titt på detta användargränssnitt, så att säga. 794 00:37:27,830 --> 00:37:29,730 Kontrollerna som vi interagerar. 795 00:37:29,730 --> 00:37:32,840 På toppen kvar här i skärm, under menyerna, 796 00:37:32,840 --> 00:37:34,650 vi har på scenen, så att säga. 797 00:37:34,650 --> 00:37:36,550 Så Scratch är vad vi kallar Sprite. 798 00:37:36,550 --> 00:37:37,520 Det är ett tecken. 799 00:37:37,520 --> 00:37:40,660 >> Och han kan styras av skriva program mot honom. 800 00:37:40,660 --> 00:37:43,950 Och han kommer att kunna flytta upp och ner och vänster och höger i den här miljön, 801 00:37:43,950 --> 00:37:46,075 inte bara genom att flytta mus, men programmatiskt. 802 00:37:46,075 --> 00:37:48,930 Jag kan berätta för honom gå rätt, gå vänster, uppåt, nedåt eller liknande. 803 00:37:48,930 --> 00:37:51,440 Och jag kan presentera andra sprites eller tecken samt. 804 00:37:51,440 --> 00:37:54,616 >> Faktiskt på botten här är där ser du listan med sprites. 805 00:37:54,616 --> 00:37:56,865 Just nu, jag har bara en, men jag kan skapa mer, 806 00:37:56,865 --> 00:37:58,880 och de kommer att visas exakt där nere. 807 00:37:58,880 --> 00:38:02,630 Så om du spola tillbaka för ett ögonblick, som Oscartime-- till exempel, Oscar, 808 00:38:02,630 --> 00:38:04,590 till vänster, papperskorgen kan, var en sprite. 809 00:38:04,590 --> 00:38:07,450 Och saken i mitten, papperskorgen, var en annan sprite. 810 00:38:07,450 --> 00:38:09,300 Och komposten var en annan sprite. 811 00:38:09,300 --> 00:38:11,790 Och varje bit av sopor eller återvinningsbart avfall 812 00:38:11,790 --> 00:38:14,590 som föll från himlen är också en sprite, som var och en 813 00:38:14,590 --> 00:38:16,150 programmerades individuellt. 814 00:38:16,150 --> 00:38:17,040 >> How do you programmerar? 815 00:38:17,040 --> 00:38:20,180 Tja, här borta till höger sidan är det skript området. 816 00:38:20,180 --> 00:38:22,930 Och det är där vi kan Dra och släpp pusselbitar. 817 00:38:22,930 --> 00:38:26,066 I en vecka, det kommer att bli där vi ekvivalent skriva kod 818 00:38:26,066 --> 00:38:28,940 med mer av ett tangentbord, men för idag kommer att dra och släppa 819 00:38:28,940 --> 00:38:31,680 pusselbitar, de paletter som kan alla 820 00:38:31,680 --> 00:38:33,190 hittas här just i mitten. 821 00:38:33,190 --> 00:38:35,190 Ja, i mitten här finns en hel drös 822 00:38:35,190 --> 00:38:37,910 kategorier av pussel bitar eller block. 823 00:38:37,910 --> 00:38:42,500 Man har i samband med rörelse, titta, ljud, en penna går upp och ner, 824 00:38:42,500 --> 00:38:43,860 uppgifter, händelser styra. 825 00:38:43,860 --> 00:38:45,654 Inte helt säker ännu vad alla dessa betyder, 826 00:38:45,654 --> 00:38:47,820 men du ser att de har varit snyggt kategoriseras. 827 00:38:47,820 --> 00:38:50,680 Och för att skriva ett program i Scratch, låt oss göra just detta. 828 00:38:50,680 --> 00:38:53,480 >> Jag ska börja i Händelser och dra detta här. 829 00:38:53,480 --> 00:38:55,470 När grön flagga klickade. 830 00:38:55,470 --> 00:38:56,704 Nu varför den? 831 00:38:56,704 --> 00:38:59,120 Väl påminna om att våra volontärer kom upp, det första jag 832 00:38:59,120 --> 00:39:02,017 eller de gjorde var att klicka på den gröna flaggan i övre högra hörnet. 833 00:39:02,017 --> 00:39:03,600 Och det betyder bara starta programmet. 834 00:39:03,600 --> 00:39:06,560 >> Så när den händelse inträffar, Vad vill jag göra? 835 00:39:06,560 --> 00:39:10,070 Jag kommer att gå under Looks, och jag kommer att göra ", säger hej." 836 00:39:10,070 --> 00:39:14,000 Och jag kommer att ändra på detta och säga något i stil med "Hej Yale." 837 00:39:14,000 --> 00:39:16,970 Och nu ska jag för att zooma ut, klicka på den gröna flaggan, 838 00:39:16,970 --> 00:39:19,050 och voila, har jag skrivit ett program. 839 00:39:19,050 --> 00:39:20,990 Det är inte så spännande ännu, men detta 840 00:39:20,990 --> 00:39:23,195 är precis där varje av dessa författare börjat, 841 00:39:23,195 --> 00:39:25,740 båda med Pikachu, och binära glödlampor Oscartime, 842 00:39:25,740 --> 00:39:26,890 och så många fler exempel. 843 00:39:26,890 --> 00:39:29,150 >> Du börjar super enkel, och då du börjar skikt, 844 00:39:29,150 --> 00:39:31,046 och lägga på funktioner och funktionalitet. 845 00:39:31,046 --> 00:39:32,920 Så vad är dessa skikt kommer att bestå av? 846 00:39:32,920 --> 00:39:36,086 Tja, utöver uttalanden, vi ska också har saker som är lite mer fancily 847 00:39:36,086 --> 00:39:38,910 kallas Boolean uttryck, efter någon som heter Bool. 848 00:39:38,910 --> 00:39:42,820 Och ett booleskt uttryck är helt enkelt en uttryck som är antingen sant eller falskt, 849 00:39:42,820 --> 00:39:45,740 ja eller nej, 1 eller 0. 850 00:39:45,740 --> 00:39:47,480 >> Alla motpoler som detta. 851 00:39:47,480 --> 00:39:48,902 Det är antingen sant eller inte. 852 00:39:48,902 --> 00:39:51,360 Men vi kommer också att se de som kan se ut så här. 853 00:39:51,360 --> 00:39:52,925 Så till exempel, är musen ner? 854 00:39:52,925 --> 00:39:54,550 De är typ av frågor, om ni så vill. 855 00:39:54,550 --> 00:39:57,650 >> Musen är antingen ner, sant eller det är inte falska. 856 00:39:57,650 --> 00:39:59,990 1 eller 0, om man så vill, tenderar att vara kartläggningen. 857 00:39:59,990 --> 00:40:01,740 Sant är 1, är falsk 0. 858 00:40:01,740 --> 00:40:03,740 Väl vad om mindre än detta? 859 00:40:03,740 --> 00:40:05,400 Eller så är det mindre än så här? 860 00:40:05,400 --> 00:40:06,650 Det är en fråga av slag. 861 00:40:06,650 --> 00:40:09,140 >> Och om du lägger två siffror i det, antingen x 862 00:40:09,140 --> 00:40:12,010 kommer att vara mindre än y eller lika med y, eller större än y, 863 00:40:12,010 --> 00:40:14,635 men detta block får vi se, är bara kommer att svara på frågan, 864 00:40:14,635 --> 00:40:15,810 är detta mindre än så? 865 00:40:15,810 --> 00:40:17,650 Vi kan också se ut ungefär så här. 866 00:40:17,650 --> 00:40:18,790 Touching muspekare. 867 00:40:18,790 --> 00:40:21,610 Så i Scratch, kan du be Frågan är Sprite 868 00:40:21,610 --> 00:40:22,800 röra muspekaren? 869 00:40:22,800 --> 00:40:26,040 Andra ord är markör svävar över locket, eller motsvarande? 870 00:40:26,040 --> 00:40:28,100 >> Vi får se Anding saker tillsammans. 871 00:40:28,100 --> 00:40:30,970 Du kan ställa två frågor, och se till att de båda 872 00:40:30,970 --> 00:40:34,920 ge dig ja eller riktiga svar innan fattar ett beslut att göra något. 873 00:40:34,920 --> 00:40:36,709 Men hur gör du beslut? 874 00:40:36,709 --> 00:40:38,000 Tja, vi har dessa förutsättningar. 875 00:40:38,000 --> 00:40:40,041 >> Och vi såg detta i vår exempel på telefonboken. 876 00:40:40,041 --> 00:40:41,900 Funderar du på att vänster eller rätt för Mike Smith. 877 00:40:41,900 --> 00:40:45,140 Och i det skick du göra något potentiellt, 878 00:40:45,140 --> 00:40:47,240 om ett booleskt uttryck är sant. 879 00:40:47,240 --> 00:40:48,720 >> Och faktiskt, märker formerna nu. 880 00:40:48,720 --> 00:40:52,250 Det är det här platshållare just nu på overhead där vi kan fit-- 881 00:40:52,250 --> 00:40:54,532 om jag spola tillbaka en slide-- den formen. 882 00:40:54,532 --> 00:40:55,740 Det är inte riktigt samma storlek. 883 00:40:55,740 --> 00:40:58,400 Och faktiskt, ser du att Scratch ändrar storlek saker dynamiskt 884 00:40:58,400 --> 00:41:01,479 att placera pusselbitar, men form är vad som är viktigt. 885 00:41:01,479 --> 00:41:03,270 Denna sak ser ut det, och ja det är 886 00:41:03,270 --> 00:41:05,410 ungefär samma form som borde passa in där. 887 00:41:05,410 --> 00:41:09,520 Och om vi vill göra något detta sätt eller så, om annars, 888 00:41:09,520 --> 00:41:12,080 vi har detta pussel bit i Scratch också. 889 00:41:12,080 --> 00:41:17,450 >> Nu antar att du ville göra om, annars om, annars. 890 00:41:17,450 --> 00:41:20,120 Med andra ord, en tre-vägs vägskäl. 891 00:41:20,120 --> 00:41:22,656 Och vad kan du göra bara genom att kasta en blick på det här? 892 00:41:22,656 --> 00:41:25,030 Jag kan ta den här pusselbit, och det inte verkar passa, 893 00:41:25,030 --> 00:41:27,670 men återigen, är Scratch går ändra storlek bra för oss. 894 00:41:27,670 --> 00:41:29,940 Jag kunde börja lager dessa saker tillsammans. 895 00:41:29,940 --> 00:41:32,900 >> Så nu har jag en trevägs gaffel om detta är sant, gör så här. 896 00:41:32,900 --> 00:41:36,560 Annars om det andra är sant, gå på detta sätt, annars går det på annat sätt. 897 00:41:36,560 --> 00:41:39,200 Och i The Muppet Movie, den gaffel i vägen, så att säga, 898 00:41:39,200 --> 00:41:42,610 mellan Yale eller Stanford, var exakt det, bara två villkor. 899 00:41:42,610 --> 00:41:45,190 Antingen gå på detta sätt, annars gå den vägen. 900 00:41:45,190 --> 00:41:46,940 >> Tja, öglor också existera i programmering. 901 00:41:46,940 --> 00:41:49,100 Och vi har dessa redan används klass och i pseudokod kod, 902 00:41:49,100 --> 00:41:51,060 och säkert i dessa Skrap program alltid. 903 00:41:51,060 --> 00:41:53,730 Scratch har denna pusselbit som kommer bara låta dig göra något för evigt. 904 00:41:53,730 --> 00:41:55,688 Och ibland vill att göra något för evigt. 905 00:41:55,688 --> 00:41:58,810 Det är inte nödvändigtvis en bugg, det är eftersom du vill ha en klocka för att hålla igång, 906 00:41:58,810 --> 00:42:00,730 eller ett spel för att fortsätta spela. 907 00:42:00,730 --> 00:42:04,800 Eller så kan du ange ett begränsat antal steg, som med denna upprepning blocket här, 908 00:42:04,800 --> 00:42:06,550 som kommer att upprepa något 10 gånger. 909 00:42:06,550 --> 00:42:08,560 Vi kan sätta variabler, kommer vi snart se. 910 00:42:08,560 --> 00:42:12,300 Och med variabler, liknande i anden till algebra, som X, eller y eller z. 911 00:42:12,300 --> 00:42:16,390 Det är något symboliskt som kan lagra visst värde, viss bit information, 912 00:42:16,390 --> 00:42:18,320 att du kanske vill att komma ihåg till senare. 913 00:42:18,320 --> 00:42:21,080 >> Bästa exemplet på detta kan vara ett spel där du har en poäng, 914 00:42:21,080 --> 00:42:22,080 liknande i Pikachu. 915 00:42:22,080 --> 00:42:25,180 Hur många bitar av kakan och allt har du fånga? 916 00:42:25,180 --> 00:42:29,340 Tja, kan det vara en variabel kallas betyget som börjar på 0. 917 00:42:29,340 --> 00:42:32,400 Och sedan varje gång vi fångade en bit kaka eller godis, eller liknande, 918 00:42:32,400 --> 00:42:33,720 det blir ökas. 919 00:42:33,720 --> 00:42:35,990 Det läggs till en i taget. 920 00:42:35,990 --> 00:42:38,450 Och så en variabel lagrar en bit information så. 921 00:42:38,450 --> 00:42:41,450 Sedan finns matriser, och vi kommer tillbaka till dessa i en vecka eller två tid, 922 00:42:41,450 --> 00:42:44,900 men en array är ungefär som en lager eller en axelväska, inuti 923 00:42:44,900 --> 00:42:46,940 varav kan du lägga virtuella saker. 924 00:42:46,940 --> 00:42:49,852 Det gör att du kan lagra mer än en bit av information. 925 00:42:49,852 --> 00:42:51,810 Och det kan vara användbart om i spelet, du är 926 00:42:51,810 --> 00:42:53,630 sorts gå runt plocka upp saker. 927 00:42:53,630 --> 00:42:55,879 Och kanske du vill behålla alla dessa bitar av kakan 928 00:42:55,879 --> 00:42:58,260 runt, och inte bara äta dem en efter en. 929 00:42:58,260 --> 00:43:00,010 Och så finns det en snyggare konstrukt vi ska 930 00:43:00,010 --> 00:43:02,932 komma till kallas funktioner eller procedurer. 931 00:43:02,932 --> 00:43:04,640 Och även om vi tänker snabbare här, vi ska 932 00:43:04,640 --> 00:43:07,345 se att dessa är en mycket naturlig lösning på problem 933 00:43:07,345 --> 00:43:08,470 att vi ska möte. 934 00:43:08,470 --> 00:43:10,220 Eftersom våra program startar blir större vi ska 935 00:43:10,220 --> 00:43:12,640 börja märka mönster den kod som vi skriver, 936 00:43:12,640 --> 00:43:14,556 pusselbitar vi är att dra och släppa. 937 00:43:14,556 --> 00:43:18,240 Och så fort du märker själv gör något om och om igen, eller ännu värre 938 00:43:18,240 --> 00:43:21,400 kopiera och klistra in programmering kod som du har skrivit, 939 00:43:21,400 --> 00:43:23,612 det är förmodligen en möjlighet att faktor ut 940 00:43:23,612 --> 00:43:25,820 vad du håller kopiering och klistra in, och sätta det 941 00:43:25,820 --> 00:43:27,430 i något som kallas en "funktion." 942 00:43:27,430 --> 00:43:29,690 Men mer om dem i mycket mer i detalj inom kort. 943 00:43:29,690 --> 00:43:31,314 >> Och sedan finns det ännu snyggare funktioner. 944 00:43:31,314 --> 00:43:34,100 För de av er mer bekväm, eller ta APCS eller motsvarande, 945 00:43:34,100 --> 00:43:37,600 Skrap faktiskt stöder aktiviteterna som trådar och evenemang och mycket mer. 946 00:43:37,600 --> 00:43:39,840 Så inse att det har en ganska högt i tak, 947 00:43:39,840 --> 00:43:42,540 även om det är också mycket i stort sett tillgängliga för folks 948 00:43:42,540 --> 00:43:44,460 som aldrig har programmerat tidigare. 949 00:43:44,460 --> 00:43:47,130 Så ja, låt oss ta en titt vid ett enkelt program eller två. 950 00:43:47,130 --> 00:43:49,920 >> Vi har redan tittat på hur vi kan säga hej med Scratch. 951 00:43:49,920 --> 00:43:52,800 Låt mig gå vidare och öppna upp en lite mer intressant program 952 00:43:52,800 --> 00:43:54,100 som jag skrev i förväg. 953 00:43:54,100 --> 00:43:56,430 Och detta ens kallas Pet katten. 954 00:43:56,430 --> 00:43:58,954 Alla dessa program kommer att tillgänglig på CS50 hemsida. 955 00:43:58,954 --> 00:43:59,870 Faktum är redan där. 956 00:43:59,870 --> 00:44:01,190 >> Så du kan ladda ner dem och leka med dem, 957 00:44:01,190 --> 00:44:03,850 och med Problem Set 0, vilket är också på kursens hemsida, 958 00:44:03,850 --> 00:44:05,516 du uppmuntras att gå igenom dessa. 959 00:44:05,516 --> 00:44:07,820 Och dessutom har vi en Antalet walk-through videoklipp 960 00:44:07,820 --> 00:44:10,951 på nätet där jag och CS50 team verkligen gå 961 00:44:10,951 --> 00:44:14,200 genom var och en av dessa exempel på en mycket långsammare takt, en mycket snabb forwardable, 962 00:44:14,200 --> 00:44:18,530 eller återlindningsbar takt, så att du kan gå genom dessa på din fritid också. 963 00:44:18,530 --> 00:44:20,330 Så här är Scratch till vänster. 964 00:44:20,330 --> 00:44:22,920 Här är ett program till höger att jag har redan pre-made. 965 00:44:22,920 --> 00:44:24,880 Så låt mig in på den här. 966 00:44:24,880 --> 00:44:28,780 Och kan någon på engelska, att veta vad du vet, bara från nu som 967 00:44:28,780 --> 00:44:31,650 till hur Scratch verk, typ av säga i en engelsk fras eller mening, 968 00:44:31,650 --> 00:44:35,450 vad gör detta program tydligen göra? 969 00:44:35,450 --> 00:44:36,836 >> Ja, i orange skjorta. 970 00:44:36,836 --> 00:44:40,804 >> PUBLIK: [OHÖRBAR] 971 00:44:40,804 --> 00:44:41,796 972 00:44:41,796 --> 00:44:44,980 >> DAVID J. MALAN: Ja, om din markören är på Scratch katten, 973 00:44:44,980 --> 00:44:46,220 spela en jama ljud. 974 00:44:46,220 --> 00:44:47,870 Men lägg märke till hur vi uttrycker det. 975 00:44:47,870 --> 00:44:49,980 Det finns uppenbarligen en loop där för evigt. 976 00:44:49,980 --> 00:44:53,000 Och så finns det en skick, om uttrycket. 977 00:44:53,000 --> 00:44:55,090 Och kollektivt, vad de betyder? 978 00:44:55,090 --> 00:44:57,210 Innebär det att programmet är bara alltid igång, 979 00:44:57,210 --> 00:44:59,510 och det är bara alltid väntar och titta på och lyssna 980 00:44:59,510 --> 00:45:01,730 för mig att flytta musen över katten. 981 00:45:01,730 --> 00:45:04,810 >> Eftersom varje gång jag gör det, som du föreslår, det kommer att göra detta. 982 00:45:04,810 --> 00:45:06,475 Låt mig börja programmet. 983 00:45:06,475 --> 00:45:08,350 Ingenting verkar vara händer, men lägg märke till hur 984 00:45:08,350 --> 00:45:10,152 det är markerat nu i en gul linje. 985 00:45:10,152 --> 00:45:11,360 Det betyder bara att det är igång. 986 00:45:11,360 --> 00:45:13,770 Och eftersom det finns en evigt loop, det är fortfarande igång. 987 00:45:13,770 --> 00:45:19,610 >> Så låt mig flytta min markören över Scratch. [JAMA] [JAMA] Och om jag flyttar bort det, 988 00:45:19,610 --> 00:45:25,444 [MEOW] nu slutar, men programmets fortfarande körs. [MEOW] Och så bedårande. 989 00:45:25,444 --> 00:45:28,550 [MEOW] Så låt oss öppna upp något mer avancerad 990 00:45:28,550 --> 00:45:32,620 Exempelvis kallas inte klappa katten. 991 00:45:32,620 --> 00:45:35,805 >> Och nu ska vi se vad händer här. [JAMA] jama. 992 00:45:35,805 --> 00:45:39,297 Så det är lite på autopilot, om ni så vill. 993 00:45:39,297 --> 00:45:39,880 --pet katten. 994 00:45:39,880 --> 00:45:42,820 Jag undrar varför. 995 00:45:42,820 --> 00:45:45,389 [ROAR] [MEOW] Så hur gjorde detta arbete? 996 00:45:45,389 --> 00:45:47,930 Tja, kan du typ av skäl genom det intuitivt, kanske. 997 00:45:47,930 --> 00:45:49,346 >> Men låt oss titta på den faktiska koden. 998 00:45:49,346 --> 00:45:51,819 Så återigen, när den gröna flaggan klickas, gör det för evigt. 999 00:45:51,819 --> 00:45:53,110 Vad vill du göra för evigt? 1000 00:45:53,110 --> 00:45:56,150 Tja, om röra musen pekare, sedan spela 1001 00:45:56,150 --> 00:46:00,270 ett ljud som tydligen heter Lion 5, det är insidan av detta projekt, annars 1002 00:46:00,270 --> 00:46:03,010 spela upp ljud jamar, och sedan vänta två sekunder, så 1003 00:46:03,010 --> 00:46:04,510 att det inte jama oavbrutet. 1004 00:46:04,510 --> 00:46:07,650 I själva verket kan du mycket snabbt börja att irritera dig själv och dina rumskamrater. 1005 00:46:07,650 --> 00:46:08,690 >> Låt oss ta detta block. 1006 00:46:08,690 --> 00:46:10,580 Och lägg märke till vad som är trevligt om Scratch. 1007 00:46:10,580 --> 00:46:13,070 Saker bara typ av drag och släpp och förregling. 1008 00:46:13,070 --> 00:46:14,980 Så återigen, växer det till fylla vad du vill. 1009 00:46:14,980 --> 00:46:20,118 Men om jag tar bort det, och sedan hit play, [DATOR BLIP SOUND] 1010 00:46:20,118 --> 00:46:22,904 >> --den är typ av snubbla över själv, eftersom det är bokstavligen 1011 00:46:22,904 --> 00:46:23,820 gör vad jag säger. 1012 00:46:23,820 --> 00:46:27,080 Det säger alltid spela ljud, men Jag tänker inte ge det en chans att avsluta. 1013 00:46:27,080 --> 00:46:28,205 Och så det skulle vara en bugg. 1014 00:46:28,205 --> 00:46:30,700 Och det är därför vi hade den här saken här nu. 1015 00:46:30,700 --> 00:46:34,030 Så låt oss faktiskt börja från scratch-- slags vits något intended-- 1016 00:46:34,030 --> 00:46:36,450 där vi nu har katten flytta. 1017 00:46:36,450 --> 00:46:38,130 >> Så jag kommer att göra detta i farten. 1018 00:46:38,130 --> 00:46:40,910 Jag kommer att zooma in här, bara att få mig igång på händelser. 1019 00:46:40,910 --> 00:46:42,000 Och grön flagga klickade. 1020 00:46:42,000 --> 00:46:43,410 Och det finns andra sätt att starta skript. 1021 00:46:43,410 --> 00:46:44,920 Vi kommer att hålla det enkelt här. 1022 00:46:44,920 --> 00:46:48,049 >> Och nu ska jag gå framåt och gå under kontroll. 1023 00:46:48,049 --> 00:46:50,590 Och återigen, om du glömmer där saker, bara klicka runt, 1024 00:46:50,590 --> 00:46:52,048 och så småningom kommer du att hitta dem igen. 1025 00:46:52,048 --> 00:46:53,680 Så jag vill alltid göra vad? 1026 00:46:53,680 --> 00:46:58,650 Jag vill använda rörelseblock som jag vet existerar, flytta 10 steg. 1027 00:46:58,650 --> 00:47:02,016 >> Så låt oss se vad som händer här om jag spelar det här spelet. 1028 00:47:02,016 --> 00:47:03,390 Tack och lov är det inte går för långt. 1029 00:47:03,390 --> 00:47:05,190 Jag kan fortfarande slags gripa honom i svansen och dra tillbaka honom. 1030 00:47:05,190 --> 00:47:07,860 Men programmet är fortfarande igång, så han är ganska kämpa mig. 1031 00:47:07,860 --> 00:47:10,870 Men det skulle vara typ av trevligt om jag villkorligt åtgärda detta i kod. 1032 00:47:10,870 --> 00:47:12,800 >> Eftersom detta är inte-- faktiskt detta är verkligen 1033 00:47:12,800 --> 00:47:15,770 inte ett roligt spel för alla oavsett ålder. 1034 00:47:15,770 --> 00:47:18,915 Så låt oss försöka åtgärda detta genom att med någon typ av förhållanden. 1035 00:47:18,915 --> 00:47:21,670 Så jag kommer att gå under Kontroll och sedan om. 1036 00:47:21,670 --> 00:47:22,660 Jag gillar den här idén. 1037 00:47:22,660 --> 00:47:27,470 Så efter att ha flyttat 10 steg, if-- låt mig känna var jag är. 1038 00:47:27,470 --> 00:47:30,799 Jag kommer att gå under Sensing, och då ser jag kan gå hit. 1039 00:47:30,799 --> 00:47:31,840 ro till form matcherna. 1040 00:47:31,840 --> 00:47:34,380 >> Storleken spelar inte, men det är kommer att växa för att fylla. 1041 00:47:34,380 --> 00:47:35,984 Och nu detta är en liten meny. 1042 00:47:35,984 --> 00:47:38,650 Och nu mus pointer-- jag inte vill musen, jag vill kanten. 1043 00:47:38,650 --> 00:47:41,700 Så Scratch är smart nog att veta när en sprite vidrör kanten. 1044 00:47:41,700 --> 00:47:44,360 Vad vill jag honom att faktiskt göra? 1045 00:47:44,360 --> 00:47:46,025 >> Låt mig gå vidare och ändra rörelse. 1046 00:47:46,025 --> 00:47:46,940 Du vet vad? 1047 00:47:46,940 --> 00:47:49,242 Jag kommer att ha honom vända. 1048 00:47:49,242 --> 00:47:51,200 Så vid 15 grader är inte verkligen kommer att hjälpa mig. 1049 00:47:51,200 --> 00:47:53,990 Jag vill att han ska vända och gå åt andra hållet. 1050 00:47:53,990 --> 00:47:57,740 >> Så låt oss se vad som händer här, om jag slog spela nu. 1051 00:47:57,740 --> 00:48:01,520 OK, typ av dum ut, men Det gör precis vad jag sa. 1052 00:48:01,520 --> 00:48:03,540 Och det är att rotera hela spriten. 1053 00:48:03,540 --> 00:48:04,900 Nu visar det sig att jag kan fixa detta. 1054 00:48:04,900 --> 00:48:06,691 Och jag visste inte hur att åtgärda detta först. 1055 00:48:06,691 --> 00:48:09,190 Jag typ var tvungen att futz runt och se det bästa sättet att göra detta. 1056 00:48:09,190 --> 00:48:12,630 Men om jag går att-- låt oss se, rörelse. 1057 00:48:12,630 --> 00:48:14,050 Åh, jag hittade det här. 1058 00:48:14,050 --> 00:48:15,660 Egentligen Ställ Rotation stil. 1059 00:48:15,660 --> 00:48:18,431 Vänster, höger, eller inte rotera eller runt om. 1060 00:48:18,431 --> 00:48:19,930 Och det visar sig att det är vad jag vill. 1061 00:48:19,930 --> 00:48:22,920 Och jag kommer att sätta detta inte min slinga, eftersom jag inte behöver ställa in 1062 00:48:22,920 --> 00:48:24,487 rotations stil flera gånger. 1063 00:48:24,487 --> 00:48:27,570 Jag ska lägga den på toppen av det här programmet så att det blir in en gång, 1064 00:48:27,570 --> 00:48:28,670 och sedan minns. 1065 00:48:28,670 --> 00:48:30,340 Och nu ska jag prova det här igen. 1066 00:48:30,340 --> 00:48:32,520 Låt mig stoppa programmet. 1067 00:48:32,520 --> 00:48:34,050 >> Och nu när fast att fel. 1068 00:48:34,050 --> 00:48:35,700 Så jag iterativt förbättra på detta. 1069 00:48:35,700 --> 00:48:37,900 Programmet blir en lite mer komplicerat och större, 1070 00:48:37,900 --> 00:48:40,810 men jag tar barnet steg så att säga, och små bites av problemet 1071 00:48:40,810 --> 00:48:42,010 att få det bättre och bättre. 1072 00:48:42,010 --> 00:48:43,260 Men även detta är typ av Lama. 1073 00:48:43,260 --> 00:48:43,900 >> Du vet vad? 1074 00:48:43,900 --> 00:48:49,860 Skulle be någon med en riktigt bra, fruktansvärda röst vilja komma upp? 1075 00:48:49,860 --> 00:48:51,210 Någon med en röst. 1076 00:48:51,210 --> 00:48:54,070 1077 00:48:54,070 --> 00:48:54,570 Eh, ja. 1078 00:48:54,570 --> 00:48:55,550 Kom upp. 1079 00:48:55,550 --> 00:48:57,990 I den gröna tröjan. 1080 00:48:57,990 --> 00:49:01,530 >> Så visar det sig att det finns något annat kul saker, estetik och låter lika. 1081 00:49:01,530 --> 00:49:02,290 Här är jamar. 1082 00:49:02,290 --> 00:49:04,000 Jag klickar på fliken Ljud. 1083 00:49:04,000 --> 00:49:08,730 [JAMA] Det är jamar. [JAMA] [JAMA] [JAMA] --actually rekord något 1084 00:49:08,730 --> 00:49:10,310 vår egen här. 1085 00:49:10,310 --> 00:49:13,120 >> Så låt oss göra just detta. 1086 00:49:13,120 --> 00:49:17,670 Istället för att använda denna katt ljud, låt oss gå vidare här, och vad heter du? 1087 00:49:17,670 --> 00:49:18,850 Nick, trevligt att träffa dig. 1088 00:49:18,850 --> 00:49:19,350 Det är David. 1089 00:49:19,350 --> 00:49:21,474 Så i ett ögonblick, jag ska att slå på inspelningsknappen. 1090 00:49:21,474 --> 00:49:23,240 Och om du kan bara skrika in den bärbara datorn, 1091 00:49:23,240 --> 00:49:26,140 "ouch" som om du bara gick in i väggen, 1092 00:49:26,140 --> 00:49:28,180 som kommer att vara mycket uppskattat. 1093 00:49:28,180 --> 00:49:29,660 1, 2. 1094 00:49:29,660 --> 00:49:31,470 >> NICK: Ouch! 1095 00:49:31,470 --> 00:49:32,470 DAVID J. MALAN: Awesome. 1096 00:49:32,470 --> 00:49:34,410 Och nu kan göra lite redigering här. 1097 00:49:34,410 --> 00:49:35,910 Kommer att bli av med de lugnaste delarna. 1098 00:49:35,910 --> 00:49:37,000 Och jag tror det är bra. 1099 00:49:37,000 --> 00:49:37,690 Tack så mycket. 1100 00:49:37,690 --> 00:49:38,315 >> NICK: Pleasure. 1101 00:49:38,315 --> 00:49:43,277 1102 00:49:43,277 --> 00:49:45,110 DAVID J. MALAN: Jag har bara döptes den "ouch" 1103 00:49:45,110 --> 00:49:46,901 men nu ska jag gå tillbaka till mina manus. 1104 00:49:46,901 --> 00:49:49,810 Och meddelande finns det verkligen ljudet här. 1105 00:49:49,810 --> 00:49:53,520 Och jag kommer att gå vidare och spela upp ljud ouch, 1106 00:49:53,520 --> 00:49:56,991 och jag kommer att göra det om det röra endast kanterna. 1107 00:49:56,991 --> 00:49:58,740 Och sedan kommer jag att har det vända. 1108 00:49:58,740 --> 00:50:00,250 Så låt oss se vad som händer här. 1109 00:50:00,250 --> 00:50:01,728 Låt oss gå helskärm. 1110 00:50:01,728 --> 00:50:02,394 [VIDEOAVSPELNING] 1111 00:50:02,394 --> 00:50:03,790 -Ouch! 1112 00:50:03,790 --> 00:50:05,290 Ouch! 1113 00:50:05,290 --> 00:50:06,790 Ouch! 1114 00:50:06,790 --> 00:50:07,790 Ouch! 1115 00:50:07,790 --> 00:50:09,160 Ouch! 1116 00:50:09,160 --> 00:50:10,780 Ouch! 1117 00:50:10,780 --> 00:50:11,587 Ouch! 1118 00:50:11,587 --> 00:50:12,086 Ouch! 1119 00:50:12,086 --> 00:50:12,492 >> [END SPELA] 1120 00:50:12,492 --> 00:50:14,490 >> DAVID J. MALAN: Så du inser att vi får lite tur. 1121 00:50:14,490 --> 00:50:17,110 Jag kommer att ha honom flytta som 100 steg i taget. 1122 00:50:17,110 --> 00:50:21,790 Effekten av vilken nu kommer att be-- [dator glitch SOUND] Så 1123 00:50:21,790 --> 00:50:22,490 inom rimliga gränser. 1124 00:50:22,490 --> 00:50:25,470 Så en möjlighet att förfina det ytterligare om vi verkligen vill. 1125 00:50:25,470 --> 00:50:27,340 >> Så nu ska vi presentera ett annat koncept. 1126 00:50:27,340 --> 00:50:30,660 Att låta mig gå in i en som heter Räkna Får och användning något 1127 00:50:30,660 --> 00:50:31,610 kallas en variabel. 1128 00:50:31,610 --> 00:50:34,700 Detta är en bedårande liten får, och Jag har ändrat hans dräkt så att säga. 1129 00:50:34,700 --> 00:50:37,450 Så även om standard är en katt, kan du ladda upp, du kan rita, 1130 00:50:37,450 --> 00:50:40,020 du kan göra ett obegränsat antal tecken på din sprite. 1131 00:50:40,020 --> 00:50:43,740 Här är ett program som är kommer att göra vad på engelska? 1132 00:50:43,740 --> 00:50:47,110 >> Baserat igen på precis vad du vet nu. 1133 00:50:47,110 --> 00:50:48,230 Vad är det här programmet göra? 1134 00:50:48,230 --> 00:50:50,740 1135 00:50:50,740 --> 00:50:53,500 Ja, det kommer att räknas. 1136 00:50:53,500 --> 00:50:55,842 Ett nummer i taget. 1137 00:50:55,842 --> 00:50:57,550 Vi har uppenbarligen har denna uppsättning räknare. 1138 00:50:57,550 --> 00:50:59,380 >> Jag vet inte vad det är, men kanske är det en variabel. 1139 00:50:59,380 --> 00:51:00,740 Det är bara en container, x eller y. 1140 00:51:00,740 --> 00:51:04,290 Men ordet räknaren är mer beskrivande än matematiker x eller y. 1141 00:51:04,290 --> 00:51:06,560 Så vi kan använda engelska ord för saker. 1142 00:51:06,560 --> 00:51:08,490 Evigt, betyder bara hålla på så här. 1143 00:51:08,490 --> 00:51:10,020 >> Säg räknare. 1144 00:51:10,020 --> 00:51:11,270 Nu var kom det ifrån? 1145 00:51:11,270 --> 00:51:13,240 Tja, visar det sig att disk är en variabel. 1146 00:51:13,240 --> 00:51:15,645 Så det är bara en annan pussel lappar mig skapade i förväg. 1147 00:51:15,645 --> 00:51:18,020 Och även om det händer inte att vara samma form här, 1148 00:51:18,020 --> 00:51:20,540 normalt du skulle säga något liknande hello här. 1149 00:51:20,540 --> 00:51:23,610 >> Du kan också dra en variabel så att det är vad oss ​​komma sagt. 1150 00:51:23,610 --> 00:51:26,170 Då ska jag vänta på en andra, jag ändra räknaren med ett, 1151 00:51:26,170 --> 00:51:27,940 uppräkning det genom att lägga ett. 1152 00:51:27,940 --> 00:51:32,407 Så att nettoeffekten är denna förtjusande räkna får. 1153 00:51:32,407 --> 00:51:33,615 Fast han räknar sig själv. 1154 00:51:33,615 --> 00:51:36,642 1155 00:51:36,642 --> 00:51:38,350 Nu är det mycket snabbt kommer att bli tråkigt 1156 00:51:38,350 --> 00:51:40,900 eftersom han kommer att gör det verkligen för evigt, 1157 00:51:40,900 --> 00:51:44,240 men det är precis vad programmets utformning föreskriver. 1158 00:51:44,240 --> 00:51:48,090 Låter nu försöka annat exempel som utnyttjar en variabel. 1159 00:51:48,090 --> 00:51:51,140 Detta kallas Hi Hi Hi, att skulle bli irriterande snabbt. 1160 00:51:51,140 --> 00:51:52,987 Nu är detta en har två skript. 1161 00:51:52,987 --> 00:51:54,570 Och så igen, vi tar baby steg. 1162 00:51:54,570 --> 00:51:57,236 >> Vi började med något super liten, sattes till den, sätts till den. 1163 00:51:57,236 --> 00:51:59,750 Nu vill jag göra något ännu mer dynamisk, 1164 00:51:59,750 --> 00:52:02,950 så jag vill lyssna på två olika saker på en gång. 1165 00:52:02,950 --> 00:52:05,420 Så till vänster, när grön flagg klickas, 1166 00:52:05,420 --> 00:52:08,100 Jag sätter en variabel som jag skrev i förväg kallas Dämpad. 1167 00:52:08,100 --> 00:52:09,700 Och jag godtyckligt sätta den till 0. 1168 00:52:09,700 --> 00:52:13,290 Så Scratch inte har riktiga och falskt, men det har 0 och en. 1169 00:52:13,290 --> 00:52:15,270 >> Så jag kan närma samma idé. 1170 00:52:15,270 --> 00:52:21,110 Och sedan för evigt, om mellanslagstangenten är pressade, ställ sedan variabeln till 0. 1171 00:52:21,110 --> 00:52:21,810 Eller ledsen. 1172 00:52:21,810 --> 00:52:25,920 Om Space trycks och om avstängd, variabeln är 0, 1173 00:52:25,920 --> 00:52:29,950 ställ sedan in dämpad 1, annars satt dämpad till 0. 1174 00:52:29,950 --> 00:52:32,370 Detta verkar ungefär som vi är bara göra och ångra arbete. 1175 00:52:32,370 --> 00:52:33,130 >> Men vad är effekten? 1176 00:52:33,130 --> 00:52:35,588 Varje gång jag slog på mellanslagstangenten, vad händer med min variabel 1177 00:52:35,588 --> 00:52:38,150 kallas avstängt, logiskt? 1178 00:52:38,150 --> 00:52:39,100 Typ av blir vänt. 1179 00:52:39,100 --> 00:52:41,035 Det förändrar 0-1 eller 1-0. 1180 00:52:41,035 --> 00:52:43,035 Så det tog några kvarter för att uttrycka det, men alla 1181 00:52:43,035 --> 00:52:47,280 Jag gör är växling staten denna variabel till 0 eller 1, eller 0 eller 1 1182 00:52:47,280 --> 00:52:48,530 varje gång jag slog på mellanslagstangenten. 1183 00:52:48,530 --> 00:52:49,905 Nu hit, vad är det här gör? 1184 00:52:49,905 --> 00:52:53,400 Evigt, om dämpad är 0, så om avstängd är falskt. 1185 00:52:53,400 --> 00:52:57,910 Så om det inte är avstängt, är semantik där, spela upp ljud sjölejon, 1186 00:52:57,910 --> 00:53:00,810 och tänka Hi Hi Hi för två sekunder, vänta två sekunder. 1187 00:53:00,810 --> 00:53:02,710 Så märker nu dessa skript är effektivt 1188 00:53:02,710 --> 00:53:07,100 kommer att löpa parallellt så att en kan lyssna efter en åtgärd, den andra 1189 00:53:07,100 --> 00:53:09,010 att fatta ett beslut på grundval av denna åtgärd. 1190 00:53:09,010 --> 00:53:10,655 Och det kan göra det för evigt. 1191 00:53:10,655 --> 00:53:12,638 >> [Sea Lion BARKING] 1192 00:53:12,638 --> 00:53:14,852 >> [Sea Lion BARKING] 1193 00:53:14,852 --> 00:53:20,050 >> Det kommer att göra det för evigt och [Sjölejon BARKING] som jag just har gjort. 1194 00:53:20,050 --> 00:53:23,010 Och nu är det fortfarande igång men jag har "dämpad" spelet. 1195 00:53:23,010 --> 00:53:27,260 [Sjölejon BARKING] Och det är allt här killen gör nu också. 1196 00:53:27,260 --> 00:53:28,660 >> Vi öppnar ett annat exempel här. 1197 00:53:28,660 --> 00:53:31,840 Låt mig gå in på händelser, och nu denna förtjusande också. 1198 00:53:31,840 --> 00:53:34,130 Men märker det har två sprites. 1199 00:53:34,130 --> 00:53:37,520 Så inte bara två manus med en sprite, men två sprites. 1200 00:53:37,520 --> 00:53:40,750 Och om jag klickar på den blå killen som jag redan har, jag ser att han som ett program 1201 00:53:40,750 --> 00:53:43,790 här uppe som bokstavligen bara säger detta, när jag får en händelse, 1202 00:53:43,790 --> 00:53:45,620 säger "Polo" i två sekunder. 1203 00:53:45,620 --> 00:53:48,460 >> Så om du någonsin spelat i en pool, spelet Marco Polo, 1204 00:53:48,460 --> 00:53:52,500 om den orange killen skriptet är någon indikation, tydligen 1205 00:53:52,500 --> 00:53:57,380 varje gång jag slog på mellanslagstangenten, Vad är den orange killen kommer att göra? 1206 00:53:57,380 --> 00:53:58,642 Han kommer att säga "Marco." 1207 00:53:58,642 --> 00:53:59,850 Och då detta är ett nytt block. 1208 00:53:59,850 --> 00:54:02,409 Vi har inte sett det här förut, men sända ett evenemang. 1209 00:54:02,409 --> 00:54:04,200 Och jag kunde kalla det händelse vad vi vill. 1210 00:54:04,200 --> 00:54:06,033 >> Vi ska återkomma till detta kanske inom kort. 1211 00:54:06,033 --> 00:54:08,410 Men sända ett evenemang är ett sätt för en sprite 1212 00:54:08,410 --> 00:54:11,836 att tala med en annan av väsentligen passerar den ett meddelande. 1213 00:54:11,836 --> 00:54:12,960 Det är inte ett meddelande som du ser. 1214 00:54:12,960 --> 00:54:14,130 Det är inte något visuellt. 1215 00:54:14,130 --> 00:54:17,370 Det blir liksom en dator meddelande att den andra killen lyssnar efter. 1216 00:54:17,370 --> 00:54:21,210 Eftersom ja, den blå kille, minns inte har när grön flagg klickade. 1217 00:54:21,210 --> 00:54:23,290 >> Han har i stället, när jag tar emot en händelse. 1218 00:54:23,290 --> 00:54:26,850 När han blir överlämnade denna not i klassen, så att säga, skulle han säga "Polo". 1219 00:54:26,850 --> 00:54:30,200 Och så att nettoeffekten är att när jag slog den gröna flaggan, händer ingenting. 1220 00:54:30,200 --> 00:54:34,940 Men när jag slog på mellanslagstangenten, säger han "Marco", säger han svarar med "Polo". 1221 00:54:34,940 --> 00:54:38,350 Men det enda sprite jag interagera med är den orange en. 1222 00:54:38,350 --> 00:54:40,980 Så det här är ett sätt att sorts passerande meddelanden mellan sprites 1223 00:54:40,980 --> 00:54:43,210 och låta dem kommunicera med en annan. 1224 00:54:43,210 --> 00:54:46,280 >> Nu ska vi titta på en sista en här kallade trådar. 1225 00:54:46,280 --> 00:54:49,370 Och lägg märke till detta genom att spela det. 1226 00:54:49,370 --> 00:54:51,184 Så dessa är två sprites. 1227 00:54:51,184 --> 00:54:52,600 Fågeln är typ att flyga runt. 1228 00:54:52,600 --> 00:54:53,310 Han studsar. 1229 00:54:53,310 --> 00:54:55,890 Det finns ingen "ouch", men samma idé. 1230 00:54:55,890 --> 00:54:58,230 >> Men katten verkar ganska smart. 1231 00:54:58,230 --> 00:55:01,010 Vad katten tydligen göra? 1232 00:55:01,010 --> 00:55:03,430 Och vänta. 1233 00:55:03,430 --> 00:55:05,010 Vad katten tydligen göra? 1234 00:55:05,010 --> 00:55:07,740 Det är inte bara studsar. 1235 00:55:07,740 --> 00:55:09,860 >> Han följer fågeln. 1236 00:55:09,860 --> 00:55:13,920 Och så uppenbarligen finns det en väg med en kombination av block här-- 1237 00:55:13,920 --> 00:55:15,760 och låt oss titta på katten riktigt snabbt. 1238 00:55:15,760 --> 00:55:20,270 Evigt, om att röra fågel, sedan spela ljudet Lion 4, vad det nu är. 1239 00:55:20,270 --> 00:55:21,360 Vi hörde det en gång. 1240 00:55:21,360 --> 00:55:25,431 Annars pekar mot fågel, och flytta ett steg. 1241 00:55:25,431 --> 00:55:27,680 Nu det faktum att det är en steg är det som ger fågeln 1242 00:55:27,680 --> 00:55:29,850 lite av en fördel initialt, men om vi istället 1243 00:55:29,850 --> 00:55:32,980 göra denna 10, till exempel, så att varje iteration av slingan han 1244 00:55:32,980 --> 00:55:34,100 flytta 10 steg tid. 1245 00:55:34,100 --> 00:55:35,280 Så mer utrymme. 1246 00:55:35,280 --> 00:55:36,650 Låt oss se vad som händer då. 1247 00:55:36,650 --> 00:55:38,740 [LION ROAR] Inte så mycket bättre. 1248 00:55:38,740 --> 00:55:41,460 Så nu ska vi försöka förbättra på dessa lite iterativt, 1249 00:55:41,460 --> 00:55:43,330 och komma tillbaka till det begreppet en funktion. 1250 00:55:43,330 --> 00:55:46,580 >> Och faktiskt en av de fundamentala takeaways för klassen design. 1251 00:55:46,580 --> 00:55:49,560 Inte bara skriva program som fungerar och som är korrekta, men är väl 1252 00:55:49,560 --> 00:55:50,080 utformade. 1253 00:55:50,080 --> 00:55:54,349 Och design är mycket mer subjektiv, och du kommer att bli bättre på det med tiden. 1254 00:55:54,349 --> 00:55:57,390 Men låt oss ta några baby steg mot börjar med ett program som fungerar, 1255 00:55:57,390 --> 00:55:59,310 absolut, men det är inte bra. 1256 00:55:59,310 --> 00:56:00,650 Det är inte mycket välskriven. 1257 00:56:00,650 --> 00:56:03,830 >> Så här är ett program som gör detta. 1258 00:56:03,830 --> 00:56:08,060 Hosta, hosta, hosta. 1259 00:56:08,060 --> 00:56:09,880 Vad gör programmet ut? 1260 00:56:09,880 --> 00:56:11,330 Ser rätt för mig. 1261 00:56:11,330 --> 00:56:13,370 Det säger soffa för en andra, då den väntar. 1262 00:56:13,370 --> 00:56:14,515 >> Då säger det igen, då väntar. 1263 00:56:14,515 --> 00:56:16,056 Då säger det igen, då väntar. 1264 00:56:16,056 --> 00:56:18,770 Och sedan programmet implicit slutar, eftersom det inte finns någon slinga. 1265 00:56:18,770 --> 00:56:21,325 Men varför är detta ett dåligt skrivna program? 1266 00:56:21,325 --> 00:56:22,950 Även om du aldrig har programmerat förut? 1267 00:56:22,950 --> 00:56:25,240 Liksom, vad gnuggar fel sätt, kanske här? 1268 00:56:25,240 --> 00:56:26,016 Yeah? 1269 00:56:26,016 --> 00:56:29,278 >> PUBLIK: [OHÖRBAR] 1270 00:56:29,278 --> 00:56:29,950 1271 00:56:29,950 --> 00:56:30,950 DAVID J. MALAN: Exakt. 1272 00:56:30,950 --> 00:56:32,700 Du upprepa själv om och om igen. 1273 00:56:32,700 --> 00:56:36,190 Och bokstavligen, kopierade jag och klistras två av dessa block och om igen. 1274 00:56:36,190 --> 00:56:39,237 Och det är precis den typ av sanity Kontrollera att du borde göra. 1275 00:56:39,237 --> 00:56:39,820 Vänta en minut. 1276 00:56:39,820 --> 00:56:41,070 Ska jag verkligen göra detta? 1277 00:56:41,070 --> 00:56:43,610 Så vad är det här vad är självklar lösning kanske? 1278 00:56:43,610 --> 00:56:44,680 Har någon form av slingan. 1279 00:56:44,680 --> 00:56:46,860 Och jag inte riktigt minns vad pusselbiten är, 1280 00:56:46,860 --> 00:56:48,810 men om jag tittar på nästa iteration här, 1281 00:56:48,810 --> 00:56:50,560 ja, det finns inte bara evigt slingan, 1282 00:56:50,560 --> 00:56:52,560 det finns upprepa några antal gånger. 1283 00:56:52,560 --> 00:56:54,080 Och så jag har angett tre. 1284 00:56:54,080 --> 00:56:57,839 Och nu märker hur mycket snävare, hur mycket mer kortfattade detta program är. 1285 00:56:57,839 --> 00:56:59,630 Och på sätt och vis, hur mycket mer att underhålla. 1286 00:56:59,630 --> 00:57:02,840 Om jag vill ändra ordet från hosta till något annat, 1287 00:57:02,840 --> 00:57:07,530 som achoo, som han nysningar. 1288 00:57:07,530 --> 00:57:09,770 Då ska jag ändra det i en plats, och inte tre. 1289 00:57:09,770 --> 00:57:12,050 Så detta redan känns något bättre design. 1290 00:57:12,050 --> 00:57:14,610 Låt mig i stället öppna hosta 2, vårt tredje exempel. 1291 00:57:14,610 --> 00:57:17,670 >> Lägg märke till som en datorforskare, Jag börjar räkna på 0, typiskt. 1292 00:57:17,670 --> 00:57:20,950 Nu ser lite skrämmande på först, men effekten är densamma. 1293 00:57:20,950 --> 00:57:22,590 Hosta, hosta, hosta. 1294 00:57:22,590 --> 00:57:26,920 Men vad som verkar vara fundamentalt ny i den övre delen av programmet? 1295 00:57:26,920 --> 00:57:28,670 Jag har tagit bort ordet. 1296 00:57:28,670 --> 00:57:29,830 >> Jag har tagit bort att vänta. 1297 00:57:29,830 --> 00:57:32,370 Och vad har jag inkopplad i stället? 1298 00:57:32,370 --> 00:57:32,890 En funktion. 1299 00:57:32,890 --> 00:57:33,670 En hosta block. 1300 00:57:33,670 --> 00:57:35,410 Jag menar, ärligt talat, jag verkar snäll av en idiot om jag inte bara 1301 00:57:35,410 --> 00:57:37,285 börjar med blocket som är tydligen kallas 1302 00:57:37,285 --> 00:57:38,894 "hosta", om det är allt jag vill ha honom göra. 1303 00:57:38,894 --> 00:57:40,310 Men som inte finns i Scratch. 1304 00:57:40,310 --> 00:57:43,396 Snarare jag gick till en i palett kallade Fler Blocks här, 1305 00:57:43,396 --> 00:57:46,270 och jag drar denna stora lila sak här som låter mig definiera en funktion. 1306 00:57:46,270 --> 00:57:48,240 Det låter mig i huvudsak skapa mitt eget pussel 1307 00:57:48,240 --> 00:57:51,280 pjäs som kan kallas något jag vill, kan det göra vad jag vill, 1308 00:57:51,280 --> 00:57:52,360 men det ger det ett namn. 1309 00:57:52,360 --> 00:57:57,050 Det ger mig en ny, lila pusselbit som gör nu vad jag säger att det ska göra. 1310 00:57:57,050 --> 00:58:01,060 Så här lila pjäs här motsvarar detta en här. 1311 00:58:01,060 --> 00:58:01,960 >> Och vad gör det? 1312 00:58:01,960 --> 00:58:03,930 Den säger hosta för en andra, och sedan väntar. 1313 00:58:03,930 --> 00:58:07,330 Och nu har jag slags skapat min egna pusselbit, 1314 00:58:07,330 --> 00:58:10,040 så att det beter sig exakt samma sätt. 1315 00:58:10,040 --> 00:58:11,130 Så jag kan hålla på så här. 1316 00:58:11,130 --> 00:58:14,421 Och faktiskt, det kommer att bli mer och fler möjligheter för modularisering, 1317 00:58:14,421 --> 00:58:16,630 och skiktning, komplexitet ovanpå varandra. 1318 00:58:16,630 --> 00:58:18,547 Men denna grundläggande idé, verkligen i problem sade 0. 1319 00:58:18,547 --> 00:58:20,338 Vad du kommer att utmanas att göra är 1320 00:58:20,338 --> 00:58:23,810 för att ladda ner Scratch, eller bara använda det på webben, och bara ha kul med det. 1321 00:58:23,810 --> 00:58:26,056 Vi ger dig en uppsättning krav, som har ett ljud, 1322 00:58:26,056 --> 00:58:27,430 och några antal pusselbitar. 1323 00:58:27,430 --> 00:58:28,480 Men du kommer att göra just detta. 1324 00:58:28,480 --> 00:58:31,771 Och du inser att du kommer att vill ta några babysteg från början, 1325 00:58:31,771 --> 00:58:33,690 tills programmet får mer och mer komplexa. 1326 00:58:33,690 --> 00:58:36,010 Men med tanke på detta är det bästa sättet jag kunde göra detta? 1327 00:58:36,010 --> 00:58:39,210 Kan jag undvika denna instinkt kanske för att kopiera och klistra in? 1328 00:58:39,210 --> 00:58:41,850 >> Men innan Problem Set 0, och innan vi ajournera, 1329 00:58:41,850 --> 00:58:44,980 trodde vi skulle ta upp en mer volontär om vi kunde, 1330 00:58:44,980 --> 00:58:46,820 för en sista program det är kanske den mest 1331 00:58:46,820 --> 00:58:49,150 passande alls, med tanke på dagens arena. 1332 00:58:49,150 --> 00:58:50,298 Kom ner. 1333 00:58:50,298 --> 00:58:51,234 Yeah. 1334 00:58:51,234 --> 00:58:52,170 Ja. 1335 00:58:52,170 --> 00:58:53,431 Vad heter du? 1336 00:58:53,431 --> 00:58:53,930 Hoppsan. 1337 00:58:53,930 --> 00:58:57,820 1338 00:58:57,820 --> 00:58:59,010 Det är ok. 1339 00:58:59,010 --> 00:59:01,230 Båda komma ner. 1340 00:59:01,230 --> 00:59:05,520 Och jag har kommer att ta itu med detta på något sätt inom att kommande tio sekunder. 1341 00:59:05,520 --> 00:59:06,550 Så kom ner. 1342 00:59:06,550 --> 00:59:08,370 Kom ner. 1343 00:59:08,370 --> 00:59:13,250 >> Låt mig komma upp hit. 1344 00:59:13,250 --> 00:59:16,050 Kom igen. 1345 00:59:16,050 --> 00:59:16,685 Okej. 1346 00:59:16,685 --> 00:59:21,360 1347 00:59:21,360 --> 00:59:22,360 Låt oss se här. 1348 00:59:22,360 --> 00:59:25,735 Så märker riktigt snabbt här, Om du vill komma på upp. 1349 00:59:25,735 --> 00:59:28,650 1350 00:59:28,650 --> 00:59:29,926 >> Vi ska göra två omgångar av detta. 1351 00:59:29,926 --> 00:59:30,800 Och vad heter du? 1352 00:59:30,800 --> 00:59:31,270 >> SABRINA: Sabrina. 1353 00:59:31,270 --> 00:59:32,060 >> DAVID J. MALAN: Sabrina och? 1354 00:59:32,060 --> 00:59:32,622 >> YING GEE: Ying Gee. 1355 00:59:32,622 --> 00:59:33,360 >> DAVID J. MALAN: Ying Gee. 1356 00:59:33,360 --> 00:59:34,276 Trevligt att träffas båda. 1357 00:59:34,276 --> 00:59:34,970 David. 1358 00:59:34,970 --> 00:59:38,785 Så vår sista exempel här är kallas Ivy svåraste spelet. 1359 00:59:38,785 --> 00:59:41,160 Och varför gör vi inte att ni ska göra Nivå 1, och du gör nivå 2. 1360 00:59:41,160 --> 00:59:43,350 >> Och vi får se hur långt utöver det vi faktiskt gå. 1361 00:59:43,350 --> 00:59:45,855 Skriven av en student förra året, remixad av mig 1362 00:59:45,855 --> 00:59:48,840 så att det skulle gå över brunnen i New Haven. 1363 00:59:48,840 --> 00:59:53,180 Och jag ger dig ett spel som kommer att innebär att flytta pilarna uppåt och nedåt, 1364 00:59:53,180 --> 00:59:55,771 och få Yale till mållinjen. 1365 00:59:55,771 --> 00:59:56,270 Nu kör vi. 1366 00:59:56,270 --> 00:59:56,759 >> [VIDEOAVSPELNING] 1367 00:59:56,759 --> 00:59:58,092 >> [MUSIK - NFL på FOX TEMA SONG] 1368 00:59:58,092 --> 00:59:59,369 1369 00:59:59,369 --> 01:00:01,160 [MUSIK - MC HAMMER, "U kan inte röra  THIS "] 1370 01:00:01,160 --> 01:00:04,590 1371 01:00:04,590 --> 01:00:07,900 >> U kan inte röra det. 1372 01:00:07,900 --> 01:00:11,634 U kan inte röra det. 1373 01:00:11,634 --> 01:00:14,252 Kan inte röra det. 1374 01:00:14,252 --> 01:00:19,490 Min, min, min, slår min musik mig så hårt, gör mig säga, åh, min herre. 1375 01:00:19,490 --> 01:00:22,927 Tack för att du välsignar mig med en emot att rimma och två hype fötter. 1376 01:00:22,927 --> 01:00:24,891 >> Det är bra när du vet att du är nere. 1377 01:00:24,891 --> 01:00:26,855 En super knark homeboy från Oaktown. 1378 01:00:26,855 --> 01:00:31,274 Och jag är känd som sådan och detta ett beat uh, kan du inte röra. 1379 01:00:31,274 --> 01:00:34,672 Jag sa ju Homeboy U kan inte röra det. 1380 01:00:34,672 --> 01:00:38,656 Ja, det är hur vi lever och du vet att U kan inte röra det. 1381 01:00:38,656 --> 01:00:40,135 >> Titta i mina ögon, man. 1382 01:00:40,135 --> 01:00:43,093 U kan inte röra det. 1383 01:00:43,093 --> 01:00:44,572 Yo, låt mig byst funky texter. 1384 01:00:44,572 --> 01:00:45,363 U kan inte röra det. 1385 01:00:45,363 --> 01:00:46,544 Färska nya sparkar och byxor. 1386 01:00:46,544 --> 01:00:48,627 >> Du fick det så och du vet att du vill dansa. 1387 01:00:48,627 --> 01:00:51,967 Så flytta ut från din plats och få en fluga flicka och fånga denna takt. 1388 01:00:51,967 --> 01:00:55,911 Även om det är rullande grepp om pumpen lite bit och låta dem veta vad som händer. 1389 01:00:55,911 --> 01:00:56,890 Precis som. 1390 01:00:56,890 --> 01:00:57,390 Precis som. 1391 01:00:57,390 --> 01:00:59,362 >> Kalla på ett uppdrag så dra tillbaka. 1392 01:00:59,362 --> 01:01:04,785 Låt dem veta att du är för mycket och detta är ett steg uh du inte kan röra. 1393 01:01:04,785 --> 01:01:07,743 Yo, jag sa ju U kan inte röra det. 1394 01:01:07,743 --> 01:01:09,222 Varför du står där mannen? 1395 01:01:09,222 --> 01:01:10,208 U kan inte röra det. 1396 01:01:10,208 --> 01:01:13,200 >> Yo, ljud klockan skolans in, suga. 1397 01:01:13,200 --> 01:01:14,005 U kan inte röra det. 1398 01:01:14,005 --> 01:01:18,326 Ge mig en sång, en rytm som gör dem svettas det är vad jag ger dem nu. 1399 01:01:18,326 --> 01:01:21,805 De vet när man talar om Hammer du pratar om en show som är hypade. 1400 01:01:21,805 --> 01:01:24,290 Och snäva sångare är svettas så passerar dem en mikrofon. 1401 01:01:24,290 --> 01:01:27,272 >> Eller en tejp för att lära sig vad det kommer att ta och nu 1402 01:01:27,272 --> 01:01:29,260 han kommer att bränna listorna. 1403 01:01:29,260 --> 01:01:32,739 Legit antingen arbeta hårt eller du kan lika gärna sluta. 1404 01:01:32,739 --> 01:01:37,709 Eftersom du vet U inte kan röra detta. 1405 01:01:37,709 --> 01:01:41,599 U kan inte röra det. 1406 01:01:41,599 --> 01:01:42,182 Bryt ner det. 1407 01:01:42,182 --> 01:01:56,095 1408 01:01:56,095 --> 01:01:56,595 Sluta. 1409 01:01:56,595 --> 01:01:57,095 Hammardags. 1410 01:01:57,095 --> 01:01:59,577 Gå med flödet i en spin Om du inte kan flytta till detta 1411 01:01:59,577 --> 01:02:01,068 då är du antagligen döda. 1412 01:02:01,068 --> 01:02:04,547 Så vifta med händerna i luften [OHÖRBAR] 1413 01:02:04,547 --> 01:02:08,026 >> Detta är det för en vinnare dansa till detta och du kommer att få tunnare. 1414 01:02:08,026 --> 01:02:12,996 Flytta dra ditt gumpen bara för en minut låt oss alla göra knölen. 1415 01:02:12,996 --> 01:02:13,990 Yeah. 1416 01:02:13,990 --> 01:02:14,984 U kan inte röra det. 1417 01:02:14,984 --> 01:02:17,966 1418 01:02:17,966 --> 01:02:19,457 >> U kan inte röra det. 1419 01:02:19,457 --> 01:02:23,433 Du får bättre hypade Pojken U kan inte röra det. 1420 01:02:23,433 --> 01:02:24,924 Ring på klockan skolans igen. 1421 01:02:24,924 --> 01:02:25,918 Bryt ner det. 1422 01:02:25,918 --> 01:02:38,837 1423 01:02:38,837 --> 01:02:39,337 Sluta. 1424 01:02:39,337 --> 01:02:40,828 Hammardags 1425 01:02:40,828 --> 01:02:42,816 >> DAVID J. MALAN: Det är allt för CS50! 1426 01:02:42,816 --> 01:02:45,301 Tack så mycket för att gå med oss! 1427 01:02:45,301 --> 01:02:47,786 Vi ses utanför. 1428 01:02:47,786 --> 01:02:48,611 >> [END SPELA] 1429 01:02:48,611 --> 01:02:49,277 [VIDEOAVSPELNING] 1430 01:02:49,277 --> 01:02:52,259 [MUSIK - "Seinfeld" theme song] 1431 01:02:52,259 --> 01:02:53,860 -Hey David. 1432 01:02:53,860 --> 01:02:54,500 -Hey, David. 1433 01:02:54,500 --> 01:02:55,912 Hur går det? 1434 01:02:55,912 --> 01:02:58,078 >> -Bra Jobb, idag. 1435 01:02:58,078 --> 01:03:00,952 -Så Har du tänkt på vad du kommer att göra för ut skämt? 1436 01:03:00,952 --> 01:03:03,207 -Nej, Jag fick ingenting. 1437 01:03:03,207 --> 01:03:07,550 -Vad If-- tänk om det är out skämt? 1438 01:03:07,550 --> 01:03:08,970 -liknande, Uppackning kärror? 1439 01:03:08,970 --> 01:03:11,430 -Uh-Va. 1440 01:03:11,430 --> 01:03:13,890 Du vet, det är ingenting. 1441 01:03:13,890 --> 01:03:17,559 >> -Så Vill, ingen historia, ingen konflikt, ingen lösning. 1442 01:03:17,559 --> 01:03:18,350 Jag förstår inte. 1443 01:03:18,350 --> 01:03:20,542 Vad handlar det om då? 1444 01:03:20,542 --> 01:03:23,510 >> -Inget. 1445 01:03:23,510 --> 01:03:27,427 >> -Så Vi har ute skämt handlar om ingenting, och vi har inga aktörer. 1446 01:03:27,427 --> 01:03:28,510 Vem kommer att vara i det här? 1447 01:03:28,510 --> 01:03:29,010 >> -Nej nej nej. 1448 01:03:29,010 --> 01:03:31,310 Jag menar, jag ska vara i det. 1449 01:03:31,310 --> 01:03:32,109 >> -Du Vara med? 1450 01:03:32,109 --> 01:03:32,608 -Ja! 1451 01:03:32,608 --> 01:03:34,903 Folk säger alltid att jag är ett tecken. 1452 01:03:34,903 --> 01:03:36,029 >> -Ja, Jag menar, det är sant. 1453 01:03:36,029 --> 01:03:37,445 Men vem kommer att vara i det? 1454 01:03:37,445 --> 01:03:38,660 Det kan inte bara vara du. 1455 01:03:38,660 --> 01:03:47,240 >> -Du Kommer att vara i det, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, 1456 01:03:47,240 --> 01:03:51,120 David, alla. 1457 01:03:51,120 --> 01:03:53,630 >> -Så Det handlar om ingenting, och alla är på det? 1458 01:03:53,630 --> 01:03:54,530 >> -Absolut ingenting. 1459 01:03:54,530 --> 01:03:58,730 1460 01:03:58,730 --> 01:04:00,580 >> -Detta är löjligt.