1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Muziek] 3 00:00:10,830 --> 00:00:12,080 [MUZIEK - Rossini, "RANZ DES VACHES "VAN WILLIAM TELL] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUZIEK - HET ENGELS BEAT, "MAART VAN DE kantelkoppen "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Applaus en gejuich] 8 00:02:31,510 --> 00:02:33,520 >> DAVID Malan: Dus dit is CS50. 9 00:02:33,520 --> 00:02:34,730 Mijn naam is David Malan. 10 00:02:34,730 --> 00:02:39,250 En 73% van u nog geen ervaring met de informatica, 11 00:02:39,250 --> 00:02:41,300 in tegenstelling tot wat je zou denken. 12 00:02:41,300 --> 00:02:45,290 Dus vandaag hebben we dachten dat we zouden een chip weg op dat gebrek aan vertrouwdheid, maar ook 13 00:02:45,290 --> 00:02:48,970 geven je een gevoel van, voor degenen onder u met meer comfort, welke richtingen 14 00:02:48,970 --> 00:02:50,550 U kunt dit semester gaan. 15 00:02:50,550 --> 00:02:51,890 >> Dus laten we beginnen met deze. 16 00:02:51,890 --> 00:02:55,490 Ik heb echt geen idee wat er in een computer, ook al, net als u, ik 17 00:02:55,490 --> 00:02:56,780 gebruiken het elke dag. 18 00:02:56,780 --> 00:03:00,000 Maar het is een soort doos, en er is niet veel ingangen in. 19 00:03:00,000 --> 00:03:01,350 Minimaal, er is, wat? 20 00:03:01,350 --> 00:03:03,120 Waarschijnlijk een stroomkabel. 21 00:03:03,120 --> 00:03:06,640 >> En inderdaad met dit ene ingrediënt, elektriciteit, lijken we in staat te zijn 22 00:03:06,640 --> 00:03:09,490 het doen van heel wat deze dagen. 23 00:03:09,490 --> 00:03:12,130 Maar aan het eind van de dag, we hebben om de dingen te vertegenwoordigen 24 00:03:12,130 --> 00:03:12,860 dat we de zorg over. 25 00:03:12,860 --> 00:03:15,240 We moeten informatie vertegenwoordigen in een bepaalde vorm. 26 00:03:15,240 --> 00:03:18,365 En je bent waarschijnlijk op zijn minst vaag bekend met het idee van binaire of 27 00:03:18,365 --> 00:03:21,370 stukjes of andere manier, computers gereduceerd tot nullen en enen. 28 00:03:21,370 --> 00:03:26,320 Maar we kunnen omarmen dat en ten minste zet een beetje licht aan dat? 29 00:03:26,320 --> 00:03:28,880 >> Dus ik heb deze kleine bureaulampen hier. 30 00:03:28,880 --> 00:03:30,450 Ik heb hier een stopcontact. 31 00:03:30,450 --> 00:03:33,930 En ik ga dat in voorstellen mijn computer ten minste een 32 00:03:33,930 --> 00:03:37,300 deze dingen, wat staat worden in-of uitgeschakeld. 33 00:03:37,300 --> 00:03:40,200 In dit geval is het inderdaad een desk lamp, maar op het lagere niveau, het is iets 34 00:03:40,200 --> 00:03:41,500 genoemd transistor. 35 00:03:41,500 --> 00:03:44,730 >> Maar in onze wereld, het is een bureaulamp, dus Ik ga om te gaan en sluit deze 36 00:03:44,730 --> 00:03:47,990 in mijn elektriciteit hier. 37 00:03:47,990 --> 00:03:52,970 En ik beweer dat met behulp van deze eenvoudige, eenvoudig apparaat, deze eenvoudige schakelaar, I 38 00:03:52,970 --> 00:03:54,850 kan informatie vertegenwoordigen. 39 00:03:54,850 --> 00:03:58,090 Bijvoorbeeld, op dit moment, ben ik wat neerkomt op niets, toch? 40 00:03:58,090 --> 00:04:01,820 Ik vertegenwoordig wat ik bel 0 of vals, het tegenovergestelde van iets 41 00:04:01,820 --> 00:04:03,130 daadwerkelijk aanwezig zijn. 42 00:04:03,130 --> 00:04:07,050 Maar als ik draai gewoon deze schakelaar, nu heb ik voorgesteld een 1. 43 00:04:07,050 --> 00:04:10,720 Dus met behulp van deze zeer eenvoudig stuk geheugen, als je wil, kan ik vertegenwoordig 44 00:04:10,720 --> 00:04:11,450 gegevens. 45 00:04:11,450 --> 00:04:14,350 >> Nu helaas, mijn computer kan niet zo heel veel. 46 00:04:14,350 --> 00:04:17,430 Het kan slechts twee waarden vertegenwoordigen in de hele wereld - 47 00:04:17,430 --> 00:04:18,620 0 of 1. 48 00:04:18,620 --> 00:04:21,839 Maar wat is een voor de hand liggende oplossing, nu, als we willen uitbreiden onze computer 49 00:04:21,839 --> 00:04:25,120 geheugen en vertegenwoordigen meer dan 0 en 1? 50 00:04:25,120 --> 00:04:27,060 >> Nou, laten we het pak nog zo'n beetje. 51 00:04:27,060 --> 00:04:30,260 Laten we pakken een andere schakelaar, een andere transistor, maar u wilt 52 00:04:30,260 --> 00:04:31,130 denk erover na. 53 00:04:31,130 --> 00:04:34,170 Laat me ga je gang en sluit deze in mijn computer ook. 54 00:04:34,170 --> 00:04:38,270 En ik ga conclusie, nu, dat door met behulp van een beetje meer elektriciteit en 55 00:04:38,270 --> 00:04:42,290 meer van deze schakelaars aan-en off, kan ik nog meer zulke vertegenwoordig 56 00:04:42,290 --> 00:04:43,020 gegevens. 57 00:04:43,020 --> 00:04:44,660 >> Dus nu, dit is 1. 58 00:04:44,660 --> 00:04:48,120 Als ik nu wil vertegenwoordigen 2, Ik zou dit kunnen doen. 59 00:04:48,120 --> 00:04:51,510 Maar meestal, conventie, zoals we zullen uiteindelijk zie, zal ik dit doen. 60 00:04:51,510 --> 00:04:55,260 Dus dit is 0, is 1. 61 00:04:55,260 --> 00:04:56,720 Dit zou 2. 62 00:04:56,720 --> 00:04:59,920 En niet verrassend, dit zou zijn 3. 63 00:04:59,920 --> 00:05:02,610 >> Dus op deze manier, nog, kan We tellen nog verder? 64 00:05:02,610 --> 00:05:06,500 Als ik een derde bit, een derde schakelaar, wat is het hoogste aantal dat kan ik nu 65 00:05:06,500 --> 00:05:09,720 tellen tot van 0? 66 00:05:09,720 --> 00:05:12,020 Dus 7 als ik ben beginnen bij 0, toch? 67 00:05:12,020 --> 00:05:15,980 Want als ik dit licht op en eigenlijk sluit deze derde en laatste 68 00:05:15,980 --> 00:05:20,090 licht in mijn stopcontact hier, dan heb ik de mogelijkheid om te vertegenwoordigen 69 00:05:20,090 --> 00:05:24,930 geven twee waarden hier twee waarden Hier, twee waarden hier - 70 00:05:24,930 --> 00:05:32,610 en zo kan ik 2 maal 2 maal vertegenwoordigen 2 of acht mogelijke waarden. 71 00:05:32,610 --> 00:05:36,340 En als ik begin boekhouding bij 0, dus dat is 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Dus dit binaire. 73 00:05:37,480 --> 00:05:39,420 Het is echt zo simpel als dat. 74 00:05:39,420 --> 00:05:41,930 En ik zou beweren dat dit eigenlijk heel vertrouwd voor de meeste 75 00:05:41,930 --> 00:05:43,180 iedereen in deze kamer. 76 00:05:43,180 --> 00:05:45,710 Laat me ga je gang en open een weinig tekst editor hier. 77 00:05:45,710 --> 00:05:49,040 >> En je zou kunnen herinneren van de lagere school dat we dingen als de honderden 78 00:05:49,040 --> 00:05:51,970 plaats, de tienen plaats, en degenen plek. 79 00:05:51,970 --> 00:05:55,040 En herinneren dat als je wat decimale gehad nummer, als iets willekeurig 80 00:05:55,040 --> 00:05:59,470 zoals 123, je zou wezen schrijven dat in de vorm 81 00:05:59,470 --> 00:06:00,450 van deze drie kolommen. 82 00:06:00,450 --> 00:06:04,070 En waarom is 1, 2, 3 wat wij kennen als 123? 83 00:06:04,070 --> 00:06:11,220 Nou, in de linkerkolom, hebben we een 100 plus twee 10s, dus dat is 120, 84 00:06:11,220 --> 00:06:14,250 plus drie 1s, dus dat is 123. 85 00:06:14,250 --> 00:06:17,990 >> Nu deze wereld die we gewoon verlicht is hetzelfde als 86 00:06:17,990 --> 00:06:21,150 u bekend met geweest voor jaren, behalve nu, onze columns 87 00:06:21,150 --> 00:06:22,060 zijn geen machten van 10. 88 00:06:22,060 --> 00:06:23,780 Ze zijn gewoon machten van 2. 89 00:06:23,780 --> 00:06:27,830 Dus terwijl dat zijn degenen plek, dit gaat het Tweeën plaats, dit is 90 00:06:27,830 --> 00:06:29,540 gaan naar de fours plaats. 91 00:06:29,540 --> 00:06:33,260 >> En omdat ik alleen met behulp van de eenvoudigste van mechanismen om dingen te draaien 92 00:06:33,260 --> 00:06:37,100 aan en uit - elektriciteit stroomt of elektriciteit stroomt niet - 93 00:06:37,100 --> 00:06:40,880 Ik ben het niet helemaal dezelfde expressieve bereik als 0 tot en met negen. 94 00:06:40,880 --> 00:06:43,270 We gaan het super simpel te houden in deze wereld van computers. 95 00:06:43,270 --> 00:06:45,060 Ik heb alleen 0 of 1 - 96 00:06:45,060 --> 00:06:47,890 aan of uit, valse of echte. 97 00:06:47,890 --> 00:06:52,610 >> En dus wat ik nu wat neerkomt is 1, 1, 1, omdat elk van deze 98 00:06:52,610 --> 00:06:54,000 verlichting wordt verlicht. 99 00:06:54,000 --> 00:06:59,600 Nou, dat geeft me een 4 plus een 2, dus dat is 6, plus een 1, en dat is 7. 100 00:06:59,600 --> 00:07:03,450 En ergo doet deze reeks van drie representeren het nummer 7. 101 00:07:03,450 --> 00:07:06,330 >> Dus al die tijd, de binnenkant van uw computer, hebben een aantal van zijn 102 00:07:06,330 --> 00:07:08,090 transistors, willekeurig aantal bits. 103 00:07:08,090 --> 00:07:10,380 Maar aan het eind van de dag, we kan informatie vertegenwoordigen 104 00:07:10,380 --> 00:07:12,560 zo eenvoudig als dat. 105 00:07:12,560 --> 00:07:16,770 Nu helaas hebben we alleen geteld tot 7 in CS50 tot nu toe, maar 106 00:07:16,770 --> 00:07:18,550 hopelijk kunnen we een beetje doen beter dan dat. 107 00:07:18,550 --> 00:07:19,550 En inderdaad kunnen we. 108 00:07:19,550 --> 00:07:23,570 >> Stel dat wij als mensen gewoon willekeurig besloten dat we gaan 109 00:07:23,570 --> 00:07:28,750 getallen associëren zoals 1 en 2, 3, 4, 5, 6, 7, specifieke brieven 110 00:07:28,750 --> 00:07:29,410 het alfabet. 111 00:07:29,410 --> 00:07:32,350 En om historische redenen, ga ik start enigszins arbitrair, maar ik ben 112 00:07:32,350 --> 00:07:36,880 gaan zeggen, de mens, gaan we beslissen als een standaard, wereldwijd, dat 113 00:07:36,880 --> 00:07:43,200 65 staat voor het nummer van de letter A. 66 zal vertegenwoordigen B. Punt, punt, punt. 114 00:07:43,200 --> 00:07:45,140 90 zal de letter Z. vertegenwoordigen 115 00:07:45,140 --> 00:07:48,000 >> En stel dat, als we echt zetten wat dacht in het, kunnen we komen 116 00:07:48,000 --> 00:07:50,860 met nummers voor uitroeptekens en kleine letters, en inderdaad, 117 00:07:50,860 --> 00:07:52,710 andere mensen hebben dat voor ons gedaan. 118 00:07:52,710 --> 00:07:56,410 Dus nu hadden we stukjes waarmee we kunnen vertegenwoordigen getallen, getallen waarmee 119 00:07:56,410 --> 00:08:00,130 we kunnen letters staan, en met brieven kunnen we nu beginnen met componeren 120 00:08:00,130 --> 00:08:02,650 e-mails en afdrukbare tekens op het scherm. 121 00:08:02,650 --> 00:08:05,850 >> Dus laat me uit te nodigen, als ik kon, acht dappere vrijwilligers - 122 00:08:05,850 --> 00:08:09,200 die het niet erg te zien zijn niet alleen on camera maar op het internet - 123 00:08:09,200 --> 00:08:13,130 om hier te komen en vertegenwoordigt acht dergelijke bits in plaats van deze drie. 124 00:08:13,130 --> 00:08:14,380 Dus hoe zit een, twee? 125 00:08:14,380 --> 00:08:16,290 Hoe zit het met drie? 126 00:08:16,290 --> 00:08:20,230 Hoe zit het met vier in het licht blauw, vijf op het einde? 127 00:08:20,230 --> 00:08:21,250 Over iemand hierheen? 128 00:08:21,250 --> 00:08:25,320 Zes vooraan, zeven vooraan, en acht tegen de voorkant ook. 129 00:08:25,320 --> 00:08:29,050 >> Dus ik gewoon zo toevallig bereide komen met een hele hoop van papiertjes. 130 00:08:29,050 --> 00:08:34,150 En op deze stukjes papier zijn nummers dat vertegenwoordigen wat columns 131 00:08:34,150 --> 00:08:35,809 jullie gaan vertegenwoordigen. 132 00:08:35,809 --> 00:08:36,740 Dus je zal zijn - wat is je naam? 133 00:08:36,740 --> 00:08:37,570 >> STUDENT: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID Malan: Anna Leah, je de 128s kolom zijn. 135 00:08:40,370 --> 00:08:41,059 Je bent? 136 00:08:41,059 --> 00:08:41,510 >> STUDENT: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID Malan: Chris zal als 64s kolom. 138 00:08:43,620 --> 00:08:44,070 Je bent? 139 00:08:44,070 --> 00:08:44,540 >> STUDENT: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID Malan: Dan zal als 32s kolom. 141 00:08:46,970 --> 00:08:47,470 >> STUDENT: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID Malan: Pramit zal als kolom 16s. 143 00:08:49,430 --> 00:08:50,290 >> STUDENT: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID Malan: Lillian zal de 8s zijn. 145 00:08:51,904 --> 00:08:52,768 >> STUDENT: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID Malan: Jill zal als 4s kolom. 147 00:08:55,025 --> 00:08:55,400 >> STUDENT: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID Malan: Mary zal de 2s, en? 149 00:08:57,000 --> 00:08:57,470 >> STUDENT: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID Malan: David zal als 1s kolom. 151 00:08:59,220 --> 00:09:02,030 Dus als jullie een beetje kon stappen naar voren zodat iedereen kan zien. 152 00:09:02,030 --> 00:09:05,370 Wat jullie niet zien is dat op de achterkant van deze stukjes papier is een 153 00:09:05,370 --> 00:09:09,760 weinig spiekbriefje dat gaat instrueren deze acht bits of 154 00:09:09,760 --> 00:09:12,380 steken hun hand of niet steken hun hand op. 155 00:09:12,380 --> 00:09:14,100 Als hun hand omhoog gaat, zijn ze die een 1. 156 00:09:14,100 --> 00:09:17,120 Als hun hand blijft naar beneden, ze zijn wat neerkomt op een 0. 157 00:09:17,120 --> 00:09:21,410 >> Ondertussen hebben we dat het publiek in staat om erachter te komen, op basis van deze 158 00:09:21,410 --> 00:09:26,490 mapping, wat drie-letter woord van deze mensen staan ​​op het punt aan te geven. 159 00:09:26,490 --> 00:09:29,700 Dus in slechts een moment, je gaat lees de eerste regel van de achterkant van 160 00:09:29,700 --> 00:09:32,880 je spiekbriefje, en je bent ofwel gaat je hand op te steken of niet verhogen. 161 00:09:32,880 --> 00:09:35,710 Als je een 1, je verhogen, indien je bent een 0, daar sta je 162 00:09:35,710 --> 00:09:38,594 onhandig, net als dat. 163 00:09:38,594 --> 00:09:40,386 Gaan. 164 00:09:40,386 --> 00:09:43,945 Welk nummer, eerst en vooral, zijn deze jongens vertegenwoordigen? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, toch? 168 00:09:49,560 --> 00:09:52,400 We hebben een 1 in de 64s kolom, een 1 in de kolom 2s. 169 00:09:52,400 --> 00:09:56,340 Dat geeft mij 66, dus dat wordt weergegeven te vertegenwoordigen B. So 170 00:09:56,340 --> 00:09:57,075 jullie hebben gespeld - 171 00:09:57,075 --> 00:09:58,300 OK, dat is genoeg. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Dus laten we nu verhuizen naar onze tweede brief. 174 00:10:01,610 --> 00:10:03,530 Gaan. 175 00:10:03,530 --> 00:10:06,860 Wie is snelste in wiskunde hier? 176 00:10:06,860 --> 00:10:07,750 So 79. 177 00:10:07,750 --> 00:10:11,840 Nogmaals, als we optellen alle kolommen waarbij er een 1, momenteel, net 178 00:10:11,840 --> 00:10:14,840 zoals we deden voordat met de eenvoudigste voorbeelden van 7, we nu 179 00:10:14,840 --> 00:10:16,140 krijgt het nummer 79. 180 00:10:16,140 --> 00:10:19,910 Die volgens onze mapping is de letter O. Dus we zijn er bijna. 181 00:10:19,910 --> 00:10:22,590 B, O. En tot slot, te gaan. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> Wat zijn ze nu vertegenwoordigen? 184 00:10:30,120 --> 00:10:31,370 Minder consensus. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Dat is gewoon een absolute gemompel. 187 00:10:36,460 --> 00:10:40,090 Ja, het is in feite 87. 188 00:10:40,090 --> 00:10:40,490 Goed. 189 00:10:40,490 --> 00:10:44,480 >> Dus als we nu in kaart die terug tot - laten we beginnen te roepen en onze ASCII grafiek, 190 00:10:44,480 --> 00:10:46,450 American Standard Code for Information Interchange. 191 00:10:46,450 --> 00:10:47,700 Dat geeft ons de letter - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 niet "bo", maar "boog." En dat is een perfecte cue voor jullie om een ​​boog te nemen 194 00:10:54,810 --> 00:10:56,100 en hoofd op rug. 195 00:10:56,100 --> 00:10:56,980 Heel hartelijk bedankt. 196 00:10:56,980 --> 00:10:57,886 >> [Applaus] 197 00:10:57,886 --> 00:10:59,136 >> DAVID Malan: Je kunt ze houden. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Hoewel eigenlijk, zou iedereen als een bureaulamp, ook? 200 00:11:05,942 --> 00:11:07,300 >> [HOOT VAN PUBLIEK] 201 00:11:07,300 --> 00:11:08,390 >> DAVID Malan: Desk lamp? 202 00:11:08,390 --> 00:11:10,850 >> [Lachen] 203 00:11:10,850 --> 00:11:11,860 >> DAVID Malan: Echt waar? 204 00:11:11,860 --> 00:11:13,230 Bureaulampen voor iedereen? 205 00:11:13,230 --> 00:11:14,310 Oke. 206 00:11:14,310 --> 00:11:20,990 Dus beginnen met het eenvoudigste principes, we hebben nu niet alleen geteld 207 00:11:20,990 --> 00:11:24,750 up van 0 helemaal tot 7, we hebben aangenomen dat alleen door het gooien van meer 208 00:11:24,750 --> 00:11:28,080 bit of meer lampen of meer transistoren naar dit probleem, kunnen we 209 00:11:28,080 --> 00:11:32,680 vertegenwoordigen groter en groter nummers, en ergo, groter en groter bereik van 210 00:11:32,680 --> 00:11:33,780 alfabetten, zoals het Engels. 211 00:11:33,780 --> 00:11:37,770 En gewoon laten we over geloof voor vandaag dat eveneens konden we beginnen aan 212 00:11:37,770 --> 00:11:42,220 afbeeldingen en video en alle vormen aantal andere media waarmee we 213 00:11:42,220 --> 00:11:43,610 vertrouwde vandaag. 214 00:11:43,610 --> 00:11:49,240 >> Dus dit is CS50, en in deze klasse naast je, nogmaals, heel veel 215 00:11:49,240 --> 00:11:53,050 klasgenoten die zo weinig ervaren als jij. 216 00:11:53,050 --> 00:11:57,730 En ik zeg dit alleen omdat heel Vaak, zoals recentelijk in een van 217 00:11:57,730 --> 00:12:01,860 de eerstejaars adviseren evenementen en bij tweedejaars afgelopen voorjaar is het adviseren 218 00:12:01,860 --> 00:12:06,420 evenement, horen we vaak studenten wijzen wanneer komen aan de CS tafel, goed, 219 00:12:06,420 --> 00:12:10,070 Ik heb nagedacht over het nemen van deze intro klasse, maar ik ben niet echt een 220 00:12:10,070 --> 00:12:11,120 computer persoon. 221 00:12:11,120 --> 00:12:13,220 Of, maar iedereen zeker weet meer dan ik. 222 00:12:13,220 --> 00:12:17,340 En ik zet dit in het grootste lettertype mogelijk, om deze boodschap over te brengen dat 223 00:12:17,340 --> 00:12:18,730 dat is in feite niet het geval. 224 00:12:18,730 --> 00:12:21,100 >> En als je je afvraagt, moet I, in feite, zijn hier? 225 00:12:21,100 --> 00:12:25,950 Beseffen dat niet alleen is het deze cursus titel Introduction to Computer 226 00:12:25,950 --> 00:12:31,740 Wetenschap, het is Introduction to Computer Wetenschap I. Er is dus inderdaad 227 00:12:31,740 --> 00:12:33,170 een tweede dergelijke introductie. 228 00:12:33,170 --> 00:12:35,390 Dus je bent niet, in feite, op de verkeerde plaats. 229 00:12:35,390 --> 00:12:39,000 En onder de doelen die ik heb voor vandaag zijn om dergelijke gerust te stellen u 230 00:12:39,000 --> 00:12:42,430 zou kunnen hebben, maar ook een verf beeld van wat in petto voor 231 00:12:42,430 --> 00:12:45,720 studenten minder en comfortabeler gelijk in deze cursus. 232 00:12:45,720 --> 00:12:49,320 >> Maar eerst, een woord op een van de handouts je hebt vandaag, waaronder 233 00:12:49,320 --> 00:12:50,780 zijn een aantal veelgestelde vragen. 234 00:12:50,780 --> 00:12:54,290 Het is al een visie van ons voor enige tijd nu een nieuwe indeling te introduceren 235 00:12:54,290 --> 00:12:57,010 optie in deze cursus - namelijk, SAT / unsat. 236 00:12:57,010 --> 00:13:01,930 Filosofisch voor mij, het is nog veel, veel belangrijker dat de 237 00:13:01,930 --> 00:13:05,050 studenten in deze klasse te gaan met de materiaal, worden aangevochten door de 238 00:13:05,050 --> 00:13:09,800 materiaal, en maken zich zorgen veel, veel minder over de mechanica van de werkelijke scores 239 00:13:09,800 --> 00:13:12,590 en brievenrangen bij semester end, maar echt omarmen de 240 00:13:12,590 --> 00:13:13,970 cursus en zijn materiaal. 241 00:13:13,970 --> 00:13:18,140 En echt dit voelt, meer in het algemeen, voor wat interessant is aan hen, aan 242 00:13:18,140 --> 00:13:21,390 voelen zich uitgedaagd en beloond, maar zonder angst om te falen. 243 00:13:21,390 --> 00:13:25,030 >> En inderdaad, ook dit is een terugkerend thema in deze en andere inleidende 244 00:13:25,030 --> 00:13:28,680 cursussen op andere gebieden, die je hebt Deze schroom als het gaat om 245 00:13:28,680 --> 00:13:31,040 zetten iemands tenen in onbekende wateren. 246 00:13:31,040 --> 00:13:34,880 Ikzelf, terug in 1995, was een eerstejaars. 247 00:13:34,880 --> 00:13:37,990 Ik was sterk gericht op het zijn een Gov concentrator hier. 248 00:13:37,990 --> 00:13:41,060 En toch zou ik altijd opgegroeid met een beetje van een belang in de informatica. 249 00:13:41,060 --> 00:13:42,180 Ik was altijd nieuwsgierig. 250 00:13:42,180 --> 00:13:47,610 >> Maar toen, zelfs, ik deze angst had zelfs een voet in CS50, zoveel 251 00:13:47,610 --> 00:13:49,420 zodat ik niet eens winkelen het eerste jaar. 252 00:13:49,420 --> 00:13:53,460 En de enige reden dat ik een voet in de deur tweede jaar was omdat ik 253 00:13:53,460 --> 00:13:55,340 mocht nemen pass / fail. 254 00:13:55,340 --> 00:13:58,920 Maar zelfs pass / fail nodig die ik krijg de moed om een ​​afspraak te maken 255 00:13:58,920 --> 00:14:01,970 met professor Kernehan op het moment, breng dit grote vel papier, en vraag 256 00:14:01,970 --> 00:14:04,470 hem voor zijn handtekening en zijn toestemming om te verkennen 257 00:14:04,470 --> 00:14:05,700 deze onbekende wateren. 258 00:14:05,700 --> 00:14:09,030 >> En het heeft niet geholpen in de afgelopen jaren dat wanneer je dit doet in CS50, wanneer we 259 00:14:09,030 --> 00:14:12,500 vroeger goed / fout, eveneens zou tientallen of honderden van je klasgenoten 260 00:14:12,500 --> 00:14:15,970 moeten komen, God verhoede, bij de voorzijde van Sanders met dit formulier, dat 261 00:14:15,970 --> 00:14:19,520 in sommige geesten vertegenwoordigt een onvermogen, Ik durf te zeggen, om te presteren 262 00:14:19,520 --> 00:14:20,800 zijn niveau van uw collega's '. 263 00:14:20,800 --> 00:14:23,410 Dat is belachelijk, maar ik denk er is die mentaliteit. 264 00:14:23,410 --> 00:14:27,210 En er is nog nooit in deze cultuur geweest van SAT / unsat, of pass / fail meer 265 00:14:27,210 --> 00:14:30,610 algemeen, in deze cursus, of echt op deze campus. 266 00:14:30,610 --> 00:14:32,310 >> Dus dit jaar hebben we dat veranderd. 267 00:14:32,310 --> 00:14:35,630 Ik zou extatisch helft van zijn deze klasse of meer afgesloten 268 00:14:35,630 --> 00:14:38,700 up nemen van CS50 SAT / unsat. 269 00:14:38,700 --> 00:14:42,130 In een jaar tijd, het zou prachtig zijn als bijna iedereen is. 270 00:14:42,130 --> 00:14:44,410 Daarna misschien gaan we werken op brievenrangen aan Harvard 271 00:14:44,410 --> 00:14:45,480 College meer in het algemeen. 272 00:14:45,480 --> 00:14:48,900 Maar voor nu, zullen we dit doen binnen onze eigen sfeer, en ik zou harte 273 00:14:48,900 --> 00:14:53,400 raden u aan deze veelgestelde vragen beoordelen en vragen stellen als het je past, zodat 274 00:14:53,400 --> 00:14:58,000 hopelijk heb je, in tegenstelling tot mij, zal niet helemaal hebben diezelfde angst factor bij 275 00:14:58,000 --> 00:15:01,040 verkennen wat is waarschijnlijk een onbekende plaats. 276 00:15:01,040 --> 00:15:02,786 >> Dus wat is CS50? 277 00:15:02,786 --> 00:15:06,150 Het is een inleiding tot de intellectuele ondernemingen van computer 278 00:15:06,150 --> 00:15:07,700 wetenschap en de kunst van het programmeren. 279 00:15:07,700 --> 00:15:08,770 Maar wat betekent dat eigenlijk? 280 00:15:08,770 --> 00:15:12,510 >> Nou, tot zover, we praatten heel kort over de representatie van informatie. 281 00:15:12,510 --> 00:15:15,070 Maar stel dat we eigenlijk willen om iets mee te doen. 282 00:15:15,070 --> 00:15:17,890 We moeten het begrip te introduceren wat we een algoritme zullen noemen. 283 00:15:17,890 --> 00:15:21,540 Een algoritme is een procedure, een proces, een reeks instructies voor 284 00:15:21,540 --> 00:15:22,780 iets te doen. 285 00:15:22,780 --> 00:15:25,620 >> En een algoritme kan iets super eenvoudig. 286 00:15:25,620 --> 00:15:28,660 Bijvoorbeeld, een voorbeeld dat sommige van u misschien bekend zijn, is dit 287 00:15:28,660 --> 00:15:29,350 ding hier. 288 00:15:29,350 --> 00:15:32,510 Dus dit boek is hier steeds gedateerd, maar Once upon a time, het 289 00:15:32,510 --> 00:15:34,720 een heleboel namen bevatte en telefoonnummers. 290 00:15:34,720 --> 00:15:37,710 En inderdaad, als ik wilde weten iemand in dit telefoonboek - 291 00:15:37,710 --> 00:15:39,800 zeggen, iemand met de naam Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Ik kon Mike Smith vinden in een aantal van redelijk simpel manieren. 293 00:15:43,810 --> 00:15:47,700 Ik zou beginnen bij het begin en ga naar pagina 1, niet daar. 294 00:15:47,700 --> 00:15:49,240 Pagina 2, niet daar. 295 00:15:49,240 --> 00:15:49,960 Pagina 3. 296 00:15:49,960 --> 00:15:53,430 Is dat algoritme dat wordt proces, juist? 297 00:15:53,430 --> 00:15:54,620 >> Dus het is juist, toch? 298 00:15:54,620 --> 00:15:58,070 Ik ben een beetje een idioot om dat te doen in die manier, maar uiteindelijk zal ik 299 00:15:58,070 --> 00:16:02,670 vind de achternaam S, en hopelijk Mike is in die sectie, en ik zal worden 300 00:16:02,670 --> 00:16:04,100 gedaan met mijn algoritme. 301 00:16:04,100 --> 00:16:05,440 Maar zeker het is niet intuïtief. 302 00:16:05,440 --> 00:16:08,020 De meeste elke redelijke mens in deze kamer zou dat niet hebben gedaan. 303 00:16:08,020 --> 00:16:10,180 Wat zou jij gedaan hebben? 304 00:16:10,180 --> 00:16:11,480 >> Je zou rechtdoor zijn gegaan naar het midden, rechts? 305 00:16:11,480 --> 00:16:12,000 Ruwweg naar het midden. 306 00:16:12,000 --> 00:16:16,310 En realiseer je, oh, dit zijn de Ms Dus Mike Smith, achternaam zijnde Smith, 307 00:16:16,310 --> 00:16:19,050 is niet duidelijk, vandaar in de linker helft van het boek. 308 00:16:19,050 --> 00:16:21,040 Hij moet in de richting van de S is in de juiste. 309 00:16:21,040 --> 00:16:24,090 En op dit punt, hoewel de meesten van ons doe dit niet in de werkelijkheid, kunnen we 310 00:16:24,090 --> 00:16:27,125 letterlijk scheuren dit probleem in de helft. 311 00:16:27,125 --> 00:16:27,640 >> [Gejuich en applaus] 312 00:16:27,640 --> 00:16:28,950 >> DAVID Malan: Dank je wel. 313 00:16:28,950 --> 00:16:30,150 >> [Gejuich en applaus] 314 00:16:30,150 --> 00:16:34,660 >> DAVID Malan: U kunt letterlijk scheuren deze probleem in de helft, waardoor ik met, 315 00:16:34,660 --> 00:16:36,120 letterlijk, een probleem half zo groot. 316 00:16:36,120 --> 00:16:39,750 Dus als dit telefoonboek was - en het Waarschijnlijk was - ongeveer 1.000 pagina's, nu 317 00:16:39,750 --> 00:16:40,840 het is slechts 500. 318 00:16:40,840 --> 00:16:44,710 Als ik dit doe weer en ik realiseer me, oh, damn, ik ging te ver, ik ben in de Ts 319 00:16:44,710 --> 00:16:46,480 sectie, ik kan net - 320 00:16:46,480 --> 00:16:48,030 figuurlijk of letterlijk - 321 00:16:48,030 --> 00:16:50,260 rip het telefoonboek - het was eigenlijk veel gemakkelijker die tijd. 322 00:16:50,260 --> 00:16:53,610 Ik kan letterlijk rippen het telefoonboek in de helft, waardoor ik nu met 323 00:16:53,610 --> 00:16:55,186 1000 niet, niet 500 - 324 00:16:55,186 --> 00:16:56,680 250 pagina's. 325 00:16:56,680 --> 00:17:00,210 En ik kan gaan 125, en de helft van dat, en helft daarvan, en de helft van die, 326 00:17:00,210 --> 00:17:04,760 totdat uiteindelijk zal ik blijven zitten met slechts een enkele pagina. 327 00:17:04,760 --> 00:17:06,430 >> [Lachen] 328 00:17:06,430 --> 00:17:07,589 >> DAVID Malan: Dat is de deel ik niet op. 329 00:17:07,589 --> 00:17:10,400 Een enkele pagina waarop Mike hopelijk is. 330 00:17:10,400 --> 00:17:14,630 Nu deze verschillende algoritmen kunnen soort getoetst of geëvalueerd 331 00:17:14,630 --> 00:17:15,270 verschillende manieren. 332 00:17:15,270 --> 00:17:17,300 De eerste was erg lineair, toch? 333 00:17:17,300 --> 00:17:18,500 Draai pagina, kijk voor Mike. 334 00:17:18,500 --> 00:17:19,630 Draai pagina, kijk voor Mike. 335 00:17:19,630 --> 00:17:20,560 Het is erg lineair. 336 00:17:20,560 --> 00:17:23,339 Als er nog een pagina in de telefoon boek, is het waarschijnlijk gaat me te nemen 337 00:17:23,339 --> 00:17:27,380 nog een tweede, nog een eenheid van tijd, Maar we berekenen tijd. 338 00:17:27,380 --> 00:17:32,470 >> Dus ik zou tekenen als deze deze lijn Hier, waarbij de grootte van de 339 00:17:32,470 --> 00:17:34,700 probleem neemt toe van links naar rechts - 340 00:17:34,700 --> 00:17:37,480 telefoonboek wordt kleiner naar groter - 341 00:17:37,480 --> 00:17:41,080 en de tijd zal toenemen op de verticale as, de grotere 342 00:17:41,080 --> 00:17:42,030 het telefoonboek is. 343 00:17:42,030 --> 00:17:46,180 Dus n is slechts een algemene variabele die informatici gebruiken om te vertegenwoordigen 344 00:17:46,180 --> 00:17:48,210 bepaalde waarde een getal. 345 00:17:48,210 --> 00:17:50,740 Zo n gaat lineair toeneemt. 346 00:17:50,740 --> 00:17:53,040 Dubbele van de grootte van het telefoonboek, het is gaat me twee keer zo veel te nemen 347 00:17:53,040 --> 00:17:54,780 tijd, het meest waarschijnlijk, om Mike te vinden. 348 00:17:54,780 --> 00:17:56,390 >> Nu kon ik slim geweest over dit, toch? 349 00:17:56,390 --> 00:17:57,800 Ik snel verveeld kreeg. 350 00:17:57,800 --> 00:17:58,910 Kon hebben dit gedaan door tweeën. 351 00:17:58,910 --> 00:18:01,870 Dus twee pagina's, dan vier, dan zes, dan acht. 352 00:18:01,870 --> 00:18:05,220 En ik kon beginnen vliegen door het een beetje sneller, zij het in geringe risico van 353 00:18:05,220 --> 00:18:09,210 doorschieten Mike, maar die bocht is niet gaat zijn heel verschillend. 354 00:18:09,210 --> 00:18:12,550 Het gaat nog steeds om een ​​rechte lijn, maar iets sneller. 355 00:18:12,550 --> 00:18:13,710 >> Maar wat heb ik gedaan? 356 00:18:13,710 --> 00:18:15,845 Ik heb eigenlijk deed iets fundamenteel beter. 357 00:18:15,845 --> 00:18:21,990 Ik bereikt wat we logaritmische zullen noemen tijd, logboek van n, waarbij deze groene 358 00:18:21,990 --> 00:18:27,730 lijn heeft een veel, veel, veel minder rechte rand aan. 359 00:18:27,730 --> 00:18:33,050 En in plaats van, het suggereert, zoals het sorteren van naar oneindig gaat ooit zo geleidelijk, 360 00:18:33,050 --> 00:18:36,700 dat ik een 1000-pagina daadwerkelijk kon nemen telefoonboek, het dubbele van de grootte 361 00:18:36,700 --> 00:18:39,610 volgend jaar - want veronderstel veel meer mensen verhuizen naar de stad. 362 00:18:39,610 --> 00:18:43,250 >> Dus nu heb ik 2000 pagina's, maar hoe vele stappen dat slimmer 363 00:18:43,250 --> 00:18:45,200 algoritme gaat nemen? 364 00:18:45,200 --> 00:18:46,060 Slechts een. 365 00:18:46,060 --> 00:18:48,060 Ik bedoel, dat is een krachtig ding. 366 00:18:48,060 --> 00:18:51,400 Als we naar 4000 pagina's volgend jaar, dat gaat me te nemen 367 00:18:51,400 --> 00:18:53,020 slechts twee stappen. 368 00:18:53,020 --> 00:18:56,500 Dus u kunt groter en groter te gooien problemen bij mij, niet in tegenstelling tot het web is 369 00:18:56,500 --> 00:18:59,560 gooien groter en groter problemen elke dag op Googles en Facebooks van 370 00:18:59,560 --> 00:19:01,590 de wereld, en het is niet zo'n big deal. 371 00:19:01,590 --> 00:19:05,840 Omdat ik meer aandacht en zorg in Mijn algoritme waarmee lossen 372 00:19:05,840 --> 00:19:07,020 problemen efficiënt. 373 00:19:07,020 --> 00:19:09,260 >> En inderdaad, dat zal een van de doelen van deze cursus. 374 00:19:09,260 --> 00:19:11,230 U, langs de weg, leren hoe te programmeren. 375 00:19:11,230 --> 00:19:13,360 U leert hoe te programmeren in onbeperkt aantal talen. 376 00:19:13,360 --> 00:19:16,670 Maar aan het eind van de dag, de cursus over het oplossen van problemen en het krijgen 377 00:19:16,670 --> 00:19:20,490 beter oplossen van problemen - en, in gevallen als dit, het oplossen van problemen 378 00:19:20,490 --> 00:19:22,030 efficiënter. 379 00:19:22,030 --> 00:19:23,990 >> Nu tot nu toe, hebben we dit gedaan vrij intuïtief. 380 00:19:23,990 --> 00:19:27,420 Laten we iets vrij te introduceren generiek genaamd pseudocode. 381 00:19:27,420 --> 00:19:29,150 Dus we uiteindelijk krijgen, in deze cursus aan 382 00:19:29,150 --> 00:19:30,570 verschillende programmeertalen. 383 00:19:30,570 --> 00:19:34,280 Maar vandaag doen we het in het Engels-achtige syntax, waar je gewoon een soort van zeggen 384 00:19:34,280 --> 00:19:37,330 wat je bedoelt, maar je bent altijd zo beknopt en je hoeft je geen zorgen over 385 00:19:37,330 --> 00:19:38,960 grammatica en volledige zinnen. 386 00:19:38,960 --> 00:19:41,600 U drukt zich als gewoon beknopt mogelijk. 387 00:19:41,600 --> 00:19:45,400 >> Dus pseudocode is Engels-achtige syntax die vertegenwoordigt 388 00:19:45,400 --> 00:19:46,750 een programmeertaal. 389 00:19:46,750 --> 00:19:51,170 En in de richting van dat doel, laat me voorstellen dat we nu modelleren van het proces dat we gewoon 390 00:19:51,170 --> 00:19:54,990 beschreven van het tellen van iets dat een beetje anders, dit keer het nemen van een 391 00:19:54,990 --> 00:19:59,040 kijken naar deze vijf minuten durende video geproduceerd door onze vrienden bij TED dat 392 00:19:59,040 --> 00:20:03,170 bepaalt wat pseudocode is, bepaalt wat algoritmische denken is, en zelfs 393 00:20:03,170 --> 00:20:07,030 hoewel het voorbeeld dat je gaat zien is, in zichzelf, super eenvoudig, het is 394 00:20:07,030 --> 00:20:09,820 gaat om te beginnen om ons de mentale model, de vocabulaire, waarmee 395 00:20:09,820 --> 00:20:14,588 doen veel, veel complexer algoritmes vrij snel. 396 00:20:14,588 --> 00:20:15,576 >> [BEGIN VIDEO AFSPELEN] 397 00:20:15,576 --> 00:20:29,920 >> [Muziek] 398 00:20:29,920 --> 00:20:31,100 >> VERTELLER: Wat is een algoritme? 399 00:20:31,100 --> 00:20:34,730 In de informatica, een algoritme is een set van instructies voor het oplossen van een aantal 400 00:20:34,730 --> 00:20:36,620 probleem stap voor stap. 401 00:20:36,620 --> 00:20:39,650 Typisch worden algoritmen uitgevoerd door computers, maar wij mensen hebben 402 00:20:39,650 --> 00:20:41,230 algoritmen, ook. 403 00:20:41,230 --> 00:20:43,290 Bijvoorbeeld, hoe zou je over het tellen van het aantal 404 00:20:43,290 --> 00:20:44,750 van mensen in een kamer? 405 00:20:44,750 --> 00:20:47,980 Nou, als je net als ik, zou je waarschijnlijk punt bij elke persoon, een op 406 00:20:47,980 --> 00:20:50,120 een tijd, en tellen vanaf 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, enzovoort. 408 00:20:52,970 --> 00:20:54,140 >> Nou, dat is een algoritme. 409 00:20:54,140 --> 00:20:57,600 In feite, laten we proberen om het uit te drukken een wat meer formeel in pseudocode - 410 00:20:57,600 --> 00:21:00,700 Engels-achtige syntax die lijkt op een programmeertaal. 411 00:21:00,700 --> 00:21:02,580 Laat N gelijk 0. 412 00:21:02,580 --> 00:21:06,970 Voor elke persoon in de kamer, ingesteld N gelijk aan N plus 1. 413 00:21:06,970 --> 00:21:08,400 >> Hoe deze pseudocode interpreteren? 414 00:21:08,400 --> 00:21:12,840 Nou, lijn ene verklaart, zo te zeggen, een variabele genaamd N en initialiseert 415 00:21:12,840 --> 00:21:14,250 de waarde op 0. 416 00:21:14,250 --> 00:21:17,550 Dit betekent alleen dat aan het begin van ons algoritme, het ding waarmee 417 00:21:17,550 --> 00:21:19,650 we rekenen heeft een waarde van 0. 418 00:21:19,650 --> 00:21:22,620 Immers, voordat we beginnen te tellen, we hebben nog niets geteld. 419 00:21:22,620 --> 00:21:25,340 Het aanroepen van deze variabele N is slechts een conventie. 420 00:21:25,340 --> 00:21:26,890 Ik had het wel bijna alles. 421 00:21:26,890 --> 00:21:30,560 >> Nu lijn twee markeert het begin van een lus, een opeenvolging van stappen die zullen 422 00:21:30,560 --> 00:21:32,310 herhaal sommige aantal keren. 423 00:21:32,310 --> 00:21:35,910 Dus in ons voorbeeld, de stap nemen we rekent mensen in de kamer. 424 00:21:35,910 --> 00:21:38,730 Onder lijn twee is lijn drie, en dat is precies hoe omschrijft 425 00:21:38,730 --> 00:21:40,160 we gaan over het tellen. 426 00:21:40,160 --> 00:21:43,440 De inkeping impliceert dat het lijn drie die zal herhalen. 427 00:21:43,440 --> 00:21:47,380 >> Dus wat de pseudocode zegt is dat na vanaf 0 voor elk 428 00:21:47,380 --> 00:21:50,690 persoon in de kamer, we zullen verhogen N door 1. 429 00:21:50,690 --> 00:21:53,050 Nu is dit algoritme correct? 430 00:21:53,050 --> 00:21:54,580 Nou, laten we bang op het een beetje. 431 00:21:54,580 --> 00:21:57,270 Werkt het als er twee mensen in de kamer? 432 00:21:57,270 --> 00:21:58,170 Laten we eens kijken. 433 00:21:58,170 --> 00:22:00,260 >> In lijn een, initialiseren we N tot 0. 434 00:22:00,260 --> 00:22:03,660 Voor elk van deze twee mensen, we vervolgens verhogen N door 1. 435 00:22:03,660 --> 00:22:07,310 Dus op de eerste reis door de lus, we N updaten van 0 tot 1. 436 00:22:07,310 --> 00:22:11,070 Op de tweede reis door diezelfde lus, we N updaten van 1 naar 2. 437 00:22:11,070 --> 00:22:15,780 En dus tegen het einde van dit algoritme, n 2, die inderdaad overeenkomt met het aantal 438 00:22:15,780 --> 00:22:16,700 mensen in de kamer. 439 00:22:16,700 --> 00:22:17,760 >> So far, so good. 440 00:22:17,760 --> 00:22:19,610 Hoe over een hoek zaak, hoewel? 441 00:22:19,610 --> 00:22:22,590 Stel dat er 0 mensen in de kamer - naast me, 442 00:22:22,590 --> 00:22:24,170 wie doet het tellen. 443 00:22:24,170 --> 00:22:27,150 In lijn een, initialiseren we N tot 0. 444 00:22:27,150 --> 00:22:30,280 Deze keer, echter, lijn drie niet uit te voeren op alle omdat er geen 445 00:22:30,280 --> 00:22:31,370 persoon in de kamer. 446 00:22:31,370 --> 00:22:35,260 En dus N blijft 0, wat overeenkomt met de aantal mensen in de zaal. 447 00:22:35,260 --> 00:22:36,420 Vrij simpel, toch? 448 00:22:36,420 --> 00:22:39,630 >> Maar tellen mensen een voor een is vrij inefficiënt, ook, nee? 449 00:22:39,630 --> 00:22:40,920 Zeker kunnen we beter doen. 450 00:22:40,920 --> 00:22:43,120 Waarom niet tellen twee mensen tegelijk? 451 00:22:43,120 --> 00:22:49,300 In plaats van het tellen van 1, 2, 3, 4, 5, 6, 7, 8, enzovoort, waarom niet tellen, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, enzovoorts? 453 00:22:51,460 --> 00:22:53,700 Het klinkt nog sneller, en het zeker is. 454 00:22:53,700 --> 00:22:56,240 >> Laten we uiten deze optimalisatie in pseudocode. 455 00:22:56,240 --> 00:22:57,800 Laat N gelijk 0. 456 00:22:57,800 --> 00:23:02,450 Voor elk paar mensen in de kamer, ingesteld N gelijk aan N plus 2. 457 00:23:02,450 --> 00:23:04,120 Vrij eenvoudig veranderen, toch? 458 00:23:04,120 --> 00:23:06,750 Eerder dan tellen mensen een tegelijk, we tellen in plaats 459 00:23:06,750 --> 00:23:08,300 ze twee tegelijk. 460 00:23:08,300 --> 00:23:10,980 Dit algoritme is dus tweemaal zo snel als de vorige. 461 00:23:10,980 --> 00:23:12,180 >> Maar is het juist? 462 00:23:12,180 --> 00:23:12,920 Laten we eens kijken. 463 00:23:12,920 --> 00:23:15,330 Werkt het als er twee mensen in de kamer? 464 00:23:15,330 --> 00:23:17,550 In lijn een, initialiseren we N tot 0. 465 00:23:17,550 --> 00:23:20,920 Voor dat een paar mensen, we vervolgens verhogen N door twee. 466 00:23:20,920 --> 00:23:24,860 En dus tegen het einde van dit algoritme, N 2, die inderdaad overeenkomt met het aantal 467 00:23:24,860 --> 00:23:25,650 mensen in de kamer. 468 00:23:25,650 --> 00:23:28,250 >> Veronderstel volgende dat er 0 mensen in de kamer. 469 00:23:28,250 --> 00:23:30,840 In lijn een, initialiseren we N tot 0. 470 00:23:30,840 --> 00:23:34,330 Net als voorheen, is regel drie niet uitvoeren helemaal niet, omdat er geen paren 471 00:23:34,330 --> 00:23:35,380 van de mensen in de zaal. 472 00:23:35,380 --> 00:23:38,350 En dus N blijft 0, wat inderdaad overeenkomt met het aantal 473 00:23:38,350 --> 00:23:39,570 mensen in de kamer. 474 00:23:39,570 --> 00:23:42,280 >> Maar wat als er drie mensen in de kamer? 475 00:23:42,280 --> 00:23:44,130 Hoe werkt dit algoritme tarief? 476 00:23:44,130 --> 00:23:44,990 Laten we eens kijken. 477 00:23:44,990 --> 00:23:47,460 In lijn een, initialiseren we N tot 0. 478 00:23:47,460 --> 00:23:50,870 Een paar van die mensen, we vervolgens verhogen N door 2. 479 00:23:50,870 --> 00:23:51,800 Maar wat dan? 480 00:23:51,800 --> 00:23:54,960 Er is geen ander vol paar mensen in de kamer, dus lijn twee geen 481 00:23:54,960 --> 00:23:56,180 langer van toepassing. 482 00:23:56,180 --> 00:24:00,530 En dus tegen het einde van dit algoritme, N nog 2, wat niet correct is. 483 00:24:00,530 --> 00:24:03,810 >> Inderdaad, dit algoritme wordt gezegd te zijn buggy, omdat het een vergissing. 484 00:24:03,810 --> 00:24:05,820 Laten verhaal met een aantal nieuwe pseudocode. 485 00:24:05,820 --> 00:24:09,670 Laat n gelijk 0 voor elk paar van de mensen in de kamer. 486 00:24:09,670 --> 00:24:12,550 Stel N gelijk aan N plus 2. 487 00:24:12,550 --> 00:24:17,140 Als een persoon ongepaarde blijft, ingesteld N gelijk aan N plus 1. 488 00:24:17,140 --> 00:24:20,140 Om dit specifieke probleem op te lossen, we hebben geïntroduceerd, in lijn vier, een 489 00:24:20,140 --> 00:24:24,520 aandoening, ook wel bekend als een tak dat alleen wordt uitgevoerd als er een 490 00:24:24,520 --> 00:24:26,640 persoon die we konden niet koppelen met een ander. 491 00:24:26,640 --> 00:24:30,440 En dus nu, of er is een of drie of een oneven aantal mensen in 492 00:24:30,440 --> 00:24:33,290 de kamer, dit algoritme zal nu tel ze. 493 00:24:33,290 --> 00:24:34,560 >> Kunnen we nog beter doen? 494 00:24:34,560 --> 00:24:38,820 Nou, konden we rekenen op 3s of 4s of zelfs 5s en 10s, maar verder dan dat, het is 495 00:24:38,820 --> 00:24:41,360 gaat een beetje te krijgen moeilijk punt. 496 00:24:41,360 --> 00:24:44,660 Aan het eind van de dag, of uitgevoerd door computers of mensen, 497 00:24:44,660 --> 00:24:46,750 algoritmen zijn slechts een set van instructies met 498 00:24:46,750 --> 00:24:48,290 die problemen op te lossen. 499 00:24:48,290 --> 00:24:49,792 Dit waren slechts drie. 500 00:24:49,792 --> 00:24:52,404 Welk probleem wil je oplossen een algoritme? 501 00:24:52,404 --> 00:24:52,901 >> [END VIDEO AFSPELEN] 502 00:24:52,901 --> 00:24:55,883 >> DAVID Malan: Dat is de enige keer Ik zal verschijnen in cartoon vorm. 503 00:24:55,883 --> 00:25:01,050 Maar waar dat verhaal ophoudt, Nu, is hoe kunnen we beter doen? 504 00:25:01,050 --> 00:25:04,680 Drieën en fours, we beweren, kunnen we rekenen mensen veel sneller, maar kunnen we 505 00:25:04,680 --> 00:25:06,290 doen fundamenteel beter dan dat? 506 00:25:06,290 --> 00:25:07,540 En ik wed dat we kunnen. 507 00:25:07,540 --> 00:25:11,980 >> Als we introduceren een beetje van ons eigen pseudocode hier, ik ga voor te stellen 508 00:25:11,980 --> 00:25:14,550 dat we een lijn als deze kan bereiken. 509 00:25:14,550 --> 00:25:17,280 We gaan niet om mensen te tellen een, twee, drie, vier. 510 00:25:17,280 --> 00:25:19,470 We gaan niet om te gaan twee, vier, zes, acht. 511 00:25:19,470 --> 00:25:23,390 We gaan fundamenteel beter te doen met een heroverweging van het probleem, en in dit 512 00:25:23,390 --> 00:25:27,080 geval is, gebruik te maken van een anders onderbenutte bron. 513 00:25:27,080 --> 00:25:31,460 >> In slechts een moment, ik hoop dat je zult vergeven en humor ons door op te staan ​​in 514 00:25:31,460 --> 00:25:34,470 plaats, op welk punt we gaan vragen ieder van jullie om op te nemen in uw 515 00:25:34,470 --> 00:25:36,400 geest het nummer 1. 516 00:25:36,400 --> 00:25:39,560 Je bent dan gaat steeds onhandig, naarmate de tijd verstrijkt, vinden 517 00:25:39,560 --> 00:25:42,740 iemand anders die staat, combineer uw nummers samen 518 00:25:42,740 --> 00:25:43,720 door ze te tellen. 519 00:25:43,720 --> 00:25:47,490 Een van jullie wordt dan gaat racen te zitten eerst neder, en de andere persoon 520 00:25:47,490 --> 00:25:48,880 gaat herhalen. 521 00:25:48,880 --> 00:25:53,090 >> Dus met andere woorden, door zaaien alle u met het nummer 1, en vervolgens 522 00:25:53,090 --> 00:25:57,800 combineren van deze 1s in 2s en die 2s in 4s, met iedereen steeds 523 00:25:57,800 --> 00:26:02,740 zitten, moeten we aan het eind van dit algoritme, hebben slechts een lening 524 00:26:02,740 --> 00:26:07,570 ziel die ging niet zitten snel genoeg, maar wie heeft de hele telling publiek 525 00:26:07,570 --> 00:26:09,180 in zijn of haar geest. 526 00:26:09,180 --> 00:26:13,730 >> Dus als je wilt, laten we gaan vooruit en - stap een - staan ​​op hun plaats. 527 00:26:13,730 --> 00:26:15,600 En uit te voeren. 528 00:26:15,600 --> 00:26:36,580 >> [MENIGTE murmelen] 529 00:26:36,580 --> 00:26:38,820 >> DAVID Malan: Weet jij waar Lauren is? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [MENIGTE murmelen] 532 00:27:23,350 --> 00:27:24,340 >> DAVID Malan: Oke? 533 00:27:24,340 --> 00:27:39,110 >> [MENIGTE murmelen] 534 00:27:39,110 --> 00:27:41,365 >> DAVID Malan: Oke, we moeten worden nadert het einde. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 We zien een collega staan ​​er nog. 537 00:27:47,670 --> 00:27:48,770 Wie moet anders worden gekoppeld? 538 00:27:48,770 --> 00:27:50,020 Als jullie willen af ​​te koppelen. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Iemand boven. 541 00:27:56,520 --> 00:27:58,150 Zal ik een handje hier te lenen. 542 00:27:58,150 --> 00:28:01,370 Voor de weinige mensen die nog staan, welke nummers heb je 543 00:28:01,370 --> 00:28:02,790 hebben in je hoofd? 544 00:28:02,790 --> 00:28:04,020 >> STUDENT: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID Malan: 78 plus - 546 00:28:06,010 --> 00:28:07,840 die daar ook staat hier beneden? 547 00:28:07,840 --> 00:28:08,370 >> STUDENT: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID Malan: Plus 39. 549 00:28:09,590 --> 00:28:12,310 Plus Wie nog overeind? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, wie anders? 552 00:28:15,960 --> 00:28:17,200 Een andere 81? 553 00:28:17,200 --> 00:28:17,860 Wow. 554 00:28:17,860 --> 00:28:19,210 En wat zit er in terug? 555 00:28:19,210 --> 00:28:20,360 >> STUDENT: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID MALAN: 49, plus? 557 00:28:21,812 --> 00:28:22,950 >> STUDENT: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID Malan: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Is dat iemand anders? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Good job. 562 00:28:30,460 --> 00:28:33,610 >> [Lachen] 563 00:28:33,610 --> 00:28:34,690 >> DAVID MALAN: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Good job! 566 00:28:36,220 --> 00:28:38,660 >> [Lachen] 567 00:28:38,660 --> 00:28:42,570 >> [Applaus] 568 00:28:42,570 --> 00:28:43,820 >> DAVID Malan: Iemand anders nog staan? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Sorry? 571 00:28:47,260 --> 00:28:48,110 >> STUDENT: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID Malan: 99. 573 00:28:49,810 --> 00:28:52,620 Iemand anders nog staan? 574 00:28:52,620 --> 00:28:57,290 En het totale aantal studenten hier eigenlijk, volgens - 575 00:28:57,290 --> 00:28:59,400 heb je een nummer? 576 00:28:59,400 --> 00:29:03,170 Oh, het werkelijke aantal mensen in de room, volgens de rekening die 577 00:29:03,170 --> 00:29:07,660 het onderwijs kerels deden op ieders manier, was 729. 578 00:29:07,660 --> 00:29:11,070 Dus uit een kamer vol van Harvard studenten die zich geteld de 579 00:29:11,070 --> 00:29:14,126 antwoord 637. 580 00:29:14,126 --> 00:29:15,480 >> [Lachen] 581 00:29:15,480 --> 00:29:16,350 >> DAVID Malan: Zo dicht. 582 00:29:16,350 --> 00:29:17,360 Maar toch. 583 00:29:17,360 --> 00:29:22,110 OK, dus dat is een leer ogenblik, toch? 584 00:29:22,110 --> 00:29:24,120 Dit is nu wat wij omschrijven als een bug. 585 00:29:24,120 --> 00:29:28,120 Ergens langs de weg, hebben we een aantal rekenkundige fout, of iemand ging zitten, 586 00:29:28,120 --> 00:29:29,930 of links, of ging er iets mis. 587 00:29:29,930 --> 00:29:30,930 Maar dat is prima. 588 00:29:30,930 --> 00:29:33,390 Omdat zelfs nog, we kreeg vrij dicht. 589 00:29:33,390 --> 00:29:37,480 En ik zou zeggen dat we op de verkeerde beantwoord een stuk sneller dan ik zou hebben 590 00:29:37,480 --> 00:29:39,770 met mijn meer lineaire benadering. 591 00:29:39,770 --> 00:29:42,630 >> Dus laten we aannemen dat we in feite krijgen dat corrigeren, maar nu denken over wat 592 00:29:42,630 --> 00:29:46,870 gebeurde elke keer, tegenover mijn eigen naïeve wijzen algoritme. 593 00:29:46,870 --> 00:29:48,420 Een, twee, drie. 594 00:29:48,420 --> 00:29:53,010 Als er inderdaad 729 of 637 mensen hier, dat zou me hebben genomen 595 00:29:53,010 --> 00:29:57,720 letterlijk 637 of 729 pointings van de vinger en 596 00:29:57,720 --> 00:29:59,490 ophogen van mijn totale telling. 597 00:29:59,490 --> 00:30:01,910 En ik kon een beetje beter doen door gaan twee, vier, zes, acht, en 598 00:30:01,910 --> 00:30:05,660 dubbele van die snelheid, misschien zelfs drie-of verviervoudigen, afhankelijk van hoe goed ik kan 599 00:30:05,660 --> 00:30:07,110 die tellen in mijn hoofd doen. 600 00:30:07,110 --> 00:30:10,720 >> Maar deze aanpak dat jullie namen was fundamenteel anders. 601 00:30:10,720 --> 00:30:12,770 Omdat aan het begin, jullie allemaal opgestaan. 602 00:30:12,770 --> 00:30:14,620 Dus alles 729. 603 00:30:14,620 --> 00:30:17,370 En dan letterlijk de helft van je ging zitten. 604 00:30:17,370 --> 00:30:19,720 En daarna, andere de helft van je ging zitten. 605 00:30:19,720 --> 00:30:22,650 En daarna, andere de helft van je ging zitten. 606 00:30:22,650 --> 00:30:27,470 >> En het totale aantal keren dat u jongens zouden hebben gezeten is ruwweg 607 00:30:27,470 --> 00:30:31,740 acht of negen of tien keer in totaal, afhankelijk van wat onze totale telling is. 608 00:30:31,740 --> 00:30:33,300 En we kunnen sorteren van doen dit andersom. 609 00:30:33,300 --> 00:30:37,740 Als we hadden 1024 mensen in de kamer, de totaal aantal keren dat je kon 610 00:30:37,740 --> 00:30:41,870 halveren 1024 mensen is 10. 611 00:30:41,870 --> 00:30:43,370 >> Nu denken in de andere richting. 612 00:30:43,370 --> 00:30:49,170 Veronderstel, belachelijk, dat we hadden, zeggen 4000000000 mensen in deze zaal, 613 00:30:49,170 --> 00:30:50,860 of een iets grotere kamer. 614 00:30:50,860 --> 00:30:54,550 Hoe vaak zouden we zijn gegaan via dit algoritme, zodat de helft 615 00:30:54,550 --> 00:30:58,110 van die klasse gaat zitten? 616 00:30:58,110 --> 00:31:03,050 Het gaat alleen om 32 dergelijke te nemen operaties, zelfs een klasse size 617 00:31:03,050 --> 00:31:03,770 4000000000. 618 00:31:03,770 --> 00:31:04,055 Waarom? 619 00:31:04,055 --> 00:31:06,980 Omdat 4000000000 gaat om twee miljard euro, gaat naar een miljoen, gaat naar 620 00:31:06,980 --> 00:31:09,925 500 miljoen, gaat naar 250 miljoen, puntje, puntje, puntje. 621 00:31:09,925 --> 00:31:14,940 Ik kan alleen maar dat doen divisie ongeveer 32 tijden, op welk moment, iedereen behalve 622 00:31:14,940 --> 00:31:17,820 een persoon zou blijven staan. 623 00:31:17,820 --> 00:31:21,590 >> En ook dat is een soort van een krachtige idee dat steeds proberen we 624 00:31:21,590 --> 00:31:24,690 leverage in deze cursus, en in programmering en informatica meer 625 00:31:24,690 --> 00:31:29,400 het algemeen, deze kiemen van een idee met die we vervolgens kunnen oplossen problemen veel, 626 00:31:29,400 --> 00:31:31,130 veel krachtiger. 627 00:31:31,130 --> 00:31:34,610 Dus begonnen we vrij eenvoudig met die pseudocode en een man in een kamer, maar 628 00:31:34,610 --> 00:31:38,205 nu met een hele kamer vol mensen hebben we gedaan fundamenteel beter. 629 00:31:38,205 --> 00:31:41,460 >> Nou, laten we nu de overgang van pseudocode om enkele feitelijke code. 630 00:31:41,460 --> 00:31:44,200 Deze taal je gaat zien gebeuren te noemen JavaScript en 631 00:31:44,200 --> 00:31:46,190 we zullen terugkeren naar deze richting einde semester. 632 00:31:46,190 --> 00:31:49,960 Het is een programmeertaal die je gebruiken om websites en andere dergelijke maken 633 00:31:49,960 --> 00:31:51,360 software deze dagen. 634 00:31:51,360 --> 00:31:54,890 En we hebben gebruikt, dankzij een vriend van ons in Stanford, te coderen 635 00:31:54,890 --> 00:31:56,630 sommige verborgen informatie hier. 636 00:31:56,630 --> 00:31:59,500 Dit is de kunst van steganografie, zo te zeggen, waar u kunt verbergen 637 00:31:59,500 --> 00:32:03,990 informatie in wat anders lijkt te zijn geluid of een compleet andere 638 00:32:03,990 --> 00:32:05,220 afbeelding helemaal. 639 00:32:05,220 --> 00:32:10,120 Maar ingebed in dit beeld bijzonder is inderdaad een geheime boodschap van soorten. 640 00:32:10,120 --> 00:32:12,950 >> Dus laat me ga je gang en trek hetzelfde beeld hier, dit 641 00:32:12,950 --> 00:32:14,270 tijd in een webbrowser. 642 00:32:14,270 --> 00:32:17,710 En ik ga mijn hand zwaaien naar enkele van de gegevens voor vandaag, met name 643 00:32:17,710 --> 00:32:21,780 voor degenen onder u die dit ziet eruit als niet alleen JavaScript, maar Grieks, als een 644 00:32:21,780 --> 00:32:23,930 volkomen onbekende taal. 645 00:32:23,930 --> 00:32:26,190 Dit is een voorbeeld van een programmeertaal. 646 00:32:26,190 --> 00:32:30,660 >> En voor nu, nemen op het geloof dat deze eerste regel van de code - 647 00:32:30,660 --> 00:32:32,470 en door de code, ik bedoel alleen maar tekst. 648 00:32:32,470 --> 00:32:35,660 Tekst die ik letterlijk kon heb getypt in Microsoft Word, als ik de 649 00:32:35,660 --> 00:32:37,630 juiste software om vervolgens iets mee doen. 650 00:32:37,630 --> 00:32:42,120 Programmering broncode, programmering code, is eigenlijk alleen maar tekst, en het 651 00:32:42,120 --> 00:32:45,420 ziet er anders op basis van wat taal u gebruikt, niet in tegenstelling tot het Engels en 652 00:32:45,420 --> 00:32:49,200 Spaans en Russisch zien er allemaal anders wanneer u ze typt op uw toetsenbord. 653 00:32:49,200 --> 00:32:53,520 >> Dus deze eerste lijn, voor nu nemen geloof, opent gewoon een afbeelding van de 654 00:32:53,520 --> 00:32:56,160 internet, dat luidruchtige grafische we net zagen. 655 00:32:56,160 --> 00:32:59,900 Deze volgende regel hier is een voorbeeld van een lus, en we eigenlijk zagen dat dezelfde 656 00:32:59,900 --> 00:33:01,130 jargon in de TED-video. 657 00:33:01,130 --> 00:33:03,750 Een lus is iets dat weer gebeurt en opnieuw, en hoewel dit 658 00:33:03,750 --> 00:33:08,440 geheel lijkt cryptische, met sleutelwoord voor en sommige haakjes en 659 00:33:08,440 --> 00:33:09,510 sommige puntkomma. 660 00:33:09,510 --> 00:33:13,070 We komen terug naar die komen duurde niet lang, maar dat lus er wezen 661 00:33:13,070 --> 00:33:17,310 vertellen van het programma, itereren over alle van die luidruchtige punten, van links naar 662 00:33:17,310 --> 00:33:18,980 rechts, van boven naar beneden. 663 00:33:18,980 --> 00:33:21,260 >> Doordat aan het eind van de dag, een beeld zoals deze - en je kunt eigenlijk 664 00:33:21,260 --> 00:33:22,860 soort ziet het op deze projector - 665 00:33:22,860 --> 00:33:25,280 is eigenlijk gewoon een raster van stippen. 666 00:33:25,280 --> 00:33:29,730 Dus we kunnen elk van deze punten te identificeren door een coördinaat, x, y, en deze 667 00:33:29,730 --> 00:33:33,890 programma, nu kunnen we beginnen te iets doen om die puntjes. 668 00:33:33,890 --> 00:33:37,540 >> Dus wat ik ga hier verder te gaan en weet is dat ik ga wat veranderingen aan te brengen. 669 00:33:37,540 --> 00:33:41,000 Eerst ga ik verder te gaan en zich te ontdoen van al dat groen en blauw 670 00:33:41,000 --> 00:33:43,520 lawaai, en ik ga om verder te gaan en typ het volgende 671 00:33:43,520 --> 00:33:45,710 weliswaar cryptische syntax. 672 00:33:45,710 --> 00:33:48,020 im voor het. 673 00:33:48,020 --> 00:33:53,380 geplaatst blauw op locatie x, komma, y locatie aan 0. 674 00:33:53,380 --> 00:33:55,610 Met andere woorden, ik wil gewoon schakelen alle van de blauwe 675 00:33:55,610 --> 00:33:56,920 puntjes op die foto. 676 00:33:56,920 --> 00:33:59,800 >> Ik ga nu verder te gaan en klik Dit Run / Save-knop, en je zult 677 00:33:59,800 --> 00:34:02,850 merkt op de rechterzijde, het resulterende beeld verschijnt. 678 00:34:02,850 --> 00:34:06,120 Nu zijn super groen, maar dat is niet verrassend, omdat ik letterlijk draaide 679 00:34:06,120 --> 00:34:11,070 off, door een 1 a 0, al het blauw op die foto. 680 00:34:11,070 --> 00:34:12,540 >> Nou, nu laten we het een beetje meer. 681 00:34:12,540 --> 00:34:16,989 im voor het, dot setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 En dat betekent iterate van links naar rechts en vervolgens van boven naar beneden. 683 00:34:20,659 --> 00:34:23,520 Zet dat af met een waarde van 0, ook. 684 00:34:23,520 --> 00:34:24,750 Opslaan. 685 00:34:24,750 --> 00:34:28,100 En op de projector, kunt u eigenlijk niet echt iets te zien op alle. 686 00:34:28,100 --> 00:34:31,380 >> Op mijn laptop scherm, als ik turen in slechts op de juiste manier, kan ik een beetje een te zien 687 00:34:31,380 --> 00:34:33,300 beeld, omdat ze nog steeds wat rood in. 688 00:34:33,300 --> 00:34:35,540 Als je ooit hebt gehoord van de afkorting RGB - 689 00:34:35,540 --> 00:34:36,830 rood, groen, blauw - 690 00:34:36,830 --> 00:34:39,110 het is verwijzing naar deze samenstelling van een afbeelding met behulp van 691 00:34:39,110 --> 00:34:40,230 alleen die drie kleuren. 692 00:34:40,230 --> 00:34:43,159 En op dit moment, hebben we weggegooid alle groene, helemaal blauw, maar 693 00:34:43,159 --> 00:34:44,500 er is niet veel rood. 694 00:34:44,500 --> 00:34:45,920 >> Dus laat ik het opendraaien van de rode. 695 00:34:45,920 --> 00:34:47,070 Hoe kan ik dat doen? 696 00:34:47,070 --> 00:34:49,300 Nou, ten eerste, ik ga vragen dit programma een vraag. 697 00:34:49,300 --> 00:34:52,030 Ik ga om te gaan en laten we noemen het een variabele, net als in de algebra. 698 00:34:52,030 --> 00:34:54,060 U kunt x-of y of z. 699 00:34:54,060 --> 00:34:57,230 Ik ga een variabele declareren en zeggen, zet in deze variabele, 700 00:34:57,230 --> 00:35:02,790 tijdelijk de waarde van de beelden getRed waarde bij x, y. 701 00:35:02,790 --> 00:35:05,870 >> En nogmaals, we zullen terug naar alle komen dit detail in de toekomst. 702 00:35:05,870 --> 00:35:10,630 Maar voor nu, gewoon op vertrouwen dat deze lijn vraagt ​​het programma, wat 703 00:35:10,630 --> 00:35:12,740 is de rode waarde bij x, y? 704 00:35:12,740 --> 00:35:14,450 Op dat punt? 705 00:35:14,450 --> 00:35:15,710 >> Dan ga ik iets doen om het. 706 00:35:15,710 --> 00:35:21,100 Dan ga ik doen beeldpunt set rood in x, y, y, maar deze keer ga ik 707 00:35:21,100 --> 00:35:24,760 stimuleren door het doen van rode tijden, laten we zeggen, 10. 708 00:35:24,760 --> 00:35:26,870 Zo verhogen met een factor 10. 709 00:35:26,870 --> 00:35:29,880 Laat me nu uit te zoomen en klik kon Uitvoeren / Opslaan. 710 00:35:29,880 --> 00:35:36,430 En voila, dat er de hele tijd, hoewel onze menselijke ogen 711 00:35:36,430 --> 00:35:37,900 kon niet helemaal zien. 712 00:35:37,900 --> 00:35:41,470 >> Dus nogmaals, dit is nu echt code, een voorbeeld van een taal die we komen 713 00:35:41,470 --> 00:35:42,770 terug naar het duurde niet lang. 714 00:35:42,770 --> 00:35:46,670 Maar realiseren, met name die van jullie zonder een dergelijke ervaring, het is heel 715 00:35:46,670 --> 00:35:50,280 snel dat we zullen onszelf te zijn het schrijven van code zoals die daar. 716 00:35:50,280 --> 00:35:54,520 In feite, een tool waarmee je alle enigszins vertrouwd, misschien, is CS50's 717 00:35:54,520 --> 00:35:57,330 eigen cursus-shopping tool, die was deze zomer eigenlijk opgestart door enkele 718 00:35:57,330 --> 00:36:01,070 van CS50's eigen oud-studenten, Nu draaien TFs. 719 00:36:01,070 --> 00:36:04,740 >> Dus dit gebeurt er met een website gebouwd te zijn in een taal genaamd PHP. 720 00:36:04,740 --> 00:36:08,510 Het maakt gebruik van een database genaamd MySQL, dingen waarmee we onze handen krijgen 721 00:36:08,510 --> 00:36:10,190 vuile later in het semester. 722 00:36:10,190 --> 00:36:14,140 Maar geloof het of niet, zelfs iets als dit uiteindelijk reduceert tot de 723 00:36:14,140 --> 00:36:19,480 eenvoudigste van loops en condities en takken, zoals die we zagen slechts een 724 00:36:19,480 --> 00:36:21,530 daarnet in de TED-video. 725 00:36:21,530 --> 00:36:25,180 >> Wat ik dacht, ik doe nu is delen niet gewoon iets wat we het personeel hebben gemaakt 726 00:36:25,180 --> 00:36:28,010 voor de campus, maar eerder iets een vroegere student - drie 727 00:36:28,010 --> 00:36:29,080 studenten, in feite - 728 00:36:29,080 --> 00:36:33,950 maakte dit afgelopen jaar, Sierra, Daniel, en Sam, de laatste van hen hadden geen voorafgaande 729 00:36:33,950 --> 00:36:36,370 programmeren ervaring toen hij CS50. 730 00:36:36,370 --> 00:36:39,950 En voor hun afstudeerproject, ze tentoongesteld, in de CS50 Fair, een 731 00:36:39,950 --> 00:36:43,720 applicatie genaamd wrdly, dat is een web-based programma waarvoor ze gemaakt 732 00:36:43,720 --> 00:36:47,670 Deze video, die ik dacht dat ik zou delen met geven je een gevoel van wat is 733 00:36:47,670 --> 00:36:49,280 mogelijk door eindterm's. 734 00:36:49,280 --> 00:37:57,170 >> [Muziek] 735 00:37:57,170 --> 00:38:00,570 >> DAVID Malan: Dat is vanaf Week Zero tot week 12 het afgelopen jaar. 736 00:38:00,570 --> 00:38:05,470 >> [Applaus] 737 00:38:05,470 --> 00:38:09,520 >> DAVID Malan: Als een teaser, ook, echt om uw eetlust opwekken is voor wat er 738 00:38:09,520 --> 00:38:14,580 mogelijk is, kan je al hebt gezien, of kunnen snel zien, market.cs50.net, een 739 00:38:14,580 --> 00:38:17,710 nieuwe tool dat team de cursus heeft gewerkt, dit keer in 740 00:38:17,710 --> 00:38:21,530 samenwerking met Harvard Student Agentschappen, zoals dat met ingang van dit jaar 741 00:38:21,530 --> 00:38:24,980 en voortgezet hopelijk in dit komende zomer zult u over een standaard 742 00:38:24,980 --> 00:38:27,890 kans op de campus om te kopen en dingen van belang te verkopen aan u. 743 00:38:27,890 --> 00:38:32,220 En met partnerschap via HSA, zul je ook in staat zijn om items af te zetten 744 00:38:32,220 --> 00:38:35,950 in een van HSA fysieke winkels op een bepaald punt in de toekomst, zodat 745 00:38:35,950 --> 00:38:39,150 proxy-dingen, vooral als u studeren en niet per se willen 746 00:38:39,150 --> 00:38:44,110 gooi dingen, maar eigenlijk betalen toekomen aan mensen die je zou kunnen volgen 747 00:38:44,110 --> 00:38:45,270 hier op de campus. 748 00:38:45,270 --> 00:38:46,740 Dus meer op die te komen. 749 00:38:46,740 --> 00:38:49,830 >> Maar een beetje meer concreet, een hulpmiddel dat is gekomen uit CS50 in de afgelopen 750 00:38:49,830 --> 00:38:52,760 jaar, waarmee sommige van jullie misschien wel vertrouwde en anderen van u misschien wel 751 00:38:52,760 --> 00:38:57,940 nu googlen, bij CS50.net/2x, je zult vind een link naar een Chrome extensie 752 00:38:57,940 --> 00:39:01,250 dat is demonstratief van hoe je kunt gebruikt JavaScript, dat dezelfde taal wij 753 00:39:01,250 --> 00:39:06,660 gebruikt met de Eiffeltoren een moment geleden, tot 2x afspeelsnelheid implementeren 754 00:39:06,660 --> 00:39:09,000 voor alle Harvard iSites video's. 755 00:39:09,000 --> 00:39:11,880 Dit is iets dat is gebouwd in CS50's eigen videospeler. 756 00:39:11,880 --> 00:39:14,870 Maar dit, ook, als je begint te graven in de broncode, die we zullen 757 00:39:14,870 --> 00:39:18,840 gelukkig beschikbaar maken, zul je zien hoe je kunt zelfs problemen op te lossen als dat, 758 00:39:18,840 --> 00:39:23,180 versnellen widgets in websites met waar je al goed bekend. 759 00:39:23,180 --> 00:39:26,630 >> Dus een woord nu op de cursus en verwachtingen en wat ons te wachten. 760 00:39:26,630 --> 00:39:29,445 In het algemeen zullen we inderdaad hier verzamelen op maandag en woensdag - hoewel 761 00:39:29,445 --> 00:39:31,490 deze vrijdag, zullen we verzamelen omdat van Shopping Week - 762 00:39:31,490 --> 00:39:34,640 1:00-14:00, hoewel soms tot 02:30. 763 00:39:34,640 --> 00:39:38,700 Gezien het feit dat je dan zou willen of moet wat klasse te nemen op 02:00 764 00:39:38,700 --> 00:39:42,480 verder, of zelfs vóór, beseffen de Natuurlijk is voorstander van wat heet 765 00:39:42,480 --> 00:39:45,900 gelijktijdige inschrijving, waarbij we zullen ondersteuning van een petitie aan de Ad Raad en 766 00:39:45,900 --> 00:39:49,400 uw woonplaats decanen namens u als je hebt een conflict ergens in deze 767 00:39:49,400 --> 00:39:50,790 1:00-02:30 bereik. 768 00:39:50,790 --> 00:39:54,110 Hoofd naar die URL online voor aanvullende details. 769 00:39:54,110 --> 00:39:57,750 >> Maar in termen van de draagconstructie dat CS50 kenmerkt, voor studenten 770 00:39:57,750 --> 00:40:01,750 meer en minder comfortabel gelijk, we bieden verschillende tracks van secties. 771 00:40:01,750 --> 00:40:04,730 En dit is een paar weken uit, maar het duurde niet lang, zult u worden gevraagd om 772 00:40:04,730 --> 00:40:05,770 uw comfort niveau. 773 00:40:05,770 --> 00:40:08,590 Ben je onder degenen minder comfortabel, comfortabeler, of 774 00:40:08,590 --> 00:40:10,520 ergens in het midden? 775 00:40:10,520 --> 00:40:13,150 >> En we hebben drie verschillende tracks die zich op 776 00:40:13,150 --> 00:40:14,470 juist die doelgroepen. 777 00:40:14,470 --> 00:40:17,900 Dus op geen enkel punt in de term moet je zelfs het gevoel alsof je concurreren 778 00:40:17,900 --> 00:40:21,390 tegen elke student met meer of minder achtergrond dan jij. 779 00:40:21,390 --> 00:40:24,160 Inderdaad, is de cursus bedoeld om te worden veel meer op samenwerking en veel 780 00:40:24,160 --> 00:40:25,650 meer open dan dat. 781 00:40:25,650 --> 00:40:29,030 >> In termen van het probleem sets, zul je vinden ook dat naast de 782 00:40:29,030 --> 00:40:32,130 standaardeditie van iedere week probleem ingesteld, is er vaak een "hacker 783 00:40:32,130 --> 00:40:37,010 edition "die is bedoeld om te worden gericht op 5% tot 10% of zo van de 784 00:40:37,010 --> 00:40:40,270 demografische die is inderdaad onder die comfortabeler en zou meer willen 785 00:40:40,270 --> 00:40:43,960 een uitdaging dan de standaard editie van dat pset verwacht. 786 00:40:43,960 --> 00:40:46,390 Meer details over deze te zijn In de syllabus. 787 00:40:46,390 --> 00:40:49,430 >> Maar ook daar kan worden gevonden informatie op de cursussen late dagen. 788 00:40:49,430 --> 00:40:51,570 Typisch probleem sets zijn verschuldigd op donderdag. 789 00:40:51,570 --> 00:40:55,550 Echter, kunt u veel van uw verlengen deadlines dit najaar van donderdag tot 790 00:40:55,550 --> 00:41:00,010 Vrijdag gewoon door ons bijeen halverwege, zo te zeggen, het beantwoorden van een paar warm-up 791 00:41:00,010 --> 00:41:03,370 vragen in een aantal van de week probleem sets, die automatisch zal 792 00:41:03,370 --> 00:41:05,710 dan geef je een extra 24 uur. 793 00:41:05,710 --> 00:41:09,120 We zullen ook uw laagste dalen score, zoals in de syllabus. 794 00:41:09,120 --> 00:41:12,170 >> Om u een idee van wat het probleem te geven sets zijn - want het is inderdaad 795 00:41:12,170 --> 00:41:15,120 probleem van de cursus bepaalt dat uiteindelijk definiëren bijna elke 796 00:41:15,120 --> 00:41:18,760 ervaring student, meer nog dan lezingen, meer nog dan secties, meer 797 00:41:18,760 --> 00:41:21,230 dus dan de meeste andere aspect van de cursus. 798 00:41:21,230 --> 00:41:25,140 Vorig jaar, bijvoorbeeld, begonnen we, zoals we zullen dit jaar beginnen, met Scratch. 799 00:41:25,140 --> 00:41:29,150 Vooral deze vrijdag, gebruiken we, voor slechts een dag de tijd, een grafische 800 00:41:29,150 --> 00:41:32,260 programmeertaal, waarmee we zullen beginnen programmering door te slepen en 801 00:41:32,260 --> 00:41:37,580 dropping puzzelstukken die alleen assembleren fysiek of het zinvol 802 00:41:37,580 --> 00:41:38,990 om dat logisch te doen. 803 00:41:38,990 --> 00:41:43,460 >> Volgende week, we zullen snel de overgang naar C, een vrij oud, maar heel klein en 804 00:41:43,460 --> 00:41:48,510 eenvoudige taal, dat zal ons toelaten om echt gaan van 0 naar 60 in de loop 805 00:41:48,510 --> 00:41:52,290 van slechts een paar weken, en dan parlay diezelfde vaardigheden en kennis van 806 00:41:52,290 --> 00:41:56,160 basisprogrammering constructen in hoger niveau talen zoals PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, en toch anderen nog. 808 00:41:58,240 --> 00:42:02,560 >> Vorig jaar, de derde pset in de loop was die van cryptografie, een 809 00:42:02,560 --> 00:42:06,380 domein-specifieke toepassing waarbij wij daagde studenten aan een uitvoering 810 00:42:06,380 --> 00:42:11,140 aantal cijfers, programma's waarmee om informatie te versleutelen of ontcijferen, 811 00:42:11,140 --> 00:42:11,880 te coderen. 812 00:42:11,880 --> 00:42:16,300 Voor de hacker editie daarentegen we gaven de hacker studenten een bestand 813 00:42:16,300 --> 00:42:19,900 van een standaard Unix-computer met gebruikersnamen en wachtwoorden, 814 00:42:19,900 --> 00:42:22,740 waarvan de laatste versleuteld, en we tegen deze hacker 815 00:42:22,740 --> 00:42:26,850 studenten te decoderen, zo goed als ze konden, die wachtwoorden, nog steeds op dat 816 00:42:26,850 --> 00:42:27,770 hetzelfde domein. 817 00:42:27,770 --> 00:42:30,580 >> Scramble, een spel waarmee sommige van jullie zijn misschien wel vertrouwd. 818 00:42:30,580 --> 00:42:34,410 Een forensisch stuk, waar we leerlingen vragen om gegevens die waren terug te vorderen 819 00:42:34,410 --> 00:42:38,530 anders wordt verwijderd uit mijn eigen digitale compact flash kaart camera's, door 820 00:42:38,530 --> 00:42:42,740 eigenlijk het schrijven van software om erachter te komen, waar waren de nullen en enen in 821 00:42:42,740 --> 00:42:46,850 dat digitale camera die voorheen componeerde een JPEG-afbeelding? 822 00:42:46,850 --> 00:42:49,710 >> Een uitdaging van soorten vorig jaar met het schrijven van de snelste 823 00:42:49,710 --> 00:42:53,160 spell-checker mogelijk, concurrerende tegen vrienden en klasgenoten als 824 00:42:53,160 --> 00:42:53,860 ze willen. 825 00:42:53,860 --> 00:42:56,330 Uitvoering Huff 'n Puff, een compressie programma. 826 00:42:56,330 --> 00:43:01,930 En dan eindigt het semester met CS50 Finance, een web-based applicatie met 827 00:43:01,930 --> 00:43:06,570 waar je een eTrade-achtige website te maken te kopen en te verkopen voorraden, om zo te 828 00:43:06,570 --> 00:43:09,860 spreken, door eigenlijk bijna te trekken real-time koersen Yahoo! 829 00:43:09,860 --> 00:43:10,450 Financieren. 830 00:43:10,450 --> 00:43:13,590 >> Wat we niet doen vorig jaar was een probleemstelling dat overblijft 831 00:43:13,590 --> 00:43:14,810 toch een favoriet. 832 00:43:14,810 --> 00:43:18,400 Als je nog nooit hebt gegaan naar shuttle.cs50.net, zult u een gebruiker te zien 833 00:43:18,400 --> 00:43:19,670 -interface een beetje als dit. 834 00:43:19,670 --> 00:43:23,530 Maar twee jaar geleden, de klasse uitgevoerd, met behulp van Google Maps en de 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in en een beetje van savvy met rondrijden campus, 836 00:43:28,570 --> 00:43:33,290 zodat het doel van dit spel was, als je een aantal van de gezichten kan zien, 837 00:43:33,290 --> 00:43:37,530 is om te rijden rond de campus op zoek naar personeel, onderwijs fellows en CA's, en 838 00:43:37,530 --> 00:43:40,080 wanneer je dat doet, waardoor ze op uw pendelbus. 839 00:43:40,080 --> 00:43:44,035 Geen van hen daadwerkelijk lijken hier te zijn, dus we gaan naar een cheat code in te voeren. 840 00:43:44,035 --> 00:43:47,150 >> [Lachen] 841 00:43:47,150 --> 00:43:48,430 >> DAVID Malan: Daar gaan we. 842 00:43:48,430 --> 00:43:49,240 Oke. 843 00:43:49,240 --> 00:43:51,750 En nu hier is het personeel geregen hele campus. 844 00:43:51,750 --> 00:43:54,530 En zoals je kunt zien, aan de rechterkant kant van het scherm, de pendelbus 845 00:43:54,530 --> 00:43:55,510 heeft lege stoelen. 846 00:43:55,510 --> 00:43:59,000 En het doel was om het te schrijven code waarmee om dit te simuleren 847 00:43:59,000 --> 00:44:01,790 rijden en het oppakken en neerzetten off van de passagiers. 848 00:44:01,790 --> 00:44:04,960 Die Ook met een taal riep JavaScript. 849 00:44:04,960 --> 00:44:10,030 Dus beseffen dat programma's zoals die zal op onze zelfde traject dit 850 00:44:10,030 --> 00:44:10,910 jaar, ook. 851 00:44:10,910 --> 00:44:13,640 >> In termen nu extra steun, we hebben de kantooruren. 852 00:44:13,640 --> 00:44:16,520 Zoals je misschien hebt gezien in je eigen huis eetzaal of op de Annenberg, 853 00:44:16,520 --> 00:44:19,280 zullen we in het huis dineren hallen vier avonden per week - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot en Annenberg dit jaar, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 En wat dachten we dat we dit jaar doen is iets anders. 856 00:44:26,830 --> 00:44:29,650 >> Als je vorig jaar hoorde geruchten dat het was een beetje te zwaar, dit 857 00:44:29,650 --> 00:44:32,800 office jaar uur, zoals we zullen beschrijven volgende week, zal meer organische, 858 00:44:32,800 --> 00:44:36,900 waarbij bij aankomst, zult u verzonden naar een bepaalde tafel 859 00:44:36,900 --> 00:44:39,860 waar meerdere medewerkers af te wachten, en we zullen dingen veel meer te doen 860 00:44:39,860 --> 00:44:40,440 autonoom. 861 00:44:40,440 --> 00:44:43,740 Geen wachtrij, geen iPad, maar liever meer intieme 862 00:44:43,740 --> 00:44:47,300 gesprekken rond een tafel van slechts acht of zo studenten, zodat we 863 00:44:47,300 --> 00:44:50,880 bij benadering het gevoel van wat anders zou een veel kleinere klasse. 864 00:44:50,880 --> 00:44:54,120 >> Wij bieden, maar ook, deze dingen hebben we riep walkthroughs, video's gefilmd in 865 00:44:54,120 --> 00:44:57,330 bevorderen door een van het onderwijs van de cursus kerels, Zamyla, waarin zij 866 00:44:57,330 --> 00:45:00,690 loopt u door de week probleem sets, met tips en trucs voor de 867 00:45:00,690 --> 00:45:02,640 uitdagingen die voor ons liggen. 868 00:45:02,640 --> 00:45:06,230 En omgekeerd, na probleem sets zijn gevolg, dit jaar, zullen we ook los 869 00:45:06,230 --> 00:45:09,100 kleine clips bellen lijkschouwingen die eigenlijk loop je door 870 00:45:09,100 --> 00:45:13,630 representatieve oplossingen, zowel goed als slecht, via welke u kunt afleiden hoe 871 00:45:13,630 --> 00:45:17,550 je zou kunnen hebben of zouden moeten hebben geïmplementeerd uw eigen oplossing. 872 00:45:17,550 --> 00:45:20,500 >> En wat wij bieden voor de eerste keer ook dit jaar, in het bijzonder 873 00:45:20,500 --> 00:45:23,420 voor de studenten die gebruik maken van de cursus de andere 874 00:45:23,420 --> 00:45:28,580 middelen, maar toch worstelen allemaal te veel, de cursus 875 00:45:28,580 --> 00:45:33,030 zelf zal koppelen die studenten, zoals middelen het toelaten, met de docenten zodat 876 00:45:33,030 --> 00:45:35,840 heb je een veel intiemer kans dan house eetzalen 877 00:45:35,840 --> 00:45:38,700 zorgen voor een-op-een ondersteuning. 878 00:45:38,700 --> 00:45:42,780 >> Nu een laatste blik op enkele van het end games in zicht. 879 00:45:42,780 --> 00:45:44,580 Je zou bekend zijn met de CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Nou, komt deze december, vanaf 08:00 Uur tot 07:00, begin 881 00:45:48,120 --> 00:45:51,410 Lezen Periode, zal een gelegenheid zijn om samen met klasgenoten - 882 00:45:51,410 --> 00:45:53,130 zou dit ongeveer 21:00 - 883 00:45:53,130 --> 00:45:56,550 waarin u een duik in uw uiteindelijke uitvoering van het project is naast 884 00:45:56,550 --> 00:45:59,910 klasgenoten, vrienden, en voedsel. 885 00:45:59,910 --> 00:46:03,680 Zou dit ongeveer 1:00, bij de eerste partij van eten kwam. 886 00:46:03,680 --> 00:46:08,470 En dit is ongeveer 4:00 dat bepaald jaar op de CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Maar de echte climax van de cursus is bedoeld om de CS50 Fair, een campus-breed 888 00:46:12,000 --> 00:46:15,790 tentoonstelling van je eigen afstudeeropdrachten, waar familie en vrienden zijn allemaal 889 00:46:15,790 --> 00:46:18,730 uitgenodigd, zoals onze recruiters en onze vrienden uit de industrie. 890 00:46:18,730 --> 00:46:22,170 Dit, bijvoorbeeld, is een glimp van de 2000-plus mensen die hebben deelgenomen aan 891 00:46:22,170 --> 00:46:23,160 afgelopen jaar. 892 00:46:23,160 --> 00:46:27,180 Uitdrukkingen als deze zijn niet ongewoon, en op dezelfde wijze doe je 893 00:46:27,180 --> 00:46:29,660 klasgenoten genieten van dingen je hebt bereikt. 894 00:46:29,660 --> 00:46:33,170 >> En eigenlijk, in de richting van dat doel, we hebben een start-of-termijn evenement, als goed. 895 00:46:33,170 --> 00:46:37,400 Als dit soort dingen je aanspreken, of je bent op zijn minst nieuwsgierig naar wat 896 00:46:37,400 --> 00:46:41,590 dit, weet dat een nieuwe traditie van de Natuurlijk heet CS50 Puzzle Day. 897 00:46:41,590 --> 00:46:45,710 En dit werd ingesteld een paar jaren terug om echt signaal naar campus 898 00:46:45,710 --> 00:46:48,930 dat informatica is niet over programmeren, en het is zeker niet 899 00:46:48,930 --> 00:46:51,960 over het omarmen van alleen die studenten die eerdere ervaring. 900 00:46:51,960 --> 00:46:54,200 Het gaat echt over het oplossen van problemen meer in het algemeen. 901 00:46:54,200 --> 00:46:57,360 >> En dus Puzzel Dag, de afgelopen jaren is uitgegroeid tot een leuke 902 00:46:57,360 --> 00:47:00,500 samenwerking met onze vrienden van Facebook, waarbij er zal fantastisch zijn 903 00:47:00,500 --> 00:47:04,830 prijzen en pizza aan de overkant van de rivier bij de i-lab komende zaterdag. 904 00:47:04,830 --> 00:47:09,180 Hoofd naar die URL met twee of drie vrienden als je wilt deelnemen 905 00:47:09,180 --> 00:47:10,830 in deze nieuwe traditie. 906 00:47:10,830 --> 00:47:14,180 >> Dus ik zou willen vragen dat je blijft een ding in het achterhoofd, en we hebben net een 907 00:47:14,180 --> 00:47:17,070 twee clip minuut waarop te sluiten vandaag. 908 00:47:17,070 --> 00:47:19,640 73% is het nummer te onthouden. 909 00:47:19,640 --> 00:47:23,900 Cake, zal ook u te wachten buiten dit transept zoals we verdagen in slechts een 910 00:47:23,900 --> 00:47:26,710 paar momenten, dat is een traditie van de cursus, als goed. 911 00:47:26,710 --> 00:47:29,860 Maar dit is de sleutel citaat uit de syllabus cursus in gedachten te houden. 912 00:47:29,860 --> 00:47:32,820 Waar het uiteindelijk in deze cursus is niet zozeer waar je terecht komt 913 00:47:32,820 --> 00:47:36,580 ten opzichte van je klasgenoten maar waar u, in week 12, uiteindelijk ten opzichte van 914 00:47:36,580 --> 00:47:37,960 uzelf in week 0. 915 00:47:37,960 --> 00:47:43,670 >> Maar de glimp die we u zullen verlaten met hier vandaag is dit laatste hier 916 00:47:43,670 --> 00:47:47,580 door onze zelfde Daniel, die wel de wrdly video slechts een moment geleden. 917 00:47:47,580 --> 00:47:50,000 Ik laat u met deze blik van wat ons te wachten. 918 00:47:50,000 --> 00:47:53,360 En als we dat doen, als we dat konden CS50 medewerkers van de voorkant van de kamer 919 00:47:53,360 --> 00:47:57,280 te komen op naar het podium om alle verf de meer een visueel beeld gaf 920 00:47:57,280 --> 00:47:59,100 wat verwacht u dit jaar - 921 00:47:59,100 --> 00:48:00,350 steeds onhandig. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 We zullen afsluiten met deze Hier op het scherm. 924 00:48:05,188 --> 00:48:18,634 >> [Muziek] 925 00:48:18,634 --> 00:48:21,124 >> DAVID Malan: Dit is CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUZIEK - MATT & KIM, "It's Alright"] 927 00:50:00,226 --> 00:50:03,245 >> LUIDSPREKER 1: Ik hou van CS50 meer dan katten. 928 00:50:03,245 --> 00:50:06,030 >> SPEAKER 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Lachen] 930 00:50:06,990 --> 00:50:08,140 >> DAVID MALAN: Dit is dus CS50. 931 00:50:08,140 --> 00:50:10,050 Wij zullen u op vrijdag. 932 00:50:10,050 --> 00:50:13,370 >> [Applaus en gejuich] 933 00:50:13,370 --> 00:50:17,540 >> NARRATOR: Bij de volgende CS50, een podium demo gaat niet zoals gepland. 934 00:50:17,540 --> 00:50:19,080 >> DAVID Malan: Wij willen Mike vinden Smith in dit telefoonboek. 935 00:50:19,080 --> 00:50:20,380 Nou, wat zijn je instincten? 936 00:50:20,380 --> 00:50:23,750 Ik zou ruwweg springen naar het midden van de het telefoonboek, blik omlaag, zie dat 937 00:50:23,750 --> 00:50:26,830 Ik ben bij M, en ik weet nu dat Mike Smith niet naar links. 938 00:50:26,830 --> 00:50:27,840 Hij moet naar rechts. 939 00:50:27,840 --> 00:50:30,515 En dus op dit punt, we kan letterlijk scheuren - 940 00:50:30,515 --> 00:50:33,300 op dit punt, kunnen we letterlijk scheuren - 941 00:50:33,300 --> 00:50:36,490 op dit punt, kunnen we figuurlijk scheurt het telefoonboek doormidden. 942 00:50:36,490 --> 00:50:38,954 >> [UKELELE STRUMMING]