[Powered by Google Translate] Högtalare 1: Detta är CS50. Så jag var där du är nu några år sedan, och när jag var en nybörjare på tiden var jag inte riktigt på den här vägen för att göra datorer vetenskap, att göra teknik. Faktum kom jag på denna plats som en statlig koncentrator. Jag hade varit i gymnasiet ett barn som gillade saker som historien. Jag gillade grundlag, typ av engelska och matematik, så typ av väl avrundad, men inte nödvändigtvis vet saker som jag inte hade lärt i high school. Och så första år hade jag denna bävan, där även om jag gillade datorer, spela dataspel och liknande, jag verkligen aldrig tänkt på mig själv som en dator person, en datavetare, och ärligt talat, jag trodde mina vänner i high school som tog dator vetenskapen var lite av en - nördar. Och ändå, när jag kom hit på campus, var det den här kursen, CS50, och tiden, hade 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år igenom så många av förutsättningarna som jag kunde, korsa 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. En mycket berömd datavetare vid namn Brian Kernighan var undervisning här att år, 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 det här rummet har lärt känna sätt mer om datavetenskap, om programmering, om datorer. Alla måste vara programmering i detta rum eftersom de var 12, men ja, Det var inte fallet. Och så den allra sista dagen, den femte måndag av terminen som jag tar detta språng och förändring från godkänt / underkänt ett brev klass, och hamna ändra min koncentration samma dag till datavetenskap. Nu är inte vårt mål i den här klassen, att vända er alla till datorn vetenskap koncentratorer, men egentligen, att föreslå att det finns denna möjlighet på detta område och inom andra områden som du kan vara ganska främmande, med tanke på att gymnasieskolor vanligtvis följer en ganska standard läroplanen väg, men att våga i, i CS50, till nya vatten. Och om du sitter här idag tänker du egentligen inte hör hemma, så göra de flesta människor till höger och till vänster. Faktum förra året hade 76% av eleverna i denna klass ingen tidigare erfarenhet. Så i motsats till vad man kan tro, de flesta av de personer som sitter runt omkring dig 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 sig själva i termer komfort nivå, och det är - det finns ingen definition av detta. Du bara sorts vet det, om du inte är mycket bekväm i CS50. Och förra året hade vi 55% i denna gröna paj skiva här, självbeskrivande som mindre bekväma studenter som uppriktigt sagt vi hade ingen aning om varför skulle de handla kursen på den första dagen, men samma 55% kvar hos oss tills Termen slut, liksom 35%, som var någonstans mellan de mer bekväma och de mindre bekväm. Så vad är datavetenskap? Tja, i gymnasiet, och egentligen mer allmänt ute 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 ett verktyg som datorforskare använder för att lösa problem, antingen på området för datavetenskap, eller alltmer i dessa dagar, i naturvetenskap, den naturliga vetenskaper, inom medicinen, inom humaniora, för att analysera stora datamängder. Överallt nu finns det datorer och data, det finns en möjlighet att ansöka lärdomar i en klass som CS50. Så låt oss lösa ett problem som en dator vetenskapsman kan gå om lösa och försöka sätta lite jargong, lägga lite tankeram, kring vad kan annars vara en del ganska abstrakta idéer. Så detta är en telefon. Du ser inte dessa saker alltför ofta. Kollegiet verkar fortfarande ha dessa i husen och sovsalar, men tillbaka i dag, när du ville använda en telefon som denna, fanns det ingen elektronisk adressbok i din mobiltelefon. Snarare drog du upp något som kallas en telefonbok, och dessa telefonböcker hade ca 1.000 sidor typiskt. De sorterade från A till Z, och du bara var tvungen att hitta rätt sida hitta den person du söker för att hitta deras namn och deras telefonnummer. Nu hur ska du gå om att titta 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 sidan fyra, till sida fem till sidan sex, och att sortera av linjärt, längs en rak linje, gå igenom denna telefonbok och även men det kommer att bli oerhört tråkigt om Mike Smith är i detta bok, jag ska så småningom nå honom när jag äntligen vända till S i den här boken. Nu, naturligtvis, behöver du inte vara en datavetare att veta 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, eller hur? Så du skulle vända ungefär till mitten, titta här, och jag verkar hitta mig själv i M avsnittet. Okej, så M är helt klart inte vad jag letar efter. Mike är till höger, så att säga, i detta avsnitt, och som en del av er har sett förut, kan vi bokstavligen nu gå att riva detta problem i en halv. 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, vi Nu har två problem. Som alla är hälften så stor, och vi kan bokstavligen kasta att hälften av problem 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 på R sektionen, så inte riktigt där. Så återigen, jag kan riva detta problem i halv. 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, som, om han är i telefonboken, bör Mike Smith vara. Nu är en uppenbart ganska rimlig algoritm, och det är en engångsbruk algoritm i detta fall, men vad kan vi sortera på ta bort från det? Jo, den första metoden, korrekt, om naiv, men det var, kan vara beskrivs av denna raka linje. Så om på x-axeln, här säger vi, det är storleken på problemet. Så som x-axeln går till höger, blir problemet större. Vad innebär det att vara större? I samband med 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, antar vi att det förmodligen tar längre tid. Så att första metoden att söka linjärt från sidan ett till sidan 1000 är en linjär procedur, en linjär algoritm eller process, och vi kan beskriva det med denna raka linje. Om jag lägger en ytterligare sida i telefonboken, kommer det att i värsta fall ta mig en ytterligare sida flip hitta Mike Smith. Om jag lägger 100 sidor, 100 fler vänder, eller enheter av tid. 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 två åt gången eller fyra åt gången, men även det är inte allt som i grunden bättre. Även om det är två åt gången, ja, går den typen av denna linje ner lite, och det betyder att det tar mindre tid, givet samma antal sidor, men Det är inte i grunden bättre. Men vad gör vi bara, och vad gjorde ni alla gör instinktivt? Du uppnådde faktiskt lite ungefär så här, logaritmisk tid, varigenom problemet kan växa och växa och växa, men kostnaden för att lösa det problemet, den tid som krävs för att lösa detta problem, inte växer nästan lika snabbt. Detta skulle vara en logaritmisk kurva, log n, där n är lika i storlek problemet, antalet sidor i telefonboken. Och vad innebär det i reala termer? Tja, om vi har, typ, 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 telefonen bok, och vi fördubbla den till 1.000, i detta mer intelligent modell vända till mitten, hur många fler sida-tearers 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 skulle bara riva det en extra gång. Så kort, kan storleken på problemet växer mycket snabbare än kostnaden för faktiskt lösa det. Nu är detta bara en sådan algoritm. Det finns andra som vi kan lösa detta på samma sätt. Och så varför inte vi gör det - om du vill humor mig, om än tafatt här i Sanders, gå vidare, alla, om du kunde, och stå upp på plats. Som du ser på skärmen här, detta är en algoritm, en process, en dator programmet, om du vill, som ska utföras av människor, som har bara tre steg. Vi är redan på steg ett, har du stod upp. Och nu tror på dig själv nummer ett. Det är ditt nuvarande nummer. Alla här är nummer ett. Steg två, ihop med någon som står och dina nummer tillsammans, och sedan anta denna summa som ditt nya nummer. En av er ska sitta ner och upprepa sedan. 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, du måste också mycket muntligt göra aritmetik framför hundratals Harvard undergrads. Okej, lite av en bugg här. Okej, vad är ditt nummer? Nio. Okej. Vad är ditt nummer? 179. Okej, bra. Så 188. Så ni kan sitta ner. Vad är ditt nummer? 118. Några smarta undergrad börja göra matten. Okej, 118, 188. Vad vi fick? 71. 79. Okej. Och? 47, som 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 av det, men hur Detta bör ha arbetat? Vad ska just hänt? Så på varje iteration av denna algoritm, vi började med ett visst antal av människor som står, och det var det totala antalet, n, till en början. Då hälften av er satte sig och vi gick till n över två. Då hälften av er satte sig ner, gick vi till n över fyra, n över åtta, över 16, och så vidare, tills, även om den typ av sönderdelade där på slut, i teorin, hade alla parade av i balkong och mezzanine och orkester här, skulle vi haft bara en ensam person som står med en total värde, i detta fall, med 705. Nu vad betyder det, men för den löpande tiden? Tja, tänk om jag, som människa, hade gjort detta manuellt. Jag skulle ha börjat ganska naivt, men korrekt med en, två, tre, fyra, fem, sex, sju, åtta, 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å två, fyra, sex, åtta, tio, tolv. Och det blir mycket snabbare, men nu i grunden, genom att utnyttja kollektiv intelligens av alla i det här rummet, kan vi uppnå en kurva mycket mer om detta, varvid nu antalet personer i det här rummet kunde dubbel, 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 datamängder i Facebook och Google, och liknande, det lösa problem med den här lite insikt, denna bit av skicklighet, som är tillåter oss alltmer att göra mycket, mycket mer kraftfulla saker med datorer idag. Om du gillar dessa typer av saker, kanske du har sett på Facebook CS50: s egen Pussel dag, kommer upp på lördag. Om du vill delta i något sådant, där du och två eller tre, eller fyra grupper om fyra skulle vilja lösa vissa pussel sådana som denna, står du en chans att vinna några fantastiska priser, bland annat en Wii, och några presentkort, och några andra Facebook bylte på lördag, klockan 15:00. Gå till cs50.net/rsvp för sådana. Och denna bild är online om du vill leka. Pussel i år ska vara nya. Du kanske märker i klassrummet också alla fler kameror i år. Så inte bara kommer kursen att filmas på vanligt sätt, kan CS50 också deltar i en dokumentär om högre utbildning som tittar på omvälvande upplevelse som en student kan ha i dessa dagar i en grundutbildning studier. Så mot dessa ändamål kommer inte bara vi filma för det, kommer vi att filma samt för allt större utsträckning vår online publik, liksom, ibland, denna publik här. Så vi välkommen till klassen i år våra Harvard studenter förlängning skolan, Graduate School of Design, utbildning, handelshögskolan, Kennedy Skolan, juridisk fakultet, samt ett antal studenter från Belmont, Lexington, Newton och Watertown gymnasieskolor. Välkommen till er alla. Dessutom, i år, som ni kanske har hört, Harvard och MIT, och Berkeley har nu ingått ett samarbete partnerskap på initiativ som kallas EDX, som är ett initiativ för att öppna utbildning för alla ju fler människor på nätet, och i grunden, börja forska på en mycket bredare skala för hur människor lär sig. Och så CS50 blir skolans första kursen som deltar i det initiativ, samt, vilket innebär att du kommer att ha tillgång till allt mer verktyg, desto mer läroplanen innehåll, desto mer videoinnehåll som ett resultat, liksom i går morse, de 53.019 personer som har registrerade för att ta CS50 med dig i år på Internet. Så vad detta innebär, bland annat, är att lärare och jag har tillbringade en hel del tid i sommar förbereder hösten, både på campus och av, så att vi kan börja bygga upp en samling intressanta, om övertygande, att engagera utbildningsinnehåll fokuserar det särskilt mer intima transportmedel av ganska komplext material. Så utöver kursens föreläsningar och sektioner och saker kallade genomgångar som vi ska återkomma i bara lite, vi har också Dessa shorts i år som gör att du kan samarbeta med kursen från ett annan vinkel tillsammans. Så låt oss använda detta som en möjlighet att ta en snabb titt på en som diskuterar detta begreppet binära. Så i datavetenskap finns det saker som kallas algoritmer, varav två Vi tog bara en titt på - dessa förfaranden för att lösa problem. Men i slutet av dagen, måste du representera information på något sätt, och du behöver 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 känsla av att datorer på något sätt handlar med nollor och ettor, det binära systemet, så att säga. Nu varför är det så? Tja, visar sig när datorer först kom till, om du behöver för att representera information kan du göra det med elektricitet, och även om det är lite en förenkling, är ett mycket enkelt sätt att spela in information antingen genom att vrida den elektricitet, en i binär, så att säga, eller vrida att elektricitet av. Så Barry, om du inte skulle ha något emot, kunde vi dämpa belysningen helt för ett ögonblick? Detta är här en mycket omotiverad binär nolla. Okej, om vi vänder ljuset tillbaka upp, nu Sanders Theatre är representerar det binära värdet ett. Tyvärr, med bara en bit, med bara en uppsättning av ljus, kan vi bara representerar två siffror i världen, noll och ett, och det skulle vara trevligt om datorer kunde räkna lite högre än så, men faktiskt de 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 på denna uppfattning av binära. NATE Hardison: Tillbaka när du lärt dig att läsa och skriva tal, du lärde sig om siffrorna noll till nio. Att skriva heltal större än nio, du lär dig att allt du hade att göra var använda någon kombination av dessa siffror, som i 52 och 437. Så detta sätt att skriva siffror har ett namn, decimal notation. Varför decimal? Tja, betyder det latinska rot decimal, deca, 10, och när du har 10 siffror i notskrift systemet blir 10 en ganska speciell nummer. Låt oss titta på hur många 437 skrivna i decimalform för att 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 fått fyra gånger 100 plus 3 ggr 10 plus 7 gånger 1. minns lära sig om dem plats, 10s plats, 100s plats, och så vidare? Det är precis där som kommer från. Och slutligen, kan vi se hur vi har ett gäng befogenheter 10 inbäddad i här. Vi har 4 gånger 10 till 2 plus 3 ggr 10 till 1 plus 7 ggr 10 till noll. Så nu ser du varför 10 är ett speciellt nummer i 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 två till nio, kan vi fortfarande representerar alla nummer som vi kunde med decimal. Så nu när vi har två siffror, noll och ett, är två vår speciella nummer, basen för vårt notation systemet. Namnet på denna notation systemet kallas binär, eftersom prefixet bi betyder två. Så istället nu, att ha en ettor plats, och 10s plats, och så vidare, vi Nu har de plats, en tvåor plats, en fyra plats, och så vidare, går upp genom befogenheter två. Så låt oss se detta genom att göra några räkning. Så noll är fortfarande noll, och en är fortfarande en. Men nu när vi har en tvåor plats i stället för en 10s plats, 10 representerar antalet två. För att få tre lägger vi en till det, och få 11. Fyra, eftersom det finns nu en fyra plats, representeras av 100. Fem är 101. Sex är 110. Sju är 111. Åtta återigen har sin egen plats. Så det är 1000. Och jag tror du fattar poängen. Högtalare 1: Så detta är att säga vad datorer gör och vad binär är är faktiskt inte så olikt från vad vi har tagit för givet för vissa år, eller hur? Tillbaka i skolan, lärde dig att räkna exakt i mode som Nate föreslog, men du förmodligen inte riktigt tänkt på det sedan, det faktum att det är de plats, 10s plats, och 100s 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 noll och ett, du uppenbarligen inte bara stänga av belysningen på och av nödvändigtvis. Du måste göra det på ett mycket finare korn skala. Och genom finare säd, kanske du kommer ihåg denna fåniga lilla leksak från barndomen, Ullig Willy och dessa små magnetiska partiklar. Så magnetiska partiklar är något som du kan anpassa i ett par olika riktningar, kanske nord-sydlig eller syd-nord. Och så en hel del fysiska inkarnationer av teknik i dessa dagar som använder binär, som använder nollor och ettor, har helt enkelt magnetism på insidan som anpassar saker-ned eller ned-upp, vilket representerar en nolla eller en etta, respektive. Så ja, låt oss gå bort från det abstrakta här och titta på insidan om vad som är en mer traditionell hårddisk. Den här råkar vara lite större på skärmen, eftersom det är från en stationär dator, men bärbara idag har fortfarande samma teknik, men gradvis ersätts av mer sofistikerade saker som faktiskt har inga rörliga delar - insidan, sedan, av en hårddisk. Högtalare 2: 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 programvaror signaler som talar hårddisken hur man lagrar dessa data. De hårda drivkretsar översätter dessa signaler till spänning svängningar. Dessa i sin tur styra hårddiskens rörliga delar, en del av de få rörliga delar kvar i den moderna datorn. Några av signalerna styra en motor, vilka skolor metallbelagda skivorna. Dina uppgifter faktiskt lagras på dessa fat. Andra signaler flytta läs-skriv huvuden att läsa eller skriva data på skivorna. Denna maskin är så exakt att ett mänskligt hårstrå inte ens kunde passera mellan cheferna för spinning Platters, men det fungerar på en fantastisk hastighet. Högtalare 1: Så vi zooma nu på vad som faktiskt händer på toppen av dessa skivorna i fråga om magnetism har vi denna andra av två utseende. SPEAKER 3: Låt oss titta på vad vi just såg i slow motion. När en kort puls av el skickas till läs-skriv huvud, vänder det på en liten elektromagnetisk för en bråkdel av en sekund. Magneten skapar ett fält ändras vilket polariteten av en liten, liten del av metallpartiklar som täcker varje platta yta. Ett mönster serie av dessa små laddade upp områden på disken är en enda bit av data i ett binärt tal som används av datorer. Om nu strömmen sänds en väg genom den läs-skrivhuvudet, område är polariserat i en riktning. Om strömmen sänds i motsatt riktning, 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 och läs-skriv huvud rörelse. Sätt ihop miljontals dessa magnetiserade segment och du har en fil. Nu delar av en fil kan vara utspridda över hela en enhet är 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? Högtalare 1: Faktiskt. Så vi har denna förmåga att representera denna 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 ännu, 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 med hjälp av samma utrustning. Men tack och lov finns det kodningar, mönster av nollor och ettor 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 där en siffra representerar en viss bokstav - till exempel det antal som vi vet som decimalvärde 65 kallas bokstav A till datorer. Det decimala värdet 97 i datorer kallas ett gement en. Och vad betyder det egentligen? Tja, även om Nate, en stund sedan, bara räknas upp från noll till åtta, om vi skulle fortsätta räkna upp till 65, eller ytterligare till 97, mönstret för nollor och ettor att han skulle ha dragit på skärmen skulle vara exakt vad en dator använder för att representera bokstaven A i versaler, eller bokstaven a med små bokstäver. Och faktiskt, det finns en hel system till detta. Detta är vid första anblicken, överväldigande diagram av kodningar, men om du fokuserar bara på den högra halvan här, märker i mellersta kolumnen har vi här begreppet siffror följt av bokstäver. Och upptill, har vi 32, och tecknet röding, till vilken 32, den heltal, nu hänvisar, är tydligen mellanslagstangenten karaktär. När du får tecknet mellanslag på din bärbara dator, vad du verkligen sändning är ett tal, ett mönster av nollor och ettor, ett flöde av elektricitet, om du vill, som representerar de nollor och ettor, 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 verkligen är A och 97 är små bokstäver verkligen en. Så nu när vi har den här kodningsschema kan vi börja stava saker. Faktum, datorer uttrycker vanligtvis sig i standardenheter, inte med en individuell bit, som återigen, är inte så lämpligt att bara representerar noll eller ett, ljus på eller av, utan snarare, med hjälp av sekvenser av bitar. Och den vanligaste måttenhet, som ni säkert vet, eller åtminstone utläsas, är en byte. En byte är bara åtta bitar, åtta nollor eller ettor 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 behöver egentligen inte att veta annars vad som händer riktigt än. 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 varit 128S plats du 64s plats du 32S plats. Men vi kommer att mycket snabbt måste vända denna. Så låt mig träffa er alla där borta. Och du ska vara i 128S plats hela vägen över, här ungefär som hundratals rum eller tusentals plats skulle vara längre till vänster, vill vi den största platshållaren att vara här till vänster också. Vi har 64s, 32, 16s, 8s, 4s, 2s, och 1s - utmärkt. Så nu har vi - okej, du kan hjälpa mig. Så nu har vi - vad heter du? JOANNE: Joanne. Högtalare 1: 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 lathund det kommer att berätta om de representerar en nolla eller en etta. Och varför inte, för enkelhetens skull kommer vi representerar noll genom att bara stod där tafatt. Mycket bra. Eller en genom att höja handen, vilket motsvarar en en. 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 genom att höja handen om du är en en, eller hålla ner om du är en nolla. Så nu när vi har dessa tre händerna, vilket nummer, alla andra är De representerar egentligen? Okej, 67. Varför? Tja, snabb förnuft kontrollera. 64s plats, eftersom det är en en. Det är som en gånger 64, plus 1 gånger två, så det är 66 plus 1 gånger 1. Det är plus 1, så 67. Så nu dessa killar är tillsammans representerar 67, som uppenbarligen representerar vad här i ASCII? Okej, så ett C. Okej. Så låt oss nu gå vidare till runda två. Alla börjar med händerna ner och sedan runt två. Egentligen 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 vi nu? Att uttrycka ä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 - detta kan vara självklart vart vi ska här, men ändå runda tre. Okej, är rund tre bra att gå ner dit, så rund tre, vilket nummer är dessa killar som företräder nu? Okej, jag hörde 53, som nu representerar - intressant. Nu varför denna typ av counter-intuitivt resultat, eller hur? Om vi ​​vill representera fem - vi alla förmodligen vet var detta kommer - varför inte jag höjer bara fyra rum och de plats? Tja, inser vi att det finns en skillnad i grunden, mellan hur en dator tolkar dessa bitar. Om du försöker att representera nummer fem, då absolut, vi bara upp handen nummer fyra och höja handen nummer ett. Men vi är inte företräder siffror här. Det sammanhang här på scenen är att vi företräder tecken eller tecken, och i detta sammanhang har datorn att inse att åh, detta mönster av bitar är inte ett nummer ensam. Det är faktiskt representerar en högre nivå koncept. I det här fallet, en alfabetisk bokstav. Så det faktum att det nu representerar numret fem med värde 53 beror i ASCII, det vi estetiskt ser som nummer fem själv behöver ett mönster av bitar - för varför? Tja, beslutade världen bara för att använda den lägre nummer, noll, en, två, tre för vad såg ut att vara ganska kryptiska saker. Och faktiskt, det är de tecken som inte finns på ett tangentbord. Särskilda uttryck som du behöver i en dator för att göra intressanta saker, men människor aldrig skriva dem. Så 53 faktiskt representerar fem. Nu precis som en sista sanity check, vilket nummer bör de utgör i ett ögonblick? Okej, så 48. Och faktiskt, gå vidare, runda fyra. 16 plus 32 är verkligen 48. Och så en stor applåd, om vi kunde, för våra åtta volontärer här. Mycket bra gjort. Någon riktning är bra. Så vi har nu ett sätt inte bara tänka på hur att representera data, och faktiskt representerar den fysiskt, men också gör högre nivå saker ovanpå. Och faktiskt, detta kommer att bli ett tema i hela datavetenskap på bygga mer och mer intressant och komplex saker ovanpå ganska enkla idéer - I det här fallet, bara nollor och ettor. När det gäller varför detta är bra, bra, även om det i en kurs som denna, Vi ska fokusera på fundamenta, och programmering, och på att lösa av problem, kan du gå ut i datavetenskap i valfritt antal riktningar. I detta fallet här, är detta ett diagram som du har på baksidan av din inofficiell guide till CS på Harvard, en av dagens två utskrifter. Detta tyder på många olika riktningar som du kan gå efter en kurs så här - lära sig 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öst, det finns introduktionskurser på våren, datalogi 1, till exempel, är ännu en på ramp till denna nya värld. Nu som en sidoreplik, i syfte att lösa problem som rör kurser, inser CS50 anges för en tid sedan att försöka lösa ett av dessa problem, en problem som kallas my.harvard, som många av er kanske använder faktiskt shop för kurser, men om inte, kolla in ett verktyg som detta, samt 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 designa och distribuera er, liksom ännu andra saker också i slutet av terminen, inse att detta bygger på en öppen datamängd. I det här fallet, naturligtvis, katalog, 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 några 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 dessa uppgifter tyder på att 7,6 är den genomsnittliga antal kurser på någons inköpslista. Och nu ska jag ge er också statistiken för flest antal kurser i någons inköpslista - och vi alla vet förmodligen någon som denna. 201 är årets rekord. Nu några av våra tidigare studenter och personal sätta faktiskt ihop ett klipp till måla en bild för er om vad denna väg för datavetenskap och CS50 själv är. Låt mig gå vidare och dra upp, tack vare mr Harvahd här, en video producerad av några av dina föregångare, om vi kunde hålla lyser för detta. [Musik spelar] Högtalare 1: Jag hade ingen aning om att det skulle hända. Så en mer allvarlig titt på vad som ligger framför oss. Så när det gäller de förväntningar på denna kurs, du verkligen förväntas närvara eller titta på kursens föreläsningar, skicka åtta problemområden uppsättningar, ta två frågesporter, lämna en slutlig projekt. När det gäller betyg, inser att mina kommentarer vid öppningen om pass-misslyckas, något som vi verkligen ta till hjärtat i CS50 - det finns inte nästan nog av en kultur vid Harvard att försöka något och riskera misslyckande. Faktum hade vi antalet studenter, och jag själv i synnerhet, som var orolig att skada din GPA, eller att få en B ungefär CS50, och möjlighet att ta en kurs som denna och andra kurser gateway på Den inledande nivån godkänd / underkänd är en mycket underutnyttjad möjlighet till detta college 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 av terminen, vilket är cutoff, som får mig att verkligen 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å när det gäller nu vilken roll de olika vinklar genom vilka du kan närma sig denna kurs tjäna - så föreläsningar. Det är upp till dig. Om du samarbeta med oss ​​personligen på denna plats, ja, vi vet statistiskt att ungefär 40% av er kommer slags komma och gå över under terminen och 10% av er att vi aldrig kommer att 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, av vilka en del kommer vi skramla igenom på bara ett ögonblick, inklusive föreläsningar och sektioner och saker som kallas genomgångar och Office timmar och liknande, och det är mer resurser än den typiska studenten ska behöva eller kan fysiskt dra nytta av, men det beror på de disparata lärstilar att alla studenterna visar. Och så i föreläsningar, är den primära rollen som jag ser det inte verbalt trycka ut ganska komplext material och nödvändighet leverera alla krångligheter grunderna som vi ska undersöka den här terminen, men snarare att göra saker som vi har gjort hittills redan, dessa exempel avser människor på scenen försöker måla en mental bild, och även skapa, vågar jag säga, några av dessa minnesvärda stunder, så att även när du kämpa med vissa ämnen, har du dessa minnen, som oh, trots Det var ganska abstrakt, matematik blev jag förlorade med bär en, 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 fungera antingen personligen här i Sanders eller online på video är verkligen att sätta scenen mentalt för dig varje vecka för de olika begrepp och problem som vi kommer att dyka in. När det gäller de höga begrepp, kan de flesta av dessa ord rinna över huvudet för tillfället. Och det är bra. De av er som kommer att komma i kursen mer bekväm känner av några av dessa frågor, men typiskt för att 10% av klassen som De har mycket mer bakgrund, med AP datavetenskap, programmering eftersom de var 12, inse att det kommer att finnas möjligheter i sektioner och Problemet ställer för att gå ännu mer djup i olika ämnen, fylla i vad luckor du kan ha på din high school eller tidigare bakgrund. När det gäller de språk, inser att det språk vi använder i CS50 är irrelevant vid slutet av dagen. Vi råkar använda främst ett språk som kallas C. Mot slutet av termin 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 alla moderna högnivåspråk - Python och Ruby, och andra är mycket populär i dessa dagar, eftersom inse, i slutet av dagen, du lär inte i detta C. Du är inte lära PHP eller Javascript. Du lär sig att lösa problem, vare webbaserad, datorbaserade eller data-orienterade själv, med hjälp av dessa helt enkelt som verktyg. Nu när det gäller logistik, kommer du använda något slut kallas CS50 Appliance. Spelar ingen roll om du har en Mac, en PC, en Linux-dator eller liknande, har du fritt tillgänglig programvara börjar nästa vecka som att använda den 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 skrivbordet i det här fallet. Det är problemet uppsättningar, men där du verkligen får dina händer smutsiga i kursen. Och i slutet av dagen, det är problemet set, tror jag, som verkligen definiera en elevs erfarenhet i denna kurs. Inse att många av de problem uppsättningar kommer att släppas i två versioner - en standard edition som vi förväntar oss och uppmuntrar 90% av klass att dyka in. Men vi släppte också några problem uppsättningar i så kallade hackare upplagor, och du vet att det är hacker upplagan, eftersom på varje sida med en vattenstämpel, det säger hacker upplaga på den. Och det är för denna demografiska av er som har AP datavetenskap med 10 år programmering under bältet, och funderar på att fylla i dessa luckor, och att ha mer formella, snarare än självlärd utbildning kanske inser att det finns en mycket stor demografisk i klassen 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 med dessa saker som kallas sent dagar, och vi kommer även släppa din lägsta poängen i slutet av terminen, per uppgifterna i kursplanen. Men en annan kännetecken för CS50 åren blivit kontor timmar, en möjlighet som du såg visuellt i bilder lite sedan i vilken samlas vi tidigare i huset matsalar, dessförinnan i källaren av Science Center och i år i Annenberg Hall, fyra kvällar i veckan från 20:00 till 11:00, där du kommer att ha detta mycket gemensam erfarenhet av att arbeta på, kämpar genom vissa problem, men med en betydande stödstruktur på plats. Faktum är att hur detta kommer att fungera kommer du fram till Annenberg om du har några frågor under veckan. Du kommer att få din bärbara dator kommer du sitta ner, ta lite mat, och du kommer att logga in till CS50 diskutera, en webbaserad verktyg som lärarna har utvecklas som gör att du kan skicka frågor och se uppföljningar i ett typiska diskussionsforum mening, med hjälp av etiketter och liknande, och automatisk komplettering att söka data. Men du kommer också att kunna, under de tider kontorstid, har din frågor eskalerade faktiska människor. Faktum är målet slutligen så att en, vi börjar bygga upp över Under terminen en korpus med förhoppningsvis riktigt 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, samtidigt som undervisningen personal - vanligtvis 20% till 30% av undervisningen medmänniskor och kurs assistenter på personalen på en gång. Vi kommer att ha vad som kallas den CS50 Greeter i Annenberg, och när vi bestämma att, vet du vad? Denna fråga, svara vi verkligen effektivt på nätet. Vi behöver se din dator. Vi vill prata med dig en på en. Du är verkligen kämpar, och du därför vill prata en om en tillsammans någon, kommer du att skickas till CS50 Greeter, en undervisning karl innehav, bokstavligen, en iPod som har elevernas namn på en sida, undervisning personalens namn på den andra. Vi kommer att samla in ditt namn, följt av namnet på en lärare, och din datorskärmen börjar blinka, säger gå se Alice eller vänligen gå se Bob på personalen bordet. Och så på detta sätt kommer vi att kunna skicka saker så 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- på möjligheter med en av de pedagogiska medmänniskor och 12 till 16 eller så dina klasskamrater, där varje vecka, kommer vi att ha problem i problemet uppsättningen som ber en rad konceptuella frågor, och ett antal lagom stora programmering frågor som du kan räkna ut på egen hand, och du kan arbeta på egen hand, men i samband med avsnittet kommer vi att arbeta igenom kollektivt del av dessa problem och gå där konversation tar oss. Dessutom kommer i avsnitt du har möjlighet att granska inlagor läxor som du har gjort, dina klasskamrater, ibland anonymiseras, alltid med en opt-in, om du vill dela arbete som du har skickat. Så det kommer verkligen vara en två riktningar samtal och möjlighet att granska ditt eget arbete på ett mycket mer dynamiskt mening snarare än att bara titta på en PDF eller utskrift och tänka på det i några sekunder och inte nödvändigtvis absorbera den feedback som lärare 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 uppe till vänster, och Du får veta detta över tiden, men detta är en webbaserad verktyg som vi ska använda i avsnitt som gör att du och dina 15-tal klasskamrater att logga in med din undervisning kolleger längst fram i rummet. Du kommer att kunna skriva kod i det här fönstret. Du kommer att kunna chatta elektroniskt om du egentligen inte på avsnitt i just det ögonblicket, och din undervisning karl, när det blir dags att diskutera Alice eller Bob lösning i klassen, kan undervisningen karl på en knappen och voila, projekt på skärmen vad det eleven har arbetar vid denna speciella tidpunkt. Så för de av er har vänner som har tagit CS50 i det förflutna, inser att avsnitt har kraftigt startats i år att vara ännu mer aktiv, desto mer dynamisk och verkligen en tvåvägskommunikation mellan lärare och studenter. Och genomgångar. Så för dessa problemområden apparater erbjuder vi också inte bara specifikationen själv, vilket är i allmänhet en ganska detaljerad PDF, men också saker känd som genomgångar, där en medlem av lärare kommer att leda en vecka session som bokstavligen går igenom problemet set, vilket ger dig tips och råd, och utgångspunkter, och är tänkt att be mycket vanliga frågor: Var ska jag börja? Tja, du börjar antingen genom att dyka in spec på egen hand, 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 i början av veckan och få dem online med helgen så att du har så många dagar som möjligt faktiskt engagera sig i innehållet också. Men mer om detta i föreläsning på fredag. Nu i termer av stödkonstruktionen, är den mest betydelsefulla statistik kanske de 108 pedagogiska stipendiater och assistenter kurs som denna kurs har idag. Om några av er som inte har motstridiga klasser skulle vilja gå mig här på scenen, det är dessa killar som i slutändan kommer verkligen definierar din erfarenhet i kursen. Jag hade en hel del undervisning Fellow undervisar mig klasser i dag, och jag minns mycket få av dem, ärligt talat, men hittills jag fortfarande minns bland de få min CS50 TF, som verkligen hjälpte mig svara på frågor, som verkligen hjälpte 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 i Memorial Hall, men låt mig 1:e introducera dig till Nate Hardison igen, Rob Bowden, och Tommy McWilliams, chef årets kurs. Om ni skulle träffa mig här i mitten. De har alla förberett några inspirerande kommentarer. TOMMY McWilliams: Jag har inte förbereda något inspirerande. Men mitt namn är Tommy. Jag är en senior i Mather. Jag studerar datavetenskap, verkligen spännande att vara på huvudena laget och att gå igenom CS50 resan med dig. Vad jag verkligen gillar med CS50 är hur det verkligen lär dig att tänka på problem på ett nytt sätt. Detta är verkligen en färdighet som kommer att vara 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. Så jag bara 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 den här terminen riktigt bra, och som länge du är villig att sätta i arbetet, det finns så mycket du kan få ur denna kurs. 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 ut 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 lika mycket som jag har haft det så länge. Och om du någonsin vill lära dig att komma till nio eller tio i binär, kom prata med mig. Högtalare 1: Så med risk för att lämna killarna här på scenen lite tafatt, låt oss virvla igenom några av de saker som väntar innan vi ajournera för tårta. Vad är det som ligger framför? Tja, om vi tar en snabb titt tillbaka på förra året, i problem som noll, ditt föregångare dök i ett programspråk som kallas Scratch, en grafisk programmeringsspråk du kommer att använda under de första dagarna av kursen, med början denna fredag, för att lära sig några begrepp obekant för en del av er, men inser kommer det att finnas en avancerad aspekt av denna för dig med tidigare bakgrund. I förra årets problem som två, dök eleverna i en värld av kryptografi, konsten att krypteringsutrustning eller förvränga information, genomföra program som krypterade data, och i hacker upplagan förra år har studenterna fortsätter att knäcka eller avkoda lösenord i en typisk datorns. XC lösenordsfil genom att komma med algoritmer och heuristik för brute force räkna ut vad någons lösenord på en dator systemet var. Förra året eller två, i problemet som fyra gjorde eleverna genomföra omgång Sudoku. Och hackare upplagan detta år var eleverna inte bara genomföra hur spela spelet, men i själva verket en lösare, varvid datorn kan ge dig, människan, med tips, med snabbare än du lösa detta särskilda problem. I problembild fem, gjorde vi kriminalteknik, denna konst att återvinna informationen Det var av misstag eller mycket medvetet bort från datorn. Förra året spatserade lärare och jag runt campus tar fotografier av människor, platser och saker och sedan av misstag formaterade media kortet på vår kamera som hade alla dessa bilder. Men inga problem, vi gjorde en kriminalteknik bild av denna mediakortet, delade ut till alla elever i klassen, och utmanade dem att skriva program som återhämtade alla JPEG från det kortet. Och detta är faktiskt en av våra favorit problem uppsättningar, och jag grävde upp en gamla mail från en av era föregångare som var jättekul att Läs gång sedan. Detta är från Matt. Kära David, igår min syster som formaterats av misstag sin kamera 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 p-set fem, så jag tänkte att jag skulle försöka köra sin SD-kort via återvinna program som 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 visa sig vara ganska bra i detta avseende, tills jag ironiskt råkade komma över dina instruktioner på Internet - Efter mixtra runt med några av kommandoradsargument, lyckades jag att skapa den rättsmedicinska bilden och efter att ha installerat och konfigurerat CS50 Appliance, lyckades jag köra rättsmedicinska bilden genom mitt program och återställa alla 1027 i min systers fotografier, skriver Matt. I förra årets problembild sex, gav vi eleverna en ordlista med 150.000 engelska ord och utmanade dem att skriva en stavningskontroll som svarade frågor av formen är detta ord rättstavat eller felaktigt så fort som möjligt. Och på opt-in-basis var studenter tillåts sedan utmana klasskamrater genom att publicera sina resultat, mängden RAM-minne som de använder, antalet Processorcykler eller sekunder som de används, så att eleverna därefter rangordnade på kursens hemsida - igen rent frivillig aspekt av det, men väldigt roligt eftersom mycket ofta skulle en student få plats nummer 10 eller så på den stora ombord, på webbplatsen, gå ut på middag och sedan komma tillbaka och inse hans rumskompis hade just kanter framför honom eller henne på den stora styrelsen, vilket hälla ytterligare två eller tre timmar bara för att en upp sin rumskamrat. Så vi ser fram emot att något liknande i år. I problembild 7 gjorde vi styra i riktning mot webbprogrammering, faktiskt lösa problem i den ständigt allt vanligare miljö av en webbläsare. Vet då allt mindre vi hämtar programvara på Mac och PC, men allt, vi gör 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 denna klass kursens slut, eftersom vad som väntar i kursens slut är det CS50 Fair, detta Utställningen som är baserad på idén om en vetenskap rättvis, men i denna version av en rättvis gör alla elever i klassen ta med sig sina bärbara datorer och deras vänner och familj och andra till Nordvästra Science, en stor byggnad på campus, skapa sin bärbara dator, få lite mat, få lite popcorn och dryck, samt sedan ställa sina slutliga projekt för alla de närvarande, som förra året numrerade några 2.500 deltagare från hela campus, och uttryck som detta 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 vid 8:00 PM, och inte gå hem till 07:00. Vi serverar första middag vid 8:00 PM, andra middag klockan 1:00 AM och för dem som fortfarande stående på 5:00 behandlar vi till pannkakor på IHOP. Och hackathon är en möjlighet, som på bilden här, att dyka in i din slutliga projekt, vare sig de arbetar på egen hand eller tillsammans med vänner i en samarbetsmiljö, där hela lärarkåren fungerar väl in på natten med ett stort utbud av Hongkong kinesisk mat. Vid 5:00 AM kommer sådana bilder som dessa vara ganska vanligt i år. Så som vi ajournera ett ögonblick för tårta, kom ihåg att 76% procent av människor i det här rummet inte har någon tidigare erfarenhet, och enligt kursplanen, det som i slutändan betyder i denna kurs är inte så mycket där du hamnar i förhållande till dina klasskamrater, men där du i vecka 11, sluta i förhållande till själv i vecka 0. Detta är CS50.