1 00:00:00,000 --> 00:00:11,120 2 00:00:11,120 --> 00:00:12,590 >> Spreker: Ek is [onhoorbaar]. 3 00:00:12,590 --> 00:00:14,820 En ek is 'n senior op Leverett House. 4 00:00:14,820 --> 00:00:18,700 Ek studeer rekenaar wetenskap, en ek is 'n TF vir CS50. 5 00:00:18,700 --> 00:00:21,640 As 'n groentjie, ek het nie eens ' 'n skootrekenaar of 'n smartphone. 6 00:00:21,640 --> 00:00:23,550 Ek het geen programming ervaring. 7 00:00:23,550 --> 00:00:29,690 CS50 was die mees onvergeetlike kursus wat Ek het by Harvard, want dit was 8 00:00:29,690 --> 00:00:32,960 'n stryd, maar dit was 'n baie pret stryd op dieselfde tyd. 9 00:00:32,960 --> 00:00:37,670 En ek het 'n baie amazing, permanente vriende, en ek het geleer 'n baie baie 10 00:00:37,670 --> 00:00:38,830 toepaslike vaardighede. 11 00:00:38,830 --> 00:00:43,480 Ek is net so bly dat ek het nie laat my gebrek aan agtergrond 'n verskoning vir my 12 00:00:43,480 --> 00:00:44,840 neem nie CS50. 13 00:00:44,840 --> 00:00:46,220 Ek is [onhoorbaar]. 14 00:00:46,220 --> 00:00:48,910 Ek is 'n senior op Leverett Huis, klas van 2014. 15 00:00:48,910 --> 00:00:51,670 En ek het CS50. 16 00:00:51,670 --> 00:00:52,380 >> David Malan: So dit is CS50. 17 00:00:52,380 --> 00:00:54,400 Dit is die einde van die week nul. 18 00:00:54,400 --> 00:00:58,500 En onthou waar ons begin die laaste tyd, was met hierdie lampe wat 19 00:00:58,500 --> 00:01:01,420 so gewild dat ons gegaan het en gekoop het 'n paar meer vandag. 20 00:01:01,420 --> 00:01:03,790 So ek dink dit sal wees ons ding vanjaar - 21 00:01:03,790 --> 00:01:07,230 lessenaar lampe as jy kom op die verhoog, ten minste totdat ons loop uit. 22 00:01:07,230 --> 00:01:11,570 >> Maar ons gebruik hierdie herroep, te stel die basiese beginsels van die voorstelling van data. 23 00:01:11,570 --> 00:01:15,640 Ons benodig manier om te begin wat inligting binnekant van 'n rekenaar. 24 00:01:15,640 --> 00:01:18,650 En die eenvoudigste manier om dit te doen, was met een bestanddeel, elektrisiteit. 25 00:01:18,650 --> 00:01:21,760 En die eenvoudigste ding wat jy kan doen met elektrisiteit is dit op en dit af. 26 00:01:21,760 --> 00:01:23,520 Laat die elektrone vloei of nie. 27 00:01:23,520 --> 00:01:27,930 En die gebruik van die twee basiese State van Amerika, af en op, of ware en vals, of nul en 28 00:01:27,930 --> 00:01:31,290 een, het ons begin om te sien dat ons kan bou up, in hierdie geval, met 'n ligte 29 00:01:31,290 --> 00:01:33,720 bolle, meer as getalle net nul en een. 30 00:01:33,720 --> 00:01:36,160 Ons getel so hoog as sewe, byvoorbeeld, die laaste keer. 31 00:01:36,160 --> 00:01:38,840 Maar al wat ons moet doen, is om te hou gooi meer en meer gloeilampe op daardie 32 00:01:38,840 --> 00:01:41,820 probleem en, regtig, kan ons dit voorstel enige getal wat ons 33 00:01:41,820 --> 00:01:42,970 moontlik wil hê. 34 00:01:42,970 --> 00:01:47,230 >> Wel, ons het transitioned vinnig dan op Woensdag om hierdie greep van vrywilligers. 35 00:01:47,230 --> 00:01:52,040 8 stukkies is wat ons in die algemeen noem 'n greep, So hier het ons agt vrywilligers 36 00:01:52,040 --> 00:01:54,900 op Woensdag, wat gesamentlik was wat agt stukkies. 37 00:01:54,900 --> 00:01:56,750 En toe hulle hande gegaan up, was hulle 'n een. 38 00:01:56,750 --> 00:01:58,530 En toe hulle hande was af, was daar 'n nul. 39 00:01:58,530 --> 00:02:01,970 En ons het hierdie mense kom op die verhoog hoekom? 40 00:02:01,970 --> 00:02:06,530 Wat ons in staat is om te doen met hierdie volgorde van die stukkies? 41 00:02:06,530 --> 00:02:07,510 >> 'N alfabet te skep. 42 00:02:07,510 --> 00:02:11,550 Ons was in staat om te bou op die top van daardie vorige les geleer en eintlik 43 00:02:11,550 --> 00:02:14,200 begin meer interessant te maak inligting wat ten minste meer 44 00:02:14,200 --> 00:02:15,330 bekend aan ons mense. 45 00:02:15,330 --> 00:02:18,360 En dit gaan 'n herhalende tema in 50, maar ook rekenaar 46 00:02:18,360 --> 00:02:21,470 wetenskap meer in die algemeen, hierdie idee van gelaagdheid, waar, aan die einde van die 47 00:02:21,470 --> 00:02:24,820 dag, as jy regtig begin om die basiese beginsels met 'n rekenaar, ja, 48 00:02:24,820 --> 00:02:25,760 dit is nulle en ene. 49 00:02:25,760 --> 00:02:27,480 En onder dat dit net elektrisiteit. 50 00:02:27,480 --> 00:02:30,840 Maar ons baie vinnig begin diegene te neem lae vlak besonderhede vir toegestaan 51 00:02:30,840 --> 00:02:35,600 en begin om te laag op die top van die verlede gewerk gedoen sodat ons uiteindelik deur 52 00:02:35,600 --> 00:02:38,610 die einde van die semester, en regtig, meer algemeen as die rekenaar wetenskaplikes 53 00:02:38,610 --> 00:02:42,790 en programmeerders, kan 'n paar regtig kragtige dinge deur gebruik te maak van die werk 54 00:02:42,790 --> 00:02:46,620 dat ons onsself gedoen het en ook staan ​​op die skouers van ander. 55 00:02:46,620 --> 00:02:49,300 >> Nou is ons vinnig transitioned op Woensdag van net hoef te 56 00:02:49,300 --> 00:02:52,080 stel om inligting te wil om iets te doen met dit. 57 00:02:52,080 --> 00:02:54,170 So wat het ons definieer 'n algoritme as? 58 00:02:54,170 --> 00:02:57,340 59 00:02:57,340 --> 00:02:58,900 'N reeks van instruksies. 60 00:02:58,900 --> 00:03:03,380 So dit is 'n reeks van instruksies, 'n aantal stappe wat jy, 'n mens, of 61 00:03:03,380 --> 00:03:07,160 'n rekenaar, meer tipies, sou voer die een na die ander in volgorde 62 00:03:07,160 --> 00:03:08,100 'n doelwit te bereik. 63 00:03:08,100 --> 00:03:11,360 En ons het 'n paar doelwitte laaste tyd, Een daarvan was om te tel 64 00:03:11,360 --> 00:03:12,250 mense in die kamer. 65 00:03:12,250 --> 00:03:15,560 En nog so 'n voorbeeld was om uit te vind Mike Smith in 'n telefoon boek. 66 00:03:15,560 --> 00:03:19,750 >> So jy kan onthou dat ek skeur 'n selfoon boek in die helfte van die rigting van hierdie beland 67 00:03:19,750 --> 00:03:21,280 vind Mike Smith. 68 00:03:21,280 --> 00:03:24,000 Die doel van die visuele was om te demonstreer, weer, dat ons was 69 00:03:24,000 --> 00:03:27,770 letterlik skeur die probleem in helfte, in die helfte, in die helfte, en baie 70 00:03:27,770 --> 00:03:31,750 vinnig gaan uit soos 1000 bladsye om net 'n enkele bladsy. 71 00:03:31,750 --> 00:03:34,860 Diegene van julle wat dit gemis het op Woensdag, het ek gedink ons ​​wil speel terug 72 00:03:34,860 --> 00:03:36,820 sommige beeldmateriaal van wat jy gemis het. 73 00:03:36,820 --> 00:03:38,914 Kom ons neem 'n blik. 74 00:03:38,914 --> 00:03:40,906 >> [Video speel] 75 00:03:40,906 --> 00:03:55,360 76 00:03:55,360 --> 00:03:55,990 >> -Daar gaan ons. 77 00:03:55,990 --> 00:04:01,432 1500 bladsye, mooi skoon lyn, wettige traan. 78 00:04:01,432 --> 00:04:02,850 >> [Einde video-vertoning] 79 00:04:02,850 --> 00:04:05,230 >> David Malan: So dit was Woensdag. 80 00:04:05,230 --> 00:04:09,150 Ons oorgang, al is, op Woensdag nou te wil algoritmes te verteenwoordig 81 00:04:09,150 --> 00:04:12,410 in sommige ietwat standaard manier, nie net beskryf hulle mondelings nie, maar 82 00:04:12,410 --> 00:04:16,290 probeer om hulle uit te druk in te skryf of op 'n rekenaar skerm sodat ons kan 83 00:04:16,290 --> 00:04:19,170 begin om te verbeter op, en wysig hulle, en, uiteindelik, eintlik 84 00:04:19,170 --> 00:04:21,160 analiseer hoe die korrekte of hoe vinnig hulle was. 85 00:04:21,160 --> 00:04:23,360 >> So ons het hierdie idee van pseudokode, wat in 86 00:04:23,360 --> 00:04:26,410 leketaal, is wat? 87 00:04:26,410 --> 00:04:26,930 OK, woorde. 88 00:04:26,930 --> 00:04:28,730 Kom ons gaan 'n bietjie dieper as dit. 89 00:04:28,730 --> 00:04:32,540 Engels, seker nie, maar is na wat einde? 90 00:04:32,540 --> 00:04:35,180 Woorde waarmee te skep of algoritmes voor te stel. 91 00:04:35,180 --> 00:04:38,380 So daar is geen een taal bekend as pseudokode in die wêreld. 92 00:04:38,380 --> 00:04:41,110 Dit is net dat jy, in Engels, of Wat ook al jou gesproke taal is, gebruik 93 00:04:41,110 --> 00:04:44,930 'n soort van vlugtige notasie weergee 'n idee baie bondig. 94 00:04:44,930 --> 00:04:47,930 Maar ons sal sien dat, beslis met 'n Engels pseudokode, en dit blyk 95 00:04:47,930 --> 00:04:51,700 meeste programmeertale hulself is afgeleide van die Engelse self, 96 00:04:51,700 --> 00:04:55,750 ons sal vind dat daar is 'n paar standaard maniere wat pseudokode en 97 00:04:55,750 --> 00:04:57,150 ook programmeringskode nie. 98 00:04:57,150 --> 00:05:00,200 So as jy begin om selfs die eenvoudigste om te sien voorbeelde vandag besef dat hierdie 99 00:05:00,200 --> 00:05:02,160 dieselfde patrone sal volgende week terugkeer. 100 00:05:02,160 --> 00:05:04,710 >> So pseudokode was 'n soort van taal wat lyk soos 101 00:05:04,710 --> 00:05:06,170 'n programmeertaal. 102 00:05:06,170 --> 00:05:09,260 En die eerste voorbeeld het ons gesien visueel geskryf het, was dit een. 103 00:05:09,260 --> 00:05:12,870 Dit was net 'n drie stap program, die doel daarvan was om die nommer te tel 104 00:05:12,870 --> 00:05:15,650 van mense in 'n koshuiskamer vir dat die video op Woensdag. 105 00:05:15,650 --> 00:05:19,040 Maar daar was 'n paar interessante aspekte van hierdie eenvoudigste program. 106 00:05:19,040 --> 00:05:20,320 >> En dit sal wees herhalende temas. 107 00:05:20,320 --> 00:05:22,930 So vir diegene wat nie vertroud is met hierdie een, het ons 'n veranderlike. 108 00:05:22,930 --> 00:05:25,650 En waarskynlik almal in hierdie kamer is vertroud is met 'n veranderlike in die 109 00:05:25,650 --> 00:05:27,250 konteks van algebra. 110 00:05:27,250 --> 00:05:31,190 Maar hier in ontwikkeling, veranderlikes is, een, kan 111 00:05:31,190 --> 00:05:32,220 genoem enigiets wat ons wil hê. 112 00:05:32,220 --> 00:05:33,620 Ons het al met behulp van n as 'n toonbank. 113 00:05:33,620 --> 00:05:37,490 Maar ons kan die woord toonbank gebruik, of as jy sien, die meeste 'n term wat 114 00:05:37,490 --> 00:05:40,240 jy kan so lank as wat dit is soos beskrywende, maar dit is regtig net 'n 115 00:05:40,240 --> 00:05:41,250 stoor houer. 116 00:05:41,250 --> 00:05:44,170 Dit is 'n stuk van die geheue, 'n aantal stukkies, en dit is afhanklik van die rekenaar, hoe 117 00:05:44,170 --> 00:05:47,020 baie stukkies daar dat komponeer daardie veranderlike. 118 00:05:47,020 --> 00:05:48,450 >> Maar ons kan sit waardes in dit. 119 00:05:48,450 --> 00:05:50,740 So ver, ons het net sit nommers. 120 00:05:50,740 --> 00:05:52,290 Maar ons kan sit werklike woorde. 121 00:05:52,290 --> 00:05:53,420 Ons kan sit paragrawe. 122 00:05:53,420 --> 00:05:54,560 Ons kan sit beelde - 123 00:05:54,560 --> 00:05:57,860 enigiets, regtig, kan ons met nulle en ene, kan ons in 124 00:05:57,860 --> 00:05:59,820 hierdie hoër vlak idee van 'n veranderlike. 125 00:05:59,820 --> 00:06:01,350 >> So redelik reguit daar stuur. 126 00:06:01,350 --> 00:06:02,210 En dit is een lyn. 127 00:06:02,210 --> 00:06:05,340 Maar ons baie vinnig aanbeweeg van lyn een om werklik te doen 128 00:06:05,340 --> 00:06:06,600 iets met daardie veranderlike. 129 00:06:06,600 --> 00:06:10,330 En in lyn drie, ons opgedateer N. Ons geinkrementeer N. En ons kon skryf hierdie 130 00:06:10,330 --> 00:06:11,330 'n aantal maniere. 131 00:06:11,330 --> 00:06:14,460 Maar miskien is die mees voor die hand liggend is net om te sê, stel n gelyk aan 132 00:06:14,460 --> 00:06:16,440 wat N is plus 1. 133 00:06:16,440 --> 00:06:17,740 So dit was ons omgeslaan. 134 00:06:17,740 --> 00:06:18,740 >> Intussen was daar 'n lus. 135 00:06:18,740 --> 00:06:20,720 En hierdie een ook, is waarskynlik redelik intuïtief. 136 00:06:20,720 --> 00:06:24,250 'N lus is net iets in 'n program dit gebeur weer en weer, 'n paar 137 00:06:24,250 --> 00:06:25,190 soort siklus. 138 00:06:25,190 --> 00:06:29,300 En hierdie sleutel frase hier, vir elke, is eintlik baie algemeen in die meeste 139 00:06:29,300 --> 00:06:32,300 programmeertale, insluitend wat ons sal sien in die kursus. 140 00:06:32,300 --> 00:06:35,850 Elke keer as jy sien die woord vir dit gewoonlik dra die idee dat 'n 141 00:06:35,850 --> 00:06:38,410 lus, iets sikliese, is om te gebeur. 142 00:06:38,410 --> 00:06:40,980 >> Maar dit is die moeite werd om daarop te let een ander sintaktiese detail. 143 00:06:40,980 --> 00:06:44,660 Die feit dat die derde reël is daar eintlik ingekeep deurdat druk op die 144 00:06:44,660 --> 00:06:46,920 space bar paar keer is doelbewuste. 145 00:06:46,920 --> 00:06:49,870 Omdat menslike konvensie is sodanig dat, wanneer jy iets doen weer 146 00:06:49,870 --> 00:06:54,860 weer, in 'n lus, as begin on line twee, jy streepje enigiets wat behoort 147 00:06:54,860 --> 00:06:58,880 om daardie lus net om duidelik te maak dat dit is lyn drie en nie, byvoorbeeld, 148 00:06:58,880 --> 00:07:01,910 lyn vier of vyf, of daar lyne vir of vyf, wat 149 00:07:01,910 --> 00:07:03,010 deel van daardie loops. 150 00:07:03,010 --> 00:07:07,340 So hierdie eenvoudige inkeping dra dat die basiese idee. 151 00:07:07,340 --> 00:07:09,390 >> So het ons aansoek gedoen hierdie algoritme nou, na 'n paar voorbeelde. 152 00:07:09,390 --> 00:07:12,620 En dit is ook eenvoudige voorbeeld in die werklike wêreld. 153 00:07:12,620 --> 00:07:15,440 Maar dit gaan verteenwoordiger van wees hoe jy te werk sal gaan toets jou 154 00:07:15,440 --> 00:07:17,500 besit toenemend komplekse programme. 155 00:07:17,500 --> 00:07:21,050 Jy probeer om 'n paar scenario's, 'n paar verteenwoordigers insette, en sien as jy 156 00:07:21,050 --> 00:07:22,180 kry die verlangde uitsette. 157 00:07:22,180 --> 00:07:25,090 >> So hierdie voorbeeld het twee mense sit in die koshuiskamer. 158 00:07:25,090 --> 00:07:27,170 Aan die linkerkant is dat dieselfde pseudo-kode. 159 00:07:27,170 --> 00:07:30,800 En dit is 'n screen shot van die baie laaste stap van die toepassing van hierdie 160 00:07:30,800 --> 00:07:35,270 algoritme om die insette, waar daar was daar twee mense in die kamer en, 161 00:07:35,270 --> 00:07:39,190 onthou, as ons stap deur die lyne een, en twee, en drie, en twee 162 00:07:39,190 --> 00:07:41,000 en drie en gedoen het - 163 00:07:41,000 --> 00:07:44,870 teen die einde van die algoritme, het ons inderdaad gereken die twee maats wat 164 00:07:44,870 --> 00:07:45,360 in die kamer. 165 00:07:45,360 --> 00:07:47,190 >> So het ons probeer om nog 'n voorbeeld. 166 00:07:47,190 --> 00:07:48,990 En ons het wat as daar zero mense in die kamer? 167 00:07:48,990 --> 00:07:50,490 Is hierdie kode nog steeds korrek? 168 00:07:50,490 --> 00:07:51,305 En inderdaad was dit. 169 00:07:51,305 --> 00:07:55,240 Dit is net so gebeur dat die lyn twee en dus line drie of 170 00:07:55,240 --> 00:07:56,620 gaan nie uit te voer. 171 00:07:56,620 --> 00:07:59,790 Hulle is nie van plan om te gebeur want hulle is nie net van toepassing indien 172 00:07:59,790 --> 00:08:01,210 daar is zero mense in die kamer. 173 00:08:01,210 --> 00:08:02,300 >> Maar dit is nie 'n groot deal. 174 00:08:02,300 --> 00:08:06,620 Line een geïnisialiseer N aan nul, so selfs al is net een lyn van hierdie 175 00:08:06,620 --> 00:08:10,930 program eindig eintlik tot nut te wees, lewer dit steeds die korrekte antwoord is, as 176 00:08:10,930 --> 00:08:13,780 aangedui deur die oranje nul aan die onderkant. 177 00:08:13,780 --> 00:08:16,300 Maar dan moet ons besluit wat soort van 'n dom algoritme. 178 00:08:16,300 --> 00:08:17,060 Dit was 'n bietjie stadig. 179 00:08:17,060 --> 00:08:19,720 Sekerlik kan ek doen twee, vier, ses, agt, tien, wanneer 180 00:08:19,720 --> 00:08:20,990 toe mense in 'n kamer. 181 00:08:20,990 --> 00:08:25,030 >> So het ons tweaked die algoritme, die pseudokode, om te sê, wat nou in lyn twee, 182 00:08:25,030 --> 00:08:29,710 vir elke paar van die mense in die kamer, voort te gaan, in lyn drie, increment 183 00:08:29,710 --> 00:08:32,200 in deur twee op elke iterasie. 184 00:08:32,200 --> 00:08:35,530 So wat sou hier gewerk het vir hierdie paar van die persone in die kamer. 185 00:08:35,530 --> 00:08:38,530 >> Maar dan, as jy begin dink oor hierdie, en dit het nie lank te neem 186 00:08:38,530 --> 00:08:40,710 besef, wag 'n minuut dit is gaan om te breek, breek dit 187 00:08:40,710 --> 00:08:42,679 na wat eenvoudige saak? 188 00:08:42,679 --> 00:08:45,500 As daar is drie mense in die kamer of, meer in die algemeen, wanneer daar 'n 189 00:08:45,500 --> 00:08:47,660 onewe aantal mense in die kamer, insluitend een. 190 00:08:47,660 --> 00:08:50,390 Ons wil hê dat die persoon wat hier mis, want daar is geen sodanige pare. 191 00:08:50,390 --> 00:08:58,510 So het ons vinnig aangespreek word in plaas bekendstelling van watter bykomende 192 00:08:58,510 --> 00:09:02,560 programmering konstrukte tot die pseudo-kode. 193 00:09:02,560 --> 00:09:04,955 >> So 'n toestand is, ons roep , of 'n tak. 194 00:09:04,955 --> 00:09:08,420 En dit is bedoel om te dra, visueel, die idee van die tak, 'n vurk in die pad 195 00:09:08,420 --> 00:09:11,080 waar jy kan doen, hetsy dit Of miskien, iets anders. 196 00:09:11,080 --> 00:09:15,750 En inderdaad, het ons hierdie kwessie deur voeg lyn 4, deur te sê, regtig nie, ten 197 00:09:15,750 --> 00:09:20,820 die einde, as een persoon bly, dan voort te gaan en tel hulle spesiaal. 198 00:09:20,820 --> 00:09:24,460 Sodat jy soort van spesiale geval het, so te spreek, sodat ons nou kan hanteer 199 00:09:24,460 --> 00:09:27,810 beide 'n ewe getal mense en 'n onewe aantal mense. 200 00:09:27,810 --> 00:09:30,260 >> Nou is daar 'n aantal maniere ons kon uitgespreek het nie. 201 00:09:30,260 --> 00:09:33,590 En eerlik, kon ek nog meer gewees het neet kieskeurig wanneer dit kom by my keuse van 202 00:09:33,590 --> 00:09:35,040 Engels vir die pseudokode. 203 00:09:35,040 --> 00:09:36,970 Maar ten minste is die gees van die idee oorgedra word. 204 00:09:36,970 --> 00:09:40,725 Indien u oorhandig hierdie kode aan 'n vriend wat is nie in CS, of nog nooit geneem 205 00:09:40,725 --> 00:09:44,560 CS, is die kans wat hulle kan uit te vind, gegee drie mense in die kamer, hoe om te 206 00:09:44,560 --> 00:09:46,870 tel die mense gebaseer op hierdie instruksies. 207 00:09:46,870 --> 00:09:49,920 En dit is al wat regtig wat ons wil bereik met pseudokode, een of ander manier 208 00:09:49,920 --> 00:09:54,300 standaardiseer hoe ons gaan oor verteenwoordig idees, sodat ons kan 209 00:09:54,300 --> 00:09:56,670 begin om meer ingewikkeld om te doen ding nog steeds. 210 00:09:56,670 --> 00:09:58,845 >> Sodat ons lei dan vandag om die werklike kode. 211 00:09:58,845 --> 00:10:01,950 Ons begin om die program vandag, al is dit in 'n vriendelike omgewing. 212 00:10:01,950 --> 00:10:05,940 En dan het ons oorgang baie vinnig te 'n meer arcane sintaksis, maar een wat 213 00:10:05,940 --> 00:10:10,340 jy sien, is fundamenteel dieselfde as die idees sal sien manifesteer met 214 00:10:10,340 --> 00:10:11,990 hierdie ander taal vandag. 215 00:10:11,990 --> 00:10:13,920 Dit is net gaan om te kyk 'n bietjie anders. 216 00:10:13,920 --> 00:10:16,590 >> So eerder as om net noem hierdie kode, ek is gaan om 'n bietjie meer akkurate 217 00:10:16,590 --> 00:10:20,170 en sê, van nou af, wanneer die skryf van 'n program, jy skryf bron-kode. 218 00:10:20,170 --> 00:10:21,990 Dit is soort van soos pseudokode. 219 00:10:21,990 --> 00:10:26,540 Maar ons sal sien dit is nie soort van los wanneer dit kom by die keuse van die woorde 220 00:10:26,540 --> 00:10:27,310 wat jy gebruik. 221 00:10:27,310 --> 00:10:31,300 Wanneer programing in 'n taal, het jy die woorde, die frases te gebruik, 222 00:10:31,300 --> 00:10:36,020 Die sintaksis, dat ander mense het besluit om voor te stel 223 00:10:36,020 --> 00:10:37,240 daardie spesifieke taal. 224 00:10:37,240 --> 00:10:38,510 So pseudocodes is aan jou. 225 00:10:38,510 --> 00:10:42,330 'N werklike programmeertaal soos C, as ons sal uiteindelik sien, is 226 00:10:42,330 --> 00:10:43,590 gestandaardiseerde deur ander mense. 227 00:10:43,590 --> 00:10:45,590 >> So, hoe gaan ons nie oor die skryf 'n bron-kode? 228 00:10:45,590 --> 00:10:46,810 Wel, ek gaan om te gaan voort en dit doen. 229 00:10:46,810 --> 00:10:49,100 Ek gaan om voort te gaan en open 'n venster hier. 230 00:10:49,100 --> 00:10:50,210 Meer oor hierdie volgende week. 231 00:10:50,210 --> 00:10:52,300 Maar dit is 'n toestel genoem die CS50 toestel. 232 00:10:52,300 --> 00:10:55,480 Ek hardloop 'n stukkie van die sagteware op my Mac, al wat jy kan doen dieselfde ding 233 00:10:55,480 --> 00:11:00,580 op 'n Windows rekenaar, is dat die gee my die illusie loop 'n ander 234 00:11:00,580 --> 00:11:03,700 bedryfstelsel heeltemal reg hier in 'n venster op my Mac. 235 00:11:03,700 --> 00:11:06,790 Ek het net vol gekeur dit sodat jy dit nie doen nie eintlik sien Mac OS nou. 236 00:11:06,790 --> 00:11:08,340 >> Dit is 'n bedryfstelsel Linux genoem. 237 00:11:08,340 --> 00:11:09,300 Dit is baie gewild. 238 00:11:09,300 --> 00:11:10,120 Dit is baie vinnig. 239 00:11:10,120 --> 00:11:12,950 Dit is baie vry, wat het dit baie dwingende, veral in die 240 00:11:12,950 --> 00:11:13,970 kommersiële wêreld. 241 00:11:13,970 --> 00:11:17,200 En meer op wat aan die einde van die semester wanneer ons gebruik Linux nogal 'n bietjie 242 00:11:17,200 --> 00:11:21,230 vir web ontwikkeling en aanbieding van werklike webtuistes en projekte. 243 00:11:21,230 --> 00:11:24,910 So nou, weet net dat dit 'n lessenaar wat bedoel is om te vaag kyk 244 00:11:24,910 --> 00:11:26,750 vertroud te Windows en Mac OS. 245 00:11:26,750 --> 00:11:29,110 Dit het net 'n paar verskillende name en ikone vir dinge. 246 00:11:29,110 --> 00:11:32,510 Maar dit is die sogenaamde CS50 toestel, 'n virtuele masjien wat, 247 00:11:32,510 --> 00:11:35,310 die begin van volgende week, sal julle hardloop binnekant van 'n venster op 248 00:11:35,310 --> 00:11:36,960 jou eie Mac of PC. 249 00:11:36,960 --> 00:11:39,760 >> Vir vandag, ek gaan om oop te maak die eenvoudigste van programme. 250 00:11:39,760 --> 00:11:41,110 Dit is bekend as gedit. 251 00:11:41,110 --> 00:11:42,565 En dit is net 'n grafiese redakteur. 252 00:11:42,565 --> 00:11:44,695 Dit is soort van soos Microsoft Woord, maar eenvoudiger. 253 00:11:44,695 --> 00:11:47,110 Dit is soort van soos teks wysig of notaboek. 254 00:11:47,110 --> 00:11:50,280 Dit is net 'n baie eenvoudige program met watter woorde om te skryf op die skerm. 255 00:11:50,280 --> 00:11:54,510 Dit is net so wat gebeur as ek red lêers wat Ek skep wanneer hierdie program 256 00:11:54,510 --> 00:11:59,860 in 'n spesiale uitbreiding soos c,. plaas van Doc. of. xls, of wat ook al 257 00:11:59,860 --> 00:12:04,190 jy vertroud is met, kan ek eintlik skep programme gebruik selfs hierdie eenvoudige 258 00:12:04,190 --> 00:12:05,130 teks editor. 259 00:12:05,130 --> 00:12:05,770 >> So laat ek dit doen. 260 00:12:05,770 --> 00:12:09,330 Laat my gaan voort en behalwe hierdie lêer eers as hello.c. 261 00:12:09,330 --> 00:12:12,350 En weer, hierdie gebruikerskoppelvlak sal vertroud te raak gou na jou toe. 262 00:12:12,350 --> 00:12:14,160 Maar vir nou, is ek net te tik in 'n lêer naam. 263 00:12:14,160 --> 00:12:17,410 Ek gaan om dit te red in my John Harvard tuisgids. 264 00:12:17,410 --> 00:12:20,810 En nou het ek die blad wat daarop dui Ek is inderdaad redigering 265 00:12:20,810 --> 00:12:23,070 'n lêer genaamd hello.c. 266 00:12:23,070 --> 00:12:24,510 So niks te interessant nie. 267 00:12:24,510 --> 00:12:26,000 >> En nou is dit gaan kry redelik kriptiese. 268 00:12:26,000 --> 00:12:28,370 Ek gaan om te vergroot, net so dit is meer sigbaar. 269 00:12:28,370 --> 00:12:35,780 En ek gaan om te begin tik sluit stdio.h, int main, leemte, oop krullerige 270 00:12:35,780 --> 00:12:40,140 stut, een, twee, drie, vier ruimtes van inkeping, druk f, vir die gedrukte 271 00:12:40,140 --> 00:12:44,450 iets formaat, kwotasie unquote, "Hello, World" agteroorskuisstreep, n, naby 272 00:12:44,450 --> 00:12:49,640 quote, geslote hakies, kommapunt, tree back space, back space, back space, 273 00:12:49,640 --> 00:12:52,310 back space, gesluit krullerige stut - 274 00:12:52,310 --> 00:12:53,350 Ek het geprogrammeer. 275 00:12:53,350 --> 00:12:57,380 >> Alle reg, sodat dit is 'n super eenvoudige program, regtig, die program wat 276 00:12:57,380 --> 00:12:59,070 iemand begin programmering met. 277 00:12:59,070 --> 00:13:02,300 En al wat dit doen, vir al sy kompleksiteit, is druk op die 278 00:13:02,300 --> 00:13:04,160 skerm, raai wat? 279 00:13:04,160 --> 00:13:04,910 Hello world. 280 00:13:04,910 --> 00:13:07,500 Maar dit is nie voldoende om net 'n program te skryf. 281 00:13:07,500 --> 00:13:08,155 So, dit is die kode. 282 00:13:08,155 --> 00:13:11,300 Dit is die bron-kode in 'n taal, die sogenaamde c. 283 00:13:11,300 --> 00:13:14,380 Dit is tans gestoor in 'n lêer genaamd hello.c. 284 00:13:14,380 --> 00:13:16,180 >> Nou kyk na die onderkant van die skerm hier. 285 00:13:16,180 --> 00:13:17,890 Meer inligting oor hierdie, weer in die komende weke. 286 00:13:17,890 --> 00:13:19,570 Maar dit is wat ons bel 'n terminale venster. 287 00:13:19,570 --> 00:13:21,290 Dit is 'n flikkerende, swart en wit vinnige. 288 00:13:21,290 --> 00:13:24,390 Dit is soort van 'n ou skool koppelvlak 'n rekenaar wat oor die algemeen nie 289 00:13:24,390 --> 00:13:27,050 gebruik van 'n muis of 'n ander grafiese elemente. 290 00:13:27,050 --> 00:13:28,320 Dit maak gebruik van net jou sleutelbord. 291 00:13:28,320 --> 00:13:30,970 En ek kan tik instruksies op hierdie flikkerende vinnige. 292 00:13:30,970 --> 00:13:33,820 >> En vir vandag se doeleindes, is ek net gaan om die volgende te tik - 293 00:13:33,820 --> 00:13:35,610 maak hallo. 294 00:13:35,610 --> 00:13:39,370 En dat program, maak, is net 'n program wat in die werklike wêreld hierdie 295 00:13:39,370 --> 00:13:40,690 dae, ons sal dubbel kliek op. 296 00:13:40,690 --> 00:13:44,580 Maar in hierdie koppelvlak vir vandag, ons is gaan sy naam te tik op hierdie vinnige. 297 00:13:44,580 --> 00:13:47,980 maak hallo is letterlik gaan maak my 'n program genaamd Hello. 298 00:13:47,980 --> 00:13:51,360 En dit gaan om dit te doen deur te kyk vir 'n lêer, net deur 299 00:13:51,360 --> 00:13:53,460 verstek, genoem hello.c. 300 00:13:53,460 --> 00:13:57,260 Dit gaan om te aanvaar ek wil 'n C program uit die aard van hoe hierdie rekenaar 301 00:13:57,260 --> 00:13:58,230 is ingestel. 302 00:13:58,230 --> 00:13:59,550 >> So ek gaan voort en tref betree. 303 00:13:59,550 --> 00:14:02,050 Ek sien 'n paar kriptiese uitset, maar dit sal al te raak 304 00:14:02,050 --> 00:14:03,330 vertroud voor lank. 305 00:14:03,330 --> 00:14:06,870 Dit het gebeur 'n vertaler, meer om te hardloop oor wat in 'n oomblik, genoem klang. 306 00:14:06,870 --> 00:14:09,080 Maar nou, ek het net nog 'n flikkerende gevra. 307 00:14:09,080 --> 00:14:13,060 En ek kan voorlê gaan nou en tik dot streep, vir vervelige redes ons sal 308 00:14:13,060 --> 00:14:14,730 kom terug na volgende week - 309 00:14:14,730 --> 00:14:15,910 hallo. 310 00:14:15,910 --> 00:14:19,650 >> Sodat almal van hierdie poging tot dusver net om te skryf die eenvoudigste van programme wat 311 00:14:19,650 --> 00:14:22,640 so gou as ek druk Enter, doen dit. 312 00:14:22,640 --> 00:14:24,510 So ek geskryf het my eerste program. 313 00:14:24,510 --> 00:14:27,500 So ek doelbewus skeer pret op hierdie baie eenvoudige program 314 00:14:27,500 --> 00:14:28,540 vir 'n paar van die redes. 315 00:14:28,540 --> 00:14:31,990 Een, is dit moeilik om te kry opgewonde oor die neem van 'n klas as 316 00:14:31,990 --> 00:14:33,430 dit is die einde spel. 317 00:14:33,430 --> 00:14:37,100 >> Maar meer as dit, daar is 'n baie afleiding hier. 318 00:14:37,100 --> 00:14:40,640 Die eerste keer wat jy leer om die program, vir dié van julle wat minder gemaklik, en 319 00:14:40,640 --> 00:14:43,410 selfs ek, terug in die dag, toe ek die eerste gesien iets soos hierdie - jy kan soort 320 00:14:43,410 --> 00:14:46,500 van die figuur wat, alles reg, die is in 'n afdruk hallo wêreld. 321 00:14:46,500 --> 00:14:47,860 Maar daar is so baie afleiding. 322 00:14:47,860 --> 00:14:52,110 Daar is so baie sintaksis op die skerm dat dit in die pad van 'n baie 323 00:14:52,110 --> 00:14:54,170 eenvoudige, anders eenvoudig, idees. 324 00:14:54,170 --> 00:14:56,700 >> So wat ons gaan doen vandag is ons gaan ter syde te stel C en kom 325 00:14:56,700 --> 00:14:57,630 Terug na wat op Maandag. 326 00:14:57,630 --> 00:15:00,860 En ons gaan 'n grafiese te gebruik programmering krap. 327 00:15:00,860 --> 00:15:04,470 Dit is 'n programmeertaal, dat ek verwys na op Woensdag, is dat gaan 328 00:15:04,470 --> 00:15:08,870 toe te laat om dieselfde soort van dinge te doen maar draai 'n blinde oog, vir vandag, 329 00:15:08,870 --> 00:15:12,270 aan die krulhakies, die hakies, die kommapunte, en al hierdie dom 330 00:15:12,270 --> 00:15:15,680 afleidings wat in die pad, in hierdie eerste dag van 'n paar basiese, mooi 331 00:15:15,680 --> 00:15:17,230 interessante idees. 332 00:15:17,230 --> 00:15:21,350 >> So in die rigting van die einde, ek gaan om te gaan terug na my lessenaar hier en 333 00:15:21,350 --> 00:15:25,890 bekendstel aan die alternatief vir wat program, wat gaan 'n om te kyk 334 00:15:25,890 --> 00:15:30,790 bietjie iets lig hiervan. 335 00:15:30,790 --> 00:15:33,930 Dit is hoe ons gaan dit te implementeer dieselfde program vandag - twee legkaart 336 00:15:33,930 --> 00:15:37,710 stukke wat, wanneer gevries en geklik word, sal aan die wêreld sê, 337 00:15:37,710 --> 00:15:39,000 hallo wêreld. 338 00:15:39,000 --> 00:15:41,200 >> So laat ons eintlik daar gaan. 339 00:15:41,200 --> 00:15:44,965 So ek gaan om voort te gaan en maak 'n webwerf bekend as scratch.mit.edu. 340 00:15:44,965 --> 00:15:47,980 341 00:15:47,980 --> 00:15:52,040 En dit sal lei om my te hierdie webwerf hier. 342 00:15:52,040 --> 00:15:54,660 In vooraf, het ek aangeteken in hierdie webwerf en die eerste probleme wat 343 00:15:54,660 --> 00:15:55,910 sal loop jy deur sommige van hierdie stappe. 344 00:15:55,910 --> 00:15:58,930 Ek gaan om voort te gaan en kliek op my af gids hier. 345 00:15:58,930 --> 00:16:00,720 >> En dit gaan om my te wys 'n paar projekte wat ek 346 00:16:00,720 --> 00:16:02,570 eintlik geskep in advance. 347 00:16:02,570 --> 00:16:05,860 En dit blyk dat hierdie grafiese programmeertaal nie net gaan 348 00:16:05,860 --> 00:16:08,480 om ons te laat program deur te sleep en val die stukke van die legkaart, sal jy 349 00:16:08,480 --> 00:16:09,730 nie eens nodig om spesiale sagteware. 350 00:16:09,730 --> 00:16:13,190 Dit is alles ingesluit in 'n leser, sodat dat jy dit kan doen, in teorie, op 351 00:16:13,190 --> 00:16:16,810 jou rekenaars reg nou, soos sommige van julle mag wees, sonder om selfs nodig 352 00:16:16,810 --> 00:16:19,870 sagteware soos die CS50 toestel, wat volgende week kom. 353 00:16:19,870 --> 00:16:24,200 >> So ek gaan om te gaan na die boonste hoek hier en kliek op skep. 354 00:16:24,200 --> 00:16:27,840 En in 'n oomblik gaan ek 'n leë te kry skerm via wat ek kan begin 355 00:16:27,840 --> 00:16:30,380 programmering in hierdie grafiese programmeer omgewing. 356 00:16:30,380 --> 00:16:36,140 Maar hierdie keer, dit gaan te veel, baie makliker om werklik te doen. 357 00:16:36,140 --> 00:16:41,560 So in 'n oomblik, wanneer die Wi-Fi werk, ons het nou hierdie skerm. 358 00:16:41,560 --> 00:16:44,870 So 'n vinnige verbale toer, maar ek waag om te sê, seker as jy duik in die 359 00:16:44,870 --> 00:16:46,840 eerste probleem stel, sal jy vind dit al baie 360 00:16:46,840 --> 00:16:48,315 toeganklik en redelik intuïtief. 361 00:16:48,315 --> 00:16:50,900 Maar laat ons verf 'n prentjie vir net 'n oomblik. 362 00:16:50,900 --> 00:16:54,620 >> So onder hierdie vinnige gesê red veranderinge, wat jy oor om af te sien. 363 00:16:54,620 --> 00:16:55,570 Dit is 'n sprite. 364 00:16:55,570 --> 00:16:56,630 Dit is 'n karakter. 365 00:16:56,630 --> 00:17:00,740 En hy woon op wat ons sal 'n stadium noem, hierdie groot wit reghoek op 366 00:17:00,740 --> 00:17:03,120 wat hy kan beweeg op, af, links, reg en doen, regtig, 367 00:17:03,120 --> 00:17:04,670 ander vorme van aksies. 368 00:17:04,670 --> 00:17:08,780 >> Intussen, in die middel van hierdie gebruiker koppelvlak, ons het 'n hele klomp van die 369 00:17:08,780 --> 00:17:09,750 stukke van die legkaart. 370 00:17:09,750 --> 00:17:14,060 En jy sal sien dat hulle sê dinge soos beweeg 10 stappe, draai 15 grade, 371 00:17:14,060 --> 00:17:15,550 punt in 'n sekere rigting. 372 00:17:15,550 --> 00:17:17,910 Maar daar is kategorieë van blokke up ook hier. 373 00:17:17,910 --> 00:17:21,410 So as ek gaan lyk, sal jy sien dat daar is ander stukke van die legkaart wat 374 00:17:21,410 --> 00:17:25,530 blykbaar sal vertel hierdie cit te hallo sê, om te dink, om te wys 375 00:17:25,530 --> 00:17:26,780 homself wegsteek. 376 00:17:26,780 --> 00:17:30,830 As ek gaan af na die klanke, dit blyk daar is maniere om klanke te speel soos miaau, 377 00:17:30,830 --> 00:17:32,670 Alle klanke te stop, 'n drom te speel. 378 00:17:32,670 --> 00:17:36,530 >> So, 'n lang storie kort te maak, is daar 'n hele n klomp van die stukke van die legkaart wat u toelaat om 379 00:17:36,530 --> 00:17:40,920 hierdie kat, of enige aantal te vertel ander karakters, wat om te doen. 380 00:17:40,920 --> 00:17:43,850 Maar om dit alles gebeur jy nodig het om te begin programmering. 381 00:17:43,850 --> 00:17:48,090 En dit groot wit boks, of grys boks, op die regterkant, dit is waar 382 00:17:48,090 --> 00:17:50,170 Ek gaan om werklik te sleep en drop die stukke van die legkaart. 383 00:17:50,170 --> 00:17:54,320 Dit is my leë teks venster ekwivalent. 384 00:17:54,320 --> 00:17:57,070 >> So ek gaan om voort te gaan en kliek Beheer in die middel. 385 00:17:57,070 --> 00:17:58,540 Of eerder, laat ek begin up onder Events. 386 00:17:58,540 --> 00:18:01,530 Onder Events bank, sal jy sien 'n paar dinge wat doelbewus 387 00:18:01,530 --> 00:18:05,240 geboë op die top in so 'n manier dat hulle waarskynlik grendeling nie op die 388 00:18:05,240 --> 00:18:06,710 top van die stukke van die legkaart. 389 00:18:06,710 --> 00:18:10,160 En dit is omdat hulle Demark die begin van 'n program, die begin van 'n 390 00:18:10,160 --> 00:18:11,910 script, om so te praat. 391 00:18:11,910 --> 00:18:16,290 So as ek gaan voort en sleep, wanneer groen vlag gekliek hier, en dan het ek 392 00:18:16,290 --> 00:18:18,060 wil hierdie kat te sê iets wat by die eerste. 393 00:18:18,060 --> 00:18:20,510 So ek gaan om te gaan onder die lyk paneel. 394 00:18:20,510 --> 00:18:24,060 En ek gaan om voort te gaan en die gryp sê hallo blok en sleep en drop, 395 00:18:24,060 --> 00:18:27,220 en laat gaan sodat dit outomaties sluitbalke daar. 396 00:18:27,220 --> 00:18:28,640 >> En dan sien ek kan Klik op die teks. 397 00:18:28,640 --> 00:18:31,960 En ek kan ignoreer dit meer spesifieke wil, sê hallo wêreld. 398 00:18:31,960 --> 00:18:36,340 En nou het ons die program wat ek eis is gelykstaande aan dat baie meer 399 00:18:36,340 --> 00:18:39,670 arcane program Ek geïmplementeer in C 'n oomblik gelede. 400 00:18:39,670 --> 00:18:43,130 >> As ek gaan nou oor na die linkerkant, sien daar is 'n groot stopteken 401 00:18:43,130 --> 00:18:44,520 en 'n groot groen vlag. 402 00:18:44,520 --> 00:18:46,390 Laat my zoom in vir duidelikheid. 403 00:18:46,390 --> 00:18:49,390 En toe ek nou op hierdie groen vlag, jy kan seker raai wat die eerste 404 00:18:49,390 --> 00:18:51,920 program word nou gaan doen nie. 405 00:18:51,920 --> 00:18:55,420 So is daar ook, ons programme, maar ons is eintlik nie om te verval 406 00:18:55,420 --> 00:18:58,980 in sommige van die sintaktiese, minuut besonderhede. 407 00:18:58,980 --> 00:19:01,120 >> Maar laat ons probeer om iets 'n bietjie meer interessant. 408 00:19:01,120 --> 00:19:04,840 Laat my toe te gaan in my Scratch gids hier. 409 00:19:04,840 --> 00:19:10,210 En eintlik, laat my so laat my oopmaak 'n aparte program hier net vir 'n 410 00:19:10,210 --> 00:19:17,830 oomblik, Maksimeer die venster, lêer Open, en ek gaan om te gaan in vandag se 411 00:19:17,830 --> 00:19:18,620 bron gids. 412 00:19:18,620 --> 00:19:21,660 Soos altyd, sal jy vind, vandag en af, dat almal van vandag se voorbeelde 413 00:19:21,660 --> 00:19:25,225 toeganklik is binne die kursus se webblad. 414 00:19:25,225 --> 00:19:31,170 >> En ek gaan om voort te gaan hier en kies 'n bietjie iets anders. 415 00:19:31,170 --> 00:19:33,970 Hierdie een hier, waarvoor Ek het 'n vrywilliger. 416 00:19:33,970 --> 00:19:36,850 Wie het 'n lessenaar lamp wil vandag? 417 00:19:36,850 --> 00:19:40,600 OK, hoe iemand 'n bietjie - is jy op die ou end? 418 00:19:40,600 --> 00:19:42,124 Kom af. 419 00:19:42,124 --> 00:19:47,230 Nou, wil jy graag om deel te neem, of sê net begin met die lessenaar lamp? 420 00:19:47,230 --> 00:19:48,190 >> VANESSA: [onhoorbaar]. 421 00:19:48,190 --> 00:19:48,465 >> David Malan: OK. 422 00:19:48,465 --> 00:19:49,610 Uitstekende, wat is jou 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 Nice om jou te ontmoet. 426 00:19:51,390 --> 00:19:53,840 So kom op en Vanessa se gaan beheer van my te neem 427 00:19:53,840 --> 00:19:55,490 sleutelbord vir net 'n oomblik. 428 00:19:55,490 --> 00:19:57,850 En wat ek hier gedoen het, net vir die tyd se ontwil, as ek besef die 429 00:19:57,850 --> 00:20:01,070 Wi-Fi was 'n bietjie stadig, krap die programmeer omgewing dat ons 430 00:20:01,070 --> 00:20:04,110 gebruik, kan ook afgelaai word en loop op jou plaaslike rekenaar. 431 00:20:04,110 --> 00:20:06,360 So, wat ek gedoen het in die hand van lesing, in geval dit gebeur, is Ek afgelaai 432 00:20:06,360 --> 00:20:09,120 al die lêers wat ons gaan speel met sodat hulle kan hardloop 'n bietjie meer 433 00:20:09,120 --> 00:20:10,840 gou hier op my laptop. 434 00:20:10,840 --> 00:20:13,460 So dit is waarom ek is nou te sien 'n Mac-spesifieke koppelvlak. 435 00:20:13,460 --> 00:20:15,510 >> So ek gaan om voort te gaan en maak hierdie een. 436 00:20:15,510 --> 00:20:18,400 Ek gaan om voort te gaan en nou volle skerm om die venster. 437 00:20:18,400 --> 00:20:21,740 En as jy sien, ons kan baie vinnig, as die student gedoen het, een van 438 00:20:21,740 --> 00:20:26,360 jou voorgangers, gaan van Hello World om 'n veel meer dwingende 439 00:20:26,360 --> 00:20:27,020 aansoek. 440 00:20:27,020 --> 00:20:28,180 So hier is die instruksies. 441 00:20:28,180 --> 00:20:29,500 O ja, en ons het 'n ander ding. 442 00:20:29,500 --> 00:20:31,640 Ek het gedink dit sal pret wees, aangesien, normaalweg, sal ons die verfilming word 443 00:20:31,640 --> 00:20:32,440 kameras op hierdie manier. 444 00:20:32,440 --> 00:20:34,100 Ek het gedink dit sal pret wees as, Vanessa wees, ons kon sien die wêreld 445 00:20:34,100 --> 00:20:35,120 deur jou oë. 446 00:20:35,120 --> 00:20:36,670 So hier het ons 'n paar Google Glass. 447 00:20:36,670 --> 00:20:39,290 >> [VERSTOM snak] 448 00:20:39,290 --> 00:20:41,610 >> David Malan: Ons sal slegs gee weg lessenaar lampe vandag. 449 00:20:41,610 --> 00:20:43,530 >> [Gelag] 450 00:20:43,530 --> 00:20:45,260 >> So laat my cue dit op. 451 00:20:45,260 --> 00:20:49,340 Alle reg, so raak dit. 452 00:20:49,340 --> 00:20:51,910 OK, Glass, 'n video opneem. 453 00:20:51,910 --> 00:20:55,700 454 00:20:55,700 --> 00:20:56,950 Alle reg, Vanessa? 455 00:20:56,950 --> 00:21:00,940 456 00:21:00,940 --> 00:21:05,560 Nou, as 'n weg wat het niks te doen het met nuuts af, as jy kyk 457 00:21:05,560 --> 00:21:08,540 effens op en om die regte, sien jy die letterlike glas, en jy moet 458 00:21:08,540 --> 00:21:09,650 sien 'n klein vierkantige venster. 459 00:21:09,650 --> 00:21:11,500 Jy moet sien al jou klasmaats verfilm nou? 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 So dit is goed. 464 00:21:15,170 --> 00:21:16,660 Ons sal hierdie materiaal later vry te laat. 465 00:21:16,660 --> 00:21:18,460 Vir nou, draai jou aandag na die skerm hier. 466 00:21:18,460 --> 00:21:20,990 En wat jou voorganger gedoen het, is sit 'n paar instruksies op die skerm 467 00:21:20,990 --> 00:21:22,670 net deur die gebruik van 'n verf program. 468 00:21:22,670 --> 00:21:25,040 So jy gaan, in 'n oomblik, druk die space bar te begin. 469 00:21:25,040 --> 00:21:27,790 En dan 'n paar stukke van die legkaart gaan om te begin beweeg op die skerm. 470 00:21:27,790 --> 00:21:30,900 En jy wil die pyltjie sleutels om te tref, net soos in die werklike DDR, in ooreenstemming 471 00:21:30,900 --> 00:21:32,740 met dinge voering met die pyle. 472 00:21:32,740 --> 00:21:33,020 >> VANESSA: OK. 473 00:21:33,020 --> 00:21:33,800 >> David Malan: Jy speel hierdie voor. 474 00:21:33,800 --> 00:21:34,140 >> VANESSA: Ja. 475 00:21:34,140 --> 00:21:37,330 >> David Malan: Alle reg, Vanessa, gaan voort en dit weg te neem. 476 00:21:37,330 --> 00:22:53,082 >> [MUSIEK - KAYNE WES, "Sterker"] 477 00:22:53,082 --> 00:22:57,080 >> [Applous] 478 00:22:57,080 --> 00:22:59,750 >> David Malan: So laat ons nou neem 'n stap van dat. 479 00:22:59,750 --> 00:23:01,230 So duidelik, dit is die einde spel. 480 00:23:01,230 --> 00:23:02,880 Die einde spel is nie hallo wêreld. 481 00:23:02,880 --> 00:23:05,520 Maar jy hoef nie te doen nie noodwendig dinge wat so interaktief. 482 00:23:05,520 --> 00:23:06,810 Jy kan ook animasie. 483 00:23:06,810 --> 00:23:10,790 So byvoorbeeld, 'n ander een van jou opvolgers het hierdie program hier, 484 00:23:10,790 --> 00:23:14,100 wat 'n storie vertel meer as dit geïmplementeer 'n spel. 485 00:23:14,100 --> 00:23:19,180 So laat my gaan voort en oop te maak hier 'n program in ons dieselfde bron gids 486 00:23:19,180 --> 00:23:20,300 van vandag. 487 00:23:20,300 --> 00:23:26,990 Hierdie een oproep, en laat ons begin met 'n koekie liefde storie. 488 00:23:26,990 --> 00:23:30,750 >> En om nie te maak dit ook akademiese, maar as jy kyk na hierdie een, dink aan 489 00:23:30,750 --> 00:23:34,030 jouself watter een van dié eenvoudige programmering konsepte wat ons het gepraat 490 00:23:34,030 --> 00:23:34,630 oor dusver - 491 00:23:34,630 --> 00:23:39,250 veranderlikes en loops, en toestande, het jou voorganger waarskynlik gebruik net 492 00:23:39,250 --> 00:23:41,090 sommige van te implementeer die visualisaties. 493 00:23:41,090 --> 00:23:41,760 Wat jy hier sien. 494 00:23:41,760 --> 00:23:44,118 So ek gee jou 'n koekie liefde storie. 495 00:23:44,118 --> 00:24:06,030 >> [MUSIEK - Green Day, "vakansiedag"] 496 00:24:06,030 --> 00:24:08,022 >> [CRASH] 497 00:24:08,022 --> 00:24:09,272 >> [MUSIEK - die seeskilpaaie, "Gelukkig saam"] 498 00:24:09,272 --> 00:24:58,328 499 00:24:58,328 --> 00:25:00,560 >> David Malan: Alle reg, so daar, ons het 'n koekie liefde storie. 500 00:25:00,560 --> 00:25:01,360 Maar selfs daar - 501 00:25:01,360 --> 00:25:01,755 >> [Applous] 502 00:25:01,755 --> 00:25:08,110 >> David Malan: Alle reg, selfs daar dink oor, as diegene harte gaan uit 503 00:25:08,110 --> 00:25:10,410 die onderste na die bokant van die skerm, Daar was eintlik 'n bietjie van ' 504 00:25:10,410 --> 00:25:11,440 willekeur aan die gang. 505 00:25:11,440 --> 00:25:14,150 En inderdaad, sal ons sien dat selfs in die eenvoudigste van omgewings, soos 506 00:25:14,150 --> 00:25:18,180 Nuuts af, as in C, kan jy genereer ewekansige getalle, of die illusie van 507 00:25:18,180 --> 00:25:21,110 ewekansige getalle, sodat die spel is 'n bietjie meer interessant as wat dit mag 508 00:25:21,110 --> 00:25:23,390 as jy het absoluut hard gekodeer alles. 509 00:25:23,390 --> 00:25:26,360 >> In die beweging wat jy sien, is daar daar is 'n soort van reaksie. 510 00:25:26,360 --> 00:25:28,840 Sodra die peperkoek man raak die peperkoek vrou, het sy 511 00:25:28,840 --> 00:25:30,000 blyk om weg te beweeg. 512 00:25:30,000 --> 00:25:33,580 En so, wel, kan jy implementeer, in meeste programmeertale, die idee 513 00:25:33,580 --> 00:25:38,680 van gebeure, waardeur as een kant raak die ander kant, wat kan aanleiding gee 'n paar 514 00:25:38,680 --> 00:25:41,270 van jou bron-kode te eintlik voer. 515 00:25:41,270 --> 00:25:43,740 Jy kan luister vir sodanige dinge wat op die skerm. 516 00:25:43,740 --> 00:25:47,310 >> So kom ons neem 'n vinnige toer, dan, sommige van die boustene wat ons kan gebruik 517 00:25:47,310 --> 00:25:48,790 sommige van hierdie doelwitte te bereik. 518 00:25:48,790 --> 00:25:51,630 So hier is wat ons sal voortaan roep 'n verklaring gesê. 519 00:25:51,630 --> 00:25:55,030 In 'n verklaring gebeur om te wees in pers Nuuts af, 'n bietjie iets soos hierdie, 520 00:25:55,030 --> 00:25:56,120 maar dit is arbitrêr. 521 00:25:56,120 --> 00:26:00,140 In 'n verklaring is net 'n legkaart stuk of, meer in die algemeen, 'n opdrag, wat 522 00:26:00,140 --> 00:26:03,370 vertel die rekenaar te doen iets, 'n verklaring gesê. 523 00:26:03,370 --> 00:26:04,680 >> So hier is 'n eenvoudige voorbeeld. 524 00:26:04,680 --> 00:26:05,930 Sê hallo wêreld. 525 00:26:05,930 --> 00:26:08,180 'N ander een kan wag word 'n sekonde. 526 00:26:08,180 --> 00:26:10,840 So hierdie legkaart stuk, wat ondersteun word in Scratch, laat ons jou 527 00:26:10,840 --> 00:26:13,050 karakters breek vir 'n paar aantal sekondes. 528 00:26:13,050 --> 00:26:15,330 Dit is ook net 'n verklaring gesê. 529 00:26:15,330 --> 00:26:18,640 >> Hier langs, ons het 'n ander meer interessante een, speel klank miaau, en 530 00:26:18,640 --> 00:26:21,480 die klein pyl beteken dat in nuuts af, dit is 'n drop down menu. 531 00:26:21,480 --> 00:26:22,590 So jy kan invoer klanke. 532 00:26:22,590 --> 00:26:25,095 Jy kan rekord geluide en doen ander lekker dinge in Scratch. 533 00:26:25,095 --> 00:26:28,450 En wat ook al is, aan die einde van die dag, is net 'n verklaring gesê. 534 00:26:28,450 --> 00:26:31,250 Maar laat ons nou stel 'n meer interessante stuk, wat bekend staan ​​as 'n 535 00:26:31,250 --> 00:26:32,630 Boole-uitdrukking. 536 00:26:32,630 --> 00:26:35,180 Capital B, vernoem na 'n mede vernoem Bool. 537 00:26:35,180 --> 00:26:39,500 >> En 'n Boole-uitdrukking is net 'n legkaart stuk of, meer algemeen, 'n 538 00:26:39,500 --> 00:26:42,980 stukkie van die inligting wat waar of vals - 539 00:26:42,980 --> 00:26:45,830 een of nul, ja of nee. 540 00:26:45,830 --> 00:26:48,420 So dit is net een van daardie twee teenoorgesteldes. 541 00:26:48,420 --> 00:26:52,840 So een so 'n Boole-uitdrukking in die wêreld van nuuts af lyk soos hierdie blou 542 00:26:52,840 --> 00:26:53,560 legkaart stuk. 543 00:26:53,560 --> 00:26:56,735 En dit is 'n vraag, muis af, en dit kan óf wees, van 544 00:26:56,735 --> 00:26:58,430 Natuurlik, waar of vals is. 545 00:26:58,430 --> 00:27:01,710 So met hierdie legkaart stuk in nuuts af, Wel, sal jy in staat wees om op te spoor indien 'n 546 00:27:01,710 --> 00:27:05,490 legkaart indien die muis is, in werklikheid, wat gehou word deur die menslike interaksie 547 00:27:05,490 --> 00:27:06,550 met jou program. 548 00:27:06,550 --> 00:27:08,860 >> Hierdie een is 'n bietjie meer abstrakte, maar die twee wit bokse 549 00:27:08,860 --> 00:27:09,740 is net vir getalle. 550 00:27:09,740 --> 00:27:12,950 So jy kan doen dinge soos hierdie is getal minder as die ander? 551 00:27:12,950 --> 00:27:16,180 En indien wel, sal Scratch optree een of ander manier. 552 00:27:16,180 --> 00:27:17,505 Hierdie een is 'n bietjie meer grafiese. 553 00:27:17,505 --> 00:27:21,840 Dit is asof die sprite, as die kat, vir byvoorbeeld, is eintlik te raak van die 554 00:27:21,840 --> 00:27:22,510 muis. 555 00:27:22,510 --> 00:27:25,780 So as die klein pyl kop beweeg oor die kat, dan is dit 556 00:27:25,780 --> 00:27:28,030 legkaart stuk sal evalueer tot ware. 557 00:27:28,030 --> 00:27:31,870 Dit sal waar wees, in welke geval, indien u gebruik van hierdie Boole-uitdrukking, soos ons sal 558 00:27:31,870 --> 00:27:36,340 sien in 'n oomblik, in 'n tak, kan jy óf dit doen, of jy kan dit doen, 559 00:27:36,340 --> 00:27:39,940 baie soos ons het 'n toestand wat nagegaan word, is daar een meer persoon wat laaste 560 00:27:39,940 --> 00:27:40,460 in die kamer? 561 00:27:40,460 --> 00:27:42,070 As dit so is, voeg een. 562 00:27:42,070 --> 00:27:44,430 Andersins, nie verder bekommer nie. 563 00:27:44,430 --> 00:27:48,650 >> So 'n Boole-uitdrukking kan ook en ge-saam of of-ed saam. 564 00:27:48,650 --> 00:27:53,120 So jy kan kombineer Boolse uitdrukkings en sê dit en dit moet waar wees vir 565 00:27:53,120 --> 00:27:54,710 die hele ding om waar te wees. 566 00:27:54,710 --> 00:27:56,520 En hier is 'n meer werklike wêreld voorbeeld. 567 00:27:56,520 --> 00:28:00,060 As jy gebruik CS50 kursusse kursus te doen inkopies doen, hierdie blok 568 00:28:00,060 --> 00:28:03,520 daar, waar as jy seker maak dat blokkie langs tot die kursusse, sal wat sê, ja, 569 00:28:03,520 --> 00:28:07,860 net wys my kursusse waarvoor die Q waarde is 4,5 of hoër. 570 00:28:07,860 --> 00:28:10,610 As jy die blokkie dit, nee, dit nie doen nie bekommerd wees oor wat. 571 00:28:10,610 --> 00:28:13,910 Of soortgelyk, op die reg, het nie Konflik met kursusse ek neem, 572 00:28:13,910 --> 00:28:15,650 dit is waar of vals is. 573 00:28:15,650 --> 00:28:16,715 Dit is net 'n Boole-uitdrukking. 574 00:28:16,715 --> 00:28:20,080 So al hierdie tyd wanneer jy gebruik webwerwe met blok, is jy net 575 00:28:20,080 --> 00:28:23,570 Reguliere die ekwivalent van 'n Boole uitdrukking op en af. 576 00:28:23,570 --> 00:28:25,270 >> So in watter vorm gebruik jy dit? 577 00:28:25,270 --> 00:28:28,820 Wel, in Scratch, sal ons sien in 'n oomblik dat daar is toestande wat 578 00:28:28,820 --> 00:28:29,560 lyk. 579 00:28:29,560 --> 00:28:33,130 En dit is soort van sinvolle omdat baie soos in pseudokode, ons ingekeep 580 00:28:33,130 --> 00:28:38,550 die soort van U-vormige stukke van die legkaart, beteken dat alles binnekant van wat U is 581 00:28:38,550 --> 00:28:41,390 gaan uit te voer, of nie, afhangende op die plek waar dit is. 582 00:28:41,390 --> 00:28:45,310 So as Boole-uitdrukking, dan net die binnekant uitgevoer sal kry. 583 00:28:45,310 --> 00:28:46,800 >> Intussen is daar 'n as / anders blok. 584 00:28:46,800 --> 00:28:50,320 So as jy wil 'n tak wat gaan hierdie manier of daardie, gee Scratch ons dat. 585 00:28:50,320 --> 00:28:54,500 En deur hierdie logika, nou, selfs al is dit legkaart stuk is duidelik te klein 586 00:28:54,500 --> 00:28:57,400 iets anders binnekant van dit te wig, die kras legkaart stukke, hulle is 587 00:28:57,400 --> 00:28:58,150 net gaan om te groei. 588 00:28:58,150 --> 00:29:01,370 Wanneer jy sleep en oor iets, dit sal net groei aan te pas wat dit 589 00:29:01,370 --> 00:29:02,510 is jy probeer om te doen. 590 00:29:02,510 --> 00:29:07,230 >> So ons kan neem om twee van hierdie dinge, en 'n drie wyse vurk in die pad so 591 00:29:07,230 --> 00:29:11,300 dat jy of dit of dat, of hierdie ander ding net deur die nes hulle 592 00:29:11,300 --> 00:29:12,070 op dié manier. 593 00:29:12,070 --> 00:29:14,370 Natuurlik, as jy doen dit ook veel nie, dit begin om te kry lelik. 594 00:29:14,370 --> 00:29:17,660 Maar op daardie punt, is jy eintlik waarskynlik nie die programmering baie goed. 595 00:29:17,660 --> 00:29:20,490 En so sal dit nie wees herhalende tema, ook dat van die styl. 596 00:29:20,490 --> 00:29:22,790 Hoe goed nie eintlik formaat van die kode? 597 00:29:22,790 --> 00:29:24,580 Of hoe goed ontwerp jy jou kode? 598 00:29:24,580 --> 00:29:26,430 Maar meer oor dit in die toekoms. 599 00:29:26,430 --> 00:29:27,470 >> En nou het ons loops. 600 00:29:27,470 --> 00:29:30,310 Daar is 'n mooi vir ewig lus in Scratch Dit beteken letterlik dat - doen 601 00:29:30,310 --> 00:29:32,710 net die binnekant van die weer, en weer en weer. 602 00:29:32,710 --> 00:29:35,880 Jy kan meer konkrete en sê: doen die volgende ding 10 keer. 603 00:29:35,880 --> 00:29:37,620 Jy kan ook gebruik om veranderlikes. 604 00:29:37,620 --> 00:29:40,260 Jy kan kom met 'n naam in daardie bietjie drop down en sê, gee my 'n 605 00:29:40,260 --> 00:29:43,190 veranderlike genoem en n stel dit gelyk is aan 'n bietjie waarde. 606 00:29:43,190 --> 00:29:44,910 En dan kan jy funksies. 607 00:29:44,910 --> 00:29:46,850 Maar meer op dié wat in net 'n oomblik. 608 00:29:46,850 --> 00:29:49,140 >> Laat my toe terug te gaan na my Krap koppelvlak. 609 00:29:49,140 --> 00:29:50,970 En laat my voort te gaan hierdie keer. 610 00:29:50,970 --> 00:29:56,660 En laat ons gaan voort en oop te maak, kom ons sê, 'n voorbeeld van - 611 00:29:56,660 --> 00:29:58,740 dit is 'n bietjie meer interessant. 612 00:29:58,740 --> 00:30:00,750 Laat my voortgaan, en eintlik, Laat my maak dit net myself. 613 00:30:00,750 --> 00:30:01,960 Ek het nie nodig om hierdie een te maak. 614 00:30:01,960 --> 00:30:03,390 Laat my gaan na File, New. 615 00:30:03,390 --> 00:30:04,740 Ek gaan om te gaan na die gebeure. 616 00:30:04,740 --> 00:30:08,460 Ek gaan om te gaan wanneer groen vlag gebruik het, en ek gaan om te gaan om te blaas. 617 00:30:08,460 --> 00:30:11,590 En ek gaan om te sleep en hierdie legkaart stuk, speel klank miaau. 618 00:30:11,590 --> 00:30:12,580 Dit Haken saam. 619 00:30:12,580 --> 00:30:14,327 En nou, as ek op die groen vlag - 620 00:30:14,327 --> 00:30:16,260 >> [Miaau SOUND] 621 00:30:16,260 --> 00:30:17,500 >> David Malan: Adorable. 622 00:30:17,500 --> 00:30:21,560 OK, so nou kom ons doen iets 'n bietjie meer logiese net om te bewys dat 623 00:30:21,560 --> 00:30:22,760 ons kan, vir nou. 624 00:30:22,760 --> 00:30:25,550 Ek gaan om te ontsluit dit van die man. 625 00:30:25,550 --> 00:30:27,000 Ek gaan om te gaan om te beheer. 626 00:30:27,000 --> 00:30:28,770 En ek gaan 'n toestand aan te gryp. 627 00:30:28,770 --> 00:30:30,600 So as iets dan. 628 00:30:30,600 --> 00:30:32,020 So dit is hoe dit daar lyk. 629 00:30:32,020 --> 00:30:33,890 So ek het 'n Boole-uitdrukking. 630 00:30:33,890 --> 00:30:38,130 En laat my gaan voort en sê: laat my gaan aan operateurs. 631 00:30:38,130 --> 00:30:40,270 Ek gaan om iets te doen effens Mathy, net vir die skop. 632 00:30:40,270 --> 00:30:43,600 Ek gaan om te gaan in hier en sê, as iets wat minder is as iets anders, 633 00:30:43,600 --> 00:30:45,030 gaan voort en doen iets. 634 00:30:45,030 --> 00:30:46,890 So nou, jy weet wat, 'n ewekansige blok. 635 00:30:46,890 --> 00:30:51,620 So hoe sien, as ek hang oor hierdie ding hier, wat sal snap in daar. 636 00:30:51,620 --> 00:30:54,090 >> So nou, kennis, ek is besig om te doen iets wat reeds meer logies 637 00:30:54,090 --> 00:30:54,650 interessant. 638 00:30:54,650 --> 00:30:59,720 Indien 'n ewekansige getal tussen 1 en 10 minder is as, kom ons sê ses. 639 00:30:59,720 --> 00:31:03,670 As ek kies om ses, wat in wese middel, doen die volgende met 50% 640 00:31:03,670 --> 00:31:03,980 waarskynlikheid. 641 00:31:03,980 --> 00:31:05,460 Dit is soos daarby 'n muntstuk. 642 00:31:05,460 --> 00:31:07,330 Nou kan ek iets doen voorwaardelik. 643 00:31:07,330 --> 00:31:10,800 En dat iets wat ek gaan om dit te doen is speel die klank. 644 00:31:10,800 --> 00:31:14,280 So nou, wanneer ek op die skerm vlag, is dit soos die gooi van 'n muntstuk. 645 00:31:14,280 --> 00:31:14,610 >> [Miaau SOUND] 646 00:31:14,610 --> 00:31:17,160 >> David Malan: Dit was hoofde of is daar iets anders is. 647 00:31:17,160 --> 00:31:17,920 Kom ons doen dit weer. 648 00:31:17,920 --> 00:31:18,860 >> [Miaau SOUND] 649 00:31:18,860 --> 00:31:19,790 >> David Malan: Hoofde weer. 650 00:31:19,790 --> 00:31:20,280 >> [Miaau SOUND] 651 00:31:20,280 --> 00:31:21,500 >> David Malan: Hoofde weer. 652 00:31:21,500 --> 00:31:22,631 Sjoe, OK. 653 00:31:22,631 --> 00:31:24,720 Sterte daardie tydstip. 654 00:31:24,720 --> 00:31:29,545 So 50% van die tyd, as ons dit doen, oneindig lank, sal ons kry 50% meows 655 00:31:29,545 --> 00:31:32,180 en 50% stiltes. 656 00:31:32,180 --> 00:31:34,850 So is daar net 'n basiese gebou blok waarmee ons dit doen. 657 00:31:34,850 --> 00:31:37,710 Maar dit is 'n soort van saai dat ek om deur te druk dat die knoppie. 658 00:31:37,710 --> 00:31:39,810 So laat ons net sleep en gooi almal weg. 659 00:31:39,810 --> 00:31:42,270 As jy sleep hulle na die middel, hulle sal net verwyder hulself. 660 00:31:42,270 --> 00:31:43,760 >> Laat my gaan, te beheer. 661 00:31:43,760 --> 00:31:46,060 Laat my gaan om vir ewig. 662 00:31:46,060 --> 00:31:49,952 En hierdie keer, ek gaan om dit te doen iets minorly irriterende. 663 00:31:49,952 --> 00:31:51,560 >> [Gelag] 664 00:31:51,560 --> 00:31:53,370 >> David Malan, maar laat my gaan voort en doen beheer. 665 00:31:53,370 --> 00:31:57,260 Wag 'n sekonde, net so dit is nie te rooster. 666 00:31:57,260 --> 00:31:59,870 >> [Miaau SOUND] 667 00:31:59,870 --> 00:32:00,970 >> David Malan: Dit is nie 'n natuurlike. 668 00:32:00,970 --> 00:32:01,861 OK. 669 00:32:01,861 --> 00:32:04,510 >> [Miaau SOUND] 670 00:32:04,510 --> 00:32:06,406 >> David Malan: En kennisgewing wat, lekker oor nuuts af, vir dié van julle wat 671 00:32:06,406 --> 00:32:09,210 vooraf programing ervaring, het jy nie nodig om te begin en stop. 672 00:32:09,210 --> 00:32:10,060 Jy hoef nie saam te stel. 673 00:32:10,060 --> 00:32:13,210 Jy moet net dit verander, en die program sal dinamies aanpas. 674 00:32:13,210 --> 00:32:14,620 So, dit is om 'n bietjie interessant. 675 00:32:14,620 --> 00:32:16,930 Maar laat ons neem dit 'n stap verder. 676 00:32:16,930 --> 00:32:19,760 Laat my gaan voort en kry ontslae te raak van die program. 677 00:32:19,760 --> 00:32:23,300 >> [Miaau SOUND] 678 00:32:23,300 --> 00:32:25,520 >> David Malan: Dit is wat ons sal roep 'n fout in nuuts af. 679 00:32:25,520 --> 00:32:26,770 Hy moet hou nie maak dat 'n gesonde. 680 00:32:26,770 --> 00:32:28,340 So ons sal ons vertel om hom te stop. 681 00:32:28,340 --> 00:32:30,435 Alle reg, so nou is ek gaan om te gaan in - 682 00:32:30,435 --> 00:32:32,180 Ek sal jou laat weet MIT. 683 00:32:32,180 --> 00:32:35,160 Ons gaan hier om vir ewig. 684 00:32:35,160 --> 00:32:37,240 En nou, ek wil om iets te doen weer en weer. 685 00:32:37,240 --> 00:32:38,760 Ek gaan om te gaan in beheer. 686 00:32:38,760 --> 00:32:41,570 >> En laat ons sien, ek gaan om te sleep my indien toestand daar. 687 00:32:41,570 --> 00:32:42,850 So nou kennis van die logika. 688 00:32:42,850 --> 00:32:46,430 Wanneer die groen vlag word gebruik, doen iets wat vir ewig nie, maar net doen wat 689 00:32:46,430 --> 00:32:48,890 iets as hierdie ander ding is waar. 690 00:32:48,890 --> 00:32:51,480 Ek gaan om te gaan, laat ons sê, sensors. 691 00:32:51,480 --> 00:32:54,430 En ek gaan om voort te gaan en kies raak en gooi dit daar. 692 00:32:54,430 --> 00:32:55,930 Dit is 'n Boole-uitdrukking. 693 00:32:55,930 --> 00:32:57,740 >> En nou, kennisgewing, in hierdie daling down menu, is daar 694 00:32:57,740 --> 00:32:59,050 sommige gedefinieerde waardes. 695 00:32:59,050 --> 00:33:00,910 So ek kan sê, is jy raak die rand van die skerm? 696 00:33:00,910 --> 00:33:03,900 Of is jy te raak van die muis, die pyl op die skerm? 697 00:33:03,900 --> 00:33:04,620 So ek gaan om dit te doen. 698 00:33:04,620 --> 00:33:08,770 En as dit so is, dan is ek gaan om te gaan voort en speel klank miaau. 699 00:33:08,770 --> 00:33:11,250 So nou het ek soort van die begin van 'n spel - 700 00:33:11,250 --> 00:33:13,110 'n pragtige spel. 701 00:33:13,110 --> 00:33:14,060 >> [Miaau SOUND] 702 00:33:14,060 --> 00:33:17,250 >> David Malan: OK, 'n pragtige, karretjie spel. 703 00:33:17,250 --> 00:33:20,770 Laat my wag, kom ons sê, een sekonde daar. 704 00:33:20,770 --> 00:33:24,910 Nou weer te speel, deur te kliek die groen vlag. 705 00:33:24,910 --> 00:33:27,860 >> [Miaau SOUND] 706 00:33:27,860 --> 00:33:30,460 >> David Malan: So nou is dit soos troetel 'n kat. 707 00:33:30,460 --> 00:33:31,850 >> [Miaau SOUND] 708 00:33:31,850 --> 00:33:34,460 >> David Malan: Alle reg, nou is dit een wat ek het maak in advance. 709 00:33:34,460 --> 00:33:39,250 Baie laat, dit raak soort maklik om dom dinge te doen. 710 00:33:39,250 --> 00:33:40,240 So laat my gaan in hier. 711 00:33:40,240 --> 00:33:43,720 Kom ons sê, dat die kat is Pet. 712 00:33:43,720 --> 00:33:46,600 Kom nou oop Moenie troeteldier die Cat. 713 00:33:46,600 --> 00:33:48,330 Nou, as ons speel hierdie een, jy kan raai, as jy 714 00:33:48,330 --> 00:33:49,650 kyk na die skerm - 715 00:33:49,650 --> 00:33:51,090 >> [Miaau SOUND] 716 00:33:51,090 --> 00:33:52,170 >> David Malan: Nou, as ek troeteldier die kat 717 00:33:52,170 --> 00:33:55,420 >> [Gebrul van die leeu] 718 00:33:55,420 --> 00:33:57,260 >> David Malan: So nie eintlik troeteldier die kat in daardie geval. 719 00:33:57,260 --> 00:34:01,350 So nou het ons net 'n voorbeeld van 'n tak wat gaan in twee rigtings. 720 00:34:01,350 --> 00:34:03,130 Nou laat ek gaan voort en open 'n ander een hier. 721 00:34:03,130 --> 00:34:07,120 Hierdie een, ook onder ons bron kode lêers vir die dag. 722 00:34:07,120 --> 00:34:13,199 So laat my gaan terug in my Bron gids en gaan, laat ons kies 723 00:34:13,199 --> 00:34:15,610 hierdie man hier en sien wat anders is. 724 00:34:15,610 --> 00:34:17,449 >> Sjoe, alles reg, so nou is dit om 'n bietjie meer ingewikkeld. 725 00:34:17,449 --> 00:34:21,300 En voor ons sien wat hierdie man doen, laat ons probeer om af te lei, uit die program 726 00:34:21,300 --> 00:34:22,219 aan die regterkant. 727 00:34:22,219 --> 00:34:25,590 En nou af kan ons duidelik te het verskeie skrifte, verskeie 728 00:34:25,590 --> 00:34:29,730 programme wat verband hou met 'n sprite, met 'n karakter, en blykbaar, 729 00:34:29,730 --> 00:34:31,760 Hulle is albei gaan loop in lockstep. 730 00:34:31,760 --> 00:34:35,570 Omdat beide van hierdie programme begin met wanneer groen vlag druk, is dit 731 00:34:35,570 --> 00:34:38,650 sinspeel op 'n meer gevorderde onderwerp, met wat sommige van julle dalk bekend wees, 732 00:34:38,650 --> 00:34:40,580 bekend as threading, of multi-threading. 733 00:34:40,580 --> 00:34:44,400 >> Turns out, lang storie kort, rekenaars Vandag kan in wese doen verskeie 734 00:34:44,400 --> 00:34:45,270 dinge op een slag. 735 00:34:45,270 --> 00:34:48,659 Of hulle kan een ding te doen op 'n tyd so vinnig dat jy nie agterkom selfs dat 736 00:34:48,659 --> 00:34:50,150 dit is eintlik een ding op 'n slag. 737 00:34:50,150 --> 00:34:53,320 Maar vir nou, laat ons veronderstel dat beide hierdie programme gaan uit te voer op 738 00:34:53,320 --> 00:34:54,310 dieselfde tyd. 739 00:34:54,310 --> 00:34:57,350 En kennis, beide van hulle het vir ewig stukke van die legkaart. 740 00:34:57,350 --> 00:35:01,270 So hulle is beide die gang te hou hardloop totdat ek druk op die rooi stopstraat. 741 00:35:01,270 --> 00:35:02,100 >> So wat gaan hulle doen? 742 00:35:02,100 --> 00:35:06,030 Op die linkerkant, ek is blykbaar waarby 'n veranderlike genoem gedemp. 743 00:35:06,030 --> 00:35:09,030 So ek het nie noem dit iets soos vervelig soos N. ek het dit gedempte hierdie 744 00:35:09,030 --> 00:35:10,240 tyd betekenis oor te dra. 745 00:35:10,240 --> 00:35:11,780 Ek stel dit gelyk aan nul. 746 00:35:11,780 --> 00:35:16,200 Kom ons dink dat as vals of Kom ons dink dat as vals. 747 00:35:16,200 --> 00:35:17,490 >> Nou, vir ewig doen die volgende. 748 00:35:17,490 --> 00:35:23,280 As die keyboard se spasie balk gedruk word, dan as gedempte gelyk aan nul, 749 00:35:23,280 --> 00:35:25,930 verander dan gedempte tot gelyke een. 750 00:35:25,930 --> 00:35:27,580 Anders, wat gedempte aan nul. 751 00:35:27,580 --> 00:35:30,530 So logies, selfs al is dit 'n hele n klomp van die stukke van die legkaart wat 752 00:35:30,530 --> 00:35:33,160 net sê, toe ek die Space bar, wat moet ek doen om die veranderlike 753 00:35:33,160 --> 00:35:34,750 genoem gedempte? 754 00:35:34,750 --> 00:35:37,170 Verander van die een na nul, of nul tot een. 755 00:35:37,170 --> 00:35:37,840 Dit is al. 756 00:35:37,840 --> 00:35:40,740 So dit is soos om 'n lig skakelaar op of af en onthou, met 'n 757 00:35:40,740 --> 00:35:42,330 veranderlike, dat ek dit gedoen het. 758 00:35:42,330 --> 00:35:45,990 >> Intussen, op die regterkant, in leketaal, wat is die doel van 759 00:35:45,990 --> 00:35:47,547 die script op die reg? 760 00:35:47,547 --> 00:35:48,860 >> STUDENT: die see leeu klank te speel. 761 00:35:48,860 --> 00:35:52,500 >> David Malan: Sea Lion klank te speel, as hy nie is afgeskakel deur 762 00:35:52,500 --> 00:35:53,480 aard van daardie veranderlike. 763 00:35:53,480 --> 00:35:57,360 So ons is deel van die staat, so te sê, deel van inligting oor hierdie twee 764 00:35:57,360 --> 00:36:00,540 skrifte, want hier sien, is ons vir ewig die volgende te doen. 765 00:36:00,540 --> 00:36:04,620 As gedempte nul is, so as dit nie gedemp - As gedempte vals is, dan speel 766 00:36:04,620 --> 00:36:05,980 hierdie Sea Lion klank. 767 00:36:05,980 --> 00:36:09,930 En dink aan jouself, hi, hi, hi, vir twee sekondes, wag 'n oomblik, en dan 768 00:36:09,930 --> 00:36:11,140 kyk weer. 769 00:36:11,140 --> 00:36:15,150 So as ons gaan nou hier aan die linkerkant, na die plek waar hierdie man is, en druk die 770 00:36:15,150 --> 00:36:16,662 groen vlag, 771 00:36:16,662 --> 00:36:30,260 >> [Seeleeu SOUND] 772 00:36:30,260 --> 00:36:31,910 >> David Malan: Op watter punt hierdie kry regtig irriterende? 773 00:36:31,910 --> 00:36:33,440 Want dit sal net gaan vir ewig. 774 00:36:33,440 --> 00:36:36,490 So soms, oneindige lusse, om so te praat, is doelbewuste. 775 00:36:36,490 --> 00:36:41,140 Maar in hierdie geval, so gou as ek druk die space bar, het hy tot stilstand kom. 776 00:36:41,140 --> 00:36:42,800 Nou is die program het nie ophou. 777 00:36:42,800 --> 00:36:44,760 Dit is steeds aan die gang in hierdie loops. 778 00:36:44,760 --> 00:36:46,540 Maar as ek die space bar weer - 779 00:36:46,540 --> 00:36:47,851 >> [Seeleeu SOUND] 780 00:36:47,851 --> 00:36:49,650 >> David Malan: Hy gaan haal up waar hy opgehou het. 781 00:36:49,650 --> 00:36:53,240 So daar is 'n manier vir ons om te doen iets wat weer en weer, maar dat 782 00:36:53,240 --> 00:36:54,920 tyd, slegs voorwaardelik. 783 00:36:54,920 --> 00:36:58,940 Wel, terwyl ons in hierdie trant van doen dinge weer en weer, laat my 784 00:36:58,940 --> 00:37:01,370 gaan in 'n ander so 'n voorbeeld hier. 785 00:37:01,370 --> 00:37:04,370 Hierdie een ons bel skape tel. 786 00:37:04,370 --> 00:37:05,710 >> En sien wat hierdie man doen. 787 00:37:05,710 --> 00:37:08,540 Dit is eintlik 'n bietjie meer soos die pseudokode ons gespeel met op 788 00:37:08,540 --> 00:37:12,230 Woensdag, waardeur hy sit 'n toonbank, dink dit is as N weer te 789 00:37:12,230 --> 00:37:14,030 nul, het hy nie vir ewig die volgende. 790 00:37:14,030 --> 00:37:17,960 Hy sê die toonbank se waarde vir een tweede, wag 'n tweede, en dan 791 00:37:17,960 --> 00:37:19,430 verander die toonbank vir een. 792 00:37:19,430 --> 00:37:21,570 En in hierdie konteks, wat net beteken dit inkremente. 793 00:37:21,570 --> 00:37:23,250 So voeg hy by een om dit te. 794 00:37:23,250 --> 00:37:25,830 So, dit is letterlik - 795 00:37:25,830 --> 00:37:27,890 dit is nie heeltemal wat ons dink van as skape tel. 796 00:37:27,890 --> 00:37:33,120 Dit is die skape doen die tel, ewig, het van nul. 797 00:37:33,120 --> 00:37:35,560 >> So ons kan doen om soortgelyke dinge daar, logies. 798 00:37:35,560 --> 00:37:37,750 Maar laat ons nou probeer om skoon te maak sommige van hierdie dinge. 799 00:37:37,750 --> 00:37:43,440 Laat my voort te gaan nou in 'n eenvoudige voorbeeld waar ons kat is net gaan om te 800 00:37:43,440 --> 00:37:44,750 begin hoes. 801 00:37:44,750 --> 00:37:48,830 Alle reg, so hier het ons hoes 0 - 802 00:37:48,830 --> 00:37:50,685 rekenaar wetenskaplikes begin tel van 0. 803 00:37:50,685 --> 00:37:53,480 So, die kat is net gaan drie keer om te hoes. 804 00:37:53,480 --> 00:37:54,890 En hier is hoe ek geïmplementeer nie. 805 00:37:54,890 --> 00:38:00,130 Wanneer groen vlag gebruik het, hoes, wag, hoes, wag, hoes, wag. 806 00:38:00,130 --> 00:38:02,470 En ek het dit net deur te sleep en val stukke van die legkaart. 807 00:38:02,470 --> 00:38:04,740 Of as jy begin om te geknoei met krap sal jy sien jy eintlik kan 808 00:38:04,740 --> 00:38:08,620 dupliseer stukkies so dat jy kan doen dinge meer vinnig sonder sleep 809 00:38:08,620 --> 00:38:10,310 en val ad nauseum. 810 00:38:10,310 --> 00:38:12,680 >> Maar ons is nog nie op die beste pad hier. 811 00:38:12,680 --> 00:38:15,210 Want hoe maak ek hom hoes 'n vierde keer? 812 00:38:15,210 --> 00:38:16,790 Wel, kan ek soort van hier af. 813 00:38:16,790 --> 00:38:19,420 Ek kon dupliseer en dan Plak hierdie in daar. 814 00:38:19,420 --> 00:38:21,740 Hoe maak ek hom hoes 'n vyfde keer? 815 00:38:21,740 --> 00:38:23,230 Wel, kopieer en plak weer. 816 00:38:23,230 --> 00:38:24,210 Of sleep drop weer. 817 00:38:24,210 --> 00:38:26,920 En baie vinnig, is hierdie program begin om te kry regtig, regtig oorbodig, 818 00:38:26,920 --> 00:38:28,880 regtig lank, maar regtig vervelig. 819 00:38:28,880 --> 00:38:30,120 Maar daar is 'n manier om dit op te skoon te maak. 820 00:38:30,120 --> 00:38:33,680 Wat is die voor die hand liggende manier hierdie up skoon te maak? 821 00:38:33,680 --> 00:38:36,280 >> OK, so ons kon regtig eintlik gaan uit en, wanneer jy druk op die ruimte 822 00:38:36,280 --> 00:38:37,070 bar, het hom hoes. 823 00:38:37,070 --> 00:38:40,150 Maar as ek wil net om iets te doen herhaaldelik, onthou dat ons nie ' 824 00:38:40,150 --> 00:38:41,310 n mate van beheer konstrukte. 825 00:38:41,310 --> 00:38:43,800 Laat my trek dit uit die manier, gaan onder beheer. 826 00:38:43,800 --> 00:38:47,340 Laat my net te doen om 'n herhaling, sê, drie keer. 827 00:38:47,340 --> 00:38:49,410 En nou, laat my steel 'n van hierdie stukke van die legkaart. 828 00:38:49,410 --> 00:38:50,980 Laat my snap dit in hier. 829 00:38:50,980 --> 00:38:52,400 Laat my toe om hierdie weg te gooi nie geheel en al. 830 00:38:52,400 --> 00:38:55,400 >> En nou, ek het 'n beter ontwerp program. 831 00:38:55,400 --> 00:38:55,920 Hoekom? 832 00:38:55,920 --> 00:39:00,540 As ek wil die aantal kere te verander hierdie kat hoes, al wat ek het om te 833 00:39:00,540 --> 00:39:05,640 doen is verander een veranderlike, of een waarde, eerder van drie, vier, of 834 00:39:05,640 --> 00:39:06,700 vyf of ses. 835 00:39:06,700 --> 00:39:09,060 Of ek kon iets doen voorwaardelik, selfs, met die ruimte 836 00:39:09,060 --> 00:39:10,320 staaf as ek wou. 837 00:39:10,320 --> 00:39:11,780 >> So dit is 'n algemene beginsel. 838 00:39:11,780 --> 00:39:14,950 Sodra jy begin kopieer en plak kode, of dit nou in nuuts af, of in 839 00:39:14,950 --> 00:39:18,340 C, jy doen iets verkeerd, waarskynlik. 840 00:39:18,340 --> 00:39:21,950 Of ten minste, as jy eers 'n paar oorskry redelike getalle van die afskrifte en 841 00:39:21,950 --> 00:39:24,610 pasta, is jy waarskynlik doen iets verkeerd. 842 00:39:24,610 --> 00:39:26,740 >> Maar jy weet wat? 843 00:39:26,740 --> 00:39:27,590 Ek het nie regtig soos hierdie. 844 00:39:27,590 --> 00:39:28,980 Dit is nie die skoonste ontwerp. 845 00:39:28,980 --> 00:39:32,860 Ek wens daar was 'n legkaart stuk genaamd hoes, want dan sou ek nie 846 00:39:32,860 --> 00:39:36,100 het om te implementeer hierdie myself, die ou manier, deur 847 00:39:36,100 --> 00:39:38,220 hy sê, en wag - 848 00:39:38,220 --> 00:39:40,320 Wat as hulle was net 'n hoes legkaart stuk. 849 00:39:40,320 --> 00:39:41,330 >> Wel, ek kan dit eintlik doen nie. 850 00:39:41,330 --> 00:39:45,010 Laat my gaan onder meer blokke, kliek Maak 'n blok, en nou kry ek hierdie 851 00:39:45,010 --> 00:39:45,610 venster hier. 852 00:39:45,610 --> 00:39:47,540 Ek gaan hierdie ding hoes te bel. 853 00:39:47,540 --> 00:39:49,400 Ek gaan om voort te gaan en kliek OK. 854 00:39:49,400 --> 00:39:53,150 En nou kennisgewing, ek kry 'n nuwe begin stuk wat op die top geboë is. 855 00:39:53,150 --> 00:39:56,590 En wat gaan ek doen met hierdie, ek is gaan net steel hierdie blokke. 856 00:39:56,590 --> 00:39:57,800 Ek gaan hulle hier te plaas. 857 00:39:57,800 --> 00:40:00,490 >> En nou, met hierdie drie stukke, ek het geïmplementeer wat ek gaan 'n om te bel 858 00:40:00,490 --> 00:40:03,530 funksie, of 'n prosedure, of 'n paar van jy dalk weet dit as 'n metode. 859 00:40:03,530 --> 00:40:05,050 Effense verskille tussen die woorde. 860 00:40:05,050 --> 00:40:06,950 Maar vir nou, laat ons net noem dit 'n funksie. 861 00:40:06,950 --> 00:40:08,750 Dit is net 'n nuwe legkaart stuk. 862 00:40:08,750 --> 00:40:11,000 Nou is dit geïmplementeer word soos hierdie. 863 00:40:11,000 --> 00:40:15,170 >> Maar let op dat Scratch gegee het vir ons 'n fisiese voorstelling van die hele 864 00:40:15,170 --> 00:40:16,570 blok hier. 865 00:40:16,570 --> 00:40:21,930 So nou, ek kan net sleep dit oor hier, sê, drie keer herhaal, en 866 00:40:21,930 --> 00:40:26,420 wat gaan gebeur nie nou, wanneer ek speel Dit script, is slegs een program 867 00:40:26,420 --> 00:40:27,500 loop op 'n tyd. 868 00:40:27,500 --> 00:40:29,880 Daar is net een wanneer groen vlag gebruik. 869 00:40:29,880 --> 00:40:34,010 Maar wat pers blok genoem hoes effektief te vertel nuuts af, elke 870 00:40:34,010 --> 00:40:38,160 keer as jy sien dat legkaart stuk, eintlik voer die stappe wat ek 871 00:40:38,160 --> 00:40:40,420 gebeur met die hand te implementeer. 872 00:40:40,420 --> 00:40:41,410 >> So dit is soort van netjies. 873 00:40:41,410 --> 00:40:44,650 Maar nou, veronderstel dat ek besluit het, het ek dit nie doen nie wil hierdie kat net om te hoes. 874 00:40:44,650 --> 00:40:46,660 Ek wil hom in staat wees om om so goed te nies. 875 00:40:46,660 --> 00:40:48,905 Wel, hoe kan ons gaan oor implementering nies? 876 00:40:48,905 --> 00:40:51,310 Wel, ek kan pretty much doen dieselfde ding. 877 00:40:51,310 --> 00:40:52,690 Ek kon 'n ander blok. 878 00:40:52,690 --> 00:40:55,940 Ek kon dit nies noem, kliek OK. 879 00:40:55,940 --> 00:40:59,250 >> Dan, oor hier kon ek eintlik het, laat my dupliseer hierdie - 880 00:40:59,250 --> 00:41:02,850 en daar is waar jy moet voel soos jy waarskynlik nie om iets te doen in 881 00:41:02,850 --> 00:41:03,780 die beste manier. 882 00:41:03,780 --> 00:41:06,670 Ek kon so iets sê, achoo, vir 'n sekonde. 883 00:41:06,670 --> 00:41:07,440 Wag 'n sekonde. 884 00:41:07,440 --> 00:41:08,715 Nou het ek 'n nuwe blok genoem nies. 885 00:41:08,715 --> 00:41:10,210 En inderdaad, daar is dit. 886 00:41:10,210 --> 00:41:14,010 >> Maar hierdie, ook, moet begin om te voel - Miskien nie die eerste week van klas, maar 887 00:41:14,010 --> 00:41:15,730 deur die tweede - net 'n bietjie oorbodig. 888 00:41:15,730 --> 00:41:17,800 Dit is duidelik dat daar is 'n paar ontslag hier. 889 00:41:17,800 --> 00:41:22,090 So laat my stel, in plaas daarvan dat ons verfyn hierdie definisie soos volg. 890 00:41:22,090 --> 00:41:24,820 >> Laat my gaan na my lêer menu. 891 00:41:24,820 --> 00:41:26,090 Ek gaan nie hierdie weergawe te red. 892 00:41:26,090 --> 00:41:29,080 Ek gaan om te gaan in een van my gemaakte lêers hier. 893 00:41:29,080 --> 00:41:31,190 En ek gaan om voort te gaan en maak hoes 2. 894 00:41:31,190 --> 00:41:32,220 Oeps wat hoes 2. 895 00:41:32,220 --> 00:41:36,900 Laat my gaan voort en oop te maak hoes 3, wat is hierdie bron gids. 896 00:41:36,900 --> 00:41:42,450 Hoes 3 en let op - o, ek het vir die storie in die verkeerde volgorde. 897 00:41:42,450 --> 00:41:45,030 Laat my herstel van hierdie storie. 898 00:41:45,030 --> 00:41:48,990 >> Die storie wat ek bedoel om te sê eindig met 'n hoes 4 - 899 00:41:48,990 --> 00:41:50,270 daar is dit. 900 00:41:50,270 --> 00:41:54,380 So wat as ek, in plaas daarvan, definieer 'n groter legkaart stuk genoem 901 00:41:54,380 --> 00:41:57,250 definieer, sê woord n ​​keer. 902 00:41:57,250 --> 00:41:59,930 Nies is net, blykbaar, in nuuts af, achoo. 903 00:41:59,930 --> 00:42:01,680 So het ons druk dit as 'n woord, net omdat dit is die 904 00:42:01,680 --> 00:42:02,750 beperking van die program. 905 00:42:02,750 --> 00:42:07,860 En 'n hoes [COUGH], maar hoes, C-O-U-G-H. So dit is net twee 906 00:42:07,860 --> 00:42:10,820 verskillende woorde te doen, in wese, dieselfde ding. 907 00:42:10,820 --> 00:42:12,820 >> So ek kan eintlik 'n nuwe blok soos hierdie. 908 00:42:12,820 --> 00:42:14,220 Ek het nie hierdie opsie nie. 909 00:42:14,220 --> 00:42:16,960 Maar wanneer jy kliek Maak Blok, jy kan kies 'n paar opsies. 910 00:42:16,960 --> 00:42:20,900 En jy kan dat hierdie blok eintlik sê neem 'n paar insette, anders 911 00:42:20,900 --> 00:42:24,710 bekend as argumente of parameters, so wat jy kan verander die gedrag van 912 00:42:24,710 --> 00:42:25,520 jou blok. 913 00:42:25,520 --> 00:42:28,780 >> So, wat ek gedoen het, 'n oomblik gelede was Ek het hierdie blok sê nie. 914 00:42:28,780 --> 00:42:30,880 En dan het ek gesê het, dit neem 'n string insette. 915 00:42:30,880 --> 00:42:32,810 En kyk nou, by verstek, dit sê string 1. 916 00:42:32,810 --> 00:42:35,440 'N string is net 'n woord, of 'n woorde, vir ons doeleindes. 917 00:42:35,440 --> 00:42:37,810 Maar ek gaan net 'n paar te sit standaard teks daar, net soos in 'n 918 00:42:37,810 --> 00:42:40,620 webwerf, wanneer jy sien gebruikersnaam, of wagwoord, en dan verdwyn dit wanneer 919 00:42:40,620 --> 00:42:41,550 jy begin tik. 920 00:42:41,550 --> 00:42:42,720 Dit is al wat dit is. 921 00:42:42,720 --> 00:42:44,590 >> En nou gaan ek voeg 'n aantal insette. 922 00:42:44,590 --> 00:42:47,180 En ek gaan dit n te noem - maar dit is redelik arbitrêre. 923 00:42:47,180 --> 00:42:49,510 En dan net 'n etiket te maak net hierdie blok 'n bietjie meer self 924 00:42:49,510 --> 00:42:50,570 verduidelikende - 925 00:42:50,570 --> 00:42:53,010 tye, dit is wat ek nou net gedoen het. 926 00:42:53,010 --> 00:42:56,540 En die eindresultaat is dat ek 'n blok wat lyk soos hierdie. 927 00:42:56,540 --> 00:42:58,880 >> En kyk nou, ek is met behulp van 'n herhaling blok. 928 00:42:58,880 --> 00:43:03,480 Maar eerder as harde kodering drie, is ek sleep n in daar so ek 929 00:43:03,480 --> 00:43:05,530 kan parametrize die funksie. 930 00:43:05,530 --> 00:43:08,590 Ek kan hierdie funksie om iets te doen 'n ander aantal kere wat gebaseer is op 931 00:43:08,590 --> 00:43:09,410 daardie waarde. 932 00:43:09,410 --> 00:43:14,270 >> En let op, sê, dit is wat ek gedoen het, hier, as ek sleep woord, kan ek nie sê nie 'n 933 00:43:14,270 --> 00:43:17,860 hard gekodeer woord nie, maar wat ook al geslaag is in vir 'n sekonde. 934 00:43:17,860 --> 00:43:20,200 Intussen, hoe kan ek weer te implementeer hoes? 935 00:43:20,200 --> 00:43:26,980 Ek plaas definieer hoes as sê hoes n keer. 936 00:43:26,980 --> 00:43:30,480 >> Dus, in kort, ek gaan deur middel van hierdie vinnig, maar die basiese idee is om so gou 937 00:43:30,480 --> 00:43:32,750 as jy begin sien in jou program dat, wag 'n minuut, het ek gedoen 938 00:43:32,750 --> 00:43:36,610 iets wat baie soos hierdie voor, kan ek faktor uit 'n paar algemene 939 00:43:36,610 --> 00:43:37,090 funksie? 940 00:43:37,090 --> 00:43:41,090 Ek kan ontbind wat ek doen in 'n paar basiese idees? 941 00:43:41,090 --> 00:43:42,070 Dit is wat ons hier doen. 942 00:43:42,070 --> 00:43:44,830 En ek het gestapel hierdie dinge, visueel, op die top van mekaar 943 00:43:44,830 --> 00:43:47,710 want dit is bewys dat die idee van begin met binêre, gaan ASCII, 944 00:43:47,710 --> 00:43:51,530 die maak van grafiese programme, soort lae toenemend komplekse idees op 945 00:43:51,530 --> 00:43:52,570 bo-op mekaar. 946 00:43:52,570 --> 00:43:53,730 >> Dieselfde idee hier. 947 00:43:53,730 --> 00:43:56,870 Ek het begin van nuuts af, implementering hoes, toe besef hoes is 948 00:43:56,870 --> 00:43:58,540 eintlik net om iets te sê. 949 00:43:58,540 --> 00:44:01,630 So laat my plaas te implementeer idee om iets te sê. 950 00:44:01,630 --> 00:44:05,200 En op die top van daardie, ek kan implementeer achoo, of hoes? 951 00:44:05,200 --> 00:44:07,990 En ons kon doen nie meer sulke variante steeds. 952 00:44:07,990 --> 00:44:10,400 >> So van hierdie basiese beginsel ons kan begin om te doen 953 00:44:10,400 --> 00:44:12,180 toenemend komplekse programme. 954 00:44:12,180 --> 00:44:14,100 Laat my oop te maak hierdie een. 955 00:44:14,100 --> 00:44:18,020 Ons kan eintlik het verskeie sprites interaksie op die skerm op een slag. 956 00:44:18,020 --> 00:44:23,470 As ek gaan in my bron gids en gryp 'n sogenaamde Threads, onthou dat 'n 957 00:44:23,470 --> 00:44:26,920 draad is eintlik maar net die vermoë van twee skrifte kant deur te voer 958 00:44:26,920 --> 00:44:28,350 kant op dieselfde tyd. 959 00:44:28,350 --> 00:44:34,490 >> Let nou, het beide 'n voël sprite en 'n kat sprite, wat beide 960 00:44:34,490 --> 00:44:35,270 hul eie skrifte. 961 00:44:35,270 --> 00:44:37,690 So kennisgewing, wanneer ek op die kat, ek kry hierdie skrifte. 962 00:44:37,690 --> 00:44:39,830 Wanneer ek op die voël, Ek kry hierdie skrifte. 963 00:44:39,830 --> 00:44:42,070 So elkeen van hierdie ouens het sy eie programme. 964 00:44:42,070 --> 00:44:46,680 Toe ek nou op die groen vlag, let dat wat hierdie program doen, is 965 00:44:46,680 --> 00:44:54,090 het die kat, ongelooflik stadig, jaag die voël. 966 00:44:54,090 --> 00:44:57,120 Maar die kat het die voordeel van ' geprogrammeer is in so 'n manier 967 00:44:57,120 --> 00:45:00,540 dit maak nie saak waar die voël is, die kat gaan na hom toe. 968 00:45:00,540 --> 00:45:02,150 >> Ons kan die spel baie vinniger speel. 969 00:45:02,150 --> 00:45:07,750 So as ek op die kat, let op dat ek gebruik, kom ons sê beweeg een stappe. 970 00:45:07,750 --> 00:45:11,680 Kom ons hom beweeg vyf stappe teen 'n tyd, so vyf punte op 'n tyd. 971 00:45:11,680 --> 00:45:13,580 Laat my kliek speel. 972 00:45:13,580 --> 00:45:14,490 >> [Gebrul van die leeu] 973 00:45:14,490 --> 00:45:17,170 >> David Malan: Alle reg, nou kan ons gee regtig die kat die voordeel. 974 00:45:17,170 --> 00:45:18,600 10 stappe op 'n tyd. 975 00:45:18,600 --> 00:45:20,120 >> [Gebrul van die leeu] 976 00:45:20,120 --> 00:45:22,770 >> David Malan: Alle reg, so vinnig, raak dit 'n bietjie voordeel 977 00:45:22,770 --> 00:45:23,280 vir die kat. 978 00:45:23,280 --> 00:45:25,310 Maar ek sal my hand golf op Sommige van die besonderhede. 979 00:45:25,310 --> 00:45:28,240 Maar die rede dat die pad is begin 'n bietjie anders elke keer 980 00:45:28,240 --> 00:45:29,700 is dat ek 'n bietjie van ewekansigheid is om te doen. 981 00:45:29,700 --> 00:45:33,700 Ek is eintlik wys die kat in 'n ander rigting wat gebaseer is op die plek waar ek 982 00:45:33,700 --> 00:45:38,710 wil hom so begin wat elke keer die spel is, of die animasie, is 'n 983 00:45:38,710 --> 00:45:39,760 bietjie anders. 984 00:45:39,760 --> 00:45:41,950 >> Nou, laat my voer een ander hier bou. 985 00:45:41,950 --> 00:45:43,860 So in hierdie geval, het ons funksies. 986 00:45:43,860 --> 00:45:46,950 Daar gaan ook 'n legkaart stuk wees bekend as 'n skikking, of 'n lys, 987 00:45:46,950 --> 00:45:50,980 wat jou toelaat om te stoor meer as een waardes binnekant van 'n veranderlike. 988 00:45:50,980 --> 00:45:53,410 Ons het gesien drade en nou daar se gebeure. 989 00:45:53,410 --> 00:45:56,330 >> So hier is 'n geleentheid gebruik hierdie twee ouens hier. 990 00:45:56,330 --> 00:46:02,490 En as ek oop te maak die lêer genaamd Events van vandag se voorbeelde, sal ons 991 00:46:02,490 --> 00:46:06,940 sien 'n program wat lyk 'n bietjie soos hierdie. 992 00:46:06,940 --> 00:46:09,630 En nou sien hierdie man - 993 00:46:09,630 --> 00:46:11,620 so sien ek die blou Muppet gedruk - 994 00:46:11,620 --> 00:46:12,990 Hy is nie net die volgende. 995 00:46:12,990 --> 00:46:15,540 Hy het nie een van daardie groen vlag stukke van die legkaart. 996 00:46:15,540 --> 00:46:18,620 Hy het 'n wanneer ek geval - 997 00:46:18,620 --> 00:46:19,970 so 'n paar arbitrêre woord. 998 00:46:19,970 --> 00:46:21,590 Ek het net getik het geval daar - 999 00:46:21,590 --> 00:46:23,740 hy gaan om te sê, Polo, vir twee sekondes. 1000 00:46:23,740 --> 00:46:25,800 >> So die van julle wat vertroud is met hierdie spel kan weet 1001 00:46:25,800 --> 00:46:26,460 waar dit gaan. 1002 00:46:26,460 --> 00:46:29,800 As ek nou op die oranje Muppet, Sy program doen dit. 1003 00:46:29,800 --> 00:46:35,020 Forever, indien die sleutelbord space bar onderdruk, is hy gaan om te sê, Marco, 1004 00:46:35,020 --> 00:46:36,580 vir twee sekondes op die skerm. 1005 00:46:36,580 --> 00:46:39,590 Maar hy gaan ook hierdie liefhebber te gebruik blok bekend as uitsending. 1006 00:46:39,590 --> 00:46:42,270 Hy gaan haal uit te saai unquote, "gebeurtenis." 1007 00:46:42,270 --> 00:46:47,540 >> Intussen het die blou man, onthou, is luister vir kwotasie unquote, "gebeurtenis." 1008 00:46:47,540 --> 00:46:50,760 So een of ander manier, nou, kan ons 'n twee sprites interaksie. 1009 00:46:50,760 --> 00:46:53,790 En wanneer ons web ontwikkeling, later in die kwartaal, op soortgelyke wyse sal hierdie 1010 00:46:53,790 --> 00:46:58,320 voordelig wees om jou webwerf te hê om iets te doen in reaksie op, vir 1011 00:46:58,320 --> 00:47:00,130 Byvoorbeeld, 'n klik van die sleutelbord. 1012 00:47:00,130 --> 00:47:02,120 >> So laat my gaan voort en druk die space bar. 1013 00:47:02,120 --> 00:47:04,020 Orange man sê Marco. 1014 00:47:04,020 --> 00:47:05,840 Blou man sê Polo. 1015 00:47:05,840 --> 00:47:10,780 As ek dit weer doen oranje man sê Marco, blou man sê polo. 1016 00:47:10,780 --> 00:47:14,130 So laat dit 'n stap verder te neem. 1017 00:47:14,130 --> 00:47:18,790 Hierdie tyd, sal ons gaan, waarskynlik, net 'n paar minute hier. 1018 00:47:18,790 --> 00:47:19,904 Het ons - 1019 00:47:19,904 --> 00:47:22,380 lessenaar lamp, kom neer. 1020 00:47:22,380 --> 00:47:24,500 Jy is reg op die einde. 1021 00:47:24,500 --> 00:47:25,740 OK, kan jy beide kom. 1022 00:47:25,740 --> 00:47:26,990 Ons het lessenaar lampe vir almal. 1023 00:47:26,990 --> 00:47:28,360 Kom op. 1024 00:47:28,360 --> 00:47:30,090 Ek weet nie of ons kan hou hierdie belaglike gag up 1025 00:47:30,090 --> 00:47:32,035 al semester, al is. 1026 00:47:32,035 --> 00:47:33,530 Alle reg, kom neer. 1027 00:47:33,530 --> 00:47:40,260 >> En in die tussentyd het ons die volgende voorbeelde om te trek, net om te 1028 00:47:40,260 --> 00:47:45,370 versnel dinge nou, soos wat ons 'n manifestasie van 'n ander 1029 00:47:45,370 --> 00:47:48,360 voorganger van jou gebruik van die dieselfde basiese boustene. 1030 00:47:48,360 --> 00:47:48,975 Wat is jou 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 Lekker vir my nie. 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, lekker vir my nie. 1037 00:47:53,130 --> 00:47:54,820 John, as jy wil om te kom op die eerste, dit is 'n ou 1038 00:47:54,820 --> 00:47:55,910 skool spel genaamd Frogger. 1039 00:47:55,910 --> 00:47:57,530 Jy gebruik die sleutelbord vir hierdie so goed. 1040 00:47:57,530 --> 00:48:02,425 En die doel is om te kry oor die straat en water. 1041 00:48:02,425 --> 00:48:12,700 >> [Frogger musiek en klank TONEELSTUKKE] 1042 00:48:12,700 --> 00:48:14,970 >> David Malan: Ek is jammer, geen lessenaar lamp vir jou vandag. 1043 00:48:14,970 --> 00:48:19,110 Alle reg, Setz, sou jy wil om te kom op nie? 1044 00:48:19,110 --> 00:48:20,890 Alle reg, laat ons dit weer doen. 1045 00:48:20,890 --> 00:48:21,430 >> Setz: Gebruik ek die pyle? 1046 00:48:21,430 --> 00:48:22,360 >> David Malan: Slegs die pyltjie sleutels. 1047 00:48:22,360 --> 00:48:23,624 Op, af, links, regs. 1048 00:48:23,624 --> 00:48:35,700 >> [Frogger musiek en klank TONEELSTUKKE] 1049 00:48:35,700 --> 00:48:37,880 >> David Malan: Ons sal hulle noem: troospryse vandag 1050 00:48:37,880 --> 00:48:38,950 Dan, baie goed gedoen. 1051 00:48:38,950 --> 00:48:40,690 Hier, vir beide van julle, John en Setz. 1052 00:48:40,690 --> 00:48:41,940 Baie geluk, alles reg. 1053 00:48:41,940 --> 00:48:46,720 1054 00:48:46,720 --> 00:48:50,620 So weer, soos die spel speel, dink oor wat gaan aan? 1055 00:48:50,620 --> 00:48:52,060 >> Een, daar is duidelik 'n baie van die beweging. 1056 00:48:52,060 --> 00:48:55,220 Maar ons het gesien hoe, met die kat en die voël byvoorbeeld hoe jy die kan maak 1057 00:48:55,220 --> 00:48:58,350 illusie van beweging deur net die beweging van 'n paar aantal pixels weer en weer. 1058 00:48:58,350 --> 00:49:00,280 En as jy 'n ewig blok, jy kan hê om hierdie 1059 00:49:00,280 --> 00:49:02,120 motors doen dit vir ewig. 1060 00:49:02,120 --> 00:49:03,720 Ons het die vermoë om te het 'n paar willekeur. 1061 00:49:03,720 --> 00:49:06,310 So hierdie spel hoef nie te wees presies dieselfde elke keer. 1062 00:49:06,310 --> 00:49:09,940 Hierdie stompe, die motors, kan by effens verskillende tye so dat die 1063 00:49:09,940 --> 00:49:12,690 spel self is meer interessant met elke wedstryd te speel. 1064 00:49:12,690 --> 00:49:15,320 >> En intussen het ons gesien dat die vermoë om te luister na die space bar. 1065 00:49:15,320 --> 00:49:18,830 Maar dit is duidelik, in Scratch, kan jy ook luister op, af, links, regs, en 1066 00:49:18,830 --> 00:49:20,760 regtig enige sleutel op die sleutelbord. 1067 00:49:20,760 --> 00:49:22,200 En jy kan ook 'n paar ander dinge. 1068 00:49:22,200 --> 00:49:24,660 Laat my gaan voort en gaan terug na die web-weergawe. 1069 00:49:24,660 --> 00:49:30,280 >> Laat my gaan in ons versameling voorbeelde hier. 1070 00:49:30,280 --> 00:49:36,120 En onder My Studio, video wat is, in wese, 'n gids op 1071 00:49:36,120 --> 00:49:37,780 scratch.mit.edu. 1072 00:49:37,780 --> 00:49:39,710 Ons het die web weergawes van al hierdie projekte. 1073 00:49:39,710 --> 00:49:42,530 En laat ons sien of ek kan my rekenaar om hier te werk. 1074 00:49:42,530 --> 00:49:47,180 Dit is geskryf deur een van ons vriende by MIT, genoem Skuif die Butterfly. 1075 00:49:47,180 --> 00:49:50,250 >> En wanneer hierdie open, is dit gaan eintlik meer gebruik van 1076 00:49:50,250 --> 00:49:51,430 my rekenaar se hardeware. 1077 00:49:51,430 --> 00:49:53,325 Nuuts gebeur geïmplementeer moet word met Flash. 1078 00:49:53,325 --> 00:49:56,250 Flits kan praat met jou webcam, as jy een het. 1079 00:49:56,250 --> 00:50:00,210 So as ek gaan voort en vol skerm hierdie hier, kliek op die groen vlag, kennisgewing 1080 00:50:00,210 --> 00:50:02,530 dat Flash se veiligheid boodskap sê, wil jy 1081 00:50:02,530 --> 00:50:04,210 laat my webcam te gebruik? 1082 00:50:04,210 --> 00:50:05,510 >> Gewoonlik, moet jy waarskynlik sê ontken. 1083 00:50:05,510 --> 00:50:07,180 Maar in hierdie geval, sal ons sê laat. 1084 00:50:07,180 --> 00:50:10,430 Dan gaan ek Chrome te vertel toe te laat dat dit so goed. 1085 00:50:10,430 --> 00:50:15,010 En nou, in 'n oomblik, jy my sien, yep, me. 1086 00:50:15,010 --> 00:50:18,154 En as my hand styg - 1087 00:50:18,154 --> 00:50:20,390 Ek het om te beweeg nie my kop op dieselfde tyd. 1088 00:50:20,390 --> 00:50:21,740 Daar is ook 'n weerspieëling op die skerm. 1089 00:50:21,740 --> 00:50:23,480 Kom op, daar gaan ons - 1090 00:50:23,480 --> 00:50:27,616 jy kan beweeg dit op die skerm verskyn omdat daar is ook stukke van die legkaart - O, jy 1091 00:50:27,616 --> 00:50:31,640 weet wat dit is, dit is omdat jy ook sien die projektor skerm agter my. 1092 00:50:31,640 --> 00:50:33,870 So het ons 'n bietjie oneindige ding gaan daar aan. 1093 00:50:33,870 --> 00:50:36,470 >> Alle reg, so ek sal speel af hier. 1094 00:50:36,470 --> 00:50:37,220 Daar gaan ons. 1095 00:50:37,220 --> 00:50:41,310 So is daar ook 'n legkaart stuk wat sê, wanneer jy sien beweging onder 1096 00:50:41,310 --> 00:50:45,470 een van die sprites, kan jy dit gaan op, af, links, regs of die wil. 1097 00:50:45,470 --> 00:50:48,950 So het ons 'n bietjie van die virtuele werklikheid gaan hier so goed, almal binne die 1098 00:50:48,950 --> 00:50:52,570 grense van my leser, net hier in met my webcam. 1099 00:50:52,570 --> 00:50:53,980 So, wat is dan op die horison. 1100 00:50:53,980 --> 00:50:58,350 Die eerste probleem stel, as jy sien, of die webwerf sal online later gaan 1101 00:50:58,350 --> 00:51:01,100 vanaand om cs50.net, is redelik veel aan die gang te wees oop. 1102 00:51:01,100 --> 00:51:04,410 En te implementeer 'n skrapie projek van belang vir jou, 'n spel, 'n 1103 00:51:04,410 --> 00:51:08,350 interaksie, om iets kunstig, en daag jouself 'n aantal te gebruik 1104 00:51:08,350 --> 00:51:09,660 van hierdie stukke van die legkaart. 1105 00:51:09,660 --> 00:51:11,580 En dit kan óf interaktiewe op hierdie manier. 1106 00:51:11,580 --> 00:51:15,470 Of dit kan wees om iets meer doelbewus het 'n storie te vertel. 1107 00:51:15,470 --> 00:51:19,200 >> En inderdaad, dit is waar ons sal eindig Vandag, met 'n laaste voorbeeld. 1108 00:51:19,200 --> 00:51:21,290 Laat my gaan in Scratch plaaslik. 1109 00:51:21,290 --> 00:51:25,300 Laat my gaan voort en maak dit, en speel 'n laaste program wat geskryf is deur 'n 1110 00:51:25,300 --> 00:51:29,795 van jou voorgangers, naamlik dat 'n mens hier. 1111 00:51:29,795 --> 00:51:32,960 1112 00:51:32,960 --> 00:51:35,938 Goed, verhoog die volume vir hierdie een. 1113 00:51:35,938 --> 00:52:53,770 >> [Speel van musiek] 1114 00:52:53,770 --> 00:52:57,255 >> NARRATOR: By die volgende CS50, David nooi 'n vrywilliger op die verhoog. 1115 00:52:57,255 --> 00:52:58,636 >> David Malan: Vir hierdie demonstrasie, ons gaan 'n vrywilliger nodig. 1116 00:52:58,636 --> 00:53:01,050 Wil jy om te kom op af? 1117 00:53:01,050 --> 00:53:02,300 Wat is jou naam? 1118 00:53:02,300 --> 00:53:05,320 1119 00:53:05,320 --> 00:53:06,570 Beweeg op. 1120 00:53:06,570 --> 00:53:08,394