[Powered by Google Translate] [Musik spiller] David J. Malan: Dette er CS50. Så jeg var hvor du er nu nogle år siden. Og da jeg var en freshman dengang, jeg var egentlig ikke på denne vej at gøre datalogi, at gøre teknik. 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. Det er ligesom slags godt afrundet, men gjorde ikke nødvendigvis vide ting, som jeg ikke havde været underviste i gymnasiet. Og så freshman år havde jeg denne bæven, hvorved selv selvom jeg kunne godt lide computere, spillede computerspil og de gerne, jeg helt sikkert aldrig tænkt på mig selv som en computer person, en datalog. Og helt ærligt, jeg troede mine venner i gymnasiet, som tog datalogi var lidt af et nørder. Og dog, da jeg kom her på campus, var der dette kursus, CS50. Og på det tidspunkt, havde det 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, går gennem så mange af forudsætningerne, som jeg kunne, cross-tælle ting for gen ed eller kerne og lignende. Og så sophomore år, af en eller anden grund, fik jeg op nerve til trin fod i Science Center B, hvor CS50 var. En meget berømt datalog ved navn Brian Kernighan underviste her dette å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 denne ens må kende måde mere om datalogi, om programmering, om computere. Alle skal man være programmering, i dette rum, da de var 12. Men, ja, det var ikke tilfældet. Og så den allersidste dag, den femte mandag i semesteret, har jeg tage dette spring og ændring fra bestået / ikke til en brev klasse og endte med at ændre min koncentration, at Samme dag til datalogi. Nu, det er ikke vores mål i denne klasse, at vende jer alle i datalogi koncentratorer, men virkelig til foreslår, at der er en mulighed på dette område og på andre områder, som du kan være helt ukendt da gymnasierne typisk følge 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 ikke faktisk tilhører, så gør de fleste af de folk til højre og til venstre. Faktisk sidste år, 76% af eleverne i denne klasse ikke havde nogen tidligere erfaring. Så i modsætning til hvad du måske tror, ​​de fleste af de mennesker sidde her i dag, ikke i virkeligheden have nogen forudgående erfaringer. 18% har taget en CS klasse, og 6% har taget to eller flere. I mellemtiden beder vi vores studerende hvert år for at beskrive selv i komfort niveau. Og 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 selvbeskrivende som mindre komfortable, studerende, der ærligt havde ingen anelse om, hvorfor de ville endda handlet kurset på denne første dag. Men det samme 55% forblev hos os indtil udtryk udgang, og det samme gjorde 35%, der var et sted i mellem de mere komfortable og dem mindre behagelig. Så hvad er datalogi? Godt i high school, og virkelig mere generelt ud der 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 en værktøj, dataloger bruger til at løse problemer, enten på området for datalogi eller stigende disse dage i de fysiske videnskaber, naturvidenskab, i medicin, i humaniora, analysere store datasæt. Anywhere nu er der computer og data, der er en mulighed for at anvende erfaringerne i en klasse som CS50. Så lad os løse et problem, at en datalog kunne gå om at løse og forsøge at sætte nogle jargon, sætte nogle begrebsramme, kan omkring hvad ellers være nogle temmelig abstrakt idé. Så dette er en telefon. Du behøver ikke se disse ting for ofte, selvom kollegiet stadig synes at have disse i husene og sovesale. Men tilbage i dag, når du ønskede at bruge en telefon som dette 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 højre side for at 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 starte her og begynde at spejlvende til side 4 til side 5 til side 6, og at slags lineært sammen en lige linje, gå gennem denne telefonbogen. Og selvom det bliver 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 naturligvis, behøver du ikke at være en datalog til ved, 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, til højre. Så du ville vende nogenlunde til midten, se her, og jeg synes at finde mig i M sektionen. OK, så M er tydeligvis ikke hvad jeg leder efter. Og Mikes til højre, så at sige, i dette afsnit. Og som nogle af jer har set før, kan vi bogstavelig talt nu Fortsæt at rive dette problem i halve. [Bifald] 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 nu har to problemer, der hver der er halvt så stor. Og vi kan bogstaveligt talt kaste at halvdelen af ​​problemet 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 en R-sektion. Så ikke helt der. Så igen, kan jeg rive dette problem i halve. [Bifald] 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 ca 60 til 30 til 15 og så videre. Og endelig vil jeg blive skåret ned til en af ​​de S-sider på som, hvis han er i telefonbogen, bør Mike Smith være. Se, det er en naturligvis temmelig rimelig algoritme, og det er en engangs-anvendelse algoritme i dette tilfælde. Men hvad kan vi sortere i tage væk fra det? Nå, den første tilgang, rette hvis naive selvom det blev, kan beskrives ved den lige linje. Så hvis på x-aksen her vi siger, det er størrelsen af problem, så x-aksen går til højre, Problemet bliver større. Hvad betyder det 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åledes aksen går op, er det formentlig tager længere tid. Så det første tilgang af lineært søge fra side 1 til dot dot dot side 1.000 kr. 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, går det til, i værste fald, tag mig endnu en side flip at finde Mike Smith. Hvis jeg tilføjer 100 sider, 100 mere flips eller tidsenheder. 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 2 ad gangen eller 4 ad gangen. Men selv det er ikke alle, der fundamentalt bedre. Selvom det er 2 ad gangen, yeah, den slags bevæger denne linje ned en smule, og det betyder, at det tager mindre tid det samme antal sider. Men det er ikke fundamentalt bedre. Men hvad gjorde vi bare gøre, og hvad gjorde alle du 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 at løse dette problem har tid 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 bare størrelsen af ​​problemet, er antallet af sider i denne telefonbogen. 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 telefonbogen, og vi fordoble det til 1000, i dette mere intelligent model for flipping til midten, hvordan mange flere sider tårer 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 bare rive det en ekstra gang. Så kort kan størrelsen af ​​problemet vokser meget hurtigere end prisen på faktisk at løse det. Nu dette er blot én sådan algoritme. Der er andre, vi kan løse på samme måde. Og så hvorfor gør vi ikke det? Hvis du vil humor mig, omend akavet her i Sanders, gå forude, alle, hvis du kunne og stå op på plads. Som du kan se på skærmen her, det er en algoritme, en proces, et edb-program, hvis du vil, der skal udføres af mennesker, der har kun 3 trin. Vi er allerede på trin 1. Du har stået op. Og nu spørger du dig selv det nummer 1. Det er dit nuværende nummer. Alle her er nummer 1. Trin 2, parre ud med nogen stående, tilføje dine numre sammen, og derefter vedtage beløb, som dit nye nummer. En af jer skal sidde ned, og derefter gentage. SPEAKER 1: 205. DAVID J. Malan: Hvad er det? SPEAKER 1: 205. DAVID J. Malan: OK. SPEAKER 2: Han har de andre. David J. Malan: 205? SPEAKER 3: Yeah. DAVID J. Malan: OK. 3. SPEAKER 4: 400. SPEAKER 5: 5. 700. DAVID J. Malan: Okay. 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 gøre aritmetik foran hundredvis af Harvard undergrads. OK. Bit af en bug her. Okay. Hvad er dit nummer? SPEAKER 6: Nine. DAVID J. Malan: Hvad er det? SPEAKER 6: Nine. DAVID J. Malan: Nine. Okay. Hvad er dit nummer? SPEAKER 7: 179. David J. Malan: 179? Okay. Godt. Så 188. Så du fyre kan sidde ned. Hvad er dit nummer? SPEAKER 8: 118. David J. Malan: 118. Nogle smarte undergrad begynder at gøre det math. Okay. 118, 188. Hvad har vi ellers? SPEAKER 9: 71. David J. Malan: 71. SPEAKER 10: 79. David J. Malan: 79. Okay. SPEAKER 11: 47. David J. Malan: 47. Hvilket laerere, der giver os, hvor mange? 705 er svaret. Og det er i virkeligheden helt korrekt. Nej, vi var faktisk en smule off der. Men hvordan skal dette har fungeret? Hvad skulle have skete der lige? Så på hver iteration af denne algoritme, vi startede med nogle antallet af mennesker stående, og det var samlede antal n at starte med. Så halvdelen af ​​jer satte sig ned, og vi gik til n over 2. Så halvdelen af ​​jer sad. Vi gik til n over 4, n over 8, n 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 til en samlet værdi, i dette tilfælde, på 705. Nu, hvad betyder, men for den løbende tid? Tja tænke på, hvis jeg som menneske havde gjort dette manuelt. Jeg ville have startet temmelig naivt, men korrekt med 1, 2, 3, 4, 5, 6, 7, 8 og så videre. Tager 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å 2, 4, 6, 8, 10, 12. Og det bliver meget hurtigere. Men nu fundamentalt, ved at udnytte den kollektive intelligens for alle i dette rum, kan vi opnå en bremse meget mere som denne, hvorved nu antallet af mennesker i dette rum kunne fordoble. Yderligere 700 mennesker går ind i dette rum til 1.400 mennesker, men det ville kun tage os endnu en iteration af dette 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 Løsning af problemer med en smule indsigt, denne bit af Klogskab, det er giver os i stigende grad at gøre meget, meget mere kraftfulde ting med computere i dag. Hvis du kan lide den slags ting, du måske har set på Facebook CS50 egen Puzzle Day kommer op denne lørdag. Hvis du ønsker at deltage i noget lignende dette, hvor du, i 2 eller 3 eller 4 hold af 4, gerne ville til løse nogle gåder som denne, du står en chance at vinde nogle fantastiske præmier, blandt hvilke er en Wii, og nogle gavekort eller en anden Facebook Swag. Denne lørdag middag til 3:00 PM, skal du gå til cs50.net/rsvp for denne. Og dette dias er online, hvis du ønsker at spille rundt. De problemer, dette år skal være nye. Du vil måske bemærke i klasseværelset, også så meget desto mere kameraer i år. Så ikke blot vil naturligvis blive filmet på den sædvanlige måde, CS50 kan også deltage i en dokumentarfilm om højere uddannelse, der kigger på den transformative oplevelse at en studerende kan have i disse dage i en bachelor studieforløb. Så mod disse, så vil vi ikke blot blive filmet for dette, vil vi blive filme så godt for stadig vores online publikum, samt lejlighedsvis dette publikum her. Så vi velkommen til klassen i år vores Harvard Extension Skoleelever, Graduate School of Design, Uddannelse, den business school, Kennedy School, loven skole, samt et antal studerende fra Belmont, Lexington, Newton, og Watertown gymnasier. Velkommen til jer alle. Hertil kommer i år, har du måske hørt, Harvard og MIT, og Berkeley nu, har indgået et samarbejde partnerskab, et initiativ kaldet EDX, hvilket er en initiativ til at åbne uddannelse til alle mere folk online og fundamentalt begynde at gøre forskning på et meget bredere skala, hvordan mennesker lærer. Og så CS50 vil være skolens første kursus deltager i dette initiativ så godt. Hvilket betyder, at du vil have adgang til alle de flere værktøjer, desto mere uddannelsestilbuddet, desto mere video indhold som et resultat, så godt, som i går morges, den 53.019 mennesker, der har registreret at tage CS50 langs med dig i år på internettet. Så uden - [Bifald] Så hvad det betyder, i særdeleshed, er, at lærerpersonalet og jeg har tilbragt en hel del tid dette sommer forberedelserne til efteråret, både på campus og fra, så at vi kan begynde at opbygge et korpus af interessante, af overbevisende, at engagere pædagogiske indhold, fokuserer især på mere intime transportmidler af temmelig komplekst materiale. Så udover kursets forelæsninger og sektioner og ting kaldet walkthroughs, som vi vil revidere i blot et bit, vil vi også have disse shorts i år, der giver mulighed dig til at engagere sig i forløbet fra en anden vinkel helt. Så lad os bruge dette som en mulighed for at tage en hurtig kig på en, der diskuterer dette begreb binære filer. Så i datalogi, er der ting, der kaldes algoritmer - hvoraf to vi tog bare et kig på - disse procedurer for løse problemer. Men i slutningen af ​​dagen, er du nødt til repræsentere information eller anden måde. Og du har brug for 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 forstand, at computere eller anden måde beskæftige sig 0'er og 1-taller, det binære system, så at sige. Men hvorfor er det sådan? Tja, det viser sig når computere først kom omkring, hvis du behov for at repræsentere information, kan du gøre det med elektricitet. Og selvom dette er lidt af en forsimpling, en meget nem måde at registrering af oplysninger er enten drejning, at elektricitet på - en 1 i binær, så at sige - eller dreje at elektricitet off. Så hvis 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 0. Hvis vi tænde lyset tilbage op, nu Sanders Theatre er repræsenterer den binære værdi af 1. Desværre, med blot én bit, med blot ét sæt lys, kan vi kun repræsentere to numre i verden, 0 og 1. Og det ville være rart, hvis computere kunne tælle en smule højere end det. Men faktisk de kan. Så lad mig trække op på skærmen her vores ven Nate Hardison der vil give os et hurtigt kig i løbet af blot et par minutter ved denne opfattelse af binære. [VIDEO PLAYBACK] NATE Hardison: Tilbage, når du lærte at læse og skrive numre, du har lært om tallene 0 til 9. At skrive hele tal større end 9, lærte du, at alle du havde at gøre, var bruge en kombination af disse cifre, som i 52 og 437. Så denne måde at skrive numre har en navn, decimal notation. Hvorfor decimal? Nå, det latinske rod af en decimal, decem betyder 10. Og når du har 10 cifre i dit notation system, 10 bliver en temmelig speciel nummer. Lad os se på antallet 437 skrevet i decimal notation til 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 fået 4 gange 100 plus 3 gange 10 plus 7 gange 1. Husk at lære om dem sted, tiere sted, det hundredvis sted, og så videre? Dette er præcis, hvor det kommer fra. Og endelig kan vi se, at vi har fået en masse kræfter på 10 indlejret i her. Vi har 4 gange 10 til 2 plus 3 gange 10 til 1 plus 7 gange 10 til 0. Så nu kan du se hvorfor 10 er et særligt Antallet af decimal notation. Faktisk har vi et navn til det. Det hedder basen, 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 2 til 9 vi kan stadig repræsentere alle de numre, vi kunne med decimal. Så nu har vi to cifre, 0 og 1, 2 er vores særlige nummer, grundlaget for vores notation system. Navnet på denne notation system kaldes binær siden præfikset "bi" betyder 2. Så i stedet nu for at have en dem sted og titusinder sted og så videre, har vi nu et dem plads, et toere sted, en fours sted, og så videre, går op af potenser af 2. Så lad os se dette ved at gøre nogle tælling. Således, 0 stadig 0, og 1 er stadig 1. Men nu, hvor vi har fået en toere sted i stedet for de titusinder sted, 10 repræsenterer antallet 2. For at få 3, tilføjer vi en til det og få 11. 4, da der nu en fire sted, er ved 100. Fem er 101. 6 er 110. 7 er 111. 8, igen, har sin egen plads. Så det er 1000. Og jeg tror du får det punkt. [END VIDEO PLAYBACK] DAVID J. Malan: Så det vil sige, hvad computere gør og hvad binære er faktisk ikke så forskellige fra hvad vi har taget for givet i nogle år, right? Tror du, folkeskolen, du lærte at tælle i netop den måde, at Nate foreslået. Men du sandsynligvis har ikke rigtig tænkt over det siden, , at der er dette dem sted, tiere sted, og hundredvis 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 opfattelse af et 0 og 1, du tydeligvis ikke bare dreje og slukker lyset nødvendigvis. Du er nødt til at gøre det på en meget mere finkornet skala. Og ved mere finkornet, kan du huske dette tåbelige lille legetøj fra barndommen, Woolly Willy og disse lidt magnetiske partikler. Så magnetiske partikler er noget, som du kan justere i et par af forskellige retninger, måske nord-syd eller syd-nord. Og så en masse fysiske inkarnationer af teknologi disse dage, der bruger binære, der bruger 0'er og 1'ere, simpelthen har magnetisme på indersiden, der bringer tingene, op-ned eller down-up, med hvilket repræsenterer et 0 eller et 1, hhv. Så ja, lad os komme væk fra det abstrakte her og se på indersiden af ​​hvad der er en mere traditionel computerens 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 stadig have den samme teknologi, men er gradvis erstattet af mere avancerede ting, som har faktisk ingen bevægelige dele. Indersiden så med en harddisk. [VIDEO PLAYBACK] SPEAKER 12: 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, som fortæller harddisken, hvordan man opbevarer disse data. De hårde drivkredse oversætte disse signaler til spændingsudsving. Disse til gengæld styre harddiskens bevægelige dele, nogle af de få bevægelige dele tilbage i den moderne computer. Nogle af de signaler styrer en motor, som roterer metal-coatede plader. Dine data er faktisk gemt på disse plader. Andre signaler flytter læse-skrive hoved til at læse eller skrive data på pladerne. Denne maskine er så præcis, at et menneskehår kunne ikke endda passere mellem hoved og spinning fade. Men det hele fungerer på forrygende hastigheder. [END VIDEO PLAYBACK] DAVID J. Malan: Så hvis vi nu zoome ind på, hvad der er faktisk sker på toppen af ​​disse plader i forhold til magnetisme, har vi denne anden af ​​to udseende. [VIDEO PLAYBACK] SPEAKER 13: Lad os se på, hvad vi lige har set i slow-motion. Når en kort impuls af elektricitet sendes til læse-skrive hoved, vender den på en lille elektromagnet for en brøkdel af et sekund. Magneten skaber et felt, som ændrer polaritet en lille, lille del af de metalpartikler, der frakke hver plade overflade. Et mønster serie af disse små debiteret op områder på disken repræsenterer en enkelt bit af data i det binære tal der bruges af computere. Nu, hvis strømmen er sendt en vej gennem læse-skrive hoved, området er polariseret i en retning. Hvis strømmen er justeret 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 strøm i den læse-skrive hovedet bevæger sig. Sammensæt millioner af disse magnetized segmenter og du har fik en fil. Nu kan stykker af en enkelt fil blive spredt over hele en drevets fade, 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? [END VIDEO PLAYBACK] DAVID J. Malan: Sandelig. Så har vi denne evne til at repræsentere 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 så meget af interesse endnu bortset fra måske nogle regning 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 for 0'er og 1s, der repræsenterer højere niveau konstruktioner som a og b og c og hele sætninger og afsnit og lignende. Og så ASCII, som er en forkortelse, der refererer til dette kodningssystem hvor en række svarer til en bestemt bogstav. For eksempel er det nummer, vi kender som decimalværdi 65 kendt som det store bogstav A til computere. Decimalværdien af ​​97 i computere er kendt som en små bogstaver a. Og hvad betyder det egentlig? Tja, selvom Nate et øjeblik siden kun talt op 0 til 8, hvis vi skulle fortsætte med at tælle op til 65 eller yderligere til 97, mønstret af 0'er og 1-taller, at han ville have tegnes på skærmen ville være præcis, hvad en computer bruger at repræsentere bogstavet A i alle hætter eller bogstavet a med små bogstaver. Og ja, der er en hel ordning til dette. Dette er en, ved første øjekast, overvældende diagram over kodninger, men hvis du nøjes med at fokusere på den højre halvdel her, bemærke i denne midterste kolonne har vi denne opfattelse af tal efterfulgt af bogstaver. Og øverst har vi 32. Og figuren, char, hvortil 32, det hele tal henviser er tilsyneladende Space Bar karakter. Når du rammer Space Bar karakter på din bærbare computer, godt, hvad du virkelig sender er et tal, et mønster af 0'er og 1-taller, et flow af elektricitet, hvis du vil, repræsenterer de 0'er og 1-taller, 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 er faktisk små bogstaver en. Og så nu, at vi har dette kodningsskema, kan vi begynde at stave ting ud. Faktisk computere typisk udtrykker sig i standard enheder, der ikke bruger en enkelt bit, som igen er ikke alle at nyttige for bare repræsentere 0 eller 1, lys tændt eller slukket, men snarere ved hjælp af sekvenser af bits. Og den mest almindelige måleenhed, som du sikkert ved og eller i det mindste udledes, er en byte. En byte er kun otte bits, otte 0'er eller 1s i træk. Så vi kan begynde at stave ting ud. Og så, hvis vi kunne, hvorfor så ikke prøve dette en lille smule kollektivt her. Er der otte mennesker i dette rum, der ville være villige til at komme op på scenen? Du er nødt til at være komfortable optræder på kamera, men du ikke rigtig brug for at vide, ellers, hvad er foregår endnu. 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ære 128 plads, du den 64 plads, du 32 plads. Men vi skal meget hurtigt nødt til at vende denne. Så lad mig møde jer alle derovre. Og du skal være i 128 plads hele vejen herover. Meget ligesom hundreder sted og tusinder sted ville være længere til venstre, ønsker vi den største pladsholderen at være her til venstre så godt. Vi har 64s s 32, 16 s, 8 s, 4 s, 2 s, og 1-taller. Excellent. Så nu har vi - OK, kan du hjælpe mig. Så nu har vi - hvad er dit navn? JOANNE: Joanne. DAVID J. Malan: Joanne. Så Joanne og jeg nu kommer til at rådgive disse fyre om, hvordan vi kan gå om stavning noget ud. Så på ryggen af ​​deres ark papir, har de en lidt snyde ark, der kommer til at fortælle dem, om de repræsenterer et 0 eller et 1. Og hvorfor ikke for nemheds skyld, vil vi betegne 0 ved blot stod der kejtet. Meget godt. Eller en 1 ved at hæve din hånd, svarende til en 1. Og lad os se om vi ikke kan stave en fire tegn sætning her. Så gå videre nu, frivillige, og udføre runde af hæve din hånd, hvis du er en 1 eller holde det ned, hvis du er en 0. Så nu hvor vi har disse tre hænder op, hvilket nummer, alle andre, er de faktisk repræsenterer? OK. 67. Hvorfor? Nå, hurtig tilregnelighed kontrollere. 64 plads, fordi det er et 1, det er ligesom 1 gange 64 plus 1 gange 2, 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? OK. Så en ca. Ok. Så lad os nu gå videre til runde to. Alle starter med hænderne ned. Og i runde to - faktisk er der ikke meget af en rolle her, jeg formoder, men vi vil foregive. Så runde to, hæve eller sænke dine hænder. Ok. Audience, hvad skal vi nu udtrykker, er 83. Så du kan gøre matematik. Men for enhver, hvis hånd er op, tilføje dig i antallet at de repræsenterer. Så nu har vi 83. Lad os udvide snyde ark en lille smule, og vi har nu -? [Uhørlig] DAVID J. Malan: OK. Dette kan være indlysende hvor vi skal hen her, men ikke desto mindre runde tre. OK. Runde tre er god til at gå derned. Så runde tre, er, hvad nummer disse fyre nu repræsenterer? OK. Jeg hørte 53, som nu repræsenterer? Interessant. Nu hvorfor denne form for counter intuitive resultat, right? Hvis vi ønsker at repræsentere 5 - vi alle kender sikkert hvor dette foregår - hvorfor jeg ikke bare hæve 4 plads og 1 plads? Nå, indse, at der er en forskel, fundamentalt, mellem, hvordan en computer fortolker disse bits. Hvis du forsøger at repræsentere tallet 5, så absolut, vi bare hæve hånd nummer 4 og hæve hånd nummer 1. Men vi er ikke repræsenterer numre her. Konteksten her på scenen, er, at vi repræsenterer tegn eller specialtegn. Og i denne sammenhæng, at computeren har 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 bogstav. Så det faktum, at det nu er, der repræsenterer antallet 5 med værdien af ​​53 er fordi i ASCII de ting, vi æstetisk ser som nummer 5 selv har brug for en mønster af bits. Fordi hvorfor? Nå, verden netop besluttet at bruge de lavere tal, 0, 1, 2, 3, for hvad ser at 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 gøre interessante ting, men mennesker aldrig faktisk skriver dem. Så 53 faktisk udgør 5. Nu, lige som en endelig tilregnelighed check, hvad skal nummer, de repræsentere på bare et øjeblik? PUBLIKUM: 48. DAVID J. Malan: OK. So 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. Tak. Du kan holde denne ene. Hvis du - Meget godt klaret. Helst retning er fint. Så har vi nu en måde ikke blot at tænke på, hvordan man repræsentere data, og faktisk repræsenterer det fysisk, men også gør højere niveau ting på toppen af ​​det. Faktisk er dette vil være et tema i hele computer videnskab for at bygge mere og mere interessant kompleks ting på toppen af ​​forholdsvis enkle ideer, i dette tilfælde bare 0'er og 1'ere. Med hensyn til hvorfor dette er nyttigt, godt, selvom i en kursus som dette vil vi fokusere på fundamentals og på 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 i bagsiden af ​​din uofficielle guide til CS på Harvard, en af i dag er to udskrifter. Dette tyder på mange forskellige retninger, hvor kan du gå efter et kursus som dette. Læring om kunstig intelligens, om grafik, om machine learning. omkring selve sproget 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 denne falde, er der introduktionskurser i foråret. Computer Science 1, for eksempel, er endnu et on-rampe til denne nye verden. Nu som en sidebemærkning af hensyn til at løse problemer relateret til kurser, indse, at CS50 fastsat nogen tid siden at forsøge at løse et af disse problemer, kendt problem 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 personale har oprettet. Men i Harvard Kurser, der er et web-baseret værktøj - noget, som du vil være i stand til at designe og indsætte dig selv, såvel som endnu andre ting så godt, ved I slutningen af ​​semesteret. Indse, at dette sker på en åben datasæt, i dette tilfælde et kursus 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 statistikker baseret på de få tusind mennesker, der har brugt dette over de sidste par dage. Hvis du har været nysgerrig efter at vide, hvor mange kurser dine venner faktisk en tendens til at shoppe, ja, i dag er det data tyder på, at 7,6 er det gennemsnitlige antal kurser på andens indkøbsliste. Og nu vil jeg give dig, også, at statistik over de mest række kurser på en eller andens indkøbsliste. Og vi ved alle kender sikkert nogen, som denne. 201 er dette års rekord. Nu nogle af vores tidligere studerende og ansatte faktisk sammensætte et klip for at 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. Hahvahd her, en video produceret af nogle af dine forgængere. Hvis vi kunne holde lysene op for dette. [VIDEO PLAYBACK] [END VIDEO PLAYBACK] SPEAKER 14: (sang) Vi tager vores tid med nogle ridser, for loops, events, kan vi matche, kompilering ved hjælp af vores bash, vil denne periode ikke være en boring. Hacking sjov, nogle gratis måltider, foredrag er simpelthen uvirkeligt, vores fair er sådan en big deal, der er så meget at tilbede. Go, David Malan. Walkthroughs, jeg ikke øse. Kontortid, er der ingen mangel. Hvor tror du, du kodning, baby? Hey, jeg har lige mødt dig, og det er vanvittigt, men her er vores grund. Tag CS50. Det er svært at kode højre uden dig, skat. Men her er vores grund. Tag CS50. Hey, jeg har lige mødt dig, og det er vanvittigt, men her er vores grund. Tag CS50. Og hver stjerne firma ønsker at ansætte mig, en anden grund. Tag CS50. Før du kom ind i mit liv, jeg kodet så slemt, jeg kodet så dårligt, jeg kodet så, så slemt. Før du kom ind i mit liv, jeg kodet så slemt og jeg kan ikke gå tilbage. Tag CS50. DAVID J. Malan: 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, du faktisk forventes at deltage eller se kursets forelæsninger, indsende et problem sæt, tag to quizzer, indsende et afsluttende projekt. Med hensyn til karakterer, indse, at min kommentar ved åbningen om bestået / ikke bestået, noget, som vi i høj grad tage til hjerte i CS50. Der er ikke nær nok af en kultur på Harvard for at forsøge noget og risikere fiasko. Faktisk havde vi antal studerende, og jeg selv, i Specielt blev der bekymrede såre din GPA eller at få en B i noget lignende CS50. Og mulighed for at tage et kursus som dette, og andre gateway kurser på indledende niveau, bestået / ikke bestået er en meget uudnyttede muligheder på dette kollegium, 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 selv om jeg gjorde kontakten ved slutningen af ​​dagen, var det de fem første uger, op til den femte mandag i semester, der er cutoff, der tillod mig at der faktisk sætte foden i disse nye farvande og faktisk prøve noget meget uvant og meget ubehageligt for mig på det tidspunkt. Så vidt angår, nu om, hvilken rolle de forskellige vinkler, via hvilke du kan nærme sig dette kursus tjene, så foredrag, det er op til dig, hvis du engagere sig med os i person på dette sted. Faktisk ved vi statistisk, at omkring 40% af jer vil slags kommer og går i løbet af semesteret. Og 10% af dig, 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 midler, hvoraf nogle som vi vil rasle igennem på bare et øjeblik, herunder foredrag og sektioner og ting kaldet walkthroughs og åbningstid og lignende. Og det er flere ressourcer end den typiske studerende skal nødt til eller kan fysisk drage fordel af. Men det er på grund af de forskellige læringsstile, at enhver studerende manifesterer. Og så i forelæsninger, den primære rolle, som jeg ser det, er ikke at verbalt skubbe ud temmelig komplekst materiale og til nødvendigvis levere alle de snørklede af fundamentals, som vi vil udforske dette semester, men snarere at gøre ting som vi har gjort hidtil allerede, disse eksempler, der involverer mennesker på scenen, forsøger at male et mentalt billede, og også oprette, tør jeg sige, nogle af disse mindeværdige øjeblikke. Så det selv som du kæmper med bestemte emner, du har disse erindringer kan lide, oh, selvom det var temmelig abstrakt, matematik, fik jeg tabt med at bære 1, ligesom det virkelig, ved slutningen af ​​dagen, er ikke så ulig noget, jeg allerede kender. Og så den rolle, foredrag vil tjene, enten personligt her i Sanders eller online på video, er virkelig at indstille iscenesætte mentalt for dig hver uge for de forskellige begreber og problemer, som vi vil være dykning i. Med hensyn til de højt niveau begreber, de fleste af disse ord kan flyde over dit hoved for øjeblikket, og det er fint. For dem af jer, der kommer ind i kurset mere komfortabel vil vide af nogle af disse emner. Men typisk for at 10% af den klasse, hvortil de er meget mere baggrund, idet AP datalogi, programmering, siden de var 12, indse, at der vil være muligheder i sektioner og i problem indstiller til at gå hele mere i dybden i forskellige emner, påfyldning uanset huller, du måtte have fra din high school eller forudgående baggrund. Med hensyn til de sprog, indse, at hvad sprog vi brug i CS50 er stort set irrelevant i slutningen af ​​dagen. Vi tilfældigvis til at bruge, først og fremmest, et sprog kaldet C. Mod slutningen af ​​semestret, vi indfører 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 realisere ved slutningen af ​​dagen, er du ikke lærer i dette kursus C. Du er ikke lærer PHP eller JavaScript. Du lære at løse problemer, hvad enten web-baseret, computer-baseret, eller data-orienterede selv, ved hjælp af disse blot som værktøjer. Nu, med hensyn til logistik, skal du bruge noget i sidste ende, kaldet CS50 Appliance. Gør ikke noget hvis du har en Mac, en pc, en Linux-computer, eller lignende. Du har frit tilgængelig software starter i næste uge med til at bruge den 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 dette tilfælde. Det er problemet sæt, selv om, hvor du virkelig får dine hænder beskidte i løbet. Og i slutningen af ​​dagen, er det problemet sæt, jeg tror, ​​der virkelig definerer en elevs opleve i dette kursus. Indse, at mange af de problematiske sæt vil blive frigivet i to udgaver, at en standard tilsætning vi forventer og tilskynde 90% af klassen til at dykke ned. Men vi har også frigive nogle problematiske apparater i såkaldt hacker tilføjelser. Og du ved, det er hacker tilsætning fordi på hver side med et vandmærke det siger hacker tilsætning 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, snarere end autodidakt, uddannelse, måske. Indse, at der er en meget betydelig demografisk i klasse, der har præcis det samme mål. Du vil have fem sene dage. Problem sæt skyldes generelt om torsdagen, men du kan udvide fem af disse frister ved hjælp af disse ting kaldet sene dage. Og vi vil også falde din laveste score ved slutningen af ​​den semester pr oplysningerne i pensum. Men en anden kendetegn ved CS50 forhold årene er blevet kontortid. Det er en mulighed, at du så visuelt på fotos lidt siden, hvor vi samles - tidligere i hus spisning haller, før det i kælderen af ​​Science Center og i år i Annenberg Hall - fire aftener om uge fra 20:00 til 11:00, hvor du vil have det meget meget delte erfaring med at arbejde, kæmper igennem, visse problemer, men med en væsentlig støtte struktur på plads. Faktisk den måde, dette vil fungere, er du ankomme til Annenberg hvis du har nogle spørgsmål i løbet af ugen, vil du bringe din bærbare computer, vil du sidde ned, Grib nogle fødevarer, og du vil logge i CS50 Diskuter, en web-baseret hjælpeprogram, at undervisningen Personalet har udviklet, som vil give dig mulighed for at stille spørgsmål og se opfølgninger i en typisk diskussionsforum forstand ved hjælp af etiketter og lignende, og auto-fuldførelse til søgning i oplysningerne. Men du vil også være i stand til i løbet af de timer af kontor timer har dine spørgsmål eskaleret til virkelige mennesker. Faktisk målet sidste ende er således at én, vi begynder at bygge op i løbet af semestret et korpus af forhåbentlig virkelig nyttige oplysninger, fælles svar på fælles spørgsmål, så du selv kan løse problemerne og komme galt så hurtigt som muligt, men samtidig have den lærere, normalt 20 til 30 af de pædagogiske stipendiater og kursus assistenter, på personale på én gang. Vi vil have det, der kaldes CS50 Greeter i Annenberg. Og når vi afgør det, ved du hvad, dette spørgsmål, vi kan ikke rigtig svare effektivt online. Vi er nødt til at se din computer. Vi vil gerne tale med dig one-on-one. På den ene. Du er virkelig kæmper, og du derfor ønsker at tale one-on-one sammen med nogen, vil du blive sendt til den CS50 Greeter, en undervisning fyr bedrift, bogstaveligt talt, en iPad, der har elevernes navne på den ene side, undervisning personalets navnene på den anden. Vi vil klikke på dit navn efterfulgt af navnet på en undervisere, og computerskærmen starter blinker siger please gå se Alice eller gå venligst se Bob på personale bordet. Og så på den måde vil vi være i stand til at sende ting som effektivt som muligt, samt guide dig mod opløsninger desto lettere. I afsnit vil disse være muligheder for mere intime hands-on muligheder med en af ​​de undervisning stipendiater og 12 til 16 eller deromkring af dine klassekammerater i som hver uge vil vi få problemer i det problem sæt at stille en række principielle spørgsmål og en Antallet af bit-størrelse programmering spørgsmål, som du kunne finde ud af på egen hånd, og du kan arbejde på din egne, men i sammenhæng med afsnittet, hvor vi arbejder igennem kollektivt nogle af disse problemer og gå, hvor den anderledes samtale tager os. Derudover vil i sektion har du mulighed for at gennemgå indlæg af lektier, som du har lavet, din klassekammerater, nogle gange anonymiseres, altid via opt-in hvis du gerne vil dele det arbejde, du har indsendt. Så det vil virkelig være en to-vejs samtale, lejlighed til at gennemgå dit eget arbejde i en langt mere dynamisk forstand, snarere end blot at kigge på en PDF-fil eller en udskrift og tænke over det i et par sekunder og ikke nødvendigvis absorbere den feedback, at undervisningen Personalet har givet. Og du vil bruge et værktøj her kaldet CS50 Spaces. For dem bekendt, er dette sprog er kendt som C ved top til venstre, og du vil få at vide dette over tid. Men dette er et web-baseret værktøj, som vi vil bruge i sektion, der vil give dig og din 15 eller så klassekammerater at logge ind med din undervisning stipendiat ved forreste del af rummet. 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 ved snittet på det pågældende tidspunkt. Og din undervisning fyr, når det drejer sig tid til at diskutere Alices eller Bobs løsning i klassen, undervisning fyr kan klik på en knap og voila, projekt på skærmen, uanset at studerende har arbejdet på på det pågældende tidspunkt. Så for dem af jer, der har venner, der har taget CS50 i fortiden, indser, at sektionerne har været væsentligt genstartet i år til at være endnu mere aktive, desto mere dynamisk, og virkelig en tovejs samtale mellem undervisning medarbejdere og studerende. Og walkthroughs. Så for disse problemområder sæt, tilbyder vi også ikke blot specifikation selv, som generelt er en temmelig detaljeret PDF, men også ting kaldet walkthroughs, hvorved en medlem af lærerstaben vil føre en ugentlig session der bogstaveligt fører dig gennem problemet sæt, som giver dig tips og råd og udgangspunkter og menes at spørge meget ofte spurgt spørgsmål, hvor skal jeg begynde? Nå, du begynder enten ved at dykke ned i spec på sin egen eller ved at deltage eller se 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 så kan filme dem meget tidligt i ugen for at få dem online af weekenden, så du har så mange dage som muligt rent faktisk at engagere sig i det indhold så godt. Men mere om det i forelæsning på fredag. Nu med hensyn til støttestrukturen, det mest signifikant statistik er måske den 108 undervisning stipendiater og kursus assistenter, at dette kursus har. Hvis nogle af jer, der ikke har modstridende klasser ville gerne at slutte sig til mig heroppe på scenen, er det disse fyre, der vil i sidste ende virkelig definere din oplevelse i kurset. Jeg havde en masse undervisning stipendiater lære mig klasser i dagen, og jeg husker meget få af dem ærligt. Men til dato, jeg husker stadig blandt de få, min CS50 TF som virkelig hjalp mig svare på spørgsmål, som virkelig har hjulpet mig, når 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, der er en tradition for CS50, i tværskib af Memorial Hall. Men tillad mig først at introducere dig til Nate Hardison, igen, Rob Bowden, og Tommy MacWilliam, dette års kursus hoveder. Hvis du fyre ville slutte mig her i midten. De har alle udarbejdet nogle inspirerende bemærkninger. TOMMY MACWILLIAM: Jeg har ikke forberede noget inspirerende. Men mit navn er Tommy. Jeg er en senior i Mather. Jeg studerer datalogi. Jeg er virkelig glade for at være på hækken team og går gennem CS50 rejse med dig. Hvad jeg virkelig elsker ved CS50 er, hvordan det virkelig lærer dig at tænke om problemer på en ny måde. Dette er virkelig en færdighed, der er gonna være uvurderlige ligegyldigt hvad felt, du går ind. Og ikke nok med det, men vi tilbyder mere fri slik end nogen anden kursus på campus. Ja, og så jeg ser virkelig frem til at se hvad alle bygger dette semester. Og hvis nogen har nogen spørgsmål nu eller i hele semestret, 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 så længe du er villig til at sætte i den indsats, der er så meget du kan få ud af dette kursus. Ah, vi - yeah. 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 af sjov ud af det. Så bare forsøge 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 nydt det indtil videre. Og hvis du nogensinde ønsker at lære at tælle til 9 eller 10 i binære, komme og tale med mig. DAVID J. Malan: Så med risiko for at forlade disse fyre her på iscenesætte en smule akavet, lad os hvirvle gennem blot nogle få af de ting, der venter, før vi afbryder for kage. Hvad er det, der ligger forude? Tja, hvis vi tager et hurtigt kig tilbage på sidste år, problem sat til 0, Deres forgængere dove i et programmeringssprog sprog kaldes Scratch, en grafisk programmeringssprog du vil bruge i de første dage af kurset begynder denne Fredag ​​til at lære nogle begreber ukendte for nogle af jer. Men indse, der vil være en avanceret aspekt af dette for dem af jer med forudgående baggrund. I sidste års problem sæt 2, studerende dykkede ned i verden for kryptografi, kunsten enciphering eller forvanske information, gennemføre programmer, der krypterede data. Og i hacker tilsætning sidste år blev eleverne fortsætte til at revne eller afkode passwords i en typisk computerens xe password fil ved at komme op med algoritmer og heuristikker for brute force regne ud, hvad nogen er adgangskode på et edb-system var. Sidste år, også i problemer sæt 3, gjorde de studerende implicerede i - i problem sat 4 - gjorde studerende gennemføre spil Sudoku. Og i hacker tilføjelse, at året har de studerende ikke bare gennemføre, hvordan man spiller spillet, men faktisk en solver hvorved computeren kan give dig, den menneskelige, med hints med mere hurtigere end du har løse dette særlige problem. I problem set 5, gjorde vi retsvidenskab, denne kunst af inddrive oplysninger, der var et uheld eller meget bevidst slettet fra en computer. Sidste år lærergruppen og jeg bartenderen omkring campus tage billeder af mennesker, steder og ting, og derefter uheld formateret mediekortet på vores kamera, havde alle de billeder. Men ikke noget problem. Vi har lavet en retsmedicinsk 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 kort. Og det er faktisk en af ​​vores foretrukne problem sæt. Og jeg gravede op i en e-mail fra en af ​​dine forgængere, som var sjovt at læse engang siden. Han skrev - dette er fra Matt - kære David, går min søster uheld formateret hendes kameras SD-kort og tabte 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 Pset 5, så jeg tænkte jeg ville forsøge at køre hende SD-kort gennem genindvindingsværdien program at jeg skrev helt tilbage i oktober. Så efter fire timers finde ud af, hvordan du opretter en rå billede fra formateret SD-kort - Google viste sig at være temmelig uhensigtsmæssigt i denne henseende indtil ironisk jeg sket til at komme på tværs af dine anvisninger på Internettet - efter at fifle rundt med nogle af de kommando argumenter, Jeg formået at skabe den retsmedicinske billede. Og efter installation og konfiguration af CS50 Appliance, jeg formåede at køre retsmedicinsk billede gennem min programmere og gendanne hele 1.027 af min søsters fotografier. Højre, Matt. Så i sidste year's - [Bifald] I sidste års problem sæt 6, gav vi de studerende et ordbog på 150.000 engelske ord og udfordrede dem til at skrive en stavekontrol, der besvarede spørgsmål af formen er dette ord stavet rigtigt eller fejlagtigt så hurtigt som muligt. Og i en opt-in var studerende lov til at så udfordre klassekammerater ved at sende deres resultater, mængde RAM, at de brugte, antallet af CPU cycles eller sekunder, som de brugte, så de studerende blev derefter rangeret på kursets hjemmeside. Igen rent fakultativ aspekt af det, men sjovt i det meget ofte vil en elev komme til at positionere nummer 10 eller deromkring på den store bestyrelse på hjemmesiden, gå ud til middag, og derefter komme tilbage og indse hans værelseskammerat havde lige kanter i foran ham eller hende på den store bord, hvilket hælde en anden to eller tre timer bare til en op hans eller hendes værelseskammerat. Så vi ser frem til noget lignende i år så godt. I problem indstille 7 har vi styre i banens programmering, faktisk løse problemer i den stadigt mere almindeligt miljø i en webbrowser. Kend mindre og mindre vi henter software på Mac-computere og Pc'er, men i stigende grad gør vi det hele inden i banen. Og faktisk sidste år, omkring 88% af de studerendes afsluttende projekter i kurset var webbaseret. Og dem, også er færdigheder, som du vil udlede af dette klasse ved kursets afslutning. Fordi hvad der venter ved kursets afslutning er det CS50 Fair, denne 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 bærbare computere og deres venner og familie og andre til Northwest Science, en stor bygning på campus, der er nedsat deres laptop, få noget mad, få nogle popcorn og drikke, og derefter udstiller deres afgangsprojekter for alle dem i fremmøde, der sidste år talte omkring 2.500 deltagere fra hele campus. Og udtryk som dette, og som denne ikke var ualmindeligt på messen. Op til messen er CS50 hackathon, en mulighed at hoppe på en Harvard shuttle, hoved ned på gaden til Microsoft kl 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år på 5:00 AM, behandler vi til pandekager på IHOP. Og hackathon er en mulighed, som afbilledet her, at dykke ned i dine endelige projekter, uanset om de arbejder på din egen eller med venner i et samarbejdsmiljø, hvor hele lærergruppen fungerer godt ind i nat med en rigelig forsyning af Hong Kong kinesisk mad. Kl 5:00, vil sådanne billeder som disse være ganske almindelig dette år også. Så som vi afbryder i et øjeblik for kage, skal du huske at 76% af de mennesker i dette rum har nogen forudgående erfaring. Og som pr pensum, der i sidste ende betyder noget i denne Kurset er ikke så meget, hvor du ender i forhold til din klassekammerater, men hvor man i uge 11 ender i forhold til selv i uge 0. Det er CS50.