1 00:00:00,000 --> 00:00:11,120 2 00:00:11,120 --> 00:00:12,590 >> SPEAKER: Ik ben [onverstaanbaar]. 3 00:00:12,590 --> 00:00:14,820 En ik ben een senior op Leverett House. 4 00:00:14,820 --> 00:00:18,700 Ik studeer informatica, en ik ben een TF voor CS50. 5 00:00:18,700 --> 00:00:21,640 Als eerstejaarsstudent, wist ik niet eens een laptop of een smartphone. 6 00:00:21,640 --> 00:00:23,550 Ik had geen ervaring met programmeren. 7 00:00:23,550 --> 00:00:29,690 CS50 was de meest memorabele cursus die Ik nam aan Harvard want het was 8 00:00:29,690 --> 00:00:32,960 een strijd, maar het was echt een fun strijd tegelijk. 9 00:00:32,960 --> 00:00:37,670 En ik een heleboel geweldige, permanent gemaakt vrienden, en ik heb veel geleerd van echt 10 00:00:37,670 --> 00:00:38,830 toepasselijke vaardigheden. 11 00:00:38,830 --> 00:00:43,480 Ik ben gewoon zo blij dat ik niet laat mijn gebrek aan achtergrond zijn een excuus voor mij 12 00:00:43,480 --> 00:00:44,840 niet CS50. 13 00:00:44,840 --> 00:00:46,220 Ik ben [onverstaanbaar]. 14 00:00:46,220 --> 00:00:48,910 Ik ben een senior op Leverett Huis, klasse van 2014. 15 00:00:48,910 --> 00:00:51,670 En ik nam CS50. 16 00:00:51,670 --> 00:00:52,380 >> DAVID Malan: Dus dit is CS50. 17 00:00:52,380 --> 00:00:54,400 Dit is het einde van week nul. 18 00:00:54,400 --> 00:00:58,500 En herinneren waar we de vorige keer begon, was bij deze lampen, waarvan 19 00:00:58,500 --> 00:01:01,420 zo populair dat we gingen en kocht wat meer vandaag. 20 00:01:01,420 --> 00:01:03,790 Dus ik denk dat dit zal zijn ons ding dit jaar - 21 00:01:03,790 --> 00:01:07,230 bureaulampen als je komt op het podium, tenminste tot we uitgeput. 22 00:01:07,230 --> 00:01:11,570 >> Maar we gebruikten deze recall, in te voeren de basisprincipes van de voorstelling van gegevens. 23 00:01:11,570 --> 00:01:15,640 We moesten manier om te beginnen wat neerkomt informatie in een computer. 24 00:01:15,640 --> 00:01:18,650 En de eenvoudigste manier om dat te doen is met een ingrediënt, elektriciteit. 25 00:01:18,650 --> 00:01:21,760 En de eenvoudigste wat je kunt doen met elektriciteit is zet hem op en het af. 26 00:01:21,760 --> 00:01:23,520 Laat de elektronenstroom of niet. 27 00:01:23,520 --> 00:01:27,930 En met behulp van deze twee fundamentele staten, off en op, of valse en ware, of nul en 28 00:01:27,930 --> 00:01:31,290 een, begonnen we te zien dat we kunnen bouwen up, in dit geval, met licht 29 00:01:31,290 --> 00:01:33,720 bollen, meer nummers dan enkel nul en een. 30 00:01:33,720 --> 00:01:36,160 We telden zo hoog als zeven, bijvoorbeeld, de laatste keer. 31 00:01:36,160 --> 00:01:38,840 Maar alles wat we moeten doen is blijven gooien meer en meer gloeilampen op dat 32 00:01:38,840 --> 00:01:41,820 probleem en, echt, kunnen wij vertegenwoordigen elk nummer dat we 33 00:01:41,820 --> 00:01:42,970 zou kunnen wensen. 34 00:01:42,970 --> 00:01:47,230 >> Nou, we overgestapt dan snel op Woensdag om deze byte van vrijwilligers. 35 00:01:47,230 --> 00:01:52,040 8 bits is wat we over het algemeen noemen een byte, dus hier hadden we acht vrijwilligers 36 00:01:52,040 --> 00:01:54,900 op woensdag die gezamenlijk waren waarbij acht bits. 37 00:01:54,900 --> 00:01:56,750 En wanneer hun handen gingen up, waren een. 38 00:01:56,750 --> 00:01:58,530 En toen hun handen waren beneden, waren er een nul. 39 00:01:58,530 --> 00:02:01,970 En we hadden deze mensen komen op het podium waarom? 40 00:02:01,970 --> 00:02:06,530 Wat we kunnen doen met Deze opeenvolging van bits? 41 00:02:06,530 --> 00:02:07,510 >> Om een ​​alfabet maken. 42 00:02:07,510 --> 00:02:11,550 We waren in staat om voort te bouwen op de top van dat vorige les geleerd en eigenlijk 43 00:02:11,550 --> 00:02:14,200 beginnen om interessanter te maken informatie die is in ieder geval meer 44 00:02:14,200 --> 00:02:15,330 vertrouwd voor ons mensen. 45 00:02:15,330 --> 00:02:18,360 En dit gaat worden een terugkerend thema in 50, maar ook de computer 46 00:02:18,360 --> 00:02:21,470 wetenschap algemeen, dit idee gelaagdheid, waar, aan het einde van de 47 00:02:21,470 --> 00:02:24,820 dag, als je echt begonnen met de basics met een computer, ja, 48 00:02:24,820 --> 00:02:25,760 het is nullen en enen. 49 00:02:25,760 --> 00:02:27,480 En onder dat het net elektriciteit. 50 00:02:27,480 --> 00:02:30,840 Maar wij zeer snel beginnen met die te nemen lage niveau details voor verleend 51 00:02:30,840 --> 00:02:35,600 en beginnen te laag bovenop verleden werkten gedaan dat we uiteindelijk door 52 00:02:35,600 --> 00:02:38,610 het einde van het semester en, echt, meer in het algemeen als informatici 53 00:02:38,610 --> 00:02:42,790 en programmeurs, kunnen sommige echt doen krachtige dingen door gebruik te maken van het werk 54 00:02:42,790 --> 00:02:46,620 die we zelf hebben gedaan en ook op de schouders van anderen. 55 00:02:46,620 --> 00:02:49,300 >> Nu we al snel overgestapt op woensdag van enkel te hoeven 56 00:02:49,300 --> 00:02:52,080 vertegenwoordigen informatie te willen om iets mee te doen. 57 00:02:52,080 --> 00:02:54,170 Dus wat hebben we een algoritme definiëren als? 58 00:02:54,170 --> 00:02:57,340 59 00:02:57,340 --> 00:02:58,900 Een reeks instructies. 60 00:02:58,900 --> 00:03:03,380 Dus het is een reeks instructies, een aantal stappen dat u, een mens, of 61 00:03:03,380 --> 00:03:07,160 een computer, liever, zou uitvoeren na elkaar teneinde 62 00:03:07,160 --> 00:03:08,100 enkele doel te bereiken. 63 00:03:08,100 --> 00:03:11,360 En we hadden een paar doelen vorige keer, waarvan een te tellen 64 00:03:11,360 --> 00:03:12,250 mensen in de kamer. 65 00:03:12,250 --> 00:03:15,560 En nog zo'n voorbeeld was te vinden Mike Smith in een telefoonboek. 66 00:03:15,560 --> 00:03:19,750 >> Dus je kan herinneren dat ik scheurde een telefoon boek in de helft van de richting van dit doel omhoog 67 00:03:19,750 --> 00:03:21,280 het vinden van Mike Smith. 68 00:03:21,280 --> 00:03:24,000 Het doel van deze visuele moest tonen, nogmaals, dat we 69 00:03:24,000 --> 00:03:27,770 letterlijk scheuren dit probleem in half, in half, dubbel en zeer 70 00:03:27,770 --> 00:03:31,750 snel gaan uit zoals 1000 pagina's om slechts een enkele pagina. 71 00:03:31,750 --> 00:03:34,860 Degenen van jullie die dit gemist op Woensdag, ik dacht dat we terug zouden spelen 72 00:03:34,860 --> 00:03:36,820 wat beelden van wat je gemist. 73 00:03:36,820 --> 00:03:38,914 Laten we eens een kijkje nemen. 74 00:03:38,914 --> 00:03:40,906 >> [VIDEO AFSPELEN] 75 00:03:40,906 --> 00:03:55,360 76 00:03:55,360 --> 00:03:55,990 >> -Daar gaan we. 77 00:03:55,990 --> 00:04:01,432 1500 pagina's, Mooie schone lijn, legitieme traan. 78 00:04:01,432 --> 00:04:02,850 >> [END VIDEO AFSPELEN] 79 00:04:02,850 --> 00:04:05,230 >> DAVID Malan: Dus dat was woensdag. 80 00:04:05,230 --> 00:04:09,150 We overgang, hoewel, op woensdag nu te willen algoritmes vertegenwoordigen 81 00:04:09,150 --> 00:04:12,410 in sommige ietwat standaard manier, niet alleen hen verbaal te beschrijven, maar 82 00:04:12,410 --> 00:04:16,290 proberen om ze te uiten schriftelijk of op een computerscherm, zodat we konden 83 00:04:16,290 --> 00:04:19,170 beginnen te verbeteren en te wijzigen hen, en, uiteindelijk, eigenlijk 84 00:04:19,170 --> 00:04:21,160 analyseren hoe correct of hoe snel ze waren. 85 00:04:21,160 --> 00:04:23,360 >> Zodat we dit begrip geïntroduceerd van pseudocode die in 86 00:04:23,360 --> 00:04:26,410 lekentaal, is wat? 87 00:04:26,410 --> 00:04:26,930 OK, woorden. 88 00:04:26,930 --> 00:04:28,730 Laten we een beetje dieper dan dat. 89 00:04:28,730 --> 00:04:32,540 Engels, zeker, maar zijn naar welk doel? 90 00:04:32,540 --> 00:04:35,180 Woorden waarmee te maken of om algoritmes te vertegenwoordigen. 91 00:04:35,180 --> 00:04:38,380 Dus er is geen een taal bekend zoals pseudocode in de wereld. 92 00:04:38,380 --> 00:04:41,110 Het is gewoon dat je, in het Engels, of wat uw gesproken taal is, gebruik 93 00:04:41,110 --> 00:04:44,930 een soort vluchtige notatie te brengen een idee heel bondig. 94 00:04:44,930 --> 00:04:47,930 Maar we zullen zien dat, zeker bij een Engels pseudocode, en het blijkt 95 00:04:47,930 --> 00:04:51,700 de meeste programmeertalen zelf zijn afgeleid van het Engels zelf, 96 00:04:51,700 --> 00:04:55,750 dan zullen we zien dat er een aantal standaard manieren die pseudocode en 97 00:04:55,750 --> 00:04:57,150 Ook het programmeren van code. 98 00:04:57,150 --> 00:05:00,200 Dus als je begint om zelfs de eenvoudigste zien voorbeelden vandaag, realiseren deze 99 00:05:00,200 --> 00:05:02,160 dezelfde patronen zal volgende week terugkeren. 100 00:05:02,160 --> 00:05:04,710 >> Dus pseudocode was een soort van de taal die lijkt op 101 00:05:04,710 --> 00:05:06,170 een programmeertaal. 102 00:05:06,170 --> 00:05:09,260 En het eerste voorbeeld dat we visueel zagen opgeschreven was deze. 103 00:05:09,260 --> 00:05:12,870 Het was slechts een drie stappen programma, de doel daarvan was het aantal tellen 104 00:05:12,870 --> 00:05:15,650 van mensen in een slaapzaal voor die video op woensdag. 105 00:05:15,650 --> 00:05:19,040 Maar er waren een paar interessante aspecten deze eenvoudige programma. 106 00:05:19,040 --> 00:05:20,320 >> En dit zal zijn terugkerende thema's. 107 00:05:20,320 --> 00:05:22,930 Dus voor degenen die onbekend zijn met dit, een, introduceerden we een variabele. 108 00:05:22,930 --> 00:05:25,650 En waarschijnlijk iedereen in deze kamer is bekend met een variabele in de 109 00:05:25,650 --> 00:05:27,250 context van de algebra. 110 00:05:27,250 --> 00:05:31,190 Maar hier in de programmering, variabelen worden, men, kan worden 111 00:05:31,190 --> 00:05:32,220 riep wat we willen. 112 00:05:32,220 --> 00:05:33,620 We gebruiken n als een teller. 113 00:05:33,620 --> 00:05:37,490 Maar we konden gebruik maken van het woord teller, of, zoals u zult zien, de meeste elke zin die 114 00:05:37,490 --> 00:05:40,240 je misschien leuk zolang het is beschrijvend, maar het is eigenlijk gewoon een 115 00:05:40,240 --> 00:05:41,250 opslagcontainer. 116 00:05:41,250 --> 00:05:44,170 Het is een stuk van het geheugen, sommige aantal beetjes, en het verschilt per computer, hoe 117 00:05:44,170 --> 00:05:47,020 aantal bits dat er componeren die variabele. 118 00:05:47,020 --> 00:05:48,450 >> Maar we kunnen de waarden in te doen. 119 00:05:48,450 --> 00:05:50,740 Tot nu toe hebben we alleen zet nummers. 120 00:05:50,740 --> 00:05:52,290 Maar we kunnen de werkelijke woorden te brengen. 121 00:05:52,290 --> 00:05:53,420 We kunnen de punten zetten. 122 00:05:53,420 --> 00:05:54,560 We kunnen afbeeldingen zetten - 123 00:05:54,560 --> 00:05:57,860 alles, echt, kunnen wij vertegenwoordigen met nullen en enen, kunnen we in zetten 124 00:05:57,860 --> 00:05:59,820 dit hogere niveau notie een variabele. 125 00:05:59,820 --> 00:06:01,350 >> Zo mooi daar rechtstreeks doorsturen. 126 00:06:01,350 --> 00:06:02,210 En dat is een lijn. 127 00:06:02,210 --> 00:06:05,340 Maar wij zeer snel verhuisd van lijn een om daadwerkelijk te doen 128 00:06:05,340 --> 00:06:06,600 iets met die variabele. 129 00:06:06,600 --> 00:06:10,330 En in lijn drie, we bijgewerkt N. Wij opgehoogd N. En we konden dit te schrijven 130 00:06:10,330 --> 00:06:11,330 een aantal manieren. 131 00:06:11,330 --> 00:06:14,460 Maar misschien wel de meest voor de hand liggende is gewoon om te zeggen, stelt N gelijk is aan 132 00:06:14,460 --> 00:06:16,440 wat N is plus 1. 133 00:06:16,440 --> 00:06:17,740 Dus dat was onze increment. 134 00:06:17,740 --> 00:06:18,740 >> Inmiddels was er een lus. 135 00:06:18,740 --> 00:06:20,720 En deze ook, is waarschijnlijk vrij intuïtief. 136 00:06:20,720 --> 00:06:24,250 Een lus is gewoon iets in een programma dat steeds weer gebeurt, sommige 137 00:06:24,250 --> 00:06:25,190 soort cyclus. 138 00:06:25,190 --> 00:06:29,300 En deze sleutel zin hier, voor elk, is eigenlijk heel gebruikelijk in de meeste 139 00:06:29,300 --> 00:06:32,300 programmeertalen, zoals die we zullen zien in de cursus. 140 00:06:32,300 --> 00:06:35,850 Wanneer zie je het woord voor, het brengt typisch het idee dat een 141 00:06:35,850 --> 00:06:38,410 lus, iets cyclisch, staat te gebeuren. 142 00:06:38,410 --> 00:06:40,980 >> Maar het is vermeldenswaard een andere syntactische detail. 143 00:06:40,980 --> 00:06:44,660 Het feit dat de derde lijn er daadwerkelijk door te hebben raakte de ingesprongen 144 00:06:44,660 --> 00:06:46,920 spatiebalk paar keer is weloverwogen. 145 00:06:46,920 --> 00:06:49,870 Omdat de menselijke conventie zodanig dat als je weer iets doet en 146 00:06:49,870 --> 00:06:54,860 opnieuw, in een lus, als begonnen op lijn twee, je iets dat toebehoorde streepje 147 00:06:54,860 --> 00:06:58,880 om die lus alleen maar om duidelijk te maken dat het is regel drie en niet, bijvoorbeeld, 148 00:06:58,880 --> 00:07:01,910 lijn vier of vijf, als er lijnen voor of vijf, dat zijn 149 00:07:01,910 --> 00:07:03,010 deel van die lussen. 150 00:07:03,010 --> 00:07:07,340 Dus deze eenvoudige inspringen brengt dat basisidee. 151 00:07:07,340 --> 00:07:09,390 >> Dus we passen dit algoritme, Nu, om een ​​paar voorbeelden. 152 00:07:09,390 --> 00:07:12,620 En ook dit eenvoudig voorbeeld in de echte wereld. 153 00:07:12,620 --> 00:07:15,440 Maar het gaat om representatief te zijn hoe je zou gaan over het testen van uw 154 00:07:15,440 --> 00:07:17,500 bezitten steeds complexere programma's. 155 00:07:17,500 --> 00:07:21,050 U probeert een paar scenario's, een aantal vertegenwoordigers van inputs, en kijk of je 156 00:07:21,050 --> 00:07:22,180 krijgt de gewenste output. 157 00:07:22,180 --> 00:07:25,090 >> Dus dit voorbeeld had twee personen zitten in de slaapzaal. 158 00:07:25,090 --> 00:07:27,170 Aan de linkerkant is diezelfde pseudo-code. 159 00:07:27,170 --> 00:07:30,800 En dit is een screen shot van de zeer laatste stap van de toepassing van deze 160 00:07:30,800 --> 00:07:35,270 algoritme op deze middelen waar waren twee mensen in de kamer en, 161 00:07:35,270 --> 00:07:39,190 herinneren, zoals we stap voor stap door lijnen een, en twee en drie en twee 162 00:07:39,190 --> 00:07:41,000 en drie en gedaan - 163 00:07:41,000 --> 00:07:44,870 het einde van dat algoritme, we inderdaad telde de twee kerels die zijn 164 00:07:44,870 --> 00:07:45,360 in de kamer. 165 00:07:45,360 --> 00:07:47,190 >> Dus toen probeerden we een ander voorbeeld. 166 00:07:47,190 --> 00:07:48,990 En we zeiden wat als er nul mensen in de kamer? 167 00:07:48,990 --> 00:07:50,490 Is deze code nog correct? 168 00:07:50,490 --> 00:07:51,305 En inderdaad het was. 169 00:07:51,305 --> 00:07:55,240 Het toeval wil dat lijn twee en dus regel drie of 170 00:07:55,240 --> 00:07:56,620 niet van plan uit te voeren. 171 00:07:56,620 --> 00:07:59,790 Ze gaan niet helemaal gebeuren want ze zijn gewoon niet van toepassing indien 172 00:07:59,790 --> 00:08:01,210 er is nul mensen in de kamer. 173 00:08:01,210 --> 00:08:02,300 >> Maar geen big deal. 174 00:08:02,300 --> 00:08:06,620 Lijn een N geïnitialiseerd op nul, zodat hoewel slechts een regel van deze 175 00:08:06,620 --> 00:08:10,930 programma daadwerkelijk eindigt nuttig, het levert nog steeds het juiste antwoord, zoals 176 00:08:10,930 --> 00:08:13,780 aangegeven door de oranje nul onderaan. 177 00:08:13,780 --> 00:08:16,300 Maar toen besloten we dat was soort van een domme algoritme. 178 00:08:16,300 --> 00:08:17,060 Het was vrij traag. 179 00:08:17,060 --> 00:08:19,720 Zeker, kan ik twee, vier, zes, acht, tien, bij 180 00:08:19,720 --> 00:08:20,990 het tellen van personen in een kamer. 181 00:08:20,990 --> 00:08:25,030 >> Dus we getweaked het algoritme, de pseudocode, om te zeggen, nu in de rij twee, 182 00:08:25,030 --> 00:08:29,710 voor elk paar mensen in de kamer, overgaan tot, in lijn drie, increment 183 00:08:29,710 --> 00:08:32,200 door twee op elke iteratie. 184 00:08:32,200 --> 00:08:35,530 Dus dat zou hier hebben gewerkt voor dit paar personen in de kamer. 185 00:08:35,530 --> 00:08:38,530 >> Maar dan, als je begint te denken over Dit, en het duurt niet lang te duren 186 00:08:38,530 --> 00:08:40,710 realiseren, wacht een minuut is dit gaat breken, het breekt 187 00:08:40,710 --> 00:08:42,679 naar wat eenvoudige zaak? 188 00:08:42,679 --> 00:08:45,500 Als er drie mensen in de kamer of, meer in het algemeen, als er een 189 00:08:45,500 --> 00:08:47,660 oneven aantal mensen in de kamer, inclusief een. 190 00:08:47,660 --> 00:08:50,390 We zouden die persoon hier missen omdat zijn er geen dergelijke paren. 191 00:08:50,390 --> 00:08:58,510 Zodat we snel aangepakt door in plaats invoering welke aanvullende 192 00:08:58,510 --> 00:09:02,560 programmeerconstructies aan de pseudo-code. 193 00:09:02,560 --> 00:09:04,955 >> Dus een voorwaarde, we noemden het, of een tak. 194 00:09:04,955 --> 00:09:08,420 En het is bedoeld om te brengen, visueel, de idee van tak, een splitsing in de weg 195 00:09:08,420 --> 00:09:11,080 waar je ofwel dit kunt doen of, misschien, iets anders. 196 00:09:11,080 --> 00:09:15,750 En inderdaad, pakken we dit probleem op door het toevoegen van lijn 4, door te zeggen, echt, op 197 00:09:15,750 --> 00:09:20,820 het einde, als een persoon blijft, dan ga je gang en tel ze speciaal. 198 00:09:20,820 --> 00:09:24,460 Zodat u sorteren van speciaal geval hen, dus te spreken, zodat nu kunnen we omgaan 199 00:09:24,460 --> 00:09:27,810 beide een even aantal personen en een oneven aantal personen. 200 00:09:27,810 --> 00:09:30,260 >> Nu zijn er een aantal manieren We konden dit hebben geuit. 201 00:09:30,260 --> 00:09:33,590 En eerlijk gezegd, ik kon heb zelfs meer geweest Nit kieskeurig als het ging om mijn keuze van 202 00:09:33,590 --> 00:09:35,040 Engels voor de pseudocode. 203 00:09:35,040 --> 00:09:36,970 Maar in ieder geval de geest van het idee wordt overgebracht. 204 00:09:36,970 --> 00:09:40,725 Als u deze code overhandigd aan een vriend wie niet in CS, of heeft nooit genomen 205 00:09:40,725 --> 00:09:44,560 CS, kansen zijn ze konden achterhalen, gegeven drie mensen in de kamer, hoe 206 00:09:44,560 --> 00:09:46,870 tellen die mensen op basis van deze instructies. 207 00:09:46,870 --> 00:09:49,920 En dat is alles wat we echt willen bereiken met pseudocode, een of andere manier 208 00:09:49,920 --> 00:09:54,300 standaardiseren hoe we gaan over vertegenwoordigen ideeën zodat we kunnen 209 00:09:54,300 --> 00:09:56,670 beginnen te ingewikkelder doen ding nog. 210 00:09:56,670 --> 00:09:58,845 >> Zodat wij vervolgens leidt, vandaag, tot daadwerkelijke code. 211 00:09:58,845 --> 00:10:01,950 We gaan nu programmeren, hoewel in een vriendelijke omgeving. 212 00:10:01,950 --> 00:10:05,940 En toen we de overgang heel snel naar een geheimzinnige syntax, maar wel een die 213 00:10:05,940 --> 00:10:10,340 zie je in wezen hetzelfde is als de ideeën zullen zien gemanifesteerd met 214 00:10:10,340 --> 00:10:11,990 deze andere taal van vandaag. 215 00:10:11,990 --> 00:10:13,920 Het gaat gewoon om naar te kijken een beetje anders. 216 00:10:13,920 --> 00:10:16,590 >> Dus in plaats van alleen noemen deze code, ben ik gaat een beetje preciezer 217 00:10:16,590 --> 00:10:20,170 en zeggen, voortaan, bij het schrijven van een programma, bent u het schrijven van de broncode. 218 00:10:20,170 --> 00:10:21,990 Het is net zoiets als pseudocode. 219 00:10:21,990 --> 00:10:26,540 Maar we zullen zien dat het niet soort van losse als het gaat om het kiezen van de woorden 220 00:10:26,540 --> 00:10:27,310 die u gebruikt. 221 00:10:27,310 --> 00:10:31,300 Bij het programmeren in een taal, je hebt de woorden, de uitdrukkingen, gebruikt 222 00:10:31,300 --> 00:10:36,020 de syntaxis, dat andere mensen hebben besloten vertegenwoordigen 223 00:10:36,020 --> 00:10:37,240 dat bepaalde taal. 224 00:10:37,240 --> 00:10:38,510 Dus pseudocodes is aan jou. 225 00:10:38,510 --> 00:10:42,330 Een echte programmeertaal zoals C, zoals we uiteindelijk zullen zien, is 226 00:10:42,330 --> 00:10:43,590 gestandaardiseerd door andere mensen. 227 00:10:43,590 --> 00:10:45,590 >> Dus hoe kunnen we gaan over het schrijven sommige source code? 228 00:10:45,590 --> 00:10:46,810 Nou ik ga om te gaan gang en dit te doen. 229 00:10:46,810 --> 00:10:49,100 Ik ga om te gaan en opent een venster hier. 230 00:10:49,100 --> 00:10:50,210 Meer over dit volgende week. 231 00:10:50,210 --> 00:10:52,300 Maar dit is een apparaat met de naam de CS50 apparaat. 232 00:10:52,300 --> 00:10:55,480 Ik loop een stukje software op mijn Mac, maar je kunt hetzelfde doen 233 00:10:55,480 --> 00:11:00,580 op een Windows-computer, dat is het geven me de illusie met een ander 234 00:11:00,580 --> 00:11:03,700 besturingssysteem helemaal rechts hier in een venster op mijn Mac. 235 00:11:03,700 --> 00:11:06,790 Ik heb gewoon vol afgeschermd zodat je niet eigenlijk zie Mac OS nu. 236 00:11:06,790 --> 00:11:08,340 >> Dit is een besturingssysteem genaamd Linux. 237 00:11:08,340 --> 00:11:09,300 Het is erg populair. 238 00:11:09,300 --> 00:11:10,120 Het is heel snel. 239 00:11:10,120 --> 00:11:12,950 Het is heel vrij, waardoor het erg heeft gemaakt dwingende, vooral in de 240 00:11:12,950 --> 00:11:13,970 commerciële wereld. 241 00:11:13,970 --> 00:11:17,200 En meer op dat tegen het einde van de semester wanneer we gebruik Linux nogal wat 242 00:11:17,200 --> 00:11:21,230 voor web programmeren en hosten van feitelijke websites en projecten. 243 00:11:21,230 --> 00:11:24,910 Dus nu, weet gewoon dat dit een desktop dat is bedoeld om een ​​idee te kijken 244 00:11:24,910 --> 00:11:26,750 bekend bij Windows en Mac OS. 245 00:11:26,750 --> 00:11:29,110 Het heeft slechts enkele verschillende namen en pictogrammen voor dingen. 246 00:11:29,110 --> 00:11:32,510 Dit is de zogenaamde CS50 apparaat, een virtuele machine die, 247 00:11:32,510 --> 00:11:35,310 vanaf volgende week, jullie zullen draaien binnen van een venster op 248 00:11:35,310 --> 00:11:36,960 je eigen Mac of pc. 249 00:11:36,960 --> 00:11:39,760 >> Voor vandaag, ga ik open de eenvoudigste programma. 250 00:11:39,760 --> 00:11:41,110 Het gedit heet. 251 00:11:41,110 --> 00:11:42,565 En dit is slechts een grafische editor. 252 00:11:42,565 --> 00:11:44,695 Het is net zoiets als Microsoft Woord, maar eenvoudiger. 253 00:11:44,695 --> 00:11:47,110 Het is een beetje zoals tekst bewerken of notepad. 254 00:11:47,110 --> 00:11:50,280 Het is gewoon een heel eenvoudig programma met die om woorden op het scherm schrijven. 255 00:11:50,280 --> 00:11:54,510 Het is gewoon zo gebeurt dat als ik redden bestanden die ik maak wanneer dit programma 256 00:11:54,510 --> 00:11:59,860 in een speciale extensie zoals. c, in plaats van. doc of. xls, of wat dan ook 257 00:11:59,860 --> 00:12:04,190 je bekend bent met, ik kan eigenlijk programma's maken gebruik van zelfs dit eenvoudige 258 00:12:04,190 --> 00:12:05,130 teksteditor. 259 00:12:05,130 --> 00:12:05,770 >> Dus laat ik dat doen. 260 00:12:05,770 --> 00:12:09,330 Laat me ga je gang en sla deze bestand eerst als hello.c. 261 00:12:09,330 --> 00:12:12,350 En nogmaals, dit user interface zal worden snel bekend voorkomen. 262 00:12:12,350 --> 00:12:14,160 Maar voor nu, ik ben gewoon te typen in een bestandsnaam. 263 00:12:14,160 --> 00:12:17,410 Ik ga het redden in mijn John Harvard home directory. 264 00:12:17,410 --> 00:12:20,810 En nu heb ik dit tabblad dat aangeeft Ik ben inderdaad bewerken 265 00:12:20,810 --> 00:12:23,070 een bestand met de naam hello.c. 266 00:12:23,070 --> 00:12:24,510 Dus nog niets te interessant. 267 00:12:24,510 --> 00:12:26,000 >> En nu het gaat om behoorlijk cryptisch. 268 00:12:26,000 --> 00:12:28,370 Ik ga om in te zoomen, net dus het is beter zichtbaar. 269 00:12:28,370 --> 00:12:35,780 En ik ga om te beginnen te typen omvatten stdio.h, int main, leegte, geopend krullend 270 00:12:35,780 --> 00:12:40,140 brace, een, twee, drie, vier ruimtes van inspringen, print f, voor print 271 00:12:40,140 --> 00:12:44,450 iets geformatteerde, citaat unquote, "Hello, world" backslash, n, dicht 272 00:12:44,450 --> 00:12:49,640 citaat, gesloten haakjes, puntkomma, voer backspace, backspace, backspace, 273 00:12:49,640 --> 00:12:52,310 backspace, gesloten accolade - 274 00:12:52,310 --> 00:12:53,350 Ik heb geprogrammeerd. 275 00:12:53,350 --> 00:12:57,380 >> Oke dus dit is een super eenvoudige programma, echt, het programma dat 276 00:12:57,380 --> 00:12:59,070 iedereen begint met programmeren. 277 00:12:59,070 --> 00:13:02,300 En alles wat het doet, voor al zijn complexiteit, wordt afgedrukt op de 278 00:13:02,300 --> 00:13:04,160 scherm, wat denk je? 279 00:13:04,160 --> 00:13:04,910 Hello world. 280 00:13:04,910 --> 00:13:07,500 Maar het is niet voldoende alleen een programma te schrijven. 281 00:13:07,500 --> 00:13:08,155 Dus dit is code. 282 00:13:08,155 --> 00:13:11,300 Dit broncode een taal genaamd c. 283 00:13:11,300 --> 00:13:14,380 Het is momenteel opgeslagen in een bestand met de naam hello.c. 284 00:13:14,380 --> 00:13:16,180 >> Kijk nu naar de bodem van het scherm hier. 285 00:13:16,180 --> 00:13:17,890 Meer over dit, opnieuw, in de komende weken. 286 00:13:17,890 --> 00:13:19,570 Maar dit is wat we noemen een terminal venster. 287 00:13:19,570 --> 00:13:21,290 Het is een knipperende, zwart en witte prompt. 288 00:13:21,290 --> 00:13:24,390 Het is een soort van een oude school interface naar een computer die in het algemeen niet 289 00:13:24,390 --> 00:13:27,050 met een muis of ander grafische elementen. 290 00:13:27,050 --> 00:13:28,320 Het gebruikt gewoon je toetsenbord. 291 00:13:28,320 --> 00:13:30,970 En ik kan opdrachten typt in Deze knipperende prompt. 292 00:13:30,970 --> 00:13:33,820 >> En voor de hedendaagse doeleinden, ik ben gewoon gaan naar de volgende typen - 293 00:13:33,820 --> 00:13:35,610 maken hello. 294 00:13:35,610 --> 00:13:39,370 En dat programma maken, is gewoon een programma dat in de echte wereld deze 295 00:13:39,370 --> 00:13:40,690 dagen, zouden we dubbel op. 296 00:13:40,690 --> 00:13:44,580 Maar in deze interface voor vandaag, we zijn gaat zijn naam te typen in deze prompt. 297 00:13:44,580 --> 00:13:47,980 maken hello is letterlijk gaat maak mij een programma genaamd hallo. 298 00:13:47,980 --> 00:13:51,360 En het gaat om dit te doen door te kijken voor een bestand, net door 299 00:13:51,360 --> 00:13:53,460 standaard, genaamd hello.c. 300 00:13:53,460 --> 00:13:57,260 Het gaat ervan uit Ik wil een C-programma door de aard van hoe deze computer 301 00:13:57,260 --> 00:13:58,230 geconfigureerd. 302 00:13:58,230 --> 00:13:59,550 >> Dus ik ga je gang en druk op enter. 303 00:13:59,550 --> 00:14:02,050 Ik zie een aantal cryptische uitgang, maar dit zal maar al te worden 304 00:14:02,050 --> 00:14:03,330 vertrouwde het duurde niet lang. 305 00:14:03,330 --> 00:14:06,870 Dit gebeurde op een compiler, meer draaien op dat in een moment, genaamd Clang. 306 00:14:06,870 --> 00:14:09,080 Maar nu, ik heb gewoon een andere knipperende prompt. 307 00:14:09,080 --> 00:14:13,060 En ik kan je gang nu gaan en typ stip slash, voor oninteressante redenen zullen we 308 00:14:13,060 --> 00:14:14,730 terug te komen volgende week - 309 00:14:14,730 --> 00:14:15,910 hallo. 310 00:14:15,910 --> 00:14:19,650 >> Dus al deze inspanningen tot nu toe alleen maar om schrijf de eenvoudigste programma's, 311 00:14:19,650 --> 00:14:22,640 zodra ik druk op Enter, doet dat. 312 00:14:22,640 --> 00:14:24,510 Dus ik heb mijn eerste programma geschreven. 313 00:14:24,510 --> 00:14:27,500 Dus ik ben bewust spot in dit zeer eenvoudige 314 00:14:27,500 --> 00:14:28,540 voor een paar redenen. 315 00:14:28,540 --> 00:14:31,990 Een, het is moeilijk om enthousiast te krijgen over het nemen van een klasse als 316 00:14:31,990 --> 00:14:33,430 dit is het einde spel. 317 00:14:33,430 --> 00:14:37,100 >> Maar meer dan dat, is er een Veel afleiding hier. 318 00:14:37,100 --> 00:14:40,640 De eerste keer dat je leert om te programmeren, voor die van u minder comfortabel, en 319 00:14:40,640 --> 00:14:43,410 zelfs ik, terug in de dag, toen ik voor het eerst zag iets als dit - je kan soort 320 00:14:43,410 --> 00:14:46,500 van cijfer dat, oke, dit is in een print hello wereld. 321 00:14:46,500 --> 00:14:47,860 Maar er is zo veel afleiding. 322 00:14:47,860 --> 00:14:52,110 Er is zoveel syntax op het scherm dat het in de weg van de zeer 323 00:14:52,110 --> 00:14:54,170 eenvoudige, anders simpel, ideeën. 324 00:14:54,170 --> 00:14:56,700 >> Dus wat we gaan doen vandaag is dat we ga opzij zetten C en komen 325 00:14:56,700 --> 00:14:57,630 terug naar die op maandag. 326 00:14:57,630 --> 00:15:00,860 En we gaan een grafische gebruiken programmeertaal Scratch. 327 00:15:00,860 --> 00:15:04,470 Dit is een programmeertaal, die ik gezinspeeld op woensdag, dat gaat 328 00:15:04,470 --> 00:15:08,870 om ons in staat om dezelfde soort dingen doen maar oogluikend, voor vandaag, 329 00:15:08,870 --> 00:15:12,270 aan de accolades, de haakjes, de puntkomma's, en al deze domme 330 00:15:12,270 --> 00:15:15,680 afleidingen die in de weg te krijgen, in deze eerste dag, van een aantal fundamentele, mooie 331 00:15:15,680 --> 00:15:17,230 interessante ideeën. 332 00:15:17,230 --> 00:15:21,350 >> Zodat de richting van dat doel, ga ik om te gaan terug naar mijn bureaublad dan hier en 333 00:15:21,350 --> 00:15:25,890 u kennismaken met het alternatief voor dat programma, dat gaat een kijken 334 00:15:25,890 --> 00:15:30,790 iets licht dit. 335 00:15:30,790 --> 00:15:33,930 Dat is hoe we gaan implementeren die hetzelfde programma vandaag - twee puzzel 336 00:15:33,930 --> 00:15:37,710 stukken die, wanneer vergrendeld en geklikt, zal zeggen tegen de wereld, 337 00:15:37,710 --> 00:15:39,000 hello wereld. 338 00:15:39,000 --> 00:15:41,200 >> Dus laten we daar ook daadwerkelijk te gaan. 339 00:15:41,200 --> 00:15:44,965 Dus ik ga vooruit te gaan en open een website bekend als scratch.mit.edu. 340 00:15:44,965 --> 00:15:47,980 341 00:15:47,980 --> 00:15:52,040 En dit zal mij leiden deze website hier. 342 00:15:52,040 --> 00:15:54,660 Van tevoren, ik heb aangemeld bij dit website en de eerste problemen die 343 00:15:54,660 --> 00:15:55,910 zal u door een aantal van deze stappen. 344 00:15:55,910 --> 00:15:58,930 Ik ga om te gaan en klik op mijn map scratch hier. 345 00:15:58,930 --> 00:16:00,720 >> En dit gaat me te tonen sommige projecten die ik heb 346 00:16:00,720 --> 00:16:02,570 eigenlijk gemaakt op voorhand. 347 00:16:02,570 --> 00:16:05,860 En het blijkt dat deze grafische programmeertaal niet alleen gaat 348 00:16:05,860 --> 00:16:08,480 om ons te laten programmeren door te slepen en vallen deze puzzelstukjes, je 349 00:16:08,480 --> 00:16:09,730 niet zelfs speciale software nodig. 350 00:16:09,730 --> 00:16:13,190 Het is allemaal ingebed in een browser, zodat dat u dit kunt doen, in theorie, op 351 00:16:13,190 --> 00:16:16,810 nu uw computers, zoals sommigen van jullie kan goed zijn, zonder dat het nodig is 352 00:16:16,810 --> 00:16:19,870 software zoals de CS50 apparaat, die volgende week zal komen. 353 00:16:19,870 --> 00:16:24,200 >> Dus ik ga om omhoog te gaan naar de bovenhoek hier en klik op Maken. 354 00:16:24,200 --> 00:16:27,840 En in een moment ga ik een blanco krijgen scherm via welke ik kan beginnen 355 00:16:27,840 --> 00:16:30,380 programmering in deze grafische programmeeromgeving. 356 00:16:30,380 --> 00:16:36,140 Maar deze keer, het gaat veel te zijn, veel eenvoudiger om ook daadwerkelijk te doen. 357 00:16:36,140 --> 00:16:41,560 Dus in slechts een moment, wanneer de Wi-Fi samenwerkt, hebben we nu dit scherm. 358 00:16:41,560 --> 00:16:44,870 Dus een snelle verbale tour, maar ik durf te zeggen, zeker als je een duik in de 359 00:16:44,870 --> 00:16:46,840 eerste probleem set, zul je vinden dit allemaal heel 360 00:16:46,840 --> 00:16:48,315 toegankelijk en vrij intuïtief. 361 00:16:48,315 --> 00:16:50,900 Maar laten we schilderen een mentaal beeld voor slechts een moment. 362 00:16:50,900 --> 00:16:54,620 >> Dus onder deze prompt zeggen opslaan verandert, je gaat kras te zien. 363 00:16:54,620 --> 00:16:55,570 Dit is een sprite. 364 00:16:55,570 --> 00:16:56,630 Het is een teken. 365 00:16:56,630 --> 00:17:00,740 En hij woont op wat we een podium zullen noemen, Deze grote witte rechthoek op 366 00:17:00,740 --> 00:17:03,120 die hij kan bewegen, omlaag, links, rechts, en te doen, echt, 367 00:17:03,120 --> 00:17:04,670 andere soorten acties. 368 00:17:04,670 --> 00:17:08,780 >> Ondertussen, in het midden van deze gebruiker -interface, hebben we een hele hoop 369 00:17:08,780 --> 00:17:09,750 puzzelstukjes. 370 00:17:09,750 --> 00:17:14,060 En je zult zien dat ze dingen zeggen als: bewegen 10 stappen, draaide 15 graden, 371 00:17:14,060 --> 00:17:15,550 punt in een bepaalde richting. 372 00:17:15,550 --> 00:17:17,910 Maar er is categorieën blokken ook hier. 373 00:17:17,910 --> 00:17:21,410 Dus als ik naar Looks, zult u zien dat er andere puzzelstukjes die 374 00:17:21,410 --> 00:17:25,530 blijkbaar zal dit cit vertellen aan gedag zeggen, om te denken, om te laten zien 375 00:17:25,530 --> 00:17:26,780 zelf, verstopt zich. 376 00:17:26,780 --> 00:17:30,830 Als ik naar beneden om Sounds, het blijkt er manieren om zoals dat te horen miauwen, 377 00:17:30,830 --> 00:17:32,670 om alle geluiden te stoppen, om een ​​trommel te spelen. 378 00:17:32,670 --> 00:17:36,530 >> Dus, lang verhaal kort, er is een hele stelletje puzzelstukken die u toelaten 379 00:17:36,530 --> 00:17:40,920 voor deze kat, of een aantal van vertellen andere personages, wat te doen. 380 00:17:40,920 --> 00:17:43,850 Maar om dit allemaal gebeuren u nodig hebt om te beginnen met programmeren. 381 00:17:43,850 --> 00:17:48,090 En deze grote witte doos, of grijze doos, op de rechterkant, dit is waar 382 00:17:48,090 --> 00:17:50,170 Ik ga eigenlijk slepen en neerzetten die puzzelstukjes. 383 00:17:50,170 --> 00:17:54,320 Dat is mijn lege tekst venster equivalent. 384 00:17:54,320 --> 00:17:57,070 >> Dus ik ga om verder te gaan en klik Controle in het midden. 385 00:17:57,070 --> 00:17:58,540 Of liever gezegd, laat ik beginnen up onder Events. 386 00:17:58,540 --> 00:18:01,530 Onder Evenementen bankje, zult u merken een paar dingen die doelbewust zijn 387 00:18:01,530 --> 00:18:05,240 gebogen bovenop zodanig dat ze waarschijnlijk niet in elkaar grijpen op de 388 00:18:05,240 --> 00:18:06,710 bovenkant van de puzzelstukjes. 389 00:18:06,710 --> 00:18:10,160 En dat is omdat ze bakenen de start van een programma, de start van een 390 00:18:10,160 --> 00:18:11,910 script, zo te zeggen. 391 00:18:11,910 --> 00:18:16,290 Dus als ik ga je gang en slepen, wanneer groen vlag geklikt dan hier, en toen ik 392 00:18:16,290 --> 00:18:18,060 wil deze kat zeggen iets wat op het eerste. 393 00:18:18,060 --> 00:18:20,510 Dus ik ga ten onder te gaan het ziet er panel. 394 00:18:20,510 --> 00:18:24,060 En ik ga je gang gaan en pak de zeg hallo blok, en slepen en neerzetten, 395 00:18:24,060 --> 00:18:27,220 en los te laten, zodat het automatisch vergrendelt daar. 396 00:18:27,220 --> 00:18:28,640 >> En dan merk ik kan Klik op de tekst. 397 00:18:28,640 --> 00:18:31,960 En ik kan overschrijven om meer te zijn specifiek willen, zeg, hello wereld. 398 00:18:31,960 --> 00:18:36,340 En nu hebben we het programma dat ik beweren is gelijk aan dat veel 399 00:18:36,340 --> 00:18:39,670 geheimzinnige programma I geïmplementeerd in C een moment geleden. 400 00:18:39,670 --> 00:18:43,130 >> Als ik ga nu over naar de linkerkant, merkt dat er een grote stopbord 401 00:18:43,130 --> 00:18:44,520 en een grote groene vlag. 402 00:18:44,520 --> 00:18:46,390 Laat mij in te zoomen voor de duidelijkheid. 403 00:18:46,390 --> 00:18:49,390 En als ik nu op deze groene vlag, U kunt waarschijnlijk wel raden wat dit eerste 404 00:18:49,390 --> 00:18:51,920 programma wordt nu gaat doen. 405 00:18:51,920 --> 00:18:55,420 Dus ook daar, we programmeren, maar we zijn eigenlijk niet te verzanden 406 00:18:55,420 --> 00:18:58,980 In sommige van deze syntactische minute details. 407 00:18:58,980 --> 00:19:01,120 >> Maar laten we proberen iets een iets interessanter. 408 00:19:01,120 --> 00:19:04,840 Laat me gaan in mijn map Scratch hier. 409 00:19:04,840 --> 00:19:10,210 En eigenlijk, laat me dus laat me open te stellen een apart programma hier voor slechts een 410 00:19:10,210 --> 00:19:17,830 Momenteel Maximaliseren dit venster, Bestand Openen, en ik ga om te gaan in de huidige 411 00:19:17,830 --> 00:19:18,620 bron directory. 412 00:19:18,620 --> 00:19:21,660 Zoals altijd, vindt u, vandaag en verder, dat alle voorbeelden vandaag 413 00:19:21,660 --> 00:19:25,225 toegankelijk binnenin website van de cursus. 414 00:19:25,225 --> 00:19:31,170 >> En ik ga hier verder te gaan en kies up een beetje iets anders. 415 00:19:31,170 --> 00:19:33,970 Deze hier, waar Ik heb een vrijwilliger nodig. 416 00:19:33,970 --> 00:19:36,850 Die graag een bureaulamp vandaag? 417 00:19:36,850 --> 00:19:40,600 OK, wat dacht je van iemand een beetje - bent u op het einde? 418 00:19:40,600 --> 00:19:42,124 Kom naar beneden. 419 00:19:42,124 --> 00:19:47,230 Nu, zou je willen deelnemen, of gewoon zeggen beginnen met de bureaulamp? 420 00:19:47,230 --> 00:19:48,190 >> VANESSA: [onverstaanbaar]. 421 00:19:48,190 --> 00:19:48,465 >> DAVID Malan: OK. 422 00:19:48,465 --> 00:19:49,610 Uitstekend, wat is je naam? 423 00:19:49,610 --> 00:19:49,990 Vanessa? 424 00:19:49,990 --> 00:19:50,570 David. 425 00:19:50,570 --> 00:19:51,390 Leuk u te ontmoeten. 426 00:19:51,390 --> 00:19:53,840 Dus kom op en Vanessa's gaan om de controle over mijn rekening 427 00:19:53,840 --> 00:19:55,490 toetsenbord voor slechts een moment. 428 00:19:55,490 --> 00:19:57,850 En wat ik hier heb gedaan, gewoon voor de tijd van sake, zoals ik heb realiseerde de 429 00:19:57,850 --> 00:20:01,070 Wi-Fi was een beetje traag, Scratch, de programmering omgeving die we 430 00:20:01,070 --> 00:20:04,110 gebruik, kunnen ook worden gedownload en draaien op uw lokale computer. 431 00:20:04,110 --> 00:20:06,360 Dus wat ik deed op voorhand van de lezing, in geval dat gebeurt, is dat ik gedownload 432 00:20:06,360 --> 00:20:09,120 alle bestanden die we op het punt om mee te spelen zodat ze een beetje meer kan draaien 433 00:20:09,120 --> 00:20:10,840 snel hier op mijn laptop. 434 00:20:10,840 --> 00:20:13,460 Dus dat is waarom nu ik zie een Mac-specifieke interface. 435 00:20:13,460 --> 00:20:15,510 >> Dus ik ga om verder te gaan en open deze. 436 00:20:15,510 --> 00:20:18,400 Ik ga om te gaan nu en volledig scherm het venster. 437 00:20:18,400 --> 00:20:21,740 En zoals u zult zien, kunnen we heel snel, aangezien dit student heeft een van 438 00:20:21,740 --> 00:20:26,360 uw voorgangers, gaan van hello wereld een veel veel meer dwingende 439 00:20:26,360 --> 00:20:27,020 toepassing. 440 00:20:27,020 --> 00:20:28,180 Dus hier zijn de instructies. 441 00:20:28,180 --> 00:20:29,500 Oh, en we hebben een ander ding. 442 00:20:29,500 --> 00:20:31,640 Ik dacht dat het leuk zou zijn, omdat, normaal, zullen we filmen 443 00:20:31,640 --> 00:20:32,440 camera's op deze manier. 444 00:20:32,440 --> 00:20:34,100 Ik dacht dat het leuk als, Vanessa, zou zijn konden we de wereld zien 445 00:20:34,100 --> 00:20:35,120 door jouw ogen. 446 00:20:35,120 --> 00:20:36,670 Dus hier hebben we een aantal Google Glass. 447 00:20:36,670 --> 00:20:39,290 >> [VERBAASD hapt] 448 00:20:39,290 --> 00:20:41,610 >> DAVID Malan: Wij zullen alleen geven weg bureaulampen vandaag. 449 00:20:41,610 --> 00:20:43,530 >> [Lachen] 450 00:20:43,530 --> 00:20:45,260 >> Dus laat me cue deze omhoog. 451 00:20:45,260 --> 00:20:49,340 Oke, dus raak deze. 452 00:20:49,340 --> 00:20:51,910 OK, Glas, een video opnemen. 453 00:20:51,910 --> 00:20:55,700 454 00:20:55,700 --> 00:20:56,950 Oke, Vanessa? 455 00:20:56,950 --> 00:21:00,940 456 00:21:00,940 --> 00:21:05,560 Nu, als een terzijde, dat heeft niets te maken met Scratch, als je kijkt 457 00:21:05,560 --> 00:21:08,540 iets omhoog en naar rechts, zie je de letterlijke glas, en je moet 458 00:21:08,540 --> 00:21:09,650 zie een klein rechthoekig venster. 459 00:21:09,650 --> 00:21:11,500 Je moet al je klasgenoten te zien die nu worden gefilmd? 460 00:21:11,500 --> 00:21:11,840 Ja. 461 00:21:11,840 --> 00:21:12,340 >> VANESSA: Ja. 462 00:21:12,340 --> 00:21:12,920 >> DAVID Malan: OK. 463 00:21:12,920 --> 00:21:15,170 Dus dat is prima. 464 00:21:15,170 --> 00:21:16,660 We zullen deze beelden later vrij te geven. 465 00:21:16,660 --> 00:21:18,460 Voor nu, richt je aandacht naar het scherm hier. 466 00:21:18,460 --> 00:21:20,990 En wat uw voorganger heeft gedaan is zet een aantal instructies op het scherm 467 00:21:20,990 --> 00:21:22,670 gewoon met behulp van een tekenprogramma. 468 00:21:22,670 --> 00:21:25,040 Dus je gaat, in een ogenblik, druk op de spatiebalk om te beginnen. 469 00:21:25,040 --> 00:21:27,790 En dan nog wat puzzelstukjes gaan te beginnen met bewegen op het scherm. 470 00:21:27,790 --> 00:21:30,900 En u wilt de pijltoetsen te raken, net als in het echte DDR, in overeenstemming 471 00:21:30,900 --> 00:21:32,740 met dingen rij met de pijlen. 472 00:21:32,740 --> 00:21:33,020 >> VANESSA: OK. 473 00:21:33,020 --> 00:21:33,800 >> DAVID Malan: Je speelt dit al eerder. 474 00:21:33,800 --> 00:21:34,140 >> VANESSA: Yeah. 475 00:21:34,140 --> 00:21:37,330 >> DAVID Malan: Oke, Vanessa, ga je gang en neem het weg. 476 00:21:37,330 --> 00:22:53,082 >> [MUZIEK - KAYNE WEST, "STERKER"] 477 00:22:53,082 --> 00:22:57,080 >> [Applaus] 478 00:22:57,080 --> 00:22:59,750 >> DAVID Malan: Dus laten we nu neem een ​​stap van dat. 479 00:22:59,750 --> 00:23:01,230 Zo duidelijk, dat is het einde spel. 480 00:23:01,230 --> 00:23:02,880 Het eindspel is niet hello wereld. 481 00:23:02,880 --> 00:23:05,520 Maar je hoeft niet per se te doen dingen die zo interactief. 482 00:23:05,520 --> 00:23:06,810 U kunt ook animatie. 483 00:23:06,810 --> 00:23:10,790 Dus bijvoorbeeld een van je opvolgers maakte het programma hier, 484 00:23:10,790 --> 00:23:14,100 die een verhaal meer dan vertelt het maakt een spel geïmplementeerd. 485 00:23:14,100 --> 00:23:19,180 Dus laat me ga je gang en open hier een programma in onze dezelfde bron directory 486 00:23:19,180 --> 00:23:20,300 vanaf vandaag. 487 00:23:20,300 --> 00:23:26,990 Deze oproep, en laten we beginnen met, een cookie liefdesverhaal. 488 00:23:26,990 --> 00:23:30,750 >> En niet om dit te academisch te maken, maar, als u deze een kijken, denk aan 489 00:23:30,750 --> 00:23:34,030 zelf welke van deze eenvoudige programmering concepten die we hebben gesproken 490 00:23:34,030 --> 00:23:34,630 over tot nu toe - 491 00:23:34,630 --> 00:23:39,250 variabelen, en loops, en de voorwaarden, heeft uw voorganger waarschijnlijk gewoon gebruik 492 00:23:39,250 --> 00:23:41,090 om een ​​deel van de uitvoering de visualisaties. 493 00:23:41,090 --> 00:23:41,760 Je ziet hier. 494 00:23:41,760 --> 00:23:44,118 Dus ik geef je een koekje liefdesverhaal. 495 00:23:44,118 --> 00:24:06,030 >> [MUZIEK - GREEN DAY, "VAKANTIE"] 496 00:24:06,030 --> 00:24:08,022 >> [CRASH] 497 00:24:08,022 --> 00:24:09,272 >> [MUZIEK - The Turtles, "Happy Together"] 498 00:24:09,272 --> 00:24:58,328 499 00:24:58,328 --> 00:25:00,560 >> DAVID Malan: Oke, dus er, we hadden een cookie liefdesverhaal. 500 00:25:00,560 --> 00:25:01,360 Maar zelfs daar - 501 00:25:01,360 --> 00:25:01,755 >> [Applaus] 502 00:25:01,755 --> 00:25:08,110 >> DAVID Malan: Oke, ook daar, denken, als die harten gingen uit 503 00:25:08,110 --> 00:25:10,410 de bodem naar de bovenkant van het scherm, er was eigenlijk een beetje 504 00:25:10,410 --> 00:25:11,440 willekeur gaande. 505 00:25:11,440 --> 00:25:14,150 En inderdaad, we zien dat zelfs in de eenvoudigste van omgevingen, zoals 506 00:25:14,150 --> 00:25:18,180 Kras, zoals in C, kunt u genereren willekeurige getallen of de illusie van 507 00:25:18,180 --> 00:25:21,110 willekeurige getallen, zodat het spel is een wat interessanter dan het misschien 508 00:25:21,110 --> 00:25:23,390 zijn als je absoluut moest hard gecodeerd alles. 509 00:25:23,390 --> 00:25:26,360 >> In de beweging die je ziet, zijn er er is een soort van responsiviteit. 510 00:25:26,360 --> 00:25:28,840 Zodra de gingerbread man raakt de peperkoek vrouw, ze 511 00:25:28,840 --> 00:25:30,000 lijkt om af te stappen. 512 00:25:30,000 --> 00:25:33,580 En ja, inderdaad, u kunt implementeren, in de meeste programmeertalen, de notie 513 00:25:33,580 --> 00:25:38,680 van gebeurtenissen, waarbij als een hand raakt Anderzijds kan leiden dat sommige 514 00:25:38,680 --> 00:25:41,270 van de broncode daadwerkelijk uit te voeren. 515 00:25:41,270 --> 00:25:43,740 U kunt luisteren naar zulke dingen op het scherm. 516 00:25:43,740 --> 00:25:47,310 >> Dus laten we eens een korte rondleiding, dan, enkele van de bouwstenen kunnen we gebruiken 517 00:25:47,310 --> 00:25:48,790 om een ​​aantal van deze doelen te bereiken. 518 00:25:48,790 --> 00:25:51,630 Dus hier is wat we zullen voortaan bel een verklaring. 519 00:25:51,630 --> 00:25:55,030 Een verklaring gebeurt paars te zijn in Scratch, een beetje zoiets als dit, 520 00:25:55,030 --> 00:25:56,120 maar dat is arbitrair. 521 00:25:56,120 --> 00:26:00,140 Een verklaring is slechts een puzzelstukje of, meer in het algemeen een aanwijzing dat 522 00:26:00,140 --> 00:26:03,370 vertelt de computer te doen iets, een verklaring. 523 00:26:03,370 --> 00:26:04,680 >> Dus hier is een simpel voorbeeld. 524 00:26:04,680 --> 00:26:05,930 Zeg hallo wereld. 525 00:26:05,930 --> 00:26:08,180 Een ander zou worden wacht een seconde. 526 00:26:08,180 --> 00:26:10,840 Dus dit puzzelstukje, dat wordt ondersteund in Scratch, laten we je 527 00:26:10,840 --> 00:26:13,050 tekens pauzeren voor sommigen aantal seconden. 528 00:26:13,050 --> 00:26:15,330 Ook dit is gewoon een statement. 529 00:26:15,330 --> 00:26:18,640 >> Hier volgend, hebben we een ander meer interessant, spel geluid miauw, en 530 00:26:18,640 --> 00:26:21,480 de kleine pijl betekent dat in Scratch, Dit is een drop down menu. 531 00:26:21,480 --> 00:26:22,590 Dus je kunt geluiden importeren. 532 00:26:22,590 --> 00:26:25,095 U kunt geluiden op te nemen en doen andere leuke dingen in Scratch. 533 00:26:25,095 --> 00:26:28,450 En dat ook, hoewel, aan het eind van de dag, is gewoon een statement. 534 00:26:28,450 --> 00:26:31,250 Maar laten we nu introduceren een meer interessant stuk, dat bekend staat als een 535 00:26:31,250 --> 00:26:32,630 Booleaanse expressie. 536 00:26:32,630 --> 00:26:35,180 Hoofdletter B, vernoemd een collega met de naam Bool. 537 00:26:35,180 --> 00:26:39,500 >> En een Booleaanse uitdrukking is gewoon een puzzelstukje of, meer algemeen, een 538 00:26:39,500 --> 00:26:42,980 stukje informatie dat is waar of onwaar - 539 00:26:42,980 --> 00:26:45,830 een of nul, ja of nee. 540 00:26:45,830 --> 00:26:48,420 Dus het is gewoon een van die twee tegenpolen. 541 00:26:48,420 --> 00:26:52,840 Dus een dergelijke Booleaanse expressie in de wereld van Scratch ziet er zo blauw 542 00:26:52,840 --> 00:26:53,560 puzzelstukje. 543 00:26:53,560 --> 00:26:56,735 En het stellen van een vraag, muis beneden, en die ofwel van 544 00:26:56,735 --> 00:26:58,430 Natuurlijk, waar of onwaar. 545 00:26:58,430 --> 00:27:01,710 Dus met dit puzzelstukje in de Scratch, goed, zult u in staat om te detecteren of een 546 00:27:01,710 --> 00:27:05,490 puzzel als de muis, in feite, als door de menselijke interactie gehouden 547 00:27:05,490 --> 00:27:06,550 met uw programma. 548 00:27:06,550 --> 00:27:08,860 >> Deze is een beetje abstract, maar die twee witte dozen 549 00:27:08,860 --> 00:27:09,740 zijn alleen voor nummers. 550 00:27:09,740 --> 00:27:12,950 Dus je kunt dingen doen, zoals dit is getal kleiner dan de andere? 551 00:27:12,950 --> 00:27:16,180 En zo ja, zal Scratch gedragen een of andere manier. 552 00:27:16,180 --> 00:27:17,505 Deze is een beetje meer grafische. 553 00:27:17,505 --> 00:27:21,840 Het is als de sprite als de kat voor Zo is het aan te raken 554 00:27:21,840 --> 00:27:22,510 muisaanwijzer. 555 00:27:22,510 --> 00:27:25,780 Dus als de kleine pijl hoofd zweeft over de kat, dan is deze 556 00:27:25,780 --> 00:27:28,030 puzzelstukje zal beoordelen op true. 557 00:27:28,030 --> 00:27:31,870 Het zal waar zijn, in welk geval, als je Gebruik deze Boolean expressie, zoals we zullen 558 00:27:31,870 --> 00:27:36,340 zien in een moment, in een branche, kunt u ofwel doe dit, of je kan dat doen, 559 00:27:36,340 --> 00:27:39,940 veel als we hadden een aandoening die gecontroleerd, is er nog een laatste persoon 560 00:27:39,940 --> 00:27:40,460 in de kamer? 561 00:27:40,460 --> 00:27:42,070 Als dat zo is, voeg een. 562 00:27:42,070 --> 00:27:44,430 Anders, niet verder ongerust. 563 00:27:44,430 --> 00:27:48,650 >> Dus een Booleaanse expressie kan ook en-ed samen of-of-ed samen. 564 00:27:48,650 --> 00:27:53,120 Dus je kunt Booleaanse uitdrukkingen combineren en zeggen: dit en dit moet waar voor zijn 565 00:27:53,120 --> 00:27:54,710 de hele zaak om waar te zijn. 566 00:27:54,710 --> 00:27:56,520 En hier is een echte wereld bijvoorbeeld. 567 00:27:56,520 --> 00:28:00,060 Als u hebt gebruikt CS50 Cursussen om cursus te doen winkelen, deze selectievakjes 568 00:28:00,060 --> 00:28:03,520 daar, waar als je dat vakje naast om cursussen, die zullen zeggen: ja, 569 00:28:03,520 --> 00:28:07,860 maar toon mij cursussen waarvoor de Q-waarde 4,5 of hoger. 570 00:28:07,860 --> 00:28:10,610 Als u het vinkje, nee, niet doen zorgen over. 571 00:28:10,610 --> 00:28:13,910 Of een andere soortgelijke, aan de rechterkant, doet niet Conflict met cursussen Ik neem, 572 00:28:13,910 --> 00:28:15,650 dat is waar of onwaar. 573 00:28:15,650 --> 00:28:16,715 Het is gewoon een Booleaanse expressie. 574 00:28:16,715 --> 00:28:20,080 Dus al die tijd als je hebt gebruikt websites met selectievakjes, je bent gewoon 575 00:28:20,080 --> 00:28:23,570 wisselen het equivalent van een Booleaanse expressie aan en uit. 576 00:28:23,570 --> 00:28:25,270 >> Dus in welke vorm je deze gebruiken? 577 00:28:25,270 --> 00:28:28,820 Nou, in Scratch, zullen we zien in een ogenblik dat er omstandigheden die 578 00:28:28,820 --> 00:28:29,560 zo uitzien. 579 00:28:29,560 --> 00:28:33,130 En dat is een beetje verstandig, omdat veel zoals in pseudocode, we ingesprongen 580 00:28:33,130 --> 00:28:38,550 de soort U-vormige puzzelstukjes, bedoel dat alles binnen van genoemde U is 581 00:28:38,550 --> 00:28:41,390 gaat voeren, of niet, afhankelijk van waar het is. 582 00:28:41,390 --> 00:28:45,310 Dus als Booleaanse expressie, dan wat er binnen zal worden uitgevoerd,. 583 00:28:45,310 --> 00:28:46,800 >> Ondertussen is er een if / else-blok. 584 00:28:46,800 --> 00:28:50,320 Dus als je wilt een filiaal dat dit gaat of dat, geeft ons Scratch dat. 585 00:28:50,320 --> 00:28:54,500 En deze logica, nu, terwijl deze puzzelstukje is duidelijk te klein 586 00:28:54,500 --> 00:28:57,400 om iets anders te binnen van het wig, de scratch puzzelstukjes, ze zijn 587 00:28:57,400 --> 00:28:58,150 gewoon om te groeien. 588 00:28:58,150 --> 00:29:01,370 Wanneer u slepen en neerzetten over iets, het zal alleen maar groeien te passen ongeacht het 589 00:29:01,370 --> 00:29:02,510 wordt je probeert te doen. 590 00:29:02,510 --> 00:29:07,230 >> Zo kunnen we twee van deze dingen te nemen en maak een drieweg splitsing in de weg, zodat 591 00:29:07,230 --> 00:29:11,300 dat je dit doen, of dat, of dit andere ding gewoon door nesten te 592 00:29:11,300 --> 00:29:12,070 op die manier. 593 00:29:12,070 --> 00:29:14,370 Natuurlijk, als je dat ook doen veel, het begint te krijgen lelijk. 594 00:29:14,370 --> 00:29:17,660 Maar op dat moment, je bent eigenlijk waarschijnlijk niet het programmeren erg goed. 595 00:29:17,660 --> 00:29:20,490 En zodat terugkerend zal zijn thema, ook dat van de stijl. 596 00:29:20,490 --> 00:29:22,790 Hoe goed ken eigenlijk formaat van uw code? 597 00:29:22,790 --> 00:29:24,580 Of hoe goed kent u uw code te ontwerpen? 598 00:29:24,580 --> 00:29:26,430 Maar meer op dat in de toekomst. 599 00:29:26,430 --> 00:29:27,470 >> En nu hebben we loops. 600 00:29:27,470 --> 00:29:30,310 Er is een mooi eeuwig lus in Scratch wat letterlijk betekent dat - doen 601 00:29:30,310 --> 00:29:32,710 wat er binnen in dit weer, en opnieuw, en opnieuw. 602 00:29:32,710 --> 00:29:35,880 U kan meer concreet en zeggen: doet u het volgende ding 10 keer. 603 00:29:35,880 --> 00:29:37,620 U kunt ook gebruik maken van variabelen. 604 00:29:37,620 --> 00:29:40,260 U kunt komen met een willekeurige naam in die beetje naar beneden vallen en zeggen: geef mij een 605 00:29:40,260 --> 00:29:43,190 variabele genaamd n en stel het gelijk is aan een bepaalde waarde. 606 00:29:43,190 --> 00:29:44,910 En dan kun je functies hebben. 607 00:29:44,910 --> 00:29:46,850 Maar meer op die in slechts een moment. 608 00:29:46,850 --> 00:29:49,140 >> Laat me terug naar mijn Scratch-interface. 609 00:29:49,140 --> 00:29:50,970 En laat me deze keer ga je gang. 610 00:29:50,970 --> 00:29:56,660 En laten we verder gaan en open te stellen, laten we zeggen, een voorbeeld van - 611 00:29:56,660 --> 00:29:58,740 dat is een beetje meer interessant. 612 00:29:58,740 --> 00:30:00,750 Laat me ga je gang, en, eigenlijk, laat ik het gewoon mezelf. 613 00:30:00,750 --> 00:30:01,960 Ik heb geen behoefte om dit een te openen. 614 00:30:01,960 --> 00:30:03,390 Laat ik ga naar Bestand, Nieuw. 615 00:30:03,390 --> 00:30:04,740 Ik ga naar Events. 616 00:30:04,740 --> 00:30:08,460 Ik ga om te gaan als groene vlag geklikt, en ik ga naar Geluid. 617 00:30:08,460 --> 00:30:11,590 En ik ga dit slepen en neerzetten puzzelstukje, spelen geluid meow. 618 00:30:11,590 --> 00:30:12,580 Het hang samen. 619 00:30:12,580 --> 00:30:14,327 En nu, als ik klik op de groene vlag - 620 00:30:14,327 --> 00:30:16,260 >> [MIAUW SOUND] 621 00:30:16,260 --> 00:30:17,500 >> DAVID Malan: Adorable. 622 00:30:17,500 --> 00:30:21,560 OK, dus laten we nu iets doen logischer alleen maar aan te tonen dat 623 00:30:21,560 --> 00:30:22,760 we kunnen, voor nu. 624 00:30:22,760 --> 00:30:25,550 Ik ga om te ontgrendelen Dit uit die vent. 625 00:30:25,550 --> 00:30:27,000 Ik ga om te gaan naar Control. 626 00:30:27,000 --> 00:30:28,770 En ik ga een voorwaarde te grijpen. 627 00:30:28,770 --> 00:30:30,600 Dus als er iets dan. 628 00:30:30,600 --> 00:30:32,020 Dus dat is hoe het eruit ziet daar. 629 00:30:32,020 --> 00:30:33,890 Dus ik moet een Booleaanse expressie. 630 00:30:33,890 --> 00:30:38,130 En laat me gaan en zeggen: laat me gaan naar Operators. 631 00:30:38,130 --> 00:30:40,270 Ik ga een beetje iets te doen mathy, gewoon voor de kick. 632 00:30:40,270 --> 00:30:43,600 Ik ga hier in gaan en zeggen, indien iets minder is dan iets anders, 633 00:30:43,600 --> 00:30:45,030 ga je gang en doe iets. 634 00:30:45,030 --> 00:30:46,890 Dus nu weet je wat, een willekeurig blok. 635 00:30:46,890 --> 00:30:51,620 Dus merken hoe, als ik zweven over dit ding hier, dat zal breken daar. 636 00:30:51,620 --> 00:30:54,090 >> Dus nu, bericht, ik ben beginnen te doen iets wat al meer logisch 637 00:30:54,090 --> 00:30:54,650 interessant. 638 00:30:54,650 --> 00:30:59,720 Wanneer een willekeurig getal tussen 1 en 10 is minder dan, laten we zeggen zes. 639 00:30:59,720 --> 00:31:03,670 Als ik kies voor zes, die in wezen middelen, doet u het volgende met 50% 640 00:31:03,670 --> 00:31:03,980 waarschijnlijkheid. 641 00:31:03,980 --> 00:31:05,460 Het is als het opgooien van een munt. 642 00:31:05,460 --> 00:31:07,330 Nu, kan ik iets doen voorwaardelijk. 643 00:31:07,330 --> 00:31:10,800 En dat iets wat ik ga te doen is spelen het geluid. 644 00:31:10,800 --> 00:31:14,280 Dus nu, als ik klik op het scherm vlag, het is net opgooien van een munt. 645 00:31:14,280 --> 00:31:14,610 >> [MIAUW SOUND] 646 00:31:14,610 --> 00:31:17,160 >> DAVID Malan: Het was heads of wat daar. 647 00:31:17,160 --> 00:31:17,920 Laten we het nog een keer doen. 648 00:31:17,920 --> 00:31:18,860 >> [MIAUW SOUND] 649 00:31:18,860 --> 00:31:19,790 >> DAVID Malan: Heads weer. 650 00:31:19,790 --> 00:31:20,280 >> [MIAUW SOUND] 651 00:31:20,280 --> 00:31:21,500 >> DAVID Malan: Heads weer. 652 00:31:21,500 --> 00:31:22,631 Oef, OK. 653 00:31:22,631 --> 00:31:24,720 Staarten die tijd. 654 00:31:24,720 --> 00:31:29,545 Dus 50% van de tijd, als we dit doen oneindig lange, zullen we 50% miauwen krijgen 655 00:31:29,545 --> 00:31:32,180 en 50% stiltes. 656 00:31:32,180 --> 00:31:34,850 Dus daar, gewoon een basis gebouw blok dat laat ons dat doen. 657 00:31:34,850 --> 00:31:37,710 Maar dit is een soort van vervelend dat ik heb te blijven klikken op die knop. 658 00:31:37,710 --> 00:31:39,810 Dus laten we gewoon slepen en gooien al die afstand. 659 00:31:39,810 --> 00:31:42,270 Als je ze gesleept naar het midden, zullen ze zich gewoon verwijderen. 660 00:31:42,270 --> 00:31:43,760 >> Laat me gaan tot controle. 661 00:31:43,760 --> 00:31:46,060 Laat me gaan voor altijd. 662 00:31:46,060 --> 00:31:49,952 En deze keer, ik ga doen iets minorly vervelend. 663 00:31:49,952 --> 00:31:51,560 >> [Lachen] 664 00:31:51,560 --> 00:31:53,370 >> DAVID Malan: En laat me gaan gang en doe controle. 665 00:31:53,370 --> 00:31:57,260 Wacht een seconde, net zo het is niet te raspen. 666 00:31:57,260 --> 00:31:59,870 >> [MIAUW SOUND] 667 00:31:59,870 --> 00:32:00,970 >> DAVID Malan: Dat is niet natuurlijk. 668 00:32:00,970 --> 00:32:01,861 OK. 669 00:32:01,861 --> 00:32:04,510 >> [MIAUW SOUND] 670 00:32:04,510 --> 00:32:06,406 >> DAVID Malan: En merk wat, mooi over Scratch, voor degenen onder u die 671 00:32:06,406 --> 00:32:09,210 voorafgaand programmeren ervaring, je hoeft niet te starten en te stoppen. 672 00:32:09,210 --> 00:32:10,060 U hoeft niet te compileren. 673 00:32:10,060 --> 00:32:13,210 Je verandert het gewoon, en het programma zal dynamisch aanpassen. 674 00:32:13,210 --> 00:32:14,620 Dus dit is het krijgen van een weinig interessant. 675 00:32:14,620 --> 00:32:16,930 Maar laten we nog een stap verder. 676 00:32:16,930 --> 00:32:19,760 Laat me ga je gang en krijg ontdoen van dat programma. 677 00:32:19,760 --> 00:32:23,300 >> [MIAUW SOUND] 678 00:32:23,300 --> 00:32:25,520 >> DAVID Malan: Dat is wat we zullen bel een bug in Scratch. 679 00:32:25,520 --> 00:32:26,770 Hij moet niet blijven maken dat geluid. 680 00:32:26,770 --> 00:32:28,340 Dus we we hem vertellen te stoppen. 681 00:32:28,340 --> 00:32:30,435 Oke, dus nu ben ik in te gaan op - 682 00:32:30,435 --> 00:32:32,180 Ik laat het MIT weten. 683 00:32:32,180 --> 00:32:35,160 We zullen hier over te gaan naar Forever. 684 00:32:35,160 --> 00:32:37,240 En nu, ik wil iets doen weer. 685 00:32:37,240 --> 00:32:38,760 Ik ga om te gaan in control. 686 00:32:38,760 --> 00:32:41,570 >> En laten we zien, ga ik slepen mijn als voorwaarde daar. 687 00:32:41,570 --> 00:32:42,850 Dus let nu op de logica. 688 00:32:42,850 --> 00:32:46,430 Wanneer de groene vlag wordt geklikt, doe iets voor altijd, maar alleen dat doen 689 00:32:46,430 --> 00:32:48,890 iets als dit andere ding is waar. 690 00:32:48,890 --> 00:32:51,480 Ik ga om te gaan naar, laten we zeggen, sensing. 691 00:32:51,480 --> 00:32:54,430 En ik ga om verder te gaan en te kiezen te raken en zet het daar neer. 692 00:32:54,430 --> 00:32:55,930 Dat is een Booleaanse expressie. 693 00:32:55,930 --> 00:32:57,740 >> En nu, ziet, in deze daling down menu, zijn er 694 00:32:57,740 --> 00:32:59,050 een aantal vooraf gedefinieerde waarden. 695 00:32:59,050 --> 00:33:00,910 Dus ik kan zeggen, ben je aanraken de rand van het scherm? 696 00:33:00,910 --> 00:33:03,900 Of bent u het aanraken van de muisaanwijzer, de pijl op het scherm? 697 00:33:03,900 --> 00:33:04,620 Dus ik ga dat doen. 698 00:33:04,620 --> 00:33:08,770 En zo ja, dan ga ik om te gaan vooruit en speel het geluid meow. 699 00:33:08,770 --> 00:33:11,250 Dus nu heb ik soort van de begin van een spel - 700 00:33:11,250 --> 00:33:13,110 een schattig spel. 701 00:33:13,110 --> 00:33:14,060 >> [MIAUW SOUND] 702 00:33:14,060 --> 00:33:17,250 >> DAVID MALAN: OK, een schattig, buggy spel. 703 00:33:17,250 --> 00:33:20,770 Laat me niet wachten, laten we zeggen, een seconde daar. 704 00:33:20,770 --> 00:33:24,910 Spelen nu weer, door te klikken op de groene vlag. 705 00:33:24,910 --> 00:33:27,860 >> [MIAUW SOUND] 706 00:33:27,860 --> 00:33:30,460 >> DAVID Malan: Dus nu is het zoals aaien van een kat. 707 00:33:30,460 --> 00:33:31,850 >> [MIAUW SOUND] 708 00:33:31,850 --> 00:33:34,460 >> DAVID Malan: Oke, nu deze die ik heb van tevoren. 709 00:33:34,460 --> 00:33:39,250 Erg laat, het wordt een beetje makkelijk om domme dingen te doen. 710 00:33:39,250 --> 00:33:40,240 Dus laat me gaan in hier. 711 00:33:40,240 --> 00:33:43,720 Laten we zeggen, dat was Huisdier van de Kat. 712 00:33:43,720 --> 00:33:46,600 Laten we nu open niet Huisdier de Cat. 713 00:33:46,600 --> 00:33:48,330 Nu, als we dit een te spelen, je kunt raden, als je 714 00:33:48,330 --> 00:33:49,650 kijken naar het scherm - 715 00:33:49,650 --> 00:33:51,090 >> [MIAUW SOUND] 716 00:33:51,090 --> 00:33:52,170 >> DAVID MALAN: Nu, als ik huisdier de kat 717 00:33:52,170 --> 00:33:55,420 >> [LEEUW ROAR] 718 00:33:55,420 --> 00:33:57,260 >> DAVID Malan: Dus niet echt huisdier de kat in dat geval. 719 00:33:57,260 --> 00:34:01,350 Dus nu hebben we slechts een voorbeeld van een tak dat gaat in twee richtingen. 720 00:34:01,350 --> 00:34:03,130 Laat me nu ga je gang en Open hier nog eentje. 721 00:34:03,130 --> 00:34:07,120 Deze, ook onder onze bron codebestanden voor de dag. 722 00:34:07,120 --> 00:34:13,199 Dus laat me terug in mijn bron directory en ga in, laten we kiezen voor 723 00:34:13,199 --> 00:34:15,610 deze man hier en zie wat is er anders. 724 00:34:15,610 --> 00:34:17,449 >> Wow, oke, dus nu is het steeds een beetje ingewikkelder. 725 00:34:17,449 --> 00:34:21,300 En voordat we zien wat deze man doet, laten we proberen af ​​te leiden, uit het programma 726 00:34:21,300 --> 00:34:22,219 aan de rechterkant. 727 00:34:22,219 --> 00:34:25,590 En nu scratch duidelijk laat ons toe om hebben meerdere scripts, meerdere 728 00:34:25,590 --> 00:34:29,730 programma's in verband met een sprite, met een teken, en blijkbaar 729 00:34:29,730 --> 00:34:31,760 ze beiden gaan draaien in lockstep. 730 00:34:31,760 --> 00:34:35,570 Omdat beide van deze programma begint met als groene vlag klikken, dit is 731 00:34:35,570 --> 00:34:38,650 zinspelen op een meer geavanceerde onderwerp, met die een aantal van u bekend zou kunnen zijn, 732 00:34:38,650 --> 00:34:40,580 bekend als threading of multi-threading. 733 00:34:40,580 --> 00:34:44,400 >> Blijkt, lang verhaal kort, computers vandaag kunt doen in wezen meerdere 734 00:34:44,400 --> 00:34:45,270 dingen tegelijk. 735 00:34:45,270 --> 00:34:48,659 Of ze kunnen een ding tegelijk doen dus snel dat je niet eens merkt dat 736 00:34:48,659 --> 00:34:50,150 het is eigenlijk degene die het doet ding tegelijk. 737 00:34:50,150 --> 00:34:53,320 Maar voor nu, laten we aannemen dat beide deze programma's gaan uitvoeren op 738 00:34:53,320 --> 00:34:54,310 tegelijkertijd. 739 00:34:54,310 --> 00:34:57,350 En merk op, beiden hebben forever puzzel stukjes. 740 00:34:57,350 --> 00:35:01,270 Dus ze beiden gaan blijven draaien totdat ik raakte de rode stopbord. 741 00:35:01,270 --> 00:35:02,100 >> Dus wat gaan ze doen? 742 00:35:02,100 --> 00:35:06,030 Aan de linkerkant, ik ben blijkbaar declareren van een variabele genaamd gedempt. 743 00:35:06,030 --> 00:35:09,030 Dus ik heb niet geroepen het iets als saai zoals N. Ik noemde het gedempte dit 744 00:35:09,030 --> 00:35:10,240 tijd om betekenis over te brengen. 745 00:35:10,240 --> 00:35:11,780 Ik stel deze gelijk aan nul. 746 00:35:11,780 --> 00:35:16,200 Laten we bedenken dat als False, of Laten we bedenken dat als False. 747 00:35:16,200 --> 00:35:17,490 >> Nu, voor altijd het volgende doen. 748 00:35:17,490 --> 00:35:23,280 Als spatiebalk van het toetsenbord wordt ingedrukt, dan als gedempt nul is, 749 00:35:23,280 --> 00:35:25,930 dan veranderen gedempt om gelijk een. 750 00:35:25,930 --> 00:35:27,580 Else, ingesteld gedempt op nul. 751 00:35:27,580 --> 00:35:30,530 Dus logisch, ook al is dat een hele stelletje puzzelstukken die is 752 00:35:30,530 --> 00:35:33,160 gewoon te zeggen, toen ik raakte de spatiebalk, wat moet ik doen om de variabele 753 00:35:33,160 --> 00:35:34,750 riep gedempt? 754 00:35:34,750 --> 00:35:37,170 Het veranderen van de ene naar nul, of nul tot een. 755 00:35:37,170 --> 00:35:37,840 Dat is alles. 756 00:35:37,840 --> 00:35:40,740 Dus het is als het draaien van een lichtschakelaar aan of uit en herinneren, met een 757 00:35:40,740 --> 00:35:42,330 variabele, dat ik dat heb gedaan. 758 00:35:42,330 --> 00:35:45,990 >> Ondertussen, aan de rechterkant, in lekentaal, wat is het doel van 759 00:35:45,990 --> 00:35:47,547 het script op de juiste? 760 00:35:47,547 --> 00:35:48,860 >> STUDENT: Om de zeeleeuw geluid af te spelen. 761 00:35:48,860 --> 00:35:52,500 >> DAVID Malan: Om Zeeleeuw geluid af te spelen, als hij niet wordt gedempt, door 762 00:35:52,500 --> 00:35:53,480 aard van die variabele. 763 00:35:53,480 --> 00:35:57,360 Dus we zijn het delen van de staat, zo te zeggen, het delen van informatie over deze twee 764 00:35:57,360 --> 00:36:00,540 scripts want, ziet hier, wij zijn altijd het volgende te doen. 765 00:36:00,540 --> 00:36:04,620 Als gedempt is nul, dus als het niet gedempt - indien gedempt is vals, dan spelen 766 00:36:04,620 --> 00:36:05,980 Dit Zeeleeuw geluid. 767 00:36:05,980 --> 00:36:09,930 En denk je bij jezelf, hi, hi, hi, voor twee seconden, wacht even, en dan 768 00:36:09,930 --> 00:36:11,140 probeert u het opnieuw. 769 00:36:11,140 --> 00:36:15,150 Dus als we nu gaan hier naar links, naar de plaats waar deze man is, en sloeg de 770 00:36:15,150 --> 00:36:16,662 groene vlag, 771 00:36:16,662 --> 00:36:30,260 >> [SEA LION SOUND] 772 00:36:30,260 --> 00:36:31,910 >> DAVID Malan: Op welk punt gaat Dit krijgt echt vervelend? 773 00:36:31,910 --> 00:36:33,440 Want dit zal alleen maar gaan voor altijd. 774 00:36:33,440 --> 00:36:36,490 Dus soms, oneindige loops, zo te zeggen, zijn weloverwogen. 775 00:36:36,490 --> 00:36:41,140 Maar in dit geval, zodra ik raakte de spatiebalk, stopt hij. 776 00:36:41,140 --> 00:36:42,800 Nu is het programma niet stoppen. 777 00:36:42,800 --> 00:36:44,760 Het is nog steeds lopen in deze lussen. 778 00:36:44,760 --> 00:36:46,540 Maar als ik de spatiebalk weer - 779 00:36:46,540 --> 00:36:47,851 >> [SEA LION SOUND] 780 00:36:47,851 --> 00:36:49,650 >> DAVID Malan: Hij gaat halen verder waar hij gebleven was. 781 00:36:49,650 --> 00:36:53,240 Dus er is een manier voor ons om te doen wat weer maar dat 782 00:36:53,240 --> 00:36:54,920 tijd, slechts voorwaardelijk. 783 00:36:54,920 --> 00:36:58,940 Nou, terwijl we in deze geest van het doen opnieuw en opnieuw dingen, laat me 784 00:36:58,940 --> 00:37:01,370 gaan in een ander voorbeeld hier. 785 00:37:01,370 --> 00:37:04,370 Dit is die we zullen noemen het tellen van schapen. 786 00:37:04,370 --> 00:37:05,710 >> En let op wat deze man doet. 787 00:37:05,710 --> 00:37:08,540 Het is eigenlijk een beetje meer als het pseudocode we met aan spellen 788 00:37:08,540 --> 00:37:12,230 Woensdag, waarbij hij stelt enkele teller, denk aan het is zo weer N, om 789 00:37:12,230 --> 00:37:14,030 nul, altijd doet hij de volgende. 790 00:37:14,030 --> 00:37:17,960 Hij zegt dat de waarde van de teller voor een tweede, wacht een tweede, en vervolgens 791 00:37:17,960 --> 00:37:19,430 verandert de teller met een. 792 00:37:19,430 --> 00:37:21,570 En in dit verband, dat net betekent stappen het. 793 00:37:21,570 --> 00:37:23,250 Dus hij voegt men aan het. 794 00:37:23,250 --> 00:37:25,830 Dus dit is letterlijk - 795 00:37:25,830 --> 00:37:27,890 het is niet helemaal wat we denken van het tellen van schapen. 796 00:37:27,890 --> 00:37:33,120 Het is de schapen doen het tellen, voor altijd, omhoog van nul. 797 00:37:33,120 --> 00:37:35,560 >> Dus kunnen we soortgelijke dingen doen daar, logisch. 798 00:37:35,560 --> 00:37:37,750 Maar laten we nu eens proberen schoon te maken een aantal van deze dingen. 799 00:37:37,750 --> 00:37:43,440 Laat me nu ga je gang in een eenvoudige voorbeeld waar onze kat is gewoon te 800 00:37:43,440 --> 00:37:44,750 beginnen hoesten. 801 00:37:44,750 --> 00:37:48,830 Oke, dus hier hebben we hoest 0 - 802 00:37:48,830 --> 00:37:50,685 informatici beginnen tellen vanaf 0. 803 00:37:50,685 --> 00:37:53,480 Dus deze kat is gewoon gaan drie keer hoesten. 804 00:37:53,480 --> 00:37:54,890 En hier is hoe ik dat geïmplementeerd. 805 00:37:54,890 --> 00:38:00,130 Bij groene vlag wordt geklikt, hoesten, wacht, hoesten, wacht, hoesten, wacht. 806 00:38:00,130 --> 00:38:02,470 En ik deed dit gewoon door te slepen en vallen puzzelstukjes. 807 00:38:02,470 --> 00:38:04,740 Of als je begint te sleutelen aan Scratch, je zult zien kun je eigenlijk 808 00:38:04,740 --> 00:38:08,620 dupliceren stukken, zodat u kunt doen dingen sneller zonder te slepen 809 00:38:08,620 --> 00:38:10,310 en dropping vervelens toe. 810 00:38:10,310 --> 00:38:12,680 >> Maar we zijn niet op de beste weg hier. 811 00:38:12,680 --> 00:38:15,210 Want hoe kan ik hem maken hoesten een vierde keer? 812 00:38:15,210 --> 00:38:16,790 Nou, ik kon soort van gaan hier beneden. 813 00:38:16,790 --> 00:38:19,420 Ik kon dupliceren en vervolgens plak deze in daar. 814 00:38:19,420 --> 00:38:21,740 Hoe maak ik hem hoesten een vijfde tijd? 815 00:38:21,740 --> 00:38:23,230 Nou, kopiëren en plakken weer. 816 00:38:23,230 --> 00:38:24,210 Of sleep daling weer. 817 00:38:24,210 --> 00:38:26,920 En heel snel, dit programma start om echt, echt overbodig te krijgen, 818 00:38:26,920 --> 00:38:28,880 echt lang, maar echt oninteressant. 819 00:38:28,880 --> 00:38:30,120 Maar er is een manier om dit op te ruimen. 820 00:38:30,120 --> 00:38:33,680 Wat is de voor de hand liggende manier om dit op te ruimen? 821 00:38:33,680 --> 00:38:36,280 >> OK, dus we konden eigenlijk echt gaan uit en, wanneer je de ruimte raken 822 00:38:36,280 --> 00:38:37,070 bar, hebben hem hoesten. 823 00:38:37,070 --> 00:38:40,150 Maar als ik wil gewoon iets doen herhaaldelijk, zich herinneren dat we wel hebben 824 00:38:40,150 --> 00:38:41,310 enige controle construeert. 825 00:38:41,310 --> 00:38:43,800 Laat me gaan dit uit de weg, ga onder controle. 826 00:38:43,800 --> 00:38:47,340 Laat mij gewoon een herhaling, bijvoorbeeld drie keer. 827 00:38:47,340 --> 00:38:49,410 En nu laat ik stelen sommige van deze puzzelstukjes. 828 00:38:49,410 --> 00:38:50,980 Laat me dit in hier snap. 829 00:38:50,980 --> 00:38:52,400 Laat me helemaal gooi deze weg. 830 00:38:52,400 --> 00:38:55,400 >> En nu, ik heb een beter ontworpen programma. 831 00:38:55,400 --> 00:38:55,920 Waarom? 832 00:38:55,920 --> 00:39:00,540 Als ik wil het aantal keren wijzigen deze kat hoest, alles wat ik moet 833 00:39:00,540 --> 00:39:05,640 doen is veranderen een variabele, of een waarde, plaats van drie, vier, of 834 00:39:05,640 --> 00:39:06,700 vijf of zes. 835 00:39:06,700 --> 00:39:09,060 Of ik iets kon doen voorwaardelijk, zelfs, met de ruimte 836 00:39:09,060 --> 00:39:10,320 bar als ik wilde. 837 00:39:10,320 --> 00:39:11,780 >> Dus dit is een algemeen principe. 838 00:39:11,780 --> 00:39:14,950 Zodra u begint met het kopiëren en plakken code, of het nu in Scratch, of in 839 00:39:14,950 --> 00:39:18,340 C, je bent iets te doen verkeerd, waarschijnlijk. 840 00:39:18,340 --> 00:39:21,950 Of in ieder geval, als je eenmaal hebt een aantal overschreden redelijke aantallen kopieën en 841 00:39:21,950 --> 00:39:24,610 pasta's, bent u waarschijnlijk iets verkeerd. 842 00:39:24,610 --> 00:39:26,740 >> Maar weet je wat? 843 00:39:26,740 --> 00:39:27,590 Ik hou niet echt van deze. 844 00:39:27,590 --> 00:39:28,980 Dit is niet het schoonste ontwerp. 845 00:39:28,980 --> 00:39:32,860 Ik wou dat er een puzzel stuk genaamd hoesten want dan zou ik niet 846 00:39:32,860 --> 00:39:36,100 moet dit zelf voeren, de ouderwetse manier, door 847 00:39:36,100 --> 00:39:38,220 hebben gezegd, en wacht - 848 00:39:38,220 --> 00:39:40,320 wat als ze waren gewoon een hoest puzzelstukje. 849 00:39:40,320 --> 00:39:41,330 >> Nou, ik kan eigenlijk dat doen. 850 00:39:41,330 --> 00:39:45,010 Laat me gaan onder meer blokken, klikt Maak een Block, en nu dit krijg ik 851 00:39:45,010 --> 00:39:45,610 window hier. 852 00:39:45,610 --> 00:39:47,540 Ik ga dit ding hoest noemen. 853 00:39:47,540 --> 00:39:49,400 Ik ga om te gaan en klik op OK. 854 00:39:49,400 --> 00:39:53,150 En let nu op, krijg ik een nieuwe start stuk dat is gebogen over de top. 855 00:39:53,150 --> 00:39:56,590 En wat ik ga doen met dit, ik ben ga gewoon stelen deze blokken. 856 00:39:56,590 --> 00:39:57,800 Ik ga ze hier plaatsen. 857 00:39:57,800 --> 00:40:00,490 >> En nu, met deze drie stukken, ik heb geïmplementeerd wat ik ga naar een bel 858 00:40:00,490 --> 00:40:03,530 functie of een procedure, of een deel van je zou kunnen kennen als een methode. 859 00:40:03,530 --> 00:40:05,050 Geringe verschillen tussen de woorden. 860 00:40:05,050 --> 00:40:06,950 Maar voor nu, laten we gewoon noemen dit een functie. 861 00:40:06,950 --> 00:40:08,750 Dit is slechts een nieuw puzzelstukje. 862 00:40:08,750 --> 00:40:11,000 Nu het wordt uitgevoerd als dit. 863 00:40:11,000 --> 00:40:15,170 >> , Maar merkt dat Kras ons heeft gegeven fysieke representatie van dat hele 864 00:40:15,170 --> 00:40:16,570 blokkeren hierheen. 865 00:40:16,570 --> 00:40:21,930 Dus nu kan ik gewoon slepen dit dan hier, zeggen, herhaal dit drie keer, en 866 00:40:21,930 --> 00:40:26,420 wat er gaat gebeuren nu, als ik speel dit script, maar een programma 867 00:40:26,420 --> 00:40:27,500 loopt tegelijk. 868 00:40:27,500 --> 00:40:29,880 Er is maar een als groene vlag geklikt. 869 00:40:29,880 --> 00:40:34,010 Maar dat paarse blok genoemd hoest is effectief vertellen Scratch, elke 870 00:40:34,010 --> 00:40:38,160 tijd zie je dat puzzelstukje, eigenlijk uitvoeren van deze stappen die ik 871 00:40:38,160 --> 00:40:40,420 toevallig handmatig voeren. 872 00:40:40,420 --> 00:40:41,410 >> Dus dat is soort netjes. 873 00:40:41,410 --> 00:40:44,650 Maar nu, stel dat ik besloot, dat doe ik niet wil deze kat gewoon te hoesten. 874 00:40:44,650 --> 00:40:46,660 Ik wil dat hij in staat zijn om ook te niezen. 875 00:40:46,660 --> 00:40:48,905 Nou ja, hoe zouden we gaan over uitvoering niezen? 876 00:40:48,905 --> 00:40:51,310 Nou kon ik vrij veel hetzelfde doen. 877 00:40:51,310 --> 00:40:52,690 Ik kon een ander blok. 878 00:40:52,690 --> 00:40:55,940 Ik kon dit niezen noemen, klikt u op OK. 879 00:40:55,940 --> 00:40:59,250 >> Dan, hier kon ik eigenlijk hebben, laat me dit dupliceren - 880 00:40:59,250 --> 00:41:02,850 en er is waar je moet voelen als ben je waarschijnlijk niet iets te doen in 881 00:41:02,850 --> 00:41:03,780 de beste manier. 882 00:41:03,780 --> 00:41:06,670 Ik zou kunnen zeggen iets als, achoo, een seconde. 883 00:41:06,670 --> 00:41:07,440 Wacht een seconde. 884 00:41:07,440 --> 00:41:08,715 Nu heb ik een nieuw blok genaamd niezen. 885 00:41:08,715 --> 00:41:10,210 En inderdaad, daar is het. 886 00:41:10,210 --> 00:41:14,010 >> Maar ook dit zou beginnen te voelen - Misschien niet de eerste week van de klas, maar 887 00:41:14,010 --> 00:41:15,730 door de tweede - net een beetje overbodig. 888 00:41:15,730 --> 00:41:17,800 Het is duidelijk, er is hier een aantal redundantie. 889 00:41:17,800 --> 00:41:22,090 Dus laat me voor te stellen, in plaats daarvan, dat wij verfijnen deze definitie volgt. 890 00:41:22,090 --> 00:41:24,820 >> Laat ik optrekken tot mijn file menu. 891 00:41:24,820 --> 00:41:26,090 Ik ben niet van plan om deze versie te slaan. 892 00:41:26,090 --> 00:41:29,080 Ik ga om te gaan in een van mijn premade bestanden hier. 893 00:41:29,080 --> 00:41:31,190 En ik ga om verder te gaan en open hoest 2. 894 00:41:31,190 --> 00:41:32,220 Oeps dat was hoest 2. 895 00:41:32,220 --> 00:41:36,900 Laat me ga je gang en open hoesten 3, dat is deze bron directory. 896 00:41:36,900 --> 00:41:42,450 Hoest 3 en merken - oh, zei ik het verhaal in de verkeerde volgorde. 897 00:41:42,450 --> 00:41:45,030 Laat me herstellen van dit verhaal. 898 00:41:45,030 --> 00:41:48,990 >> Het verhaal dat ik bedoeld om te vertellen eindigt met hoest 4 - 899 00:41:48,990 --> 00:41:50,270 daar is het. 900 00:41:50,270 --> 00:41:54,380 Dus wat als ik, in plaats daarvan, bepalen een grotere puzzelstukje genoemd 901 00:41:54,380 --> 00:41:57,250 definiëren, zeg woord n ​​keer. 902 00:41:57,250 --> 00:41:59,930 Niezen is gewoon, blijkbaar, in Scratch, achoo. 903 00:41:59,930 --> 00:42:01,680 Dus we uitdrukken als een woord, gewoon omdat dat is de 904 00:42:01,680 --> 00:42:02,750 beperking van het programma. 905 00:42:02,750 --> 00:42:07,860 En een hoest is [COUGH], maar hoesten, C-O-U-G-H. Dus dat is gewoon twee 906 00:42:07,860 --> 00:42:10,820 verschillende woorden te doen, in wezen, hetzelfde. 907 00:42:10,820 --> 00:42:12,820 >> Zo kan ik eigenlijk maken een nieuw blok als deze. 908 00:42:12,820 --> 00:42:14,220 Ik heb deze menu-optie niet gebruiken voordat. 909 00:42:14,220 --> 00:42:16,960 Maar wanneer u klikt Make Block, U kunt kiezen voor een aantal opties. 910 00:42:16,960 --> 00:42:20,900 En je kunt zeggen dat dit blok eigenlijk kost wat ingangen, anders 911 00:42:20,900 --> 00:42:24,710 bekend als argumenten of parameters, zo dat u het gedrag van kunt wijzigen 912 00:42:24,710 --> 00:42:25,520 je blok. 913 00:42:25,520 --> 00:42:28,780 >> Dus wat deed ik een moment geleden werd Ik noemde dit blok Say. 914 00:42:28,780 --> 00:42:30,880 En toen zei ik, het duurt een stringingang. 915 00:42:30,880 --> 00:42:32,810 En let nu op, standaard, het zegt touwtje 1. 916 00:42:32,810 --> 00:42:35,440 Een string is gewoon een woord, of een zin, voor onze doeleinden. 917 00:42:35,440 --> 00:42:37,810 Maar ik ga gewoon wat zetten tijdelijke tekst er, net als in een 918 00:42:37,810 --> 00:42:40,620 website, als je gebruikersnaam, of wachtwoord, en vervolgens verdwijnt het als 919 00:42:40,620 --> 00:42:41,550 je begint te typen. 920 00:42:41,550 --> 00:42:42,720 Dat is alles dat is. 921 00:42:42,720 --> 00:42:44,590 >> En nu ga ik voeg een nummer invoeren. 922 00:42:44,590 --> 00:42:47,180 En ik ga dit n noemen - maar dat is vrij willekeurig. 923 00:42:47,180 --> 00:42:49,510 En dan gewoon een label, gewoon om ervoor te dit blok een beetje meer zelf 924 00:42:49,510 --> 00:42:50,570 verklarende - 925 00:42:50,570 --> 00:42:53,010 tijden, dat is wat ik net deed. 926 00:42:53,010 --> 00:42:56,540 En het eindresultaat is dat ik krijg een blok dat er als volgt uitziet. 927 00:42:56,540 --> 00:42:58,880 >> En let nu op, ik gebruik een herhaling blok. 928 00:42:58,880 --> 00:43:03,480 Maar in plaats van harde codering drie, ik ben te slepen en n in er dus ik 929 00:43:03,480 --> 00:43:05,530 kan de functie parametriseren. 930 00:43:05,530 --> 00:43:08,590 Ik kan deze functie iets te doen een verschillend aantal keren gebaseerd op 931 00:43:08,590 --> 00:43:09,410 die waarde. 932 00:43:09,410 --> 00:43:14,270 >> En opmerken, zeggen, dit is wat ik deed hier, als ik het woord te slepen, kan ik zeggen dat niet een 933 00:43:14,270 --> 00:43:17,860 hard gecodeerd woord, maar wat wordt doorgegeven in een seconde. 934 00:43:17,860 --> 00:43:20,200 Ondertussen, hoe kan ik opnieuw te implementeren hoesten? 935 00:43:20,200 --> 00:43:26,980 Ik plaats hoest definiëren als zeggen hoest n keer. 936 00:43:26,980 --> 00:43:30,480 >> Dus in het kort, ik ga door deze snel, maar het basisidee is zo snel 937 00:43:30,480 --> 00:43:32,750 als je begint te zien in het programma dat, wacht even, ik heb gedaan 938 00:43:32,750 --> 00:43:36,610 iets heel graag dit eerder, kan ik factor uit een aantal gemeenschappelijke 939 00:43:36,610 --> 00:43:37,090 functionaliteit? 940 00:43:37,090 --> 00:43:41,090 Ik kan ontleden wat ik doe in een aantal fundamentele ideeën? 941 00:43:41,090 --> 00:43:42,070 Dat is wat we hier doen. 942 00:43:42,070 --> 00:43:44,830 En ik heb deze dingen gestapeld, visueel, boven elkaar 943 00:43:44,830 --> 00:43:47,710 omdat het bewijs van dat idee van beginnend met binaire, gaat naar ASCII, 944 00:43:47,710 --> 00:43:51,530 het maken van grafische programma's, soort gelaagdheid steeds complexere ideeën over 945 00:43:51,530 --> 00:43:52,570 bovenop elkaar. 946 00:43:52,570 --> 00:43:53,730 >> Hetzelfde idee hier. 947 00:43:53,730 --> 00:43:56,870 Ik begon uit Scratch, uitvoering hoesten, toen realiseerde hoesten is 948 00:43:56,870 --> 00:43:58,540 eigenlijk alleen maar iets te zeggen. 949 00:43:58,540 --> 00:44:01,630 Dus laat me in plaats daarvan de uitvoering van de notie van iets te zeggen. 950 00:44:01,630 --> 00:44:05,200 En op de top van dat, kan ik uitvoeren achoo, of hoesten? 951 00:44:05,200 --> 00:44:07,990 En we konden meer van dergelijke doen varianten nog steeds. 952 00:44:07,990 --> 00:44:10,400 >> Dus vanuit dit uitgangspunt, we kunnen beginnen te doen 953 00:44:10,400 --> 00:44:12,180 steeds complexere programma's. 954 00:44:12,180 --> 00:44:14,100 Laat me deze ene openstellen. 955 00:44:14,100 --> 00:44:18,020 We kunnen eigenlijk meerdere sprites interactie op het scherm in een keer. 956 00:44:18,020 --> 00:44:23,470 Als ik in mijn source directory en pak een zogenaamde Threads, herinneren eraan dat een 957 00:44:23,470 --> 00:44:26,920 thread is gewoon echt de mogelijkheid van twee scripts naar de andere kant door te voeren 958 00:44:26,920 --> 00:44:28,350 zijde tegelijk. 959 00:44:28,350 --> 00:44:34,490 >> Merk nu, hebben zowel een vogel sprite en een kat sprite, die beide 960 00:44:34,490 --> 00:44:35,270 hun eigen scripts. 961 00:44:35,270 --> 00:44:37,690 Dus kennisgeving, als ik op de kat, krijg ik deze scripts. 962 00:44:37,690 --> 00:44:39,830 Wanneer ik op de vogel, Ik krijg deze scripts. 963 00:44:39,830 --> 00:44:42,070 Dus elk van deze jongens heeft zijn eigen programma's. 964 00:44:42,070 --> 00:44:46,680 Wanneer ik nu op de groene vlag, merken dat wat dit programma doet is 965 00:44:46,680 --> 00:44:54,090 hebben de kat, ongelooflijk langzaam, jagen de vogel. 966 00:44:54,090 --> 00:44:57,120 Maar de kat het voordeel van geprogrammeerd zodanig 967 00:44:57,120 --> 00:45:00,540 dat het niet uitmaakt waar de vogel is, de kat gaat naar hem toe. 968 00:45:00,540 --> 00:45:02,150 >> We kunnen dat spel veel sneller te spelen. 969 00:45:02,150 --> 00:45:07,750 Dus als ik op de kat, merken dat ik ben met, laten we zeggen dat bewegen een stap. 970 00:45:07,750 --> 00:45:11,680 Laten we hem vijf stappen bewegen tijd, dus vijf punten tegelijk. 971 00:45:11,680 --> 00:45:13,580 Laat me klikt spelen. 972 00:45:13,580 --> 00:45:14,490 >> [LEEUW ROAR] 973 00:45:14,490 --> 00:45:17,170 >> DAVID Malan: Oke, nu kunnen we echt geven de kat het voordeel. 974 00:45:17,170 --> 00:45:18,600 10 treden tegelijk. 975 00:45:18,600 --> 00:45:20,120 >> [LEEUW ROAR] 976 00:45:20,120 --> 00:45:22,770 >> DAVID Malan: Oke, dus zeer snel, het wordt een beetje voordeel 977 00:45:22,770 --> 00:45:23,280 voor de kat. 978 00:45:23,280 --> 00:45:25,310 Maar ik zal mijn hand zwaaien sommige van de details. 979 00:45:25,310 --> 00:45:28,240 Maar de reden dat die weg is een beetje anders elke keer starten 980 00:45:28,240 --> 00:45:29,700 is dat ik doe een beetje van willekeur. 981 00:45:29,700 --> 00:45:33,700 Ik ben eigenlijk wijst de kat in een andere richting op basis van waar ik 982 00:45:33,700 --> 00:45:38,710 wil dat hij zo beginnen dat telkens het spel, of de animatie, is een 983 00:45:38,710 --> 00:45:39,760 beetje anders. 984 00:45:39,760 --> 00:45:41,950 >> Nu, laat me een introduceren andere construeren hier. 985 00:45:41,950 --> 00:45:43,860 Dus in dit geval, hebben we functies. 986 00:45:43,860 --> 00:45:46,950 Er gaat ook een puzzelstukje te zijn bekend als een matrix of een lijst 987 00:45:46,950 --> 00:45:50,980 die u toelaat om op te slaan meerdere waarden binnen een variabele. 988 00:45:50,980 --> 00:45:53,410 We zagen draden, en nu er Events. 989 00:45:53,410 --> 00:45:56,330 >> Dus hier is een evenement met deze twee jongens hier. 990 00:45:56,330 --> 00:46:02,490 En als ik het openstellen van het bestand met de naam Evenementen van voorbeelden van vandaag, zullen we 991 00:46:02,490 --> 00:46:06,940 zien van een programma dat lijkt een beetje als dit. 992 00:46:06,940 --> 00:46:09,630 En let nu op deze man - 993 00:46:09,630 --> 00:46:11,620 dus merk ik heb de blauwe Muppet geklikt - 994 00:46:11,620 --> 00:46:12,990 hij doet alleen het volgende. 995 00:46:12,990 --> 00:46:15,540 Hij wil niet een van die hebben groene vlag puzzelstukjes. 996 00:46:15,540 --> 00:46:18,620 Hij heeft een toen ik ontvang event - 997 00:46:18,620 --> 00:46:19,970 dus een willekeurig woord. 998 00:46:19,970 --> 00:46:21,590 Ik heb net uitgetypt event daar - 999 00:46:21,590 --> 00:46:23,740 hij gaat zeggen, Polo, gedurende twee seconden. 1000 00:46:23,740 --> 00:46:25,800 >> Dus degenen onder jullie die bekend zijn met dit spel zou kunnen weten 1001 00:46:25,800 --> 00:46:26,460 waar dit naartoe gaat. 1002 00:46:26,460 --> 00:46:29,800 Als ik nu op de oranje Muppet, zijn programma doet dit. 1003 00:46:29,800 --> 00:46:35,020 Altijd, als het toetsenbord spatiebalk onderdrukt, is hij gaan zeggen, Marco, 1004 00:46:35,020 --> 00:46:36,580 gedurende twee seconden op het scherm. 1005 00:46:36,580 --> 00:46:39,590 Maar hij gaat ook deze liefhebber gebruiken genoemd broadcast blokkeren. 1006 00:46:39,590 --> 00:46:42,270 Hij gaat uitzenden citaat unquote, "evenement." 1007 00:46:42,270 --> 00:46:47,540 >> Ondertussen, de blauwe jongen, recall, is luisteren voor citaat unquote, "event." 1008 00:46:47,540 --> 00:46:50,760 Dus een of andere manier, nu, kunnen we twee sprites interactie. 1009 00:46:50,760 --> 00:46:53,790 En als we in web programmeren, later in de termijn eveneens zal dit 1010 00:46:53,790 --> 00:46:58,320 voordelig zijn om uw website te hebben iets in antwoord op, voor 1011 00:46:58,320 --> 00:47:00,130 Bijvoorbeeld, een klik van het toetsenbord. 1012 00:47:00,130 --> 00:47:02,120 >> Dus laat me gaan en druk op de spatiebalk. 1013 00:47:02,120 --> 00:47:04,020 Oranje man zegt Marco. 1014 00:47:04,020 --> 00:47:05,840 Blauwe man zegt Polo. 1015 00:47:05,840 --> 00:47:10,780 Als ik het opnieuw doen orange man zegt Marco, blauwe man zegt polo. 1016 00:47:10,780 --> 00:47:14,130 Dus laten we eens een stap verder. 1017 00:47:14,130 --> 00:47:18,790 Deze keer gaan we naar, waarschijnlijk, Nog een paar minuten hier. 1018 00:47:18,790 --> 00:47:19,904 Hebben we - 1019 00:47:19,904 --> 00:47:22,380 bureaulamp, kom naar beneden. 1020 00:47:22,380 --> 00:47:24,500 U bent direct aan het eind. 1021 00:47:24,500 --> 00:47:25,740 OK, je kunt beiden komen. 1022 00:47:25,740 --> 00:47:26,990 We hebben bureaulampen voor iedereen. 1023 00:47:26,990 --> 00:47:28,360 Kom op. 1024 00:47:28,360 --> 00:47:30,090 Ik weet niet of we kunnen blijven deze belachelijke prop up 1025 00:47:30,090 --> 00:47:32,035 alle semester, dat wel. 1026 00:47:32,035 --> 00:47:33,530 Oke, kom naar beneden. 1027 00:47:33,530 --> 00:47:40,260 >> En in de tussentijd, hebben we de volgende voorbeelden op te trekken, alleen maar om 1028 00:47:40,260 --> 00:47:45,370 versnellen dingen nu, zodat we een manifestatie van een andere 1029 00:47:45,370 --> 00:47:48,360 voorganger van u met behulp van de dezelfde fundamentele bouwstenen. 1030 00:47:48,360 --> 00:47:48,975 Wat is je naam? 1031 00:47:48,975 --> 00:47:49,240 >> JOHN: John. 1032 00:47:49,240 --> 00:47:49,770 >> DAVID Malan: John. 1033 00:47:49,770 --> 00:47:50,400 Leuk om me je. 1034 00:47:50,400 --> 00:47:50,650 En? 1035 00:47:50,650 --> 00:47:51,250 >> Setz: Setz. 1036 00:47:51,250 --> 00:47:53,130 >> DAVID MALAN: Setz, aardig tegen me je. 1037 00:47:53,130 --> 00:47:54,820 John, als je wilt om te komen eerst op, dit is een oud 1038 00:47:54,820 --> 00:47:55,910 school-spel genaamd Frogger. 1039 00:47:55,910 --> 00:47:57,530 U gebruikt het toetsenbord om dit zo goed. 1040 00:47:57,530 --> 00:48:02,425 En het doel is om over te brengen de straat en het water. 1041 00:48:02,425 --> 00:48:12,700 >> [FROGGER MUZIEK EN GELUID PLAYS] 1042 00:48:12,700 --> 00:48:14,970 >> DAVID Malan: Het spijt me, geen bureaulamp voor u vandaag. 1043 00:48:14,970 --> 00:48:19,110 Oke, Setz, zou je graag op komen? 1044 00:48:19,110 --> 00:48:20,890 Oke, laten we het nog een keer doen. 1045 00:48:20,890 --> 00:48:21,430 >> Setz: Heb ik de pijlen gebruiken? 1046 00:48:21,430 --> 00:48:22,360 >> DAVID Malan: gewoon de pijltjestoetsen. 1047 00:48:22,360 --> 00:48:23,624 Omhoog, omlaag, links, rechts. 1048 00:48:23,624 --> 00:48:35,700 >> [FROGGER MUZIEK EN GELUID PLAYS] 1049 00:48:35,700 --> 00:48:37,880 >> DAVID Malan: We zullen ze noemen troostprijzen vandaag, 1050 00:48:37,880 --> 00:48:38,950 vervolgens, zeer goed gedaan. 1051 00:48:38,950 --> 00:48:40,690 Hier, voor jullie beiden, John en Setz. 1052 00:48:40,690 --> 00:48:41,940 Gefeliciteerd, oke. 1053 00:48:41,940 --> 00:48:46,720 1054 00:48:46,720 --> 00:48:50,620 Dus nogmaals, als dit spel speelt, na te denken over wat er gaande is? 1055 00:48:50,620 --> 00:48:52,060 >> Een, er is duidelijk veel beweging. 1056 00:48:52,060 --> 00:48:55,220 Maar we hebben gezien hoe, met de kat en de vogel voorbeeld, hoe kunt u het 1057 00:48:55,220 --> 00:48:58,350 illusie van beweging door gewoon bewegen sommige aantal weer pixels. 1058 00:48:58,350 --> 00:49:00,280 En als je een eeuwig blok, je zou deze hebben 1059 00:49:00,280 --> 00:49:02,120 auto's doen dit altijd. 1060 00:49:02,120 --> 00:49:03,720 We hebben de mogelijkheid om hebben een aantal willekeur. 1061 00:49:03,720 --> 00:49:06,310 Dus dit spel niet te worden precies hetzelfde elke keer. 1062 00:49:06,310 --> 00:49:09,940 Die logboeken, die auto's, kunnen beginnen bij enigszins verschillende tijden, zodat de 1063 00:49:09,940 --> 00:49:12,690 spel zelf is interessanter met elk spel. 1064 00:49:12,690 --> 00:49:15,320 >> En ondertussen hebben we de mogelijkheid hebben gezien om te luisteren naar de spatiebalk. 1065 00:49:15,320 --> 00:49:18,830 Maar het is duidelijk, in Scratch, kunt u ook luister naar omhoog, omlaag, links, rechts, en 1066 00:49:18,830 --> 00:49:20,760 echt een willekeurige toets op het toetsenbord. 1067 00:49:20,760 --> 00:49:22,200 En je kunt ook doen wat andere dingen. 1068 00:49:22,200 --> 00:49:24,660 Laat me ga je gang en ga terug naar de webversie. 1069 00:49:24,660 --> 00:49:30,280 >> Laat me gaan in onze collectie voorbeelden hier. 1070 00:49:30,280 --> 00:49:36,120 En onder Mijn studio, video die is, in essentie, een map op 1071 00:49:36,120 --> 00:49:37,780 scratch.mit.edu. 1072 00:49:37,780 --> 00:49:39,710 We hebben de web-versies van al deze projecten. 1073 00:49:39,710 --> 00:49:42,530 En laten we eens kijken of ik kan mijn computer om hier te werken. 1074 00:49:42,530 --> 00:49:47,180 Dit is geschreven door een van onze vrienden aan het MIT, genaamd Verplaats de Vlinder. 1075 00:49:47,180 --> 00:49:50,250 >> En zodra dit opent, is dit gaat eigenlijk meer van gebruiken 1076 00:49:50,250 --> 00:49:51,430 de hardware van mijn computer. 1077 00:49:51,430 --> 00:49:53,325 Scratch gebeurt te worden uitgevoerd met Flash. 1078 00:49:53,325 --> 00:49:56,250 Flash kan praten met uw webcam, als je er een hebt. 1079 00:49:56,250 --> 00:50:00,210 Dus als ik ga je gang en full screen dit Hier, op de groene vlag, mededeling 1080 00:50:00,210 --> 00:50:02,530 dat de veiligheid boodschap Flash's zegt, wil je 1081 00:50:02,530 --> 00:50:04,210 toelaten om mijn webcam te gebruiken? 1082 00:50:04,210 --> 00:50:05,510 >> Normaal, moet u waarschijnlijk zeggen Deny. 1083 00:50:05,510 --> 00:50:07,180 Maar in dit geval, zullen wij zeggen toestaan. 1084 00:50:07,180 --> 00:50:10,430 Dan ga ik Chrome vertellen zodat dit ook. 1085 00:50:10,430 --> 00:50:15,010 En nu, in een ogenblik, je me zien, yep, me. 1086 00:50:15,010 --> 00:50:18,154 En als mijn hand omhoog gaat - 1087 00:50:18,154 --> 00:50:20,390 Ik heb om niet bewegen mijn hoofd tegelijk. 1088 00:50:20,390 --> 00:50:21,740 Er is ook een weerspiegeling op het scherm. 1089 00:50:21,740 --> 00:50:23,480 Kom op, daar gaan we - 1090 00:50:23,480 --> 00:50:27,616 je kunt het verplaatsen op het scherm, omdat er is ook puzzelstukjes - oh, je 1091 00:50:27,616 --> 00:50:31,640 weten wat het is, is het omdat je ook zie het projectiescherm achter me. 1092 00:50:31,640 --> 00:50:33,870 Dus we hebben een beetje oneindige ding aan de hand daar. 1093 00:50:33,870 --> 00:50:36,470 >> Oke, dus ik zal hier beneden spelen. 1094 00:50:36,470 --> 00:50:37,220 Daar gaan we. 1095 00:50:37,220 --> 00:50:41,310 Dus er is ook een puzzelstukje dat zegt, als je ziet beweging eronder 1096 00:50:41,310 --> 00:50:45,470 een van de sprites, kunt u het gaan omhoog, omlaag, links, rechts of iets dergelijks. 1097 00:50:45,470 --> 00:50:48,950 Dus we hebben een beetje van virtual reality gebeurt hier ook, allemaal binnen de 1098 00:50:48,950 --> 00:50:52,570 grenzen van mijn browser, net hier met mijn webcam. 1099 00:50:52,570 --> 00:50:53,980 Dus wat is er dan aan de horizon. 1100 00:50:53,980 --> 00:50:58,350 Het eerste probleem set, zoals u zult zien, of de website zal later online gaan 1101 00:50:58,350 --> 00:51:01,100 vanavond om cs50.net, is vrij veel gaat zijn open einde. 1102 00:51:01,100 --> 00:51:04,410 En implementeren van een Scratch project voor u van belang, een spel, een 1103 00:51:04,410 --> 00:51:08,350 interactie, iets artistieke en daag jezelf om elk nummer te gebruiken 1104 00:51:08,350 --> 00:51:09,660 van deze puzzelstukjes. 1105 00:51:09,660 --> 00:51:11,580 En het kan ofwel interactief op deze manier. 1106 00:51:11,580 --> 00:51:15,470 Of het kan iets meer bewust worden gemaakt om een ​​verhaal te vertellen. 1107 00:51:15,470 --> 00:51:19,200 >> En inderdaad, dat is waar we af zult eindigen vandaag, met een laatste voorbeeld. 1108 00:51:19,200 --> 00:51:21,290 Laat me gaan in Scratch lokaal. 1109 00:51:21,290 --> 00:51:25,300 Laat me ga je gang en open deze, en spelen een laatste programma geschreven door een 1110 00:51:25,300 --> 00:51:29,795 van uw voorgangers, namelijk dat men hier. 1111 00:51:29,795 --> 00:51:32,960 1112 00:51:32,960 --> 00:51:35,938 Goed, verhogen het volume voor deze ene. 1113 00:51:35,938 --> 00:52:53,770 >> [Muziek] 1114 00:52:53,770 --> 00:52:57,255 >> NARRATOR: Bij de volgende CS50, David nodigt een vrijwilliger op het podium. 1115 00:52:57,255 --> 00:52:58,636 >> DAVID Malan: Voor deze demonstratie, we gaan naar een vrijwilliger nodig. 1116 00:52:58,636 --> 00:53:01,050 Wil je naar beneden komen? 1117 00:53:01,050 --> 00:53:02,300 Wat is je naam? 1118 00:53:02,300 --> 00:53:05,320 1119 00:53:05,320 --> 00:53:06,570 Moving on. 1120 00:53:06,570 --> 00:53:08,394