1 00:00:00,000 --> 00:00:09,840 2 00:00:09,840 --> 00:00:10,824 >> [VIDEO AFSPELEN] 3 00:00:10,824 --> 00:00:13,284 >> [AUTODEUR afsluiten] 4 00:00:13,284 --> 00:00:15,744 >> [AUTO MOTOR STARTEN] 5 00:00:15,744 --> 00:00:19,188 >> [Muziek] 6 00:00:19,188 --> 00:00:20,172 7 00:00:20,172 --> 00:00:24,516 >> -Moving Rechts langs op zoek naar van goede tijden en goed nieuws. 8 00:00:24,516 --> 00:00:26,871 Met goede vrienden kun je niet verliezen. 9 00:00:26,871 --> 00:00:28,755 >> -dit Kan een gewoonte worden. 10 00:00:28,755 --> 00:00:32,460 >> -Opportunity Stoten Laten net reiken en grijpen. 11 00:00:32,460 --> 00:00:32,960 -Ja! 12 00:00:32,960 --> 00:00:34,920 -samen We zullen het NAB. 13 00:00:34,920 --> 00:00:37,370 -We Hapering wandeling, bus, taxi of geel is. 14 00:00:37,370 --> 00:00:38,840 -Dammit. 15 00:00:38,840 --> 00:00:40,800 -We Bewegende rechts langs. 16 00:00:40,800 --> 00:00:43,750 -Footloose En vrije luim. 17 00:00:43,750 --> 00:00:45,960 -Aan Er de helft van de pret. 18 00:00:45,960 --> 00:00:47,718 Kom delen met mij. 19 00:00:47,718 --> 00:00:49,654 >> -We Bewegende rechts langs. 20 00:00:49,654 --> 00:00:52,558 >> -We Naar de belasting te delen. 21 00:00:52,558 --> 00:00:57,604 >> -We Hebben geen kaart nodig te hebben krijgen deze show op de weg. 22 00:00:57,604 --> 00:01:00,520 Hé Fozzy, ik wil dat je linksaf Als u bij een splitsing in de weg. 23 00:01:00,520 --> 00:01:01,020 -Ja meneer. 24 00:01:01,020 --> 00:01:03,334 Sla linksaf bij de splitsing in de weg. 25 00:01:03,334 --> 00:01:05,222 Sla linksaf. 26 00:01:05,222 --> 00:01:07,582 >> -Ik Geloof niet dat. 27 00:01:07,582 --> 00:01:11,720 >> -Cruising Rechts langs we gevonden de lichten op de snelweg. 28 00:01:11,720 --> 00:01:13,664 >> -en De weg of op mijn manier. 29 00:01:13,664 --> 00:01:16,154 >> -dus Vertrouw mijn navigatiesysteem. 30 00:01:16,154 --> 00:01:21,134 >> -film Sterren met flitsende auto's en het leven met de top naar beneden. 31 00:01:21,134 --> 00:01:23,126 >> -We Bestormen van de grote heuvels. 32 00:01:23,126 --> 00:01:24,122 >> -Ja, Storm heeft gelijk. 33 00:01:24,122 --> 00:01:25,160 Moet het sneeuwen? 34 00:01:25,160 --> 00:01:26,220 >> Nee, ik denk het niet. 35 00:01:26,220 --> 00:01:28,505 >> -Moving Rechts langs. 36 00:01:28,505 --> 00:01:30,980 >> -Footloose En vrije luim. 37 00:01:30,980 --> 00:01:32,960 >> -Je Bent klaar voor het grote werk. 38 00:01:32,960 --> 00:01:34,445 >> -Is Het klaar voor mij? 39 00:01:34,445 --> 00:01:38,900 40 00:01:38,900 --> 00:01:42,860 >> -Moving Rechts langs. 41 00:01:42,860 --> 00:01:47,315 Bewegende rechts langs. 42 00:01:47,315 --> 00:01:52,265 Bewegende rechts langs. 43 00:01:52,265 --> 00:01:56,131 Bewegende rechts langs. 44 00:01:56,131 --> 00:01:57,380 -Ik Denk dat je beter stoppen. 45 00:01:57,380 --> 00:01:58,020 -Ja meneer. 46 00:01:58,020 --> 00:02:02,475 47 00:02:02,475 --> 00:02:03,960 >> [END AFSPELEN] 48 00:02:03,960 --> 00:02:07,425 >> [Applaus] 49 00:02:07,425 --> 00:02:09,405 50 00:02:09,405 --> 00:02:11,930 >> DAVID J. MALAN: Dit is CS50. 51 00:02:11,930 --> 00:02:15,940 En dit is het einde van de week 0, maar het begin van een mooie vriendschap. 52 00:02:15,940 --> 00:02:18,250 We zijn zo enthousiast te zijn hier bij Yale University 53 00:02:18,250 --> 00:02:21,530 voor de eerste keer met onze vriend Scaz, en Jason, en Andy. 54 00:02:21,530 --> 00:02:24,320 Alle 40 van de CS50's TF's en CA is hier op Yale. 55 00:02:24,320 --> 00:02:25,440 En jullie allemaal. 56 00:02:25,440 --> 00:02:28,470 En in feite, is het waarschijnlijk tijd to-- 57 00:02:28,470 --> 00:02:31,914 >> [Applaus] 58 00:02:31,914 --> 00:02:43,722 59 00:02:43,722 --> 00:02:47,920 >> Dus, hoewel de meeste van de colleges zal inderdaad in Cambridge dit jaar, 60 00:02:47,920 --> 00:02:51,250 de realiteit is dat door het ontwerp en zeer bewust in CS50, 61 00:02:51,250 --> 00:02:54,740 Ik denk dat we naderen het punt technologisch en pedagogisch, 62 00:02:54,740 --> 00:02:57,930 wanneer het een superieure educatief kan zijn ervaring om met enige 63 00:02:57,930 --> 00:02:59,610 materiaal online de cursus. 64 00:02:59,610 --> 00:03:02,862 Inderdaad, de reality-- en als ik geloof Dit philosophically-- is dat colleges 65 00:03:02,862 --> 00:03:05,070 zijn niet een bijzonder effectief middel voor het leveren 66 00:03:05,070 --> 00:03:06,900 tamelijk complexe informatie. 67 00:03:06,900 --> 00:03:09,219 Zeker meer dan uur plus lange overspanningen van de tijd. 68 00:03:09,219 --> 00:03:11,760 En inderdaad om de paar minutes-- Ik herinner me in college-- 69 00:03:11,760 --> 00:03:14,210 u zone uit voor een moment, u sommige complexe onderwerp missen, 70 00:03:14,210 --> 00:03:16,540 en je bent vrij veel gegaan de volgende 45 minuten. 71 00:03:16,540 --> 00:03:19,414 En de realiteit is dat de vraag of je bent hier in New Haven of Cambridge 72 00:03:19,414 --> 00:03:22,930 of voorbij, de eenvoud van het hebben de mogelijkheid om te pauzeren en snel vooruit, 73 00:03:22,930 --> 00:03:26,270 terugspoelen, hyperlink naar gerelateerde middelen, naar de tekstzoekfunctie transcripties 74 00:03:26,270 --> 00:03:29,900 en dergelijke, is een kans die Ik durf te zeggen voor onze online studenten 75 00:03:29,900 --> 00:03:32,530 ver buiten New Haven, biedt hen een kans 76 00:03:32,530 --> 00:03:34,700 om echt te begrijpen de conceptuele materiaal dat we 77 00:03:34,700 --> 00:03:36,700 introduceren in lezingen des te beter. 78 00:03:36,700 --> 00:03:39,415 >> Maar uiteindelijk in CS50, is de ervaring van de studenten ' 79 00:03:39,415 --> 00:03:43,099 wordt dus gekenmerkt, zo veel meer door de cursus probleem sets, 80 00:03:43,099 --> 00:03:46,140 of wekelijkse programmering projecten, secties cursus onder leiding van het onderwijs 81 00:03:46,140 --> 00:03:49,600 kerels, de nachtelijke kantooruren geleid door de cursus assistenten en het onderwijs 82 00:03:49,600 --> 00:03:52,330 kerels, en inderdaad dergelijke events als CS50 Puzzle 83 00:03:52,330 --> 00:03:56,500 Dag, CS50's Hack-a-thon, de CS50 Eerlijk, wekelijkse lunches, en nog veel meer. 84 00:03:56,500 --> 00:03:59,580 En dus of u hier bent in New Toevluchtsoord, of het afstemmen op uit de verte, 85 00:03:59,580 --> 00:04:02,270 vandaag in Cambridge, en we zullen je weer snel, 86 00:04:02,270 --> 00:04:04,580 de realiteit is dit een en dezelfde klasse. 87 00:04:04,580 --> 00:04:07,990 En we zijn zo opgewonden om zijn hier allemaal bij elkaar vandaag. 88 00:04:07,990 --> 00:04:11,110 En dus aan het einde van het halfjaar, of hier of veraf, goed 89 00:04:11,110 --> 00:04:14,910 hopelijk u trots dragen, gelukkig, en misschien met een beetje van opluchting, 90 00:04:14,910 --> 00:04:19,459 het shirt dat getuigt u CS50 hebben genomen. 91 00:04:19,459 --> 00:04:21,700 >> Dus waar hebben we ophouden op woensdag? 92 00:04:21,700 --> 00:04:24,410 We namen een kijkje bij computationele denken. 93 00:04:24,410 --> 00:04:27,830 En dat is in de richting van wat we gedistilleerd informatica aan, ten minste 94 00:04:27,830 --> 00:04:28,800 voor nu. 95 00:04:28,800 --> 00:04:31,990 Maar we gedistilleerd er iets verder in tenminste drie componenten elementen. 96 00:04:31,990 --> 00:04:34,570 >> Ingangen, dus wat is het probleem we proberen op te lossen? 97 00:04:34,570 --> 00:04:36,650 Uitgangen, wat is de beantwoorden we hopen te krijgen? 98 00:04:36,650 --> 00:04:38,210 En de voorstelling er van. 99 00:04:38,210 --> 00:04:41,870 En wij zullen niet op wonen hier na op binaire of zelfs ASCII, 100 00:04:41,870 --> 00:04:44,050 en zoals zo veel, maar eerder voor lief nemen 101 00:04:44,050 --> 00:04:47,520 dat wij deze informatie kan vertegenwoordigen, omdat het veel meer interessante delen 102 00:04:47,520 --> 00:04:51,010 van deze problemen zijn niet alleen de inputs en outputs, maar de algoritmen 103 00:04:51,010 --> 00:04:53,020 die verder gaan in het oplossen van deze problemen. 104 00:04:53,020 --> 00:04:55,120 >> En je zou kunnen herinneren van de andere dag dat we 105 00:04:55,120 --> 00:04:59,860 nam een ​​vrij traditionele Het concept van het kijken iemand 106 00:04:59,860 --> 00:05:03,240 in een vrij groot telefoonboek, of meer in het algemeen digitaal deze dagen, 107 00:05:03,240 --> 00:05:04,420 slechts een zeer grote dataset. 108 00:05:04,420 --> 00:05:07,840 Een echt grote lijst met contacten, met veel van de namen alfabetisch gesorteerd. 109 00:05:07,840 --> 00:05:11,310 En we beseften dat terwijl ik Dit probleem kan eenvoudig benaderen 110 00:05:11,310 --> 00:05:14,520 door een lineaire approach-- pagina voor pagina, 111 00:05:14,520 --> 00:05:17,775 of zelfs twee bij een tijd-- we beseften dat het meer intuïtieve algorithm-- 112 00:05:17,775 --> 00:05:20,840 gewoon een soort van het verdelen en veroveren opnieuw het probleem en weer, 113 00:05:20,840 --> 00:05:24,670 en again-- deze halvering onderling tijd, gaf ons deze groene resultaat. 114 00:05:24,670 --> 00:05:27,080 En het is zo veel vlakker omdat het suggereert 115 00:05:27,080 --> 00:05:29,160 dat zelfs dit probleem wordt groter en groter, 116 00:05:29,160 --> 00:05:32,470 zoals het geval deze dagen met data sets en reality-- Facebook en Google 117 00:05:32,470 --> 00:05:34,630 zoekresultaten en de like-- doet ons algoritme 118 00:05:34,630 --> 00:05:37,660 uit te voeren net zo effectief met die grotere beten 119 00:05:37,660 --> 00:05:40,310 zoals zij heeft gedaan, zelfs met de kleinere hapjes. 120 00:05:40,310 --> 00:05:45,330 >> Nu rijst de vraag, wat kunnen we eigenlijk op dezelfde manier op te lossen 121 00:05:45,330 --> 00:05:46,820 met dit soort intuïtie? 122 00:05:46,820 --> 00:05:48,740 Dit soort van verdeeldheid en het veroveren? 123 00:05:48,740 --> 00:05:51,029 Nou, we kunnen iets doen als dit vandaag hier. 124 00:05:51,029 --> 00:05:52,070 We kunnen bijwonen nemen. 125 00:05:52,070 --> 00:05:56,102 Misschien als 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- 126 00:05:56,102 --> 00:05:57,560 niet van plan dat alles efficiënt te zijn. 127 00:05:57,560 --> 00:05:58,990 Dus wacht, lagere school. 128 00:05:58,990 --> 00:06:02,770 2, 4, 6, 8, 10, 12, 14, 16, 18 enzovoort. 129 00:06:02,770 --> 00:06:04,140 Maar konden we een beetje beter doen? 130 00:06:04,140 --> 00:06:06,630 >> Ik ben er vrij zeker van dat ik niet kan doen dit door mijzelf. 131 00:06:06,630 --> 00:06:09,420 Dus als u zult humor ons voor slechts een moment, brachten we met ons 132 00:06:09,420 --> 00:06:11,640 een algoritme dat net drie stappen, 133 00:06:11,640 --> 00:06:15,130 maar het doet require-- als je niet mind-- ons allemaal opstaan, 134 00:06:15,130 --> 00:06:15,690 als je dat zou doen. 135 00:06:15,690 --> 00:06:23,901 136 00:06:23,901 --> 00:06:29,380 Dus, met ons allen nu staan, stap één van dit algoritme is het volgende. 137 00:06:29,380 --> 00:06:31,680 Sta op en wijs zelf de nummer 1. 138 00:06:31,680 --> 00:06:34,180 Dus op dit punt in de tijd, letterlijk iedereen in deze kamer 139 00:06:34,180 --> 00:06:38,830 Hopelijk denkt aan zichzelf, echter onhandig, het getal 1. 140 00:06:38,830 --> 00:06:42,020 >> Stap nu twee van dit algoritme is naar de volgende betrekken. 141 00:06:42,020 --> 00:06:44,680 Stap twee, koppelen off met iemand die, 142 00:06:44,680 --> 00:06:47,970 voeg uw nummers samen, en nemen de som als uw nieuwe nummer. 143 00:06:47,970 --> 00:06:53,110 144 00:06:53,110 --> 00:06:55,620 Snel sanity check. 145 00:06:55,620 --> 00:06:58,180 Welk nummer is iedereen denkt nu? 146 00:06:58,180 --> 00:07:01,930 >> Dus 2, behalve misschien voor een, onhandig, eenzaam persoon. 147 00:07:01,930 --> 00:07:04,269 Als we een oneven aantal van de mensen in de kamer. 148 00:07:04,269 --> 00:07:06,560 Dus een persoon kan nog steeds de nummer 1, dat is prima. 149 00:07:06,560 --> 00:07:09,440 Maar stap drie hier, een je moet gaan zitten. 150 00:07:09,440 --> 00:07:13,620 De andere moet terug naar stap twee, en herhaal, als je dat zou doen. 151 00:07:13,620 --> 00:07:54,430 152 00:07:54,430 --> 00:07:58,240 >> Dus als nog staan, moet u onder hen terug te gaan naar stap twee. 153 00:07:58,240 --> 00:08:13,910 154 00:08:13,910 --> 00:08:14,574 Ga zo door. 155 00:08:14,574 --> 00:08:20,790 156 00:08:20,790 --> 00:08:22,130 Een paar mensen nog steeds overeind. 157 00:08:22,130 --> 00:08:33,590 158 00:08:33,590 --> 00:08:35,614 >> Dus, als nog steeds overeind, koppelen met iemand. 159 00:08:35,614 --> 00:08:53,710 160 00:08:53,710 --> 00:08:55,020 Oké, slinkende naar beneden. 161 00:08:55,020 --> 00:09:06,394 162 00:09:06,394 --> 00:09:07,560 Een paar mensen nog steeds overeind. 163 00:09:07,560 --> 00:09:08,600 Ik zal je helpen als dat nodig is. 164 00:09:08,600 --> 00:09:11,855 Vergeet niet de sleutel mee te nemen hier is hoe veel sneller is dan ik tellen. 165 00:09:11,855 --> 00:09:15,090 166 00:09:15,090 --> 00:09:16,200 >> Dus laten we zien. 167 00:09:16,200 --> 00:09:16,900 Ik kan helpen. 168 00:09:16,900 --> 00:09:19,425 Dus wat zijn nummer je nog steeds denkt aan? 169 00:09:19,425 --> 00:09:20,320 >> Publiek: Ik ben op 44. 170 00:09:20,320 --> 00:09:22,400 >> DAVID J. MALAN: 44, dus ga je gang en gaan zitten. 171 00:09:22,400 --> 00:09:23,733 Welk nummer je denken? 172 00:09:23,733 --> 00:09:24,840 Publiek: 74. 173 00:09:24,840 --> 00:09:27,006 >> DAVID J. MALAN: 74. 174 00:09:27,006 --> 00:09:28,380 Oké, ga je gang en gaan zitten. 175 00:09:28,380 --> 00:09:30,390 Wie staat er nog? 176 00:09:30,390 --> 00:09:31,550 86. 177 00:09:31,550 --> 00:09:33,340 En is iemand anders nog overeind? 178 00:09:33,340 --> 00:09:34,976 >> Welk nummer? 179 00:09:34,976 --> 00:09:37,380 Ik hoorde 67. 180 00:09:37,380 --> 00:09:39,370 En vervolgens in de top? 181 00:09:39,370 --> 00:09:40,900 32. 182 00:09:40,900 --> 00:09:44,230 Iemand anders nog overeind en denken van een nummer? 183 00:09:44,230 --> 00:09:44,730 >> Oh Hallo. 184 00:09:44,730 --> 00:09:45,230 Sorry. 185 00:09:45,230 --> 00:09:48,350 Ben zo terug. 186 00:09:48,350 --> 00:09:49,520 42. 187 00:09:49,520 --> 00:09:51,758 Iemand anders? 188 00:09:51,758 --> 00:09:52,610 >> Publiek: 47. 189 00:09:52,610 --> 00:09:54,930 >> DAVID J. MALAN: 47. 190 00:09:54,930 --> 00:09:57,980 Is er iemand anders nog overeind die niet heeft geteld? 191 00:09:57,980 --> 00:10:06,450 Zodat het uiteindelijke aantal mensen in een kamer dat over 497 zitplaatsen is-- allemaal 192 00:10:06,450 --> 00:10:10,930 zijn filled-- is 390. 193 00:10:10,930 --> 00:10:12,230 Dus dit is geweldig. 194 00:10:12,230 --> 00:10:16,435 >> We zullen binnenkort bespreken het begrip een fout in een computerprogramma. 195 00:10:16,435 --> 00:10:19,660 Maar we zullen terug te komen dat duurde niet lang. 196 00:10:19,660 --> 00:10:22,440 Maar in theorie, wat zou hebben net nu gebeurd? 197 00:10:22,440 --> 00:10:25,930 Dus ook al waren er drie grote stappen om dit algoritme, zijnde 198 00:10:25,930 --> 00:10:27,510 was gewoon een soort van een grote operatie. 199 00:10:27,510 --> 00:10:31,020 En er was deze cycliciteit om het in dat als je nog stonden, 200 00:10:31,020 --> 00:10:34,870 Je hield gaande van stap 3-2, stap 3-2, stap 3-2. 201 00:10:34,870 --> 00:10:37,330 >> Maar wat bleef gebeurt op elke iteratie? 202 00:10:37,330 --> 00:10:39,440 Elke cyclus van deze lus? 203 00:10:39,440 --> 00:10:41,940 Wat er gebeurde elders in de kamer? 204 00:10:41,940 --> 00:10:45,170 Niet alleen het zelfde ding, maar wat er gebeurde met de helft van jullie? 205 00:10:45,170 --> 00:10:46,170 Gaan zitten. 206 00:10:46,170 --> 00:10:49,710 En dus is er in leugens dit inzicht, net als het telefoonboek bijvoorbeeld 207 00:10:49,710 --> 00:10:52,050 in dat als de helft van je elke keer zitten, 208 00:10:52,050 --> 00:10:54,560 het probleem begint met misschien 400 mensen, 209 00:10:54,560 --> 00:10:57,780 dan 200 mensen, dan 100 mensen, dan 50 mensen, enzovoort. 210 00:10:57,780 --> 00:11:00,660 >> En dus hebben we whittle in theorie slechts een persoon, 211 00:11:00,660 --> 00:11:02,830 denken van de totale waarde van iedereen. 212 00:11:02,830 --> 00:11:05,777 Nu de werkelijkheid, een aantal sociale dynamiek, en enkele rekenfouten 213 00:11:05,777 --> 00:11:07,360 zou kunnen bijdragen aan het ultieme bug. 214 00:11:07,360 --> 00:11:10,300 Maar in theorie, terwijl ik was nog steeds tellen weg, 215 00:11:10,300 --> 00:11:12,860 het nemen van enkele tientallen stappen of honderden stappen 216 00:11:12,860 --> 00:11:16,240 om jezelf te tellen, rekenen een kamer vol van 500 of zo mensen 217 00:11:16,240 --> 00:11:20,560 moet veel minder stappen zijn genomen, omdat je alleen kan verdelen 500 en 1/2 218 00:11:20,560 --> 00:11:21,350 zo vaak. 219 00:11:21,350 --> 00:11:24,120 En dus net als met de telefoon Zo boeken de andere dag, 220 00:11:24,120 --> 00:11:26,740 hadden we iets logaritmische zo te zeggen, 221 00:11:26,740 --> 00:11:28,870 waarbij als we waren allemaal werken in koor, 222 00:11:28,870 --> 00:11:32,000 en het negeren van de Daarnaast fouten, zouden we 223 00:11:32,000 --> 00:11:34,140 hebben precies bereikt dat soort van de looptijd? 224 00:11:34,140 --> 00:11:37,900 >> Nu om eerlijk te zijn, een soort van bedrogen, in dat ik leveraged andere bron. 225 00:11:37,900 --> 00:11:40,320 Overwegende dat het is slechts een van mij, Ik leveraged honderden jou. 226 00:11:40,320 --> 00:11:43,340 Dat zou kunnen zeggen dat een te voorbeeld van parallelle verwerking, 227 00:11:43,340 --> 00:11:46,400 of een state of the art erg in de mode waar de computers deze dagen 228 00:11:46,400 --> 00:11:49,830 meerdere CPU's, of meer technisch, meer meerdere cores, 229 00:11:49,830 --> 00:11:52,550 en kan echt meerdere doen dingen tegelijk, net als jij 230 00:11:52,550 --> 00:11:54,706 alle we daar aan het doen, in parallel. 231 00:11:54,706 --> 00:11:56,580 Maar herinneren dat wat we Ook deed op woensdag 232 00:11:56,580 --> 00:12:02,640 was proberen om dit intuïtie te vangen en formaliseren in de code. 233 00:12:02,640 --> 00:12:04,165 Zoiets als pseudo-code. 234 00:12:04,165 --> 00:12:07,040 En in feite, en ik hoop dat u zult vergeef, het is net 80 graden in hier. 235 00:12:07,040 --> 00:12:09,420 Dus ik ga dit te nemen off voor slechts een klein beetje. 236 00:12:09,420 --> 00:12:12,410 Wat ik dacht dat we zouden doen, is de overgang nu naar een toepassing waarbij 237 00:12:12,410 --> 00:12:16,300 we weer gaan het publiek, maar schrijf een programma in het Engels 238 00:12:16,300 --> 00:12:19,537 zoals syntax, waarmee Dit probleem here. 239 00:12:19,537 --> 00:12:20,203 [VIDEO AFSPELEN] 240 00:12:20,203 --> 00:12:22,266 -Het Is pindakaasgelei tijd. 241 00:12:22,266 --> 00:12:23,890 Pindakaasgelei tijd. 242 00:12:23,890 --> 00:12:25,620 Pindakaasgelei tijd. 243 00:12:25,620 --> 00:12:26,320 >> Manier ya! 244 00:12:26,320 --> 00:12:26,927 Manier ya! 245 00:12:26,927 --> 00:12:27,781 Manier ya! 246 00:12:27,781 --> 00:12:28,350 Manier ya! 247 00:12:28,350 --> 00:12:29,723 Nu daar ga je! 248 00:12:29,723 --> 00:12:30,264 Daar ga je! 249 00:12:30,264 --> 00:12:30,805 Daar ga je! 250 00:12:30,805 --> 00:12:31,710 Daar ga je! 251 00:12:31,710 --> 00:12:33,156 Pindakaas gelei! 252 00:12:33,156 --> 00:12:34,602 Pindakaas gelei! 253 00:12:34,602 --> 00:12:36,530 >> Pindakaas gelei! 254 00:12:36,530 --> 00:12:37,494 Pindakaas gelei! 255 00:12:37,494 --> 00:12:38,940 Pinda, pindakaas gelei! 256 00:12:38,940 --> 00:12:39,904 Pindakaas gelei! 257 00:12:39,904 --> 00:12:41,840 Pindakaas gelei met een honkbalknuppel. 258 00:12:41,840 --> 00:12:42,423 >> [END AFSPELEN] 259 00:12:42,423 --> 00:12:45,510 DAVID J. MALAN: --that video, maar het is een beetje verslavend, 260 00:12:45,510 --> 00:12:46,540 zo niet een beetje vervelend. 261 00:12:46,540 --> 00:12:49,623 Maar om dit te doen, ik dacht dat wat we hadden doen, is proberen om een ​​programma samen te schrijven, 262 00:12:49,623 --> 00:12:51,870 waarvoor wij moeten drie vrijwilligers. 263 00:12:51,870 --> 00:12:54,350 Hebben om comfortabel op de camera en internet. 264 00:12:54,350 --> 00:12:57,820 Sam, kom op. 265 00:12:57,820 --> 00:12:59,830 Paars shirt, exact hier, kom op. 266 00:12:59,830 --> 00:13:03,470 >> En van hier, laat me ga een beetje verder terug. 267 00:13:03,470 --> 00:13:05,280 Crimson en blauwe shirts, kom op up. 268 00:13:05,280 --> 00:13:06,980 Perfect. 269 00:13:06,980 --> 00:13:09,790 Kom op nou. 270 00:13:09,790 --> 00:13:12,490 Kom op, kom op maximaal. 271 00:13:12,490 --> 00:13:13,581 >> En hoe heet jij? 272 00:13:13,581 --> 00:13:14,080 Erica. 273 00:13:14,080 --> 00:13:15,289 David, leuk je te ontmoeten. 274 00:13:15,289 --> 00:13:16,830 Als u wilt deze stoel hier te nemen. 275 00:13:16,830 --> 00:13:17,900 Dit is Sam. 276 00:13:17,900 --> 00:13:19,690 >> Hoe heet je? 277 00:13:19,690 --> 00:13:20,260 Antonio. 278 00:13:20,260 --> 00:13:21,595 Antonio, leuk je te ontmoeten. 279 00:13:21,595 --> 00:13:23,790 Erica en Sam, als je wilt graag een zetel hier. 280 00:13:23,790 --> 00:13:26,700 Wat we hebben voorbereid met gekomen, als deze jongens ontdekken, 281 00:13:26,700 --> 00:13:30,580 de ingrediënten waarmee maken een pindakaas en jam sandwich. 282 00:13:30,580 --> 00:13:33,520 >> Nu dit kan iets zijn dat u zeer voor verleend. 283 00:13:33,520 --> 00:13:35,430 Maar we hebben elk gegeven van de drie vrijwilligers 284 00:13:35,430 --> 00:13:40,500 hier-- twee vrijwilligers en Sam hier, een brood elk, een bord, een mes, 285 00:13:40,500 --> 00:13:43,740 een pot gelei of jam, en een pot pindakaas. 286 00:13:43,740 --> 00:13:46,190 En het doel bij de hand is nu gaat worden deze drie 287 00:13:46,190 --> 00:13:48,030 een pindakaas maken en gelei sandwich. 288 00:13:48,030 --> 00:13:51,000 Maar wat we gaan doen is verwacht de audience-- omdat jullie allemaal 289 00:13:51,000 --> 00:13:53,710 zeker weet hoe dat te doen dit zo goed in reality-- 290 00:13:53,710 --> 00:13:56,380 gaan om ons te voorzien de stap voor stap instructies. 291 00:13:56,380 --> 00:13:57,970 De pseudo-code, als je wil. 292 00:13:57,970 --> 00:13:59,922 >> Dus zal ik de rol van de schrijver hier te spelen. 293 00:13:59,922 --> 00:14:02,880 En ik heb een beetje to-do lijst gekregen, en zo als ieder van jullie, een voor een, 294 00:14:02,880 --> 00:14:04,588 roept een potentiële instructie, zal ik 295 00:14:04,588 --> 00:14:06,110 opschrijven, herhalen als nodig is. 296 00:14:06,110 --> 00:14:09,650 En dan heb je jongens gaan maken een pindakaas en jam boterham 297 00:14:09,650 --> 00:14:11,171 alleen door te doen wat je gezegd wordt. 298 00:14:11,171 --> 00:14:12,670 Dus denk aan jezelf als computers. 299 00:14:12,670 --> 00:14:13,740 >> U kunt alleen maar doen wat je gezegd wordt. 300 00:14:13,740 --> 00:14:14,948 Geen veronderstellingen, geen vragen. 301 00:14:14,948 --> 00:14:16,660 Je hoeft alleen maar om het te doen. 302 00:14:16,660 --> 00:14:20,460 Dus die willen gevaar de eerste instructie voor het maken van een PBJ sandwich? 303 00:14:20,460 --> 00:14:21,460 Op het balkon is er. 304 00:14:21,460 --> 00:14:22,801 >> Publiek: Open de zak met brood. 305 00:14:22,801 --> 00:14:26,430 >> DAVID J. MALAN: Open zak van brood, als je wil. 306 00:14:26,430 --> 00:14:34,440 307 00:14:34,440 --> 00:14:35,230 Dus laten we zien. 308 00:14:35,230 --> 00:14:37,910 Laten we herhalen, en krijg wat preciezer. 309 00:14:37,910 --> 00:14:39,040 >> Goede manier om al te beginnen. 310 00:14:39,040 --> 00:14:42,340 Stap twee, iemand anders. 311 00:14:42,340 --> 00:14:43,590 Nu niemand wil vrijwilliger. 312 00:14:43,590 --> 00:14:44,616 Stap twee, de voorkant. 313 00:14:44,616 --> 00:14:46,532 Publiek: Open de binnenste zak met brood ook. 314 00:14:46,532 --> 00:14:50,600 DAVID J. MALAN: Open binnenzak brood ook. 315 00:14:50,600 --> 00:14:51,880 Grote, leren we. 316 00:14:51,880 --> 00:14:57,880 317 00:14:57,880 --> 00:14:59,090 Een beetje nauwkeuriger. 318 00:14:59,090 --> 00:15:00,240 Laten we deze manier van werken. 319 00:15:00,240 --> 00:15:01,180 Ja, in het groen shirt. 320 00:15:01,180 --> 00:15:04,608 >> PUBLIEK: [onverstaanbaar] 321 00:15:04,608 --> 00:15:05,108 322 00:15:05,108 --> 00:15:09,040 DAVID J. MALAN: Boterhammen. 323 00:15:09,040 --> 00:15:11,110 Verwijder voorzichtig twee sneetjes brood. 324 00:15:11,110 --> 00:15:20,350 325 00:15:20,350 --> 00:15:21,000 Dat is goed. 326 00:15:21,000 --> 00:15:24,300 Stap vier, iemand anders? 327 00:15:24,300 --> 00:15:25,170 Hier, ja? 328 00:15:25,170 --> 00:15:26,130 >> PUBLIEK: [onverstaanbaar] 329 00:15:26,130 --> 00:15:28,810 >> DAVID J. MALAN: Plaats brood op plaat. 330 00:15:28,810 --> 00:15:33,490 331 00:15:33,490 --> 00:15:35,290 Stap vijf? 332 00:15:35,290 --> 00:15:36,020 Stap vijf, ja? 333 00:15:36,020 --> 00:15:39,440 >> PUBLIEK: [onverstaanbaar] 334 00:15:39,440 --> 00:15:39,940 335 00:15:39,940 --> 00:15:43,860 DAVID J. MALAN: Op de top van-- oh, met de hand. 336 00:15:43,860 --> 00:15:46,967 Plaats de hand op de top van pindakaas. 337 00:15:46,967 --> 00:15:47,800 Is dat wat ik ga? 338 00:15:47,800 --> 00:15:49,160 >> Publiek: Ja, en schroef. 339 00:15:49,160 --> 00:15:51,370 >> DAVID J. MALAN: en-- zeg het nogmaals. 340 00:15:51,370 --> 00:15:52,696 >> PUBLIEK: [onverstaanbaar] 341 00:15:52,696 --> 00:15:57,990 >> DAVID J. MALAN: En zet de deksel naast de pindakaas. 342 00:15:57,990 --> 00:16:00,370 Licht plaatst de hand op top van pindakaas, 343 00:16:00,370 --> 00:16:03,240 en draai, en doe de deksel naast de pindakaas. 344 00:16:03,240 --> 00:16:14,760 345 00:16:14,760 --> 00:16:16,260 Oké, stap zes. 346 00:16:16,260 --> 00:16:17,520 Stap zes, iemand anders. 347 00:16:17,520 --> 00:16:19,366 Ja? 348 00:16:19,366 --> 00:16:22,740 >> PUBLIEK: [onverstaanbaar] 349 00:16:22,740 --> 00:16:29,197 350 00:16:29,197 --> 00:16:30,405 DAVID J. MALAN: Zeg het nog eens. 351 00:16:30,405 --> 00:16:31,946 Doelgroep: Herhaal stap vijf weer. 352 00:16:31,946 --> 00:16:37,380 DAVID J. MALAN En Herhaal stap vijf weer, 353 00:16:37,380 --> 00:16:39,400 die zal creëren een beetje een probleem 354 00:16:39,400 --> 00:16:42,600 Nu als we het doen van deze stap voor stap. 355 00:16:42,600 --> 00:16:44,640 Dus nu gaan we terug naar stap vijf. 356 00:16:44,640 --> 00:16:47,760 Licht plaatst de hand op de top pindakaas en schroef 357 00:16:47,760 --> 00:16:50,990 en zet het deksel naast de pindakaas. 358 00:16:50,990 --> 00:16:55,340 Begrijpen dan de pindakaas en stap vijf herhalen. 359 00:16:55,340 --> 00:16:58,410 >> Dus we zullen overschrijven dat oneindige lus, als je wil. 360 00:16:58,410 --> 00:17:00,400 Stap zeven, iemand anders. 361 00:17:00,400 --> 00:17:02,918 Ja, in de rug. 362 00:17:02,918 --> 00:17:06,397 >> PUBLIEK: [onverstaanbaar] 363 00:17:06,397 --> 00:17:16,084 364 00:17:16,084 --> 00:17:17,769 >> DAVID J. MALAN: --Betreffende bovenop andere. 365 00:17:17,769 --> 00:17:20,529 >> PUBLIEK: [onverstaanbaar] 366 00:17:20,529 --> 00:17:23,175 >> DAVID J. MALAN: Op de andere hand op de andere top. 367 00:17:23,175 --> 00:17:28,880 368 00:17:28,880 --> 00:17:30,895 Wil je gewoon komen hier? 369 00:17:30,895 --> 00:17:34,750 Hoe kan ik de opdracht te voltooien? 370 00:17:34,750 --> 00:17:37,790 Wat is de rest van de opdracht? 371 00:17:37,790 --> 00:17:39,140 >> Publiek: Het negeren van dat deel. 372 00:17:39,140 --> 00:17:41,050 >> DAVID J. MALAN: negeren van dat deel. 373 00:17:41,050 --> 00:17:44,192 374 00:17:44,192 --> 00:17:44,900 Laten we opnieuw beginnen. 375 00:17:44,900 --> 00:17:45,400 Stap zeven. 376 00:17:45,400 --> 00:17:48,516 377 00:17:48,516 --> 00:17:51,883 >> PUBLIEK: [onverstaanbaar] 378 00:17:51,883 --> 00:17:56,090 >> DAVID J. MALAN: Pak met tegengestelde hand-- dit is goed. 379 00:17:56,090 --> 00:17:58,544 Dit is eigenlijk goed. 380 00:17:58,544 --> 00:18:01,750 >> PUBLIEK: [onverstaanbaar] 381 00:18:01,750 --> 00:18:03,975 >> DAVID J. MALAN En plastic jar-- 382 00:18:03,975 --> 00:18:06,675 >> PUBLIEK: [onverstaanbaar] 383 00:18:06,675 --> 00:18:08,420 >> DAVID J. MALAN En twist-- 384 00:18:08,420 --> 00:18:11,488 >> PUBLIEK: [onverstaanbaar] 385 00:18:11,488 --> 00:18:13,730 >> DAVID J. MALAN: Voor twee seconden. 386 00:18:13,730 --> 00:18:15,800 Open de pot pindakaas. 387 00:18:15,800 --> 00:18:19,020 388 00:18:19,020 --> 00:18:20,632 Ik hoop dat je vergeven. 389 00:18:20,632 --> 00:18:21,840 Dus laten we aannemen dat we daar aankwamen. 390 00:18:21,840 --> 00:18:23,240 Open de pot pindakaas. 391 00:18:23,240 --> 00:18:27,008 392 00:18:27,008 --> 00:18:32,570 >> [Applaus] 393 00:18:32,570 --> 00:18:34,790 >> DAVID J. MALAN: Stap acht, laten we gaan. 394 00:18:34,790 --> 00:18:37,510 Stap acht, ja, in de rug. 395 00:18:37,510 --> 00:18:38,470 >> PUBLIEK: [onverstaanbaar] 396 00:18:38,470 --> 00:18:44,772 397 00:18:44,772 --> 00:18:45,700 >> DAVID J. MALAN: Goed. 398 00:18:45,700 --> 00:18:47,040 Stap negen, ja? 399 00:18:47,040 --> 00:18:48,924 >> PUBLIEK: [onverstaanbaar] 400 00:18:48,924 --> 00:18:51,567 >> DAVID J. MALAN: --out van de pindakaas pot. 401 00:18:51,567 --> 00:18:53,830 En-- en wat? 402 00:18:53,830 --> 00:18:54,729 >> PUBLIEK: [onverstaanbaar] 403 00:18:54,729 --> 00:18:58,222 >> DAVID J. MALAN: En zet mes terug naar pindakaas. 404 00:18:58,222 --> 00:19:11,130 405 00:19:11,130 --> 00:19:12,090 Stap tien. 406 00:19:12,090 --> 00:19:13,050 Stap tien. 407 00:19:13,050 --> 00:19:14,970 >> PUBLIEK: [onverstaanbaar] 408 00:19:14,970 --> 00:19:20,710 >> DAVID J. MALAN: Zet het mes uit, en verwijder de afdichting. 409 00:19:20,710 --> 00:19:23,060 Nice. 410 00:19:23,060 --> 00:19:24,400 Uit de pindakaas. 411 00:19:24,400 --> 00:19:34,490 412 00:19:34,490 --> 00:19:36,406 Oké, stap 11. 413 00:19:36,406 --> 00:19:37,322 >> PUBLIEK: [onverstaanbaar] 414 00:19:37,322 --> 00:19:42,520 415 00:19:42,520 --> 00:19:48,164 >> DAVID J. MALAN: OK, grijze computer volg blauw of rood computer. 416 00:19:48,164 --> 00:19:49,631 Goed. 417 00:19:49,631 --> 00:19:53,054 >> [Applaus] 418 00:19:53,054 --> 00:19:55,920 419 00:19:55,920 --> 00:19:57,170 DAVID J. MALAN: Breng ons naar huis. 420 00:19:57,170 --> 00:19:59,570 Paar meer stappen. 421 00:19:59,570 --> 00:20:00,250 Wat is het volgende? 422 00:20:00,250 --> 00:20:02,590 Stappen 12. 423 00:20:02,590 --> 00:20:04,161 Stap 12. 424 00:20:04,161 --> 00:20:05,123 Ja? 425 00:20:05,123 --> 00:20:14,262 >> PUBLIEK: Zet een van de plakjes brood zachtjes op een van uw handen. 426 00:20:14,262 --> 00:20:17,550 >> DAVID J. MALAN: Een van je handen. 427 00:20:17,550 --> 00:20:20,760 En dan stap 13. 428 00:20:20,760 --> 00:20:21,260 Ja? 429 00:20:21,260 --> 00:20:22,220 >> PUBLIEK: [onverstaanbaar] 430 00:20:22,220 --> 00:20:25,580 431 00:20:25,580 --> 00:20:27,150 >> DAVID J. MALAN: --Betreffende boterham. 432 00:20:27,150 --> 00:20:29,950 Goed. 433 00:20:29,950 --> 00:20:32,260 Best goed. 434 00:20:32,260 --> 00:20:34,990 Stap 14, ja. 435 00:20:34,990 --> 00:20:38,126 >> PUBLIEK: Ongedaan stap 13. 436 00:20:38,126 --> 00:20:39,950 >> DAVID J. MALAN: Ongedaan stap 13. 437 00:20:39,950 --> 00:20:42,690 438 00:20:42,690 --> 00:20:44,770 Laten we overgaan tot gelei. 439 00:20:44,770 --> 00:20:47,900 Het is een 100-stap-programma, maar we waren op stap 15. 440 00:20:47,900 --> 00:20:49,210 Ja. 441 00:20:49,210 --> 00:20:50,170 >> PUBLIEK: [onverstaanbaar] 442 00:20:50,170 --> 00:20:53,050 443 00:20:53,050 --> 00:20:59,570 >> DAVID J. MALAN: 7 tot en met 13 de gelei, omdat die zo goed ging. 444 00:20:59,570 --> 00:21:02,530 Herhaal stap 7 tot 13, met de gelei. 445 00:21:02,530 --> 00:21:07,940 Zo pakt u de onderste helft van de gelei pot met een hand op de top. 446 00:21:07,940 --> 00:21:11,970 Aan de andere kant van de andere top, het negeren van dat deel, 447 00:21:11,970 --> 00:21:15,430 vatten met tegengestelde handen, het deksel en de plastic pot 448 00:21:15,430 --> 00:21:18,300 onderaan en draai twee seconden. 449 00:21:18,300 --> 00:21:19,940 Open vervolgens de gelei pot. 450 00:21:19,940 --> 00:21:23,290 451 00:21:23,290 --> 00:21:26,580 En tot slot, laten we proberen om geef ons iets eetbaar. 452 00:21:26,580 --> 00:21:27,270 Stap 16. 453 00:21:27,270 --> 00:21:35,820 454 00:21:35,820 --> 00:21:37,130 Dus waarom niet we het daarbij laten. 455 00:21:37,130 --> 00:21:38,879 Dank je wel aan onze drie vrijwilligers. 456 00:21:38,879 --> 00:21:41,466 [Applaus] 457 00:21:41,466 --> 00:21:45,920 458 00:21:45,920 --> 00:21:50,300 >> We hebben een kleine CS50 stress-bal voor u. 459 00:21:50,300 --> 00:21:54,540 Het zou gaan om een ​​te zijn sandwich maar-- dus wat 460 00:21:54,540 --> 00:21:57,130 was het punt, voorbij een beetje plezier met het algoritme? 461 00:21:57,130 --> 00:22:00,140 Maar de realiteit is dat zelfs wanneer je bent een computer programmeren, 462 00:22:00,140 --> 00:22:02,050 je nodig hebt super om precies te zijn. 463 00:22:02,050 --> 00:22:04,030 Zo complex of intimiderend als je eigen computer 464 00:22:04,030 --> 00:22:06,670 zou heel goed zijn voor u, bij tenminste als er iets mis gaat, 465 00:22:06,670 --> 00:22:10,150 de realiteit is het een vrij domme apparaat dat werd uitgevonden door ons mensen, 466 00:22:10,150 --> 00:22:13,267 en kan alleen een subset van wat we doen-- soms zeker faster-- 467 00:22:13,267 --> 00:22:15,100 maar weet niet hoe om aannames te maken. 468 00:22:15,100 --> 00:22:18,070 Het weet niet hoe ze op zijn dezelfde golflengte als jij. 469 00:22:18,070 --> 00:22:20,280 >> Het zal alleen precies doen wat je te vertellen. 470 00:22:20,280 --> 00:22:22,070 En u zult worden geslagen, misschien omdat we beginnen 471 00:22:22,070 --> 00:22:24,770 het schrijven van code met de daadwerkelijke eerste probleem sets en daarbuiten, 472 00:22:24,770 --> 00:22:27,490 hoe gemakkelijk het is om te maken een hypothese mens, 473 00:22:27,490 --> 00:22:31,880 en niet verwacht ik moet behandelen Dan, of die hoek zaak 474 00:22:31,880 --> 00:22:34,900 zo te zeggen, dat zou heel goed voordoen indien bijvoorbeeld Sam had de enige 475 00:22:34,900 --> 00:22:38,711 samendrukbare pot gelei, terwijl iedereen had enkele glazen potten als 476 00:22:38,711 --> 00:22:39,210 goed. 477 00:22:39,210 --> 00:22:42,170 Dus voordat we onze aandacht voor een aantal werkelijke code, 478 00:22:42,170 --> 00:22:44,680 laat ik het introduceren hoofden cursus hier bij Yale. 479 00:22:44,680 --> 00:22:49,058 Onze vrienden Scaz, Andy, en Jason om te komen en zeg hallo. 480 00:22:49,058 --> 00:22:52,544 >> [Applaus] 481 00:22:52,544 --> 00:22:58,022 482 00:22:58,022 --> 00:23:01,060 >> SCAZ: We hebben tijdelijk kwijt Jason. 483 00:23:01,060 --> 00:23:02,440 Hi again, iedereen. 484 00:23:02,440 --> 00:23:03,610 Mijn naam is Scaz. 485 00:23:03,610 --> 00:23:06,860 Ik heb les aan Yale sinds 2001. 486 00:23:06,860 --> 00:23:10,820 En als ik niet onderwijzen, mijn onderzoek is in de robotica 487 00:23:10,820 --> 00:23:12,620 en kunstmatige intelligentie. 488 00:23:12,620 --> 00:23:17,700 >> En de aankondiging dat ik vandaag heb is dat het starten in een paar weken, 489 00:23:17,700 --> 00:23:22,170 we gaan worden om enige aanvullend materiaal om CS50 te praten 490 00:23:22,170 --> 00:23:24,510 over intelligence software. 491 00:23:24,510 --> 00:23:28,230 We gaan om te praten over hoe plaatsen zoals Netflix en Hulu 492 00:23:28,230 --> 00:23:31,780 kan raden welke films je zou willen om naar te kijken. 493 00:23:31,780 --> 00:23:35,710 Waar zullen we praten over hoe driver-minder auto's echt werken. 494 00:23:35,710 --> 00:23:39,020 En we zullen in staat zijn om de grond deze dingen in de concepten 495 00:23:39,020 --> 00:23:41,730 dat je het leren in deze klasse vandaag. 496 00:23:41,730 --> 00:23:45,410 >> Omdat al deze dingen zijn gebouwd op hetzelfde fundament. 497 00:23:45,410 --> 00:23:47,396 En dat is wat deze serie zal verkennen. 498 00:23:47,396 --> 00:23:49,520 Dus ik kijk er echt naar uit naar meer van jullie 499 00:23:49,520 --> 00:23:53,260 alles, en je gaat krijgen Bekijk meer van ons allemaal heel snel. 500 00:23:53,260 --> 00:23:56,500 Laat me dan introduceren Jason. 501 00:23:56,500 --> 00:23:57,950 >> JASON: Hallo iedereen. 502 00:23:57,950 --> 00:23:59,290 Mijn naam is Jason. 503 00:23:59,290 --> 00:24:03,540 Ik ging helaas Harvard als een undergrad. 504 00:24:03,540 --> 00:24:07,020 Dat gaat om te snijden uit de werkelijke stroom. 505 00:24:07,020 --> 00:24:09,870 >> En nu ben ik hier als een docent de informatica-afdeling. 506 00:24:09,870 --> 00:24:14,825 En ik ben het helpen lopen de cursus met Scaz, David en Andy. 507 00:24:14,825 --> 00:24:17,140 >> ANDY: Hey guys. 508 00:24:17,140 --> 00:24:17,980 Andy Mijn Naam. 509 00:24:17,980 --> 00:24:21,992 Ik ben eigenlijk de enige Yale student op het podium nu. 510 00:24:21,992 --> 00:24:25,464 >> [Applaus] 511 00:24:25,464 --> 00:24:29,440 512 00:24:29,440 --> 00:24:31,770 >> Ik ben in Berkeley College, oorspronkelijk uit Solon, Ohio. 513 00:24:31,770 --> 00:24:35,240 514 00:24:35,240 --> 00:24:37,930 En ik was een van die kinderen waar, wanneer ik kwam naar Yale, 515 00:24:37,930 --> 00:24:42,030 Ik dacht echt dat ik zou nooit moet je kijken naar een aantal ooit weer. 516 00:24:42,030 --> 00:24:46,240 En toen realiseerde ik me dat je nodig zowel wetenschap als QR credits om af te studeren. 517 00:24:46,240 --> 00:24:51,340 En dus mijn eerste lente, nam ik een klasse, een CS, intro CS klasse hier 518 00:24:51,340 --> 00:24:52,230 aan de Yale. 519 00:24:52,230 --> 00:24:54,710 Ik was als, dit is als eigenlijk best cool. 520 00:24:54,710 --> 00:25:01,330 >> En terwijl ik eigenlijk eindigde verklaren als mondiale zaken belangrijk, de vaardigheden 521 00:25:01,330 --> 00:25:04,910 Ik leerde in CS en programmering zijn dus toepasbaar op elk veld 522 00:25:04,910 --> 00:25:05,970 je kiest om te doen. 523 00:25:05,970 --> 00:25:09,770 En het personeel hier bij Yale, we hebben zo hard aan het werk geweest 524 00:25:09,770 --> 00:25:10,800 voor te bereiden op jullie. 525 00:25:10,800 --> 00:25:13,410 En we kijken uit naar uw komst alle in doorsnede en kantooruren. 526 00:25:13,410 --> 00:25:14,874 Dus ja. 527 00:25:14,874 --> 00:25:18,178 >> [Applaus] 528 00:25:18,178 --> 00:25:19,297 529 00:25:19,297 --> 00:25:20,380 DAVID J. MALAN: Dank je wel. 530 00:25:20,380 --> 00:25:22,940 Dus net voor de les begon, we hadden een kans 531 00:25:22,940 --> 00:25:25,660 te lopen rond de campus met een mobiele telefoon en nemen 532 00:25:25,660 --> 00:25:30,530 sommige selfies in video vorm van echt mijn eerste bezoek aan de campus van Yale's hier. 533 00:25:30,530 --> 00:25:35,420 En dus we dachten dat we zouden delen een ruwe cut precies dit als Scaz en Andy 534 00:25:35,420 --> 00:25:37,970 en Jason nam me rond de campus. 535 00:25:37,970 --> 00:25:43,662 536 00:25:43,662 --> 00:25:44,328 [VIDEO AFSPELEN] 537 00:25:44,328 --> 00:25:47,322 [SIRENS] 538 00:25:47,322 --> 00:25:49,318 -David. 539 00:25:49,318 --> 00:25:50,132 -Welkom In Yale. 540 00:25:50,132 --> 00:25:50,840 -Goed om je te zien. 541 00:25:50,840 --> 00:25:52,410 -Fijn om je te zien. 542 00:25:52,410 --> 00:25:53,340 -Kan We gaan op een tour? 543 00:25:53,340 --> 00:25:56,845 -Laat Gaan op een tour. 544 00:25:56,845 --> 00:25:57,523 -Road Tour. 545 00:25:57,523 --> 00:25:59,106 -Deze Teken is er al een tijdje. 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 >> -Opschieten! 549 00:26:05,293 --> 00:26:08,970 Go, go, go, go. 550 00:26:08,970 --> 00:26:12,340 Je moet [onverstaanbaar] Harkness Tower. 551 00:26:12,340 --> 00:26:13,850 >> -En Zagen we dat een paar keer. 552 00:26:13,850 --> 00:26:16,760 553 00:26:16,760 --> 00:26:20,155 >> [Applaus] 554 00:26:20,155 --> 00:26:21,130 555 00:26:21,130 --> 00:26:22,890 >> -Kijk Uit voor de fiets! 556 00:26:22,890 --> 00:26:24,500 Ahh! 557 00:26:24,500 --> 00:26:25,030 Hallo Frank. 558 00:26:25,030 --> 00:26:26,314 >> -Wat is er jongens? 559 00:26:26,314 --> 00:26:26,855 -Hoe gaat het met je? 560 00:26:26,855 --> 00:26:28,474 -Goed om je te zien. 561 00:26:28,474 --> 00:26:29,390 -Welkom In de video. 562 00:26:29,390 --> 00:26:32,270 Doe niet te opgewonden. 563 00:26:32,270 --> 00:26:34,502 >> -Ik Hou Silliman. 564 00:26:34,502 --> 00:26:36,430 Ahh! 565 00:26:36,430 --> 00:26:39,780 >> -Het Is al ongeveer drie uur geleden Jason had ijs en Nutella. 566 00:26:39,780 --> 00:26:43,189 Dus we hebben om terug te stoppen bij Silliman voor een klein beetje. 567 00:26:43,189 --> 00:26:45,137 >> -Het Is niet eens [onverstaanbaar] Maar alleen het feit 568 00:26:45,137 --> 00:26:47,270 dat ze het hier hebben is zo geweldig. 569 00:26:47,270 --> 00:26:49,830 Dude, er is Nutella bij elke maaltijd. 570 00:26:49,830 --> 00:26:51,830 >> -Er Was vorig jaar ook. 571 00:26:51,830 --> 00:26:54,220 >> -Ja. 572 00:26:54,220 --> 00:26:56,440 >> -Vertel veel over Yale dusver. 573 00:26:56,440 --> 00:26:58,485 Maar ik weet nu dat TD daar. 574 00:26:58,485 --> 00:26:59,860 En dat wordt beschouwd als buiten de campus. 575 00:26:59,860 --> 00:27:03,659 >> -Hier Hebben we gotische architectuur. 576 00:27:03,659 --> 00:27:04,200 Wereld beroemd. 577 00:27:04,200 --> 00:27:06,758 We hebben wat meer gotische architectuur. 578 00:27:06,758 --> 00:27:10,614 En de bouw, en meer gotische architectuur. 579 00:27:10,614 --> 00:27:11,114 Hoi. 580 00:27:11,114 --> 00:27:15,470 Dit is waar we hebben kantooruren Dinsdag tot donderdag in Zweinstein, 581 00:27:15,470 --> 00:27:16,922 als [onverstaanbaar]. 582 00:27:16,922 --> 00:27:20,620 583 00:27:20,620 --> 00:27:21,120 -Prima. 584 00:27:21,120 --> 00:27:22,078 Dat is het voor de tour. 585 00:27:22,078 --> 00:27:24,030 We zijn aan de Yale University's Law School, waar 586 00:27:24,030 --> 00:27:25,870 lezing van vandaag is ongeveer plaatsvinden. 587 00:27:25,870 --> 00:27:29,220 Laten we het hoofd in. 588 00:27:29,220 --> 00:27:30,375 >> [END AFSPELEN] 589 00:27:30,375 --> 00:27:32,370 >> DAVID J. MALAN En dat brengt ons hier nu. 590 00:27:32,370 --> 00:27:38,040 591 00:27:38,040 --> 00:27:40,770 Tot dusver hebben we geweest nadruk op pseudocode, 592 00:27:40,770 --> 00:27:42,430 dat is dit Engels-achtige syntax. 593 00:27:42,430 --> 00:27:45,030 Er is geen voorgeschreven specificatie. 594 00:27:45,030 --> 00:27:47,030 Het is gewoon je wat gebruiken intuïtieve taal als je 595 00:27:47,030 --> 00:27:48,950 willen uitleggen wat u wilt doen. 596 00:27:48,950 --> 00:27:52,270 >> Maar laten we beginnen nu om de overgang code, zoals de meeste mensen zouden zeggen. 597 00:27:52,270 --> 00:27:54,880 Maar preciezer, wat bekend als broncode. 598 00:27:54,880 --> 00:27:58,210 Dit is de taal die de mens schrijven dat computers ultimately-- 599 00:27:58,210 --> 00:28:00,780 eventueel na een aantal steps-- uiteindelijk begrijpt 600 00:28:00,780 --> 00:28:02,530 om zo te weten hoe iets te doen. 601 00:28:02,530 --> 00:28:05,120 Dat zag je een glimp van dit misschien op woensdag. 602 00:28:05,120 --> 00:28:07,780 >> Dit is een voorbeeld dat ongelooflijk, underwhelming 603 00:28:07,780 --> 00:28:10,220 wanneer deze wordt uitgevoerd zegt eenvoudig "Hello World". 604 00:28:10,220 --> 00:28:13,510 En het is geschreven in een taal genaamd C, die syntactisch vergelijkbaar 605 00:28:13,510 --> 00:28:15,676 een heleboel andere talen die u misschien niet weet, 606 00:28:15,676 --> 00:28:18,409 maar misschien van gehoord hebben, zoals Java, en C ++, en Python en Ruby, 607 00:28:18,409 --> 00:28:21,200 en dergelijke, en inderdaad, we een groot deel van het semester met behulp van C, 608 00:28:21,200 --> 00:28:23,530 en vervolgens naar het einde van de semester, voortbouwende, 609 00:28:23,530 --> 00:28:25,446 en de invoering van eventuele aantal andere talen. 610 00:28:25,446 --> 00:28:28,810 Onder hen PHP en JavaScript, een databasetaal genaamd SQL. 611 00:28:28,810 --> 00:28:31,526 Maar met C, wat we zullen moeten Deze bottom-up begrip 612 00:28:31,526 --> 00:28:33,900 precies hoe computers werken, wat u kunt doen met hen, 613 00:28:33,900 --> 00:28:37,252 en hoe je problemen op te lossen des te effectiever deze 614 00:28:37,252 --> 00:28:39,460 gelaagdheid die we besproken op woensdag, en staan 615 00:28:39,460 --> 00:28:40,870 op de schouders van anderen. 616 00:28:40,870 --> 00:28:42,200 Maar meer daarover te komen. 617 00:28:42,200 --> 00:28:46,650 >> Vandaag kijken we naar een eenvoudiger omgeving, maar een fundamenteel identieke 618 00:28:46,650 --> 00:28:49,970 milieu bekend als Kras door onze vrienden aan het MIT Media Lab. 619 00:28:49,970 --> 00:28:52,570 Dit is een grafische programmeertaal, Scratch, 620 00:28:52,570 --> 00:28:54,330 waarbij je kunt slepen en drop dingen die 621 00:28:54,330 --> 00:28:57,430 uitzien als puzzelstukjes die Alleen als het maakt interlock 622 00:28:57,430 --> 00:28:59,872 logisch of programmatische zin te doen. 623 00:28:59,872 --> 00:29:02,330 Maar het zal ons in staat stellen hebben een gesprek over alle 624 00:29:02,330 --> 00:29:04,604 van dezelfde programmering fundamenten die sommigen van jullie 625 00:29:04,604 --> 00:29:06,520 misschien al weet, dat velen van jullie misschien niet 626 00:29:06,520 --> 00:29:09,670 weet niets van zonder om eerlijk te verzanden, 627 00:29:09,670 --> 00:29:13,150 in het intellectueel oninteressant syntax van puntkomma's, 628 00:29:13,150 --> 00:29:14,950 en haakjes, en citeert, en dergelijke. 629 00:29:14,950 --> 00:29:16,910 Dit alles, vroegtijdige op, zijn een afleiding 630 00:29:16,910 --> 00:29:20,322 wat interessant zijn en echt bruikbare ideeën. 631 00:29:20,322 --> 00:29:22,280 Dus laten we eens een snelle blik op het milieu 632 00:29:22,280 --> 00:29:24,180 hier, zodat je weet wat te wachten staat. 633 00:29:24,180 --> 00:29:28,060 En in feite, een van de spelletjes die we kan spelen zijn een paar programma's geschreven 634 00:29:28,060 --> 00:29:30,810 door de eigen oud-studenten CS50's. 635 00:29:30,810 --> 00:29:36,200 Een van hen, mezelf, ik zal dit worden geschreven in graduate school voor mij. 636 00:29:36,200 --> 00:29:39,030 >> Als ik een vrijwilliger kon nemen die bereid is om te spelen 637 00:29:39,030 --> 00:29:40,420 een spel voor de allereerste keer. 638 00:29:40,420 --> 00:29:40,920 Tuurlijk. 639 00:29:40,920 --> 00:29:41,690 Kom op maximaal. 640 00:29:41,690 --> 00:29:42,565 Hoe heet je? 641 00:29:42,565 --> 00:29:43,372 >> Publiek: Angela. 642 00:29:43,372 --> 00:29:44,830 DAVID J. MALAN: Angela, kom op up. 643 00:29:44,830 --> 00:29:47,220 Dus Scratch is uit voor een paar jaar. 644 00:29:47,220 --> 00:29:49,960 En toen ik in graduate school, Ik was kruis ingeschreven bij MIT, 645 00:29:49,960 --> 00:29:53,392 het nemen van professor Mitchel Resnick's cursus over educatieve technologieën. 646 00:29:53,392 --> 00:29:56,350 En we waren een van de eerste studenten in de wereld om daadwerkelijk beta 647 00:29:56,350 --> 00:29:57,120 Scratch-test. 648 00:29:57,120 --> 00:30:00,090 En mijn project was wat Angela heeft nu genadig vrijwilliger 649 00:30:00,090 --> 00:30:02,060 om te spelen genaamd Oscartime. 650 00:30:02,060 --> 00:30:04,507 >> Dus ik ga om verder te gaan en dubbel klik hier op het pictogram. 651 00:30:04,507 --> 00:30:07,590 Het gaat om het openen van een programmering omgeving die we binnenkort zullen induiken. 652 00:30:07,590 --> 00:30:09,720 Ik ga naar full-screen het voor Angela, hier. 653 00:30:09,720 --> 00:30:12,490 Ik ga naar de green te raken vlag in slechts een moment. 654 00:30:12,490 --> 00:30:15,130 En dan een hele hoop troep gaat uit de lucht vallen. 655 00:30:15,130 --> 00:30:17,830 En je gaat om de muis te gebruiken hier om daadwerkelijk te slepen en neerzetten 656 00:30:17,830 --> 00:30:20,169 de prullenbak in Oscar's vuilnisbakken. 657 00:30:20,169 --> 00:30:23,210 Dus als je wilt gaan en klik op de groene vlag, zal het spel beginnen. 658 00:30:23,210 --> 00:30:26,890 >> [Muziek] 659 00:30:26,890 --> 00:30:29,980 >> Oh, ik hou van afval. 660 00:30:29,980 --> 00:30:34,840 Iets vuil of smerig of stoffig. 661 00:30:34,840 --> 00:30:39,300 Iets haveloze of verrot, of roestig. 662 00:30:39,300 --> 00:30:43,155 Ja, ik hou van afval. 663 00:30:43,155 --> 00:30:45,530 Als je echt wilt zien iets trashy, kijk naar dit. 664 00:30:45,530 --> 00:30:49,570 Ik heb hier een sneaker dat is aan flarden en versleten. 665 00:30:49,570 --> 00:30:53,750 Het is allemaal vol gaten houdt en de veters zijn gescheurd. 666 00:30:53,750 --> 00:30:57,590 Een geschenk van mijn moeder de dag dat ik geboren werd. 667 00:30:57,590 --> 00:30:59,434 Ik hou ervan omdat it's-- 668 00:30:59,434 --> 00:31:02,600 DAVID J. MALAN: --green deze dagen gewoon te gooien alles in de prullenbak. 669 00:31:02,600 --> 00:31:04,312 En dus wat één van CS50 eigen personeel did-- 670 00:31:04,312 --> 00:31:06,270 Jordan, die je misschien voldoen today-- heeft eigenlijk 671 00:31:06,270 --> 00:31:08,030 Deze update voor tijden van vandaag. 672 00:31:08,030 --> 00:31:10,800 En zo sta me open te stellen een remix plaats voor Angela. 673 00:31:10,800 --> 00:31:13,600 En we zullen deze plaats spelen een paar momenten, waar je nu bent 674 00:31:13,600 --> 00:31:16,600 zullen moeten kiezen tussen of om iets in de prullenbak te gooien, 675 00:31:16,600 --> 00:31:19,050 of recyclen of composteren het. 676 00:31:19,050 --> 00:31:21,280 Dus er is een beetje druk op je te krijgen 677 00:31:21,280 --> 00:31:28,040 dit recht in de voorkant van je 392 tot 497 klasgenoten hier in de zaal, 678 00:31:28,040 --> 00:31:28,724 als je dat zou doen. 679 00:31:28,724 --> 00:31:29,390 [VIDEO AFSPELEN] 680 00:31:29,390 --> 00:31:32,540 [Muziek] 681 00:31:32,540 --> 00:31:36,280 Oh ik hou prullenbak. 682 00:31:36,280 --> 00:31:40,840 Iets vuil of smerig of stoffig. 683 00:31:40,840 --> 00:31:44,910 Iets haveloze of verrot of roestig. 684 00:31:44,910 --> 00:31:48,830 Ja, ik hou van afval. 685 00:31:48,830 --> 00:31:51,480 >> Als je echt wilt zien iets trashy, kijk naar dit. 686 00:31:51,480 --> 00:31:55,540 Ik heb hier een sneaker dat is aan flarden en versleten. 687 00:31:55,540 --> 00:31:59,440 Het is allemaal vol gaten en de veters zijn gescheurd. 688 00:31:59,440 --> 00:32:03,762 Een geschenk van mijn moeder de dag dat ik geboren werd. 689 00:32:03,762 --> 00:32:07,630 Ik hou ervan omdat het afval. 690 00:32:07,630 --> 00:32:11,570 >> Oh, ik hou van afval. 691 00:32:11,570 --> 00:32:15,512 Iets vies of smerig of stoffig. 692 00:32:15,512 --> 00:32:20,200 Iets haveloze of verrot of roestig. 693 00:32:20,200 --> 00:32:23,856 Ja, ik hou van afval. 694 00:32:23,856 --> 00:32:26,246 Hier is wat meer rotte dingen. 695 00:32:26,246 --> 00:32:28,240 Ik heb hier een aantal newspaper-- 696 00:32:28,240 --> 00:32:28,889 >> [END AFSPELEN] 697 00:32:28,889 --> 00:32:30,680 DAVID J. MALAN: --are daadwerkelijk composteerbaar. 698 00:32:30,680 --> 00:32:32,790 Maar dank aan onze vrijwilligers, Angela. 699 00:32:32,790 --> 00:32:37,920 We hebben een stress-bal voor u hier ook. 700 00:32:37,920 --> 00:32:38,790 Dus dank je wel. 701 00:32:38,790 --> 00:32:40,250 >> Zo werd deze door mij geschreven. 702 00:32:40,250 --> 00:32:44,324 Maar nu een voor een echte oud-student die dit uitgevoerd, dat een spel. 703 00:32:44,324 --> 00:32:46,490 Alle in deze taal genoemd Kras, dat we binnenkort 704 00:32:46,490 --> 00:32:47,850 afpellen van de lagen. 705 00:32:47,850 --> 00:32:49,940 Maar als we zouden like-- hoe over een andere vrijwilliger? 706 00:32:49,940 --> 00:32:50,440 Rechts. 707 00:32:50,440 --> 00:32:50,970 >> Kom op maximaal. 708 00:32:50,970 --> 00:32:52,070 Hoe heet je? 709 00:32:52,070 --> 00:32:52,570 Oogopslag? 710 00:32:52,570 --> 00:32:53,280 Lance. 711 00:32:53,280 --> 00:32:54,082 Lans, kom op. 712 00:32:54,082 --> 00:32:54,790 Leuk je te ontmoeten. 713 00:32:54,790 --> 00:32:56,170 Kom op deze manier. 714 00:32:56,170 --> 00:32:59,940 Dus dit zou een hebben thema bekend om een ​​aantal van jullie. 715 00:32:59,940 --> 00:33:02,180 Maar je zult ook zien dat er kunnen interactiviteit zijn, 716 00:33:02,180 --> 00:33:05,242 waarbij je eigenlijk zou kunnen zijn de rol van het karakter bewegen. 717 00:33:05,242 --> 00:33:05,950 Leuk je te ontmoeten. 718 00:33:05,950 --> 00:33:06,470 David. 719 00:33:06,470 --> 00:33:10,464 >> Ik geef je, Pikachu. 720 00:33:10,464 --> 00:33:12,380 Instructies over komen op het scherm. 721 00:33:12,380 --> 00:33:16,070 Maar in het kort, je gaat willen de lekkere dingen te vangen, 722 00:33:16,070 --> 00:33:18,827 en te voorkomen dat de bommen en andere dingen. 723 00:33:18,827 --> 00:33:19,910 Met de cursors geheel. 724 00:33:19,910 --> 00:33:21,320 Zo raakte de spatiebalk. 725 00:33:21,320 --> 00:33:21,820 -Pikachu. 726 00:33:21,820 --> 00:33:23,480 DAVID J. MALAN: Catch het spul aan de linkerkant, 727 00:33:23,480 --> 00:33:24,938 niet de spullen op het recht om niet te vangen. 728 00:33:24,938 --> 00:33:27,576 729 00:33:27,576 --> 00:34:44,540 >> [Muziek] 730 00:34:44,540 --> 00:34:46,332 >> Dus een laatste hier. 731 00:34:46,332 --> 00:34:48,040 Als we één konden meer vrijwilligers hier. 732 00:34:48,040 --> 00:34:50,760 We dachten dat we iets zouden herscheppen van-- in de gele shirt-- 733 00:34:50,760 --> 00:34:53,110 van woensdag. 734 00:34:53,110 --> 00:34:54,540 Hoe heet je? 735 00:34:54,540 --> 00:34:57,090 Mary, kom op maximaal Mary. 736 00:34:57,090 --> 00:35:01,340 >> En herinner op woensdag we geïntroduceerd de notie van binaire en binaire bollen. 737 00:35:01,340 --> 00:35:03,930 Dit is nu een echt toepassing van dezelfde interface- 738 00:35:03,930 --> 00:35:07,360 dat we op de iPad met het licht bollen, maar hier digitaal teruggegeven. 739 00:35:07,360 --> 00:35:11,220 En dan doe een stress- ball-- leuk je te ontmoeten, David. 740 00:35:11,220 --> 00:35:14,600 Wij brachten een paar lichte bollen van Cambridge. 741 00:35:14,600 --> 00:35:18,650 >> Als je kunt klikken op die bollen om ze aan en uit zetten, 742 00:35:18,650 --> 00:35:29,510 komen met de binaire vertegenwoordiging van zeg 256. 743 00:35:29,510 --> 00:35:32,500 En je zult zien in de midden, de huidige telling. 744 00:35:32,500 --> 00:35:33,690 Zodat men er op. 745 00:35:33,690 --> 00:35:34,810 Zodat de meest linkse bit is. 746 00:35:34,810 --> 00:35:36,016 >> MARY: Ja, [onverstaanbaar] 747 00:35:36,016 --> 00:35:39,292 748 00:35:39,292 --> 00:35:41,280 >> DAVID J. MALAN: Nou, dus we hebben gewoon-- oh. 749 00:35:41,280 --> 00:35:42,780 Dus dit is de kolom 128. 750 00:35:42,780 --> 00:35:44,460 Dus we zijn tot 128. 751 00:35:44,460 --> 00:35:46,769 We kregen tot 256 te krijgen. 752 00:35:46,769 --> 00:35:48,560 En u kunt sleutelen aan en uit, geen big deal. 753 00:35:48,560 --> 00:35:53,700 Of je kunt raken, dat 128 keer als je wilt. 754 00:35:53,700 --> 00:35:56,310 >> Oké, goed. 755 00:35:56,310 --> 00:35:58,090 24. 756 00:35:58,090 --> 00:35:59,790 Ja, steeds dichterbij. 757 00:35:59,790 --> 00:36:02,105 Dichterbij! 758 00:36:02,105 --> 00:36:05,980 Oh, wat is het probleem dan? 759 00:36:05,980 --> 00:36:07,510 Dus wat is het probleem? 760 00:36:07,510 --> 00:36:10,040 >> Dus wat hebben we nodig om dit probleem oplossen? 761 00:36:10,040 --> 00:36:11,060 Dus we nog een stukje nodig. 762 00:36:11,060 --> 00:36:12,770 Dit is volkomen redelijk in werkelijkheid, toch? 763 00:36:12,770 --> 00:36:15,800 Als u wilt tellen van het aantal 1 2 tot 3 4 tot 5, 6, 7, 8, 9 764 00:36:15,800 --> 00:36:18,880 om daadwerkelijk te rollen tot 10, je bent zal een extra bits nodig. 765 00:36:18,880 --> 00:36:21,240 Dus laten we eigenlijk terugspoelen hier, en komen 766 00:36:21,240 --> 00:36:23,790 met-- dat was natuurlijk bedoeld om een ​​set-up te zijn. 767 00:36:23,790 --> 00:36:25,590 >> Je kunt niet doen 256 met slechts een lamp. 768 00:36:25,590 --> 00:36:29,290 Dus hoe zit gewoon de nummer 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 Excellent. 772 00:36:35,100 --> 00:36:39,050 Een groot applaus voor Mary en haar ook. 773 00:36:39,050 --> 00:36:41,840 Dankjewel. 774 00:36:41,840 --> 00:36:45,570 >> Dus dit topic-- opzettelijke als dat was-- daadwerkelijk zal terugkeren. 775 00:36:45,570 --> 00:36:50,020 De grootste waarde die u kunt vertegenwoordigen met acht bits of een byte, 776 00:36:50,020 --> 00:36:51,750 inderdaad 256. 777 00:36:51,750 --> 00:36:55,770 Maar niet als je begint geteld vanaf 0, zoals we 778 00:36:55,770 --> 00:36:58,060 lijken te blijven doen door het hebben al die stukjes af. 779 00:36:58,060 --> 00:37:01,530 Maar laten we nu duiken in de onderliggende uitvoering van deze omgeving, 780 00:37:01,530 --> 00:37:03,200 en plagen elkaar een aantal van deze ideeën. 781 00:37:03,200 --> 00:37:06,350 >> Dus we in een ogenblik staan ​​op het punt om een ​​te zien paar verschillende programmering fundamentals. 782 00:37:06,350 --> 00:37:08,080 De eerste daarvan noemen we statement. 783 00:37:08,080 --> 00:37:09,360 Soort van werkwoorden, als je wil. 784 00:37:09,360 --> 00:37:09,960 Acties. 785 00:37:09,960 --> 00:37:11,180 Dingen die moeten worden gedaan. 786 00:37:11,180 --> 00:37:13,430 >> En op een moment dat je zult zien blokken die er zo uitzien. 787 00:37:13,430 --> 00:37:14,940 Zeg "hello wereld", bijvoorbeeld. 788 00:37:14,940 --> 00:37:16,330 Of wacht een seconde. 789 00:37:16,330 --> 00:37:17,834 Of speel geluid meow. 790 00:37:17,834 --> 00:37:20,500 En inderdaad het milieu die we gaan om dit te doen 791 00:37:20,500 --> 00:37:21,610 heet Scratch. 792 00:37:21,610 --> 00:37:25,060 >> En als ik trek Scratch zonder voorspanning een daadwerkelijke code, 793 00:37:25,060 --> 00:37:27,830 laten we eens een snelle blik op deze gebruikersinterface zogezegd. 794 00:37:27,830 --> 00:37:29,730 De controles waarmee we met elkaar omgaan. 795 00:37:29,730 --> 00:37:32,840 Op de top hier links van de scherm, onder de menu's, 796 00:37:32,840 --> 00:37:34,650 we hebben het podium, om zo te zeggen. 797 00:37:34,650 --> 00:37:36,550 Dus Scratch is wat we Sprite zullen noemen. 798 00:37:36,550 --> 00:37:37,520 Het is een teken. 799 00:37:37,520 --> 00:37:40,660 >> Hij kan worden geregeld door het schrijven van programma's tegen hem. 800 00:37:40,660 --> 00:37:43,950 En hij zal in staat zijn om op en neer te bewegen en links en rechts in deze omgeving, 801 00:37:43,950 --> 00:37:46,075 niet alleen door het verplaatsen van de muis, maar programmatisch. 802 00:37:46,075 --> 00:37:48,930 Ik kan u vertellen hem rechts lopen, lopen links, omhoog, omlaag of iets dergelijks. 803 00:37:48,930 --> 00:37:51,440 En ik kan andere invoeren sprites of karakters als goed. 804 00:37:51,440 --> 00:37:54,616 >> Immers, op de bodem hier is waar zult u uw lijst met sprites zien. 805 00:37:54,616 --> 00:37:56,865 Op dit moment heb ik alleen , maar ik kan meer te maken, 806 00:37:56,865 --> 00:37:58,880 en ze zullen precies daar verschijnen. 807 00:37:58,880 --> 00:38:02,630 Dus als je terugspoelen voor een moment, zoals Oscartime-- bijvoorbeeld Oscar, 808 00:38:02,630 --> 00:38:04,590 links, de prullenbak kan, was een sprite. 809 00:38:04,590 --> 00:38:07,450 En het ding in het midden, de recycling bin, was een andere sprite. 810 00:38:07,450 --> 00:38:09,300 En de compostbak was een andere sprite. 811 00:38:09,300 --> 00:38:11,790 En elk stuk van vuilnis of recyclebare 812 00:38:11,790 --> 00:38:14,590 die werd uit de lucht vallen Ook een sprite, die elk 813 00:38:14,590 --> 00:38:16,150 werd individueel geprogrammeerd. 814 00:38:16,150 --> 00:38:17,040 >> Hoe doe je het programma? 815 00:38:17,040 --> 00:38:20,180 Nou, hier rechts kant is de scripts gebied. 816 00:38:20,180 --> 00:38:22,930 En dit is waar we kunnen slepen en neerzetten puzzelstukjes. 817 00:38:22,930 --> 00:38:26,066 In een week, gaat het om waar we equivalent code schrijven 818 00:38:26,066 --> 00:38:28,940 met meer van een toetsenbord, maar vandaag het zal slepen en neerzetten 819 00:38:28,940 --> 00:38:31,680 puzzelstukjes, de paletten die kunnen allemaal 820 00:38:31,680 --> 00:38:33,190 hier worden gevonden in het midden. 821 00:38:33,190 --> 00:38:35,190 Inderdaad, in het midden Hier is er een hele hoop 822 00:38:35,190 --> 00:38:37,910 categorieën van de puzzel stukken of blokken. 823 00:38:37,910 --> 00:38:42,500 Men heeft te maken met de beweging, kijk, geluid, een pen op en neer gaan, 824 00:38:42,500 --> 00:38:43,860 data, evenementen regelen. 825 00:38:43,860 --> 00:38:45,654 Niet helemaal zeker nog Wat al deze betekenen, 826 00:38:45,654 --> 00:38:47,820 maar je zult zien dat ze hebben is mooi ingedeeld. 827 00:38:47,820 --> 00:38:50,680 En om een ​​programma in te schrijven Kras, laten we precies dat. 828 00:38:50,680 --> 00:38:53,480 >> Ik ga om te beginnen onder Gebeurtenissen, en sleep hier deze. 829 00:38:53,480 --> 00:38:55,470 Wanneer groene vlag geklikt. 830 00:38:55,470 --> 00:38:56,704 Nu waarom dat? 831 00:38:56,704 --> 00:38:59,120 Goed herinneren dat onze vrijwilligers kwam, het eerste wat ik 832 00:38:59,120 --> 00:39:02,017 of ze deden was klik dat groene vlag in de rechter bovenhoek. 833 00:39:02,017 --> 00:39:03,600 En dat betekent het programma te starten. 834 00:39:03,600 --> 00:39:06,560 >> Dus toen die gebeurtenis gebeurt, wat wil ik doen? 835 00:39:06,560 --> 00:39:10,070 Ik ga om te gaan onder Looks, en ik ga doen "hallo te zeggen." 836 00:39:10,070 --> 00:39:14,000 En ik ga om dit te veranderen en iets zeggen als "hallo Yale." 837 00:39:14,000 --> 00:39:16,970 En nu ga ik om in te zoomen out, klikt u op de groene vlag, 838 00:39:16,970 --> 00:39:19,050 en voila, heb ik een programma geschreven. 839 00:39:19,050 --> 00:39:20,990 Het is niet allemaal zo spannend gewoon nog niet, maar dit 840 00:39:20,990 --> 00:39:23,195 precies waar elke van die auteur begonnen, 841 00:39:23,195 --> 00:39:25,740 beide met Pikachu, en de binair bollen en Oscartime, 842 00:39:25,740 --> 00:39:26,890 en zo veel meer voorbeelden. 843 00:39:26,890 --> 00:39:29,150 >> Je begint super eenvoudig, en dan moet je beginnen te laag, 844 00:39:29,150 --> 00:39:31,046 en add-on functies en functionaliteit. 845 00:39:31,046 --> 00:39:32,920 Dus wat zijn deze lagen gaat uit? 846 00:39:32,920 --> 00:39:36,086 Nou, dan verklaringen, zullen we ook hebben dingen die weinig meer fancily 847 00:39:36,086 --> 00:39:38,910 genaamd Boolean Expressions, nadat iemand genaamd Bool. 848 00:39:38,910 --> 00:39:42,820 En een Booleaanse uitdrukking is gewoon een uitdrukking dat is waar of onwaar, 849 00:39:42,820 --> 00:39:45,740 ja of nee, 1 of 0. 850 00:39:45,740 --> 00:39:47,480 >> Elke tegenpolen als dat. 851 00:39:47,480 --> 00:39:48,902 Het is waar of niet. 852 00:39:48,902 --> 00:39:51,360 Maar we ook gaan zien degenen die zouden kunnen uitzien. 853 00:39:51,360 --> 00:39:52,925 Zo is bijvoorbeeld de muis naar beneden? 854 00:39:52,925 --> 00:39:54,550 Ze zijn soort vragen, als je wil. 855 00:39:54,550 --> 00:39:57,650 >> De muis is ofwel naar beneden, waar of het is niet vals. 856 00:39:57,650 --> 00:39:59,990 1 of 0, als je wil, neigt de mapping. 857 00:39:59,990 --> 00:40:01,740 Waar is 1, vals is 0. 858 00:40:01,740 --> 00:40:03,740 Tja, wat over minder dan dit? 859 00:40:03,740 --> 00:40:05,400 Of zo, dit is minder dan dit? 860 00:40:05,400 --> 00:40:06,650 Dat is een kwestie van soorten. 861 00:40:06,650 --> 00:40:09,140 >> En als je twee getallen daar, ofwel x 862 00:40:09,140 --> 00:40:12,010 gaat minder dan y of zijn y gelijk is aan of groter dan y, 863 00:40:12,010 --> 00:40:14,635 maar dit blok we zullen zien, is gewoon gaat om de vraag te beantwoorden, 864 00:40:14,635 --> 00:40:15,810 Hierdoor kleiner dan? 865 00:40:15,810 --> 00:40:17,650 We kunnen ook iets als dit. 866 00:40:17,650 --> 00:40:18,790 Aanraken muisaanwijzers. 867 00:40:18,790 --> 00:40:21,610 Dus in Scratch, kunt u vragen de vraag, is de Sprite 868 00:40:21,610 --> 00:40:22,800 aanraken van de muis? 869 00:40:22,800 --> 00:40:26,040 Met andere woorden, is de cursor zweven over de kap, of het equivalent? 870 00:40:26,040 --> 00:40:28,100 >> We zullen Anding dingen samen. 871 00:40:28,100 --> 00:40:30,970 U kunt twee vragen stellen, en Zorg ervoor dat beiden 872 00:40:30,970 --> 00:40:34,920 geef je ja of echte antwoorden vóór het maken van een beslissing om iets te doen. 873 00:40:34,920 --> 00:40:36,709 Maar hoe doe je beslissingen te nemen? 874 00:40:36,709 --> 00:40:38,000 Nou, we hebben deze voorwaarden. 875 00:40:38,000 --> 00:40:40,041 >> En we zagen dit in onze voorbeeld van het telefoonboek. 876 00:40:40,041 --> 00:40:41,900 Op zoek naar links of recht voor Mike Smith. 877 00:40:41,900 --> 00:40:45,140 En in de staat, u iets doen potentieel, 878 00:40:45,140 --> 00:40:47,240 als een Booleaanse expressie waar is. 879 00:40:47,240 --> 00:40:48,720 >> En inderdaad, ziet nu de vormen. 880 00:40:48,720 --> 00:40:52,250 Er is dit placeholder nu het bovenste deel waar we fit-- 881 00:40:52,250 --> 00:40:54,532 als ik terugspoelen een slide-- die vorm. 882 00:40:54,532 --> 00:40:55,740 Het is niet helemaal dezelfde grootte. 883 00:40:55,740 --> 00:40:58,400 En inderdaad, zult u zien dat Kras resizes dingen dynamisch 884 00:40:58,400 --> 00:41:01,479 te passen puzzel stukjes, maar de vorm is wat belangrijk is. 885 00:41:01,479 --> 00:41:03,270 Dit ding ziet eruit als dat, en inderdaad is 886 00:41:03,270 --> 00:41:05,410 ruwweg dezelfde vorm die moet er passen. 887 00:41:05,410 --> 00:41:09,520 En als we iets willen doen deze manier of op die manier, als anders, 888 00:41:09,520 --> 00:41:12,080 hebben we deze puzzel stuk in Scratch ook. 889 00:41:12,080 --> 00:41:17,450 >> Stel nu dat je wilde doen als, anders als, of anders. 890 00:41:17,450 --> 00:41:20,120 Met andere woorden, een drie-weg splitsing in de weg. 891 00:41:20,120 --> 00:41:22,656 Tja, wat kan je doen alleen door een blik op deze? 892 00:41:22,656 --> 00:41:25,030 Ik kan dit puzzelstukje te nemen, en het lijkt niet te passen, 893 00:41:25,030 --> 00:41:27,670 maar nogmaals, Scratch gaat re-size mooi voor ons. 894 00:41:27,670 --> 00:41:29,940 Ik kon beginnen te laag deze dingen samen. 895 00:41:29,940 --> 00:41:32,900 >> Dus nu heb ik een drie-weg vork als dit waar is, doe dit. 896 00:41:32,900 --> 00:41:36,560 Anders als dat andere ding is waar, gaan op deze manier, anders gaat dit andersom. 897 00:41:36,560 --> 00:41:39,200 En in The Muppet Movie, de splitsing, zogezegd, 898 00:41:39,200 --> 00:41:42,610 tussen Yale of Stanford, was precies dat, slechts twee voorwaarden. 899 00:41:42,610 --> 00:41:45,190 Ofwel gaan op deze manier, anders te gaan op die manier. 900 00:41:45,190 --> 00:41:46,940 >> Nou, lussen bestaan ​​ook in de programmering. 901 00:41:46,940 --> 00:41:49,100 En we hebben deze al in gebruik klasse en in pseudo-code, 902 00:41:49,100 --> 00:41:51,060 en zeker in die Kras programma altijd. 903 00:41:51,060 --> 00:41:53,730 Scratch heeft dit puzzelstukje dat gewoon laat je altijd iets te doen. 904 00:41:53,730 --> 00:41:55,688 En soms wil je voor altijd iets te doen. 905 00:41:55,688 --> 00:41:58,810 Het is niet per se een bug, het is want je wilt een klok te blijven gaan, 906 00:41:58,810 --> 00:42:00,730 of een spel te blijven spelen. 907 00:42:00,730 --> 00:42:04,800 Of u kunt een eindig aantal opgeven stappen, zoals met deze herhaling blok hier 908 00:42:04,800 --> 00:42:06,550 die iets zal herhalen 10 keer. 909 00:42:06,550 --> 00:42:08,560 We kunnen variabelen, zullen we binnenkort zien. 910 00:42:08,560 --> 00:42:12,300 En met variabelen, vergelijkbaar in de geest algebra, zoals x of y of z. 911 00:42:12,300 --> 00:42:16,390 Het is iets symbolisch dat kan opslaan enige waarde, een stukje informatie, 912 00:42:16,390 --> 00:42:18,320 die je zou willen om te onthouden voor later. 913 00:42:18,320 --> 00:42:21,080 >> Beste voorbeeld hiervan zou kunnen zijn een spel waar je een score, 914 00:42:21,080 --> 00:42:22,080 zoals in Pikachu. 915 00:42:22,080 --> 00:42:25,180 Hoeveel stukken taart en wat al niet heb je op te vangen? 916 00:42:25,180 --> 00:42:29,340 Nou, dat is misschien een variabele riep score die begint bij 0. 917 00:42:29,340 --> 00:42:32,400 En dan elke keer als we een gevangen stuk taart of snoep, of iets dergelijks, 918 00:42:32,400 --> 00:42:33,720 het wordt opgehoogd. 919 00:42:33,720 --> 00:42:35,990 Het wordt toegevoegd aan één tegelijk. 920 00:42:35,990 --> 00:42:38,450 En dus een variabele slaat een stukje informatie als dat. 921 00:42:38,450 --> 00:42:41,450 Dan is er arrays, en we zullen komen terug deze een week of twee keer, 922 00:42:41,450 --> 00:42:44,900 maar een reeks is net zoiets als een inventaris of een tas, binnen 923 00:42:44,900 --> 00:42:46,940 van waaruit u kunt virtuele spullen te zetten. 924 00:42:46,940 --> 00:42:49,852 Hiermee kunt u meer op te slaan dan een stukje informatie. 925 00:42:49,852 --> 00:42:51,810 En dat nuttig zou kunnen zijn indien in het spel, je bent 926 00:42:51,810 --> 00:42:53,630 soort rondlopen dingen oprapen. 927 00:42:53,630 --> 00:42:55,879 En misschien wilt u te houden al die stukjes van de taart 928 00:42:55,879 --> 00:42:58,260 rond, en niet alleen te eten ze een na de ander. 929 00:42:58,260 --> 00:43:00,010 En dan is er een liefhebber construct we zullen 930 00:43:00,010 --> 00:43:02,932 komen om de naam of procedures. 931 00:43:02,932 --> 00:43:04,640 En hoewel we gaan sneller hier, zullen we 932 00:43:04,640 --> 00:43:07,345 zien dat dit een zeer natuurlijke oplossing voor de problemen 933 00:43:07,345 --> 00:43:08,470 dat we gaan tegenkomen. 934 00:43:08,470 --> 00:43:10,220 Als onze programma's starten groter we zullen 935 00:43:10,220 --> 00:43:12,640 gaan patronen bericht in de code die we schrijven, 936 00:43:12,640 --> 00:43:14,556 de puzzelstukjes we slepen en neerzetten. 937 00:43:14,556 --> 00:43:18,240 En zodra je jezelf ziet doen iets opnieuw en opnieuw, of nog erger 938 00:43:18,240 --> 00:43:21,400 kopiëren en plakken programmering code die je hebt geschreven, 939 00:43:21,400 --> 00:43:23,612 dat is waarschijnlijk een gelegenheid om factor uit 940 00:43:23,612 --> 00:43:25,820 wat je ook kopiëren houden en plakken, en zetten het 941 00:43:25,820 --> 00:43:27,430 in een zogenaamde "functie." 942 00:43:27,430 --> 00:43:29,690 Maar meer op die in veel meer detail het duurde niet lang. 943 00:43:29,690 --> 00:43:31,314 >> En dan is er nog liefhebber functies. 944 00:43:31,314 --> 00:43:34,100 Voor degenen onder u meer comfortabel, of het nemen van APCS of gelijkwaardig, 945 00:43:34,100 --> 00:43:37,600 Kras eigenlijk ondersteunt dingen zoals draden en evenementen en meer. 946 00:43:37,600 --> 00:43:39,840 Dus beseffen dat het heeft een vrij hoog plafond, 947 00:43:39,840 --> 00:43:42,540 ook al is het ook zeer breed toegankelijk voor mensen 948 00:43:42,540 --> 00:43:44,460 die nog nooit eerder hebt geprogrammeerd. 949 00:43:44,460 --> 00:43:47,130 Dus inderdaad, laten we eens een kijkje een eenvoudig programma of twee. 950 00:43:47,130 --> 00:43:49,920 >> We hebben al gekeken naar hoe we misschien zeg hallo met Scratch. 951 00:43:49,920 --> 00:43:52,800 Laat me gaan en open te stellen een beetje meer interessant programma 952 00:43:52,800 --> 00:43:54,100 dat schreef ik op voorhand. 953 00:43:54,100 --> 00:43:56,430 En deze is genoemd het Huisdier van de Kat. 954 00:43:56,430 --> 00:43:58,954 Al deze programma's zullen worden beschikbaar op de website CS50's. 955 00:43:58,954 --> 00:43:59,870 Inderdaad, er al. 956 00:43:59,870 --> 00:44:01,190 >> Dus je kunt downloaden hen, en met hen spelen, 957 00:44:01,190 --> 00:44:03,850 en met Probleem Set 0, die is ook op de website van de cursus, 958 00:44:03,850 --> 00:44:05,516 u aangemoedigd om te lopen door deze. 959 00:44:05,516 --> 00:44:07,820 En bovendien hebben we een aantal walk-through video 960 00:44:07,820 --> 00:44:10,951 online waarin ik en CS50's team echt lopen 961 00:44:10,951 --> 00:44:14,200 door elk van deze voorbeelden op een veel langzamer tempo, een zeer snelle forwardable, 962 00:44:14,200 --> 00:44:18,530 of herwikkelbare tempo, zodat je kunt lopen door deze op uw gemak ook. 963 00:44:18,530 --> 00:44:20,330 Dus hier is Kras aan de linkerkant. 964 00:44:20,330 --> 00:44:22,920 Hier is een programma op het juiste dat heb ik al vooraf gemaakt. 965 00:44:22,920 --> 00:44:24,880 Dus laat me inzoomen op dit. 966 00:44:24,880 --> 00:44:28,780 En kan iemand in het Engels, wetende wat je weet, maar vanaf nu als 967 00:44:28,780 --> 00:44:31,650 hoe Scratch werken, een soort van zeggen in een Engels zin of zin 968 00:44:31,650 --> 00:44:35,450 wat heeft dit programma blijkbaar doen? 969 00:44:35,450 --> 00:44:36,836 >> Ja, in oranje shirt. 970 00:44:36,836 --> 00:44:40,804 >> PUBLIEK: [onverstaanbaar] 971 00:44:40,804 --> 00:44:41,796 972 00:44:41,796 --> 00:44:44,980 >> DAVID J. MALAN: Ja, als je cursor op Kras van de kat, 973 00:44:44,980 --> 00:44:46,220 spelen een miauwen geluid. 974 00:44:46,220 --> 00:44:47,870 Maar zien hoe we uitdrukken. 975 00:44:47,870 --> 00:44:49,980 Er is blijkbaar een lus er, voor altijd. 976 00:44:49,980 --> 00:44:53,000 En dan is er een staat, indien de uitdrukking. 977 00:44:53,000 --> 00:44:55,090 En collectief, wat deze betekenen? 978 00:44:55,090 --> 00:44:57,210 Betekent dat programma is gewoon altijd actief, 979 00:44:57,210 --> 00:44:59,510 en het is gewoon altijd wachten en kijken en luisteren 980 00:44:59,510 --> 00:45:01,730 voor mij om mijn muis over de kat. 981 00:45:01,730 --> 00:45:04,810 >> Want elke keer als ik dat doe, als u voorstelt, het gaat om dit te doen. 982 00:45:04,810 --> 00:45:06,475 Laat me het programma te starten. 983 00:45:06,475 --> 00:45:08,350 Niets lijkt te zijn gebeurt, maar merken hoe 984 00:45:08,350 --> 00:45:10,152 het is nu gemarkeerd in een gele lijn. 985 00:45:10,152 --> 00:45:11,360 Dat betekent gewoon dat het draait. 986 00:45:11,360 --> 00:45:13,770 En omdat er een eeuwig lus, het is nog steeds actief. 987 00:45:13,770 --> 00:45:19,610 >> Dus laat ik mijn cursor over Scratch. [MEOW] [MEOW] En als ik beweeg het af, 988 00:45:19,610 --> 00:45:25,444 [MEOW] nu het stopt, maar de programma's nog steeds actief. [MEOW] En zo schattig. 989 00:45:25,444 --> 00:45:28,550 [MEOW] Dus laten openen iets meer geavanceerde 990 00:45:28,550 --> 00:45:32,620 Zo noemde Laat de Cat geen huisdier. 991 00:45:32,620 --> 00:45:35,805 >> En laten we nu zien wat hier gebeurt. [MEOW] miauwen. 992 00:45:35,805 --> 00:45:39,297 Dus het is een beetje aan automatische piloot, als je wil. 993 00:45:39,297 --> 00:45:39,880 --pet de kat. 994 00:45:39,880 --> 00:45:42,820 Ik vraag me af waarom. 995 00:45:42,820 --> 00:45:45,389 [ROAR] [MEOW] Dus hoe heeft dit werk? 996 00:45:45,389 --> 00:45:47,930 Nou, je kunt voor reden doorheen intuïtief, misschien. 997 00:45:47,930 --> 00:45:49,346 >> Maar laten we eens kijken naar de eigenlijke code. 998 00:45:49,346 --> 00:45:51,819 Dus nogmaals, toen de groene vlag wordt geklikt, doe dit altijd. 999 00:45:51,819 --> 00:45:53,110 Wat wil je voor altijd doen? 1000 00:45:53,110 --> 00:45:56,150 Nou, als ontroerend muis wijzer, dan spelen 1001 00:45:56,150 --> 00:46:00,270 een geluid dat blijkbaar heet Lion 5, dat is de binnenkant van dit project, anders 1002 00:46:00,270 --> 00:46:03,010 spelen geluid miauw, en wacht vervolgens twee seconden, dus 1003 00:46:03,010 --> 00:46:04,510 dat het niet onophoudelijk miauwen. 1004 00:46:04,510 --> 00:46:07,650 In feite, kunt u heel snel aan de slag uzelf en uw huisgenoten ergeren. 1005 00:46:07,650 --> 00:46:08,690 >> Laten we het verwijderen van dit blok. 1006 00:46:08,690 --> 00:46:10,580 En let op wat er leuk is aan Scratch. 1007 00:46:10,580 --> 00:46:13,070 Dingen gewoon soort drag en drop en interlock. 1008 00:46:13,070 --> 00:46:14,980 Dus nogmaals, het groeit op invullen wat je wilt. 1009 00:46:14,980 --> 00:46:20,118 Maar als ik dit te verwijderen, en vervolgens hit spel, [COMPUTER BLIP SOUND] 1010 00:46:20,118 --> 00:46:22,904 >> --Het is een soort van struikelen over zelf, omdat het letterlijk 1011 00:46:22,904 --> 00:46:23,820 doen wat ik zeg. 1012 00:46:23,820 --> 00:46:27,080 Het zegt altijd spelen dit geluid, maar Ik geef het een kans om te voltooien. 1013 00:46:27,080 --> 00:46:28,205 En dus dat zou een fout zijn. 1014 00:46:28,205 --> 00:46:30,700 En dat is waarom we hadden dit ding hier nu. 1015 00:46:30,700 --> 00:46:34,030 Dus laten we daadwerkelijk beginnen van scratch-- soort van woordspeling iets intended-- 1016 00:46:34,030 --> 00:46:36,450 waar hebben we nu de kat zet. 1017 00:46:36,450 --> 00:46:38,130 >> Dus ik ga om dit te doen op de vlieg. 1018 00:46:38,130 --> 00:46:40,910 Ik ga hier in te zoomen, net om me begon op Events. 1019 00:46:40,910 --> 00:46:42,000 En groene vlag geklikt. 1020 00:46:42,000 --> 00:46:43,410 En er is een andere manier de scripts starten. 1021 00:46:43,410 --> 00:46:44,920 We gaan het hier eenvoudig te houden. 1022 00:46:44,920 --> 00:46:48,049 >> En nu ga ik om te gaan vooruit en ga onder controle. 1023 00:46:48,049 --> 00:46:50,590 En nogmaals, als je vergeet waar dingen worden, klikt u gewoon rond, 1024 00:46:50,590 --> 00:46:52,048 en uiteindelijk je ze terug te vinden. 1025 00:46:52,048 --> 00:46:53,680 Dus ik wil voor altijd doen wat? 1026 00:46:53,680 --> 00:46:58,650 Ik wil de beweging blok gebruiken dat ik weet bestaat, bewegen 10 stappen. 1027 00:46:58,650 --> 00:47:02,016 >> Dus laten we zien wat er gebeurt hier als ik dit spel te spelen. 1028 00:47:02,016 --> 00:47:03,390 Gelukkig het niet te ver gaan. 1029 00:47:03,390 --> 00:47:05,190 Ik kan nog steeds hem soort grijpen bij de staart en trek hem terug. 1030 00:47:05,190 --> 00:47:07,860 Maar het programma is nog steeds actief, dus hij is een soort van de strijd tegen mij. 1031 00:47:07,860 --> 00:47:10,870 Maar het zou wel leuk als ik Dit voorwaardelijk op te lossen in de code. 1032 00:47:10,870 --> 00:47:12,800 >> Want dit is niet-- eigenlijk is dit werkelijk 1033 00:47:12,800 --> 00:47:15,770 niet een leuk spel voor iedereen van alle leeftijden. 1034 00:47:15,770 --> 00:47:18,915 Dus laten we proberen om dit op te lossen door over een zekere omstandigheden. 1035 00:47:18,915 --> 00:47:21,670 Dus ik ga om te gaan onder Controle, en dan als. 1036 00:47:21,670 --> 00:47:22,660 Ik hou van dit idee. 1037 00:47:22,660 --> 00:47:27,470 Dus na het verplaatsen van 10 stappen, if-- laat me voelen, waar ik ben. 1038 00:47:27,470 --> 00:47:30,799 Ik ga om te gaan onder Sensing, en dan het lijkt Ik kan hier gaan. 1039 00:47:30,799 --> 00:47:31,840 rij naar de wedstrijden vorm. 1040 00:47:31,840 --> 00:47:34,380 >> Grootte is het niet, maar het is gaan groeien te vullen. 1041 00:47:34,380 --> 00:47:35,984 En nu dit is een klein menu. 1042 00:47:35,984 --> 00:47:38,650 En nu muis pointer-- ik niet willen dat de muis, ik wil de rand. 1043 00:47:38,650 --> 00:47:41,700 Dus Scratch is slim genoeg om te weten wanneer een sprite raakt de rand. 1044 00:47:41,700 --> 00:47:44,360 Wat wil ik hem eigenlijk? 1045 00:47:44,360 --> 00:47:46,025 >> Laat me gaan en te veranderen beweging. 1046 00:47:46,025 --> 00:47:46,940 Weet je wat? 1047 00:47:46,940 --> 00:47:49,242 Ik ga hem omdraaien. 1048 00:47:49,242 --> 00:47:51,200 Dus bij 15 graden is niet echt om me te helpen. 1049 00:47:51,200 --> 00:47:53,990 Ik wil hem om te draaien en ga de andere kant op. 1050 00:47:53,990 --> 00:47:57,740 >> Dus laten we zien wat er gebeurt hier, als ik raakte Nu spelen. 1051 00:47:57,740 --> 00:48:01,520 OK, soort dom kijken, maar het doet precies wat ik zei. 1052 00:48:01,520 --> 00:48:03,540 En het draaien van de hele sprite. 1053 00:48:03,540 --> 00:48:04,900 Nu blijkt dat ik kan dit oplossen. 1054 00:48:04,900 --> 00:48:06,691 En ik wist niet hoe om dit te bevestigen op het eerste. 1055 00:48:06,691 --> 00:48:09,190 Ik had soort rond futz en zie de beste manier om dit te doen. 1056 00:48:09,190 --> 00:48:12,630 Maar als ik ga to-- laten zien beweging. 1057 00:48:12,630 --> 00:48:14,050 Oh, ik vond dit. 1058 00:48:14,050 --> 00:48:15,660 Eigenlijk, Set Rotation Stijl. 1059 00:48:15,660 --> 00:48:18,431 Links, rechts, of niet roteren of rondom. 1060 00:48:18,431 --> 00:48:19,930 En het blijkt dat is wat ik wil. 1061 00:48:19,930 --> 00:48:22,920 En ik ga dit te zetten is mijn lus, omdat ik niet hoeft in te stellen 1062 00:48:22,920 --> 00:48:24,487 de rotatie style meerdere keren. 1063 00:48:24,487 --> 00:48:27,570 Ik ga zet het op de top van Dit programma, zodat het een keer wordt ingesteld, 1064 00:48:27,570 --> 00:48:28,670 en dan onthoudt. 1065 00:48:28,670 --> 00:48:30,340 En nu ga ik om dit opnieuw te proberen. 1066 00:48:30,340 --> 00:48:32,520 Laat me het programma te stoppen. 1067 00:48:32,520 --> 00:48:34,050 >> En nu vast dat bug. 1068 00:48:34,050 --> 00:48:35,700 Dus ik ben iteratief te verbeteren op deze. 1069 00:48:35,700 --> 00:48:37,900 Het programma krijgt een iets ingewikkelder en groter, 1070 00:48:37,900 --> 00:48:40,810 maar ik ben het nemen van kleine stapjes om zo te zeggen, en kleine hapjes uit de problemen 1071 00:48:40,810 --> 00:48:42,010 om het beter en beter. 1072 00:48:42,010 --> 00:48:43,260 Maar dit ook, is een beetje lame. 1073 00:48:43,260 --> 00:48:43,900 >> Weet je wat? 1074 00:48:43,900 --> 00:48:49,860 Zou iemand te vragen met een echt goede, vreselijke stem willen komen? 1075 00:48:49,860 --> 00:48:51,210 Iemand met een stem. 1076 00:48:51,210 --> 00:48:54,070 1077 00:48:54,070 --> 00:48:54,570 Uh, ja. 1078 00:48:54,570 --> 00:48:55,550 Kom op maximaal. 1079 00:48:55,550 --> 00:48:57,990 In het groene shirt. 1080 00:48:57,990 --> 00:49:01,530 >> Dus het blijkt dat er een aantal andere leuke dingen, esthetiek en geluiden gelijk. 1081 00:49:01,530 --> 00:49:02,290 Hier is de miauw. 1082 00:49:02,290 --> 00:49:04,000 Ik klik op het tabblad Geluiden. 1083 00:49:04,000 --> 00:49:08,730 [MEOW] Er is de miauw. [MIAUW MIAUW] [MEOW] --actually iets opnemen 1084 00:49:08,730 --> 00:49:10,310 hier onze eigen. 1085 00:49:10,310 --> 00:49:13,120 >> Dus laten we het doen precies dat. 1086 00:49:13,120 --> 00:49:17,670 In plaats van het gebruik van deze kat geluid, laten we ga je gang hier, en wat is uw naam? 1087 00:49:17,670 --> 00:49:18,850 Nick, leuk je te ontmoeten. 1088 00:49:18,850 --> 00:49:19,350 Het is David. 1089 00:49:19,350 --> 00:49:21,474 Dus in een moment, ga ik om de opnameknop te raken. 1090 00:49:21,474 --> 00:49:23,240 En als je kunt gewoon schreeuwen in de laptop, 1091 00:49:23,240 --> 00:49:26,140 "ouch," alsof je liep gewoon in de muur, 1092 00:49:26,140 --> 00:49:28,180 dat zal zeer worden gewaardeerd. 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 En kan nu een beetje te bewerken doen hier. 1097 00:49:34,410 --> 00:49:35,910 Gaan om zich te ontdoen van de rustige delen te krijgen. 1098 00:49:35,910 --> 00:49:37,000 En ik denk dat is goed. 1099 00:49:37,000 --> 00:49:37,690 Hartelijk bedankt. 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: Ik heb net noemde het "ouch," 1103 00:49:45,110 --> 00:49:46,901 maar nu ga ik ga terug naar mijn scripts. 1104 00:49:46,901 --> 00:49:49,810 En let er inderdaad geluid hier. 1105 00:49:49,810 --> 00:49:53,520 En ik ga om verder te gaan en speel het geluid ouch, 1106 00:49:53,520 --> 00:49:56,991 en ik ga doen als het is alleen het aanraken van de randen. 1107 00:49:56,991 --> 00:49:58,740 En dan ga ik laten omdraaien. 1108 00:49:58,740 --> 00:50:00,250 Dus laten we eens kijken wat er hier gebeurt. 1109 00:50:00,250 --> 00:50:01,728 Laten we het volledige scherm. 1110 00:50:01,728 --> 00:50:02,394 [VIDEO AFSPELEN] 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 AFSPELEN] 1120 00:50:12,492 --> 00:50:14,490 >> DAVID J. MALAN: Dus je beseft dat we een beetje geluk hebben. 1121 00:50:14,490 --> 00:50:17,110 Ik ga hem hebben move zoals 100 treden tegelijk. 1122 00:50:17,110 --> 00:50:21,790 Het gevolg hebben nu gaat om [computerstoring SOUND] be-- So 1123 00:50:21,790 --> 00:50:22,490 binnen reden. 1124 00:50:22,490 --> 00:50:25,470 Dus een kans om te verfijnen dat verder als we echt willen. 1125 00:50:25,470 --> 00:50:27,340 >> Dus laten we nu introduceren een ander concept. 1126 00:50:27,340 --> 00:50:30,660 Om me te laten gaan in een zogenaamde Schapen en gebruik iets tellen 1127 00:50:30,660 --> 00:50:31,610 genoemd variabel. 1128 00:50:31,610 --> 00:50:34,700 Dit is een schattige kleine schapen, en Ik veranderde zijn kostuum zo te zeggen. 1129 00:50:34,700 --> 00:50:37,450 Dus ook al is de standaard is een kat, kunt u uploaden, je kunt tekenen, 1130 00:50:37,450 --> 00:50:40,020 kunt u een aantal te doen personages op je sprite. 1131 00:50:40,020 --> 00:50:43,740 Hier is een programma dat is gaan om wat te doen in het Engels? 1132 00:50:43,740 --> 00:50:47,110 >> Weer gebaseerd op wat je nu weet. 1133 00:50:47,110 --> 00:50:48,230 Wat is dit programma doen? 1134 00:50:48,230 --> 00:50:50,740 1135 00:50:50,740 --> 00:50:53,500 Ja, het gaat om te tellen. 1136 00:50:53,500 --> 00:50:55,842 Één nummer tegelijk. 1137 00:50:55,842 --> 00:50:57,550 We hebben blijkbaar hebben deze set teller. 1138 00:50:57,550 --> 00:50:59,380 >> Ik weet niet wat dat is, maar misschien is het een variabele. 1139 00:50:59,380 --> 00:51:00,740 Het is gewoon een container, x of y. 1140 00:51:00,740 --> 00:51:04,290 Maar het woord teller meer beschrijvende dan x of y wiskundige's. 1141 00:51:04,290 --> 00:51:06,560 Dus we kunnen Engels woorden te gebruiken voor dingen. 1142 00:51:06,560 --> 00:51:08,490 Altijd, betekent gewoon blijven doen. 1143 00:51:08,490 --> 00:51:10,020 >> Zeggen teller. 1144 00:51:10,020 --> 00:51:11,270 Nu waar komt dit vandaan? 1145 00:51:11,270 --> 00:51:13,240 Nou, het blijkt dat balie is een variabele. 1146 00:51:13,240 --> 00:51:15,645 Dus het is gewoon een andere puzzel stuk dat ik gemaakt op voorhand. 1147 00:51:15,645 --> 00:51:18,020 En hoewel het gebeurt niet dezelfde vorm hier, 1148 00:51:18,020 --> 00:51:20,540 normaal gesproken zou je zeggen zoiets hallo hier. 1149 00:51:20,540 --> 00:51:23,610 >> U kunt ook een variabele slepen dus dat is wat we krijgen gezegd. 1150 00:51:23,610 --> 00:51:26,170 Dan wacht ik voor een tweede, ik verander de teller met één, 1151 00:51:26,170 --> 00:51:27,940 verhogen door het toevoegen van een. 1152 00:51:27,940 --> 00:51:32,407 Zodat het netto-effect deze schattige tellen schapen. 1153 00:51:32,407 --> 00:51:33,615 Hoewel hij zichzelf te tellen. 1154 00:51:33,615 --> 00:51:36,642 1155 00:51:36,642 --> 00:51:38,350 Nu is het zeer snel gaan vervelen 1156 00:51:38,350 --> 00:51:40,900 want hij gaat doe dit echt voor altijd, 1157 00:51:40,900 --> 00:51:44,240 maar dat is precies wat de ontwerp-programma's schrijft. 1158 00:51:44,240 --> 00:51:48,090 Laten we nu proberen een ander voorbeeld dat maakt gebruik van een variabele. 1159 00:51:48,090 --> 00:51:51,140 Deze zogenaamde Hi Hi Hi, dat krijgt snel vervelend. 1160 00:51:51,140 --> 00:51:52,987 Nu deze heeft twee scripts. 1161 00:51:52,987 --> 00:51:54,570 En dus nogmaals, we nemen kleine stapjes. 1162 00:51:54,570 --> 00:51:57,236 >> We zijn begonnen met iets super klein, toegevoegd, toegevoegd. 1163 00:51:57,236 --> 00:51:59,750 Nu wil ik iets doen nog dynamischer, 1164 00:51:59,750 --> 00:52:02,950 dus ik wil luisteren naar twee verschillende dingen tegelijk. 1165 00:52:02,950 --> 00:52:05,420 Dus aan de linkerkant, bij groene vlag wordt geklikt, 1166 00:52:05,420 --> 00:52:08,100 Ik stel een variabele die ik schreef tevoren genoemd Gedempte. 1167 00:52:08,100 --> 00:52:09,700 En ik willekeurig instellen op 0. 1168 00:52:09,700 --> 00:52:13,290 Dus Scratch hoeft niet waar te hebben en vals, maar het heeft wel de 0 en 1. 1169 00:52:13,290 --> 00:52:15,270 >> Dus ik kan dat hetzelfde idee te benaderen. 1170 00:52:15,270 --> 00:52:21,110 En dan voor altijd, als de spatiebalk is ingedrukt, dan stelt u de variabele op 0. 1171 00:52:21,110 --> 00:52:21,810 Of spijt. 1172 00:52:21,810 --> 00:52:25,920 Als de ruimte wordt ingedrukt, en indien gedempt, de variabele is 0, 1173 00:52:25,920 --> 00:52:29,950 vervolgens gedempt tot 1, anders ingesteld gedempt op 0. 1174 00:52:29,950 --> 00:52:32,370 Dit lijkt een beetje zoals we gewoon doen en ongedaan maken van het werk. 1175 00:52:32,370 --> 00:52:33,130 >> Maar wat is het effect? 1176 00:52:33,130 --> 00:52:35,588 Elke keer als ik druk op de spatiebalk, Wat gebeurt er met mijn variabele 1177 00:52:35,588 --> 00:52:38,150 genaamd gedempt, logisch? 1178 00:52:38,150 --> 00:52:39,100 Soort wordt omgedraaid. 1179 00:52:39,100 --> 00:52:41,035 Het verandert 0-1 of 1-0. 1180 00:52:41,035 --> 00:52:43,035 Dus het duurde een paar blokken om uit te drukken dat, maar alle 1181 00:52:43,035 --> 00:52:47,280 Ik doe verspringt de staat Deze variabele 0 of 1 of 0 of 1 1182 00:52:47,280 --> 00:52:48,530 elke keer als ik druk op de spatiebalk. 1183 00:52:48,530 --> 00:52:49,905 Nu hier, wat is dit? 1184 00:52:49,905 --> 00:52:53,400 Altijd, als gedempt is 0, dus als gedempt is vals. 1185 00:52:53,400 --> 00:52:57,910 Dus als het niet gedempt, is de semantiek daar, spelen geluid zeeleeuw, 1186 00:52:57,910 --> 00:53:00,810 en denk Hi Hi Hi voor twee seconden, twee seconden wachten. 1187 00:53:00,810 --> 00:53:02,710 Nu deze zo merken scripts zijn effectief 1188 00:53:02,710 --> 00:53:07,100 gaat lopen parallel, zodat men kan luisteren naar een beroep andere 1189 00:53:07,100 --> 00:53:09,010 om een ​​beslissing op basis van die actie te maken. 1190 00:53:09,010 --> 00:53:10,655 En het kan dit altijd doen. 1191 00:53:10,655 --> 00:53:12,638 >> [ZEELEEUW ONTSCHORSEN] 1192 00:53:12,638 --> 00:53:14,852 >> [ZEELEEUW ONTSCHORSEN] 1193 00:53:14,852 --> 00:53:20,050 >> Het gaat om dit altijd te doen en [ZEELEEUW ONTSCHORSEN] zoals ik heb net gedaan. 1194 00:53:20,050 --> 00:53:23,010 En nu is het nog steeds actief maar ik heb "gedempt" het spel. 1195 00:53:23,010 --> 00:53:27,260 [ZEELEEUW ONTSCHORSEN] En dat is Alle deze man doet nu ook. 1196 00:53:27,260 --> 00:53:28,660 >> Laten we een ander voorbeeld te openen hier. 1197 00:53:28,660 --> 00:53:31,840 Laat me gaan in Events, en nu dit schattige ook. 1198 00:53:31,840 --> 00:53:34,130 Maar let op het heeft twee sprites. 1199 00:53:34,130 --> 00:53:37,520 Dus niet alleen twee scripts één sprite, maar twee sprites. 1200 00:53:37,520 --> 00:53:40,750 En als ik klik op de blauwe jongen zoals ik al hebben, zie ik dat hij als één programma 1201 00:53:40,750 --> 00:53:43,790 hier dat letterlijk zegt dit, wanneer ik een gebeurtenis, 1202 00:53:43,790 --> 00:53:45,620 zeggen "Polo" voor twee seconden. 1203 00:53:45,620 --> 00:53:48,460 >> Dus als je ooit hebt gespeeld in een zwembad, het spel Marco Polo, 1204 00:53:48,460 --> 00:53:52,500 Als de oranje man script een indicatie, blijkbaar 1205 00:53:52,500 --> 00:53:57,380 elke keer als ik druk op de spatiebalk, wat is de oranje man gaan doen? 1206 00:53:57,380 --> 00:53:58,642 Hij zal zeggen: "Marco." 1207 00:53:58,642 --> 00:53:59,850 En dan is dit een nieuw blok. 1208 00:53:59,850 --> 00:54:02,409 We hebben dit niet eerder gezien, maar zenden een evenement. 1209 00:54:02,409 --> 00:54:04,200 En ik zou kunnen noemen event wat we willen. 1210 00:54:04,200 --> 00:54:06,033 >> We zullen hierop terugkomen misschien het duurde niet lang. 1211 00:54:06,033 --> 00:54:08,410 Maar het uitzenden van een evenement is een manier voor een sprite 1212 00:54:08,410 --> 00:54:11,836 naar de andere om te praten door wezen doorgeven van een bericht. 1213 00:54:11,836 --> 00:54:12,960 Het is niet een bericht dat u ziet. 1214 00:54:12,960 --> 00:54:14,130 Het is niet iets visueel. 1215 00:54:14,130 --> 00:54:17,370 Het is een soort van een computer bericht dat de andere man luistert voor. 1216 00:54:17,370 --> 00:54:21,210 Want inderdaad, de blauwe jongen, recall niet wanneer groene vlag geklikt. 1217 00:54:21,210 --> 00:54:23,290 >> Hij in plaats daarvan heeft, wanneer ik een gebeurtenis. 1218 00:54:23,290 --> 00:54:26,850 Wanneer hij overhandigde deze nota in de klas, zo te zeggen, zou hij zeggen: "Polo." 1219 00:54:26,850 --> 00:54:30,200 En dus het netto-effect is dat wanneer ik druk op de groene vlag, gebeurt er niets. 1220 00:54:30,200 --> 00:54:34,940 Maar toen ik raakte de spatiebalk, zegt hij "Marco," antwoordt hij met "Polo." 1221 00:54:34,940 --> 00:54:38,350 Maar de enige sprite ik ben interactie met de oranje. 1222 00:54:38,350 --> 00:54:40,980 Dit is dus een manier soort het doorgeven van berichten tussen de sprites 1223 00:54:40,980 --> 00:54:43,210 en met hen te communiceren met een ander. 1224 00:54:43,210 --> 00:54:46,280 >> Laten we nu eens kijken naar een laatste die hier genoemd discussies. 1225 00:54:46,280 --> 00:54:49,370 En merk je door het spelen van het. 1226 00:54:49,370 --> 00:54:51,184 Dus deze twee sprites. 1227 00:54:51,184 --> 00:54:52,600 De vogel is een soort van vliegen in het rond. 1228 00:54:52,600 --> 00:54:53,310 Hij is stuiteren. 1229 00:54:53,310 --> 00:54:55,890 Er is geen "ouch", maar hetzelfde idee. 1230 00:54:55,890 --> 00:54:58,230 >> Maar de kat lijkt behoorlijk slim. 1231 00:54:58,230 --> 00:55:01,010 Wat is de kat blijkbaar aan het doen? 1232 00:55:01,010 --> 00:55:03,430 En wachten. 1233 00:55:03,430 --> 00:55:05,010 Wat is de kat blijkbaar aan het doen? 1234 00:55:05,010 --> 00:55:07,740 Het is niet alleen stuiteren. 1235 00:55:07,740 --> 00:55:09,860 >> Hij volgt de vogel. 1236 00:55:09,860 --> 00:55:13,920 En dus blijkbaar, er is een manier met een combinatie van blokken hier-- 1237 00:55:13,920 --> 00:55:15,760 en laten we eens kijken naar de kat echt snel. 1238 00:55:15,760 --> 00:55:20,270 Altijd, als vogel te raken, dan spelen het geluid Lion 4, wat dat ook is. 1239 00:55:20,270 --> 00:55:21,360 We hoorden het eens. 1240 00:55:21,360 --> 00:55:25,431 Anders is, wijzen in de richting vogel, en ga een stap. 1241 00:55:25,431 --> 00:55:27,680 Nu dat het een stap is wat de vogel geeft 1242 00:55:27,680 --> 00:55:29,850 een beetje een voordeel in eerste instantie, maar als we in plaats daarvan 1243 00:55:29,850 --> 00:55:32,980 maken deze 10 bijvoorbeeld zo dat elke iteratie van de lus is hij 1244 00:55:32,980 --> 00:55:34,100 bewegende 10 stappen van de tijd. 1245 00:55:34,100 --> 00:55:35,280 Dus meer ruimte. 1246 00:55:35,280 --> 00:55:36,650 Laten we eens kijken wat er dan gebeurt. 1247 00:55:36,650 --> 00:55:38,740 [LION ROAR] Niet dat alles veel beter. 1248 00:55:38,740 --> 00:55:41,460 Dus laten we nu proberen te verbeteren op deze een beetje iteratief, 1249 00:55:41,460 --> 00:55:43,330 en kom terug naar die begrip functie. 1250 00:55:43,330 --> 00:55:46,580 >> En inderdaad een van de fundamentele afhaalrestaurants van de klasse ontwerp. 1251 00:55:46,580 --> 00:55:49,560 Niet alleen het schrijven van programma's die werken en dat juist zijn, maar zijn goed 1252 00:55:49,560 --> 00:55:50,080 ontworpen. 1253 00:55:50,080 --> 00:55:54,349 En het ontwerp is veel meer subjectief, en je zult beter in te krijgen in de tijd. 1254 00:55:54,349 --> 00:55:57,390 Maar laten we eens wat baby stappen in de richting beginnend met een programma dat werkt, 1255 00:55:57,390 --> 00:55:59,310 absoluut, maar het is niet erg goed. 1256 00:55:59,310 --> 00:56:00,650 Het is niet erg goed geschreven. 1257 00:56:00,650 --> 00:56:03,830 >> Dus hier is een programma dat dit doet. 1258 00:56:03,830 --> 00:56:08,060 Hoesten, hoesten, hoest. 1259 00:56:08,060 --> 00:56:09,880 Hoe ziet het programma eruit? 1260 00:56:09,880 --> 00:56:11,330 Ziet er goed voor mij. 1261 00:56:11,330 --> 00:56:13,370 Het zegt de bank voor een tweede, dan wacht. 1262 00:56:13,370 --> 00:56:14,515 >> Dan staat er weer, dan wacht. 1263 00:56:14,515 --> 00:56:16,056 Dan staat er weer, dan wacht. 1264 00:56:16,056 --> 00:56:18,770 En dan is het programma impliciet eindigt, omdat er geen lus. 1265 00:56:18,770 --> 00:56:21,325 Maar waarom is dit een slecht geschreven programma? 1266 00:56:21,325 --> 00:56:22,950 Zelfs als je nog nooit hebt geprogrammeerd? 1267 00:56:22,950 --> 00:56:25,240 Zoals, wat wrijft de verkeerde manier, misschien hier? 1268 00:56:25,240 --> 00:56:26,016 Ja? 1269 00:56:26,016 --> 00:56:29,278 >> PUBLIEK: [onverstaanbaar] 1270 00:56:29,278 --> 00:56:29,950 1271 00:56:29,950 --> 00:56:30,950 DAVID J. MALAN: Precies. 1272 00:56:30,950 --> 00:56:32,700 Je herhalen je opnieuw en opnieuw. 1273 00:56:32,700 --> 00:56:36,190 En letterlijk, ik gekopieerd en geplakt twee weer die blokken. 1274 00:56:36,190 --> 00:56:39,237 En dat is precies het soort van gezond verstand Controleer dat je moet maken. 1275 00:56:39,237 --> 00:56:39,820 Even wachten. 1276 00:56:39,820 --> 00:56:41,070 Moet ik dit echt doen? 1277 00:56:41,070 --> 00:56:43,610 Dus wat is dit wat is het voor de hand liggende oplossing misschien? 1278 00:56:43,610 --> 00:56:44,680 Een soort van lus. 1279 00:56:44,680 --> 00:56:46,860 En ik niet helemaal herinneren wat de puzzel stuk is, 1280 00:56:46,860 --> 00:56:48,810 maar als ik kijk naar de volgende iteratie hier 1281 00:56:48,810 --> 00:56:50,560 inderdaad, er is niet alleen de eeuwig lus, 1282 00:56:50,560 --> 00:56:52,560 er herhalen bepaald aantal keren. 1283 00:56:52,560 --> 00:56:54,080 En dus heb ik drie gespecificeerd. 1284 00:56:54,080 --> 00:56:57,839 En nu merken hoe veel strakker, hoe veel meer beknopte dit programma is. 1285 00:56:57,839 --> 00:56:59,630 En in zekere zin, hoe veel meer onderhoudbaar. 1286 00:56:59,630 --> 00:57:02,840 Als ik het woord wilt wijzigen van hoest naar iets anders, 1287 00:57:02,840 --> 00:57:07,530 zoals achoo, alsof hij niezen. 1288 00:57:07,530 --> 00:57:09,770 Dan veranderen I in een plaats, en niet drie. 1289 00:57:09,770 --> 00:57:12,050 Dus dit al voelt iets beter ontwerp. 1290 00:57:12,050 --> 00:57:14,610 Laat mij in plaats geopend hoest 2, onze derde voorbeeld. 1291 00:57:14,610 --> 00:57:17,670 >> Merken als een computer wetenschapper, Ik begin te tellen bij 0, meestal. 1292 00:57:17,670 --> 00:57:20,950 Nu is dit ziet er een beetje enger op eerst, maar het effect is hetzelfde. 1293 00:57:20,950 --> 00:57:22,590 Hoesten, hoesten, hoest. 1294 00:57:22,590 --> 00:57:26,920 Maar wat lijkt fundamenteel te zijn nieuw in het bovenste deel van het programma? 1295 00:57:26,920 --> 00:57:28,670 Ik heb het woord verwijderd. 1296 00:57:28,670 --> 00:57:29,830 >> Ik heb het wachten verwijderd. 1297 00:57:29,830 --> 00:57:32,370 En wat heb ik gestopt in plaats daarvan? 1298 00:57:32,370 --> 00:57:32,890 Een functie. 1299 00:57:32,890 --> 00:57:33,670 Een hoest blok. 1300 00:57:33,670 --> 00:57:35,410 Ik bedoel, eerlijk gezegd, ik schijn soort van een idioot als ik niet alleen 1301 00:57:35,410 --> 00:57:37,285 beginnen met het blok dat is blijkbaar geroepen 1302 00:57:37,285 --> 00:57:38,894 "hoesten," als dat is alles wat ik wil hem te doen. 1303 00:57:38,894 --> 00:57:40,310 Maar dat bestaat niet in de Scratch. 1304 00:57:40,310 --> 00:57:43,396 In plaats ging ik naar een in de palet genoemd Meer Blocks hier 1305 00:57:43,396 --> 00:57:46,270 en ik sleep deze grote paarse ding hier dat laat me een functie te definiëren. 1306 00:57:46,270 --> 00:57:48,240 Het laat me wezen creëer mijn eigen puzzel 1307 00:57:48,240 --> 00:57:51,280 stuk dat ik iets kan worden genoemd willen, kan dat alles wat ik wil doen, 1308 00:57:51,280 --> 00:57:52,360 maar het geeft het een naam. 1309 00:57:52,360 --> 00:57:57,050 Het geeft me een nieuwe, paarse puzzelstukje dat nu doet wat ik zeg dat het doet. 1310 00:57:57,050 --> 00:58:01,060 Dus deze paarse stuk hier correspondeert met hier. 1311 00:58:01,060 --> 00:58:01,960 >> En wat doet het? 1312 00:58:01,960 --> 00:58:03,930 Het zegt hoesten voor een tweede, en dan wacht. 1313 00:58:03,930 --> 00:58:07,330 En nu heb ik een soort van gemaakt mijn eigen aangepaste puzzelstukje, 1314 00:58:07,330 --> 00:58:10,040 zodat het zich gedraagt dat precies dezelfde manier. 1315 00:58:10,040 --> 00:58:11,130 Dus ik kan blijven doen. 1316 00:58:11,130 --> 00:58:14,421 En inderdaad, er zullen meer en meer mogelijkheden voor modularisatie, 1317 00:58:14,421 --> 00:58:16,630 en lagen, complexiteit boven elkaar. 1318 00:58:16,630 --> 00:58:18,547 Maar dit basisidee, inderdaad probleem zei 0. 1319 00:58:18,547 --> 00:58:20,338 Wat je gaat worden uitgedaagd om te doen is 1320 00:58:20,338 --> 00:58:23,810 naar Scratch downloaden, of gewoon te gebruiken op het web, en gewoon veel plezier ermee. 1321 00:58:23,810 --> 00:58:26,056 Wij zullen u een set te geven eisen heeft geluid, 1322 00:58:26,056 --> 00:58:27,430 en sommige aantal puzzelstukjes. 1323 00:58:27,430 --> 00:58:28,480 Maar je zult dit precies te doen. 1324 00:58:28,480 --> 00:58:31,771 En je zult beseffen dat je gaat wil een aantal kleine stapjes in eerste instantie te nemen, 1325 00:58:31,771 --> 00:58:33,690 totdat je programma krijgt steeds complexer. 1326 00:58:33,690 --> 00:58:36,010 Maar gezien is dit de beste manier kon ik dit doen? 1327 00:58:36,010 --> 00:58:39,210 Kan ik voorkomen dat dit instinct misschien, kopiëren en plakken? 1328 00:58:39,210 --> 00:58:41,850 >> Maar voordat Probleemverzameling 0, en voor we verdagen, 1329 00:58:41,850 --> 00:58:44,980 dacht dat we zouden nemen een meer vrijwilligers als we konden, 1330 00:58:44,980 --> 00:58:46,820 voor een definitieve programma dat is misschien wel de meest 1331 00:58:46,820 --> 00:58:49,150 fitting helemaal niet, gezien locatie van vandaag. 1332 00:58:49,150 --> 00:58:50,298 Kom naar beneden. 1333 00:58:50,298 --> 00:58:51,234 Ja. 1334 00:58:51,234 --> 00:58:52,170 Ja. 1335 00:58:52,170 --> 00:58:53,431 Hoe heet je? 1336 00:58:53,431 --> 00:58:53,930 Oh Oh. 1337 00:58:53,930 --> 00:58:57,820 1338 00:58:57,820 --> 00:58:59,010 Dat is goed. 1339 00:58:59,010 --> 00:59:01,230 Zowel naar beneden komen. 1340 00:59:01,230 --> 00:59:05,520 En ik heb zal omgaan met deze of andere manier binnen deze tien seconden. 1341 00:59:05,520 --> 00:59:06,550 Dus kom naar beneden. 1342 00:59:06,550 --> 00:59:08,370 Kom naar beneden. 1343 00:59:08,370 --> 00:59:13,250 >> Laat me kom hier. 1344 00:59:13,250 --> 00:59:16,050 Kom op. 1345 00:59:16,050 --> 00:59:16,685 Prima. 1346 00:59:16,685 --> 00:59:21,360 1347 00:59:21,360 --> 00:59:22,360 Laten we eens kijken hier. 1348 00:59:22,360 --> 00:59:25,735 Zo merkt echt snel hier, als je wilt om op te komen. 1349 00:59:25,735 --> 00:59:28,650 1350 00:59:28,650 --> 00:59:29,926 >> We zullen twee rondes van dit te doen. 1351 00:59:29,926 --> 00:59:30,800 En hoe heet jij? 1352 00:59:30,800 --> 00:59:31,270 >> SABRINA: Sabrina. 1353 00:59:31,270 --> 00:59:32,060 >> DAVID J. MALAN: Sabrina en? 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 Leuk om jullie beiden te ontmoeten. 1357 00:59:34,276 --> 00:59:34,970 David. 1358 00:59:34,970 --> 00:59:38,785 Dus onze laatste voorbeeld is hier riep Hardest Game Ivy's. 1359 00:59:38,785 --> 00:59:41,160 En waarom niet wij u Niveau 1, en je doet niveau 2. 1360 00:59:41,160 --> 00:59:43,350 >> En we zullen zien hoe ver verder dan dat we eigenlijk gaan. 1361 00:59:43,350 --> 00:59:45,855 Geschreven door een student vorig jaar, geremixed door mij 1362 00:59:45,855 --> 00:59:48,840 zodat deze zou gaan meer dan goed in New Haven. 1363 00:59:48,840 --> 00:59:53,180 En ik geef je een spel dat gaat betrekken verplaatsen van de pijlen omhoog en omlaag, 1364 00:59:53,180 --> 00:59:55,771 en het krijgen van Yale naar de finish. 1365 00:59:55,771 --> 00:59:56,270 Daar gaan we. 1366 00:59:56,270 --> 00:59:56,759 >> [VIDEO AFSPELEN] 1367 00:59:56,759 --> 00:59:58,092 >> [MUZIEK - NFL OP FOX themalied] 1368 00:59:58,092 --> 00:59:59,369 1369 00:59:59,369 --> 01:00:01,160 [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1370 01:00:01,160 --> 01:00:04,590 1371 01:00:04,590 --> 01:00:07,900 >> -U Kunt dit niet aanraken. 1372 01:00:07,900 --> 01:00:11,634 U kunt dit niet aanraken. 1373 01:00:11,634 --> 01:00:14,252 Kan dit niet aanraken. 1374 01:00:14,252 --> 01:00:19,490 Mijn, mijn, mijn, mijn muziek raakt me zo hard, maakt me zeggen, oh, mijn heer. 1375 01:00:19,490 --> 01:00:22,927 Dank u voor de zegen mij met een erg om rijm en twee hype voeten. 1376 01:00:22,927 --> 01:00:24,891 >> Dat is goed als je weet dat je naar beneden. 1377 01:00:24,891 --> 01:00:26,855 Een super dope homeboy van de Oaktown. 1378 01:00:26,855 --> 01:00:31,274 En ik ben als zodanig bekend en dit een beat uh, kun je niet aanraken. 1379 01:00:31,274 --> 01:00:34,672 Ik vertelde u gewillig U kunt dit niet aanraken. 1380 01:00:34,672 --> 01:00:38,656 Ja, dat is hoe we leven en je weet dat U kunt dit niet aanraken. 1381 01:00:38,656 --> 01:00:40,135 >> Kijk in mijn ogen, man. 1382 01:00:40,135 --> 01:00:43,093 U kunt dit niet aanraken. 1383 01:00:43,093 --> 01:00:44,572 Yo, laat me buste de funky teksten. 1384 01:00:44,572 --> 01:00:45,363 U kunt dit niet aanraken. 1385 01:00:45,363 --> 01:00:46,544 Frisse nieuwe kicks en broek. 1386 01:00:46,544 --> 01:00:48,627 >> Je hebt het zo en je weet dat je wilt dansen. 1387 01:00:48,627 --> 01:00:51,967 Dus uit te gaan van uw stoel en krijgen een meisje vliegen en vang deze beat. 1388 01:00:51,967 --> 01:00:55,911 Terwijl het rollen greep op te pompen een beetje bit en laat hen weten wat er gaande is. 1389 01:00:55,911 --> 01:00:56,890 Zoals dat. 1390 01:00:56,890 --> 01:00:57,390 Zoals dat. 1391 01:00:57,390 --> 01:00:59,362 >> Koud op een missie dus trekken op de rug. 1392 01:00:59,362 --> 01:01:04,785 Laat hen weten dat je te veel hebt en dit is een stap uh je niet kunt aanraken. 1393 01:01:04,785 --> 01:01:07,743 Yo, vertelde ik u U kunt dit niet aanraken. 1394 01:01:07,743 --> 01:01:09,222 Waarom sta je daar de mens? 1395 01:01:09,222 --> 01:01:10,208 U kunt dit niet aanraken. 1396 01:01:10,208 --> 01:01:13,200 >> Yo, klinkt de bel school in, sukkel. 1397 01:01:13,200 --> 01:01:14,005 U kunt dit niet aanraken. 1398 01:01:14,005 --> 01:01:18,326 Geef me een lied, een ritme waardoor ze zweet, dat is wat ik hen nu. 1399 01:01:18,326 --> 01:01:21,805 Ze weten wanneer je praat over de Hammer je praat over een show die is hyped. 1400 01:01:21,805 --> 01:01:24,290 En strakke zangers zijn zweten dus geef ze een microfoon. 1401 01:01:24,290 --> 01:01:27,272 >> Of een tape om te leren wat het gaat nemen en nu 1402 01:01:27,272 --> 01:01:29,260 hij gaat de hitlijsten te branden. 1403 01:01:29,260 --> 01:01:32,739 Legit ofwel werken hard of je net zo goed stoppen. 1404 01:01:32,739 --> 01:01:37,709 Omdat je weet U kunt dit niet aanraken. 1405 01:01:37,709 --> 01:01:41,599 U kunt dit niet aanraken. 1406 01:01:41,599 --> 01:01:42,182 Af te breken. 1407 01:01:42,182 --> 01:01:56,095 1408 01:01:56,095 --> 01:01:56,595 Stoppen. 1409 01:01:56,595 --> 01:01:57,095 Hamer tijd. 1410 01:01:57,095 --> 01:01:59,577 Ga met de stroom in een spin als je niet kunt bewegen om dit 1411 01:01:59,577 --> 01:02:01,068 dan heeft u waarschijnlijk zijn dood. 1412 01:02:01,068 --> 01:02:04,547 Dus zwaaien je handen in de lucht [onverstaanbaar] 1413 01:02:04,547 --> 01:02:08,026 >> Dit is het voor een winnaar dans dit en je gaat om dunner te krijgen. 1414 01:02:08,026 --> 01:02:12,996 Verplaatsen schuif uw romp alleen voor een minuut laten we allemaal de bult. 1415 01:02:12,996 --> 01:02:13,990 Ja. 1416 01:02:13,990 --> 01:02:14,984 U kunt dit niet aanraken. 1417 01:02:14,984 --> 01:02:17,966 1418 01:02:17,966 --> 01:02:19,457 >> U kunt dit niet aanraken. 1419 01:02:19,457 --> 01:02:23,433 Je kunt beter hyped jongen U kunt dit niet aanraken. 1420 01:02:23,433 --> 01:02:24,924 Aanbellen school opnieuw in. 1421 01:02:24,924 --> 01:02:25,918 Af te breken. 1422 01:02:25,918 --> 01:02:38,837 1423 01:02:38,837 --> 01:02:39,337 Stoppen. 1424 01:02:39,337 --> 01:02:40,828 Hamer tijd 1425 01:02:40,828 --> 01:02:42,816 >> DAVID J. MALAN: Dat is het voor CS50! 1426 01:02:42,816 --> 01:02:45,301 Hartelijk dank voor het samenvoegen van ons! 1427 01:02:45,301 --> 01:02:47,786 Zie je buiten. 1428 01:02:47,786 --> 01:02:48,611 >> [END AFSPELEN] 1429 01:02:48,611 --> 01:02:49,277 [VIDEO AFSPELEN] 1430 01:02:49,277 --> 01:02:52,259 [MUZIEK - "SEINFELD" theme song] 1431 01:02:52,259 --> 01:02:53,860 Hé David. 1432 01:02:53,860 --> 01:02:54,500 Hé, David. 1433 01:02:54,500 --> 01:02:55,912 Hoe gaat het? 1434 01:02:55,912 --> 01:02:58,078 >> -Goede Baan, vandaag. 1435 01:02:58,078 --> 01:03:00,952 -dus Heb je nagedacht over wat je gaat doen voor de grappen? 1436 01:03:00,952 --> 01:03:03,207 Nee, ik heb niets. 1437 01:03:03,207 --> 01:03:07,550 -Wat If-- wat als dit is de grap? 1438 01:03:07,550 --> 01:03:08,970 -achtige, Uitpakken karren? 1439 01:03:08,970 --> 01:03:11,430 -Uh Huh. 1440 01:03:11,430 --> 01:03:13,890 Je weet wel, het gaat over niets. 1441 01:03:13,890 --> 01:03:17,559 >> -dus Willen, geen verhaal, geen conflict, geen oplossing. 1442 01:03:17,559 --> 01:03:18,350 Ik begrijp het niet. 1443 01:03:18,350 --> 01:03:20,542 Waar gaat het dan over? 1444 01:03:20,542 --> 01:03:23,510 >> -Niets. 1445 01:03:23,510 --> 01:03:27,427 >> -dus We uit grap is over niets, en we hebben geen acteurs. 1446 01:03:27,427 --> 01:03:28,510 Wie gaat er om in deze? 1447 01:03:28,510 --> 01:03:29,010 >> -Nee nee nee. 1448 01:03:29,010 --> 01:03:31,310 Ik bedoel, zal ik in het. 1449 01:03:31,310 --> 01:03:32,109 >> -Je In het? 1450 01:03:32,109 --> 01:03:32,608 -Ja! 1451 01:03:32,608 --> 01:03:34,903 Mensen zijn altijd te vertellen me ik ben een personage. 1452 01:03:34,903 --> 01:03:36,029 >> Nou, ik bedoel, het is waar. 1453 01:03:36,029 --> 01:03:37,445 Maar wie anders gaat worden in het? 1454 01:03:37,445 --> 01:03:38,660 Het kan niet gewoon je. 1455 01:03:38,660 --> 01:03:47,240 >> -U Zal in het, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, 1456 01:03:47,240 --> 01:03:51,120 David, iedereen. 1457 01:03:51,120 --> 01:03:53,630 >> -dus Het over niets, en iedereen zit er in? 1458 01:03:53,630 --> 01:03:54,530 >> -Helemaal niets. 1459 01:03:54,530 --> 01:03:58,730 1460 01:03:58,730 --> 01:04:00,580 >> -Dit is belachelijk.