1 00:00:14,320 --> 00:00:17,970 Dus het is mijn grootste plezier u allen van harte welkom hier vandaag 2 00:00:17,970 --> 00:00:20,600 voor de eerste lezing van, nou ja, Inleiding 3 00:00:20,600 --> 00:00:22,510 om Computing en programmering. 4 00:00:22,510 --> 00:00:29,110 Ook bekend als CS50 of goed, CPSC 100, officieel hier bij Yale. 5 00:00:29,110 --> 00:00:34,820 >> Dus we konden niet meer opgewonden om u allen hier van harte welkom. 6 00:00:34,820 --> 00:00:36,620 Mijn naam is Patrick Rebeschini. 7 00:00:36,620 --> 00:00:39,180 Ik ben het hoofd-instructeur voor de klas. 8 00:00:39,180 --> 00:00:43,600 Ik ben hier wat neerkomt op een groep van ongeveer 60 personeelsleden 9 00:00:43,600 --> 00:00:46,380 dat zal werken met u het hele semester. 10 00:00:46,380 --> 00:00:49,040 Dit aantal is bijna 60 van ons. 11 00:00:49,040 --> 00:00:52,440 Maar langs de buitengewone niveau van de vastleggingen 12 00:00:52,440 --> 00:00:56,555 dat we gestoken in dit klasse, maakt CS50 de klas 13 00:00:56,555 --> 00:01:00,690 aan de Yale University, dat biedt het hoogste niveau van ondersteuning 14 00:01:00,690 --> 00:01:01,960 aan jullie allen. 15 00:01:01,960 --> 00:01:05,940 En we konden niet meer trots op te zijn het aanbieden van deze klasse weer hier. 16 00:01:05,940 --> 00:01:11,380 >> In feite, zoals u zult al snel ervaren, CS50 is veel meer dan een klasse. 17 00:01:11,380 --> 00:01:13,120 Het is een gemeenschap. 18 00:01:13,120 --> 00:01:15,250 En maak je deel zijn binnenkort van deze gemeenschap. 19 00:01:15,250 --> 00:01:18,730 Dit is het tweede jaar dat Yale is het aanbieden van deze klasse. 20 00:01:18,730 --> 00:01:21,640 We bouwen voort op de extreme succes van vorig jaar, waarbij 21 00:01:21,640 --> 00:01:24,340 Voor de eerste keer, hier aan deze universiteit, 22 00:01:24,340 --> 00:01:28,930 undergraduate onderwijs assistent werden in klaslokalen aangenomen. 23 00:01:28,930 --> 00:01:32,650 Het begon allemaal met deze klasse vorig jaar. 24 00:01:32,650 --> 00:01:37,050 >> Dus zoals u weet, wordt de klas geleerd samen met Harvard University. 25 00:01:37,050 --> 00:01:39,920 Om deze cursus te leren we zijn relying-- we kunnen 26 00:01:39,920 --> 00:01:44,850 rekenen op de grote deskundigheid van David Malan en de Harvard-team. 27 00:01:44,850 --> 00:01:48,930 David is het onderwijs CS50 voor goed, 10 jaar nu. 28 00:01:48,930 --> 00:01:51,160 En elk jaar is hij het verleggen van grenzen 29 00:01:51,160 --> 00:01:54,210 en het verbeteren van de klas ervaring. 30 00:01:54,210 --> 00:01:58,940 Nogmaals, we konden niet meer om gelukkig te zijn zetten deze samenwerking ermee. 31 00:01:58,940 --> 00:02:01,840 >> In feite is een van de meest interessante delen, 32 00:02:01,840 --> 00:02:06,560 Ik zal zeggen van het runnen van deze klasse nu, zowel aan Harvard en hier bij Yale, 33 00:02:06,560 --> 00:02:09,420 is het echt ongelooflijk kruisbestuiving 34 00:02:09,420 --> 00:02:13,770 van ideeën, die gericht zijn op het verbeteren van de leerervaring aan u allen. 35 00:02:13,770 --> 00:02:18,130 Zodat ten gevolge van deze uitgebreide samenwerking tussen de twee 36 00:02:18,130 --> 00:02:23,070 universiteit, CS50 is er trots op kondigt de nieuwe versie van dit jaar 37 00:02:23,070 --> 00:02:24,770 met merkbare veranderingen. 38 00:02:24,770 --> 00:02:27,580 David zal ons alles vertellen over hen nu. 39 00:02:27,580 --> 00:02:31,450 Dus please-- dit wezen zei, dan kunt u samen met mij 40 00:02:31,450 --> 00:02:34,220 en van harte welkom om een ​​te geven groot applaus 41 00:02:34,220 --> 00:02:37,290 om David te verwelkomen en Harvard team hier bij Yale. 42 00:02:37,290 --> 00:02:40,032 >> [APPLAUS] 43 00:02:40,032 --> 00:02:41,882 44 00:02:41,882 --> 00:02:43,247 >> DAVID MALAN: Dank je wel. 45 00:02:43,247 --> 00:02:43,746 Bedankt. 46 00:02:43,746 --> 00:02:46,550 47 00:02:46,550 --> 00:02:51,400 Dit is CS50, Harvard University's en Yale University's introductie 48 00:02:51,400 --> 00:02:53,960 het intellectuele ondernemingen van de informatica 49 00:02:53,960 --> 00:02:55,490 en de kunst van het programmeren. 50 00:02:55,490 --> 00:02:59,640 En wat dat betekent is dat deze cursus Uiteindelijk, gaat over het oplossen van problemen. 51 00:02:59,640 --> 00:03:01,849 Inderdaad veel van jullie misschien hebben van de middelbare school komen 52 00:03:01,849 --> 00:03:04,931 of hebben de afgelopen paar jaar doorgebracht afvragen wat sommige van je vrienden 53 00:03:04,931 --> 00:03:06,380 vorig jaar of in andere klassen. 54 00:03:06,380 --> 00:03:08,449 En toch, de realiteit is, ongeacht wat we 55 00:03:08,449 --> 00:03:11,740 , aan het eind van de dag in deze klasse, het gaat worden over het oplossen van problemen. 56 00:03:11,740 --> 00:03:14,320 >> En als zodanig, misschien nemen wat geruststelling in het feit 57 00:03:14,320 --> 00:03:16,770 dat 73% van de studenten die neem deze klasse, zowel hier 58 00:03:16,770 --> 00:03:20,235 Yale en Harvard, hebben een CS klasse nooit eerder genomen. 59 00:03:20,235 --> 00:03:22,610 Dus als je hier zitten in het publiek vandaag af 60 00:03:22,610 --> 00:03:24,520 waarom je hier zit in het publiek vandaag, 61 00:03:24,520 --> 00:03:26,300 of misschien heb je net gevolgd samen met enkele vrienden, 62 00:03:26,300 --> 00:03:28,299 of misschien heb je al een weinig nieuwsgierig naar wat 63 00:03:28,299 --> 00:03:30,194 informatica en programmering, te realiseren 64 00:03:30,194 --> 00:03:32,860 dat de meeste van je klasgenoten aan Links en rechts van je 65 00:03:32,860 --> 00:03:35,840 zijn zeer in dezelfde demografische. 66 00:03:35,840 --> 00:03:38,120 >> En inderdaad, als we kijken vorig jaar de statistieken 67 00:03:38,120 --> 00:03:42,760 binnen de studenten van CS50, zowel hier en aan Harvard, 58% van de studenten 68 00:03:42,760 --> 00:03:44,630 omschrijven zichzelf als minder comfortabel. 69 00:03:44,630 --> 00:03:46,090 9% is comfortabeler. 70 00:03:46,090 --> 00:03:47,699 En dan is 33% ligt ergens tussenin. 71 00:03:47,699 --> 00:03:50,240 En er is geen formele definitie wat deze emmers betekent. 72 00:03:50,240 --> 00:03:52,335 Je weet dat soort bent minder comfortabel als u bent. 73 00:03:52,335 --> 00:03:54,840 Je voelt een beetje ongemakkelijk met misschien zijn in de klas. 74 00:03:54,840 --> 00:03:57,840 Je bent niet helemaal zeker of een computer wetenschap klasse is uiteindelijk voor u, 75 00:03:57,840 --> 00:04:00,009 en beseffen dat je bent in zeer goed gezelschap. 76 00:04:00,009 --> 00:04:01,800 En inderdaad de indeling, en de beoordeling, 77 00:04:01,800 --> 00:04:04,466 en feedback, en dat alles steunstructuur in de klasse 78 00:04:04,466 --> 00:04:06,550 uiteindelijk zeer geïndividualiseerd. 79 00:04:06,550 --> 00:04:09,187 Meer nog dan de meeste elke andere klasse door het ontwerp. 80 00:04:09,187 --> 00:04:11,520 En inderdaad, wat uiteindelijk kwesties in deze klasse is niet 81 00:04:11,520 --> 00:04:14,180 zo veel waar je terecht up opzichte van anderen, 82 00:04:14,180 --> 00:04:18,070 maar waar je, in week 11 of laatste, en ten opzichte van jezelf in week 83 00:04:18,070 --> 00:04:20,372 0 hier op onze eerste. 84 00:04:20,372 --> 00:04:21,330 Dus wat betekent dat? 85 00:04:21,330 --> 00:04:24,750 Nou, dit betekent dat van die 73% van de studenten vorig jaar dat nooit had genomen 86 00:04:24,750 --> 00:04:26,917 een CS klasse voor, door de start van het semester zij 87 00:04:26,917 --> 00:04:29,500 werden ploeteren in een taal genaamd Scratch, die onszelf 88 00:04:29,500 --> 00:04:30,340 zal hier vandaag te zien. 89 00:04:30,340 --> 00:04:32,190 En aan het eind van de semester waren ze verdwenen 90 00:04:32,190 --> 00:04:34,700 door deze hele lijst van uitdagingen. 91 00:04:34,700 --> 00:04:36,399 Beginnend met een taal genaamd c. 92 00:04:36,399 --> 00:04:38,190 Implementeren, wat is op het eerste gezicht, gaan 93 00:04:38,190 --> 00:04:41,010 een beetje een uitdaging zijn voor sommigen, maar vrij verheugend als je eenmaal 94 00:04:41,010 --> 00:04:44,510 krijgen Super Mario stuiteren boven en beneden een piramide 95 00:04:44,510 --> 00:04:47,005 geïmplementeerd, alhoewel met slechts iets genaamd ASCII-art. 96 00:04:47,005 --> 00:04:49,380 Het implementeren van de laatste jaar-- wat de studenten vorig jaar dan 97 00:04:49,380 --> 00:04:53,270 heeft daarna werd hun uitvoering eigen Caesar cipher en vigenèrecijfer. 98 00:04:53,270 --> 00:04:55,180 Dus encryptie-algoritmen waarmee je kon 99 00:04:55,180 --> 00:04:58,920 scramble informatie en vervolgens ontcijferen informatie om geheime berichten te verzenden. 100 00:04:58,920 --> 00:05:00,010 Het spel van de 15. 101 00:05:00,010 --> 00:05:02,260 Als u zich herinnert uit jeugd of een partij gunst, 102 00:05:02,260 --> 00:05:05,000 dat kleine plastic spel waar je beweegt de cijfers omhoog, omlaag, links en rechts 103 00:05:05,000 --> 00:05:07,500 om te proberen om ze op orde te krijgen, daadwerkelijk uitvoering van dat spel 104 00:05:07,500 --> 00:05:09,640 en het oplossen van de logica zijn vereist. 105 00:05:09,640 --> 00:05:11,640 En toen we in dabbled forensisch onderzoek van vorig jaar. 106 00:05:11,640 --> 00:05:13,810 >> Dus door het mid-semester, studenten die nooit 107 00:05:13,810 --> 00:05:16,130 gebruikten hun toetsenborden hiertoe vóór, 108 00:05:16,130 --> 00:05:19,030 werden software schrijven te herstellen, om zo te zeggen, 109 00:05:19,030 --> 00:05:21,420 JPEG's of foto's dat we hadden per ongeluk 110 00:05:21,420 --> 00:05:24,430 verwijderd uit een digitaal geheugenkaart van een camera. 111 00:05:24,430 --> 00:05:28,130 Het terugkrijgen van geheime boodschappen van de binnenkant van een bitmapafbeelding, 112 00:05:28,130 --> 00:05:30,030 en andere dergelijke types van graphics ook. 113 00:05:30,030 --> 00:05:32,770 >> Vervolgens hebben we overgegaan tot het geven de hele klas een woordenboek. 114 00:05:32,770 --> 00:05:36,330 Gewoon echt een groot tekstbestand met 150.000 woorden Engels. 115 00:05:36,330 --> 00:05:39,080 En iedereen werd uitgedaagd een of andere manier te lezen, om zo te zeggen, 116 00:05:39,080 --> 00:05:40,780 deze woorden in het geheugen. 117 00:05:40,780 --> 00:05:42,060 In het geheugen van de computer. 118 00:05:42,060 --> 00:05:44,310 En dan vragen te beantwoorden van het formulier, is dit een woord? 119 00:05:44,310 --> 00:05:44,934 Is dat een woord? 120 00:05:44,934 --> 00:05:45,580 Is dat een woord? 121 00:05:45,580 --> 00:05:47,880 Eigenlijk alleen maar de uitvoering een spellingscontrole. 122 00:05:47,880 --> 00:05:50,320 En dan elkaar uitdagen andere met een grote board-- 123 00:05:50,320 --> 00:05:53,040 een leider boord om die zien kon het minst hoeveelheid geheugen, 124 00:05:53,040 --> 00:05:56,470 in de minste hoeveelheid tijd eigenlijk spellingcontrole grote documenten. 125 00:05:56,470 --> 00:05:59,760 >> We overgestapt van toen naar de uitvoering van de eigen webserver. 126 00:05:59,760 --> 00:06:04,070 Dus niet het maken van webpagina's in talen zoals HTML en CSS, als je bekend bent. 127 00:06:04,070 --> 00:06:06,360 Maar eigenlijk uitvoering de server die 128 00:06:06,360 --> 00:06:09,260 luistert op internet voor het aanvragen van browsers 129 00:06:09,260 --> 00:06:11,022 en dan reageren op deze verzoeken. 130 00:06:11,022 --> 00:06:13,230 Dan de implementatie van onze eigen e-handel, zoals website, waar 131 00:06:13,230 --> 00:06:15,490 studenten kunnen kopen en verkopen voorraden. 132 00:06:15,490 --> 00:06:18,590 Tekening in bijna real time aandelenkoersen van Yahoo Finance. 133 00:06:18,590 --> 00:06:21,200 En waardoor studenten om te zien hoe hun portfolio zich ontwikkelt. 134 00:06:21,200 --> 00:06:23,570 En dan eindelijk een mash-up van Google News en Google 135 00:06:23,570 --> 00:06:26,540 Kaarten waarbij studenten op termijn door termen einde 136 00:06:26,540 --> 00:06:30,110 had de mogelijkheid om te klikken, en rond, en zoeken op een Google map. 137 00:06:30,110 --> 00:06:32,060 En dan zie alle de nieuwsartikelen die 138 00:06:32,060 --> 00:06:33,940 proximaal zijn aan die bepaalde gebieden. 139 00:06:33,940 --> 00:06:36,180 Dus echt gaande van nul tot en met 60. 140 00:06:36,180 --> 00:06:39,420 >> En langs de weg hebben van wat we hadden Vorig jaar riep, hacker toevoegingen. 141 00:06:39,420 --> 00:06:41,211 Dat de lat verder voor degenen onder u 142 00:06:41,211 --> 00:06:44,390 die zou heel goed hebben een goede hoeveelheid ervaring om in die 9% 143 00:06:44,390 --> 00:06:45,349 van meer comfortabel. 144 00:06:45,349 --> 00:06:47,140 Dus beseffen dat er een zeer hoog plafond 145 00:06:47,140 --> 00:06:49,200 zelfs binnen die uitdagingen voor studenten 146 00:06:49,200 --> 00:06:50,660 uit een andere achtergrond. 147 00:06:50,660 --> 00:06:52,618 Omdat eind de dag, zijn we uiteindelijk 148 00:06:52,618 --> 00:06:54,910 gericht gewoon op dit punt. 149 00:06:54,910 --> 00:06:57,010 >> Maar wat betekent dit bedoel, het oplossen van problemen? 150 00:06:57,010 --> 00:06:59,100 Dus laten we stellen dat we destilleren het zo. 151 00:06:59,100 --> 00:07:01,550 Dus het oplossen van problemen is echt alleen dit soort foto. 152 00:07:01,550 --> 00:07:04,675 Dus je hebt inputs om een ​​probleem, iets wat je eigenlijk wilt oplossen. 153 00:07:04,675 --> 00:07:07,020 Het doel is om uitgangen te krijgen, een oplossing voor dit probleem. 154 00:07:07,020 --> 00:07:09,950 En dan in het midden is wat we een zwarte doos zullen noemen. 155 00:07:09,950 --> 00:07:13,970 Je hoeft niet per se weten of zelfs schelen wat er in die black box. 156 00:07:13,970 --> 00:07:16,670 Alles wat je weet is dat wanneer je voedt inbreng in het, 157 00:07:16,670 --> 00:07:19,890 je hopelijk uitgang of een oplossing ervan. 158 00:07:19,890 --> 00:07:22,380 En terwijl vandaag zullen we kijken zowel ingangen en uitgangen, 159 00:07:22,380 --> 00:07:24,838 we zullen op lange termijn, en over de loop van het hele semester, 160 00:07:24,838 --> 00:07:26,880 focussen op wat er in die doos. 161 00:07:26,880 --> 00:07:30,040 >> En daarin zal liggen iets genaamd algoritmen. 162 00:07:30,040 --> 00:07:33,300 Stap voor stap instructies voor het eigenlijk het oplossen van een aantal problemen. 163 00:07:33,300 --> 00:07:35,090 Maar wat is een voorbeeld van een aantal ingangen? 164 00:07:35,090 --> 00:07:37,840 Dus misschien een simpel ding op de begin van ieder schooljaar, iemand 165 00:07:37,840 --> 00:07:39,090 zou willen bijwonen nemen. 166 00:07:39,090 --> 00:07:42,030 Dus we zouden kunnen doen één, twee, drie, vier, vijf, zes, 167 00:07:42,030 --> 00:07:44,010 en hoe zou ik blijf spoor van die informatie. 168 00:07:44,010 --> 00:07:46,051 Ik zou gewoon gaan een, twee, drie, vier, vijf, zes. 169 00:07:46,051 --> 00:07:47,720 En gewoon gebruik maken van een soort van enkele cijfers. 170 00:07:47,720 --> 00:07:51,210 >> Of ik zou eigenlijk opnemen Deze iets langere termijn. 171 00:07:51,210 --> 00:07:53,340 En hoe kan ik vertegenwoordigen alle de mensen in deze kamer? 172 00:07:53,340 --> 00:07:54,900 Nou, ik zou zoiets doen, OK. 173 00:07:54,900 --> 00:07:56,070 Ik zie een persoon. 174 00:07:56,070 --> 00:07:56,600 Okee. 175 00:07:56,600 --> 00:08:01,180 Ik een ander persoon te zien, een derde, enzovoort. 176 00:08:01,180 --> 00:08:04,070 Maar niemand telt mensen vinden dit leuk. 177 00:08:04,070 --> 00:08:06,952 Dus letterlijk, de meesten van ons als we zelfs van plan om iets te tekenen op alle, 178 00:08:06,952 --> 00:08:08,910 waarschijnlijk gaan om te gaan een twee drie vier, 179 00:08:08,910 --> 00:08:14,240 misschien een beetje luxe, vijf, zes, zeven, acht, negen, tien enzovoort. 180 00:08:14,240 --> 00:08:16,960 >> En dat is eigenlijk een systeem genaamd unary. 181 00:08:16,960 --> 00:08:20,549 Uno, zoals uno impliceert één, waar u slechts één letter van het alfabet. 182 00:08:20,549 --> 00:08:21,840 Je hebt net dit hekje. 183 00:08:21,840 --> 00:08:24,570 En ik, naar efficiëntie, maar trok deze hash marks, uiteindelijk 184 00:08:24,570 --> 00:08:25,500 als rechte lijnen. 185 00:08:25,500 --> 00:08:27,666 Maar ik kon hen hebben getrokken zo weinig stok cijfers. 186 00:08:27,666 --> 00:08:29,550 Waar te vertegenwoordigen een persoon, een input, 187 00:08:29,550 --> 00:08:32,210 Ik trek gewoon een stok figuur of een hekje. 188 00:08:32,210 --> 00:08:33,910 Maar dit is niet zo expressief. 189 00:08:33,910 --> 00:08:38,020 >> Als alles wat ik heb is deze hash merken, laat staan ​​stok cijfers, 190 00:08:38,020 --> 00:08:41,410 hoe zou ik vertegenwoordig zoiets als de nummer 15? 191 00:08:41,410 --> 00:08:43,050 Of 15 mensen in de kamer? 192 00:08:43,050 --> 00:08:48,740 Ik zou kunnen hebben om iets te doen, zoals 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 193 00:08:48,740 --> 00:08:51,270 14, 15. 194 00:08:51,270 --> 00:08:52,830 Het is gewoon niet zo goed schaal. 195 00:08:52,830 --> 00:08:55,730 Als de ingangen krijgen grote, we behoefte aan een beter systeem dan dit. 196 00:08:55,730 --> 00:08:57,910 >> En het blijkt dat de systeem dat computers gebruiken 197 00:08:57,910 --> 00:09:00,510 is niet zo verschillend van wat u en ik weet. 198 00:09:00,510 --> 00:09:03,301 In feite zijn de meeste mensen in deze zaal, zelfs als je onder degenen minder 199 00:09:03,301 --> 00:09:06,300 comfortabel, niet per se weten hoe je Mac of pc echt werkt, 200 00:09:06,300 --> 00:09:09,810 heb je waarschijnlijk op zijn minst gehoord, dat onder de motorkap zijn 0 en 1's. 201 00:09:09,810 --> 00:09:11,390 De zogenaamde binaire systeem. 202 00:09:11,390 --> 00:09:15,340 Dus inderdaad, computers hebben meer dan alleen hash marks in hun woordenschat, 203 00:09:15,340 --> 00:09:17,450 maar niet zo veel van een woordenschat wij mensen. 204 00:09:17,450 --> 00:09:19,210 >> Inderdaad, wij mensen geen gebruik maken van binaire. 205 00:09:19,210 --> 00:09:21,160 Bi betekenis 2, 0 en 1. 206 00:09:21,160 --> 00:09:24,140 Maar decimaal, deca 10 betekent, 0 tot 9. 207 00:09:24,140 --> 00:09:27,660 Dus we hebben veel meer expressieve capaciteiten in onze normale menselijke wereld. 208 00:09:27,660 --> 00:09:31,720 Maar ik zou beweren dat deze systemen, binair en decimaal, en alles 209 00:09:31,720 --> 00:09:35,290 tussen en daarbuiten, zijn eigenlijk allemaal heel vertrouwd. 210 00:09:35,290 --> 00:09:39,650 Bijvoorbeeld, overweeg dit voorbeeld hier, 123. 211 00:09:39,650 --> 00:09:43,850 Dus dit is echt, natuurlijk, een aantal die we kennen als 123. 212 00:09:43,850 --> 00:09:47,160 Maar alles wat ik net trok was alleen deze patroon van de symbolen, tekens zo te zeggen. 213 00:09:47,160 --> 00:09:49,100 Soort van vormen op het bord met krijt. 214 00:09:49,100 --> 00:09:52,951 >> Maar waarom doen we meteen en Deze intuïtief te begrijpen als 123? 215 00:09:52,951 --> 00:09:54,700 Nou, als je waren als ik op de lagere school, 216 00:09:54,700 --> 00:09:59,920 u waarschijnlijk geleerd dat dit de 1s kolom is de kolom 10s, 217 00:09:59,920 --> 00:10:01,330 Dit is de kolom 100s. 218 00:10:01,330 --> 00:10:02,860 En waarom is dat nuttig? 219 00:10:02,860 --> 00:10:06,440 Nou, het is eenvoudige rekenkundige je nu doen vanuit een patroon van symbolen te krijgen 220 00:10:06,440 --> 00:10:08,940 een aantal begrijpen we intuïtief. 221 00:10:08,940 --> 00:10:14,160 Is wat, 100 keer 1, en vervolgens 10 keer 2 en 1 keer 3, 222 00:10:14,160 --> 00:10:17,860 wat natuurlijk slechts 100, en dit is 20, en dat is drie. 223 00:10:17,860 --> 00:10:19,740 En dus als we die together-- ah toe te voegen. 224 00:10:19,740 --> 00:10:23,880 Dus daarin ligt het soort redenering achter waarom dit set van symbolen 225 00:10:23,880 --> 00:10:26,550 betekent iets echts en numerieke. 226 00:10:26,550 --> 00:10:32,030 >> Nou, computers doen precies hetzelfde, maar ze alleen zo hoog als men kan tellen. 227 00:10:32,030 --> 00:10:34,400 Terwijl ik was in staat om tellen als hoog als drie. 228 00:10:34,400 --> 00:10:37,380 En in feite, als ik ging door dat ik kon oplopen tot negen in dit systeem. 229 00:10:37,380 --> 00:10:40,430 Computers hebben slechts nullen en die in het alfabet. 230 00:10:40,430 --> 00:10:41,410 >> Dus wat betekent dat? 231 00:10:41,410 --> 00:10:46,900 Nou, het betekent gewoon dat als een computer wil vertegenwoordigen, zeggen dat het getal 0, 232 00:10:46,900 --> 00:10:51,300 misschien met behulp van drie characters-- drie letters van het alfabet om zo te zeggen, 233 00:10:51,300 --> 00:10:53,050 dat is hoe een computer vertegenwoordigt 0. 234 00:10:53,050 --> 00:10:54,620 Dus niet zo eng nu toe. 235 00:10:54,620 --> 00:10:56,450 Het is precies wat wij mensen zouden doen. 236 00:10:56,450 --> 00:10:59,410 En in feite, de meesten van ons zou gewoon negeren de nullen toch. 237 00:10:59,410 --> 00:11:01,640 >> Een computer, als het wil het nummer 1 opslaan, 238 00:11:01,640 --> 00:11:03,330 blijkt gaat om dit te doen. 239 00:11:03,330 --> 00:11:05,630 En een computer op te slaan het getal 2 is niet 240 00:11:05,630 --> 00:11:09,280 gaan naar de unaire systeem te doen, die ik zinspeelde eerder. 241 00:11:09,280 --> 00:11:11,360 Het is eigenlijk van plan om dit te doen. 242 00:11:11,360 --> 00:11:13,570 En dit is waarschijnlijk waarbij het patroon begint 243 00:11:13,570 --> 00:11:15,570 minder voor de hand liggende voor de meeste mensen geworden. 244 00:11:15,570 --> 00:11:18,580 Dat is 2, dit is 3. 245 00:11:18,580 --> 00:11:21,600 Merkwaardig is nu 4. 246 00:11:21,600 --> 00:11:24,120 En nu is het echt lijken misschien cryptisch te zijn, 247 00:11:24,120 --> 00:11:26,762 maar het is niet als we kijken naar wat binaire werkelijk betekent. 248 00:11:26,762 --> 00:11:28,720 Het betekent dat je hebt twee letters van het alfabet. 249 00:11:28,720 --> 00:11:31,940 Dus twee mogelijke karakters voor elke placeholder. 250 00:11:31,940 --> 00:11:35,970 >> Dus dat eigenlijk betekent dat we gaan naar een plaats 1s of 2s plaats nodig, 251 00:11:35,970 --> 00:11:40,800 een 4s plaats en dan 8 en 16, 32 en 64. 252 00:11:40,800 --> 00:11:42,290 En wat is het verschil daar? 253 00:11:42,290 --> 00:11:47,150 Als deze zijn 1, 2, 4, 8, 16, 32, 64. 254 00:11:47,150 --> 00:11:50,690 En voordat we hadden 110, 100.000, 10.000. 255 00:11:50,690 --> 00:11:53,170 Wat is de gelijkenis daar? 256 00:11:53,170 --> 00:11:54,940 En wat is het patroon? 257 00:11:54,940 --> 00:11:55,505 Ja. 258 00:11:55,505 --> 00:11:57,380 STUDENT: Bevoegdheden van 2 in plaats van de bevoegdheden van 10. 259 00:11:57,380 --> 00:11:57,660 DAVID MALAN: Yeah. 260 00:11:57,660 --> 00:11:59,290 Bevoegdheden van 2 in plaats van machten van 10. 261 00:11:59,290 --> 00:12:02,160 En dus als ik wilde houden gaan, 8, 16's en ga zo maar forth-- 262 00:12:02,160 --> 00:12:05,822 maar nu als je dit soort van de aanwijzing, nu het binaire systeem 263 00:12:05,822 --> 00:12:07,280 is eigenlijk vrij eenvoudig. 264 00:12:07,280 --> 00:12:10,910 Waarom is dit patroon van 0's in de wereld van computers 0? 265 00:12:10,910 --> 00:12:14,910 Goed omdat het 4 tijden 0, 2 tijden 0, 1 tijden 0 en je krijgt 0. 266 00:12:14,910 --> 00:12:16,650 >> Waarom is dit de nummer 1? 267 00:12:16,650 --> 00:12:20,070 Dezelfde redenering, maar nu zijn we een 1 in de kolom 1. 268 00:12:20,070 --> 00:12:21,840 Waarom is dit 2? 269 00:12:21,840 --> 00:12:24,450 We hebben een 1 in de kolom 2s. 270 00:12:24,450 --> 00:12:30,190 En hoe doe ik vertegenwoordig zeggen het nummer 7 in binaire? 271 00:12:30,190 --> 00:12:31,324 Zeg luider. 272 00:12:31,324 --> 00:12:32,170 >> STUDENT: Drie 1s. 273 00:12:32,170 --> 00:12:33,086 >> DAVID MALAN: Drie 1s. 274 00:12:33,086 --> 00:12:37,110 Dus 1, 1, 1 omdat we gewoon nodig 4 plus 2 plus 1 geeft me 7. 275 00:12:37,110 --> 00:12:37,610 Okee. 276 00:12:37,610 --> 00:12:40,410 Dus vanaf daar hoe kunnen we vertegenwoordigen 8 met 3 placeholders? 277 00:12:40,410 --> 00:12:43,310 278 00:12:43,310 --> 00:12:43,922 Ja. 279 00:12:43,922 --> 00:12:45,070 >> STUDENT: 1, 0, 0, 0. 280 00:12:45,070 --> 00:12:46,970 >> DAVID MALAN: Ja 1, 0, 0, 0. 281 00:12:46,970 --> 00:12:49,380 En toch misschien, ik soort van technisch nodig 282 00:12:49,380 --> 00:12:52,380 naar een andere tijdelijke aanduiding toe te voegen aan de raad van bestuur. 283 00:12:52,380 --> 00:12:55,480 Als ik wil, dat ik inderdaad fit moet iets als dit te doen. 284 00:12:55,480 --> 00:12:58,990 Dus ik moet eigenlijk nu gebruiken de 8s kolom, en dat is prima. 285 00:12:58,990 --> 00:13:02,680 Maar het merkwaardige in de informatica is dat dat gaat ons iets kosten. 286 00:13:02,680 --> 00:13:04,390 Je moet meer RAM-geheugen in uw computer nu. 287 00:13:04,390 --> 00:13:06,348 Je hebt meer geheugen omdat je iets nodig hebt 288 00:13:06,348 --> 00:13:09,650 fysiek op te slaan dat extra bit, om zo te zeggen. 289 00:13:09,650 --> 00:13:10,700 Binaire cijfers. 290 00:13:10,700 --> 00:13:13,260 En inderdaad alles wat er gebeurd is hier, net als het decimale stelsel, 291 00:13:13,260 --> 00:13:17,380 Als we blijven toevoegen van nummers omhoog en omhoog en hoger, gaan we naar 5-6 tot 7-8 292 00:13:17,380 --> 00:13:19,330 het is net als het dragen van de 1, letterlijk. 293 00:13:19,330 --> 00:13:21,940 En dan is alles anders teruggaat naar nul. 294 00:13:21,940 --> 00:13:25,870 >> Maar hoe weten we eigenlijk vertegenwoordigen deze dingen fysiek in een computer? 295 00:13:25,870 --> 00:13:29,380 Goed aan het eind van de dag, de enige fysieke inbreng in te gaan op mijn computer 296 00:13:29,380 --> 00:13:33,630 hier is dit snoer, dus elektriciteit of elektronen uit de wand. 297 00:13:33,630 --> 00:13:36,920 En dus hoe krijg ik van iets fysieke als dat daadwerkelijk 298 00:13:36,920 --> 00:13:40,630 wat neerkomt op een idee als deze plaats. 299 00:13:40,630 --> 00:13:41,930 >> Nou, wat kunnen we doen? 300 00:13:41,930 --> 00:13:45,560 We kunnen van mening dat, al goed, misschien als elektriciteit stroomt 301 00:13:45,560 --> 00:13:47,420 Ik kon het op te slaan en vast te houden. 302 00:13:47,420 --> 00:13:49,250 En als ik vasthouden aan sommige elektriciteit, 303 00:13:49,250 --> 00:13:51,700 dat is gewoon gaan willekeurig vormen een 1. 304 00:13:51,700 --> 00:13:53,997 En als ik trek de stekker en er is niets daar, 305 00:13:53,997 --> 00:13:56,330 je weet dat zal alleen maar willekeurig vormen een 0. 306 00:13:56,330 --> 00:13:57,700 >> Dus als er iets is daar 1. 307 00:13:57,700 --> 00:13:59,280 Als er niets is er, 0. 308 00:13:59,280 --> 00:14:01,420 Of u kunt dit doen iets meer visuele. 309 00:14:01,420 --> 00:14:02,704 Hier is een 0. 310 00:14:02,704 --> 00:14:05,370 Er is niets interessant going op de achterkant van mijn telefoon. 311 00:14:05,370 --> 00:14:08,690 Maar als ik toestaan ​​dat een beetje beetje elektriciteit stroomt, 312 00:14:08,690 --> 00:14:11,490 ook al is het een beetje helder hier, mijn zaklamp ging. 313 00:14:11,490 --> 00:14:15,840 Dus ik ben het opslaan van een lading en ergo, deze telefoon staat nu 1. 314 00:14:15,840 --> 00:14:17,700 Dus 0 1. 315 00:14:17,700 --> 00:14:23,630 >> Dus met 1 iPhone hoe hoog kan ik tellen gebruik van dit soort aanpak? 316 00:14:23,630 --> 00:14:24,490 Ik bedoel tot 1. 317 00:14:24,490 --> 00:14:25,900 Het is niet zo overtuigend. 318 00:14:25,900 --> 00:14:27,170 Dus wat zouden we nog meer doen? 319 00:14:27,170 --> 00:14:31,180 Nou laten we zien, is iedereen op hun telefoon nu dat ik kon lenen? 320 00:14:31,180 --> 00:14:33,800 Iedereen die een telefoon heeft met een zaklamp ingebouwd? 321 00:14:33,800 --> 00:14:34,969 Kan ik lenen? 322 00:14:34,969 --> 00:14:36,010 Ik heb het niet nodig ontgrendeld. 323 00:14:36,010 --> 00:14:36,510 Okee. 324 00:14:36,510 --> 00:14:37,150 Dank je. 325 00:14:37,150 --> 00:14:37,780 Laat mij dit lenen. 326 00:14:37,780 --> 00:14:38,279 Okee. 327 00:14:38,279 --> 00:14:45,570 Dus als ik blader nu en hier, wat moet ik die nu? 328 00:14:45,570 --> 00:14:46,070 Ja. 329 00:14:46,070 --> 00:14:49,350 Dus het is een drie, want dit is in de 1s kolom is de kolom 2s. 330 00:14:49,350 --> 00:14:50,480 Dus 1 plus 2 is 3. 331 00:14:50,480 --> 00:14:53,410 En dan, als we proberen te krijgen echt creative-- oh, dank je. 332 00:14:53,410 --> 00:14:54,690 Zeer preventieve. 333 00:14:54,690 --> 00:14:55,560 Okee. 334 00:14:55,560 --> 00:14:57,100 Ik heb nu drie iPhones. 335 00:14:57,100 --> 00:14:58,810 Okee. 336 00:14:58,810 --> 00:15:02,500 >> En nu dit-- ik zal niet doet verder dan dit. 337 00:15:02,500 --> 00:15:04,380 Wat ben ik die nu? 338 00:15:04,380 --> 00:15:05,090 Gewoon zevens. 339 00:15:05,090 --> 00:15:08,000 Maar ik moest fysiek meer geheugen in dit geval. 340 00:15:08,000 --> 00:15:08,920 Maar dat is alles wat het is. 341 00:15:08,920 --> 00:15:12,870 U kunt denken aan wat er gaande on-- dank je-- binnenkant van je telefoon 342 00:15:12,870 --> 00:15:16,240 als alleen maar een schakelaar die is worden in- en uitgeschakeld. 343 00:15:16,240 --> 00:15:18,350 >> En als je ooit hebt gehoord het woord transistor. 344 00:15:18,350 --> 00:15:21,312 Of als je ooit gehoord van de marketing spreken Intel inside, 345 00:15:21,312 --> 00:15:24,270 dat spreekt tot de aard van de hardware dat is binnenkant van uw computer. 346 00:15:24,270 --> 00:15:26,707 Intel maakt CPU's, centrale verwerkingseenheden, 347 00:15:26,707 --> 00:15:28,790 die als het brein binnenkant van uw computer. 348 00:15:28,790 --> 00:15:30,640 En deze CPU's en dingen die ze zijn aangesloten 349 00:15:30,640 --> 00:15:32,740 te veel en veel kleine schakelaars. 350 00:15:32,740 --> 00:15:36,440 Miljoenen, miljarden schakelaars dat kan zowel in of uit. 351 00:15:36,440 --> 00:15:38,840 >> Dus computers, gelukkig, zoals onze Macs en pc's, 352 00:15:38,840 --> 00:15:43,830 kan veel hoger zijn dan 7 of 8 tellen omdat ze veel meer dan drie 353 00:15:43,830 --> 00:15:44,660 of vier bits. 354 00:15:44,660 --> 00:15:48,140 Veel meer dan het equivalent van de drie zaklampen dat we net hadden. 355 00:15:48,140 --> 00:15:52,110 Maar nu, dit begint te krijgen vrij oninteressant snel. 356 00:15:52,110 --> 00:15:55,810 Als ik wil nu daadwerkelijk in staat zijn iets interessanter maken, 357 00:15:55,810 --> 00:16:00,340 Ik wil in staat zijn om te springen om zoiets als dit. 358 00:16:00,340 --> 00:16:03,604 >> Dus ASCII, het is niet echt een nuttig acroniem, maar American Standard Code 359 00:16:03,604 --> 00:16:04,770 for Information Interchange. 360 00:16:04,770 --> 00:16:07,450 Het betekent alleen, enkele jaren geleden wij mensen besloten, 361 00:16:07,450 --> 00:16:10,724 Weet je wat, willen we in staat zijn om te doen meer met computers dan alleen cijfers. 362 00:16:10,724 --> 00:16:12,890 We willen niet dat ze gewoon duur zijn rekenmachines, 363 00:16:12,890 --> 00:16:16,730 we willen graag in staat zijn om dingen te doen zoals tekstverwerking, zij het zeer eenvoudig. 364 00:16:16,730 --> 00:16:20,030 Later hadden we e-mail en andere dergelijke media. 365 00:16:20,030 --> 00:16:23,700 >> En dus is de wereld besliste enkele jaren geleden volgens dit systeem ASCII, 366 00:16:23,700 --> 00:16:24,770 Weet je wat? 367 00:16:24,770 --> 00:16:26,970 In bepaalde programma's op elk gewenst moment 368 00:16:26,970 --> 00:16:30,649 zie het equivalent van het aantal 65, zoals het patroon van bits. 369 00:16:30,649 --> 00:16:32,440 En we konden het doen math hier op het bord. 370 00:16:32,440 --> 00:16:34,450 Het patroon van bits die 65 vertegenwoordigen. 371 00:16:34,450 --> 00:16:37,240 Denk niet dat het als 65 in decimalen. 372 00:16:37,240 --> 00:16:41,620 Zie het als willekeurig, maar wereldwijd, consequent als de hoofdstad 373 00:16:41,620 --> 00:16:42,201 EEN. 374 00:16:42,201 --> 00:16:43,950 En dan is de wereld besloten, weet je wat? 375 00:16:43,950 --> 00:16:45,630 Laten we een ander patroon van bits. 376 00:16:45,630 --> 00:16:47,770 En als we ooit zien nummer 66, laten we gewoon 377 00:16:47,770 --> 00:16:50,573 veronderstellen dat de hoofdletter B. Fast forward naar H 378 00:16:50,573 --> 00:16:55,510 en ik, als je 72 of 73, dat dient een H en een I, respectievelijk. 379 00:16:55,510 --> 00:16:57,780 En dus zolang de gehele wereld is het eens op deze. 380 00:16:57,780 --> 00:17:01,342 Zodat wanneer u een e-mail of zou je een bestand te krijgen op een USB-stick, 381 00:17:01,342 --> 00:17:03,800 of iets dergelijks dat-- wanneer zie je dat patroon van bits, 382 00:17:03,800 --> 00:17:06,980 je weet dat het dit zou moeten zijn letter of een andere letter. 383 00:17:06,980 --> 00:17:08,620 >> Maar het is context specifieke, rechts. 384 00:17:08,620 --> 00:17:12,250 Een e-mail programma zou kunnen interpreteren deze dingen als personages, 385 00:17:12,250 --> 00:17:15,760 maar een grafische rekenmachine of calculator kunnen vertegenwoordigen of interpreteren 386 00:17:15,760 --> 00:17:18,370 deze dingen, natuurlijk, zoals brieven. 387 00:17:18,370 --> 00:17:21,610 >> Dus met dat gezegd, snelle kleine beoordeling. 388 00:17:21,610 --> 00:17:25,440 Dit is misschien een drie karakter e-mail die is verzonden naar me. 389 00:17:25,440 --> 00:17:27,990 Onder de motorkap is het allemaal in 0s en 1s, maar kan ons niet schelen. 390 00:17:27,990 --> 00:17:31,580 We gaan om te beginnen met abstract boven de 0s en 1s tot brieven. 391 00:17:31,580 --> 00:17:36,830 En als ik zie een patroon van 0s en 1s dat echt vertegenwoordigen 72, hint, hint, 73, 392 00:17:36,830 --> 00:17:38,866 en dan 33, wat is de boodschap? 393 00:17:38,866 --> 00:17:40,348 >> STUDENT: [ONVERSTAANBAAR] 394 00:17:40,348 --> 00:17:42,639 DAVID MALAN: Dus als je denkt terug zoëven, HI 395 00:17:42,639 --> 00:17:47,210 was de boodschap die ik probeerde te communiceren hier omdat H is 72, 396 00:17:47,210 --> 00:17:50,925 I is 73, en nu 33-- zou je niet dit per se van tevoren weten, 397 00:17:50,925 --> 00:17:53,800 maar het blijkt dat als je werkelijk Bekijk meer van de kaart en het systeem 398 00:17:53,800 --> 00:17:56,800 dat de mensheid overeengekomen jaar geleden, het is gewoon een uitroepteken. 399 00:17:56,800 --> 00:18:01,590 Inderdaad is er een patroon van symbolen en nummers voor elk karakter 400 00:18:01,590 --> 00:18:03,849 dat je zou kunnen hebben op uw toetsenbord. 401 00:18:03,849 --> 00:18:04,389 >> Okee. 402 00:18:04,389 --> 00:18:05,660 Laten we abstract verder. 403 00:18:05,660 --> 00:18:09,380 Als we niet willen gewoon dingen zoals cijfers en letters, 404 00:18:09,380 --> 00:18:11,420 we eigenlijk willen graphics implementeren. 405 00:18:11,420 --> 00:18:13,351 Nou, als je ooit hebt hoorde de afkorting RGB. 406 00:18:13,351 --> 00:18:15,559 Het is een beetje gedateerd, maar het is nog een beetje daar. 407 00:18:15,559 --> 00:18:17,380 RGB is rood, groen, blauw. 408 00:18:17,380 --> 00:18:19,380 En het is gewoon een systeem te zeggen, weet je wat, 409 00:18:19,380 --> 00:18:21,650 laten we gebruik maken drie sets van bits. 410 00:18:21,650 --> 00:18:25,280 Een set van 8 bits, een andere set van 8 bits, en een andere set van 8 bits. 411 00:18:25,280 --> 00:18:27,710 En laten we gebruiken die bits op te slaan hoeveel rode we 412 00:18:27,710 --> 00:18:31,430 willen op ons scherm, hoeveel groen willen we op ons scherm, 413 00:18:31,430 --> 00:18:34,070 en hoeveel blauwe willen we op ons scherm. 414 00:18:34,070 --> 00:18:37,860 En dit betekent gewoon dat als je hebben een lot-- een groot aantal voor rood, 415 00:18:37,860 --> 00:18:39,200 dat betekent geef me een veel rood. 416 00:18:39,200 --> 00:18:41,658 Als u een groot aantal voor groen, geef me een veel groen. 417 00:18:41,658 --> 00:18:44,660 En als je maar een klein beetje blauwe of een klein aantal, zoals 33, 418 00:18:44,660 --> 00:18:45,960 geef me een beetje blauw. 419 00:18:45,960 --> 00:18:49,720 En als je toevallig deze te combineren drie grootheden, zo te zeggen, 420 00:18:49,720 --> 00:18:53,160 je krijgt dit-- je nauwelijks kunt zien op de projector hier, maar dit duistere 421 00:18:53,160 --> 00:18:54,630 schaduw van geel of bruin. 422 00:18:54,630 --> 00:18:58,590 >> Maar dit wil zeggen, door deze patroon van 8 plus 8 plus plus 8-- 423 00:18:58,590 --> 00:19:01,710 dat patroon van 24 bits Zo zou een computer 424 00:19:01,710 --> 00:19:06,460 slaan die schaduw van geel in één kleine dot van een pixel op het scherm. 425 00:19:06,460 --> 00:19:10,570 Daarom hebben we gegaan van 0s en 1s naar decimaal nummers om letters van het alfabet. 426 00:19:10,570 --> 00:19:13,680 Of meer interessant, gekleurde stippen. 427 00:19:13,680 --> 00:19:16,200 >> Nou, wat natuurlijk komt dan de volgende stap? 428 00:19:16,200 --> 00:19:19,040 Nou, wat is een beeld dat je bekijk op Facebook of neem een ​​e-mail? 429 00:19:19,040 --> 00:19:20,172 Of iets dergelijks? 430 00:19:20,172 --> 00:19:22,130 Wat is de definitie technisch van een afbeelding? 431 00:19:22,130 --> 00:19:25,090 432 00:19:25,090 --> 00:19:27,710 Ja. 433 00:19:27,710 --> 00:19:31,270 Wat is een beeld bestaat uit als je ziet er echt dicht op je scherm? 434 00:19:31,270 --> 00:19:31,770 Ja. 435 00:19:31,770 --> 00:19:33,186 Het is gewoon een hele hoop pixels. 436 00:19:33,186 --> 00:19:35,220 In feite, als u uw laptop misschien later, 437 00:19:35,220 --> 00:19:37,180 en ziet er echt dicht bij het-- afhankelijk 438 00:19:37,180 --> 00:19:40,370 hoe duurder de laptop is en hoe hoog de kwaliteit het scherm is, 439 00:19:40,370 --> 00:19:43,480 je zou heel goed zien alle de kleine puntjes op het scherm. 440 00:19:43,480 --> 00:19:45,890 >> En die punten of pixels, wat betekent dat er 441 00:19:45,890 --> 00:19:49,810 24 bits die elke pixel in die foto die je ziet op Facebook, 442 00:19:49,810 --> 00:19:52,049 of dat je gewoon nam op je iPhone onlangs. 443 00:19:52,049 --> 00:19:54,090 En dus dat is hoe we om dingen zoals graphics. 444 00:19:54,090 --> 00:19:55,120 Nou, wat is een video? 445 00:19:55,120 --> 00:19:58,660 Een video is slechts een set van grafische vliegen door het scherm weer 446 00:19:58,660 --> 00:19:59,780 en opnieuw en opnieuw. 447 00:19:59,780 --> 00:20:04,080 En dus video's echt, zijn slechts patronen bits vertegenwoordigen roosters, rijen 448 00:20:04,080 --> 00:20:06,880 en kolommen stippen, vliegende beeld op het scherm door, 449 00:20:06,880 --> 00:20:09,240 na het beeld, als afbeelding, alias 450 00:20:09,240 --> 00:20:10,650 Bewegende beelden. 451 00:20:10,650 --> 00:20:12,340 Dus dat is het voor de in- en uitgangen. 452 00:20:12,340 --> 00:20:14,420 >> Alles wat we nu hebben, is een veronderstelling dat u 453 00:20:14,420 --> 00:20:17,190 Weet je wat, als we willen een computer informatie vertegenwoordigen, 454 00:20:17,190 --> 00:20:18,560 We hebben een systeem om dat te doen. 455 00:20:18,560 --> 00:20:20,780 We kunnen het met 0s en 1s aan het eind van de dag. 456 00:20:20,780 --> 00:20:23,160 Maar we kunnen abstract, dus om te spreken, op de top van die 457 00:20:23,160 --> 00:20:25,140 om zo meer te vertegenwoordigen Interessante dingen. 458 00:20:25,140 --> 00:20:28,790 En hier op uit in CS50 en in informatica meer in het algemeen, 459 00:20:28,790 --> 00:20:31,250 We staan ​​nu op de schouders van alle mensen die 460 00:20:31,250 --> 00:20:33,530 kwam voor ons die dat bedacht. 461 00:20:33,530 --> 00:20:38,170 En nu gewoon aannemen dat computers kan in- en uitgangen vertegenwoordigen. 462 00:20:38,170 --> 00:20:41,140 >> Maar laten we nu eigenlijk iets met hen te doen. 463 00:20:41,140 --> 00:20:44,850 Dus een algoritme is slechts een set instructies, stap voor stap, 464 00:20:44,850 --> 00:20:46,340 voor het oplossen van een probleem. 465 00:20:46,340 --> 00:20:48,730 En wat zou een dergelijk probleem. 466 00:20:48,730 --> 00:20:52,440 Dus dit is een oude school technologie, een telefoonboek. 467 00:20:52,440 --> 00:20:55,534 En de binnenkant van een telefoonboek is een hele hoop namen en nummers. 468 00:20:55,534 --> 00:20:57,700 En die namen zijn over het algemeen alfabetisch gesorteerd. 469 00:20:57,700 --> 00:21:01,310 >> Dus als ik wilde iemand in te vinden deze telefoon boek als Mike Smith, 470 00:21:01,310 --> 00:21:02,930 wat is een typisch menselijke gaan doen? 471 00:21:02,930 --> 00:21:06,000 Nou, je kon gewoon open it up, kijk naar de eerste pagina. 472 00:21:06,000 --> 00:21:07,390 Ik zie niet in Mike Smith. 473 00:21:07,390 --> 00:21:09,740 Draai naar de tweede pagina, Ik zie niet in Mike Smith. 474 00:21:09,740 --> 00:21:11,830 En gewoon blijven gaan en gaan. 475 00:21:11,830 --> 00:21:14,397 Is dit stapsgewijze aanpak correct? 476 00:21:14,397 --> 00:21:17,380 477 00:21:17,380 --> 00:21:18,310 Ja. 478 00:21:18,310 --> 00:21:20,080 Het is een beetje dom, rechts. 479 00:21:20,080 --> 00:21:21,646 Het is inefficiënt, rechts. 480 00:21:21,646 --> 00:21:24,520 Omdat het gaat om altijd te nemen Mike te krijgen, maar het is juist. 481 00:21:24,520 --> 00:21:26,620 Want als Mike is hier Ik zal hem wel te vinden. 482 00:21:26,620 --> 00:21:29,030 >> Dus wat is een iets meer redelijk persoon gaan doen? 483 00:21:29,030 --> 00:21:32,180 Ze kunnen nog steeds te openen aan de voorzijde, en misschien vliegen door het telefoonboek 484 00:21:32,180 --> 00:21:33,250 twee pagina's tegelijk. 485 00:21:33,250 --> 00:21:34,840 Twee, vier, zes, acht. 486 00:21:34,840 --> 00:21:36,830 Ik kan eigenlijk niet fysiek doen het erg goed. 487 00:21:36,830 --> 00:21:39,560 Maar in theorie, deze moet twee keer zo snel, twee pagina's tegelijk. 488 00:21:39,560 --> 00:21:41,152 Hierdoor algoritme correct? 489 00:21:41,152 --> 00:21:43,252 >> STUDENT: [ONVERSTAANBAAR] 490 00:21:43,252 --> 00:21:44,460 DAVID MALAN: Niet per se. 491 00:21:44,460 --> 00:21:44,960 Goed. 492 00:21:44,960 --> 00:21:46,112 Waarom dat addertje onder het gras? 493 00:21:46,112 --> 00:21:50,020 >> STUDENT: Omdat hij zou kunnen worden op één van de pagina's die je overslaan. 494 00:21:50,020 --> 00:21:50,770 DAVID MALAN: Yeah. 495 00:21:50,770 --> 00:21:52,260 Dus zelfs als ik dichter en dichter. 496 00:21:52,260 --> 00:21:56,150 Wat als hij gewoon per ongeluk, door het slechte geluk, ingeklemd tussen de twee pagina 497 00:21:56,150 --> 00:21:57,290 dat ik vliegen over? 498 00:21:57,290 --> 00:21:59,920 499 00:21:59,920 --> 00:22:01,730 Dus moeten we een oplossing voor dit. 500 00:22:01,730 --> 00:22:03,590 We moeten eigenlijk dan zeggen, wacht eens even, 501 00:22:03,590 --> 00:22:06,240 misschien als we te ver gaan, misschien als we druk op de T sectie, 502 00:22:06,240 --> 00:22:09,670 voor T komen na Smith, dan moeten we ten minste te verdubbelen ten minste één pagina terug. 503 00:22:09,670 --> 00:22:12,630 Dus opgelapt worden, maar er is een voorwaardelijke probleem daar. 504 00:22:12,630 --> 00:22:16,159 Dus het is twee keer zo snel, maar je misschien hebben om terug te verdubbelen maar een klein beetje. 505 00:22:16,159 --> 00:22:19,200 Maar niemand in zijn kamer, zelfs als u niet echt gebruik maken van de telefoon boeken meer, 506 00:22:19,200 --> 00:22:20,740 gaat om te beginnen bij het begin. 507 00:22:20,740 --> 00:22:23,317 Wat ga je doen op zoek naar Mike Smith? 508 00:22:23,317 --> 00:22:24,900 Je gaat ruwweg naar de S. 509 00:22:24,900 --> 00:22:26,820 Of als je niet echt de cheat sheet op het papier, 510 00:22:26,820 --> 00:22:28,365 je gaat op zijn minst te gaan ruwweg naar het midden. 511 00:22:28,365 --> 00:22:30,220 En zeker niet te de voorzijde van het boek. 512 00:22:30,220 --> 00:22:31,130 Je gaat naar beneden kijken. 513 00:22:31,130 --> 00:22:33,770 En mathematisch ben je waarschijnlijk ga naar de M sectie te zien, die 514 00:22:33,770 --> 00:22:34,890 is ongeveer in het midden. 515 00:22:34,890 --> 00:22:36,848 En dan zul je beseffen, wat waar is? 516 00:22:36,848 --> 00:22:37,968 Waar is Mike? 517 00:22:37,968 --> 00:22:39,170 >> STUDENT: [ONVERSTAANBAAR] 518 00:22:39,170 --> 00:22:39,920 DAVID MALAN: Yeah. 519 00:22:39,920 --> 00:22:41,530 Dus hij is meer dan aan deze kant. 520 00:22:41,530 --> 00:22:42,710 En dus wat kan je doen? 521 00:22:42,710 --> 00:22:48,870 Nou, zowel letterlijk en figuurlijk kunt u het probleem in tweeën scheuren keer? 522 00:22:48,870 --> 00:22:54,260 En dan te weten dat je kunt gooien Deze helft van het probleem weg. 523 00:22:54,260 --> 00:22:58,170 En nu zijn we vertrokken met fundamenteel hetzelfde probleem, maar het is half zo groot. 524 00:22:58,170 --> 00:22:59,920 En nu wat is het set instructies? 525 00:22:59,920 --> 00:23:01,753 Wat is het algoritme voor het vinden Mike Smith? 526 00:23:01,753 --> 00:23:03,030 Het is precies hetzelfde. 527 00:23:03,030 --> 00:23:05,750 >> Nu gebeurt dit om de M te zijn sectie en dit is de Z sectie, 528 00:23:05,750 --> 00:23:08,650 maar de fundamentele formule is nog steeds hetzelfde. 529 00:23:08,650 --> 00:23:10,800 Ga ruwweg naar het midden, kijk naar beneden, oh, verdorie. 530 00:23:10,800 --> 00:23:13,160 Nu ben ik in de T-sectie, Ik ben te ver gegaan. 531 00:23:13,160 --> 00:23:16,640 Maar ook hier kun je gelden diezelfde logica. 532 00:23:16,640 --> 00:23:19,189 Gooi de helft van het probleem weg en nu zijn we 533 00:23:19,189 --> 00:23:21,230 achter met een probleem dat een kwart van de grootte. 534 00:23:21,230 --> 00:23:28,140 En we kunnen herhalen, en we kunnen herhalen, en we kunnen herhalen totdat theoretisch 535 00:23:28,140 --> 00:23:32,190 er is maar één pagina links op Mike die ofwel is of niet. 536 00:23:32,190 --> 00:23:34,014 >> Dus wat is er zo krachtig over dit idee? 537 00:23:34,014 --> 00:23:35,680 Ik bedoel immers, het is vrij intuïtief. 538 00:23:35,680 --> 00:23:37,390 Niemand gaat om te beginnen bij de het begin van het telefoonboek 539 00:23:37,390 --> 00:23:39,320 en flip 1.000 pagina's Mike Smith te vinden. 540 00:23:39,320 --> 00:23:42,319 Bijna iedereen in deze kamer gaat ruwweg dat soort algoritme doen 541 00:23:42,319 --> 00:23:43,220 met uitzondering van de scheuren. 542 00:23:43,220 --> 00:23:45,480 >> En waarom hebben we dat doen? 543 00:23:45,480 --> 00:23:47,810 Nou, rekening houden met de efficiency. 544 00:23:47,810 --> 00:23:51,500 Bedenk hoe veel beter dit algoritme was door het af te breken 545 00:23:51,500 --> 00:23:52,890 in zijn samenstellende delen. 546 00:23:52,890 --> 00:23:53,980 Dus wat heb ik eerst doen? 547 00:23:53,980 --> 00:23:55,389 Ik pakte het telefoonboek. 548 00:23:55,389 --> 00:23:57,180 En een computer wetenschapper, en programmeur 549 00:23:57,180 --> 00:24:00,090 meer in het algemeen blijkt, gaat om te beginnen met het tellen van alles bij 0. 550 00:24:00,090 --> 00:24:00,610 >> Waarom? 551 00:24:00,610 --> 00:24:03,240 Nou, het is een beetje vreemd dat wij mensen tellen, in het algemeen, 552 00:24:03,240 --> 00:24:04,400 vanaf één. 553 00:24:04,400 --> 00:24:08,110 Want wat is het kleinste getal We kunnen duidelijk vertegenwoordigen op basis 554 00:24:08,110 --> 00:24:09,930 zelfs op onze oude lagere school wiskunde? 555 00:24:09,930 --> 00:24:12,400 Nou, het is 0, of het is in decimale of binaire. 556 00:24:12,400 --> 00:24:14,900 En dus zie je in de wereld van computers en programmering, 557 00:24:14,900 --> 00:24:17,620 in het bijzonder, we beginnen het tellen van alles, van 0. 558 00:24:17,620 --> 00:24:19,690 >> Dus pakte ik het telefoonboek stap 0. 559 00:24:19,690 --> 00:24:21,924 Ik ga om te openen voor de midden in het telefoonboek. 560 00:24:21,924 --> 00:24:23,840 En dat is inderdaad een uitdrukking van wat ik deed. 561 00:24:23,840 --> 00:24:25,900 En dan stap twee was blik op de namen. 562 00:24:25,900 --> 00:24:29,110 Stap drie is een beetje verschillende conceptueel. 563 00:24:29,110 --> 00:24:30,600 Ik vraag mezelf een vraag. 564 00:24:30,600 --> 00:24:33,610 Als Smith is een van de namen, Ik ga een beslissing te nemen. 565 00:24:33,610 --> 00:24:36,550 Als hij onder de namen, dan ga ik naar Mike bellen. 566 00:24:36,550 --> 00:24:39,590 En ik ga om een ​​beslissing te nemen gebaseerd op dat stuk van informatie. 567 00:24:39,590 --> 00:24:44,100 >> Indien niet, indien Smith eerder in het boek aan de linkerkant, 568 00:24:44,100 --> 00:24:48,200 Ik ga om te openen naar het midden van de linkerhelft van het boek. 569 00:24:48,200 --> 00:24:51,674 En dan is hier de slimheid, Ik ga terug naar stap twee. 570 00:24:51,674 --> 00:24:53,590 Ik ga voor het sorteren van staan ​​op mijn eigen schouders 571 00:24:53,590 --> 00:24:55,110 en herhaalt het verleden werk dat ik deed. 572 00:24:55,110 --> 00:24:58,062 Maar het werk wat ik nog heb is minder en minder en minder. 573 00:24:58,062 --> 00:24:59,270 Maar het is nog steeds aan het werk. 574 00:24:59,270 --> 00:25:02,110 Maar als Mike daarentegen later in het boek aan de rechterkant, 575 00:25:02,110 --> 00:25:04,980 Ik ga om te openen naar het midden van de rechterhelft van het boek, 576 00:25:04,980 --> 00:25:07,240 ga dan terug naar stap twee. 577 00:25:07,240 --> 00:25:09,330 >> Maar er is eigenlijk een vierde scenario. 578 00:25:09,330 --> 00:25:13,336 Mike's ofwel hier, of hier, of hier, of-- 579 00:25:13,336 --> 00:25:14,152 >> STUDENT: Niet daar. 580 00:25:14,152 --> 00:25:15,110 DAVID MALAN: er niet. 581 00:25:15,110 --> 00:25:18,580 En inderdaad, als we niet anticiperen deze vierde en laatste scenario 582 00:25:18,580 --> 00:25:21,510 ons programma zou kunnen zijn buggy of gebrekkig op een bepaalde manier. 583 00:25:21,510 --> 00:25:25,020 Else, stoppen in het geval dat we hebben helemaal niet gevonden Mike. 584 00:25:25,020 --> 00:25:27,720 En inderdaad, als je ooit opgevallen uw computer hangen, of alle 585 00:25:27,720 --> 00:25:30,490 plotseling woord of een andere programma wordt afgesloten alleen onverwacht, 586 00:25:30,490 --> 00:25:32,614 en soms thee error boodschap is letterlijk dat. 587 00:25:32,614 --> 00:25:34,070 Dit programma onverwacht afgesloten. 588 00:25:34,070 --> 00:25:35,570 Het kan voor een aantal redenen. 589 00:25:35,570 --> 00:25:38,120 Maar soms is het iets eenvoudigs als dit. 590 00:25:38,120 --> 00:25:40,440 De menselijke programmer die schreef dat software 591 00:25:40,440 --> 00:25:43,610 besefte niet dat, oh, er is een weer wat daadwerkelijk kan gebeuren. 592 00:25:43,610 --> 00:25:46,480 En als je geen code te schrijven aan vast te leggen dat de vierde scenario, 593 00:25:46,480 --> 00:25:51,342 het is inderdaad soms onverwacht wat de computer daadwerkelijk zou kunnen doen. 594 00:25:51,342 --> 00:25:53,050 Laten we nu eens roepen een Enkele van deze dingen. 595 00:25:53,050 --> 00:25:55,465 Dus in geel hier, ik hebben gewezen op termen 596 00:25:55,465 --> 00:25:57,590 opdat wij zijn gewoon naar functies aanroepen. 597 00:25:57,590 --> 00:26:00,700 Functies in de wereld van programmering zijn net als acties, 598 00:26:00,700 --> 00:26:01,850 uitspraken van de acties. 599 00:26:01,850 --> 00:26:05,720 Dus pick-up, open, kijk bij, bel, open, geopend, af te sluiten. 600 00:26:05,720 --> 00:26:09,350 Dat is een functie, een procedure, een actie, een aantal synoniemen 601 00:26:09,350 --> 00:26:10,184 zou eveneens werken. 602 00:26:10,184 --> 00:26:11,850 Nu, wat zijn deze dingen nu in het geel? 603 00:26:11,850 --> 00:26:14,210 Indien anders, als anders, als anders, deze zijn wat 604 00:26:14,210 --> 00:26:16,500 we gaan om te bellen omstandigheden in de programmering, 605 00:26:16,500 --> 00:26:19,270 of takken, besluit wijst, als je wil. 606 00:26:19,270 --> 00:26:22,759 Maar hoe weet je welke vork in de weg te nemen, om zo te zeggen? 607 00:26:22,759 --> 00:26:24,550 We moeten benadrukken de termen rechts 608 00:26:24,550 --> 00:26:27,570 zijn, die deze Ja geen vragen. 609 00:26:27,570 --> 00:26:29,040 Deze ware valse vragen. 610 00:26:29,040 --> 00:26:30,880 Smith onder de namen? 611 00:26:30,880 --> 00:26:32,190 Smith eerder in het boek? 612 00:26:32,190 --> 00:26:33,260 Smith later in het boek? 613 00:26:33,260 --> 00:26:35,490 Dit zijn vragen om waarop een ja of nee, 614 00:26:35,490 --> 00:26:42,110 of equivalent waar of onwaar, of equivalent, één of nul antwoord. 615 00:26:42,110 --> 00:26:44,260 >> En ondertussen is er slechts een laatste stuk. 616 00:26:44,260 --> 00:26:45,940 Dit heeft hier wat voor effect? 617 00:26:45,940 --> 00:26:48,230 Of je programmeert eerder, hoe zou u 618 00:26:48,230 --> 00:26:51,030 beschrijven wat stap zeven en 10 aan het doen zijn? 619 00:26:51,030 --> 00:26:54,110 620 00:26:54,110 --> 00:26:55,027 Wat zei je? 621 00:26:55,027 --> 00:26:56,110 STUDENT: Een recursieve stap. 622 00:26:56,110 --> 00:26:56,980 DAVID MALAN: Een recursieve stap. 623 00:26:56,980 --> 00:26:58,000 Ja wezen. 624 00:26:58,000 --> 00:27:00,384 Het is technisch iteratieve hier als je bekend bent. 625 00:27:00,384 --> 00:27:01,550 Maar we zullen hierop terugkomen. 626 00:27:01,550 --> 00:27:03,930 Maar het is iets duidelijk te doen. 627 00:27:03,930 --> 00:27:06,370 Nogmaals, het is het induceren van een cyclus, een lus, rechts. 628 00:27:06,370 --> 00:27:08,770 Je bent letterlijk gaat terug naar sommige eerdere stap. 629 00:27:08,770 --> 00:27:12,592 En zo ja, dit gaat uitvoering van een soort cyclus. 630 00:27:12,592 --> 00:27:15,050 Maar je bent niet van plan om vastzitten in deze eindeloos, rechts. 631 00:27:15,050 --> 00:27:19,290 Want als je constant te controleren is Mike hier, of naar links of niet hier, 632 00:27:19,290 --> 00:27:21,360 Uiteindelijk hij niet van plan om daar te zijn. 633 00:27:21,360 --> 00:27:24,590 En je kunt gewoon stoppen helemaal volgens die laatste regel. 634 00:27:24,590 --> 00:27:25,834 >> Dus dat is het voor de woordenschat. 635 00:27:25,834 --> 00:27:28,250 En dit was wat we zouden over het algemeen noemen pseudo-code. 636 00:27:28,250 --> 00:27:29,570 Het is niet een echte taal. 637 00:27:29,570 --> 00:27:32,405 Het is gewoon heel beknopt Engels, maar communiceert het punt. 638 00:27:32,405 --> 00:27:33,780 Er is geen formele structuur hier. 639 00:27:33,780 --> 00:27:35,738 Je gebruikt gewoon dat het paar woorden, maar zo duidelijk woorden 640 00:27:35,738 --> 00:27:37,870 als je kunt om uw idee te communiceren. 641 00:27:37,870 --> 00:27:40,580 >> Nu hoe goed is dat algoritme en hoeveel beter is het? 642 00:27:40,580 --> 00:27:43,570 Nou, we hoeven niet te krijgen in de specifieke getallen of iets 643 00:27:43,570 --> 00:27:44,069 zoals dat. 644 00:27:44,069 --> 00:27:46,300 Maar we kunnen kijken naar de vorm van deze oplossing. 645 00:27:46,300 --> 00:27:50,194 Dus als we gewoon te trekken sommige xy plot hier op de horizontale as in. 646 00:27:50,194 --> 00:27:51,860 Laten we gewoon bellen met de omvang van het probleem. 647 00:27:51,860 --> 00:27:55,540 En een computer wetenschapper zou doen gebruiken meestal n als de variabele hier. 648 00:27:55,540 --> 00:27:59,690 Dus n pagina's of n mensen in de kamer, of wat het ook is dat u probeert te tellen. 649 00:27:59,690 --> 00:28:03,039 >> En vervolgens op de verticale as aan de linker, zou dat de tijd om op te lossen. 650 00:28:03,039 --> 00:28:05,330 Dus hoeveel seconden het doet Breng me naar Mike Smith vinden? 651 00:28:05,330 --> 00:28:06,621 Of hoeveel stappen duurt het? 652 00:28:06,621 --> 00:28:08,100 Hoeveel pagina beurten duurt het? 653 00:28:08,100 --> 00:28:11,370 Dus dat is hoeveel het kost me in de tijd om een ​​probleem op te lossen. 654 00:28:11,370 --> 00:28:15,030 En we kunnen trekken de eerste algoritmen helling, zo u wilt, 655 00:28:15,030 --> 00:28:16,910 aangezien alleen deze rechte lijn in het rood. 656 00:28:16,910 --> 00:28:18,450 En ik zal het n noemen. 657 00:28:18,450 --> 00:28:19,117 >> Waarom n? 658 00:28:19,117 --> 00:28:20,950 Waarom is het alleen deze ene een relatie? 659 00:28:20,950 --> 00:28:22,700 Nou, als Verizon of wat telefoonbedrijf 660 00:28:22,700 --> 00:28:25,130 voegt nog een pagina aan het telefoonboek volgend jaar, 661 00:28:25,130 --> 00:28:28,370 dat zou Mike één duwen stap dichter bij het einde, 662 00:28:28,370 --> 00:28:29,950 afhankelijk van waar de pagina is. 663 00:28:29,950 --> 00:28:32,380 En dus het effect zou wel eens om een ​​meer tweede voegen. 664 00:28:32,380 --> 00:28:33,520 Of nog een pagina aan de beurt. 665 00:28:33,520 --> 00:28:34,970 Een 12:59 verhouding. 666 00:28:34,970 --> 00:28:37,410 >> Daarentegen is de tweede algoritme. 667 00:28:37,410 --> 00:28:41,406 Hoeveel sneller was dat intuïtief? 668 00:28:41,406 --> 00:28:42,780 Waar ik ging twee pagina's tegelijk? 669 00:28:42,780 --> 00:28:43,664 Ja. 670 00:28:43,664 --> 00:28:44,497 >> STUDENT: [ONVERSTAANBAAR] 671 00:28:44,497 --> 00:28:47,255 672 00:28:47,255 --> 00:28:48,080 >> DAVID MALAN: Yeah. 673 00:28:48,080 --> 00:28:49,220 Dus het gaat twee keer zo snel te zijn. 674 00:28:49,220 --> 00:28:51,344 En we zouden hier te tekenen dat Afhankelijk van de schaal. 675 00:28:51,344 --> 00:28:54,220 Het is nog steeds een rechte lijn, maar lager dan de rode lijn. 676 00:28:54,220 --> 00:28:56,410 Omdat gedurende een aantal bladzijden, al duurt 677 00:28:56,410 --> 00:28:58,360 je zoveel stappen het eerste algoritme, 678 00:28:58,360 --> 00:29:00,570 het zal je de helft te nemen zo vele stappen met de tweede. 679 00:29:00,570 --> 00:29:02,770 En dus is de gele lijn een beschrijving van de tweede algoritme 680 00:29:02,770 --> 00:29:03,990 is gewoon gaat worden eronder. 681 00:29:03,990 --> 00:29:07,250 >> Maar wat is echt krachtig is om na te denken over de derde en laatste, 682 00:29:07,250 --> 00:29:10,480 en verbazingwekkend meest intuïtieve algoritme, dat deze vorm heeft. 683 00:29:10,480 --> 00:29:12,720 Technisch gezien zouden we noemen dit een logaritmische kromme. 684 00:29:12,720 --> 00:29:14,309 Log base 2 van n in dit geval. 685 00:29:14,309 --> 00:29:15,600 Maar dat maakt niet echt uit. 686 00:29:15,600 --> 00:29:19,140 Waar het om gaat is echt de fundamenteel andere vorm die het heeft. 687 00:29:19,140 --> 00:29:22,810 En u kunt overwegen hoe veel kortere deze lijn echt 688 00:29:22,810 --> 00:29:24,620 is op de lange termijn. 689 00:29:24,620 --> 00:29:25,870 Het voortdurend toe. 690 00:29:25,870 --> 00:29:27,620 Het is niet perfect plat uit. 691 00:29:27,620 --> 00:29:34,030 Maar het groeit nog zo veel langzamer als het probleem wordt groter en groter. 692 00:29:34,030 --> 00:29:36,710 En kunt u denken aan het op deze way-- als Verizon niet alleen 693 00:29:36,710 --> 00:29:40,410 voeg een pagina volgend jaar, maar doubles het aantal pagina's in het telefoonboek, 694 00:29:40,410 --> 00:29:42,740 de eerste algoritme zou neem twee keer zoveel stappen. 695 00:29:42,740 --> 00:29:45,360 Als het 1000 pagina's dit jaar, 2000 pagina's volgend jaar, 696 00:29:45,360 --> 00:29:47,180 Mike zou kunnen dat veel verder weg zijn. 697 00:29:47,180 --> 00:29:49,380 Het is dus 1.000 extra stappen om hem te vinden. 698 00:29:49,380 --> 00:29:51,610 De tweede algoritme misschien maar 500 meer zijn 699 00:29:51,610 --> 00:29:55,490 stappen om hem omdat terug te vinden, Ik vlieg er doorheen twee tegelijk. 700 00:29:55,490 --> 00:29:56,950 >> Maar hoe zit het met de derde algoritme? 701 00:29:56,950 --> 00:29:59,010 Als Verizon verdubbelt de grootte van het telefoonboek 702 00:29:59,010 --> 00:30:02,620 volgend jaar van 1000 tot 2000 bladzijden, hoeveel trappen 703 00:30:02,620 --> 00:30:05,540 is mijn derde algoritme gaat duren? 704 00:30:05,540 --> 00:30:06,630 Ja, het is slechts een. 705 00:30:06,630 --> 00:30:08,600 En dat is het krachtige idee. 706 00:30:08,600 --> 00:30:12,780 U kunt een pagina beet 1000 te nemen van dat probleem in een keer. 707 00:30:12,780 --> 00:30:14,510 En nu als je bedenkt een domme scenario, 708 00:30:14,510 --> 00:30:17,320 maar het soort spreekt tot de kracht van dit soort intuition-- 709 00:30:17,320 --> 00:30:21,494 als een telefoonboek had, net als, 4000000000 pagina's, voelt als een heel groot probleem. 710 00:30:21,494 --> 00:30:23,410 En inderdaad, het zou kunnen neem me 4000000000 pagina 711 00:30:23,410 --> 00:30:26,549 wendt zich tot Mike Smith in die vinden bij het eerste algoritme. 712 00:30:26,549 --> 00:30:28,840 Maar hoeveel stappen zou het in het derde algoritme 713 00:30:28,840 --> 00:30:31,585 Mike vinden tussen vier miljard stukjes papier? 714 00:30:31,585 --> 00:30:34,865 715 00:30:34,865 --> 00:30:36,240 Dus 4000000000 scheur je in de helft. 716 00:30:36,240 --> 00:30:37,220 Je krijgt twee miljard euro. 717 00:30:37,220 --> 00:30:42,810 Dan een miljard, dan 500 miljoen, 250 miljoen, 125 million-- maar het 718 00:30:42,810 --> 00:30:44,780 voelt als dit is gaat een tijdje duren. 719 00:30:44,780 --> 00:30:47,340 Ik nodig zou kunnen hebben 32 vingers te tellen zo hoog. 720 00:30:47,340 --> 00:30:51,340 Maar het is inderdaad zo weinig als pagina tranen 32. 721 00:30:51,340 --> 00:30:54,060 U kunt gaan van vier miljard naar pagina scheidslijn één 722 00:30:54,060 --> 00:30:57,030 het oorspronkelijke aantal bladzijden helft 32 tijden 723 00:30:57,030 --> 00:30:59,290 totdat je bent vertrokken met alleen dat enkele pagina. 724 00:30:59,290 --> 00:31:01,320 >> Nu, natuurlijk, ik ben hier bedriegen. 725 00:31:01,320 --> 00:31:06,470 Het is niet dat we net dat soort domme geheel bij de eerste twee 726 00:31:06,470 --> 00:31:07,470 algoritmen. 727 00:31:07,470 --> 00:31:11,500 Ik ben bedriegen in zekere zin, of echt ik gebruik te maken van een veronderstelling. 728 00:31:11,500 --> 00:31:15,610 Wat was waar over het telefoonboek in zijn oorspronkelijke vorm die toegelaten 729 00:31:15,610 --> 00:31:17,450 me aan die derde algoritme zelfs gebruiken? 730 00:31:17,450 --> 00:31:18,110 Ja? 731 00:31:18,110 --> 00:31:19,360 PUBLIEK: Het was gealfabetiseerd. 732 00:31:19,360 --> 00:31:21,130 DAVID MALAN: Het was gealfabetiseerd, toch? 733 00:31:21,130 --> 00:31:23,500 Als het waren gewoon in willekeurige orde, dit is een verspilling 734 00:31:23,500 --> 00:31:24,880 van de tijd, dit hele gesprek. 735 00:31:24,880 --> 00:31:27,500 Ik moet bij elke look pagina als het in willekeurige volgorde 736 00:31:27,500 --> 00:31:30,350 Mike Smith te vinden voordat ik kunnen concluderen dat hij daar of niet. 737 00:31:30,350 --> 00:31:32,880 En dus is de hoek we hebben gesneden is dat ik 738 00:31:32,880 --> 00:31:35,752 veronderstelde dat iemand anders in dit geval deed het werk voor mij. 739 00:31:35,752 --> 00:31:38,460 En zodat uiteindelijk uitnodigt de vraag, goed, wacht eens even. 740 00:31:38,460 --> 00:31:41,284 Hoe ga je sorteren 1000 pagina's van namen en nummers? 741 00:31:41,284 --> 00:31:43,200 Dat is eigenlijk een ander probleem, wat 742 00:31:43,200 --> 00:31:44,574 we zullen terugkomen in de toekomst. 743 00:31:44,574 --> 00:31:48,130 Maar als je erover nadenkt websites zoals Facebook en Google voor Gmail 744 00:31:48,130 --> 00:31:50,450 en dingen zoals Google's eigen zoektocht indexen, 745 00:31:50,450 --> 00:31:53,800 als je miljoenen of miljarden stukjes data worden deze dagen opgeslagen, 746 00:31:53,800 --> 00:31:56,660 searching-- en niet te vergeten sorteren die problems-- 747 00:31:56,660 --> 00:31:59,450 is uiteindelijk een uitdaging op zich. 748 00:31:59,450 --> 00:32:02,250 Inderdaad, deze dan gewoon een van die uitdagingen 749 00:32:02,250 --> 00:32:03,460 dat we zullen kijken naar. 750 00:32:03,460 --> 00:32:05,590 >> Dus nu laten we eens een moment en neem een ​​kijkje op CS50 751 00:32:05,590 --> 00:32:09,082 zelf en geven u een gevoel van wat in petto dit semester. 752 00:32:09,082 --> 00:32:11,540 Sterker nog, als je nog niet hebt, heb een kijkje nemen op deze URL. 753 00:32:11,540 --> 00:32:13,880 En als Patrick gezinspeeld aan, dit jaar zijn we 754 00:32:13,880 --> 00:32:17,130 het maken van een aanzienlijke investering alle hoe meer ter ondersteuning van de cursus 755 00:32:17,130 --> 00:32:20,170 structuur in termen van de TA en de CA's, kantooruren, 756 00:32:20,170 --> 00:32:23,520 secties beschikbaarheid en digitaal materiaal online, als goed. 757 00:32:23,520 --> 00:32:27,489 Sterker nog, in termen van de cursus lezing, we zijn hier vandaag. 758 00:32:27,489 --> 00:32:29,780 En de verwachtingen dit jaar officieel van de cursus 759 00:32:29,780 --> 00:32:32,370 zijn bij te wonen tot vandaag, de cursus laatste college en een cursus 760 00:32:32,370 --> 00:32:35,161 ongeveer in het midden van het semester bij elke lezing in tussen 761 00:32:35,161 --> 00:32:37,280 algemeen beschikbaar gesteld op een vrijdagmiddag 762 00:32:37,280 --> 00:32:40,240 online, zowel voor de Yale studenten en Harvard studenten dit jaar. 763 00:32:40,240 --> 00:32:42,090 Inderdaad, een van de fundamentele veranderingen is 764 00:32:42,090 --> 00:32:44,310 dat we bij de vaststelling van Harvard een paradigma zeer 765 00:32:44,310 --> 00:32:46,570 zoals wij deden hier afgelopen jaar en nu dit jaar, 766 00:32:46,570 --> 00:32:50,300 zodat op dezelfde manier, we nog steeds de meeste film lezingen van de cursus in Cambridge 767 00:32:50,300 --> 00:32:52,900 maar maken ze eerder beschikbaar dan we in het verleden 768 00:32:52,900 --> 00:32:55,540 zodat degenen onder je-- als je wil bijvoorbeeld, 769 00:32:55,540 --> 00:32:58,400 krijgen een voorsprong op materialen op de het eerste weekend vrij 770 00:32:58,400 --> 00:33:02,000 dan het tweede weekend, moet je toegang tot deze soorten materialen, 771 00:33:02,000 --> 00:33:06,561 doorzoekbaar, integreerbare, hyperlinkable naar gerelateerde middelen alle eerder. 772 00:33:06,561 --> 00:33:09,560 In termen van de onderwerpen, om u te geven een gevoel van trajectory-- de cursus 773 00:33:09,560 --> 00:33:12,365 en sommige hiervan zou kunnen zijn voor jargon nu, maar niet voor lang, wees gerust. 774 00:33:12,365 --> 00:33:15,010 We beginnen vandaag, uiteindelijk, met kijken naar een programma 775 00:33:15,010 --> 00:33:16,260 taal genaamd Scratch. 776 00:33:16,260 --> 00:33:19,380 We zullen daarna de overgang volgende week iets genaamd C 777 00:33:19,380 --> 00:33:22,140 en vervolgens kijken naar andere gebouwen blokken voor het oplossen van problemen, 778 00:33:22,140 --> 00:33:26,230 dingen genoemd arrays en algoritmen, hoe we het geheugen in ons voordeel 779 00:33:26,230 --> 00:33:28,326 en nadelen, en dingen zoals data structuren, 780 00:33:28,326 --> 00:33:31,200 en vervolgens in de richting van de staart van de de klas kijken machine learning 781 00:33:31,200 --> 00:33:33,410 en op zoek naar een ander taal genaamd Python, 782 00:33:33,410 --> 00:33:37,460 hoe het internet werkt, hoe het internet meer over het algemeen werkt, protocollen zoals HTTP, 783 00:33:37,460 --> 00:33:40,950 talen voor databases zoals SQL, JavaScript voor het web, 784 00:33:40,950 --> 00:33:43,000 en uiteindelijk koppelverkoop al deze verzoeken tegelijk. 785 00:33:43,000 --> 00:33:44,708 >> En zo ja, in de het einde van de dag, u 786 00:33:44,708 --> 00:33:50,250 zal niet leren in deze klasse Scratch of C of Python of SQL of JavaScript. 787 00:33:50,250 --> 00:33:53,560 Je zal in plaats daarvan meer in het algemeen te leren informatica en de fundamenten 788 00:33:53,560 --> 00:33:55,790 daarvan, en u zult leren hoe te programmeren 789 00:33:55,790 --> 00:33:58,800 in een aantal van deze talen langs de weg. 790 00:33:58,800 --> 00:34:00,970 Dus inderdaad een van de doelen van de cursus in het einde 791 00:34:00,970 --> 00:34:04,160 is om alle van de cursus af te nemen zijwieltjes door die laatste weken 792 00:34:04,160 --> 00:34:06,710 zodat na dit, kunt u terug naar je eigen fields-- 793 00:34:06,710 --> 00:34:08,510 of dat nu wel of niet met een computer science 794 00:34:08,510 --> 00:34:12,290 of engineering, in de natuurlijke wetenschappen, kunst, geesteswetenschappen of beyond-- 795 00:34:12,290 --> 00:34:14,720 en brengen sommige van deze ideeën cursus en dit veld 796 00:34:14,720 --> 00:34:17,400 ideeën en praktische vaardigheden om uw eigen domein 797 00:34:17,400 --> 00:34:19,480 om problemen daarin op te lossen. 798 00:34:19,480 --> 00:34:22,990 >> Wat we hier zullen doen ondertussen in de meeste donderdag na vandaag 799 00:34:22,990 --> 00:34:26,160 is met de hoofden van de cursus leidende wat wij walkthroughs zullen noemen 800 00:34:26,160 --> 00:34:27,620 van de cursus probleem sets. 801 00:34:27,620 --> 00:34:29,610 Dus elke week toen we hebben een probleem te stellen, zullen we 802 00:34:29,610 --> 00:34:32,900 te lopen door op een locatie als deze uitdagingen van de cursus, 803 00:34:32,900 --> 00:34:35,582 biedt u een aantal tips en trucs en ontwerptechnieken. 804 00:34:35,582 --> 00:34:37,540 Maar als je niet in staat bent die persoonlijk maken, 805 00:34:37,540 --> 00:34:39,760 realiseren diezelfde middelen zullen worden ingebed 806 00:34:39,760 --> 00:34:41,590 door een van de cursus onderwijsassistenten 807 00:34:41,590 --> 00:34:43,860 het probleem stelt zich, ook. 808 00:34:43,860 --> 00:34:47,124 >> Het probleem stelt dit jaar, in tegenstelling tot Vorig jaar, op basis van feedback, 809 00:34:47,124 --> 00:34:48,540 zal nog steeds worden vrijgegeven op vrijdag. 810 00:34:48,540 --> 00:34:51,310 Maar in plaats van te wijten de daaropvolgende vrijdag, 811 00:34:51,310 --> 00:34:55,079 geeft u daarmee het geven van slechts zeven dagen, zal effectief te wijten 10 dagen later. 812 00:34:55,079 --> 00:34:57,620 En inderdaad, dit betekent dat ze zullen overlappen een weekend. 813 00:34:57,620 --> 00:34:59,369 Maar we hopen dit jaar vooral deze zal 814 00:34:59,369 --> 00:35:02,320 studenten in staat om beter tegemoet te komen eb en vloed in hun schema, 815 00:35:02,320 --> 00:35:05,040 of het nu academici of extracurriculars of atletiek 816 00:35:05,040 --> 00:35:06,280 of midterm seizoen. 817 00:35:06,280 --> 00:35:10,060 U kunt ofwel front-load of back-load uw week gericht op CS50 gebaseerde 818 00:35:10,060 --> 00:35:12,400 op de werkelijke studielast van uw eigen week. 819 00:35:12,400 --> 00:35:14,990 >> Het probleem stelt zich zal een aantal talen te dekken, 820 00:35:14,990 --> 00:35:17,990 hoewel we zullen richten voornamelijk vroeg op C 821 00:35:17,990 --> 00:35:23,040 voordat we daarna richten op hoger niveau, meer web-centric talen. 822 00:35:23,040 --> 00:35:25,970 En dan een paar veelgestelde vragen hier-- moet je een klasse als CS50 nemen 823 00:35:25,970 --> 00:35:26,900 als een eerste-jaar? 824 00:35:26,900 --> 00:35:27,970 Dus absoluut. 825 00:35:27,970 --> 00:35:30,470 En inderdaad, het is niet noodzakelijkerwijs iets 826 00:35:30,470 --> 00:35:34,440 je moet uitstellen totdat je knippen je tanden op andere soorten klassen. 827 00:35:34,440 --> 00:35:36,290 Maar in plaats van, overwegen dat voor veel studenten, 828 00:35:36,290 --> 00:35:39,040 waaronder ikzelf terug in de dag, Dit is een zeer onbekend veld, 829 00:35:39,040 --> 00:35:40,997 vooral als je nooit duurde een AP CSA 830 00:35:40,997 --> 00:35:42,580 of iets dergelijks op de middelbare school. 831 00:35:42,580 --> 00:35:44,705 Maar beseffen dat vroeg op, of het nu deze cursus 832 00:35:44,705 --> 00:35:47,900 of een andere inleidende cursus, Nu is inderdaad de beste tijd, 833 00:35:47,900 --> 00:35:52,082 Ik denk dat, om een ​​aantal nieuwe weg te vinden of een aantal nieuwe academisch belang, als goed. 834 00:35:52,082 --> 00:35:55,040 En vervolgens het nemen met andere courses-- dus een van de belangrijkste verschillen hier 835 00:35:55,040 --> 00:35:57,906 versus Harvard is dat we alleen neem vier cursussen per semester 836 00:35:57,906 --> 00:35:59,030 aan de Harvard om wat voor reden. 837 00:35:59,030 --> 00:36:01,494 En jullie eigenlijk te trekken off ongeveer 36 cursussen in totaal 838 00:36:01,494 --> 00:36:04,410 in de loop van vier jaar, Dit betekent meestal vier of vijf 839 00:36:04,410 --> 00:36:05,040 klassen. 840 00:36:05,040 --> 00:36:08,367 En ik denk dat het heel eerlijk om te zeggen en wijzen CS50, door het ontwerp, is 841 00:36:08,367 --> 00:36:10,700 waarschijnlijk niet het type van de klasse dat moet je meestal 842 00:36:10,700 --> 00:36:13,680 nemen met vier andere cursussen voor een totaal van vijf 843 00:36:13,680 --> 00:36:16,249 omdat psets zijn door ontwerpen vrij intensief. 844 00:36:16,249 --> 00:36:18,040 Sterker nog, ook ik geleerd dit terug in de dag. 845 00:36:18,040 --> 00:36:21,110 Ik zou het niet beschrijven CS50 en informatica, programmering 846 00:36:21,110 --> 00:36:24,477 zoals zo veel hard als het slechts tijdrovend. 847 00:36:24,477 --> 00:36:26,560 Het is niet het soort ding waarbij na het diner, u 848 00:36:26,560 --> 00:36:28,310 kan teruggaan naar uw dorm room, ga zitten, en start 849 00:36:28,310 --> 00:36:29,710 gericht op de PSET denken, oke, 850 00:36:29,710 --> 00:36:31,340 Ik ga bang this out vanavond en dan bewegen 851 00:36:31,340 --> 00:36:33,000 Op naar mijn volgende onderwerp de volgende dag. 852 00:36:33,000 --> 00:36:34,450 Soms heb je gewoon op een muur. 853 00:36:34,450 --> 00:36:35,690 Je hebt bugs in uw code. 854 00:36:35,690 --> 00:36:37,900 Je hoeft niet per se weten hoe je een probleem op te lossen. 855 00:36:37,900 --> 00:36:41,670 En een van de belangrijkste kenmerken van programmeren voor mezelf tot op de dag 856 00:36:41,670 --> 00:36:44,480 is dat je gewoon een soort moet nemen een stap terug soms een nachtje over slapen 857 00:36:44,480 --> 00:36:47,870 of denken op het over de cursus van een joggen of een andere activiteit, 858 00:36:47,870 --> 00:36:49,240 en kom dan terug om het vers. 859 00:36:49,240 --> 00:36:50,930 En je hoeft alleen maar deze vensters van de tijd. 860 00:36:50,930 --> 00:36:52,910 >> En inderdaad, dat is waarom we hebben verlengde de hoeveelheid tijd 861 00:36:52,910 --> 00:36:55,710 vindt het probleem sets dit jaar en ook per die URL 862 00:36:55,710 --> 00:36:57,950 Ik opgemaakt eerder als te wat er nieuw is dit semester, 863 00:36:57,950 --> 00:37:00,950 getrimd het probleem stelt, zodat ze zijn in wezen niet minder streng, 864 00:37:00,950 --> 00:37:03,741 en afhaalrestaurants niet minder, maar er is veel minder voorwerk, 865 00:37:03,741 --> 00:37:07,630 een stuk minder benenwerk dat je nodig hebt om doen aan de voorzijde van elk probleem set, 866 00:37:07,630 --> 00:37:10,680 zoals u zult zien, voordat je kunt eigenlijk duik in het vlees ervan. 867 00:37:10,680 --> 00:37:13,500 Realiseer dat deze en andere veranderingen zijn aan de horizon 868 00:37:13,500 --> 00:37:16,490 om beter studenten, maar uiteindelijk om ervoor te zorgen 869 00:37:16,490 --> 00:37:18,860 dat de afhaalrestaurants zijn inderdaad zo hoog mogelijk. 870 00:37:18,860 --> 00:37:21,330 Dus terwijl meer werk dan het misschien in een typische klasse, 871 00:37:21,330 --> 00:37:25,120 Wij hopen dat de rendementen voor u en de afhaalrestaurants voor u 872 00:37:25,120 --> 00:37:27,490 en de vaardigheden en ideeën waarmee je afsluit 873 00:37:27,490 --> 00:37:29,921 zijn des te meer dwingende als gevolg. 874 00:37:29,921 --> 00:37:32,420 En om u en dit er-- is een van de belangrijkste afhaalrestaurants, 875 00:37:32,420 --> 00:37:35,470 als Patrick gezinspeeld earlier-- is de loop van de draagstructuur. 876 00:37:35,470 --> 00:37:39,720 Dus niet alleen CS50 hebben één van de grootste cursus personeel op de campus. 877 00:37:39,720 --> 00:37:41,750 Het heeft ook een van de de meeste undergraduate. 878 00:37:41,750 --> 00:37:43,700 Inderdaad, CS50 vorig jaar was de eerste klasse 879 00:37:43,700 --> 00:37:45,366 een undergraduate onderwijs personeel. 880 00:37:45,366 --> 00:37:48,570 En het bewijs van dat succes nu doen vele andere cursussen binnen Yale CS 881 00:37:48,570 --> 00:37:49,500 hebben dat, als goed. 882 00:37:49,500 --> 00:37:52,906 En studenten specifiek zullen deze TA en natuurlijk assistenten 883 00:37:52,906 --> 00:37:55,030 steunt geheel netwerk van ondersteunende middelen, 884 00:37:55,030 --> 00:37:58,250 waaronder secties of recitaties, wekelijks kansen 885 00:37:58,250 --> 00:38:01,674 meer intieme discussies en reviews van materiaal gerichte 886 00:38:01,674 --> 00:38:04,590 voor verschillende tracks, voor studenten minder comfortabel, comfortabeler, 887 00:38:04,590 --> 00:38:05,720 of ergens tussenin. 888 00:38:05,720 --> 00:38:08,886 Deze zullen de beschikbare volgen de lezingen van meerdere dagen per week 889 00:38:08,886 --> 00:38:09,970 op maandag en dinsdag. 890 00:38:09,970 --> 00:38:11,970 En dan office hours-- één-op-één mogelijkheden 891 00:38:11,970 --> 00:38:15,490 om hulp van de cursus CA's en TA zal zijn op woensdag en donderdag 892 00:38:15,490 --> 00:38:18,400 en zondag om meerdere tijden, die 893 00:38:18,400 --> 00:38:22,180 zal worden geplaatst op de website van de cursus, nog meer dan vorig jaar, als goed. 894 00:38:22,180 --> 00:38:25,501 >> Maar wat is de sleutel tot CS50, indien niet weliswaar een beetje ongewoon, 895 00:38:25,501 --> 00:38:27,750 is de cultuur van de cursus die we hebben geprobeerd om te cultiveren, 896 00:38:27,750 --> 00:38:30,672 zowel in Cambridge jarenlang en nu het meest recent in New Haven. 897 00:38:30,672 --> 00:38:33,130 En in feite, komen deze Zaterdag, als u nog niet gehoord, 898 00:38:33,130 --> 00:38:36,410 is CS50 Puzzle Day, die moet niets te maken met de computer science 899 00:38:36,410 --> 00:38:39,430 maar is volledig bedoeld voor het verzenden een bericht dat de informatica is 900 00:38:39,430 --> 00:38:40,665 over het oplossen van problemen. 901 00:38:40,665 --> 00:38:43,540 En inderdaad, als je wilt naar partner met één of twee of drie vrienden 902 00:38:43,540 --> 00:38:46,150 en vormen een team voor CS50 Puzzel Day, neem een ​​kijkje 903 00:38:46,150 --> 00:38:48,010 op de advertenties die op de weg naar buiten. 904 00:38:48,010 --> 00:38:51,582 En drie uur van de pizza en puzzels en prijzen af ​​te wachten. 905 00:38:51,582 --> 00:38:53,290 Inderdaad, de eerste keer dit jaar, 906 00:38:53,290 --> 00:38:54,873 het zal niet samen worden gehouden met Harvard. 907 00:38:54,873 --> 00:38:57,530 Het zal hier onafhankelijk van elkaar op Yale. 908 00:38:57,530 --> 00:38:59,815 Dus hou een oogje op die als u niet. 909 00:38:59,815 --> 00:39:02,440 De meeste elke vrijdag in het semester moeten we proberen om een ​​grote klasse te maken 910 00:39:02,440 --> 00:39:06,710 voelen klein en breng ongeveer 50 studenten lunchen met het personeel van de cursus, 911 00:39:06,710 --> 00:39:08,730 met alumni, vrienden van de industrie om te praten 912 00:39:08,730 --> 00:39:12,630 over wat het leven is als na een klasse zoals CS50 en over de zomers 913 00:39:12,630 --> 00:39:14,250 en na het afstuderen. 914 00:39:14,250 --> 00:39:16,280 Dus hou een oogje op uitnodigingen voor dat. 915 00:39:16,280 --> 00:39:17,988 Voor de eerste keer ooit Dit jaar zullen we 916 00:39:17,988 --> 00:39:21,420 Houd de allereerste CS50 codering wedstrijd, een optionele opt-in mogelijkheid 917 00:39:21,420 --> 00:39:25,580 mid-semester, na alles van ons hebben gehad ongeveer zes of zeven weken van de programmering 918 00:39:25,580 --> 00:39:30,100 in C onder hun gordels om te concurreren, als u zo weer zou choose-- 919 00:39:30,100 --> 00:39:32,460 op teams-- proberen lossen als vele uitdagingen 920 00:39:32,460 --> 00:39:36,160 als je kunt in de programmering met vrienden van je tegen anderen. 921 00:39:36,160 --> 00:39:38,850 >> En in de richting van de staart van het semester zullen we charter een aantal bussen, 922 00:39:38,850 --> 00:39:40,850 eigenlijk wat tijd doorbrengen in Cambridge, als je wilt 923 00:39:40,850 --> 00:39:43,460 graag met ons mee, voor de zogenaamde CS50 hackathon. 924 00:39:43,460 --> 00:39:44,600 Bij 19:00 gaan we beginnen. 925 00:39:44,600 --> 00:39:45,970 Rond 21:00, zullen we pizza hebben. 926 00:39:45,970 --> 00:39:47,650 Rond 01:00, zullen we burrito's hebben. 927 00:39:47,650 --> 00:39:50,550 En iedereen die nog wakker op de busrit naar huis rond 05:00, 928 00:39:50,550 --> 00:39:54,070 we zullen stoppen voor pannenkoeken bij IHOP op de weg thuis-- 929 00:39:54,070 --> 00:39:57,540 een 12-uur per dag de kans om onder te dompelen jezelf met klasgenoten en medewerkers 930 00:39:57,540 --> 00:39:59,950 in afstudeerproject van de cursus, die een kans 931 00:39:59,950 --> 00:40:01,870 goed te gaan dan de cursus probleem sets 932 00:40:01,870 --> 00:40:05,950 en het ontwerpen en implementeren van de meeste iets voor u van belang, 933 00:40:05,950 --> 00:40:09,170 die uiteindelijk ook hier in het Lagerhuis. 934 00:40:09,170 --> 00:40:12,510 De allereerste CS50 fair is voor het laatst jaar, een end-of-semester tentoonstelling 935 00:40:12,510 --> 00:40:15,460 of de viering van wat iedereen in de klas had volbracht, 936 00:40:15,460 --> 00:40:19,810 vooral die, wederom, die ging van niets iets, van nul tot 60, 937 00:40:19,810 --> 00:40:22,450 zonder voorafgaande achtergrond en tentoonstellen, uiteindelijk, 938 00:40:22,450 --> 00:40:26,960 iets voor de hele campus en, als online, de wereld om te zien, als goed. 939 00:40:26,960 --> 00:40:30,780 >> Nu, dit hier zijn slechts een paar van de TA en CA's die CS50 mogelijk maakt. 940 00:40:30,780 --> 00:40:33,034 Sta mij toe om elke uit te nodigen van de medewerkers 941 00:40:33,034 --> 00:40:35,700 die hier zijn om te komen op het podium, evenals de hoofden van de cursus, 942 00:40:35,700 --> 00:40:38,785 om sommige woorden van bieden inspiratie, ook. 943 00:40:38,785 --> 00:41:03,138 944 00:41:03,138 --> 00:41:03,950 >> ANDI: Hoi, jongens. 945 00:41:03,950 --> 00:41:05,290 Kunnen jullie me horen? 946 00:41:05,290 --> 00:41:10,260 Bedankt voor het samenvoegen van ons op deze heerlijk, regenachtige donderdagmiddag. 947 00:41:10,260 --> 00:41:11,010 Mijn naam is Andi. 948 00:41:11,010 --> 00:41:12,070 Ik ben een junior in Berkeley. 949 00:41:12,070 --> 00:41:17,250 En samen met Stelios en de zomer, wij zullen uw drie hoofd onderwijs zijn 950 00:41:17,250 --> 00:41:19,277 assistenten voor dit komende jaar. 951 00:41:19,277 --> 00:41:21,110 Dus, denk ik, show van hands-- hoeveel van jullie 952 00:41:21,110 --> 00:41:26,680 hebben niet de intentie van het zijn een CS belangrijke noch echt duiken diep 953 00:41:26,680 --> 00:41:29,930 in informatica als hier een belangrijk? 954 00:41:29,930 --> 00:41:30,520 Geweldig. 955 00:41:30,520 --> 00:41:32,730 Dat is briljant. 956 00:41:32,730 --> 00:41:35,850 >> Dus ik ben eigenlijk een globale zaken en cognitieve wetenschap major. 957 00:41:35,850 --> 00:41:37,780 Ik kwam letterlijk Yale met de bedoeling 958 00:41:37,780 --> 00:41:42,199 van nooit te hebben om te kijken naar een nummer ooit weer in mijn leven. 959 00:41:42,199 --> 00:41:44,990 Toen ik naar Yale kwam, was dit iets dat nooit was op mijn radar. 960 00:41:44,990 --> 00:41:46,460 Ik wilde leren over poëzie. 961 00:41:46,460 --> 00:41:48,500 Ik wilde om te leren over internationale zaken. 962 00:41:48,500 --> 00:41:50,510 Ik wilde om te leren over aquarel tekeningen. 963 00:41:50,510 --> 00:41:53,360 Ja, wij bieden een klasse op aquarel tekeningen. 964 00:41:53,360 --> 00:41:57,340 >> Maar ik was nooit echt geïnteresseerd in om het even wat STEM gerelateerde. 965 00:41:57,340 --> 00:41:59,620 Maar hoe ouder ik kreeg, hoe meer ik besefte 966 00:41:59,620 --> 00:42:03,340 dat elk gebied echt in sommige sense telt computer science, 967 00:42:03,340 --> 00:42:05,700 of, indien niet de informatica, berekening. 968 00:42:05,700 --> 00:42:08,300 In feite, voor mijn globale zaken sluitstuk project, 969 00:42:08,300 --> 00:42:12,020 we zijn met behulp van data analytics om terreur aanslagen te analyseren 970 00:42:12,020 --> 00:42:13,680 voor Boko Haram in Nigeria. 971 00:42:13,680 --> 00:42:17,510 En dus zoals je kunt zien, ongeacht wat belangrijke je uiteindelijk het nastreven 972 00:42:17,510 --> 00:42:21,640 of wat je interesses hier bij Yale zijn, de programmering en de fundamenten 973 00:42:21,640 --> 00:42:24,130 van welke vaardigheden zijn super handig. 974 00:42:24,130 --> 00:42:29,840 En CS50 echt is goed uitgerust om soort lenen veel van haar middelen 975 00:42:29,840 --> 00:42:32,060 aan u, ongeacht hoe comfortabel je bent 976 00:42:32,060 --> 00:42:34,590 of hoe geïnteresseerd je bent in het nastreven van de klas. 977 00:42:34,590 --> 00:42:37,290 >> Summer's gaat een beetje te praten bit over wat jullie zijn 978 00:42:37,290 --> 00:42:39,635 gaat om te leren over dit jaar. 979 00:42:39,635 --> 00:42:40,510 ZOMER: Hallo, iedereen. 980 00:42:40,510 --> 00:42:41,320 Ik ben van de zomer Wu. 981 00:42:41,320 --> 00:42:43,090 Ik ben een junior in Morse. 982 00:42:43,090 --> 00:42:48,100 En ik eigenlijk begonnen als CS50 student mezelf. 983 00:42:48,100 --> 00:42:51,460 Dus drie jaar geleden was ik op een jaar tussenuit. 984 00:42:51,460 --> 00:42:53,940 Ik had nog nooit genomen een CS klasse op de middelbare school, 985 00:42:53,940 --> 00:42:57,800 maar ik dacht dat ik in mijn vrije tijd, het cool zou zijn om te leren hoe te coderen. 986 00:42:57,800 --> 00:43:02,610 Dus deed ik een snelle zoekfunctie van Google, keek naar wat online beschikbaar was, 987 00:43:02,610 --> 00:43:06,990 en zag deze video met muppets en dj's en coole websites. 988 00:43:06,990 --> 00:43:09,450 Ik was als, ik wil leren hoe dat te doen. 989 00:43:09,450 --> 00:43:14,690 >> Dus nam ik de cursus, en ik gewoon verliefd op het. 990 00:43:14,690 --> 00:43:20,410 Maar ik herinner me zo jaloers op de kinderen die de hackathon konden bijwonen, 991 00:43:20,410 --> 00:43:24,610 wonen Puzzle Day, wonen kantoor uur, krijgen hulp van TA in persoon. 992 00:43:24,610 --> 00:43:27,410 En dus ik had nooit gedacht dat ik de kans zou krijgen 993 00:43:27,410 --> 00:43:30,640 hier worden betrokken de cursus die eerst kreeg 994 00:43:30,640 --> 00:43:33,630 me geïnteresseerd zijn in de computer wetenschap en is de reden waarom 995 00:43:33,630 --> 00:43:35,690 Ik ben vandaag een computer science major. 996 00:43:35,690 --> 00:43:39,290 Dus ik u waarschuwen, deze klasse zal je rekken. 997 00:43:39,290 --> 00:43:41,120 Het zal je uitdagen. 998 00:43:41,120 --> 00:43:43,910 Maar het is ook naar je leren hoe je dingen te doen 999 00:43:43,910 --> 00:43:45,506 dat je nooit gedacht je kon. 1000 00:43:45,506 --> 00:43:49,330 1001 00:43:49,330 --> 00:43:52,160 >> STELIOS: Hallo, iedereen. 1002 00:43:52,160 --> 00:43:53,510 Mijn naam is Stelios. 1003 00:43:53,510 --> 00:43:58,240 Ik ben een junior in Branford College en een CS-majoor. 1004 00:43:58,240 --> 00:44:01,640 Ik ben ook van Athene, Griekenland. 1005 00:44:01,640 --> 00:44:03,830 ik kijk er echt naar uit om te voldoen aan u allen, 1006 00:44:03,830 --> 00:44:09,010 chatten met u ten deel, bij kantooruren, op vrijdag lunches. 1007 00:44:09,010 --> 00:44:11,250 Ik ben echt enthousiast, want we hebben zo veel energie gestoken 1008 00:44:11,250 --> 00:44:14,650 in het creëren van een unieke ondersteuning structuur voor jullie allemaal 1009 00:44:14,650 --> 00:44:19,170 om uw ervaring met maken tijdens de best mogelijke. 1010 00:44:19,170 --> 00:44:22,640 En ik hoop dat hoewel de meeste van heb je waarschijnlijk geen standpunt ingenomen CS 1011 00:44:22,640 --> 00:44:27,310 Natuurlijk voor, ik hoop dat het CS50 voor u is wat interesse vonken 1012 00:44:27,310 --> 00:44:30,260 verder na te streven computer wetenschap in de toekomst, 1013 00:44:30,260 --> 00:44:33,270 zoals is gedaan met zo veel mensen in het verleden. 1014 00:44:33,270 --> 00:44:36,740 Dus dank u voor hier, opgewonden om je te zien. 1015 00:44:36,740 --> 00:44:38,487 Jason Hirschhorn. 1016 00:44:38,487 --> 00:44:39,820 JASON HIRSCHHORN: Hallo, iedereen. 1017 00:44:39,820 --> 00:44:41,700 Mijn naam is Jason Hirschhorn. 1018 00:44:41,700 --> 00:44:43,050 Ik woon in Silliman. 1019 00:44:43,050 --> 00:44:46,910 En ik ging naar Harvard als een undergrad en studeerde in maatschappijleer 1020 00:44:46,910 --> 00:44:48,870 en bijvak in de informatica. 1021 00:44:48,870 --> 00:44:53,100 En een van mijn belangrijkste rollen hier is dit prachtig personeel te ondersteunen 1022 00:44:53,100 --> 00:44:54,630 als ze ondersteunen jullie allemaal. 1023 00:44:54,630 --> 00:44:56,410 In feite is dit niet allemaal. 1024 00:44:56,410 --> 00:45:01,230 Er zijn 55 studenten en afgestudeerden hier om u allen te ondersteunen. 1025 00:45:01,230 --> 00:45:04,420 En ik durf te zeggen dat een van de beste delen van de cursus voor u 1026 00:45:04,420 --> 00:45:08,080 Alles krijgt om mee te werken hen, om ze te leren kennen, 1027 00:45:08,080 --> 00:45:12,389 krijgen om ze te zien, zowel in de CS50 en buiten CS50 dit semester 1028 00:45:12,389 --> 00:45:13,680 en vele semesters te komen. 1029 00:45:13,680 --> 00:45:16,770 Dus hopelijk zult u nemen Natuurlijk omdat hopelijk 1030 00:45:16,770 --> 00:45:21,060 krijgen om met de prachtig personeel hebben we op het podium. 1031 00:45:21,060 --> 00:45:24,977 >> SPEAKER: Nou, laat me afmaken door te zeggen dat zal leuk zijn. 1032 00:45:24,977 --> 00:45:26,810 DAVID MALAN: Nou, dankzij ons hele team. 1033 00:45:26,810 --> 00:45:29,610 Sta mij toe om de lichten dimmen en toelaten dat sommige meer van ons team, 1034 00:45:29,610 --> 00:45:32,890 zowel vanuit Cambridge en New Haven, om hallo te zeggen als deze jongens bestand af. 1035 00:45:32,890 --> 00:45:36,130 En daarna zullen we de overgang naar de eerste van onze programmering engagementen 1036 00:45:36,130 --> 00:45:37,584 met deze taal genaamd Scratch. 1037 00:45:37,584 --> 00:45:38,500 Dus dank aan het team. 1038 00:45:38,500 --> 00:45:40,770 Laten we dim de lichten en horen van een paar anderen. 1039 00:45:40,770 --> 00:45:44,207 >> [APPLAUS] 1040 00:45:44,207 --> 00:45:45,680 1041 00:45:45,680 --> 00:45:48,140 >> [VIDEO AFSPELEN] 1042 00:45:48,140 --> 00:45:53,210 >> -De Missie van de CS50 is om u te maken meer comfortabel met een totaal nieuwe manier 1043 00:45:53,210 --> 00:45:54,947 van denken, deze computationele mentaliteit. 1044 00:45:54,947 --> 00:45:56,780 -Het Gemaakt computer science interessant, die 1045 00:45:56,780 --> 00:46:00,241 is iets wat ik niet echt te realiseren mogelijk was totdat ik nam de klas. 1046 00:46:00,241 --> 00:46:00,990 -Ik Was als, whoa. 1047 00:46:00,990 --> 00:46:04,120 Ik ben echt het vertalen van mijn gedachten in een computer op dit moment. 1048 00:46:04,120 --> 00:46:07,970 >> -Zelfs Als je geen achtergrond hebben in de informatica of geen ervaring, 1049 00:46:07,970 --> 00:46:10,140 dit is eigenlijk de klasse voor jou. 1050 00:46:10,140 --> 00:46:12,250 >> -dus Ik wil zeker mijn leerlingen om gewoon 1051 00:46:12,250 --> 00:46:14,350 enthousiast over informatica. 1052 00:46:14,350 --> 00:46:17,187 Niet alleen de programmering, maar denken als een computer wetenschapper 1053 00:46:17,187 --> 00:46:19,270 is echt wat ik wil probeer mijn eerstejaars onderwijzen. 1054 00:46:19,270 --> 00:46:21,560 >> -CS50 Is hard en te belonen. 1055 00:46:21,560 --> 00:46:22,592 >> -Een ervaring. 1056 00:46:22,592 --> 00:46:23,456 >> -Extravaganza. 1057 00:46:23,456 --> 00:46:26,350 >> -Het Is ons brengen naar het volgende niveau. 1058 00:46:26,350 --> 00:46:28,850 >> [Muziek] 1059 00:46:28,850 --> 00:46:32,167 >> -De TF's zijn, denk ik, de levensader van de cursus. 1060 00:46:32,167 --> 00:46:34,560 >> -Ik Ben verheugd om mijn studenten Ik help 1061 00:46:34,560 --> 00:46:38,027 hebben dat aha moment om te beseffen wat ze eigenlijk probeert 1062 00:46:38,027 --> 00:46:39,610 te doen, om erachter te komen hoe je een pset doen. 1063 00:46:39,610 --> 00:46:41,438 >> -CS50 Is zeker een harde koers. 1064 00:46:41,438 --> 00:46:43,960 Maar in tegenstelling tot alle andere cursus echt aan de Yale, 1065 00:46:43,960 --> 00:46:45,759 het heeft zo'n grote, ondersteunende gemeenschap. 1066 00:46:45,759 --> 00:46:47,550 -Je Absoluut niet nodig om iets te weten 1067 00:46:47,550 --> 00:46:49,341 ongeveer coderen kunnen om de cursus te nemen. 1068 00:46:49,341 --> 00:46:52,270 -Het Is verbazingwekkend om te zien hoe ver mensen komen in een semester. 1069 00:46:52,270 --> 00:46:55,610 >> -Je Waren niet alleen zitten in uw kamer leren code, 1070 00:46:55,610 --> 00:46:57,170 maar het was meer dan alleen een klasse. 1071 00:46:57,170 --> 00:46:58,044 Het was een ervaring. 1072 00:46:58,044 --> 00:47:02,500 -De Beste manier om concepten te leren en te verwerken hen is door het onderwijs van anderen. 1073 00:47:02,500 --> 00:47:04,033 >> -Wat Is de telefoon split? 1074 00:47:04,033 --> 00:47:06,934 >> [Muziek] 1075 00:47:06,934 --> 00:47:08,080 >> -En Dit is CS50. 1076 00:47:08,080 --> 00:47:10,810 >> [Muziek] 1077 00:47:10,810 --> 00:47:11,720 1078 00:47:11,720 --> 00:47:12,380 >> -Dit Is CS50. 1079 00:47:12,380 --> 00:47:13,446 >> -Heb een probleem? 1080 00:47:13,446 --> 00:47:14,852 Scheuren in de helft. 1081 00:47:14,852 --> 00:47:15,804 >> [Muziek] 1082 00:47:15,804 --> 00:47:18,184 >> Gooi het weg. 1083 00:47:18,184 --> 00:47:19,520 >> DAVID MALAN: Oké. 1084 00:47:19,520 --> 00:47:23,190 Dus laten we tackle-- in een klein bit overigens, het 1085 00:47:23,190 --> 00:47:25,270 al deze traditie voor reden voor 10 jaar 1086 00:47:25,270 --> 00:47:27,260 om taart te dienen bij de start en het einde van de CS50. 1087 00:47:27,260 --> 00:47:30,800 Dus op u te wachten aan het eind van vandaag, naast syllabi 1088 00:47:30,800 --> 00:47:34,270 zal een stuk taart zo goed, en het personeel van de cursus om hallo te zeggen. 1089 00:47:34,270 --> 00:47:37,110 overgang Maar nu, laten we aan de eerste van onze talen, waarbij 1090 00:47:37,110 --> 00:47:40,970 we zullen gewoon een week en één besteden echt probleem die op dit domein, Scratch. 1091 00:47:40,970 --> 00:47:43,160 En je zult zien als je hebt geprogrammeerd voor vele 1092 00:47:43,160 --> 00:47:46,280 van de ideeën en de mogelijkheden zijn u bekend. 1093 00:47:46,280 --> 00:47:48,160 Maar je zult zien dat vinden het is leuk langs de weg 1094 00:47:48,160 --> 00:47:51,201 om erachter te komen hoe om te vertalen een aantal van de ideeën die je al kent 1095 00:47:51,201 --> 00:47:53,852 deze bijzondere omgeving om echt indruk op uw familie 1096 00:47:53,852 --> 00:47:57,060 en vrienden met je werk, dat kan online gaan, als je daarvoor kiest, daarna. 1097 00:47:57,060 --> 00:47:58,851 >> En als je geen voorafgaande ervaring en zijn 1098 00:47:58,851 --> 00:48:01,540 onder de meeste studenten minder comfortabel, 1099 00:48:01,540 --> 00:48:05,320 beseffen dat veel van de ideeën die we gewoon verkend met reality-- dingen 1100 00:48:05,320 --> 00:48:07,970 zoals telefoon boeken en aanwezigheidsregistratie en zo forth-- vertalen 1101 00:48:07,970 --> 00:48:12,280 vrij mooi op een computer, maar niet als je gebruik maakt, 1102 00:48:12,280 --> 00:48:13,710 in eerste instantie, een taal als dit. 1103 00:48:13,710 --> 00:48:16,290 Dit is dus een programma geschreven in een taal genaamd C. 1104 00:48:16,290 --> 00:48:18,590 En we zullen wel een beetje door te brengen van de tijd in C, uiteindelijk. 1105 00:48:18,590 --> 00:48:22,560 Maar kansen zijn, zal dit een beetje kijken cryptisch om u op het eerste gezicht. 1106 00:48:22,560 --> 00:48:25,760 In feite is er een hoop rare syntax, haakjes, punthaken, 1107 00:48:25,760 --> 00:48:27,422 accolades, citaten, en puntkomma's. 1108 00:48:27,422 --> 00:48:29,880 En inderdaad, als je een duik nemen in programmering voor het eerst 1109 00:48:29,880 --> 00:48:33,420 kijken en proberen om dingen te creëren als dit, eerlijk gezegd, je krijgt zo wegzakken 1110 00:48:33,420 --> 00:48:36,500 zo vaak in gewoon dom minutia die niets heeft 1111 00:48:36,500 --> 00:48:38,240 intellectueel interessant over. 1112 00:48:38,240 --> 00:48:40,980 >> Maar stel je voor als je zou kunnen maken dezelfde program-- die, 1113 00:48:40,980 --> 00:48:46,200 zoals je misschien soort afleiden, waarschijnlijk prints "Hello, world" een of andere manier. 1114 00:48:46,200 --> 00:48:49,850 We kunnen dat hetzelfde idee destilleren in slechts twee puzzelstukjes, als je wil. 1115 00:48:49,850 --> 00:48:52,850 Inderdaad, Scratch is interessant want het is deze grafische taal. 1116 00:48:52,850 --> 00:48:56,110 U kunt slepen en neerzetten van deze puzzelstukken die alleen interlock 1117 00:48:56,110 --> 00:48:57,940 als het maakt logische zin te doen. 1118 00:48:57,940 --> 00:48:59,830 En dus in Scratch, we zullen snel zien, dit is 1119 00:48:59,830 --> 00:49:03,460 hoe je datzelfde zou uitvoeren programma, met slechts twee puzzelstukjes 1120 00:49:03,460 --> 00:49:05,420 dat vrij veel doen wat ze zeggen. 1121 00:49:05,420 --> 00:49:08,870 >> Maar we zullen zien in slechts een moment dat sommige van de bouwstenen die we gezinspeeld 1122 00:49:08,870 --> 00:49:12,140 eerder en een paar zijn dat alles uiteindelijk gaat opleveren 1123 00:49:12,140 --> 00:49:13,460 sommige van onze vroegste programma's. 1124 00:49:13,460 --> 00:49:15,460 We gaan dingen zoals functions-- gewoon 1125 00:49:15,460 --> 00:49:18,034 acties die iets te doen, zoals gedag zeggen, wereld. 1126 00:49:18,034 --> 00:49:20,200 We gaan loops hebben, dingen die cycli veroorzaken 1127 00:49:20,200 --> 00:49:23,210 opnieuw en opnieuw, net als wij heb daarnet met het zoeken 1128 00:49:23,210 --> 00:49:24,110 voor Mike Smith. 1129 00:49:24,110 --> 00:49:27,190 Variabelen, zoals in de algebra, als je hebben x of y, dat een aantal kan opslaan. 1130 00:49:27,190 --> 00:49:29,940 Nou, in een programma, kun je eigenlijk slaan meer dan alleen cijfers. 1131 00:49:29,940 --> 00:49:34,290 U kunt de woorden en zinnen op te slaan en afbeeldingen en andere dingen nog. 1132 00:49:34,290 --> 00:49:37,530 Booleaanse uitdrukkingen, net questions-- ja of nee, waar of onwaar. 1133 00:49:37,530 --> 00:49:40,680 Voorwaarden, beslissingen nemen gebaseerd op de ja / nee antwoord. 1134 00:49:40,680 --> 00:49:43,890 >> En dan liefhebber dingen zoals array en draden en evenementen 1135 00:49:43,890 --> 00:49:46,100 en een aantal andere functies, maar allemaal 1136 00:49:46,100 --> 00:49:48,670 kaart zeer mooi tot zeer vriendelijke blokkeert als deze. 1137 00:49:48,670 --> 00:49:52,736 Dit gaat om een ​​functie, een te zijn paarse puzzelstukje dat alleen maar zegt 1138 00:49:52,736 --> 00:49:54,717 wat de naam is-- in dit geval zeggen. 1139 00:49:54,717 --> 00:49:56,550 En dan vaak, is er een witte doos die je 1140 00:49:56,550 --> 00:49:58,550 kunt typen of sleep een bepaalde waarde in. 1141 00:49:58,550 --> 00:50:01,370 En dat is wat er over het algemeen riep een argument of een parameter. 1142 00:50:01,370 --> 00:50:04,110 Het is een manier van het veranderen van de standaard gedrag van een puzzel 1143 00:50:04,110 --> 00:50:07,530 piece of een functie, zodat het doet iets op maat voor u als het zeggen, 1144 00:50:07,530 --> 00:50:12,570 hello, hello wereld of, Andy of hello, Jason of een andere straf in plaats daarvan. 1145 00:50:12,570 --> 00:50:15,830 >> Als je wilt zeggen dat een lot-- letterlijk forever-- 1146 00:50:15,830 --> 00:50:18,142 kunt u een andere nemen puzzelstukje genoemd forever 1147 00:50:18,142 --> 00:50:20,100 en gewoon ingeklemd de twee samen als dit. 1148 00:50:20,100 --> 00:50:24,090 En dat lus, als het beeld al doet vermoeden, betekent gewoon gedag zeggen, wereld voor altijd, 1149 00:50:24,090 --> 00:50:25,810 opnieuw en opnieuw en opnieuw. 1150 00:50:25,810 --> 00:50:28,840 Of, als je alleen wilt doen het een eindig aantal keren, zoals 50 maal, 1151 00:50:28,840 --> 00:50:32,050 er zal een andere puzzel stuk voor dat-- herhaal 50 keer. 1152 00:50:32,050 --> 00:50:34,190 >> Ondertussen, als je wilt een variabele hebben 1153 00:50:34,190 --> 00:50:36,090 in deze taal zijn we over om mee te spelen, 1154 00:50:36,090 --> 00:50:37,880 kunt u een oranje blok, zoals dit te gebruiken. 1155 00:50:37,880 --> 00:50:40,750 En deze variabele I willekeurig opgeroepen i integer. 1156 00:50:40,750 --> 00:50:42,290 En ik stel het gelijk is aan 0. 1157 00:50:42,290 --> 00:50:44,780 En dus misschien heb ik, in dit case-- deze variable-- 1158 00:50:44,780 --> 00:50:46,630 vertegenwoordigt iemands score in een spel. 1159 00:50:46,630 --> 00:50:49,680 Je begint op nul, en elke keer dat je maak een doel of iets dergelijks, 1160 00:50:49,680 --> 00:50:51,270 je krijgt een extra punt. 1161 00:50:51,270 --> 00:50:52,830 >> U kunt vragen in Scratch stellen. 1162 00:50:52,830 --> 00:50:55,390 Als we slepen en neerzetten puzzel stukken in een moment als dit, 1163 00:50:55,390 --> 00:50:58,470 u kunt vragen als, goed, is dat ik minder dan 50? 1164 00:50:58,470 --> 00:51:00,060 Misschien moet je 50 punten te winnen. 1165 00:51:00,060 --> 00:51:01,893 En dus dit zou zijn de vraag die u zou vragen. 1166 00:51:01,893 --> 00:51:04,030 Of, meer in het algemeen, u kan zeggen is x kleiner dan y, 1167 00:51:04,030 --> 00:51:05,780 waar er twee variabelen bij betrokken? 1168 00:51:05,780 --> 00:51:08,320 Nu, dit is een stuk groter op het eerste gezicht, 1169 00:51:08,320 --> 00:51:11,470 maar echt niet dat alles complexer. 1170 00:51:11,470 --> 00:51:15,390 >> Dit is gewoon een combinatie Condities en variabelen 1171 00:51:15,390 --> 00:51:19,370 en Booleaanse uitdrukkingen te vragen drie questions-- is x kleiner dan y? 1172 00:51:19,370 --> 00:51:20,660 Als dat zo is, zeg dat dan. 1173 00:51:20,660 --> 00:51:22,170 Zeg, x is kleiner dan y. 1174 00:51:22,170 --> 00:51:26,571 Anders, indien x groter is dan y moet anders x y gelijk zijn. 1175 00:51:26,571 --> 00:51:29,070 En dat met Mike Smith, waren er vier scenario's, hier 1176 00:51:29,070 --> 00:51:32,270 in de wereld van getallen, x ofwel kleiner dan, groter dan of gelijk aan. 1177 00:51:32,270 --> 00:51:34,531 Alles wat we hebben, zijn drie vorken in de weg. 1178 00:51:34,531 --> 00:51:36,530 En dan is er nog liefhebber puzzelstukjes als deze 1179 00:51:36,530 --> 00:51:39,613 voor dingen zoals arrays, waar we zijn zal in staat zijn om informatie op te slaan. 1180 00:51:39,613 --> 00:51:43,590 We gaan blokken die het mogelijk maken te zien ons uit te voeren meerdere threads, 1181 00:51:43,590 --> 00:51:46,620 een andere functie die we zullen gebruiken, en dan ook iets genaamd evenementen. 1182 00:51:46,620 --> 00:51:49,390 Maar voordat we dat point en maak zelfs, 1183 00:51:49,390 --> 00:51:52,000 uiteindelijk onze eigen aangepaste puzzelstukjes, laten we 1184 00:51:52,000 --> 00:51:53,950 eigenlijk het programma zelf te openen. 1185 00:51:53,950 --> 00:51:54,860 >> Dus dit is Kras. 1186 00:51:54,860 --> 00:51:57,490 Het is verkrijgbaar bij scratch.mit.edu. 1187 00:51:57,490 --> 00:51:59,650 En bent u welkom om te spelen nu of later, als goed. 1188 00:51:59,650 --> 00:52:01,330 Dit gebeurt aan de offline versie. 1189 00:52:01,330 --> 00:52:03,129 Voor mensen die niet per se grote internet, 1190 00:52:03,129 --> 00:52:04,962 kunt u het downloaden dezelfde software en. 1191 00:52:04,962 --> 00:52:07,460 En er is eigenlijk maar drie onderdelen van deze software. 1192 00:52:07,460 --> 00:52:10,860 Op de linker bovenhoek van het scherm is het soort podium 1193 00:52:10,860 --> 00:52:13,800 dat Scratch, die standaard ziet eruit als een kat, leeft binnen. 1194 00:52:13,800 --> 00:52:16,799 Hij kan omhoog, omlaag, naar links en rechts en doe een aantal andere dingen, 1195 00:52:16,799 --> 00:52:20,520 en kan op een aantal manieren op basis van kijken op de kostuums die u toewijst aan hem. 1196 00:52:20,520 --> 00:52:22,980 Maar dit is wat we noemen een sprite, een soort karakter. 1197 00:52:22,980 --> 00:52:25,429 En je kunt meerdere hebt karakters, zoals we zullen snel te zien. 1198 00:52:25,429 --> 00:52:30,060 >> In het midden zijn nu al deze puzzel stukken en deze categorieën of pallets 1199 00:52:30,060 --> 00:52:30,900 daarvan. 1200 00:52:30,900 --> 00:52:32,429 Dus nu, ik klikte op Motion. 1201 00:52:32,429 --> 00:52:35,900 En dus ik ben het zien van alle -Motion gerelateerde puzzelstukjes of blokken, 1202 00:52:35,900 --> 00:52:37,950 zodat functies die moeten te maken met een naar boven, 1203 00:52:37,950 --> 00:52:39,950 omlaag, naar links of naar rechts of een andere bewerking. 1204 00:52:39,950 --> 00:52:43,790 Maar als ik klikte op Looks, je kon dingen te zien zoals het woord block 1205 00:52:43,790 --> 00:52:45,084 dat we zagen slechts een moment geleden. 1206 00:52:45,084 --> 00:52:48,250 En als ik op controle klikt, zie je dingen zoals de herhaling en de eeuwigheid 1207 00:52:48,250 --> 00:52:50,410 en de als blok dat we zagen een moment geleden. 1208 00:52:50,410 --> 00:52:51,670 >> En dus je zult vinden dat we zullen gewoon krabben 1209 00:52:51,670 --> 00:52:53,750 het oppervlak van sommige puzzelstukjes, 1210 00:52:53,750 --> 00:52:55,833 maar het is allemaal vrij intuïtief en point and click. 1211 00:52:55,833 --> 00:52:58,219 Inderdaad, werd ontworpen Scratch voor jongere leerlingen 1212 00:52:58,219 --> 00:53:00,730 om te helpen geef ze een uitlaatklep voor creatief denken. 1213 00:53:00,730 --> 00:53:03,040 En toch heerlijk, het is een prachtige opstap 1214 00:53:03,040 --> 00:53:07,020 precies de ideeën die we gaan verkennen in C en Python en JavaScript, 1215 00:53:07,020 --> 00:53:07,719 ook. 1216 00:53:07,719 --> 00:53:11,960 >> Aan de rechterzijde, eindelijk, Dit is de zogenaamde scripts gebied. 1217 00:53:11,960 --> 00:53:15,750 En dit is slechts de schone lei met waar je beginnen om een ​​programma te schrijven. 1218 00:53:15,750 --> 00:53:16,897 En ik zal precies dat. 1219 00:53:16,897 --> 00:53:19,980 Nu, ik weet toevallig waar dingen want ik heb dit een paar keer gedaan. 1220 00:53:19,980 --> 00:53:22,710 Maar ik weet dat in het kader De gebeurtenissen categorie, 1221 00:53:22,710 --> 00:53:25,520 er is dit blok hier-- wanneer groene vlag geklikt. 1222 00:53:25,520 --> 00:53:28,790 En merken als ik uitzoomen en opnieuw in hier op het podium, 1223 00:53:28,790 --> 00:53:31,190 Scratch leven binnen deze kleine rechthoekige wereld, 1224 00:53:31,190 --> 00:53:33,920 boven die een groen vlag en een rood stopteken. 1225 00:53:33,920 --> 00:53:36,180 Dus ga en stop, respectievelijk. 1226 00:53:36,180 --> 00:53:38,710 >> En dus wat doe ik wil doen wanneer die groene vlag wordt geklikt? 1227 00:53:38,710 --> 00:53:40,900 Nou, laat me naar die categorie Looks. 1228 00:53:40,900 --> 00:53:43,357 En laat me ga je gang en slepen en neerzetten dit. 1229 00:53:43,357 --> 00:53:45,940 En merk zodra het wordt in de buurt, ze zijn een soort magnetische. 1230 00:53:45,940 --> 00:53:48,489 Dus als ik nu laten gaan, het klikt samen mooi en netjes. 1231 00:53:48,489 --> 00:53:51,030 En ik ga om verder te gaan en iets zeggen als: hello, wereld 1232 00:53:51,030 --> 00:53:52,190 twee seconden. 1233 00:53:52,190 --> 00:53:56,730 Laat me uitzoomen en klik op nu de groene vlag, en zeg, hello, wereld. 1234 00:53:56,730 --> 00:53:57,230 Okee. 1235 00:53:57,230 --> 00:53:58,460 Dus dat is allemaal prima en goed. 1236 00:53:58,460 --> 00:53:59,900 Niet zo spannend. 1237 00:53:59,900 --> 00:54:01,340 Laten we het een beetje leuker. 1238 00:54:01,340 --> 00:54:03,494 En ik weet dat er in voorschot, Scratch gebeurt 1239 00:54:03,494 --> 00:54:05,160 om te komen met een aantal leuke dingen als dit. 1240 00:54:05,160 --> 00:54:07,720 Dus speel geluid meow gaar. 1241 00:54:07,720 --> 00:54:09,531 Dus laten we dit doen. 1242 00:54:09,531 --> 00:54:10,380 >> [MAUW] 1243 00:54:10,380 --> 00:54:11,819 >> Ach, dat is schattig. 1244 00:54:11,819 --> 00:54:12,860 En als ik klik erop again-- 1245 00:54:12,860 --> 00:54:14,920 >> [MAUW] 1246 00:54:14,920 --> 00:54:15,460 >> En opnieuw. 1247 00:54:15,460 --> 00:54:16,740 >> [MAUW] 1248 00:54:16,740 --> 00:54:18,760 >> Maar ik blijf het moeten Scratch reanimeren. 1249 00:54:18,760 --> 00:54:20,010 Maar ik kan beter dan dit te doen. 1250 00:54:20,010 --> 00:54:23,060 Waarom heb ik niet slepen slechts drie van deze. 1251 00:54:23,060 --> 00:54:24,821 En nu is het drie keer zo schattig. 1252 00:54:24,821 --> 00:54:26,264 >> [MIAUWEN] 1253 00:54:26,264 --> 00:54:28,190 >> OK, eigenlijk, het is een beetje griezelig. 1254 00:54:28,190 --> 00:54:31,020 Dus we iets er tussenin nodig hebt daar. 1255 00:54:31,020 --> 00:54:33,870 Als ik naar Control, het lijkt erop dat er is eigenlijk een wachttijd blok. 1256 00:54:33,870 --> 00:54:36,994 En dus zien als ik de muisaanwijzer over er-- en laat me dit een beetje groter te maken. 1257 00:54:36,994 --> 00:54:38,780 Als ik zweven, het gaat om vastklikken. 1258 00:54:38,780 --> 00:54:41,660 Dus wacht een seconde, wacht een seconde. 1259 00:54:41,660 --> 00:54:43,170 Laten we hit groene vlag weer. 1260 00:54:43,170 --> 00:54:46,330 >> [MIAUWEN] 1261 00:54:46,330 --> 00:54:47,695 1262 00:54:47,695 --> 00:54:50,660 >> OK, een beetje meer natuurlijke, maar niet erg efficiënt. 1263 00:54:50,660 --> 00:54:54,300 Dus dit is correct als mijn programma's doel werd drie keer miauwen. 1264 00:54:54,300 --> 00:54:56,410 Maar het is niet erg goed ontworpen. 1265 00:54:56,410 --> 00:54:57,740 Ik soort snijden sommige bochten. 1266 00:54:57,740 --> 00:54:58,730 Ik heb een beetje lui. 1267 00:54:58,730 --> 00:55:05,620 Wat voelt like-- wat moet ik lijken slecht te hebben gedaan, zou je zeggen? 1268 00:55:05,620 --> 00:55:07,197 Ja? 1269 00:55:07,197 --> 00:55:08,030 Ja, in het midden. 1270 00:55:08,030 --> 00:55:11,208 1271 00:55:11,208 --> 00:55:13,083 PUBLIEK: Tweedehands meer geheugen dan je nodig hebt om 1272 00:55:13,083 --> 00:55:15,005 omdat je met behulp van zo veel verschillende lijn. 1273 00:55:15,005 --> 00:55:16,380 DAVID MALAN: Ja, dus meer lijnen. 1274 00:55:16,380 --> 00:55:19,190 En het zou niet noodzakelijkerwijs geheugen, hoewel het kan worden gezien als op die manier. 1275 00:55:19,190 --> 00:55:20,898 Maar het is definitely-- er is redundantie. 1276 00:55:20,898 --> 00:55:23,440 En ik letterlijk soort gesleept en liet de dezelfde dingen. 1277 00:55:23,440 --> 00:55:26,564 En als je soort extrapolate-- als het is niet duidelijk hier-- goed, hoe zou 1278 00:55:26,564 --> 00:55:27,910 Ik meow 30 keer? 1279 00:55:27,910 --> 00:55:31,450 Ik zou slepen en neerzetten, net als, 30 meer paren puzzelstukjes. 1280 00:55:31,450 --> 00:55:32,890 En zeker, er is een betere manier. 1281 00:55:32,890 --> 00:55:34,056 En we hebben een betere manier gezien. 1282 00:55:34,056 --> 00:55:36,870 Wat zou intuïtief zijn de betere manier? 1283 00:55:36,870 --> 00:55:37,890 Ja, gewoon gebruik maken van een lus. 1284 00:55:37,890 --> 00:55:38,810 Geen kopiëren en plakken. 1285 00:55:38,810 --> 00:55:40,790 En inderdaad, wanneer deze semester als je begint 1286 00:55:40,790 --> 00:55:43,890 het vinden van jezelf te slepen, of eigenlijk kopiëren en plakken, 1287 00:55:43,890 --> 00:55:47,050 gevaarlijke gewoonte om in omdat dit is gewoon niet erg onderhoudbaar. 1288 00:55:47,050 --> 00:55:49,740 Bijvoorbeeld, als ik wil veranderen het geluid naar iets anders, 1289 00:55:49,740 --> 00:55:52,826 Ik moet het nu veranderen in drie locaties in plaats van slechts één. 1290 00:55:52,826 --> 00:55:54,575 Want inderdaad, als ik breek deze away-- Ik ben 1291 00:55:54,575 --> 00:55:56,170 gewoon gaan om het te ontkoppelen als dat. 1292 00:55:56,170 --> 00:56:01,900 Laat me pak een herhaling blok, en klik drie, typt u drie, 1293 00:56:01,900 --> 00:56:04,015 gooi een aantal van deze weg door gewoon loslaten. 1294 00:56:04,015 --> 00:56:05,890 En dan merken ziet er niet uit als het past, 1295 00:56:05,890 --> 00:56:08,139 maar magnetisch, het gaat niet alleen vastklikken 1296 00:56:08,139 --> 00:56:09,510 maar groeien om de vorm te passen. 1297 00:56:09,510 --> 00:56:10,310 Dus dat is goed. 1298 00:56:10,310 --> 00:56:11,530 En nu, als ik klik op het spel. 1299 00:56:11,530 --> 00:56:13,870 >> [MIAUWEN] 1300 00:56:13,870 --> 00:56:14,370 1301 00:56:14,370 --> 00:56:15,620 Erg fijn. 1302 00:56:15,620 --> 00:56:16,126 Okee. 1303 00:56:16,126 --> 00:56:18,500 En nu is het heel gemakkelijk om veranderen ook, want ik kan gewoon 1304 00:56:18,500 --> 00:56:20,670 veranderen één nummer op één plek. 1305 00:56:20,670 --> 00:56:22,500 Maar ook dit is niet zo interessant. 1306 00:56:22,500 --> 00:56:25,350 Laten we eigenlijk Scratch niet miauw, maar bewegen. 1307 00:56:25,350 --> 00:56:32,680 Laat me gaan naar Motion en bewegen 10 stappen binnen van-- whoops, laat me dit op te lossen. 1308 00:56:32,680 --> 00:56:37,460 Laat me het te verplaatsen 10 steps-- eigenlijk, laten we niet te herhalen. 1309 00:56:37,460 --> 00:56:40,670 Laat me pak een controle blok, en doe het volgende voor altijd. 1310 00:56:40,670 --> 00:56:42,720 Altijd, bewegen 10 stappen. 1311 00:56:42,720 --> 00:56:45,070 En klik op Play. 1312 00:56:45,070 --> 00:56:45,600 >> OK. 1313 00:56:45,600 --> 00:56:46,740 Dus gelukkig, stopt hij. 1314 00:56:46,740 --> 00:56:49,710 Anders kinderen zou krijgen erg overstuur als ze een soort van verliezen hun kat. 1315 00:56:49,710 --> 00:56:52,720 Maar in ieder geval ik kan slepen hem terug in het scherm. 1316 00:56:52,720 --> 00:56:56,177 Maar dit is niet alles grote van een spel of animatie. 1317 00:56:56,177 --> 00:56:58,260 Het zou zo misschien wel leuk zijn Hij belandt in de rand. 1318 00:56:58,260 --> 00:57:00,020 Dus wat doen we? 1319 00:57:00,020 --> 00:57:04,302 Wat construct hebben we nodig hebben Scratch besluiten te stuiteren, denk je, 1320 00:57:04,302 --> 00:57:06,010 zelfs als je nog nooit hebt gezien Scratch voordat? 1321 00:57:06,010 --> 00:57:06,593 Ja, in de rug. 1322 00:57:06,593 --> 00:57:08,359 PUBLIEK: Je hebt een als blok of als-dan. 1323 00:57:08,359 --> 00:57:10,650 DAVID MALAN: Ja, dus sommige soort als blok of als-dan. 1324 00:57:10,650 --> 00:57:12,275 Dus eigenlijk hebben we een van deze hier. 1325 00:57:12,275 --> 00:57:14,500 Dus if-- dus laat me ontdoen van de beweging. 1326 00:57:14,500 --> 00:57:16,070 Laat me te vergroten, zodat het is groter. 1327 00:57:16,070 --> 00:57:16,890 Dus hoe zit dit. 1328 00:57:16,890 --> 00:57:21,920 Voor altijd, als Sensing-- we hebben niet eerder gezien. 1329 00:57:21,920 --> 00:57:23,160 Ik moet een Booleaanse uitdrukking. 1330 00:57:23,160 --> 00:57:25,970 En het blijkt dat als het aanraken van wat? 1331 00:57:25,970 --> 00:57:29,030 Als het aanraken van de rand, wat wil ik doen? 1332 00:57:29,030 --> 00:57:32,030 Nou, als ik ga terug naar Motion, blijkt, oh, ik kan omdraaien. 1333 00:57:32,030 --> 00:57:33,350 Laat me dit te slepen in hier. 1334 00:57:33,350 --> 00:57:36,430 Waarom weet ik niet ga je gang en draaien 180 graden? 1335 00:57:36,430 --> 00:57:38,190 >> En nu, laat me gewoon bewegen op het einde. 1336 00:57:38,190 --> 00:57:40,500 Ik kon de beweging op te zetten het begin of het einde. 1337 00:57:40,500 --> 00:57:44,452 Maar logisch, elke keer als ik beweeg, ik wilt controleren, ik ben het aanraken van de rand? 1338 00:57:44,452 --> 00:57:45,410 Ben ik het aanraken van de rand? 1339 00:57:45,410 --> 00:57:46,490 Ben ik het aanraken van de rand? 1340 00:57:46,490 --> 00:57:49,200 Zodat logischerwijs ik me omdraai, zo ja. 1341 00:57:49,200 --> 00:57:51,190 Dus laten we hit te spelen. 1342 00:57:51,190 --> 00:57:52,030 >> OK. 1343 00:57:52,030 --> 00:57:53,910 Dus het is een beetje buggy, om zo te zeggen. 1344 00:57:53,910 --> 00:57:56,560 En een bug is gewoon een vergissing in een computerprogramma. 1345 00:57:56,560 --> 00:57:57,800 Maar in ieder geval dat het werkt. 1346 00:57:57,800 --> 00:57:59,420 En in feite, kan ik hier naar binnen. 1347 00:57:59,420 --> 00:58:03,130 En laat me niet 10 stappen bij een tijd, maar dit is wel animatie. 1348 00:58:03,130 --> 00:58:05,310 Dit is allemaal een cartoon of zelfs een film is. 1349 00:58:05,310 --> 00:58:07,110 Laat me bewegen 20 treden tegelijk. 1350 00:58:07,110 --> 00:58:11,200 Dus 20 keer zo veel dingen gebeuren eenmaal of tweemaal zoveel in dit geval. 1351 00:58:11,200 --> 00:58:12,600 En hij beweegt sneller. 1352 00:58:12,600 --> 00:58:15,150 Laat me veranderen naar 30. 1353 00:58:15,150 --> 00:58:17,450 100. 1354 00:58:17,450 --> 00:58:19,406 1000. 1355 00:58:19,406 --> 00:58:20,530 En het gaat echt snel. 1356 00:58:20,530 --> 00:58:22,190 En dit is-- ja, OK. 1357 00:58:22,190 --> 00:58:24,130 >> Dus nu zijn we gewoon knoeien met het. 1358 00:58:24,130 --> 00:58:24,954 OK, dus buggy. 1359 00:58:24,954 --> 00:58:26,620 Maar we kunnen slepen hem uit de weg hier. 1360 00:58:26,620 --> 00:58:28,286 Maar we kunnen nog leuker te maken met dit, ook. 1361 00:58:28,286 --> 00:58:30,710 Hoe zit het dit-- hij ondersteboven. 1362 00:58:30,710 --> 00:58:32,800 Maar het blijkt Scratch-- en er is eigenlijk, 1363 00:58:32,800 --> 00:58:35,510 Ik moet wijzen, geen academische waarde toe aan wat ik over te doen. 1364 00:58:35,510 --> 00:58:40,200 Maar als ik het openstellen van de microfoon, laten we stop hem en zoiets als dit te doen. 1365 00:58:40,200 --> 00:58:41,960 Ouch! 1366 00:58:41,960 --> 00:58:42,884 >> [LACH] 1367 00:58:42,884 --> 00:58:45,200 1368 00:58:45,200 --> 00:58:45,990 >> Dat was schattig. 1369 00:58:45,990 --> 00:58:46,740 Dank je. 1370 00:58:46,740 --> 00:58:50,850 Nu, dit is wat mijn stem ziet eruit als toen ik schreeuwen ouch. 1371 00:58:50,850 --> 00:58:52,630 Ik denk niet dat we gevangen je lach. 1372 00:58:52,630 --> 00:58:53,280 Dat is geen probleem. 1373 00:58:53,280 --> 00:58:56,550 Laat me dit op te slaan als "ouch." 1374 00:58:56,550 --> 00:58:57,915 Laten we deze opslaan als "ouch". 1375 00:58:57,915 --> 00:58:59,410 En nu gaan we terug naar Scripts. 1376 00:58:59,410 --> 00:59:01,660 En nu heb ik need-- laten we eens kijken, Sound. 1377 00:59:01,660 --> 00:59:03,160 Oh, spelen geluid ouch. 1378 00:59:03,160 --> 00:59:08,180 Dus als ik de rand te raken, laat me eerste toneelstuk ouch, en dan omdraaien. 1379 00:59:08,180 --> 00:59:10,191 En nu laten we hem in het midden. 1380 00:59:10,191 --> 00:59:14,754 >> [Zeggen "OUCH"] 1381 00:59:14,754 --> 00:59:15,740 >> Twee keer zo snel. 1382 00:59:15,740 --> 00:59:20,660 1383 00:59:20,660 --> 00:59:21,830 >> OK. 1384 00:59:21,830 --> 00:59:23,780 Maar het is letterlijk doen wat ik zeg. 1385 00:59:23,780 --> 00:59:27,580 Zodat deze in feite juist, het gewoon een beetje vervelend snel. 1386 00:59:27,580 --> 00:59:30,330 Dus laten we iets toevoegen interessanter deze. 1387 00:59:30,330 --> 00:59:32,950 Laat me eigenlijk open een die ik van tevoren, 1388 00:59:32,950 --> 00:59:38,560 treffend noemde het huisdier van de Kat, die dit doet. 1389 00:59:38,560 --> 00:59:40,340 Hier is het script hier. 1390 00:59:40,340 --> 00:59:44,510 Wat gaat dit doen in het Engels termen? 1391 00:59:44,510 --> 00:59:45,820 Wat is dit ontworpen om te doen? 1392 00:59:45,820 --> 00:59:47,900 Ja, laten we gaan some-- ja? 1393 00:59:47,900 --> 00:59:49,665 >> PUBLIEK: Wanneer u huisdier de kat, hij miauwt. 1394 00:59:49,665 --> 00:59:52,290 DAVID MALAN: Ja, dus als je huisdier de kat, het gaat om te miauwen. 1395 00:59:52,290 --> 00:59:55,452 Dus met andere woorden, er is nu een voor altijd lus nog steeds, in combinatie 1396 00:59:55,452 --> 00:59:57,660 met een aandoening, gecombineerd met een Boole-expressie, 1397 00:59:57,660 --> 01:00:00,140 gecombineerd met een partner functies, het effect 1398 01:00:00,140 --> 01:00:02,610 die, zodra ik speel dit programma is niets 1399 01:00:02,610 --> 01:00:06,820 gebeurt totdat ik de cursor te verplaatsen dichter en dichter en dichter en-- 1400 01:00:06,820 --> 01:00:08,029 >> [MAUW] 1401 01:00:08,029 --> 01:00:09,320 Dan is het net als aaien van de kat. 1402 01:00:09,320 --> 01:00:11,210 [MAUW] 1403 01:00:11,210 --> 01:00:14,270 Slechts eenmaal je eigenlijk Beweeg de cursor over hem. 1404 01:00:14,270 --> 01:00:19,964 Nu, ik ook opgezweept niet huisdier de kat, dat deze plaats doet. 1405 01:00:19,964 --> 01:00:21,350 >> [MIAUWEN] 1406 01:00:21,350 --> 01:00:23,485 >> Dus hij is gewoon constant miauwen. 1407 01:00:23,485 --> 01:00:24,455 >> [MIAUWEN] 1408 01:00:24,455 --> 01:00:27,705 >> Maar als ik te close-- 1409 01:00:27,705 --> 01:00:29,645 >> [MIAUWEN] 1410 01:00:29,645 --> 01:00:32,080 >> [BRULLEN] 1411 01:00:32,080 --> 01:00:33,590 >> Dus hoe werkt dit? 1412 01:00:33,590 --> 01:00:35,880 Nu heb ik gewoon een twee-weg vork in de weg. 1413 01:00:35,880 --> 01:00:38,930 Als het aanraken muisaanwijzer, dan spelen de leeuw geluid. 1414 01:00:38,930 --> 01:00:41,950 Else gewoon spelen de miauw geluid, en wacht drie seconden, zodat 1415 01:00:41,950 --> 01:00:43,880 dat het soort doen het erg rustig. 1416 01:00:43,880 --> 01:00:44,380 Okee. 1417 01:00:44,380 --> 01:00:47,290 Dus dat is een combinatie van wat meer ideeën nog steeds. 1418 01:00:47,290 --> 01:00:50,870 Laten we eens een kijkje nemen op dit voorbeeld Ik slagroom opgeroepen draden. 1419 01:00:50,870 --> 01:00:54,020 En dit is fundamenteel verschillende doordat deze hefbomen 1420 01:00:54,020 --> 01:00:56,070 een kenmerk van veel programmeertaal 1421 01:00:56,070 --> 01:00:59,970 draden, het vermogen van een programma ter letterlijk doen twee dingen tegelijk. 1422 01:00:59,970 --> 01:01:03,600 Sterker nog, deze dagen als je met behulp Google Docs of Microsoft Word, 1423 01:01:03,600 --> 01:01:09,620 en uw document is zich constant spelling gecontroleerd, zelfs als u Motortype- of u 1424 01:01:09,620 --> 01:01:11,580 Ctrl-P of Ctrl-P en afdrukken iets, 1425 01:01:11,580 --> 01:01:13,380 het is het printen terwijl u verder met typen. 1426 01:01:13,380 --> 01:01:16,680 Programma's van vandaag kan inderdaad meerdere doen dingen tegelijk, net als in Scratch 1427 01:01:16,680 --> 01:01:17,180 hier. 1428 01:01:17,180 --> 01:01:20,400 >> Dus hier, ik heb twee sprites nu een vogel en een kat. 1429 01:01:20,400 --> 01:01:22,780 En als ik klik op elk van die tekens een voor een, 1430 01:01:22,780 --> 01:01:25,590 Ik zie op dit moment van de vogel scripts bovenaan rechts. 1431 01:01:25,590 --> 01:01:27,270 Nu zie ik de kat. 1432 01:01:27,270 --> 01:01:28,540 Vogel, kat. 1433 01:01:28,540 --> 01:01:30,270 Dus elk van hen hebben hun eigen script. 1434 01:01:30,270 --> 01:01:32,700 Maar let op, wat puzzelstukje ze allebei beginnen? 1435 01:01:32,700 --> 01:01:34,260 Als groene vlag aangeklikt. 1436 01:01:34,260 --> 01:01:36,890 En vogel, als groene vlag geklikt. 1437 01:01:36,890 --> 01:01:40,870 Dus als ik klik op de groene vlag, allebei van die scripts of programma's 1438 01:01:40,870 --> 01:01:42,759 zullen parallel lopen. 1439 01:01:42,759 --> 01:01:45,800 En je zult merken dat de vogel is net gedachteloos stuiteren de rand. 1440 01:01:45,800 --> 01:01:50,890 De kat duidelijk is geprogrammeerd met een strategisch voordeel. 1441 01:01:50,890 --> 01:01:52,704 En-- 1442 01:01:52,704 --> 01:01:53,490 >> [BRULLEN] 1443 01:01:53,490 --> 01:01:53,821 1444 01:01:53,821 --> 01:01:54,320 Okee. 1445 01:01:54,320 --> 01:01:57,340 Dus de kat ving de vogel in dit geval. 1446 01:01:57,340 --> 01:01:58,390 Waarom is dat? 1447 01:01:58,390 --> 01:02:03,310 Nou, bericht eerst hebben we gewoon de vogel gewoon gedachteloos gaan 1448 01:02:03,310 --> 01:02:05,120 om deze eerste locatie, en dan voor altijd, 1449 01:02:05,120 --> 01:02:06,774 zo niet de kat te raken, gewoon bewegen. 1450 01:02:06,774 --> 01:02:08,190 En als je op de rand, stuiteren. 1451 01:02:08,190 --> 01:02:08,870 En net te verplaatsen. 1452 01:02:08,870 --> 01:02:10,286 En als je op de rand, stuiteren. 1453 01:02:10,286 --> 01:02:12,840 Maar de kat, ondertussen, heeft enkele extra logica 1454 01:02:12,840 --> 01:02:18,250 dat zegt dit-- eerste, net zo dat dit niet volledig bevooroordeeld 1455 01:02:18,250 --> 01:02:21,191 tegen de vogel, merk dat ik heb gebruik gemaakt van een groene puzzelstuk er 1456 01:02:21,191 --> 01:02:22,690 die daadwerkelijk kiest een willekeurig getal. 1457 01:02:22,690 --> 01:02:26,179 Een kenmerk van vele talen is te geven u willekeurige of pseudo-willekeurige getallen. 1458 01:02:26,179 --> 01:02:29,220 Dus in dit geval, de kat aanvankelijk kiest een willekeurig getal tussen, zoals, 1459 01:02:29,220 --> 01:02:31,727 90 graden en 180 graden, in wezen, dus 1460 01:02:31,727 --> 01:02:33,310 dat er een klein beetje van de variantie. 1461 01:02:33,310 --> 01:02:37,000 En dan voor altijd, als ontroerend de vogel, spelen de leeuw geluid. 1462 01:02:37,000 --> 01:02:38,754 Anders gewoon wijzen in de richting van de vogel. 1463 01:02:38,754 --> 01:02:39,670 Wijzen in de richting van de vogel. 1464 01:02:39,670 --> 01:02:44,199 Punt naar de vogel, die een puzzelstukje op zichzelf in dit geval. 1465 01:02:44,199 --> 01:02:45,740 Nou, we kunnen een ander ding hier te doen. 1466 01:02:45,740 --> 01:02:49,820 Laat ik het openstellen van de gebeurtenissen programma hier. 1467 01:02:49,820 --> 01:02:53,520 En hier hebben we weer twee sprites, die eruit zien als deze twee marionetten hier. 1468 01:02:53,520 --> 01:02:55,710 En wat interessant is hier dit. 1469 01:02:55,710 --> 01:02:59,140 De oranje man heeft dit set van puzzelstukjes hier. 1470 01:02:59,140 --> 01:03:01,700 Altijd doen de following-- indien de spatiebalk ingedrukt, 1471 01:03:01,700 --> 01:03:05,430 dan zeggen, Marco, en vervolgens uitgezonden een gebeurtenis. 1472 01:03:05,430 --> 01:03:09,460 En ondertussen, de blauwe man heeft hier dit-- wanneer u de gebeurtenis ontvangt, 1473 01:03:09,460 --> 01:03:10,540 zeggen Polo. 1474 01:03:10,540 --> 01:03:12,850 Dus het blijkt in Scratch en in andere talen, 1475 01:03:12,850 --> 01:03:15,830 er zijn manieren voor twee programma's of twee scripts, in casu 1476 01:03:15,830 --> 01:03:20,310 aan elkaar verbonden zodat wanneer ik druk op de spatiebalk, zegt Marco. 1477 01:03:20,310 --> 01:03:23,539 En de ander die hoort bij wijze van spreken en zegt Polo in reactie. 1478 01:03:23,539 --> 01:03:26,080 Dus je kunt programma's schrijven dat zich gedragen op deze manier. 1479 01:03:26,080 --> 01:03:28,630 En als ik dit één plaats, Ik kan zelfs variabelen toe te voegen, 1480 01:03:28,630 --> 01:03:31,287 alleen met behulp van een sprite in dit geval. 1481 01:03:31,287 --> 01:03:32,578 Deze is vooral vervelend. 1482 01:03:32,578 --> 01:03:36,174 >> [SEAL BARKING] 1483 01:03:36,174 --> 01:03:37,100 1484 01:03:37,100 --> 01:03:42,490 >> Nu, let op de juiste we hebben wat extra logica hier. 1485 01:03:42,490 --> 01:03:45,146 Hoe voorkom ik dat dit zegel met blaffen? 1486 01:03:45,146 --> 01:03:48,320 >> [SEAL BARKING] 1487 01:03:48,320 --> 01:03:52,830 1488 01:03:52,830 --> 01:03:55,630 >> Het lijkt erop dat op de rechter side is wat is het spelen van het geluid. 1489 01:03:55,630 --> 01:03:58,500 Maar het is alleen het spelen van een klinkt als wat waar is? 1490 01:03:58,500 --> 01:04:03,390 Als een variable-- oranje block-- gedempt is nul. 1491 01:04:03,390 --> 01:04:07,916 Hoe kan ik gedempt veranderen te zijn 1, wat betekent dat waar is, maken dit gedempt? 1492 01:04:07,916 --> 01:04:12,455 Blijkbaar is de andere script, kan ik druk op de spatiebalk, en nu stopt hij. 1493 01:04:12,455 --> 01:04:15,080 Dus we kunnen deze onderling contact hebben over scripts, maar ook, 1494 01:04:15,080 --> 01:04:18,349 door gewoon het delen van een variabele over de twee als deze. 1495 01:04:18,349 --> 01:04:19,890 Nu, dit is niet zo interessant. 1496 01:04:19,890 --> 01:04:24,360 Laten we gaan en dit te doen en te combineren veel van deze ideeën met dit programma 1497 01:04:24,360 --> 01:04:25,940 hier. 1498 01:04:25,940 --> 01:04:28,100 Voordat we dat doen, hoewel, wat dacht je van een vrijwilliger? 1499 01:04:28,100 --> 01:04:30,558 Laat me de druk opstijgen van me omdat ik niet echt 1500 01:04:30,558 --> 01:04:31,280 speel dit spel. 1501 01:04:31,280 --> 01:04:33,030 Laten we iemand die we nog niet eerder gezien. 1502 01:04:33,030 --> 01:04:36,420 Je moet comfortabel komst op het podium hier, op de camera. 1503 01:04:36,420 --> 01:04:37,430 OK, kom op. 1504 01:04:37,430 --> 01:04:38,130 Erg dapper. 1505 01:04:38,130 --> 01:04:39,052 Wat is je naam? 1506 01:04:39,052 --> 01:04:39,962 >> IDRIS: Idris. 1507 01:04:39,962 --> 01:04:40,753 DAVID MALAN: Sorry? 1508 01:04:40,753 --> 01:04:41,196 IDRIS: Idris. 1509 01:04:41,196 --> 01:04:42,670 DAVID MALAN: Idris, leuk je te ontmoeten. 1510 01:04:42,670 --> 01:04:43,170 Kom maar naar boven. 1511 01:04:43,170 --> 01:04:45,630 En nu, op uw eigen mobiele telefoon, heb je Pokemon GO spelen? 1512 01:04:45,630 --> 01:04:46,567 >> IDRIS: No. 1513 01:04:46,567 --> 01:04:47,400 DAVID MALAN: Echt waar? 1514 01:04:47,400 --> 01:04:48,104 IDRIS: Ja. 1515 01:04:48,104 --> 01:04:48,770 DAVID MALAN: OK. 1516 01:04:48,770 --> 01:04:49,020 Okee. 1517 01:04:49,020 --> 01:04:49,978 Leuk om je te ontmoeten. 1518 01:04:49,978 --> 01:04:50,820 Kom op dan. 1519 01:04:50,820 --> 01:04:51,950 Ik ook niet. 1520 01:04:51,950 --> 01:04:55,380 Dus zullen we samen uitzoeken hoe spelen dit, dat iemand daadwerkelijk 1521 01:04:55,380 --> 01:05:00,140 ging en in Scratch geïmplementeerd door het veranderen van de kat in wezen 1522 01:05:00,140 --> 01:05:02,260 verschillende personages allemaal samen. 1523 01:05:02,260 --> 01:05:04,870 En als ik fullscreen dit hier, gaan we 1524 01:05:04,870 --> 01:05:06,860 naar het volgende spel samen te zien. 1525 01:05:06,860 --> 01:05:09,560 Nog aan het laden, nog steeds geladen. 1526 01:05:09,560 --> 01:05:10,270 Kom op. 1527 01:05:10,270 --> 01:05:12,590 Laat mij dit te doen. 1528 01:05:12,590 --> 01:05:14,520 Kom op. 1529 01:05:14,520 --> 01:05:17,200 Dit spel is zo groot dat het crashte. 1530 01:05:17,200 --> 01:05:18,980 Stand-by. 1531 01:05:18,980 --> 01:05:22,390 Probeer dit eens te meer. 1532 01:05:22,390 --> 01:05:23,710 Kom op. 1533 01:05:23,710 --> 01:05:24,211 Okee. 1534 01:05:24,211 --> 01:05:26,840 1535 01:05:26,840 --> 01:05:27,430 >> Daar gaan we. 1536 01:05:27,430 --> 01:05:27,929 OK. 1537 01:05:27,929 --> 01:05:29,330 Groene vlag. 1538 01:05:29,330 --> 01:05:30,190 Dus hier gaan we. 1539 01:05:30,190 --> 01:05:30,950 >> [Muziek] 1540 01:05:30,950 --> 01:05:32,510 >> Kies hier het middelste niveau. 1541 01:05:32,510 --> 01:05:34,200 Klik op de blauwe jongen daar. 1542 01:05:34,200 --> 01:05:34,700 Okee. 1543 01:05:34,700 --> 01:05:37,860 En u kunt gebruik maken van de pijl keys-- omhoog, omlaag, links, rechts. 1544 01:05:37,860 --> 01:05:42,150 Nu, laten we eens kijken als we dit-- doen en dan gaan na het teken daar. 1545 01:05:42,150 --> 01:05:42,650 Yep. 1546 01:05:42,650 --> 01:05:45,786 En nu op hem met de muis. 1547 01:05:45,786 --> 01:05:46,693 O ja. 1548 01:05:46,693 --> 01:05:47,193 Move. 1549 01:05:47,193 --> 01:05:47,662 Waar is de pijl? 1550 01:05:47,662 --> 01:05:48,131 Alsjeblieft. 1551 01:05:48,131 --> 01:05:48,600 Klik dus op daar. 1552 01:05:48,600 --> 01:05:48,840 Ja. 1553 01:05:48,840 --> 01:05:49,340 Okee. 1554 01:05:49,340 --> 01:05:56,008 Dus nu ben ik verteld heb je een Poke bal, dat als klikt, zal het dat doen. 1555 01:05:56,008 --> 01:05:57,932 Erg goed. 1556 01:05:57,932 --> 01:06:00,390 In het oefenen voor vandaag, ik vond deze versie van het spel 1557 01:06:00,390 --> 01:06:01,760 eigenlijk niet erg hard. 1558 01:06:01,760 --> 01:06:07,650 Dus als je hier weer willen gaan, naar beneden lopen naar deze Poke bal. 1559 01:06:07,650 --> 01:06:08,780 En ga dan rechtsaf. 1560 01:06:08,780 --> 01:06:11,200 Klik op het. 1561 01:06:11,200 --> 01:06:13,120 Oh, eigenlijk, dat is de opslag, blijkbaar. 1562 01:06:13,120 --> 01:06:14,170 OK zo dichtbij dat. 1563 01:06:14,170 --> 01:06:15,150 Nog nooit gedaan dat vóór. 1564 01:06:15,150 --> 01:06:16,566 Misschien tot dit ding hier. 1565 01:06:16,566 --> 01:06:17,460 Oh, daar ga je. 1566 01:06:17,460 --> 01:06:18,910 Wacht, er is één daar. 1567 01:06:18,910 --> 01:06:20,412 Oh, er is een andere. 1568 01:06:20,412 --> 01:06:21,285 OK. 1569 01:06:21,285 --> 01:06:21,785 Down. 1570 01:06:21,785 --> 01:06:23,210 Ja, klikt u op. 1571 01:06:23,210 --> 01:06:24,635 >> OK, dat is heel schattig. 1572 01:06:24,635 --> 01:06:27,485 1573 01:06:27,485 --> 01:06:28,810 OK, zeer goed gedaan. 1574 01:06:28,810 --> 01:06:30,010 Dit spel is niet erg hard. 1575 01:06:30,010 --> 01:06:30,510 OK. 1576 01:06:30,510 --> 01:06:32,150 Gefeliciteerd. 1577 01:06:32,150 --> 01:06:34,720 Hier hebben we een CS50 stressbal voor jou. 1578 01:06:34,720 --> 01:06:37,680 Maar overwegen voor slechts een moment wat sommige van de afhaalrestaurants zijn er. 1579 01:06:37,680 --> 01:06:39,263 Makkelijker dan het echte spel, blijkbaar. 1580 01:06:39,263 --> 01:06:41,809 Maar alles wat we hebben te gaan hier is een teken 1581 01:06:41,809 --> 01:06:44,100 dat heeft waarschijnlijk een soort van de lus die ermee verbonden zijn. 1582 01:06:44,100 --> 01:06:44,590 Het is niet een kat. 1583 01:06:44,590 --> 01:06:45,860 Het is dit karakter in plaats daarvan. 1584 01:06:45,860 --> 01:06:49,052 En dat lus is gewoon constant zeggende als pijl omhoog gedrukt, 1585 01:06:49,052 --> 01:06:51,260 Als de pijl naar beneden gedrukt, indien pijl naar links of rechts gedrukt 1586 01:06:51,260 --> 01:06:53,960 pijl ingedrukt, omhoog of naar beneden of naar links of rechts. 1587 01:06:53,960 --> 01:06:57,870 Of als er een ander puzzelstukje er die zegt dat bij het aanraken van een andere sprite, 1588 01:06:57,870 --> 01:07:01,320 bij het aanraken van een van de personages de Poke bal, zo ontroerend, 1589 01:07:01,320 --> 01:07:02,440 dan is dit te doen. 1590 01:07:02,440 --> 01:07:04,800 >> Dus al van de ideeën die we hebben gebruikt tot nu toe heel 1591 01:07:04,800 --> 01:07:09,130 kunnen alleen worden toegepast in het onderhavige context om dit spel te spelen, als goed. 1592 01:07:09,130 --> 01:07:13,580 Laat me ga je gang en trek één andere hier in feite. 1593 01:07:13,580 --> 01:07:17,060 Laat me ga je gang en trek up, laten we zeggen, dit. 1594 01:07:17,060 --> 01:07:18,540 Dit is iets wat we remixed. 1595 01:07:18,540 --> 01:07:20,329 Gemaakt door een van onze studenten in Cambridge, 1596 01:07:20,329 --> 01:07:23,370 en toen ging ik door en veranderde vrijwel elke instantie van Harvard 1597 01:07:23,370 --> 01:07:25,580 Yale ditmaal. 1598 01:07:25,580 --> 01:07:27,870 Zou iemand willen concurreren tegen de Ivies 1599 01:07:27,870 --> 01:07:31,650 hier een accumulatie al deze ideeën? 1600 01:07:31,650 --> 01:07:32,662 Kom naar beneden, ja. 1601 01:07:32,662 --> 01:07:33,370 Wat is je naam? 1602 01:07:33,370 --> 01:07:34,190 >> DINA: Dina. 1603 01:07:34,190 --> 01:07:35,015 >> DAVID MALAN: Adina? 1604 01:07:35,015 --> 01:07:35,380 >> DINA: Dina. 1605 01:07:35,380 --> 01:07:36,410 >> DAVID MALAN: Dina, kom naar beneden. 1606 01:07:36,410 --> 01:07:37,320 Oké, Dina. 1607 01:07:37,320 --> 01:07:40,780 Dus dit spel wordt harder en harder, want in dit spel, 1608 01:07:40,780 --> 01:07:43,970 er variabelen worden ook gebruikt dat voortdurend bijhouden 1609 01:07:43,970 --> 01:07:45,930 van welk niveau je bent in het spel. 1610 01:07:45,930 --> 01:07:47,120 Zo leuk om je te ontmoeten. 1611 01:07:47,120 --> 01:07:48,250 Kom hier rond. 1612 01:07:48,250 --> 01:07:51,460 En dus het doel hier is om te sorteren maken van je weg door een doolhof 1613 01:07:51,460 --> 01:07:52,710 dat deze student geïmplementeerd. 1614 01:07:52,710 --> 01:07:55,334 >> En alleen maar om het podium, elke van deze foto's op het scherm 1615 01:07:55,334 --> 01:07:57,222 is zijn eigen sprite, een eigen karakter. 1616 01:07:57,222 --> 01:07:59,680 Dus deze waren standaard katten, maar de student veranderde hen 1617 01:07:59,680 --> 01:08:01,480 de verschillende Ivies logos hier. 1618 01:08:01,480 --> 01:08:04,370 En dan zul je dat gewoon zien door het gebruik van voorwaarden en loops 1619 01:08:04,370 --> 01:08:06,848 en functies en meer, krijg je dit. 1620 01:08:06,848 --> 01:08:07,478 >> [Muziek] 1621 01:08:07,478 --> 01:08:09,228 [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1622 01:08:09,228 --> 01:08:13,060 1623 01:08:13,060 --> 01:08:14,018 >> Ja oke. 1624 01:08:14,018 --> 01:08:17,371 1625 01:08:17,371 --> 01:08:20,110 Ja, ga door. 1626 01:08:20,110 --> 01:08:21,180 Eerste niveau is heel eenvoudig. 1627 01:08:21,180 --> 01:08:22,554 Je hebt net om daar te gaan. 1628 01:08:22,554 --> 01:08:25,644 Maar nogmaals, overwegen, dit is gewoon een lus te luisteren naar de pijl keys-- 1629 01:08:25,644 --> 01:08:26,560 omhoog omlaag links rechts. 1630 01:08:26,560 --> 01:08:28,320 En nu een sensing blok. 1631 01:08:28,320 --> 01:08:29,345 Erg fijn. 1632 01:08:29,345 --> 01:08:32,600 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1633 01:08:32,600 --> 01:08:40,340 1634 01:08:40,340 --> 01:08:41,288 >> Erg fijn. 1635 01:08:41,288 --> 01:08:44,550 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1636 01:08:44,550 --> 01:08:55,540 1637 01:08:55,540 --> 01:08:56,430 >> Erg fijn. 1638 01:08:56,430 --> 01:08:57,975 Lekker makkelijk, Crimson. 1639 01:08:57,975 --> 01:08:59,060 Okee. 1640 01:08:59,060 --> 01:09:00,250 Levels-- uh-oh. 1641 01:09:00,250 --> 01:09:02,380 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1642 01:09:02,380 --> 01:09:04,980 1643 01:09:04,980 --> 01:09:07,150 >> En nogmaals, in deze drie Harvard kammen, 1644 01:09:07,150 --> 01:09:10,334 hoef je alleen maar de logica zeggen als op de rand, bounce. 1645 01:09:10,334 --> 01:09:13,238 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1646 01:09:13,238 --> 01:09:14,690 1647 01:09:14,690 --> 01:09:17,651 >> OK, wat je doet is interessanter dan waarom. 1648 01:09:17,651 --> 01:09:18,150 Erg fijn. 1649 01:09:18,150 --> 01:09:18,810 Erg fijn. 1650 01:09:18,810 --> 01:09:20,270 Oh Oh. 1651 01:09:20,270 --> 01:09:23,350 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1652 01:09:23,350 --> 01:09:26,005 1653 01:09:26,005 --> 01:09:27,630 Ik denk dat je moet jezelf opofferen. 1654 01:09:27,630 --> 01:09:30,372 [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1655 01:09:30,372 --> 01:09:30,872 Snel! 1656 01:09:30,872 --> 01:09:34,848 1657 01:09:34,848 --> 01:09:38,824 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1658 01:09:38,824 --> 01:09:44,288 1659 01:09:44,288 --> 01:09:44,788 Nice. 1660 01:09:44,788 --> 01:09:52,240 1661 01:09:52,240 --> 01:09:52,740 Dat is geen probleem. 1662 01:09:52,740 --> 01:09:53,770 Je zult krijgen. 1663 01:09:53,770 --> 01:09:56,304 Ja, ja! 1664 01:09:56,304 --> 01:09:58,256 Erg fijn. 1665 01:09:58,256 --> 01:10:01,184 >> [TOEJUICHENDE] 1666 01:10:01,184 --> 01:10:02,160 1667 01:10:02,160 --> 01:10:05,576 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1668 01:10:05,576 --> 01:10:09,480 1669 01:10:09,480 --> 01:10:10,940 >> Nice! 1670 01:10:10,940 --> 01:10:14,370 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1671 01:10:14,370 --> 01:10:39,050 1672 01:10:39,050 --> 01:10:39,550 Begrepen. 1673 01:10:39,550 --> 01:10:41,510 Kom op! 1674 01:10:41,510 --> 01:10:43,470 Voorlaatste niveau. 1675 01:10:43,470 --> 01:10:46,900 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1676 01:10:46,900 --> 01:10:49,588 1677 01:10:49,588 --> 01:10:50,580 >> Okee. 1678 01:10:50,580 --> 01:10:54,052 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1679 01:10:54,052 --> 01:11:00,992 1680 01:11:00,992 --> 01:11:01,492 Ja. 1681 01:11:01,492 --> 01:11:06,230 1682 01:11:06,230 --> 01:11:08,020 Goed gebruik van variabelen hier. 1683 01:11:08,020 --> 01:11:09,770 [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1684 01:11:09,770 --> 01:11:10,770 Ja. 1685 01:11:10,770 --> 01:11:14,743 [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1686 01:11:14,743 --> 01:11:16,707 1687 01:11:16,707 --> 01:11:17,689 Nice. 1688 01:11:17,689 --> 01:11:21,126 [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1689 01:11:21,126 --> 01:11:23,581 1690 01:11:23,581 --> 01:11:24,570 Het is ok. 1691 01:11:24,570 --> 01:11:25,770 We kwamen aan het einde te komen. 1692 01:11:25,770 --> 01:11:26,270 Er. 1693 01:11:26,270 --> 01:11:27,010 Oh! 1694 01:11:27,010 --> 01:11:29,980 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1695 01:11:29,980 --> 01:11:32,160 1696 01:11:32,160 --> 01:11:34,866 >> Misschien laat vandaag lopen, maar het zal de moeite waard zijn. 1697 01:11:34,866 --> 01:11:38,200 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1698 01:11:38,200 --> 01:11:39,640 1699 01:11:39,640 --> 01:11:42,520 >> Je kan het! 1700 01:11:42,520 --> 01:11:43,480 Ja! 1701 01:11:43,480 --> 01:11:46,278 >> [TOEJUICHENDE] 1702 01:11:46,278 --> 01:11:47,230 1703 01:11:47,230 --> 01:11:50,086 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1704 01:11:50,086 --> 01:11:51,470 >> Deze is echt moeilijk. 1705 01:11:51,470 --> 01:11:54,070 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1706 01:11:54,070 --> 01:11:57,458 1707 01:11:57,458 --> 01:11:59,000 >> We zullen jullie meer leven te geven. 1708 01:11:59,000 --> 01:11:59,968 Kun je het doen? 1709 01:11:59,968 --> 01:12:03,356 >> [MUZIEK - MC Hammer, "U KAN NIET AAN  DEZE"] 1710 01:12:03,356 --> 01:12:06,744 1711 01:12:06,744 --> 01:12:07,244 >> Okee. 1712 01:12:07,244 --> 01:12:09,160 Wat dacht je van een grote ronde applaus toch. 1713 01:12:09,160 --> 01:12:10,800 Je moet de voorlaatste niveau. 1714 01:12:10,800 --> 01:12:11,723 Dank je. 1715 01:12:11,723 --> 01:12:14,964 >> [APPLAUS] 1716 01:12:14,964 --> 01:12:15,890 1717 01:12:15,890 --> 01:12:19,600 >> Dus dit is alleen maar om te zeggen hoeveel u kan doen met dit soort dingen. 1718 01:12:19,600 --> 01:12:21,892 En beseffen ook dat wanneer puzzelstukjes niet exist-- 1719 01:12:21,892 --> 01:12:24,891 en inderdaad, dit gaat om één te zijn van de bevoegdheden met het eerste probleem 1720 01:12:24,891 --> 01:12:27,080 sets en beyond-- is eigenlijk maak uw eigen. 1721 01:12:27,080 --> 01:12:28,860 En dit is slechts een fragment één van de voorbeelden 1722 01:12:28,860 --> 01:12:30,230 zult u in staat om te spelen met online, waarbij 1723 01:12:30,230 --> 01:12:33,380 als je het niet hebt ingebouwd in Scratch zoiets als een hoest puzzelstukje, 1724 01:12:33,380 --> 01:12:35,470 je kunt eigenlijk maken het zelf. 1725 01:12:35,470 --> 01:12:37,387 >> En dus dit alles en meer wacht. 1726 01:12:37,387 --> 01:12:39,470 En alleen maar om te schilderen een uiteindelijke beeld van wat er werkelijk 1727 01:12:39,470 --> 01:12:43,120 vooruit in petto voor de klasse voor u, gebaseerd op enkele foto's van klasgenoten 1728 01:12:43,120 --> 01:12:46,970 verleden, wil ik de lichten dimmen een laatste keer en je laten zien CS50. 1729 01:12:46,970 --> 01:12:49,580 1730 01:12:49,580 --> 01:12:53,038 >> [Muziek] 1731 01:12:53,038 --> 01:14:38,210 1732 01:14:38,210 --> 01:14:38,860 >> Okee. 1733 01:14:38,860 --> 01:14:41,540 Dat is het voor CS50. 1734 01:14:41,540 --> 01:14:44,964 Cake wordt nu bediend. 1735 01:14:44,964 --> 01:14:50,610 1736 01:14:50,610 --> 01:14:53,960 >> [Muziek] 1737 01:14:53,960 --> 01:15:07,624