[MUZIKO Ludante] -Alright! -tio Estas CS50. -tio Estas CS50. -tio Estas CS50. [MUZIKO - Iggy Azalea, "Fancy"] -My Preferataj memoro de CS50 estis kiam mi iris al Puzzle Tago. -Probably Nur la tempo pasigis laborante sur problemo aroj kun miaj geamikoj kaj personoj, kiuj Wold fine fariĝis mia blockmates. -My Bona memoro de CS50 estas Hackathon. -la CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. -la Hackathon -Rob Bowden. Nur ĉion pri li. [MUZIKO - Iggy Azalea, "Fancy"] -My Preferataj memoro, kiam mi estis en scenejo kaj mi ludis la prestiĝan rolon de nodo [? en la Ligita?] [? Listo. ?] -When Ĉiuj liberigxis Dropbox spaco kaj David estis kiel, rigardu sub viaj seĝoj. Gxi estis kiel, spaco por ĉiuj! [MUZIKO - Iggy Azalea, "Fancy"] -My Konsiloj por ajna envenantajn studento farus esti vere laboras en P-aroj kun amikoj. -Office Horoj estas tre vian amikon. -Make La plejparto de via sperto kaj renkonti tiom da homoj kiel vi povas. -Don't Timu peti helpon. -Start La P-aroj frue semajnon. -Mi Opinias la plej granda afero por utiligi ĉiujn rimedojn ke CS50 havas. -Go Al oficejo horoj frue semajnon. -Definitely Spekti la cortometrajes. -Don't Prokrasti vian P-aroj. -Make Certe vi trovos grandan grupon de personoj por labori sur P-aroj. Vi povas havi multan amuzan kaj plenumi laboron kune. -Don't Timu puŝi vin. Iru al la hacker eldono kelkfoje. -Write Tion sur papero antaŭ vi iam tuŝi via komputilo. -CS50 Estas vere granda je havigante manieroj akiri helpon. -My Unu peco de konsilo estas dormo. Ĉu iu diris ke? Dormo, asekuro. Ĝi estas facila por ne fari, sed Vi devas fari ĝin, mi pensas. -Mi Dirus vere esti mense preparita ĉar vi tuj gxin amas. [MUZIKO - Iggy Azalea, "Fancy"] -tio Estas CS50. -tio Estas CS50. -tio Estas CS50. [MUZIKO - Iggy Azalea, "Fancy"] -tio Estas CS50. [Aplaŭdo] DAVID J. Malan: Do tiu estas CS50 kaj tio estas la fino de Semajno 0. Kaj tio estis nur kelkaj de CS50 bastono kiu atendi vin ne nur en sekcioj kaj oficejo horoj, sed, Ankaŭ, ĉi venanta semajnfinon en CS50 Puzzle Tago. Kiu, denove, estas ne ĉion pri programado. Efektive, ĝi estas atendita ke vi ne devos plani ion, sed prefere solvi problemojn uzante intelektojn kaj amikoj apud vi. Ni estos kune iuj de niaj amikoj ĉe Facebook-- se vi registras here-- kiuj Dum la pasintaj kelkaj jaroj, havas efektive estis skribante tiujn defiojn kun ni. Kaj tiel, ili estos la finfine kurante Puzzle Tago. Kaj tiel, vi estos defiita kun precize la specoj de aferoj kaj problemoj kiuj onin je Facebook ŝatas pensi. Do kiu estas morgaŭ. Enregistri cs50.harvard.edu/register. Nun unu vorton pri paro de bastono en aparta. Ĉi tie estas Ansel Duff, kiu estas fakte unu de la co-aŭtoroj el tiuj duuma ampoloj, kiun ni vidis en merkredo, krom CS50 propra Dan Bradley. Ansel Duff estis ankaŭ malnova freshman konsilita de miaj 3 jaroj kaj li efektive eĉ konstruis ĉi pupitro. Li foriris en fari inĝenierio sciencoj kaj pli. Nun lia portreto tie estas reale Ansel 3 jaroj ĉe la CS50 Hackathon kiam li prunteprenis el niaj globoj, enŝovis ĝin al lia portebla, kaj, por la proksima 12 iuj neparaj horoj, enfokusigita en sia fina projekto, prenante rompas nur malfermi sakoj de dolĉaĵoj en la Hackathon. Sed li iris pli lastatempe al elspezi pasinta somero kun ni, ekde CS50 por lia bastono, Nun studentoj ĉi semestro, havas sian propran 3D printilo. Kaj en malmultaj vortoj 3D presiloj estas artefakto kiu aspektas tute kiel tiu. Vi plenigos ĝin per mola bobeno kiu fandiĝis de la aparato kaj vi konstruas retejojn laŭvorte el nenio. Multe kiel inkjet printilo, vi komencas kracxi el iom dots de plasto kiu formas kune formas tutajn objektojn. Kaj tiel Ansel ekzemple fruaj tiu somero, havas iPhone 5 kaj decidis ke li vere volis por apogi ĝin sur sia skribotablo. Sed li ne volis eliru kaj aĉeti ion el la Apple vendejo aŭ simile, do li sidiĝis kaj komencis desegni ion. Li prenis kelkajn mezurojn kiel al kiom dika kaj kiom larĝa lia iPhone estis, Li tiris tiu bildo ĉi tie, Li decidis, ke li volis havi 75 grado dekliniĝo kiel ĝi fiksrigardis li sur sia skribtablo tie. Li tiam turnis sin, uzante programaro, en 3D CAD Modelo kiu aspektis iom iu kiel ĉi tio. Kaj tiam li plue, fine, por fakte krei ĝin. Do fakte, se iu el vi tien, eble en vico ke mi povas ĵeti al, havi an-- tie ni havas homojn kun la iPhone 5, kaj tie ni havas du pli. Nun, ne resti malantaŭen, CS50 propra Cheng Gong ankaŭ agordi tiun someron konstrui sufiĉe da aĵoj kaj, fakte, pro kialoj kiuj estas ankoraŭ certe, estis malrapide presi armeon de elefantoj kun elparolanta brakoj kaj trunkoj. Paro de kiuj estas efektive ĉi tie se Iu devus nun like-- elefanto. Bone,. sed kion Cheng ankaŭ faris cxar ni estas li tre afable starigis ĉambron ĉar tio elefanto, kredu ĝin aŭ ne, prenas iujn du kaj duono horoj por presi. Eĉ la iPhone piedestalon prenis horo kaj duono por presi. Kaj kio Cheng antaŭeniris kaj faris Estis starigita belan ĉambron en fronto de tiu 3D printilo, filmados por horo kaj duono kiel Ansel dezajno presita. Ni tegis iu sexy muziko por ĝin sekve doni al vi tiun rigardi ĉe kiom 3D presi verkojn. Kaj eĉ se tio fakte en plasto, rimarkas ke se tiu estas areo de intereso al vi akademie, ekzistas homoj, inter ilin Jennifer Lewis tie ĉe la Lernejo de Engineering, kiu estas reale laborante en 3D presi plasto celoj. Sed eĉ, ĉiam pli, biologiaj materialoj solvi fiziologiaj problemoj por homoj. Sed ĉi tie estas iom ion de CS50. [LOUD Mekanika bruoj] DAVID J. Malan: Ĝi ne sonas nenio simila en realeco, sed estas multe pli malvarmaj por rigardi ĝin en tiu rapideco, kaj kun tiu sono. Nun, merkrede, kiom ni unue tien? Ni komencis paroli pri komputila scienco kaj ni demandis kio estis. Kaj temas pri multaj aferoj, kaj ekzistas tiom da malsamaj direktoj kiun vi povas estri post paso kiel CS50. Fakte, se vi prenis unu de tiuj neoficialaj gvidiloj por CS ekstere, la libreto kiu ni provizis, ĉu vi pensas prenas nur CS50, aŭ eble faras malĉefa, aŭ eble eĉ koncentrante en CS, ĉu klaki tra tiu. Kaj vi vidos diagramo al la fino kiu montras la multaj malsamaj direktoj en CS ke vi povas foriri en. Sed por hodiaŭ, ni enfokusigi, denove, sur vere unu el la fundamentaj opinioj, eble, kie vi enigoj al problemoj, vi havas elirojn el problemojn, kaj vi devas algoritmoj kun kiu krei tiuj eliroj el tiuj enigoj. Kaj unu tia ekzemplo, estis de Kompreneble, ĉi tiu telefono libro ĉi tie. Kaj ni uzas kiel ekzemplo iri tra algoritmo kiu estis ĝentila. Kaj tiam alia estis ĝentila, sed iom pli rapida. Kaj tiam alia kiu estis iom pli drama, sed fundamente rapida. Ĝuste, ĉi tiu telefono libro ni asertis havis ĉirkaŭ 1.000 paĝoj. Kaj kiom da fojoj mi ja havas ŝiri la telefono libro en duono trovi iun kiel Mike Smith, maksimume, en 1000 paĝa libro? Do, la 10 donu aŭ preni. Kaj iam mi disŝiris tiun aferon en duono, aŭ simple, pli maturely, dividita en duono, estas nur 10 paĝoj el 1000. Kaj se vi extrapolar, iom unrealistically por telefono libro, sed se ĉi tiu telefono libro havis iun 4 miliardo paĝojn en ĝi, do tute _unwieldy_ fizike, kiom fojoj vi dividi 4 miliardoj paĝo telefono libro en duono? Do estas fakte 32, donu aŭ preni. Kaj tial 32 fojojn nur el de 4 miliardoj paĝojn, povas Vi trovos iun kiel Mike Smith. Kaj tio estas efikeco. Tio estas bona algoritmo, daresay. Sed tiam ni translokiĝis de tiu provi formaligi ĝin. Kaj mi proponis ĉi _pseudocode_ kodon. _pseudocode_ Kodo estas nenio formala. Ĝi ne estas io vi enmemorigi. Estas nur io, kion vi esprimi sufiĉe intuicie uzas la anglan, aŭ ajna lingvo vere, ke transdonas viajn ideojn koncize. Sed kio estas ŝlosila pri _pseudocode_ kodo estas ke vi provu antaŭvidi ĉiujn eblaj kazoj ke povus okazi. Kaj efektive, en tiu _pseudocode_ kodo esas vere tri kazoj ĉiu tempo mi dividis la telefono libro. Mike povus esti al la maldekstra. Mike povus esti dekstre. Aŭ ĝi povus pravi en la paĝo mi plu. Aŭ kvara angulo kazo, por tiel diri. A malbona scenejo povus esti unu which-- kio okazas? Mike nur ne en la telefono libro ajn. Kaj kiam programoj crash-- kiam Mac kaj PC programaro ke vi infanoj kuras sur via komputiloj iam pendas aŭ lasas neatendite, kiu ĝenerale signifas ke iu programisto, iuj homaj kiel vi baldaŭ, nur ŝraŭbita supren kaj faris iun eraron. Eble ne anticipis ke eble tie Estas neniu Mike Smith en la telefono libro. Kaj se vi ne fakte skribi kodo manipuli situacioj kiel tiu, Ĝenerale neantaŭvidebla aĵoj povas okazi. Via maŝino povas frostigi. Ĝi povas restartas. La programo povas forlasi. Kaj ĉiuj tiuj stultecoj ke vi renkontis en via reala vivo simple uzante komputilojn, Mi ĉiufoje esti simple klarigita for de tiu intuicio kaj tiu kompreno de kio estas efektive okazas sub la kapuĉo. Nun ni provu rigardu je pli ĝeneralan problemon. Anstataŭ preni asistencia en loko kiel tiu, kiun estus sufiĉe malrapida fari unu, du, tri, kvar. Aŭ eble du, kvar, ses, ok. Ni enfokusigos, anstataŭ, je kiel ni povus formaligi La algoritmo de la procezo per kiun ni povus preni asistencia. Kaj laŭ la vojo, ni komencu por apliki iujn nomenklaturo ke ni uzos hodiaŭ kiam ni efektive komenci plani en lingvo. Do mi donos al vi nun, kvar minutoj de video ke ni kunmetis kun niaj geamikoj de TED, la organizo. Per kiu ni havigis skripton kaj ili alportis siajn animadores por portado kaj fakte kreis 2D kuraĝigo kion algoritmo estas. Se ni povus malhelan la lumojn. [MUZIKO Ludante] Rakontanto: Kio estas algoritmo? En komputiko, algoritmo estas aro de instrukcioj solvo iu problemo paŝo-per-paŝo. Tipe, algoritmoj estas ekzekutitaj de komputiloj, sed ni homoj havas algoritmojn tiel. Ekzemple, kiel farus vi ĉirkaŭiras rakonti la nombro de personoj en ĉambro? Nu, se vi estas kiel mi, vi povus probable notas al ĉiu persono unuope kaj kalkulu el nulo. Unu, du, tri, kvar, kaj tiel plu. Nu, tio estas algoritmo. Fakte, ni provu esprimi ĝin mordis pli formale en _pseudocode_ kodon. Angla-simila sintakso ke similas programlingvo. Estu n egalas 0. Por ĉiu persono en ĉambro, starigis n egalas al n plus 1. Kiel interpreti la _pseudocode_? Nu linio deklaras, tiel diri, ŝanĝiĝema nomata n kaj inicializa lia valoro al 0 Ĉi simple signifas, ke la komencante de nia algoritmo, la afero, per kiu ni estas kalkula havas valoron de 0. Post ĉiu, antaŭ ol ni komencas rakonti ni ne havas ion ankoraŭ. Nomante tiun variablon n estas nur konvencio. Mi povus esti nomis ĝin plej nenion. Nun vicigi du demarks la komencon de ciklo, sekvencon de ŝtupoj kiuj volas ripeti iun nombron da fojoj. Do en nia ekzemplo, la paŝo ni preno kalkulas homoj en la ĉambro. Sub linio du estas linio tri kiu priskribas ĝuste kiel ni iros sur rakonti. La deŝovon implicas ke estas linio tri kiu ripetos. Do kun la _pseudocode_ kodo parolo estas ke post startanta je 0 por ĉiu persono en la ĉambro ni pliigos n per 1 Nun estas ĉi tiu algoritmo korekta? Nu ni bang ĝin iom. Ĉu ĝi funkcias se ekzistas du homoj en la ĉambro? Ni vidu. En linio unu ni pravalorizi n al 0. Por ĉiu el tiuj du personoj, ni tiam pliigo n per 1. Do en la unua vojaĝo tra la buklo, ni ĝisdatigas n de 0 al 1. Sur la dua vojaĝo tra tiu sama buklo, ni ĝisdatigas n de 1 al 2. Kaj tiel, per ĉi tiu algoritmo estas Fine, n estas 2, kio ja kongruas la nombro homoj en la ĉambro. Ĝis nun tiel bona. Kiom proksimume angulo kazo kvankam? Supozu ke estas 0 homoj en la room-- krom mi, kiu estas faras rakontante. En linio, ni denove pravalorizi n al 0. Tiu tempon tamen, linio tri ne ekzekuti ajn ĉar ne ekzistas persono en la ĉambron. Kaj tial n restas 0, kiu ja kongruas la nombro de homoj en la ĉambro. Sufiĉe simpla, ĉu ne? Sed rakonti homoj unuope estas sufiĉe senutila, tro, ne? Certe ni povas fari pli bone. Kial ne rakontas du personoj samtempe, anstataux rakonti unu, du, tri, kvar, kvin, ses, sep, ok, kaj tiel plu. Kial ne rakontas du, kvar, ses, ok, kaj tiel plu? Ĝi eĉ sonas rapida. Kaj ĝi certe estas. Ni esprimas ĉi optimumigo en _pseudocode_ kodon. Estu n egalas 0. Por ĉiu paro de homoj en ĉambro, n egalas al n plus 2. Sufiĉe simpla ŝanĝo, dekstra? Anstataŭ kalkuli homoj unuope, ni anstataŭ kalkuli ilin du samtempe. Tiu algoritmo estas, tiel, duoble rapida kiel la lasta. Sed estas korekta? Ni vidu. Ĉu ĝi funkcias se ekzistas du homoj en la ĉambro? En linio, ni pravalorizi n al 0. Por tiu paro de personoj, ni tiam pliigo n per 2. Kaj tiel per tiu algoritmo estas Fine n estas 2, kio ja kongruas la nombro homoj en la ĉambro. Supozi proksima ke ekzistas nulo homoj en la ĉambro. En linio unu ni pravalorizi n al 0. Kiel antaŭe, linio tri ne ekzekuti ĝin ĉiuj ĉar ekzistas nenia paroj de homoj en la ĉambron, kaj tial n restas 0. Kiu ja kongruas nombro da homoj en la ĉambro. Sed kio se estas tri homoj en la ĉambro? Kiel funkcias tiu algoritmo vojagxo? Vidu, en linio unu, ni pravalorizi n al 0. Pro paro de tiuj personoj, ni tiam pliigo n per 2. Sed tiam kio? Ne estas alia plena paro de personoj en la ĉambron, tiel linio du ne plu validas. Kaj tiel per tiu algoritmo fino, n estas ankoraŭ 2, kio ne estas ĝusta. Ĝuste ĉi tiu algoritmo estas diris al esti kalesxo ĉar ĝi havas eraron. Ni kompensajn kun iuj nova _pseudocode_ kodon. Estu n egalas 0. Por ĉiu paro de homoj en ĉambro, metis N egalas al n plus 2. Se unu persono restas unpaired, aro N egalas al n plus 1. Por solvi ĉi tiu aparta problemo, ni enkondukita en linio kvar kondiĉo, alie konata kiel branĉo, kiu nur ekzekutas se ekzistas unu persono ni ne povis dueto kun alia. Kaj nun, ĉu ekzistas unu, aŭ tri, aŭ ajna nepara nombro da personoj en la ĉambron, tiu algoritmo nun rakonti ilin. Ni povas fari eĉ pli bone? Nu, ni povus rakonti en tri, aŭ kvarpiede, aŭ eĉ Fives kaj dekestroj sed preter tio, tuj akiri iom malfacila por noti. Je la fino de la tago, ĉu ekzekutitaj de komputiloj aŭ homoj, algoritmoj estas nur aro de instrukcioj kun kiu solvi problemojn. Tio estis nur tri. Kio problemo farus vin solvi per algoritmo? DAVID J. Malan: Do intence, tre simplan programon, tre simplan algoritmon, por atingi ion Tre simpla, rakontante la nombro da homoj en la ĉambro. Sed ni turmentus aparte iuj de la reprezentanto prezentas tie estas reale tuj estos utila eĉ kiam realiganta la plej komplekso de programaro. Do ekzemple, en ĉi tiu unua linio, ni havas, kion ni nomas la variablo, kaj de algebro, vi estas ĝenerale konata per x kaj y kaj z foje, kaj tiel plu. Sed en programado, variabloj ankoraŭ, al la fino de la tago, tre simila al tiu. Sed estas eble pli simple pensi de variablo kiel simple ujo. Kaj, fakte, estas iu nombro da bitoj implementado iel en via malmola disko aŭ en via komputilo la memoro, sed pli por ke en la estonteco. Estas nur ujo. Kaj se vi diros ion kiel lasu n egalas 0, nu tio estas kiel nomi ĉi vitro bovlon tie n, nur arbitran nomon kaj metante nenio en ĝi komence. Do la valoron de ĉi tiu bovlo nun estas nulo. Kaj kompreneble, se vi perceptas en posta linio, por vere pliigo kelkaj linio kodo, kiel en ĉi tiu tria linio tie, per 1, tio estas kiel diri kio estas la aktuala valoro de n, ĝi estas 0, plus 1, meti ion kiel ping pong pilko en ĉi tie. Nun la valoron de ĉi tiu variablo estas sufiĉe simple 1. Kaj vi povus tre rapide extrapolar, sed nun ĝi estas 2, nun estas 3, kaj tiel plu. Do jen ĉio variablo estas. Ĝi estas peco de stokado por fakte stoki iujn datumojn. Ĉar nun estas ping pong pilko. Tie estas multaj. Sed eblus vortoj en vortaro, kiel la Literumilo Mi aludis al merkrede por unu el pasintjara problemo aroj. Nun alia klavo ideon, ke simile estas sufiĉe intuitiva mi postulus, estas tiu de buklo. Kaj la buklo en la procezo de rakonti ĉiuj Estas, kompreneble, farante la samajn aferon denove kaj again-- ĉu unu samtempe aŭ du samtempe. Kaj oni povas esprimi tion en la angla, aŭ _pseudocode_ kodo, en ajna nombro de manieroj, sed uzante tiu prepozicio "por" Estas tre komuna maniero fari tion. Por ĉiu persono en la ĉambron, faru tion. Denove kaj denove. Kaj la fakto ke ĝi estas dentadas, linio tri, simple signifas ke kion vi supozis fari estas la aĵoj estas marĝeno sub la linio du mem. Nur homa konvencio, sed komuna kiel ni vidos en reala altaj nivelo programlingvoj. Nun iom pli interesa estas kiam vi akiras en angulo kazo. Ekzemple, angulo kazo estis kiam estis tri personoj, aŭ kvin aux sep, aŭ ajna nepara nombro da personoj en la ĉambron, ĉar fari tion duope bremsoj eventuale pro via tuj perdi iun, ĉu ĉe la komenco aŭ la fino dependanta sur kiel vi agu. Kaj tiel, mi havas ĉi branĉo, aŭ kondiĉo, se unu persono restas, tiam antaŭeniri kaj manipuli kiuj unu soleca persono kiu ne alvenis parigita kun iu alia. Do jen kion nomus kondiĉo, aŭ branĉo. Nun _pseudocode_ kodo pli ĝenerale povas esti skribita solvi ajnan numeron de problemoj. Kaj kion mi pensis ke ni do tie estas preni momenton inviti ni diros CS50 La posedi Rob Bowden sur scenejo esti kune du volontulojn, kiuj havas neniun ideon kio atendas. Mano malsupreniris tiel frue kiel mi diris tion. Kion pri vi en la fini tie, venu supren. Kaj kio pri el fora for, kiom pri vojo en la dorso. Reen vico, venu kun via manojn supren. Alright, kaj kio estas via nomo? ANITA: Anita. DAVID J. Malan: Anita. Konsentite, agrable renkonti vin. Lasu min prezenti vin al Rob Bowden. Tiu estas Anita. Kaj kio estas via nomo? Kiersten: Kiersten DAVID J. Malan: Kiersten. Kiersten, venu supren kaj renkonti Rob Bowden kaj Anita. Agrable renkonti vin. Kiersten: Nice to meet you. DAVID J. Malan: Bone, Rob. ROB Bowden: Nice to meet you. DAVID J. Malan: Anita. Kiersten: Hi Anita. DAVID J. Malan: Kaj via plurcent samklasanoj. Do, nun lasu min antaŭeniri kaj tiri ĝis nur simpla programo tie sur Mac OS ke ellasos min fakte jot kelkaj notoj suben. Kaj se vi infanoj volos ĉiu preni pozicion je unu el tiuj lernejoj tie, lasu min antaŭeniri kaj startas listo de _pseudocode_ kodo, se vi volas. Kaj kion mi volas fari ĉi tie, fine estas tipo por vi iujn instrukciojn, ke nia aŭdienco membroj estas fakte tuj recitos por ni. Lasu min kaj nur ŝanĝi ĉi tion al nombrita listo parigi kion ni faris tie supre. Kaj kion mi faros per vian helpon, estas skribi programon en _pseudocode_, kun kiu tiuj infanoj iras implementar arakido butero kaj ĵeleo sandviĉo. Do estas eble apropos al montri ion iuj el vi eble vidis en interreto por nur mallonga ĝena momento. [MUZIKO BUCKEWHEAT Boys "Peanut Butter  Jelly TEMPO "] DAVID J. Malan: Bone. Tio sufiĉas por tio. Do ĉi tie dume, mi havas paro de Google Pokaloj kiu ni metos en CS50 propra Rob Bowden vidi la mondon tra la okuloj. Kaj ni faros nian eblon en post produktado por fakte teksas la metraje de kio Rob vidanto nun, en ĉi tiu reala prelego video kun niaj du volontuloj apud li. Do kion mi faros estas, mi estos la tajpisto. Ni havas la celon tie de efektive skribi programon kun kiu fari, en definitiva, mani buteron kaj ĵeleo sandviĉo, sed tiuj tri estas tuj kondutos kvazaux ili estas komputiloj. Kaj komputiloj, fine de la tago, Estas vere bela muta mekanismoj. Ili estas super rapida, sed ili povas nur do, laŭvorte, kion ili diris. Vi ne povas simple diri fari arakido butero kaj ĵeleo sandviĉo. Vi devas plani ilin fari tion. Vi devas rakonti ilin kun precizeco kion fari, malpli aĵoj iras horore kaj, espereble, gracia malbone. Do kun kiu diris, ni bezonas unu alvoko el la spektantaro cxar kion oni tretas unu estos, se la celo tie estas fari arakido butero kaj ĵeleo sandviĉo. Jes? Publiko: [inaudible] la saketo pano. DAVID J. Malan: Malfermu la sakon de pano. Do se la tri concursantes farus plaĉas al procedi fari tion laŭvorte. Malfermu la sakon de pano. [Spektantaro ridis] DAVID J. Malan: Do ni laboros sur tiu. Bone. Do paŝo du, how-- ni prenu tiu plia. Jes, en la fronto. Publiko: [inaudible] la panon. DAVID J. Malan: Kio estas tio? Publiko: Forigi la panon. DAVID J. Malan: Forigi la panon. Simile konciza. Dankon. [Aplaŭdo] DAVID J. Malan: Estas tio? OK, do tretas du tuj esti forigi la panon. Alright, iu volas skribi al ni plu frazo? Iu alia? Iom pli [inaudible]. Ne, nenio nun. Jes? Publiko: Loko du tranĉaĵoj apud la alia. DAVID J. Malan: Loko du tranĉaĵoj apud la alia. [Spektantaro ridis] DAVID J. Malan: Loko du tranĉaĵoj apud la alia. Paŝi kvar. Jes? Publiko: Prenu vian manon kaj starigis ŝin leĝere sur supro de arakido butero kovrilon. [Spektantaro ridis] Publiko: [inaudible] apud la arakido butero. DAVID J. Malan: Kio? Diru tion denove. Publiko: desatornillar la kovrilon kaj metis ĝi milde apud la arakido butero. DAVID J. Malan: Alsxovu milde apud la arakido butero. OK, progreso. Paŝo kvin. Bonega. Jes? Repreni trancxilon. DAVID J. Malan: Prenu tranĉilon. OK, paŝo ses. Yeah? Publiko: Hold tranĉilon per la tenilo. DAVID J. Malan: Hold tranĉilon per la tenilo. Tenu tranĉilon per la tenilo. Paŝi sep. Jes? Publiko: [inaudible] tranĉilon en arakido butero kaj iom el [inaudible]. DAVID J. Malan: Metu tranĉilo in-- mi aŭdis "meti tranĉilon en mani buteron prenu kiel iom el ebla. " Parenteze, forigi la papero unue. Bone, treti naŭ. Paŝi naŭ. Paŝi naŭ. Ni ne vere faris sandviĉon ankoraŭ. Jes? Publiko: Uzante tranĉilon en mani buteron apliki arakido butero sur diris pano. DAVID J. Malan: Uzante tranĉilon en arakido butero, apliki arakido butero sur diris pano. [Spektantaro ridis] DAVID J. Malan: Bone ŝtupo 10. Ŝtupo 10. Jes? Publiko: Gusto arakido butero certigi kvalito. [Spektantaro ridis] DAVID J. Malan: Paŝo 11. Ŝtupo 11. Ŝtupo 11. Venu. Yeah? Ĝuste tie. Publiko: Zorge repreni ĵeleo. DAVID J. Malan: Zorge repreni ĵeleo. OK, kaj poste alia mano estis supre. Ĝuste malantaŭ vi. Jes, en blua. Publiko: Bone, forigi kovrilo de [inaudible], jes, forigi kovrilo de la ĵeleo. [Spektantaro ridis] DAVID J. Malan: De ĵeleo. Ha ha. [Spektantaro ridis] DAVID J. Malan: Kaj? Publiko: Kaj apenaŭ balai ajna [inaudible]. [Spektantaro ridis] Publiko: Kompreneble, antaŭ [inaudible], forigi la papero de ĵeleo. DAVID J. Malan: Forigi papero de ĵeleo. Ŝtupo 14. Ni estas preskaŭ tie. Jes? Publiko: Inversigu jelly botelo antaux cxio falas. DAVID J. Malan: Inversigu ĵeleo Botelo antaŭ jelly falas. Ŝtupo 15. Publiko: Anstataŭigu la ĉapo. DAVID J. Malan: Anstataŭigu la ĉapo. Ŝtupo 16. Yeah? Publiko: [inaudible] DAVID J. Malan: Diru tion denove. Publiko: Prenu ĉapon ekstere de via ĵeleo. DAVID J. Malan: Off vian ĵeleo. Do really-- Oops. Venu. Anstataŭigi la ĉapo. Metu cap-- Vi diris forigi ĉapo de ĵeleo. Sentas kiel ni estas en iom de buklo. Ŝtupo 17. Jes? Publiko: [inaudible] DAVID J. Malan: Diru tion denove. Publiko: [inaudible] DAVID J. Malan: Reiru al step-- Publiko: [inaudible] DAVID J. Malan: Forigi ĉapo el arakido butero. Jes? Publiko: Drop ĉiuj ĵeleo sur la pano. DAVID J. Malan: Drop ĉiuj la ĵeleo sur la pano. DAVID J. Malan: Ni estas preskaŭ tie. Ŝtupo 19. Publiko: Forigi troo ĵeleo. DAVID J. Malan: Haha, ĵeleo. [Aplaŭdo] DAVID J. Malan: Kial ne we-- pli paŝo preni ĉi hejmo. Unu paŝo pli kaj poste ni servi la sandviĉojn. Jes? Publiko: [inaudible] DAVID J. Malan: Dum ajna sandviĉo remains-- Ni indent this-- manĝi. [Spektantaro Ridado] DAVID J. Malan: Bone, dankon vi niaj volontuloj tie. [Aplaŭdo} DAVID J. Malan: Ni havas belan Adiaŭinte donacoj por ĉiu el vi. Via propra arakido butero, ĵeleo, kaj panon por alporti hejmen. Dankon. Kiersten: Dankon. DAVID J. Malan: [inaudible] bonvena. [Aplaŭdo] DAVID J. Malan: Do, tiu estas, Kompreneble, ridinda ekzemplo. Ĝuste? Sed ĝi specon de malkaŝi kiom ni homoj simple preni klareco por sentado. Kaj la fakto ke mi estis parolante al alia homo, li aŭ ŝi nur scias kion vi volas diri. Komputiloj ne iras scii kion vi volas diri, eĉ kiam oni uzas, kiel ni estas faronta hodiaŭ, plani ion en Scratch, oni trenu kaj guton, puzlo peco stilo lingvo. Eĉ desegnita por junaj infanoj, vi devas esti tiel eksplicita do laŭvorta kun kion vi volas, ke via programo por fari. Nun finfine ni estas tuj estos programado ne en _pseudocode_ kodo, Angla kiel sintakson, sed kodo aŭ, pli ĝuste, fontkodo. Fontkodo estas nur la imago vojo por priskribi kodo vi reale skribi kun klavaro tio Ne en la angla mem. Ĝi estas en C aŭ Java aŭ C ++ aŭ io tiel, kiel ni baldaŭ vidos. Kaj fakte, nur por timigi al kelkaj el vi, unuavide, tio estas programo skribita en lingvo nomita C. Sed un-susto kelkaj el vi, vi volas tute kompreni kion okazas sur venis proksima lundo kiam venas al iu kiel ĉi tio. Sincere, tiu estas pli malnova lingvo. Estas sufiĉe arcane, sed estas reprezentanto de multaj lingvoj tiuj tagoj kiuj havas multe da parentezoj kaj krispa streĉaj kaj citaĵo kadroj kaj punktokomojn. Kaj multan ĉi sintaksa stuff ke ne estas tute intelekte interesa. Efektive, ĝi estas absolutajn distro el la tre simplajn ideojn kiuj fiksrigardis nin en la vizaĝo. Tiu programo, kiel vi eble ĝuste diveni, impresoj al ies komputilo ekrano la vortoj "Saluton komo mondo." Estas tio. Do klare, ke estas multajn aĵoj estas alvenante en la vojo iu evidenteco tie, sed tuj rapide glitas for kaj esti tute intuitiva. Efektive, kion ni faros hodiaŭ distili tiu sufiĉe kompleksa rigardas programon, kiu denove vi venis kompreni rapide, sed al io multe pli simpla. Ni simple diru kion ni volas diri. Ni desegni bildon de kion ni volas diri, tra tiuj puzlo pecoj tie. Do tiu estas programado lingvo konata kiel Scratch. Ĝi estis disvolvita de MIT Media Lab. Kaj kion vi vidas en problemo starigis nulo, kiu estos ĵetita poste tiu nokto, ni havos vi iros al tiu URL tie scratch.mit.edu. Kaj ili havas retejon bazita interfaco tra kiu vi skribos vian unuan programon. Aŭ tiuj de vi antaŭa sperto, via dua programoj, sed en medio tio probable iom familiarizados kaj ke pelos vin krei ion uzante tiu tre vida medio. Nun, kion mi faros ĉi tie estas malfermi la programo mem. Ekzistas ne nur kiel retumilo, sed ankaŭ kiel elŝutebla programo tiel ke vi povas efektive uzi ĝin se vi ne havas aliron al interreto. Kaj mi tuj faros tion en tie, en Sanders, simple en kazo la Wi-Fi ne kunlaboru súper bone. Kaj kion mi tuj faros estas punkto el kelkaj trajtoj de tiu programo. Do, esti klara: Mi havas nur duobla klakis la ikonon sur mia labortablo, aŭ ekvivalente irinta al scratch.mit.edu, kaj ĝin tiris supren fenestron. Jen programado medio. Ĝi estas peco de programaro kiu kelkaj el niaj amikoj ĉe MIT skribis ke ni nin kaj vi skribas programoj en lingvo nomita Scratch. Nun ĉi tio okazas al esti kato, kiu estas ankaŭ nomata Scratch kaj jen estas la mondo en kiu li vivas. Ĉi tio estas la scenejo, tiel diri, ke rektangulo sur la supra maldekstra angulo. Kaj li ne devas rigardi kiel kato. Vi povas fari lin rigardi kiel nenion kaj vi povas havi multajn tiajn sprites, aŭ karakteroj, en programo. Dume, pli tie en la malproksima Bone, estas granda blanka skribtabulo. Kaj ĉi tiu estas kie, momente, ni tuj komencos programado trenante kaj delasante tiuj grafikaj enigmo pecoj kiu pravas tie en la mezo. Kaj tie estas vojo pli da ili ol ni devos elspezi tempon ĉi tie en klaso ĉar vi trovos ke Ili ĉiuj estas sufiĉe intuitivo. Denove, ĝi estas desegnita por infanoj, sed ni uzi ĝin por turmentus aparte iujn el tiuj fundamentaj ideoj de variabloj, loops, kondiĉoj, kaj, baldaŭ, aĵoj kiel funkcioj kaj eventoj kaj fadenoj kaj aliaj fancy aferojn ni atingi antaux longa por fakte krei ion de Scratch. Vortludo intencita. Nun, kion mi faros ĉi tie alklaku ne moviĝo, sed kontrolo. Kaj tio estas nur categorización de here-- Mi vidas alian koloro aro de blokoj. Sed rimarki kelkajn familiarajn vortojn. "Se" kaj "alie se" kaj "ripeto". Kaj vi povas verŝajne diveni tio memoras la branĉo, aŭ la kondiĉojn ni vidis, eĉ la looping konstrui. Do ni havas similajn blokoj tie. Sed la plej interesa estas ĉi tie. Kiam ĉi verda flago estas klakis, tiu, por tiuj kun antaŭaj programado sperto, estas ekvivalenta al ĉefa funkcio. Sed por tiuj nekonataj, tio estas la puzlo peco ke estos piedbati komenci nian tutan programon. Ĝi laŭvorte signifas kiam mi veturas, en tiu programo, kaj klaku verda flag-- kiun vi povas vidi ĉi tie en la supra maldekstra angulo de la UI, tiel vidas la verdan flagon apud la ruĝa halto signo? Kiam mi klakas, miaj programo tuj kuros. Nun, mi volas fari ion súper simpla kun Scratch. Mi tuj iros antaŭen kaj iri al la rigardojn panelo tien, kie mi havas faskon purpura puzlo pecoj kaj mi tuj iros antaŭen kaj fari io súper simpla kiel, diru. Kaj then-- avizo ĉi teksto en la blanka skatolo Estas editable-- Mi tuj diru "Saluton mondo" nur ŝatis nin faris en tiu teksta Versio antaŭ momento. Kaj nun se mi iros kaj alklaki ĉi verdan flagon, mi nun programita. Ne estas aparte interesa programo, sed mi faris la komputilo fari ion. Mi komencis programon kaj ĝi faris kion mi rakontis fari. Nun, mi povas daŭrigi treni kaj faligi pli kaj pli da tiuj puzlo pecoj kaj ili tuj interplektiĝas, sed ni frapas iuj terminologio ĉi tie ke ni vidos ripetiĝantajn laŭlonge de la kurso, kaj vere tra komputiko kaj programado pli ĝenerale. Tiu "diri" bloko, purpura, ni simple komenci nomante komunikaĵo. Estas kiel deklaro de fakto. Ĉu ĉi. Do, ĝi estas kategorio de instrukciojn ke vi povus nutri komputilo kiel parto de programo aŭ algoritmo. Kaj esti klaraj, vi havas verŝajne memkompreneble ke vi havas programojn en via komputilo. Kaj ili estas speco de algoritmoj, sed programo estas vere faskon de algoritmoj ke iuj homoj skribis. Ili pakas ĝin kaj ili vendis ĝin por vi, aŭ ili eldonis en retejo por elŝuti. Do, programo estas nur tuta aro de nuloj kaj ke iel homoj kreis. Kaj tiuj ŝablonoj de nuloj kaj karaj reprezentas aferojn, finfine, kiel "diri saluton mondo" aŭ "ludo tiu muziko "aŭ" ludi ĉi video " aŭ "sendu retmesaĝon." Sed ni revenos en vojon pli detale kion programo estas kiam vin, mem skribi ilin. Jen alia statement-- "Atendu por unu sekundo." Mi ne uzis ĉi ankoraŭ, sed se mi volas mia programo paŭzi momenton fari ion, mi povas diri al li tion fari. Atendi unu sekundo. Nun alia povus esti "ludi sonon." Do, tiu estas unika al nulo, ĝi havas la kapablon de reprodukti sonojn. Do, aserto mi povus uzo estas, ĉi tie, "ludi sonon." Dume, Bulea esprimo tial ĉi estas amatoro vorto nomita post nur ulo nomata ro bool, kaj tio estas ĉio pri demando. Veraj aŭ false-- estas la muson malsupren? Bulea esprimo estas nur iu esprimo angla ke estas aŭ vera aŭ malvera. Ĉu aŭ malŝalti. Ĉu unu aŭ nulo. Vi povas pensi pri tio en ajna nombro de manieroj, sed estas ĉu vera aŭ tiu falsa, finfine. Do "muson malsupren demandosigno" ke estus Bulea esprimo. Kaj vi povas pensi pri aliaj, eble. Ekzemple, "estas la maldekstra nombro malpli ol la dekstra kvanto? " Tio ankaŭ estus Bulea esprimo. "Malpli ol" estas Bulea esprimo. Ĉi tiu, tro "tuŝi muskursoron." Mi ne certas kial nomis ĝin muskursoron. Ĝi simple signifas, estas la kursoro, estas la arrow sur la ekrano, tuŝante la katon, ekzemple. Aŭ iu alia aspekto de la ekrano. Kaj ĝi estas demando, denove, kiu denota Bulea esprimo. Iu kiu vi povus volas uzi en kondiĉo. Do ni venas al tio en nur momento. Vi povas "kaj" aĵoj kune. Do, se vi volas kontroli ĉu tiu Estas la kazo kaj tiu estas la kazo, Vi povas uzi "kaj" bloko kiel ĉi. Kaj jen tiu kondiĉo. Rimarku la formon de la eta malfermo sur la supro de tiu flava puzlo peco, estas rememorado de la formo ke ni ĵus vidis antaŭ momento. Ĉiu de ĉi tiuj Bulea esprimoj havas tiuj pintaj lateroj sur la maldekstra kaj dekstra. Kaj tio estas pro la MIT uloj decidis ke per vide transportante formojn, vi povas speco de helpi homojn, studentoj kaj infanoj egale, al speco de plenigi la spacojn laŭvorte. Nun ke puzzle-- ke malfermo estas iom malgranda, kaj kiel ni vidos en la programo, en Scratch, ĝi kreskos persvadi. Ĝi subtenas lian formon, finfine. Do kondiĉo ni decidas "Mi devus fari ion aŭ ne?" Bulea esprimo estas la efektiva demando vi uzas por decidi cxu mi iru maldekstren OR mi iros dekstren kiam mi renkontas ĉi tn forko en la vojo? Vi povas havi du branĉojn. Se io estas vera, do tiu, alie iri tiun vojon, aŭ vi povas simple fari nenion ĉiuj, kiel tiu bloko implicita. Simile, ni povas neston tion. Do se vi volas triobligi forko en la vojo, aŭ fari tion aŭ ĉi tion aŭ tion, Vi povas simple nesto tion kune. Kaj ĝi komencas akiri iom malbela, eventuale, por certa, sed la logiko estas ankoraŭ la sama. Vi povas laŭvorte legis ĉi supre sube kaj ĝi diras kio means-- se tiu estas vera, do tio, alie se alie. Ciklo ne ricevas pli simpla en Scratch. Forever fari la sekvan. Nun vi eble ne kredas vin povas fari multe ĉar ne multa spaco inter la pinto kaj la malsupro de tiu puzlo peco malfermo. Sed vi vidos Scratch tuj kreski por persvadi kiel multaj puzlo pecoj kiel vi volas Cram tie. Alia buklo eble esprimita per ripetoj. Se vi scias anticipe, "mi voli fari ion 10 fojojn! " Vi povas simple diri Scratch fari ion 10 fojojn. Kaj dume, ni povas havi variablojn. Do jen arbitran unu, ĝi estas oranĝkolora tiukaze kaj jen ventego ĝiras. Denove, vi trovos ĉi tre atingebla unufoje vi komencas montrante kaj musklako. Mi nomis mian variablo n, sed mi povus esti enoficigis ajn mi volas, kaj mi fiksante ĝin ĉi tie, en tiu arbitra ekzemplo, al nulo. Nun vidinte programon kiel saluton mondo ne ĉiuj kiuj konvinka, do ni fakte malfermas ion ke iama studento faris. Lasu min kaj malfermu, Ekzemple, ĉi tie, por kio mi amas havi volontulon. Bone, kiom about-- ni pluen. Jes, venu supren. Kio estas via nomo? Abby: Abby. DAVID J. Malan: Abby, venu supren. Do ĉu vi iam ludis tiu ludo antaŭe? Abby: Ne DAVID J. Malan: Bone. David agrable renkonti vin. Venu super. Kaj kio estas via programado fono, ia. Abby: Mi lernis iom C ++. DAVID J. Malan: Vi lernis iuj C ++. Kaj kio estas via ludo ludi fono? Abby: Ne multe. DAVID J. Malan: Bone, do ni prenu tion. Do jen kiel la ludo tuj funkcios. Mi tuj iros antaŭen kaj klaku la verdan flagon, kiu estas ĝis tie supre dekstre. Nun via antaŭulo en la klaso donis al vi kelkajn instrukciojn tie. Kaj en nur momento, diras "spacon por komenci." Do iru antaŭen kaj frapis la spacebar. Komputila LUDO: Pikachu. DAVID J. Malan: Kaj la celo estas kapti la nutraĵon, kiel reprezentita tie sur la maldekstra. Kaj [inaudible] [LUDO MUZIKO Ludante] DAVID J. Malan: Aww, nu, dankon por ludi. Ni havas ĉi tie iom Adiaŭinte donaco por vi. Ni havas CS50 streso pilko, Se vi ŝatus elekti. Bone, bone renkonti vin. Dankon pro via vizito kaj defianta. Do ni havas pli streso pilkoj, tial ni faru ekzemplo pli motivi. Volontulo? Bone, kio pri ĝuste ĉi tie antaŭ. Kio estas via nomo? Phillip: Phillip. DAVID J. Malan: Phillip. Venu supren, Phillip. Do, Phillip tuj estos defiita kun alia ludo ke unu el viaj antaŭuloj skribis kiel parto de la problemo starigis nulo, nomita Ivy La Hardest Game. Kaj ni vidos en nur momento kion signifas tio. Phillip, agrable renkonti vin. Kio estas via fono? Phillip: Done multajn kodigo. Farita iom ludoj, ankaŭ. DAVID J. Malan: Bone. Got multajn ludoj, ankaŭ. Kaj vi ludis tiun ludon antaŭ? Phillip: Neniu DAVID J. Malan: Ĉiuj Bone, do jen ni iru. Mi tuj iros antaŭen kaj klaku la verdan flagon. [LUDO MUZIKO] [MUZIKO MC Hammer, "U ne povas tuŝi ĈI"] Phillip: [inaudible] DAVID J. Malan: [inaudible] Phillip: [inaudible] [Ridante] [MUZIKO MC Hammer, "U ne povas tuŝi ĈI"] DAVID J. Malan: [inaudible] Plugi tra ĝi. Phillip: [inaudible] DAVID J. Malan: Iru antaŭen. [MUZIKO MC Hammer, "U ne povas tuŝi ĈI"] DAVID J. Malan: Bone. Gratulojn. [Aplaŭdo] DAVID J. Malan: Ni volas post tiu linio poste tiom ke vi povas prokrasti kun ĝi ankaŭ. Princeton venas supren proksima, post tio. Do nun ni vere procedi komenci de nulo, tiel diri, kaj fakte konstrui ĝis ni povas turmentus aparte kelkaj el tiuj ideoj kaj instigi al io eĉ pli kompleksa por la fino. Mi tuj iros tien, kaj mi tuj antaŭeniri kaj krei novan dosieron. Do denove, la problemo aro irados vi per kelkaj el tiuj paŝoj. Sed, kion mi faris estis go al la menuo Dosiero kaj mi diris "nova", tiel kiel Microsoft Vorto aŭ ajna programo simila. Kaj ni iru antaŭen now-- kaj ni implementado "Saluton mondo" antaŭ momento, sed ni faru ion iom pli beleta. Mi tuj iros al eventoj. Kaj Mi faros "kiam verdaj flago klakis. " Kaj tiam mi tuj uzos, ni diros, branĉo. Do mi tuj uzos "se" kondiĉo. Kaj rimarki kiom kiam mi alproksimigi al ĝi, ĝi volas kapti kune. Do mi lasos ŝin punto kune. Kaj nun mi povas fari ion interesan. Se mi rulumu tra tie, mi tuj vidi tutan faskon da blokoj. Se mi iras al "datumo" - lasu min zomi in-- estas io pri variabloj. Se mi iras al "movado", vi povas ŝajne turni aferojn ĉirkaŭ. Se mi iras al "operatoroj" - ho, tio estas interesa, Mi povas pluki hazarda nombro. Do lasu min fari ion kun nur iu probablo, nur ĉar. Mi tuj iros antaŭen kaj treni ĉi puzlo peco, tio estas ke malpli ol bloko, do ĝi estas nur "Estas ĉi tiu nombro malpli ol tiu?" Sed mi ne volas malmola kodo nombro ĉar tio estos bela sencela. Do mi tuj trenos tiu peco tie kaj rimarki kiom gxi punto en, Nun lasu min antaŭeniri kaj diri "se la numero kiu estas elektita hazarde Estas malpli ol ses, cxu la jenaj. " Nun kial malpli ol ses? Kio probablo estas ĉi efike tuj al mi, nur intuicie? Ĉirkaŭ 50%, dekstra? Se la numero kiu la diveni hazarde inter 1 kaj 10 estas malpli ol ses, klare estas unu, du, tri, kvar, aŭ kvin. Kaj por ke tuj donos al mi 50% probablo de kio okazas? Nu ni faru ion kiel tiu, "ludi sonon meow." Kaj avizo, denove, la puzlo peco kreskas persvadi, tiel longe kiel la formoj koincidas. Tio estas kio estas grava. Permesu al mi iri al Scratch tie kaj klaku "ludo." Nenio okazas. Ĉu cimon? Ne, ne necesa. Ĝi povus simple esti, ke granda nombro estis elektita. Do ni faru ĝin denove. Nenio. [Meow] DAVID J. Malan: Tie estas. [Meow] DAVID J. Malan: Denove. No. [MEOWING] DAVID J. Malan: Do se vi havas iam ludis ludon, kompreneble, kie stuff okazas hazarde, kiel kanajloj venos aŭ ne venantan sur la ekrano, aŭ aĵoj fali aŭ ne fali, tio estas nur ĉar iu súper simpla kiel tio okazas. Pick hazarda nombro, kaj se ĝi estas malpli ol iu valoro, eble fari tion aŭ eble fari tion. Ni povas korpigi ke en kondiĉo. Ni faru ion malsama. Lasu min ĵeti ke for. Vi povas forigi necesajxojn simple trenante ĝin maldekstren kaj malfiksi. Lasu min kaj fari ĉiam bloko kaj tre rapide fari ion ĝena. Lasu min kaj diri "ludi sonon meow." Sed mi ne volas ĉi tro ĝena, do lasu min ekpreni tiu bloko, "Atendu dua," kaj avizo ekzistas nenia loko por ĝi. Sed se vi iros fermi sufiĉa, volas iri tien. Do mi lasos ŝin volas kreskas plenigi la bloko. Do nun, ĉi tiu estas buklo. [MEOWING] DAVID J. Malan: Mi laŭvorte faras ĉi eterne. Denove kaj denove. Tio estas ĝuste ne natura sondado. Lasu min kaj ŝanĝi ĉi ne dua, por du sekundoj kaj batis Enter. Kaj kio estas agrabla pri Scratch estas ke vi povus plani interage. Fari ŝanĝon, eble batis Enter aŭ Ludu denove, kaj gxi estos nur plu iri. Nu, nun kial ni ne faru iu iom pli beleta? Anstataŭ fari ĉion de nulo, lasu min antaŭeniri kaj malfermu anticipan faris, ke mi pre-bakita, nomata "Pet la Kato." Kaj ni sendi ĉiujn tiujn dosierojn enreta, kaj problemo starigis nulo rakontos kiel aliri ilin kaj malfermu ilin. Kaj rimarki, tiu estas sufiĉe simpla. Sed anticipe, ŝajne mi kroĉis a "por ĉiam" bloko, do mi havas buklo. Kaj tiam mi havas unu "se" kondiĉo. Mi havas Bulea esprimo. Do en Esperanto, simple rigardante tiu, speciale se vi neniam planita antaŭe, nur intuicie, kio estas tio faros, tiu programo? [Spektantaro babilado] DAVID J. Malan: Se dorlotbesto kato, la kato tuj meow, dekstra? Ĉar "ĉiam unchecking" estas la muskursoron tuŝi la kato. Do por esti klara, kaj mi ne diris antauxvidante, ĉiuj tiuj enigmo pecoj kaj la skripto kiu ni kombinis ilin en, tiel diri, skripto estas sinonimo programon, vere, ĝi apartenas al tiu kato. Kaj la kialo is-- ĉar avizo kiel tiu sama kato tie elstaras, cxi tie vi povas krei dua kato aŭ hundo aŭ vere ajn vi volas grafike. Vi povas importi ion de Photoshop, aŭ simile, kaj integri ion se vi volas fari por projekto. Kaj kion vi trovos: finfine, estas ke vi povas aldoni skriptoj, aldonu enigmo pecoj, al unuopaj signoj. Do tiuj ĉiuj apartenas al tiu aparta kato. Do nun, se mi iru antaŭen kaj ludas tiu programo, nenio okazas. Sed ĝi kuras. La programo estas en tiu eterna buklo, ia atendante kio okazos? [Spektantaro babilado] DAVID J. Malan: Por dorlotbesto kato. Do se mi kopias mian muson al him-- [MEOWING] DAVID J. Malan: Do nun Mi Petting la kato. Dume, ni povas havi duobla branĉo. Lasu min kaj malfermu ĝis ne dorlotbesto kato. Ni sendi ĉi linio. Tio estas iom pli kompleksa, sed sen diri Vi povas diveni eble kio okazos. [MEOWING] DAVID J. Malan: Kato estas meowing, grand malnova tempo. Sed tiu programo estas kompreneble nomita "Ne Pet la Kato," tiel klare, mi volas dorlotbesto kato. [Blekegantaj] DAVID J. Malan: Ne dorlotbesto kato. Nun, ni rigardu ĉe alia ekzemplo tie. Ĉi tiu estos nomata "Hi, Hi, Hi," pro kialoj ke estos klara, ĉar kiam mi kuros ĉi thing-- [SEAL Barking] DAVID J. Malan: Tre facile skribi ĝena Scratch programoj. [SEAL Barking] DAVID J. Malan: Nun ni ne iros en granda detalo kun ĉiuj el tiuj, sed rimarki tie estas paro de novaj karakterizaĵoj tie. Tie estas ŝanĝiĝemaj, nomita "dampita" kaj tiam ekzistas aro da kondiĉoj. Kaj nun, permesu min nur turmentus vin dirante ke se tiu ulo kiu tro ĝena, Mi povas bati la spacebar kaj li haltas. Pro la rolo ludiĝas per tiuj du skriptoj estas kiel sekvas. Unu el ili faras la bojante ĉiu malmultaj sekundoj. La alia estas nur atendas por min bati la spacebar. Kaj se mi faros batis la spacebar, tio tuj ŝanĝos la stato de tiu variablo, la valoro de tiu variablo, tio ŝajne nomata "dampita," Mi ne vokis iun enuiga kiel n, Mi nomis ĝin anglan vorton "dampita." De la 1 al 0 aŭ 0 al 1. De vero al falsa aŭ falsa vera. Kaj tiel vi povas reale vidu nun, ke vi povus havi du skriptoj, du programoj kurante samtempe, kaj ambaux povus sidi en buklo fari ion. Atendante la homa fari iu kiel bati spacebar. [SEAL Barking] DAVID J. Malan: Nun li estas sur sia vojo denove. [SEAL Barking] DAVID J. Malan: Do kio alia eble ni faros per tiuj ekzemploj? Bone, ni iru antaŭen kaj fari Ekzemple kun rakonti ŝafoj. Ni daŭrigu tiun laŭ la linioj tie of-- ni malfermu la sxafojn ekzemplo. Kaj avizo, multe kiel antaŭe, ĉi tiu, Feliĉe, estas iom malpli ĝenaj. Iam mi batis ludi here-- Ho ne, tio estas ĝena. Li tuj BAA kun iu probablo. Ni ludas ĉi denove. [Sxafo BLEETING] DAVID J. Malan: La sola diferenco estas ni ŝanĝis la kostumo, tiel diri, kaj ni _halving_ kaj diru kion tio reala nombro estas. Nu ni iru antaŭen kaj prenu ĉi paŝon pli. Kaj lasu min turmentus vin unu alia karakterizaĵo tie. Ni iru antaŭen kaj malfermu programo nomata Fadenoj. Tiel kiel vi povas havi unu sprite, havanta plurajn manuskriptojn, Vi povas havi du sprites, birdo en kato, ĉiu havanta sian propran skribon. Kaj ĉiu el ili povas funkcii samtempe. Se vi iam aŭdis la vorto "multithreading" komputilo estas "disfadeniga" signifas ĝi povas fari plurajn aferojn samtempe, kaj, efektive, tiel povas skrapi. Kaj nun rimarkos la birdo estas speco de mutaj. Ĝi nur faras tion hazarde, rebotar ekstere de la ekrano. Klare la kato estis programita al speco de havi sercxante kapablojn por hejmo en la birdo ĉar li ĉiam indikante lin. Ĝis fine, li prende la efektiva birdo. Do mi ne volas logxi en la detaloj tie, sed vi povas ia duonvidi la saman formojn, kelkaj "Se" kondiĉojn, kelkaj variabloj, eble kelkaj bukloj, estas fine fari la samon. Nun lasu min antaŭeniri kaj malfermi ion ajn aro, al turmentus iuj el vi, aparte tiuj pli komforta kion vi povas reale fari kun ĉi tiu. Mi tuj iros antaŭen kaj malfermu Buton tie. Kaj tiu estas super simpla-sxajna programo, sed rigardi kion okazas kiam I-- Watch kio okazas kiam mi malfermas ĉi versio de ĝi, tie en la navegador, scratch.mit.edu. Kiam mi klakas ĉi granda ruĝa butonon, rimarki kio okazas. Do kio okazas ĉi tie? Estas vere multe pli complejidad irante sur sub la kapuĉo, kvankam mi implementado tiu, aŭ sincere, Dan Bradley estas implementado ĉi tiel simple. Li desegnis kutimo Scratch enigmo peco, konita kiel Scratch etendo, Li nomis ĝin Komuti. Kaj kio Komuti faras estas ĝi sendas mesaĝo super la interreto. Kaj tiu mesaĝo mem aspektas iom kamufla. Sed tio ankaŭ vi kompreni por termino fino. La mesaĝo li efektive sendo aspektas iom io tiamaniere. Estas nur tekston. Kamufla. Vi komprenas la tempon ni atingas la problemo starigis sep. Ĝi simple sendante teksta mesaĝo super la interreto al servanto. Kaj tiu servilo estas, finfine, parolante al tiu ampolo, kiu havas unu el tiuj fancy ampoloj en ĝi, ke mem, parolas al la Wi-Fi en la reto tie, kie loka aparato malsupren here-- kaj, finfine, ĝi estas reale igante ke lumo kaj ekstere. Sed ni povas fari pli Interesa aferoj ankoraŭ. Rimarku kion Dan ankaŭ faris por ni. Li faris plurajn sprites, ĉiu el kiu havas skripton atendante clic. Kaj se mi klakas ruĝa, ĝi iras ruĝa. Se mi ricevas bluan iras blueish. Verda, flava, oranĝa. Kaj ĉio ĉi okazas per tuj elirejo sur la interreto, posteniri tie la ampolo, kaj ekstere. Kaj se vi povas kredi it-- kaj tio estas eble unu el la plej kompleksaj Scratch projektoj iu havas implemented-- Li faris ĝin juste en tago. Kaj tiu estis la defio ni ĵetis malsupren Dan kiam ni vidis havas duuma bulboj, ni havos Scratch, kiom ni povas kombini ilin? Kaj ĝuste tio estas absolute io iu ajn en ĉi tiu ĉambro povis fari por sesmonato de end-- Ĉu li reimplementó duuma bulboj uzante la saman interfacon kiu estis en nia iPad merkrede. Tial nun, se vi reale klaki la pli tie, Ni havas unu, du, tri. Mi povas bati la 16 kaj turni kiuj unu. 128, kaj tiel plu. Nun se kiu sola havas kaj blovita via menso, Vi povus fari tion multe pli atingebla, ne engaĝante ajna aparataro certe. Nur tion sur la ekrano mem. Kaj efektive, kio plej studentoj fini farante estas ia ludo, iu peco de arta laboro, aŭ ia interaga animacio. Kaj mi diros unu el niaj favoritos estis ĉi tiu. Kaj mi pensis, se ni povus malhelan la lumoj, ni prenos rigardeton ĉe tiu fino Scratch projekto en konkludo. Sed kion vi devus teni en menso, kiel Mi povas turmentus vin kun lasta detalo, Sekciigo komencos venontan semajnon. Oficejo horoj komencos venontan semajnon. Problemo starigis nulo estos eldonita CS50.harvard.edu poste hodiaŭ. Kaj vi estos salutis en problemo starigis nulo al CS50 propra Zamyla Chan, kiu gvidas la plimulto de niaj walkthroughs. Tiuj estas enigita filmetoj en la problemo aroj kiuj tenos vian manon tra multe de la komenca aro supren kaj tra multaj el la eblaj decidoj de dezajno. Do se vi iam havis tiun emocio kiam reprenante hejmtasko asigno kaj scivolante, kie komenci? Ŝi havos tiun respondon por vi. Kaj nun definitivan programon de unu el viaj antaŭuloj en respondo al la demando "Kion faras la vulpo diris?" [MUZIKO YLVIS, "Kion faras la FOX diri?] YLVIS: (kantisto) Hundo iras enteksitajxo. Kato iras meow. Birdo iras tweet kaj muso iras Squeak. Bovino iras Moo. Rano iras kva. Kaj la elefanto iras Toot. Anasoj diri ĉarlatano kaj fiŝoj iri blub. Kaj la stampo iras iel iel iel, sed ekzistas unu sono kiu ne scias, kion la vulpo diris? Kaj DAVID J. Malan: Estas tio por CS50. Ni vidos vin je Puzzle Tago kaj lunde. [Aplaŭdo] [MUZIKO YLVIS, "Kion faras la FOX diras?"] Rakontanto: Nun profunda pensoj, per Daven Farnham. Hodiaŭ mi got batita en la alfronti kun telefono libro. Konfuzante, kiel mi estas ĉe hejmo rigardante enreta.