[Powered by Google Translate] SPEAKER 1: Dette er CS50. Så jeg var hvor du er nu nogle år siden, og da jeg var en freshman i tid, jeg var egentlig ikke på denne vej at gøre computere videnskab, at gøre engineering. Faktisk kom jeg på denne plads som en regering koncentrator. Jeg havde været i high school et barn, der kunne lide ting som historien. Jeg kunne godt lide forfatningsret slags engelsk og matematik, så slags godt afrundet, men ikke nødvendigvis vide ting, som jeg ikke var blevet undervist i i high school. Og så freshman år havde jeg denne bæven, hvorved selvom jeg kunne lide computere, spille computerspil og lignende, jeg sikkert aldrig tænkt på mig selv som en computer person, en datalog, og ærligt, jeg troede mine venner i gymnasiet der tog computer videnskab var lidt af en - nørder. Og dog, da jeg kom her på campus, var der dette kursus, CS50, og på den tid, det havde denne ry for virkelig at være noget at passe på. Det var et godt kursus. Det var en sjov kursus. Men skulle du faktisk få at foden i døren. Og selv jeg ikke krydse denne tærskel freshman år. Og jeg gik på min måde at være en regering koncentrator, som går gennem som mange af forudsætningerne, som jeg kunne, krydser tælle ting til gen ed eller core og lignende, og derefter sophomore år, eller anden grund har jeg op den frækhed at skridt mund i Science Center B, hvor CS50. En meget berømt datalog ved navn Brian Kernighan var undervisning her det år, og selv da jeg var kun villig til rent faktisk at udfylde mit studiekort ved at tage denne klasse bestået / ikke bestået. Jeg kiggede mig omkring, og jeg regnede alle i dette rum er nødt til at kende måde mere om datalogi, om programmering, om computere. Alle skal være programmering i dette rum, siden de var 12, men ja, det var ikke tilfældet. Og så den allersidste dag, den femte mandag i semestret, at jeg tager dette spring og ændring fra bestået / ikke bestået til et brev lønklasse, og ender med at ændre mit koncentration, der samme dag til datalogi. Nu, er ikke vores mål i denne klasse, at vende jer alle til computer videnskab koncentratorer, men virkelig, at foreslå, at der er denne mulighed på dette område og på andre områder, som du kan være helt ukendt, da gymnasierne typisk følger en temmelig standard læseplaner sti, men vove sig i, i CS50, i nye farvande. Og hvis du sidder her i dag tænker du faktisk ikke hører hjemme, så gøre de fleste af de folk til højre og til venstre. Faktisk sidste år, 76% af eleverne i denne klasse havde ingen forudgående erfaring. Så i modsætning til hvad du måske tror, ​​de fleste af de mennesker, der sidder omkring dig dag ikke i realiteten have nogen forudgående erfaring. 18% har taget en CS klasse, og 6% har taget to eller flere. I mellemtiden beder vi vores studerende hvert år for at beskrive sig selv i form for komfortniveau, og det er - der er ingen definition af dette. Du skal bare slags vide det, hvis du ikke er meget komfortabel i CS50. Og sidste år havde vi 55% i denne grønne pie skive her, selv-beskrivelse som mindre komfortable studerende, der ærligt havde vi ingen idé om hvorfor tog de shoppe kurset på denne første dag, men det samme 55% forblev hos os indtil Udtrykket udgang, og det samme gjorde 35%, der var et sted i mellem de mere komfortable og de mindre komfortabel. Så hvad er datalogi? Tja, i gymnasiet, og virkelig mere generelt derude i disse dage, der er denne opfattelse eller denne misforståelse, at datalogi er programmering. Og det er absolut et aspekt af datalogi, men programmering, uanset hvilket sprog er, er egentlig bare et værktøj, der dataloger bruge til at løse problemer, enten i området for datalogi eller, stigende i disse dage, i de fysiske videnskaber, den naturlige videnskaber, i medicin, i de humanistiske fag, analysere store datasæt. Anywhere nu er der computer og data, der er en mulighed for at anvende erfaringer i en klasse som CS50. Så lad os løse et problem, at en datalog kan gå om løse og forsøge at sætte nogle jargon, sætte nogle begrebsmæssige rammer, omkring hvad der ellers ville være nogle temmelig abstrakte ideer. Så dette er en telefon. Du behøver ikke se disse ting for ofte. Skolen synes stadig at have disse i husene og sovesale, men tilbage i dag, når du ønskede at bruge en telefon som denne, var der ingen elektronisk adressebog i din mobiltelefon. Snarere, du trak op noget kendt som en telefonbog, og disse telefonbøger havde omkring 1.000 sider typisk. De blev sorteret fra A til Z, og du simpelthen nødt til at finde den rigtige side til finde den person, du leder efter for at finde deres navn og deres telefonnummer. Nu hvordan kan du gå om at se op nogen i denne bog? Antag mit mål er at give min ven Mike Smith et opkald. Nå, hvordan kan jeg gå om at finde Mike Smith? Tja, en meget fornuftig tilgang, hvis naive og ineffektiv, ville være begynde her, og begynde at vende til side fire, til side fem, til side seks, og til at sortere af lineært,, langs en ret linje igennem denne telefonbogen, og selv selvom det kommer til at være utrolig kedelig, hvis Mike Smith er i denne bog, jeg sidst vil nå ham, når jeg endelig vende til S afsnit af denne bog. Nu, selvfølgelig, behøver du ikke at være en computer videnskabsmand for at vide, at dette er en dum måde at løse dette problem. Hvad ville en typisk menneske gøre? Godt klaret. Så du ville vende til midten, ikke? Så du ville vende nogenlunde til midten, se her, og jeg synes at finde mig selv i M sektionen. Okay, så M er tydeligvis ikke hvad jeg leder efter. Mike er til højre, så at sige, i dette afsnit, og som nogle af jer har set før, kan vi bogstavelig talt nu fortsætte med at rive dette problem i en halv. Du burde virkelig ikke være så imponeret. Rive det ned sømmen er faktisk ikke så svært. De virkelige mennesker gør det på denne måde, men ned sømmen, vi har nu to problemer. Hver af hvilket er halvt så stor, og vi kan bogstaveligt kaste, at halvdelen af problem væk. Nu er vi tilbage ikke med 1.000 sider, men siger, 500. Så nu hvad skal jeg gøre? Nå, vil et typisk menneske gå nogenlunde i midten igen, og jeg finder mig selv på R sektionen, så ikke helt der. Så igen, kan jeg rive dette problem i halve. Tak. Så nu har jeg kun omkring 250 sider, og jeg kan gøre det igen, og igen, og igen og gå fra 125 til omkring 60, til 30, til 15, og så videre. Og endelig vil jeg blive skåret ned til en af ​​de s sider, som, hvis han er i telefonbogen, bør Mike Smith være. Nu, er et åbenbart temmelig rimelig algoritme, og det er en engangs-brug algoritme i dette tilfælde, men hvad kan vi sortere i tage væk fra det? Nå, den første metode, korrekt, hvis naive, men det var, kan være beskrevet af den lige linje. Så hvis på x-aksen, vi her sige, det er størrelsen af ​​problemet. Således x-aksen går til højre, at problemet bliver større. Hvad vil det sige at være større? I forbindelse med dette problem. Flere sider i telefonbogen Der er mere noget, vi kan kvantificere. På y-aksen, tidspunkt for at løse. Så som aksen går op, vi formoder det formentlig tager længere tid. Så det første tilgang af lineært søger fra side et til side 1.000 er en lineær procedure, en lineær algoritme eller proces, og vi kan beskrive det ved denne lige linje. Hvis jeg tilføje endnu en side til telefonbogen, det vil i værste tilfælde, tag mig endnu en side flip for at finde Mike Smith. Hvis jeg tilføjer 100 sider, 100 mere flips, eller enheder af gangen. Nu kan jeg være lidt smart med dette. Jeg behøver ikke at virkelig slå det én side ad gangen. Jeg kan gøre ting som to ad gangen eller fire ad gangen, men selv det er ikke alt det fundamentalt bedre. Selvom det er to ad gangen, yeah, den slags bevæger denne linje ned en smule, og det betyder, at det tager mindre tid, have samme antal sider, men Det er ikke fundamentalt bedre. Men hvad gør vi bare gør, og hvad gjorde alle jer gør instinktivt? Du faktisk opnåede en lidt noget som dette, logaritmisk tid, hvorved problemet kan vokse og vokse og vokse, men omkostningerne ved løsningen, at problem, den tid der kræves til at løse dette problem, ikke vokse næsten lige så hurtigt. Dette ville være en logaritmisk kurve, log af n, hvor n er lige i størrelsen af problemet, at antallet af sider i denne telefonbog. Og hvad betyder det reelt? Tja, hvis vi har, ligesom, 500 mennesker i dette rum lige nu - eller rettere, hvis vi har - blanding metafor - ikke gjorde det eksempel endnu i år - så hvis vi har 500 sider i telefonen bog, og vi fordoble det til 1.000, i dette mere intelligent model flipping til midten, hvordan mange flere side-tearers det tage at gå fra 500 sider til 1.000? Nå, bare en ekstra side tåre. Hvis du gav mig en 2.000 side telefonbog, no big deal. Jeg ville bare rive det en ekstra gang. Så kort kan størrelsen af ​​problemet vokse meget hurtigere end prisen på faktisk løse det. Nu dette er blot én sådan algoritme. Der er andre, vi kan løse på denne samme måde. Og så hvorfor gør vi ikke det - hvis du vil humor mig, omend akavet her i Sanders, gå videre, alle, hvis du kunne, og stå op på plads. Som du kan se på skærmen her, det er en algoritme, en proces, en computer program, hvis du vil, kan udføres af mennesker, der har blot tre trin. Vi er allerede på trin et, har du stod op. Og nu tænke på dig selv nummer et. Det er dit nuværende nummer. Alle her er nummer et. Trin to, parre op med nogen stående og dine tal sammen, og derefter vedtage dette beløb som dit nye nummer. En af jer skal sidde ned, og derefter gentage. På dette punkt, bør færre og færre mennesker blive stående. Det er her, det bliver mere akavet. Nogen her, her. Den værste del er, du også nødt til meget verbalt regne i front hundredvis af Harvard undergrads. Okay, lidt af en fejl her. Okay, hvad er dit nummer? Nine. Okay. Hvad er dit nummer? 179. Okay, godt. Så 188. Så du fyre kan sidde ned. Hvad er dit nummer? 118. Nogle smarte undergrad begynder at gøre det math. Okay, 118, 188. Hvad har vi ellers? 71. 79. Okay. Og? 47, som lærere, der giver os, hvor mange? 705 er svaret. Og det er i virkeligheden helt korrekt. Nej, vi var faktisk en lille smule off der, men hvordan Dette bør have arbejdet? Hvad skulle have skete der lige? Så på hver iteration af denne algoritme, startede vi med nogle tal mennesker stående, og det var det samlede antal, n, i første omgang. Så halvdelen af ​​jer satte sig ned, og vi gik til n over to. Så halvdelen af ​​jer sad ned, gik vi til n over fire, n over otte, over 16, og så videre, indtil, selv om den slags sønderdelt der ved ende, i teorien, havde alle parret ud i balkon, og mezzanin, og orkester her, ville vi have haft bare én enlig person, der står med et samlet værdi, i dette tilfælde på 705. Nu hvad betyder det, men for køretiden? Nå, så tænk på, hvis jeg, som det menneskelige, havde gjort dette manuelt. Jeg ville have startet temmelig naivt, men korrekt med en, to, tre, fire, fem, seks, syv, otte, og så videre; tager temmelig lang tid. Så jeg kan gøre det bedre, ikke? I folkeskolen, behøver du ikke bare tælle i dem. Du tæller i toere. Så to, fire, seks, otte, ti, tolv. Og det bliver meget hurtigere, men nu fundamentalt, ved at udnytte den kollektive intelligens alle i dette rum, kan vi opnå en kurve meget mere som denne, hvorved nu, at antallet af de mennesker i dette rum kunne double, en anden 700 mennesker går ind i dette rum til 1.400 mennesker, men ville det kun tage os endnu en iteration af denne algoritme til at løse. Og så i stigende grad, i disse dage, når vi har disse enorme datasæt i Facebook, og Google og lignende, er det at løse problemer med denne smule af indsigt, denne lidt Klogskab, det er giver os i stigende grad at gøre meget, langt mere kraftfulde ting med computere i dag. Hvis du kan lide den slags ting, du måske har set på Facebook CS50 s eget Puzzle Day, kommer op denne lørdag. Hvis du ønsker at deltage i noget som dette, hvor du og to eller tre eller fire hold af fire vil gerne løse nogle gåder sådanne som dette, står du en chance for at vinde nogle fantastiske præmier, blandt hvilke er en Wii, og nogle gavekort, og nogle andre Facebook Swag denne lørdag, middag til 3:00 PM. Gå til cs50.net/rsvp en sådan. Og dette dias er online, hvis du ønsker at spille rundt. Gåderne i år skal være nye. Du vil måske bemærke i klasseværelset, også alle de flere kameraer i år. Så ikke blot vil naturligvis blive filmet på den sædvanlige måde, kan CS50 også være deltager i en dokumentarfilm om højere uddannelse, der er at se på transformative erfaring, at en elev kan have disse dage i en bachelor studieforløb. Så mod disse ende, vil vi ikke blot blive filmet for det, vil vi filme samt for i stigende grad vores online publikum, såvel som til tider dette publikum her. Så vi velkommen til klassen i år vores Harvard forlængelse skoleelever, Graduate School of Design, uddannelse, business school, Kennedy School, jurastudiet, samt et antal studerende fra Belmont, Lexington, Newton, og Watertown High Schools. Velkommen til jer alle. Hertil kommer, i år, som du måske har hørt, Harvard og MIT, og Berkeley nu har indgået en samarbejdsaftale om et initiativ kaldet EDX, der er et initiativ til at åbne op uddannelse til alle jo flere mennesker online, og fundamentalt, begynde at gøre forskning i en langt bredere skala, hvordan mennesker lærer. Og så CS50 vil være skolens første kursus, der deltager i det initiativ, så godt, betyder som du vil have adgang til alle de mere værktøjer, desto mere uddannelsestilbuddet, desto mere videoindhold som et resultat, såvel som i går morges, de 53.019 mennesker, der har registreret til at tage CS50 sammen med dig i år på internettet. Så hvad det betyder, i særdeleshed, er, at lærergruppen og jeg har brugt ganske lidt tid denne sommer forberedelse til efteråret, både på campus og slukket, så vi kan begynde at opbygge et korpus af interessante, af overbevisende, at engagere pædagogiske indhold, fokuserer det især på mere intime transportmidler af temmelig komplekst materiale. Så udover kursets forelæsninger og sektioner, og ting såkaldte walkthroughs, som vi vil revidere i blot en smule, vil vi også have disse shorts i år, så du kan engagere sig med kurset fra en anden vinkel alle sammen. Så lad os bruge dette som en mulighed for at tage et hurtigt kig på en, diskuterer dette begreb binær. Så i datalogi der er ting der kaldes algoritmer, hvoraf to vi tog bare et kig på - disse procedurer til løsning af problemer. Men i slutningen af ​​dagen, er du nødt til at repræsentere information eller anden måde, og du nødt til at repræsentere det på en måde, som en computer kan forstå. Og selvom du ikke rigtig forstår computere, og du er i at 76% lige nu, har du sandsynligvis har nogle vage fornemmelse af, at computere en eller anden måde beskæftige sig nuller og ettaller, det binære system, så at sige. Men hvorfor er det sådan? Nå, viser sig når computerne først kom omkring, hvis du har brug for at repræsentere information, kan du gøre det med elektricitet, og selv om dette er en smule af en forsimpling, er en meget nem måde at registrering af oplysninger enten ved at dreje, at el på, at dreje en i binær, så at sige, eller at elektricitet off. Så Barry, hvis du ikke har noget imod kunne vi dæmpe lyset fuldt ud for bare et øjeblik? Det her er en meget umotiveret binær nul. Okay, hvis vi tænde lyset tilbage op, nu Sanders Theatre er repræsenterer den binære værdi af én. Desværre, med blot én bit, med blot et sæt af lys, kan vi kun repræsentere to numre i verden, nul og én, og det ville være rart, hvis computere kunne tælle en smule højere end det, men ja, de kan. Så lad mig trække op på skærmen her vores ven, Nate Hardison, som vil give os et hurtigt kig i løbet af blot et par minutter på Denne opfattelse af binær. NATE Hardison: Tilbage, når du lærte at læse og skrive numre, du lært om cifrene nul til ni. At skrive hele tal større end ni, du lærer at alt hvad du havde at gøre blev anvender en kombination af disse cifre, som i 52 og 437. Så denne måde at skrive numre har et navn, decimal notation. Hvorfor decimal? Nå, det latinske rod af decimal, deca betyder 10, og når du har 10 cifre i dit notation system, bliver 10 en noget speciel nummer. Lad os se på antallet 437 skrevet i decimal notation til at forstå hvorfor. Vi kan først opdele 437 i 400 plus 30 plus 7. Vi kan tage det fra hinanden endnu mere, så vi har fire gange 100 plus 3 gange 10 plus 7 gange 1. huske at lære om dem sted, 10s sted, 100s sted, og så videre? Dette er præcis, hvor det kommer fra. Og endelig kan vi se, hvordan vi har fået en masse beføjelser 10 indlejret i her. Vi har 4 gange 10 til 2 plus 3 gange 10 til 1 plus 7 gange 10 til nul. Så nu kan du se hvorfor 10 er et særligt tal i decimal notation. Faktisk har vi et navn til det. Det hedder base, da det er bunden af ​​eksponenten i vores aritmetiske her. Decimal notation er ikke den eneste måde at repræsentere tal. I virkeligheden, selv om vi slippe af med cifrene to til ni vi kan stadig repræsentere alle de numre, vi kunne med decimal. Så nu, at vi har to cifre, nul og en, to er vores særlige nummer, bunden af ​​vores notation system. Navnet på denne notation systemet kaldes binær, da prefix bi betyder to. Så i stedet nu at have en dem sted, og 10s sted, og så videre, vi nu et dem sted, et twos sted, en fire sted, og så videre, stiger med potenser af to. Så lad os se dette ved at gøre nogle tælling. Så nul er stadig nul, og man er stadig en. Men nu, hvor vi har fået en toere sted i stedet for en 10s sted, 10 repræsenterer nummer to. For at få tre, tilføjer vi en til det, og få 11. Four, da der er nu en fire sted, er repræsenteret af 100. Fem er 101. Seks er 110. Syv er 111. Otte, igen, har sin egen plads. Så det er 1000. Og jeg tror du får det punkt. SPEAKER 1: Så dette er at sige, hvad computere gøre, og hvad binære er er faktisk ikke så forskellig fra det, vi har taget for givet for nogle år, right? Tilbage i folkeskolen, du lærte at tælle præcist i mode, at Nate foreslået, men du sandsynligvis har ikke rigtig tænkt over det siden, at der er dette dem sted, 10s sted, og 100s sted, og det er temmelig vilkårlig. Og ja, computere blot bruge denne anden base. Men i slutningen af ​​dagen, at rent fysisk repræsentere denne forestilling om en nul og én, du tydeligvis ikke bare tænde lyset og slukke nødvendigvis. Du er nødt til at gøre det på en meget finere korn skala. Og ved finere korn, kan du huske dette tåbelige lille legetøj fra barndommen, Woolly Willy og disse små magnetiske partikler. Så magnetiske partikler er noget, som du kan justere i et par forskellige retninger, måske nord-syd eller syd-nord. Og så en masse fysiske inkarnationer af teknologi i disse dage, der bruger binær, der bruger nuller og ettaller, skal du blot have magnetisme på indersiden der bringer tingene op-ned eller ned-op, hvilket repræsenterer en nul eller én, hhv. Så ja, lad os komme væk fra det abstrakte her, og se på indersiden af, hvad der er en mere traditionel computer harddisk. Denne ene sker for at være en smule større på skærmen, i, at det er fra en stationær computer, men bærbare computere i dag har stadig den samme teknologi, men er efterhånden bliver erstattet af mere avancerede ting, som rent faktisk har ingen bevægelige dele - den indvendige side så med en harddisk. SPEAKER 2: Harddisken er der, hvor din pc gemmer det meste af dets permanente data. At gøre det, at data bevæger sig fra RAM sammen med software-signaler, der fortæller harddisken, hvordan man opbevarer disse data. De hårde drivkredse oversætte disse signaler til spænding udsving. Disse, til gengæld, kontrollere harddisken bevægelige dele, nogle af de få bevægelige dele tilbage i den moderne computer. Nogle af de signaler styrer en motor, hvilke skoler metalovertrukne plader. Dine data er faktisk gemt på disse plader. Andre signaler flytter læse-skrive hoveder til at læse eller skrive data på pladerne. Denne maskine er så præcis, at et menneskehår ikke engang kunne passere mellem hoveder spinning fade, men det hele virker på forrygende hastigheder. SPEAKER 1: Så vi nu zoome ind på, hvad der rent faktisk sker på toppen af ​​disse plader i form af magnetisme, har vi denne anden af ​​to udseende. SPEAKER 3: Lad os se på, hvad vi lige har set i slowmotion. Når en kort puls af elektricitet sendes til læse-skrive-hoved, det vender på en lille elektromagnetisk til en brøkdel af et sekund. Magneten skaber et felt, som ændrer polaritet en lille, lille del af metalpartiklerne som coat hver plade overflade. Et mønster serie af disse små ladede op områder på disken repræsenterer en enkelt bit af data i et binært tal, der anvendes af computere. Nu, hvis det nuværende er sendt en vej gennem læse-skrive hoved, området er polariseret i en retning. Hvis den aktuelle sendes i den modsatte retning, det polarisering vendes. Hvordan får man data fra harddisken? Bare vende processen. Så det er partiklerne på disken, der får den nuværende og den læse-skrive hovedet bevæger sig. Sammensæt millioner af disse magnetized segmenter, og du har fået en fil. Nu stykker af en enkelt fil kan være spredt over hele en drevets plader, lidt ligesom det rod af papirer på dit skrivebord. Så en ekstra fil holder styr på hvor alt er. Må ikke du ønsker du havde sådan noget? SPEAKER 1: Ja. Så vi har denne evne til at repræsentere denne information, tal på et meget lavt niveau. Vi har en fysisk måde at repræsentere det samme, men vi kan ikke rigtig gøre alt, meget af interesse endnu, andet end måske nogle aritmetiske og matematik. Vi har ingen måde at repræsentere således langt ting som alfabetiske bogstaver, så vi mennesker kan kommunikere ved hjælp af de samme enheder. Men heldigvis findes der kodninger, mønstre af nuller og ettaller der repræsenterer højere niveau konstruktioner som A og B, og C, og hele sætninger og afsnit, og lignende. Og så ASCII, hvilket er et akronym, der betegner det kodende system, hvor en nummer repræsenterer et bestemt bogstav - for eksempel det antal, som vi kender som decimalværdi 65 er kendt som det store bogstav A til computere. Decimalværdien af ​​97 i computere er kendt som en lille en. Og hvad betyder det egentlig? Nå, selv om Nate, for et øjeblik siden, kun talt op fra nul til otte, hvis vi skulle fortsætte med at tælle op til 65, eller yderligere, til 97, mønsteret af nuller og ettaller, at han ville have draget på skærmen ville være præcis hvad en computer bruger til at repræsentere bogstavet A i alle caps, eller bogstavet a med små bogstaver. Og ja, der er en hel ordning til dette. Det er ved første øjekast, overvældende diagram af kodninger, men hvis du fokuserer lige på den højre halvdel her, i denne midterste kolonne mærke, har vi denne begrebet tal efterfulgt af bogstaver. Og øverst har vi 32, og den karakter char, hvortil 32, heltal, nu henviser til, er tilsyneladende den plads bar tegn. Når du får den plads bar tegn på din bærbare computer, hvad du virkelig sender er et tal, et mønster af nuller og ettaller, en strøm af elektricitet, hvis du vil, repræsenterede disse nuller og ettaller, at computeren og derefter tolker som et rum karakter på skærmen. Et udråbstegn 33. Anførselstegn er 34. Og hvis vi rulle ned her over til højre, ser vi, at 65 er faktisk A, og 97 ganske små bogstaver a. Så nu, at vi har dette kodningsskema, kan vi begynde at stave ting ud. Faktisk computere typisk udtrykker sig i standardenheder, ikke ved hjælp af en individuel bit, hvilket igen, er ikke så hensigtsmæssigt at netop repræsentere nul eller ét, lys på eller slukket, men snarere ved hjælp af sekvenser af bits. Og den mest almindelige måleenhed, som du sikkert ved, eller i det mindste udledes, er en byte. En byte er kun otte bits, otte nuller eller dem i træk. Så vi kan begynde at stave ting ud. Og så hvis vi kunne, hvorfor så ikke prøve dette lidt kollektivt her? Er der otte mennesker i dette rum, der ville være villige at komme op på scenen? Du er nødt til at være komfortable optræder på kamera, men du behøver ikke virkelig har brug for at vide ellers hvad der sker lige nu. Jeg ser en person, der meldte sig herovre. To, tre, fire, fem, seks, syv, og hvordan omkring otte? Kom nu op. Så du er ved at repræsentere en byte af mennesker. Lad mig har du været det 128s sted, du 64s sted, du 32s sted. Men vi vil meget hurtigt nødt til at vende denne. Så lad mig møde jer alle derovre. Og du skal være i 128s sted hele vejen over, her meget gerne hundreder sted eller tusinder sted ville være længere til venstre, vi ønsker den største pladsholder for at være her til venstre så godt. Vi har 64s, 32, 16s, 8s, 4s, 2s, og 1'ere - excellent. Så nu har vi - okay, kan du hjælpe mig. Så nu har vi - hvad er dit navn? JOANNE: Joanne. SPEAKER 1: Så Joanne og jeg skal nu rådgive disse fyre om, hvordan vi kan gå om stavning noget ud. Så på ryggen af ​​deres ark papir, de har en lille snyde ark der kommer til at fortælle dem om de blev repræsenterer et nul eller én. Og hvorfor ikke, for enkelhed, vil vi repræsenterer nul ved blot stod der kejtet. Meget godt. Eller en en ved at hæve din hånd, der repræsenterer en én. Og lad os se om vi ikke kan stave en fire tegn sætning her. Så gå videre nu, frivillige, og udføre runde ved at hæve din hånd hvis du er en en, eller holde det nede, hvis du er et nul. Så nu, at vi har disse tre hænder op, hvilket nummer, alle andre, er de faktisk repræsenterer? Okay, 67. Hvorfor? Nå, hurtig tilregnelighed kontrollere. 64s sted, fordi det er en én. Det er ligesom én gange 64 plus 1 gange to, så det er 66, plus 1 gange 1. Det er plus 1, så 67. Så nu er disse fyre er kollektivt repræsenterer 67, som tilsyneladende svarer til, hvad her i ASCII? Okay, så en C. Okay. Så lad os nu gå videre til runde to. Alle starter med hænderne ned, og derefter runde to. Faktisk er der ikke meget af en rolle her, jeg formoder, men vi vil lade som om. Så runde to, hæve eller sænke dine hænder. Ok. Publikum, hvad er vi nu? Udtrykke er 83. Så du kan gøre matematik. Men for enhver, hvis hånd er op, tilføje dig i det nummer, de repræsenterer. Så nu har vi 83. Lad os udvide snyde ark en lille smule, og vi har nu - dette kan være indlysende hvor vi skal hen her, men ikke desto mindre runde tre. Okay, runde tre er god til at gå derned, så runde tre, hvad nummer er disse fyre nu repræsenterer? Okay, jeg hørte 53, som nu repræsenterer - interessant. Nu hvorfor denne form for counter-intuitive resultat, right? Hvis vi ønsker at repræsentere fem - vi alle sikkert kender, hvor dette foregår - hvorfor jeg ikke bare hæve fours sted og dem plads? Tja, vi indse, at der er en forskel, fundamentalt, mellem, hvordan en computer fortolker disse bits. Hvis du forsøger at repræsentere nummer fem, så absolut, vi bare hæve din hånd nummer fire og hæve hånd nummer et. Men vi er ikke repræsenterer numre her. Konteksten her på scenen, er, at vi repræsenterer tegn eller chars, og i den forbindelse har computeren til at indse, at åh, dette mønster af bits er ikke et tal alene. Det er faktisk repræsenterer et højere niveau koncept. I dette tilfælde en alfabetisk bogstav. Så det faktum, at det nu repræsenterer nummer fem med værdi 53 er fordi i ASCII, de ting vi æstetisk ser som den nummer fem i sig selv har brug for et mønster af bits - fordi hvorfor? Nå, verden netop besluttet at bruge de lavere tal, nul, et, to, tre for hvad kiggede være temmelig kryptiske ting. Og ja, det er de tegn, der ikke på et tastatur. Særlige udtryk, du har brug for i en computer til at gøre interessante ting, men mennesker faktisk aldrig skriver dem. Så 53, faktisk udgør fem. Nu blot som en endelig tilregnelighed check, hvad skal nummer, de repræsentere på bare et øjeblik? Okay, så 48. Og ja, gå videre, runde fire. 16 plus 32 er faktisk 48. Og så en stor runde af bifald, hvis vi kunne, for vores otte frivillige her. Meget godt klaret. Helst retning er fint. Så nu har vi en måde at ikke kun tænke på, hvordan til at repræsentere data, og faktisk repræsenterer det fysisk, men også gør en højere niveau ting oven på. Og ja, dette vil være et tema i hele datalogi af bygge flere og mere interessant og kompleks ting på toppen af forholdsvis enkle ideer - i dette tilfælde. bare nuller og ettaller Med hensyn til hvorfor dette er nyttigt, ja, selv om der i et kursus som dette, vi vil fokusere på fundamentals, og om programmering, og om løsningen af problemer, kan du gå ud i datalogi i et vilkårligt antal retninger. I dette tilfælde her, er dette et diagram, som du har på bagsiden af ​​din uofficielle guide til CS på Harvard, en af ​​dagens to udskrifter. Dette tyder de mange forskellige retninger, hvor du kan gå efter en kursus som dette - lære om kunstig intelligens, om grafik, om machine learning, om sproget selv. Indser også, at der findes endnu andre veje. Der er mere matematiske stier i datalogi. Hvis du ikke selv i stand til at tage noget som CS50 dette efterår, er der introduktionskurser i foråret, Datalogi 1, for eksempel, er endnu en om-rampe til denne nye verden. Nu som en sidebemærkning, af hensyn til at løse problemer relateret til kurser indse CS50 fastsat nogen tid siden at forsøge at løse et af disse problemer, en problem kendt som my.harvard, som mange af jer bruger måske til rent faktisk at shop for kurser, men hvis ikke, så tjek et værktøj som dette, samt andre efterkommere, at nogle af vores tidligere studerende og ansatte har skabt. Men i Harvard Kurser, der er et web-baseret værktøj, noget, som du vil være i stand til at designe og implementere jer, såvel som endnu andre ting også ved udgangen af ​​semestret, indse, at dette bygger på en åben datasæt. I dette tilfælde, selvfølgelig, katalog, og giver eleverne mulighed for i dette tilfælde udforske en temmelig kompliceret datasæt. Vi gravede op i går aftes et par baseret på de få tusinde folk, der har brugt denne i løbet af de sidste par dage. Hvis du har været nysgerrig efter at vide, hvor mange kurser dine venner faktisk tendens til at shoppe, ja, i dag disse data tyder på, at 7,6 er den gennemsnitlige række kurser på en eller andens indkøbsliste. Og nu vil jeg give dig også statistik over de mest antallet af kurser om nogens indkøbsliste - og vi alle kender sikkert en som denne. 201 er dette års rekord. Nu nogle af vores tidligere studerende og ansatte faktisk sat sammen et klip til male et billede til dig, hvad denne vej datalogi og CS50 selv er. Lad mig gå videre og trække op, takket være Mr. Harvahd her, en video produceret af nogle af dine forgængere, hvis vi kunne holde lysene op for dette. [Musik spiller] SPEAKER 1: Jeg havde ingen idé om, at der skulle ske. Så en mere alvorlig kig på hvad der ligger forude. Så i forhold til de forventninger til dette kursus, er du faktisk forventes at deltage eller se kursets foredrag, indsende otte problematiske sæt, tage to quizzer, indsende et afgangsprojekt. Med hensyn til karakterer, indse, at mine kommentarer ved åbningen om pass-fail, noget, som vi i høj grad tage til hjerte i CS50 - der er ikke næsten nok af en kultur på Harvard for at forsøge noget og risikere fiasko. Faktisk havde vi antal studerende, og jeg selv i særdeleshed, som var bekymret såre din GPA, eller få en B i noget lignende CS50, og mulighed for at tage et kursus som dette og andre gateway kurser på det indledende niveau bestået / ikke bestået, er et meget uudnyttede muligheder på dette college i almindelighed. Og så skal du vide, selv jeg tilmeldt dette kursus i første omgang til bestået / ikke bestået kredit alene, og selvom jeg gjorde kontakten ved slutningen af ​​dagen, var det de fem første uger, op til den femte mandag i semestret, der er cutoff, der tillod mig at faktisk sætte foden ind i disse nye farvande, og faktisk prøve noget meget uvant og meget ubehageligt for mig på det tidspunkt. Så hvad nu af, hvilken rolle de forskellige vinkler, som du kan nærme sig dette kursus tjene - så forelæsninger. Det er op til dig. Hvis du engagere sig med os i person på dette sted, ja, vi kender statistisk, at omkring 40% af jer vil slags kommer og går over løbet af semestret, og 10% af jer vil vi aldrig se igen efter i dag. Og det er helt fint, at være ærlig. Et af de vigtigste kendetegn ved CS50 er, at der er disse utallige ressourcer, hvoraf nogle vi vil rasle igennem på bare et øjeblik, herunder foredrag og sektioner, og ting kaldet walkthroughs, og kontor timer, og lignende, og det er flere ressourcer end den typiske studerende skal have eller kunne fysisk drage fordel af, men det er fordi af de forskellige læringsstile, at enhver studerende manifesterer. Og så i foredrag, er den primære rolle, som jeg ser det ikke at verbalt skubbe ud temmelig komplekst materiale og nødvendigvis levere alle de snørklede af de grundlæggende, at vi udforske dette semester, men snarere, at gøre ting som vi har gjort hidtil allerede, disse eksempler involverer mennesker på scenen forsøger at male et mentalt billede, og også skabe, tør jeg sige, nogle af disse mindeværdige øjeblikke, så selv når du kæmper med bestemte emner, du har disse erindringer, ligesom oh, selvom der var temmelig abstrakt den matematik, fik jeg tabt med at bære en én, ligesom, det virkelig, ved slutningen af ​​dagen, er ikke så ulig noget, jeg allerede kender. Og så den rolle, forelæsninger vil tjene enten personligt her i Sanders eller online på video er virkelig at sætte scenen mentalt for dig hver uge for de forskellige begreber og problemer, som vi vil være dykning i. Med hensyn til de overordnede begreber, kan de fleste af disse ord flyde over dit hoved for øjeblikket. Og det er fint. De af jer, der vil komme i kurset mere komfortabel vil kende nogle af disse emner, men typisk for at 10% af den klasse, hvortil de har langt mere baggrund, idet AP datalogi, programmering siden de var 12, indse, at der vil være muligheder i sektioner og problem indstiller at gå hele mere dybde i forskellige emner, udfylde uanset huller du måtte have fra din high school eller forudgående baggrund. Med hensyn til de sprog, indse, at hvad sprog vi bruger i CS50 er stort set irrelevant ved udgangen af ​​dagen. Vi tilfældigvis til at bruge primært et sprog kaldet C. Hen mod slutningen af ​​den semester, introducerer vi web-centreret sprog, som PHP og JavaScript. Men vi og andre kunne lære et kursus som dette i de fleste enhver moderne højniveausprog - Python, og Ruby, og andre er meget populære i disse dage, fordi indse, ved slutningen af ​​dagen, er du ikke lære i denne C. Du er ikke lære PHP eller JavaScript. Du lære at løse problemer, hvad enten webbaseret, computer-baseret, eller data-orienterede sig selv, ved hjælp af disse blot som værktøjer. Nu med hensyn til logistik, vil du bruge noget til sidst kaldes CS50 Appliance. Gør ikke noget hvis du har en Mac, en pc, en Linux-computer, eller lignende, har du frit tilgængelig software starter næste uge med til at bruge det CS50 Appliance, et virtuelt miljø, som du vil bruge på din egen computer, så du og alle dine klassekammerater har en ensartet Linux desktop i denne sag. Det er problemet sæt, selv om, hvor du virkelig få dine hænder beskidt i løbet. Og i slutningen af ​​dagen, er det problemet sæt, jeg tror, ​​der virkelig definere en studerendes erfaring på dette kursus. Indse, at mange af de problematiske sæt vil blive frigivet i to udgaver - en standard udgave, som vi forventer og tilskynder 90% af klasse til at dykke ned. Men vi har også udgivet nogle problematiske sæt i såkaldte hacker-udgaver, og du ved, det er hacker udgave, fordi på hver side med et vandmærke, det siger hacker udgave på det. Og det er for denne demografiske af jer, der har AP datalogi med 10 års programmering under dit bælte, og søger at udfylde disse huller, og have mere formel, end autodidakt træning måske, indser at der er en meget stor demografisk i den klasse, der har præcis samme mål. Du vil have fem sene dage. Problem sæt skyldes generelt om torsdagen, men du kan forlænge fem af disse frister med disse ting kaldet sene dage, og vi vil også falde din laveste score ved slutningen af ​​semestret, pr specifikationerne i pensum. Men en anden afgørende kendetegn ved CS50 årenes løb blevet kontor time, en mulighed, du så visuelt i billeder lidt siden, hvor vi samles tidligere i huset spisesale, før det i kælderen af ​​science center, og i år i Annenberg Hall, fire nætter en uge fra 20:00 til 11:00, hvor du vil have det meget fælles erfaringer med at arbejde på, kæmper gennem visse problemer, men med en væsentlig støtte struktur på plads. Faktisk den måde, dette vil fungere, er du ankommer til Annenberg, hvis du har nogle spørgsmål i løbet af ugen. Du vil bringe din bærbare computer, vil du sidde ned, Grib nogle fødevarer, og du vil logge ind til CS50 Diskuter, et web-baseret hjælpeprogram, der lærergruppen har udviklet som vil tillade dig at skrive spørgsmål og se opfølgninger i et typisk diskussionsforum forstand ved hjælp af etiketter og lignende, og auto-complete at søge i oplysningerne. Men du vil også være i stand til i løbet af de timer af åbningstiden, har din spørgsmål eskaleret til virkelige mennesker. Faktisk målet sidste ende er således at én, vi begynder at opbygge i løbet af semestret et korpus af forhåbentlig rigtig nyttig information, fælles svar på almindelige spørgsmål, så du selv kan løse problemerne og komme galt så hurtigt som muligt, og samtidig have undervisningen personale - normalt 20% til 30% af undervisningen stipendiater og kursus assistenter på personalet på én gang. Vi vil have det, der kaldes CS50 Greeter in Annenberg, og når vi bestemme, at, ved du hvad? Dette spørgsmål, vi virkelig svare effektivt online. Vi er nødt til at se din computer. Vi vil tale med dig en på én. Du er virkelig kæmper, og du derfor ønsker at tale en på én sammen nogen, vil du blive sendt til den CS50 Greeter, en undervisning fyr bedrift, bogstaveligt talt, en iPod, der har elevernes navne på én side, undervisningspersonale navne på den anden. Vi vil indsamle dit navn, efterfulgt af navnet på en lærerstab, og din computerskærm vil begynde at blinke, siger du gå se Alice eller behage gå se Bob på personalet bordet. Og så på denne måde, vil vi være i stand til at sende tingene så effektivt som muligt, samt guide dig mod løsninger desto mere let. I afsnit vil disse være muligheder for mere intime hands- på muligheder med en af ​​de pædagogiske stipendiater og 12 til 16 eller deromkring af dine klassekammerater, hvor hver uge, vil vi have problemer med det problem sæt at stille en række principielle spørgsmål, og en række bid-størrelse programmering spørgsmål, som du kunne finde ud af på egen hånd, og du kunne arbejde på egen hånd, men i sammenhæng med afsnittet, vil vi arbejde igennem kollektivt nogle af disse problemer og gå, hvor den samtale tager os. Derudover vil i sektion har du mulighed for at gennemgå indlæg lektier, som du har lavet, dine klassekammerater, nogle gange anonymiseret, altid med en opt-in, hvis du ønsker at dele arbejde, at du har indsendt. Så det vil virkelig være en to-vejs samtale, og mulighed for at gennemgå dit eget arbejde i en langt mere dynamisk forstand, snarere end blot ser på en PDF-fil eller udskrift og tænke over det i et par sekunder og ikke nødvendigvis absorbere den feedback, den lærere har givet. Og du vil bruge et værktøj her kaldet CS50 Spaces. For dem bekendt, er dette sprog kendt som C øverst til venstre, og du får at vide dette over tid, men dette er et web-baseret hjælpeprogram, vi får bruge i afsnit, der vil give dig og dine 15 eller så klassekammerater at logge ind med din undervisning stipendiat ved den forreste del af lokalet. Du vil være i stand til at skrive kode i dette vindue. Du vil være i stand til at chatte elektronisk, hvis du ikke er faktisk på afsnittet dette særlige øjeblik, og din undervisning fyr, når det drejer sig tid til diskutere Alice eller Bob løsning i klassen, kan undervisningen fyr klikke på en knappen, og voila, projekt på skærmen, uanset at studerende har været arbejder på på det pågældende tidspunkt. Så for dem af jer har venner, der har taget CS50 i fortiden, indser at afsnittene er blevet betydeligt genstartet i år til at være så meget desto mere aktiv, desto mere dynamisk, og virkelig, en to-vejs samtale mellem undervisning medarbejdere og studerende. Og walkthroughs. Så for disse problemområder sæt, tilbyder vi også ikke blot specifikationen selv, som generelt er en temmelig detaljeret PDF, men også noget kendt som walkthroughs, et medlem af lærerstaben, hvorved vil føre en ugentlig session, der bogstaveligt fører dig gennem problemet sæt, som giver dig hints, og rådgivning, og udgangspunkter, og er beregnet til at spørge meget ofte stillede spørgsmål: hvor skal jeg begynde? Nå, du begynder enten ved dykning i spec på sin egen, eller ved at deltage i eller ser disse walkthroughs. Den første gennemgang, faktisk være vil denne fredag. De vil være om fredagen, ikke så meget fordi vi tror, ​​det vil være en populær tid, men fordi vi kan så filme dem meget tidligt i ugen og få dem online ved weekenden, så du har så mange dage som muligt til faktisk udøver i dette indhold så godt. Men mere om det i forelæsning på fredag. Nu med hensyn til bærestrukturen, er den væsentligste statistik måske de 108 pædagogiske stipendiater og kursus assistenter, at dette kursus har i øjeblikket. Hvis nogle af jer, der ikke har modstridende klasser gerne vil være med mig op her på scenen, er det disse fyre, der i sidste ende vil virkelig definere din oplever i løbet. Jeg havde en masse undervisning stipendiater underviser mig klasser i dag, og jeg husker meget få af dem, helt ærligt, men til dato, stadig husker jeg blandt de få min CS50 TF, som virkelig hjalp mig besvare spørgsmål, der virkelig hjalp mig, da jeg kæmpede, og virkelig var en partner i denne erfaring med at lære en meget ny verden. I en lille smule, vil alle disse fyre slutte sig til dig uden for kage, som er en tradition for CS50, i tværskib af Memorial Hall, men lad mig først introducere dig til Nate Hardison igen, Rob Bowden, og Tommy McWilliams, dette års kursus hoveder. Hvis du fyre ville slutte mig her i midten. De har alle udarbejdet nogle inspirerende bemærkninger. TOMMY McWilliams: Jeg har ikke forberede noget inspirerende. Men mit navn er Tommy. Jeg er en senior i Mather. Jeg studerer datalogi, virkelig glade for at være på hovederne holdet og går gennem CS50 rejse med dig. Hvad jeg virkelig elsker ved CS50 er, hvordan det virkelig lærer dig at tænke over problemer på en ny måde. Dette er virkelig en færdighed, der kommer til at være uvurderlig, uanset hvilket område du gå ind. Og ikke nok med det, men vi tilbyder mere fri slik end nogen anden kursus på campus. Så jeg er bare virkelig ser frem til at se hvad alle bygger dette semester. Og hvis nogen har nogen spørgsmål nu eller hele semesteret, absolut velkommen til at nå ud til mig, og jeg ville være glad for at hjælpe. ROB BOWDEN: Hej. Jeg er Rob Bowden. Jeg er en senior i Kirkland. Ja, det er rigtigt. Vi er alle virkelig glade for denne næste semester. Vi håber, du er alle glade. Jeg havde ikke ventet det. Yeah. Så vi lagt så meget arbejde i at gøre dette semester virkelig stor, og som længe du er villig til at sætte i indsatsen, der er så meget du kan få ud af dette kursus. Du kan få en masse sjov ud af dette kursus. Vi ville ikke have en stab på 108, hvis du ikke kunne få en masse sjov ud af det, så bare prøv at være involveret, og du vil ikke fortryde det. NATE Hardison: Hej, gutter. Jeg er Nate. Jeg er preceptor for kurset. Jeg er virkelig spændt på at være her så godt. Dette er mit første år her. Jeg håber I alle tage dette kursus, og nyde det så meget som jeg har nød det så langt. Og hvis du nogensinde ønsker at lære at komme til ni eller ti i binær, kommer tale med mig. SPEAKER 1: Så med risiko for at forlade disse fyre her på scenen lidt akavet, lad os hvirvle gennem blot et par af de ting, der venter, før vi udsætte for kage. Hvad er det, der ligger forude? Tja, hvis vi tager et hurtigt kig tilbage på sidste år, problem indstille nul, er din forgængere dykkede ind i et programmeringssprog kaldet Scratch, en grafisk programmering sprog, du vil bruge i de første dage af kurset, der starter denne fredag, at lære nogle begreber ukendte for nogle af jer, men indse vil der være en avanceret aspekt af dette for dem af jer med forudgående baggrund. I sidste års problem indstille to, studerende sprang ind i verden af kryptografi, kunsten enciphering eller forvanske oplysninger, gennemføre programmer, der krypterede data, og i hacker-udgave sidste år blev de studerende videre til revne eller afkode passwords i en typisk computers. xc password fil ved at komme op med algoritmer og heuristikker for brute force regne ud, hvad en persons password på en computer system var. Sidste år eller to, i problem opstillet fire gjorde studerende gennemføre spil Sudoku. Og hacker udgave samme år havde de studerende ikke bare implementere hvordan spille spillet, men faktisk en solver, hvorved computeren kan give dig, det menneskelige, med hints af hurtigere, end du løse dette særlige problem. I problem set fem, gjorde vi retsvidenskab, denne kunst for at inddrive information der var et uheld eller meget bevidst udgår fra computeren. Sidste år lærergruppen og jeg bartenderen omkring campus tager fotografier af mennesker, steder og ting og derefter uheld formateret mediekortet på vores kamera, der havde alle de billeder. Men ikke noget problem, har vi lavet en retsvidenskab billede af denne mediekort, rakte det ud til alle elever i klassen, og udfordrede dem til at skrive programmer, der genvundet alle de JPEG fra det pågældende kort. Og det er faktisk en af ​​vores foretrukne problem sæt, og jeg gravede op en gamle e-mail fra en af ​​dine forgængere, som var sjovt at læse engang siden. Dette er fra Matt. Kære David, går min søster uheld formateret hendes kameras SD kort og mistede et års forbrug af mindeværdige billeder. Hun er desværre ikke den bedste til at sikkerhedskopiere sine data. Men denne situation mindede mig om p-sæt fem, så jeg tænkte jeg ville prøve at køre hende SD-kort via genvinde program, som jeg skrev helt tilbage i oktober. Så efter fire timers finde ud af, hvordan man skaber en rå billede fra formateret SD-kort - Google vise sig at være temmelig nyttigt i denne forbindelse, indtil jeg ironisk sket til at komme på tværs af dine anvisninger på Internettet - efter at fifle rundt med nogle af de kommandolinjeargumenter, lykkedes det mig at skabe det retsmedicinske billede, og efter installation og konfiguration af CS50 Appliance, jeg formåede at køre retsmedicinske image gennem mit program og inddrive alle 1.027 af min søsters fotografier, skriver Matt. I sidste års problem set seks, gav vi de studerende en ordbog over 150.000 engelske ord og udfordrede dem til at skrive en stavekontrol, der besvaret forespørgsler af form, er dette ord stavet rigtigt eller forkert så hurtigt som muligt. Og på opt-in var studerende lov til at så udfordre klassekammerater ved at sende deres resultater, mængden af ​​RAM, at de bruger, antallet af CPU-cyklusser eller sekunder, som de brugte, så de studerende blev derefter klassificeret på kursets hjemmeside - igen, rent fakultativ aspekt af det, men sjovt i det meget ofte vil en elev komme til position nummer 10 eller deromkring på den store bord, på hjemmesiden, gå ud til middag og derefter vende tilbage, og indse hans værelseskammerat havde lige kantet foran ham eller hende på den store bord, derved hælde yderligere to eller tre timer bare til én op hans eller hendes værelseskammerat. Så vi ser frem til noget lignende i år så godt. I problem set 7 gjorde vi styre i retning af web programmering, faktisk løse problemer i den stadigt mere almindeligt miljø af en webbrowser. Vid da mindre og mindre vi henter software på Mac'er og pc'er, men stigende, gør vi det hele inden i banen. Og ja, sidste år, omkring 88% af de studerendes afsluttende projekter i løbet var webbaseret. Og dem, også er færdigheder, som du vil udlede denne klasse ved kursets afslutning, fordi hvad der venter ved kursets afslutning er det CS50 Fair, dette udstilling, der er baseret på ideen om en videnskab fair, men i denne version af en retfærdig gøre alle elever i klassen bringe deres laptops, og deres venner og familie, og andre til Northwest Science, en stor bygning på campus, oprette deres laptop, få noget mad, få nogle popcorn og drikke, og så udstille deres afsluttende projekter for alle de fremmødte, der sidste år nummereret omkring 2.500 deltagere fra hele campus, og udtryk som dette, og som denne var ikke ualmindelige på messen. Op til messen er CS50 hackathon, en mulighed for at hoppe på en Harvard shuttle, hoved ned på gaden til Microsoft på 8:00 PM, og ikke gå hjem indtil 7:00 AM. Vi serverer første middag kl 8:00 PM, anden middag på 1:00 AM, og for dem der stadig stående kl 5:00 behandler vi til pandekager på IHOP. Og hackathon er en mulighed, som afbilledet her, at dykke ind i din afgangsprojekter, uanset om de arbejder på egen hånd eller sammen med venner i en samarbejdsmiljø, hvor hele lærergruppen fungerer godt ud på natten med en rigelig forsyning af Hong Kong kinesisk mad. Kl 5:00 vil sådanne billeder som disse være ganske almindelige i år så godt. Så som vi afbryder i et øjeblik for kage, huske på, at 76% procent af mennesker i dette rum har nogen forudgående erfaring, og som pr pensum, der i sidste ende betyder noget i dette kursus er ikke så meget, hvor du ender i forhold til dine klassekammerater, men hvor man i uge 11, ender i forhold til selv i uge 0. Det er CS50.