[GIOCO MUSICA] ORA: Ciao, mondo. Questo è CS50LIVE. Abbiamo un buon episodio come per voi. Il CEO di YouTube, un bug in Internet Explorer, il videogioco peggiore mai, e una gita a Valve Software. Ma prima, un viaggio a Tokyo, Giappone dove il presidente Obama ha recentemente svolto calcio con un mio buon amico. [RIPRODUZIONE VIDEO] -Wow. Sta muovendo. -Posso calciare un pallone da calcio troppo. Qui vado. -Ehi, buon lavoro. [END RIPRODUZIONE VIDEO] DAVID: Ciao, mondo. Sono qui con del CS50 proprio Colton Ogden. COLTON OGDEN: Ciao a tutti. DAVID: E chi altro abbiamo avere qui con noi oggi? COLTON OGDEN: Questo è il momento, il nostro piccolo amico robotico dalla Francia. DAVID: Così ho effettivamente incontrato NO accanto [? Rob Boden?] quando lui e io eravamo ad Atlanta, Georgia poche settimane fa come si può ricordare a SIGCSE, la Special Interest Gruppo di Computer Science Education, dove letteralmente in giro pavimento della sala conferenza era questo ragazzo. Beh, come si scopre, quando siamo tornati al campus abbiamo scoperto che il professor [Incomprensibile] di Harvard laboratorio di robotica in realtà aveva un ora qui nel campus. E lei gentilmente ci ha permesso programmare lui per voi oggi. COLTON OGDEN: Sì, e in realtà, David, Penso che ora vuole dire ciao a voi se volete andare a piedi intorno al tavolo qui. DAVID: Proprio qui? Bene. Bene. ORA: Ciao, David. Lieto di vederla. DAVID: Ciao, adesso. Stringergli la mano? COLTON OGDEN: Agitare la sua mano su e giù. DAVID: OK. COLTON OGDEN: E poi andrà avanti e sedersi. E se siete interessati, Posso realtà si mostra come ho potuto farlo a fare tutte queste cose. DAVID: Sì, assolutamente. COLTON OGDEN: E 'un po' l'equilibrio di questa mattina. Egli non ha ancora avuto il suo caffè. DAVID: Che cosa è questo stiamo guardando? COLTON OGDEN: Quindi stiamo guardando qui è un grafico nucleo, che è ora un ambiente di programmazione grafica, che è molto simile a Scratch che CS50 utilizza. Qui vediamo è impostato come un diagramma di flusso. E abbiamo un sacco di questi piccoli blocchi qui. Ora, se diamo uno sguardo a questo per esempio, si chiama stare in piedi. E questo blocco dice alzarsi per l'Ora, se lui è seduto o qualsiasi altra cosa. Poi vediamo che va in testa tattile, che sostanzialmente attende un rubinetto in cima la sua testa come si è visto in precedenza. Spostarsi a mezzo muovono in un x, y, z direzione di una destinazione specifica. Stretta di mano è un modulo che ho scritto, che dice in sostanza, ciao, David. Lieto di vederla. Attende per una stretta di mano. Siediti è l'opposto di alzarsi. Andrà avanti e sedersi. E poi il movimento della testa è un ciclo in cui egli sarà muovere la testa in direzioni casuali. DAVID: Interessante. Così, anche se questi non guardano come i pezzi del puzzle da zero, è davvero la stessa idea. E tu sei il cablaggio di un programma utilizzando questi blocchi. COLTON OGDEN: Sì, esattamente. DAVID: Quindi hai detto che hai fatto uno di loro, stretta di mano. Possiamo zoomare su quella? COLTON OGDEN: Certo. Daremo uno sguardo qui a stretta di mano. E vedremo che è impostato molto simile all'altra diagramma di flusso. Iniziamo con il blocco ciao, che [incomprensibile] dice: Ciao, David. Lieto di vederla. Questo qui è un ciclo. Si dice, rileva il movimento del braccio. Quindi lo farà in un infinito ciclo di attesa fino a quando il suo braccio è stata sollevata su e giù. E poi una volta che è successo, si andrà avanti e fare queste cose. Impostare la rigidità OK e passare al fine, il che significa fondamentalmente mandarlo indietro per la sua posizione di default. DAVID: Interessante. Sei limitato solo Utilizzando questo ambiente grafico gli programmare in questo modo? COLTON OGDEN: In realtà, no. Se andiamo avanti e fare doppio clic uno di questi blocchi, possiamo vedere che c'è in realtà codice python sotto il cofano, alimentando ciascuno di questi blocchi. DAVID: Ah, davvero. Quindi, per chi non conosce, python è un linguaggio interpretato, molto simile nello spirito alla PHP, che usiamo in CS50. E proprio come è possibile utilizzare PHP per la programmazione web, potete anche usare dalla riga di comando. E come Colton sta facendo qui in questo ambiente grafico, scrittura di programmi e poi trasmettere via Wi-Fi - COLTON OGDEN: Corretto. DAVID: - ad oggi. Vuoi avere qualche tempo per restare? COLTON OGDEN: Assolutamente. DAVID: Va bene. Beh, prima di Colton torna con noi per un po 'una sorpresa, noi ora - ottenerlo? - abbiamo 60 secondi degli ex studenti CS50 audizioni per diventare insegnamento compagni. [RIPRODUZIONE VIDEO] -Grazie. Grazie a tutti per essere qui. -Ehi, Mr. Bunny. -Benvenuti in questo breve tutorial su - [Incomprensibile] divertimento con Twinkies. -Aspetta. Interrompere. -Così ora abbiamo un problema. -Non lo è. E ho intenzione di dirvi perché. -Un ciclo è la ripetizione, come - -Sort di una scatola nera. -OK. Penso che ho capito. -Va bene. Così ora sono in una zona un po 'difficile. -Che è di destra. 8 bit fanno un byte. -Si prende un byte e separare in blocchi di quattro. -Beep, beep, beep, beep, beep. Bip, bip, bip, bip, bip. -Mi sembra troppo complicato. -Quindi cerchiamo di farlo di nuovo. -Se si confondo, per favore sentitevi liberi di fermarmi. -Ma aspetta un secondo. -Bene, guardiamo indietro alla diapositiva e rompere le cose passo dopo passo. -Se vi ricordate, la memoria è rotto in pezzi byte-size. -Quindi qui abbiamo la migliore delle ipotesi. -Questa è una notevole miglioramento rispetto - -Un browser web, come Chrome. -E 'sempre necessario liberare qualsiasi - -Persone - -È possibile eseguire tutta. E il codice può ottenere un po 'ingombrante. -E questo è tutto ciò che serve. -Boom! DAVID: Ora CS50 propria Dan Coffey e di recente ho avuto l'opportunità di viaggiare fuori a Mountain View, California, che è dove l' quartier generale di Google è. E abbiamo avuto la possibilità di chiacchierare con Susan Wojcicki, il CEO di YouTube. In realtà è stato a Susan garage anni fa, negli anni '90 che Google stessa era avviato da Larry e Sergey. Beh, si scopre che Susan stessa realtà ha preso CS50 pochi anni prima di me. E penso che colpisce come potrete presto sentirete proprio come molto un'introduzione al calcolatore la scienza in modo influenzato la sua vita. Vorrebbe dire ciao. SUSAN Wojcicki: Ciao, mondo. Sono Susan Wojcicki. Io sono il CEO di YouTube. E ho preso CS50 quando ero un anziano ad Harvard nel 1990. Mi è stato effettivamente una storia e la letteratura maggiore. E la mia juniores estate ho capito che forse ho voluto imparare qualcosa sui computer. E così sono tornato. Ho preso CS50. E 'stata dura, ma è stato il più incredibile classe ho preso. E 'cambiato il modo penso di tutto. E quando mi sono laureato ad Harvard nel 1990, sono andato a Silicon Valley e ho trovato un lavoro. E ho lavorato in tecnologia da allora. Così CS50 cambiato la mia vita. Continuo a imparare e costruire. Mi ha dato una grande fondazione. E sto continuando ad imparare ogni giorno come i cambiamenti tecnologici. E penso che sia meraviglioso che si sta prendendo tutto perché è così che il mondo è intenzione di cambiare in futuro. C'è solo sarà più e maggiori opportunità e innovazione. Digital sta andando a influenzare la nostra vive ancor più di quanto non sia già. Ed è meraviglioso che siete tutti prendendo CS50. Quindi questo è CS50. DAVID: Quindi, se siete stati alla ricerca di una nuova ragione non utilizzare un determinato browser qui è un bene per voi. Recentemente ho ricevuto - d'accordo con tutti alla Harvard University - questa e-mail qui. "Cari membri della Comunità Harvard. Il Department of Homeland Security degli Stati Uniti raccomanda che tutti gli utenti temporaneamente interrompere l'utilizzo del Microsoft Internet Explorer, IE, a causa di una falla di sicurezza critica. " Questo è documentato in realtà Microsoft Security Advisory 2963983. Una vulnerabilità in Internet Explorer potrebbe consentire l'esecuzione di codice in modalità remota. Ora, cosa significa questo e qual è la minaccia? Beh, considerare questo diagramma qui, che ci utilizzare in CS50 per parlare HTTP o traffico web. Se abbiamo qui una web server e sull'altro lato un browser - Internet Explorer in questo caso - ovviamente, un browser quando prima richiede una pagina web potrebbe inviare un messaggio HDP come questo. GET index.html utilizzando la versione 1.1 del protocollo noto come HTTP. Ora, in questo caso, se un ragazzo cattivo ha in qualche modo ha avuto accesso a questo server web e installato su di esso un sfruttare per così dire, lui o lei potrebbe essere in grado di convincere il server web per restituire questo. Non solo index.html se stesso come richiesto, ma incorporato all'interno di quel file index.html potrebbe, Naturalmente, sia altre attività. In particolare, qualcosa come exploit.SWF, un file flash che alla fine approfitta di questa sicurezza tecnica, mucchio feng shui, che è un modo elegante per dire che il codice all'interno di tale spray di file flash cosiddetta mucchio all'interno del computer browser con tutti i diversi pezzi di memoria che sono progettati in definitiva sovrascrivere grandi blocchi di memoria qui. Se vi ricordate questo dalla nostra discussione in CS50 della heap e lo stack e più in generale la gestione della memoria. Ora la memoria che è effettivamente gettato sul mucchio sono realmente chiamati oggetti vettoriali flash. E questo è qualcosa con che si potrebbe avere familiarità se ti avessi programmato Flash prima. Ma uno di quegli oggetti in particolare è conosciuto come un oggetto sonoro flash media. E qui sta l'occasione perché ciò che questo exploit poi procede a fare è corrotto questo pezzo di memoria, questo oggetto in memoria, tale che cerca di fare questo Indirizzo eseguibile esadecimale, quindi cercando di ingannare il programma definitiva per l'esecuzione di codice shell così di parlare, o il codice cattivo ragazzo, che è infine memorizzato in questo indirizzo qui, che è stato iniettato mediante download inconsapevolmente quel particolare file flash. Ora il risultato finale potrebbe essere qualunque avversario vuole fare al computer. Lui o lei potrebbe eliminare i file, spostare i file, inviare i tuoi file, o realmente fare qualcosa che voi stessi potrebbe fare come il proprietario di quel computer. Ed è per questo che la minaccia è così spaventoso. Permette veramente chiunque sul internet il cui sito web si potrebbe visitare per eseguire arbitrari programmi sul computer. Ora per fortuna, Microsoft molto recentemente rilasciato una correzione per questo perché il problema effettivamente afflitto Internet Explorer 6 tutta la strada fino a 11. Così è stato con noi per un bel po ' tempo ed è stato scoperto solo di recente. Quindi, se avete gli aggiornamenti automatici acceso, si dovrebbe essere OK presto. Ma giusto per essere sicuri, si potrebbe sicuramente passare a qualche altro browser almeno nel frattempo. Ora si scopre anche che Microsoft molto generosamente inoltre rilasciato una correzione per Windows XP, una versione precedente di Windows per cui Supporto in realtà era ufficialmente interrotto solo poche settimane fa, ma questa minaccia è stata così male che inoltre implementato una correzione per tale sistema operativo pure. Ora, in altre notizie di questa settimana è stata questa. L'Atari 2600, un gioco vecchio console che una mia cugina avevano effettivamente crescere su cui abbiamo usato per giocare ai videogiochi quando ci piacerebbe visitare la loro casa. Ora, in ogni caso, perché questo era nella notizia è stata per il seguente motivo. Già negli anni '80, l'azienda dietro a questo dispositivo, Atari, ha deciso di seppellire in un discarica in New Mexico un sacco di vecchi giochi ei manuali e simili che avrebbe altrimenti sono andati invenduti. Ora nel corso del tempo, la sepoltura di questi giochi diventano un po 'una leggenda metropolitana. La gente in realtà non sanno per certo se questo fosse realmente accaduto, anche anche se, come il mito è andato, la società aveva anche versato uno strato di calcestruzzo sulla cima di tutto nel discarica per evitare che i bambini dalla realtà fruscio attraverso di essa, cercando di trovare i videogiochi gratuiti. Beh, si scopre che un documentario è ora in corso oggi nel 2014. E una squadra di escavatori ha cercato a scavare la verità dietro questa storia se è davvero lì. E indovinate cosa hanno trovato? Beh, non esattamente questa ragazzo, ma migliaia di copie del suo gioco, che è stato rilasciato coincidente con l'uscita del film, E.T. L'Extraterrestre. Così infatti, proprio in questi ultimi giorni decine e centinaia se non migliaia in ultima analisi, di queste cartucce stanno iniziando a essere portato alla luce. Ora, perché si seppelliscono tale un gioco chiaramente convincente? Beh, si scopre che E.T. in realtà è reputato da molti come il peggior gioco di video mai. In parte, perché avevano così poco tempo per sviluppare il gioco prima che particolare periodo natalizio, ma anche perché era particolarmente difficile da giocare. Questo, naturalmente, pone la domanda, possiamo vederlo? Sì, possiamo. Diamo uno sguardo. [GIOCO VIDEO GAME] Ora non era in realtà l' Grafica che le persone hanno obiezioni al perché, in effetti, questo era il '80 e questo era lo stato dell'arte. Infatti, questa è stata la mia infanzia qui. Ma ciò che è stato difficile su questo gioco era, uno, hai avuto un film ET intorno schermo, guardando per quei piccoli pixel, che rappresentata Reese Pieces. Ma il fermo troppo è che se sei caduto in quei rombi scuri, si potrebbe cadere in una Pit che era in realtà molto duro e noioso per uscire. Così così fu sepolto ET. Ora, anche nel deserto di la fine è stato questo qui in Wyoming. Un nucleare, da non confondere con [? nucular,?] centro di controllo. E infatti, se si guarda verso il basso là sotto il calcestruzzo nei pressi di questo polo bianca, c'è in realtà un missile Minuteman III, un missile nucleare, che in realtà protetta da una tecnologia che è non così moderno come si potrebbe sperare. Uno show televisivo americano, 60 Minuti, recentemente rivelato questo. [RIPRODUZIONE VIDEO] -Ma l'apparecchiatura è antica. Questo, per esempio, è uno dei computer che avrebbe ricevuto un lancio ordinare dal presidente. Esso utilizza dischi floppy. Le davvero vecchi, quelli grandi. Prima hai giù qui, probabilmente non aveva mai visto uno? -Non avevo mai visto uno fino Scesi in questo buco. [END RIPRODUZIONE VIDEO] Ora, se stai pensando Dopo aver visto questi dischi, quei 5 e 1/4-inch dischi dal 1980, uh-uh. Questo è un floppy da 8 pollici disco dal 1970. Ora di CS50 proprio Dan Coffey e ho anche avuto l'opportunità di recarsi a Seattle, Washington ha recentemente dove abbiamo visitato i nostri amici a Valve. In realtà, si può ricordare 60 secondi di me indossa questi occhiali di realtà virtuale. Ora abbiamo anche avuto l'opportunità di chattare con tre ingegneri di Valve che ci ha parlato di ciò che è come lavorare a Valve, ma meglio ancora, di cosa si tratta Desidero sviluppare videogiochi. Diamo uno sguardo. [RIPRODUZIONE VIDEO] [GIOCO VIDEO GAME] -Il mio nome è Brian Jacobson. Ho fatto il mio modo di Valve tipo di in un percorso leggermente tortuoso. Non ero in realtà un computer programmatore in un college. E io ero abituato a eseguire il in essere liceo in grado di fare programmazione e ottenere roba dall'idea alla realizzazione in pochi minuti o ore. Ho apprezzato che ritmo rapido di sviluppo e vedendo le mie idee prendono vita. -Il mio nome è Yahn Bernier. Sono stato qui a Valve per oltre 16 anni. Così ho finito per scrivere solo per divertimento un editor di livelli per Quake chiamato BSP, basato su binario Alberi spazio di partizionamento. Quella era una sorta di antipasto. E alla fine Gabe Newell, che era il fondatore di Valve, e Mike Harrington mi ha mandato una mail dicendo software opportunità di sviluppo tecnico. -Il mio nome è John Cook. Sono un ingegnere del software lavorare a Valve. Mi concentro sui nostri sistemi online, scala, e l'architettura. Un amico e io in realtà in università erano lavorando su un gioco chiamato Team Fortress. E abbiamo appena fatto il gioco, metterlo su internet. Era un'aggiunta alla gioco, Quake, al momento. Quindi era una sorta di moderno estensione di tale gioco. Dopo di che, abbiamo finito entrare in contatto con Valve e venire qui. -Beh, per me la classe Graphics era probabilmente il corso più applicabile che ho preso al college di sicuro. Trigonometria, algebra lineare. Ho seguito un corso di robotica che ha avuto un mazzo di tipo lineare di forno in esso, e che è una delle chiave di volta concetti matematici per qualsiasi grafica 3D. E 'tutta una questione di orientamento e di fare il matematica di come, sto guardando oltre a voi, ma voglio puntare laggiù. E come faccio a ruotare e come posso capire dove mi sto spostando o in cerca. Questo è tutto algebra lineare. -L'essenza di uno sparatutto in prima persona è che io guardo attraverso i siti di pistola con i miei occhi e mirano a qualcosa e tirare il grilletto e voglio colpire quella. Quindi bisogna progettare la vostra la tecnologia per affrontare la latenza. E così John Carmack è tornato e disse: oh, che cosa devo fare è prevedere sul client risultato ingressi del mio giocatore, e giusto farlo e rendering da dove siamo credo che sarà e poi lasciare il server di tornare e risolvere il problema per me. -Così, quando stai pensando utilizzando un motore di gioco per fare un gioco, ci sono molte più opzioni ora. -Un motore di gioco è una specie dell'infrastruttura in cui si effettua il gioco. E 'la cosa responsabile per il disegno il mondo, per simulare il mondo, per la riproduzione di tutti i suoni, per aiutare il vostro codice di gioco capire cosa il nemico IA stanno per andare a fare. -Di solito, il modo in cui la gente iniziare è che avrebbero preso una certa quantità di quella logica e modificarlo. Come, OK, ora facciamo solo cambiare il lanciarazzi per fare 200 danni invece di fare 100 danni. E 'molto semplice, come, basta prendere qualche pezzo di logica gameplay esistente e modificarlo a tuo piacimento. -L'altro strato di livello superiore di solito è chiamato codice del gioco. E il codice del gioco è di solito l' cosa che è tutta una questione di regole del gioco. Come il fatto che ho questa particolare arma e funziona in un modo particolare. O il fatto che c'è un mostro che headcrab ha questi comportamenti particolari. Questo genere di cose sono tipicamente da trovare, come codice di gioco. -E da lì, davvero, con quelli tipo di pezzi e processo di iterazione, si può andare da qualcosa come Quake a qualcosa come Half-Life. -Half-Life è un sci-fi, in prima persona sparatutto. E 'ambientato in un mondo distopico. Il primo Half-Life è stato fissato in questa struttura di ricerca sotterranea chiamato Black Mesa. E hai giocato un carattere di nome Gordon Freeman. Ed è stato sostanzialmente su un'invasione aliena che è stato provocato quando un esperimento andato male. E il secondo gioco, Half-Life 2, è stato fissato a circa 10 anni più tardi, e in fondo, gli alieni aveva preso il pianeta. E ora come Gordon Freeman ha dovuto salvare fondamentalmente il tuo amico, Alex, che si incontra. E cercare di battere indietro l' alieni e recuperare il pianeta. -Certo, progetti come Portal 2, era solo una piccola squadra, cinque persone lavorando su un'idea gioco. Hanno trovato alcune cose che pensiero era interessante, potrebbe essere interessante per un gioco. Hanno ampliato a 20 persone. Essi concretizzate quelle idee. Hai aggiunto alcune altre persone. Sono come, OK, e ora siamo vogliono spedire su tre console. Abbiamo bisogno di molte più persone. Come tutti, venite guardare a questo gioco. E 'impressionante. Ha bisogno solo di un po ' di lavorare per fare. Così improvvisamente avete semestre la società di lavoro, hai 120 persone che lavorano su questo gioco per farlo fare. Ovviamente, il numero di progetti altrove contratti, ma ognuno è super felici perché sanno che stanno lavorando su questo cosa che è davvero impressionante. -Una delle cose veramente grandi su questo lavoro e questa industria in generale è che le cose cambiano tutto il tempo. La cosa che sei facendo quest'anno sta andando essere molto difficile dal cosa che fai l'anno prossimo. E così mantiene tutto davvero fresco, in realtà, e piuttosto eccitante. Stai continuamente imparare nuove cose e fare nuovi tipi di roba. [END RIPRODUZIONE VIDEO] DAVID: Questo è tutto per CS50LIVE. Grazie così tanto a questo collaboratori della settimana. Grazie tanto per il proprio Colton del CS50 Ogden e la squadra dietro la macchina da presa. Questo era CS50. [MUSICA - LOS DEL RIO, "MACARENA"]