[Muziciranja] -Alright! -Ovo Je CS50. -Ovo Je CS50. -Ovo Je CS50. [MUSIC - IGGY AZALEA, "fancy"] -Moj Omiljena uspomena iz CS50 bio je kada sam otišao u Male dan. Vjerojatno samo vrijeme proveo radeći na problematična setovima s mojim prijateljima i ljudima koji pustara konačno postati moji blockmates. Moja najbolja uspomena iz CS50 je Hackathon. -The CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. -The Hackathon -Rob Bowden. Baš sve o njemu. [MUSIC - IGGY AZALEA, "fancy"] -Moj Omiljeni sjećanje je kad sam bio na pozornica i sam igrao prestižnu ulogu od čvora [? u Linked?] [? List. ?] Kad smo svi dobili slobodan prostor i Dropbox David je bio kao, pogledaj ispod sjedala. I to je bilo kao, prostora za svakoga! [MUSIC - IGGY AZALEA, "fancy"] Moja savjet za bilo dolazni student bilo bi stvarno rade na P-setovi s prijateljima. -Office Sati je jako puno prijateljica. -Napravite Većinu svog iskustva i upoznati što više ljudi kao što možete. Nemoj se bojati pitati za pomoć. -Start P-seta početkom tjedna. -Mislim Najveća stvar je da iskoristiti sve resurse da CS50 ima. -Idi Za radnog vremena početkom tjedna. Definitivno gledati gaćice. Nemoj odugovlačiti na svoje P-seta. -Napravite Jeste li pronašli veliku skupinu ljudi za rad na P skupova s. Možete imati puno zabave i dobiti posao obavlja zajedno. Nemoj se bojati da se gurati. Idi za hakerske izdanje ponekad. -Write Stvari na papiru prije li ikada dirati računalo. -CS50 Stvarno super na pružanja načina da biste dobili pomoć. Moja jedan komad savjet je san. Je li netko to rekao? Spavanje, sigurno. To je jednostavno ne raditi, ali moraš to učiniti, mislim. -Ja Bih stvarno biti psihički spremni jer ćeš ga voljeti. [MUSIC - IGGY AZALEA, "fancy"] -Ovo Je CS50. -Ovo Je CS50. -Ovo Je CS50. [MUSIC - IGGY AZALEA, "fancy"] -Ovo Je CS50. [Pljesak] DAVID J. Malan: Dakle, ovo je CS50 i to je kraj tjedna 0. A to je bio samo neki od CS50 osoblja koji čekaju ne samo u dijelovima i radno vrijeme, ali, Također, ovaj dolazak vikenda na CS50 Puzzle dan. Koji, opet, nije sve o programiranju. Doista, to se očekuje da vas neće morati ništa programirati, nego rješavati probleme pomoću straha i prijatelji uz vas. Mi ćemo se pridružiti i neki od naših prijatelja u Facebook-- ako ovdje-- registrirajte koji u posljednjih nekoliko godina, imaju zapravo pisao ti izazovi s nama. I tako, oni će biti ti konačnici trčanje Puzzle dan. I tako, od vas će biti izazvan s upravo vrstama stvari i probleme s kojima se ljudi na Facebook željeli razmišljati o tome. Tako da je sutra. Registrirajte se na cs50.harvard.edu/register. Sada riječ o par osoblja posebno. Ovo ovdje je Ansel Duff, koji je zapravo jedan od koautora binarnih lukovice koje smo vidjeli u srijedu, osim CS50 vlastite Dan Bradley. Ansel Duff je također bio bivši brucoš advisee moja prije 3 godine i on je zapravo čak izgradio ovu govornicu. On je otišao na to tehničke znanosti i još mnogo toga. Sada, njegova slika ovdje je zapravo Ansel prije 3 godine na CS50 Hackathon kad je posudio jedan od naših baloni, zapeo je na njegov laptop, i, za sljedeća 12 neki čudan sati, usmjerena na njegov konačni projekt, uzimanje pauze samo otvoriti vrećice bombona na Hackathon. Ali on je otišao na nedavno se potrošiti ovog ljeta s nama, budući CS50 za svoje osoblje, i sada studenti ovog semestra ima svoj vlastiti 3D pisač. A u malom 3D pisači je uređaj koji izgleda baš tako. Možete ga popuniti s plastičnom kolutu koji se rastopio na uređaju a vi graditi stvari doslovno iz ničega. Slično kao tintni pisač, što počnete ispljunuo točkice od plastike taj oblik zajedno formirati cijele objekte. I tako Ansel primjerice, ranije ovo ljeto, ima iPhone 5 i odlučio je zapravo htio da ga podupre na stolu. No, on nije želio izaći i kupiti nešto iz Apple store ili slično, tako da on sjeo i počeo crtati nešto. Uzeo je nekoliko mjerenja kako debljine i kako je njegova široka iPhone je, on je nacrtao ovu sliku ovdje, on je odlučio da je htio imati 75 stupnjeva nagib kao što je zurio u ga na stol tamo. Potom se okrenuo toga, korištenjem softver, u 3D CAD modela koji je izgledao malo nešto kao što je ovaj. A onda je nastavio, u konačnici, kako bi zapravo stvoriti. Dakle, u stvari, ako je itko od vas ovdje, možda u redu da ja mogu baciti, imaju an-- tamo imamo ljudi s iPhone 5, a ovdje imamo još dva. Sad, nije da se preforsirali, CS50 vlastita Cheng Gong je također utvrđeno ovog ljeta izgraditi dosta stvari i, u stvari, iz razloga koji su još uvijek nejasno, je polako ispis vojsku slonova s artikuliraju rukama i gaće. Par koji su zapravo ovdje ako tko bi sada volimo-članovima slona. U redu,. ali ono što je Cheng i učinio Za nas je on vrlo ljubazno postavili kameru zbog tog slona, Vjerovali ili ne, traje oko dva i pol sata za ispis. Čak iPhone stalak uzeo sat i pol za ispis. A što je Cheng otišao naprijed i učinio bio postavljen lijep kameru ispred ove 3D pisača, snimio za jedan sat i upola Ansel dizajn tiskane. Mi obložio neke seksi glazba za njega, kako bi da vam to tako da se kako 3D tiskare. I iako je to je zapravo u plastiku, shvatiti da, ako je to područje od interesa za vas akademski, postoje ljudi, među ih Jennifer Lewis ovdje u Školi Inženjering, koji su zapravo radi na 3D ispis od plastične predmete. No, čak i, sve više, biološki materijal riješiti fizioloških problema za ljude. No, ovdje je malo nešto od CS50. [GLASNO MEHANIČKE zvukove] DAVID J. Malan: To ne zvuči tako nešto u stvarnosti, ali to je puno hladnije da ga gledati na toj brzini, a uz taj zvuk. Sada, u srijedu, kako nije mi prvi put došli ovdje? Počeli smo razgovor o računalu Znanost i mi pitali što je to bilo. A riječ je o nizu stvari, a postoji toliko različitih smjerova u kojima možete krenuti nakon što je tečaj poput CS50. U stvari, ako ste pokupili jedan od onih neslužbenih vodiča CS izvana, knjižici koja smo pod uvjetom, da li ste mislili na uzimanje samo CS50, ili možda rade sekundarna, ili možda čak i koncentrirajući u CS, ne prođite kroz to. I vidjet ćete dijagram prema kraju da pokazuje da su mnoge različite smjerove u CS da možete otići u. No, za danas, mi ćemo se usredotočiti, opet, na stvarno jedan od temeljnih stavova, možda, u kojoj imate ulazi u probleme, imate izlaze iz problemi, a vi imate algoritme s kojima se stvaraju oni izlaze iz tih ulaza. A jedan takav primjer, bio je od Naravno, ovaj telefon je knjiga ovdje. I mi kao primjer otići algoritam koji je ispravan. I onda još jedan bio točna, ali malo brže. I onda još jedan koji je bio malo više dramatična, ali u osnovi brže. Dobro, to smo telefonski imenik tvrdio je imala oko 1.000 stranica. A koliko puta sam se do suza telefonski imenik na pola naći nekoga kao što je Mike Smith, maksimalno, u 1000 stranica knjige? Dakle, 10 dati ili uzeti. I tako sam jednom poderao ovu stvar u pola, ili jednostavno, više zrelo, podijeljen na pola, to je samo 10 stranica od ukupno 1.000. A ako zaključivati, malo nerealno za telefonski imenik, ali ako ovaj telefon knjiga imala oko 4 milijardu stranice u njemu, tako da u potpunosti nezgrapan fizički, koliko je puta ne podijelite 4000000000 Stranica telefonski imenik na pola? Dakle, to je zapravo 32, dati ili uzeti. I tako 32 puta samo, iz od 4 milijarde stranica, mogu nađete nekoga poput Mikea Smitha. I to je učinkovitost. To je dobar algoritam, pretpostavljam. Ali onda smo se preselili iz toga pokušati ga formalizirati. I sam predložio ovu pseudocode kod. Pseudocode kod nije ništa formalno. To nije nešto što pamtiti. To je samo nešto što izražavaju prilično intuitivno korištenje engleskog jezika, ili bilo koji jezik stvarno, da prenosi svoje ideje jezgrovito. No, ono što je ključno o pseudocode kod je da vas pokušati predvidjeti sve mogući slučajevi koji bi mogli dogoditi. I doista, u ovom pseudocode broj, bilo je stvarno tri slučaja svaki put sam podijeliti telefonski imenik. Mike bi mogao biti na lijevoj strani. Mike bi mogao biti na desnoj strani. Ili bi mogao biti u pravu na stranici sam na. Ili četvrti kutak slučaj, da se tako izrazim. Loše scenarij mogao biti jedan which-- što se događa? Mike je samo ne u telefonski imenik na sve. A kada programi crash-- kada Mac i računalni program koji ti dečki pokrenuti na svojim računalima ponekad visi ili neočekivano, to obično znači da su neki programer, neki ljudski poput vas uskoro, Samo zeznuo i napravio neke pogreške. Možda nisu predvidjeli da možda postoji Ne Mike Smith je u telefonskom imeniku. A ako ne zapravo pisati Kod za rukovanje situacije kao što je to, uglavnom nepredvidljiv stvari mogu dogoditi. Uređaj može zamrznuti. To se može ponovno pokrenuti. Program se može zatvoriti. I tako sve ove gluposti koje ste svibanj naišli na stvarni Život samo pomoću računala, će sve više biti samo , objasnio je daleko od tog intuicije i to razumijevanje onoga što je zapravo događa ispod haube. Sada ćemo pokušati pogledati na više generalni problem. Umjesto da se sudjelovanje na ovakvom mjestu to, što bi bilo prilično spora napraviti jedan, dva, tri, četiri. Ili možda dva, četiri, šest, osam. Idemo se usredotočiti, umjesto toga, na Kako bismo mogli formalizirati Algoritam postupka po koje smo mogli uzeti pohađanje. I usput, počnimo primijeniti neke nomenklaturu koje ćemo koristiti danas, kada smo zapravo početi programiranje u jeziku. Dakle, dajem vam sada, četiri minute videa da smo stavili zajedno s našim prijateljima od TED organizacije. Čime smo dobili skriptu i su donijeli svoje animatore nositi, i zapravo stvorili 2D animacije što je algoritam. Ako smo mogli prigušiti svjetla. [Muziciranja] Narator: Što je algoritam? U računalnoj znanosti, Algoritam je skup uputa rješavanja neki problem korak-po-korak. Tipično, algoritmi su izvodila računala, ali mi ljudi imaju algoritme kao dobro. Na primjer, kako bi idete o brojanja broj ljudi u sobi? Pa, ako ste poput mene, vjerojatno bih ukazuju na svaku osobu jednu po jednu i brojati od nule. Jedan, dva, tri, četiri, i tako dalje. Pa, to je algoritam. U stvari, pokušajmo ga je izraziti malo više formalno u pseudocode koda. Engleski-sintaksu kao da sliči programski jezik. Neka je n jednak 0. Za svaku osobu u sobi, postavljen n jednak n plus 1. Kako protumačiti pseudocode? Pa linija jedan izjavljuje, da se tako izrazim, varijablu zove n i inicijalizira njegova vrijednost na 0 to samo označava da se na početku našeg algoritma, stvar s kojom smo brojanje ima vrijednost 0. Uostalom, prije nego što počnemo brojati još nismo broje ništa. Pozivanje ovu varijablu n je samo konvencija. Mogao sam nazvao ga je većina ništa. Sada se postroje dva demarks početak petlje, slijed koraka koji će ponoviti neki broj puta. Dakle, u našem primjeru, korak smo uzimanje računa osobe u sobi. Ispod crte dva je linija tri koja opisuje točno kako ćemo ići o brojanju. Udubljenje podrazumijeva da to je linija tri da će se ponoviti. Tako je s pseudocode kod rekao je da je nakon starta na 0 za svaku osobu u soba ćemo povećati n do 1. Sada je ovaj algoritam točno? Pa neka je lupati po njemu malo. Da li to raditi ako postoje dvoje ljudi u sobi? Da vidimo. U skladu jednom smo početne n 0. Za svaku od ove dvije osobe, Mi smo tada povećajte N 1. Tako je u prvom putovanju kroz petlje, ažuriramo n 0-1. Na drugom putovanju kroz koje Sve petlje, da ažurirati n od 1 do 2. I tako, po ovaj algoritam je na kraju, n je 2, koje doista odgovara broju ljudi u sobi. Do sada, tako dobro. Kako o kutu slučaju ipak? Pretpostavimo da postoje ljudi 0 u sobu-- osim mene, tko je radi prebrojavanja. U skladu jednom, ponovno smo inicijalizirati n 0. Ovaj put ipak, linija tri ne izvrši uopće budući da ne postoji osoba u sobi. I tako dalje n 0, koji doista odgovara broj ljudi u sobi. Prilično jednostavno, zar ne? No, računajući ljude jedan po jedan je prilično neučinkovit, također, zar ne? Sigurno možemo učiniti bolje. Zašto se ne računaju dvoje ljudi u isto vrijeme, Umjesto brojanja jedan, dva, tri, četiri, pet, šest, sedam, osam, i tako dalje. Zašto se ne računaju dva, četiri, šest, osam, i tako dalje? To čak zvuči brže. I to je sigurno. Idemo izraziti ovu optimizaciju u pseudocode koda. Neka je n jednak 0. Za svaki par ljudi u soba, postaviti n jednak n plus 2. Prilično jednostavna promjena, zar ne? Umjesto računati ljudima jednu po jednu, mi umjesto da ih brojati dva odjednom. Ovaj algoritam je, dakle, dva puta brže nego zadnji put. No, je li to točno? Da vidimo. Da li to raditi ako postoje dvoje ljudi u sobi? U skladu jednom, mi inicijalizirati n 0. Za taj jedan par ljudi, Mi smo tada povećajte N 2. I tako je ovaj algoritam kraj nje 2, koje doista odgovara broju ljudi u sobi. Pretpostavimo da su sljedeći nula ljudi u sobi. U skladu jednom smo početne n 0. Kao i prije, tri linije to sve ne izvrši jer ne postoje nikakvi para ljudi u sobi, i tako dalje n 0. Koji doista odgovara Broj ljudi u sobi. Ali što ako postoje Tri osobe u sobi? Kako se ovaj algoritam zbivati? Da vidimo, u skladu jednoj, smo početne n 0. Za par tih ljudi, Mi smo tada povećajte N 2. Ali što onda? Ne postoji niti jedna puna par ljudi u sobi, pa crta dvije više ne vrijedi. I tako do kraja ovog algoritma je, n je još 2 koja nije točna. Doista ovaj algoritam je rekao da biti u kolicima jer ima grešku. Idemo zadovoljština s nekim Novi pseudocode kod. Neka je n jednak 0. Za svaki par ljudi u soba, postavljen N jednak n plus 2. Ako jedna osoba ostaje pojedinačna, postavljen N jednak n plus 1. Kako bi riješio ovaj problem, mi smo uveden je u skladu četiri stanja, inače poznat kao grana, da samo izvršava ako postoji jedna osoba koju Ne mogu upariti s drugim. I tako sada, hoće li postoji jedna, ili tri, ili bilo koji neparan broj ljudi u sobi, Ovaj algoritam sada će ih brojati. Možemo još bolje? Pa, mogli bismo računati u trojkama, ili četiri, ili čak petero i više desetaka, ali dalje od toga, to će doći malo teško ukazati. Na kraju krajeva, bilo izvodila računala ili ljudi, algoritmi su samo skup uputa s kojima riješiti probleme. To su samo tri. Ono što je problem bi ti riješiti sa algoritmom? DAVID J. Malan: Pa namjerno, Vrlo jednostavan program, vrlo jednostavan algoritam za postizanje nešto vrlo jednostavna, računajući Broj ljudi u sobi. Ali neka se zafrkavati, osim Neki od predstavnika ima da se ovdje zapravo će biti korisna čak i kada provedbi najviše Kompleks softvera. Tako, primjerice, u toj prvoj liniji, imamo ono što mi zovemo varijablu, i iz algebre, ti si općenito poznato korištenje X i Y i Z ponekad, i tako dalje. Ali u programiranju, varijable i dalje, na kraju krajeva, vrlo slična. Ali to je možda jednostavnije razmišljati varijable kao samo posude. A, u stvari, to je neki broj bitova provodi se nekako u vaš tvrdi disk ili u memoriji računala, ali više o tome u budućnosti. To je samo kontejner. A ako vam nešto reći kao i neka je n jednak 0, Pa to je kao da zove ovu čašu Zdjela ovdje n, samo proizvoljna ime, i stavljajući ništa u njemu na početku. Tako je vrijednost tog Zdjela sada je nula. I naravno, ako vidim U slijedećem linije zapravo povećajte neki liniju broj, kao u ovom trećem liniji ovdje, za 1, to je kao da kažete ono što je sadašnja vrijednost n, to je 0, plus 1, stavite nešto poput ping pong loptice ovdje. Sada vrijednost toga varijabla je vrlo jednostavno 1. A ti bi mogao vrlo brzo zaključivati, ali sada je 2, sada je 3, i tako dalje. Dakle, to je sve što je varijabla. To je komad za pohranu zapravo pohraniti neke podatke. Za sada je ping pong loptica. Tu je broj. No, to bi moglo biti riječi u rječnik, kao što su pravopisni provjernik Sam aludirao na srijedu za jedan od prošlogodišnjih problema setovima. Sada još jedna ključna ideja, da na sličan način je prilično intuitivan bih tvrditi, da petlje. I petlje u procesu brojanja svima je, naravno, rade isto stvar opet i again-- ni jedan u isto vrijeme ili dva u isto vrijeme. A možete izraziti na engleskom jeziku, ili pseudocode kod, na razne načine, ali koristeći ovaj prijedlog "za" je vrlo čest način da radi. Za svaku osobu u sobi, to učiniti. Opet i iznova. A činjenica da je razvedena, linija tri, samo znači da je ono što ti si trebao učiniti je stvar koja je razvedena ispod crte dva sama. Samo ljudska konvencija, ali zajedničko jedno kao što ćemo vidjeti u stvarnom visokom Razina programskim jezicima. Sada malo zanimljivije je kada se u kutu slučaju. Na primjer, izvesti slučaj je bio kada je su tri osobe, ili pet, ili sedam, ili bilo koji neparan broj ljudi u sobi, jer da radi po dvoje kočnice na kraju, jer je idući propustiti nekoga, bilo na Vrlo početak ili kraj vrlo ovisno o tome kako to učiniti. I tako, sad, imam tu granu, ili stanje, ako jedna osoba ostaje, onda ići naprijed i nositi tu jednu Usamljeni osoba koja nije dobila u paru s nekim drugim. Dakle, to je ono što bismo nazvali stanje, ili grana. Sada pseudocode kod općenito se može napisao da se riješi bilo koji broj problema. I ono što sam mislio da bih učiniti ovdje je uzeti trenutak pozvati ćemo reći CS50-a Posjedujemo Rob Bowden na pozornici će se pridružiti dva volontera, koji nemaju pojma što ga čeka. Ruka siđe čim sam to rekao. Kako o vama na završava ovdje, dođi gore. A što je s dalje dalje, o tome kako način na leđima. Povratak red, dođi s rukama u zraku. Dobro, a kako se ti zoveš? ANITA: Anita. DAVID J. Malan: Anita. U redu, lijepo da zadovolji vas. Dopustite mi da vas upoznam s Rob Bowden. To je Anita. A što se ti zoveš? KIERSTEN: Kiersten DAVID J. Malan: Kiersten. Kiersten, dođi gore i susret Rob Bowden i Anita. Drago mi je. KIERSTEN: Drago mi. DAVID J. Malan: Dobro, Rob. ROB Bowden: Drago mi. DAVID J. Malan: Anita. KIERSTEN: Bok Anita. DAVID J. Malan: I tvoj nekoliko stotina kolege. Dakle, sad neka mi ići naprijed i povucite do puke ovdje program na Mac OS koji će me pustiti zapravo točkica neke bilješke dolje. A ako vi želite da se svaka položaj na jednoj od tih škola tamo, neka mi ići naprijed i počinje popis od pseudocode koda, ako hoćete. I ono što želim učiniti ovdje, u konačnici je tip za vas neke upute da naši gledatelji su zapravo će recitirati za nas. Dopustite mi ići naprijed i samo promijeniti u numerirani popis da odgovara onome što smo radili tamo gore. A ono što ću učiniti s vaša pomoć, je napisati program U pseudocode, čime ovi momci idu implementirati kikiriki maslac i kruh s marmeladom. Tako da je možda umjesan se nešto pokazati neke od vas Možda ste vidjeli na internetu za samo kratak dosadne trenutku. [MUSIC BUCKEWHEAT BOYS ", maslac od kikirikija  Mliječ VRIJEME "] DAVID J. Malan: U redu. To je dovoljno da. Dakle, ovdje je u međuvremenu, moram Par Google naočale koje ćemo staviti na CS50 vlastitom Rob Bowden vidjeti svijet kroz oči. A mi ćemo se potruditi u poštom Proizvodnja zapravo tkati snimke onoga što Rob je vidio Sada, u ovom stvarnom predavanju Video s naša dva Volonteri pokraj njega. Dakle, ono što ću učiniti je, ja ću biti zapisničarka. Imamo cilj ovdje od zapravo pisanje programa s kojima bi, u konačnici, maslac od kikirikija i kruh s marmeladom, ali ova tri će se ponašati kao da su računala. I računala, na kraju dana, su zapravo prilično glupi uređaja. Oni su super brzo, ali mogu samo učiniti, doslovno, ono što su oni rekli. Vi ne možete samo reći da je kikiriki maslac i kruh s marmeladom. Morate ih program za to. Morate im reći s preciznošću što učiniti, manje stvari idu užasno i, nadamo se, zabavno naopako. Dakle, s tim je rekao, moramo jedan poziv iz publike za što bi korak jedan će, ako je cilj ovdje je napraviti kikiriki maslac i kruh s marmeladom. Da? PUBLIKA: [nečujan] vrećicu kruha. DAVID J. Malan: Otvorite vrećicu kruha. Dakle, ako su tri natjecatelja bi željeli nastaviti raditi to doslovno. Otvorite vrećicu kruha. [PUBLIKA Smijeh] DAVID J. Malan: Tako ćemo raditi na tome. U redu. Dakle, drugi korak, how-- uzmimo ovo dalje. Da, u prednjem. PUBLIKA: [nečujan] kruh. DAVID J. Malan: Što je to? PUBLIKA: Izvadite kruh. DAVID J. Malan: Izvadite kruh. Isto tako kratak. Hvala vam. [Pljesak] DAVID J. Malan: To je to? U redu, tako da drugi korak ide da izvadite kruh. Dobro, netko želi napišite nam duži kaznu? Netko drugi? Malo više [nečujan]. Ne, ništa ne sada. Da? PUBLIKA: Mjesto dva kriške jedni pored drugih. DAVID J. Malan: Mjesto dvoje kriške jedni pored drugih. [PUBLIKA Smijeh] DAVID J. Malan: Mjesto dvoje kriške jedni pored drugih. Četvrti korak. Da? PUBLIKA: uzmite ruke i postavite ga lagano na vrhu poklopca kikiriki maslac. [PUBLIKA Smijeh] PUBLIKA: [nečujan] uz maslac od kikirikija. DAVID J. Malan: Što? Opet reći. PUBLIKA: Odvijte poklopac i staviti nježno uz maslac od kikirikija. DAVID J. Malan: Stavite ga nježno uz maslac od kikirikija. U redu, napredak. Korak pet. Izvrsno. Da? Pick up nož. DAVID J. Malan: Pick up nož. U redu, korakom. Da? PUBLIKA: Držite nož za ručku. DAVID J. Malan: Držite Nož za ručku. Držite nož za ručku. Korak sedam. Da? PUBLIKA: [nečujan] nož u kikirikiju maslac i onoliko malo izvan [nečujan]. DAVID J. Malan: Stavi nož in-- I. Čuo "stavio nož u maslac od kikirikija i uzeti samo kao moguće. " Usput, uklonite papir na prvom mjestu. U redu, korak devet. Korak devet. Korak devet. Nismo zapravo napravio sendvič još. Da? PUBLIKA: Korištenje nož u maslac od kikirikija, primjenjuju se maslac od kikirikija na spomenutom kruha. DAVID J. Malan: Korištenje nož u maslac od kikirikija, primjenjuju se maslac od kikirikija na rekao je kruh. [PUBLIKA Smijeh] DAVID J. Malan: Dobro korak 10. Korak 10. Da? PUBLIKA: Okus kikirikija maslac kako bi se osigurala kvaliteta. [PUBLIKA Smijeh] DAVID J. Malan: Korak 11. Korak 11. Korak 11. Hajde. Da? Upravo tamo. PUBLIKA: Pažljivo pokupiti mliječi. DAVID J. Malan: Pažljivo pokupiti mliječi. U redu, a zatim još jedna ruka bila gore. Odmah iza tebe. Da, u plavo. PUBLIKA: U redu, izvadite Poklopac od [nečujan], da, uklonite poklopac od mliječi. [PUBLIKA Smijeh] DAVID J. Malan: Od mliječi. Ha ha. [PUBLIKA Smijeh] DAVID J. Malan: I? PUBLIKA: I jedva pomesti bilo [nečujan]. [PUBLIKA Smijeh] PUBLIKA: Naravno, prije nego što [nečujan], Izvadite papir iz mliječi. DAVID J. Malan: Uklonite papir iz mliječi. Korak 14. Skoro smo stigli. Da? PUBLIKA: Sve osim mliječi boca prije nego što se sve ispadne. DAVID J. Malan: Sve osim mliječi Bočica prije mliječi ispadne. Korak 15. PUBLIKA: Vratite poklopac. DAVID J. Malan: Vratite kapicu. Korak 16. Da? PUBLIKA: [nečujan] DAVID J. Malan: opet reći. PUBLIKA: Uzmi kapu vašeg mliječi. DAVID J. Malan: Off vašem mliječi. Dakle really-- Ups. Hajde. Vratite poklopac. Stavite cap-- Rekli ste uklonite kapu od mliječi. Osjećam se kao da smo u malo petlje. Korak 17. Da? PUBLIKA: [nečujan] DAVID J. Malan: opet reći. PUBLIKA: [nečujan] DAVID J. Malan: Vratite se step-- PUBLIKA: [nečujan] DAVID J. Malan: Uklonite kapa od kikiriki maslac. Da? PUBLIKA: Baci sve mliječi na kruh. DAVID J. Malan: Baci sve mliječi na kruh. DAVID J. Malan: Blizu smo. Korak 19. PUBLIKA: Uklonite višak mliječi. DAVID J. Malan: Haha, mliječ. [Pljesak] DAVID J. Malan: Zašto ne we-- još jedan korak da se ovaj dom. Još jedan korak, a zatim ćemo poslužiti sendviče. Da? PUBLIKA: [nečujan] DAVID J. Malan: Dok je bilo sendvič remains-- neka je alineje ovo-- jesti. [PUBLIKA Smijeh] DAVID J. Malan: U redu, hvala da naši volonteri ovdje. [Pljesak} DAVID J. Malan: Imamo neke lijepe rastanak darove za svakoga od vas. Vaš vlastiti kikiriki maslac, želea, i kruh vratiti kući. Hvala vam. KIERSTEN: Hvala vam. DAVID J. Malan: [nečujan] dobrodošli. [Pljesak] DAVID J. Malan: Dakle, to je, Naravno, smiješno je primjer. Zar ne? No, to ne vrsta otkrivaju kako smo ljudi samo uzeti jasnoću zdravo za gotovo. I činjenica da sam bio u razgovoru s drugog čovjeka, on ili ona jednostavno zna što misliš. Računala ne ide znati što misliš, čak i kada se koristi, kao što je smo o tome kako bi to danas, programiranje nešto u Scratch, povucite i pad, zagonetka komad stil jezik. Čak dizajniran za mlade Djeca, imate da će biti tako eksplicitno i tako doslovna s ono što želite da vaš program za napraviti. Sada konačno, da smo će biti programiranje Ne u pseudocode koda, Engleski kao sintakse, ali kod ili, točnije, izvorni kod. Izvorni kod je samo fancy način za opisivanje kod vas zapravo pisati s tipkovnicom koja je Nije na engleskom po sebi. To je u C ili Java ili C ++ ili nešto kao što je to, kao što ćemo uskoro vidjeti. A u stvari, samo da se uplašiti neke od vas, na prvi pogled, ovo je program napisan u jeziku nazvao C. No, da biste poništili panika malo tko od vas, što će u potpunosti razumiju što se događa na dolaze sljedeći ponedjeljak kada ga u pitanju nešto poput ovoga. Iskreno, ovo je starija jezik. To je prilično kompliciranih, ali to je predstavnik od puno jezika ovih dana da imaju puno zagradi i kovrčava aparatić i navodnike i zarezom. I puno toga sintaktička stvari koje se ne uopće intelektualno zanimljiv. Doista, to je totalna distrakcija od vrlo jednostavnih ideja koji su nas gleda u lice. Ovaj program, kao što ste mogli samo nagađati, ispisuje na nečijem zaslonu računala riječi: "Zdravo zarez svijet." To je sve. Pa jasno, postoji puno stvari koje je uzimajući u načinu Neki očiglednost postoji, ali to će se vrlo brzo klizanje daleko i biti potpuno intuitivno. Doista, što ćemo učiniti Danas je destilirati to prilično složena u potrazi programa, što opet ćeš doći razumjeti brzo, ali za nešto mnogo jednostavnije. Recimo samo da što mislimo. Idemo nacrtati sliku o tome što mislimo, putem ove slagalice ovdje. Dakle, ovo je za programiranje jezik poznat kao nule. To je bio razvijen od strane MIT Media Laba. A što ćete vidjeti u problemu postaviti na nulu, koji će biti objavljeni kasnije večeras, morat ćemo ići na to URL ovdje scratch.mit.edu. I oni imaju web sučelje preko kojega što će napisati svoj prvi program. Ili one koji su prije iskustvo, drugi programi, ali u okruženju koje je Vjerojatno nešto nepoznato i da će vas gurnuti stvoriti nešto Korištenjem ove vrlo vizualno okruženje. Sada, ono što ću učiniti ovdje je otvoren do samog programa. Ona postoji ne samo kao web-pregledniku, ali i kao download programa tako da zapravo možete ga koristiti Ako nemate pristup internetu. I ja ću to učiniti Ovdje, u Sandersa, samo U slučaju da Wi-Fi ne surađuju super dobro. A ono što ću učiniti je točka iz nekoliko značajki ovog programa. Dakle, da bude jasno, ja imam samo dvaput kliknuli na ikonu na mom desktopu, ili ekvivalentno otišao u scratch.mit.edu, i to je izvukao ovaj prozor. To je programsko okruženje. To je komad softvera koji Neki od naših prijatelja na MIT-u napisao da neka nas i pišete Programi u jeziku zove nule. Sada se to dogodi da se mačka koji je također nazvan Scratch i to je njegov svijet u kojem živi. To je faza, da se tako izrazim, da pravokutnik na gornjem lijevom kutu. A on ne mora izgledati kao mačka. Možete ga pogledati kao i bilo što i vama može imati više takvih sprites, ili likovi, u programu. U međuvremenu, ovdje na daleko Dobro, je velika prazna ploča. I ovo je mjesto gdje, u ovom trenutku, ćemo početi programiranje povlačenjem i ispuštanjem to grafičko zagonetka komadi koji su pravo ovdje u sredini. I tu je daleko više od njih ne ćemo provesti vrijeme ovdje u razredu jer vidjet ćete da oni su svi prilično intuitivan. Opet, to je dizajniran za djecu, ali mi koristite ga zafrkavati, osim nekih od onih temeljne ideje varijable, petlje, uvjetima, i, uskoro, stvari kao funkcija i događanja te teme i druge ukrasni stvari ćemo doći do prije dugo da se zapravo stvoriti nešto od nule. Dosjetka namijenjen. Sada, ono što ću učiniti je ovdje kliknite na nije gibanje, ali kontrolu. A to je samo kategorizacija ovdje-- i vidim drugačije Boja skup blokova. Ali primijetiti nekoliko poznatih riječi. "Ako" i "if" i "repeat". A što vjerojatno možete pogoditi to podsjeća na grani, ili uvjeti smo vidjeli, i čak petlje konstrukt. Dakle, imamo slične blokova ovdje. No, najzanimljiviji jedan je ovaj ovdje. Kada je ova zelena zastava se klikne, to, za one s prethodnog programiranja iskustvo, je ekvivalent na glavnu funkciju. No, za one koji nisu upoznati, ovo je zagonetka komad koji će započeti započeti naš cijeli program. To doslovno znači kad idem, u ovom Program i kliknite na zelenu flag-- koje možete pogledati ovdje u gornjem lijevom kutu od UI, pa pogledajte zelenu zastavu pored crvene znak stop? Kad kliknem da, moj Program će se izvoditi. Sada, ja ću učiniti nešto Super jednostavan s nule. Ja ću ići naprijed i otići do izgleda ploči Ovdje, gdje imam hrpu purpurnih slagalice, i ja ću ići naprijed i učiniti nešto super jednostavno poput, recimo. I then-- primijetiti Tekst u bijelom okviru je editable-- ću reći "Pozdrav svijetu", baš mi se sviđa učinio u tom tekstualnom Verzija trenutak prije. I sad ako odem i kliknite na to Zelena zastava, sada su programirani. To nije osobito zanimljiv program, ali sam napravio računalo učiniti nešto. Počela sam program i to učinio ono što sam rekla to učiniti. Sada, ja mogu nastaviti povlačiti i ispuštati sve više i više tih slagalice i oni će blokada, ali ajmo slap neke terminologije ovdje kako ćemo vidjeti ponavljajući tijekom tečaja, i stvarno cijeloj informatike i programiranja općenito. Ovo "kažu" blok, u grimiz, ajmo samo početi zvati izjavu. To je poput izjave o tome. Učinite to. Dakle, to je kategorija upute koje vas mogla hraniti računalo kao dio programa ili algoritam. I da bude jasno, da ste vjerojatno uzeti zdravo za gotovo da imate program na vašem računalu. I oni su neka vrsta algoritama, ali Program je stvarno hrpa algoritama da su neki ljudi pisali. Oni ga pakiraju i su ga prodali pa vas, ili su objavljena na web stranici za preuzimanje. Dakle, program je samo cijela hrpa nula i jedinica da je, na neki način, ljudi stvorili. A ti obrasci nula i one predstavljaju stvari, u konačnici, poput "pozdraviti svijet" ili "play ta glazba "ili" igrati ovaj video " ili "poslati e-mail." No, mi ćemo se vratiti u način više detalja što Program je kada, sebi, napišite ih. Evo još statement-- "Čekaj jednu sekundu." Nisam koristiti ovaj još, ali ako želim moj program za pauzu nešto učiniti, ja mogu reći da to učinite. Čekaj jednu sekundu. Sada još moglo biti "igrati zvuk." Dakle, ovo je jedinstven na očekivanoj razini, to ima sposobnost da se igra zvukove. Dakle, tvrdnja smijem Uporaba je, ovdje, "igrati zvuk." U međuvremenu, logički izraz, pa to je ljubitelj riječi nazvana po samo čovjek po imenu Mr. Bool, i to je sve o tome pitanju. Točno ili false-- je miš prema dolje? Logički izraz je samo neki izraz na engleskom jeziku to je bilo istinito ili lažno. Ili on ili off. Ili jedan ili nula. Možete misliti na njega bilo koji broj načina, ali to je bilo istinito ili to lažna, u konačnici. Dakle, "miš dolje upitnik" to bi bilo logički izraz. A možete misliti na druge, možda. Na primjer, "lijevo je broj manji od točnog broja? " To je, također, bio bi logički izraz. "Manje od" je logički izraz. To je jedan, također, "dirljivo pokazivač miša." Nisam siguran zašto nazvao ga pokazivač miša. To samo znači da je pokazivač je strelicu na zaslonu, dira mačku, na primjer. Ili neki drugi aspekt zaslonu. I to je pitanje, opet, i koji označava Boolean izraza. Nešto što ste mogli želite koristiti u stanju. Tako ćemo doći do toga u samo trenutak. Možete "i" stvari zajedno. Dakle, ako želite provjeriti je li to što je slučaj i da je to slučaj, možete koristiti "i" blok kao što je ovaj. I ovdje je taj uvjet. Obavijest oblik malog otvora U vrhu ove žute puzzle komad, to podsjeća na oblik da smo upravo vidjeli maloprije. Svaki od tih Boolean izraza imati ove ukazao rubova na lijevo i desno. A to je zato što MIT ljudi odlučili da vizualno prevozili oblika, možete vrsta pomoći ljudima, studenti i djeca podjednako, na neki način popuniti praznine doslovno. Sada kada puzzle-- da Otvorenje je malo mala, i kao što ćemo vidjeti u programu, u nule, to će rasti kako bi odgovarao. To će zadržati svoj oblik, u konačnici. Dakle, stanje dajte se odlučite "Trebala bih učiniti nešto ili ne?" Logički izraz je stvarna pitanje koju koristite odlučiti ne idem lijevo ili moram ići na desno kad sam susret ova Takozvani vilica na cesti? Možete imati dvije grane. Ako je nešto istina, učinite ovo, drugi ide na taj način, ili se samo može učiniti ništa u sve, jer to podrazumijeva blok. Slično tome, možemo gnijezdo te stvari. Dakle, ako želite da se utrostručiti vilicom cesta, bilo ovo ili ovo ili ono, možete samo gnijezdo te stvari zajedno. I to počinje da se malo ružna, na kraju, sigurno, ali logika je uvijek isti. Vi doslovno možete pročitati to od vrha do dna a ona kaže ono što means-- ako je to je istina, to učiniti, drugo ako je drugo. Petlje ne bi jednostavnije u nule. Zauvijek učiniti sljedeće. Sada možda ne mislite može učiniti mnogo, jer ne postoji mnogo prostora između vrha i Dno ovog otvaranja zagonetka komad. No, vidjet ćete Scratch će narasti da stane što više slagalice kao što želite strpati tamo. Drugi petlje može biti izražen ponavljanja. Ako unaprijed znate, "ja žele učiniti nešto 10 puta, " ti samo mogu reći Scratch nešto učiniti 10 puta. A, u međuvremenu, možemo imati varijable. Dakle, ovdje je proizvoljna jedan, to je narančasta u ovom slučaju, i to je vrtlog turneju. Opet, vi ćete to vrlo pristupačan Jednom kada počnete pokazuje i klikom. Ja sam dobio ime moje varijablu n, ali ja mogli su je nazvali sve što želim, i ja sam ga postavci, u to proizvoljna primjer, na nulu. Sada je vidio program poput Pozdrav svijet nije sve što je uvjerljiv, pa neka je zapravo otvaraju nešto da je bivši student napravio. Dopustite mi ići naprijed i otvoriti, Primjerice, ovaj ovdje, za koje bih volio imati volonter. U redu, kako about-- idemo dalje. Da, dođi gore. Koje je tvoje ime? Abby: Abby. DAVID J. Malan: Abby, dođi gore. Dakle, jeste li ikada igrao ova igra prije? Abby: Ne DAVID J. Malan: U redu. David, lijepo da zadovolji vas. Dođi. A što je tvoja programiranje pozadine, ako ih ima. Abby: Naučio sam nešto C ++. DAVID J. Malan: Vi ste naučili neke C ++. A što je svoju igru igrati pozadinu? Abby: Ne mnogo. DAVID J. Malan: U redu, tako da ću to uzeti. Pa evo kako igra ide na posao. Ja ću ići naprijed i kliknite zelenu zastavu, što je ovdje u gornjem desnom kutu. Sada je vaš prethodnik u klasi vam je dao neke upute ovdje. I u samo nekoliko trenutaka ga, kaže da je "prostor za početak." Dakle, ići naprijed i pogodio razmaknica. Računalna igra: Pikachu. DAVID J. Malan: A cilj je da se uhvatiti hranu, kao što je prikazano postoji Na lijevoj strani. I [nečujan] [GAME muziciranja] DAVID J. Malan: Aww, dobro, hvala ti za igranje. Imamo ovdje malo rastanak dar za vas. Imamo CS50 stres loptu, Ako želite odabrati. Dobro, dobro da vas zadovolji. Hvala vam što ste došli i izazovan. Dakle, imamo više stresa loptice, pa ajmo napraviti još jedan primjer kako motivirati. Volonter? U redu, što je s ovdje ispred. Koje je tvoje ime? PHILLIP: Phillip. DAVID J. Malan: Phillip. Dođi gore, Phillipa. Dakle, Phillip će biti izazov s drugom igri da je jedan od vaših prethodnika napisao je kako je dio problema postaviti na nulu, naziva Ivy je najteže igra. I vidjet ćemo u samo Trenutak što se podrazumijeva pod to. Phillip, lijepo da zadovolji vas. Koja je tvoja pozadina? PHILLIP: Učinjeno puno kodiranje. Sastavljeno malo igre, previše. DAVID J. Malan: U redu. Imam puno igre, previše. A što ste igrali ovu igru ​​prije? PHILLIP: Nema DAVID J. Malan: Sve Dobro, idemo. Ja ću ići naprijed i pritisnite zelenu zastavu. [Igre Glazba] [MUSIC MC Hammer, "u može dirati OVO"] PHILLIP: [nečujan] DAVID J. Malan: [nečujan] PHILLIP: [nečujan] [Smijeh] [MUSIC MC Hammer, "u može dirati OVO"] DAVID J. Malan: [nečujan] Orati kroz njega. PHILLIP: [nečujan] DAVID J. Malan: Samo naprijed. [MUSIC MC Hammer, "u može dirati OVO"] DAVID J. Malan: U redu. Čestitamo. [Pljesak] DAVID J. Malan: Hoćemo Post da online kasnije, tako koje možete odugovlačiti s njim kao dobro. Princeton dolazi naprijed, nakon toga. Dakle, sada ćemo zapravo postupiti početi od nule, da se tako izrazim, i zapravo graditi do možemo zafrkavati pored neke od tih ideja i doći do nečega, čak složeniji do kraja. Ja ću ići preko ovdje, a ja ću ići naprijed i stvoriti novu datoteku. Pa opet, problem skupa će hodati li kroz neki od tih koraka. No, sve što sam učinio je go na izbornik File i ja rekao je "novi", toliko kao Microsoft Riječ, ili bilo koji program kao što je to. I idemo naprijed now-- i mi provodi "Pozdrav svijetu" trenutak prije, ali neka je učiniti nešto malo slađi. Ja ću otići do događaja. A ja ću učiniti ", kada Zelena zastava kliknuli ". A onda ću koristiti, recimo, podružnicu. Tako da ću koristiti "ako" stanje. I primijetiti kako čim dođem blizu na njega, on želi da ugriz zajedno. Zato sam pustio i ne sjedne zajedno. I sad ja mogu napraviti nešto zanimljivo. Ako sam se kretali kroz ovdje, idem da vidim hrpu blokova. Ako idem na "data" - neka mi uvećanje in-- ima nešto o varijablama. Ako idem u "pokretu", možete očito se stvari oko. Ako idem na "operaterima" - Oh, to je zanimljivo, Ja mogu odabrati slučajni broj. Pa neka mi učiniti nešto sa samo Neki vjerojatnost, samo zato. Ja ću ići naprijed i povucite ovaj puzzle komad, to je da je manji od blok, tako da je samo "Je taj broj manji od tog jednog?" Ali ja ne želim tvrdo šifru niz jer je to bilo prilično besmisleno. Tako ću povući ovaj komad ovdje, i primijetiti kako se sjedne u, i sad neka mi ići naprijed i reći: "Ako broj koji je odabrao nasumično je manji od šest, ne slijedi. " Sad zašto je manje od šest? Što vjerojatnost je to djelotvorno će mi dati, samo intuitivno? Oko 50%, zar ne? Ako broj koji je valjda slučajno od 1 do 10 manji od šest, jasno da je jedan, dva, tri, četiri, ili pet. I tako da će mi dati 50% vjerojatnost da ono što se događa? Pa neka je učiniti nešto takvo ovo, "igrati zvuk mijau." I obavijest, opet, zagonetka komad raste da stane, tako dugo dok se oblici podudaraju. To je ono što je važno. Pustite me da prijeđem na očekivanoj razini ovdje i kliknite na "play". Ništa se ne događa. Je li to bug? Ne, nije potrebno. To bi moglo biti samo da Veći broj je izabran. Tako ćemo to učiniti opet. Ništa. [Mijau] DAVID J. Malan: Tamo je. [Mijau] DAVID J. Malan: Opet. Ne [Meowing] DAVID J. Malan: Dakle, ako ste ikada igrali igru, naravno, gdje stvari se događa slučajno, kao negativci dolaze ili ne dolazi na zaslonu, odnosno stvari padaju ili ne pada, to je samo zato što je nešto super Jednostavan ovako se događa. Pick slučajni broj, a ako to je manje od neke vrijednosti, Možda to učiniti ili možda učiniti. Mi možemo ugraditi da je u stanju. Učinimo nešto drugo. Dopustite mi da se baci daleko. Možete dobiti osloboditi od stvari koju samo ga povlačenjem off na lijevo i ostavljajući ići. Dopustite mi ići naprijed i učiniti zauvijek blok i vrlo brzo napraviti nešto neugodno. Dopustite mi ići naprijed i kažu "igrati zvuk mijau." Ali ja ne želim da ovo bude previše neugodno, pa neka mi iskoristite ovaj blok, "Pričekajte jednu sekundu", a obavijest nema više mjesta za njega. Ali ako idete dovoljno blizu, ona želi ići tamo. Zato sam pustio i to će rastu popuniti blok. Pa sad, ovo je petlje. [Meowing] DAVID J. Malan: Ja sam Doslovno to zauvijek. Opet i iznova. To jednostavno nije prirodno sondiranje. Dopustite mi ići naprijed i to promijeni ne jednu sekundu, kako bi dvije sekunde i pritisnite Enter. A ono što je lijepo o Scratch je da biste mogli programirati interaktivno. Napravite promjenu, možda pritisnite Enter ili Igrajte opet, i to samo će zadržati ide. Pa, sad zašto ne radimo nešto malo slađi? Umjesto da učinite sve što je od nule, neka mi ići naprijed i otvoriti akontaciju napravio jednu, da sam unaprijed pečena, pod nazivom "Pet Mačka." I mi ćemo postavljati sve te datoteke online, i je problem postaviti nula će vam reći kako im pristupiti i otvoriti ih. I napomena, ovo je prilično jednostavna. Ali unaprijed, čini mi se da su zgrabio "zauvijek" blok, tako da imam petlju. A onda sam dobio "ako" stanje. Imam Boolean izraza. Dakle, na engleskom jeziku, samo pogledavši to, pogotovo ako ste nikada programirani prije, samo intuitivno, što će to učiniti, ovaj program? [PUBLIKA lupetati] DAVID J. Malan: Ako ste ljubimac mačka, Mačka će Mijau, zar ne? Jer "zauvijek birajući" je pokazivač miša dira mačku. Dakle, da bude jasno, a ja nisam rekao ovo prije, sve ove slagalice komada i skriptu koja mi smo ih kombinirati u, da se tako izrazim, skripta je sinonim Program, zapravo, pripada ovu mačku. A razlog je-- jer obavijest kako je to ista mačka ovdje je istaknuo, ovdje možete stvoriti Druga mačka ili pas ili stvarno sve što želite grafički. Možete uvesti nešto od Photoshop, ili slično, i integrirati nešto ako žele to napraviti za projekt. A što ćete, u konačnici, to ti Možete dodati skripte, dodajte puzzle komada, do pojedinih znakova. Dakle, svi oni pripadaju ovaj mačka. Pa sad, ako sam ići naprijed i igrati Ovaj program, ništa ne događa. Ali to je trčanje. Program je u ovoj zauvijek petlji, vrsta čeka što će se dogoditi? [PUBLIKA lupetati] DAVID J. Malan: pomaziti mačku. Dakle, ako sam premjestiti moj miš prema him-- [Meowing] DAVID J. Malan: Tako sada Ja sam petting mačka. U međuvremenu, možemo imati dvostruko granu. Dopustite mi ići naprijed i otvoriti se ne pomaziti mačku. Mi ćemo objaviti ovu kao i online. To je malo više složeno, ali bez rekavši možete pogoditi možda što će se dogoditi. [Meowing] DAVID J. Malan: Mačka je meowing, velika stara vremena. No, ovaj program je, naravno, pod nazivom "Ne primaju se mačak" pa jasno, želim pomaziti mačku. [Urliče] DAVID J. Malan: Ne pomaziti mačku. Sada, neka je pogledati na drugoj primjer ovdje. Ovaj će se zvati "Bok, Bok, Bok," iz razloga da će biti jasno, jer čim sam pokrenuti ovaj stvar-- [SEAL lajanje] DAVID J. Malan: Vrlo lako pisati dosadne Bloka programe. [SEAL lajanje] DAVID J. Malan: Sada nećemo ići u velike detalje sa svim tim, ali primijetiti postoji Nekoliko novih značajki ovdje. Tu je promjenjiva, pod nazivom "isključen" i onda postoji hrpa uvjetima. A za sada, neka me samo ti zafrkavati rekavši da, ako taj tip dobiva previše neugodno, Ja mogu pogoditi razmaknicu i on prestaje. Zbog ulogu odigrala ta dva pisma kako slijedi. Jedan od njih radi laje svakih nekoliko sekundi. Drugi samo čeka za mene pogoditi razmaknicu. A ako ja pogodio razmaknica, to će se promijeniti stanje ove varijable, vrijednost ove varijable, to je očito pod nazivom "prigušen", nisam zvala to je nešto dosadno kao n, Nazvao sam je engleska riječ "isključen." Od 1 do 0 ili od 0 do 1. Od vjerni lažna ili lažno se istina. I na taj način možete zapravo vidi sada, da vas mogla imati dva scenarija, dva programi izvode istovremeno, i obojica mogli sjediti u petlju radi nešto. Čeka se ljudski učiniti nešto kao što je udaranje razmaknicu. [SEAL lajanje] DAVID J. Malan: A sad on je na putu opet. [SEAL lajanje] DAVID J. Malan: Pa što drugo možda ćemo učiniti s ovim primjerima? Pa, idemo naprijed i učiniti Primjer s brojenje ovaca. Nastavit ćemo to na tragu ovdje of-- ćemo otvoriti ovaca primjer. I napomena, baš kao i prije, ovaj, srećom, je malo manje neugodno. Jednom sam pogodio igrati ovdje-- Ma ne, to je neugodno. On će Baa s nekom vjerojatnošću. Igrajmo to opet. [OVCE BLEETING] DAVID J. Malan: Jedina razlika je promijenili smo kostim, da se tako izrazim, i mi smo se prepolovi i reći što je stvarni broj. Pa idemo naprijed i uzeti ovaj korak dalje. I dopustite mi da vas zafrkavati s jedna značajka ovdje. Idemo naprijed i otvoriti Program se zove niti. Dakle, baš kao što možete imati jedan Sprite, ima više skripti, možete imati dva sprites, ptica u mačka, od kojih svaki ima svoj vlastiti scenarij. I svaki od njih može funkcionirati zajedno. Ako ste ikada čuli Riječ "višedretvenost" Računalo je "multithreaded" znači to može učiniti više stvari odjednom, i, doista, tako da mogu ispočetka. A sada primijetiti ptica je vrsta glupo. On samo radi stvari slučajno, odskakanje zaslon. Jasno je mačka je programirana na neki način morati traže mogućnosti do kuće u na ptice, jer on je uvijek pokazujući na njega. Dok konačno, on hvata stvarni pticu. Dakle, neću razmišljati o detaljima ovdje, ali možete vrsta nazrijeti iste oblike, neke "Ako" uvjetima, neke varijable, Možda neke petlje, su konačnici rade istu stvar. Sada neka mi ići naprijed i otvoriti do nešto sasvim drugo, zafrkavati neke od vas, osobito one udobnije, Što se zapravo može učiniti s ovim. Ja ću ići naprijed i otvoriti Button ovdje. I to je super jednostavna-tobožnji program ali gledajte što se događa kada Ja-- Pazi što se događa kad otvorim ovu varijantu, Ovdje u pregledniku, scratch.mit.edu. I kad sam kliknite ovaj veliki crveni gumb, primijetiti što se događa. Dakle, ono što se ovdje događa? Tu je zapravo puno više složenosti događa ispod haube, iako sam implementiran to, ili iskreno, Dan Bradley implementirao to tako jednostavno. On je dizajnirao običaj Scratch puzzle komad, poznat kao Scratch proširenje, On ju je zvao Prebaci. A što Prebaci se je on šalje poruka preko interneta. I to samo po sebi poruka izgleda pomalo zagonetan. No, to je, također, da ćete podrazumijevamo pod mandata kraja. Poruka je zapravo šalju izgleda malo nešto poput ovoga. To je samo tekst. Grobni. Vi ćete ga razumijem po vremenu dobili smo problema postaviti sedam. To je samo slanje tekstualnih poruka preko interneta na poslužitelju. I to poslužitelj je, u konačnici, u razgovoru s tom žarulja, koje ima jedan od onih fancy žarulja u njemu da je, sama po sebi, ne govori na Wi-Fi u mreži ovdje, gdje lokalni uređaj dolje ovdje-- i, u konačnici, to je zapravo okretanje da uključuje i isključuje. Ali možemo učiniti više zanimljive stvari na mjestu. Obavijest ono Dan i učinio za nas. On je napravio više sprites, svaki od koji je scenarij čeka klik. A ako ja kliknite crvena, to ide crveno. Ako sam dobiti plavu, to ide blueish. Zelena, žuta, narančasta. A sve to se događa po idući put izašao na internetu, odstupiti ovdje žarulja, i isključiti. A ako it-- mogu vjerovati i to je Možda je jedan od najsloženijih nule Projekti netko ima implemented-- on je to učinio, u pravednosti, u jednom danu. I to je izazov s kojim se bacio na Dan kada smo vidjeli imaju binarne žarulje, imamo nule, kako možemo ih kombinirati? I, doista, to je apsolutno nešto što svatko u ovoj sobi mogao učiniti semestar je end-- Je li on reimplemented binarni žarulje koriste isto sučelje koje je na našoj iPad u srijedu. Tako da sada, ako sam zapravo Pritisnite plus ovamo, imamo jedan, dva, tri. Ja mogu pogoditi 16 i okrenuti taj jedan na. 128, i tako dalje. Sad je li to jedini ima i dignut svoj um, možete učiniti stvari daleko pristupačniji, ne uključuje bilo koji hardver sigurno. Samo stvari na samom zaslonu. I, doista, ono što većina studenata završiti radiš je neka vrsta igre, neki komad umjetničkog rada, ili neka vrsta interaktivne animacije. A ja ću reći jedan od naših najdraži je ovaj jedan. I mislio sam da smo mogla prigušiti svjetla, mi ćemo baciti pogled na taj završni Scratch projekt u zaključku. Ali što ćeš imati na umu, kao što je Mogu vam zafrkavati s jedne posljednjeg detalja, pod mikroskopom će početi sljedeći tjedan. Radno vrijeme počet će idući tjedan. Problem postaviti nula će biti objavljena CS50.harvard.edu kasnije danas. A vi ćete biti dočekan u problemu postaviti na nulu na CS50 vlastite Zamyla Chan, koji je vodi većinu naše rješenje korak po korak. To su ugrađeni video u problemu setovima koje će održati svoju ruku kroz puno od početne set up i kroz mnoge od mogućih dizajnerske odluke. Dakle, ako ste ikada imali tu emociju kada dođu do domaću zadaću i pitate, gdje početi? Ona će imati taj odgovor za vas. A sada, Konačni program s jedne od svojih prethodnika U odgovoru na pitanje "Što lisica reći?" [MUSIC YLVIS, "ŠTO FOX reći?] YLVIS: (pjevanje) Pas ide vau. Mačka ide mijau. Ptica ide cvrkut i miš ide cika. Krava ide Moo. Žaba ide riknuti. I slon ide trubiti. Patke kažu šarlatan i riba ići Blub. I pečat ide joj joj joj, ali postoji jedan zvuk koji nitko ne zna, Što to lisica reći? I DAVID J. Malan: To je to za CS50. Mi ćemo vas vidjeti na Male dan i ponedjeljak. [Pljesak] [MUSIC YLVIS, "ŠTO lisica reći?"] Narator: A sada duboko misli, po Daven Farnham. Danas sam dobio udarac u suočiti s telefonskom imeniku. Zbunjujuće, jer ja sam u Početna gledajući on-line.