[Powered by Google Translate] [Musik spelar] David J. MALAN: Detta är CS50. Så jag var där du är nu några år sedan. Och när jag var en nybörjare på den tiden var jag inte riktigt på denna väg att göra datavetenskap, att göra teknik. Faktum kom jag på denna plats som en statlig koncentrator. Jag hade varit i gymnasiet, en kille som gillade saker som historien. Jag gillade grundlag, typ av engelska och matematik. Det är som sådan väl avrundad, men inte nödvändigtvis vet saker som jag inte hade varit undervisade på gymnasiet. Och så första år hade jag denna bävan innebär även även om jag gillade datorer, spelade dataspel och gillar jag verkligen aldrig tänkt på mig själv som en dator person, en datavetare. Och ärligt talat, jag trodde mina vänner i gymnasiet som tog datavetenskap var lite av en nördar. Och ändå, när jag kom hit på campus, var det denna kurs, CS50. Och på den tiden hade det detta rykte av att verkligen vara något att se upp. Det var en bra kurs. Det var en rolig kurs. Men du var tvungen att faktiskt få det fot i dörren. Och även jag inte över detta tröskelvärde första år. Och jag gick på mitt sätt att vara en regering koncentrator, gå genom så många av förutsättningarna som jag kunde, gränsöverskridande räkna saker för gen ed eller kärna och liknande. Och sedan andra år, av någon anledning fick jag upp modet att steg fot i Science Center B, där CS50 var. En mycket berömd datavetare vid namn Brian Kernighan lärde här det året. Och även då var jag bara villig att faktiskt fylla min studie kort genom att ta denna klass godkänd / underkänd. Jag såg mig omkring och jag tänkte att alla i ens måste veta mycket mer om datavetenskap, om programmering, om datorer. Alla måste man vara programmering, i detta rum, eftersom de var 12. Men faktiskt var det inte fallet. Och så den allra sista dagen, den femte måndag av terminen, tog jag denna språng och förändring från godkänd / inte en brev klass och hamnade ändra min koncentration som Samma dag datavetenskap. Nu, det är inte vårt mål i den här klassen, för att slå er alla till datavetenskap koncentratorer, men verkligen föreslår att det finns en möjlighet på detta område och inom andra områden som du kan vara ganska obekanta med tanke på att gymnasieskolor vanligtvis följer en ganska standard kursplaner väg, men att våga i, i CS50, i nya vatten. Och om du sitter här idag tänker du inte faktiskt tillhör, så gör de flesta människor till höger och till vänster. Faktum förra året hade 76% av eleverna i denna klass inte tidigare erfarenhet. Så i motsats till vad man kan tro, de flesta människor sitta här idag inte i själva verket har någon tidigare erfarenhet. 18% har tagit en CS klass och 6% har tagit två eller fler. Samtidigt ber vi våra studenter varje år för att beskriva själva i termer av komfort nivå. Och det finns ingen definition av detta. Du bara sorts veta det om du inte är väldigt bekväm i CS50. Och förra året hade vi 55% i denna gröna paj skiva här självbeskrivande som mindre bekväm, elever som ärligt hade ingen aning om varför de skulle även handlat kursen på den första dagen. Men samma 55% kvar hos oss tills tiden slut, liksom 35% som var någonstans mellan de mer bekväm och de mindre bekväm. Så, vad är datavetenskap? Väl i gymnasiet, och verkligen mer allmänt ut Det dessa dagar, det finns denna uppfattning eller denna missuppfattning att datavetenskap är programmering. Och det är absolut en del av datavetenskap. Men programmering, oavsett språk, är egentligen bara en verktyg som datavetare använder för att lösa problem, antingen på området för datavetenskap eller allt dessa dagar i fysik, naturvetenskap, i medicin i humaniora, för att analysera stora datamängder. Överallt nu finns det datorer och data, finns det en möjlighet att tillämpa lärdomarna i en klass som CS50. Så låt oss lösa ett problem som en dator vetenskapsman kan gå om att lösa och försöka sätta lite jargong, sätta några begreppsram kan runt vad annars skulle vara en del ganska abstrakt idé. Så detta är en telefon. Du ser inte dessa saker alltför ofta, även om högskolan fortfarande verkar ha dessa i husen och sovsalar. Men tillbaka i dag när du ville använda en telefon som detta fanns det ingen elektronisk adressbok i din mobiltelefon. Snarare drog du upp något känd som en telefonbok. Och dessa telefonböcker hade omkring 1.000 sidor, typiskt. De sorterade från A till Ö. Och du bara var tvungen att hitta rätt för att hitta den person du söker för att hitta deras namn och deras telefonnummer. Nu hur ska du gå om att se upp någon i den här boken? Antag mitt mål är att ge min vän, Mike Smith, ett samtal. Nå, hur gör jag för att hitta Mike Smith? Tja, ett mycket rimligt tillvägagångssätt, om naiv och ineffektiva, skulle börja här och börja vända på sida 4 till sida 5 till sida 6, och typ av linjärt, längs en rak linje, gå igenom den här telefonboken. Och även om det kommer att bli otroligt tråkig, om Mike Smith är i den här boken, jag så småningom ska nå honom när jag äntligen vända till S i denna bok. Nu naturligtvis behöver du inte vara en datavetare som vet att detta är ett dumt sätt att lösa detta problem. Vad skulle en typisk människa göra? Bra gjort. Så du skulle vända till mitten, till höger. Så du skulle vända ungefär till mitten, se här, och jag verkar att hitta mig själv i M avsnittet. OK, så M är helt klart inte vad jag letar efter. Och Mike till höger, så att säga, i detta avsnitt. Och som en del av er har sett förut, kan vi bokstavligen nu fortsätta att riva detta problem i halv. [Applåder] Du borde verkligen inte vara så imponerad. Riva ner sömmen är faktiskt inte så svårt. De verkliga människor gör på det här sättet. Men ner sömmen har vi nu två problem, vilka vilket är hälften så stor. Och vi kan bokstavligen kasta att hälften av problemet borta. Nu är vi kvar inte med 1.000 sidor, men, säg, 500. Så nu vad gör jag? Tja, en typisk människa gå ungefär i mitten igen. Och jag befinner mig ett R sektionen. Så inte riktigt där. Så återigen, jag kan riva detta problem i halv. [Applåder] Tack. Så nu har jag bara några 250 sidor. Och jag kan göra det igen och igen och igen och gå från 125 ner till ungefär 60 till 30 till 15 och så vidare. Och slutligen, jag får reducerats till en av S sidor på som, om han är i telefonboken, bör Mike Smith vara. Nu är det en uppenbart ganska rimliga algoritm, och det är en en-gång-användning algoritm i detta fall. Men vad kan vi sortera på ta ifrån det? Tja, det första tillvägagångssättet, korrigera om naiv men det var, kan beskrivas med denna raka linje. Så om på x-axeln här säger vi att detta är storleken på problem, så som x-axeln går till höger, den Problemet blir större. Vad innebär det att vara större i sammanhang detta problem? Fler sidor i telefonboken. Det finns mer något vi kan kvantifiera. På y-axeln, tid att lösa. Så som axeln går upp, tar det förmodligen mer tid. Så att första metoden att söka linjärt från sidan 1 till dot dot dot sid 1.000 är en linjär procedur, en linjär algoritm eller process. Och vi kan beskriva det med denna rät linje. Om jag lägger en ytterligare sida i telefonboken, det kommer att, i värsta fall ta mig en ytterligare sida flip att hitta Mike Smith. Om jag lägger 100 sidor, vänder 100 mer eller tidsenheter. Nu kan jag vara lite smart med detta. Jag behöver inte riktigt stänga en sida i taget. Jag kan göra saker som 2 vid en tidpunkt eller 4 vid en tidpunkt. Men även det är inte allt som i grunden bättre. Även om det är 2 vid en tidpunkt, ja, flyttar den typen av detta linje ner lite, och det betyder att det tar mindre tid ges samma antal sidor. Men det är inte i grunden bättre. Men vad gjorde vi bara, och vad gjorde ni alla gör instinktivt? Du uppnådde faktiskt lite ungefär så här, logaritmisk tid, varvid problemet kan växa och växa och växa men kostnaden för att lösa detta problem, den tid krävs för att lösa det problemet, inte växer nästan lika snabbt. Detta skulle vara en logaritmisk kurva, log n, där n är bara storleken på problemet, antalet sidor i detta telefonbok. Och vad innebär det i reala termer? Tja, om vi har liknande 500 personer i det här rummet just nu, eller snarare om vi har - blandning metafor, gjorde inte det exemplet ännu i år - så om vi har 500 sidor i telefonboken och vi fördubbla det till 1.000, i detta mer intelligent modell flipping till mitten, hur många fler sidor tårar det ta att gå från 500 sidor till 1.000? Tja, bara en extra sida tår. Om du lämnade mig en 2.000 sida telefonbok, no big deal. Jag river bara det en extra gång. Så kort, kan storleken på problemet växer mycket snabbare än kostnaden att faktiskt lösa det. Nu är detta bara en sådan algoritm. Det finns andra som vi kan lösa på samma sätt. Och så varför inte vi göra det? Om du vill humor mig, om än tafatt här i Sanders, gå framåt, alla, om du kunde och stå upp på plats. Som du ser på skärmen här, detta är en algoritm, en processen, ett datorprogram om du vill, som skall utföras av människor som har bara 3 steg. Vi är redan på steg 1. Du har stått upp. Och nu tror på dig själv nummer 1. Det är ditt nuvarande nummer. Alla här är nummer 1. Steg 2, ihop av med någon stående, lägga till nummer tillsammans, och sedan anta summan som ditt nya nummer. En av er ska sitta ner och upprepa sedan. Högtalare 1: 205. David J. MALAN: Vad är det? Högtalare 1: 205. David J. MALAN: OK. Högtalare 2: Han har de andra. David J. MALAN: 205? SPEAKER 3: Ja. David J. MALAN: OK. 3. TALARE 4: 400. TALARE 5: 5. 700. David J. MALAN: Okej. Vid det här laget bör färre och färre människor stå. Det är här det blir mer besvärligt. Någon här. Här. Det värsta är att du också behöver mycket muntligt göra aritmetik framför hundratals Harvard undergrads. OK. Lite av en bugg här. Okej. Vad är ditt nummer? SPEAKER 6: Nio. David J. MALAN: Vad är det? SPEAKER 6: Nio. David J. MALAN: Nio. Okej. Vad är ditt nummer? SPEAKER 7: 179. David J. MALAN: 179? Okej. Bra. Så 188. Så ni kan sitta ner. Vad är ditt nummer? SPEAKER 8: 118. David J. MALAN: 118. Några smarta undergrad börja göra matten. Okej. 118, 188. Vad har vi? TALARE 9: 71. David J. MALAN: 71. SPEAKER 10: 79. David J. MALAN: 79. Okej. SPEAKER 11: 47. David J. MALAN: 47. Vilket, lärare, som ger oss hur många? 705 är svaret. Och det är i själva verket exakt korrekt. Nej, vi var faktiskt lite off där. Men hur ska detta ha fungerat? Vad ska just hänt? Så på varje iteration av denna algoritm, började vi med visst antal personer som står, och det var totala antalet N vid första. Då hälften av er satte sig och vi gick till n över 2. Då hälften av er satte sig ner. Vi gick till n över 4, n över 8, n över 16, och så vidare, tills, även om det slags upplöstes där på slut, i teorin, hade alla ihop sig i balkong och mezzanine och orkester här, skulle vi haft bara en ensam person som står med ett sammanlagt värde, i detta fall, med 705. Nu, vad betyder det, men för den löpande tiden? Tja tänka på om jag som människa hade gjort det manuellt. Jag skulle ha börjat ganska naivt, men korrekt med 1, 2, 3, 4, 5, 6, 7, 8, och så vidare. Tar ganska lång tid. Så jag kan göra bättre, eller hur? I grundskolan behöver du inte bara räknas i sådana. Du räknar två och två. Så 2, 4, 6, 8, 10, 12. Och det blir mycket snabbare. Men nu grunden, genom att utnyttja den kollektiva intelligens av alla i det här rummet, kan vi uppnå en bromsa mycket mer om detta, varvid nu numret på den människor i det här rummet skulle fördubblas. Ytterligare 700 personer går in i detta rum för 1.400 personer, men det skulle bara ta oss en ytterligare variant av denna algoritm för att lösa. Och så allt dessa dagar, när vi har dessa enorma dataset på Facebook och Google och liknande, det är lösa problem med lite insikt, denna bit av skicklighet, som är tillåter oss alltmer att göra mycket, mycket kraftfullare saker med datorer idag. Om du gillar dessa typer av saker, kanske du har sett på Facebook CS50 egen Pussel Day kommer upp denna lördag. Om du vill delta i något som Detta innebär att du, i 2 eller 3 eller 4 grupper om 4, vill lösa några pussel som denna, står du en chans att vinna några fantastiska priser, bland vilka är en Wii och en del presentkort eller någon annan Facebook-swag. Denna lördag, klockan 3:00 PM, gå till cs50.net/rsvp för sådana. Och denna bild är online om du vill leka. Problemen i år ska vara nya. Du kanske märker i klassrummet också allt mer kameror i år. Så inte bara kommer kursen att filmas på vanligt sätt, CS50 kan också delta i en dokumentär om högre utbildning som tittar på den omvandlande erfarenhet att en student kan ha i dessa dagar i en grundutbildning studier. Så mot dessa, då kommer vi inte bara att filma för det kommer vi att filma även för allt vår online-publik, liksom ibland denna publik här. Så vi välkommen till klassen i år vår Harvard Extension School studenter, Graduate School of Design, Utbildning, näringslivet skola, Kennedy School, juridisk fakultet, samt ett antal studenter från Belmont, Lexington, Newton och Watertown högstadier. Välkommen till er alla. Dessutom i år, kanske du har hört, Harvard och MIT, och Berkeley nu har ingått ett samarbete partnerskap, ett initiativ som kallas EDX, vilket är en initiativ att öppna upp utbildningen till alla större människor på nätet och i grunden börja göra forskning på en mycket större skala för hur människor lär sig. Och så CS50 blir skolans första kursen delta i detta initiativ också. Vilket innebär att du kommer att ha tillgång till alla de fler verktyg, desto mer läroplanen innehåll, desto mer videon innehåll som en följd också, som i går morse, den 53.019 personer som har registrerat att ta CS50 tillsammans med er i år på Internet. Så utan - [Applåder] Så vad detta innebär, bland annat, är att lärare och jag har tillbringat en hel del tid detta sommar förbereder hösten, både på campus och på så att vi kan börja bygga upp en samling intressanta, om övertygande, att engagera pedagogiskt innehåll som fokuserar särskilt på mer intima fordon av ganska komplext material. Så utöver kursens föreläsningar och sektioner och Saker som kallas genomgångar som vi ska återkomma på bara en bit, vi har även dessa shorts i år som tillåter du att samarbeta med kursen från en annan vinkel helt och hållet. Så låt oss använda detta som en möjlighet att ta en snabb titt på en som diskuterar detta begreppet binärer. Så i datavetenskap, det finns saker som kallas algoritmer - två som vi tog bara en titt på - dessa förfaranden för lösa problem. Men i slutet av dagen, måste du representera information på något sätt. Och du måste representera den på ett sätt som en dator kan förstå. Och även om du inte riktigt förstår datorer och du är i att 76% just nu, har du förmodligen någon vag meningen att datorerna på något sätt handlar med 0 och 1, det binära systemet, så att säga. Nu varför är det så? Tja, det visar sig när datorer först kom till, om du behövs för att representera information, kan du göra det med el. Och även om detta är lite av en grov förenkling, en mycket enkelt sätt att registrera information är antingen slår att el på - en 1 i binär, så att säga - eller vrida att elektricitet av. Så om Barry, om du inte skulle ha något emot, kunde vi dämpa belysningen helt för ett ögonblick? Detta är här ett mycket meningslöst binär 0. Om vi ​​vänder ljuset tillbaka upp, nu Sanders Theatre är representerar binära värdet 1. Tyvärr, med bara en bit, med bara en uppsättning av ljus, kan vi endast representerar två siffror i värld, 0 och 1. Och det skulle vara trevligt om datorer kunde räkna en lite högre än det. Men de verkligen kan. Så låt mig dra upp på skärmen här vår vän Nate Hardison som kommer att ge oss en snabb titt under loppet av bara några minuter vid denna föreställning om binära. [VIDEOAVSPELNING] NATE Hardison: Tillbaka när du lärt dig att läsa och skriva nummer, lärde dig om siffrorna 0 till 9. Att skriva heltal större än 9, lärde du dig att alla du var tvungen att göra var att använda en kombination av dessa siffror, som i 52 och 437. Så har detta sätt att skriva siffror en namn, decimalform. Varför decimal? Tja, betyder den latinska roten av en decimal, decem, 10. Och när du har 10 siffror i notskrift systemet, 10 blir ett ganska speciellt nummer. Låt oss titta på hur många 437 skrivna i decimalform till förstå varför. Vi kan först bryta upp 437 i 400 plus 30 plus 7. Vi kan ta isär ännu mer så att vi har 4 gånger 100 plus 3 ggr 10 plus 7 gånger 1. Kom ihåg att lära sig om dem plats, tiotals plats, hundratals plats, och så vidare? Det är precis där som kommer från. Och slutligen, kan vi se att vi har en massa befogenheter 10 inbäddade i här. Vi har 4 gånger 10 till 2 plus 3 ggr 10 till 1 plus 7 gånger 10 till 0. Så nu ser du varför 10 är en speciell Antalet decimalform. I själva verket har vi ett namn för det. Det kallas basen eftersom det är basen i exponenten i vår aritmetik här. Decimalform är inte det enda sättet att representera tal. Faktum är att även om vi bli av siffrorna 2 till 9, kan vi fortfarande representerar alla nummer som Vi kunde med decimal. Så nu har vi två siffror, 0 och 1, 2 är vår speciella nummer, basen för vår notation systemet. Namnet på denna notation systemet kallas binär eftersom prefixet "bi" betyder 2. Så istället nu att ha en de plats och tiotals plats och så vidare, har vi nu en de plats, en tvåor plats, en fyra plats, och så vidare, går upp genom befogenheter 2. Så låt oss se detta genom att göra några räkning. Så, 0 fortfarande 0 och 1 är fortfarande 1. Men nu när vi har en tvåor plats i stället för tiotals plats, motsvarar 10 siffran 2. För att få 3 lägger vi en till det och få 11. 4, eftersom det finns nu en fyra plats, representeras av 100. Fem är 101. 6 är 110. 7 är 111. 8, återigen, har sin egen plats. Så det är 1000. Och jag tror du fattar poängen. [END VIDEOAVSPELNING] David J. MALAN: Så, är detta att säga vad datorer gör och vilken Binärfilen är faktiskt inte så olikt från vad Vi har tagit för givet under några år, eller hur? Du räknar grundskolan lärde dig att räkna på exakt mode som Nate föreslog. Men du förmodligen inte riktigt tänkt på det sedan, det faktum att det är de plats, tiotals plats, och hundratals plats. Och det är ganska godtycklig. Och faktiskt, datorer helt enkelt använda denna annorlunda bas. Men i slutet av dagen, att faktiskt fysiskt representera denna föreställning om en 0 och 1, du uppenbarligen inte bara vrida lampor på och av nödvändighet. Du måste göra det på ett mycket mer finkornig skala. Och genom mer finkornig, kanske du kommer ihåg denna fåniga liten leksak från barndomen, Woolly Willy och dessa små magnetiska partiklar. Så magnetiska partiklar är något som du kan anpassa i ett par olika riktningar, kanske nord-syd eller syd-nord. Och så en massa fysiska inkarnationer av teknik dessa dagar som använder binära, som använder 0 och 1, helt enkelt har magnetism på insidan som anpassar saker, upp-ner eller ned-upp, med därigenom representerar en 0 eller en 1, respektive. Så ja, låt oss gå bort från det abstrakta här och titta på insidan av vad är en mer traditionell datorns hårddisk. Den här råkar vara lite större på skärmen i att det är från en stationär dator. Men bärbara datorer idag har fortfarande samma teknik, men är successivt ersätts av mer avancerade saker som har faktiskt inga rörliga delar. Insidan då en hårddisk. [VIDEOAVSPELNING] SPEAKER 12: Hårddisken är där din dator lagrar de flesta av dess permanenta uppgifter. För att göra det, reser data från RAM samt programvara signaler som talar om för hårddisken hur man lagrar dessa data. De hårda drivkretsar översätter dessa signaler till spänningsvariationer. Dessa i sin tur styr hårddiskens rörliga delar, några av de få rörliga delar kvar i den moderna datorn. Några av de signaler styr en motor som roterar metallbelagda skivorna. Dina uppgifter faktiskt lagras på dessa fat. Andra signaler flyttar läs-skriv huvudet att läsa eller skriva data på skivorna. Denna maskin är så exakt att ett mänskligt hårstrå kunde inte även passera mellan huvudena och spinning skivorna. Ändå fungerar alla på fantastiska hastigheter. [END VIDEOAVSPELNING] David J. MALAN: Så om vi zooma nu på vad som är faktiskt händer på toppen av dessa skivorna i termer av magnetism har vi denna andra av två utseende. [VIDEOAVSPELNING] SPEAKER 13: Låt oss titta på vad vi just såg i slow-motion. När en kort puls av elektricitet skickas till läs-skriv huvudet, vänder det på en liten elektromagnet för en bråkdelen av en sekund. Magneten skapar ett fält som ändrar polariteten hos en liten, liten del av metallpartiklar som täcker varje tallrik yta. Ett mönster serie av dessa små laddade upp områden på disken representerar en enda bit av data i det binära talet som används av datorer. Nu, om strömmen sänds en väg genom läs-skriv huvud, är området polariserad i en riktning. Om strömmen är inställd i den motsatta riktningen, den polarisering är omvänd. Hur får man data från hårddisken? Bara vända processen. Så det är partiklarna på disken som får strömmen i läs-skriv huvudet rör sig. Sätt ihop miljontals dessa magnetiserade segment och du har fick en fil. Nu kan delar av en fil ska utspridda över en enhet har fat, ungefär som röran av papper på skrivbordet. Så en särskild extra fil håller reda på var allting finns. Önskar du inte att du hade något sådant? [END VIDEOAVSPELNING] David J. MALAN: Ja. Så har vi denna förmåga att representera information, siffror på en mycket låg nivå. Vi har ett fysiskt sätt att representera samma sak. Men vi kan inte riktigt göra så mycket av intresse men annat än möjligen lite aritmetik och matematik. Vi har ingen möjlighet att representera så långt saker som bokstäver så att vi människor kan kommunicera användning av dessa samma anordningar. Men tack och lov finns det kodningar, mönster av 0 och 1s, som representerar högre nivå konstruktioner som a och b och c och hela meningar och stycken och liknande. Och så ASCII, vilket är en akronym som refererar till detta kodningssystem varvid ett antal representerar en viss bokstav. Till exempel är antalet som vi känner som decimalvärde 65 känt som bokstav A till datorer. Det decimala värdet av 97 i datorer är känd som en gemena en. Och vad betyder det egentligen? Tja, även om Nate nyss bara räknas upp 0 till 8, om vi skulle fortsätta räkna upp till 65 eller ytterligare till 97, mönstret av 0 och 1 att han skulle ha ritas på skärmen skulle vara precis vad en dator använder att representera bokstaven A i alla mössor eller bokstaven A i gemener. Och faktiskt, det finns en hel system till detta. Detta är en, vid första anblicken, överväldigande diagram av kodningar, men om du bara fokusera på den högra halvan här, Observera I denna mittspalten vi har denna föreställning om siffror följt av bokstäver. Och på toppen har vi 32. Och karaktären, röding, som 32, heltalet hänvisar är tydligen mellanslagstangenten karaktär. När du träffar tecknet mellanslag på din bärbara dator, bra, vad du verkligen skickar ett nummer, ett mönster av 0 och 1, ett flöde av el om du vill, representerar de 0s och 1s att datorn då tolkar som ett mellanslag på skärmen. Ett utropstecken är 33. Citattecken är 34. Och om vi rulla ner här under till höger, ser vi att 65 är verkligen A och 97 är verkligen små bokstäver en. Och så nu när vi har den här kodningsschema kan vi börja att stava saker. Faktum datorer uttrycker typiskt sig i standard enheter, inte med en individuell bit, som återigen är inte alla att bra att bara representera 0 eller 1, lampor på eller av, men snarare använder sekvenser av bitar. Och den vanligaste måttenhet, som ni säkert vet och eller åtminstone sluta, är en byte. En byte är bara åtta bitar, åtta 0s eller 1s i rad. Så vi kan börja stava saker. Och så, om vi kunde, varför inte prova det här lite kollektivt här. Finns det åtta personer i det här rummet som skulle vara villiga att komma upp på scenen? Du måste vara bekväm visas på kameran, men du inte verkligen behöver veta, annars, vad är pågår ännu. Jag ser en person som frivilligt hit. Två, tre, fyra, fem, sex, sju, och vad sägs om åtta. Kom upp. Så du är på väg att representera en byte av människor. Låt mig har du vara 128 plats, du 64 plats, du den 32 plats. Men vi ska mycket snabbt måste vända denna. Så låt mig träffa er alla där borta. Och du ska vara i 128 plats hela vägen hit. Ungefär som hundratals plats och tusentals plats skulle vara längre till vänster, vill vi det största platshållare att vara här till vänster också. Vi har 64s: s 32, 16-talet, 8 s, 4 s, 2 s, och 1: or. Utmärkt. Så nu har vi - OK, du kan hjälpa mig. Så nu har vi - vad heter du? JOANNE: Joanne. David J. MALAN: Joanne. Så Joanne och jag ska nu råda dessa killar om hur vi kan gå stavning något. Så på ryggen på sina papper, de har en liten fusklapp som kommer att berätta om de representerar en 0 eller en 1. Och varför inte för enkelhetens skull, vi representerar 0 genom att bara stod där tafatt. Mycket bra. Eller en 1 genom att höja handen, vilket motsvarar en 1. Och låt oss se om vi inte kan skriva in en fyra tecken fras här. Så, sätt igång nu, volontärer och exekvera runt en av höja handen om du är en 1 eller hålla den ner om du är en 0. Så, nu när vi har dessa tre händerna, vilket nummer, alla andra, de är representerar egentligen? OK. 67. Varför? Tja, snabb förnuft kontrollera. 64 plats, eftersom det är en 1, är det som 1 gånger 64 plus 1 ggr 2, så det är 66 plus 1 gånger 1. Det är plus 1, så 67. Så nu dessa killar är tillsammans representerar 67 vilket motsvarar tydligen vad här i ASCII! OK. Så en c. Okej. Så låt oss nu gå vidare till runda två. Alla börjar med händerna nedåt. Och i omgång två - faktiskt finns det inte mycket av en roll här, antar jag, men vi låtsas. Så runda två, höja eller sänka dina händer. Okej. Publik, vad är det vi nu uttrycker är 83. Så du kan göra matematiken. Men för någon vars hand är upp, lägger du i det antal som de representerar. Så nu har vi 83. Låt oss utöka fusklapp lite, och vi har nu -? [OHÖRBAR] David J. MALAN: OK. Detta kan vara uppenbart vart vi ska här, men ändå runda tre. OK. Omgång tre är bra att gå ner dit. Så rund tre, vilket nummer är dessa killar nu representerar? OK. Jag hörde 53, som nu representerar? Intressant. Nu varför denna typ av räknare intuitivt resultat, eller hur? Om vi ​​vill representera 5 - vi alla vet förmodligen där detta kommer - varför inte jag höjer bara 4 plats och 1 plats? Tja, inser att det finns en skillnad i grunden, mellan hur en dator tolkar dessa bitar. Om du försöker att representera nummer 5, så absolut, Vi höjer bara 4 handen nummer och höja handen nummer 1. Men vi är inte företräder siffror här. Sammanhanget här på scenen är att vi representerar tecken, eller tecken. Och i detta sammanhang att datorn måste inse att, Åh, är detta mönster av bitar inte ett nummer ensam, det är faktiskt representerar en högre nivå begrepp, i detta fall en alfabetisk bokstav. Så att det nu är som representerar antalet 5 med värdet 53 är på grund i ASCII det vi estetiskt ser som nummer 5 själv behöver en mönster av bitar. Eftersom varför? Tja, beslutade världen bara för att använda den lägre nummer, 0, 1, 2, 3, för vad ser ut att vara ganska kryptiska saker. Och faktiskt, det är de tecken som inte finns på en tangentbord, särskilda uttryck som du behöver i en dator för att göra intressanta saker, men människor aldrig faktiskt skriva dem. Så 53 representerar faktiskt 5. Nu, precis som en sista sanity check, vilket nummer bör de utgör i ett ögonblick? Publiken: 48. David J. MALAN: OK. Så 48. Och faktiskt, gå vidare. Omgång fyra. 16 plus 32 är faktiskt 48. Och så en stor applåd, om vi kunde, för vår åtta volontärer här. Tack. Du kan hålla en. Om du - Mycket bra gjort. Någon riktning är bra. Så har vi nu ett sätt inte bara tänka på hur man representera data och faktiskt representerar det fysiskt, men också att göra högre nivå saker ovanpå den. Faktum är att denna kommer att bli ett tema i hela dator vetenskapen att bygga mer och mer intressant komplex saker på toppen av ganska enkla idéer, i detta fall bara 0 och 1. När det gäller varför detta är bra, bra även om det i ett kurs som denna kommer vi att fokusera på fundamenta och programmering och problemlösning, kan du gå ut på datavetenskap i valfritt antal riktningar. I detta fallet här, är detta ett diagram som du har på baksidan av din inofficiella guide till CS på Harvard, en av dagens två utskrifter. Detta föreslår många olika riktningar i vilka Du kan gå efter en kurs som denna. Lär dig mer om artificiell intelligens, om grafik, om maskininlärning, om språket självt. Inse också, att det finns ännu andra vägar. Det finns fler matematiska banor i datavetenskap. Om du inte ens kan ta något som CS50 här falla, det finns introduktionskurser i våras. Datavetenskap 1, till exempel, är ännu en på ramp till denna nya värld. Nu som en sidoreplik av intresse för att lösa problem relaterade till kurser, inse att CS50 anges någon gång sedan att försöka lösa något av dessa problem, problem känt som my.harvard, som många av er kanske använder faktiskt handla kurser. Men om inte, kolla in ett verktyg som detta, liksom andra ättlingar att några av våra tidigare studenter och personal har skapat. Men i Harvard Kurser, vilket är ett webbaserat verktyg - något som du kommer att kunna utforma och distribuera själv, liksom ytterligare andra saker också, genom slutet av terminen. Inse att detta bygger på en öppen datamängd, i detta fall en kurskatalog och tillåter eleverna i detta fall utforska en ganska komplex datamängd. Vi grävde upp igår kväll ett par statistik baserad på de få tusen folk som har använt detta under de senaste dagarna. Om du har varit nyfiken på hur många kurser dina vänner faktiskt tenderar att handla, ja, idag är det data tyder på att 7,6 är det genomsnittliga antalet kurser om någons inköpslista. Och nu ska jag ge er också, statistiken av de mest antal kurser på någons inköpslista. Och vi alla förmodligen känner någon som denna. 201 är årets rekord. Nu några av våra tidigare studenter och personal som faktiskt sätta ihop ett klipp att måla en bild för er om vad detta väg datavetenskap och CS50 sig. Låt mig gå vidare och dra upp, tack vare mr Hahvahd här, en video som produceras av några av era föregångare. Om vi ​​kunde hålla lyser för detta. [VIDEOAVSPELNING] [END VIDEOAVSPELNING] SPEAKER 14: (sång) Vi tar vår tid med några repor, för öglor, evenemang, kan vi matcha, sammanställa använda vår bash, kommer denna term inte ett hål. Hacking roligt, några gratis måltider, föreläsningar är helt enkelt overkligt, vår beskärda är en så stor sak, det finns så mycket att älska. Gå David Malan. Walkthroughs, jag ösa inte. Kontorstid, är ingen misslyckas. Där du tror att du kodning, älskling? Hej, jag träffade bara du och det är galet, men här är vårt förnuft. Ta CS50. Det är svårt att koden rätt utan dig, älskling. Men här är vårt förnuft. Ta CS50. Hej, jag träffade bara du och det är galet, men här är vårt förnuft. Ta CS50. Och varje stjärna företaget vill anställa mig, en annan anledning. Ta CS50. Innan du kom in i mitt liv, jag kodat så illa, kodat jag så dåligt, kodad jag så, så illa. Innan du kom in i mitt liv, kodade jag så illa och jag kan inte gå tillbaka. Ta CS50. David J. MALAN: Jag hade ingen aning om att det skulle hända. Så ligger en mer allvarlig titt på vad framtiden. Så när det gäller förväntningar i kursen, du verkligen förväntas delta eller titta på kursens föreläsningar, skicka ett problem set, ta två frågesporter, skicka ett examensarbete. När det gäller betyg, inser att min kommentar vid öppningen om godkänd / underkänd, något som vi verkligen tar till hjärta i CS50. Det finns inte alls tillräckligt för en kultur vid Harvard att försöka något och riskera misslyckande. Faktum hade vi antalet studenter, och jag själv, i var särskilt som oroade skada din GPA eller få ett B i ungefär CS50. Och möjlighet att ta en kurs som denna och andra gateway kurser på den inledande nivån, godkänd / underkänd är en mycket underutnyttjad möjlighet vid denna högskola, i allmänhet. Och så du vet även jag inskriven i kursen ursprungligen för godkänd / underkänd kredit ensam. Och även om jag gjorde brytare i slutet av dagen, det var de fem första veckorna, upp till den femte måndag den termin som är cutoff, som får mig att faktiskt sätta foten i dessa nya vatten och faktiskt prova något mycket främmande och mycket obehagligt för mig på den tiden. Så vad nu, vilken roll de olika vinklar via vilken Du kan vända denna kurs tjäna så föreläsningar, är det upp till om du samarbeta med oss ​​personligen på denna plats. I själva verket vet vi statistiskt att ungefär 40% av er kommer typ av kommer och går under loppet av terminen. Och 10% av dig, kommer vi aldrig se igen efter dag. Och det är väl bra, för att vara ärlig. En av de definierande egenskaperna hos CS50 är att det är dessa otaliga resurser, några av som vi kommer att skramla igenom på bara ett ögonblick, inklusive föreläsningar och sektioner och saker som kallas genomgångar och kontorstid och liknande. Och det är mer resurser än den typiska studenten måste eller kan fysiskt dra nytta av. Men det är på grund av de disparata inlärningsmetoder som någon elev kropp manifesterar. Och så i föreläsningar, den primära rollen, som jag ser det, är inte verbalt trycka ut ganska komplext material och nödvändigtvis levererar alla krångligheter av grunderna som vi kommer att utforska den här terminen, men snarare att göra saker som vi har gjort hittills redan, dessa exempel, där människor på scenen, försöka måla en mental bild, och även skapa, vågar jag säga, en del av dessa minnesvärda stunder. Så att även när du kämpar med vissa ämnen, har du dessa minnen som, åh, trots att det var ganska abstrakt, den matte fick jag förlorat med bär 1, som det verkligen, i slutet av dagen, är inte så olik något jag redan vet. Och så den roll som föreläsningar kommer att tjäna, antingen personligen här i Sanders eller online på video, är verkligen att ställa skede mentalt för dig varje vecka för de olika begreppen och problem som vi kommer att dyka in. När det gäller de höga begrepp, de flesta av dessa ord kan flöda över huvudet för tillfället, och det är bra. För de av er som kommer in i kursen bekvämare vet av några av dessa ämnen. Men typiskt för att 10% av den klass som de har mycket mer bakgrund, med AP datavetenskap, programmering eftersom de var 12, inser att det kommer att finnas möjligheter i sektioner och i problemet sätter att gå hela mer in på djupet i olika ämnen, fyller i vilken luckor du kan ha på din high school eller före bakgrund. När det gäller de språk, inser att det språk vi användning i CS50 är i stort sett irrelevant vid slutet av dagen. Vi råkar använda främst som kallas ett språk C. Mot slutet av terminen presenterar vi webb-centrerad språk som PHP och Javascript. Men vi och andra kan lära en kurs så här i de flesta någon moderna högnivåspråk. Python och Ruby och andra är ganska populär i dessa dagar. Eftersom inser i slutet av dagen, du lär inte i denna kurs C. Du inte lär PHP eller Javascript. Du lär sig att lösa problem, vare webbaserat, datorbaserade, eller data-orienterade sig, med Dessa helt enkelt som verktyg. Nu, när det gäller logistik, kommer du att använda något, till slut, som kallas CS50 Appliance. Spelar ingen roll om du har en Mac, en PC, en Linux-dator, eller liknande. Du har fritt tillgänglig programvara startar nästa vecka som att använda CS50 Appliance, en virtuell miljö som du kommer att använda på din egen dator så att du och alla dina klasskamrater har en enhetlig Linux i detta fall. Det är problemet uppsättningar, men där du verkligen får händerna smutsiga i kursen. Och i slutet av dagen, det är problemet uppsättningar, jag tror som verkligen definierar en students erfarenhet i denna kurs. Inse att många av de problem uppsättningarna kommer att släppas i två upplagor, en standard tillägg som vi förväntar oss och uppmuntra 90% av klassen att dyka in. Men vi släpper också några problem drag så kallade hackare tillsatser. Och du vet att det är hacker tillägg eftersom på varje sida med en vattenstämpel står hacker tillägg på det. Och det är för denna demografiska av er som har AP datavetenskap med 10 års programmering under bältet och funderar på att fylla dessa luckor och att ha mer formella, snarare än självlärd, utbildning, kanske. Inse att det finns en mycket stor demografisk i klass som har precis samma mål. Du har fem sena dagar. Problem apparater är i allmänhet beror på torsdagar, men du kan förlänga fem av dessa tidsfrister använda dessa Saker som kallas sent dagar. Och vi kommer också släppa din lägsta poängen i slutet av termin per uppgifterna i kursplanen. Men en annan kännetecken för CS50 över åren blivit kontorstid. Det är en möjlighet som du såg visuellt i bilder lite sedan där vi samlar - tidigare i hus matsal hallar dessförinnan i källaren på vetenskap Center och i år i Annenberg Hall - fyra nätter en vecka från 20:00 till 11:00, där du kan ha denna mycket mycket gemensam erfarenhet av att arbeta på, kämpar genom, vissa problem, men med en avsevärt stöd struktur på plats. Faktum är att hur detta kommer att fungera kommer du fram till Annenberg Om du har några frågor under veckan, kommer du få din bärbara dator kommer du sitta ner, ta lite mat, och du kommer att logga till CS50 Diskutera, en webbaserad verktyg som undervisningen personal har utvecklats som gör att du kan skicka frågor och se uppföljning i en typisk diskussionsforum mening, med hjälp av etiketter och liknande och komplettera automatiskt till söka uppgifter. Men du kommer också att kunna, under de tider kontoret timmar, har dina frågor eskalerat till faktiska människor. Faktum är målet i slutändan så att en, vi börjar bygga upp under loppet av terminen en korpus med förhoppningsvis verkligen användbar information, gemensamma svar på vanliga frågor, så att du själv kan lösa problem och få misslyckades så snabbt som möjligt, men samtidigt ha lärare, vanligtvis 20 till 30 av undervisning medmänniskor och kurs assistenter, för personal på en gång. Vi kommer att ha vad som kallas den CS50 Greeter i Annenberg. Och när vi bestämmer det, vet du vad, den här frågan, Vi kan inte riktigt svara på ett effektivt på nätet. Vi behöver se din dator. Vi vill prata med dig en-på-en. På en. Du är verkligen kämpar och du därför vill prata en-mot-en tillsammans någon, kommer du att skickas till CS50 Greeter, en undervisning karl innehav, bokstavligen, en iPad som har elevernas namn på en sida, lärare är namn på den andra. Vi kommer att klicka på ditt namn följt av namnet på en lärare, och din datorskärm startar blinkar säger vänligen gå se Alice eller gå se Bob på Personalen tabellen. Och så på detta sätt kommer vi att kunna sända saker som effektivt som möjligt, samt vägleda dig mot lösningar allt lättare. I avsnitten kommer dessa att finnas möjligheter till mer intima Hands-on möjligheter med en av de undervisning stipendiater och 12 till 16 eller så av dina klasskamrater i som varje vecka kommer vi få problem i problemet set som ber en rad begreppsliga frågor och en Antalet bit-storlek programmering frågor som du kunde räkna ut på egen hand, och du kan arbeta på din egna, men i samband med där vi arbetar med kollektivt del av dessa problem och gå där olika samtal tar oss. Dessutom kommer i avsnitt du har möjlighet att granska inlagor läxor som du har gjort, din klasskamrater, ibland anonymiseras, alltid via opt-in- om du vill dela det arbete som du har skickat. Så det kommer verkligen vara en två riktningar konversation, en möjlighet att granska ditt eget arbete på ett mycket mer dynamisk känsla, snarare än att bara titta på en PDF-fil eller en utskrift och tänka på det i några sekunder och inte nödvändigtvis absorbera feedback som undervisningen personal har lämnat. Och du kommer att använda ett verktyg som här kallas CS50 utrymmen. För de som känner, det är det språk som kallas C vid toppen vänster, och du får veta detta över tiden. Men detta är ett webbaserat verktyg som vi använder i avsnitt som gör att du och din 15 eller så klasskamrater att logga in med din undervisning kolleger på framsidan av rummet. Du kommer att kunna skriva kod i det här fönstret. Du kommer att kunna chatta elektroniskt, om du inte är faktiskt i avsnitt vid just denna tidpunkt. Och din undervisning karl, när det blir dags att diskutera Alice eller Bob lösning i klassen, undervisningen karl kan klicka på en knapp och voila, projekt på skärmen, vad det eleven har arbetat på i just den tidpunkt. Så för de av er som har vänner som har tagit CS50 i det förflutna, inser att avsnitt har varit betydligt startas i år att vara allt mer aktiva, desto mer dynamisk, och verkligen en två-vägs konversation mellan undervisning personal och studenter. Och genomgångar. Så för dessa problemområden apparater erbjuder vi också inte bara specifikation själv, som i allmänhet är en ganska detaljerad PDF utan också saker kallas genomgångar där en medlem av lärare kommer att leda en vecka session som går bokstavligen dig genom problemet set, vilket dig tips och råd och utgångspunkter och är avsedd att be mycket vanliga fråga, var jag börja? Tja, börjar du antingen genom att dyka in i spec på sin egen eller genom att delta i eller titta på dessa genomgångar. Den första genomgång i själva verket kommer att vara på fredag. De kommer att vara på fredagar, inte så mycket för att vi tror att det kommer att bli en populär tid men eftersom vi sedan kan filma dem mycket tidigt i veckan för att få dem online av helgen så att du ha så många dagar som möjligt att faktiskt bedriva den innehåll också. Men mer om detta i föreläsning på fredag. Nu i termer av stödkonstruktionen, mest betydande statistik är kanske 108 undervisningen stipendiater och assistenter kurs att Kursen har. Om några av er som inte har motstridiga klasser skulle vilja att gå med mig här uppe på scenen, det är dessa killar som kommer slutändan verkligen definiera din upplevelse i kursen. Jag hade en hel del undervisning Fellow lära mig klasser i dagen, och jag minns mycket få av dem som uppriktigt sagt. Men hittills minns jag fortfarande bland de få, min CS50 TF som hjälpte mig verkligen svara på frågor, som verkligen hjälpt mig när jag kämpade, och verkligen var en partner i detta erfarenhet av att lära sig ett helt nytt värld. I lite, kommer alla dessa killar med dig utanför för tårta, som är en tradition av CS50, i tvärskeppet av Memorial Hall. Men låt mig först presentera dig för Nate Hardison, igen, Rob Bowden, och Tommy MacWilliam detta Årets kurs huvuden. Om ni skulle träffa mig här i mitten. De har alla förberett några inspirerande kommentarer. TOMMY MACWILLIAM: Jag har inte förbereda något inspirerande. Men mitt namn är Tommy. Jag är en senior i Mather. Jag studerar datavetenskap. Jag är verkligen glad över att vara på häcken laget och gå genom CS50 resan med dig. Vad jag verkligen gillar med CS50 är hur det verkligen lär dig att tänka problem på ett nytt sätt. Detta är verkligen en färdighet som kommer att bli ovärderlig oavsett vilket fält du går in. Och inte bara det, men vi erbjuder mer gratis godis än någon andra kurs på campus. Ja, och så jag ser verkligen fram emot att se vad alla bygger den här terminen. Och om någon har några frågor nu eller hela terminen, definitivt gärna nå ut till mig och Jag skulle vara glad att hjälpa till. ROB BOWDEN: Hej. Jag är Rob Bowden. Jag är en senior i Kirkland. Ja, det stämmer. Vi är alla verkligen glada för detta nästa termin. Vi hoppas att ni är glada. Jag hade inte förväntat det. Ja. Så vi lägger så mycket möda på att göra detta termin riktigt bra. Och så länge du är villig att sätta i arbetet, finns det så mycket du kan få ut av den här kursen. Ah, vi - ja. Du kan få en hel del roliga i denna kurs. Vi skulle inte ha en personalstyrka på 108 om du inte kunde få mycket roligt av det. Så bara försöka vara med och du kommer inte ångra det. NATE Hardison: Hej, grabbar. Jag är Nate. Jag är handledare för kursen. Jag är verkligen glad över att vara här. Detta är mitt första år här. Jag hoppas att ni alla tar den här kursen och njuta av det så mycket som Jag har haft det så länge. Och om du någonsin vill lära dig att räkna till 9 eller 10 i binärt, kom prata med mig. David J. MALAN: Så med risk för att lämna dessa killar här på iscensätta lite tafatt, låt oss virvla igenom några av de saker som väntar innan vi avbryta för tårta. Vad är det som ligger framför? Tja, om vi tar en snabb titt tillbaka på förra året, i problemet satt 0, dök era föregångare till en programperiod språk som kallas Scratch, ett grafiskt programmeringsspråk du kommer att använda under de första dagarna av kursen börjar denna Fredag ​​att lära sig några begrepp obekant för en del av er. Men inser att det kommer att bli en avancerad del av detta för dig med tidigare bakgrund. I förra årets problem som 2, dök eleverna i värld av kryptografi, konsten att krypteringsutrustning eller förvränga information, genomföra program som krypterade data. Och i hacker dessutom förra året gjorde eleverna fortsätter att knäcka eller avkoda lösenord i en typisk datorns xe lösenordsfil genom att komma med algoritmer och heuristik för brute force räkna ut vad någon är lösenord på ett datorsystem var. Förra året också i problem som 3 gjorde eleverna konsekven - i Problemet som 4 - gjorde eleverna genomföra omgång Sudoku. Och i hacker dessutom att året gjorde eleverna inte bara genomföra hur man spelar spelet, men faktiskt en lösare varigenom datorn kan ge dig, människan, med tips av snabbare än du lösa detta särskilda problem. I problembild 5, vi gjorde kriminalteknik, konsten att återvinna information som fanns av misstag eller mycket avsiktligt bort från en dator. Förra året spatserade lärare och jag runt campus fotografering av människor, platser och saker, och sedan misstag formaterat mediakortet på vår kamera som hade alla dessa bilder. Men inga problem. Vi gjorde en rättsmedicinsk bild av denna mediakortet, delade ut till alla elever i klassen, och utmanade dem att skriva program som återvunnits alla JPEG från kortet. Och detta är faktiskt en av våra favorit problem uppsättningar. Och jag grävde upp ett mail från en av dina föregångare, som var jättekul att läsa någon gång sedan. Han skrev - detta är från Matt - kära David, igår min syster formaterat av misstag hennes kamerans SD-kort och förlorade ett års värde av minnesvärda bilder. Hon är tyvärr inte bäst på att säkerhetskopiera sina data. Men denna situation påminde mig om pset 5, så jag tänkte att jag skulle försöka att köra sin SD-kort via återhämta programmet att jag skrev hela vägen tillbaka i oktober. Så efter fyra timmars räkna ut hur man skapar en rå bild från formaterade SD-kort - Google visade sig vara ganska gagnlöst i detta avseende tills ironiskt nog råkade jag komma över dina instruktioner på Internet - Efter mixtra runt med några av kommandot argument Jag lyckades skapa rättsmedicinska bilden. Och efter installation och konfigurering av CS50 Appliance, lyckades jag köra rättsmedicinska bilden genom min programmera och återställa alla 1027 min systers fotografier. Höger, Matt. Så i sista year's - [Applåder] I förra årets problembild 6, gav vi eleverna en ordbok av 150.000 engelska ord och utmanade dem till skriv en stavningskontroll som svarade frågor av formen detta ord rättstavat eller felaktigt så fort som möjligt. Och i en opt-in basis var studenter tillåts sedan utmana klasskamrater genom att publicera sina resultat, mängd RAM som de används, antalet CPU-cykler eller sekunder som de använde, så att eleverna sedan rankades på kursens hemsida. Återigen helt valfri aspekt av det, men väldigt roligt att mycket ofta skulle en student få placera nummer 10 eller så vidare den stora styrelsen på hemsidan, gå ut på middag, och sedan komma tillbaka och förverkliga sin rumskamrat just hade kanter i framför honom eller henne på den stora styrelsen, och därmed hälla annan två eller tre timmar bara för att en upp hans eller hennes rumskamrat. Så vi ser fram emot att något liknande även i år. I problemet som 7 gjorde vi styra i riktning mot webben programmering, faktiskt lösa problem i den ständigt allt vanligare miljön i en webbläsare. Vet allt mindre hämtar vi programvara på Mac-datorer och Datorer, men allt gör vi allt i banan. Och faktiskt förra året, cirka 88% av studenternas examensarbeten i Kursen var webbaserad. Och de är också är färdigheter som du kommer ur detta klass kursens slut. För vad väntar vid kursens slut är det CS50 mässan, denna utställning som bygger på idén om en vetenskap rättvis. Men i den här versionen av en rättvis gör alla elever i klassen ta sina bärbara datorer och deras vänner och familj och andra till nordvästra vetenskap, en stor byggnad på campus, som inrättats sin bärbara dator, få lite mat, få lite popcorn och dryck, och sedan ställa sina sista projekt för alla i närvaro som förra året räknade cirka 2.500 deltagare från hela campus. Och uttryck som denna och så här var inte ovanligt på mässan. Leder fram till mässan är CS50 hackathon, en möjlighet att hoppa på en Harvard shuttle huvudet ner på samma gata till Microsoft på 8:00 PM, och inte gå hem förrän 07:00. Vi serverar första middag vid 8:00 PM, andra middag klockan 1:00 AM, och för dem som fortfarande står vid 5:00 AM, behandlar vi i pannkakor på IHOP. Och hackathon är en möjlighet, som på bilden här, att dyka in i din slutgiltiga projekt, vare sig de arbetar på egen hand eller med vänner i en kollaborativ miljö, där hela lärarkåren fungerar bra i natt med ett stort utbud av Hongkong kinesisk mat. Klockan 5:00 kommer sådana bilder som dessa vara ganska vanligt här år också. Så som vi ajournera ett ögonblick för tårta, kom ihåg att 76% av människorna i det här rummet inte har någon tidigare erfarenhet. Och enligt kursplanen, frågor vad som i slutändan i Kursen är inte så mycket där du hamnar i förhållande till din klasskamrater, men där du i vecka 11 hamnar i förhållande till själv i vecka 0. Detta är CS50.