1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUZIEK - "HAPPY TOGETHER" de schildpadden] 3 00:01:27,330 --> 00:01:30,170 DAVID MALAN: Vandaag beginnen we onze verkenning van de 4 00:01:30,170 --> 00:01:32,710 fundamenten van de informatica en onze introductie, 5 00:01:32,710 --> 00:01:35,070 nu de kunst van programmering, waarvan die 6 00:01:35,070 --> 00:01:36,260 slechts een voorbeeld. 7 00:01:36,260 --> 00:01:39,600 Maar in dezelfde geest van het oplossen van problemen, weten dat 8 00:01:39,600 --> 00:01:42,080 Traditionele Puzzle CS50's Day is morgen. 9 00:01:42,080 --> 00:01:45,190 Als je nog niet RSVPed voor dit evenement, kunt u naar 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 U kunt brengen teams van twee of drie of vier. 12 00:01:50,940 --> 00:01:53,080 U wordt uitgedaagd met problemen zoals je zag 13 00:01:53,080 --> 00:01:54,190 daar in het begin. 14 00:01:54,190 --> 00:01:57,000 Alle nieuwe problemen die dit jaar als u deelnam vorig jaar, en u 15 00:01:57,000 --> 00:01:59,680 hebben een kans dan naar een aantal fantastische prijzen te winnen. 16 00:01:59,680 --> 00:02:02,750 Onder hen, een Wii en een aantal cadeaubonnen en dergelijke, 17 00:02:02,750 --> 00:02:05,650 allemaal terwijl opknoping uit met CS50 studenten en klasgenoten 18 00:02:05,650 --> 00:02:07,720 en pizza en Facebook. 19 00:02:07,720 --> 00:02:10,430 Dus meer op die morgen als je zou willen. 20 00:02:10,430 --> 00:02:13,330 >> Dit is dan CS50, voor degenen onder u bij ons voor de 21 00:02:13,330 --> 00:02:14,510 eerste keer. 22 00:02:14,510 --> 00:02:18,030 En weet dat deze cursus in het bijzonder is vastbesloten om 23 00:02:18,030 --> 00:02:22,605 u door deze cursus zijn definitieve einde, op welk punt je 24 00:02:22,605 --> 00:02:24,270 zal niet alleen een begrip van deze 25 00:02:24,270 --> 00:02:26,450 fundamenten van de informatica, maar je moet 26 00:02:26,450 --> 00:02:29,120 deze zeer praktische vaardigheden die u vervolgens kunt terug naar 27 00:02:29,120 --> 00:02:31,370 uw eigen afdeling, of het nu technische wetenschappen, 28 00:02:31,370 --> 00:02:33,570 toegepaste wiskunde, de natuurwetenschappen, de natuurlijke 29 00:02:33,570 --> 00:02:34,780 wetenschap, of iets dergelijks. 30 00:02:34,780 --> 00:02:37,030 Inderdaad, wat is er zo boeiend is aan de informatica deze 31 00:02:37,030 --> 00:02:39,900 dagen is dat het is enkel voor 32 00:02:39,900 --> 00:02:40,990 allerlei gebieden. 33 00:02:40,990 --> 00:02:46,210 En ook al vandaag, zullen we alleen krassen op het oppervlak van een 34 00:02:46,210 --> 00:02:49,020 zeer traditionele programmeertaal bekend als C, zullen we 35 00:02:49,020 --> 00:02:51,040 in plaats daarvan kijken naar iets genaamd Scratch, iets met 36 00:02:51,040 --> 00:02:53,420 die dat cookie liefdesverhaal werd uitgevoerd door een van uw 37 00:02:53,420 --> 00:02:57,020 voorgangers in de afgelopen jaren, om verhalen te vertellen, om games te maken, 38 00:02:57,020 --> 00:03:00,060 om interactieve kunst te maken, en om daadwerkelijk beginnen met onze wikkelen 39 00:03:00,060 --> 00:03:02,240 geesten rond enkele van de fundamentele constructies die 40 00:03:02,240 --> 00:03:05,390 ten grondslag liggen aan het programmeren, maar in een context, zoals u zult zien, dat is 41 00:03:05,390 --> 00:03:09,140 veel minder eng, dat is veel minder geheimzinnig, dan u zult zien 42 00:03:09,140 --> 00:03:10,140 het duurde niet lang. 43 00:03:10,140 --> 00:03:12,410 En te realiseren,, voor degenen onder u gewoon bij ons deze 44 00:03:12,410 --> 00:03:16,170 semester, de zinnen, waarop we uiteindelijk woensdag lezing, 45 00:03:16,170 --> 00:03:20,260 is het niet zo belangrijk waar je terecht komt ten opzichte van uw 46 00:03:20,260 --> 00:03:22,950 klasgenoten in deze klasse, maar waar je, tegen het einde semester 47 00:03:22,950 --> 00:03:27,190 in week 11, uiteindelijk ten opzichte van jezelf rechts de dag van vandaag. 48 00:03:27,190 --> 00:03:32,000 >> Dus zonder verder oponthoud, dit is ook vermeldenswaard dat 49 00:03:32,000 --> 00:03:34,450 deze minder comfortabel, die ergens tussen zijn 50 00:03:34,450 --> 00:03:36,825 ook, door het ontwerp van deze cursus, op geen enkel nadeel 51 00:03:36,825 --> 00:03:38,760 ten opzichte van die comfortabeler 52 00:03:38,760 --> 00:03:39,920 komen in deze klasse. 53 00:03:39,920 --> 00:03:41,810 Zoals u zult zien in de komende weken, hebben we verschillende 54 00:03:41,810 --> 00:03:44,600 tracks voor uiteenlopende achtergrond, secties voor die 55 00:03:44,600 --> 00:03:46,500 minder comfortabel, comfortabeler, die ergens 56 00:03:46,500 --> 00:03:47,250 ertussen. 57 00:03:47,250 --> 00:03:49,520 Zoals u zult zien dit weekend en volgende week, twee versies van 58 00:03:49,520 --> 00:03:52,410 de meeste problemen sets in zowel standaard als hacker editie zo 59 00:03:52,410 --> 00:03:55,390 dat u alle kunt zelf kiezen op het pad waarmee u 60 00:03:55,390 --> 00:03:56,615 zijn het meest comfortabel. 61 00:03:56,615 --> 00:03:58,770 >> Dus vandaag hebben we een duik in deze programmering 62 00:03:58,770 --> 00:04:00,060 taal genaamd Scratch. 63 00:04:00,060 --> 00:04:02,250 Het is een grafische programmeertaal, en toch is het 64 00:04:02,250 --> 00:04:04,500 dezelfde kenmerken van een aantal van de hoger niveau talen zullen we 65 00:04:04,500 --> 00:04:07,050 verkennen later in het semester, waaronder C en 66 00:04:07,050 --> 00:04:08,670 JavaScript en PHP. 67 00:04:08,670 --> 00:04:11,890 Maar het zal ons toelaten om een ​​aantal van de afleidingen te voorkomen 68 00:04:11,890 --> 00:04:14,890 vroeg van de syntaxis, dingen zoals puntkomma's, haakjes, 69 00:04:14,890 --> 00:04:17,720 en andere geheimzinnige details die op het eerste gezicht, zijn gewoon niet 70 00:04:17,720 --> 00:04:19,916 op alle intellectueel interessant en hebben de neiging om binnen te komen 71 00:04:19,916 --> 00:04:22,310 de weg van een aantal fundamentele begrip. 72 00:04:22,310 --> 00:04:24,870 In termen van nu de draagstructuur vooruit, realiseerde deze 73 00:04:24,870 --> 00:04:27,570 tool, CS50 te bespreken, die zal worden gekoppeld aan de cursus 74 00:04:27,570 --> 00:04:30,320 website later vandaag, is het online discussieforum in 75 00:04:30,320 --> 00:04:32,480 die je in staat om vragen van elkaar te vragen en 76 00:04:32,480 --> 00:04:35,020 personeel, en het is ook een hulpmiddel, zoals we zullen zien volgende week, 77 00:04:35,020 --> 00:04:37,240 dat we heel integratedly gebruiken in 78 00:04:37,240 --> 00:04:38,780 kantooruren ook. 79 00:04:38,780 --> 00:04:41,670 Inderdaad, kantooruren beginnen op maandag, en eerlijk gezegd, het eerste 80 00:04:41,670 --> 00:04:43,930 week van kantooruren is vrij rustig. 81 00:04:43,930 --> 00:04:46,820 >> Ik denk niet dat je een Scratch alles wat ontoegankelijk te vinden. 82 00:04:46,820 --> 00:04:48,930 Het is nogal vanzelfsprekend, zoals we zullen zien, en dus wat 83 00:04:48,930 --> 00:04:51,380 wij zullen het gebruiken voor vandaag te halen een deel van de 84 00:04:51,380 --> 00:04:53,990 fundamentele ideeën die zal dan blijven de hele 85 00:04:53,990 --> 00:04:54,900 rest van het semester. 86 00:04:54,900 --> 00:04:57,980 Maar vanaf maandag om 8:00 uur dmv 23:00 zal zijn 87 00:04:57,980 --> 00:05:01,530 kantooruren in Annenberg dan hersenen breken. 88 00:05:01,530 --> 00:05:04,490 Snijden twee zal deze avond beginnen, dus ergens deze 89 00:05:04,490 --> 00:05:07,260 weekend, ga naar cs50.net/section, en je zult 90 00:05:07,260 --> 00:05:08,530 worden gevraagd een aantal vragen. 91 00:05:08,530 --> 00:05:10,290 Onder hen, hoe zou u uw 92 00:05:10,290 --> 00:05:12,040 comfort niveau met ingang van vandaag? 93 00:05:12,040 --> 00:05:14,450 Er is geen harde, snelle regel ten aanzien van wie er in die emmer. 94 00:05:14,450 --> 00:05:17,170 Het is precies het soort ding dat u waarschijnlijk wel weet als je 95 00:05:17,170 --> 00:05:20,280 zijn onder andere het minder comfortabel of anderszins. 96 00:05:20,280 --> 00:05:21,350 >> En nu, walkthroughs. 97 00:05:21,350 --> 00:05:24,020 Het probleem set specificatie voor deze week, zowel standaard 98 00:05:24,020 --> 00:05:28,560 en hacker editie gelijk, is online op cs50.net vanaf nu. 99 00:05:28,560 --> 00:05:31,500 En je zult zien dat de eerste van deze edities, de 100 00:05:31,500 --> 00:05:33,940 standard edition elke week, gaat gepaard met iets wat we 101 00:05:33,940 --> 00:05:36,550 bel een code walkthrough, een sessie onder leiding van een van de 102 00:05:36,550 --> 00:05:39,100 cursus leer kerels om u door, om te voorzien 103 00:05:39,100 --> 00:05:42,290 tips over, en krijg je naar beneden een bepaald pad als het gaat 104 00:05:42,290 --> 00:05:44,150 het starten deze problemen sets. 105 00:05:44,150 --> 00:05:46,790 Dus met elk van deze problemen stelt, als je ooit te willen 106 00:05:46,790 --> 00:05:50,250 voor jezelf waar moet ik beginnen, je begint met deze 107 00:05:50,250 --> 00:05:50,890 walkthroughs. 108 00:05:50,890 --> 00:05:53,450 En in feite, staat u mij toe Zamyla Chan, deze introduceren 109 00:05:53,450 --> 00:05:55,870 jaar onderwijs kerel, die zal leiden elke 110 00:05:55,870 --> 00:05:56,910 een van deze walkthroughs. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Applaus] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: Oh, hallo, iedereen. 114 00:06:03,975 --> 00:06:05,130 Mijn naam is Zamyla. 115 00:06:05,130 --> 00:06:08,250 Ik ben een junior studeren engineering in Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Maar ik probeer en passen in zo veel informatica cursussen zoals ik 117 00:06:10,890 --> 00:06:13,350 kan, dat is waarom ik ben echt opgewonden om te leiden deze 118 00:06:13,350 --> 00:06:14,590 jaar walkthroughs. 119 00:06:14,590 --> 00:06:16,950 Walkthroughs, voor mij, was een essentieel onderdeel van mijn CS50 120 00:06:16,950 --> 00:06:17,910 bieden. 121 00:06:17,910 --> 00:06:22,710 Tijdens de walkthrough, voor elke p-set, we gaan door 122 00:06:22,710 --> 00:06:25,580 het probleem samen te stellen, kijken uit over de problemen, een soort van 123 00:06:25,580 --> 00:06:27,360 verdeel ze in hanteerbare beten. 124 00:06:27,360 --> 00:06:28,990 Ik geef je tips, technieken, voor het krijgen van 125 00:06:28,990 --> 00:06:30,820 door en aan de slag. 126 00:06:30,820 --> 00:06:33,510 Ik hoop jullie allemaal te zien op de walkthroughs. 127 00:06:33,510 --> 00:06:34,720 Als je niet kunt maken in persoon, dan 128 00:06:34,720 --> 00:06:36,580 doe tune in online. 129 00:06:36,580 --> 00:06:36,840 >> DAVID MALAN: Excellent. 130 00:06:36,840 --> 00:06:37,950 Dank je wel, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Dus beseffen dat walkthroughs zijn, inderdaad, op een vrijdag 132 00:06:40,870 --> 00:06:43,110 middag, maar dit is met opzet door het ontwerp, zodat 133 00:06:43,110 --> 00:06:45,750 zelfs als u liever niet naar les op een vrijdag 134 00:06:45,750 --> 00:06:48,490 's Middags zullen de video's zijn al de sneller dan 135 00:06:48,490 --> 00:06:48,990 het weekend. 136 00:06:48,990 --> 00:06:51,880 Realiseer dat cs50.net komen al de Zamyla 137 00:06:51,880 --> 00:06:53,130 walkthroughs. 138 00:06:54,800 --> 00:06:56,890 En dat er vandaag de dag de datum en tijd, 3:00 uur, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 En sommige van de leer fellows zijn ook bereid 141 00:07:00,080 --> 00:07:03,250 enkele opmerkingen voor u in verstek om u een beetje 142 00:07:03,250 --> 00:07:06,760 perspectief wat hun ervaring die in en 143 00:07:06,760 --> 00:07:08,990 uit te gaan van de CS50 was. 144 00:07:08,990 --> 00:07:11,250 Dus als we dim de lichten voor slechts een moment, geef ik u 145 00:07:11,250 --> 00:07:18,100 een deel van het personeel CS50's. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: Ik nam CS50 vorig jaar als eerstejaars in de 147 00:07:20,440 --> 00:07:22,880 vallen, en het absoluut in mijn gedachten. 148 00:07:22,880 --> 00:07:25,090 Ik had nog nooit heeft gebruikt programmering klassen voor, 149 00:07:25,090 --> 00:07:26,380 en nooit kwam binnen met elke computer science 150 00:07:26,380 --> 00:07:27,320 ervaring. 151 00:07:27,320 --> 00:07:29,240 En net hoorde ik de buzz over de klasse en 152 00:07:29,240 --> 00:07:30,050 besloten om het te nemen. 153 00:07:30,050 --> 00:07:31,780 >> JULIA MITELMAN: Het was echt leuk, echt aantrekkelijk. 154 00:07:31,780 --> 00:07:33,480 Ik heb nog steeds, tot op de dag - 155 00:07:33,480 --> 00:07:36,560 Ik zag onlangs heb ik de diskette die David gaf ons 156 00:07:36,560 --> 00:07:38,140 op onze eerste dag van de lezing. 157 00:07:38,140 --> 00:07:40,020 Ik had hing het op mijn muur. 158 00:07:40,020 --> 00:07:42,410 Dit is waarschijnlijk een beetje nerdy, maar ik hing in mijn 159 00:07:42,410 --> 00:07:46,930 muur tijdens de les als een herinnering aan hoe cool het was. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: Het is zo gênant. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: Informatica is iets wat je 162 00:07:50,770 --> 00:07:52,370 moet proberen zelfs als je niet een voor 163 00:07:52,370 --> 00:07:54,980 de traditionele wetenschappen. 164 00:07:54,980 --> 00:07:58,510 Het is haar eigen ervaring, en CS50 zullen ervoor zorgen dat je 165 00:07:58,510 --> 00:08:01,520 goed ondersteund door het met haar waar leger van TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: Ik nam het als een eerstejaars, en ik heb veel 167 00:08:03,700 --> 00:08:04,215 van nieuwe vrienden. 168 00:08:04,215 --> 00:08:07,170 Ik kreeg ook kennis met deze hele concentratie en 169 00:08:07,170 --> 00:08:10,770 hele school van engineering, en dus heb ik het ten zeerste aan 170 00:08:10,770 --> 00:08:14,360 en heten u welkom in onze CS50 familie. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv YACOBY: CS50 leert je gewoon hoe te gebruiken hulpmiddelen 172 00:08:17,510 --> 00:08:19,210 die op grote schaal toegankelijk zijn. 173 00:08:19,210 --> 00:08:21,840 Je hoeft alleen een laptop nodig hebt, moet je een web browser, en u 174 00:08:21,840 --> 00:08:26,030 moeten leren om wat code te schrijven, en je kunt echt bouwen 175 00:08:26,030 --> 00:08:27,400 leuke dingen. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: Het is gewoon zo cool om te kunnen om iets te maken 177 00:08:31,660 --> 00:08:34,580 en hebben mensen gebruiken het en hebben mensen het zien, en dat is 178 00:08:34,580 --> 00:08:35,900 wat ik echt leuk vind aan het. 179 00:08:35,900 --> 00:08:37,429 >> TIM MCLAUGHLIN: - een gevoel van gemeenschap, denk ik, in dit 180 00:08:37,429 --> 00:08:39,470 natuurlijk meer dan een andere cursus die ik heb tot nu toe genomen. 181 00:08:39,470 --> 00:08:41,350 Je bent niet alleen het nemen van een andere - 182 00:08:41,350 --> 00:08:42,740 je bent niet het vullen van een andere vereiste. 183 00:08:42,740 --> 00:08:45,310 U bent niet alleen maar naar lezingen en naar sectie. 184 00:08:45,310 --> 00:08:49,630 Maar je doet vele dingen die zijn allemaal over 185 00:08:49,630 --> 00:08:51,560 programmering en alles over techniek, maar het is niet 186 00:08:51,560 --> 00:08:53,090 echt het gevoel dat een klasse meeste van de tijd. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: En op de eerste dag, ze uitgedeeld cake, en 188 00:08:55,012 --> 00:08:56,215 Ik was meteen verkocht. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: Gratis snoep en pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - ongeacht uw interesse niveau, denk ik 191 00:08:59,820 --> 00:09:05,170 dat CS50, heb je plezier, en je zult intellectueel te zijn 192 00:09:05,170 --> 00:09:06,070 gestimuleerd. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: Het is altijd een feest in de klas, en het is een 194 00:09:07,926 --> 00:09:09,990 feest elke nacht werken aan uw p-set. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Elke keer dat u klaar bent met een probleem set, kunt u 196 00:09:11,880 --> 00:09:13,710 zal voelen als je klaar bent met een project. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Het was eerste jaar, en ik was klaar met winkelen. 198 00:09:16,580 --> 00:09:19,030 Ik had mijn vier klassen klaar, en ik was in Annenberg. 199 00:09:19,030 --> 00:09:21,670 En ik tegen het lijf een vriend, en hij zegt, hey, ik ben winkelen 200 00:09:21,670 --> 00:09:24,330 deze klasse met de naam CS50, en je moet met me meekomen. 201 00:09:24,330 --> 00:09:28,150 Eindigde met het die vallen, en na die klasse, ik 202 00:09:28,150 --> 00:09:30,510 dacht dat ik misschien ga minderjarige in CS. 203 00:09:30,510 --> 00:09:33,760 Maar hier ben ik, drie jaar later, nog steeds het bestuderen van de computer 204 00:09:33,760 --> 00:09:36,680 wetenschap en het werkelijk doen als een belangrijke, en ik hield van elke 205 00:09:36,680 --> 00:09:37,780 moment. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: Ik heb geen idee. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Eens kijken. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: Craziness. 209 00:09:49,200 --> 00:09:50,610 >> Spreker 1: Ik heb het gevoel alsof ik heel cliche zijn. 210 00:09:50,610 --> 00:09:52,530 Ik zou gewoon zeggen, als, geweldig. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv YACOBY: Toegankelijkheid. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: Gratis snoep en pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: kan niet worden ingeschakeld in een klasse die handen uit cake. 214 00:09:57,310 --> 00:09:58,510 >> TIM MCLAUGHLIN: Energetische. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Shekhawat: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Laat me denken aan een antwoord. 217 00:10:02,636 --> 00:10:04,480 Ik denk dat ik iets heb. 218 00:10:04,480 --> 00:10:07,092 Oh, god. 219 00:10:07,092 --> 00:10:13,370 Ja, mijn naam is Rob Bowden, en dit is CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Applaus] 221 00:10:20,810 --> 00:10:23,390 DAVID MALAN: Oke, dus laten we beginnen met een beeld te schetsen 222 00:10:23,390 --> 00:10:26,230 van de richting waarin we kunnen gaan, en laten we introduceren 223 00:10:26,230 --> 00:10:28,190 dit concept hier bekend als pseudocode. 224 00:10:28,190 --> 00:10:29,560 Dus pseudocode is geen programmeertaal 225 00:10:29,560 --> 00:10:30,810 taal op zich. 226 00:10:30,810 --> 00:10:33,250 Het is niets technisch per se, maar het is gewoon een soort van 227 00:10:33,250 --> 00:10:36,490 algemene manier van jezelf uitdrukken vrij nauwkeurig, 228 00:10:36,490 --> 00:10:39,730 vrij algoritmisch, tamelijk procedureel, maar zonder 229 00:10:39,730 --> 00:10:42,570 zich zorgen te maken over welke taal je uitdrukken 230 00:10:42,570 --> 00:10:43,150 jezelf inch 231 00:10:43,150 --> 00:10:46,280 Het is sommige modellen van het Engels en programmeertalen met 232 00:10:46,280 --> 00:10:48,790 die je toevallig bekend, zodat we kunnen beginnen 233 00:10:48,790 --> 00:10:50,600 het schrijven van dit soort dingen als we gaan. 234 00:10:50,600 --> 00:10:54,450 En in feite, Joseph, kon ik lenen je op het podium te zijn 235 00:10:54,450 --> 00:10:55,490 schrijver hier? 236 00:10:55,490 --> 00:11:00,130 Ik ben vooruit gegaan hier op voorhand en vergeten te zetten 237 00:11:00,130 --> 00:11:02,920 op een paar sokken vandaag, en dit zal een van onze meer 238 00:11:02,920 --> 00:11:03,780 belachelijk voorbeelden. 239 00:11:03,780 --> 00:11:04,580 >> Nu, ik heb je hier. 240 00:11:04,580 --> 00:11:05,630 Ik doe de sokken deel. 241 00:11:05,630 --> 00:11:08,040 Hier hebben we dus een beetje kladblok. 242 00:11:08,040 --> 00:11:09,940 Dit is letterlijk TextEdit in een Mac. 243 00:11:09,940 --> 00:11:12,270 We zijn niet echt gaat om een ​​uitvoerbare programma te schrijven, maar 244 00:11:12,270 --> 00:11:14,220 we gaan gewoon om te beginnen met het schetsen van pseudocode gebaseerde 245 00:11:14,220 --> 00:11:17,830 op een aantal van de raad die u verstrekt aan mij hier. 246 00:11:17,830 --> 00:11:20,760 Dus hier is mijn stapel sokken thuis. 247 00:11:20,760 --> 00:11:23,320 Ik heb geen sokken aan als ik wakker word in de ochtend, en we hebben nu 248 00:11:23,320 --> 00:11:26,280 moet een programma te schrijven, een algoritme soort, waarmee 249 00:11:26,280 --> 00:11:27,900 om deze sokken te krijgen op mijn voeten. 250 00:11:27,900 --> 00:11:30,860 En langs de weg, laten we eens kijken of we struikelen, of tegenkomen, 251 00:11:30,860 --> 00:11:32,860 een aantal van de ideeën die je gaat moeten beginnen 252 00:11:32,860 --> 00:11:35,470 na te denken over veel meer serieus bij het programmeren van 253 00:11:35,470 --> 00:11:37,950 opdat uw programma's gedragen zich niet helemaal zoals bedoeld. 254 00:11:37,950 --> 00:11:39,580 >> Dus ik zit hier beneden. 255 00:11:39,580 --> 00:11:41,180 Ik heb mijn stapel sokken. 256 00:11:41,180 --> 00:11:43,780 Wat is het eerste wat een redelijk mens zou 257 00:11:43,780 --> 00:11:46,600 doen als het doel is om op een paar sokken? 258 00:11:46,600 --> 00:11:49,190 Iemand geef me een stap, en slechts een stap. 259 00:11:49,190 --> 00:11:49,796 Ja? 260 00:11:49,796 --> 00:11:50,690 PUBLIEK: Buig naar beneden. 261 00:11:50,690 --> 00:11:54,290 DAVID MALAN: Buig naar beneden, oke. 262 00:11:54,290 --> 00:11:55,540 Stap twee. 263 00:11:59,975 --> 00:12:00,645 Stap twee. 264 00:12:00,645 --> 00:12:01,840 PUBLIEK: Neem uw sok. 265 00:12:01,840 --> 00:12:03,220 DAVID MALAN: Neem uw sok. 266 00:12:03,220 --> 00:12:07,610 Oke, lichte dubbelzinnigheid hier, en dit is een van de eerste 267 00:12:07,610 --> 00:12:09,380 struikelblokken die we verondersteld om bewust 268 00:12:09,380 --> 00:12:10,290 tegenkomen hier. 269 00:12:10,290 --> 00:12:14,110 Het is een beetje dubbelzinnig, dus pak je sok. 270 00:12:14,110 --> 00:12:17,425 Fijn, ik neem deze, maar een computer, te realiseren in slechts een 271 00:12:17,425 --> 00:12:20,420 bit, is niet van plan om dat soort menselijke instinct om er gewoon nog 272 00:12:20,420 --> 00:12:21,490 pak de dichtstbijzijnde. 273 00:12:21,490 --> 00:12:23,590 We gaan moeten beginnen, het duurde niet lang, uiten 274 00:12:23,590 --> 00:12:24,610 onszelf meer precies. 275 00:12:24,610 --> 00:12:26,600 >> Oke, dus stap twee is de overhandiging van uw sok. 276 00:12:26,600 --> 00:12:27,520 We nemen het. 277 00:12:27,520 --> 00:12:28,620 Stap drie. 278 00:12:28,620 --> 00:12:29,532 In de rug. 279 00:12:29,532 --> 00:12:30,900 PUBLIEK: Zoek een passend paar. 280 00:12:30,900 --> 00:12:32,060 DAVID MALAN: Zoek matching pair. 281 00:12:32,060 --> 00:12:34,740 Oke, dus dit is goed. 282 00:12:34,740 --> 00:12:35,650 Ik moest deze sok te kiezen. 283 00:12:35,650 --> 00:12:39,200 Dus het doel is het vinden van een passende sok, nu, maar 284 00:12:39,200 --> 00:12:39,990 wil dat zeggen? 285 00:12:39,990 --> 00:12:42,130 Een redelijke mens, net als op woensdag toen ik net 286 00:12:42,130 --> 00:12:44,700 wist Mike Smith te vinden in een telefoonboek, gewoon een soort van 287 00:12:44,700 --> 00:12:45,640 ging met hun instinct. 288 00:12:45,640 --> 00:12:49,220 Maar hier, het is natuurlijk deze sok hier, maar van een computer 289 00:12:49,220 --> 00:12:51,350 niet van plan om zo instinctief. 290 00:12:51,350 --> 00:12:53,830 Een computer wordt een verzameling bits, zoals we 291 00:12:53,830 --> 00:12:55,380 besproken op woensdag, en dat zijn 292 00:12:55,380 --> 00:12:56,710 andere manier georganiseerd geheugen. 293 00:12:56,710 --> 00:13:00,400 Maar het punt is dat een computer alleen de mogelijkheid heeft 294 00:13:00,400 --> 00:13:03,390 om te kijken naar dingen een voor een, en in feite, zelfs wij 295 00:13:03,390 --> 00:13:05,980 mensen - ook al voelt het alsof ik keek naar beneden en een split 296 00:13:05,980 --> 00:13:08,900 seconde later Ik weet waar de sok is, mijn hersenen en mijn ogen 297 00:13:08,900 --> 00:13:12,000 vermoedelijk heeft een snelle romen van die sokken, en vervolgens vergrendeld 298 00:13:12,000 --> 00:13:13,400 op de in kwestie. 299 00:13:13,400 --> 00:13:15,780 >> Als we des te opzettelijke nu een computer, 300 00:13:15,780 --> 00:13:17,780 hoe vind ik deze matching pair? 301 00:13:17,780 --> 00:13:18,890 Nou, we moeten herhalen. 302 00:13:18,890 --> 00:13:21,440 We moeten misschien lus over deze rotzooi van losse sokken op de 303 00:13:21,440 --> 00:13:25,760 vloer waardoor ik iets zeggen VOOR ELKE sok, pak het 304 00:13:25,760 --> 00:13:30,195 up, en als dezelfde vorm en grootte als de andere, DAN 305 00:13:30,195 --> 00:13:32,150 puntje, puntje, puntje, blijven we het verhaal. 306 00:13:32,150 --> 00:13:34,430 Dus voor elke sok, dus pak ik deze. 307 00:13:34,430 --> 00:13:36,520 Ik check is dit gelijk aan deze. 308 00:13:36,520 --> 00:13:38,250 Het is niet, dus ik opzij gezet kant. 309 00:13:38,250 --> 00:13:39,220 Dan ga ik weer herhalen. 310 00:13:39,220 --> 00:13:40,340 Is dit een gelijk? 311 00:13:40,340 --> 00:13:42,010 Nee, het is niet, dus ik zet het opzij. 312 00:13:42,010 --> 00:13:42,710 Is deze? 313 00:13:42,710 --> 00:13:43,200 Nee. 314 00:13:43,200 --> 00:13:43,670 Deze? 315 00:13:43,670 --> 00:13:44,520 No, enzovoort. 316 00:13:44,520 --> 00:13:48,730 En dan tot slot, hopelijk zal ik hier tegenkomen deze sok. 317 00:13:48,730 --> 00:13:51,350 Dus als het dezelfde vorm, grootte, neem het. 318 00:13:51,350 --> 00:13:53,980 >> En nu, wat zou hier de volgende stap? 319 00:13:53,980 --> 00:13:54,402 Ja? 320 00:13:54,402 --> 00:13:56,090 PUBLIEK: Identificeer rechts van links. 321 00:13:56,090 --> 00:13:58,980 DAVID MALAN: Oke, identificeren rechts en links, zodat 322 00:13:58,980 --> 00:14:01,870 gelukkig, dat soort werk. 323 00:14:01,870 --> 00:14:04,020 Een beetje symmetrisch, of ik heb gewoon gedragen ze op die manier. 324 00:14:04,020 --> 00:14:07,020 Oke, dus ik heb de juiste geïdentificeerd. 325 00:14:07,020 --> 00:14:09,980 En nu, voordat we overgaan, wil ik wijzen op wat Joseph's 326 00:14:09,980 --> 00:14:12,890 is hier aan het doen als een soort van ervaren programmeur. 327 00:14:12,890 --> 00:14:15,800 Dus nogmaals, er is niet een manier om dit te doen, maar dan alleen 328 00:14:15,800 --> 00:14:18,480 nummering van de lijnen, heeft Joseph al begonnen om dit te doen 329 00:14:18,480 --> 00:14:19,460 soort van inkeping. 330 00:14:19,460 --> 00:14:21,950 Inderdaad, dit is een veel voorkomende conventie in de programmering, 331 00:14:21,950 --> 00:14:26,110 waarbij als je iets iteratieve, looping stijl, zoals 332 00:14:26,110 --> 00:14:28,480 we impliceren met het Engels zinsnede "voor elk 333 00:14:28,480 --> 00:14:31,090 sok, "de conventie in pseudocode en, zoals we zullen zien, 334 00:14:31,090 --> 00:14:33,410 normale programmeertalen, is om gewoon inspringen. 335 00:14:33,410 --> 00:14:36,240 Raak de spatiebalk een paar keer, druk op de Tab-toets of iets dergelijks, 336 00:14:36,240 --> 00:14:40,660 zodat geneste onder "VOOR ELKE sok" is het deel van 337 00:14:40,660 --> 00:14:43,430 dingen die je moet doen als gevolg van die lus. 338 00:14:43,430 --> 00:14:45,940 Dus dat is alles wat semantisch is transport. 339 00:14:45,940 --> 00:14:48,620 Nu ondertussen de "Als het dezelfde vorm en grootte," de 340 00:14:48,620 --> 00:14:51,590 feit dat "het nemen" wordt ingesprongen verder gewoon betekent 341 00:14:51,590 --> 00:14:54,370 dat is het enige wat je moet doen als die voorwaarde, 342 00:14:54,370 --> 00:14:59,770 als die tak, die splitsing in de weg, is in feite waar. 343 00:14:59,770 --> 00:15:02,130 >> Dus nu hier, zijn we op stap vier, te identificeren rechts en links. 344 00:15:02,130 --> 00:15:03,410 Ik heb gelijk geïdentificeerd. 345 00:15:03,410 --> 00:15:05,150 Geef me stap vijf. 346 00:15:05,150 --> 00:15:07,880 En technisch gezien, konden we echt noemen 347 00:15:07,880 --> 00:15:09,510 de VOOR ELK ding - 348 00:15:09,510 --> 00:15:11,450 moet je waarschijnlijk nummeren alle lijnen als 349 00:15:11,450 --> 00:15:12,190 we gaan om dit te doen. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [onverstaanbaar] 351 00:15:14,006 --> 00:15:14,610 DAVID MALAN: [onverstaanbaar]? 352 00:15:14,610 --> 00:15:16,070 Oke, goed, goed, we doen het op jouw manier. 353 00:15:16,070 --> 00:15:19,590 Oke, dus stap vijf, hoe doen we de juiste sok? 354 00:15:19,590 --> 00:15:22,310 Hoe gaan we te werk volgende, hier? 355 00:15:22,310 --> 00:15:22,730 Ja? 356 00:15:22,730 --> 00:15:24,300 PUBLIEK: Til het rechterbeen. 357 00:15:24,300 --> 00:15:27,100 DAVID MALAN: Til het rechterbeen, Oke. 358 00:15:27,100 --> 00:15:29,330 Stap zes? 359 00:15:29,330 --> 00:15:30,728 Snel. 360 00:15:30,728 --> 00:15:31,202 Ja. 361 00:15:31,202 --> 00:15:33,100 PUBLIEK: Zoek een open uiteinde van de sok. 362 00:15:33,100 --> 00:15:34,440 DAVID MALAN: Oke, het vinden van het open uiteinde van de sok. 363 00:15:34,440 --> 00:15:34,840 Zo goed. 364 00:15:34,840 --> 00:15:37,180 Dus hier, eerlijk gezegd, zou een veel voorkomende instinct gewoon 365 00:15:37,180 --> 00:15:39,880 op rechter sok, maar ook dat is vrij dubbelzinnig. 366 00:15:39,880 --> 00:15:42,750 Tenzij de computer of menselijke weet precies wat dat betekent, 367 00:15:42,750 --> 00:15:45,160 het is niet van plan te zijn om dat uit te voeren, dus even, ik heb 368 00:15:45,160 --> 00:15:46,520 vond de opening van de voorraad. 369 00:15:46,520 --> 00:15:48,222 Stap zeven? 370 00:15:48,222 --> 00:15:49,700 PUBLIEK: Raak je tenen aan. 371 00:15:49,700 --> 00:15:51,070 DAVID MALAN: Touch tenen. 372 00:15:51,070 --> 00:15:53,546 Oke, dus nu gaan we - 373 00:15:53,546 --> 00:15:56,480 Oke, ik ga hier even vrijheden. 374 00:15:56,480 --> 00:15:57,110 Bedankt. 375 00:15:57,110 --> 00:15:59,210 Stap acht? 376 00:15:59,210 --> 00:16:00,060 Doe sok. 377 00:16:00,060 --> 00:16:02,060 Oke, dus nu heb ik, denk dat we dicht genoeg om te sorteren van te nemen 378 00:16:02,060 --> 00:16:03,480 dit thuis. 379 00:16:03,480 --> 00:16:05,980 Oke, dus dit gaat omhoog. 380 00:16:05,980 --> 00:16:07,950 Ik neem enkele vrijheden met wat het betekent, eigenlijk. 381 00:16:07,950 --> 00:16:08,920 Zet de sok op. 382 00:16:08,920 --> 00:16:10,853 Oke, nu stap negen? 383 00:16:10,853 --> 00:16:11,740 PUBLIEK: Zet voet neer. 384 00:16:11,740 --> 00:16:12,510 DAVID MALAN: Dank je wel. 385 00:16:12,510 --> 00:16:15,610 Stap negen, zet voet neer, en nu kunnen we herhalen. 386 00:16:15,610 --> 00:16:19,540 Dus vermoedelijk, kunnen we nu gaan in stap 10 en zeggen te identificeren 387 00:16:19,540 --> 00:16:21,960 links sok, maar dat is vermoedelijk al gedaan. 388 00:16:21,960 --> 00:16:24,100 >> En dus dan kan ik sorteren van deze stappen herhalen. 389 00:16:24,100 --> 00:16:25,260 Maar dit soort roept de vraag. 390 00:16:25,260 --> 00:16:28,100 Voor, de laatste keer dat we wilden om iets te herhalen, we 391 00:16:28,100 --> 00:16:30,730 deed het iteratief, opnieuw en opnieuw, een FOR 392 00:16:30,730 --> 00:16:32,660 Elke lus om zo te zeggen. 393 00:16:32,660 --> 00:16:36,420 Zou het zinvol zijn om een ​​lus te gebruiken om zowel te behandelen 394 00:16:36,420 --> 00:16:38,470 links en rechts sok? 395 00:16:38,470 --> 00:16:40,460 Omdat het voelt alsof deze handelingen zijn vrij veel 396 00:16:40,460 --> 00:16:43,090 identiek, behalve het feit dat een begint hier en een 397 00:16:43,090 --> 00:16:44,850 begint hier? 398 00:16:44,850 --> 00:16:47,400 Hebben we lus, of gaan we gewoon blijven schrijven stappen 399 00:16:47,400 --> 00:16:48,745 10 en 11 en 12? 400 00:16:48,745 --> 00:16:50,540 PUBLIEK: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID MALAN: Oke, dus loop. 402 00:16:52,240 --> 00:16:54,730 Ik heb eigenlijk kunnen zeggen ga gewoon door. 403 00:16:54,730 --> 00:16:55,720 Dus waarom is dit het geval? 404 00:16:55,720 --> 00:16:57,940 Nou, dit is eigenlijk de eerste van onze niet-voor de hand liggende 405 00:16:57,940 --> 00:17:01,210 ontwerpbeslissingen en in feite een van de metrics waarmee 406 00:17:01,210 --> 00:17:03,990 we beginnen te evalueren, voor onszelf en voor u, de 407 00:17:03,990 --> 00:17:06,780 kwaliteit van een opleiding is gewoon hoe goed ontworpen is. 408 00:17:06,780 --> 00:17:09,619 Heb je gedaan de minimale hoeveelheid werk die nodig zijn om 409 00:17:09,619 --> 00:17:12,480 de klus het meest snel gedaan, hetzij in termen van 410 00:17:12,480 --> 00:17:15,430 uw tijd of in termen van het uitvoeren van de computer tijd? 411 00:17:15,430 --> 00:17:17,589 Hoeveel operaties duurt het uit te voeren om? 412 00:17:17,589 --> 00:17:20,180 Dus misschien is dit een kans voor een lus, omdat 413 00:17:20,180 --> 00:17:22,829 zodra ik beginnen met het kopiëren en plakken, als Joseph effectief 414 00:17:22,829 --> 00:17:25,010 zou gaan doen in een moment, je bent soort van het verspillen van uw 415 00:17:25,010 --> 00:17:27,140 tijd, en je wordt dubbel expressief. 416 00:17:27,140 --> 00:17:30,260 >> Maar tegelijkertijd, deze zijn in feite slechts twee speciale 417 00:17:30,260 --> 00:17:31,890 gevallen, links en rechts. 418 00:17:31,890 --> 00:17:34,930 En terwijl voorheen, zou ik 10 of 20 of meer sokken in 419 00:17:34,930 --> 00:17:37,960 een stapel, het maakt zeker zin niet te hebben 50 regels van 420 00:17:37,960 --> 00:17:40,180 code zegt check deze sok, dan de volgende, 421 00:17:40,180 --> 00:17:41,300 dan de volgende. 422 00:17:41,300 --> 00:17:43,450 Hier, het is een beetje minder voor de hand, en ik zou voorgesteld 423 00:17:43,450 --> 00:17:44,390 dat we konden gaan in beide richtingen. 424 00:17:44,390 --> 00:17:46,720 We kunnen ofwel de loop, hoewel het slechts lussen 425 00:17:46,720 --> 00:17:50,620 twee keer, of we kunnen gewoon kopiëren en plakken een beetje 426 00:17:50,620 --> 00:17:53,270 hier om de klus te klaren. 427 00:17:53,270 --> 00:17:55,210 Maar dit programma is buggy, zo te zeggen. 428 00:17:55,210 --> 00:17:59,120 Het kan een aantal fouten, vergissingen of hoek gevallen, om zo te 429 00:17:59,120 --> 00:18:00,860 spreken, dat we niet echt verwacht. 430 00:18:00,860 --> 00:18:03,400 Niets mis ging deze keer, maar wat kon fout gegaan 431 00:18:03,400 --> 00:18:06,100 tijdens het uitvoeren van dit programma? 432 00:18:06,100 --> 00:18:07,040 PUBLIEK: Je hebt geen sokken. 433 00:18:07,040 --> 00:18:08,980 >> DAVID MALAN: Dus er was er geen sokken dan ook. 434 00:18:08,980 --> 00:18:10,380 Dus laten we eens kijken die hoek geval. 435 00:18:10,380 --> 00:18:14,670 Dus als we terug te scrollen naar stap een, dus stap was 436 00:18:14,670 --> 00:18:16,540 bukken, zodat klopt. 437 00:18:16,540 --> 00:18:21,250 Stap twee, pak je sok, maar dan bekijk de overeenkomende resultaten sok, 438 00:18:21,250 --> 00:18:22,420 identificeren rechts. 439 00:18:22,420 --> 00:18:25,050 We soort van een heleboel aannames, en dat is, 440 00:18:25,050 --> 00:18:27,720 eerlijk gezegd, waarom het programma soms crashen. 441 00:18:27,720 --> 00:18:30,240 Als u, de programmeur, de zekerheid hebben verkregen veronderstellingen, zoals 442 00:18:30,240 --> 00:18:33,000 dus er komt wel sokken of zeker er zal 443 00:18:33,000 --> 00:18:35,310 om het geheugen in de computer gelaten te zijn, dus er gaat 444 00:18:35,310 --> 00:18:37,420 op de harde schijf ruimte op de harde schijf zijn - 445 00:18:37,420 --> 00:18:39,040 Nou, als je deze aannames, en dat is niet, 446 00:18:39,040 --> 00:18:41,880 in feite, de werkelijkheid, wie weet soms wat van de computer 447 00:18:41,880 --> 00:18:42,520 gaan doen? 448 00:18:42,520 --> 00:18:44,450 En soms, als je de draaiende strandbal of de 449 00:18:44,450 --> 00:18:47,750 bevroren Windows of iets dergelijks, dat is precies omdat sommige 450 00:18:47,750 --> 00:18:50,980 programmeur niet anticiperen op die zogenaamde randgevallen. 451 00:18:50,980 --> 00:18:53,050 Wat kan mis zijn gegaan in dit programma? 452 00:18:53,050 --> 00:18:53,330 Ja? 453 00:18:53,330 --> 00:18:55,950 >> PUBLIEK: Je hebt geen recht been en een linkerbeen. 454 00:18:55,950 --> 00:18:58,920 DAVID MALAN: Oke, misschien niet hebben zowel een recht been en een 455 00:18:58,920 --> 00:19:01,940 linkerbeen, en dus dit programma misschien niet universeel zijn 456 00:19:01,940 --> 00:19:02,590 toepassing. 457 00:19:02,590 --> 00:19:03,658 Anderen? 458 00:19:03,658 --> 00:19:05,650 PUBLIEK: Je zou kunnen hebben opgepikt een wees sok. 459 00:19:05,650 --> 00:19:07,970 DAVID MALAN: Ik zou kunnen hebben opgepikt een wees sok, dus een 460 00:19:07,970 --> 00:19:11,250 niet-overeenkomende sok die net heeft geen broers en zussen, want ik heb 461 00:19:11,250 --> 00:19:13,650 verloren, het is gescheurd, is het in de wash still, of iets dergelijks. 462 00:19:13,650 --> 00:19:15,550 Zodat ook niet echt is behandeld. 463 00:19:15,550 --> 00:19:15,790 Ja? 464 00:19:15,790 --> 00:19:17,510 PUBLIEK: Je zou al sokken op. 465 00:19:17,510 --> 00:19:19,050 DAVID MALAN: Ik zou al sokken op. 466 00:19:19,050 --> 00:19:20,080 Ik heb niet echt te controleren. 467 00:19:20,080 --> 00:19:23,350 ALS u niet sokken hebben op, ga dan naar doen 468 00:19:23,350 --> 00:19:24,330 lijn een en twee. 469 00:19:24,330 --> 00:19:24,980 En dat kon gebeuren. 470 00:19:24,980 --> 00:19:26,880 Je valt in slaap met je sokken aan en dergelijke, zodat 471 00:19:26,880 --> 00:19:28,860 dat ook,, een zeer redelijke hoek geval. 472 00:19:28,860 --> 00:19:29,630 En misschien een ander? 473 00:19:29,630 --> 00:19:31,310 PUBLIEK: De sok is binnen en van buiten. 474 00:19:31,310 --> 00:19:34,000 DAVID MALAN: Dus de sok is binnen en van buiten, dus we hebben er geen fout 475 00:19:34,000 --> 00:19:35,330 controle, kortom. 476 00:19:35,330 --> 00:19:38,550 We hebben niet controleren of de toestand van de wereld is zoals we verwachten. 477 00:19:38,550 --> 00:19:41,310 We hebben niet controleren of we echt gevonden wat we zoeken. 478 00:19:41,310 --> 00:19:43,310 >> En ook al is dit soort van een belachelijke voorbeeld 479 00:19:43,310 --> 00:19:46,110 waarbij sokken, aan het eind van de dag, is dit precies 480 00:19:46,110 --> 00:19:48,740 soort van mentaliteit je nodig hebt tijdens het schrijven van programma's, 481 00:19:48,740 --> 00:19:51,740 zelfs in Scratch als in C, in JavaScript in PHP, 482 00:19:51,740 --> 00:19:53,920 want anders, zal uw programma's vertonen de 483 00:19:53,920 --> 00:19:56,980 equivalent van die spinnen strandbal of gewoon opleveren 484 00:19:56,980 --> 00:19:58,210 onnauwkeurige resultaten. 485 00:19:58,210 --> 00:20:00,250 Dus veel dank hier om onze schrijver Joseph. 486 00:20:00,250 --> 00:20:05,060 [Applaus] 487 00:20:05,060 --> 00:20:06,850 >> DAVID MALAN: Oke, dus wat is, in 488 00:20:06,850 --> 00:20:08,230 Sterker nog, een computerprogramma? 489 00:20:08,230 --> 00:20:09,670 Nou, laten we eens een snelle blik op een 490 00:20:09,670 --> 00:20:11,100 vertegenwoordiger hier. 491 00:20:11,100 --> 00:20:15,260 Dus dit is een programma geschreven in een taal genaamd C. C is 492 00:20:15,260 --> 00:20:17,830 vrij oud deze dagen, maar veel nieuwere talen worden gebouwd 493 00:20:17,830 --> 00:20:18,460 bovenop. 494 00:20:18,460 --> 00:20:21,180 Inderdaad, PHP, een van de web-centric talen zullen we 495 00:20:21,180 --> 00:20:24,050 gebruik maken van de richting van het einde looptijd's, zelf heeft wat heet een 496 00:20:24,050 --> 00:20:27,550 tolk, een programma dat is geschreven in C, maar meer op dat 497 00:20:27,550 --> 00:20:28,690 in vele weken vanaf nu. 498 00:20:28,690 --> 00:20:30,840 Maar dit programma, en dit is wat het betekent om te schrijven een 499 00:20:30,840 --> 00:20:32,880 programma, zij het een heel eenvoudig. 500 00:20:32,880 --> 00:20:35,540 We hebben een aantal tamelijk cryptisch syntax hier, maar u kunt 501 00:20:35,540 --> 00:20:38,340 waarschijnlijk raden, zelfs als je nog nooit hebt geprogrammeerd, wat 502 00:20:38,340 --> 00:20:39,750 Dit programma doet. 503 00:20:39,750 --> 00:20:43,640 Inderdaad, ik weet niet wat printf is, maar af te drukken zeker 504 00:20:43,640 --> 00:20:45,700 roept het idee van het drukken iets uit. 505 00:20:45,700 --> 00:20:48,590 En zo ja, is dit programma uiteindelijk gaat afdrukken 506 00:20:48,590 --> 00:20:50,250 de woorden "Hello, World". 507 00:20:50,250 --> 00:20:53,390 >> Nu, of heb je een Mac of een PC of een Linux-computer, is de kans 508 00:20:53,390 --> 00:20:55,550 zijn, tenminste als je een aantal gratis gedownload 509 00:20:55,550 --> 00:20:58,000 beschikbare software, kon je zijn schrijven van programma's op 510 00:20:58,000 --> 00:21:00,310 uw eigen laptop al geruime tijd nu. 511 00:21:00,310 --> 00:21:03,040 Op Mac OS, bijvoorbeeld, er is dit programma met de naam 512 00:21:03,040 --> 00:21:05,340 Terminal die wordt geleverd met een Mac, dat is meestal in uw 513 00:21:05,340 --> 00:21:07,550 Map Hulpprogramma's, en het opent over het algemeen een zwart- 514 00:21:07,550 --> 00:21:09,820 wit of een witte en zwarte venster waarin u een 515 00:21:09,820 --> 00:21:11,410 vragen waar u kunt typen commando's. 516 00:21:11,410 --> 00:21:13,060 Dus dit is eigenlijk denken aan wat computers 517 00:21:13,060 --> 00:21:15,100 vroeger voor grafische 518 00:21:15,100 --> 00:21:16,710 interfaces, GUI's, langs kwam. 519 00:21:16,710 --> 00:21:19,200 Nu, in Windows, heb je een soortgelijk mechanisme in de vorm 520 00:21:19,200 --> 00:21:20,130 van de opdrachtprompt. 521 00:21:20,130 --> 00:21:23,430 >> Maar wat ik ga hier moet doen is open te stellen, laten we zeggen, 522 00:21:23,430 --> 00:21:26,580 TextEdit weer, zodat dezelfde programma we gebruikten voor 523 00:21:26,580 --> 00:21:28,870 pseudocode een moment geleden, en ik ga om verder te gaan en 524 00:21:28,870 --> 00:21:30,080 schrijf mijn eerste programma. 525 00:21:30,080 --> 00:21:34,030 Inclusief stdio.h, wat dat betekent, int main 526 00:21:34,030 --> 00:21:36,880 leegte, wat dat betekent, en dan in het midden hier, 527 00:21:36,880 --> 00:21:40,560 printf ("hallo, wereld."). En sluit citaat, 528 00:21:40,560 --> 00:21:42,340 sluit haakje, puntkomma. 529 00:21:42,340 --> 00:21:44,460 Nu ga ik vooruit en gewoon op Command-S te gaan. Ik ga 530 00:21:44,460 --> 00:21:47,650 om verder te gaan en sla dit als hello.c, zodat de conventie in 531 00:21:47,650 --> 00:21:50,530 de wereld van programmeren in C is de naam van het bestand dot c. 532 00:21:50,530 --> 00:21:52,880 Ik ga gewoon in Huis John Harvard's directory, 533 00:21:52,880 --> 00:21:56,370 hier, klik op Opslaan en nu ga ik om over te gaan naar deze 534 00:21:56,370 --> 00:21:59,110 terminal venster, die weer is deze zwart-wit prompt 535 00:21:59,110 --> 00:22:00,860 waar kan ik commando's uitvoeren. 536 00:22:00,860 --> 00:22:04,550 >> Ik kan programma's uitvoeren door het intikken van hun naam, niet door 537 00:22:04,550 --> 00:22:06,710 dubbelklikken op iconen in de gebruikelijke zin. 538 00:22:06,710 --> 00:22:10,590 Maar het ding is ongeveer C is dat een taal als eerst C 539 00:22:10,590 --> 00:22:13,150 komt in deze vorm, zoiets als broncode. 540 00:22:13,150 --> 00:22:15,400 Iets dat een beetje lijkt op Engels, maar is 541 00:22:15,400 --> 00:22:17,980 zeker minder als het Engels dan pseudocode een Jozefs 542 00:22:17,980 --> 00:22:18,930 even geleden. 543 00:22:18,930 --> 00:22:20,560 Het is een beetje meer geheimzinnig. 544 00:22:20,560 --> 00:22:22,830 Het lijkt te volgen bepaalde patronen of regels. 545 00:22:22,830 --> 00:22:25,300 Het feit dat ik accolades, puntkomma's, citaten, hebben 546 00:22:25,300 --> 00:22:28,240 hoek bretels, voelt als een computer kwam met deze 547 00:22:28,240 --> 00:22:29,250 soort taal. 548 00:22:29,250 --> 00:22:32,010 Maar als ik ga, nu, om deze terminal venster, kan ik uitvoeren van een 549 00:22:32,010 --> 00:22:35,250 commando dat gaat naar die bron code om te zetten is 550 00:22:35,250 --> 00:22:36,610 iets genaamd object code. 551 00:22:36,610 --> 00:22:39,690 Dat zal Engels-achtige syntaxis nullen om te zetten 552 00:22:39,690 --> 00:22:41,760 en degenen, dezelfde soort van nullen en enen we 553 00:22:41,760 --> 00:22:42,820 sprak over woensdag. 554 00:22:42,820 --> 00:22:44,810 Nu, ik ga om een ​​commando genaamd Clang te voeren. 555 00:22:44,810 --> 00:22:47,750 Meer hierover in de komende weken, maar het is een programma met 556 00:22:47,750 --> 00:22:52,330 die ik kan hello.c om te zetten in een hele hoop 557 00:22:52,330 --> 00:22:53,640 van nullen en enen. 558 00:22:53,640 --> 00:22:54,950 >> Nu, ik heb deze opdracht uitvoert. 559 00:22:54,950 --> 00:22:57,940 Ik heb lopen Clang, en toen zei ik run jezelf op dit bestand 560 00:22:57,940 --> 00:23:00,630 genaamd hello.c, dat ik een ogenblik geleden, en 561 00:23:00,630 --> 00:23:02,090 niets lijkt te gebeuren. 562 00:23:02,090 --> 00:23:05,550 Maar inderdaad, als ik stak rond mijn home directory, zou ik zien 563 00:23:05,550 --> 00:23:09,620 dat dit dom genoemd programma a.out bestaat nu. 564 00:23:09,620 --> 00:23:12,250 Dit is gewoon de standaard naam voor een programma bij het schrijven in 565 00:23:12,250 --> 00:23:15,140 C. We kunnen eventueel overschrijven dit, maar a.out is de 566 00:23:15,140 --> 00:23:18,340 naam van het programma dat ik gewoon omgezet in nullen en enen. 567 00:23:18,340 --> 00:23:21,490 En nu dat het nullen en enen, mijn Mac, in dit geval, of 568 00:23:21,490 --> 00:23:24,670 uw Windows-pc, kunt begrijpen die bits, die 569 00:23:24,670 --> 00:23:25,410 nullen en enen. 570 00:23:25,410 --> 00:23:29,130 En dus toen ik op Enter raakte, zie ik "Hello, World!" 571 00:23:29,130 --> 00:23:31,270 >> Maar het is een beetje buggy. 572 00:23:31,270 --> 00:23:34,110 Ik wist niet goed zeggen "hello, world: lucht: - jharvard." Lucht is 573 00:23:34,110 --> 00:23:35,020 de naam van mijn computer. 574 00:23:35,020 --> 00:23:37,730 Jharvard is de naam van de account, dus wat heb ik duidelijk 575 00:23:37,730 --> 00:23:41,070 weglaten uit het programma? 576 00:23:41,070 --> 00:23:42,480 Een soort regeleinde. 577 00:23:42,480 --> 00:23:45,150 Ik heb niet geraakt het equivalent van Enter of de carriage return, 578 00:23:45,150 --> 00:23:47,760 en dit is, nogmaals, bewijs van het feit dat computers kunnen 579 00:23:47,760 --> 00:23:49,800 alleen doen wat je ze vertelt te doen. 580 00:23:49,800 --> 00:23:52,400 En het feit dat ik niet de computer te vertellen verplaatst u de 581 00:23:52,400 --> 00:23:53,860 cursor naar de volgende regel - 582 00:23:53,860 --> 00:23:55,200 goed, het is zeker niet van plan om gewoon doen 583 00:23:55,200 --> 00:23:56,750 aanmatigend voor mij. 584 00:23:56,750 --> 00:24:00,860 Dus als ik terug naar mijn programma, en ik zeg \ n - 585 00:24:00,860 --> 00:24:03,180 Dus \ n, zoals we zullen snel zien, is de manier van 586 00:24:03,180 --> 00:24:06,910 die rare dingen zoals nieuwe lijn personages, dingen 587 00:24:06,910 --> 00:24:08,840 die anders het gevolg zijn van 588 00:24:08,840 --> 00:24:09,940 het raken van de Enter-toets. 589 00:24:09,940 --> 00:24:11,730 Maar voor nu, weet alleen dat het raken van de Enter-toets zou 590 00:24:11,730 --> 00:24:14,170 gewoon onze code vreemd uitzien, zodat de wereld besloten, weet je 591 00:24:14,170 --> 00:24:16,580 wat, om dingen mooier, om het te houden op een regel, laten we 592 00:24:16,580 --> 00:24:19,070 gewoon zeggen \ n staat voor een nieuwe regel. 593 00:24:19,070 --> 00:24:22,260 Laat me resave mijn dossier, ga terug naar de terminal venster, en 594 00:24:22,260 --> 00:24:25,290 re-run a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Toch buggy, maar waarom? 596 00:24:28,374 --> 00:24:29,750 >> PUBLIEK: [onverstaanbaar] 597 00:24:29,750 --> 00:24:31,540 DAVID MALAN: Ja, dus ik moet het opnieuw compileren. 598 00:24:31,540 --> 00:24:34,610 Dus om een ​​programma compileren betekent gewoon omzetten van de bron 599 00:24:34,610 --> 00:24:37,660 code naar object code, broncode om nullen en enen. 600 00:24:37,660 --> 00:24:40,830 Nu, het enkele feit dat ik opslaan hit in deze TextEdit heeft geen 601 00:24:40,830 --> 00:24:43,450 van invloed zijn op die nullen en enen, want ik moet eerst 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, ik ben veranderd die regels code, de 603 00:24:48,260 --> 00:24:49,040 broncode. 604 00:24:49,040 --> 00:24:51,010 Je moet a.out regenereren. 605 00:24:51,010 --> 00:24:52,990 Niets lijkt te zijn gebeurd, maar in een computer, 606 00:24:52,990 --> 00:24:55,820 op een opdrachtregel, om zo te zeggen, wanneer er niets gebeurt, 607 00:24:55,820 --> 00:24:57,510 dat betekent meestal alles goed is. 608 00:24:57,510 --> 00:24:59,040 Als er iets gebeurt, dan betekent 609 00:24:59,040 --> 00:25:00,420 je messed up, over het algemeen. 610 00:25:00,420 --> 00:25:04,020 >> Dus laten we nu naar a.out, en inderdaad nu heb ik 'hallo, 611 00:25:04,020 --> 00:25:04,440 wereld. " 612 00:25:04,440 --> 00:25:05,990 En nu, hoe zit het met deze nullen en enen? 613 00:25:05,990 --> 00:25:07,520 Wanneer in feite zijn dat? 614 00:25:07,520 --> 00:25:10,710 Nou, ik kan niet echt gewoon een soort van snuffel rond in zeer 615 00:25:10,710 --> 00:25:11,210 effectief. 616 00:25:11,210 --> 00:25:12,650 Laat me open TextEdit. 617 00:25:12,650 --> 00:25:14,060 Hier is a.out. 618 00:25:14,060 --> 00:25:17,390 Laat me ga je gang en open deze, en dit is blijkbaar wat mijn 619 00:25:17,390 --> 00:25:19,080 programma eruit ziet. 620 00:25:19,080 --> 00:25:21,570 Dus ik heb geopend, niet hello.c, maar a.out. 621 00:25:21,570 --> 00:25:23,960 Maar dit is eigenlijk niet wat mijn programma werkelijk is. 622 00:25:23,960 --> 00:25:26,450 Het is duidelijk, dit is een soort van alfabetische tekens. 623 00:25:26,450 --> 00:25:28,670 Ik zie geen nullen en enen, maar dit is 624 00:25:28,670 --> 00:25:30,780 omdat a.out is een programma. 625 00:25:30,780 --> 00:25:33,540 Nullen en enen - maar TextEdit, zoals de naam al doet vermoeden, is het 626 00:25:33,540 --> 00:25:37,130 net zoals Notepad op Windows, maar is een tekst editor, dus het is 627 00:25:37,130 --> 00:25:39,730 verwarrend al die nullen en enen als 628 00:25:39,730 --> 00:25:41,870 al waren ze, wat? 629 00:25:41,870 --> 00:25:43,380 ASCII-tekens. 630 00:25:43,380 --> 00:25:45,020 >> Dus roepen op woensdag, we kwamen met deze 631 00:25:45,020 --> 00:25:48,740 willekeurige kaart brengen van de nummers, of bits, met letters van de 632 00:25:48,740 --> 00:25:51,690 alfabet en leestekens en dergelijke. 633 00:25:51,690 --> 00:25:54,920 Dus TextEdit, dat het een teksteditor wordt verkeerd 634 00:25:54,920 --> 00:25:57,270 die patronen van nullen en enen die worden geacht te zijn 635 00:25:57,270 --> 00:25:59,990 afdrukken woorden, zoals "Hallo, wereld." Het is ze te tonen 636 00:25:59,990 --> 00:26:02,150 als ASCII, en dat is waarom het ziet er een beetje rommelig. 637 00:26:02,150 --> 00:26:04,910 Nu zijn er een aantal hints van de juistheid hier. 638 00:26:04,910 --> 00:26:08,090 Let op als ik benadrukken, is er een vleugje eigenlijk "hello, 639 00:26:08,090 --> 00:26:10,810 wereld ", zo ergens in dat programma is 640 00:26:10,810 --> 00:26:12,120 de zin die ik schreef. 641 00:26:12,120 --> 00:26:14,610 Maar laten we verder gaan en nu met een ander programma. 642 00:26:14,610 --> 00:26:17,420 Dit is niet degene die we zullen gebruiken, dat vaak, maar het komt ook met 643 00:26:17,420 --> 00:26:19,970 een Mac en bevinden zich in de CS50 apparaat. 644 00:26:19,970 --> 00:26:23,940 Laat me gaan en openen met een programma genaamd XXD. 645 00:26:23,940 --> 00:26:26,530 >> Terug in de dag, werden de meeste programma's vrij cryptisch genoemd, 646 00:26:26,530 --> 00:26:28,200 en dus de trend zet zich voort. 647 00:26:28,200 --> 00:26:31,160 Maar-b betekent spuugde dit programma uit als binary. 648 00:26:31,160 --> 00:26:32,330 Niet draaien. 649 00:26:32,330 --> 00:26:35,770 Geef het aan mij als nullen en enen, en dit is de C 650 00:26:35,770 --> 00:26:37,190 programmeren we net schreef. 651 00:26:37,190 --> 00:26:39,920 Nu, ik, als mens hier, ik eerlijk gezegd geen idee wat 652 00:26:39,920 --> 00:26:42,230 deze verschillende patronen van nullen en enen vertegenwoordigen. 653 00:26:42,230 --> 00:26:45,320 Terug in de dag, ik, met mijn ponskaarten of iets dergelijks, zou 654 00:26:45,320 --> 00:26:48,080 eigenlijk moeten opzoeken wat deze verschillende patronen van 655 00:26:48,080 --> 00:26:51,560 01111000, eigenlijk vertegenwoordigen. 656 00:26:51,560 --> 00:26:54,390 Of erger nog, zou ik de ponsen of het ontstaan ​​te doen 657 00:26:54,390 --> 00:26:56,130 van deze patronen van nullen en enen. 658 00:26:56,130 --> 00:27:00,410 Maar voor nu, neem op het geloof, dat een CPU, Intel Inside, dus 659 00:27:00,410 --> 00:27:03,440 te zeggen, de binnenkant van al onze computers deze dagen, weet 660 00:27:03,440 --> 00:27:05,100 hoe deze nullen en enen te interpreteren. 661 00:27:05,100 --> 00:27:07,010 En sommige nullen en enen betekenen print. 662 00:27:07,010 --> 00:27:09,040 Sommige nullen en enen betekenen geluid afgespeeld. 663 00:27:09,040 --> 00:27:13,630 Sommige nullen en enen betekenen neem gebruiker invoer van een toetsenbord. 664 00:27:13,630 --> 00:27:15,960 Er is allerlei verschillende patronen, maar we gelukkig, 665 00:27:15,960 --> 00:27:19,680 als mensen, alleen maar over het algemeen moet over programmeren maken op 666 00:27:19,680 --> 00:27:21,270 deze vrij hoger niveau. 667 00:27:21,270 --> 00:27:24,320 En in andere CS klassen kunnen je verdiepen dieper en kijken 668 00:27:24,320 --> 00:27:26,820 naar zaken als die nullen en enen, of nog 669 00:27:26,820 --> 00:27:28,000 andere dingen nog. 670 00:27:28,000 --> 00:27:29,210 >> Dus laten we nu omzetten. 671 00:27:29,210 --> 00:27:32,550 Laten we verder gaan heel snel uit de buurt van C en ga naar iets een 672 00:27:32,550 --> 00:27:36,390 iets meer troost, een beetje meer spannend, in die 673 00:27:36,390 --> 00:27:39,340 kunnen we terug onze animaties en geluiden en dergelijke die 674 00:27:39,340 --> 00:27:40,940 duidelijk zijn ontsnapt ons in deze 675 00:27:40,940 --> 00:27:42,480 tamelijk primitief interface. 676 00:27:42,480 --> 00:27:46,430 Dus hetzelfde programma in C kan nu worden vertegenwoordigd 677 00:27:46,430 --> 00:27:50,060 programmeertaal Scratch als volgt. 678 00:27:50,060 --> 00:27:54,230 Dit is het equivalent van deze hello world programma geschreven in 679 00:27:54,230 --> 00:27:57,370 deze puzzel stuk stijl taal genaamd Scratch. 680 00:27:57,370 --> 00:28:00,600 Dus laat me gaan en open te stellen dit zeer programma. 681 00:28:00,600 --> 00:28:01,850 Het is weer heet Scratch. 682 00:28:01,850 --> 00:28:03,880 Het is vrij verkrijgbaar, en dit is hetzelfde als wat wij 683 00:28:03,880 --> 00:28:05,120 vandaag begonnen op. 684 00:28:05,120 --> 00:28:07,790 >> Dus dit is hier Scratch, en het is opgedeeld in een aantal 685 00:28:07,790 --> 00:28:09,700 verschillende stukken. 686 00:28:09,700 --> 00:28:12,690 Op het rechtsboven we de zogenaamde fase en 687 00:28:12,690 --> 00:28:13,670 inderdaad, dat is waar de koekjes 688 00:28:13,670 --> 00:28:15,440 gewoon een beetje geleden uitgevoerd. 689 00:28:15,440 --> 00:28:19,660 En op dat podium worden dingen genoemd sprites, tekens of 690 00:28:19,660 --> 00:28:21,030 objecten of entiteiten. 691 00:28:21,030 --> 00:28:23,320 Het maakt eigenlijk niet uit hoe je denkt van hen, maar ze 692 00:28:23,320 --> 00:28:26,740 programmeerbaar zijn, beweegbaar dingen en in dit geval 693 00:28:26,740 --> 00:28:30,730 programma dat onze student schreef een paar peperkoek 694 00:28:30,730 --> 00:28:32,990 koekjes, een paar ronde koekjes, een hele hoop 695 00:28:32,990 --> 00:28:35,430 harten, een hele hoop van brillen. 696 00:28:38,170 --> 00:28:42,420 Hierdoor hij kan elk van deze programmeren 697 00:28:42,420 --> 00:28:44,720 afzonderlijke tekens afzonderlijk. 698 00:28:44,720 --> 00:28:46,480 >> Nu, wat betekent het om deze tekens te programmeren? 699 00:28:46,480 --> 00:28:49,440 Nou, laat me ga je gang en klik op deze links cookie- 700 00:28:49,440 --> 00:28:51,830 en hier gaat u naar de linkerbovenhoek. 701 00:28:51,830 --> 00:28:53,670 In de linker bovenhoek van mijn scherm is nu het 702 00:28:53,670 --> 00:28:55,280 zogenaamde scripts gebied. 703 00:28:55,280 --> 00:28:58,790 Dit is een soort van een schone lei, in eerste instantie, waarop ik kan 704 00:28:58,790 --> 00:29:01,540 slepen en neerzetten puzzelstukken die eerlijk gezegd, doe 705 00:29:01,540 --> 00:29:03,020 precies wat ze zeggen. 706 00:29:03,020 --> 00:29:05,820 Op de top van deze stapel puzzelstukjes is het woord 707 00:29:05,820 --> 00:29:09,340 Wanneer Groene Vlag erop wordt geklikt, en als je niet eerder gemerkt, 708 00:29:09,340 --> 00:29:12,300 de manier waarop ik begon dat cookie lied werd te klikken, letterlijk, 709 00:29:12,300 --> 00:29:13,320 een groene vlag. 710 00:29:13,320 --> 00:29:16,590 Dus dat puzzelstukje in de linkerbovenhoek er betekent dat wanneer de 711 00:29:16,590 --> 00:29:19,780 menselijke klikt op de groene vlag, ging te doen 712 00:29:19,780 --> 00:29:21,110 de volgende dingen. 713 00:29:21,110 --> 00:29:23,330 >> Nu, hebben ze de cookie wat verder te doen? 714 00:29:23,330 --> 00:29:25,810 Ik weet niet echt hoe ik dit nog te interpreteren, maar de 715 00:29:25,810 --> 00:29:29,220 cookie-blijkbaar de groef op nul gezet, dan is het wachten 716 00:29:29,220 --> 00:29:31,740 drie seconden veranderde de groep een, dan 717 00:29:31,740 --> 00:29:33,590 wachtte een tweede, dan veranderde zij haar 718 00:29:33,590 --> 00:29:35,100 groove terug naar een. 719 00:29:35,100 --> 00:29:37,373 En dan ziet het eigenlijk als een beetje een bug, mag niet 720 00:29:37,373 --> 00:29:39,440 moet de groef te veranderen keer op keer, tenzij het is 721 00:29:39,440 --> 00:29:43,380 elders veranderd, maar deze serie van stappen is wat er 722 00:29:43,380 --> 00:29:46,800 dicteert het gedrag van deze specifieke cookie. 723 00:29:46,800 --> 00:29:49,180 Dus laten we in feite terug te scrollen en niet kijken naar iets 724 00:29:49,180 --> 00:29:50,430 helemaal zo complex nog niet. 725 00:29:50,430 --> 00:29:52,260 Laat me ga je gang en ga naar Bestand, Nieuw, 726 00:29:52,260 --> 00:29:53,560 en krijg een schone lei. 727 00:29:53,560 --> 00:29:56,590 >> Dus nu heb ik inderdaad een leeg script gebied, een leeg toneel, 728 00:29:56,590 --> 00:29:59,380 met onze standaard sprite Scratch, en in de linkerbovenhoek 729 00:29:59,380 --> 00:30:01,670 op mijn scherm heb ik het palet van al hun 730 00:30:01,670 --> 00:30:03,400 beschikbaar puzzelstukjes. 731 00:30:03,400 --> 00:30:06,300 En we zullen niet gaan door bijna dat veel van deze dingen 732 00:30:06,300 --> 00:30:09,470 vandaag, want, nogmaals, de meeste spreken voor zich, maar we zullen 733 00:30:09,470 --> 00:30:12,370 probeer ze te categoriseren en te wijzen op de overeenkomsten 734 00:30:12,370 --> 00:30:15,380 met deze toekomstige talen die we zullen duiken. 735 00:30:15,380 --> 00:30:19,180 En in de linkerbovenhoek hier is het eerste bij Green Flag erop wordt geklikt, 736 00:30:19,180 --> 00:30:22,170 dus laat me dit te slepen hier, uit te zoomen een beetje. 737 00:30:22,170 --> 00:30:25,780 En als ik klik op de groene vlag, gebeurt er niets echt, omdat 738 00:30:25,780 --> 00:30:29,360 Ik heb geen logica verbonden, een verklaring om zo te zeggen aan 739 00:30:29,360 --> 00:30:31,040 dat groene vlag, dus laat me gaan naar de 740 00:30:31,040 --> 00:30:32,500 categorieën dan hier. 741 00:30:32,500 --> 00:30:34,840 Ik ben momenteel in de Control categorie. 742 00:30:34,840 --> 00:30:37,630 Ik plaats daarvan gaat naar beneden te gaan naar de Looks categorie, en 743 00:30:37,630 --> 00:30:39,970 er is een hele hoop dingen hier die zeggen zeggen, 744 00:30:39,970 --> 00:30:43,110 Denk, veranderen van kleur, Switch Kostuum. 745 00:30:43,110 --> 00:30:44,860 >> Dus u kunt doen gekke dingen met kostuums en 746 00:30:44,860 --> 00:30:45,870 geluiden en dergelijke. 747 00:30:45,870 --> 00:30:49,970 Laat me ga je gang en zeg Zeg, en nu merk als ik sleep 748 00:30:49,970 --> 00:30:52,940 en zet deze puzzel stuk, het gaat te willen vergrendelen 749 00:30:52,940 --> 00:30:55,010 in de overeenkomstige vorm. 750 00:30:55,010 --> 00:30:58,020 Dus toen ik ga je gang en liet mijn muis, ze vergrendelen 751 00:30:58,020 --> 00:31:01,770 samen, en nu als ik hier gaan over en klik op de groene vlag, 752 00:31:01,770 --> 00:31:05,910 de kat zegt wel in feite gedag, want dat is wat er in zit 753 00:31:05,910 --> 00:31:06,980 van deze witte doos. 754 00:31:06,980 --> 00:31:08,900 We zullen snel zien dat deze witte doos is wat heet een 755 00:31:08,900 --> 00:31:10,250 argument, of een parameter. 756 00:31:10,250 --> 00:31:12,560 Het is een manier om het gedrag van in dit geval een 757 00:31:12,560 --> 00:31:15,070 puzzel stuk, maar als ik wil zeggen precies wat ik zei 758 00:31:15,070 --> 00:31:18,610 voor, zeggen hello, world, kan ik nu terug te gaan hier, 759 00:31:18,610 --> 00:31:21,990 klik spelen, en "hello, world" is wat er wordt gezegd. 760 00:31:21,990 --> 00:31:24,340 >> Dus we zijn letterlijk programmeren nu. 761 00:31:24,340 --> 00:31:27,540 Het is niet zo dwingend van een programma, maar in ieder geval 762 00:31:27,540 --> 00:31:30,140 is het een beetje aantrekkelijker dan iets dat, kijkt naar 763 00:31:30,140 --> 00:31:31,300 het eerste gezicht, zoals dit. 764 00:31:31,300 --> 00:31:34,190 En we kunnen heel snel des te meer expressieve 765 00:31:34,190 --> 00:31:36,600 want in Scratch, net als in andere talen, is er alle 766 00:31:36,600 --> 00:31:40,010 soorten verklaringen, niet alleen Zeg of afdrukken iets, maar 767 00:31:40,010 --> 00:31:42,650 je kunt dingen doen als wachten, zoals we zojuist zagen met 768 00:31:42,650 --> 00:31:44,240 de cookie, een aantal seconden. 769 00:31:44,240 --> 00:31:46,440 U kunt geluiden in de omgeving van Scratch net 770 00:31:46,440 --> 00:31:49,050 zoals je kunt in een normale computer geprogrammeerd afspelen geluid. 771 00:31:49,050 --> 00:31:52,440 U kunt nagaan wat zijn Booleaanse uitdrukkingen genoemd. 772 00:31:52,440 --> 00:31:55,630 Dus nu, laten we beginnen om toe te voegen aan onze toolkit sommige terminologie 773 00:31:55,630 --> 00:31:58,840 die daadwerkelijk betrekking heeft op het voorbeeld dat Joseph en ik deed 774 00:31:58,840 --> 00:32:00,080 hier met de sokken. 775 00:32:00,080 --> 00:32:03,040 Dus verklaringen zijn slechts uitspraken van de feiten. 776 00:32:03,040 --> 00:32:04,160 Doe dit. 777 00:32:04,160 --> 00:32:07,370 Een richtlijn voor de sprite, of mij de mens, om iets te doen. 778 00:32:07,370 --> 00:32:10,420 Een Booleaanse expressie is iets dat een waarde heeft, een 779 00:32:10,420 --> 00:32:14,580 zogenaamde waarheidswaarde, dat ofwel een nul of een onjuiste of 780 00:32:14,580 --> 00:32:17,890 waar, uit of aan, Nee of Ja. 781 00:32:17,890 --> 00:32:19,730 Maakt eigenlijk niet uit hoe je van dit, maar het is een 782 00:32:19,730 --> 00:32:20,700 binaire toestand. 783 00:32:20,700 --> 00:32:22,610 Zoals Nate besproken in de video van woensdag, twee 784 00:32:22,610 --> 00:32:23,570 verschillende dingen. 785 00:32:23,570 --> 00:32:25,740 >> Dus in Scratch, Booleaanse uitdrukkingen toevallig te kijken 786 00:32:25,740 --> 00:32:28,910 Dergelijke blauwe voorwerpen hier en in dit geval de vraag 787 00:32:28,910 --> 00:32:30,960 markering houdt in dat je een vraag stelt. 788 00:32:30,960 --> 00:32:34,250 Is de kat, of de sprite, het aanraken van de muisaanwijzer? 789 00:32:34,250 --> 00:32:36,580 Dus dit is slechts een voorbeeld van een Scratch blok dat gaat 790 00:32:36,580 --> 00:32:39,950 zodat we ja of nee te controleren, is de muis aanraken van de 791 00:32:39,950 --> 00:32:40,790 sprite op het scherm? 792 00:32:40,790 --> 00:32:42,840 En dit kan handig zijn als u daadwerkelijk wilt om dingen te doen 793 00:32:42,840 --> 00:32:43,820 met je muis. 794 00:32:43,820 --> 00:32:46,470 Naast Boolean uitdrukkingen we dingen 795 00:32:46,470 --> 00:32:49,110 zoals is de muis, zodat u kunt ontdekken dat soort 796 00:32:49,110 --> 00:32:50,200 vraag ook. 797 00:32:50,200 --> 00:32:52,590 We kunnen doen wiskunde als je echt wilt, en er is 798 00:32:52,590 --> 00:32:55,170 eigenlijk meer dwingende toepassingen voor deze dan alleen zuiver van 799 00:32:55,170 --> 00:32:56,400 rekenkunde, zoals we zullen zien. 800 00:32:56,400 --> 00:32:59,690 Pseudo willekeur en het maken van uw programma lijken te denken 801 00:32:59,690 --> 00:33:03,490 of zich anders gedragen op basis van een aantal schijnbaar willekeurige waarden, 802 00:33:03,490 --> 00:33:06,610 en dan hebben we dingen als Booleaanse uitdrukkingen als EN. 803 00:33:06,610 --> 00:33:08,830 Dus als je echt wilt om twee waarden te controleren, we zullen zien in 804 00:33:08,830 --> 00:33:11,110 Kras dat we eigenlijk kunnen testen of dit 805 00:33:11,110 --> 00:33:13,190 waar en dat is waar. 806 00:33:13,190 --> 00:33:15,300 Bijvoorbeeld, in het geval van mijn sokken, kon ik heb bij de 807 00:33:15,300 --> 00:33:19,045 einde stelde de vraag of linker sok is ingeschakeld en rechter sok 808 00:33:19,045 --> 00:33:20,610 is op, af te sluiten. 809 00:33:20,610 --> 00:33:22,710 Je bent helemaal klaar voor de dag, dus dat zou wel een 810 00:33:22,710 --> 00:33:24,300 gelegenheid voor. 811 00:33:24,300 --> 00:33:27,740 >> Dus laten we verder gaan en proberen om een ​​aantal van deze aan elkaar puzzelen 812 00:33:27,740 --> 00:33:31,570 en ga in een paar voorbeelden meer 813 00:33:31,570 --> 00:33:32,610 aantrekkelijker dan deze. 814 00:33:32,610 --> 00:33:35,770 Dus laat me hier ga je gang en open te stellen enkele van de voorbeelden 815 00:33:35,770 --> 00:33:38,350 dat zal altijd op de website van de cursus zo goed, en 816 00:33:38,350 --> 00:33:39,870 open hello2. 817 00:33:39,870 --> 00:33:42,910 Dus in hello2 hier, hebben we een programma dat doet wat 818 00:33:42,910 --> 00:33:46,290 dingen, maar het doet het niet zo goed als we kunnen. 819 00:33:46,290 --> 00:33:48,900 Dus hier het zegt "hello, world" voor een seconde en dan wacht 820 00:33:48,900 --> 00:33:49,450 voor een tweede. 821 00:33:49,450 --> 00:33:51,720 En dan doet het weer, en dan doet het weer. 822 00:33:51,720 --> 00:33:55,530 Dus als ik klik op de groene vlag, Scratch zegt: "Hallo, wereld. 823 00:33:55,530 --> 00:33:57,160 Hallo, wereld. 824 00:33:57,160 --> 00:34:00,080 Hallo, wereld. "En dit is natuurlijk kandidaat nu voor 825 00:34:00,080 --> 00:34:00,860 verbetering. 826 00:34:00,860 --> 00:34:03,070 >> Wat is de marginale verbetering, hopelijk kunnen we 827 00:34:03,070 --> 00:34:07,610 Nu maken als Scratch ondersteunt het concept? 828 00:34:07,610 --> 00:34:08,310 Een soort lus. 829 00:34:08,310 --> 00:34:10,960 Een soort van herhaling, nu, zou mooi zijn, dus laat me 830 00:34:10,960 --> 00:34:11,920 eigenlijk proberen. 831 00:34:11,920 --> 00:34:13,870 Laat me daadwerkelijk te gaan en te bewegen dit. 832 00:34:13,870 --> 00:34:16,449 Dus aankondiging kan losmaken blokken net zo gemakkelijk als u kunt toevoegen aan 833 00:34:16,449 --> 00:34:17,420 bevestig ze. 834 00:34:17,420 --> 00:34:20,730 Laat me gaan onder controle, hier naar beneden scrollen, en inderdaad, 835 00:34:20,730 --> 00:34:24,000 er is hier deze puzzel stuk, Repeat en altijd en 836 00:34:24,000 --> 00:34:24,870 Voor altijd Als. 837 00:34:24,870 --> 00:34:28,500 Dus er is een aantal manieren uit te drukken lusconstructies 838 00:34:28,500 --> 00:34:29,340 in Scratch. 839 00:34:29,340 --> 00:34:31,730 Degene die ik waarschijnlijk willen hier niet blijvend, omdat ik alleen maar 840 00:34:31,730 --> 00:34:34,639 wil dat dit drie keer gebeuren, maar waarschijnlijk herhalen. 841 00:34:34,639 --> 00:34:38,449 Dus laat me slepen Herhaal hier, slepen en neerzetten, en 842 00:34:38,449 --> 00:34:42,530 nu in plaats van te zeggen "hello, world" drie afzonderlijke keer, 843 00:34:42,530 --> 00:34:44,230 Laat me dit stukje van de puzzel te slepen hier. 844 00:34:44,230 --> 00:34:46,610 En hoewel het niet lijkt te passen, het programma is slim 845 00:34:46,610 --> 00:34:48,920 genoeg om te beseffen dat het zal groeien in te vullen, dus het is de 846 00:34:48,920 --> 00:34:51,270 vormen die materie en niet de absolute omvang. 847 00:34:51,270 --> 00:34:54,030 Laat ik de herhaling te veranderen tot drie, en nu laat me gaan 848 00:34:54,030 --> 00:34:56,560 vooruit en sleep Wacht een seconde in daar ook. 849 00:34:56,560 --> 00:34:59,220 Het zal breken in als goed, en dus nu ga ik om te slepen 850 00:34:59,220 --> 00:35:01,370 deze jongens hier en gooi ze weg omdat ik 851 00:35:01,370 --> 00:35:02,710 niet meer nodig hebt. 852 00:35:02,710 --> 00:35:05,920 Laat me uit te zoomen en klik nu de groene vlag, en we hebben 853 00:35:05,920 --> 00:35:09,600 hetzelfde programma, maar, zoals ik al voorspeld voor, betere 854 00:35:09,600 --> 00:35:12,200 ontworpen, want je kunt je voorstellen hoe slecht dit programma 855 00:35:12,200 --> 00:35:14,410 zou krijgen, zeker esthetisch, als je moest 856 00:35:14,410 --> 00:35:16,640 beginnen met kopiëren en plakken, kopiëren en plakken, of 857 00:35:16,640 --> 00:35:20,020 slepen en neerzetten van dezelfde darn dingen opnieuw en opnieuw. 858 00:35:20,020 --> 00:35:22,260 >> Nu, gewoon zeggen dingen op het scherm, afdrukken op de 859 00:35:22,260 --> 00:35:25,350 scherm, echt allemaal niet zo spannend, dus laten we het openen van een 860 00:35:25,350 --> 00:35:26,580 derde variantie hier. 861 00:35:26,580 --> 00:35:29,810 En nu, zoals u zult zien, zal dit snel vervelend - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID MALAN: - maar het is ook wel leuk. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID MALAN: Oke, dus beter, en we kunnen zeker gebruik dat 866 00:35:37,460 --> 00:35:41,060 dezelfde overgang van chunking deze op in een looping 867 00:35:41,060 --> 00:35:43,520 structuur, maar laten we toch het interessanter maken. 868 00:35:43,520 --> 00:35:47,480 >> Laat me gaan en open te stellen kwart variantie hier, waar ik 869 00:35:47,480 --> 00:35:50,020 een stapje verder. 870 00:35:50,020 --> 00:35:54,450 Dus volgens deze, domme al is dit op het eerste 871 00:35:54,450 --> 00:35:58,530 blik, is wat dit programma gaat doen? 872 00:35:58,530 --> 00:35:59,790 Het gaat miauwen keer. 873 00:35:59,790 --> 00:36:00,160 Waarom? 874 00:36:00,160 --> 00:36:03,340 Nou ja, een is, voor zover ik weet, altijd minder dan twee. 875 00:36:03,340 --> 00:36:04,890 Er is geen notie van willekeur hier. 876 00:36:04,890 --> 00:36:07,240 Ik heb letterlijk hard-coded een en twee, maar dit is een 877 00:36:07,240 --> 00:36:10,370 Zo nu daadwerkelijk gebruik van een Booleaanse expressie. 878 00:36:10,370 --> 00:36:13,650 Graag net als Joseph in zijn pseudocode, de inspringing IF 879 00:36:13,650 --> 00:36:17,170 vind je bijpassende sokken DAN het volgende te doen, hier hebben we 880 00:36:17,170 --> 00:36:19,750 een uitdrukking indien iemand minder dan twee DAN - 881 00:36:19,750 --> 00:36:21,820 en in feite hebben we zelfs een beetje inspringen, 882 00:36:21,820 --> 00:36:24,480 waar de paarse wordt iets ingesprongen naar rechts - 883 00:36:24,480 --> 00:36:26,600 Dan zul je het geluid miauwen af ​​te spelen. 884 00:36:26,600 --> 00:36:30,060 Nu in dit geval, dat altijd kleiner is dan twee, dus 885 00:36:30,060 --> 00:36:31,970 is een soort van een verspilling van een aandoening. 886 00:36:31,970 --> 00:36:34,890 Maar we zullen in staat zijn, zoals we zullen zien, om andere dingen te sluiten op 887 00:36:34,890 --> 00:36:37,420 deze plaatsaanduidingen waar een en twee nu zijn. 888 00:36:37,420 --> 00:36:41,340 Dus laten we nu verder te gaan naar bijvoorbeeld vijf van deze verschillende 889 00:36:41,340 --> 00:36:45,850 hallo en kijken naar wat dit programma gaat doen. 890 00:36:45,850 --> 00:36:48,710 >> Dus nu, in een Engels zin, hoe werkt dit 891 00:36:48,710 --> 00:36:51,460 programma gedragen? 892 00:36:51,460 --> 00:36:52,950 PUBLIEK: gemiauw helft van de tijd. 893 00:36:52,950 --> 00:36:55,380 DAVID MALAN: Meow's de helft van de tijd, dus dit is een manier van 894 00:36:55,380 --> 00:36:56,700 Er heerst een heel eenvoudig idee. 895 00:36:56,700 --> 00:36:59,400 Ook al hebben we nu eenmaal met behulp van enkele ongelijkheden hier 896 00:36:59,400 --> 00:37:01,860 in sommige nummers, dit is eigenlijk gewoon een programmatische 897 00:37:01,860 --> 00:37:09,490 manier, een precieze manier, om te zeggen, indien de munt komt hoofden, ga 898 00:37:09,490 --> 00:37:10,270 vooruit en miauwen. 899 00:37:10,270 --> 00:37:13,540 Of omgekeerd, als de munt komt staarten, niet meow. 900 00:37:13,540 --> 00:37:15,110 En in dit geval, we hoe uitdrukken dat? 901 00:37:15,110 --> 00:37:17,950 We halen een willekeurig nummer van 1 tot 10, en als dat 902 00:37:17,950 --> 00:37:21,110 aantal is minder dan 6, ga je gang en miauwen. 903 00:37:21,110 --> 00:37:22,260 En hoe is dit binnen gekomen? 904 00:37:22,260 --> 00:37:24,620 Weer goed, let op alleen de slepen en neerzetten en 905 00:37:24,620 --> 00:37:26,190 dingen vastklikt. 906 00:37:26,190 --> 00:37:28,020 >> Dus nu laten we kijken of deze willekeurigheid werkt. 907 00:37:28,020 --> 00:37:29,845 Laat me ga je gang en klik op de groene vlag. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID MALAN: Oke. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID MALAN: Oke. 912 00:37:35,260 --> 00:37:38,510 Oke, goed, dus we hebben hoofden, koppen, staarten effectief. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 DAVID MALAN: Heads. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID MALAN: Excellent. 918 00:37:44,040 --> 00:37:46,220 Het is altijd lastig wanneer slechts statistisch je een slechte 919 00:37:46,220 --> 00:37:48,510 lopen, en het is allemaal hoofden, en het programma in feite niet 920 00:37:48,510 --> 00:37:49,230 werken zoals je zou hopen. 921 00:37:49,230 --> 00:37:51,210 Maar deze keer, het werkte, en we lijken te hebben, als we dat 922 00:37:51,210 --> 00:37:53,830 deze een oneindig aantal keren, 50% kans. 923 00:37:53,830 --> 00:37:56,950 Nu weer, niet zo interessant, alleen het maken van katten 924 00:37:56,950 --> 00:37:59,840 miauw, dus laten we eens kijken of we kunnen niet verder dit een beetje verder 925 00:37:59,840 --> 00:38:01,820 hier versie zes. 926 00:38:01,820 --> 00:38:05,620 Dus nu hebben we echt vervelend versie - 927 00:38:05,620 --> 00:38:08,215 [Gemiauw Elke paar seconden] 928 00:38:08,215 --> 00:38:10,640 DAVID MALAN: - en dit is wat er bekend is, het algemeen, als een 929 00:38:10,640 --> 00:38:11,670 oneindige lus. 930 00:38:11,670 --> 00:38:14,190 >> Dus oneindige lus in dit geval voelt zich slecht. 931 00:38:14,190 --> 00:38:16,970 Het is zeker gaan om het geluid slecht, en toch oneindig 932 00:38:16,970 --> 00:38:18,740 lussen zijn niet altijd slecht. 933 00:38:18,740 --> 00:38:20,910 Kunt u denken aan context in computerprogramma's waar je zou 934 00:38:20,910 --> 00:38:22,910 eigenlijk willen een oneindige lus? 935 00:38:22,910 --> 00:38:23,691 Ja? 936 00:38:23,691 --> 00:38:26,520 PUBLIEK: Als u een voorwaarde wilt controleren. 937 00:38:26,520 --> 00:38:28,240 DAVID MALAN: Oke, als je wilt blijven controleren een voorwaarde? 938 00:38:28,240 --> 00:38:29,190 Zoals wat? 939 00:38:29,190 --> 00:38:30,440 PUBLIEK: [onverstaanbaar] 940 00:38:36,060 --> 00:38:38,170 DAVID MALAN: Oke, goed, dus als je een programma had, wat 941 00:38:38,170 --> 00:38:40,440 soort domotica ding, waar u constant 942 00:38:40,440 --> 00:38:41,980 monitor is iets het geval is. 943 00:38:41,980 --> 00:38:42,850 Zijn de lichten aan? 944 00:38:42,850 --> 00:38:45,020 Zijn de lampjes op, want misschien heb je een timer, en 945 00:38:45,020 --> 00:38:47,360 je wilt dat ze gaan uit, zou je nodig hebt om iets te doen 946 00:38:47,360 --> 00:38:48,290 weer. 947 00:38:48,290 --> 00:38:50,540 En in feite, het spreken van timers, die iemand van u 948 00:38:50,540 --> 00:38:53,100 klokken op uw computer of digitale horloges, dat is een 949 00:38:53,100 --> 00:38:54,210 oneindige lus. 950 00:38:54,210 --> 00:38:56,980 Het blijft het actualiseren van de tijd, want het is constant 951 00:38:56,980 --> 00:38:59,750 controle en controle en de controle heeft de tijd veranderd 952 00:38:59,750 --> 00:39:01,000 en zo ja, oh, mijn god. 953 00:39:03,670 --> 00:39:04,740 De klok is eindelijk veranderd. 954 00:39:04,740 --> 00:39:07,020 Het moet weer te geven die waarde voor je. 955 00:39:07,020 --> 00:39:10,880 Dus terwijl de meeste van de tijd oneindige loops zijn een vergissing, 956 00:39:10,880 --> 00:39:13,950 of op zijn minst een slecht ontwerp besluit, soms doen ze 957 00:39:13,950 --> 00:39:14,785 hebben hun waarde. 958 00:39:14,785 --> 00:39:18,170 >> Nou, laten we hier verder gaan naar hello7. 959 00:39:18,170 --> 00:39:20,410 Dus nu zal het programma een beetje meer interactief. 960 00:39:20,410 --> 00:39:23,120 Laat me in te zoomen hier, weer en dit is wat is leuk 961 00:39:23,120 --> 00:39:23,640 over Scratch. 962 00:39:23,640 --> 00:39:26,760 En we zullen het gebruiken om duidelijk, Scratch, alleen vandaag en in zijn 963 00:39:26,760 --> 00:39:27,780 volgende week het probleem in te stellen. 964 00:39:27,780 --> 00:39:31,920 Maar op maandag, we in C. hier duiken In dit programma, dat zo is, 965 00:39:31,920 --> 00:39:33,190 voor altijd, het volgende. 966 00:39:33,190 --> 00:39:35,890 ALS het aanraken van de muisaanwijzer - nu, wie is de 967 00:39:35,890 --> 00:39:36,420 context hier? 968 00:39:36,420 --> 00:39:39,670 Nou ja, en merken dat die is geselecteerd hier beneden aan de onderkant 969 00:39:39,670 --> 00:39:43,060 Rechts is de kat, sprite een, dus deze scripts, deze 970 00:39:43,060 --> 00:39:45,720 programma op hem specifiek. 971 00:39:45,720 --> 00:39:48,950 Dus als die kat is de muisaanwijzer aan te raken, dan zal het 972 00:39:48,950 --> 00:39:51,350 om dit te spelen naar beneden en wacht twee seconden en 973 00:39:51,350 --> 00:39:53,030 herhaal tot vervelens toe. 974 00:39:53,030 --> 00:39:55,360 >> Dus laten we verder gaan en op Play. 975 00:39:55,360 --> 00:39:57,580 Er gebeurt niets, maar als ik wil aaien 976 00:39:57,580 --> 00:39:59,310 kat nu, ik kan het gewoon. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID MALAN: Adorable. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID MALAN: Oke, minder vervelend, maar krijgt ook saai, 981 00:40:08,750 --> 00:40:11,480 dus laten we verder gaan en kijken of we niet kunnen injecteren 982 00:40:11,480 --> 00:40:12,460 iets meer logica. 983 00:40:12,460 --> 00:40:14,300 Dat was bijvoorbeeld zeven. 984 00:40:14,300 --> 00:40:16,090 >> Hier in bijvoorbeeld acht, we gaan 985 00:40:16,090 --> 00:40:18,670 introduceren een voorwaarde else. 986 00:40:18,670 --> 00:40:21,440 Dus net als een letterlijke splitsing in de weg, waar je kunt gaan 987 00:40:21,440 --> 00:40:24,260 links of u kunt rechtdoor te gaan, een aandoening in een programmeertaal 988 00:40:24,260 --> 00:40:28,120 taal als Scratch, of zoals we zullen zien C, kan u toestaan ​​om 989 00:40:28,120 --> 00:40:32,230 gaan in een of andere richting via een IF ELSE te bouwen. 990 00:40:32,230 --> 00:40:35,160 Dus letterlijk, INDIEN raken muisaanwijzer, dit 991 00:40:35,160 --> 00:40:38,680 zullen sommige geluid af te spelen, anders gaat deze andere spelen 992 00:40:38,680 --> 00:40:39,800 geluid, miauw. 993 00:40:39,800 --> 00:40:42,510 Nu, als je kan afleiden uit de naam van deze geluiden, kunt u 994 00:40:42,510 --> 00:40:45,310 waarschijnlijk wel raden wat dit programma is bedoeld om te roepen 995 00:40:45,310 --> 00:40:46,250 het idee. 996 00:40:46,250 --> 00:40:48,742 Deze kat is gelukkig miauwen. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID MALAN: Gelukkig, maar niet 999 00:40:51,410 --> 00:40:52,926 heel graag om aangeraakt te worden. 1000 00:40:52,926 --> 00:40:54,550 [Brult] 1001 00:40:54,550 --> 00:40:57,500 DAVID MALAN: Dus nu hebben we een kat die schreeuwen tegen je. 1002 00:40:57,500 --> 00:41:00,570 >> Oke, nou, nog een laatste voorbeeld met katten hier, en 1003 00:41:00,570 --> 00:41:02,920 laten we open versie negen van deze hier. 1004 00:41:02,920 --> 00:41:06,190 Dus nu hebben we de volgende meest irritante geluid dat ik kon 1005 00:41:06,190 --> 00:41:11,630 vinden, dus hebben we een walrus of zeeleeuw hier die gaat 1006 00:41:11,630 --> 00:41:13,222 doet u het volgende. 1007 00:41:13,222 --> 00:41:20,870 [SEAL SCHORS] 1008 00:41:20,870 --> 00:41:23,310 DAVID MALAN: Oke, dus dit zal doorgaan totdat je erachter te komen hoe 1009 00:41:23,310 --> 00:41:24,640 dit programma werkt. 1010 00:41:24,640 --> 00:41:28,560 Dus deze keer, dit dier heeft twee scripts, en wat is 1011 00:41:28,560 --> 00:41:31,050 interessante hier is dat deze scripts gaan voeren 1012 00:41:31,050 --> 00:41:32,260 in parallel. 1013 00:41:32,260 --> 00:41:35,340 Dus omdat ze beide beginnen met een groene vlag geklikt, 1014 00:41:35,340 --> 00:41:38,080 het is alsof je als dit, en beide programma's beginnen het runnen van het 1015 00:41:38,080 --> 00:41:41,370 een keer zelfs als ze voor eeuwig zijn looping. 1016 00:41:41,370 --> 00:41:44,420 Dus in de top script, ik heb een aantal logica. 1017 00:41:44,420 --> 00:41:49,275 Welke functies heeft dat er te bieden op? 1018 00:41:49,275 --> 00:41:50,740 [SEAL SCHORS] 1019 00:41:50,740 --> 00:41:51,670 PUBLIEK: [onverstaanbaar] 1020 00:41:51,670 --> 00:41:53,295 DAVID MALAN: Als het is wat? 1021 00:41:53,295 --> 00:41:53,760 [SEAL SCHORS] 1022 00:41:53,760 --> 00:41:55,852 PUBLIEK: Als gedempt op nul, het gaat om het spelen van de 1023 00:41:55,852 --> 00:41:58,410 klinken. [SEAL SCHORS] 1024 00:41:58,410 --> 00:41:58,940 DAVID MALAN: Oke, goed. 1025 00:41:58,940 --> 00:42:01,960 Dus als gedempt, wat het ook is, deze oranje ding nul is, 1026 00:42:01,960 --> 00:42:05,370 Dan spelen de zeeleeuw geluid en denken: "O, 1027 00:42:05,370 --> 00:42:06,770 hi, "gedurende twee seconden. 1028 00:42:06,770 --> 00:42:09,380 Nu, ik weet niet wat gedempt is, maar nul roept de 1029 00:42:09,380 --> 00:42:11,230 idee van valse of uit te schakelen. 1030 00:42:11,230 --> 00:42:14,490 Dus als gedempt vals is, dus als niet gedempt, 1031 00:42:14,490 --> 00:42:15,660 blijven spelen het geluid. 1032 00:42:15,660 --> 00:42:17,350 Oke, nou, we hoe uit te schakelen dit ding? 1033 00:42:17,350 --> 00:42:19,310 >> Nou, laten we eens kijken naar de tweede script daar beneden. 1034 00:42:19,310 --> 00:42:22,130 Het tweede script zegt ingesteld gedempt op nul. 1035 00:42:22,130 --> 00:42:25,180 Let het is ook oranje, dus wat Scratch doet is het kleuren 1036 00:42:25,180 --> 00:42:27,400 blokken in dezelfde kleur als het soort 1037 00:42:27,400 --> 00:42:28,850 van logisch verband. 1038 00:42:28,850 --> 00:42:32,850 Dus net zoals gedempt tot boven oranje was, zo is gedempt hier beneden 1039 00:42:32,850 --> 00:42:34,060 genoemde oranje blok. 1040 00:42:34,060 --> 00:42:36,170 Maar dit is een variabele toekenningen, dus net als in 1041 00:42:36,170 --> 00:42:39,170 algebra, u x en y en z in programmeren u 1042 00:42:39,170 --> 00:42:41,440 variabelen, maar ze zijn over het algemeen - 1043 00:42:41,440 --> 00:42:42,580 laten we pauzeren voor een moment en figuur hoe 1044 00:42:42,580 --> 00:42:44,280 deze blaffen te stoppen. 1045 00:42:44,280 --> 00:42:45,480 Hoe kan ik dit doen? 1046 00:42:45,480 --> 00:42:46,480 [SEAL SCHORS] 1047 00:42:46,480 --> 00:42:47,920 DAVID MALAN: Oke. 1048 00:42:47,920 --> 00:42:49,490 Het stopte. Oke. 1049 00:42:49,490 --> 00:42:52,230 >> Dus net zoals in algebra u variabelen x, y en z, maar in 1050 00:42:52,230 --> 00:42:55,260 programmeren, met variabelen zoals x, y, en z is over het algemeen 1051 00:42:55,260 --> 00:42:57,330 afgekeurd omdat ze helemaal niet expressief. 1052 00:42:57,330 --> 00:43:00,070 Ze hebben geen enkele betekenis semantische, zodat in de meeste 1053 00:43:00,070 --> 00:43:02,110 programmeertalen, kunnen variabelen hebben volledige 1054 00:43:02,110 --> 00:43:05,270 volwaardige namen of woorden of zinnen, zoals gedempt, om te zeggen 1055 00:43:05,270 --> 00:43:06,030 wat ze doen. 1056 00:43:06,030 --> 00:43:09,380 Dus dit tweede script was ook altijd luisteren, en hij zei 1057 00:43:09,380 --> 00:43:12,100 als de sleutel, de klaviertoets Space, is 1058 00:43:12,100 --> 00:43:13,370 ingedrukt, vraagteken. 1059 00:43:13,370 --> 00:43:16,300 Dus er is een aandoening met een Booleaanse expressie die is 1060 00:43:16,300 --> 00:43:19,010 gaat om een ​​vraag te beantwoorden, hetzij naar waarheid of onwaar zijn, 1061 00:43:19,010 --> 00:43:22,880 dan heb ik de binnenkant van het IF de ruimte toets wordt ingedrukt en 1062 00:43:22,880 --> 00:43:28,020 IF gedempt is nul, stelt gedempt tot een, ELSE ingesteld gedempt op nul. 1063 00:43:28,020 --> 00:43:30,510 Dus die andere vork in de weg, en merk op hoe ik heb 1064 00:43:30,510 --> 00:43:33,500 genest de twee IF voorwaarden, is een manier om te controleren is de 1065 00:43:33,500 --> 00:43:36,610 Spatiebalk ingedrukt, want als dat zo is, ik of wil dit gaan 1066 00:43:36,610 --> 00:43:38,000 zus of zo. 1067 00:43:38,000 --> 00:43:40,210 En hoe kan ik inverteren de waarde van gedempt? 1068 00:43:40,210 --> 00:43:41,410 Ik moet om te controleren is het nul? 1069 00:43:41,410 --> 00:43:45,890 Als dat zo is, maken het tot een, anders maakt het nul tot dus schakelen 1070 00:43:45,890 --> 00:43:47,670 de twee staten. 1071 00:43:47,670 --> 00:43:50,030 >> Oke, dus we hebben toen een aantal van deze fundamentele 1072 00:43:50,030 --> 00:43:50,540 constructen. 1073 00:43:50,540 --> 00:43:52,810 We hebben Booleaanse uitdrukkingen, en te realiseren, zijn dit 1074 00:43:52,810 --> 00:43:54,050 niet zo onbekend. 1075 00:43:54,050 --> 00:43:56,730 In feite, hier is een snelle screenshot van de Harvard cursus CS50 1076 00:43:56,730 --> 00:43:59,740 winkelen tool, en een website die er zijn dat selectievakjes heeft 1077 00:43:59,740 --> 00:44:02,420 en drop downs hebben echt, al die tijd, zijn met behulp van 1078 00:44:02,420 --> 00:44:03,430 Booleaanse uitdrukkingen. 1079 00:44:03,430 --> 00:44:05,760 In dit geval hier, als u klikt op het selectievakje naast 1080 00:44:05,760 --> 00:44:08,620 uiteraard groter dan of gelijk aan 4,5, of dezelfde naast 1081 00:44:08,620 --> 00:44:11,200 faculteit, je het opgeven van een Booleaanse expressie. 1082 00:44:11,200 --> 00:44:14,780 Laat me cursussen waarvoor die expressie waar is. 1083 00:44:14,780 --> 00:44:17,080 Of naar rechts, niet in strijd met cursussen die ik ben 1084 00:44:17,080 --> 00:44:20,440 nemen, als dat is aangevinkt, dan ja, u wilt controleren 1085 00:44:20,440 --> 00:44:22,890 die voorwaarde, wil je nog meer om het te negeren. 1086 00:44:22,890 --> 00:44:25,170 Dus Booleaanse uitdrukkingen zijn een soort van rondom, maar toen 1087 00:44:25,170 --> 00:44:28,080 we zetten ze in omstandigheden, of als de omstandigheden, IF 1088 00:44:28,080 --> 00:44:30,480 Elses, of we kunnen zelfs simuleren diepere 1089 00:44:30,480 --> 00:44:32,830 niveaus, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 dus dat is een soort van een ternair staat. 1091 00:44:34,430 --> 00:44:36,920 U kunt gaan op deze manier of deze manier of op deze manier. 1092 00:44:36,920 --> 00:44:39,680 We kunnen blijven nesten dingen om te gaan in verschillende richtingen. 1093 00:44:39,680 --> 00:44:41,800 >> Dus Scratch heeft deze lussen, zoals altijd. 1094 00:44:41,800 --> 00:44:44,750 Het heeft deze functies, zoals Repeat 10, sommige 1095 00:44:44,750 --> 00:44:46,260 eindig aantal malen. 1096 00:44:46,260 --> 00:44:49,040 We hebben de mogelijkheid nu om variabelen in te stellen, zodat in dit geval 1097 00:44:49,040 --> 00:44:51,810 Ik heb verklaard, bijvoorbeeld een variabele met de naam sokken. 1098 00:44:51,810 --> 00:44:54,340 Ik heb geïnitialiseerd op 0, en dat is nog een andere richting 1099 00:44:54,340 --> 00:44:56,940 konden we hebben hier met Jozef, waarbij ik misschien 1100 00:44:56,940 --> 00:45:00,150 gewoon bijhouden hoeveel sokken die ik heb op en beëindigen 1101 00:45:00,150 --> 00:45:03,490 het programma wanneer die variabele de waarde is 2. 1102 00:45:03,490 --> 00:45:05,660 Dat zou een andere manier van soort generaliseren zijn dat 1103 00:45:05,660 --> 00:45:08,820 probleem en het doen van iets opnieuw en opnieuw. 1104 00:45:08,820 --> 00:45:12,080 Nou, laten we verder gaan en nu introduceren een paar nieuwe dingen. 1105 00:45:12,080 --> 00:45:14,100 Dus degenen onder u met voorafgaande programmeren ervaring zal 1106 00:45:14,100 --> 00:45:17,120 dat veel talen arrays of vectoren of 1107 00:45:17,120 --> 00:45:19,970 lijsten, en inderdaad, Scratch heeft iets als dit, ook. 1108 00:45:19,970 --> 00:45:22,510 Dus laten we kijken of we dingen niet hier te nemen naar het volgende niveau. 1109 00:45:22,510 --> 00:45:24,920 Als ik de mogelijkheid, nu, met deze puzzelstukjes aan 1110 00:45:24,920 --> 00:45:29,080 iets toevoegen, zoals een woord of nummer, aan een variabele, kan ik 1111 00:45:29,080 --> 00:45:30,550 beginnen om dingen te verzamelen. 1112 00:45:30,550 --> 00:45:33,630 En dit is eigenlijk best apropos voor dingen zoals spelletjes, 1113 00:45:33,630 --> 00:45:35,810 role-playing games waar je bent soort van rond te lopen 1114 00:45:35,810 --> 00:45:38,600 wat fantasie wereld verzamelen van dingen, dingen oprapen, 1115 00:45:38,600 --> 00:45:39,900 verdienen punten of dergelijke. 1116 00:45:39,900 --> 00:45:42,310 Je zou willen houden van een soort van inventaris, en 1117 00:45:42,310 --> 00:45:45,180 inderdaad, dat is wat een van onze oud-studenten hier deed met 1118 00:45:45,180 --> 00:45:47,750 iets genaamd Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Dus laat me gaan en open te stellen dit ding hier, en in 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, hebben we deze wereld omhoog naar boven. 1121 00:45:56,260 --> 00:45:58,820 Dus laat me ga je gang en klik op de groene vlag. 1122 00:45:58,820 --> 00:46:01,040 Kennisgeving aan de bovenkant links is een soort van inventaris. 1123 00:46:01,040 --> 00:46:04,110 Dat is geïmplementeerd in Scratch als wat we een array te bellen of 1124 00:46:04,110 --> 00:46:06,890 een lijst, en nu hebben we deze kleine animatie. 1125 00:46:06,890 --> 00:46:10,440 Dus net zoals we eerder begonnen met deze cookie liefdesverhaal, 1126 00:46:10,440 --> 00:46:13,320 en dan gaan we vooruit naar katten en zeeleeuwen, nu kunnen we 1127 00:46:13,320 --> 00:46:15,100 dingen die nog interactiever. 1128 00:46:15,100 --> 00:46:18,250 En deze kleine blauwe jongen, kan ik beginnen te bewegen zijn 1129 00:46:18,250 --> 00:46:19,500 weinig thuis. 1130 00:46:19,500 --> 00:46:22,570 Dus het lijkt erop dat hij heeft een uitgang hier beneden, dus ik ben met behulp van 1131 00:46:22,570 --> 00:46:25,260 de pijltjes toetsen, omhoog, omlaag, links, rechts. 1132 00:46:25,260 --> 00:46:28,370 En nu ben ik buiten, dus laat is wat ik hier heb. 1133 00:46:28,370 --> 00:46:30,920 Ziet eruit als een sinaasappel, en inderdaad, zodra ik het aanraken 1134 00:46:30,920 --> 00:46:33,110 oranje, het wordt plofte in mijn inventaris. 1135 00:46:33,110 --> 00:46:35,640 Als ik hier naar de kersen, nu heb ik iets 1136 00:46:35,640 --> 00:46:36,760 anders in mijn inventaris. 1137 00:46:36,760 --> 00:46:39,100 En dit is allemaal leuk en schattig, maar na te denken over hoe, nu, op dit 1138 00:46:39,100 --> 00:46:39,840 wordt uitgevoerd. 1139 00:46:39,840 --> 00:46:42,490 Nou, we hebben dit idee van een lijst, en dat is blijkbaar een 1140 00:46:42,490 --> 00:46:45,470 puzzelstukje dat je gewoon zeggen wat je wilt aan toe te voegen, voeg 1141 00:46:45,470 --> 00:46:46,950 oranje, voeg kersen. 1142 00:46:46,950 --> 00:46:48,540 Nu, wat is dit kleine blauwe jongen aan het doen? 1143 00:46:48,540 --> 00:46:49,810 Nou, hij is een sprite. 1144 00:46:49,810 --> 00:46:52,190 En vermoedelijk, de oranje en de kersen - 1145 00:46:52,190 --> 00:46:54,140 zij zelf afzonderlijke sprites. 1146 00:46:54,140 --> 00:46:56,980 En met behulp van omstandigheden in Booleaanse uitdrukkingen, de 1147 00:46:56,980 --> 00:47:00,530 student was waarschijnlijk in staat om uit te drukken IF blauwe man is 1148 00:47:00,530 --> 00:47:04,590 het aanraken van kersen en voeg dan het woord kersen aan zijn 1149 00:47:04,590 --> 00:47:07,890 inventaris, en dan ook verbergen de kers sprite. 1150 00:47:07,890 --> 00:47:10,600 Dus onder de kap, is er waarschijnlijk nog een kers 1151 00:47:10,600 --> 00:47:11,350 sprite daar. 1152 00:47:11,350 --> 00:47:14,160 We hebben net verteld dat het te worden effectief onzichtbaar. 1153 00:47:14,160 --> 00:47:16,340 >> Nu, als ik blijf lopen hier, kunnen we dit ook doen 1154 00:47:16,340 --> 00:47:19,150 proximale ding, waar ik kan gaan en lees het bordje. 1155 00:47:19,150 --> 00:47:23,170 Dus als blauwe man aanraken teken, kunnen we dit zeggen blok 1156 00:47:23,170 --> 00:47:26,455 net als de kat sprak tot ons in woorden, hallo, eerder, "Got 1157 00:47:26,455 --> 00:47:26,880 wat fruit? 1158 00:47:26,880 --> 00:47:29,290 Breng het naar de vrucht plaats. "Oke, dus nu, blijkbaar, 1159 00:47:29,290 --> 00:47:30,550 Ik heb mijn richtingen. 1160 00:47:30,550 --> 00:47:33,050 Ik kan hier gaan over naar de vruchten plaats, in lijn mezelf 1161 00:47:33,050 --> 00:47:33,740 met de deur. 1162 00:47:33,740 --> 00:47:35,390 Nu, ik ben hier. 1163 00:47:35,390 --> 00:47:38,120 Ik kan oplopen tot de man aan de balie. 1164 00:47:38,120 --> 00:47:40,330 Hij ontdekt dat ik dicht bij hem, dus het hoeft niet te zijn 1165 00:47:40,330 --> 00:47:46,780 vrij identiek aan te raken, en ik heb het spel gewonnen. 1166 00:47:46,780 --> 00:47:49,890 Dus daar hebben we Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Dus we kunnen dingen doen nog meer geavanceerde dan dit. 1168 00:47:52,200 --> 00:47:53,200 We kunt geluid toevoegen. 1169 00:47:53,200 --> 00:47:54,610 We kunnen voegen pseudo willekeur. 1170 00:47:54,610 --> 00:47:56,260 We kunnen voegen complexiteit. 1171 00:47:56,260 --> 00:47:58,490 Laat me hier ga je gang, en in plaats van dat zelf, 1172 00:47:58,490 --> 00:48:01,240 laat ik je een van de meer geavanceerde inzendingen 1173 00:48:01,240 --> 00:48:06,640 kregen we vorig jaar vanuit een bepaald iemand met de naam Blake. 1174 00:48:06,640 --> 00:48:08,910 Kunnen we nog een vrijwilliger die is prettig om op 1175 00:48:08,910 --> 00:48:12,600 camera en is voor het spelen van een spel? 1176 00:48:12,600 --> 00:48:13,450 Hoe zit het daar? 1177 00:48:13,450 --> 00:48:15,380 Kom op. 1178 00:48:15,380 --> 00:48:19,680 Oke, dus het spel dat u zojuist hebt zonder het te weten 1179 00:48:19,680 --> 00:48:20,780 vrijwillig te spelen - 1180 00:48:20,780 --> 00:48:25,910 [Applaus] 1181 00:48:25,910 --> 00:48:28,610 DAVID MALAN: - is iets uit het verleden genoemd 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Wat is je naam? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID MALAN: Redna? 1185 00:48:31,050 --> 00:48:32,530 RENDA: Het is net als Brenda met een b. 1186 00:48:32,530 --> 00:48:33,190 DAVID MALAN: Oke, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Leuk u te ontmoeten. 1189 00:48:34,580 --> 00:48:38,690 >> Dus hier in "Frogger", en als we verhogen het volume net 1190 00:48:38,690 --> 00:48:39,780 een beetje, je bent dit kleine 1191 00:48:39,780 --> 00:48:41,010 groene kikker op de bodem. 1192 00:48:41,010 --> 00:48:43,940 U kunt gebruik maken van links, rechts, omhoog en omlaag, en je doel is om 1193 00:48:43,940 --> 00:48:46,510 steek de straat over, de rivier oversteken, en raak de waterlelies 1194 00:48:46,510 --> 00:48:47,760 boven. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Nog een t - 1197 00:48:54,630 --> 00:48:56,400 redo, oke? 1198 00:48:56,400 --> 00:48:58,890 Laten we hit stop. 1199 00:48:58,890 --> 00:49:00,140 Niemand zag dat. 1200 00:49:10,470 --> 00:49:12,930 [Applaus] 1201 00:49:17,023 --> 00:49:17,850 [Applaus] 1202 00:49:17,850 --> 00:49:19,341 DAVID MALAN: Ja. 1203 00:49:19,341 --> 00:49:20,832 Heel goed gedaan. 1204 00:49:20,832 --> 00:49:22,082 Uitstekend, dank je wel. 1205 00:49:27,300 --> 00:49:29,430 >> Zodat er Frogger. Nu dat je weet wat je hebt 1206 00:49:29,430 --> 00:49:32,170 gekregen jezelf in, nog een vrijwilliger voor een andere 1207 00:49:32,170 --> 00:49:34,910 spel door een andere student. 1208 00:49:34,910 --> 00:49:35,560 U wilt op de proppen komen aan de hand? 1209 00:49:35,560 --> 00:49:36,576 Wat is je naam? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID MALAN: Richard. 1212 00:49:37,420 --> 00:49:39,732 Oke, Richard, kom naar boven. 1213 00:49:39,732 --> 00:49:42,187 [Applaus] 1214 00:49:45,140 --> 00:49:47,030 DAVID MALAN: Je hebt iets dat zal klinken 1215 00:49:47,030 --> 00:49:54,180 vertrouwde snel, dus hier zijn uw instructies. 1216 00:49:54,180 --> 00:49:56,580 Dus in een ogenblik, zijn sommige puzzelstukjes gaat omhoog 1217 00:49:56,580 --> 00:49:58,150 van het scherm dat ofwel kijk naar links 1218 00:49:58,150 --> 00:49:59,450 of naar rechts omhoog of omlaag. 1219 00:49:59,450 --> 00:50:01,230 Je gaat te hebben om de pijl toetsen te raken op een zodanige wijze 1220 00:50:01,230 --> 00:50:04,540 dat deze overeenkomt met die puzzelstukjes rij met 1221 00:50:04,540 --> 00:50:05,720 de tijdelijke aanduidingen boven. 1222 00:50:05,720 --> 00:50:07,500 Dus als je een pijl naar links, en het lijnen met de linker 1223 00:50:07,500 --> 00:50:09,260 pijl, raak de pijl naar links. 1224 00:50:09,260 --> 00:50:10,866 Je mag beginnen. 1225 00:50:10,866 --> 00:50:13,674 [MUZIEK - "sterker" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 DAVID MALAN: Oke, grote ronde van applaus voor Richard. 1227 00:51:23,470 --> 00:51:26,082 [Applaus] 1228 00:51:32,426 --> 00:51:33,720 DAVID MALAN: Zeer goed gedaan. 1229 00:51:33,720 --> 00:51:34,110 Dank u. 1230 00:51:34,110 --> 00:51:37,104 [Applaus] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID MALAN: So fun en, schijnbaar, een soort van 1232 00:51:44,330 --> 00:51:46,590 intimiderend als het zou kunnen zijn om iets te implementeren als 1233 00:51:46,590 --> 00:51:49,550 schijnbaar geavanceerd als deze, zich realiseren dat de student 1234 00:51:49,550 --> 00:51:51,450 niet uiteengezet en gewoon schrijven dit in een keer. 1235 00:51:51,450 --> 00:51:54,200 In plaats daarvan kunt u breken een probleem als schijnbaar complexe 1236 00:51:54,200 --> 00:51:56,840 omdat in veel kleinere stukken, en dit is ook 1237 00:51:56,840 --> 00:51:57,560 gaat om een ​​thema. 1238 00:51:57,560 --> 00:52:00,490 Het ergste wat je kunt doen in een programma te schrijven in vrijwel elke 1239 00:52:00,490 --> 00:52:03,480 taal is om te gaan zitten, echt opgewonden te krijgen, het schrijven 1240 00:52:03,480 --> 00:52:07,200 hele verdomde ding, en dan maar hopen dat het werkt door de 1241 00:52:07,200 --> 00:52:08,510 tijd dat je klaar bent met schrijven. 1242 00:52:08,510 --> 00:52:10,920 Veeleer het programmeringsproces dient algemeen 1243 00:52:10,920 --> 00:52:13,440 heel bewust, heel iteratief, waarbij je gewoon 1244 00:52:13,440 --> 00:52:16,955 vastgestelde zeer kleine stappen voor jezelf, hapklare stukken 1245 00:52:16,955 --> 00:52:20,070 wil je af te bijten, en zodat u deze geestelijke gezondheid hebben 1246 00:52:20,070 --> 00:52:21,740 controles, kleine mijlpalen kunt u kennismaken. 1247 00:52:21,740 --> 00:52:24,170 En dan bouw je op de top van die om meer te creëren 1248 00:52:24,170 --> 00:52:25,400 verfijnde dingen nog steeds. 1249 00:52:25,400 --> 00:52:26,820 >> Dus bijvoorbeeld, konden we hoe te gaan over 1250 00:52:26,820 --> 00:52:28,380 het implementeren van een spel als dit? 1251 00:52:28,380 --> 00:52:30,160 Nou, eerlijk gezegd, zou ik zeker beginnen met gewoon 1252 00:52:30,160 --> 00:52:32,260 ondersteuning een toets tegelijk. 1253 00:52:32,260 --> 00:52:34,840 Laten we gewoon implementeren steun voor de pijl naar links. 1254 00:52:34,840 --> 00:52:37,610 Dus de student moest een of andere manier te maken in Photoshop, of in 1255 00:52:37,610 --> 00:52:40,340 Kras zelf met behulp van de kleine grafische editor, een 1256 00:52:40,340 --> 00:52:42,680 pijl van het toetsenbord dat lijkt op de een op linksboven daar, net 1257 00:52:42,680 --> 00:52:43,910 de grijze tijdelijke aanduiding. 1258 00:52:43,910 --> 00:52:46,610 Dan is de student moest erachter te komen wat x, y-coördinaat op 1259 00:52:46,610 --> 00:52:48,380 zet het, waar deze te plaatsen in het venster. 1260 00:52:48,380 --> 00:52:50,730 0, 0 is hier op, dus je moet om erachter te komen van het aantal 1261 00:52:50,730 --> 00:52:53,690 pixels of punten in die pijl verschoven ten opzichte van 1262 00:52:53,690 --> 00:52:54,800 de bovenkant van het scherm. 1263 00:52:54,800 --> 00:52:57,040 En dan een keer dat is op zijn plaats, je programma doet eigenlijk niet 1264 00:52:57,040 --> 00:53:00,380 nog iets te doen, dus dan heb je een tweede sprite nodig, want 1265 00:53:00,380 --> 00:53:04,470 bijvoorbeeld een groene pijl dat is ook naar links, en u 1266 00:53:04,470 --> 00:53:06,710 Vervolgens moet u beginnen met het schrijven een aantal scripts voor. 1267 00:53:06,710 --> 00:53:09,310 >> En je merkt, misschien, dat deze dingen begon te komen op 1268 00:53:09,310 --> 00:53:11,470 verschillende snelheden, en de kleuren waren in verschillende 1269 00:53:11,470 --> 00:53:13,750 locaties, en dat komt omdat de student gebruikt een beetje 1270 00:53:13,750 --> 00:53:14,990 pseudo willekeur. 1271 00:53:14,990 --> 00:53:17,440 En door pseudo willekeur, ik bedoel kies een nummer 1272 00:53:17,440 --> 00:53:20,230 tussen iets en iets want je kunt 1273 00:53:20,230 --> 00:53:22,890 beginnen kaart dingen, zoals als het aantal tussen een en 1274 00:53:22,890 --> 00:53:24,940 vijf, goed, laten we het ding groen. 1275 00:53:24,940 --> 00:53:28,290 Als het tussen de 6 en 10, laten we het puzzelstukje 1276 00:53:28,290 --> 00:53:29,730 red plaats. 1277 00:53:29,730 --> 00:53:31,840 Zolang je een manier van het genereren een soort van 1278 00:53:31,840 --> 00:53:34,730 willekeur, kunt u vervolgens beslissingen nemen op basis van die 1279 00:53:34,730 --> 00:53:35,260 willekeur. 1280 00:53:35,260 --> 00:53:37,490 En ik blijf zeggen pseudo random want er is een 1281 00:53:37,490 --> 00:53:38,390 beetje vies geheim. 1282 00:53:38,390 --> 00:53:41,130 Computers kunnen niet komen met willekeurige getallen. 1283 00:53:41,130 --> 00:53:42,800 Ze kunnen alleen doen wat ze verteld, omdat 1284 00:53:42,800 --> 00:53:44,110 ze zijn door de mens veroorzaakte apparaten. 1285 00:53:44,110 --> 00:53:45,880 Ze kunnen niet zomaar denk dat een nummer zoals wij mensen 1286 00:53:45,880 --> 00:53:46,960 het gevoel dat we dat kunnen. 1287 00:53:46,960 --> 00:53:50,970 Een computer heeft om iets te doen wiskundige op te roepen de 1288 00:53:50,970 --> 00:53:53,970 illusie van wiskundige getal, soms met behulp van de 1289 00:53:53,970 --> 00:53:57,420 huidige dag van de tijd als input voor het uitzoeken wat 1290 00:53:57,420 --> 00:53:59,570 nummer om terug te keren, maar daarover een andere keer. 1291 00:53:59,570 --> 00:54:02,060 Voor nu, weet alleen dat we kunnen pseudo willekeur te genereren. 1292 00:54:02,060 --> 00:54:04,610 >> Dus zodra ik de mogelijkheid voor de pijl naar links om te beginnen 1293 00:54:04,610 --> 00:54:07,990 verschijnen op verschillende tijdstippen en met verschillende snelheid, dan 1294 00:54:07,990 --> 00:54:10,230 Ik kan terug en voeg een aantal van deze IF voorwaarden. 1295 00:54:10,230 --> 00:54:14,950 IF deze sprite raakt de ander, en de pijl naar links 1296 00:54:14,950 --> 00:54:16,330 toets is ingedrukt - 1297 00:54:16,330 --> 00:54:17,900 dus drie voorwaarden in dat geval. 1298 00:54:17,900 --> 00:54:20,750 Ik kan dat en blokkeren wellicht, in dat geval - 1299 00:54:20,750 --> 00:54:23,210 Dan wil ik verder gaan en de score te verhogen. 1300 00:54:23,210 --> 00:54:25,130 En aan de bovenkant hebben we een score, we hebben Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, Goed, en Boo. 1302 00:54:26,510 --> 00:54:29,810 Dus er is blijkbaar vijf variabelen deze student 1303 00:54:29,810 --> 00:54:32,220 gebruikt voor het bijhouden van deze verschillende statistieken. 1304 00:54:32,220 --> 00:54:34,180 Dus in het kort, het eindresultaat is verbluffend. 1305 00:54:34,180 --> 00:54:37,320 Het is leuk, het is leuk om te spelen, het is boeiende, maar dit is niet 1306 00:54:37,320 --> 00:54:38,380 waar de student begon. 1307 00:54:38,380 --> 00:54:42,210 Hij begon op een veel kleiner aantal stappen. 1308 00:54:42,210 --> 00:54:44,470 >> Dus wat zijn enkele andere bouwstenen die we kunnen 1309 00:54:44,470 --> 00:54:45,760 weven in deze programma's? 1310 00:54:45,760 --> 00:54:48,750 Nou, er is een ander concept in de meeste talen, 1311 00:54:48,750 --> 00:54:50,730 Krassen waaronder, bekend als threads. 1312 00:54:50,730 --> 00:54:54,660 Dus een computer kan eigenlijk niet echt meerdere dingen op een 1313 00:54:54,660 --> 00:54:56,730 tijd, althans meestal niet. 1314 00:54:56,730 --> 00:54:59,930 Eerder een computer over het algemeen slechts een CPU en zelfs 1315 00:54:59,930 --> 00:55:02,230 hoewel computers zijn super snel en kunnen zij derhalve, 1316 00:55:02,230 --> 00:55:04,740 creëren de illusie van het doen van meerdere dingen tegelijk - 1317 00:55:04,740 --> 00:55:06,180 het controleren van uw e-mail, het krijgen van een instant 1318 00:55:06,180 --> 00:55:07,770 boodschap, afdrukken van een document - 1319 00:55:07,770 --> 00:55:11,530 echt, is een computer gewoon springen: van afdrukken tot IMing 1320 00:55:11,530 --> 00:55:15,160 te e-mailen, terug en terug en heen en weer zo snel dat we 1321 00:55:15,160 --> 00:55:18,170 langzame witted mensen gewoon niet beseffen dat het eigenlijk 1322 00:55:18,170 --> 00:55:21,240 draaien deze programma's een beetje op een moment. 1323 00:55:21,240 --> 00:55:23,960 Nu, dit een beetje een witte liggen deze dagen, want, vandaag de dag, 1324 00:55:23,960 --> 00:55:26,740 veel onze computers zijn zogenaamde multi-core, zodat u 1325 00:55:26,740 --> 00:55:29,760 hebben een CPU, maar meerdere cores, wat voor soort is als 1326 00:55:29,760 --> 00:55:31,760 het hebben van meerdere CPU's. 1327 00:55:31,760 --> 00:55:35,020 >> En dus soms kunnen computers echt doen meerdere dingen 1328 00:55:35,020 --> 00:55:38,500 tegelijk, maar in het algemeen in een programma,'s 1329 00:55:38,500 --> 00:55:40,200 vertrouwen op deze dingen genoemd draden. 1330 00:55:40,200 --> 00:55:43,160 Dus een draad is als een soort miniatuur-programma dat kan 1331 00:55:43,160 --> 00:55:46,540 bestaan ​​naast een ander miniatuur programma en kan draaien 1332 00:55:46,540 --> 00:55:51,250 parallel, althans kan lopen onder de illusie dat 1333 00:55:51,250 --> 00:55:52,990 ze tegelijk draaien. 1334 00:55:52,990 --> 00:55:55,060 Dus Scratch ondersteunt deze dingen genoemd draden. 1335 00:55:55,060 --> 00:55:57,580 U kunt meerdere scripts uitvoeren in een keer, net zoals wij 1336 00:55:57,580 --> 00:56:00,220 deed met de zeeleeuw, en dit stelt ons in staat om daadwerkelijk 1337 00:56:00,220 --> 00:56:03,620 dan hebben onderlinge beïnvloeding van deze sprites. 1338 00:56:03,620 --> 00:56:09,910 Laat me hier ga je gang en trek je, laten we zeggen, draden, en 1339 00:56:09,910 --> 00:56:11,870 spelen dit als volgt. 1340 00:56:11,870 --> 00:56:13,950 We hebben twee sprites, die elk we zullen zien 1341 00:56:13,950 --> 00:56:15,720 heeft maar een script. 1342 00:56:15,720 --> 00:56:18,000 En je merkt er lijkt enige intelligentie in de 1343 00:56:18,000 --> 00:56:21,335 kat in dit ene, omdat hij komt dichterbij - 1344 00:56:21,335 --> 00:56:21,730 [Brult] 1345 00:56:21,730 --> 00:56:24,540 DAVID MALAN: - en dichter bij de kleine vogel. 1346 00:56:24,540 --> 00:56:26,570 >> Dus hoe is de vogel in bedrijf? 1347 00:56:26,570 --> 00:56:28,200 Nou, laten we eerst een kijkje nemen op de vogel. 1348 00:56:28,200 --> 00:56:31,220 De vogel script zei toen de groene vlag wordt geklikt, gaat u naar x 1349 00:56:31,220 --> 00:56:34,020 is gelijk aan negatieve 115 en y is gelijk aan 150. 1350 00:56:34,020 --> 00:56:37,010 Dus ik bedacht een willekeurige locatie waar ik wilde de 1351 00:56:37,010 --> 00:56:39,580 vogel om te beginnen, en ik plofte hem daar standaard. 1352 00:56:39,580 --> 00:56:42,800 Dan blijvend IF niet raken kat, dus dit is een andere 1353 00:56:42,800 --> 00:56:45,080 soort van looping construct, maar hetzelfde idee, doe dit opnieuw en 1354 00:56:45,080 --> 00:56:45,780 weer. 1355 00:56:45,780 --> 00:56:49,410 Zolang je niet de kat aanraken, bewegen drie stappen, en 1356 00:56:49,410 --> 00:56:51,680 als je op de rand, bounce, waar het is een soort van 1357 00:56:51,680 --> 00:56:53,320 reflectie in de biljartzaal zin. 1358 00:56:53,320 --> 00:56:56,140 Dus dat is hoe de vogel bewegen soort 1359 00:56:56,140 --> 00:56:58,890 schijnbaar willekeurig, maar het is gewoon omdat het stuiteren 1360 00:56:58,890 --> 00:57:00,170 de wanden in dit geval. 1361 00:57:00,170 --> 00:57:03,170 >> Nu de kat, ondertussen, is een soort van vals spelen. 1362 00:57:03,170 --> 00:57:05,520 De kat, wanneer de groene vlag wordt geklikt, ja, begint in 1363 00:57:05,520 --> 00:57:07,390 een locatie, een willekeurige locatie - 1364 00:57:07,390 --> 00:57:09,590 ten minste gedeeltelijk volgens de pick 1365 00:57:09,590 --> 00:57:11,430 willekeurige groene blok er - 1366 00:57:11,430 --> 00:57:14,660 en dan blijvend IF aanraken van de vogel, spelen de leeuw geluid, 1367 00:57:14,660 --> 00:57:15,790 en dan stoppen script. 1368 00:57:15,790 --> 00:57:18,560 Dus toen ik zei beëindigen of af te sluiten voordat, er is een puzzel 1369 00:57:18,560 --> 00:57:20,600 stuk in Scratch dat alleen zal doden het programma op dat 1370 00:57:20,600 --> 00:57:22,900 wijzen, omdat het is een soort van logisch gedaan. 1371 00:57:22,900 --> 00:57:25,030 Maar voor de rest, hier, op wat er gaat gebeuren. 1372 00:57:25,030 --> 00:57:28,470 Wijzen in de richting van de vogel en zet een stap. 1373 00:57:28,470 --> 00:57:31,390 Dus dit punt in de richting van vogel is een soort van een voordeel van de kat 1374 00:57:31,390 --> 00:57:34,640 heeft dat het homing in op de bewegende vogel, en we kunnen 1375 00:57:34,640 --> 00:57:37,370 Nu maken van dit programma des te interessanter. 1376 00:57:37,370 --> 00:57:41,520 In plaats van het verplaatsen van een stap op een moment per CPU cyclus, per 1377 00:57:41,520 --> 00:57:44,280 staking tol van de bel, om zo te zeggen, laat me ga je gang en 1378 00:57:44,280 --> 00:57:47,350 verplaatsen, laten we zeggen, vijf stappen in een tijd als de kat. 1379 00:57:47,350 --> 00:57:51,120 Klik op Uitvoeren, en nu is hij echt vindt hem snel. 1380 00:57:51,120 --> 00:57:55,620 Als we dit verder te verdubbelen tot 10 stappen, het soort gaat 1381 00:57:55,620 --> 00:57:56,370 goed voor hem. 1382 00:57:56,370 --> 00:57:57,750 Nu kunnen we de vogel, 1383 00:57:57,750 --> 00:57:59,540 misschien een beetje een voordeel. 1384 00:57:59,540 --> 00:58:02,370 Laten we naar de vogel en zeggen in plaats van het verplaatsen van drie stappen, 1385 00:58:02,370 --> 00:58:07,140 vooruit hem 30 treden. 1386 00:58:07,140 --> 00:58:08,700 Maar hij had nog steeds gevangen in het einde. 1387 00:58:08,700 --> 00:58:10,430 >> Dus hier hebben we twee draden. 1388 00:58:10,430 --> 00:58:13,230 Het is opgesloten in Scratch met twee scripts en twee 1389 00:58:13,230 --> 00:58:16,150 sprites, maar het idee in andere talen is dat je kunt 1390 00:58:16,150 --> 00:58:19,220 wezen schrijven,, te veel programma's zoals dit en hebben 1391 00:58:19,220 --> 00:58:22,950 ze uit te voeren echt, of denkbeeldig, in parallel. 1392 00:58:22,950 --> 00:58:25,280 >> Nu is er ook dit concept in de programmering bekend als 1393 00:58:25,280 --> 00:58:28,010 gebeurtenissen, en dit is iets wat we niet zien in C, de 1394 00:58:28,010 --> 00:58:30,500 taal bekend als C. We zullen het zien tegen het einde semester 1395 00:58:30,500 --> 00:58:33,240 in web programmeren, als we introduceren JavaScript en de 1396 00:58:33,240 --> 00:58:36,970 begrip gebouw webpagina's die zijn dynamisch en interactief 1397 00:58:36,970 --> 00:58:37,710 met de gebruikers. 1398 00:58:37,710 --> 00:58:40,430 Dus in dit geval hebben we een zeer eenvoudig voorbeeld van twee 1399 00:58:40,430 --> 00:58:43,860 sprites, jongen en meisje, die elk hun respectieve 1400 00:58:43,860 --> 00:58:48,040 draden, maar een of andere manier deze twee zijn met elkaar communiceren door middel 1401 00:58:48,040 --> 00:58:49,490 van genoemd iets evenementen. 1402 00:58:49,490 --> 00:58:52,750 Dus laat me hier verder te gaan en in te zoomen op script van de jongen, 1403 00:58:52,750 --> 00:58:54,050 die ziet er zo uit. 1404 00:58:54,050 --> 00:58:57,510 Bij groene vlag geklikt, voor altijd het volgende doen. 1405 00:58:57,510 --> 00:59:01,510 Als de toets Space, of de spatiebalk, wordt ingedrukt, zeg 1406 00:59:01,510 --> 00:59:03,900 Marco gedurende twee seconden, dat is puur esthetische op de 1407 00:59:03,900 --> 00:59:06,860 scherm, een kleine toespraak bubble, maar dan uit te zenden. 1408 00:59:06,860 --> 00:59:09,240 >> Dus uitzending is een ander Scratch stuk dat is 1409 00:59:09,240 --> 00:59:12,050 vertegenwoordiger van een klasse van functionaliteit programmeren 1410 00:59:12,050 --> 00:59:15,080 die het mogelijk maakt verschillende programma's, verschillende draden, 1411 00:59:15,080 --> 00:59:17,120 naar inter-communiceren, om een ​​of andere manier te sturen 1412 00:59:17,120 --> 00:59:18,520 berichten elkander. 1413 00:59:18,520 --> 00:59:21,930 Het passeren van een stuk papier in de klas is een soort van de low tech 1414 00:59:21,930 --> 00:59:22,700 equivalent. 1415 00:59:22,700 --> 00:59:24,300 Dus uitgezonden gebeurtenis. 1416 00:59:24,300 --> 00:59:26,210 Ik kunt dit bericht versturen, en het woord evenement 1417 00:59:26,210 --> 00:59:27,270 is volkomen willekeurig. 1418 00:59:27,270 --> 00:59:30,000 Scratch heeft soms zijn deze drop-downs, dus ik kwam 1419 00:59:30,000 --> 00:59:33,230 met een willekeurige woord als gebeurtenis, omdat nu, wat de jongen doet 1420 00:59:33,230 --> 00:59:36,600 wanneer ik op de sleutel is hij uitgezonden dit evenement. 1421 00:59:36,600 --> 00:59:39,270 En als ik kijk nu naar script van het meisje, haar script is 1422 00:59:39,270 --> 00:59:42,690 super eenvoudig, omdat alles wat ze moet doen is niet te handelen wanneer 1423 00:59:42,690 --> 00:59:44,100 de groene vlag wordt geklikt. 1424 00:59:44,100 --> 00:59:47,910 Ze is ontworpen om actie wanneer ze krijgt citaat, unquote, 1425 00:59:47,910 --> 00:59:51,210 "Gebeurtenis", en op dat punt, ze luisteren dan ook voor 1426 00:59:51,210 --> 00:59:52,960 de zogenaamde event weer. 1427 00:59:52,960 --> 00:59:55,790 Zodra ze die gebeurtenis ontvangt, ze gaat te schreeuwen 1428 00:59:55,790 --> 00:59:57,680 Polo twee seconden ingedrukt. 1429 00:59:57,680 --> 01:00:01,090 >> En dus kun je misschien afleiden uit dit precies wat de 1430 01:00:01,090 --> 01:00:03,190 volgende resultaat gaat worden. 1431 01:00:03,190 --> 01:00:04,910 Laat me klikt u op de groene vlag. 1432 01:00:04,910 --> 01:00:06,610 Er gebeurt niets want ik moet wat te doen? 1433 01:00:06,610 --> 01:00:07,310 PUBLIEK: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID MALAN: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Boy zegt Marco, meisje zegt Polo. 1436 01:00:11,990 --> 01:00:13,670 Maar dat is niet hard gecodeerd per se. 1437 01:00:13,670 --> 01:00:16,740 Dat is onderlinge communicatie tussen de scripts, dus nu hebben we 1438 01:00:16,740 --> 01:00:19,240 hebben de mogelijkheid om nog meer complexe programma's waar te maken 1439 01:00:19,240 --> 01:00:22,830 deze twee zijn een of andere manier onderling communiceren. 1440 01:00:22,830 --> 01:00:25,260 >> Dus in welke richting kunnen we dit? 1441 01:00:25,260 --> 01:00:28,260 Nou, in probleem set 0, echt, het doel is om 1442 01:00:28,260 --> 01:00:29,830 veel plezier met Scratch. 1443 01:00:29,830 --> 01:00:32,440 Voor de hacker editie, zul je in plaats daarvan hebben plezier met een meer 1444 01:00:32,440 --> 01:00:35,850 verfijnde versie van Scratch genoemd BYOB, Build 1445 01:00:35,850 --> 01:00:38,040 Uw eigen Blocks, maar het idee is hetzelfde. 1446 01:00:38,040 --> 01:00:38,780 Je zult in staat zijn - 1447 01:00:38,780 --> 01:00:39,710 Ja, dat was weloverwogen. 1448 01:00:39,710 --> 01:00:42,450 Het kwam van Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB is de hacker editie versie van dit, maar beide 1450 01:00:45,200 --> 01:00:48,180 demografie, standaard editie en hacker editie gelijk, de 1451 01:00:48,180 --> 01:00:50,940 doel bij de hand voor de komende week is eigenlijk gewoon om te duiken in 1452 01:00:50,940 --> 01:00:53,050 diep, je handen vuil met de programmering, en maak 1453 01:00:53,050 --> 01:00:55,240 iets interessants, iets maken interactief maken 1454 01:00:55,240 --> 01:00:58,020 iets artistieke, maak er iets leuk om daadwerkelijk 1455 01:00:58,020 --> 01:01:01,020 aan te tonen, zodat tegen het einde week, zul je een project, 1456 01:01:01,020 --> 01:01:03,770 niet alleen voor uw eerste CS50 PSET, maar heb je een 1457 01:01:03,770 --> 01:01:05,620 iets dat je kunt pronken Annenberg om 1458 01:01:05,620 --> 01:01:08,830 vrienden of zelfs familie door deze te uploaden naar de website van het MIT. 1459 01:01:08,830 --> 01:01:11,760 En dus zoals ik al zei op woensdag, verwachten we dat 90% van de klas, 1460 01:01:11,760 --> 01:01:13,970 het algemeen, de standaard edities te doen. 1461 01:01:13,970 --> 01:01:16,660 Realiseer je dat er ook dit uitlaatklep voor degenen onder u die 1462 01:01:16,660 --> 01:01:18,990 anders zou merken dat je een beetje vervelen met de basis 1463 01:01:18,990 --> 01:01:21,650 en echt willen duiken in en ambachtelijke een visie die je al 1464 01:01:21,650 --> 01:01:25,380 hebben met eerdere achtergrond in deze vriendelijker 1465 01:01:25,380 --> 01:01:26,240 milieu. 1466 01:01:26,240 --> 01:01:29,030 >> Dus laat me omhoog te trekken een ander voorbeeld dat een van onze oud- 1467 01:01:29,030 --> 01:01:33,830 studenten hier deed en vertellen een beetje iets in een song. 1468 01:01:33,830 --> 01:01:37,430 Die op dezelfde wijze, als dit speelt, na te denken over hoe je over 1469 01:01:37,430 --> 01:01:40,520 uitvoering van dit programma met behulp van precies dezelfde 1470 01:01:40,520 --> 01:01:44,180 bouwstenen, een beetje pseudo willekeur, en een 1471 01:01:44,180 --> 01:01:46,010 beetje bekend liedje. 1472 01:01:46,010 --> 01:01:47,910 Als we konden het volume te verhogen een beetje? 1473 01:01:47,910 --> 01:01:49,160 [MUZIEK - "It's Raining Men 'The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID MALAN: Dat is het voor CS50. 1475 01:03:03,930 --> 01:03:05,860 We zullen zien je maandag. 1476 01:03:05,860 --> 01:03:21,152 [Applaus]