>> [MUSIC PLAYING]
[MUSICA - ROSSINI, "RANZ DES VACHES "dal Guglielmo Tell]
>> [MUSICA - THE BEAT INGLESE, "MARZO DEI CAPI Orientamento "]
>> [Applausi e tifo]
>> DAVID MALAN: Quindi questo è CS50.
Il mio nome è David Malan.
E il 73% di voi non hanno alcuna esperienza precedente con l'informatica,
contrariamente a quanto si potrebbe pensare.
Così oggi abbiamo pensato di sgretolare a che la mancanza di familiarità, ma anche
vi darà un senso di, per quelli di voi più comfort, quali direzioni
si può andare in questo semestre.
>> Quindi cominciamo con questo.
Io davvero non ho idea di quello che c'è dentro di un computer, anche se, come te, ho
usare ogni giorno.
Ma è una specie di scatola, e non c'è non molti ingressi in esso.
Minimamente, non c'è, che cosa?
Probabilmente un cavo di alimentazione.
>> E in effetti con questo ingrediente, elettricità, ci sembrano essere in grado di
facendo un bel po 'in questi giorni.
Ma alla fine della giornata, abbiamo devono rappresentare le cose
che ci sta a cuore.
Dobbiamo rappresentare le informazioni in qualche forma.
E tu sei probabilmente almeno vagamente familiarità con l'idea di binario o
bit in qualche modo, i computer ridotta a zero e uno.
Ma possiamo abbracciare e che almeno mettere un po 'di luce a questo?
>> Così ho questi piccoli lampade da tavolo qui.
Ho una presa elettrica qui.
E ho intenzione di proporre che all'interno del mio computer è almeno uno dei
queste cose, qualcosa capace di essere acceso o spento.
In questo caso, è davvero una lampada da tavolo, ma a livello più basso, è qualcosa
chiamato un transistor.
>> Ma nel nostro mondo, è una lampada da scrivania, in modo Ho intenzione di andare avanti e collegare questo
nella mia elettricità qui.
E io sostengo che l'utilizzo di questo semplice, semplice dispositivo, questo semplice interruttore, ho
può rappresentare informazioni.
Per esempio, in questo momento, io sono rappresenta niente, giusto?
Sto rappresentando ciò che io chiamo 0 o falso, il contrario di qualcosa
effettivamente essere presenti.
Ma se io semplicemente rivolgo questo interruttore, ora ho rappresentato un 1.
Quindi, utilizzando questo semplice pezzo di memoria, se si vuole, mi può rappresentare
informazioni.
>> Ora, purtroppo, il mio computer non può fare più di tanto.
Esso può rappresentare solo due valori in tutto il mondo -
0 o 1.
Ma che cosa è una soluzione ovvia, ora, se vogliamo espandere il nostro computer di
memoria e rappresentare più che solo 0 e 1?
>> Bene, cerchiamo di prendere un altro po 'così.
Andiamo a prendere un altro interruttore, un altro transistor, comunque ti piacerebbe
pensarci.
Lasciami andare avanti e collegarlo nel mio computer come bene.
E ho intenzione di rivendicare, ora, che da utilizzando un po 'più elettricità e
girando più di questi switch on e fuori, posso rappresentare più tale
informazioni.
>> Quindi, in questo momento, questo è 1.
Se voglio ora rappresentare 2, avrei potuto fare questo.
Ma in genere, convention, come vedremo finalmente vedere, avrà a fare questo.
Quindi questo è 0, questo è 1.
Questo sarebbe 2.
E non a caso, questo sarebbe 3.
>> In questo modo, comunque, possono contiamo ancora di più?
Se ho un terzo bit, un terzo interruttore, qual è il numero più alto che posso ora
contare fino a da 0?
Quindi 7 se sto partendo da 0, giusto?
Perché se mi rivolgo questa luce accesa e effettivamente collegare questa terza e ultima
luce nella mia presa di corrente qui, poi ho la capacità di rappresentare
qualsiasi dei due valori qui, due valori qui, due valori qui -
e quindi posso rappresentare 2 volte 2 volte 2, o otto possibili valori.
E se mi metto contabilità a 0, quindi questo è 0, 1, 2, 3, 4, 5, 6, 7.
>> Quindi questo binario.
E 'davvero così semplice come sembra.
E direi che questo è in realtà abbastanza familiare alla maggior parte
tutti in questa stanza.
Lasciami andare avanti e aprire un piccolo editor di testo qui.
>> E si potrebbe richiamare dalla scuola elementare che avevamo cose come le centinaia
luogo, il posto delle decine, e quelle posto.
E ricorda che se tu avessi qualche decimale numero, come qualcosa di casuale
come il 123, si farebbe essenzialmente scrivere che in forma
di questi tre colonne.
E perché è 1, 2, 3 quello che noi conosciamo come 123?
Ebbene, nella colonna più a sinistra, abbiamo uno 100 più due 10s, così che è 120,
più tre 1s, così che è 123.
>> Ora questo mondo che abbiamo appena illuminati è esattamente lo stesso come
siete stati a conoscenza da anni, solo che adesso, le nostre colonne
non sono potenze di 10.
Sono solo potenze di 2.
Così, mentre questo è il posto quelle, questo sta per essere il luogo in gruppi di due, questo è
sarà il posto a quattro zampe.
>> E poiché Io uso solo la più semplice di meccanismi per cambiare le cose
on e off - elettricità fluisce o di energia elettrica non scorre -
Non ho ben ho la stessa espressiva Campo da 0 a nove.
Abbiamo intenzione di tenerlo super semplice in questo mondo di computer.
Ho solo 0 o 1 -
spento o acceso, falso o vero.
>> E così quello che sto rappresentando in questo momento è 1, 1, 1, perché ciascuno di essi
le luci sono accese.
Beh, questo mi dà un 4 più uno due, in modo da che è 6, più un 1, e questo è 7.
E ergo fa questa sequenza di tre bit rappresentano il numero 7.
>> Quindi tutto questo tempo, all'interno della vostra calcolatore, sono stati qualsiasi numero di
transistori, qualsiasi numero di bit.
Ma alla fine della giornata, abbiamo può rappresentare informazioni
più semplicemente quello.
Ora, purtroppo, abbiamo solo contato fino a 7 in CS50 finora, ma
speriamo di fare un po ' meglio di così.
E in effetti possiamo.
>> Supponiamo che noi, come esseri umani solo arbitrariamente deciso che ci accingiamo
associare numeri come 1 e 2, 3, 4, 5, 6, 7, con lettere specifiche di
l'alfabeto.
E per ragioni storiche, ho intenzione di Comincio un po 'arbitrariamente, ma sono
per dire, gli esseri umani, ci accingiamo a decidere come standard, a livello globale, che
65 rappresenta il numero la lettera A. 66 rappresenterà B. Dot, puntini, puntini.
90 rappresenterà la lettera Z.
>> E supponiamo, se davvero mettere un po ' pensiero in esso, si potrebbe venire
con i numeri di punti esclamativi e le lettere minuscole, e anzi,
altre persone hanno fatto per noi.
Così ora abbiamo avuto punte con cui possiamo rappresentare i numeri, i numeri con i quali
possiamo rappresentare lettere, e con lettere possono ora iniziare a comporre
messaggi di posta elettronica e caratteri di stampa sullo schermo.
>> Quindi, mi permetta di invito, se potessi, otto volontari coraggiosi -
che non mente che appare non solo sulla macchina fotografica, ma su internet -
di venire qui e rappresentano otto tale bit, piuttosto che questi tre.
Così come su uno, due?
Che ne dici di tre?
Che ne dici di quattro in luce blu, cinque alla fine?
A proposito qualcuno qui?
Sei di fronte, sette davanti, e otto di fronte, pure.
>> Così ho solo così è capitato di venire preparati con tutta una serie di strisce di carta.
E su questi pezzi di carta sono numeri che rappresentano le colonne
voi ragazzi stanno andando a rappresentare.
Così si sarà - come ti chiami?
>> STUDENTE: Anna Lia.
>> DAVID MALAN: Anna Leah, è sarà la colonna 128s.
Lei è?
>> STUDENTE: Chris.
>> DAVID MALAN: Chris volontà essere la colonna 64s.
Lei è?
>> STUDENTE: Dan.
>> DAVID MALAN: Dan essere la colonna 32s.
>> STUDENTE: Pramit.
>> DAVID MALAN: Pramit volontà essere la colonna 16s.
>> STUDENTE: Lillian.
>> DAVID MALAN: Lillian sarà il 8s.
>> STUDENTE: Jill.
>> DAVID MALAN: Jill volontà essere la colonna 4s.
>> STUDENTE: Maria.
>> DAVID MALAN: Maria sarà il 2s, e?
>> STUDENTE: David.
>> DAVID MALAN: David volontà essere la colonna 1s.
Quindi, se voi ragazzi poteste passo un po ' avanti in modo che tutti possano vedere.
Che voi ragazzi non si vede è che il retro di questi fogli di carta è un
piccolo foglietto che sta per istruire questi otto bit a uno
alzare la mano o no alzare la mano.
Se la mano va su, sono rappresenta un 1.
Se la mano resta giù, sono rappresenta un 0.
>> Nel frattempo, abbiamo il pubblico dovrebbe essere in grado di capire, in base a questo
mappatura, cosa parola di tre lettere questi persone stanno per precisare.
Quindi, in un momento, si sta andando a leggere la prima riga dal retro di
il vostro foglietto, e tu sei uno dei due andando ad alzare o non alzare la mano.
Se sei un 1, si alza, se sei un 0, tu stai lì
goffamente, proprio così.
Go.
Che numero, prima di tutto, stanno rappresentando questi ragazzi?
>> 66.
66, giusto?
Abbiamo un 1 nella colonna 64s, un 1 nella colonna 2s.
Questo mi dà 66, in modo da visualizzare di rappresentare B. Quindi
voi ragazzi hanno scritto -
OK, questo è sufficiente.
B.
>> Così ora passiamo sul la seconda lettera.
Go.
Chi è più veloce in matematica qui?
Così 79.
Anche in questo caso, se sommiamo tutte le colonne in cui c'è un 1, attualmente, basta
come abbiamo fatto prima con il più semplice di esempi di 7, ora
ottenere il numero 79.
Che secondo la nostra mappatura è il lettera O. Così ci siamo quasi.
B, O. E, infine, andare.
>> Che cosa stanno rappresentando ora?
Meno consenso.
Questo è solo un mormorio assoluto.
Sì, è in realtà 87.
Buono.
>> Quindi, se abbiamo un mappa che indietro fino a - diamo iniziare a chiamare la nostra tabella ASCII,
Americana Standard Code for Information Interchange.
Questo ci dà la lettera -
non "bo", ma "arco". E questo è un perfetto spunto per voi ragazzi a prendere un arco
e la testa sulla schiena.
Grazie mille.
>> [Applausi]
>> DAVID MALAN: è possibile tenerli.
Anche se in realtà, qualcuno dovrebbe come una lampada da tavolo, anche?
>> [HOOT DAL PUBBLICO]
>> DAVID MALAN: Lampada da scrivania?
>> [Risata]
>> DAVID MALAN: Davvero?
Lampade da tavolo per tutti?
D'accordo.
Così cominciare dal più semplice dei principi, abbiamo ora non solo contato
su da 0 tutta la strada fino a 7, abbiamo ipotizzato che proprio da buttare di più
bit o più luci o più transistor a questo problema, possiamo
rappresentare i numeri sempre più grandi, e ergo, gamme sempre più grandi di
alfabeti, come l'inglese.
E proprio diamo sulla fede per oggi che allo stesso modo potremmo iniziare a
rappresentare grafica e video e qualsiasi numero di altri mezzi di comunicazione con cui siamo
familiare oggi.
>> Quindi questo è CS50, ed in questa classe a fianco di voi sono, ancora una volta, molto numerosi
compagni di classe che hanno come poco esperienza come te.
E Dico questo solo perché molto spesso, anche di recente, uno dei
la matricola consulenza eventi e alle sophomore della scorsa primavera consulenza
evento, si sente spesso studenti declinano quando venire al tavolo CS, bene,
Ho pensato di prendere questo classe intro, ma io non sono davvero un
persona computer.
Oppure, ma tutti sicuramente sa più di me.
E ho messo questo nel font più grande possibile, di trasmettere questo messaggio che
questo non è effettivamente il caso.
>> E se vi state chiedendo, dovrebbe Io, infatti, essere qui?
Rendetevi conto che non è solo di questo corso titolo Introduzione alla Computer
Scienza, è Introduzione alla Computer Scienza I. Quindi non vi è infatti
un secondo tale introduzione.
Quindi non sei, infatti, nel posto sbagliato.
E tra gli obiettivi che ho per oggi sono a placare tali preoccupazioni si
potrebbe avere, ma anche per dipingere un foto di quello che c'è in serbo per
gli studenti di meno e più confortevole allo stesso modo in questo corso.
>> Ma prima, una parola su una delle dispense che avete oggi, tra i quali
sono una serie di domande frequenti.
E 'stata una visione del nostro per un certo tempo ora di introdurre una nuova classificazione
opzione in questo corso - vale a dire, SAT / UNSAT.
Filosoficamente per me, è molto molto, molto più importante che la
studenti in questa classe si confrontano con il materiale, essere contestata dal
materiale, e preoccuparsi molto, molto meno su la meccanica di punteggi effettivi
e gradi di lettera al semestre di fine, ma vivere l'
corso e il suo materiale.
E proprio questo si sente, più in generale, per ciò che è interessante per loro, a
sentirsi sfidati e premiati, ma senza paura di fallire.
>> E in effetti, anche questo è un ricorrente tema in questo e in altri introduttivo
corsi in altri campi, che avete questa trepidazione quando si tratta di
mettere i propri piedi in acque sconosciute.
Io stesso, nel 1995, era una matricola.
Ero molto concentrato sul benessere un concentratore Gov qui.
Eppure avevo sempre cresciuto con un po ' di un interesse per l'informatica.
Sono sempre stato curioso.
>> Ma allora, ancora, ho avuto questa paura di nemmeno mettere piede in CS50, tanto
in modo che non ho nemmeno negozio esso anno da matricola.
E l'unico motivo per cui ho messo un piede in porta secondo anno è stato perché ho
è stato permesso di prendere pass / fail.
Ma anche Pass / Fail richiesto che ottengo il coraggio di prendere un appuntamento
con il professor Kernehan, al momento, portare questo grande foglio di carta, e chiedere
lui per la sua firma e il suo il permesso di esplorare
queste acque sconosciute.
>> E non ha aiutato negli ultimi anni che quando si fa questo in CS50, quando abbiamo
usato per essere pass / fail, similmente sarebbe decine o centinaia di tuoi compagni di classe
avere a venire, Dio non voglia, al davanti a Sanders con questa forma, che
in alcune menti rappresenta una incapacità, Oserei dire, per eseguire
sono di livello i vostri coetanei.
Il che è ridicolo, ma io credo che c'è quella mentalità.
E non c'è mai stato in questa cultura di SAT / UNSAT, o passa / non passa più
generalmente, in questo corso, o davvero in questo campus.
>> Così quest'anno abbiamo cambiato quello.
Sarei metà estatica di questa classe o più finita
per prendere CS50 SAT / UNSAT.
In un anno di tempo, sarebbe meraviglioso se quasi tutti sono.
Successivamente forse lavoreremo sulla lettera gradi di Harvard
Collegio più in generale.
Ma per ora, lo faremo all'interno della nostra proprio ambito, e lo farei di cuore
invitiamo a rivedere le domande frequenti e porre domande, come si vede in forma, in modo che
speriamo che, a differenza di me, non sarà abbastanza avere lo stesso fattore di paura quando
esplorare ciò che è probabilmente un luogo sconosciuto.
>> Così che cosa è CS50?
Si tratta di una introduzione al aziende intellettuale di informatica
la scienza e l'arte della programmazione.
Ma che cosa significa in realtà?
>> Beh, finora, abbiamo parlato molto brevemente di rappresentazione delle informazioni.
Ma supponiamo che vogliamo davvero di fare qualcosa con esso.
Abbiamo bisogno di introdurre la nozione di quello che chiameremo un algoritmo.
Un algoritmo è una procedura, un processo, un insieme di istruzioni per
fare qualcosa.
>> E un algoritmo può essere qualcosa super semplice.
Per esempio, un esempio con cui alcuni di voi potrebbe avere familiarità è presente
cosa qui.
Quindi questo libro qui è sempre più datato, ma un tempo, si
conteneva un sacco di nomi e numeri di telefono.
E in effetti, se volevo trovare qualcuno in questa rubrica -
dire, qualcuno di nome Mike Smith -
Sono riuscito a trovare Mike Smith in qualsiasi numero di modi abbastanza semplici.
Potrei cominciare dall'inizio e passare alla pagina 1, non c'è.
Pagina 2, non c'è.
Page 3.
E 'questo algoritmo, è che processo, giusto?
>> Quindi è corretto, giusto?
Sono un po 'un idiota per farlo in che modo, ma alla fine lo farò
trovare il cognome S, e si spera Mike è in quella sezione, e io diventerò
fatto con il mio algoritmo.
Ma sicuramente non è intuitivo.
La maggior parte ogni uomo ragionevole in questo camera non avrebbe fatto questo.
Che cosa avresti fatto?
>> Saresti andato dritto al centro, giusto?
Circa a metà.
E ti rendi conto, oh, questi sono i Ms. Così Mike Smith, il cognome essendo Smith,
non è, chiaramente, quindi nel la metà sinistra del libro.
Egli deve essere verso il S 'nel giusto.
E a questo punto, anche se la maggior parte di noi non fare questo, in realtà, possiamo
letteralmente strappare questo problema a metà.
>> [Applausi e applausi]
>> DAVID MALAN: Grazie.
>> [Applausi e applausi]
>> DAVID MALAN: si può letteralmente strappare questo problema a metà, lasciandomi con,
letteralmente, un problema grande come un mezzo.
Quindi, se questa rubrica è stata - ed è probabilmente era - circa 1.000 pagine, ora
è solo 500.
Se lo faccio di nuovo questo e mi rendo conto, oh, accidenti, sono andato troppo lontano, io sono in Ts
sezione, posso allo stesso modo -
metaforicamente o letteralmente -
strappare l'elenco telefonico - era in realtà molto più facile che il tempo.
Posso letteralmente strappare la rubrica telefonica a metà, lasciandomi ora con
non 1.000, non 500 -
250 pagine.
E posso andare a 125, e la metà di quello, e metà di quella, e la metà di questo,
fino a quando finalmente sarò lasciato con solo una singola pagina.
>> [Risata]
>> DAVID MALAN: Questo è il parte non riesco a.
Una pagina singola su cui Mike si spera sia.
Ora quelle differenti algoritmi possono essere sorta di o che siano valutate in
modi diversi.
Il primo è stato molto lineare, giusto?
Girare pagina, cercare Mike.
E 'molto lineare.
Se c'è ancora una pagina nel telefono libro, è probabilmente andando a prendere me
un altro secondo, una unità di tempo, tuttavia stiamo calcolando il tempo.
>> Quindi potrei disegnare come questa questa linea qui, per cui la dimensione della
problema aumenta da sinistra a destra -
rubrica telefonica diventa più piccolo al più grande -
e il tempo è destinato ad aumentare in l'asse verticale, maggiore
la rubrica è.
Quindi n è solo una variabile generale che gli informatici utilizzano per rappresentare
qualche valore, qualche numero.
Quindi n è destinato ad aumentare linearmente.
Raddoppia la dimensione della rubrica telefonica, è andando a prendere me il doppio
tempo, molto probabilmente, di trovare Mike.
>> Ora avrei potuto essere intelligente su questo, giusto?
Stavo annoiando in fretta.
Avrebbe potuto fare questo a due a due.
Così due pagine, poi quattro, poi sei, poi otto.
E potrei iniziare a volare attraverso un piccolo più velocemente, seppure a rischio minore di
overshooting Mike, ma che la curva non è sta per essere così diverso.
E 'ancora in corso di essere un dritto linea, ma leggermente più veloce.
>> Ma che cosa ho fatto?
Ho effettivamente fatto qualcosa fondamentalmente meglio.
Ho ottenuto quello che noi chiameremo logaritmica tempo, registro di n, per cui questo verde
linea ha una molto, molto, molto edge meno direttamente ad esso.
E invece, suggerisce, come una sorta di tende all'infinito mai così a poco a poco,
che ho potuto effettivamente prendere un 1.000-pagina rubrica telefonica, raddoppiare le sue dimensioni
l'anno prossimo - perché supponiamo che un sacco sempre più persone si muovono in città.
>> Così ora ho 2.000 pagine, ma come molti più passi è che più intelligenti
algoritmo di andare a prendere?
Solo una.
Voglio dire, che è una cosa potente.
Se andiamo a 4.000 pagine l'anno prossimo, che sta andando a prendere me
solo altri due passi.
Così si può buttare sempre più grande problemi a me, non a differenza del web è
gettando i problemi sempre più grandi ogni giorno alle Googles e Facebooks di
il mondo, e non è un grande affare.
Perché ho messo più il pensiero e la cura in mio algoritmo con cui risolvere
problemi in modo efficiente.
>> E in effetti, che sarà uno dei gli obiettivi di questo corso.
Si vuole, lungo la strada, imparare a programmare.
Potrai imparare a programmare in qualsiasi numero di lingue.
Ma alla fine della giornata, il corso è sulla risoluzione dei problemi e ottenere
meglio a risolvere i problemi - e, come in casi come questo, la risoluzione di problemi
più efficiente.
>> Ora, finora, abbiamo fatto questa abbastanza intuitivo.
Cerchiamo di introdurre qualcosa di abbastanza generico chiamato pseudocodice.
Così avremo finalmente arriviamo, in questo corso, per
vari linguaggi di programmazione.
Ma oggi lo faremo in inglese-come sintassi, dove basta sorta di dire
quello che vuoi dire, ma tu sei sempre così succinta e non si preoccupano di
grammatica e frasi complete.
Devi solo esprimerti come conciso possibile.
>> Così pseudocodice è simile all'inglese sintassi che rappresenta
un linguaggio di programmazione.
E verso quel fine, lasciatemi propongo ora modellare il processo che abbiamo appena
descritto di contare qualcosa di un po ' diversamente, questa volta prendendo un
guardate questo video di cinque minuti prodotto dai nostri amici di TED che
definisce ciò che è pseudocodice, definisce ciò che pensiero algoritmico è, e anche
se l'esempio che state per vedere è, in se stessa, super semplice, è
intenzione di iniziare a darci il mentale modello, il vocabolario, con cui
fare molto, molto più complessa algoritmi abbastanza rapidamente.
>> [BEGIN RIPRODUZIONE VIDEO]
>> [MUSIC PLAYING]
>> NARRATORE: Che cos'è un algoritmo?
In informatica, un algoritmo è un set di istruzioni per la risoluzione di alcuni
problema passo per passo.
Tipicamente, gli algoritmi vengono eseguiti da computer, ma noi umani abbiamo
algoritmi, pure.
Per esempio, come si va di contare il numero
di persone in una stanza?
Beh, se siete come me, si sarebbe probabilmente punto in ogni persona, uno alla
una volta, e contare da 0.
1, 2, 3, 4, e così via.
>> Beh, questo è un algoritmo.
In realtà, cerchiamo di esprimere un po 'più formale in pseudocodice -
Inglese-come sintassi che assomiglia un linguaggio di programmazione.
Sia N uguale 0.
Per ogni persona in camera, impostare N uguale a N + 1.
>> Come interpretare questo pseudocodice?
Beh, linea uno dichiara, per così dire, una variabile chiamata N e inizializza
il suo valore a 0.
Questo significa solo che all'inizio di il nostro algoritmo, la cosa con la quale
contiamo ha un valore di 0.
Dopo tutto, prima di iniziare il conteggio, non abbiamo ancora contato nulla.
Chiamare questa variabile N è solo una convenzione.
Avrei chiamato più nulla.
>> Ora linea due demarks l'inizio di una loop, una sequenza di passi che
ripetere certo numero di volte.
Quindi, nel nostro esempio, il passo che stiamo prendendo sta contando persone nella stanza.
Sotto la linea due è la linea tre, che descrive esattamente come
andremo a contare.
Il rientro implica che si tratta di tre linee che si ripeteranno.
>> Così che cosa lo pseudocodice sta dicendo è che dopo aver iniziato a 0, per ciascun
persona nella stanza, faremo aumentare N di 1.
Ora è questo algoritmo è corretto?
Bene, Bang on un po '.
Funziona se ci sono due persone nella stanza?
Vediamo.
>> In linea uno, inizializziamo N a 0.
Per ciascuna di queste due persone, abbiamo poi incrementiamo N da 1.
Quindi, il primo viaggio attraverso il cappio, aggiorniamo N 0-1.
Al secondo viaggio attraverso quella stessa cappio, aggiorniamo N 1-2.
E così per la fine di questo algoritmo, n è 2, che in effetti corrisponde al numero di
persone nella stanza.
>> Fin qui, tutto bene.
Come su un caso d'angolo, però?
Supponiamo che ci sono 0 persone in sala - oltre a me,
che sta facendo il conteggio.
In linea uno, inizializziamo N a 0.
Questa volta, però, non linea tre eseguire a tutti in quanto non vi è un
persona nella stanza.
E così N rimane 0, che corrisponde al numero di persone nella stanza.
Abbastanza semplice, giusto?
>> Ma conteggio persone una alla volta è piuttosto inefficiente, troppo, no?
Sicuramente possiamo fare meglio.
Perché non contare due persone alla volta?
Invece di contare 1, 2, 3, 4, 5, 6, 7, 8, e così via, perché non conta, 2,
4, 6, 8, e così via?
E anche i suoni più veloce, ed è sicuramente.
>> Diamo esprimono questa ottimizzazione in pseudocodice.
Sia N uguale 0.
Per ogni coppia di persone in camera, impostare N pari a N + 2.
Abbastanza semplice cambiamento, giusto?
Piuttosto che le persone contano uno alla volta, noi invece contiamo
due alla volta.
Questo algoritmo è quindi due volte veloce come l'ultima.
>> Ma è corretto?
Vediamo.
Funziona se ci sono due persone nella stanza?
In linea uno, inizializziamo N a 0.
Per usare una coppia di persone, abbiamo poi incrementiamo N per due.
E così per la fine di questo algoritmo, n è 2, che in effetti corrisponde al numero di
persone nella stanza.
>> Supponiamo successivo che ci sono 0 persone nella stanza.
In linea uno, inizializziamo N a 0.
Come prima, la linea tre non esegue affatto, poiché non ci sono i paia
di persone nella stanza.
E così N rimane 0, che anzi corrisponde al numero di
persone nella stanza.
>> Ma cosa succede se ci sono tre persone nella stanza?
Come funziona questo algoritmo tariffa?
Vediamo.
In linea uno, inizializziamo N a 0.
Per un paio di quelle persone, abbiamo poi incrementiamo N da 2.
Ma allora che cosa?
Non vi è un altro paio pieno di persone nella stanza, in modo da linea due no
applica più.
E così per la fine di questo algoritmo, N è ancora 2, il che non è corretto.
>> In effetti, questo algoritmo ha detto di essere buggy, perché ha un errore.
Consente di correggere con qualche nuovo pseudocodice.
Sia n uguale 0 per ogni coppia di persone in camera.
Impostare N pari a N + 2.
Se una persona rimane spaiato, impostare N pari a N + 1.
Per risolvere questo problema particolare, abbiamo introdotto, in linea quattro, un
condizione, altrimenti noto come un ramo che viene eseguito solo se c'è una
persona che non poteva coppia con un altro.
E così ora, se c'è uno o tre o qualsiasi numero dispari di persone
la stanza, questo algoritmo sarà ora contarli.
>> Possiamo fare ancora meglio?
Beh, potremmo contare in 3s o 4s o anche 5s e 10s, ma al di là di questo, è
andando a prendere un po ' difficile punto.
Alla fine della giornata, se eseguito dai computer o esseri umani,
algoritmi sono solo un insieme di istruzioni con
che per risolvere i problemi.
Questi sono solo tre.
Quale problema si risolve con un algoritmo?
>> [FINE RIPRODUZIONE VIDEO]
>> DAVID MALAN: Questa è l'unica volta Io apparirò in forma di cartone animato.
Ma dove la storia lascia fuori, ora, è come possiamo migliorare?
Tre e quattro zampe, si pretende, si possono contare persone molto più veloce, ma possiamo
fare fondamentalmente meglio di così?
E scommetto che possiamo.
>> Se introduciamo un po 'del nostro pseudocodice qui, ho intenzione di proporre
che siamo in grado di realizzare una linea come questa.
Non stiamo andando a contare le persone uno, due, tre, quattro.
Non abbiamo intenzione di andare a due, quattro, sei, otto.
Stiamo andando a fare fondamentalmente meglio da ripensare il problema, e in questo
caso, facendo leva su un altrimenti sottoutilizzate risorse.
>> In un momento, spero che perdonerai e umorismo ci da in piedi in
luogo, al punto che andremo a chiedere a ognuno di voi di assumere in
mente il numero 1.
Stai andando poi a sempre più goffamente, col passare del tempo, trovare
qualcun altro che è in piedi, si combinano i numeri insieme
aggiungendole up.
Uno di voi è poi andare a correre a sedersi primo down, e l'altra persona
sta per ripetere.
>> Quindi, in altre parole, mediante inseminazione di tutti con il numero 1, e quindi
combinando quelli 1s in 2s e quelli 2s in 4s, con tutti sempre più
seduti, dovremmo, al termine del questo algoritmo, hanno solo un prestito
anima che non si sedette abbastanza veloce ma che ha l'intero conteggio pubblico
nella sua mente.
>> Quindi, se volete, andiamo avanti e - passo uno - stare in piedi al suo posto.
Ed eseguire.
>> [FOLLA mormorando]
>> DAVID MALAN: Sai dove Lauren è?
729?
>> [FOLLA mormorando]
>> DAVID MALAN: Va bene?
>> [FOLLA mormorando]
>> DAVID MALAN: Va bene, dovremmo essere quasi alla fine.
Vediamo un collega qui in piedi ancora.
Chi altro deve essere associato?
Se voi volete fare coppia.
Qualcuno sulla parte superiore.
Perché non dare una mano qui.
Per le poche persone che sono ancora in piedi, che numeri ti
avere nella vostra mente?
>> STUDENTE: 78.
>> DAVID MALAN: 78 plus -
che sta in piedi qui?
>> STUDENTE: 39.
>> DAVID MALAN: più 39.
Più che altro è ancora in piedi?
81?
OK, chi altro?
Un altro 81?
Wow.
E allora cosa c'è dietro?
>> STUDENTE: 49.
>> DAVID MALAN: 49, più?
>> STUDENTE: 98.
>> DAVID MALAN: 98 plus?
E 'qualcun altro?
12?
Buon lavoro.
>> [Risata]
>> DAVID MALAN: Oh, 112 -
oh.
Buon lavoro!
>> [Risata]
>> [Applausi]
>> DAVID MALAN: Chiunque altro ancora in piedi?
Siamo spiacenti?
>> STUDENTE: 99.
>> DAVID MALAN: 99.
Chiunque altro ancora in piedi?
E il numero totale di studenti qui è in realtà, secondo -
avete un numero?
Oh, il numero effettivo di persone nel stanza, secondo l'account che
i compagni di insegnamento stavano facendo sulla strada di tutti in, era 729.
Così fuori di una stanza piena di studenti di Harvard che si contato, la
risposta è 637.
>> [Risata]
>> DAVID MALAN: Così vicino.
Ma ancora.
OK, quindi questo è un insegnamento momento, giusto?
Questo ora è ciò che noi descriviamo come un bug.
Da qualche parte lungo la strada, abbiamo fatto un po 'di aritmetico sbagliato, o qualcuno si sedette,
o di sinistra, o qualcosa è andato storto.
Ma va bene così.
Perché anche ancora, abbiamo ottenuto abbastanza vicino.
E direi che siamo arrivati ​​alla sbagliato rispondere molto più velocemente di quanto avrei
usando il mio approccio più lineare.
>> Quindi supponiamo che abbiamo infatti otteniamo che correggere, ma pensare ora a cosa
che accadeva ogni volta, contro la mia proprio ingenuo algoritmo di puntamento.
Uno, due, tre.
Se ci sono infatti 729 o 637 persone qui, che mi avrebbe preso
letteralmente a 637 o 729 puntamenti del dito e
incrementare il mio conteggio totale.
E ho potuto fare un po 'meglio di andare due, quattro, sei, otto, e
raddoppiare la velocità, forse anche tripla o quadruple, a seconda di quanto bene posso
fare che contare nella mia testa.
>> Ma questo approccio che voi ragazzi ha preso era fondamentalmente diverso.
Perché all'inizio, voi tutti si alzarono.
Quindi tutto 729.
E poi letteralmente la metà di si sedette.
E dopo che, un'altra la metà di voi si sedette.
>> E il numero totale di volte che si ragazzi avrebbero potuto sedere è più o meno
otto o nove o dieci volte in totale, seconda di ciò che il nostro conteggio totale è.
E possiamo ordinare di fare questo l'altro modo.
Se abbiamo avuto 1.024 persone nella stanza, il numero totale di volte che si poteva
dimezzare 1.024 persone è 10.
>> Ora pensate a l'altra direzione.
Supponiamo, ridicolmente, che abbiamo avuto, diciamo quattro miliardi di persone in questa stanza,
o una camera leggermente più grande.
Quante volte avremmo andati attraverso questo algoritmo, tale che metà
di quella classe si siede?
E 'solo andando a prendere 32 ad operazioni, anche in una classe di dimensione
quattro miliardi.
Perché?
Perché quattro miliardi vanno ai due miliardi di euro, va a un milione, va a
500 milioni di euro, va a 250 milioni di euro, dot, dot, dot.
Posso solo fare un po 'di quella divisione 32 volte, a quel punto, tutti tranne
una persona sarebbe rimasta in piedi.
>> E questo, anche, è una sorta di potente idea che sempre cercheremo di
leva in questo corso, e in la programmazione e l'informatica più
generalmente, questi germi di un'idea con quale possiamo poi risolvere problemi molto,
molto più potente.
Così abbiamo iniziato abbastanza semplice con quella pseudocodice e un ragazzo in una stanza, ma
ora con tutta una stanza piena di gente abbiamo fatto decisamente migliore.
>> Bene, ora transizione da pseudocodice di un codice vero e proprio.
Questo linguaggio che state per vedere accadere di essere chiamato JavaScript, e
torneremo a questo verso fine del semestre.
E 'un linguaggio di programmazione che si usare per fare siti web e altri come
software in questi giorni.
E lo abbiamo usato, grazie a un amico dei nostri a Stanford, per codificare
alcune informazioni nascoste qui.
Questa è l'arte della steganografia, per così dire, dove si può nascondere
informazioni in ciò che altrimenti sembra essere un rumore o una completamente diversa
immagine del tutto.
Ma incorporato in questa particolare immagine è davvero un messaggio segreto di sorta.
>> Quindi, mi permetta di andare avanti e tiro su la stessa immagine qui, questa
tempo in un browser web.
E ho intenzione di sventolare la mano ad alcuni dei i dettagli per oggi, in particolare
per quelli di voi che questo sembra non solo di JavaScript, ma greco, come un
completamente lingua sconosciuta.
Ma questo è un esempio di un linguaggio di programmazione.
>> E per ora, prendere sulla fede che questa prima riga di codice -
e per codice, mi riferisco solo testo.
Il testo che ho potuto letteralmente digitato in Microsoft Word, se avessi avuto la
software giusto per poi fare qualcosa con esso.
Il codice sorgente di programmazione, programmazione codice, è in realtà solo il testo, e
un aspetto diverso in base a quale lingua si sta utilizzando, non diversamente inglese e
Spagnolo e russo sembrano tutti diversi quando si digita li a vostra tastiera.
>> Quindi questa prima linea, per ora assumere fede, si apre semplicemente un grafico dal
internet, che grafico rumoroso abbiamo appena visto.
Questa successiva linea qui è un esempio di un loop, e in realtà abbiamo visto che lo stesso
gergo nel video TED.
Un ciclo è una cosa che accade di nuovo e di nuovo, e anche se questo
assolutamente sembra criptico, con il per parola chiave, e alcuni tra parentesi, e
alcuni punti e virgola.
Torneremo a che tra non molto, ma questo loop è essenzialmente
raccontando il programma, iterare tutti dei dot rumorosi, da sinistra a
a destra, dall'alto in basso.
>> Perché alla fine della giornata, un'immagine come questo - e in realtà si può
tipo di vederla su questo proiettore -
è in realtà solo una griglia di punti.
Così siamo in grado di identificare ciascuno di questi punti da una coordinata, x, y, e con questo
programma, ora possiamo cominciare a fare qualcosa per quei punti.
>> Così che cosa ho intenzione di andare avanti qui e non è che io vado a fare alcune modifiche.
In primo luogo ho intenzione di andare avanti e di liberarsi di tutto questo verdastro e bluastro
rumore, e ho intenzione di andare avanti e digitare il seguente
dichiaratamente sintassi criptica.
im per un'immagine.
impostare blu alla posizione x, virgola, posizione y, a 0.
In altre parole, voglio solo spegnere tutti i blu
punti in quella foto.
>> Ho intenzione di andare avanti ora e fare clic su Pulsante questo Run / Salva, e ti
notare sul lato destro, appare l'immagine risultante.
Ora il suo super-verde, ma non è sorprendente, perché ho letteralmente girato
off, facendo a 1 a 0, tutti il blu in quella foto.
>> Bene, ora facciamo un po 'di più.
im per un'immagine, dot setGreen, x, y.
E questo significa solo iterate da sinistra a destra e dall'alto verso il basso.
Spegnerlo con un valore di 0, pure.
Salva.
E sul proiettore, non è possibile in realtà davvero vedere nulla.
>> Sul mio schermo del computer portatile, se scruto in appena nel modo giusto, posso vedere un po 'di un
immagine, perché sono ancora qualche rosso in là.
Se hai mai sentito la sigla RGB -
rosso, verde, blu -
, esso si riferisce a questa composizione di un'immagine utilizzando
solo quei tre colori.
E proprio ora, abbiamo buttato via tutto verde, tutto blu, ma
non c'è molto rosso.
>> Quindi, mi permetta di alzare il rosso.
Come posso fare questo?
Beh, in primo luogo, ho intenzione di chiedere questo programma di una domanda.
Ho intenzione di andare avanti e chiamiamolo una variabile, proprio come in algebra.
Si può avere x oppure y o z.
Ho intenzione di dichiarare una variabile e dire, mettere in questa variabile,
temporaneamente, il valore del immagini getRed valore in x, y.
>> E ancora, ci torneremo a tutti di questo dettaglio in futuro.
Ma per ora, basta prendere sulla fede che questa linea sta chiedendo il programma, cosa
è il valore di rosso in x, y?
In quel particolare punto?
>> Poi ho intenzione di fare qualcosa per esso.
Poi ho intenzione di fare immagine puntino rosso set in x, y, y, ma questa volta ho intenzione di
incrementare esso facendo volte rosse, diciamo, 10.
Quindi aumentarlo di un fattore 10.
Permettetemi di zoom out ora e scatto potrebbe Esegui / Salva.
E voilà, che era lì l'intera tempo, anche se i nostri occhi umani
non riusciva a vederlo.
>> Quindi, di nuovo, questo ora è il codice vero e proprio, un esempio di un linguaggio che verremo
Torna alla prima lunga.
Ma rendersi conto, in particolare quelli di voi senza tale esperienza, è abbastanza
presto che noi stessi saremo scrittura del codice come quello lì.
In effetti, uno strumento con cui siete tutti un po 'familiare, forse, è CS50 di
proprio strumento di corso-shopping, che è stato effettivamente riavviato questa estate da parte di alcuni
dei propri ex studenti del CS50, ora girare TFS.
>> Quindi, questo sembra essere un sito web costruito in un linguaggio chiamato PHP.
Esso utilizza un database chiamato MySQL, cose grazie al quale potremo mettere le mani
sporco più avanti nel semestre.
Ma che ci crediate o no, anche qualcosa di come questo riduce in ultima analisi, alla
semplice dei cicli e delle condizioni e rami, come quelli che abbiamo visto solo un
poco fa nel video TED.
>> Che cosa ho pensato di fare ora è quota non solo qualcosa che il personale abbiamo fatto
per il campus, ma piuttosto qualcosa di un ex studente - tre
studenti, infatti -
fatto lo scorso anno, la Sierra, Daniel, e Sam, l'ultimo dei quali non aveva alcun precedente
esperienza di programmazione quando ha preso CS50.
E per il loro progetto finale, esposto, presso la Fiera CS50, un
applicazione chiamata wrdly, che è un programma basato su Web per la quale hanno fatto
questo video che ho pensato di condividere a vi darà un senso di ciò che è
possibile dalla fine del periodo.
>> [MUSIC PLAYING]
>> DAVID MALAN: Ecco da Zero Settimana alla Settimana 12 lo scorso anno.
>> [Applausi]
>> DAVID MALAN: Come un teaser, troppo, davvero per stuzzicare l'appetito è quello di ciò che è
possibile, potreste aver visto già, o potrebbe presto vedere, market.cs50.net, un
nuovo strumento che la squadra del corso ha lavorato su, questa volta in
collaborazione con la Harvard Student Agenzie, in modo tale che a partire da quest'anno
e continuando auspicabilmente in questa prossima estate avrai uno standard
opportunità nel campus di acquistare e vendere le cose che vi interessano.
E con la collaborazione con HSA, ti anche essere in grado di rilasciare gli elementi fuori
in uno dei negozi fisici di HSA a un certo punto in futuro, così da
cose proxy, in particolare, come si laurearsi e non necessariamente vogliono
scartare le cose, ma in realtà pagarlo inoltrare a persone che potrebbero seguire voi
qui nel campus.
Quindi, più su quello a venire.
>> Ma un po 'più concretamente, un utensile che è uscito di recente in CS50
anni, con la quale alcuni di voi potrebbero essere familiare e gli altri di voi potrebbero essere
googling ora, a CS50.net/2x, si trovare un link ad una estensione Chrome
che è dimostrativa di come si può utilizzare JavaScript, quella stessa lingua che
usato con la torre Eiffel un momento fa, di attuare velocità di riproduzione 2x
per tutti Harvard iSites video.
Questo è qualcosa che è costruito in un lettore video del CS50.
Ma anche questo, se si comincia a scavare nel codice sorgente, che faremo
felicemente a disposizione, si vedrà come si può anche risolvere problemi come questo,
accelerando widget in siti web con che si è già familiare.
>> Così una parola ora sul corso e aspettative e quello che ci aspetta.
In generale, ci riuniamo in effetti qui il lunedì e il mercoledì - anche se
questo Venerdì, ci riuniamo perché di Shopping Week -
1:00-14:00, anche se a volte fino alle 2:30.
Dato che si potrebbe quindi voler o prendere un po 'di classe a 02:00
poi, o anche prima, non realizzare l' corso è di supporto di quella che viene chiamata
contemporanea iscrizione, per cui faremo sostegno di una petizione per l'annuncio Board e
il tuo residente presidi per vostro conto se si dispone di un conflitto da qualche parte in questo
1:00-02:30 gamma.
Testa a tale URL online ulteriori dettagli.
>> Ma in termini di struttura di supporto che caratterizza CS50, per gli studenti
più e meno confortevole allo stesso modo, abbiamo offrire percorsi distinti di sezioni.
E questo è un paio di settimane di riposo, ma In poco tempo, ti verrà chiesto da
il livello di comfort.
Sei tra quelli meno confortevole, più confortevole, o
una via di mezzo?
>> E avremo tre distinti tracce che si rivolgono a
proprio quei pubblico.
Quindi, in nessun punto del termine si dovrebbe anche sentire come si è in competizione
contro ogni studente con più o meno sfondo di te.
Infatti, il corso è destinato a essere molto più collaborativo e molto
più aperto di quello.
>> In termini di set di problema, sarete trovare, anche, che oltre alla
edizione standard del problema di ogni settimana impostato, c'è spesso un "hacker
edizione "che è destinato a essere preso di mira al 5% al ​​10% circa del
demografiche che è infatti tra quelli più confortevole e vorrebbe più
di una sfida quella standard edizione che pset aspetta.
Maggiori dettagli su quelle che saranno trovato nel programma.
>> Ma anche lì si possono trovare i dettagli sui corsi di giorni di ritardo.
Tipicamente problema imposta sono dovuti il ​​giovedì.
Tuttavia, è possibile estendere molti dei vostri scadenze di questo autunno da giovedì a
Venerdì semplicemente incontrarci a metà strada, per così dire, rispondendo a un paio di warm-up
domande in alcuni dei problemi della settimana set, che automaticamente
poi vi darà un extra di 24 ore.
Ci sarà anche cadere il più basso punteggio, come da programma.
>> Per darvi un'idea di ciò che il problema set sono - perché è davvero
il problema del corso stabilisce che infine definire quasi ogni
L'esperienza di studente, più che lezioni, più che le sezioni, più
in modo che la maggior parte qualsiasi altro aspetto del corso.
L'anno scorso, per esempio, abbiamo cominciato, come inizieremo quest'anno, con Scratch.
In particolare questo Venerdì, useremo, per giusto il tempo di un giorno, un grafico
linguaggio di programmazione, con la quale faremo avviare la programmazione trascinando e
lasciando cadere pezzi di un puzzle che solo assemblare fisicamente se ha un senso
per fare in modo logico.
>> La prossima settimana, faremo in modo rapido passaggio alla C, una abbastanza vecchio ma molto piccola e
linguaggio semplice che ci permetterà di davvero andare da 0 a 60 nel corso
di appena un paio di settimane, e poi Parlay quelle stesse competenze e conoscenze di
costrutti di programmazione di base in linguaggi di alto livello come PHP,
JavaScript e ancora altri ancora.
>> L'anno scorso, il terzo pset in corso era quello di crittografia, un
applicazione specifico del dominio per cui abbiamo studenti sfidato per attuare qualsiasi
numero di cifre, i programmi con i quali per rimescolare o decodificare le informazioni,
di cifratura.
Per l'edizione pirata, per contrasto, abbiamo dato agli studenti degli hacker un file
da un computer Unix standard contenente nomi utente e password,
il secondo di che fosse cifrato, e abbiamo sfidato quelle degli hacker
studenti a decifrare, come meglio potevano, le password, ancora su quel
stesso dominio.
>> Scramble, un gioco con cui alcuni di voi sono forse familiarità.
Un pezzo forense, in cui chiediamo agli studenti per recuperare i dati che erano stati
altrimenti cancellato dalla mia digitale scheda Compact Flash della fotocamera, da
in realtà la scrittura di software per capire, dove erano gli zeri e di uno in
che la macchina fotografica digitale che in precedenza composto da un grafico JPEG?
>> Una sfida del genere l'anno scorso coinvolgendo scrittura il più veloce
correttore ortografico possibile, in competizione contro gli amici e compagni di classe, se
vorrebbero.
Implementazione Huff 'n Puff, un programma di compressione.
E poi termina il semestre con CS50 Finanza, una applicazione web-based con
che si crea un sito web eTrade simile per comprare e vendere azioni, in modo da
parlare, da realtà tirando quasi quotazioni in tempo reale Yahoo!
Finanza.
>> Ciò che non abbiamo fatto l'anno scorso era un set problema che rimane
comunque un favorito.
Se non sei mai andato a shuttle.cs50.net, vedrai un utente
interfacciare un po 'come questo.
Ma due anni fa, la classe implementato, utilizzando Google Maps e la
Google Earth plug-in e un po ' di buon senso con la guida intorno alla città universitaria,
in modo che l'obiettivo di questo gioco è stato, come potete vedere alcuni dei volti,
è quello di guidare intorno alla città universitaria cercando personale, compagni di insegnamento e CA, e
quando si fanno, mettendoli sul vostro bus navetta.
Nessuno di loro sembra davvero di essere qui, così stiamo per entrare in un cheat code.
>> [Risata]
>> DAVID MALAN: Ci andiamo.
D'accordo.
E qui ora è il personale cucita tutta campus.
E come potete vedere, sulla destra lato dello schermo, la navetta
ha posti vuoti.
E l'obiettivo è stato quello di scrivere il codice con cui simulare questo
di guida e di far salire e abbandonano off di passeggeri.
Anche questa qui, utilizzando un linguaggio chiamata JavaScript.
Quindi rendersi conto che i programmi del genere sarà essere sulla nostra stessa traiettoria questa
anno, pure.
>> In termini, ora, di supporto aggiuntivo, abbiamo orari di ufficio.
Come forse avrete visto nella propria casa sala da pranzo o in Annenberg,
saremo in sala da casa sale quattro notti a settimana -
Leverett, Pfoho, Eliot e Annenberg quest'anno, 20:00-23:00.
E che cosa abbiamo pensato di fare questo anno è una cosa un po 'diversa.
>> Se avete sentito brontolii dello scorso anno che era un po 'troppo stressante, questo
orario di ufficio anno, come vedremo descriviamo la prossima settimana, sarà più organico,
per cui al momento dell'arrivo, sarete inviato a una particolare tabella
in cui più membri dello staff attendono, e noi faremo cose molto più
organicamente.
Niente più code, niente più iPad, ma Preferirei avere più intimo
conversazioni intorno a un tavolo di soli otto o così gli studenti, in modo da
approssimare la sensazione di ciò che altrimenti sarebbe una classe molto più piccolo.
>> Offriamo, così, queste cose noi chiamato procedure dettagliate, video girati in
avanzare di uno degli insegnamenti del corso borsisti, Zamyla, in cui ha
ti guida attraverso problema della settimana set, che offre suggerimenti e trucchi per la
le sfide che ci attendono.
E viceversa, dopo il set problema sono dovuta, quest'anno, ci sarà anche rilasciare
piccole clip chiamano autopsie che effettivamente camminare attraverso
soluzioni rappresentative, nel bene e nel male, attraverso la quale si può dedurre come
si potrebbe avere o dovrebbe avere implementato la propria soluzione.
>> E ciò che vi offriamo per la prima volta anche quest'anno, in particolare
per gli studenti che si avvalgono del corso di altra
risorse, ma comunque sono in difficoltà tutto troppo, il corso
stessa sarà accoppiare gli studenti, come le risorse lo permettono, con i tutor in modo che
si dispone di un molto più intimo opportunità di casa sale da pranzo
consentire l'assistenza one-to-one.
>> Ora uno sguardo finale ad un certo dei giochi si vede la fine.
Si potrebbe avere familiarità con il CS50 Hackathon.
Beh, venendo a dicembre, dalle ore 8:00 PM a 7:00, all'inizio del
Leggere Periodo, sarà l'occasione per riunirsi con i compagni di classe -
questo sarebbe di circa 9:00 PM -
durante il quale ci si immerge nella finale implementazione del progetto a fianco
compagni di classe, amici e cibo.
Questo sarebbe di circa 1:00, quando il primo lotto di cibo arrivato.
E questa è circa 4:00 che particolare anno alla CS50 Hackathon.
>> Ma il vero culmine del corso è significato per la Fiera CS50, un campus a livello
mostra dei vostri progetti finali, a cui la famiglia e gli amici sono tutti
invitato, come i nostri reclutatori e i nostri amici da industria.
Questo, per esempio, è uno scorcio del 2.000 e più persone che hanno partecipato
anni passati.
Espressioni come questo non sono rari, e allo stesso modo fare la tua
compagni di classe dilettano nelle cose che hai compiuto.
>> E in realtà, verso quel fine, abbiamo un evento di avvio del termine, pure.
Se le cose come questo appello a voi, o siete almeno curioso di sapere cosa
questo, sappiate che una nuova tradizione del corso si chiama CS50 Puzzle Giorno.
E questo è stato istituito un paio di anni fa per segnalare veramente al campus
che l'informatica non si tratta di programmazione, e non è certamente
circa abbracciando solo quegli studenti che hanno una precedente esperienza.
E 'davvero di risolvere i problemi più in generale.
>> E così Puzzle Giorno, negli ultimi pochi anni, si è evoluto in un bel
partnership con i nostri amici a Facebook, per cui ci sarà favoloso
premi e pizza attraverso il fiume a l'i-lab il prossimo Sabato.
Dirigetevi verso l'URL con due o tre amici se si desidera partecipare
in questa nuova tradizione.
>> Quindi vorrei chiedere di mantenere uno cosa in mente, e abbiamo solo un
due minuti clip sul quale per chiudere oggi.
73% è il numero di ricordare.
Torta, troppo, vi attenderà fuori dal transetto come aggiornare in appena un
paio di momenti, che è una tradizione del corso, pure.
Ma questa è la citazione chiave dal piano di studi del corso da tenere a mente.
Ciò che conta in ultima analisi, in questo corso non è tanto dove si finisce
relativa ai vostri compagni di classe, ma in cui si, in settimana 12, finisce rispetto al
te nella Settimana 0.
>> Ma il colpo d'occhio che ci lascerà con oggi è quest'ultimo qui
dal nostro stesso Daniel, che ha fatto il Video wrdly solo un momento fa.
Vi lascio con questo scorcio di quello che ci aspetta.
E come facciamo questo, se potessimo avere CS50 personale dalla parte anteriore della camera
a venire su fino alla fase di dipingere tutto più di un'immagine visiva da
cosa vi aspetta quest'anno -
sempre imbarazzante.
Concluderemo con questo qui sullo schermo.
>> [MUSIC PLAYING]
>> DAVID MALAN: Questo è CS50.
>> [MUSICA - MATT & Kim, "Va tutto bene"]
>> SPEAKER 1: I love CS50 più di gatti.
>> SPEAKER 2: Whoaaaa!
>> [Risata]
>> DAVID MALAN: Questo, poi, è CS50.
Ci vediamo il Venerdì.
>> [Applausi e tifo]
>> NARRATORE: Al prossimo CS50, un palco demo non va come previsto.
>> DAVID MALAN: vogliamo trovare Mike Smith in questa rubrica.
Ebbene, quali sono i tuoi istinti?
Potrei saltare all'incirca alla metà del l'elenco telefonico, sguardo basso, vedere che
Sono a M, e ora so che Mike Smith non è a sinistra.
Egli deve essere a destra.
E quindi a questo punto, abbiamo può letteralmente strappare -
A questo punto, possiamo letteralmente strappare -
A questo punto, possiamo figurativamente strappare la rubrica a metà.
>> [Strumming Ukelele]