[REPRODUCCIÓ DE MÚSICA] Està bé! : Aquest és CS50. : Aquest és CS50. : Aquest és CS50. [MÚSICA - IGGY AZALEA, "LUXE"] -El Meu Recordo favorit de CS50 va ser quan vaig anar a Trencaclosques Day. Probablement El moment dedicat a treballar en els butlletins de problemes amb els meus amics i la gent que Wold eventualment convertir-se en els meus blockmates. -El Meu Millor record d' CS50 és el hackathon. -El CS50 hackathon. -Hackathon. -Hackathon. -Hackathon. -El Hackathon -Rob Bowden. Just tot el relacionat amb ell. [MÚSICA - IGGY AZALEA, "LUXE"] -el Meu Millor record és quan jo era a escenari i jo vam jugar el paper de prestigi d'un node de [? al Linked?] [? Llista. ?] Quan Tots tenim espai lliure Dropbox i David era com, mira sota dels seus seients. I va ser com, espai per a tothom! [MÚSICA - IGGY AZALEA, "LUXE"] Consells -La meva per a qualsevol estudiant entrant faria ser treballar realment en P-jocs amb els amics. Hores -Oficina és molt seu amic. Fer La major part de la seva experiència i conèixer a tantes persones com sigui possible. No siguis por de demanar ajuda. -començar Els P-conjunts de principis de la setmana. Crec Que el més important és que prendre avantatge de tots els recursos que té CS50. -ir A les hores d'oficina a principis de setmana. Definitivament Veure els curts. No Posposar les coses en les seves P-sets. Clica aquí per assegurar-se que trobar un gran grup de persones per treballar a P-sets amb. Vostè pot tenir un munt de diversió i realitzar el seu treball junts. No siguis por d'empènyer a tu mateix. Anar a l'edició de hackers de vegades. Coses -Escriure en el paper abans de tornes a tocar l'equip. -CS50 És realment gran en proporcionant maneres d'obtenir ajuda. -el Meu Un consell és dormir. Algú ha dit això? Somni, segur. És fàcil no fer, però has de fer-ho, crec. -diria Que realment estigui preparat mentalment perquè vostè va encantar. [MÚSICA - IGGY AZALEA, "LUXE"] : Aquest és CS50. : Aquest és CS50. : Aquest és CS50. [MÚSICA - IGGY AZALEA, "LUXE"] : Aquest és CS50. [Aplaudiments] DAVID J. Malan: Així que això és CS50 i aquest és el final de la Setmana 0. I això era només algunes del personal del CS50 que esperar que no només en les seccions i les hores d'oficina, però, També, aquest cap de setmana en CS50 Trencaclosques Day. La qual cosa, de nou, no és tot sobre la programació. De fet, s'espera que no haurà de programar res, sinó resoldre problemes utilitzant enginy i amics al costat de vostè. Estarem units per alguna dels nostres amics de Facebook-- si es registra aquí-- que durant els últims anys, tenen en realitat estat escrivint aquests desafiaments amb nosaltres. I així, ells seran els que en última instància, corrent Trencaclosques dia. I així, seràs reptat precisament amb el tipus de coses i problemes que gent de Facebook li agrada pensar. Així que és demà. Fes a cs50.harvard.edu/register. Ara una paraula en un parell del personal en particular. Això aquí és Ansel Duff, que és en realitat una dels co-autors d'aquests binaris bombetes que vam veure dimecres, a més de propi Dan Bradley del CS50. Ansel Duff també era un ex estudiant de primer any aconsellat meu fa 3 anys i de fet fins i tot va construir aquest faristol. S'ha anat a fer ciències de l'enginyeria i més. Ara, la seva imatge aquí és en realitat Ansel fa 3 anys al CS50 Hackathon quan ell va demanar prestat un del nostre globus, enganxat al seu ordinador portàtil, i, per al pròxim 12 d'alguna estranya hores, es va centrar en el seu projecte final, prendre descansos només per obrir bosses de caramels a la hackathon. Però va continuar, més recentment, a passar l'estiu passat amb nosaltres, des CS50 per al seu personal, i ara els estudiants aquest semestre, té la seva pròpia impressora 3D. I en poques paraules a les impressores 3D és un dispositiu que s'assembla bastant com aquest. Vostè s'omple amb un rodet de plàstic que es fon pel dispositiu i construir coses literalment del no-res. Igual que una impressora d'injecció de tinta, s'inicia escopir petits punts de plàstic que forma al costat de formar objectes integrals. I així Ansel per exemple, a principis de aquest estiu, té un iPhone 5 i vaig decidir que realment volia per mantenir sobre el seu escriptori. Però ell no volia sortir a comprar alguna cosa des de la botiga d'Apple o similars, de manera que es va asseure i va començar a dibuixar alguna cosa. Va donar uns mesuraments pel que fa a com gruixuda i l'ample del seu iPhone era, dibuixar aquesta imatge aquí, ell va decidir que volia tenir una inclinació de 75 graus ja que estava mirant ell en el seu escriptori allà. Després es va tornar això, utilitzant programari, en un model CAD 3D que semblava una mica alguna cosa com això. I després es va procedir, en última instància, per crear realment. Així que de fet, si algun de vostès aquí, potser consecutiu en què puc llançar a, té an-- no tenim gent amb iPhone 5, i aquí tenim dues més. Ara, per no ser menys, CS50 pròpia Cheng Gong també es va proposar aquest estiu per construir un bon nombre de coses i, De fet, per raons que encara estan clar, ha estat lentament impressió d'un exèrcit d'elefants amb braços articulats i troncs. Un parell dels quals són en realitat aquí si algú ara com-- un elefant. Bé ,. però el que Cheng també va fer per a nosaltres és ell molt amablement va crear una càmera perquè aquest elefant, ho creguis o no, pren una mica de dos i un hores i mitja per imprimir. Fins i tot l'estand iPhone prendre una hora i mitja per imprimir. I el que Cheng va seguir endavant i ho va fer es va crear una bona càmera davant d'aquesta impressora 3D, filmat per una hora i un mitjà com el disseny d'Ansel imprès. Ens sobrepusimos alguns sexy música a la mateixa per tal per donar-li això a mirar com funciona la impressió en 3D. I tot i que aquesta és en realitat en plàstic, adonar-se que si es tracta d'una àrea del seu interès acadèmic, hi ha gent, entre ells Jennifer Lewis aquí a l'Escola d' Enginyeria, que són en realitat treballant en la impressió 3D objectes de plàstic. Però fins i tot, cada vegada més, materials biològics per a resoldre problemes fisiològics dels éssers humans. Però aquí hi ha una mica de una mica de CS50. [LOUD MECÀNICA SOROLLS] DAVID J. Malan: No sona res d'això en la realitat, però és molt més fresc que veure-ho a aquesta velocitat, i amb aquest so. Ara, dimecres, com vam fer primer arribat fins aquí? Comencem a parlar de l'ordinador les ciències i ens van preguntar de què es tractava. I es tracta d'una sèrie de coses, i hi ha tantes direccions diferents en el qual vostè pot dirigir- després d'un curs com CS50. De fet, si vostè va prendre una d'aquestes guies no oficials l'exterior CS, el fullet que hem proporcionat, si ets pensant en prendre només CS50, o potser fent un secundari, o potser fins i tot per concentrar en CS, no voltejar a través d'això. I veuràs un diagrama cap al final que que mostra les moltes direccions diferents en CS que es pot anar a. Però per ara, ens centrarem, de nou, en Realment un dels punts de vista fonamentals, potser, on vostè ha entrades als problemes, Té sortides d' problemes, i que tenen algoritmes amb els de crear aquestes sortides d'aquests insums. I un exemple d'això, era de Per descomptat, aquest llibre de telèfon aquí. I hem utilitzat com a exemple per anar a través d'un algoritme que era correcte. I després hi havia un altre correcta, però una mica més ràpid. I després un altre que era una mica més dramàtic, però fonamentalment més ràpid. És cert, aquest llibre de telèfon reclamat tenia prop de 1.000 pàgines. I quantes vegades va prendre tinc per esquinçar la guia telefònica al mig trobar algú com Mike Smith, com a màxim, en 1000 la pàgina del llibre? Així, 10 més o menys. I el que un cop em vaig trencar aquesta cosa en mitjà, o simplement, amb més maduresa, dividit per la meitat, és només 10 pàgines de cada 1.000. I si extrapolem, una mica poc realista per a una llibreta de telèfons, però si aquest llibre telèfon tenia uns 4 milers de milions de pàgines en el mateix, de manera tan completa difícil de manejar físicament, quants vegades no divideixen un 4000000000 pàgina del llibre de telèfon a la meitat? Així que en realitat és de 32 anys, més o menys. I així 32 vegades única, fora de 4 mil milions de pàgines, pot a trobar algú com Mike Smith. I això és eficiència. Això és un bon algoritme, diria. Però després ens mudem que per intentar formalitzar. I em vaig proposar aquest codi pseudocodi. Codi Pseudocodi no és gens formal. No és una cosa a memoritzar. És una cosa que vostè expressa bastant intuïtiva utilitzant Anglès, o qualsevol llenguatge de veritat, que transmet les seves idees de manera succinta. Però el que és clau sobre codi pseudocodi és que vostè tractar d'anticipar tota la possibles casos que poden ocórrer. I, en efecte, en aquest pseudocodi codi, havia realment tres casos cada vegada que divideix la guia telefònica. Mike podria estar a l'esquerra. Mike podria estar a la dreta. O potser té raó a la pàgina que estic. O un quart cas de la cantonada, per així dir-ho. Una mala situació podria ser aquella de les quals: el que està succeint? Mike no és només en la guia telefònica en absolut. I quan els programes crash-- quan Mac i programari per a PC que vostès RUN en els equips de vegades penja o es tanca inesperadament, això significa generalment que alguns programador, algun humà com vostè aviat, simplement fotut i comès algun error. Potser no anticipar que potser hi ha hi ha Mike Smith a la guia telefònica. I si en realitat no escrius codi per manejar situacions com aquestes, generalment impredictible coses poden succeir. L'equip pot congelar. Es pot reiniciar. El programa pot deixar de fumar. I així, tots aquests estupideses que vostè pot han trobat en la seva real la vida només l'ús d'ordinadors, serà cada vegada més només explicar lluny per aquesta intuïció i aquesta comprensió del que és realment està passant sota la caputxa. Ara anem a tractar de fer una ullada en un problema més general. En lloc de prendre assistència en un lloc com això, que seria bastant lent fer una, dues, tres, quatre. O potser dos, quatre, sis, vuit. Anem a centrar-nos, en canvi, en com podríem formalitzar l'algorisme del procés per que podríem prendre assistència. I en el camí, anem a començar aplicar una mica de nomenclatura que utilitzarem avui quan en realitat començar a programar en un llenguatge. Així que et dono ara, un vídeo quatre minuts que armem amb els nostres amics de TED, l'organització. Per la qual cosa hem subministrat un guió i van portar els seus animadors de suportar, i en realitat creat un 2D animació del que és un algorisme. Si poguéssim apagar els llums. [REPRODUCCIÓ DE MÚSICA] NARRADOR: Què és un algorisme? En ciències de la computació, un algorisme és un conjunt instruccions de resoldre algun pas a pas problema. Típicament, els algoritmes són executat pels ordinadors, però nosaltres els humans tenim algorismes també. Per exemple, com ves d'explicar el nombre de persones en una habitació? Bé, si ets com jo, el que probablement apuntar a cada persona d'un en un i comptar a partir de zero. Un, dos, tres, quatre, i així successivament. Bé, això és un algorisme. De fet, anem a tractar d'expressar una poc més formalment en codi pseudocodi. Sintaxi Anglès-així s'assembla a un llenguatge de programació. Sigui n igual a 0. Per cada persona a l'habitació, establir n igual a n més 1. Com interpretar el pseudocodi? Bé línia 1 declara, per així dir-ho, una variable anomenat n i inicialitza el seu valor a 0 Això només significa que en el a partir del nostre algoritme, la cosa amb la qual estem recompte té un valor de 0. Després de tot, abans de començar a comptar no hem explicat res. Trucar a aquesta variable n és només una convenció. Jo podria haver cridat més res. Ara s'alineï 2 deMarks l'inici d'un bucle, una seqüència de passos que repetir un nombre de vegades. Així, en el nostre exemple, el pas que estem pren està comptant la gent a la sala. A sota de la línia dos és la línia 3 que descriu exactament com anirem d'explicar. La indentació que implica és la línia de tres que es repetirà. Així que amb el codi pseudocodi és dit és que després de començar a 0 per a cada persona al habitació augmentarem n per 1 Ara és correcte aquest algorisme? Bé, anem a colpejar una mica. Funciona si hi ha dues persones a l'habitació? Anem a veure. En la línia 1 inicialitzem n a 0. Per a cadascuna d'aquestes dues persones, llavors incrementem n per 1. Així que en el primer viatge a través de la bucle, actualitzem n de 0 a 1. En el segon viatge a través d'aquest mateix bucle, actualitzem n des 1 fins 2. I així, per aquest algorisme de final, n és 2, que de fet coincideix amb el nombre de persones a l'habitació. Fins ara, tot bé. Què tal un cas cantonada però? Suposem que hi ha 0 persones al habitació-- més de mi, ¿qui és fent el recompte. En la línia un, tornem a inicialitzem n a 0. Aquesta vegada, però, la línia 3 no s'executa en absolut ja que no és una persona a l'habitació. I així segueix sent n 0, el que coincideix de fet el nombre de persones a l'habitació. Bastant simple, oi? Però comptar persones d'un en un és bastant ineficient, massa, no? Segur que podem fer-ho millor. Per què no comptar amb dues persones alhora, en lloc de comptar un, dos, tres, quatre, cinc, sis, set, 8, i així successivament. Per què no comptar amb dos, quatre, sis, vuit, i així successivament? Fins i tot sona més ràpid. I segurament ho és. Anem a expressar aquesta optimització en codi pseudocodi. Sigui n igual a 0. Per a cada parell de persones en habitació, poseu n igual a n més 2. Bastant simple canvi, oi? En lloc d'explicar a les persones d'una en una, en comptes d'això els expliquem de dos en dos. Aquest algorisme de, per tant, dues vegades tan ràpid com l'última. Però, ¿és correcte? Anem a veure. Funciona si hi ha dues persones a l'habitació? En la línia un, inicialitzem n a 0. Perquè un parell de persones, llavors incrementem n per 2. I així per aquest algorisme de final n és 2, que de fet coincideix amb el nombre de persones a l'habitació. Suposem a continuació que hi ha zero persones a l'habitació. En la línia 1 inicialitzem n a 0. Com abans, la línia 3 no executa tot ja que no hi ha cap parell de persones en el quart, i així segueix sent n 0. Que de fet coincideix amb el nombre de persones a l'habitació. Però el que si hi ha tres persones a l'habitació? Com funciona aquesta tarifa algorisme? Anem a veure, en la línia un, inicialitzem n a 0. Per a un parell d'aquestes persones, llavors incrementem n per 2. Però llavors, què? No hi ha cap complet parell de persones a l'habitació, així que la línia dos ja no s'aplica. I així, a finals d'aquest algorisme, n segueix sent 2, que no és correcte. De fet aquest algorisme de dir ser defectuós pel fet que té un error. Anem amb una mica de reparació nou codi de pseudocodi. Sigui n igual a 0. Per a cada parell de persones en habitació, poseu N igual a n més 2. Si una persona segueix sent no aparellat, establir N igual a n més 1. Per resoldre aquest problema en particular, tenim introduït en la línia quatre condicions, també conegut com un sucursals, que només s'executa si hi ha una persona que no podien aparellar-se amb un altre. I ara, si n'hi ha un, o tres, o qualsevol nombre imparell de persones a l'habitació, aquest algorisme ara comptar-los. Podem fer-ho millor? Bé, podríem comptar de tres en tres, o quatre potes, o fins i tot 05:10, però més enllà d'això, es posarà una mica difícil d'assenyalar. Al final del dia, ja sigui executat pels ordinadors o els éssers humans, algoritmes són només un conjunt d'instruccions amb la que per resoldre els problemes. Aquestes van ser només tres. Quin problema oi resoldre amb un algorisme? DAVID J. Malan: Així que deliberadament, un programa molt senzill, un algoritme molt simple, per aconseguir alguna cosa molt simple, comptant el nombre de persones a l'habitació. Però anem a esmicolar alguns dels representant característiques aquí que són en realitat serà útil fins i tot quan l'aplicació de la més complex de programari. Així, per exemple, en aquesta primera línia, tenim el que anomenem la variable, i l'àlgebra, ets generalment familiaritzats amb x i y i z vegades, i així successivament. Però en la programació, variables són encara, al final del dia, molt similar al. Però és potser més simple de pensar d'una variable com només un contenidor. I, de fet, que és algun nombre de bits implementat d'alguna manera en el teu disc dur oa la memòria del seu ordinador, però més sobre això en el futur. És només un contenidor. I si vostè diu alguna cosa com sigui n igual a 0, bé això és com dir que aquest vidre bol aquí n, només un nom arbitrari, i posar res en ell inicialment. Així que el valor d'aquest bol en aquest moment és zero. I per descomptat, si vostè percep en una línia subsegüent, per incrementar realment alguna línia de codi, com en aquesta tercera línia d'aquí, per 1, que és com dir quin és el valor actual de n, és 0, més 1, posar alguna cosa com un taula de taula a aquí. Ara el valor d'aquest variable és simplement 1. I es podria extrapolar molt ràpidament, però ara és 2, ara és el 3, i així successivament. Així que això és tot, una variable és. És un tros d'emmagatzematge per en realitat emmagatzemar algunes dades. Per ara és una pilota de taula. No es tracta d'un nombre. Però podria ser paraules en un diccionari, com el corrector ortogràfic Em vaig referir a dimecres per un dels butlletins de problemes de l'any passat. Ara, una altra idea clau, que de la mateixa manera és bastant intuïtiu ens atreviríem a afirmar és el d'un bucle. I el bucle en el procés d'explicar tot el món és, per descomptat, fer el mateix El nou i nou-- qualsevol a la vegada o dos alhora. I vostè pot expressar això en anglès, o codi de pseudocodi, en qualsevol nombre de maneres, però l'ús de la preposició "de" és una manera molt comú de fer això. Per a cada persona a l'habitació, fer això. Una i altra vegada. I el fet que és sagnia, línia de tres, només significa que el que se suposa que has de fer és la matèria que està sagnada per sota de la línia dos si. Només una convenció humana, però una comuna com veurem en major real llenguatges de programació de nivell. Ara poc més interessant és quan et fiques en un cas cantonada. Per exemple, una cantonada cas va ser quan hi ha eren tres persones, o cinc, o set, o qualsevol nombre imparell de persones a l'habitació, perquè fer-ho de dos en dos els frens finalment, perquè el va estrany a algú, ja sigui en el principi o el final depenent de com vostè ho fa. I així, ara, tinc aquesta branca, o condició, si una persona continua sent, a continuació, seguir endavant i intentar que un persona solitària que no van rebre aparellat amb algú més. Així que això és el que anomenaríem una condició, o una branca. Codi Ara pseudocodi més en general pot ser escrit per resoldre qualsevol nombre de problemes. I el que pensem que seria millor fer aquí és prendre un moment convidar direm de CS50 posseir Rob Bowden en l'escenari a fer venir a dos voluntaris, que no tenen idea del que l'espera. Una mà va baixar tan aviat com he dit això. Què tal si a la acaba aquí, anem a dalt. I què hi ha de més lluny de distància, què tal forma a la part posterior. Fila de darrere, anem cap amunt amb les mans en alt. Molt bé, i quin és el teu nom? ANITA: Anita. DAVID J. Malan: Anita. Bé, encantat de conèixer-te. Permetin-me presentar a Rob Bowden. Aquesta és Anita. I quin és el seu nom? Kiersten: Kiersten DAVID J. Malan: Kiersten. Kiersten, anem cap amunt i complir amb Rob Bowden i Anita. Encantada de conèixer-te. Kiersten: Encantat de conèixer-te. DAVID J. Malan: Molt bé, Rob. ROB Bowden: Encantat de conèixer-te. DAVID J. Malan: Anita. Kiersten: Hola Anita. DAVID J. Malan: I el seu diversos centenars de companys de classe. Així que, ara me n'aniré endavant i tiri fins a un simple programa aquí en Mac OS que em deixaré realment apuntar algunes notes cap avall. I si vostès volen a cadascun prendre una posició en una d'aquestes escoles allà, m'ho dius a mi anar endavant i comença una llista de codi pseudocodi, si es vol. I el que vull fer aquí, en última instància, és el tipus per a vostè les instruccions que la nostra els membres del públic són en realitat va a recitar per a nosaltres. Déjame anar per davant i just canviar això a una llista numerada perquè coincideixi amb el que estàvem fent allà. I què faré amb la seva ajuda, és escriure un programa en pseudocodi, amb la qual aquests nois van per implementar un cacauet mantega i melmelada. Pel que és potser a propòsit de mostrar alguna cosa que alguns de vostès podria haver vist a l'Internet per només un breu moment molest. [MÚSICA BUCKEWHEAT NOIS, "MANTEGA DE MANI  JELLY TIME "] DAVID J. Malan: OK. Això és suficient. Així que aquí mentrestant, tinc un parell de Google Glasses que posarem en propi Rob Bowden del CS50 per veure el món a través dels seus ulls. I farem el nostre millor esforç en el post producció a teixir realitat les imatges del que Rob està veient Ara, en aquesta conferència real vídeo amb els nostres dos voluntaris al seu costat. Així que el que vaig a fer és, seré el mecanògraf. Tenim la meta d'aquí realment escriure un programa amb el qual fer, en última instància, una mantega de cacauet i gelea, però aquests tres van a comportar- com si fossin ordinadors. I els ordinadors, al final del dia, són en realitat dispositius bastant ximples. Són súper ràpid, però només poden fer, literalment, el que els diuen. Vostè no pot dir simplement fer un cacauet mantega i melmelada. Vostè ha de programar per fer això. Has de dir- amb precisió el que ha de fer, menys les coses surten horriblement i, amb sort, divertidament mal. Així que dit això, necessitem una trucada de sortida de l'audiència per la qual cosa ha d'intervenir un sigui, si l'objectiu aquí és fer un cacauet mantega i melmelada. Sí? AUDIÈNCIA: [inaudible] la bossa de pa. DAVID J. Malan: Obriu la bossa de pa. Així que si els tres concursants faria agradaria procedir a fer això literalment. Obriu la bossa de pa. [AUDIÈNCIA DE RIURE] DAVID J. Malan: Així que treballarem en això. Bé. Així que passo dos, com-- portarem això encara més. Sí, a la part davantera. AUDIÈNCIA: [inaudible] el pa. DAVID J. Malan: Què és això? AUDIÈNCIA: Traieu el pa. DAVID J. Malan: Traieu el pa. De la mateixa manera succinta. Gràcies. [Aplaudiments] DAVID J. Malan: Això és tot? Acceptar, de manera que el pas 2 va ser eliminar el pa. Bé, algú vol escriure una sentència més llarga? Algú més? Una mica més de [inaudible]. No, res ara. Sí? AUDIÈNCIA: Col loqueu 2 llesques costat de l'altra. DAVID J. Malan: Col loqueu 2 llesques costat de l'altra. [AUDIÈNCIA DE RIURE] DAVID J. Malan: Col loqueu 2 llesques costat de l'altra. Pas quatre. Sí? AUDIÈNCIA: Porteu al seu la mà i la va posar suaument a la part superior de la tapa de mantega de cacauet. [AUDIÈNCIA DE RIURE] AUDIÈNCIA: [inaudible] al costat de la mantega de cacauet. DAVID J. Malan: Què? Digues-ho de nou. AUDIÈNCIA: Desenrosque la tapa i posar suaument al costat de la mantega de cacauet. DAVID J. Malan: Posi suaument al costat de la mantega de cacauet. Acceptar, el progrés. Pas cinc. Excel · lent. Sí? Recull el ganivet. DAVID J. Malan: Pick up ganivet. Acceptar, pas 6. Sí? AUDIÈNCIA: Sostingui el ganivet pel mànec. DAVID J. Malan: Mantingui ganivet pel mànec. Mantingui ganivet pel mànec. Pas 7. Sí? AUDIÈNCIA: Ganivet de [inaudible] en maní la mantega i la menor a [inaudible]. DAVID J. Malan: Posa ganivet en-- I sentit "ganivet lloc en la mantega de cacauet i prendre tan poc com sigui possible ". Per cert, primer traieu el paper. Molt bé, el pas nou. Pas nou. Pas nou. En realitat no hem fet un sandvitx encara. Sí? AUDIÈNCIA: Usant un ganivet a la mantega de cacauet, aplicar mantega de cacauet en aquest pa. DAVID J. Malan: Usant un ganivet a mantega de cacauet, mantega de cacauet a aplicar dit pa. [AUDIÈNCIA DE RIURE] DAVID J. Malan: Tot pas correcte 10. Pas 10. Sí? AUDIÈNCIA: Sabor cacauet mantega per garantir la qualitat. [AUDIÈNCIA DE RIURE] DAVID J. Malan: Pas 11. Pas 11. Pas 11. Vingui. Sí? Aquí mateix. AUDIÈNCIA: Recolliu acuradament gelea. DAVID J. Malan: Recolliu acuradament gelea. Acceptar i, a continuació, una altra mà pujava. Just darrere teu. Sí, en blau. AUDIÈNCIA: Molt bé, tregui tapa de [inaudible], sí, retiri la tapa de la gelea. [AUDIÈNCIA DE RIURE] DAVID J. Malan: Des de gelea. Ha, ha. [AUDIÈNCIA DE RIURE] DAVID J. Malan: I? AUDIÈNCIA: I tot just escombrar qualsevol [inaudible]. [AUDIÈNCIA DE RIURE] AUDIÈNCIA: Per descomptat, abans de [inaudible], traieu el paper de la gelea. DAVID J. Malan: Traieu el paper de la gelea. Pas 14. Ja gairebé arribem. Sí? AUDIÈNCIA: Ampolla gelea Invertir abans que tot cau. DAVID J. Malan: Invertir gelea ampolla abans de gelea cau. Pas 15. AUDIÈNCIA: Torneu a posar la tapa. DAVID J. Malan: Torneu a posar la tapa. Pas 16. Sí? AUDIÈNCIA: [inaudible] DAVID J. Malan: Digui això una altra vegada. AUDIÈNCIA: casquet de la presa fora del seu gelatina. DAVID J. Malan: Off seva gelatina. Així realmente-- Ui. Vingui. Torneu a posar la tapa. Posi cap-- Vas dir tregui la tapa de la gelea. Sent com si estiguéssim en una mica d'un bucle. Pas 17. Sí? AUDIÈNCIA: [inaudible] DAVID J. Malan: Digui això una altra vegada. AUDIÈNCIA: [inaudible] DAVID J. Malan: Tornar a step-- AUDIÈNCIA: [inaudible] DAVID J. Malan: Traieu casquet de la mantega de cacauet. Sí? AUDIÈNCIA: caiguda de tot el gelea en el pa. DAVID J. Malan: caiguda de tot la gelea en el pa. DAVID J. Malan: Estem gairebé allà. Pas 19. AUDIÈNCIA: Traieu l'excés de gelatina. DAVID J. Malan: Haha, la gelea. [Aplaudiments] DAVID J. Malan: Per què no nosaltres-- un pas més per prendre aquesta llar. Un pas més i després servirem entrepans. Sí? AUDIÈNCIA: [inaudible] DAVID J. Malan: Mentre que qualsevol sandvitx guió ens va deixar remains-- esto-- menjar. [Rialles de l'audiència] DAVID J. Malan: Molt bé, gràcies Gràcies als nostres voluntaris aquí. [Aplaudiments} DAVID J. Malan: Tenim algunes bones regals de comiat per a cada un de vosaltres. La seva pròpia mantega de cacauet, gelea, i el pa per portar a casa. Gràcies. Kiersten: Gràcies. DAVID J. Malan: [inaudible] benvinguda. [Aplaudiments] DAVID J. Malan: Així que, això és, de Per descomptat, un exemple ridícul. ¿Cert? Però això tipus de revelar com els éssers humans només tenen claredat per fet. I el fet que he estat parlar amb un altre ésser humà, ell o ella només sap el que vols dir. Els ordinadors no van saber el que vols dir, fins i tot quan s'utilitza, com estem a punt de fer avui, programar alguna cosa en Scratch, un llast i deixar anar, el llenguatge de trencaclosques estil peça. Fins i tot dissenyat per a joves els nens, que tenen ser tan explícita i tan literal amb el que vostè vol que el seu programa de fer. Ara, en última instància, estem serà la programació no en el codi de pseudocodi, Anglès com la sintaxi, però el codi o, més pròpiament, el codi font. El codi font és la forma elegant per descriure codi que en realitat escriure amb un teclat que és no en anglès per se. Està en C o Java o C ++ o alguna cosa així, com aviat veurem. I, de fet, només per espantar a un pocs de vostès, a primera vista, aquest és un programa escrit en un llenguatge anomenat C. Però per a un-ensurt a alguns de vostès, ho faràs completament entendre el que està passant en venir el proper dilluns quan es arriba a alguna cosa com això. Francament, aquesta és una llengua més antiga. És bastant arcà, però és representativa d'una gran quantitat d'idiomes en aquests dies que tenen un munt de parèntesi i arrissat claus i cometes i punts i comes. I molt d'això coses sintàctica que no és en absolut intel·lectualment interessant. De fet, es tracta d'una distracció absoluta des de les idees molt simples que ens estan mirant a la cara. Aquest programa, com que només podria endevinar, imprimeix a la pantalla de l'ordinador d'algú les paraules "Hola món mengi." Això és tot. Així que, clarament, no hi ha un munt de coses que són en el camí de alguns obvietat allà, però caurà molt ràpidament de distància i ser completament intuïtiva. De fet, el que farem avui es destil aquesta força complex programa que busca, que al seu torn li va a venir comprendre ràpidament, sinó a alguna cosa molt més simple. Diguem el que volem dir. Anem a dibuixar una imatge del que volem dir, a través d'aquestes peces del trencaclosques aquí. Així que aquesta és una programació llenguatge conegut com esgarrapades. Va ser desenvolupat per el Media Lab del MIT. I el que vostè veurà en problema d'ajust a zero, que serà llançat més tard aquesta nit, anem a haver d'anar a aquest URL aquí scratch.mit.edu. I tenen un web interfície basada través de la qual vostè va a escriure el seu primer programa. O aquells de vostès amb anterioritat experiència, els seus programes de segon, però en un entorn que és probablement una mica familiaritzat i que et empenyerà per crear alguna cosa utilitzant aquest entorn molt visual. Ara, el que faré aquí és obrir el programa en si. Existeix no només com un navegador web, sinó també com un programa descarregable pel que en realitat es pot utilitzar si vostè no té accés a internet. I jo faré que aquí, a Sanders, només en cas que el Wi-Fi no és així cooperar súper bé. I el que faré és el punt terme algunes característiques d'aquest programa. Així que, perquè quedi clar, que acabo de doble clic a la icona a l'escriptori, o equivalentment anat a scratch.mit.edu, i es va aturar aquesta finestra. Aquest és un entorn de programació. És una peça de programari que alguns dels nostres amics al MIT escriure que anem nosaltres i ens escriu programes en un llenguatge anomenat esgarrapades. Ara bé, això passa a ser un cat qui també va nomenar esgarrapades i aquest és el seu món en què viu. Aquesta és l'etapa, per així dir-ho, que rectangle a la cantonada superior esquerra. I ell no ha de semblar-se a un gat. Vostè pot fer que es vegi com qualsevol cosa i vostè pot tenir molts d'aquests sprites, o caràcters, en un programa. Mentrestant, aquí a l'extrem dret, és una gran pissarra en blanc. I és aquí on, en un moment, anem a iniciar la programació arrossegant i deixant anar aquests trencaclosques gràfica peces que són perfectes aquí al mig. I hi ha molt més d'ells que anem a passar el temps aquí a la classe perquè trobareu que tots són bastant intuïtiu. Una vegada més, està dissenyat per als nens, sinó que utilitzar-lo per esmicolar alguns dels idees fonamentals de variables, bucles, condicions, i, aviat, les coses com les funcions i esdeveniments i les rosques i altres coses de luxe que anem a arribar en poc temps per realment crear alguna cosa des de zero. Mai millor dit. Ara, el que vaig a fer aquí és feu clic a no moviment, però el control. I això és només una categorització aquí-- i veig una diferent grup de colors dels blocs. Però notar algunes paraules familiars. "Si" i "else if" i "repetició". I és fàcil endevinar que és una reminiscència de la branca, o les condicions que vam veure, i fins i tot la construcció de bucle. Així que tenim blocs similars aquí. Però el més interessant un és aquest d'aquí. Quan es fa clic en aquesta bandera verda, això, per a aquells amb la programació prèvia experiència, és equivalent a una funció principal. Però per a aquells que no coneixen, aquesta és la peça del trencaclosques que serà posar en marxa tot el nostre programa. Literalment vol dir quan vaig, en aquest programa, i feu clic a un flag-- verd que es pot veure aquí al cantonada superior esquerra de la interfície d'usuari, així a veure la bandera verda al costat de la senyal de stop de color vermell? Quan faig clic en això, la meva programa es va a executar. Ara, jo vaig a fer alguna cosa super simple amb esgarrapades. Vaig a seguir endavant i aneu al tauler de mirades aquí, on tinc un munt de les peces del trencaclosques de color porpra, i jo vaig a seguir endavant i fer alguna cosa super simple com, per exemple. I fixeu-vos llavors-- aquest text en el quadre blanc és editable-- diré "Hola món", igual que va fer en aquest textual versió fa un moment. I ara si em vaig i feu clic en aquest bandera verda, que ara han programat. No és un particular programa interessant, però vaig fer que l'ordinador faci alguna cosa. Vaig començar un programa i vaig fer el que em van dir que fes. Ara, puc continuar per arrossegar i deixar anar més i més d'aquestes peces del trencaclosques i que van a entrellaçar, però anem a bufetada alguna terminologia aquí que veurem recurrents durant tot el curs, i realment llarg de la informàtica i la programació en general. Aquest "dir" del bloc, en porpra, anem a simplement començar a cridar un comunicat. És com una declaració de fet. Feu això. Així que, és una categoria de instruccions que podria alimentar un equip com a part d'un programa o un algoritme. I per ser clar, que hi hagi probablement es dóna per fet que té programes al seu ordinador. I són tipus d'algorismes, sinó una programa és en realitat un munt d'algoritmes que alguns humans van escriure. Ells s'empaquen cap amunt i el van vendre per la qual cosa, o es publicaran en una pàgina web perquè puguis descarregar. Per tant, un programa és només una tota munt de zeros i uns que, d'alguna manera, els éssers humans van crear. I aquests patrons de zeros i els representen coses, en última instància, com o "joc" dir hola món " aquesta música "o" reproduir aquest vídeo " o "enviar un correu electrònic." Però anem a tornar a de manera més detall el un programa és quan vostè, vostè mateix, ells escriuen. Hi ha un altre statement-- "Esperi un segon." No vaig fer ús d'això encara, però si vull el meu programa per fer una pausa per un moment fer alguna cosa, puc dir-li que ho faci. Espereu un segon. Ara un altre podria ser "reproduir el so." Així que, això és únic en Scratch, que té la capacitat de reproduir sons. Per tant, una declaració que podria ús és, aquí, "jugar de so." Mentrestant, l'expressió booleana, pel que aquesta és una paraula més elegant nomenat després de només un tipus anomenat Mr Bool, i això té a veure amb una pregunta. Veritable o false-- és el ratolí? Una expressió booleana és només alguna expressió en anglès és a dir, ja sigui vertadera o falsa. Ja sigui dins o fora. O bé un o zero. Vostè pot pensar en ell en qualsevol nombre de maneres, però és vertadera o aquesta falsa, en última instància. Així "ratolí cap avall signe d'interrogació," això seria una expressió booleana. I vostè pot pensar en els altres, potser. Per exemple, "és el nombre de l'esquerra menor que el nombre correcte? " Això, també, hauria una expressió booleana. "Menys" és una expressió booleana. Aquest, també, "punter del ratolí commovedor." No estic segur de per què anomenat punter del ratolí. Només vol dir, és que el cursor, és el fletxa a la pantalla, tocant el gat, per exemple. O algun altre aspecte de la pantalla. I és una pregunta, un cop més, i que denota una expressió booleana. Una cosa que et poden que vulgueu utilitzar en una condició. Així que anem a arribar a això en un moment. Vostè pot "i" coses juntes. Així que, si vostè vol comprovar si aquest és el cas i que és el cas, vostè pot utilitzar una "i" bloc com aquest. I aquí està aquesta condició. Observeu la forma de la petita obertura a la part superior d'aquesta peça del trencaclosques de color groc, que és una reminiscència de la forma que acabem de veure fa un moment. Cadascuna d'aquestes expressions booleanes tenir aquests vores punxegudes a l'esquerra i la dreta. I això és perquè la gent del MIT decidir que per les formes de transport visualment, vostè pot classe d'ajudar a la gent, estudiants i nens per igual, per omplir classe dels espais en blanc, literalment. Ara que puzzle-- que obertura és una mica petita, i com veurem en el programa, en Scratch, que creixerà per adaptar-se. Es mantindrà la seva forma, en última instància. Així que una condició anem a decidir "He de fer alguna cosa o no?" Una expressió booleana és la pregunta real que utilitza per decidir què vaig a l'OR vaig deixar faig per anar a la dreta quan em trobo amb aquest anomenat forquilla a la carretera? Vostè pot tenir dues branques. Si alguna cosa és cert, fer això, en cas contrari anar d'aquesta manera, o simplement pot no fer res en tot, com aquest bloc implícita. De la mateixa manera, es poden niar aquestes coses. Així que si vostè vol que es tripliqui en la forquilla carretera, o bé fer això o això o allò, vostè pot tot just niu aquestes coses juntes. I comença a ser una mica lleig, amb el temps, amb certesa, però la lògica segueix sent la mateixa. Vostè pot llegir literalment aquesta dalt a baix i diu el que vol dir: si aquest És cert, fer això, més si la resta. Un bucle no aconsegueix més simple en scratch. Sempre feu el següent. Ara vostè no pot pensar que pot fer molt perquè no hi ha la quantitat d'espai entre la part superior i la part inferior d'aquesta obertura peça del trencaclosques. Però veuràs esgarrapades va créixer per adaptar-se a la major quantitat de peces d'un trencaclosques com vostè vol ficar aquí. Un altre bucle podria ser expressat amb repeticions. Si vostè sap per endavant ", I voler fer alguna cosa 10 vegades, " vostè pot dir-li a les ratllades fer alguna cosa 10 vegades. I, mentrestant, podem tenir variables. Així que aquí és arbitrària, És de color taronja en aquest cas, i aquest és un viatge llampec. Una vegada més, es troba aquesta molt accessible una vegada de començar a assenyalar i fer clic. He nomenat al meu variable n, però jo podria haver anomenat ell el que vulgui, i jo estic donant aquí, a aquest exemple arbitrari, a zero. Ara veient un programa com hola món no és tan convincent, així que anem a obrir en realitat alguna cosa que un ex estudiant va fer. Déjame anar per davant i obro, per exemple, aquesta d'aquí, per als que m'encantaria tenir un voluntari. Molt bé, sobre-- anirem més lluny. Sí, anem a dalt. Quin és el teu nom? ABBY: Abby. DAVID J. Malan: Abby, anem a dalt. Així que alguna vegada has jugat aquest joc abans? ABBY: No DAVID J. Malan: Molt bé. David, un plaer conèixer-te. Vine a treballar. I quina és la seva programació fons, si n'hi ha. ABBY: He après una mica de C ++. DAVID J. Malan: Has après alguna cosa de C ++. I el que és el seu joc tocant fons? ABBY: No gaire. DAVID J. Malan: OK, així que anem a prendre això. Així que aquí està com el joc funcionarà. Vaig a seguir endavant i feu clic a la bandera verda, que és aquí a la part superior dreta. Ara el seu predecessor a la classe t'ha donat algunes instruccions aquí. I en un moment, es diu que "l'espai per començar." Així que endavant i prem la barra espaiadora. JOC D'ORDINADOR: Pikachu. DAVID J. Malan: I l'objectiu és agafar el menjar, tal com es representa allà a l'esquerra. I a [inaudible] [JOC DE MÚSICA] DAVID J. Malan: Aww, bé, gràcies per jugar. Tenim aquí una mica regal de comiat per a tu. Tenim bola de la tensió CS50, si voleu triar. Està bé, bé conèixer-te. Gràcies per venir i desafiant. Així que tenim més boles d'estrès, de manera que farem un exemple més per motivar. Un voluntari? Molt bé, què hi ha de aquí davant. Quin és el teu nom? PHILLIP: Phillip. DAVID J. Malan: Phillip. Anem amunt, Phillip. Així, Phillip es va a ser desafiats amb un altre joc que un dels seus predecessors escriure com a part del problema d'ajust a zero, anomenat joc més difícil d'Ivy. I veurem en tan sols un moment el que es vol dir amb això. Phillip, encantat de conèixer-te. Quina és la seva formació? PHILLIP: Fet un munt de codificació. Fet una mica de joc, també. DAVID J. Malan: OK. Tens un munt de jocs, també. I has jugat abans a aquest joc? PHILLIP: No DAVID J. Malan: Tots bé, així que aquí anem. Vaig a seguir endavant i feu clic a la bandera verda. [MÚSICA GAME] [MÚSICA MC HAMMER, "O NO POT TOCAR AIXÒ"] PHILLIP: [inaudible] DAVID J. Malan: [inaudible] PHILLIP: [inaudible] [Rialles] [MÚSICA MC HAMMER, "O NO POT TOCAR AIXÒ"] DAVID J. Malan: [inaudible] Llaurar a través d'ell. PHILLIP: [inaudible] DAVID J. Malan: Endavant. [MÚSICA MC HAMMER, "O NO POT TOCAR AIXÒ"] DAVID J. Malan: Molt bé. Felicitacions. [Aplaudiments] DAVID J. Malan: Nosaltres ja que en línia més tard per que es pot posposar les coses amb ell també. Princeton apareix al costat, després d'això. Així que ara anem a procedir en realitat de començar de zero, per així dir-ho, i en realitat acumulant fins podem esmicolar algunes d'aquestes idees i arribar a alguna cosa encara més complexes per al final. Em vaig a anar d'aquí i vaig seguir endavant i crear un nou arxiu. Així que de nou, el conjunt de problemes caminarà a través d'alguns d'aquests passos. Però, tot el que vaig fer va ser anar al menú Arxiu i jo dit "nou", tan semblant a Microsoft Word, o qualsevol programa així. I seguirem endavant i ens ara-- implementat "Hola món" fa un moment, però farem alguna cosa una mica més bonic. Vaig a anar als esdeveniments. I jo faré "quan bandera verda fa clic ". I després vaig a utilitzar, per així dir-ho, una branca. Així que vaig a utilitzar un "si" condició. I notar com pel que fa m'acosto a ell, que vol trencar junts. Així que vaig deixar anar i que encaixi junts. I ara puc fer alguna cosa interessant. Si puc desplaçar-me per aquí, vaig per veure un munt de blocs. Si vaig a "Dades" - em deixa el zoom en-- hi ha alguna cosa sobre les variables. Si vaig al "moviment", que pugui aparentment canviar les coses. Si vaig a "operadors" - oh, això és interessant, Puc triar un nombre a l'atzar. Així que m'ho dius a mi fer alguna cosa amb només certa probabilitat, perquè sí. Vaig a seguir endavant i arrossegar aquesta peça del trencaclosques, això és que menys de bloc, pel que és just "És aquest nombre a menys que un?" Però jo no vull un codi permanent un nombre perquè això és bastant inútil. Així que vaig a arrossegar aquesta peça aquí, i observi com que encaixi en, i ara vull seguir endavant i dir "si el nombre que es va escollir a l'atzar és menys de sis, feu el següent ". Ara, per menys de sis? Quina probabilitat és això de manera efectiva em donarà, només intuïtivament? Al voltant del 50%, no? Si el nombre que pot endevinar a l'atzar entre 1 i 10 és inferior a sis, clarament és un, dos, tres, quatre, o cinc. I pel que em donarà una 50% de probabilitat que passi? Bé farem alguna cosa com això, "jugar miol de so." I fixin-, de nou, la peça del trencaclosques creix per adaptar-se, tant de temps com les formes coincideixen. Això és l'important. Déjame anar a les ratllades aquí i feu clic a "play". No passa res. És un error? No, no cal. Podria ser simplement que una major nombre va ser triat. Així que anem a fer-ho de nou. Res. [Miolar] DAVID J. Malan: Aquí està. [Miolar] DAVID J. Malan: Una vegada més. No [Miolant] DAVID J. Malan: Així que si vostè té Alguna vegada ha jugat un joc, per descomptat, on la matèria està succeint a l'atzar, com els nois dolents estan venint o no venir a la pantalla, o les coses estan caient o no compresa, això és només perquè alguna cosa súper simple com això està succeint. Escolliu un número a l'atzar, i si és menor que un cert valor, potser fer això o potser fer això. Podem incorporar que en una condició. Anem a fer alguna cosa diferent. Permetin-me desaprofitar. Vostè pot desfer-se de coses per simplement arrossegant cap a l'esquerra i deixar anar. Deixin-me seguir endavant i fer un bloc per sempre i molt aviat fer alguna cosa molest. Déjame anar per davant i dir "jugar miol de so." Però jo no vull que això sigui massa molest, així que em agafo aquest bloc, "Espera un segon," i l'avís no hi ha més espai per a ella. Però si vas prou a prop, que vol anar-hi. Així que deixar anar i ho farà creixi per omplir el bloc. Així que ara, es tracta d'un bucle. [Miolant] DAVID J. Malan: Sóc literalment, fer això per sempre. Una i altra vegada. Això no és només un so natural. Deixin-me seguir endavant i canviar aquesta no un segon, dos segons i prem Enter. I el que és bo d'Scratch és que es pot programar de forma interactiva. Fer un canvi, potser premeu Enter o Reproduir de nou, i s'acaba de seguir endavant. Bé, ara ¿per què no ho fem cosa una mica més bonic? En lloc de fer tot des de zero, m'ho dius a mi anar per davant i obro un avanç va fer un, que em pre-cuit, anomenat "Pet del gat." I anem a publicar tots aquests arxius en línia, i problema d'ajust a zero li dirà com accedir-hi i obrir-los. I fixeu-vos, això és bastant simple. Però abans, em sembla que han agafat un bloc "per sempre", així que tinc un bucle. I després tinc una condició "if". Tinc una expressió booleana. Així que en anglès, només fent una ullada a això, especialment si vostè mai ha programada abans, només intuïtivament, el que és això farà, aquest programa? [Chatter AUDIÈNCIA] DAVID J. Malan: Si la seva mascota al gat, el gat va a miau, oi? Perquè "sempre desmarcant" es el punter del ratolí tocant el gat. Així que per ser clars, i jo no vaig dir això abans, tots aquests trencaclosques peces i la seqüència de comandaments que els hem combinat a, per així dir-ho, una seqüència d'ordres és sinònim programa, en realitat, pertany a aquest gat. I la raó perquè és-- avís es posa en relleu com aquest mateix gat aquí, aquí es pot crear un segon gat o un gos o realment tot el que vulguis de forma gràfica. Vostè pot importar alguna cosa des Photoshop, o similars, i integrar alguna cosa si voler fer que per a un projecte. I el que trobarà, en última instància, és que vostè pot afegir seqüències d'ordres, afegiu trencaclosques peces, a caràcters individuals. Així que tots aquests pertanyen a aquest gat particular. Així que ara si em vaig per davant i jugar aquest programa, no passa res. Però s'està executant. El programa és en aquest bucle sempre, tipus d'espera del que passi? [Chatter AUDIÈNCIA] DAVID J. Malan: acariciar al gat. Així que si em moc meu ratolí cap ell-- [Miolant] DAVID J. Malan: Així que ara Estic acariciant al gat. Mentrestant, podem tenir una branca doble. Déjame anar endavant i obrir fins a no acariciar al gat. Anem a publicar aquesta línia també. Això és una mica més complexa, però sense dir es pot endevinar potser el que va a succeir. [Miolant] DAVID J. Malan: Cat és miolant, gran temps vell. Però aquest programa és, per descomptat, anomenat "No acariciï el Gat," tan clarament, vull acariciar al gat. [ROARING] DAVID J. Malan: No acariciar al gat. Ara, donem una ullada en un altre exemple aquí. Aquesta serà anomenada "Hi, Hi, Hi," per raons que quedarà clar, perquè tan aviat com em dirigeixo aquest cosa-- [Foca] DAVID J. Malan: Molt fàcil escriure programes de Scratch molestos. [Foca] DAVID J. Malan: Ara no anirem en gran detall amb tot això, però noti que hi ha un parell de noves característiques aquí. Hi ha una variable, anomenada "silenciat" i després hi ha un munt de condicions. I per ara, permetin-me només es burlen de tu dient que si aquest noi es posa massa molest, Puc colpejar la barra d'espai i s'atura. Com que el paper exercit per aquestes dues seqüències d'ordres és el següent. Un d'ells està fent el bordant cada pocs segons. L'altre està a l'espera per a mi per colpejar la barra d'espai. I si ho faig colpejar la barra d'espai, que canviarà l'estat d'aquesta variable, el valor d'aquesta variable, que és pel que sembla anomenat "silenci," No em dic És una cosa avorrit com n, El vaig trucar una paraula en anglès, "silenciat". De 1 a 0 o de 0 a 1. De verdader a fals o fals a veritable. I així, en realitat es pot veure ara, que podria tenir dos guions, dos programes que s'executen de forma simultània, i els dos d'ells podrien estar assegut en un bucle fent alguna cosa. A l'espera del que és humà a fer una mena de colpejar la barra d'espai. [Foca] DAVID J. Malan: I ara ell està en camí de nou. [Foca] DAVID J. Malan: Llavors, què més Què podem fer amb aquests exemples? Bé, seguirem endavant i fer una exemple amb comptar ovelles. Anem a continuar aquesta en la línia aquí de-- obrirem l'exemple ovelles. I avís, igual que abans, aquest, per sort, és una mica menys molest. Una vegada em va colpejar jugar aquí-- Oh, no, això és molest. Ell va a baa amb certa probabilitat. Anem a jugar de nou. [BLEETING OVELLES] DAVID J. Malan: L'única diferència és hem canviat el vestit, per així dir-ho, i estem reduint a la meitat i dir el que és nombre real. Bé, seguirem endavant i portar això un pas més enllà. I deixin-me burlen amb una altra característica aquí. Seguirem endavant i obrir un programa anomenat Temes. Tant com vostè pot tenir-ne un sprite, que té diverses seqüències d'ordres, vostè pot tenir dues sprites, una au en un gat, cada un amb el seu propi guió. I cada un d'ells pot operar simultàniament. Si alguna vegada has escoltat la paraula "multithreading" un ordinador és un mitjà "multiprocés" que pot fer diverses coses alhora, i, de fet, pel que pot ratllar. I ara compte l'ocell és una mica ximple. És només fer les coses a l'atzar, rebotant a la pantalla. És evident que el gat s'ha programat al tipus d'haver de busquen capacitats a casa a en l'au perquè ell sempre apuntant a ell. Fins que finalment, ell agafa l'ocell reial. Així que no vaig a aturar-me en els detalls aquí, però vostè pot tipus de albirar les mateixes formes, alguns "Si" les condicions, algunes variables, potser alguns bucles, són en última instància, fer la mateixa cosa. Ara vaig a seguir endavant i obrir una mica més en conjunt, per embromar a alguns de vosaltres, particularment els més còmodes, el que realment pot fer amb això. Vaig a seguir endavant i obrir Botó aquí. I aquest és un super programa senzill d'aparença, però vés amb compte amb el que passa quan jo-- Compte amb el que succeeix quan obro aquesta versió de la mateixa, aquí, al navegador, scratch.mit.edu. I quan faig clic en aquest gran vermell botó, observi el que passa. Llavors, què està passant aquí? En realitat hi ha un munt més complexitat passant per sota de la campana, tot i que he implementat això, o, francament, Dan Bradley ha posat en marxa aquesta manera tan simple. Ha dissenyat un trencaclosques esgarrapades personalitzada peça, conegut com una extensió de Scratch, el va anomenar Toggle. I ho Toggle fa és que envia un missatge a internet. I aquest missatge en si es veu una mica críptic. Però això, també, podràs entendre per fi de termini. El missatge que en realitat l'enviament de es veu una mica d'alguna cosa com això. És només text. Cryptic. Vostè entendrà que de moment tenim el problema conjunt de set. És només l'enviament d'un missatge de text a través d'Internet a un servidor. I aquest servidor és, en última instància, parlant amb aquesta bombeta, que té una d'aquestes bombetes de luxe en el que, en si, és parlar a la xarxa Wi-Fi de la xarxa aquí, on un dispositiu local baix aquí-- i, en última instància, en realitat és convertir aquesta llum i s'apaga. Però podem fer més coses interessants encara. Noti el que Donen també va fer per nosaltres. Va fer diversos sprites, cadascun que té una seqüència de comandaments en espera d'un clic. I si faig clic en vermell, es posa vermella. Si aconsegueixo blau, va blavós. Verd, groc, taronja. I tot això està succeint per anant sortida a l'internet, retrocedir aquí per a la bombeta de llum, encès i apagat. I si vostè pot creure it-- i això és potser un dels més complexos de Scratch projectes algú té implemented-- ho va fer, en la justícia, en un dia. I aquest va ser el repte a què ens tirem a Dan quan ens va veure tenir bombetes binaris, tenim esgarrapades com, podem combinar? I, de fet, això és absolutament cosa que ningú en aquesta sala podria fer per end-- del semestre és ell bombetes binaris reimplementat utilitzant la mateixa interfície que era en el nostre iPad dimecres. Així que ara, si realment feu clic al signe més per aquí, tenim un, dos, tres. Puc colpejar el 16 i al seu torn que un. 128, i així successivament. Ara si que només té i bufat la seva ment, vostè podria fer les coses molt més accessible, no implica cap tipus de maquinari, sens dubte. Només coses sobre la pròpia pantalla. I, de fet, el que més estudiants acabar fent és una mena de joc, alguna peça de l'obra artística, o algun tipus d'animació interactiva. I vaig a dir una de les nostres favorits ha estat aquest. I vaig pensar que si ens podria atenuar les llums, anem a fer una ullada a aquesta final Projecte de Scratch en conclusió. Però el que vostè ha de tenir en compte, com Et puc fer broma amb un últim detall, seccionament començarà la propera setmana. Horari d'oficina començaran la propera setmana. Butlletí de problemes zero es publicaran CS50.harvard.edu més tard avui. I li donarà la benvinguda en conjunt de problemes zero a de CS50 pròpia Zamyla Chan, qui orienta la major part del nostre tutorials. Aquests són els vídeos incrustats en els butlletins de problemes que portarà a terme la seva mà a través d'una gran quantitat de la configuració inicial i a través de moltes de les possibles decisions de disseny. Així que mai si has tingut aquesta emoció en recollir una tasca i es pregunta, per on començo? Ella haurà de resposta per a vostè. I ara, un programa final d'un dels seus predecessors en resposta a la pregunta "Què diu la guineu?" [MÚSICA YLVIS, "Què diu la FOX?] YLVIS: (CANT) Gos va trama. El gat va miol. Aus del Twitter i el ratolí va xiscle. Vaca va moo. Granota va grall. I l'elefant va sonar. Els ànecs diuen quack i peixos van blub. I el segell va ow ow ow, però hi ha un so que ningú sap, Què diu la guineu? I DAVID J. Malan: Això és tot per CS50. Ens veiem a Trencaclosques dia i dilluns. [Aplaudiments] [MÚSICA YLVIS, "QUÈ FOX SAY?"] NARRADOR: I ara profunda pensaments, per Daven Farnham. Avui em va colpejar al cara amb una guia telefònica. Confondre, com estic en casa veient en línia.