1 00:00:00,000 --> 00:00:10,980 >> [Muziek] 2 00:00:10,980 --> 00:00:13,260 >> -Alright! 3 00:00:13,260 --> 00:00:16,400 >> -Dit is CS50. 4 00:00:16,400 --> 00:00:18,220 >> -Dit is CS50. 5 00:00:18,220 --> 00:00:19,324 >> -Dit is CS50. 6 00:00:19,324 --> 00:00:20,615 [MUZIEK - IGGY azalea, "fancy"] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> M'n favoriete geheugen van CS50 was toen ik naar Puzzle Day. 9 00:00:33,570 --> 00:00:35,797 >> Waarschijnlijk gewoon de tijd gewerkt aan probleem sets 10 00:00:35,797 --> 00:00:38,630 met mijn vrienden en de mensen die Wold uiteindelijk mijn blockmates geworden. 11 00:00:38,630 --> 00:00:40,421 >> M'n beste herinnering uit CS50 is de Hackathon. 12 00:00:40,421 --> 00:00:41,630 -De CS50 Hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -het Hackathon 17 00:00:43,883 --> 00:00:45,027 -ROB Bowden. 18 00:00:45,027 --> 00:00:46,110 Gewoon alles over hem. 19 00:00:46,110 --> 00:00:47,401 >> [MUZIEK - IGGY azalea, "fancy"] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> M'n favoriete herinnering is toen ik op podium en ik speelde de prestigieuze rol 22 00:01:02,512 --> 00:01:04,220 van een node [? in het Linked?] [? Lijst. ?] 23 00:01:04,220 --> 00:01:08,470 >> -Wanneer Kregen we allemaal gratis Dropbox-ruimte en David was als, kijk onder uw stoelen. 24 00:01:08,470 --> 00:01:10,520 En het was als, ruimte voor iedereen! 25 00:01:10,520 --> 00:01:11,811 >> [MUZIEK - IGGY azalea, "fancy"] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> M'n advies voor elke binnenkomende student zou 28 00:01:22,830 --> 00:01:26,170 om echt werken P-sets met vrienden. 29 00:01:26,170 --> 00:01:27,960 >> -Office Uur is heel erg je vriend. 30 00:01:27,960 --> 00:01:30,870 >> Klik voor de meeste van uw ervaring en ontmoet zoveel mensen als je kunt. 31 00:01:30,870 --> 00:01:32,390 >> Doe niet bang om hulp te vragen. 32 00:01:32,390 --> 00:01:33,890 -Start De P-sets in het begin van de week. 33 00:01:33,890 --> 00:01:36,723 Ik denk dat het grootste ding is om te gebruik maken van alle middelen 34 00:01:36,723 --> 00:01:37,950 dat CS50 heeft. 35 00:01:37,950 --> 00:01:39,960 >> Loop naar de kantooruren in het begin van de week. 36 00:01:39,960 --> 00:01:41,430 >> -Zeker Kijken naar de korte broek. 37 00:01:41,430 --> 00:01:42,989 >> Doe niet uitstellen van uw P-sets. 38 00:01:42,989 --> 00:01:45,780 -Zorg Ervoor dat je een grote groep vinden van mensen om te werken aan P-sets met. 39 00:01:45,780 --> 00:01:48,530 U kunt veel plezier hebben en krijgen het werk gedaan samen. 40 00:01:48,530 --> 00:01:50,370 >> Doe niet bang om jezelf te duwen. 41 00:01:50,370 --> 00:01:52,080 Ga voor de hacker editie soms. 42 00:01:52,080 --> 00:01:55,410 >> -Schrijf Dingen op papier voordat u ooit uw computer aanraakt. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 Is echt geweldig op het verstrekken van manieren om hulp te krijgen. 44 00:01:58,380 --> 00:02:01,134 >> M'n enige advies is slapen. 45 00:02:01,134 --> 00:02:02,050 Heeft iemand dat gezegd? 46 00:02:02,050 --> 00:02:04,100 Slaap, zeker. 47 00:02:04,100 --> 00:02:08,919 Het is eenvoudig niet te doen, maar je hebt om het te doen, denk ik. 48 00:02:08,919 --> 00:02:12,982 >> Ik zou zeggen echt mentaal voorbereid want je gaat om het te houden. 49 00:02:12,982 --> 00:02:14,273 [MUZIEK - IGGY azalea, "fancy"] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> -Dit is CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> -Dit is CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> -Dit is CS50. 56 00:02:26,989 --> 00:02:28,280 [MUZIEK - IGGY azalea, "fancy"] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> -Dit is CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [Applaus] 61 00:02:42,270 --> 00:02:46,040 >> DAVID J. MALAN: Dus dit is CS50 en dit is het einde van week 0. 62 00:02:46,040 --> 00:02:48,770 En dat was nog maar een paar personeelsleden CS50's die 63 00:02:48,770 --> 00:02:51,100 wachten u niet alleen in de rubrieken en kantooruren, maar, 64 00:02:51,100 --> 00:02:54,390 Ook komend weekend bij CS50 Puzzle Day. 65 00:02:54,390 --> 00:02:56,410 Die, nogmaals, is niet alles over programmeren. 66 00:02:56,410 --> 00:02:59,710 Inderdaad, het is verwacht dat u zal niets te programmeren, 67 00:02:59,710 --> 00:03:03,780 maar eerder problemen op te lossen met behulp van verstand en vrienden naast je. 68 00:03:03,780 --> 00:03:06,400 >> We krijgen het gezelschap van een aantal van onze vrienden bij Facebook-- 69 00:03:06,400 --> 00:03:08,980 als je hier-- registreren die voor de afgelopen jaren, 70 00:03:08,980 --> 00:03:11,450 heb eigenlijk het schrijven van deze uitdagingen met ons. 71 00:03:11,450 --> 00:03:14,822 En dus, zullen zij degenen uiteindelijk draait Puzzle Day. 72 00:03:14,822 --> 00:03:17,530 En dus, wordt u uitgedaagd met precies het soort dingen 73 00:03:17,530 --> 00:03:20,520 en problemen die mensen in Facebook willen denken. 74 00:03:20,520 --> 00:03:21,860 Dus dat is morgen. 75 00:03:21,860 --> 00:03:25,980 Registreren op cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Nu een woord op een paar van personeel in het bijzonder. 77 00:03:28,120 --> 00:03:30,090 Dit hier is Ansel Duff, die is eigenlijk een 78 00:03:30,090 --> 00:03:33,860 van de co-auteurs van deze binaire bollen die we zagen op woensdag, 79 00:03:33,860 --> 00:03:36,710 Naast CS50 eigen Dan Bradley. 80 00:03:36,710 --> 00:03:40,094 Ansel Duff was ook een voormalige eerstejaars advisee van mij 3 jaar geleden 81 00:03:40,094 --> 00:03:41,760 en hij eigenlijk zelfs bouwde deze lessenaar. 82 00:03:41,760 --> 00:03:45,330 Hij is weg op te doen ingenieurswetenschappen en meer. 83 00:03:45,330 --> 00:03:49,279 Nu, zijn foto hier is eigenlijk Ansel 3 jaar geleden op de CS50 Hackathon 84 00:03:49,279 --> 00:03:51,820 toen hij leende een van onze ballonnen, stak het in zijn laptop, 85 00:03:51,820 --> 00:03:55,240 en, voor de komende 12 een aantal vreemde uur, gericht op zijn laatste project, 86 00:03:55,240 --> 00:03:59,150 het nemen van pauzes alleen te openen zakken snoep bij de Hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Maar hij ging door meer recent aan afgelopen zomer bij ons doorbrengen, 88 00:04:02,210 --> 00:04:05,270 sinds CS50 voor haar personeel, en nu de studenten dit semester, 89 00:04:05,270 --> 00:04:06,770 een eigen 3D printer. 90 00:04:06,770 --> 00:04:10,180 En in een notendop een 3D-printers is een apparaat dat lijkt dit heel graag. 91 00:04:10,180 --> 00:04:15,700 Je vult het met een plastic spoel dat wordt versmolten door de inrichting 92 00:04:15,700 --> 00:04:18,940 en je dingen bouwen letterlijk uit het niets. 93 00:04:18,940 --> 00:04:22,660 Net als een inkjet printer, je begint uitspugen kleine puntjes van plastic 94 00:04:22,660 --> 00:04:24,990 die tezamen met vormen geheel voorwerpen. 95 00:04:24,990 --> 00:04:28,430 Zo Ansel bijvoorbeeld eerder, deze zomer, heeft een iPhone 5 96 00:04:28,430 --> 00:04:30,722 en besloot hij echt wilde om het overeind te houden op zijn bureau. 97 00:04:30,722 --> 00:04:32,638 Maar hij wilde niet naar buiten en kopen iets 98 00:04:32,638 --> 00:04:36,030 uit de Apple store of iets dergelijks, zodat hij ging zitten en begon te tekenen iets. 99 00:04:36,030 --> 00:04:38,280 Hij nam een ​​paar metingen hoe dik 100 00:04:38,280 --> 00:04:41,270 en hoe breed zijn iPhone was, Hij trok dit beeld hier, 101 00:04:41,270 --> 00:04:43,870 Hij besloot dat hij wilde een 75 graden tilt hebben 102 00:04:43,870 --> 00:04:46,150 zoals het was staren hem op zijn bureau daar. 103 00:04:46,150 --> 00:04:50,440 Hij draaide toen deze, met behulp van software, in een 3D CAD-model 104 00:04:50,440 --> 00:04:52,400 dat zag er een beetje iets als dit. 105 00:04:52,400 --> 00:04:55,940 En toen ging hij, uiteindelijk, om daadwerkelijk te creëren het. 106 00:04:55,940 --> 00:05:00,250 Dus in feite, als iemand van jullie hier, misschien op rij dat ik kan gooien om te hebben 107 00:05:00,250 --> 00:05:06,780 an-- daar hebben we mensen met een iPhone 5, en hier hebben we nog twee. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Nu, niet achter te blijven, CS50's eigen Cheng Gong ook deze zomer uiteengezet 110 00:05:17,037 --> 00:05:19,870 om heel wat dingen en bouwen, in feite, om redenen die nog 111 00:05:19,870 --> 00:05:23,970 onduidelijk, zijn langzaam het afdrukken van een leger van olifanten 112 00:05:23,970 --> 00:05:27,250 met scharnierende armen en stammen. 113 00:05:27,250 --> 00:05:32,515 Een paar van die zijn eigenlijk hier als iedereen zou nu like-- een olifant. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 Oke,. maar wat Cheng deed ook voor ons is hij heel vriendelijk opzetten van een camera 116 00:05:40,522 --> 00:05:42,230 want dat olifant, geloof het of niet, 117 00:05:42,230 --> 00:05:44,690 duurt ongeveer twee en een half uur afdrukken. 118 00:05:44,690 --> 00:05:47,840 Zelfs de iPhone standaard namen een uur en een half om af te drukken. 119 00:05:47,840 --> 00:05:51,490 En wat Cheng ging door en deed is het opzetten van een leuke camera voor 120 00:05:51,490 --> 00:05:55,580 van deze 3D-printer, gefilmd voor een uur en een half als Ansel ontwerp gedrukt. 121 00:05:55,580 --> 00:05:58,090 We bedekt sommige sexy muziek het volledig 122 00:05:58,090 --> 00:06:00,570 je dit geven kijken hoe 3D printen werkt. 123 00:06:00,570 --> 00:06:02,494 En ook al is dit eigenlijk in plastic, 124 00:06:02,494 --> 00:06:05,160 beseffen dat als dit terrein voor u interessant academisch, 125 00:06:05,160 --> 00:06:07,120 er zijn mensen, onder ze Jennifer Lewis hier 126 00:06:07,120 --> 00:06:09,036 aan de School of Engineering, die daadwerkelijk 127 00:06:09,036 --> 00:06:10,920 werken aan 3D-printing plastic voorwerpen. 128 00:06:10,920 --> 00:06:14,150 Maar ook, in toenemende mate, biologische materialen oplossen 129 00:06:14,150 --> 00:06:16,530 fysiologische problemen voor mensen. 130 00:06:16,530 --> 00:06:19,944 Maar hier is een beetje iets van CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD MECHANISCHE NOISES] 132 00:06:31,625 --> 00:06:34,250 DAVID J. MALAN: Het klinkt niet iets dergelijks in de werkelijkheid, 133 00:06:34,250 --> 00:06:37,240 maar het is veel koeler om het te bekijken bij die snelheid, en dat geluid. 134 00:06:37,240 --> 00:06:40,000 >> Nu, op woensdag, hoe hebben we voor het eerst hier gekomen? 135 00:06:40,000 --> 00:06:43,345 We begonnen te praten over de computer wetenschap en we vroegen wat het was. 136 00:06:43,345 --> 00:06:46,470 En het gaat over een aantal dingen, en er is zo veel verschillende richtingen 137 00:06:46,470 --> 00:06:48,477 waar kunt u terecht na een cursus als CS50. 138 00:06:48,477 --> 00:06:50,810 In feite, als je pakte een van die niet-officiële gidsen 139 00:06:50,810 --> 00:06:54,080 naar CS buiten, het boekje dat we hebben geleverd, of u nu 140 00:06:54,080 --> 00:06:57,150 denkt aan het nemen van slechts CS50, of misschien het doen van een secundaire, 141 00:06:57,150 --> 00:06:59,557 of misschien zelfs te concentreren in CS, weet bladeren door dat. 142 00:06:59,557 --> 00:07:01,390 En je zult een diagram zien aan het einde dat 143 00:07:01,390 --> 00:07:04,950 Wil je veel verschillende richtingen in CS dat je kan afgaan in. 144 00:07:04,950 --> 00:07:09,030 >> Maar voor vandaag, zullen we ons richten, opnieuw, op echt een van de fundamentele standpunten, 145 00:07:09,030 --> 00:07:11,500 misschien, waar je inputs problemen, 146 00:07:11,500 --> 00:07:13,430 je hebt uitgangen van problemen, en je hebt 147 00:07:13,430 --> 00:07:17,420 algoritmen waarmee creëren de uitgangen van die ingangen. 148 00:07:17,420 --> 00:07:20,330 En een voorbeeld, was Natuurlijk, dit telefoonboek hier. 149 00:07:20,330 --> 00:07:24,180 En wij als voorbeeld gebruikt om te gaan door middel van een algoritme dat juist was. 150 00:07:24,180 --> 00:07:26,490 En dan was er nog een correct, maar iets sneller. 151 00:07:26,490 --> 00:07:29,448 En dan nog een die een beetje was dramatischer, maar fundamenteel 152 00:07:29,448 --> 00:07:30,000 sneller. 153 00:07:30,000 --> 00:07:32,720 >> Rechts, dit telefoonboek we beweerd had ongeveer 1.000 pagina's. 154 00:07:32,720 --> 00:07:36,200 En hoe vaak heb ik om het telefoonboek doormidden te scheuren 155 00:07:36,200 --> 00:07:39,930 om iemand te vinden als Mike Smith, maximaal, op de 1000 pagina's tellende boek? 156 00:07:39,930 --> 00:07:41,040 Dus, 10 geven of te nemen. 157 00:07:41,040 --> 00:07:45,050 En zo af en scheurde ik dit ding in de helft, of gewoon, meer weloverwogen, 158 00:07:45,050 --> 00:07:48,490 in tweeën gedeeld, het is alleen maar 10 pagina's op de 1.000. 159 00:07:48,490 --> 00:07:51,470 En als je, een beetje extrapoleren onrealistisch voor een telefoonboek, 160 00:07:51,470 --> 00:07:56,540 maar als dit telefoonboek had zo'n 4 miljard pagina's in, dus compleet 161 00:07:56,540 --> 00:07:59,680 logge fysiek, hoeveel keer moet je delen van een 4 miljard 162 00:07:59,680 --> 00:08:01,460 pagina telefoonboek doormidden? 163 00:08:01,460 --> 00:08:03,035 Dus het is eigenlijk 32, te geven of te nemen. 164 00:08:03,035 --> 00:08:07,090 En alleen zo 32 keer, uit van 4 miljard pagina's, kan 165 00:08:07,090 --> 00:08:08,700 je iemand als Mike Smith te vinden. 166 00:08:08,700 --> 00:08:09,740 En dat is de efficiëntie. 167 00:08:09,740 --> 00:08:12,130 Dat is een goed algoritme, durf te zeggen. 168 00:08:12,130 --> 00:08:14,480 >> Maar dan zijn we verhuisd uit dat om te proberen om het te formaliseren. 169 00:08:14,480 --> 00:08:16,100 En ik voorgesteld dit pseudo-code. 170 00:08:16,100 --> 00:08:17,800 Pseudo-code is niets formeel. 171 00:08:17,800 --> 00:08:18,880 Het is niet iets wat je onthouden. 172 00:08:18,880 --> 00:08:21,588 Het is gewoon iets wat je uit te drukken vrij intuïtief gebruik van het Engels, 173 00:08:21,588 --> 00:08:24,990 of welke taal dan ook echt, dat brengt uw ideeën kort en bondig. 174 00:08:24,990 --> 00:08:26,990 Maar wat is belangrijk over pseudo-code is dat je 175 00:08:26,990 --> 00:08:30,331 proberen om alle van het anticiperen op mogelijke gevallen die zouden kunnen gebeuren. 176 00:08:30,331 --> 00:08:33,080 En inderdaad, in deze pseudocode code, waren er eigenlijk drie gevallen 177 00:08:33,080 --> 00:08:34,700 elke keer als ik verdeelde het telefoonboek. 178 00:08:34,700 --> 00:08:36,006 Mike misschien naar links. 179 00:08:36,006 --> 00:08:37,130 Mike zou kunnen zijn om de juiste. 180 00:08:37,130 --> 00:08:39,240 Of hij kan zijn recht op de pagina Ik ben op. 181 00:08:39,240 --> 00:08:42,110 Of een vierde hoek geval, bij wijze van spreken. 182 00:08:42,110 --> 00:08:46,470 Een slechte scenario zou kunnen zijn een which-- wat er gebeurt? 183 00:08:46,470 --> 00:08:48,860 Mike is gewoon niet in het telefoonboek op alle. 184 00:08:48,860 --> 00:08:52,720 >> En wanneer programma crash-- wanneer Mac en PC-software die jullie lopen 185 00:08:52,720 --> 00:08:56,400 op uw computers soms hangt of wordt onverwacht afgesloten, 186 00:08:56,400 --> 00:08:59,770 dat betekent algemeen dat sommige programmeur, sommige menselijke als jij binnenkort, 187 00:08:59,770 --> 00:09:01,650 gewoon verpest en maakte een fout. 188 00:09:01,650 --> 00:09:05,207 Misschien niet verwachten dat er misschien is geen Mike Smith in het telefoonboek. 189 00:09:05,207 --> 00:09:08,040 En als je niet echt schrijven code om dergelijke situaties te behandelen, 190 00:09:08,040 --> 00:09:09,890 over het algemeen onvoorspelbaar dingen kunnen gebeuren. 191 00:09:09,890 --> 00:09:10,960 Uw machine kan bevriezen. 192 00:09:10,960 --> 00:09:11,730 Het kan herstarten. 193 00:09:11,730 --> 00:09:12,889 Het programma kan stoppen. 194 00:09:12,889 --> 00:09:14,722 En dus al deze stommiteiten die je kan 195 00:09:14,722 --> 00:09:18,030 hebben ondervonden in uw werkelijke leven alleen met behulp van computers, 196 00:09:18,030 --> 00:09:20,710 zal steeds meer gewoon weggeredeneerd door deze intuïtie 197 00:09:20,710 --> 00:09:24,920 en dit begrip van wat is werkelijk gaande is onder de motorkap. 198 00:09:24,920 --> 00:09:27,329 >> Laten we nu eens proberen om een ​​kijkje te nemen meer algemeen probleem. 199 00:09:27,329 --> 00:09:29,120 In plaats nemen aanwezigheid in een plaats als 200 00:09:29,120 --> 00:09:32,230 Dit, hetgeen nogal traag een, twee, drie, vier doen. 201 00:09:32,230 --> 00:09:34,070 Of misschien twee, vier, zes, acht. 202 00:09:34,070 --> 00:09:36,080 Laten we focussen, in plaats daarvan, op hoe we kunnen formaliseren 203 00:09:36,080 --> 00:09:39,400 het algoritme van het proces die we aanwezigheid duren. 204 00:09:39,400 --> 00:09:42,290 En langs de weg, laten we beginnen om enkele nomenclatuur van toepassing 205 00:09:42,290 --> 00:09:47,130 dat we vandaag zullen gebruiken wanneer we eigenlijk beginnen met programmeren in een taal. 206 00:09:47,130 --> 00:09:50,910 Dus ik geef je nu een vier minuten durende video voor dat we samen met onze vrienden 207 00:09:50,910 --> 00:09:52,820 van TED, de organisatie. 208 00:09:52,820 --> 00:09:56,380 Waarbij wij leveren een script en zij brachten hun animators te dragen, 209 00:09:56,380 --> 00:10:00,970 en eigenlijk gemaakt van een 2D animatie wat een algoritme. 210 00:10:00,970 --> 00:10:02,776 Als we het licht kunnen dimmen. 211 00:10:02,776 --> 00:10:06,664 >> [Muziek] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 Verteller: Wat is een algoritme? 214 00:10:19,140 --> 00:10:21,620 In de informatica, Een algoritme is een set 215 00:10:21,620 --> 00:10:24,840 instructies oplossen een probleem stap voor stap. 216 00:10:24,840 --> 00:10:27,310 Typisch, algoritmen uitgevoerd door computers, 217 00:10:27,310 --> 00:10:29,365 maar wij mensen hebben algoritmes ook. 218 00:10:29,365 --> 00:10:31,240 Bijvoorbeeld, hoe zou je gaat over het tellen van 219 00:10:31,240 --> 00:10:32,990 het aantal mensen in een kamer? 220 00:10:32,990 --> 00:10:36,840 Nou, als je net als ik, zou je waarschijnlijk wijzen op elke persoon een voor een 221 00:10:36,840 --> 00:10:38,370 en tellen van nul. 222 00:10:38,370 --> 00:10:41,200 Een, twee, drie, vier, enzovoort. 223 00:10:41,200 --> 00:10:42,410 Nou, dat is een algoritme. 224 00:10:42,410 --> 00:10:45,820 In feite, laten we proberen om er een uit te drukken beetje meer formeel in pseudo-code. 225 00:10:45,820 --> 00:10:48,940 Engels-achtige syntax die lijkt op een programmeertaal. 226 00:10:48,940 --> 00:10:50,880 >> Laat n gelijk 0. 227 00:10:50,880 --> 00:10:55,210 Voor elke persoon in de kamer, ingesteld n gelijk aan n plus 1. 228 00:10:55,210 --> 00:10:56,790 Hoe de pseudocode interpreteren? 229 00:10:56,790 --> 00:10:59,490 Nou lijn een verklaart, zogezegd, een variabele 230 00:10:59,490 --> 00:11:02,880 riep n en geïnitialiseerd de waarde op 0 Dit net 231 00:11:02,880 --> 00:11:05,080 betekent dat bij de begin ons algoritme, 232 00:11:05,080 --> 00:11:07,910 het ding waarmee we tellen heeft een waarde van 0. 233 00:11:07,910 --> 00:11:10,860 Immers, voordat we beginnen te tellen we hebben nog niets geteld. 234 00:11:10,860 --> 00:11:13,580 Het aanroepen van deze variabele n is gewoon een conventie. 235 00:11:13,580 --> 00:11:15,130 Ik kon het hebben genoemd bijna alles. 236 00:11:15,130 --> 00:11:17,460 Nu lijn twee markeert het begin van een lus, 237 00:11:17,460 --> 00:11:20,550 een opeenvolging van stappen, dat zal herhalen wat aantal keren. 238 00:11:20,550 --> 00:11:24,130 Dus in ons voorbeeld, de stap die we zijn nemen rekent mensen in de kamer. 239 00:11:24,130 --> 00:11:26,260 Onder lijn twee is lijn drie die beschrijft 240 00:11:26,260 --> 00:11:28,400 precies hoe we gaan over het tellen. 241 00:11:28,400 --> 00:11:31,720 De inkeping impliceert dat het is regel drie die zal herhalen. 242 00:11:31,720 --> 00:11:35,190 Dus met de pseudo-code is gezegde is dat na het starten bij 0 243 00:11:35,190 --> 00:11:38,940 voor elke persoon in de kamer die we zullen toenemen n door 1 244 00:11:38,940 --> 00:11:41,310 Nu is dit algoritme juist? 245 00:11:41,310 --> 00:11:42,820 Nou laten we bang op het een beetje. 246 00:11:42,820 --> 00:11:45,520 >> Werkt het als er twee mensen in de kamer? 247 00:11:45,520 --> 00:11:46,420 Laten we eens kijken. 248 00:11:46,420 --> 00:11:48,500 In lijn een initialiseren we n naar 0. 249 00:11:48,500 --> 00:11:51,910 Voor elk van deze twee mensen, dan verhogen we n door 1. 250 00:11:51,910 --> 00:11:55,570 Dus in de eerste reis door de lus, we updaten n 0-1. 251 00:11:55,570 --> 00:11:59,320 Op de tweede reis door dat dezelfde lus, we updaten n 1-2. 252 00:11:59,320 --> 00:12:02,850 Dus, deze algoritme end, n 2, welke 253 00:12:02,850 --> 00:12:04,950 inderdaad overeenkomt met nummer van de mensen in de kamer. 254 00:12:04,950 --> 00:12:06,040 So far, so good. 255 00:12:06,040 --> 00:12:07,870 >> Wat dacht je van een hoek geval wel? 256 00:12:07,870 --> 00:12:11,090 Veronderstel dat er 0 mensen in de kamer-- naast me, wie is 257 00:12:11,090 --> 00:12:12,420 doen tellen. 258 00:12:12,420 --> 00:12:15,380 In lijn een, wij opnieuw initialiseren n naar 0. 259 00:12:15,380 --> 00:12:17,810 Ditmaal echter, de stippellijn drie helemaal niet uitgevoerd 260 00:12:17,810 --> 00:12:19,610 want er is niet een persoon in de kamer. 261 00:12:19,610 --> 00:12:23,540 Zo blijft n 0, die inderdaad overeenkomt het aantal mensen in de kamer. 262 00:12:23,540 --> 00:12:24,670 Vrij simpel, toch? 263 00:12:24,670 --> 00:12:27,880 Maar tellen mensen een voor een is vrij inefficiënt, ook, nee? 264 00:12:27,880 --> 00:12:29,160 Uiteraard kunnen we beter doen. 265 00:12:29,160 --> 00:12:33,440 Waarom niet rekenen twee mensen tegelijk, in plaats van het tellen van een, twee, drie, 266 00:12:33,440 --> 00:12:36,470 vier, vijf, zes, zeven, acht, enzovoort. 267 00:12:36,470 --> 00:12:39,106 Waarom niet rekenen twee, vier, zes, acht, enzovoorts? 268 00:12:39,106 --> 00:12:40,670 Het klinkt nog sneller. 269 00:12:40,670 --> 00:12:41,940 En het is zeker. 270 00:12:41,940 --> 00:12:44,490 >> Laten we uiten deze optimalisatie in pseudocode code. 271 00:12:44,490 --> 00:12:46,040 Laat n gelijk 0. 272 00:12:46,040 --> 00:12:50,760 Voor elk paar mensen kamer, zet n gelijk aan n plus 2. 273 00:12:50,760 --> 00:12:52,360 Vrij simpele verandering, toch? 274 00:12:52,360 --> 00:12:56,560 In plaats tellen mensen een voor een, we plaats tellen twee tegelijk. 275 00:12:56,560 --> 00:12:59,240 Dit algoritme is dus twee keer zo snel als de vorige. 276 00:12:59,240 --> 00:13:00,530 Maar is het juist? 277 00:13:00,530 --> 00:13:01,160 Laten we eens kijken. 278 00:13:01,160 --> 00:13:03,580 Werkt het als er twee mensen in de kamer? 279 00:13:03,580 --> 00:13:05,800 In lijn een, initialiseren we n naar 0. 280 00:13:05,800 --> 00:13:09,160 Voor dat een paar van de mensen, dan verhogen we n door 2. 281 00:13:09,160 --> 00:13:11,910 En deze algoritme end n is 2, welke 282 00:13:11,910 --> 00:13:13,910 inderdaad overeenkomt met nummer van de mensen in de kamer. 283 00:13:13,910 --> 00:13:16,610 >> Stel vervolgens dat er nul mensen in de kamer. 284 00:13:16,610 --> 00:13:19,080 In lijn een initialiseren we n naar 0. 285 00:13:19,080 --> 00:13:21,260 Zoals eerder, regel drie niet voeren het allemaal 286 00:13:21,260 --> 00:13:25,270 aangezien er geen paren mensen in de kamer, en zo n blijft 0. 287 00:13:25,270 --> 00:13:27,840 Die inderdaad overeenkomt met de aantal mensen in de kamer. 288 00:13:27,840 --> 00:13:30,520 Maar wat als er drie mensen in de kamer? 289 00:13:30,520 --> 00:13:32,380 Hoe werkt dit algoritme tarief? 290 00:13:32,380 --> 00:13:35,710 Laten we eens kijken, in de lijn een, we initialiseren n naar 0. 291 00:13:35,710 --> 00:13:39,140 Voor een paar van die mensen, dan verhogen we n door 2. 292 00:13:39,140 --> 00:13:40,050 Maar wat dan? 293 00:13:40,050 --> 00:13:42,340 Er is geen ander vol paar mensen in de zaal, 294 00:13:42,340 --> 00:13:44,430 dus lijn twee niet meer van toepassing. 295 00:13:44,430 --> 00:13:48,790 En zo tegen het einde van dit algoritme, n is momenteel nog 2 die niet correct. 296 00:13:48,790 --> 00:13:52,070 Inderdaad dit algoritme is gezegd zijn buggy omdat het een vergissing. 297 00:13:52,070 --> 00:13:54,070 >> Laten we het verhaal met een aantal nieuwe pseudo-code. 298 00:13:54,070 --> 00:13:56,110 Laat n gelijk 0. 299 00:13:56,110 --> 00:14:00,790 Voor elk paar mensen room, N ingesteld gelijk aan n plus 2. 300 00:14:00,790 --> 00:14:05,410 Als een persoon blijft ongepaard, ingesteld N gelijk aan n plus 1. 301 00:14:05,410 --> 00:14:09,340 Om dit specifieke probleem op te lossen, we hebben geïntroduceerd in lijn vier een voorwaarde, 302 00:14:09,340 --> 00:14:12,120 anders bekend als tak, die alleen uitvoert 303 00:14:12,120 --> 00:14:14,890 als er een persoon die we kan geen koppeling maken met een ander. 304 00:14:14,890 --> 00:14:17,140 En dus nu, of er is een, of drie, 305 00:14:17,140 --> 00:14:21,550 of een oneven aantal mensen in de kamer, Dit algoritme zal ze nu tellen. 306 00:14:21,550 --> 00:14:22,810 Kunnen we nog beter doen? 307 00:14:22,810 --> 00:14:25,890 Nou, we konden in drieën te tellen, of fours, of zelfs vijven en tienen, 308 00:14:25,890 --> 00:14:29,390 maar buiten dat, het gaat om te krijgen een beetje moeilijk om te wijzen. 309 00:14:29,390 --> 00:14:32,900 >> Aan het eind van de dag, of uitgevoerd door computers of mensen, 310 00:14:32,900 --> 00:14:34,870 algoritmen zijn onder een reeks instructies 311 00:14:34,870 --> 00:14:36,560 met welke problemen op te lossen. 312 00:14:36,560 --> 00:14:38,360 Dit waren slechts drie. 313 00:14:38,360 --> 00:14:41,860 Welk probleem zou je lossen met een algoritme? 314 00:14:41,860 --> 00:14:44,261 >> DAVID J. MALAN: Dus met opzet, een eenvoudig programma, 315 00:14:44,261 --> 00:14:46,260 een zeer eenvoudig algoritme, voor het bereiken van iets 316 00:14:46,260 --> 00:14:48,280 zeer eenvoudig, tellen aantal mensen in de kamer. 317 00:14:48,280 --> 00:14:50,370 >> Maar laten we plagen elkaar sommige representatieve 318 00:14:50,370 --> 00:14:52,870 heeft hier die eigenlijk zal ook nuttig zijn bij 319 00:14:52,870 --> 00:14:54,880 de uitvoering van de meest complexe software. 320 00:14:54,880 --> 00:14:58,060 Dus bijvoorbeeld in de eerste regel, we hebben wat we de variabele noemen, 321 00:14:58,060 --> 00:15:01,040 en uit de algebra, je bent algemeen bekend zijn met behulp van x en y 322 00:15:01,040 --> 00:15:02,930 en z soms, enzovoort. 323 00:15:02,930 --> 00:15:05,770 Maar in de programmering, variabelen nog steeds aan het einde van de dag, 324 00:15:05,770 --> 00:15:06,680 vergelijkbaar met die. 325 00:15:06,680 --> 00:15:09,910 Maar het is misschien eenvoudiger om na te denken een variabele als slechts een container. 326 00:15:09,910 --> 00:15:13,520 En, in feite, het is een aantal bits een of andere manier in uw harde schijf geïmplementeerd 327 00:15:13,520 --> 00:15:16,410 of in het geheugen van uw computer, maar daarover in de toekomst. 328 00:15:16,410 --> 00:15:17,670 Het is gewoon een container. 329 00:15:17,670 --> 00:15:20,310 En als je iets te zeggen zoals laat n gelijk 0, 330 00:15:20,310 --> 00:15:24,310 Nou dat is als het roepen van dit glas kom hier n, gewoon een willekeurige naam, 331 00:15:24,310 --> 00:15:26,230 en zetten niets in eerste instantie. 332 00:15:26,230 --> 00:15:28,940 Dus de waarde van deze kom is op dit moment nul. 333 00:15:28,940 --> 00:15:31,380 En natuurlijk als je waarneemt in een volgende regel, 334 00:15:31,380 --> 00:15:35,070 daadwerkelijk verhogen enkele lijn code, zoals in de derde regel here, 335 00:15:35,070 --> 00:15:39,857 door 1, dat is hetzelfde als zeggen wat is het huidige waarde van n, het is 0, plus 1, 336 00:15:39,857 --> 00:15:41,690 zet iets als een pingpongbal in hier. 337 00:15:41,690 --> 00:15:45,140 Nu de waarde van deze variabele is gewoon 1. 338 00:15:45,140 --> 00:15:50,064 En je kon heel snel extrapoleren, maar nu is het 2, nu is het 3, en ga zo maar door. 339 00:15:50,064 --> 00:15:51,230 Dus dat is al een variabele is. 340 00:15:51,230 --> 00:15:53,740 Het is een fluitje van een opslag sommige gegevens daadwerkelijk op te slaan. 341 00:15:53,740 --> 00:15:55,050 Voor nu is het een ping pong bal. 342 00:15:55,050 --> 00:15:55,883 Daar is het een nummer. 343 00:15:55,883 --> 00:15:58,910 Maar het kan woorden in een woordenboek, zoals de spellingcontrole 344 00:15:58,910 --> 00:16:02,300 Ik zinspeelde op woensdag voor een van vorig jaar probleem sets. 345 00:16:02,300 --> 00:16:05,640 >> Nu een andere belangrijke gedachte, die op dezelfde is vrij intuïtief ik zou beweren, 346 00:16:05,640 --> 00:16:06,690 is dat van een lus. 347 00:16:06,690 --> 00:16:08,930 En de lus van de werkwijze van het tellen van iedereen 348 00:16:08,930 --> 00:16:12,540 is natuurlijk, die hetzelfde nogmaals ding en again-- ofwel een 349 00:16:12,540 --> 00:16:14,140 voor een of twee tegelijk. 350 00:16:14,140 --> 00:16:17,690 En u kunt dit uit te drukken in het Engels, of pseudocode code in een aantal manieren, 351 00:16:17,690 --> 00:16:21,560 maar met deze voorzetsel "voor" is een veel voorkomende manier om dat te doen. 352 00:16:21,560 --> 00:16:24,460 Voor elke persoon in de kamer, dit doen. 353 00:16:24,460 --> 00:16:25,350 Opnieuw en opnieuw. 354 00:16:25,350 --> 00:16:27,700 En het feit dat het ingesprongen, lijn drie, 355 00:16:27,700 --> 00:16:29,840 betekent gewoon dat wat je moet doen 356 00:16:29,840 --> 00:16:33,490 is het spul dat is ingesprongen onder de lijn twee zelf. 357 00:16:33,490 --> 00:16:35,590 Gewoon een mens conventie, maar een gemeenschappelijk een 358 00:16:35,590 --> 00:16:39,010 zoals we zullen zien in de werkelijke hogere programmeertalen. 359 00:16:39,010 --> 00:16:41,870 >> Nu iets interessanter is als je in een hoek geval. 360 00:16:41,870 --> 00:16:43,970 Bijvoorbeeld, een hoek geval was toen er 361 00:16:43,970 --> 00:16:48,060 waren drie mensen, of vijf, of zeven, of een oneven aantal mensen in de kamer, 362 00:16:48,060 --> 00:16:51,630 want dat doen door tweeën remmen uiteindelijk, omdat je gaat 363 00:16:51,630 --> 00:16:54,265 om iemand te missen, hetzij op de begin of het einde 364 00:16:54,265 --> 00:16:55,390 afhankelijk van hoe je het doet. 365 00:16:55,390 --> 00:16:59,800 En ja, nu heb ik deze tak, of staat, als een persoon blijft, 366 00:16:59,800 --> 00:17:04,490 dan ga je gang en te hanteren dat een eenzame persoon die niet krijgen 367 00:17:04,490 --> 00:17:05,690 gepaarde met iemand anders. 368 00:17:05,690 --> 00:17:09,030 Dus dat is wat wij zouden noemen een aandoening, of een tak. 369 00:17:09,030 --> 00:17:11,500 >> Nu pseudocode code Meer algemeen kan worden 370 00:17:11,500 --> 00:17:13,730 geschreven aan een aantal problemen. 371 00:17:13,730 --> 00:17:16,490 En wat ik dacht dat we zouden hier doen is een moment 372 00:17:16,490 --> 00:17:20,089 te nodigen zullen we zeggen CS50's bezitten Rob Bowden op het podium 373 00:17:20,089 --> 00:17:25,040 te worden vergezeld door twee vrijwilligers, die geen idee hebben wat er te wachten staat. 374 00:17:25,040 --> 00:17:26,890 Een hand ging naar beneden, zodra ik dat zei. 375 00:17:26,890 --> 00:17:28,700 Hoe zit je op de eindigen hier, kom op. 376 00:17:28,700 --> 00:17:33,040 En wat te denken van van verder weg, wat dacht je van helemaal achterin. 377 00:17:33,040 --> 00:17:35,200 Achterste rij, kom op met je handen omhoog. 378 00:17:35,200 --> 00:17:36,475 Oke, en wat is uw naam? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Anita. 380 00:17:36,960 --> 00:17:37,655 >> DAVID J. MALAN: Anita. 381 00:17:37,655 --> 00:17:38,613 Oke, leuk je te ontmoeten. 382 00:17:38,613 --> 00:17:41,010 Laat me je voorstellen aan Rob Bowden. 383 00:17:41,010 --> 00:17:42,890 Dit is Anita. 384 00:17:42,890 --> 00:17:44,033 En wat is uw naam? 385 00:17:44,033 --> 00:17:44,800 >> Kiersten: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> DAVID J. MALAN: Kiersten. 387 00:17:46,020 --> 00:17:49,790 Kiersten, kom op en ontmoeten Rob Bowden en Anita. 388 00:17:49,790 --> 00:17:51,036 Leuk je te ontmoeten. 389 00:17:51,036 --> 00:17:52,160 Kiersten: Leuk je te ontmoeten. 390 00:17:52,160 --> 00:17:53,368 DAVID J. MALAN: Oke, Rob. 391 00:17:53,368 --> 00:17:54,650 ROB BOWDEN: Leuk je te ontmoeten. 392 00:17:54,650 --> 00:17:55,566 DAVID J. MALAN: Anita. 393 00:17:55,566 --> 00:17:56,520 Kiersten: Hoi Anita. 394 00:17:56,520 --> 00:17:58,686 DAVID J. MALAN: En uw enkele honderden klasgenoten. 395 00:17:58,686 --> 00:18:02,490 Zo, nu laat me ga je gang en trek up gewoon een simpel programma hier 396 00:18:02,490 --> 00:18:05,690 Op Mac OS dat me laat eigenlijk noteren wat aantekeningen neer. 397 00:18:05,690 --> 00:18:09,570 En als jullie willen ieder voor zich een ligging aan een van die scholen daar, 398 00:18:09,570 --> 00:18:16,360 laat me gaan en begint een lijst van pseudo-code, als je wil. 399 00:18:16,360 --> 00:18:19,970 En wat ik hier wil doen, uiteindelijk is het type voor u 400 00:18:19,970 --> 00:18:22,470 aantal instructies dat onze leden van het publiek zijn eigenlijk 401 00:18:22,470 --> 00:18:23,569 gaat reciteren voor ons. 402 00:18:23,569 --> 00:18:25,860 Laat me gaan en gewoon verander dit in een genummerde lijst 403 00:18:25,860 --> 00:18:27,720 overeenkomen met wat we aan het doen waren daar. 404 00:18:27,720 --> 00:18:30,990 En wat ik ga doen met uw hulp, is een programma schrijven 405 00:18:30,990 --> 00:18:34,620 in pseudocode waarmee deze jongens gaan 406 00:18:34,620 --> 00:18:38,150 om een ​​pinda te implementeren boter en jam. 407 00:18:38,150 --> 00:18:40,880 Dus het is misschien apropos te wat laten sommigen van jullie 408 00:18:40,880 --> 00:18:44,560 zou kunnen hebben gezien op het internet voor slechts een korte vervelend ogenblik. 409 00:18:44,560 --> 00:18:47,650 >> [MUZIEK BUCKEWHEAT BOYS, "PINDAKAAS  JELLY TIME "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 DAVID J. MALAN: OK. 412 00:19:08,910 --> 00:19:10,050 Dat is genoeg. 413 00:19:10,050 --> 00:19:12,690 Dus hier ondertussen, ik heb een paar van Google Glasses die 414 00:19:12,690 --> 00:19:16,500 we op CS50 eigen Rob Bowden zal zetten om de wereld te zien door zijn ogen. 415 00:19:16,500 --> 00:19:19,140 En we zullen ons best doen in de post productie daadwerkelijk weven 416 00:19:19,140 --> 00:19:23,100 de beelden van wat Rob ziet nu, in deze eigenlijke lezing 417 00:19:23,100 --> 00:19:26,420 video met onze twee vrijwilligers naast hem. 418 00:19:26,420 --> 00:19:28,480 Dus wat ik ga doen is, zal ik de typiste zijn. 419 00:19:28,480 --> 00:19:31,849 We hebben het doel hier van eigenlijk het schrijven van een programma 420 00:19:31,849 --> 00:19:34,640 waarbij om uiteindelijk een pindakaas en jam sandwich, 421 00:19:34,640 --> 00:19:37,680 maar deze drie gaan gedragen alsof ze zijn computers. 422 00:19:37,680 --> 00:19:40,638 En computers, aan het eind van de dag, zijn eigenlijk best dom apparaten. 423 00:19:40,638 --> 00:19:44,432 Ze zijn super snel, maar ze kunnen alleen doen, letterlijk, wat ze verteld. 424 00:19:44,432 --> 00:19:46,890 Je kunt niet zomaar zeggen: maak een pinda boter en jam. 425 00:19:46,890 --> 00:19:48,640 Je moet ze te programmeren om dat te doen. 426 00:19:48,640 --> 00:19:51,420 Je moet ze vertellen met precisie wat te doen, 427 00:19:51,420 --> 00:19:54,400 minder er iets vreselijk en, hopelijk, vermakelijk mis. 428 00:19:54,400 --> 00:19:57,460 >> Dus met dat gezegd, moeten we een call-out uit het publiek 429 00:19:57,460 --> 00:19:59,440 voor wat moet stap een, als het doel here 430 00:19:59,440 --> 00:20:01,356 is een pinda maken boter en jam. 431 00:20:01,356 --> 00:20:01,910 Ja? 432 00:20:01,910 --> 00:20:03,647 >> PUBLIEK: [onverstaanbaar] de zak met brood. 433 00:20:03,647 --> 00:20:05,230 DAVID J. Malan: Open de zak met brood. 434 00:20:05,230 --> 00:20:08,360 Als de drie deelnemers zouden wilt doorgaan met dat letterlijk doen. 435 00:20:08,360 --> 00:20:12,394 Open de zak met brood. 436 00:20:12,394 --> 00:20:15,810 >> [PUBLIEK LACHT] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 DAVID J. MALAN: Dus laten we aan werken. 439 00:20:22,300 --> 00:20:23,180 Oke. 440 00:20:23,180 --> 00:20:25,400 Dus stap twee, how-- laten we dit verder gaan. 441 00:20:25,400 --> 00:20:26,480 Ja, aan de voorkant. 442 00:20:26,480 --> 00:20:27,240 >> PUBLIEK: [onverstaanbaar] het brood. 443 00:20:27,240 --> 00:20:27,735 >> DAVID J. MALAN: Wat is dat? 444 00:20:27,735 --> 00:20:28,836 >> PUBLIEK: Verwijder het brood. 445 00:20:28,836 --> 00:20:30,210 DAVID J. Malan: Verwijder het brood. 446 00:20:30,210 --> 00:20:31,190 Zo ook beknopt. 447 00:20:31,190 --> 00:20:33,667 Dank je wel. 448 00:20:33,667 --> 00:20:43,777 >> [Applaus] 449 00:20:43,777 --> 00:20:44,860 DAVID J. MALAN: Dat is het? 450 00:20:44,860 --> 00:20:48,830 OK, dus stap twee gaat te verwijderen brood. 451 00:20:48,830 --> 00:20:51,790 Oke, iemand wilt Schrijf ons een langere straf? 452 00:20:51,790 --> 00:20:52,640 Iemand anders? 453 00:20:52,640 --> 00:20:53,920 Een beetje meer [onverstaanbaar]. 454 00:20:53,920 --> 00:20:54,810 Nee, niets nu. 455 00:20:54,810 --> 00:20:56,094 Ja? 456 00:20:56,094 --> 00:20:58,900 >> PUBLIEK: Plaats twee plakjes naast elkaar. 457 00:20:58,900 --> 00:21:03,575 >> DAVID J. MALAN: Plaats twee plakjes naast elkaar. 458 00:21:03,575 --> 00:21:06,420 >> [PUBLIEK LACHT] 459 00:21:06,420 --> 00:21:09,590 >> DAVID J. MALAN: Plaats twee plakjes naast elkaar. 460 00:21:09,590 --> 00:21:11,334 Stap vier. 461 00:21:11,334 --> 00:21:12,816 Ja? 462 00:21:12,816 --> 00:21:14,792 >> PUBLIEK: Neem uw hand en zet het licht 463 00:21:14,792 --> 00:21:17,756 bovenop de pindakaas deksel. 464 00:21:17,756 --> 00:21:19,710 >> [PUBLIEK LACHT] 465 00:21:19,710 --> 00:21:21,710 PUBLIEK: [onverstaanbaar] naast de pindakaas. 466 00:21:21,710 --> 00:21:21,870 DAVID J. MALAN: Wat? 467 00:21:21,870 --> 00:21:22,520 Zeg dat nog eens. 468 00:21:22,520 --> 00:21:26,308 >> PUBLIEK: Draai het deksel en zet het voorzichtig naast de pindakaas. 469 00:21:26,308 --> 00:21:31,490 >> DAVID J. MALAN: Doe het voorzichtig naast de pindakaas. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, vooruitgang. 472 00:21:40,090 --> 00:21:41,080 Stap vijf. 473 00:21:41,080 --> 00:21:42,380 Excellent. 474 00:21:42,380 --> 00:21:43,261 Ja? 475 00:21:43,261 --> 00:21:44,163 >> Pick-up mes. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 DAVID J. MALAN: Pick up mes. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, stap zes. 480 00:21:53,631 --> 00:21:54,130 Yeah? 481 00:21:54,130 --> 00:21:56,237 >> PUBLIEK: Houd mes bij het handvat. 482 00:21:56,237 --> 00:21:57,945 DAVID J. MALAN: Houd mes bij het handvat. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Houd mes bij het handvat. 485 00:22:03,230 --> 00:22:04,880 Stap zeven. 486 00:22:04,880 --> 00:22:05,692 Ja? 487 00:22:05,692 --> 00:22:10,030 >> PUBLIEK: mes [onverstaanbaar] in pinda boter en zo weinig uit [onverstaanbaar]. 488 00:22:10,030 --> 00:22:13,070 >> DAVID J. MALAN: Zet mes in-- I gehoord "zet mes in pindakaas 489 00:22:13,070 --> 00:22:19,500 en neem zo weinig als mogelijk. " 490 00:22:19,500 --> 00:22:22,480 By the way, verwijder eerst het papier. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Oke, stap negen. 493 00:22:31,890 --> 00:22:34,910 Stap negen. 494 00:22:34,910 --> 00:22:35,624 Stap negen. 495 00:22:35,624 --> 00:22:37,290 We hebben eigenlijk niet nog een broodje gemaakt. 496 00:22:37,290 --> 00:22:37,790 Ja? 497 00:22:37,790 --> 00:22:41,570 Publiek: Het gebruik van mes in pindakaas, toepassing pindakaas op brood gezegd. 498 00:22:41,570 --> 00:22:47,440 >> DAVID J. MALAN: Met behulp van mes in pindakaas, gelden pindakaas op 499 00:22:47,440 --> 00:22:48,736 genoemde brood. 500 00:22:48,736 --> 00:22:56,030 >> [PUBLIEK LACHT] 501 00:22:56,030 --> 00:22:59,480 DAVID J. MALAN: Oke stap 10. 502 00:22:59,480 --> 00:23:01,762 Stap 10. 503 00:23:01,762 --> 00:23:02,750 Ja? 504 00:23:02,750 --> 00:23:05,220 >> PUBLIEK: Taste pinda boter om de kwaliteit te waarborgen. 505 00:23:05,220 --> 00:23:15,960 >> [PUBLIEK LACHT] 506 00:23:15,960 --> 00:23:16,960 DAVID J. MALAN: Stap 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Stap 11. 509 00:23:21,340 --> 00:23:22,101 Stap 11. 510 00:23:22,101 --> 00:23:22,600 Kom op. 511 00:23:22,600 --> 00:23:23,099 Yeah? 512 00:23:23,099 --> 00:23:24,208 Daar. 513 00:23:24,208 --> 00:23:25,840 >> PUBLIEK: pick-up gelei voorzichtig. 514 00:23:25,840 --> 00:23:28,220 >> DAVID J. MALAN: pick-up gelei voorzichtig. 515 00:23:28,220 --> 00:23:29,970 OK, en dan een andere hand lag. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Vlak achter je. 518 00:23:33,520 --> 00:23:35,761 Ja, in het blauw. 519 00:23:35,761 --> 00:23:40,671 >> PUBLIEK: Oke, verwijder deksel van [onverstaanbaar], ja, 520 00:23:40,671 --> 00:23:42,635 Verwijder deksel van de gelei. 521 00:23:42,635 --> 00:23:43,617 >> [PUBLIEK LACHT] 522 00:23:43,617 --> 00:23:44,742 >> DAVID J. MALAN: Van gelei. 523 00:23:44,742 --> 00:23:45,581 Ha ha. 524 00:23:45,581 --> 00:23:48,967 >> [PUBLIEK LACHT] 525 00:23:48,967 --> 00:23:49,800 DAVID J. MALAN: En? 526 00:23:49,800 --> 00:23:52,490 PUBLIEK: En nauwelijks vegen elke [onverstaanbaar]. 527 00:23:52,490 --> 00:23:59,536 [PUBLIEK LACHT] 528 00:23:59,536 --> 00:24:04,456 PUBLIEK: Natuurlijk, voordat [onverstaanbaar], Verwijder het papier uit gelei. 529 00:24:04,456 --> 00:24:06,940 DAVID J. MALAN: Verwijder het papier uit jelly. 530 00:24:06,940 --> 00:24:08,229 Stap 14. 531 00:24:08,229 --> 00:24:09,020 We zijn er bijna. 532 00:24:09,020 --> 00:24:09,857 Ja? 533 00:24:09,857 --> 00:24:12,600 >> PUBLIEK: Omkeren gelei fles voordat alles valt uit. 534 00:24:12,600 --> 00:24:16,515 >> DAVID J. MALAN: Omkeren gelei fles voor het gelei valt uit. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Stap 15. 537 00:24:19,890 --> 00:24:21,130 >> PUBLIEK: Plaats de dop. 538 00:24:21,130 --> 00:24:22,463 >> DAVID J. Malan: Plaats de dop. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Stap 16. 541 00:24:28,190 --> 00:24:28,931 Yeah? 542 00:24:28,931 --> 00:24:29,806 >> PUBLIEK: [onverstaanbaar] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 DAVID J. Malan: Zeg dat nog eens. 545 00:24:35,400 --> 00:24:38,100 PUBLIEK: Neem dop van uw gelei. 546 00:24:38,100 --> 00:24:39,650 DAVID J. MALAN: Uit uw gelei. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Dus really-- Oeps. 549 00:24:49,510 --> 00:24:50,420 Kom op. 550 00:24:50,420 --> 00:24:51,740 Plaats de dop. 551 00:24:51,740 --> 00:24:56,660 Zet cap-- U zei Verwijder de dop van de gelei. 552 00:24:56,660 --> 00:24:58,950 Het gevoel alsof we in een beetje van een lus. 553 00:24:58,950 --> 00:24:59,640 Stap 17. 554 00:24:59,640 --> 00:25:00,398 Ja? 555 00:25:00,398 --> 00:25:02,639 >> PUBLIEK: [onverstaanbaar] 556 00:25:02,639 --> 00:25:03,930 DAVID J. Malan: Zeg dat nog eens. 557 00:25:03,930 --> 00:25:05,150 PUBLIEK: [onverstaanbaar] 558 00:25:05,150 --> 00:25:07,835 DAVID J. MALAN: Ga terug naar step-- 559 00:25:07,835 --> 00:25:10,110 PUBLIEK: [onverstaanbaar] 560 00:25:10,110 --> 00:25:13,760 DAVID J. MALAN: Verwijder dop van pindakaas. 561 00:25:13,760 --> 00:25:14,492 Ja? 562 00:25:14,492 --> 00:25:16,430 >> PUBLIEK: Laat al de gelei op het brood. 563 00:25:16,430 --> 00:25:19,040 >> DAVID J. MALAN: Drop alle de gelei op het brood. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 DAVID J. MALAN: We zijn er bijna. 566 00:25:26,830 --> 00:25:27,800 Stap 19. 567 00:25:27,800 --> 00:25:30,250 >> PUBLIEK: Verwijder overtollig gelei. 568 00:25:30,250 --> 00:25:31,720 >> DAVID J. MALAN: Haha, gelei. 569 00:25:31,720 --> 00:25:36,615 >> [Applaus] 570 00:25:36,615 --> 00:25:39,240 DAVID J. MALAN: Waarom niet we-- een stap om dit huis te nemen. 571 00:25:39,240 --> 00:25:41,720 Nog een stap en dan we broodjes serveren. 572 00:25:41,720 --> 00:25:42,900 Ja? 573 00:25:42,900 --> 00:25:45,570 >> PUBLIEK: [onverstaanbaar] 574 00:25:45,570 --> 00:25:50,704 >> DAVID J. MALAN: Hoewel elke sandwich streepje remains-- laten we dit-- eten. 575 00:25:50,704 --> 00:25:56,400 >> [Gelach] 576 00:25:56,400 --> 00:26:00,395 >> DAVID J. MALAN: Oke, bedankt aan onze vrijwilligers hier. 577 00:26:00,395 --> 00:26:06,150 >> [Applaus} 578 00:26:06,150 --> 00:26:08,940 >> DAVID J. MALAN: We hebben een aantal leuke afscheid geschenken voor ieder van jullie. 579 00:26:08,940 --> 00:26:14,350 Uw eigen pindakaas, gelei, en brood terug te brengen naar huis. 580 00:26:14,350 --> 00:26:15,774 Dank je wel. 581 00:26:15,774 --> 00:26:17,118 >> Kiersten: Dank je wel. 582 00:26:17,118 --> 00:26:18,618 DAVID J. MALAN: [onverstaanbaar] welkom. 583 00:26:18,618 --> 00:26:21,849 [Applaus] 584 00:26:21,849 --> 00:26:24,390 DAVID J. MALAN: Dus, dit is, van Natuurlijk belachelijk voorbeeld. 585 00:26:24,390 --> 00:26:24,890 Rechts? 586 00:26:24,890 --> 00:26:28,890 Maar het hoeft soort onthullen hoe wij mensen gewoon duidelijkheid voor verleend. 587 00:26:28,890 --> 00:26:30,890 En het feit dat ik ben geweest praten met een ander mens, 588 00:26:30,890 --> 00:26:33,300 hij of zij weet precies wat je bedoelt. 589 00:26:33,300 --> 00:26:35,220 >> Computers zijn niet van plan om te weten wat je bedoelt, 590 00:26:35,220 --> 00:26:37,430 zelfs bij gebruik, als we gaan doen vandaag, 591 00:26:37,430 --> 00:26:42,300 iets programmeren in Scratch, een sleep en drop, puzzelstuk stijl taal. 592 00:26:42,300 --> 00:26:44,310 Zelfs ontworpen voor jonge kinderen, je hebt 593 00:26:44,310 --> 00:26:48,726 zo expliciet en dus letterlijk met zijn wat u wilt dat uw programma te doen. 594 00:26:48,726 --> 00:26:50,600 Nu uiteindelijk zijn we gaat zijn programmering 595 00:26:50,600 --> 00:26:53,550 niet in pseudocode code, Engels achtige syntax, 596 00:26:53,550 --> 00:26:56,370 maar code of, beter gezegd, de broncode. 597 00:26:56,370 --> 00:26:59,260 Broncode is gewoon de mooie manier voor het daadwerkelijk beschrijven code 598 00:26:59,260 --> 00:27:01,730 schrijven met een toetsenbord dat is niet Engels per se. 599 00:27:01,730 --> 00:27:06,480 Het is in C of Java of C ++ of iets als dat, zoals we zullen snel zien. 600 00:27:06,480 --> 00:27:09,510 >> En in feite, om er maar een te schrikken weinigen van jullie, op het eerste gezicht, 601 00:27:09,510 --> 00:27:13,769 Dit is een programma geschreven in een taal riep C. Maar om un-schrikken een paar van jullie, 602 00:27:13,769 --> 00:27:15,560 zult u volledig begrijpt wat er gaande 603 00:27:15,560 --> 00:27:18,980 op komen volgende week maandag toen het gaat om iets als dit. 604 00:27:18,980 --> 00:27:20,510 Eerlijk gezegd, dit is een oudere taal. 605 00:27:20,510 --> 00:27:22,430 Het is vrij mysterieus, maar het is representatief 606 00:27:22,430 --> 00:27:26,120 van veel talen deze dagen dat hebben veel haakjes en krullend 607 00:27:26,120 --> 00:27:28,630 beugels en aanhalingstekens en komma's. 608 00:27:28,630 --> 00:27:30,780 En veel van deze syntactische spul dat is niet 609 00:27:30,780 --> 00:27:32,450 helemaal intellectueel interessant. 610 00:27:32,450 --> 00:27:35,790 Inderdaad, het is een regelrechte afleiding van het eenvoudige ideeën 611 00:27:35,790 --> 00:27:37,370 die zijn staren ons in het gezicht. 612 00:27:37,370 --> 00:27:41,760 Dit programma, zoals je misschien wel raden, prenten naar computerscherm iemands 613 00:27:41,760 --> 00:27:44,070 de woorden "Hallo komma wereld." 614 00:27:44,070 --> 00:27:44,860 Dat is het. 615 00:27:44,860 --> 00:27:46,580 Zo duidelijk, er is een heleboel dingen dat is 616 00:27:46,580 --> 00:27:48,970 krijgen in de manier van enkele evidentie er, 617 00:27:48,970 --> 00:27:52,490 maar het gaat om zeer snel te glijden weg en volledig intuïtief. 618 00:27:52,490 --> 00:27:55,617 >> Inderdaad, wat we gaan doen vandaag is destilleren dit vrij complex 619 00:27:55,617 --> 00:27:58,950 zoek programma, wat ook weer je komt snel te begrijpen, maar iets 620 00:27:58,950 --> 00:27:59,710 veel eenvoudiger. 621 00:27:59,710 --> 00:28:01,640 Laten we zeggen wat we bedoelen. 622 00:28:01,640 --> 00:28:05,590 Laten we een beeld van wat we bedoelen te trekken, door middel van deze puzzelstukjes hier. 623 00:28:05,590 --> 00:28:09,110 >> Dus dit is een programmeertaal taal bekend als Scratch. 624 00:28:09,110 --> 00:28:11,080 Het werd ontwikkeld door het MIT Media Lab. 625 00:28:11,080 --> 00:28:14,830 En wat zie je in het probleem te stellen op nul, die zal worden vrijgegeven later vanavond, 626 00:28:14,830 --> 00:28:18,980 we moeten je naar dit URL hier scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 En ze hebben een web interface via welke 628 00:28:20,940 --> 00:28:22,540 zult u uw eerste programma schrijven. 629 00:28:22,540 --> 00:28:25,330 Of die van u met voorafgaande ervaring, uw tweede programma, 630 00:28:25,330 --> 00:28:28,090 maar in een omgeving die waarschijnlijk iets onbekende en dat 631 00:28:28,090 --> 00:28:32,930 zal je duwen om iets te creëren Met deze zeer visuele omgeving. 632 00:28:32,930 --> 00:28:35,940 >> Nu, wat ik ga doen hier is het openstellen van het programma zelf. 633 00:28:35,940 --> 00:28:41,911 Het bestaat niet alleen als een webbrowser, maar ook als downloadbare programma 634 00:28:41,911 --> 00:28:44,660 zodat je daadwerkelijk kunt gebruiken Als u niet beschikt over internet. 635 00:28:44,660 --> 00:28:46,743 En ik ga dat doen hier, in Sanders, net 636 00:28:46,743 --> 00:28:49,580 in het geval dat de Wi-Fi werkt niet werken super goed. 637 00:28:49,580 --> 00:28:52,640 En wat ik ga doen is punt een paar kenmerken van dit programma. 638 00:28:52,640 --> 00:28:55,720 Dus, om duidelijk te zijn, ik heb gewoon dubbel klikte op de icoon op mijn bureaublad, 639 00:28:55,720 --> 00:28:59,830 oftewel gegaan naar scratch.mit.edu, en het is trok dit venster. 640 00:28:59,830 --> 00:29:01,650 Dit is een programmeeromgeving. 641 00:29:01,650 --> 00:29:04,110 Het is een stukje software dat sommige van onze vrienden aan het MIT 642 00:29:04,110 --> 00:29:08,850 schreef dat het ons te laten en schrijf u programma's in een taal genaamd Scratch. 643 00:29:08,850 --> 00:29:12,010 >> Nu gebeurt dit om een ​​te zijn die ook ook genoemd Scratch 644 00:29:12,010 --> 00:29:13,890 en dit is zijn wereld waarin hij leeft. 645 00:29:13,890 --> 00:29:17,175 Dit is de fase zogezegd, dat rechthoek op de linker bovenhoek. 646 00:29:17,175 --> 00:29:18,800 En hij hoeft niet te kijken als een kat. 647 00:29:18,800 --> 00:29:20,591 Je kan hem kijken zoals alles en je 648 00:29:20,591 --> 00:29:23,700 kan veel van dergelijke sprites hebben, of tekens, in een programma. 649 00:29:23,700 --> 00:29:27,450 Ondertussen, hier aan de andere recht, is een grote schone lei. 650 00:29:27,450 --> 00:29:30,260 En dit is waar, in een ogenblik, we gaan om te beginnen met programmeren 651 00:29:30,260 --> 00:29:32,750 door te slepen en deze grafische puzzel 652 00:29:32,750 --> 00:29:35,300 stukken die gelijk zijn hier in het midden. 653 00:29:35,300 --> 00:29:38,140 En er is veel meer van hen dan we zullen tijd doorbrengen in de klas 654 00:29:38,140 --> 00:29:40,080 omdat je dat vinden ze zijn allemaal vrij intuïtief. 655 00:29:40,080 --> 00:29:41,788 Nogmaals, het is ontworpen voor kinderen, maar we 656 00:29:41,788 --> 00:29:45,759 gebruik het om plagen elkaar een aantal van deze fundamentele ideeën van variabelen, loops, 657 00:29:45,759 --> 00:29:48,050 voorwaarden, en, binnenkort, dingen achtige functies en evenementen 658 00:29:48,050 --> 00:29:51,810 en draden en andere mooie dingen we zullen krijgen om het duurde niet lang om daadwerkelijk te creëren 659 00:29:51,810 --> 00:29:53,840 iets van Scratch. 660 00:29:53,840 --> 00:29:54,810 Pun intended. 661 00:29:54,810 --> 00:29:58,740 >> Nu, wat ik ga doen hier is klik op niet motion, maar controle. 662 00:29:58,740 --> 00:30:01,400 En dit is slechts een categorisering van hier-- 663 00:30:01,400 --> 00:30:03,150 en ik zie een andere kleur in te stellen van de blokken. 664 00:30:03,150 --> 00:30:05,030 Maar let op een paar bekende woorden. 665 00:30:05,030 --> 00:30:07,830 "Als" en "else if" en "herhalen." 666 00:30:07,830 --> 00:30:10,440 En je kunt waarschijnlijk wel raden dat doet denken aan de tak, 667 00:30:10,440 --> 00:30:12,870 of de voorwaarden die wij zagen, en zelfs de looping constructie. 668 00:30:12,870 --> 00:30:14,760 Dus we hebben vergelijkbare blokken hier. 669 00:30:14,760 --> 00:30:16,720 Maar de meest interessante men is deze hier. 670 00:30:16,720 --> 00:30:20,690 Als deze groene vlag wordt geklikt, deze, voor diegenen die eerder programmeren 671 00:30:20,690 --> 00:30:23,110 ervaring, gelijkwaardig een belangrijke functie. 672 00:30:23,110 --> 00:30:25,300 Maar voor degenen die niet bekend, dit is het puzzelstukje 673 00:30:25,300 --> 00:30:27,320 dat zal kick ons ​​hele programma te starten. 674 00:30:27,320 --> 00:30:31,350 Letterlijk betekent het als ik ga, in deze programma, en klik op een groene flag-- 675 00:30:31,350 --> 00:30:35,560 die je hier boven kunt zien in de linkerbovenhoek van de UI, 676 00:30:35,560 --> 00:30:38,570 zo zien de groene vlag naast het rode stopbord? 677 00:30:38,570 --> 00:30:41,475 Toen ik dat op mijn programma gaat lopen. 678 00:30:41,475 --> 00:30:43,850 Nu, ik ga iets doen super eenvoudig met Scratch. 679 00:30:43,850 --> 00:30:46,640 Ik ga om te gaan en ga naar het paneel looks 680 00:30:46,640 --> 00:30:50,010 hier, waar ik een heleboel van paars puzzelstukjes, 681 00:30:50,010 --> 00:30:53,887 en ik ga om verder te gaan en te doen iets super simpels als, zeg. 682 00:30:53,887 --> 00:30:55,720 En dan-- kennisgeving dit tekst in de witte doos 683 00:30:55,720 --> 00:30:59,290 is editable-- ik ga zeggen "Hallo wereld", net als wij 684 00:30:59,290 --> 00:31:01,470 deed dat tekstuele versie een moment geleden. 685 00:31:01,470 --> 00:31:05,920 En nu als ik ga en klik op deze groene vlag, heb ik nu geprogrammeerd. 686 00:31:05,920 --> 00:31:07,810 Het is niet een bijzonder interessant programma, 687 00:31:07,810 --> 00:31:09,760 maar ik maakte iets op de computer doen. 688 00:31:09,760 --> 00:31:13,120 Ik begon een programma en het deed wat ik vertelde het aan te doen. 689 00:31:13,120 --> 00:31:16,170 Nu, ik kan doorgaan met slepen en neerzetten meer en meer van deze puzzelstukjes 690 00:31:16,170 --> 00:31:19,220 en ze gaan in elkaar grijpen, maar laten we slap sommige terminologie hier 691 00:31:19,220 --> 00:31:21,680 dat we zullen zien terugkerende in de loop, 692 00:31:21,680 --> 00:31:24,610 en echt de hele informatica en het programmeren in het algemeen. 693 00:31:24,610 --> 00:31:27,990 >> Deze "zeggen" blok, in paars, laten we gewoon beginnen met het bellen van een verklaring. 694 00:31:27,990 --> 00:31:29,240 Het is als een vaststelling van een feit. 695 00:31:29,240 --> 00:31:30,380 Dit doen. 696 00:31:30,380 --> 00:31:32,590 Dus, het is een categorie van instructies die u 697 00:31:32,590 --> 00:31:36,760 kan een computer voeden als onderdeel van een programma of algoritme. 698 00:31:36,760 --> 00:31:39,270 En om duidelijk te zijn, je hebt waarschijnlijk vanzelfsprekend 699 00:31:39,270 --> 00:31:41,930 dat u programma's op uw computer. 700 00:31:41,930 --> 00:31:45,850 En ze zijn soort van algoritmes, maar een programma is echt een bos van algoritmen 701 00:31:45,850 --> 00:31:47,160 dat sommige mensen schreven. 702 00:31:47,160 --> 00:31:49,040 Ze verpakt het op en ze het verkocht, zodat je, 703 00:31:49,040 --> 00:31:51,330 of ze op een website voor u om te downloaden. 704 00:31:51,330 --> 00:31:54,930 Dus, een programma is slechts een hele hoop van nullen en enen 705 00:31:54,930 --> 00:31:56,970 dat, een of andere manier, de mens geschapen. 706 00:31:56,970 --> 00:32:00,080 En die patronen van nullen en degenen vertegenwoordigen dingen, uiteindelijk, 707 00:32:00,080 --> 00:32:04,030 zeggen als "hallo wereld" of "play deze muziek "of" deze video af te spelen " 708 00:32:04,030 --> 00:32:05,129 of "stuur een e-mail." 709 00:32:05,129 --> 00:32:06,920 Maar we komen terug in veel meer detail wat 710 00:32:06,920 --> 00:32:08,780 een programma is als je, zelf, schrijf ze. 711 00:32:08,780 --> 00:32:11,320 >> Hier is nog een argument-- "Wacht een seconde." 712 00:32:11,320 --> 00:32:14,330 Ik heb dit nog niet te gebruiken, maar als ik wil mijn programma om te pauzeren voor een moment 713 00:32:14,330 --> 00:32:16,540 om iets te doen, kan ik het vertellen om dit te doen. 714 00:32:16,540 --> 00:32:18,450 Wacht een seconde. 715 00:32:18,450 --> 00:32:20,150 Nu een ander zou kunnen worden "play sound." 716 00:32:20,150 --> 00:32:23,270 Dus, dit is uniek voor Scratch, het heeft de mogelijkheid om geluiden. 717 00:32:23,270 --> 00:32:26,130 Dus, een uitspraak die ik zou kunnen gebruik is, hier, "play sound." 718 00:32:26,130 --> 00:32:29,530 Ondertussen Booleaanse uitdrukking, dus dit is een liefhebber woord 719 00:32:29,530 --> 00:32:34,490 vernoemd naar slechts een man genaamd Mr Bool, en dit allemaal over een vraag. 720 00:32:34,490 --> 00:32:37,470 Waar of false-- is de muis naar beneden? 721 00:32:37,470 --> 00:32:41,100 Een Booleaanse expressie is slechts enkele uitdrukking in het Engels 722 00:32:41,100 --> 00:32:42,860 dat is waar of onwaar. 723 00:32:42,860 --> 00:32:44,140 Ofwel aan of uit. 724 00:32:44,140 --> 00:32:45,130 Een of nul. 725 00:32:45,130 --> 00:32:46,960 U kunt denken aan het in een aantal manieren, 726 00:32:46,960 --> 00:32:49,220 maar het is waar of deze valse, uiteindelijk. 727 00:32:49,220 --> 00:32:52,540 Dus "muis naar beneden vraagteken," dat zou een Booleaanse expressie. 728 00:32:52,540 --> 00:32:54,300 En u kunt denken van anderen, misschien. 729 00:32:54,300 --> 00:32:57,510 Bijvoorbeeld, "is het linker nummer minder dan het juiste nummer? " 730 00:32:57,510 --> 00:32:59,410 Ook dat zou een Booleaanse expressie. 731 00:32:59,410 --> 00:33:01,540 "Minder dan" is een Booleaanse expressie. 732 00:33:01,540 --> 00:33:03,280 >> Deze, ook, "ontroerend muisaanwijzer." 733 00:33:03,280 --> 00:33:05,196 Ik weet niet zeker waarom ze noemde het muisaanwijzer. 734 00:33:05,196 --> 00:33:08,430 Het betekent alleen, is de cursor, is de pijl op het scherm, het aanraken van de kat, 735 00:33:08,430 --> 00:33:09,022 bijvoorbeeld. 736 00:33:09,022 --> 00:33:10,480 Of een ander aspect van het scherm. 737 00:33:10,480 --> 00:33:13,710 En het is een vraag, opnieuw, en dat duidt op een Booleaanse expressie. 738 00:33:13,710 --> 00:33:17,130 Iets dat je misschien wilt gebruiken in een voorwaarde. 739 00:33:17,130 --> 00:33:19,100 Dus gaan we naar die komen in slechts een moment. 740 00:33:19,100 --> 00:33:20,350 Je kunt "en" dingen samen. 741 00:33:20,350 --> 00:33:23,099 Dus, als je wilt om te controleren of deze het geval is en dat het geval is, 742 00:33:23,099 --> 00:33:25,580 kunt u een "en" blok, zoals deze te gebruiken. 743 00:33:25,580 --> 00:33:26,850 En hier is die voorwaarde. 744 00:33:26,850 --> 00:33:31,290 Let op de vorm van de kleine opening in de top van deze gele puzzelstukje, 745 00:33:31,290 --> 00:33:34,480 Het doet denken aan de vorm dat zagen we slechts een moment geleden. 746 00:33:34,480 --> 00:33:37,920 Elk van deze Booleaanse uitdrukkingen hebben deze wees randen 747 00:33:37,920 --> 00:33:39,030 links en rechts. 748 00:33:39,030 --> 00:33:43,140 En dat komt omdat MIT mensen besloten dat door het visueel overbrengen van vormen, 749 00:33:43,140 --> 00:33:45,780 U kunt soort mensen helpen, studenten en kinderen, 750 00:33:45,780 --> 00:33:47,650 naar soort Vul in letterlijk. 751 00:33:47,650 --> 00:33:49,780 >> Nu dat puzzle-- dat opening een beetje klein, 752 00:33:49,780 --> 00:33:52,750 en zoals we zullen zien in het programma, in Scratch, zal het groeien om te passen. 753 00:33:52,750 --> 00:33:54,830 Het zal zijn vorm behouden, uiteindelijk. 754 00:33:54,830 --> 00:33:58,350 Dus een voorwaarde laten we u beslist "Moet ik iets doen of niet?" 755 00:33:58,350 --> 00:34:00,470 Een Booleaanse expressie de werkelijke vraag 756 00:34:00,470 --> 00:34:04,100 je gebruikt om te beslissen ga ik naar links of ga ik naar de rechter 757 00:34:04,100 --> 00:34:06,710 toen ik deze ontmoeting zogenaamde splitsing in de weg? 758 00:34:06,710 --> 00:34:07,980 U kunt twee takken hebben. 759 00:34:07,980 --> 00:34:10,909 Als er iets is waar, doen dit, anders gaat die kant op, 760 00:34:10,909 --> 00:34:14,590 of je kan gewoon niets te doen plaats, zoals dit blok geïmpliceerd. 761 00:34:14,590 --> 00:34:16,360 Zo kunnen we ook nest deze dingen. 762 00:34:16,360 --> 00:34:20,204 Dus als je wilt om de vork te verdrievoudigen in de weg, dit doen of dit of dat, 763 00:34:20,204 --> 00:34:21,870 Je kunt gewoon nest deze dingen samen. 764 00:34:21,870 --> 00:34:24,520 En het begint te krijgen een beetje lelijk, uiteindelijk, dat is zeker, 765 00:34:24,520 --> 00:34:26,120 maar de logica is nog steeds hetzelfde. 766 00:34:26,120 --> 00:34:28,000 U kunt letterlijk lezen deze boven naar beneden 767 00:34:28,000 --> 00:34:33,290 en het zegt wat het means-- als dit waar is, doe dit, anders als anders. 768 00:34:33,290 --> 00:34:36,179 >> Een lus krijgt niet eenvoudiger in Scratch. 769 00:34:36,179 --> 00:34:37,422 Altijd het volgende doen. 770 00:34:37,422 --> 00:34:39,880 Nu zou je je niet dat kan veel doen, want er is geen 771 00:34:39,880 --> 00:34:42,839 veel ruimte tussen de bovenkant en de Onderaan deze puzzelstukje opening. 772 00:34:42,839 --> 00:34:45,671 Maar je zult zien Scratch gaat groeien om te passen als vele puzzelstukjes 773 00:34:45,671 --> 00:34:47,060 als je wilt proppen daar. 774 00:34:47,060 --> 00:34:48,960 Een lus kan zijn uitgedrukt met herhalingen. 775 00:34:48,960 --> 00:34:51,590 Als je van tevoren weten, "ik iets wilt doen 10 keer, " 776 00:34:51,590 --> 00:34:54,010 je kunt gewoon vertellen Scratch om iets te doen 10 keer. 777 00:34:54,010 --> 00:34:57,260 En we alvast variabelen. 778 00:34:57,260 --> 00:34:59,572 Dus hier is arbitrair, het oranje in casu 779 00:34:59,572 --> 00:35:00,780 en dit is een wervelwind tour. 780 00:35:00,780 --> 00:35:04,540 Nogmaals, zult u dit zeer toegankelijk vinden als je eenmaal begint te wijzen en te klikken. 781 00:35:04,540 --> 00:35:07,930 Ik heb de naam van mijn variabele n, maar ik het zou hebben genoemd wat ik wil, 782 00:35:07,930 --> 00:35:11,280 en Ik zet het hier, in Dit willekeurige voorbeeld naar nul. 783 00:35:11,280 --> 00:35:14,250 >> Nu het zien van een programma zoals hello wereld is niet zo overtuigend, 784 00:35:14,250 --> 00:35:17,900 dus laten we eigenlijk open iets dat een oud-student gemaakt. 785 00:35:17,900 --> 00:35:23,100 Laat me gaan en open te stellen, bijvoorbeeld deze hier, 786 00:35:23,100 --> 00:35:26,780 waarvoor zou ik graag een vrijwilliger hebben. 787 00:35:26,780 --> 00:35:28,450 Oke, hoe over-- laten we gaan verder. 788 00:35:28,450 --> 00:35:29,240 Ja, kom op. 789 00:35:29,240 --> 00:35:30,056 Wat is je naam? 790 00:35:30,056 --> 00:35:30,635 >> ABBY: Abby. 791 00:35:30,635 --> 00:35:32,010 DAVID J. MALAN: Abby, kom op. 792 00:35:32,010 --> 00:35:35,930 Dus heb je ooit gespeeld dit spel voordat? 793 00:35:35,930 --> 00:35:36,430 ABBY: Nee 794 00:35:36,430 --> 00:35:37,370 DAVID J. MALAN: Oke. 795 00:35:37,370 --> 00:35:38,380 David, leuk je te ontmoeten. 796 00:35:38,380 --> 00:35:39,620 Come on over. 797 00:35:39,620 --> 00:35:42,300 En wat is uw programmering achtergrond, indien aanwezig. 798 00:35:42,300 --> 00:35:43,914 >> ABBY: Ik heb een aantal C ++ geleerd. 799 00:35:43,914 --> 00:35:45,580 DAVID J. MALAN: Je hebt een aantal C ++ geleerd. 800 00:35:45,580 --> 00:35:48,382 En wat is uw spel het afspelen van achtergrondmuziek? 801 00:35:48,382 --> 00:35:49,505 >> ABBY: Niet veel. 802 00:35:49,505 --> 00:35:51,130 DAVID J. MALAN: OK, dus we nemen dat. 803 00:35:51,130 --> 00:35:52,700 Dus hier is hoe het spel gaat werken. 804 00:35:52,700 --> 00:35:54,510 Ik ga om te gaan en klik op de groene vlag, die 805 00:35:54,510 --> 00:35:55,830 is hier in de rechterbovenhoek. 806 00:35:55,830 --> 00:35:59,710 Nu uw voorganger in de klas u een aantal instructies die hier worden gegeven. 807 00:35:59,710 --> 00:36:02,306 En in slechts een moment, het zegt "ruimte om te beginnen." 808 00:36:02,306 --> 00:36:03,680 Ga zo door en druk op de spatiebalk. 809 00:36:03,680 --> 00:36:05,507 >> COMPUTERSPEL: Pikachu. 810 00:36:05,507 --> 00:36:08,340 DAVID J. Malan: En het doel is om vangen het voedsel, want er afgebeeld 811 00:36:08,340 --> 00:36:09,320 links. 812 00:36:09,320 --> 00:36:11,388 En [onverstaanbaar] 813 00:36:11,388 --> 00:36:15,356 >> [GAME muziek] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> DAVID J. MALAN: Aww, goed, bedankt voor het spelen. 816 00:36:29,610 --> 00:36:32,800 We hebben hier een klein afscheid cadeau voor u. 817 00:36:32,800 --> 00:36:35,574 We hebben CS50 stressbal, als je wilt om uit te kiezen. 818 00:36:35,574 --> 00:36:36,820 Oke, leuk je te ontmoeten. 819 00:36:36,820 --> 00:36:39,680 Dank u voor uw komst en uitdagend. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Dus we hebben meer stress ballen, dus laten we een voorbeeld te motiveren. 822 00:36:46,910 --> 00:36:48,150 Een vrijwilliger? 823 00:36:48,150 --> 00:36:50,510 Oke, wat dacht je van hier tegenover. 824 00:36:50,510 --> 00:36:51,250 Wat is je naam? 825 00:36:51,250 --> 00:36:51,660 >> PHILLIP: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> DAVID J. MALAN: Phillip. 827 00:36:52,660 --> 00:36:54,530 Kom op, Phillip. 828 00:36:54,530 --> 00:36:57,340 Dus, Phillip gaat worden uitgedaagd met een ander spel 829 00:36:57,340 --> 00:37:00,840 dat een van je voorgangers schreven als onderdeel van het probleem nulstelling, 830 00:37:00,840 --> 00:37:03,510 riep Hardest Game Ivy's. 831 00:37:03,510 --> 00:37:05,980 En we zullen zien in slechts een even wat er bedoeld wordt. 832 00:37:05,980 --> 00:37:07,400 Phillip, leuk je te ontmoeten. 833 00:37:07,400 --> 00:37:09,060 Wat is je achtergrond? 834 00:37:09,060 --> 00:37:10,310 PHILLIP: veel gedaan van codering. 835 00:37:10,310 --> 00:37:11,110 Gedaan een beetje gamen, ook. 836 00:37:11,110 --> 00:37:11,570 >> DAVID J. MALAN: OK. 837 00:37:11,570 --> 00:37:12,620 Kreeg veel gaming, ook. 838 00:37:12,620 --> 00:37:14,230 En heb je dit spel eerder gespeeld? 839 00:37:14,230 --> 00:37:14,730 >> PHILLIP: Geen 840 00:37:14,730 --> 00:37:16,438 DAVID J. MALAN: Alle rechts, dus hier gaan we. 841 00:37:16,438 --> 00:37:18,434 Ik ga om te gaan en klik op de groene vlag. 842 00:37:18,434 --> 00:37:24,160 >> [GAME MUZIEK] 843 00:37:24,160 --> 00:37:27,770 >> [MUZIEK MC HAMMER, "U kan dit niet TOUCH"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> PHILLIP: [onverstaanbaar] 846 00:38:41,635 --> 00:38:42,760 DAVID J. MALAN: [onverstaanbaar] 847 00:38:42,760 --> 00:38:44,740 PHILLIP: [onverstaanbaar] 848 00:38:44,740 --> 00:38:49,056 [Lacht] 849 00:38:49,056 --> 00:38:50,680 [MUZIEK MC HAMMER, "U kan dit niet TOUCH"] 850 00:38:50,680 --> 00:38:52,660 DAVID J. MALAN: [onverstaanbaar] Ploegen doorheen. 851 00:38:52,660 --> 00:38:54,094 PHILLIP: [onverstaanbaar] 852 00:38:54,094 --> 00:38:55,135 DAVID J. MALAN: Ga je gang. 853 00:38:55,135 --> 00:39:01,570 [MUZIEK MC HAMMER, "U kan dit niet TOUCH"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 DAVID J. MALAN: Oke. 856 00:39:16,915 --> 00:39:18,400 Gefeliciteerd. 857 00:39:18,400 --> 00:39:25,150 >> [Applaus] 858 00:39:25,150 --> 00:39:27,330 >> DAVID J. MALAN: Wij zullen post die later online dus 859 00:39:27,330 --> 00:39:29,820 dat je kunt uitstellen met het zo goed. 860 00:39:29,820 --> 00:39:32,550 Princeton komt naast, na dat. 861 00:39:32,550 --> 00:39:35,470 >> Dus laten we nu eigenlijk gaan vanaf nul te beginnen, 862 00:39:35,470 --> 00:39:39,310 zo te zeggen, en eigenlijk te bouwen tot kunnen we plagen elkaar een aantal van deze ideeën 863 00:39:39,310 --> 00:39:41,970 en maak kennis met iets wat nog complexer eind. 864 00:39:41,970 --> 00:39:45,240 Ik ga hierheen te gaan en ik ga om verder te gaan en maak een nieuw bestand. 865 00:39:45,240 --> 00:39:47,460 Dus nogmaals, zal het probleem set lopen je door middel van een aantal van deze stappen. 866 00:39:47,460 --> 00:39:49,300 Maar, alles wat ik deed was gaan naar het menu Bestand en ik 867 00:39:49,300 --> 00:39:52,760 zei "nieuwe," zo veel op Microsoft Woord, of een programma als dat. 868 00:39:52,760 --> 00:39:56,630 >> En laten we verder gaan nu-- en we geïmplementeerd "Hello world" een moment geleden, 869 00:39:56,630 --> 00:39:58,410 maar laten we iets doen een beetje leuker. 870 00:39:58,410 --> 00:40:00,150 Ik ga om te gaan naar evenementen. 871 00:40:00,150 --> 00:40:02,350 En ik ga "te doen wanneer groene vlag geklikt. " 872 00:40:02,350 --> 00:40:05,830 En dan ga ik om te gebruiken, laten we zeggen, een tak. 873 00:40:05,830 --> 00:40:07,610 Dus ik ga naar een "als" conditie te gebruiken. 874 00:40:07,610 --> 00:40:10,940 En merk op hoe zodra ik dicht om het, het wil in elkaar klikken. 875 00:40:10,940 --> 00:40:13,020 Dus ik laten gaan en het samen klikt. 876 00:40:13,020 --> 00:40:15,150 En nu kan ik iets interessants te doen. 877 00:40:15,150 --> 00:40:19,150 Als ik hier doorheen te bladeren, ga ik een hele hoop blokken te zien. 878 00:40:19,150 --> 00:40:22,620 Als ik naar "data" - laat me in-- zoomen Er is iets over variabelen. 879 00:40:22,620 --> 00:40:26,160 Als ik ga naar "beweging", kunt u blijkbaar dingen omdraaien. 880 00:40:26,160 --> 00:40:28,760 Als ik naar "operators" - oh, dit is interessant, 881 00:40:28,760 --> 00:40:31,000 Ik kan een willekeurig getal te halen. 882 00:40:31,000 --> 00:40:34,119 Dus laat ik iets doen met slechts enkele kans, alleen maar omdat. 883 00:40:34,119 --> 00:40:36,160 Ik ga om te gaan en sleep deze puzzel stuk, 884 00:40:36,160 --> 00:40:37,910 Dit is minder dan blok, dus het is gewoon 885 00:40:37,910 --> 00:40:39,480 "Is dit aantal minder dan die ene?" 886 00:40:39,480 --> 00:40:42,438 Maar ik wil niet dat een harde code een aantal want dat zijn vrij zinloos. 887 00:40:42,438 --> 00:40:46,270 Dus ik ga slepen dit stuk hier, en merk op hoe deze borgt, 888 00:40:46,270 --> 00:40:49,480 en nu wil ik verder gaan en zeggen: "als het nummer dat willekeurig is geplukt 889 00:40:49,480 --> 00:40:51,820 is minder dan zes, doet u het volgende. " 890 00:40:51,820 --> 00:40:52,790 Nu waarom minder dan zes? 891 00:40:52,790 --> 00:40:56,400 Wat waarschijnlijkheid is dit effectief Ga je me geven, gewoon intuïtief? 892 00:40:56,400 --> 00:40:57,440 Ongeveer 50%, toch? 893 00:40:57,440 --> 00:41:01,190 Als het nummer dat is denk willekeurig tussen 1 en 10 is minder dan zes, 894 00:41:01,190 --> 00:41:03,480 duidelijk dat het een, twee, drie, vier of vijf. 895 00:41:03,480 --> 00:41:06,740 En dat gaat me een geven 50% kans op wat gebeurt er? 896 00:41:06,740 --> 00:41:09,890 >> Nou laten we iets doen als deze, "play sound meow." 897 00:41:09,890 --> 00:41:11,750 En let, wederom, het puzzelstukje groeit 898 00:41:11,750 --> 00:41:13,700 te passen, zolang de vormen passen. 899 00:41:13,700 --> 00:41:14,910 Dat is wat belangrijk is. 900 00:41:14,910 --> 00:41:18,000 Laat me gaan naar Scratch hier in en klik op 'play'. 901 00:41:18,000 --> 00:41:19,300 Er gebeurt niets. 902 00:41:19,300 --> 00:41:21,160 Is dat een bug? 903 00:41:21,160 --> 00:41:21,999 Nee, niet nodig. 904 00:41:21,999 --> 00:41:24,040 Het zou gewoon dat een te groter aantal werd gekozen. 905 00:41:24,040 --> 00:41:25,762 Dus laten we het nog eens doen. 906 00:41:25,762 --> 00:41:27,550 Niets. 907 00:41:27,550 --> 00:41:28,344 >> [MEOW] 908 00:41:28,344 --> 00:41:29,510 DAVID J. MALAN: Daar is het. 909 00:41:29,510 --> 00:41:30,280 [MEOW] 910 00:41:30,280 --> 00:41:31,690 DAVID J. MALAN: Again. 911 00:41:31,690 --> 00:41:32,300 Nee 912 00:41:32,300 --> 00:41:32,922 >> [Miauwen] 913 00:41:32,922 --> 00:41:35,380 DAVID J. MALAN: Dus als je hebt ooit gespeeld spel, natuurlijk 914 00:41:35,380 --> 00:41:38,500 waar spul is willekeurig gebeurt, als de slechteriken komen of niet 915 00:41:38,500 --> 00:41:41,350 komen op het scherm, of dingen vallen of niet vallen, 916 00:41:41,350 --> 00:41:43,610 dat is gewoon omdat er iets super simpels als dit gebeurt. 917 00:41:43,610 --> 00:41:46,010 Kies een willekeurig getal, en als het is minder dan een bepaalde waarde, 918 00:41:46,010 --> 00:41:49,100 misschien is dit te doen of misschien is dat te doen. 919 00:41:49,100 --> 00:41:51,340 We kunnen integreren dat in een toestand. 920 00:41:51,340 --> 00:41:52,600 Laten we iets anders doen. 921 00:41:52,600 --> 00:41:53,559 >> Laat ik dat weggooien. 922 00:41:53,559 --> 00:41:56,058 U kunt zich te ontdoen van spullen door net te slepen naar links 923 00:41:56,058 --> 00:41:56,810 en loslaten. 924 00:41:56,810 --> 00:42:00,310 Laat me ga je gang en doe een eeuwig blok en heel snel iets vervelends doen. 925 00:42:00,310 --> 00:42:03,010 Laat me gaan en zeggen "play sound meow." 926 00:42:03,010 --> 00:42:06,620 Maar ik denk niet dat dit ook zijn vervelend, dus laat ik grijp dit blok, 927 00:42:06,620 --> 00:42:09,090 "Wacht een seconde," en de mededeling er is geen ruimte meer voor. 928 00:42:09,090 --> 00:42:11,310 Maar als je dicht genoeg, het wil er naartoe te gaan. 929 00:42:11,310 --> 00:42:14,100 Dus ik laten gaan en het zal groeien tot het blok te vullen. 930 00:42:14,100 --> 00:42:15,932 Nu, is een lus. 931 00:42:15,932 --> 00:42:16,432 [Miauwen] 932 00:42:16,432 --> 00:42:18,473 DAVID J. MALAN: Ik ben letterlijk dit altijd doen. 933 00:42:18,473 --> 00:42:19,360 Opnieuw en opnieuw. 934 00:42:19,360 --> 00:42:21,510 Dat is gewoon niet natuurlijk klinken. 935 00:42:21,510 --> 00:42:24,800 Laat me gaan en dit te veranderen niet een seconde of twee seconden 936 00:42:24,800 --> 00:42:25,854 en druk op Enter. 937 00:42:25,854 --> 00:42:28,770 En wat is er leuk aan Scratch is dat je zou kunnen interactief programmeren. 938 00:42:28,770 --> 00:42:32,450 Maak een verandering, misschien druk op Enter of Play weer, en het zal gewoon doorgaan. 939 00:42:32,450 --> 00:42:34,962 Nou, nu waarom we niet doen iets leuker? 940 00:42:34,962 --> 00:42:39,680 In plaats van alles doen vanuit het niets, laat me gaan en open te stellen een voorschot 941 00:42:39,680 --> 00:42:43,180 maakte men, dat ik vooraf gebakken, genaamd "Huisdier van de Kat." 942 00:42:43,180 --> 00:42:44,920 En we zullen alle posten deze bestanden online, 943 00:42:44,920 --> 00:42:48,464 en probleem set nul zal u vertellen hoe de toegang tot hen en open te stellen. 944 00:42:48,464 --> 00:42:49,880 En let, dit is vrij eenvoudig. 945 00:42:49,880 --> 00:42:53,860 Maar op voorhand, ik lijken te hebben gegrepen een "forever" blok, dus ik heb een lus. 946 00:42:53,860 --> 00:42:55,500 En dan heb ik een "als" conditie. 947 00:42:55,500 --> 00:42:57,410 Ik heb een Booleaanse expressie. 948 00:42:57,410 --> 00:43:00,100 >> Dus in het Engels, maar een blik op dit, vooral als je nog nooit hebt 949 00:43:00,100 --> 00:43:04,278 voordat geprogrammeerd, gewoon intuïtief, wat dit gaat doen, dit programma? 950 00:43:04,278 --> 00:43:06,910 >> [PUBLIEK GERATEL] 951 00:43:06,910 --> 00:43:09,960 >> DAVID J. MALAN: Als je de kat aaien, de kat gaat miauwen, toch? 952 00:43:09,960 --> 00:43:14,560 Omdat "voor altijd het vinkje" wordt de muisaanwijzer aanraken van de kat. 953 00:43:14,560 --> 00:43:17,630 Dus om duidelijk te zijn, en ik heb niet gezegd dit voor al deze puzzel 954 00:43:17,630 --> 00:43:20,750 stukken en het script dat we hebben ze gecombineerd in, 955 00:43:20,750 --> 00:43:25,510 zo te zeggen, een script is synoniem met programma, echt, behoort tot deze kat. 956 00:43:25,510 --> 00:43:30,110 En de reden is-- omdat mededeling hoe deze zelfde kat hier is gemarkeerd, 957 00:43:30,110 --> 00:43:32,710 hier beneden kunt u een maken tweede kat of hond of echt 958 00:43:32,710 --> 00:43:33,970 alles wat je wilt grafisch. 959 00:43:33,970 --> 00:43:35,900 Je kunt iets importeren van Photoshop, of iets dergelijks, 960 00:43:35,900 --> 00:43:38,300 en wat als je te integreren wil om het te maken voor een project. 961 00:43:38,300 --> 00:43:40,174 En wat je zult vinden, uiteindelijk, is dat je 962 00:43:40,174 --> 00:43:44,800 kunt scripts toevoegen, puzzel stukken, op afzonderlijke tekens. 963 00:43:44,800 --> 00:43:47,210 Dus deze behoren allemaal tot dit cat. 964 00:43:47,210 --> 00:43:51,770 Dus als ik nu ga je gang en spelen dit programma, er gebeurt niets. 965 00:43:51,770 --> 00:43:52,970 Maar het loopt. 966 00:43:52,970 --> 00:43:56,364 Het programma is in deze eeuwig lus, soort van te wachten op wat er te gebeuren? 967 00:43:56,364 --> 00:43:57,230 >> [PUBLIEK GERATEL] 968 00:43:57,230 --> 00:43:58,130 >> DAVID J. Malan: Om de kat aaien. 969 00:43:58,130 --> 00:43:59,800 Dus als ik beweeg mijn muis naar hem-- 970 00:43:59,800 --> 00:44:02,420 >> [Miauwen] 971 00:44:02,420 --> 00:44:04,450 >> DAVID J. MALAN: Dus nu Ik aaien de kat. 972 00:44:04,450 --> 00:44:07,330 Ondertussen kunnen we een dubbele tak hebben. 973 00:44:07,330 --> 00:44:10,370 Laat me gaan en openen up niet huisdier de kat. 974 00:44:10,370 --> 00:44:12,160 We zullen dit online plaatsen ook. 975 00:44:12,160 --> 00:44:16,760 Dit is een weinig complex, maar vanzelfsprekend 976 00:44:16,760 --> 00:44:18,780 u kunt misschien wel raden wat er gaat gebeuren. 977 00:44:18,780 --> 00:44:20,160 >> [Miauwen] 978 00:44:20,160 --> 00:44:23,900 >> DAVID J. MALAN: Cat is miauwen, grote oude tijd. 979 00:44:23,900 --> 00:44:26,690 Maar dit programma is natuurlijk genaamd "Laat de kat niet aaien," 980 00:44:26,690 --> 00:44:29,350 zo duidelijk, ik wil de kat aaien. 981 00:44:29,350 --> 00:44:30,490 >> [BRULLENDE] 982 00:44:30,490 --> 00:44:31,940 >> DAVID J. MALAN: niet huisdier de kat. 983 00:44:31,940 --> 00:44:34,230 Nu, laten we eens een kijkje Een ander voorbeeld here. 984 00:44:34,230 --> 00:44:38,035 Deze zal worden genoemd "Hi, Hi, Hi," om redenen 985 00:44:38,035 --> 00:44:40,410 dat zal duidelijk zijn, want zodra ik dit ding-- 986 00:44:40,410 --> 00:44:41,401 >> [SEAL BARKING] 987 00:44:41,401 --> 00:44:43,942 DAVID J. MALAN: Zeer eenvoudig te schrijf vervelend Scratch programma's. 988 00:44:43,942 --> 00:44:45,300 [SEAL BARKING] 989 00:44:45,300 --> 00:44:48,540 DAVID J. MALAN: Nu zullen we niet gaan in detail al deze, 990 00:44:48,540 --> 00:44:51,150 maar merken dat er een paar nieuwe functies hier. 991 00:44:51,150 --> 00:44:55,540 Er is een variabele, genaamd "gedempt," en dan is er een heleboel voorwaarden. 992 00:44:55,540 --> 00:44:57,900 En voor nu, laat me net te plagen je door te zeggen 993 00:44:57,900 --> 00:45:03,170 dat als deze jongen krijgt te vervelend, Ik kan op de spatiebalk te raken en hij stopt. 994 00:45:03,170 --> 00:45:05,880 Omdat de rol wordt gespeeld door deze twee scripts is als volgt. 995 00:45:05,880 --> 00:45:08,510 Een daarvan doet de blaffen om de paar seconden. 996 00:45:08,510 --> 00:45:11,305 De ander is gewoon wachten voor mij om op de spatiebalk te raken. 997 00:45:11,305 --> 00:45:14,780 En als ik druk op de spatiebalk, het gaat om te veranderen 998 00:45:14,780 --> 00:45:18,096 de toestand van deze variabele de waarde van deze variabele, dat is blijkbaar 999 00:45:18,096 --> 00:45:20,470 genaamd "gedempt," Ik heb je niet geroepen het iets saai als n, 1000 00:45:20,470 --> 00:45:22,370 Ik noemde het een Engels woord, "gedempt." 1001 00:45:22,370 --> 00:45:24,740 Van 1-0 of 0-1. 1002 00:45:24,740 --> 00:45:26,830 Van true in false of false in true. 1003 00:45:26,830 --> 00:45:28,930 En dus kun je eigenlijk zie nu, dat je 1004 00:45:28,930 --> 00:45:31,720 twee scripts kunnen hebben, twee programma's tegelijkertijd, 1005 00:45:31,720 --> 00:45:34,360 en beiden kunnen zitten in een lus om iets te doen. 1006 00:45:34,360 --> 00:45:38,067 Wachten op de mens te doen zoiets als met de spatiebalk. 1007 00:45:38,067 --> 00:45:38,650 [SEAL BARKING] 1008 00:45:38,650 --> 00:45:40,566 DAVID J. MALAN: En nu hij is weer op zijn weg. 1009 00:45:40,566 --> 00:45:41,640 [SEAL BARKING] 1010 00:45:41,640 --> 00:45:45,220 DAVID J. MALAN: Dus wat anders kunnen we doen met deze voorbeelden? 1011 00:45:45,220 --> 00:45:50,920 Nou, laten we verder gaan en doen een Bijvoorbeeld met het tellen van schapen. 1012 00:45:50,920 --> 00:45:59,210 We zullen dit hier verder langs de lijnen van-- laten we het openstellen van de schapen voorbeeld. 1013 00:45:59,210 --> 00:46:02,460 En let, net als voorheen, deze, gelukkig, een beetje minder vervelend. 1014 00:46:02,460 --> 00:46:06,940 Zodra ik raakte spelen hier-- Oh nee, dat is vervelend. 1015 00:46:06,940 --> 00:46:10,130 Hij gaat baa met enige waarschijnlijkheid. 1016 00:46:10,130 --> 00:46:11,050 Laten we opnieuw te spelen dit. 1017 00:46:11,050 --> 00:46:15,221 >> [SCHAPEN BLEETING] 1018 00:46:15,221 --> 00:46:18,470 DAVID J. MALAN: Het enige verschil is we hebben het kostuum veranderd, om zo te zeggen, 1019 00:46:18,470 --> 00:46:21,710 en we halveren en zeggen: wat dat werkelijke aantal is. 1020 00:46:21,710 --> 00:46:24,680 Nou laten we verder gaan en neem nog een stap verder. 1021 00:46:24,680 --> 00:46:28,190 En laat me te plagen je met een andere functie hier. 1022 00:46:28,190 --> 00:46:31,800 Laten we verder gaan en open te stellen een programma genaamd Threads. 1023 00:46:31,800 --> 00:46:36,620 Zoveel als je er een kan hebben sprite, het hebben van meerdere scripts, 1024 00:46:36,620 --> 00:46:41,250 kun je twee sprites, een vogel in zijn kat, elk hun eigen script. 1025 00:46:41,250 --> 00:46:43,976 En elk van hen kan tegelijkertijd werken. 1026 00:46:43,976 --> 00:46:45,980 Als je ooit hebt gehoord van de woord "multithreading" 1027 00:46:45,980 --> 00:46:49,240 een computer is "multithreaded" betekent het kan meerdere dingen tegelijk te doen, 1028 00:46:49,240 --> 00:46:50,880 en, inderdaad, dan kan dit krassen. 1029 00:46:50,880 --> 00:46:52,690 >> En let nu op de vogel is een soort van dom. 1030 00:46:52,690 --> 00:46:55,100 Het is gewoon willekeurig dingen te doen, stuiteren van het scherm af. 1031 00:46:55,100 --> 00:46:59,460 Duidelijk is dat de kat is geprogrammeerd de soort zijn die vermogens 1032 00:46:59,460 --> 00:47:02,680 om thuis in op de vogel, want hij is altijd op hem gericht. 1033 00:47:02,680 --> 00:47:06,176 Tot slot, hij vangt de werkelijke vogel. 1034 00:47:06,176 --> 00:47:08,550 Dus ik zal niet ingaan op details hier, maar je kan soort 1035 00:47:08,550 --> 00:47:12,160 glimp dezelfde vormen, sommige "Als" voorwaarden, sommige variabelen, 1036 00:47:12,160 --> 00:47:15,740 misschien wat loops, zijn uiteindelijk hetzelfde te doen. 1037 00:47:15,740 --> 00:47:18,400 >> Laat me nu gaan en openen iets heel anders, 1038 00:47:18,400 --> 00:47:20,920 voor sommigen van u te plagen, in het bijzonder die meer comfortabel, 1039 00:47:20,920 --> 00:47:22,760 wat je eigenlijk kunt doen met deze. 1040 00:47:22,760 --> 00:47:26,080 Ik ga om te gaan en open Button hier. 1041 00:47:26,080 --> 00:47:28,740 En dit is een super simpel lijkende programma, 1042 00:47:28,740 --> 00:47:34,190 maar kijk wat er gebeurt wanneer Ik-- Let op wat 1043 00:47:34,190 --> 00:47:39,860 er gebeurt als ik deze versie van het te openen, hier in de browser, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 En als ik op dit grote rode knop, let op wat er gebeurt. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 Dus wat is hier aan de hand? 1047 00:47:47,647 --> 00:47:50,480 Er is eigenlijk veel meer complexiteit gebeurt onder de motorkap, 1048 00:47:50,480 --> 00:47:52,896 ook al heb ik geïmplementeerd deze, of eerlijk gezegd, Dan Bradley 1049 00:47:52,896 --> 00:47:54,660 heeft deze geïmplementeerd zo eenvoudig. 1050 00:47:54,660 --> 00:47:59,540 Hij heeft een aangepaste Scratch puzzel ontworpen Stuk, bekend als een Scratch uitbreiding 1051 00:47:59,540 --> 00:48:01,300 Hij noemde het Toggle. 1052 00:48:01,300 --> 00:48:06,332 >> En wat Toggle doet is het stuurt een boodschap via internet. 1053 00:48:06,332 --> 00:48:08,290 En die boodschap zelf ziet er een beetje cryptisch. 1054 00:48:08,290 --> 00:48:10,248 Maar ook dit zal je begrijpen door het einde looptijd's. 1055 00:48:10,248 --> 00:48:14,930 De boodschap die hij is eigenlijk het verzenden van ziet er een beetje iets als dit. 1056 00:48:14,930 --> 00:48:15,921 Het is alleen maar tekst. 1057 00:48:15,921 --> 00:48:16,420 Cryptisch. 1058 00:48:16,420 --> 00:48:19,130 U zult het begrijpen door de tijd we krijgen het probleem stelde zeven. 1059 00:48:19,130 --> 00:48:22,180 Het is gewoon het verzenden van een tekstbericht via internet naar een server. 1060 00:48:22,180 --> 00:48:24,330 En die server is, uiteindelijk, gesprek met deze lamp, die 1061 00:48:24,330 --> 00:48:27,240 heeft een van die fancy gloeilampen in dat, zelf, praat 1062 00:48:27,240 --> 00:48:30,760 met het Wi-Fi in het netwerk hier, waar een lokaal apparaat neer hier-- 1063 00:48:30,760 --> 00:48:34,400 en, uiteindelijk, het is eigenlijk draaien dat het licht aan en uit. 1064 00:48:34,400 --> 00:48:36,240 Maar we kunnen meer doen interessante dingen nog steeds. 1065 00:48:36,240 --> 00:48:38,270 Let op wat Dan ook voor ons gedaan heeft. 1066 00:48:38,270 --> 00:48:42,210 Hij maakte meerdere sprites, elk van die heeft een script te wachten op een klik. 1067 00:48:42,210 --> 00:48:44,030 En als ik klik op rood, gaat het rode. 1068 00:48:44,030 --> 00:48:46,780 Als ik blauw, het gaat blauwachtig. 1069 00:48:46,780 --> 00:48:49,854 Groen, geel, oranje. 1070 00:48:49,854 --> 00:48:52,520 En dit alles gebeurt door ga weg uit op het internet, 1071 00:48:52,520 --> 00:48:54,690 terug naar beneden hier om de gloeilamp, aan en uit. 1072 00:48:54,690 --> 00:48:57,981 >> En als je kunt het-- geloven en dit is misschien wel een van de meest complexe Scratch 1073 00:48:57,981 --> 00:49:00,930 projecten iemand implemented-- hij deed het, in alle eerlijkheid, in een dag. 1074 00:49:00,930 --> 00:49:04,180 En dat was de uitdaging die we wierp Dan toen we zagen hebben binaire bollen, 1075 00:49:04,180 --> 00:49:05,810 we hebben Scratch, hoe kunnen we ze combineren? 1076 00:49:05,810 --> 00:49:08,410 En inderdaad dit absoluut iets wat iedereen in deze kamer 1077 00:49:08,410 --> 00:49:14,250 kon doen door end-- semester Is hij geherimplementeerd binair bollen met behulp van 1078 00:49:14,250 --> 00:49:18,310 dezelfde interface die was op onze iPad op woensdag. 1079 00:49:18,310 --> 00:49:22,000 Dus dat nu, als ik eigenlijk Klik op het plus hier, 1080 00:49:22,000 --> 00:49:25,250 we hebben een, twee, drie. 1081 00:49:25,250 --> 00:49:27,550 Ik kan de 16 geraakt en zet dat een op. 1082 00:49:27,550 --> 00:49:29,440 128, enzovoort. 1083 00:49:29,440 --> 00:49:31,250 >> Nu, als dat alleen al heeft en opgeblazen je geest, 1084 00:49:31,250 --> 00:49:35,680 je kan dingen veel beter toegankelijk maken, waarbij geen hardware zeker. 1085 00:49:35,680 --> 00:49:38,320 Gewoon dingen op het scherm zelf. 1086 00:49:38,320 --> 00:49:41,110 En, inderdaad, wat de meeste studenten uiteindelijk doen is een soort van spel, 1087 00:49:41,110 --> 00:49:44,600 een stukje van artistiek werk, of een soort interactieve animatie. 1088 00:49:44,600 --> 00:49:47,352 En ik zal zeggen dat een van onze favorieten is deze. 1089 00:49:47,352 --> 00:49:49,060 En ik dacht dat als we de lichten kan dimmen, 1090 00:49:49,060 --> 00:49:52,960 we zullen een kijkje nemen op deze laatste Scratch project in conclusie. 1091 00:49:52,960 --> 00:49:57,460 Maar wat je in gedachten moet houden, zoals Ik kan u plagen met een laatste detail, 1092 00:49:57,460 --> 00:49:59,140 snijden zal volgende week beginnen. 1093 00:49:59,140 --> 00:50:00,830 Kantooruren zal volgende week beginnen. 1094 00:50:00,830 --> 00:50:04,410 Probleem set nul zal worden geplaatst CS50.harvard.edu later vandaag. 1095 00:50:04,410 --> 00:50:06,430 En u zult worden begroet in probleem set nul 1096 00:50:06,430 --> 00:50:10,070 aan CS50 eigen Zamyla Chan, die begeleidt de meeste van onze walkthroughs. 1097 00:50:10,070 --> 00:50:11,952 Dit zijn ingesloten video's in het probleem sets 1098 00:50:11,952 --> 00:50:15,160 dat zal je hand door een veel van de initiële set-up en door vele 1099 00:50:15,160 --> 00:50:16,570 van de mogelijke ontwerpbeslissingen. 1100 00:50:16,570 --> 00:50:19,570 Dus als je ooit hebt die emotie had bij het ophalen van een huiswerkopdracht 1101 00:50:19,570 --> 00:50:21,030 en vroeg me af, waar moet ik beginnen? 1102 00:50:21,030 --> 00:50:23,510 Ze zal dat antwoord voor u hebben. 1103 00:50:23,510 --> 00:50:27,720 En nu, een definitieve programma van een van uw voorgangers 1104 00:50:27,720 --> 00:50:30,659 in antwoord op de vraag "Wat zegt de vos zeggen?" 1105 00:50:30,659 --> 00:50:32,242 [MUZIEK YLVIS, "WAT DOET DE VOS ZEGGEN?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (zang) Hond gaat inslag. 1108 00:50:41,666 --> 00:50:43,650 Kat gaat miauw. 1109 00:50:43,650 --> 00:50:47,520 Vogel gaat tweet en muis gaat piepen. 1110 00:50:47,520 --> 00:50:49,240 Koe gaat moo. 1111 00:50:49,240 --> 00:50:51,690 Kikker gaat kwaken. 1112 00:50:51,690 --> 00:50:54,630 En de olifant gaat toot. 1113 00:50:54,630 --> 00:50:59,040 Eenden zeggen kwakzalver en vis gaan blub. 1114 00:50:59,040 --> 00:51:07,370 En het zegel gaat ow ow ow, maar er is een geluid dat niemand weet, 1115 00:51:07,370 --> 00:51:10,330 wat zegt de vos zeggen? 1116 00:51:10,330 --> 00:51:11,020 En 1117 00:51:11,020 --> 00:51:12,478 >> DAVID J. MALAN: Dat is het voor CS50. 1118 00:51:12,478 --> 00:51:15,436 Wij zullen u op Puzzle Day en op maandag. 1119 00:51:15,436 --> 00:51:16,424 >> [Applaus] 1120 00:51:16,424 --> 00:51:19,882 >> [MUZIEK YLVIS, "WAT DOET DE VOS zeggen?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> Verteller: En nu diep gedachten, door Daven Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Vandaag Ik ben geraakt in de geconfronteerd met een telefoonboek. 1125 00:51:34,570 --> 00:51:38,160 Verwarrend, want ik ben bij site online kijken. 1126 00:51:38,160 --> 00:51:42,528