[Powered by Google Translate] [Musikk spilles] DAVID J. MALAN: Dette er CS50. Så jeg var der du er nå noen år siden. Og da jeg var førsteårsstudent på den tiden, var jeg egentlig ikke på denne veien for å gjøre computer science, for å gjøre engineering. Faktisk kom jeg inn i dette stedet som en regjering konsentratoren. Jeg hadde vært i videregående skole, en gutt som likte ting som historie. Jeg likte statsrett, slag av engelsk og matematikk. Det er som en slags godt avrundet, men ikke nødvendigvis vet ting som jeg ikke hadde vært undervist i videregående skole. Og så freshman år, hadde jeg denne trepidation der selv selv om jeg likte datamaskiner, spilte dataspill og liker, jeg absolutt aldri tenkt på meg selv som en datamaskin person, en datamaskin vitenskapsmann. Og ærlig, jeg trodde mine venner i videregående skole som tok informatikk var litt av en geeks. Og likevel, når jeg kom hit på campus, var det dette kurset, CS50. Og på den tiden, hadde det dette ryktet av å virkelig være noe å være oppmerksom. Det var en god kurs. Det var en morsom kurset. Men du måtte faktisk få den foten i døren. Og selv jeg ikke krysse at terskelen freshman year. Og jeg gikk på min måte å være en regjering konsentrator, går gjennom så mange av forutsetningene som jeg kunne, kryss-telle ting for gen ed eller kjerne og lignende. Og så sophomore året, for noen grunn, jeg fikk opp nerve til trinn fot i Science Center B, der CS50 var. En svært kjent datamaskin vitenskapsmann ved navn Brian Kernighan lærte her det året. Og selv da var jeg bare villig til å faktisk fylle ut min studie kortet ved å ta denne klassen bestått / ikke bestått. Jeg så rundt meg og jeg skjønte alle i dette ens må vite mye mer om informatikk, om programmering, om datamaskiner. Alle må man være programmering, i dette rommet, siden de var 12. Men, ja, det var ikke tilfelle. Og så den aller siste dagen, den femte mandag av semesteret, gjorde jeg ta dette spranget og endring fra bestått / ikke bestått til en bokstavkarakter og endte opp med å endre konsentrasjonen min som samme dag til informatikk. Nå, det er ikke vårt mål i denne klassen, for å slå dere alle inn informatikk konsentratorer, men virkelig å foreslår at det er en mulighet i dette feltet, og i andre felt som du kan være ganske ukjent gitt at videregående skoler vanligvis følger en ganske standard curricular banen, men venture i, i CS50, inn nye farvann. Og hvis du sitter her i dag tenker du ikke faktisk tilhører, så gjør de fleste til høyre og til venstre. Faktisk, i fjor, hadde 76% av elevene i denne klassen ikke tidligere erfaring. Så i motsetning til hva du kanskje tror, ​​de fleste sitter rundt her i dag ikke, faktisk, har noen forutgående erfaring. 18% har tatt en CS klasse, og 6% har tatt to eller flere. I mellomtiden ber vi våre studenter hvert år for å beskrive seg i form av komfort. Og det er ingen definisjon av dette. Du bare slags vite det hvis du ikke er veldig komfortable i CS50. Og i fjor hadde vi 55% i denne grønne pie stykke her selvbeskrivende som mindre komfortable, studenter som ærlig hadde ingen anelse om hvorfor de hadde selv handlet kurset på den første dagen. Men det samme 55% forble med oss ​​til begrepet slutt, som gjorde 35% som var et sted i mellom de mer komfortabel og de mindre komfortable. Så, hva er informatikk? Vel i videregående skole, og egentlig mer generelt ut det i disse dager, er det denne oppfatningen eller denne misforståelse at informatikk er programmering. Og det er absolutt en del av informatikk. Men programmering, uansett språk er, er egentlig bare en verktøy som dataforskere bruke for å løse problemer, enten i domenet av informatikk eller stadig disse dager i den fysiske fag, naturvitenskap, i medisin, i humaniora, for å analysere store datasett. Anywhere nå er det datamaskin og data, er det en mulighet til å søke lærdom i en klasse som CS50. Så la oss løse et problem at en datamaskin vitenskapsmann kan gå om å løse og prøve å sette noen sjargong, sette noen konseptuelt rammeverk, kan rundt hva ellers være noen ganske abstrakt idé. Så dette er en telefon. Du ser ikke disse tingene for ofte, selv om høgskolen fortsatt synes å ha disse i hus og sovesaler. Men tilbake i dag når du ønsker å bruke en telefon som dette var det ingen elektronisk adressebok i din mobiltelefon. Snarere, trakk deg opp noe kjent som en telefonbok. Og disse telefonen bøker hadde ca 1000 sider, typisk. De ble sortert fra A til Å. Og du bare måtte finne høyre side for å finne den personen du leter etter for å finne deres navn og deres telefonnummer. Nå hvordan går du om å se opp noen i denne boken? Anta mitt mål er å gi min venn, Mike Smith, en samtale. Vel, hvordan går jeg om å finne Mike Smith? Vel, en svært fornuftig tilnærming, hvis naiv og ineffektiv, ville begynne her og begynne å bla til side 4 side 5 side 6, og til slags lineært sammen en rett linje, gå gjennom denne telefonboken. Og selv om det skal bli utrolig kjedelig, hvis Mike Smith er i denne boken, er jeg omsider skal nå ham når jeg endelig vende til S delen av denne boken. Nå selvfølgelig, trenger du ikke å være en datamaskin vitenskapsmann å vet at dette er en dum måte å løse dette problemet. Hva ville en typisk menneske gjøre? Godt gjort. Så du ville vende til midten, til høyre. Så du vil vende omtrent til midten, se her, og jeg synes å finne meg selv i M-delen. OK, så M er helt klart ikke det jeg leter etter. Og Mikes til høyre, så å si, i denne delen. Og som noen av dere har sett før, kan vi bokstavelig talt nå fortsette å rive dette problemet i to. [Applaus] Du bør ikke være så imponert. Rive det ned sømmen er faktisk ikke så vanskelig. De virkelige mennesker gjør det på denne måten. Men, ned sømmen, har vi nå to problemer, hver av som er halvparten så stor. Og vi kan bokstavelig talt kaste at halvparten av problemet borte. Nå er vi igjen ikke med 1.000 sider, men, sier, 500. Så nå hva gjør jeg? Godt, vil en typisk menneske gå omtrent i midten igjen. Og jeg finner meg selv en R-delen. Så ikke helt der. Så igjen, kan jeg rive dette problemet i to. [Applaus] Takk. Så nå har jeg bare rundt 250 sider. Og jeg kan gjøre dette igjen og igjen og igjen og gå fra 125 ned til omtrent 60 til 30 til 15 og så videre. Og til slutt vil jeg få redusert til en av S sidene på som, hvis han er i telefonboken, bør Mike Smith være. Nå, det er en åpenbart ganske rimelig algoritme, og det er en engangs-bruk algoritmen i dette tilfellet. Men hva kan vi liksom ta bort fra det? Vel, den første tilnærmingen, korrigere hvis naiv om det ble, kan beskrives av denne rette linje. Så hvis du er på x-aksen her vi si dette er størrelsen på problem, slik som x-aksen går til høyre, den problemet blir større. Hva betyr det å være større i sammenheng med dette problemet? Flere sider i telefonboken. Det er mer noe vi kan måle. På y-aksen, tid til å løse. Så som aksen går opp, tar det antagelig mer tid. Slik at første tilnærming lineært søker fra side 1 til prikk dot dot side 1000 er en lineær prosedyre, en lineær algoritme eller prosess. Og vi kan beskrive det med denne rett linje. Hvis jeg legger flere sider i telefonlisten, det kommer til, i verste fall ta meg flere sider flip å finne Mike Smith. Hvis jeg legger 100 sider, flips 100 mer eller enheter av gangen. Nå kan jeg være litt flink med dette. Jeg trenger ikke å virkelig slå den én side av gangen. Jeg kan gjøre ting som 2 om gangen eller 4 gangen. Men selv det er ikke alle som fundamentalt bedre. Selv om det er to om gangen, ja, beveger den slags dette linje ned litt, og det betyr at det tar mindre tid gitt samme antall sider. Men det er ikke fundamentalt bedre. Men hva gjorde vi bare gjøre, og hva gjorde dere alle gjør instinktivt? Du faktisk oppnådd en litt noe sånt som dette, logaritmisk tid, hvorved problemet kan vokse og vokse og vokse men kostnaden ved å løse det problemet, tiden kreves for å løse det problemet, ikke vokse nesten like fort. Dette ville være en logaritmisk kurve, logg av n, hvor n er bare størrelsen på problemet, antall sider i denne telefonboken. Og hva betyr dette i praksis? Vel, hvis vi har som 500 personer i dette rommet akkurat nå, eller rettere sagt, hvis vi har - miksing metafor, gjorde ikke det eksemplet ennå i år - så hvis vi har 500 sider i telefonboken, og vi doble det til 1000, i dette mer intelligent modellen av bla til midten, hvor mange flere sider tårer det ta å gå fra 500 sider til 1000? Vel, bare en ekstra side tåre. Hvis du ga meg en 2000 side telefonbok, ingen big deal. Jeg bare rive det en ekstra gang. Så i korte, kan størrelsen av problemet vokse mye raskere enn kostnaden for faktisk å løse det. Nå er dette bare en slik algoritme. Det finnes andre vi kan løse på samme måte. Og så hvorfor ikke vi gjøre dette? Hvis du vil humor meg, riktignok klønete her i Sanders, gå fremover, alle, hvis du kan og stå opp i stedet. Som du ser på skjermen her, dette er en algoritme, en prosessen, et dataprogram hvis du vil, for å bli henrettet av mennesker som har bare 3 trinn. Vi er allerede på trinn 1. Du har stått opp. Og nå tenke deg selv nummer 1. Det er din nåværende tall. Alle her er nummer 1. Trinn 2, pare seg med noen stående, legge tallene sammen, og deretter vedta summen som det nye nummeret. En av dere bør sette seg ned, og gjenta. SPEAKER 1: 205. DAVID J. MALAN: Hva er det? SPEAKER 1: 205. DAVID J. MALAN: OK. SPEAKER 2: Han har de andre. DAVID J. MALAN: 205? SPEAKER 3: Ja. DAVID J. MALAN: OK. 3. SPEAKER 4: 400. SPEAKER 5: 5. 700. DAVID J. MALAN: All right. På dette punktet, bør færre og færre mennesker bli stående. Det er der det blir mer vanskelig. Noen her. Her. Det verste er at du også nødt til å veldig verbalt gjøre aritmetiske foran hundrevis av Harvard undergrads. OK. Litt av en bug her. Okay. Hva er nummeret ditt? SPEAKER 6: Nine. DAVID J. MALAN: Hva er det? SPEAKER 6: Nine. DAVID J. MALAN: Nine. Okay. Hva er nummeret ditt? SPEAKER 7: 179. DAVID J. MALAN: 179? Okay. Bra. Så 188. Så dere kan sitte ned. Hva er nummeret ditt? SPEAKER 8: 118. DAVID J. MALAN: 118. Noen smarte undergrad begynne å gjøre regnestykket. Okay. 118, 188. Hva annet har vi? SPEAKER 9: 71. DAVID J. MALAN: 71. SPEAKER 10: 79. DAVID J. MALAN: 79. Okay. SPEAKER 11: 47. DAVID J. MALAN: 47. Som lærere, som gir oss hvor mange? 705 er svaret. Og det er faktisk akkurat riktig. Nei, vi var faktisk litt av det. Men hvordan skal dette ha fungert? Hva burde skjedde? Så, på hver iterasjon av denne algoritmen, vi startet med et antall mennesker stående, og det var totalt antall n først. Enn halvparten av dere satte seg, og vi gikk til n over 2. Enn halvparten av dere satte seg. Vi gikk til n over 4, n over 8, n over 16, og så videre, inntil, selv om den slags disintegrerte det på slutt, i teorien, alle hadde koblet sammen i balkong og mezzanine og orkester her, ville vi ha hatt bare en ensom person står med en total verdi, i dette tilfellet, av 705. Nå hva betyr, men for kjøretiden? Vel tenke på om jeg som menneske hadde gjort dette manuelt. Jeg ville ha startet ganske naivt, men riktig med 1, 2, 3, 4, 5, 6, 7, 8, og så videre. Tar ganske lang tid. Så jeg kan gjøre bedre, ikke sant? I grunnskolen, trenger du ikke bare telle i seg. Du teller i toere. SO 2, 4, 6, 8, 10, 12. Og det blir mye raskere. Men nå fundamentalt, ved å utnytte den kollektive intelligens til alle i dette rommet, kan vi oppnå en dempe mye mer som dette, hvor nå nummeret på personer i dette rommet kan doble. En annen 700 personer gå inn i dette rommet for 1400 mennesker, men det ville bare ta oss en mer gjentakelse av dette algoritmen for å løse. Og så, i økende grad i disse dager, når vi har disse enorme datasett i Facebook og Google og lignende, er det løse problemer med litt innsikt, denne biten av kløkt, som er slik at vi i økende grad til å gjøre mye, mye kraftigere ting med datamaskiner i dag. Hvis du liker slike ting, har du kanskje sett på Facebook CS50 egen Puzzle Day kommer opp førstkommende lørdag. Hvis du ønsker å delta i noe sånt Dette innebærer at du, i 2 eller 3 eller 4 lag på 4, ønsker å løse noen gåter som dette, vil du stå en sjanse å vinne noen flotte premier, blant disse er en Wii og noen gavekort eller annen Facebook Swag. Denne lørdagen, middag til 03:00, gå til cs50.net/rsvp for slike. Og dette bildet er på nettet hvis du ønsker å leke seg. Problemene i år skal være nye. Du kan legge merke til i klasserommet, også, desto mer kameraer i år. Så ikke bare vil kurset bli filmet på vanlig måte, CS50 kan også ta del i en dokumentar om høyere utdanning som ser på transformative erfaring at en student kan ha i disse dager i en lavere studium. Så mot disse, så vil vi ikke bare være filming for det, vil vi bli filme også for stadig vår online publikum, så vel som på denne anledningen publikum her. Så vi velkommen til klassen i år vår Harvard Extension School studenter, Graduate School of Design, Utdanning, handelshøyskole, Kennedy School, loven skolen, samt en rekke studenter fra Belmont, Lexington, Newton, og Watertown videregående skoler. Velkommen til dere alle. I tillegg dette året, har du kanskje hørt, Harvard og MIT, og Berkeley nå har inngått et samarbeidsprosjekt partnerskap, et initiativ kalt EDX, som er en initiativ til å åpne opp utdanning til alle mer folk på nettet og fundamentalt begynne å gjøre forskning på et mye bredere skala med hensyn til hvordan folk lærer. Og så CS50 vil være høgskolens første kurs deltar i dette initiativet samt. Hvilket betyr at du vil ha tilgang til alle de flere verktøy, desto mer pensum innhold, desto mer video innhold som et resultat, i tillegg, som ig morgen, 53019 personer som har registrert for å ta CS50 sammen med deg i år på internett. Så uten - [Applaus] Så hva dette betyr, spesielt, er at lærere og jeg har brukt ganske mye tid på sommer forbereder for høsten, både på campus og på, slik at vi kan begynne å bygge opp et korpus av interessant, av overbevisende, å engasjere pedagogisk innhold som fokuserer særlig på mer intime transportmidler av ganske komplisert materiale. Så i tillegg til kursets forelesninger og seksjoner og ting som kalles walkthroughs, som vi vil se i bare en bit, vil vi også ha disse shorts i år som gjør at du å engasjere seg med kurs fra en annen vinkel helt. Så la oss bruke dette som en mulighet til å ta en rask titt på en som diskuterer dette begrepet binærfiler. Så i informatikk, er det ting som kalles algoritmer - to av dem vi bare tok en titt på - disse prosedyrene for løse problemer. Men på slutten av dagen, må du representerer informasjon eller annen måte. Og du trenger å representere den på en måte som en datamaskin kan forstå. Og selv om du egentlig ikke forstår datamaskiner og du er i at 76% akkurat nå, har du sannsynligvis noen vage forstand at datamaskiner liksom avtale i 0'er og 1'ere, det binære system, så å si. Nå hvorfor er det slik? Vel, det viser seg når datamaskiner første kom, hvis du trengte å representere informasjon, kan du gjøre det med elektrisitet. Og selv om dette er litt av en overforenkling, en svært enkel måte å registrere informasjon er enten ved snu den strøm på - en 1 i binær, så å si - eller snu at elektrisitet av. Så hvis Barry, hvis du ikke har noe imot, kunne vi dempe lysene fullt for bare et øyeblikk? Dette her er en veldig umotivert binær 0. Hvis vi slår av lysene opp igjen, nå Sanders Theatre er representerer den binære verdien av en. Dessverre, med bare en bit, med bare ett sett med lys, kan vi bare representere to tall i verden, 0 og 1. Og det ville være fint om datamaskiner kunne telle en litt høyere enn det. Men faktisk de kan. Så la meg trekke opp på skjermen her vår venn Nate Hardison som vil gi oss en rask titt i løpet av bare noen få minutter på denne oppfatningen av binære. [VIDEOAVSPILLING] NATE Hardison: Tilbake når du lærte å lese og skrive tall, lærte du om sifrene 0-9. Å skrive hele tall større enn 9, lærte du at alle du måtte gjøre var å bruke en kombinasjon av disse sifrene, som i 52 og 437. Så har denne måten å skrive tallene en navn, titallssystemet. Hvorfor desimal? Vel, betyr det latinske roten av en desimal, desem, 10. Og når du har 10 siffer i notasjonssystem, 10 blir en ganske spesiell nummer. La oss se på antall 437 skrevet i titallssystemet til forstå hvorfor. Vi kan først bryte opp 437 i 400 pluss 30 pluss 7. Vi kan ta den fra hverandre enda mer slik at vi har 4 ganger 100 pluss 3 ganger 10 pluss 7 ganger en. Husk å lære om de sted, titalls sted, det hundrevis sted, og så videre? Dette er akkurat der det kommer fra. Og til slutt, kan vi se at vi har en haug med krefter 10 innebygd i her. Vi har fire ganger 10 til 2 pluss 3 ganger 10 til 1 pluss 7 ganger 10 i 0. Så nå kan du se hvorfor 10 er en spesiell antall titallssystemet. Faktisk har vi et navn for det. Det kalles basen siden det er i bunnen av eksponent i aritmetikk her. Titallssystemet er ikke den eneste måten å representere tall. Faktisk, selv om vi blir kvitt sifrene 2 til 9, kan vi fortsatt representerer alle de tallene som vi kunne med desimal. Så nå har vi to siffer, 0 og 1, 2 er vår spesielle nummer, bunnen av vårt notasjonssystem. Navnet på denne notasjonen system kalles binære siden prefikset "bi" betyr to. Så i stedet nå for å ha en som sted og titalls sted og så videre, har vi nå en de sted, et toere sted, en firere sted, og så videre, går opp med potenser av 2. Så la oss se dette ved å gjøre noen telling. Så, er 0 fortsatt 0, og 1 er fremdeles en. Men nå som vi har fått en toere sted i stedet for de ti sted, representerer 10 tallet 2. Å få 3, legger vi en til det og få 11. 4, siden det er nå en fire sted, er representert ved 100. Fem er 101. 6 er 110. 7 er 111. 8, igjen, har sin egen plass. Så det er 1000. Og jeg tror du tar poenget. [END VIDEOAVSPILLING] DAVID J. MALAN: Så dette er å si, hva datamaskiner gjør og hva binær er er faktisk ikke så ulik fra hva vi har tatt for gitt i noen år, ikke sant? Du regner grunnskolen lærte du å telle i nøyaktig mote som Nate foreslått. Men du sannsynligvis ikke har egentlig tenkt på det siden, det faktum at det er dette som sted, titalls sted, og hundrevis sted. Og det er ganske vilkårlig. Og faktisk, datamaskiner rett og slett bruke denne annen base. Men på slutten av dagen, å faktisk fysisk representere denne oppfatningen av en 0 og 1, du åpenbart ikke bare slå lysene på og av nødvendigvis. Du trenger å gjøre det på en mye finere kornet skala. Og ved finere kornet, kan du huske dette dum lite leketøy fra barndommen, Woolly Willy og disse små magnetiske partikler. Så magnetiske partikler er noe som du kan justere i et par forskjellige retninger, kanskje nord-sør eller sør-nord. Og så mange fysiske inkarnasjoner av teknologi disse dager som bruker binære, som bruker 0'er og 1'ere, bare har magnetisme på innsiden som justerer ting, opp-ned eller ned-opp, med dermed representerer en 0 eller en 1, henholdsvis. Så ja, la oss gå bort fra det abstrakte her og se på innsiden av hva som er en mer tradisjonell datamaskinens harddisk. Dette skjer for å være litt større på skjermen i at det er fra en stasjonær datamaskin. Men bærbare datamaskiner i dag har fortsatt den samme teknologien, men er gradvis blir erstattet av mer avanserte ting som har faktisk ingen bevegelige deler. Innsiden, da, av en harddisk. [VIDEOAVSPILLING] SPEAKER 12: Harddisken er der PC lagrer mesteparten av sine faste data. For å gjøre det, reiser data fra RAM sammen med programvare signaler som forteller harddisken hvordan du kan lagre disse dataene. Harddisken kretser oversette disse signalene til spenningsvariasjoner. Disse igjen kontrollere harddisken bevegelige deler, noen av de få bevegelige deler igjen i den moderne datamaskinen. Noen av de signaler styrer en motor som spinner metall-belagt fat. Dine data er faktisk lagret på disse platene. Andre signaler flytter lese-skrive-hodet til å lese eller skrive data på platene. Denne maskinen er så presis at et hårstrå kunne ikke selv passere mellom hodene og spinning fat. Men det virker alt til veldig bra hastigheter. [END VIDEOAVSPILLING] DAVID J. MALAN: Så hvis vi nå zoome inn på det som faktisk er skjer på toppen av disse platestabel i form av magnetisme, har vi denne andre av to utseende. [VIDEOAVSPILLING] SPEAKER 13: La oss se på hva vi nettopp så i slow-motion. Når en kort puls av elektrisitet er sendt til lese-skrive-hodet, knipser den på en liten elektromagnet for en brøkdelen av et sekund. Magneten skaper et felt som endrer polariteten en liten, liten del av metallpartikler som strøk hver tallerken overflate. Et mønster serie av disse bittesmå ladet opp områder på disken representerer en enkelt bit av data i det binære tallet Systemet brukes av datamaskiner. Nå, hvis strømmen er sendt en vei gjennom lese-skrive hode, området polarisert i en retning. Hvis gjeldende ligger i motsatt retning, den polarisering er reversert. Hvordan får du data utenfor harddisken? Bare reversere prosessen. Så det er partiklene på disken som får strøm i lese-skrive-hodet i bevegelse. Sett sammen millioner av disse magnetisert segmenter, og du har fikk en fil. Nå kan deler av en enkelt fil bli spredt over hele en stasjon i platters, type som rotet av papirer på pulten din. Så en spesiell ekstra fil holder oversikt over hvor alt er. Tror ikke du ønske du hadde noe sånt? [END VIDEOAVSPILLING] DAVID J. MALAN: Virkelig. Så har vi denne muligheten til å representere informasjon, tall på et svært lavt nivå. Vi har en fysisk måte å representere det samme. Men vi kan ikke gjøre så mye av interesse ennå annet enn kanskje noen aritmetiske og matematikk. Vi har ingen måte å representere hittil ting som alfabetiske bokstaver slik at vi mennesker kan kommunisere bruker de samme enhetene. Men heldigvis finnes det kodinger, mønstre av 0s og 1s, som representerer høyere nivå konstruerer som a og b og c og hele setninger og avsnitt og lignende. Og så ASCII, som er et akronym som refererer til denne kodesystem hvorved en tall representerer en gitt bokstav. For eksempel er antallet som vi kjenner som desimalverdi 65 kjent som den store bokstaven A til datamaskiner. Desimalverdien av 97 i datamaskiner er kjent som en små bokstaver en. Og hva betyr det egentlig? Vel, selv om Nate et øyeblikk siden var det bare telles opp 0-8, hvis vi skulle fortsette å telle opp til 65 eller videre til 97, mønsteret av 0'er og 1'ere at han ville ha trukket på skjermen ville være nøyaktig hva en datamaskin bruker å representere bokstaven A i alle caps eller bokstaven a med små bokstaver. Og ja, det er en hel ordning på dette. Dette er en, ved første øyekast, overveldende diagram av kodinger, men hvis du fokuserer bare på høyre halvdel her, merke til i denne midterste kolonnen har vi denne oppfatningen av tall etterfulgt av bokstaver. Og på toppen har vi 32. Og karakteren, røye, som 32, heltallet, refererer er tilsynelatende Space Bar karakter. Når du treffer Space Bar tegnet på den bærbare datamaskinen, vel, hva du egentlig sender er et tall, et mønster av 0'er og 1'ere, en strøm av elektrisitet hvis du vil, representerer de 0'er og 1'ere at datamaskinen da tolker som et mellomrom på skjermen. Et utropstegn er 33. Anførselstegn er 34. Og hvis vi bla nedover her over til høyre, ser vi at 65 er faktisk A, og 97 er små bokstaver faktisk en. Og så nå som vi har denne kodeskjema, kan vi begynne å stave ting ut. Faktisk, datamaskiner vanligvis uttrykker seg i standard enheter, ikke med en individuell bit, som igjen er ikke alle det nyttig å bare representere 0 eller 1, lys på eller av, men heller bruke sekvenser av bits. Og den vanligste måleenheten, som du sikkert vet og eller i det minste utledes, er en byte. En byte er bare åtte biter, åtte 0s eller 1s på rad. Så vi kan begynne å stave ting ut. Og så, hvis vi kunne, hvorfor ikke prøve dette litt kollektivt her. Er det åtte personer i dette rommet som ville være villig til å komme opp på scenen? Du må være komfortabel vises på kameraet, men du egentlig ikke trenger å vite, ellers, hva er skjer ennå. Jeg ser en person som blir frivillig over her. To, tre, fire, fem, seks, syv, og hvordan om åtte. Kom opp. Så du er i ferd med å representere en byte av mennesker. La meg være du har den 128 plass, du 64 plass, du 32 plass. Men vi skal veldig raskt å reversere dette. Så la meg møte dere alle der. Og du bør være i den 128 plass hele veien hit. Mye som hundrevis sted og tusenvis sted ville være lenger til venstre, vil vi den største plassholder å være her på venstre som også. Vi har 64s er 32, 16 s, 8-tallet, 4s, 2'S, og 1-ere. Utmerket. Så nå har vi - OK, kan du hjelpe meg. Så nå har vi - hva heter du? JOANNE: Joanne. DAVID J. MALAN: Joanne. Så Joanne og jeg skal nå gi råd disse gutta om hvordan vi kan gå om stavekontroll noe ut. Så på ryggen av sine ark, de har en lite jukse ark som kommer til å fortelle dem om de representerer en 0 eller en 1. Og hvorfor ikke for enkelhet, vil vi representere 0 ved bare står der klønete. Veldig bra. Eller en 1 ved å heve hånden, som representerer en 1. Og la oss se om vi ikke kan stave ut en fire karakter setning her. Så, gå fremover nå, frivillige, og utføre round én etter heve hånden din hvis du er en 1 eller holde den ned hvis du er en 0. Så nå som vi har disse tre hender opp, hvilket nummer, alle andre, de er faktisk representerer? OK. 67 år. Hvorfor? Vel, rask forstanden sjekk. 64 plass, fordi det er en 1, er at som en ganger 64 pluss 1 2 ganger, slik at det er 66 pluss 1 ganger 1. Det er pluss 1, så 67 år. Så nå er disse gutta er samlet representerer 67 som representerer tilsynelatende hva her i ASCII? OK. Så en c. OK. Så la oss nå gå videre til runde to. Alle starter med hendene ned. Og i runde to - det finnes faktisk ikke mye av en rolle her, antar jeg, men vi vil late. Så runde to, heve eller senke hendene. OK. Publikum, hva er vi nå uttrykker er 83. Så du kan gjøre matematikk. Men for alle som har hånd er opp, legger du inn nummeret som de representerer. Så nå har vi 83. La oss utvide jukse ark litt, og vi har nå -? [Uhørlig] DAVID J. MALAN: OK. Dette kan være opplagt hvor vi skal her, men likevel, runde tre. OK. Runde tre er godt å gå ned dit. Så runde tre, hvilket nummer er disse gutta nå representerer? OK. Jeg hørte 53, som nå representerer? Interessant. Nå hvorfor denne typen counter intuitive resultat, ikke sant? Hvis vi ønsker å representere 5 - vi alle sikkert vet hvor dette går - hvorfor jeg ikke bare heve 4 plass og en plass? Vel, skjønner at det er en forskjell, fundamentalt, mellom hvordan en datamaskin tolker disse bitene. Hvis du prøver å representere nummer 5, så absolutt, vi bare heve hånden nummer 4 og heve hånden nummer 1. Men vi representerer tall her. Sammenheng her på scenen er at vi representerer tegn, eller tegn. Og i denne sammenheng datamaskinen må innse at, oh, er dette mønsteret biter ikke et nummer alene, er det faktisk representerer et høyere nivå konsept, i dette tilfellet en alfabetisk brev. Så det faktum at det nå er som representerer antall 5 med verdien 53 er fordi i ASCII ting vi estetisk ser som nummer 5 i seg selv trenger en mønster av biter. Fordi hvorfor? Vel, verden nettopp besluttet å bruke lavere tall, 0, 1, 2, 3, for hva ser til å være ganske kryptiske ting. Og faktisk er det disse tegnene som ikke er på en tastatur, spesielle uttrykk som du trenger i en datamaskin til gjøre interessante ting, men mennesker aldri faktisk skrive dem. Så 53 representerer faktisk 5. Nå, akkurat som en siste tilregnelighet sjekk, hvilket nummer skal de representerer en liten stund? PUBLIKUM: 48. DAVID J. MALAN: OK. Så 48. Og ja, gå videre. Runde fire. 16 pluss 32 er faktisk 48. Og så en stor applaus, hvis vi kunne, for vår åtte frivillige her. Takk. Du kan holde denne. Hvis du - Veldig godt gjort. Noen retning er fine. Så har vi nå en måte ikke bare å tenke på hvordan du representere data og faktisk representerer det fysisk, men også gjør på høyere nivå ting på toppen av det. Faktisk er dette kommer til å bli et tema i hele datamaskin vitenskapen om å bygge mer og mer interessant kompleks ting på toppen av ganske enkle ideer, i dette tilfelle bare 0'er og 1'ere. I forhold til hvorfor dette er nyttig, godt selv om det i en kurs som dette vil vi fokusere på grunnleggende og på programmering og på å løse problemer, kan du gå av i informatikk i en rekke retninger. I dette tilfellet her, dette er et diagram som du har på baksiden av din uoffisielle guide til CS ved Harvard, en av i dag er to utskrifter. Dette tyder de mange forskjellige retninger som du kan gå etter et kurs som dette. Lære om kunstig intelligens, om grafikk, om maskinlæring, om språket selv. Innser også at det er ennå andre baner. Det er mer matematiske stier i informatikk. Hvis du ikke selv i stand til å ta noe sånt CS50 dette falle, er det innføringskurs i våren. Datamaskin Science 1, for eksempel, er enda et på rampen til denne nye verden. Nå som en side av hensyn til å løse problemer knyttet til kurs, innser at CS50 sett ut litt tid siden for å prøve å løse en av disse problemene, problemet kjent som my.harvard, som mange av dere kanskje bruker til å faktisk handle for kurs. Men hvis ikke, sjekk ut et verktøy som dette, samt andre etterkommere at noen av våre tidligere studenter og ansatte har skapt. Men i Harvard Kurs, som er et web-basert verktøy - noe som du vil være i stand til å utforme og distribusjon selv, samt likevel andre ting også, ved slutten av semesteret. Innse at dette bygger på en åpen datasett, i dette tilfellet en kurskatalog, og tillater elevene i dette tilfellet til utforske en ganske kompleks datasett. Vi gravde opp i går kveld noen statistikk basert på de få tusen folk som har brukt dette over de siste dagene. Hvis du har vært nysgjerrig på å vite hvor mange kurs vennene dine faktisk har en tendens til å handle, vel, i dag er det data tyder på at 7,6 er gjennomsnittlig antall kurs på noens handleliste. Og nå skal jeg gi deg, også, statistikken av de mest rekke kurs i noens handleliste. Og vi alle kjenner sikkert noen som dette. 201 er årets posten. Nå noen av våre tidligere studenter og ansatte faktisk sette sammen et klipp for å male et bilde for deg om hva dette banen i informatikk og CS50 selv er. La meg gå videre og trekke opp, takket være Mr. Hahvahd her, en video produsert av noen av dine forgjengere. Hvis vi kunne holde lysene opp for dette. [VIDEOAVSPILLING] [END VIDEOAVSPILLING] SPEAKER 14: (sang) Vi tar vår tid med noen riper, for looper, hendelser, kan vi matche, kompilering bruke vår bash, vil dette begrepet ikke være en boring. Hacking moro, noen gratis måltider, forelesninger er rett og slett uvirkelig, vår rettferdige er en så stor avtale, det er så mye å elske. Gå, David Malan. Walkthroughs, jeg er ikke bailing. Kontortid, er ingen sviktende. Hvor du tror du koding, baby? Hei, jeg bare møtt deg og dette er gal, men her er vår grunn. Ta CS50. Det er vanskelig å kode rett uten deg, baby. Men her er vår grunn. Ta CS50. Hei, jeg bare møtt deg og dette er gal, men her er vår grunn. Ta CS50. Og hver stjerne firmaet ønsker å ansette meg, en annen grunn. Ta CS50. Før du kom inn i livet mitt, kodet jeg så ille, kodet jeg så dårlig, kodet jeg så, så ille. Før du kom inn i livet mitt, kodet jeg så ille og jeg kan ikke gå tilbake. Ta CS50. DAVID J. MALAN: Jeg hadde ingen anelse om at skulle skje. Så, ligger en mer alvorlig titt på hva som kommer. Så i forhold til forventningene dette kurset, du faktisk ventet å delta eller se på kursets forelesninger, sende et problem sett, ta to spørrekonkurranser, sende et avsluttende prosjekt. I form av karakterer, innse at min kommentar ved åpningen om bestått / ikke bestått, noe som vi veldig mye å ta til hjertet i CS50. Det er ikke på langt nær nok for en kultur ved Harvard for å prøve noe og risikere å mislykkes. Faktisk hadde vi antall studenter, og meg selv, i Spesielt ble som bekymret sårer din GPA eller få en B i noe sånt CS50. Og muligheten til å ta et kurs som dette, og andre gateway kurs på innføringsnivå, bestått / ikke bestått er en svært dårlig utnyttede muligheter på dette college, generelt. Og så skal du vite selv jeg deltok i dette kurset utgangspunktet for bestått / ikke bestått kreditt alene. Og selv om jeg gjorde bryteren på slutten av dagen, var det de fem første ukene, opp til den femte mandag hele semester som er cutoff, som tillot meg å faktisk sette foten inn i disse nye farvann og faktisk prøve noe veldig uvant og svært ubehagelig for meg på den tiden. Så i form nå, av hvilken rolle de ulike vinkler via hvilke du kan nærme dette kurset tjene, så forelesninger, er det opp til deg hvis du delta med oss ​​i person på dette sted. Faktisk vet vi statistisk at omtrent 40% av dere vil slags komme og gå i løpet av semesteret. Og 10% av dere, vi vil aldri se igjen etter i dag. Og det er helt greit, for å være ærlig. En av de kjennetegner CS50 er at det er disse utallige ressurser, noen av som vi vil skrangle gjennom i løpet av et øyeblikk, inkludert forelesninger og seksjoner og ting kalt walkthroughs og kontortid og lignende. Og det er mer ressurser enn den typiske studenten må eller kunne fysisk dra nytte av. Men det er fordi de ulike læringsstiler som enhver student body manifesterer. Og så i forelesninger, den primære rolle, slik jeg ser det, er ikke å verbalt presse ut ganske komplisert materiale og til nødvendigvis levere alle vanskelighetene med grunnleggende at vi vil utforske dette semesteret, men heller å gjøre ting som vi har gjort så langt allerede, disse eksemplene, som involverer mennesker på scenen, prøver å male et mentalt bilde, og også opprette, tør jeg si, noen av disse minneverdige øyeblikkene. Slik at selv som du sliter med visse emner, har du disse minnene liker, oh, selv om det var ganske abstrakt, matte, jeg har mistet med å bære en, som det virkelig, på slutten av dagen, er ikke alt som ulikt noe jeg allerede vet. Og så den rollen som forelesninger vil tjene, enten personlig her i Sanders eller online på video, er virkelig å sette iscenesette mentalt for deg hver uke for de ulike konseptene og problemer som vi vil være dykking inn. I form av høyt nivå konsepter, de fleste av disse ordene kan flyte over hodet for øyeblikket, og det er fint. For de av dere som kommer inn i kurset mer komfortabel vil vite av noen av disse temaene. Men vanligvis for at 10% av den klassen som de har mye mer bakgrunn, tar AP informatikk, programmering siden de var 12, innser at det vil være muligheter i seksjoner og i problemet setter å gå hele mer i dybden i ulike temaer, fylle i hva hull du kan ha fra videregående skole eller før bakgrunn. I form av språk, innser at det språket vi bruke i CS50 er i stor grad irrelevant i slutten av dagen. Vi måtte bruke, først og fremst, kalt et språk C. Mot slutten av semesteret, innfører vi web-sentriske språk som PHP og JavaScript. Men vi og andre kunne lære et kurs som dette i de fleste helst moderne høynivåspråk. Python og Ruby og andre er ganske populært i disse dager. Fordi realisere på slutten av dagen, du er ikke lærer i dette kurset C. ikke Dere lærer PHP eller JavaScript. Du lærer hvordan du kan løse problemer, enten web-basert, PC-basert, eller data-orientert seg selv, ved hjelp av disse bare som verktøy. Nå, i form av logistikk, vil du bruke noe, til slutt, kalt CS50 Appliance. Spiller ingen rolle om du har en Mac, en PC, en Linux-datamaskin, eller lignende. Du vil ha fritt tilgjengelig programvare som starter neste uke som å bruke CS50 Appliance, en virtuell miljø som du vil bruke på din egen datamaskin, slik at du og alle dine klassekamerater har en uniform Linux desktop i dette tilfellet. Det er problemet sett, skjønt, hvor du virkelig får hendene skitne på kurset. Og på slutten av dagen, er det de oppgavesett, jeg tror, ​​som virkelig definerer en elevs oppleve i dette kurset. Innse at mange av oppgavesett vil bli utgitt i to utgaver, en standard tillegg som vi forventer og oppmuntre 90% av klassen til å dykke inn. Men vi har også slippe noen problemområder sett i såkalte hacker tilføyelser. Og du vet at det er hacker tillegg fordi på hver side med et vannmerke sier det hacker tillegg på den. Og det er for denne demografiske av dere som har AP informatikk med 10 års programmering under beltet og ønsker å fylle disse hullene og å ha mer formell, snarere enn selvlært, opplæring, kanskje. Innser at det er en meget betydelig demografiske i klasse som har nettopp den samme målet. Du har fem sent dager. Oppgavesett er vanligvis på grunn på torsdager, men du kan utvide fem av disse fristene å bruke disse ting som kalles sent dager. Og vi vil også slippe laveste score på slutten av semester per opplysningene i pensum. Men en annen særtrekk ved CS50 løpet årene har blitt kontortid. Det er en mulighet som du så visuelt i bilder litt siden, hvor vi samles - tidligere i huset servering haller, før det i kjelleren i Science Sentrum, og i år i Annenberg Hall - fire netter en uke 20:00 til 11:00 der du vil ha dette veldig mye delte erfaringer med å jobbe på, sliter gjennom, visse problemer, men med en betydelig støtte strukturen på plass. Faktisk er måten dette vil fungere vil ankomme Annenberg hvis du har noen spørsmål i løpet av uken, vil du få den bærbare datamaskinen, vil du sitte ned, hente noe mat, og du vil logge inn CS50 Diskuter, en web-basert verktøy som undervisningen ansatte har utviklet som vil tillate deg å legge inn spørsmål og se oppfølging i en typisk diskusjonsforum forstand, bruk av etiketter og lignende og automatisk fylle ut til søke i data. Men du vil også være i stand til, i løpet av timer av kontoret timer, har dine spørsmål videresendt til virkelige mennesker. Faktisk er målet til slutt slik at man begynner vi å bygge opp i løpet av semesteret et korpus av forhåpentligvis virkelig nyttig informasjon, felles svar på felles spørsmål, slik at du selv kan løse problemer og få unstuck så raskt som mulig, men samtidig ha den lærere, vanligvis 20 til 30 av undervisningen stipendiater og kurs assistenter, i staben på en gang. Vi vil ha det som kalles CS50 Greeter i Annenberg. Og når vi finner ut at, vet du hva, dette spørsmålet, Vi kan egentlig ikke svare effektivt på nettet. Vi trenger å se datamaskinen din. Vi ønsker å snakke med deg en-mot-en. På den ene. Du virkelig sliter, og du derfor ønsker å snakke one-on-one sammen noen, vil du bli sendt til CS50 Greeter, et undervisningsopplegg stipendiat holding, bokstavelig talt, en iPad som har elevenes navn på den ene siden, undervisning ansatte Navnene på den andre. Vi vil klikke navnet ditt etterfulgt av navnet på en lærere, og dataskjermen vil starte blinker si vennligst gå se Alice eller gå se Bob på ansatte tabellen. Og så på denne måten, vil vi være i stand til å sende ting som effektivt som mulig, samt veilede deg mot løsninger alle lettere. I seksjoner, og disse vil være muligheter for mer intime hands-on muligheter med en av undervisning stipendiater og 12 til 16 eller så av dine klassekamerater i som hver uke vil vi ha problemer i oppgavesettet som spør en rekke konseptuelle spørsmål og en antall bit-sized programmering spørsmål som du kunne finne ut på egen hånd, og du kan jobbe på din hånd, men i sammenheng med delen der vi jobber gjennom kollektivt noen av disse problemene, og gå hvor annen samtale tar oss. I tillegg vil i avsnitt har du muligheter til å gjennomgå innsending av lekser som du har gjort, din klassekamerater, noen ganger anonymisert, alltid via opt-in Hvis du ønsker å dele det arbeidet som du har sendt inn. Så det vil virkelig være en toveis samtale, en mulighet til å vurdere eget arbeid i en mye mer dynamisk forstand, snarere enn bare å se på en PDF-fil eller en utskriften og tenke på det i noen sekunder, og ikke nødvendigvis absorberende tilbakemelding om at undervisningen ansatte har gitt. Og du vil bruke et verktøy her kalt CS50 Spaces. For de som ikke kjenner, er dette språket kjent som C øverst venstre, og du får vite dette over tid. Men dette er en web-basert verktøy som vi skal bruke i del som vil gi deg og din 15 eller så klassekamerater logge inn med din undervisning stipendiat ved forsiden av rommet. Du vil være i stand til å skrive kode i dette vinduet. Du vil være i stand til å chatte elektronisk, hvis du ikke faktisk på seksjonen på det aktuelle øyeblikket. Og undervisning kar, når det gjelder tid til å diskutere Alice eller Bob løsning i klassen, undervisning fellow kan Klikk på en knapp og voila, prosjekt på skjermen, hva som studenten har jobbet med i det aktuelle tidspunkt. Så for de av dere som har venner som har tatt CS50 i Tidligere innse at deler har vært vesentlig restartet i år for å være enda mer aktive, desto mer dynamisk, og virkelig en toveis samtale mellom undervisning ansatte og studenter. Og gjennomgang. Så for disse problemområdene setter vi også tilby ikke bare spesifikasjon selv, som er generelt en ganske detaljert PDF, men også ting som kalles walkthroughs der man medlem av undervisningspersonalet vil føre en ukentlig økt som går bokstavelig talt deg gjennom oppgavesettet, noe som gir deg hint og råd og utgangspunkt og er ment å spørre veldig ofte spurt spørsmålet, hvor skal jeg begynne? Vel, begynner du enten ved å dykke ned i spec på sin egen eller ved å delta eller se på disse walkthroughs. Den første gjennomgang, faktisk, blir dette fredag. De vil være på fredager, ikke så mye fordi vi tror det vil være en populær tid, men fordi vi da kan filme dem veldig tidlig i uken for å få dem på nettet av helgen, slik at du har så mange dager som mulig å faktisk drive det innhold i tillegg. Men mer om det i foredraget denne fredagen. Nå i form av bærekonstruksjonen, mest betydelig statistikk er kanskje den 108 undervisning stipendiater og kurs assistenter som dette Kurset har i dag. Hvis noen av dere som ikke har motstridende klasser ønsker å bli med meg opp her på scenen, er det disse gutta som vil slutt virkelig definere din erfaring i faget. Jeg hadde mye undervisning stipendiater undervise meg klasser i dagen, og jeg husker svært få av dem ærlig. Men til dags dato, jeg husker blant de få, min CS50 TF som virkelig hjalp meg å svare på spørsmål, som virkelig hjalp meg når jeg slet, og var virkelig en partner i dette opplevelsen av å lære et svært ny verden. I en liten bit, vil alle disse gutta bli med deg utenfor for kake, som er en tradisjon for CS50, i tverrskipet av Memorial Hall. Men la meg først til å introdusere deg til Nate Hardison, igjen, Rob Bowden, og Tommy MacWilliam, dette årets kurs leder. Hvis dere vil bli med meg her i midten. De har alle forberedt noen inspirerende bemerkninger. TOMMY MACWILLIAM: jeg ikke forberede alt inspirerende. Men mitt navn er Tommy. Jeg er en senior i Mather. Jeg studerer informatikk. Jeg er virkelig glade for å være på hekken team og går gjennom CS50 reise med deg. Hva jeg elsker om CS50 er hvordan det egentlig lærer deg å tenke på problemer på en ny måte. Dette er virkelig en ferdighet som kommer til å bli uvurderlig uansett hvilket felt du gå inn. Og ikke bare det, men vi tilbyr mer gratis godteri enn noen andre kurs på campus. Ja, og så jeg ser virkelig frem til å se hva alle bygger dette semesteret. Og hvis noen har noen spørsmål nå eller hele semesteret, definitivt gjerne nå ut til meg og Jeg vil være glad for å hjelpe. Rob Bowden: Hei. Jeg er Rob Bowden. Jeg er en senior i Kirkland. Ja, det er riktig. Vi er alle veldig glade for dette neste semester. Vi håper du alle glade. Jeg hadde ikke ventet det. Ja. Så vi legger så mye arbeid i å gjøre dette semester virkelig flott. Og så lenge du er villig til å sette i arbeid, er det så mye du kan få ut av dette kurset. Ah, vi - ja. Du kan få mye moro ut av dette kurset. Vi ville ikke ha en stab på 108 hvis du ikke kunne få en mye moro ut av det. Så, bare prøve å bli involvert, og du vil ikke angre. NATE Hardison: Hei, folkens. Jeg er Nate. Jeg er veileder for kurset. Jeg er virkelig glad for å være her også. Dette er mitt første år her. Jeg håper dere alle ta dette kurset og nyte det så mye som Jeg har hatt det så langt. Og hvis du noen gang ønsker å lære å telle til 9 eller 10 i binære, komme til å snakke til meg. DAVID J. MALAN: Så på risikoen for å forlate disse gutta her på iscenesette en litt klønete, la oss virvle gjennom bare noen av de tingene som venter før vi utsette for kake. Hva er det som ligger foran oss? Vel, hvis vi tar en rask titt tilbake på i fjor, i problemet angir 0, due dine forgjengere i en programmering språk kalt Scratch, en grafisk programmeringsspråk du skal bruke i de første dagene av kurset starter denne Fredag ​​å lære noen begreper ukjente for noen av dere. Men innser det vil være en avansert aspekt av dette for de av dere med tidligere bakgrunn. I fjorårets problem sett 2, due studenter inn i verden av kryptografi, kunsten enciphering eller scrambling informasjon, implementering programmer som krypterte data. Og i hacker tillegg fjor gjorde elevene fortsette å sprekke eller dekode passord i en typisk datamaskinens xe passord fil ved å komme opp med algoritmer og heuristikk for brute force finne ut hva noen er passord på et datasystem var. I fjor også, i oppgavesettet 3, gjorde elevene implikasjoner - i Problemet sett 4 - gjorde elevene gjennomføre spillet Sudoku. Og i hacker tillegg det året gjorde elevene ikke bare gjennomføre hvordan du spiller spillet, men faktisk en Solver der datamaskinen kan gi deg, menneske, med hint av raskere enn du har løse det aktuelle problemet. I oppgavesettet 5, gjorde vi dataanalyse, denne kunsten utvinne informasjon som var et uhell eller svært bevisst slettet fra en datamaskin. I fjor ruslet det pedagogiske personalet og jeg rundt campus ta bilder av mennesker, steder og ting, og deretter uhell formatert mediekortet på våre kamera som hadde alle disse bildene. Men ikke noe problem. Vi har gjort en rettsmedisinsk bilde av dette mediekort, ga den ut til alle elevene i klassen, og utfordret dem til å skrive programmer som utvinnes alle JPEG fra dette kortet. Og dette er faktisk en av våre favoritt oppgavesett. Og jeg gravde opp i en e-post fra en av dine forgjengere, som var mye moro å lese en gang siden. Han skrev - dette er fra Matt - kjære David, går min søster tilfeldigvis formatert henne kameraet SD-kort og tapte et år igjen av minneverdige bilder. Hun er dessverre ikke best på å sikkerhetskopiere sine data. Men denne situasjonen minnet meg pset 5, så jeg tenkte jeg ville prøve å kjøre henne SD-kort gjennom recover program at jeg skrev hele veien tilbake i oktober. Så etter fire timer med å finne ut hvordan du oppretter en rå bilde fra formatert SD-kort - Google viste seg å være ganske unhelpful i denne forbindelse til ironisk jeg tilfeldigvis kommer over dine instruksjoner om Internett - etter fiksing og triksing rundt med noen av kommando argumenter, Jeg klarte å lage den rettsmedisinske bildet. Og etter installasjon og konfigurering av CS50 Appliance, klarte jeg å kjøre den rettsmedisinske bildet gjennom min programmere og gjenopprette alle 1027 av min søster fotografier. Høyre, Matt. Så i siste year's - [Applaus] I fjorårets oppgavesettet 6, ga vi elevene en ordbok på 150.000 engelske ord og utfordret dem til å skrive en stavekontroll som svarte spørringer på formen er dette ordet stavet riktig eller feilaktig så fort som mulig. Og i en opt-in basis var studenter lov til å så utfordre klassekamerater ved å publisere sine resultater, mengde RAM som de brukte, antall CPU-sykluser eller sekunder som de brukte, slik at studentene ble deretter rangert på kurset hjemmeside. Nytt, rent valgfri del av det, men mye moro i det svært ofte vil en student få å plassere nummer 10 eller så på den store bord på nettstedet, kan du gå av til middag, og deretter komme tilbake og innse sin romkamerat hadde nettopp falt i foran ham eller henne på store bord, og dermed helle en annen to eller tre timer bare til ett opp hans eller hennes romkamerat. Så vi ser frem til noe lignende i år også. I problemet sett 7 vi styre i banens programmering, faktisk løse problemer i den stadig stadig vanligere miljøet til en nettleser. Vet decreasingly laste vi programvare på Mac-er og PCer, men i økende grad gjør vi alt innen web. Og faktisk i fjor, noen 88% av studentenes endelige prosjekter i kurset var web-basert. Og de også er ferdigheter som du vil utlede fra dette klasse ved kursets slutt. Fordi hva som venter på kursets slutt er det CS50 Fair, denne utstillingen som er basert på ideen om en science fair. Men i denne versjonen av en rettferdig gjøre alle elevene i klassen bringe sine bærbare datamaskiner og deres venner og familie og andre til Nordvest Science, en stor bygning på campus, satt opp sin laptop, få litt mat, få litt popcorn og drikke, og deretter vise sine siste prosjekter for alle de i frammøte som i fjor talte noen 2500 deltakere fra hele campus. Og uttrykk som dette og som dette var ikke uvanlig på messen. Frem til messen er den CS50 hackathon, en mulighet å hoppe på en Harvard shuttle, hodet ned gaten til Microsoft på 8:00, og ikke gå hjem før 07:00. Vi serverer første middag på 8:00, andre middag på 1:00, og for de som fortsatt står ved 05:00, behandler vi til pannekaker på IHOP. Og hackathon er en mulighet, som avbildet her, å dykke inn i dine endelige prosjekter, enten du arbeider på egen hånd eller med venner i et samarbeidsmiljø, der hele lærerstaben fungerer godt i natt med en rikelig tilførsel av Hong Kong kinesisk mat. På 5:00 vil slike bilder som disse være ganske vanlig dette år også. Slik som vi utsette et øyeblikk for kake, husk at 76% av folket i dette rommet har ingen tidligere erfaring. Og som per pensum, det som teller til slutt i dette Kurset er ikke så mye hvor du ender opp i forhold til din klassekamerater, men hvor du i uke 11 ende opp i forhold til selv i uke 0. Dette er CS50.