[Powered by Google Translate] [MUSICA ROCK]
[MUSICA - "HAPPY TOGETHER" LE TARTARUGHE]
DAVID MALAN: Oggi iniziamo la nostra esplorazione del
fondamenti di informatica e la nostra introduzione,
Ora, la tecnica di programmazione, di cui questo è
solo un esempio.
Ma con lo stesso spirito di problem solving, sa che
Giorno Puzzle tradizionale CS50 è domani.
Se non hai ancora risposto per questo evento, si può andare a
cs50.net/rsvp.
È possibile portare squadre di due o tre o quattro.
Sarete sfidati con problemi come quello che hai visto
lassù all'inizio.
Tutti i nuovi problemi di quest'anno se si partecipava l'anno scorso, e si
avrà la possibilità poi di vincere fantastici premi.
Tra questi, un Wii e alcuni buoni regalo e simili,
il tutto mentre in giro con CS50 studenti e compagni di classe
e pizza e Facebook.
Quindi, più su che domani, se si desidera.
>> Questo è quindi CS50, per quelli di voi con noi per la
prima volta.
E so che questo corso è particolarmente determinato a ottenere
attraverso questo corso al suo fine, a questo punto si
avrà non solo la comprensione di questi
fondamenti di informatica, ma si dovrà
questo insieme di abilità molto pratico che è possibile riprendere a
suo reparto, che si tratti di scienze ingegneristiche,
matematica applicata, le scienze fisiche, naturali
scienza, o simili.
In effetti, cosa c'è di così eccitante informatica questi
giorni è che è proprio così applicabile a
tutti i tipi di campi.
E anche se oggi, ci sarà solo graffiare la superficie di un
linguaggio di programmazione molto tradizionale conosciuto come C, faremo
invece guardate cosa chiamata Scratch, qualcosa con
che quella storia d'amore biscotto è stato attuato da uno dei tuoi
predecessori negli anni passati, per raccontare storie, per creare giochi,
per creare arte interattiva, e di iniziare effettivamente per avvolgere il nostro
menti intorno alcuni dei costrutti fondamentali che
alla base di programmazione, ma in un contesto, come si vedrà, è
molto meno spaventoso, che è molto meno arcano, che si vedrà
in breve tempo.
E rendersi conto, anche, per quelli di voi solo per noi partecipare a questo
semestre, le frasi su cui abbiamo finito lezione di Mercoledì,
non è così importante dove si finisce relative alla vostra
compagni di classe in questa classe, ma dove, entro la fine del semestre di
in settimana 11, finiscono per rispetto a te stesso proprio in questo giorno.
>> Quindi, senza ulteriori indugi, questa è anche la pena notare che
quelli meno confortevole, quelli di mezzo, sono
inoltre, in base alla progettazione di questo corso, non ad ogni svantaggio
vis-a-vis quelli più a suo agio
entrando in questa classe.
Come si vedrà nel corso delle settimane a venire, ci sono diversi
tracce per back background disparati, sezioni per chi
meno comodo, più confortevole, quelli da qualche parte
in mezzo.
Come si vedrà in questo weekend e la prossima settimana, due versioni di
maggior parte dei set di problemi sia in edizione standard e hacker in modo
che tutti possono auto-selezionare lungo il sentiero con il quale si
sono più comodi.
>> Così oggi, ci immergiamo in questa programmazione
linguaggio chiamato Scratch.
E 'un linguaggio di programmazione grafica, e tuttavia ha il
stesse caratteristiche di alcuni dei linguaggi di livello superiore avremo
esplorare in seguito nel semestre, tra i quali C e
JavaScript e PHP.
Ma sta andando per permetterci di evitare alcune delle distrazioni
nella fase iniziale della sintassi, cose come punto e virgola, parentesi,
e altri dettagli oscuri che, a prima vista, non sono solo
a tutti intellettualmente interessante e tendono a entrare in
modo da qualche comprensione fondamentale.
Per quanto riguarda ora la struttura di supporto in avanti, realizzato questo
strumento, CS50 discutere, che sarà collegato sul suo corso la
sito web più tardi di oggi, è il forum di discussione on-line in
che sarete in grado di porre domande di ogni altro e
personale, ed è anche uno strumento, come vedremo la prossima settimana,
che useremo molto in modo integrato
orario d'ufficio pure.
In effetti, orario d'ufficio iniziare lunedì, e, francamente, il primo
settimana di ore di ufficio è fondamentale piuttosto bassa.
>> Non credo che troverete tutto ciò che Scratch inaccessibile.
E 'piuttosto auto-esplicativo, come vedremo, e quindi ciò che
lo useremo per oggi è quello di estrarre una parte del
idee fondamentali che, poi, persistono per tutta la
resto del semestre.
Ma a partire da lunedì, alle 8:00 PM tramite 23:00 sarà
orari d'ufficio in oltre Annenberg pausa cervello.
Sezionamento due inizierà questa sera, in modo a volte questo
fine settimana, andare a cs50.net/section, e ti
chiesto una serie di domande.
Tra questi, come descriveresti la tua
livello di comfort fino ad oggi?
Non c'è duro, regola veloce da chi è in cui secchio.
E 'proprio il tipo di cosa che probabilmente sapete se si
sono tra quelle che la meno confortevole o meno.
>> E ora, procedure dettagliate.
Il set di specifiche problema per questa settimana, sia standard
e l'edizione per gli stessi hacker, è online all'indirizzo cs50.net fin d'ora.
E vedrai che la prima di queste edizioni, il
edizione standard ogni settimana, è accompagnata da qualcosa che
chiamare una procedura dettagliata codice, una sessione guidata da uno dei
compagni di insegnamento del corso di guidare l'utente attraverso, fornire
consigli su, e si ottiene un percorso particolare quando si tratta
di iniziare questi insiemi di problemi.
Quindi, con ciascuno di questi set di problema, se hai mai voglia
per te da dove cominciare, si inizia con questi
procedure dettagliate.
E infatti, mi permetta di introdurre Zamyla Chan, questa
anno svolge attività didattica che guiderà ogni
una di queste procedure dettagliate.
Zamyla?
>> [Applausi]
ZAMYLA Chandler: Oh, ciao a tutti.
Il mio nome è Zamyla.
Sono un giovane studio di ingegneria a Winthrop House.
Ma cerco di corrispondere il molti corsi di informatica come ho
può, che è per questo che sono davvero entusiasta di essere alla guida di questa
quest'anno procedure dettagliate.
Procedure dettagliate, per me, erano una parte essenziale del mio CS50
esperienza.
Durante la procedura dettagliata, per ogni p-set, andremo attraverso
il problema posto insieme, guardare oltre i problemi, specie di
dividerli fino a morsi gestibili.
Ti darò suggerimenti, tecniche, per ottenere
attraverso e iniziare.
Spero di vedervi tutti alle procedure dettagliate.
Se non è possibile farlo di persona, quindi
si prega di fare tune-in online.
>> DAVID MALAN: Eccellente.
Grazie, Zamyla.
Così si rendono conto che procedure dettagliate sono, infatti, di Venerdì
pomeriggio, ma questo è volutamente di progettazione in modo che
anche se si preferisce non frequentare le lezioni di Venerdì
pomeriggio, i video sarà tutto lo più rapidamente nel
il fine settimana.
Così si rendono conto che cs50.net sarà tutto di Zamyla di
procedure dettagliate.
E che ci sia data odierna e l'ora, 3:00 PM,
Harberd Hall, 104.
E alcuni dei compagni di insegnamento hanno anche preparato
alcune osservazioni per voi in contumacia per darvi un po 'di
punto di vista di ciò che la loro esperienza in entrata e in
uscendo CS50 era come.
Quindi, se si potesse abbassare le luci per un attimo, ti do
una parte del personale di CS50.
>> JACKSON Steinkamp: ho preso l'anno scorso CS50 come matricola nel
cadere, e assolutamente saltato la mia mente.
Non avevo mai preso tutte le classi di programmazione prima,
e non è mai entrato in con qualsiasi informatica
esperienza.
E proprio, ho sentito il ronzio sulla classe e
deciso di prendere.
>> JULIA Mitelman: E 'stato davvero divertente, molto coinvolgente.
Ho ancora, fino ad oggi -
Ho da poco visto che ho il floppy disk che David ci ha dato
il nostro primo giorno di lezione.
Avevo appeso sul mio muro.
Questo è probabilmente un po 'nerd, ma ho appeso in sul mio
parete durante la classe come un promemoria di quanto freddo è stato.
>> TRAVIS DOWNS: E 'così imbarazzante.
>> JACKSON Steinkamp: Informatica è qualcosa che si
dovrebbe provare, anche se non sei uno per
le scienze tradizionali.
E 'la propria esperienza, e CS50 farà in modo che tu sei
supportato bene attraverso di essa con il suo vero e proprio esercito di TF.
>> ALI Nahm: l'ho presa come una matricola, e così ho fatto un sacco
di nuovi amici.
Ho anche ottenuto introdotto per intero e questa concentrazione
intera scuola di ingegneria, e quindi lo consiglio vivamente
e vi danno il benvenuto nella nostra famiglia CS50.
>> Yaniv Yacoby: CS50 insegna te come utilizzare gli strumenti
che sono ampiamente accessibili.
Hai solo bisogno di un computer portatile, è necessario un browser web, e si
bisogno di imparare a scrivere del codice, e si può veramente costruire
altre belle cose.
>> KAREN XIAO: E 'così bello essere in grado di fare qualcosa di
e sono persone lo usano e hanno la gente lo vede, e questo è
quello che mi piace molto su di esso.
>> TIM MCLAUGHLIN: - un senso di comunità, credo che, in questo
corso più di qualsiasi altro corso che ho preso finora.
Lei non è solo prendendo un altro -
non si sta riempiendo un altro requisito.
Lei non è solo andando a lezioni e andare alla sezione.
Ma che stai facendo tonnellate di cose che sono tutti di
programmazione e tutto sulla tecnologia, ma non è così
veramente sentire come una classe la maggior parte del tempo.
>> DOWNS Travis: E il primo giorno, hanno distribuito torta, e
Sono stato subito venduto.
>> JACOB PRITT: caramelle gratis e pizza.
>> ZAMYLA CHAN: - indipendentemente dal tuo livello di interesse, credo
che CS50, vi divertirete, e sarete intellettualmente
stimolato.
>> MARK GROZEN-SMITH: E 'sempre una festa in classe, ed è un
festa ogni sera a lavorare sul set-p.
>> JACKSON Steinkamp: Ogni volta che si finisce un set di problema, è
si sente come si è finito un progetto.
>> MELISSA NIU: E 'stato primo anno, e mi è stato fatto shopping.
Ho avuto i miei quattro classi pronto, e io ero in Annenberg.
E mi imbatto in un amico, e lui dice, ehi, sto acquistando
questa classe denominata CS50, e dovresti venire con me.
Finito per prendere in modo che cadono, e dopo quella classe, mi
pensato che forse ho intenzione di minore CS.
Ma eccomi qui, tre anni più tardi, ancora studiando del computer
scienza e farlo veramente come un importante, e mi è piaciuto ogni
momento di esso.
>> ROB BOWDEN: Non ne ho idea.
>> ALI Nahm: Vediamo un po '.
>> MELISSA NIU: follia.
>> SPEAKER 1: Mi sento come se sarei molto cliché.
Vorrei solo dire, come, impressionante.
>> Yaniv Yacoby: Accessibilità.
>> JACOB PRITT: caramelle gratis e pizza.
>> TRAVIS DOWNS: Impossibile rifiutare una classe che distribuisce torta.
>> TIM MCLAUGHLIN: Energetica.
>> VIPUL Shekhawat: Essential.
>> ROB BOWDEN: Fammi pensare a una risposta.
Credo di avere qualcosa.
Oh, dio.
Sì, il mio nome è Rob Bowden, e questo è CS50.
>> [Applausi]
DAVID MALAN: Va bene, allora cominciamo a dipingere un quadro
della direzione in cui possiamo andare, e introduciamo
questo concetto qui noto come pseudocodice.
Così pseudocodice non è una programmazione
linguaggio a se stessa.
Non è niente di tecnica di per sé, ma è solo una specie di
modo generale di esprimere se stessi con precisione,
abbastanza algoritmicamente, piuttosto procedurale, ma senza
doversi preoccupare di quale lingua si sta esprimendo
te trovi
E 'un po' il modello della lingua inglese e linguaggi di programmazione con
che vi capita di essere a conoscenza, in modo da poter iniziare a
scrivere questo genere di cose come andiamo.
E infatti, Joseph, potrei prendere in prestito fino ad essere sul palco
scriba qui?
Sono andato avanti qui in anticipo e dimenticato di mettere
su un paio di calzini di oggi, e questo sarà tra i nostri più
Esempi di ridicolo.
>> Ora, ho bisogno di te qui.
Farò la parte calzini.
Quindi qui abbiamo un pad piccolo graffio.
Questo è letteralmente TextEdit in Mac.
Non stiamo in realtà sta per scrivere un programma eseguibile, ma
stiamo solo andando a iniziare a delineare basato pseudocodice
su alcuni dei consigli forniti dall'utente a me qui.
Quindi, ecco la mia pila di calzini a casa.
Non ho calze a quando mi sveglio la mattina, e ora
bisogno di scrivere un programma, un algoritmo di sorta, con la quale
per ottenere queste calze in piedi.
E lungo la strada, vediamo se ci inciampare, o di incontrare,
alcune delle idee che si sta andando ad avere per iniziare a
pensare molto più seriamente quando si programma
perché i programmi non si comportano affatto come previsto.
>> Così mi siedo qui.
Ho il mio mucchio di calzini.
Qual è la prima cosa che un essere umano sarebbe ragionevole
fare quando l'obiettivo è quello di mettere su un paio di calzini?
Qualcuno mi dia un passo, e solo un passo.
Si '?
PUBBLICO: Piegare verso il basso.
DAVID MALAN: Piegare verso il basso, Ok.
Fase due.
PUBBLICO: Prendi il tuo calzino.
DAVID MALAN: Prendi il tuo calzino.
Ok, così lieve ambiguità qui, e questo è uno dei primi
pietre d'inciampo che dovremmo deliberatamente
incontrano qui.
E 'un po' ambigua, in modo da scegliere il vostro calzino.
Bene, prendo questo, ma un computer, realizzare in un
bit, non ha intenzione di avere quel tipo di istinto umano a poco
scegliere quello più vicino.
Stiamo per iniziare, in breve tempo, esprimendo
noi stessi con maggiore precisione.
>> Va bene, allora la fase due è prendere il vostro calzino.
Lo prendiamo.
Fase tre.
Nella parte posteriore.
PUBBLICO: Trovare una coppia assortita.
DAVID MALAN: Trova una ragazza alla corrispondenza.
Ok, quindi questo è un bene.
Ho dovuto scegliere questa calza.
Quindi l'obiettivo è di trovare un calzino corrispondenza, ora, ma ciò che
vuol dire?
Un essere umano ragionevole essere, proprio come il Mercoledì, quando ho
sapeva come trovare Mike Smith in una rubrica telefonica, solo tipo di
è andato con il loro istinto.
Ma qui, è ovviamente questa calza qui, ma di un computer
non sarà così istintivo.
Un computer sta per avere un insieme di bit, come abbiamo
discusso il Mercoledì, e questi sono
organizzata in qualche modo nella memoria.
Ma il punto è che un computer ha solo la capacità
di guardare le cose una alla volta, e di fatto, anche noi
gli esseri umani - anche se ci si sente come se lo sguardo verso il basso e una scissione
secondo dopo So dove il calzino sia, il mio cervello e gli occhi
presumibilmente ha un rapido scorrere di quei calzini, e poi bloccata
a quello in esame.
>> Quindi se tanto più deliberata ora come un computer,
come faccio a trovare questa coppia di corrispondenza?
Beh, dobbiamo iterare.
Dobbiamo forse ciclo su questo pasticcio di calze sul
piano in base al quale io dico una cosa del genere PER OGNI calzino, raccoglierlo
, e se la stessa forma e dimensioni, come l'altro, POI
dot, dot, dot, continueremo la storia.
Così, per ogni calza, quindi prendo questo.
Posso controllare è questo uguale a questo.
Non è, quindi ho messo da parte laterale.
Poi mi scorrere di nuovo.
E `uguale uno?
No, non è, così l'ho messo da parte.
E 'questo?
No.
Questo?
No, e così via.
E poi finalmente, si spera, mi incontreranno questa calza qui.
Quindi, se è la stessa forma, le dimensioni, la prenda.
>> E ora, che cosa sarebbe il nostro prossimo passo qui?
Si '?
PUBBLICO: Identificare la destra dalla sinistra.
DAVID MALAN: Okay, identificare destra e sinistra, in modo da
per fortuna, questo tipo di opere.
Un po 'di simmetrico, o ho semplicemente indossato in quel modo.
Va bene, così ho identificato il diritto.
E ora, prima di procedere, vorrei sottolineare quello che Giuseppe
state facendo qui come una sorta di un programmatore esperto.
Quindi, di nuovo, non c'è un modo di fare questo, ma oltre la semplice
numerare le righe, Joseph ha già iniziato a fare questo
sorta di rientro.
Infatti, questa è una convenzione molto comune in programmazione,
per cui quando si fa qualcosa di iterativo, looping stile, come
stiamo implicando con la frase inglese "PER OGNI
calza, "la convenzione in pseudocodice e, come vedremo,
linguaggi di programmazione normali, è di appena rientro.
Premi la barra spaziatrice un paio di volte, premere il tasto Tab o simili,
in modo che nidificato sotto "PER OGNI calzino" è il pezzo di
roba che avete bisogno di fare come a causa di tale ciclo.
Ecco, questo è tutto ciò che è trasporto semanticamente.
Ora invece, il "Se è la stessa forma e dimensione," l'
fatto che "Take" è rientrato ulteriormente significa solo
questa è l'unica cosa che si dovrebbe fare se tale condizione,
se quel ramo, che bivio, è in effetti vero.
>> Così ora qui, siamo in quattro fasi, identificare destra e sinistra.
Ho identificato destra.
Dammi punto cinque.
E tecnicamente, potremmo davvero chiamare
la per ogni cosa -
probabilmente si dovrebbe numerare tutte le linee, se
stiamo andando a fare questo.
JOSEPH: [incomprensibile]
DAVID MALAN: [incomprensibile]?
Ok, va bene, va bene, lo faremo il vostro senso.
Va bene, allora passo cinque, come si fa a fare la calza giusta?
Come procedere dopo, qui?
Sì?
PUBBLICO: Sollevare la gamba destra.
DAVID MALAN: Sollevare la gamba destra, Ok.
Fase sei?
Rapidamente.
Gia '.
PUBBLICO: Trova una estremità aperta della calza.
DAVID MALAN: Okay, trova l'estremità aperta della calza.
Così buono.
Così qui, onestamente, un istinto molto comune sarebbe solo
messo in calza destra, ma anche questo è abbastanza ambiguo.
A meno che il computer o umano sa esattamente che cosa significa,
non sarà per l'esecuzione che, ecco, ho
trovato l'apertura del magazzino.
Passo sette?
PUBBLICO: Toccare le dita dei piedi.
DAVID MALAN: dita Touch.
Bene, ora andiamo -
Va bene, ho intenzione di prendere alcune libertà qui.
Grazie.
Passo otto?
Indossare calzino.
Bene, ora io, che siamo abbastanza vicini per ordinare di prendere
questo a casa.
Va bene, quindi questo sale.
Prenderò alcune libertà con ciò che significa, in realtà.
Mettere il calzino su.
Va bene, ora passo nove?
PUBBLICO: Metti piede.
DAVID MALAN: Grazie.
Passo nove, messo piede, e ora, possiamo ripetere.
Quindi presumibilmente, ora possiamo andare in punto 10 e dire identificare
sinistra calzino, ma questo è presumibilmente già fatto.
>> E così poi, posso ordinare di ripetere la procedura.
Ma questo tipo di pone la questione.
Prima, l'ultima volta che abbiamo voluto ripetere qualcosa,
ha fatto in modo iterativo, ancora e ancora, un ciclo FOR
Ogni ciclo per così dire.
Avrebbe senso utilizzare un ciclo, al fine di gestire sia
la sinistra e la destra calzino?
Perché ci si sente come queste operazioni sono più o meno
identiche tranne per il fatto che uno inizia qui e uno
inizia da qui?
Abbiamo loop, o dobbiamo solo continuare a passi di scrittura
10 e 11 e 12?
PUBBLICO: Loop.
>> DAVID MALAN: Ok, quindi ciclo.
Io in realtà potuto dire solo andare avanti.
Allora, perché è questo il caso?
Beh, questo è in realtà il primo della nostra non ovvio
decisioni di progettazione, e in effetti, uno dei parametri con cui
inizieremo a valutare, per noi e per voi, il
qualità del programma è proprio come è ben progettato.
Hai fatto la minima quantità di lavoro necessario per
ottenere il lavoro fatto più velocemente, sia in termini di
il vostro tempo o, in termini di tempo di esecuzione del computer?
Quante operazioni ci vuole per eseguire?
Quindi probabilmente, questa è l'occasione per un ciclo perché
appena comincio a copiare e incollare, come Giuseppe efficace
sarebbe iniziare a fare in un attimo, sei una specie di sprecare il vostro
tempo, e sei stato doppiamente espressiva.
>> Ma, allo stesso tempo, questi sono in realtà solo due speciali
casi, sinistra e destra.
E mentre prima, potrei avere 10 o 20 o più calzini in
una pila, fa decisamente senso di non avere 50 linee di
codice di controllo dicendo questa calza, quindi il prossimo,
poi il successivo.
Ecco, è un po 'meno ovvio, e mi ha proposto
che abbiamo potuto andare in entrambi i modi.
Potevamo o avere quel ciclo, anche se solo i loop
due volte, o potremmo semplicemente copiare e incollare solo un po '
qui, al fine di ottenere il lavoro fatto.
Ma questo programma è bacato, per così dire.
Potrebbe avere alcuni errori, errori o casi d'angolo, in modo da
dire, che non abbiamo davvero anticipare.
Nulla è andato storto questa volta, ma quello che poteva andare storto
durante l'esecuzione di questo programma?
PUBBLICO: Non ci sono calzini.
>> DAVID MALAN: Quindi ci potrebbe essere senza calze lì sorta.
Quindi consideriamo questo caso angolo.
Quindi, se si potesse scorrere indietro fino al punto uno, quindi passo uno è stato
piegare verso il basso, in modo che i controlli fuori.
Fase due, prendi il tuo calzino, ma poi trovare corrispondenza calzino,
identificare destra.
Abbiamo fatto una specie di sacco di ipotesi, e questo è,
francamente, perché a volte in crash del programma.
Se si, il programmatore, hanno fatto alcune ipotesi, come
sicuramente ci sarà calzini o sicuramente ci sara '
per essere memoria disponibile nel computer, sicuramente ci sara '
ad essere lo spazio su disco a sinistra sul disco rigido -
Beh, se si fanno queste ipotesi, e che non è,
in realtà, la realtà, che sa a volte ciò che del computer
intenzione di fare?
E a volte, quando si ottiene la palla che gira spiaggia o la
congelati di Windows o simili, è proprio perché alcuni
programmatore non ha previsto i cosiddetti casi d'angolo.
Che altro poteva andare storto in questo programma?
Si '?
>> PUBBLICO: Non si dispone di una gamba destra e gamba sinistra.
DAVID MALAN: Okay, non potrebbe disporre sia di una gamba destra e una
gamba sinistra, e quindi il programma potrebbe non essere universalmente
applicabile.
Altri?
PUBBLICO: Si potrebbe avere preso un calzino orfano.
DAVID MALAN: avrei preso un calzino orfano, quindi un
non corrispondente calzino che ha appena non fratelli perché ho
perso, è strappata, è ancora nel lavaggio, o simili.
Così che, anche, non è stato realmente gestito.
Si '?
PUBBLICO: Si potrebbe già avere calzini.
DAVID MALAN: Potrei già calze.
Io in realtà non controllare.
SE non si dispone di calze, quindi procedere a fare
linea uno e due.
E che potrebbe accadere.
Si addormenta con i tuoi calzini e simili, in modo da
anche questo, un caso d'angolo molto ragionevole.
E forse altro?
PUBBLICO: La calza è dentro e fuori.
DAVID MALAN: Quindi il calzino è dentro e fuori, quindi abbiamo fatto nessun errore
controllo, insomma.
Non abbiamo controllato se lo stato del mondo è come ci aspettiamo.
Non abbiamo controllato se in realtà abbiamo trovato quello che stiamo cercando.
>> E anche se questa è una sorta di un esempio ridicolo
coinvolgendo calzini, alla fine della giornata, questo è esattamente l'
tipo di mentalità è necessario avere durante la scrittura di programmi,
anche in Scratch così come in C, in JavaScript, in PHP,
perché altrimenti, i vostri programmi esporrà la
equivalente di quel pallone da spiaggia filatura o semplicemente cedere
risultati imprecisi.
Ringraziamenti vanno qui per il nostro scrivano di Joseph.
[Applausi]
>> DAVID MALAN: Va bene, allora ciò che è, in
Infatti, un programma per computer?
Bene, diamo una rapida occhiata a un
rappresentante uno qui.
Quindi questo è un programma scritto in un linguaggio chiamato C. C è
lingue più recenti piuttosto vecchie in questi giorni, ma molti sono costruiti
su di esso.
In effetti, PHP, uno dei web-centric lingue faremo
usare verso la fine del periodo, si ha quello che viene chiamato un
interprete, un programma che è scritto in C, ma più su quello
in molte settimane da oggi.
Ma questo programma, e questo è ciò che significa scrivere un
programma, anche se molto semplice.
Abbiamo un po 'di sintassi piuttosto criptico qui, ma è possibile
intuire, anche se non hai mai programmato prima, che cosa
questo programma fa.
In effetti, io non so che cosa è printf, ma di certo la stampa
evoca l'idea di stampare qualcosa.
E quindi sì, questo programma è in ultima analisi, andando a stampare
le parole "Hello, World".
>> Ora, se si dispone di un Mac o di un PC o un computer Linux, le probabilità
sono, almeno se si è scaricato un po 'di libertà
software disponibile, si sarebbe potuto scrivere programmi su
il proprio computer portatile per un bel po 'di tempo.
In Mac OS, per esempio, c'è questo programma chiamato
Terminale che viene fornito con un Mac, che di solito è nel vostro
Cartella Utilities, e si apre in genere un bianco e
bianco o una finestra bianco e nero in cui si dispone di un
richiedere a cui è possibile digitare dei comandi.
Quindi, questo è in realtà ricorda ciò che i computer
usato per essere prima utente grafica
interfacce GUI, è arrivato.
Ora, in Windows, si dispone di un meccanismo simile nella forma
del prompt dei comandi.
>> Ma che cosa ho intenzione di fare è aprire, diciamo,
TextEdit di nuovo, quindi lo stesso programma che stavamo usando per
pseudocodice un momento fa, e ho intenzione di andare avanti e
scrivere il mio primo programma.
Include stdio.h, qualunque cosa significhi, int main
vuoto, qualunque cosa significhi, e poi in mezzo qui,
printf ("ciao, mondo."). E poi citazione vicino,
chiudere parentesi, punto e virgola.
Ora ho intenzione di andare avanti e basta premere Comando-S. Vado
di andare avanti e salvare questo come hello.c, in modo che la convenzione in
il mondo della programmazione C è il nome del file del punto c.
Ho intenzione di mettere solo nella directory Home John Harvard,
qui, fare clic su Salva, e ora ho intenzione di andare oltre a questo
finestra di terminale, che è di nuovo presente in bianco e nero rapida
dove posso eseguire i comandi.
>> Posso eseguire programmi digitando il loro nome, non per
doppio clic icone nel senso comune del termine.
Ma la cosa è di circa C è che un linguaggio come C prima
si presenta in questa forma, qualcosa chiamato codice sorgente.
Qualcosa che sembra un po 'come l'inglese, ma è
sicuramente meno come l'inglese di un pseudocodice Giuseppe
momento fa.
E 'un po' di più arcano.
Sembra seguire alcuni schemi o regole.
Il fatto che ho parentesi graffe, punti e virgola, le citazioni,
parentesi angolari, si sente come un computer si avvicinò con questo
genere di linguaggio.
Ma se vado, adesso, a questa finestra di terminale, posso eseguire un
comando che sta per convertire il codice sorgente è
qualcosa chiamato codice oggetto.
Che sta per convertire inglese sintassi simile a zero
e quelli, lo stesso tipo di zero e uno noi
parlato di Mercoledì.
Ora, ho intenzione di eseguire un comando chiamato Clang.
Maggiori informazioni su questo nelle settimane a venire, ma è un programma con
che posso convertire hello.c in un sacco
di zero e uno.
>> Ora, ho eseguito questo comando.
Ho eseguito Clang, e poi ho detto correre da soli su questo file
chiamato hello.c, che ho creato un momento fa, e
nulla sembra accadere.
Ma in effetti, se io curiosato mia home directory, vedrei
che questo programma a.out stupidamente chiamato ora esiste.
Questo è solo il nome di default per un programma quando si scrive in
C. Siamo in grado di eseguire l'override di questo alla fine, ma è il a.out
nome del programma che ho appena convertito in zero e uno.
E ora che si tratta di zero e uno, il mio Mac, in questo caso, o
PC Windows, in grado di capire i bit, quelle
zero e uno.
E così, quando ho colpito Invio, vedo "ciao, mondo!"
>> Ma è un po 'bacato.
Non riusciva a dire "ciao, mondo: aria: - jharvard." Aria è
il nome del mio computer.
Jharvard è il nome dell'account, quindi quello che ho chiaramente
omettere dal programma?
Una specie di interruzione di riga.
Non ho colpito l'equivalente di Enter o il ritorno a capo,
e questo è, ancora una volta, testimonianza del fatto che i computer possono
solo fare quello che dicono loro di fare.
E il fatto che non ho detto il computer spostare il
cursore sulla riga successiva -
beh, non è certo intenzione di farlo e basta
presuntuosamente per me.
Quindi, se torno al mio programma, e dico \ n -
Quindi \ n, come vedremo presto, è la via della
rappresentare le cose strane come caratteri di nuova riga, cose
che altrimenti essere il risultato di
premendo il tasto Invio.
Ma per ora, è sufficiente sapere che premendo il tasto Invio si
solo fare il nostro codice in modo strano, così il mondo ha deciso, lo sai
ciò che, per mantenere le cose più belle, di tenerlo su una riga, facciamo
solo dire \ n rappresenta una nuova riga.
Vorrei salvare nuovamente il mio file, tornare alla finestra di terminale, e
re-run a.out, Invio.
Ancora buggy, ma perché?
>> PUBBLICO: [incomprensibile]
DAVID MALAN: Sì, quindi ho bisogno di ricompilarlo.
Quindi, per compilare un programma significa semplicemente convertirlo da fonte
codice al codice oggetto il codice sorgente, di zero e uno.
Ora, il solo fatto che mi ha colpito in questo Salva TextEdit non ha
cuscinetto su questi zero e uno, perché ho bisogno di
tell Clang hey, ho cambiato le righe di codice, il
codice sorgente.
Hai bisogno di rigenerare a.out.
Niente sembra essere successo, ma in un computer,
dalla riga di comando, per così dire, in cui non accade nulla,
di solito significa che tutto va bene.
Quando qualcosa accade, significa che
hai sbagliato, in generale.
>> Quindi cerchiamo di andare subito ad a.out, e in effetti ora, ho "ciao,
mondo. "
E ora, che dire di questi zero e uno?
Dove, infatti, sono quelli?
Beh, non posso davvero solo tipo di poke in giro molto
efficace.
Vorrei aprire TextEdit.
Ecco a.out.
Lasciatemi andare avanti e aprire questo, e questo è ciò che il mio apparentemente
programma è simile.
Così ho aperto, non hello.c, ma a.out.
Ma questo non è in realtà quello che il mio programma è in realtà.
Chiaramente, questo è una sorta di caratteri alfabetici.
Non vedo zero e uno, ma questo è
perché a.out è un programma.
Zero e uno - ma TextEdit, come suggerisce il nome, è
proprio come Blocco note di Windows, è solo un editor di testo, in modo che sia
confondendo tutti questi zeri e uno in
se fossero, che cosa?
Caratteri ASCII.
>> Così ricordo il Mercoledì, abbiamo appena si avvicinò con questo
mappatura arbitraria di numeri, o bit, alle lettere dell'alfabeto
alfabeto e simboli di punteggiatura e simili.
Così TextEdit, che si tratta di un editor di testo viene erroneamente interpretato
quei modelli di zero e uno, che si suppone essere
Parole di stampa, come "ciao, mondo". E 'loro visualizzazione
come ASCII, ed è per questo che sembra un po 'disordinato.
Ora, ci sono alcuni suggerimenti di correttezza a qui.
Notate se evidenziare, vi è un accenno di realtà "ciao,
mondo ", così da qualche parte in questo programma è
la frase che ho scritto.
Ma andiamo avanti e ora vedere con un programma diverso.
Questo non è quello che utilizzeremo spesso, ma si tratta anche di
un Mac e sarà all'interno dell'apparecchio CS50.
Lasciatemi andare avanti e aprire con un programma chiamato XXD.
>> Indietro nel giorno, la maggior parte dei programmi sono stati nominati piuttosto criptico,
e così la tendenza continua.
Ma-b significa sputare questo programma come binario.
Non eseguirlo.
Mostra a me come zeri e uno, e questa è la C
programmare abbiamo appena scritto.
Ora, io, come un essere umano qui, onestamente non so cosa
questi modelli diversi di zero e uno rappresentano.
Indietro nel giorno, io, con le mie schede perforate o simili, sarebbe
in realtà hanno a cercare ciò che questi diversi modelli di
01111000, rappresentano di fatto.
O peggio, avrei bisogno di fare la punzonatura o la creazione
di questi modelli di zero e uno.
Ma per ora, prendere sulla fede che una CPU, Intel all'interno, in modo
a parlare, all'interno di tutti i nostri computer in questi giorni, lo sa
come interpretare questi zero e uno.
E alcuni zero e uno significa di stampa.
Alcuni zero e uno significa riprodurre un suono.
Alcuni zeri e di uno significa prendere l'input dell'utente da una tastiera.
Ci sono tutti i tipi di modelli diversi, ma noi per fortuna,
come esseri umani, solo in generale bisogno di preoccuparsi di programmazione in
questo livello piuttosto elevato.
E in altre classi CS si può scavare verso il basso più profondo e guardare
le cose come quelle zero e uno, o ancora
altre cose ancora.
>> Quindi ora cerchiamo di convertire questo.
Passiamo molto rapidamente dalla C e passare a qualcosa di un
poco più confortante, un po 'più eccitante, in quanto
possiamo tornare le nostre animazioni e suoni e simili, che
chiaramente ci hanno specificati in
piuttosto interfaccia primitiva.
Quindi questo stesso programma in C può essere rappresentato ora in questo
linguaggio di programmazione chiamato Scratch come segue.
Questo è l'equivalente di questo programma ciao mondo scritto in
questo puzzle in stile linguaggio pezzo intitolato Scratch.
Permettetemi quindi di andare avanti e di aprire questo programma molto.
E 'di nuovo chiamato Scratch.
E 'liberamente disponibile, e questa è la stessa cosa che
iniziato oggi.
>> Quindi questo qui è Scratch, ed è suddiviso in alcuni
diversi pezzi.
Sulla destra cima, abbiamo la cosiddetta fase, e
anzi, è lì che i biscotti
eseguito solo un po 'fa.
E su quel palco sono cose chiamate sprite, caratteri o
oggetti, o entità.
Non ha molta importanza come si pensa di loro, ma
sono programmabili, cose mobili, e in questo caso, questo
programma che il nostro studente ha scritto ha un paio di pan di zenzero
biscotti, un paio di biscotti circolari, un grosso insieme di
cuori, un grosso insieme di occhiali.
A causa di questo, egli o ella è in grado di programmare ciascuno dei
singoli caratteri separatamente.
>> Ora, che cosa significa programmare questi personaggi?
Beh, lasciatemi andare avanti e fare clic su questo cookie mano sinistra
e scorrere verso l'alto a sinistra qui.
In alto a sinistra del mio schermo ora è il
cosiddetta zona di script.
Questa è una sorta di tabula rasa, inizialmente, su cui posso
trascinare e rilasciare i pezzi di un puzzle che, francamente, non
esattamente quello che dicono.
Nella parte superiore di questa pila di pezzi del puzzle è la parola
Quando Bandiera Verde clic, e se non hai notato prima,
il modo in cui ho iniziato a quella canzone cookie è stato clic, letteralmente,
una bandiera verde.
Così quel pezzo di puzzle in alto a sinistra ci indica quando il
clic umani la bandiera verde, proceduto a fare
le seguenti cose.
>> Ora, che cosa hanno fatto biscotto procedere a fare?
Io non so davvero come interpretare questo ancora, ma la
biscotto apparentemente impostare la sua gola a zero, poi attese
tre secondi, poi cambiato gruppo a uno, allora
aspettò un attimo, poi ha cambiato il suo
solco posteriore a uno.
E poi questo si presenta come un po 'di un bug, non dovrebbe
cambiare la sua gola ancora e ancora meno che non sia
essere cambiato altrove, ma questa serie di passaggi è ciò che è
dettando il comportamento di questo particolare biscotto.
Quindi cerchiamo di fatto scorrere avanti e non guardare qualcosa
proprio così complesso ma.
Lasciatemi andare avanti e andare su File, Nuovo,
e ottenere una tabula rasa.
>> Così ora, ho effettivamente un'area vuota dello script, uno stadio vuoto,
Scratch con la nostra impostazione predefinita sprite, e in alto a sinistra
sul mio schermo ho la paletta di tutte le loro
pezzi del puzzle disponibili.
E non passerà attraverso quasi che molte di queste cose
oggi, perché, ancora una volta, la maggior parte sono auto-esplicativo, ma lo faremo
cercare di classificarli e di evidenziare le somiglianze
con queste lingue in futuro a cui ci si immergerà.
E in alto a sinistra qui è la prima volta Bandiera Verde clic,
per cui vorrei trascinare questa qui, diminuire un po '.
E se clicco la bandiera verde, non succede nulla proprio perché
Non ho attaccato ogni logica, ogni dichiarazione per così dire, a
quella bandiera verde, per cui vorrei andare fino alla
categorie qui.
Sono attualmente nella categoria di controllo.
Ho invece intenzione di andare verso il basso per la categoria Aspetto e
c'è un sacco di cose qui che dire, dì,
Pensate, Cambia colore, Costume Switch.
>> Così si possono fare cose stupide con costumi e
suoni e simili.
Lasciatemi andare avanti e dire Say, e ora notare come mi trascina
e rilasciare questo pezzo di puzzle, sta andando a voler a scrocco
nella forma corrispondente.
Così, quando ho andare avanti e lasciare andare il mio mouse, si bloccano
insieme, e ora se vado qui e fare clic sulla bandiera verde,
il gatto è in realtà dire ciao, perché questo è ciò che è dentro
di questa scatola bianca.
Vedremo che questa finestra di bianco è quello che si chiama un
argomento, o un parametro.
E 'un modo di cambiare il comportamento, in questo caso, un
pezzo di puzzle, ma se voglio dire esattamente quello che ho detto
prima, dire ciao, mondo, ora posso tornare qui,
cliccare play, e "ciao, mondo" è quello che ha detto.
>> Quindi siamo letteralmente programmazione ora.
Non è tutto ciò che convincente di un programma, ma almeno
si tratta di un qualcosa di più convincente di quello sembra, a
prima vista, come questo.
E siamo in grado di ottenere molto rapidamente tanto più espressiva
perché in Scratch, come in altre lingue, c'è tutto
i tipi di dichiarazioni, non basta dire o la stampa qualcosa, ma
si possono fare cose come in attesa, come abbiamo appena visto con
il cookie, un certo numero di secondi.
È possibile riprodurre i suoni in un ambiente di Scratch solo
come si può in un normale riproduzione audio programma per computer.
È possibile controllare le cosiddette espressioni booleane.
Così ora, cominciamo ad aggiungere al nostro kit di strumenti un po 'di terminologia
che riguarda in realtà l'esempio che Joseph e l'ho fatto
qui con i calzini.
Quindi le dichiarazioni sono solo dichiarazioni di fatto.
Fate questo.
Una direttiva per lo sprite, o me l'umano, di fare qualcosa.
Un'espressione booleana è qualcosa che ha un valore, un
cosiddetto valore di verità, che è uno zero o uno, false o
vero, acceso o spento, no o sì.
Non importa come si pensa di questo, ma è un
binario Stato.
Nate Come discusso nel video di Mercoledì, due
cose diverse.
>> Quindi, in Scratch, espressioni booleane capita di guardare
come questi oggetti blu qui, e in questo caso, la domanda
marchio implica che si sta facendo una domanda.
È il gatto, o lo sprite, toccando il puntatore del mouse?
Quindi questo è solo un esempio di un blocco Scratch che sta
per permetterci di controllare sì o no, è il mouse tocca il
sprite sullo schermo?
E questo può essere utile se si vuole realmente fare le cose
con il mouse.
Oltre alle espressioni booleane, abbiamo cose
come è il mouse verso il basso, in modo da poter rilevare questo tipo di
mettere in discussione pure.
Siamo in grado di fare matematica se si vuole realmente, e non c'è
usi in realtà più interessanti per questo che solo pura
aritmetica, come vedremo.
Pseudo casualità e rendere il vostro programma sembrano pensare
o si comporta in modo diverso sulla base di alcuni valori apparentemente casuali,
e poi ci sono cose come espressioni booleane come AND.
Quindi, se si vuole realmente controllare due valori, vedremo in
Gratta che si può effettivamente verificare se questo è
vero e questo è vero.
Ad esempio, nel caso dei miei calzini, avrei potuto in
molto fine ha fatto la domanda se calza a sinistra è a destra e calza
è su, chiudere.
Hai fatto tutto per il giorno, in modo che sarebbe un
possibilità per tale.
>> Quindi cerchiamo di andare avanti e cercare di mettere insieme alcuni di questi
e andare in un paio di esempi più
convincente di questo.
Permettetemi quindi di andare avanti qui e aprire alcuni degli esempi
che sarà sempre sul sito web del corso, come bene, e
aprire hello2.
Quindi, in hello2 qui, abbiamo un programma che sta facendo alcuni
cose, ma non lo fa nel modo più efficace come si potrebbe.
Così qui si dice "ciao, mondo" per un secondo e poi aspetta
per un secondo.
E poi fa di nuovo, e poi lo fa di nuovo.
Quindi, se clicco la bandiera verde, dice Scratch "Ciao, mondo.
Ciao, mondo.
Ciao, mondo. "E questa è, ovviamente, candidato ora
miglioramento.
>> Qual è il miglioramento marginale, si spera, siamo in grado di
ora fare se Scratch supporta il concetto?
Una specie di loop.
Una specie di ripetizione, ora, sarebbe bello, così mi lascia
effettivamente provare che.
Lasciatemi in realtà andare a spostare questo.
Quindi bando può staccare i blocchi con la stessa facilità è possibile aggiungere al
allegate.
Lasciami andare sotto controllo, scorrere verso il basso qui, e anzi,
c'è questo pezzo di puzzle qui, ripetizione e sempre e
Se per sempre.
Quindi c'è un certo numero di modi di esprimere costrutti di loop
in Scratch.
Quello che probabilmente vuole qui non è per sempre, perché ho solo
voglio che questo accada per tre volte, ma probabilmente Ripeti.
Permettetemi quindi di trascinare Ripetere qui, drag and drop, e
ora invece di dire "ciao, mondo" tre volte separate,
vorrei trascinare questo pezzo del puzzle qui.
E anche se non sembra in forma, il programma è intelligente
per rendersi conto che crescerà a riempire, quindi è il
forme che la materia e non la dimensione assoluta.
Vorrei cambiare la ripetizione a tre, e ora lasciami andare
avanti e trascinare attendere un secondo in là pure.
Sta per scattare in pure, e così ora ho intenzione di trascinare
questi ragazzi qui da noi e solo buttare via perché mi
non ne ho più bisogno.
Fammi zoom indietro e fare clic sulla bandiera verde ora, e abbiamo
lo stesso programma, ma, come previsto prima, meglio
progettato perché si può immaginare quanto male questo programma
otterrebbe, sicuramente esteticamente, se si doveva
avviare la copia e incolla, copia e incolla, o
trascinando le stesse cose darn ancora e ancora.
>> Ora, semplicemente dicendo cose sullo schermo, la stampa su
schermo, in realtà non è poi così eccitante, quindi cerchiamo di aprire un
varianza terza quivi.
E ora, come si vedrà, questo prende subito fastidioso -
[MEOW]
DAVID MALAN: - ma è anche carino.
[MEOW]
DAVID MALAN: Okay, quindi meglio, e possiamo certamente utilizzare che
stessa transizione di questa suddivisione in blocchi in su in un loop
struttura, ma cerchiamo di renderlo più interessante ancora.
>> Lasciatemi andare avanti e aprire una varianza quarto qui, dove ho
prendere le cose un passo avanti.
Quindi, secondo questo, sciocco anche se questo è in un primo momento
sguardo, che cosa è questo programma intenzione di fare?
Sta andando a miagolare una volta.
Perché?
Bene, uno è, per quanto ne so, sempre meno di due.
Non c'è concetto di casualità qui.
Ho letteralmente hardcoded uno e due, ma questo è un
esempio ora effettivamente utilizzando un'espressione booleana.
Molto simile a come fece Giuseppe nel suo pseudocodice, il rientro IF
a trovare calze di corrispondenza quindi effettuare le seguenti, qui abbiamo
un'espressione Se uno è inferiore a due POI -
e infatti abbiamo anche un po 'di rientro,
dove il viola è leggermente rientrato verso destra -
Allora si sta andando a giocare il miagolio suono.
Ora, in questo caso, che si è sempre inferiore a due, in modo tale
è una specie di perdita di una condizione.
Ma saremo in grado, come vedremo, di inserire altre cose in
questi segnaposto dove uno e due sono ora.
Quindi cerchiamo di ora passare esempio cinque di questi diversi
saluti e guardare a ciò che questo programma sta per fare.
>> Così ora, in una frase in inglese, come fa questo
programma si comportano?
PUBBLICO: miagolii la metà del tempo.
DAVID MALAN: metà Meow di tempo, quindi questo è un modo di
trasmettere un'idea molto semplice.
Anche se ci capita di utilizzare alcune disuguaglianze qui
in alcuni numeri, questo è davvero solo un programmatico
modo, un modo preciso, di dire se la moneta viene testa, andare
avanti e meow.
O al contrario, se la moneta viene croce, non miagolare.
E in questo caso, come possiamo esprimere questo?
Ci scegliere un numero casuale da 1 a 10, e se questo
numero è inferiore a 6, andare avanti e miagolare.
E come ha fatto questa a entrare?
Bene ancora una volta, si noti solo il trascinamento della selezione e
cose scatta in posizione.
>> Così ora vediamo se funziona questa casualità.
Lasciatemi andare avanti e fare clic sulla bandiera verde.
[MEOW]
DAVID MALAN: Okay.
[MEOW]
DAVID MALAN: Okay.
Ok, bene, così abbiamo ottenuto teste, teste, le code in modo efficace.
Tails.
[MEOW]
DAVID MALAN: Bagni.
[MEOW]
DAVID MALAN: Eccellente.
E 'sempre imbarazzante quando solo statisticamente si ottiene un cattivo
eseguito, ed è tutte le teste, e il programma in realtà non lo fa
funzionano come ci si speranza.
Ma questa volta, ha funzionato, e ci sembra di avere, se abbiamo fatto
questo un numero infinito di volte, il 50% delle quote.
Ora di nuovo, non tutto ciò che interessa, solo fare i gatti
meow, così vediamo se non possiamo avanzare questo un po 'più
qui in versione sei.
Così ora, abbiamo la versione davvero fastidioso -
[Miagolii ogni pochi secondi]
DAVID MALAN: - e questo è ciò che è noto, in generale, come
ciclo infinito.
>> Così ciclo infinito, in questo caso si sente male.
E 'sicuramente per avviare il suono male, ma infinito
cicli non sono sempre male.
Riuscite a pensare contesto in programmi per computer in cui ci si
in realtà vuole un loop infinito?
Si '?
PUBBLICO: Quando si desidera controllare una condizione.
DAVID MALAN: Ok, quando si desidera mantenere il controllo di una condizione?
Per esempio?
PUBBLICO: [incomprensibile]
DAVID MALAN: Ok, bene, quindi se hai avuto qualche programma, un po 'di
genere di cose domotica, in cui si desidera costantemente
monitor è qualcosa di così.
Sono le luci accese?
Le luci accese perché forse si ha un timer, e
si desidera loro di andare via, potrebbe essere necessario fare qualcosa
ancora e ancora.
E infatti, parlando di timer, qualcuno di voi che hanno
orologi sul computer o orologi digitali, che è un
ciclo infinito.
Continua ad aggiornare l'ora, perché è costantemente
controllo e verifica e controllo ha il tempo di cambiata,
e se sì, oh, mio ​​dio.
L'orologio è finalmente cambiato.
Ha bisogno di visualizzare tale valore per voi.
Quindi, considerando che la maggior parte dei loop temporali infiniti sono un errore,
o per lo meno una decisione di design povero, a volte lo fanno
hanno il loro valore.
>> Bene, cerchiamo di avanzare ulteriormente qui per hello7.
Così ora il programma un po 'più interattivo.
Vorrei ingrandire qui, e ancora una volta, questo è ciò che è bello
su Scratch.
E lo useremo per essere chiari, Scratch, proprio oggi e in
problema della prossima settimana impostato.
Ma il Lunedi, ci immergiamo in C. In questo programma, lo fa,
sempre, il seguente.
SE toccare il puntatore del mouse - ora, chi è il
contesto qui?
Beh, e notare che chi è selezionata qui in basso
è proprio il gatto, sprite uno, così questi script, questo
programma, vale per lo specifico.
Quindi, se questo gatto è a contatto con il puntatore del mouse, quindi sta andando
per giocare a questo verso il basso e attendere due secondi, e
quindi ripetere fino alla nausea.
>> Quindi cerchiamo di andare avanti e ha colpito il gioco.
Non succede nulla, ma se voglio il pet
gatto ora, posso solo.
[MEOW]
DAVID MALAN: adorabile.
[MEOW]
DAVID MALAN: Okay, meno fastidioso, ma diventa anche noioso,
quindi cerchiamo di andare avanti e vedere se non si può iniettare
una logica poco più.
E 'stato ad esempio sette.
>> Qui a esempio otto, andremo a
introdurre una condizione ELSE.
Quindi, molto simile a un bivio letterale della strada, in cui si può andare
a sinistra oppure si può andare a destra, una condizione in un linguaggio di programmazione
lingua come Gratta e Vinci, o come vedremo C, può permettere di
andare in una direzione o in un altro tramite un IF ELSE costruire.
Così letteralmente, se toccando puntatore del mouse, questo
riprodurrà un suono, ELSE è andare a giocare a questo altro
suono, miagolio.
Ora, se si può dedurre dal nome di questi suoni, è possibile
probabilmente pensare che questo programma è destinata ad evocare
l'idea.
Questo gatto è miagolando felicemente.
[MEOW]
DAVID MALAN: Fortunatamente, ma non lo fa
piace molto essere toccato.
[Roars]
DAVID MALAN: Così ora abbiamo un gatto che griderà contro di voi.
>> Va bene, un ultimo esempio con i gatti qui, e
cerchiamo di versione open nove di questo qui.
Così ora, abbiamo il suono successivo più fastidioso che ho potuto
trovare, quindi abbiamo un tricheco o leone di mare qui che sta per
effettuare le seguenti operazioni.
[CORTECCIA SEAL]
DAVID MALAN: Ok, questo andrà avanti fino a quando non capire come
questo programma funziona.
Così questa volta, questo animale ha due script, e ciò che è
interessante è che questi script sono in corso di esecuzione
in parallelo.
Quindi, perché entrambi iniziano con una bandiera verde cliccato,
è come andare in questo modo, entrambi i programmi e iniziare a correre è
una volta anche se sono loop per sempre.
Così nello script in alto, ho un po 'logica.
Quali caratteristiche che forniscono fino lì?
[CORTECCIA SEAL]
PUBBLICO: [incomprensibile]
DAVID MALAN: Se si tratta di che cosa?
[CORTECCIA SEAL]
PUBBLICO: Se disattivato a zero, sta andando a continuare a giocare il
suono. [CORTECCIA SEAL]
DAVID MALAN: Ok, bene.
Quindi, se disattivato, qualsiasi cosa sia, questa cosa arancione è pari a zero,
Quindi riprodurre il suono leone di mare e pensare "Oh,
ciao, "per due secondi.
Ora, io non so cosa è disattivato, ma nulla evoca l'
idea di false o off.
Quindi, se disattivato è falsa, quindi se non disattivato,
mantenere la riproduzione del suono.
Va bene, come possiamo disattivare questa cosa?
>> Bene, diamo un'occhiata al secondo script laggiù.
Il secondo script dice impostato su disattivato a zero.
Nota è anche arancione, quindi cosa Scratch fa è che i colori
blocchi dello stesso colore, se è una specie
di logicamente correlati.
Così come rabboccare sordina era arancione, è così mute qui
menzionato nel blocco arancione.
Ma questo è un assegnazioni delle variabili, così come in
algebra, si ha x e y e z, nella programmazione è necessario
variabili, ma sono in genere -
Soffermiamoci per un momento e figura come
per fermare questo abbaiare.
Come posso fare questo?
[CORTECCIA SEAL]
DAVID MALAN: Okay.
Si è fermato. Va bene.
>> Così come in algebra si dispone di variabili x, y, z, ma in
programmazione, avente come variabili x, y, z ed è generalmente
visto di buon occhio perché non sono per niente espressiva.
Essi non hanno alcun significato semantico di sorta, così nella maggior parte
linguaggi di programmazione, le variabili possono avere piena
veri e propri nomi, parole o frasi, come in sordina, a dire
quello che fanno.
Quindi questo secondo script è stato anche ascoltare per sempre, e ha detto
se la chiave, la barra spaziatrice della tastiera, è
premuto, il punto interrogativo.
Quindi c'è una condizione con una espressione booleana che è
andando a rispondere a una domanda sia veritiero o falso,
allora che ho dentro di esso se il tasto viene premuto e lo spazio
SE sordina è pari a zero, impostare sordina a uno, ELSE impostare sordina a zero.
Così questa altra forcella nella strada, e notate come ho
nidificato le due condizioni IF, è un modo di controllo è il
Space Bar premuto perché in tal caso, sia io voglio andare questo
modo o in quel modo.
E come faccio a invertire il valore disattivato?
Devo controllare è pari a zero?
Se è così, ne fanno uno, altrimenti lo rendono lo zero per passare quindi
i suoi due stati.
>> Va bene, quindi abbiamo poi alcuni di questi fondamentali
costrutti.
Ci sono espressioni booleane, e realizzare, anche, questi sono
non è poi così sconosciuto.
In realtà, questa è una schermata veloce suo corso Harvard CS50
strumento commerciale, e qualsiasi sito web là fuori che ha caselle di controllo
e menu a discesa sono davvero, per tutto questo tempo, usato
Espressioni booleane.
In questo caso qui, se si fa clic sulla casella di controllo accanto a
Ovviamente maggiore o uguale a 4,5, o la prossima stesso
facoltà, si sta specificando una espressione booleana.
Mostrami corsi per i quali tale espressione è vera.
Oppure, a destra, non è in contrasto con i corsi che sono
prendere, se è selezionata, allora sì, si desidera controllare
questa condizione, altrimenti si desidera ignorarlo.
Le espressioni booleane Così sono una sorta di tutto, ma quando
li mettiamo in condizioni, se le condizioni IF, IF
Altre famiglie, o si può anche simulare più profonda
livelli, IF ELSE IF ELSE -
in modo che una specie di stato ternario.
Si può andare in questo modo o in questo modo o in questo modo.
Siamo in grado di mantenere le cose di nidificazione di andare in direzioni diverse.
>> Così Scratch ha questi cicli, come sempre.
Ha queste caratteristiche come ripetizione 10, un po 'di
numero finito di volte.
Abbiamo la possibilità ora di impostare le variabili, in questo caso
Ho dichiarato, ad esempio, una variabile chiamata calzini.
Ho inizializzato a 0, e questo è ancora un altro senso
abbiamo potuto prendere qui con Giuseppe, per cui forse
basta tenere traccia del numero di calzini che ho su e terminare
il programma quando il valore che la variabile è 2.
Questo sarebbe un altro modo di generalizzare tale tipo di
problema e fare qualcosa di nuovo e di nuovo.
Bene, andiamo avanti e ora introdurre un paio di cose nuove.
Così quelli di voi con precedente esperienza di programmazione sarà
So che un sacco di lingue hanno array, o vettori o
liste, e in effetti, Scratch ha qualcosa di simile, anche.
Quindi cerchiamo di vedere se non possiamo prendere le cose al livello successivo qui.
Se ho la possibilità, ora, con questi pezzi di puzzle per
aggiungere qualcosa, come una parola o un numero, a una variabile, posso
iniziare ad accumulare cose.
E questo è in realtà a proposito belle per cose come i giochi,
giochi di ruolo in cui sei una specie di giro
un mondo di fantasia raccogliere le cose, raccogliendo le cose,
accumulare punti, o simili.
Si potrebbe desiderare di tenere traccia di un qualche tipo di inventario, e
in effetti, questo è quello che uno dei nostri ex studenti qui fatto con
qualcosa chiamato Fruitcraft RPG.
>> Permettetemi quindi di andare avanti e di aprire questa cosa qui, e in
Fruitcraft, abbiamo questo mondo fino in cima.
Permettetemi quindi di andare avanti e fare clic sulla bandiera verde.
Si noti in alto a sinistra è una sorta di inventario.
Questo è implementato in Scratch come quello che chiameremo un array o
un elenco, e ora abbiamo questa piccola animazione.
Così come abbiamo iniziato prima, con questa storia d'amore cookie,
e poi abbiamo avanzato ai gatti e leoni marini, ora siamo in grado di avere
cose che sono ancora più interattivo.
E questo piccoletto blu, posso iniziare a muoversi intorno al suo
casetta qui.
Quindi sembra che lui ha una via d'uscita verso il basso qui, quindi sto usando
i tasti freccia, su, giù, sinistra destra.
E ora sono fuori, quindi cerchiamo è quello che abbiamo qui.
Sembra un arancio, e in effetti, non appena tocco la
arancione, si lasciò cadere nel mio inventario.
Se vado qui per le ciliegie, ora ho qualcosa
altro nel mio inventario.
E questo è tutto bello e carino, ma pensare a come, ora, questa
è implementato.
Beh, abbiamo questa idea di una lista, e questo è apparentemente un
pezzo di puzzle che basta dire quello che vuoi aggiungere ad essa, aggiungere
arancia, aggiungere le ciliegie.
Ora, che cosa è questo piccoletto blu facendo?
Beh, e 'un folletto.
E presumibilmente, l'arancia e le ciliegie -
essi stessi erano sprite separati.
E l'utilizzo di condizioni di espressioni booleane, le
studente era probabilmente in grado di esprimere IF ragazzo blu è
ciliegie che toccano poi aggiungere le ciliegie parola al suo
inventario, e quindi anche nascondere lo sprite ciliegio.
Quindi, sotto il cofano, probabilmente è ancora una ciliegia
sprite lì.
Abbiamo appena detto di diventare effettivamente invisibile.
>> Ora, se io continuo a camminare qui, possiamo anche farlo
cosa prossimale, dove posso andare a leggere il cartello.
Quindi, se tizio blu toccare segno, possiamo avere questo blocco Say
proprio come il gatto ci ha parlato in parole, ciao, prima, "Got
un po 'di frutta?
Portare al posto della frutta. "Va bene, così ora, a quanto pare,
Io ho le mie indicazioni.
Posso andare qui al posto della frutta, in fila me up
con la porta.
Ora, io sono qui.
Posso salire l'uomo al bancone.
Egli rileva che sono vicino a lui, in modo che non deve essere
tutto identico toccare, e ho vinto la partita.
Così ci abbiamo Fruitcraft RPG.
>> Così siamo in grado di fare le cose ancora più avanzate di questo.
Siamo in grado di aggiungere suoni.
Possiamo aggiungere casualità pseudo.
Possiamo aggiungere complessità.
Lasciami andare avanti qui, e piuttosto che fare da solo,
ti faccio vedere uno dei mezzi più sofisticati
abbiamo ottenuto lo scorso anno da una persona di nome Blake.
Possiamo avere un volontario che è comodo che figurano
fotocamera e per la riproduzione di un gioco?
Che ne dici proprio lì?
Vieni su.
Va bene, allora il gioco che avete appena inconsapevolmente
volontari per giocare -
[Applausi]
DAVID MALAN: - è una cosa di altri tempi chiamato
"Frogger". Qual è il tuo nome?
RENDA: Renda.
DAVID MALAN: Redna?
RENDA: E 'come Brenda con una b.
DAVID MALAN: Okay, Renda.
David.
Lieto di vederla.
>> Quindi, qui a "Frogger", e se potessimo alzare il volume appena
un po ', tu sei questo piccolo
rana verde sul fondo.
È possibile utilizzare sinistra, destra, su e giù, e il vostro obiettivo è quello di
attraversare la strada, attraversare il fiume, e toccare il giglio pad
in alto.
Aw.
Una t più -
rifare, va bene?
Fermiamoci successo.
Nessuno ha visto.
[Applausi]
DAVID MALAN: Già.
Molto ben fatto.
Eccellente, grazie.
>> In modo che non vi era Frogger. Ora che sapete che cosa hai
ottenuto in voi stessi, un altro volontario per una diversa
gioco presentato da un altro studente.
Vuoi venire in su?
Qual è il tuo nome?
RICHARD: Richard.
DAVID MALAN: Richard.
Va bene, Richard, vieni su.
[Applausi]
DAVID MALAN: Tu hai qualcosa che ti suona
familiare presto, per cui qui sono le vostre istruzioni.
Quindi, in un momento, alcuni pezzi del puzzle stanno andando a scorrere verso l'alto
dalla schermata che sembrano sia a sinistra
o destra verso l'alto o verso il basso.
Stai andando ad avere per colpire i tasti freccia in modo
che corrisponde a quei pezzi del puzzle in fila con
i segnaposto in alto.
Così, quando si vede una freccia a sinistra, e si allinei con la sinistra
freccia, premere la freccia sinistra.
Si può iniziare.
[MUSICA - "PIU 'FORTE" Kayne West]
DAVID MALAN: Va bene, grande applauso per Richard.
[Applausi]
DAVID MALAN: Molto ben fatto.
Grazie.
[Applausi]
>> DAVID MALAN: divertente e, apparentemente, una sorta di
intimidatorio come potrebbe essere quello di realizzare qualcosa di
apparentemente sofisticati come questo, si rende conto che lo studente
non ha indicato e solo scrivere tutto questo in una sola volta.
Piuttosto, è possibile scomporre un problema apparentemente complesso
come tale in pezzi molto più piccoli, e anche questo è
Sarà un tema.
La cosa peggiore che si può fare in scrittura di un programma nella maggior parte qualsiasi
linguaggio è quello di sedersi, ottenere davvero eccitato, scrivere il
tutta la dannata cosa, e quindi spero solo che funzioni dal
volta che si è finito di scrivere.
Piuttosto, il processo di programmazione deve generalmente
essere molto consapevole, molto iterativo, per cui è sufficiente
impostare piccoli passi per voi stessi, dimensione di un boccone
vuoi mordere, e in modo da avere queste sanità mentale
controlli, le tappe piccoli si possono incontrare.
E poi si costruisce rispetto a quelle per creare più
cose ancora più sofisticati.
>> Così, per esempio, come potremmo fare per
l'attuazione di un gioco come questo?
Beh, francamente, avrei certamente iniziare da solo
sostenere un tasto alla volta.
Diciamo solo implementare il supporto per la freccia sinistra.
Così lo studente ha dovuto creare in qualche modo in Photoshop, o in
Gratta stesso utilizzando il piccolo editor grafico, un
freccia che assomiglia a quello in alto a sinistra lì, proprio
il segnaposto grigio.
Poi lo studente doveva capire cosa x, coordinata y
metterlo, dove metterlo nella finestra.
0, 0 è qui, in modo da avere per capire il numero di
pixel, o punti, a compensare quella freccia da
la parte superiore dello schermo.
E poi una volta che è in atto, il programma non fa in realtà
fa ancora nulla, quindi è quindi necessario uno sprite secondo, per
esempio una freccia verde che è anche verso sinistra, e si
quindi bisogno di iniziare a scrivere alcuni script per questo.
>> E si nota, forse, che queste cose cominciarono ad arrivare a
velocità diverse, ed i colori erano diversi
luoghi, e questo perché lo studente ha utilizzato un po 'di
pseudo casualità.
E da pseudo casualità, voglio solo dire scegliere un numero
tra qualcosa e qualcosa perché è possibile
iniziano a cose spilli, come se il numero è compreso tra uno e
cinque, beh, facciamo la cosa verde.
Se è tra 6 e 10, facciamo il pezzo del puzzle
rosso invece.
Finché si dispone di un modo di generare un qualche tipo di
casualità, è possibile prendere decisioni in base a tale
casualità.
E continuo dicendo pseudo casuale, perché c'è un
piccolo sporco segreto.
I computer non può venire con numeri casuali.
Essi possono solo fare quello che viene detto, perché
sono artificiali dispositivi.
Non possono indovinare un numero come noi esseri umani
sentire come possiamo.
Un computer ha a che fare qualcosa di matematica per evocare la
illusione di numero matematico, a volte usando il
giorno corrente del tempo come un input per capire cosa
numero di tornare, ma più su che un'altra volta.
Per ora, è sufficiente sapere che siamo in grado di generare pseudo casualità.
>> Quindi, una volta che ho la possibilità per la freccia a sinistra per avviare la
appare in tempi diversi e con velocità diverse, allora
Posso tornare indietro e aggiungere un po 'di queste condizioni IF.
Se questo sprite sta toccando l'altra, e la freccia sinistra
tasto è stato premuto -
quindi tre condizioni in quel caso.
Posso usare che e bloccare forse, in questo caso -
Poi voglio andare avanti e incrementare il punteggio.
E in alto, abbiamo un punteggio, abbiamo Awesome,
Cool, buona, e Boo.
Quindi c'è apparentemente cinque variabili che questo studente
utilizzato per tenere traccia di questi parametri diversi.
Così, in breve, il risultato finale è sorprendente.
E 'divertente, è divertente da giocare, è coinvolgente, ma questo non è
in cui lo studente ha avuto inizio.
Lui o lei ha iniziato ad un set più piccolo di passaggi.
>> Ma quali sono alcuni altri blocchi da costruzione che possiamo
tessere in questi programmi?
Beh, c'è questo altro concetto nella maggior parte delle lingue,
Gratta tra di loro, noto come thread.
Quindi, un computer non può fare le cose in realtà molto di più in un
tempo, almeno non solito.
Piuttosto, un computer ha generalmente solo una CPU, e persino
se i computer sono super veloci e possono dunque,
creare l'illusione di fare le cose in una sola volta -
controllare la vostra posta elettronica, ottenendo un istante
messaggio, la stampa di un documento -
in realtà, un computer è solo saltando dalla stampa alla IMing
all'invio, indietro e avanti e avanti e indietro così veloce che abbiamo
lenti esseri umani stupidi non si rendono conto che in realtà è
l'esecuzione di tali programmi un po 'alla volta.
Ora, questo un po 'di bianco, si trovano in questi giorni perché, al giorno d'oggi,
molti nostri computer sono ciò che sono chiamati multi-core, in modo da
hanno una CPU, ma più core, che è un po 'come
con più CPU.
>> E così a volte, i computer possono davvero fare le cose più
alla volta, ma generalmente all'interno di un programma, programmi
affidamento su queste cose chiamate thread.
Quindi un thread è un po 'come un programma in miniatura che può
coesistenza di un altro programma in miniatura e può funzionare
in parallelo, o almeno può essere eseguito con l'illusione che
sono in esecuzione simultaneamente.
Così Scratch supporta queste cose chiamate thread.
È possibile disporre di più script in esecuzione in una sola volta, proprio come noi
fatto con il lupo di mare, e questo ci permette di realtà
poi interazioni tra questi sprite.
Lasciami andare avanti qui e tirare su, diciamo, fili, e
giocare a questo come segue.
Abbiamo due sprite, ciascuno dei quali vedremo
ha un solo script.
E si nota sembra che ci sia un po 'di intelligenza nel
gatto in questo perché si sta avvicinando -
[Roars]
DAVID MALAN: - e più vicino alla uccellino.
>> Così come è il sistema operativo uccello?
Bene, diamo uno sguardo al primo uccello.
Lo script uccello ha detto che quando la bandiera verde si fa clic, andare a x
uguale negativo 115 e y è uguale a 150.
Così ho capito una posizione casuale in cui ho voluto il
uccello per iniziare, e io lo mise lì per impostazione predefinita.
Poi, sempre se non si toccano gatto, quindi questo è un altro
tipo di costrutto di ciclo, ma la stessa idea, farlo di nuovo e
ancora e ancora.
Fino a quando non si sta toccando il gatto, spostare tre passi, e
se siete al balzo bordo,, dove è una specie di
riflessione nel senso biliardo.
È così che l'uccello si muove intorno tipo di
apparentemente in modo casuale, ma è solo perché è rimbalza
le pareti in questo caso.
>> Ora il gatto, invece, è una specie di truffa.
Il gatto, quando la bandiera verde si fa clic, si, inizia a
una certa posizione, una posizione casuale -
almeno in parte secondo il pick
casuale blocco verde lì -
e poi per sempre se toccando l'uccello, riprodurre il suono leone,
e poi fermarsi script.
Così, quando ho detto terminare o uscire prima, c'è un puzzle
pezzo in Scratch che sarà solo uccidere il programma in questione
punto perché è una specie di logica fatto.
Ma per il resto, qui, notare ciò che sta per accadere.
Punto verso l'uccello e si muovono un passo.
Quindi questo punto verso l'uccello è una specie di un vantaggio del gatto
ha in che è homing in su l'uccello in movimento, e possiamo
ora fanno di questo programma ancora più interessante.
Invece di muovere un passo alla volta per ogni ciclo della CPU, per
colpire pedaggio della campana, per così dire, lasciatemi andare avanti e
spostare, diciamo, cinque punti in un tempo come il gatto.
Fare clic su Esegui, e ora si trova proprio lui in fretta.
Se raddoppiamo ulteriormente per 10 passi, che tipo di va
giusto per lui.
Ora, siamo in grado di dare l'uccello,
forse, un po 'di vantaggio.
Andiamo l'uccello e dire invece di spostare tre fasi,
andiamo avanti lo 30 gradini.
Ma ancora stato preso alla fine.
>> Ecco, ci sono due thread.
E 'rinchiuso in Scratch con due script e due
sprite, ma l'idea in altre lingue è che si può
scrivere, in sostanza, troppi programmi come questo e hanno
eseguirli realmente o immaginariamente, in parallelo.
>> Ora, c'è anche questo concetto in programmazione nota come
eventi, e questo è qualcosa che non vedremo in C, i
lingua conosciuta come C. Lo vedremo verso la fine del semestre
nella programmazione web, quando si introduce JavaScript e il
concetto di costruzione di pagine web che sono dinamici e interagire
con gli utenti.
Quindi, in questo caso, abbiamo un esempio molto semplice di due
sprite, ragazzo e ragazza, ciascuno dei quali hanno il loro rispettivo
discussioni, ma in qualche modo questi due sono comunicanti tra loro per mezzo
di una cosa chiamata eventi.
Permettetemi quindi di andare avanti qui e ingrandire sceneggiatura del ragazzo,
che assomiglia a questo.
Quando si fa clic su bandiera verde, per sempre effettuare le seguenti operazioni.
Se lo spazio delle chiavi, o la barra spaziatrice, si preme dire
Marco per due secondi, che è puramente estetica sul
schermo, un po 'fumetto, ma poi in onda.
>> Così trasmissione è un altro pezzo che è Scratch
rappresentativo di una classe di funzionalità in programmazione
che permette ai programmi diversi, filati diversi,
per inter-comunicare, di inviare in qualche modo
messaggi, uno ad un altro.
Il passaggio di un pezzo di carta in classe è una sorta di low tech
equivalenti.
Così evento di trasmissione.
Posso inviare questo messaggio, e l'evento parola
è del tutto arbitraria.
Scratch ha a volte questi elenchi a discesa, quindi ho appena si avvicinò
con una parola a caso come evento perché ora, quello che il ragazzo non fa
quando si preme il tasto è che trasmette questo evento.
E se guardo ora lo script della ragazza, il suo script è
super semplice, perché tutto quello che deve fare è non agire quando
la bandiera verde si fa clic.
È progettata per azione quando riceve citazione, unquote,
"Evento", e, a quel punto, sta ascoltando quindi per
il cosiddetto evento ripetutamente.
Appena riceve questo caso, sta per gridare
Polo per due secondi.
>> E così si può forse dedurre da questo esattamente ciò che il
risultato successivo sarà.
Permettetemi di fare clic sulla bandiera verde.
Non succede niente perché ho bisogno di fare che cosa?
PUBBLICO: barra spaziatrice.
DAVID MALAN: barra spaziatrice.
Ragazzo dice Marco, ragazza dice Polo.
Ma non è difficile codificato per sé.
Questo è inter-comunicazione tra gli script, così ora abbiamo
hanno la capacità di rendere i programmi ancora più complesso in cui
questi due sono in qualche modo comunicanti tra loro.
>> Quindi, in quali direzioni si può prendere questo?
Beh, in set problema 0, in realtà, l'obiettivo è quello di
divertirsi con Scratch.
Per l'edizione hacker, avrete invece divertirsi con una più
versione sofisticata di Scratch chiamato BYOB, Build
I blocchi, ma l'idea è la stessa.
Sarete in grado -
Sì, era intenzionale.
E 'venuto da Berkeley.
BYOB è la versione pirata di questa edizione, ma entrambi
demografia, edizione standard e l'edizione per gli stessi hacker, il
obiettivo a portata di mano per la prossima settimana è in realtà solo di immergersi in
profondo, sporcarsi le mani con la programmazione, e fare
qualcosa di interessante, fare qualcosa di interattivo, si faccia
qualcosa di artistico, fare qualcosa di divertente in realtà
dimostrare, in modo che entro la fine della settimana, avrai un progetto,
non solo per la tua prima CS50 pset, ma avrete un
po 'di qualcosa che si può mostrare in Annenberg per
amici o addirittura parenti di caricarlo al sito del MIT.
E così come ho detto il Mercoledì, ci aspettiamo che il 90% della classe,
in generale, a fare le edizioni standard.
Rendetevi conto che c'è anche questo sbocco per quelli di voi che
altrimenti potrebbero trovarvi un po 'annoiato con le basi
e tanta voglia di tuffarsi dentro e realizzare una visione che già
hanno con precedenti conoscenze di questo più accogliente
ambiente.
>> Permettetemi quindi di tirare su un altro esempio che uno dei nostri ex
studenti qui fatto e raccontare un po 'di qualcosa attraverso il canto.
Che allo stesso modo, come questo gioca, pensare a come si va su
attuazione del presente programma usando proprio questi stessi
blocchi, un po 'di casualità, e una pseudo
po 'di canzone familiare.
Se potessimo alzare il volume solo un po '?
[MUSICA - "Piove Men" The Weather Girls]
>> DAVID MALAN: Questo è tutto per CS50.
Ci vediamo il Lunedi.
[Applausi]