[Musikk spilles] NÅ: Hello, world. Dette er CS50LIVE. Vi har en så god episode for deg. Administrerende direktør i YouTube, en bug i Internet Explorer, det verste videospill noensinne, og en ekskursjon til Valve Software. Men først en tur til Tokyo, Japan hvor president Obama nylig spilt fotball med en god venn av meg. [VIDEOAVSPILLING] -Wow. Han beveger seg. -Jeg kan sparke en fotball også. Her går jeg. -Hei, god jobb. [END VIDEOAVSPILLING] DAVID: Hei, verden. Jeg er her med CS50 egen Colton Ogden. COLTON OGDEN: Hei, alle sammen. DAVID: Og hvem andre gjør vi ha med oss ​​her i dag? COLTON OGDEN: Dette er nå, vår lille robotvennen fra Frankrike. DAVID: Så jeg faktisk møtte NO sammen [? Rob Boden?] når han og jeg var i Atlanta, Georgia et par uker tilbake som du kanskje husker på SIGCSE, Special Interest Gruppe for Computer Science Education, hvor bokstavelig talt vandre rundt konferanserommet gulvet var denne fyren. Vel som det viser seg, når vi kom tilbake til campus vi oppdaget at professor [Uhørbart] av Harvards robotikk lab faktisk hadde en nå her på campus. Og hun er vennlig tillatt oss å programmere ham for deg i dag. COLTON OGDEN: Ja, og faktisk, David, Jeg tror nå ønsker å si hei til deg hvis du ønsker å gå rundt bordet her. DAVID: Akkurat her? OK. OK. NÅ: Hei, David. Hyggelig å treffe deg. DAVID: Hei, nå. Riste hånden? COLTON OGDEN: Shake hånden opp og ned. DAVID: OK. COLTON OGDEN: Og så han vil gå videre og sette seg ned. Og hvis du er interessert, Jeg kan faktisk vise deg hvordan jeg var i stand til å få ham å gjøre alle disse tingene også. DAVID: Ja, absolutt. COLTON OGDEN: Han er litt off balansere denne morgenen. Han har ikke hatt sin kaffe ennå. DAVID: Så hva er dette vi ser på? COLTON OGDEN: Så vi ser på her er en kjerne graf, som nå et grafisk programmeringsmiljø, som er svært lik Scratch at CS50 bruker. Her ser vi det er satt opp som et flytskjema. Og vi har en haug av disse små byggesteiner her. Nå hvis vi tar en titt på denne for eksempel, det heter stå opp. Og denne blokken sier stå opp for det nå, enten han sitter ned eller hva. Så ser vi at det går inn taktile hode, som i utgangspunktet venter på et trykk på toppen av hodet som du så tidligere. Flytt en anordning beveger seg i en x, y og z retning til et bestemt bestemmelsessted. Håndtrykk er en modul jeg skrev, som i utgangspunktet sier, hallo, David. Hyggelig å treffe deg. Venter på et håndtrykk. Sitt ned er det motsatte av å stå opp. Han vil gå foran og sette seg ned. Og så hodebevegelser er en løkke der han vil bevege hodet i tilfeldige retninger. DAVID: Interesting. Så selv om disse ikke ser som puslespillbitene fra bunnen av, det er egentlig den samme ideen. Og du er kabling en program ved hjelp av disse byggesteinene. COLTON OGDEN: Ja, akkurat. DAVID: Så du sier du har gjort en av dem, håndtrykk. Kan vi zoome inn på den? COLTON OGDEN: Sure. Vi vil ta en titt her på håndtrykk. Og vi får se det er satt opp svært lik den andre flytdiagrammet. Vi starter med hei blokk, som [uhørbart] sier, hallo, David. Hyggelig å treffe deg. Denne retten her er en loop. Det sier, oppdage armbevegelse. Så det vil i en uendelig løkke vente til sin arm har blitt reist opp og ned. Og så når det har skjedd, det vil gå videre og gjøre disse tingene. Sett stivhet OK og gå til slutt, som i utgangspunktet betyr sende ham tilbake til sin standardposisjon. DAVID: Interesting. Er du begrenset til bare ved hjelp av dette grafiske miljøet å programmere seg på denne måte? COLTON OGDEN: Nei, faktisk ikke. Hvis vi går videre og dobbeltklikk en hvilken som helst av disse byggeklosser, Vi kan se at det er faktisk python koden som står under panseret, å drive hver av disse byggeklosser. DAVID: Ah, ja. Så for dem ukjent, python er et tolket språk, svært lik i ånden til PHP, som vi bruker i CS50. Og mye som du kan bruke PHP for web-programmering, du kan også bruke den på kommandolinjen. Og som Colton gjør her i denne grafisk miljø, skrive programmer og deretter overfører det via Wi-Fi - COLTON OGDEN: Riktig. DAVID: - til nå. Vil du ha noen tid til å bli værende? COLTON OGDEN: Absolutt. DAVID: Greit. Vel, før Colton kommer tilbake med oss for en liten bit av en overraskelse, vi nå - få det -? har 60 sekunder av tidligere CS50 studenter audition å bli undervisning stipendiater. [VIDEOAVSPILLING] -Takk. Takk, alle sammen, for å være her. -Hey, Mr. Bunny. -Velkommen til denne korte veiledningen på - [Uhørbart] moro med Twinkies. -Vent. Stopp. -Så nå har vi et problem. -Det er det ikke. Og jeg skal fortelle deg hvorfor. -En løkke er repetisjon, som - -Sortering av en svart boks. -OK. Jeg tror jeg får det. -Greit. Så nå er jeg i en litt vanskelig del. -Det er riktig. 8 bits lage en byte. -Du tar en byte og du skille det i biter på fire. -Pip, pip, pip, pip, pip. Pip, pip, pip, pip, pip. -Det virker altfor komplisert. -Så la oss gjøre dette igjen. -Hvis jeg forvirre deg, kan du gjerne stoppe meg. -Men vent litt. -Vel, la oss se tilbake på lysbildet og bryte det ned trinnvis. -Hvis du husker, er minnet brutt opp i byte-størrelse biter. -Så her har vi det best case scenario. -Dette er en betydelig forbedring over - -En nettleser, som Chrome. -Det er alltid nødvendig å frigjøre noen - -Folk - -Du kan kjøre over. Og koden kan få noe tungvint. -Og det er alt du trenger. -Boom! DAVID: Nå CS50 egen Dan Coffey og jeg nylig hadde en mulighet til å reise ut til Mountain View, California, som er der hovedkvarteret til Google er. Og vi hadde en sjanse til å chatte med Susan Wojcicki, administrerende direktør i YouTube. Det var faktisk i Susans garasje år siden på 90-tallet at Google selv var startet av Larry og Sergey. Vel, det viser seg at Susan seg faktisk tok CS50 bare noen få år før jeg gjorde. Og jeg tror det er påfallende så vil du snart høre hvor mye en introduksjon til datamaskinen vitenskap så påvirket livet hennes. Hun vil gjerne si hei. SUSAN Wójcicki: Hei, verden. Jeg er Susan Wojcicki. Jeg er administrerende direktør i YouTube. Og jeg tok CS50 da jeg var senior på Harvard i 1990. Jeg var faktisk en historie og litteratur major. Og min junior sommeren jeg innså at jeg kanskje ønsket å lære noe om datamaskiner. Og så kom jeg tilbake. Jeg tok CS50. Det var vanskelig, men det var mest fantastiske klassen jeg tok. Det forandret hvordan jeg tenker på alt. Og da jeg ble uteksaminert fra Harvard i 1990, gikk jeg til Silicon Valley og jeg fikk en jobb. Og jeg har jobbet i tech siden den gang. Så CS50 forandret livet mitt. Jeg fortsetter å lære og bygge. Det ga meg en god foundation. Og jeg fortsetter å lære hver dag som teknologien endres. Og jeg synes det er flott at dere alle tar det fordi det er slik verden er kommer til å forandre fremover. Det er bare kommer til å bli mer og flere muligheter og innovasjon. Digital kommer til å påvirke vår lever enda mer enn den allerede har. Og det er flott at dere alle tar CS50. Så dette er CS50. DAVID: Så hvis du har vært på utkikk etter en ny grunn ikke å bruke en bestemt nettleser, her er en god en for deg. Jeg har nylig mottatt - sammen med alle ved Harvard University - denne e-posten her. "Kjære medlemmer av Harvard samfunn. The US Department of Homeland Security anbefaler at alle brukere midlertidig avslutte bruken av Microsoft Internet Explorer, IE, på grunn av en kritisk garanti feil ". Dette er dokumentert faktisk i Microsoft Security Advisory 2963983. Sårbarhet i Internet Explorer kan tillate ekstern kjøring av kode. Nå hva betyr dette og hva er trusselen? Vel, tenk på dette diagram her, som vi bruke i CS50 å snakke om HTTP eller web-trafikk. Hvis vi har her et web server, og på den andre siden en nettleser - Internet Explorer i dette tilfellet - selvfølgelig, en nettleser når det første etterspør en nettside kan sende en HDP melding som dette. GET index.html bruker versjon 1.1 av protokollen som kalles HTTP. Nå i dette tilfellet, hvis en bad guy har en eller annen måte hadde tilgang til denne web-server og installeres på det til en utnytte så å si, han eller hun kan være i stand til å overbevise webserveren til å returnere dette. Ikke bare index.html seg selv som forespurt, men innebygd inni av at index.html filen kunne, selvfølgelig være andre eiendeler. Spesielt noe som exploit.SWF, en flash-fil som til slutt utnytter dette sikkerhets teknikk, heap feng shui, som er en fancy måte å si at koden innsiden av at flash-fil spray den såkalte haug inne av datamaskinens nettleser med alle forskjellige biter av minne som er utformet til slutt å overskrive store biter av minne her. Hvis du husker dette fra vår diskusjon i CS50 av haugen og stakken og minnehåndtering mer generelt. Nå minnet som er faktisk kastet på haugen er virkelig kalles flash vektorobjekter. Og dette er noe med som du kan bli kjent hvis du selv hadde programmert Flash før. Men en av disse objekter i særdeleshet er kjent som en flash media lydobjektet. Og her ligger en mulighet fordi hva dette utnytte deretter fortsetter å gjøre er korrupt denne del av hukommelse, dette objektet i minnet, slik at den prøver å gjøre denne heksadesimal adresse kjørbar, og dermed prøver å lure programmet til slutt å gjennomføre noen shell koden slik å snakke, eller bad guy kode, er at slutt lagret på denne adressen her, som ble injisert ved hjelp av nedlasting ubevisst den aktuelle Flash-fil. Nå sluttresultatet kan være uansett motstander ønsker å gjøre med datamaskinen. Han eller hun kan slette filene dine, flytte filer, e-post filene dine, eller egentlig gjøre noe som du selv kunne gjøre som eier av den aktuelle datamaskinen. Og det er derfor trusselen er så skummelt. Det gjør virkelig noen på Internett som nettstedet du kan besøke for å kjøre vilkårlig programmer på datamaskinen. Nå heldigvis, Microsoft svært nylig gitt ut en fiks for dette fordi problemet faktisk plagede Internet Explorer 6 hele veien opp til og med 11. Så det har vært med oss ​​i ganske lang tid og ble først nylig oppdaget. Så hvis du har automatiske oppdateringer slått på, bør du være OK snart. Men bare for å være sikker, kan du sikkert bytte til en annen nettleser minst i mellomtiden. Nå viser det seg også at Microsoft meget sjenerøst også gitt ut en fiks for Windows XP, en eldre versjon av Windows som støtte var faktisk offisielt avviklet bare noen uker siden, men denne trusselen var så ille at de også rullet ut en fiks for at OS også. Nå i andre nyheter denne uken var dette. Atari 2600, en eldre spill konsollen som en fetter av meg hadde faktisk vokser opp på hvilke vi pleide å spille videospill når vi ville besøke huset deres. Nå i alle tilfelle, til at dette var i nyheten var følgende grunn. Tilbake på 80-tallet, har selskapet bak denne enheten, Atari, bestemte seg for å begrave i en deponi i New Mexico en hel haug av gamle spill og bruksanvisninger og lignende som ville ellers har gått usolgt. Nå over tid, begravelsen av disse spill blitt litt av en urban myte. Folk gjorde egentlig ikke vite sikkert hvorvidt dette faktisk hadde skjedd selv skjønt, som myten gikk selskapet hadde selv helte et lag med betong på toppen av alt i deponi for å hindre barna fra faktisk raslet gjennom det, prøver å finne gratis dataspill. Vel, det viser seg at en dokumentar er nå i gang nå i 2014. Og et team av gravemaskiner har prøvd å grave opp sannheten bak denne historien hvis det er faktisk det. Og gjett hva de fant? Vel, ikke akkurat dette fyren, men tusenvis kopier av spillet hans, som ble utgitt samtidig med utgivelsen av film, E.T. Den Utenomjordisk. Så ja, bare de siste dagene dusinvis og hundrevis om ikke tusenvis instans av disse patronene begynner å bli avdekket. Nå hvorfor gjorde de begrave slik et klart overbevisende spill? Vel, det viser seg at E.T. er faktisk kjent av mange for å være den verste videospill noensinne. I del, fordi de hadde så lite tid til å utvikle spillet før det spesielt jula, men også fordi den var spesielt vanskelig å spille. Dette, selvfølgelig, begs spørsmålet, kan vi se det? Ja, det kan vi. La oss ta en titt. [VIDEO GAME SPILLE] Nå var det faktisk ikke grafikk som folk tok innvending til grunn, ja, dette var 80-tallet og dette var state of the art. Dette var faktisk min barndom her. Men det som var vanskelig om dette spillet var, en, du hadde en film ET rundt skjermen, ser for de små piksler, noe som representert Reeses Pieces. Men fangsten er også at hvis du falt inn i de mørkere diamant figurer, du vil falle inn i en gropen som var faktisk veldig vanskelig og kjedelig å komme ut av. Så dermed ble begravet ET. Nå også i ørkenen i sent var dette her i Wyoming. En kjernefysisk, som ikke må forveksles med [? nucular,?] kontrollsenter. Og faktisk, hvis du ser ned er det på undersiden av betong i nærheten av denne hvite pol, det er faktisk en Minuteman III rakett, en atomrakett, det er faktisk beskyttet av noen teknologi som er ikke på langt nær like moderne som du kunne håpe. En amerikansk TV-show, 60 Minutter, nylig avslørte dette. [VIDEOAVSPILLING] -Men utstyret er gammelt. Dette, for eksempel, er en av datamaskinene som ville motta en lansering bestille fra presidenten. Den bruker disketter. De virkelig gamle, store. Før du kom ned her, du hadde sannsynligvis aldri sett en? -Jeg har aldri sett en før Jeg kom ned i dette hullet. [END VIDEOAVSPILLING] Nå hvis du tenker du har sett disse diskene, disse 5 og 1/4-tommers disketter fra 1980-tallet, uh-uh. Dette er en 8-tommers diskettstasjon disk fra 1970-tallet. Nå CS50 egen Dan Coffey og jeg hadde også en mulighet å reise til Seattle, Washington nylig hvor vi besøkte våre venner hos Valve. Faktisk, kan du husker 60 sekunder av meg iført disse virtuelle virkelighet briller. Nå hadde vi også en mulighet til å chatte med tre av Valves ingeniører som snakket med oss ​​om hva det er som å jobbe hos Valve, men enda bedre, hva det er liker å utvikle dataspill. La oss ta en titt. [VIDEOAVSPILLING] [VIDEO GAME SPILLE] -Mitt navn er Brian Jacobson. Jeg gjorde mitt veien til Valve slags i en litt omvei. Jeg var faktisk ikke en datamaskin programmerer i college. Og jeg var vant til å sikkerhets i videregående skole vesen i stand til å gjøre programmeringen og får ting fra idé til gjennomføring i løpet av få minutter eller timer. Jeg likte det raske tempoet i utviklingen og se mine ideer kommer til liv. -Mitt navn er Yahn Bernier. Jeg har vært her hos Valve i over 16 år. Så jeg endte opp med å skrive bare for moro et nivå editor for Quake kalt BSP, basert på binære plass partisjone trær. Det var liksom hovedretten. Og til slutt Gabe Newell, som var den grunnleggeren av Valve, og Mike Harrington sendte meg en email å si programvare utviklingsingeniør mulighet. -Mitt navn er John Cook. Jeg er en programvare ingeniør arbeider hos Valve. Jeg fokuserer på våre elektroniske systemer, skalering og arkitektur. En venn og jeg faktisk på universitetet var jobber med et spill som heter Team Fortress. Og vi bare gjort spillet, sette det opp på internett. Det var et tillegg til spillet, Quake, på den tiden. Så det var liksom en moderne forlengelse av det spillet. Etter at vi endte opp å komme i kontakt med Valve og kommer over her. -Vel, for meg grafikk klassen var trolig den mest aktuelt kurs at jeg tok på college for sikker. Trigonometri, lineær algebra. Jeg tok en robotikk kurs som hadde en haug med lineær algebra slags bakt inn i det, og som er en av de stenen matematiske begreper for noen 3D-grafikk. Det handler om orientering og gjør det matte av lignende, ser jeg over på deg, men jeg ønsker å sikte der borte. Og hvordan kan jeg rotere og hvordan jeg finne ut hvor jeg skal flytte eller ute. Det er alt lineær algebra. -Essensen av et første-person shooter er at jeg ser gjennom kanon med mine øyne og sikte på noe og trykke på avtrekkeren og jeg ønsker å treffe det. Så du må designe din teknologi for å håndtere ventetid. Og så John Carmack gikk tilbake og sa, oh, hva jeg må gjøre er forutsi på klienten resultere min spillerens innganger, og bare gjøre det og gjengi fra der vi tror han kommer til å være, og deretter la serveren komme tilbake og fikse det for meg. -Så når du tenker på ved hjelp av en spillmotor for å lage et spill, det er mange flere muligheter nå. -En spillmotor er snill av infrastrukturen der du gjør i spillet. Det er tingen ansvarlig for tegning verden, for å simulere verden, for å spille alle lydene, for å hjelpe din spillkode finne ut hva fienden AIs kommer til å gå gjøre. -Vanligvis er måten folk ville starte de ville ta noen mengden av den logikken og endre det. Like, OK, nå la oss bare endre rakettkaster å gjøre 200 skader i stedet om å gjøre 100 skader. Det er en veldig enkel, som, bare ta noen eksisterende stykke gameplay logikk og justere den til hvordan du liker. -Den andre høyere nivå lag blir vanligvis kalt spillkode. Og spillet kode er vanligvis ting som handler om spillereglene. Som det faktum at jeg har denne spesielle våpen og det fungerer på en bestemt måte. Eller det faktum at det finnes en headcrab monster som har disse spesielle atferd. Slike ting er vanligvis å finne som spillkode. -Og derfra, egentlig, med de slags stykker og prosessen med iterasjon, du kan gå fra noe sånt Quake til noe sånt som Half-Life. -Half-Life er en sci-fi, første-person shooter spill. Det er satt i en dystopisk verden. Den første Half-Life ble satt i denne underjordiske forskning anlegget kalt Black Mesa. Og du spilte en karakter heter Gordon Freeman. Og det var i utgangspunktet om en invasjon som ble provosert når et eksperiment som gikk galt. Og det andre spillet, Half-Life 2, ble satt ca 10 år senere, og i utgangspunktet, romvesenene hadde tatt over planeten. Og nå er du som Gordon Freeman hadde i utgangspunktet redde din venn, Alex, hvem du møter. Og prøve å slå tilbake romvesener og gjenvinne planeten. -Absolutt, prosjekter som Portal 2, var det bare et lite team, fem personer jobber med et spill idé. De fant noen ting de Tanken var interessant, kunne være interessant for et spill. De utvidet til 20 personer. De fleshed ut disse ideene. Du har lagt noen flere folk. De er like, OK, og nå er vi ønsker å sende på tre konsoller. Vi trenger mange flere mennesker. Som alle, kom og se på dette spillet. Det er kjempeflott. Den trenger bare en haug arbeid å få gjort. Så plutselig har du halve selskapet arbeider, du har 120 personer som jobber på dette spillet for å få det gjort. Selvfølgelig, antall prosjekter andre steder kontrakter, men alle er super glad fordi de vet de jobber med dette ting som er virkelig fantastisk. -En av de virkelig store ting om denne jobben og denne bransjen generelt er at ting forandrer seg hele tiden. Det som du er gjøre dette året kommer å være meget vanskelig fra ting du gjør det neste året. Og så det holder alt egentlig frisk, faktisk, og ganske spennende. Du er stadig å lære nye ting og gjøre nye typer ting. [END VIDEOAVSPILLING] DAVID: Det er det for CS50LIVE. Takk så mye til dette ukens bidragsytere. Takk så mye til CS50 egen Colton Ogden og teamet bak kamera. Dette var CS50. [MUSIC - LOS DEL RIO, "MACARENA"]