[GLASBA] To je CS50-- Harvard Uvedba univerze do intelektualne podjetja računalništva in umetnost programiranja. In moje ime je David Malan, in Razmišljal sem zjutraj, to je bilo neverjetno 20 let danes odkar sem nazadnje sedel v kateri vi sedaj storiti. To je bilo 1996. Bil sem letniku in sem ob CS50 za zelo prvič. In nisem še prišel do živca da ga bo sam brucka, delno zaradi časa. Računalništva z mano je nekako všeč, meh. Bil sem malo geek narašča gor, ampak nisem zares imajo vse pravice intelektualne Zanimanje za kar je bilo videti samo je cel kup ljudje programskih ves čas. In sem se prestrašil, da je pošten. Tečaj in računalništva več na splošno so imeli in do neke mere še vedno ta sloves polja do pazi, če je le zato, ker tako mnogi od nas so seznanjeni z njim in prepričani o tem. In res ni bilo, dokler nisem nakupovali ta razred, ki letniku fall-- in še to, sem se vpisal le ker je professor-- ena mojih prvih mentorjev, Brian Kernighan zdaj Princeton-- dovoli mi, da bo razred akcije ne. In res, da je zato danes omogočajo in spodbujajo študente, da sprejme ta razred sat / unsat. In šele potem, z konec semestra sem zavedaš kot, wow, to ni bil tako neznan polje. Pravzaprav, to je bila zelo pooblastitvi polje, in bolj vznemirljivo, zlasti kasneje, kot sem tečaje Dramatic Arts 101 in Latinski A in nato sčasoma grad šola arheologije, sem res začel videti križišč tem področju, računalnik znanosti, s humanistiko, naravoslovne znanosti, umetnosti, medicine, in podobni. In tako, da je tisto, kar je prav tako gladka o računalništvu na koncu, kot upamo, da boste see-- je njegova uporabnost teh drugih področjih, in kako lahko da nekateri današnji in semester je idej in praktičnih spretnosti nazaj na svojo lastno domeno, in dejansko raziskovanje tega križišča svobodnih umetnosti in znanosti. Torej 73% od vas, če zadnji leto je znamenje, nikoli sprejela CS seveda prej. Torej, če, kot sem jaz, si občutek malo strah, ali odkrito nisi prepričani, zakaj ste še tu. Morda si sledijo nekatere prijatelji prav zdaj več do Sanders. To je povsem v redu. Cilj tega je, da priključite vas in vas pomirili da če ne videti, da levo in desno, boste videli sošolci z kot malo ali veliko izkušenj da vas morda sami imajo. In res, bomo delili nekateri statistični podatki kasneje danes kot s tem, kar demografiji razred ponavadi izgledal. In kot je bil dodan reassurance-- in to mi to pomeni, saj sem tekom Nekaj ​​let ago-- v Tečaj je učni načrt je this-- da je tisto, kar v končni fazi zadeve v tem predmetu ni tako veliko, če boste na koncu se glede na sošolci, ampak, če si v 11. tednu, končni cilj semester, na koncu glede na sebe V tednom 0, ki je kje smo danes tukaj. In to je tisto, kar sem spoznala vse tiste pred leti. In vem, da veliko Razredi to reči, ampak to je še posebej velja na področju računalništva. Na koncu dneva, to polje je ne poznajo, saj je bilo z mano in je lahko za vas, je res gre le za reševanje problemov. In kot tak, pa ima ta uporabnost, da bi dobili na drugih področjih. In v resnici, če bomo poskušali destilirati, kaj to pomeni, To je reševanje problemov V svojem bistvu, upam si reči. Tam je input-- tako karkoli že je je, da ste poskušali rešiti. Tam je izhod, ki je upajmo rešitev za ta problem. In potem, ko smo bi pravijo v računalništvu, tam je ta črna škatla v sredina, da vam ni nujno treba skrbeti, kako to deluje. Sami sčasoma morda izvaja, kaj je v tem polju. Ampak za današnje namene in več na splošno v življenju, vse, kar skrbi je, da se te težave rešiti. In kaj gre v tem predmetu končni cilj je raziskati presečišče Ti vhodi in izhodi, in to tako imenovane algoritmi, kot bomo kmalu videli, da izvajajo tisto, kar je pod tam, pokrov motorja. Ampak ti vložki in ti outputs-- Kaj to dejansko pomeni? No, na koncu dneva moramo nek način predstavlja informacije. To še posebej velja v računalniku, ki je kot modno in kompleksno kot to Morda se zdi, je precej neumna naprava. To traja electricity-- ali iz kabel ali baterijo, kot input-- in potem daje nekaj preprogramed odzivi na zaslonu. Toda kako priti iz začnejo tam konča? No, kaj je problem treba rešiti? No, mogoče bi lahko, na začetek vsakem semestru, poskusite, da prisotnost v prostoru, kot je ta. Torej lahko jaz kot ena, dva, tri. Ali pa morda, če sem to storil da nekako slediti od myself-- slediti things-- Sem lahko hitro zmanjka prstov. Tako da sem lahko samo, da hash marks-- eno Oseba, dva, tri, štiri, pet, šest, sedem, osem. In vsi imajo verjetno to storil, bodisi v vaših rokah ali na list papirja. In to je dejansko samo nekaj, kar se imenuje unarni notation-- kjer, če imate samo eno črko v abecedo, eno ali hašiš znamka v tem primeru, za vsak vhod želite prešteti, boste morali dati dol eno od teh letters-- enega od teh znamk. V redu. To je vse lepo in prav in sploh ni tako zapletena. Toda računalniki niso vsi da je veliko bolj zapletena. Dejansko je večina od vas verjetno vem, tudi če ste v resnici ne šteje, kaj to pomeni, da je računalniki razumejo le ničle in ones-- tako imenovanem binarnega sistema. Smo ljudje, nasprotno, so tako veliko bolj zapletene, če kot smo razumeli ničle preko devetk. Pa tudi če je binarni sprva pogled, ni vse, kar poznajo, Izkazalo se je, tako kot sistemi in ideje, ki smo že vedeli. Tako, na primer, da je to. To je samo zaporedje simbolov. In vse vas, ko Že pogled na to, verjetno mislim 123-- nič Res zanimivo tam. Ampak zakaj je ta številka, 123? To so le pismenke na screen-- le vzorci da nekdo bi lahko pripravijo ali vnesli. Ampak, če ste kot jaz, boste Verjetno se spomnite iz osnovne šole da obstaja vrsta stolpce ali mesta tukaj. Tam je tisti, za kraj in TEN kraj in sto v mesto. In razlog, da je to 123 in ne gre le za vzorec treh simbolov Kajti, seveda, če želimo imajo eno na stotine mestu, vam matematika 100-krat eno, in potem sta v desetih kraja. Torej, to je 10-krat 2, nato pa tri leta The One je mesto in to je 1 krat 3. In ko boste dodali vse tiste gor, od Seveda, boste dobili 100 plus 20 plus 3. Tako smo začeli z enim samim vzorcem od symbols-- je alphabet-- potem pa smo se preslika pomen na je s pomočjo teh stolpcih. No, se izkaže, da računalniki so res ni vse, kar se razlikuje od tebe in mene. Toda namesto da bi uporabila pristojnosti 10, tako speak-- 1, 10, 100, 1000, 10.000 mesto in tako forth-- dejansko samo uporabo pooblastil 2-- tako on, 2, 4 in nato če bi dal več cifer, 8, 16, 32, 64, 128, in tako naprej. In tako je to, kako računalnik bi predstavljajo število 0, tako kot smo ljudje. 0, 0, 0-- in si verjetno lahko uganiti kaj vzorec ničel in enic, Če računalnik lahko le govorijo 0 ali 1-- kaj Vzorec se dogaja, da predstavlja številko, ki jo ljudje poznamo kot 1? Yeah-- 0, 0, 1. V redu. Torej, 0, 0, 1, kako jih predstavljamo 1, tako da boste lahko nagnjena nato da predstavlja številko 2, če imate štirih je kraj in dveh v mesto kot enem mestu, bi lahko rekli, dobro, če bi imeli 1 v eni kraja, in sedaj želimo štetje do 2, boste morda to stori, in pustimo, da je to nič. Seveda to ni, kako decimalni sistem deluje niti. Če si dal cifro oba od teh stolpcev moraš storiti aritmetično. Torej, kaj več sem po nesreči samo predstavlja? Torej je 3, ker je 2-krat 1 plus 1 krat 1, seveda, daje nam tri. Torej bi bilo to dva. Bit nekako obrne, tako rekoč, kot je 0 postane eden, podobno kot 9 vlog več in postane 0, ko nosijo 1. To bi potem tri seveda. Four-- druge zanimive stvari se zgodi, če je tisti, prevračanje in nosite 1, tako rekoč. Torej to je seveda 4. Ampak, če si hiter naprej zdaj, kaj je največja številka bo se, da lahko računalnik predstavlja? Torej, to je samo sedem v tem primeru, kajne? Ker imate enega v štirih, ena v dveh, ena v enem. Torej, to je 4 plus 2 plus 1. Tako, da vam sedem. In res, bi to zdi na prvi pogled da lahko računalniki računajo ne več kot to. Ampak to seveda ni res. Kaj smo ljudje storiti, če hočemo da računajo več kot kot 999? Samo nosijo eno in samo dodamo četrto cifro na levi strani. In tako v resnici smo lahko. Lahko bi imeli osem-jev kraj in kraj, iz 16. je, in 32 je mesto, 64, 128-- in vi lahko samo nadaljuj naprej do neskončnosti. Torej te ničle in ones-- ti binarni system-- so tisto, kar bi računalniški znanstvenik običajno zahtevajo malo ali binarno številko. Toda zdaj, kako smo dobili od koncept ali grafika teh stvari na dejansko računalnik? Se zdi, da se preskoči korak tukaj. No, samo vhodni konec dneva, na moj laptop tukaj je ta tok električne energije. Tudi če je bil dolg časa, odkar ste mislili o ali nikoli pomislil kako elektrika deluje, tam je elektroni, ki izhajajo iz ali ven, in to je moj tip vhoda. Torej, če je to vse, kar smo dobili kot vhod tukaj, kaj lahko naredimo s to informacijo? No, morda mislite iz nič, kot samo odsotnost električne energije. Nič ni flowinw, nič ni premika, se nič ne dogaja. To je samo privzeta state-- nič. Toda, če je elektrika teče, zakaj ne bomo samo arbitrarno, ampak po vsem svetu dosledno zahtevajo, da je eden. Torej, preprosto tako, da nima moči, imamo nično, ja moč, imamo one-- brez moči, ja moč. In na ta način s pomočjo nekaj več fizični ali elektronski smo začeli izvajati ta pojem nekaj ali pa eno ali nič. Dejansko bi lahko samo to tukaj. Torej, tukaj imam ne tri, ampak Osem žarnic, od katerih je vsaka ima lasten stikalo. In zato, če sem hotel, da predstavlja številka sedem tod Sem lahko vklopite teh treh žarnic. In res, znotraj moj računalnik je na milijone, milijard stvari, ki so prav manjša od tiste, ki se imenuje tranzistorji, stikala, ki ste ga pravkar vklop in izklop. Torej, to so big-- relativno big-- stikala znotraj mojega laptop-- veliko, veliko, veliko, veliko več stikal. Toda vsi ti je točno that-- obrniti kaj na zavijemo nekaj off. In kot taka lahko računalnik predstavljata s temi milijonov, milijard tranzistorjev, serij in veliko ničel in enic. In tam je druga strojna oprema še vedno, da je vam omogoča shranjevanje informacij dolgoročno, tako, da ko si potegnite vtič, ga ne izgubijo. Ampak to je zgodba za drug dan. Torej, kaj lahko naredimo s temi bitov? Mogoče smo samo, da se pritisk off me-- morda kdo želel priti tu in darovati demo? prvič sem videl to roko. Kako ti je ime? MADAY: MADAY. DAVID Malan: MADAY, pridi gor. Lepo te je bilo srečati. MADAY: Me veseli. DAVID Malan: Pridite na ta način. Ne bom moral ustnice navzgor. V redu. Torej, tukaj imamo, notice-- eno, dvo bomo uredili, da out-- en, dva, štiri, osem, 16, 32, 64, 128. To je namerno. Obstaja osem bitov here-- binarni digits-- ničle in narave. In malo je uporaben enota measure-- ni koristno merska enota na sebi. Ponavadi si želijo vsaj osem od teh stvari, alias bajt. Torej imamo bajt bitov tukaj. Torej, če bi želeli, da vas izziv s, na primer, razloženi v binarno, ta vrednost here-- 42. Želite, da stab na to? MADAY: [neslišno]. DAVID Malan: Ja, samo potisnite malo bele stikala na sprednji strani. In želite urok od 42, in za zagrabi je to CS50 stres žoga, če dobiš to. V redu. Torej imate 32. Bomo potrebovali 42. Torej, to je osem, tako da je 40. In excellent-- zelo lepo naredil. Hvala. [Aplavz] V redu. Torej imamo še en stres žogo. Naredimo to še enkrat, če bi lahko. Ena druga prostovoljec? Prosti stres žogo, brez stresa žogo. V REDU. Tukaj v sredini, hočeš priti dol? V redu. Vem. No pa gremo. Torej številke here-- pridi dol. Kako ti je ime? DAVEY: Davey. DAVID Malan: Davey. V REDU. Pridi gor, Davey. Lepo te je bilo srečati. In kaj bomo, da ste spell-- če bi tam ostajal za samo eno moment-- je številka 50. Vendar, ampak toda toda vendar so ti Šola magneti za razlog. Pravkar dobil malo težje, v redu? Še vedno osem. V redu. Torej, kaj imamo tam? Imamo 32. Lepo. 32 plus 16 nam daje 48-- tako blizu. In čudovito. Čestitke Davey, kot tudi. [Aplavz] V redu. Tako smo lahko to ves dan, in da ne bi dobili vse, da je veliko bolj zanimivo in bolj zahtevna. Ampak to je res Point-- je, kako relativno enostavna je ob koncu dneva, kar je računalnik ne za shranjevanje podatkov, za shranjevanje vložkov in na koncu shranjevanje ali predstavljajo tiste izhode. Toda same številke niso vse to zanimivo. Torej ljudi, pred nekaj leti, odločila, veš kaj? Bilo bi lepo, če računalniki niso samo računala za aritmetično operacije, ampak dejansko lahko stvari, kot so obdelava besedila, ali email, ali bolj moderno inkarnacije tovrstnih tehnologij. In tako se je svet odločil, poljubno, ampak splošno, da, če želite shraniti kapitala črke A v računalniku, veš kaj? Naj samo se vsi strinjamo, da shranite nekateri vzorec ničel in ones-- bits--, ki na koncu predstavlja decimalno številko 65. Bomo le vsi se strinjajo o tem. 66 bi predstavljalo B, 67 bi predstavljalo C, in tam je grozde drugih vzorcev ničle in tisti, ali osnovne številke, bi to pomenilo druge črke še. Torej, če ste nekako duševno absorbirajo to za trenutek, Namenoma sem dal gor skozi I, pri čemer je 73 H 72 in I. Če računalnik dobi, v okviru program za urejanje besedil ali e-mail, razkrila pod pokrovom imeti Ti vzorci bits-- vzorca bitov, ki predstavljajo 72, nato 73, nato 33-- Kaj bi to pomenilo v tem programu? Torej hi, in potem je nekaj. Ne nujno, vem, ampak res 33-- ne na grafikonu earlier-- je le klicaj. Tako 72 je H, 73 je I, 33 zgodi biti klicaj vedno. Ampak to je vse lepo in prav, in v resnici danes, namesto samo uporabo sedem ali osem bitov, zaradi nečesa imenuje Unicode v nasprotju na ASCII nazaj v dan, lahko dejansko predstavljajo še bolj zanimivih znakov kot samo to izvirno angleško pristranski črke. Vendar pa lahko predstavljajo tudi celo bolj urejen stvari, kot so barve. Če ste kdaj slišali za kratico RGB, rdeča, zelena, modra, da samo pomeni, da računalnik običajno uporablja tri sklope bits-- nekateri število bitov, ki predstavljajo številko za koliko rdeče hočeš, drugi niz bitov za koliko zelena hočeš, in še en set številka koliko blue hočeš. Tako velika številka pomeni veliko rdeče, majhno število pomeni, da ni rdeče. In tako da so prijazni o srednji vrednosti tukaj. Torej daj mi nekaj rdeče, daj mi nekaj zelena, in mi malo modre. In če se pomešajo te tri odtenke barve skupaj, v tem primeru, dobiš to Taman odtenek rumene ali rjave barve. Ampak to vzorec osmih plus osem plus eight-- tako 24. bits-- od leve proti desni, je, kako računalnik bi pomenilo, da se posebno barvo. Zdaj je to le pika na zaslonu. Če pogledaš res blizu na vašem TV si računalnik, boste videli pik ali pik. In če imate celotno mrežo pik, vodoravno in navpično, imate slike. In potem, če ste vzeli sliko in nato pranje kažejo si drugo sliko, drugo slika, druga slika, druga slika, zelo hitro, boste seveda morali filmov. In tako opazili, kjer smo začeli. Začeli smo s temi ničel in enic. Delali smo od tam v desetiški številke, kako smo jih zastopajo. Zdaj imamo črke abecede. Toda v drugih kontekstih čakati, lahko uporabimo nekaj več bitov in predstavljajo barve. Takoj, ko imate sposobnost, da zastopajo barve, imate možnost, da predstavljajo fotografije in animirane gif in druge podobne znake na zaslonu. In ko imaš cel kup slike letijo človeka naenkrat, izgleda, da filmov, in tako boste dobili video posnetke, kot tudi. Torej, z uporabo teh zelo preprostih primitivnih kajne imajo način predstavljajo končno vse te oblike medijev. In smo spet odvzete in znova in znova, dokler ne bomo dobili od najnižje ravni na ta najvišji ravni. Tako, da nam je to Osnovna ideja abstrakcije. Ampak smo začeli tukaj. Zdaj tukaj, smo morda predstavljata v računalniku naši vložki z ničel in enic, naši rezultati v ničel in enic, ampak, kaj se dogaja v škatli? To je, če računalnik znanost postane zanimivo. To je, če ste dejansko prinesete lastne misli, da nosi za reševanje problemov. Sedaj lahko določajo, za Preostali del semestra, ja. Vem, kako binarnih del. Spomnim se, kako ASCII ali Unicode-- preslikava na letters-- dela. In to zagotovo stoji Razumno, da smo lahko predstavljajo rdeča in zelena in modre in predstavljajo multimedijske kot dobro. Toda to je zanimive stvari. To je tisto, kar nekoga sposoben reševanja problemov. In en tak problem želimo narediti, res, je ob prisotnosti ali tem algoritmom. In še enkrat, jaz bi to naredil. Jaz bi naredil eno, dve, tri, štiri pet, šest, sedem, osem devet. In lahko sem ga napisal navzdol, da bi spremljali to. Ampak to je samo, kako bi predstavljajo podatke. Ali sem lahko naredil to faster-- dva, štiri, šest, osem, deset, 12, 14, 16, 18, 20, 22-- je občutek dvakrat tako hitro, vendar je še vedno bo trajalo veliko časa. Ampak se je izkazalo, če vzvoda še še resource-- in dejansko računalniki Te dni imajo več procesorjev ali možgane. Izkazalo se je, računalnike lahko narediti veliko stvari naenkrat, in res smo v tej sobi, lahko predstavljajo prav to. Tako da je malo socialno nerodno, če pa bi humor me za samo proces v treh korakih, naj me vprašajte vsi v mestu je le da stojijo za trenutek. Vstani. Tako da mislim, da si, število one-- tako da vsi v tej sobi, razen oseb, ki niso oblige, razmišlja številka ena. Tako, da je vaša številka zdaj. To je prvi korak, ali kot računalniški znanstvenik ali programer Običajno bi to storili, bomo da začnemo na nič. Če Najmanj, kar lahko predstavljajo s temi žarnicami nič, da jih preprosto odhodna vse off, bom morda tudi samo začnemo z ničelni je namesto enega. In tako, da je kaj računalniški znanstveniki storiti. Torej korak nič, vstane in pomislimo na številka ena. Naslednji korak je this-- par off z nekom položaj in dodate številke skupaj. Čudovito. Tako da v tem trenutku, dobesedno vsi, ki sodelujejo razmišlja o številu 2, razen za eno nenavadno osebo, če imamo liho število ljudi v prostoru. In zdaj tretji korak v to smer se bo se this-- od vas bi moral sesti. Eden izmed morate usesti, in če ste še vedno stoji, vrnite na korak enega. V redu. V redu. Torej več ljudi naj bi sedel. Opazimo, da je ta povzročil loop-- nekakšen cikel. Nekateri od vas bi moralo biti nerodno zaljubljen, gredo naprej in nazaj med koraku in dve, ena in dva, ena in dva. V redu je. Naš prvi bug. Bomo ukvarjajo s tem. V redu. Naj poskusim, da bi pospešila stvari skupaj. V teoriji, je le ena oseba stoji kot vsi še naprej par off. Ampak naj pospešijo stvari z ljudmi, še vedno stoji. Kaj več si mislil? 46. V REDU. Pojdi naprej in sedi. Vi še vedno stoji. Kdo še stoji? Kaj več si mislil? V REDU. Torej se bomo vrnili k tebi. Zadaj? Kaj je to? 22. OK, nekdo drug se top-- ja? 34. V REDU. Tukaj na moji right-- tukaj gor? 132, zelo lepo. 22? V REDU. In kdo je še vedno stoji? Tukaj? 46, zelo lepo. 72. Ne morem stojnici veliko dlje. Ja? 30, lepo. Tukaj? 23? 23. In mislim, da je vsakdo razen vaju, brez pritiska. Oh počakaj. 28? Samo osem. V REDU. Samo osem. Tu spodaj? 30. 23. 24. 18. To je najslabši izvajanje tega algoritma doslej. V REDU. Torej, še kdo? Še kdo? V REDU. Še en. 16? V REDU. 16. V redu. Torej, če nisem zamudil kdo v bleščanje tukaj, ko sem zadeti nastopiti, bomo videli, z algoritmom je skupno število ljudi v Sanders. Ker še enkrat, to je kot da bi vsi kot si sedel, opravili svojo številko off nekomu drugemu, nekomu drugemu, nekomu drugemu, tako da v teoriji, na koncu le eno nerodno oseba, je treba pustiti stanje. Ampak to je v redu. sped smo stvari ročno. To je še posebej težko videti V tem prostoru. In skupno število ljudi mislimo, da so tukaj je 546. Skupno število sem roko ga učnih štipendistov, Kdo je bil stari šola počasen način, je bilo 820. [Smeh] [Aplavz] V redu je. Torej zagotovo potem pa so te napake. In to je v redu. In tako mislim nazaj na to prvič nekaj ste napisali ne pomeni nujno delati. To se mi je zgodilo tudi tukaj. Ampak kaj je zdaj razmisliti, kako bi lahko velja to isto idejo, da nekaj ste morda videli, kar je to stara šola tehnologija here-- res velik telefonski imenik. In domnevam, da je ta imenik ima 1.000 strani in 1.000 imen in številke abecedi znotraj njega. No, lahko bi nekako velja podobno ideja, da bi to zelo telesno motnjo, samo mi uporabo. Sem nekako goljufal z izkoriščanjem vseh vas z veliko in veliko različnih CPU ali možgani izvršitve nekaj algoritem. Ampak, če je le malo old me, da lahko še vedno vzvoda, da je isto bistvo ideje delitve in osvajanja, da je problem znova in znova, pri čemer polovica od vas, polovica od vas, polovica vas, polovica od vas, teoretično vodi sedel, dokler smo pustili, teoretično, s samo eno osebo. Torej, v tej stari šoli technology-- ne bomo Potrebuješ map-- to stara šola tehnologija, bomo morda začeli iskati nekoga všeč Mike Smith, eno stran naenkrat. In vidim, da Mike ni tukaj ni. Še vedno sem v oddelku A. Sčasoma, se mi zdi Sam v poglavju B. In to je algorithm-- korak-po-korak navodili. Začnite na strani za začetek in eno v času, poglej za Mike Smith. Je to correct-- to algoritem ali pristop? Ja, to je res. Če Mike je tukaj, na koncu Bom z njim. Ampak to ni učinkovito. To je seveda zelo počasi. Tako sem lahko vzvod Isti twosies pristop. Ne morem narediti neke dveh, štiri, šest, osem, 10, 12. To je dvakrat hitreje. Jaz bom dobil Mike hitreje, če je tam. Ali je pravilno? Da, vendar sem slišal little--, št. Zdaj sem slišala, št. Ja. Tam je napaka potencialno. Mogoče Mike samo po naključju dobi stisnjena med dvema stranema, ker letim skozi Ta dva naenkrat. Tako vsaj moramo nekaj vrsta pogojnega popraviti. Moram reči, hej, če sem udaril nekoga, čigar ime se začne s T namesto črke S, Bolje dvojno nazaj vsaj eno stran. Torej buggy na prvi, ampak je moč fiksirati. Ampak nihče od nas gre iskati Mike Smith prek 1000 strani telefona Rezervirajte eno stran naenkrat. Kaj je normalen človek bo naredil? Boste šli v S-ih, če bi vedeli, kjer je S-jev. Morda gre približno na sredini ali rahlo nagnjen proti koncu. Pogledal sem dol in Sem v oddelku M. Ampak kaj veš o tem problemu zdaj, da nismo nujno vedeti, preden z vsemi nami samo štetje sami ekvivalentno? No, Mike je jasno bo da je v tej polovici knjige če je tukaj sploh zato, ker je to urejeno. In tako lahko zelo dramatically-- [Zasopel] Vem. [Aplavz] To je pravzaprav zelo preprost, če vam je navzdol hrbtenice tam. Vendar pa lahko nato vrgel polovica problem proč. Zdaj sem zapustil z isto problem-- našli Mike Smith v telefonu book-- zdaj pa je telefon Knjiga se začne na M in gre do Ž, vendar je pol tako velika. Ampak to je tisto, kar je impresivna. Tako kot v teoriji, vaju, ko vsi sedel samo polovico v času, problem imam pol tako velika, pol tako velika, znova in znova. Tako je postal ta problem Isti problem, ampak pol tako velika. Zdaj je problem 250 strani. Takoj, ko sem spoznala, oh, sem v oddelku T nenamerno. Sem šel predaleč. Sem lahko vrgel, da je polovica telefonskega imenika stran. Sedaj sem dol k četrtina problema. In lahko ponavljajo, ponavljajo, ponavljati, dokler v teoriji, ste ostane samo eno stran. In če Mike je na tej strani, Zdaj lahko rešili ta problem. Toda, kako hitro sem jo rešiti? V prvem primeru mi je všeč Mogoče 1.000 korakov, da bi našli Mike Smith. To bi lahko sprejela me-- Pobral sem telefonski imenik in sem začel iskati eno stran naenkrat, Mike je lahko 1.000 strani kasneje. Drugi pristop morda ima me 500 korakov, ker letim prek dveh naenkrat. In tretji pristop, čeprav to je še posebej močna. Ampak kaj je razmisliti, kaj smo dejansko si s tem tretjim pristopom. Jaz bom, kaj bom poklical samo ti izjave tukaj, enega po enega. Pick up telefonski imenik. Odprli sredi imenika. Poglej imen. In potem se stvari malo bolj intelektualno zanimiva, če je še vedno preprosta. Če je Smith med imena na tem trenutno stran, naredite nekaj pogojno. To je kot odcepu. Pokličite Mike. Če je Mike med imeni na tej strani, ki se imenuje Mike. Ampak samo, da linijo štiri, če linija drevo, če hočete, je res. Odgovor na to vprašanje je pritrdilen. Sicer če Smith je že v book-- z drugimi besedami, če sem v poglavju M in iščem nekoga, ki bi levo, nato pa kaj je treba storiti je nekaj zelo podobnega. Potem bi moral odpreti na sredino na levi polovici knjige. Torej gre v levo, nato pa nazaj na drugi korak. Poglej imeni tam. Torej, z drugimi besedami, to isto stvar, vendar pa na problem, ki je bil prepolovila. Veš kaj? Če Smith je kasneje v knjigi temelji na stran gledam, odprt Na sredini Desna polovica knjige nato pa pojdite nazaj na drugi korak, else-- tam je četrta možnost tukaj. Mike je tukaj ali v levo ali desno ali pa ne. In tukaj smo bolje, da je to. In v resnici, če ste kdaj imeli računalnik samo crash na vas, da je včasih, vendar ne vedno, Rezultat le človeškega programer ne zavedal, oh ustrelil, tam je dejansko je to četrti scenarij. In če ne napisati kodo ravnati, da scenarij, Včasih ne veš kaj bi lahko računalnik storiti. In res program lahko sesuje. Toda v tem primeru, sem mislil o tem, in sem rekel, še nehal, ker je to četrta logično možen scenarij. Zdaj pa dodajte nekateri besednjak tako mi lahko začne Razbacivati ​​okoli pogoji, ki so sicer precej intuitivno. Vse stvari, ki sem jih pravkar označen z rumeno barvo tukaj, Jaz sem le, da bo na funkcije ali postopkov. Oni so samo vrste ukrepov. Torej pick up, ki je odprt, poglej na, klic, odprta, odprto, quit-- to so le ukrepi, ali bomo jim pravimo bolj formalno, funkcij. Medtem, zdaj v rumeni barvi, Sem izpostavil stvari that-- kaj je samo začetek kliče jim razmere ali veje. Gre za odločitev točke, kjer lahko greš na ta način, na ta način, ali kakšno drugo smer vedno. Tisti bo pogoji. In zdaj ta je malo Ljubitelj. Recimo ta vprašanja Logični izrazi, za nekoga s priimkom bool. In logično izraz je le nekaj To je bodisi resnična ali neresnična, da ali ne. Torej, to je vprašanje, katerega odgovor vas skrbi, tako da v stanju narediti decision-- dobil nazaj odgovor, in potem gredo v levo ali desno, ali kaj drugega v celoti. In potem na koncu, ti linije here-- nazaj na drugi korak, pojdite nazaj na korak dvo smo lahko izvajanja te ideje na različne načine. In potem tisti, ki ste z programiranje izkušnje bi lahko naredili ali lahko predstavljate tem drugače. Ampak za današnje namene, to je Samo ideja, da je pomembno. To je tisto, induciranje bomo na splošno imenujemo loop-- nekakšen cikel, saj to je da me nekaj storiti še enkrat. Zdaj, kaj je samo upoštevati kako dober je ta algoritem. To je pravilno. Če Mike je v knjigi, to je eden od tiste štiri scenarios-- znova in znova in še enkrat, ga bomo našli. Toda, kako dobro je to? No, nimamo preveč formalno tukaj. Ampak kaj je samo parcelo Nekaj, x in y, da bi dobili občutek oblike tega problema. Na osi x je tu velikost moj problem. In Y-os tukaj bo čas za reševanje. Mogoče je to število strani. Mogoče je to sekund ali Stran turns-- karkoli. Vendar pa želite, da računajo, je kaj bo ta slika predstavlja. In to prvi algoritem, jaz grem opisati kot samo ravne črte. Če je n strani v telefonski imenik, potem mi lahko traja toliko kot n korakov, da bi našli Mike. Če Verizon ali telefonsko podjetje dodaja še eno stran v naslednjem letu, morda mi bo še en step-- eno enoto časa, da bi našli Mike. Torej je le ta, da eno razmerje. To je ravna črta pobočju. Medtem, da drugi algorithm-- če sem bo dva na time-- dveh, štiri, šest, osem ali double-- gredo po straneh dvakrat naenkrat, dva naenkrat, je še vedno ravna črta. Tam je zdaj ena proti dve Razmerje, ampak samo malo nižje. Torej, če je to veliko strani na grafikonu tukaj v rumeno, da mi lahko traja to veliko korakov ali sekund, sicer pa se dogaja, da me dvakrat toliko na rdečo črto. Toda zelena črta je prava hrana za s seboj. To je tisto, kar smo na splošno pokličite logorithm-- dnevnik n, kjer je n število strani. Ampak to je oblika, ki pomembno danes, ker nimamo celo razmišljati o ubral točk. Pomisli skrajnem scenariju. Recimo Verizon jutri podvoji število strani v tem imeniku, od 1.000 do 2.000. V prvi algoritem, sem lahko odpadke dodatno 1.000 koraki išče Mikea, samo zato, ker Verizon podvojili velikost knjige. Drugi algorithm-- Morda da mi dodatnih 500 korakov. 1000 več strani, grem dva na time-- 500 več korakov, da bi našli Mike. Ampak, da je tretji algoritem je nekako čarobno. Verizon podvoji število strani, od 1.000 do 2.000, ampak koliko korakov naredi trajalo me iskati Mike? To je samo ena, ker sem lahko samo raztrga telefonski imenik še enkrat s težavo 2.000 stran 1.000 strani problem, in voila. Sem sprejela veliko ugriz iz nje. In če greš res ekstremni, Predvidevam, da je telefonski imenik Podjetje je imelo nekaj norega, kot 4 milijard stran imenika. No, koliko korakov bo trajalo najti Mike Smith v 4 milijarde stran imenika? To je velika številka, vendar le 4 milijarde 2000000000-1000000000 500 milijonov, 250 million-- še Sliši se kot velike številke, vendar sem zelo hitro pridobivanje manjših vrednosti. In v resnici, če naredim math V redu, lahko razdeli le 4 milijarde s približno 32-krat, preden Sem dol samo eno. Torej, če je imenik bilo 4 milijard strani dolg, ni nič takega. V nekaj sekundah, morda 32 sekund, lahko bi ga razdelili na pol in na koncu ugotovili, Mike ali sklepati, da ga ni tam. In to je bistvo algorithm-- dober algoritem. In to je eden izmed Cilji razreda, kot je ta, se poskuša ugotoviti, kako naj rešiti problem, ne samo pravilno, kot sem vedno vedel, kako to storiti eno Stran na time-- ampak pravilno in dobro. Kako oblikovati dober rešitve za probleme? Torej, vzemimo trenutek tukaj in vam dajejo občutek zdaj od CS50 tečaj itself-- uvesti uslužbenci Še nekaj Seveda je. Tik pred 2:00, bomo premor tako da tiste, ki ste kdo nakupovanje lahko raca, in traja poglej kak drug razred in spremljati ostanek tega na spletu. Ampak za zdaj, naj vam predstavim CS50, razred sam, in še posebej, kaj je novega. Torej mimo pomlad, smo preživel zelo malo time-- Osebje Tečaj in jaz-- razmišljanje o tem, kaj je to želimo CS50 biti, in vrača v prvo Načela, tako rekoč, razmisliti, kaj je to želimo To seveda bi izgledal in se kot za svoje študente. In zato si lahko ogledate na problem nastavljen nič, kot tudi, vabilo da si oglejte, da URL, ki povzema nekateri motivi v ozadju naslednje značilnosti jeseni 2016. Tako kot so se lahko naberejo od TL: DR letaka, učni načrt je danes, kot tudi iz katalog Seveda, letos v CS50, si bo udeležilo le today-- tako da delo dobro done-- in zadnje predavanje na 21. november. In ste dobrodošli, vendar ni pričakovati, da udeležijo teh predavanj v sredini, ker kaj delamo letos, je streljanje v realnem času materialnega predmeta je. Tako da bo vse, kar je ostal Sedanji in vključiti kot najboljše, kar can-- aktualnih dogodkov in pogovorov, ki ljudje morda se ob v industriji v svetu, vendar tako, da material razpolago kot rezultat, celo earlier-- skupaj s polnimi besedila transkriptov in možnost iskanja in povezave do drugih virov. In res, ko smo bili preživeti nekaj časa in mi sedaj verjeti, da lahko ustvarimo, digitalno, bolj poglobljeno, bolj prepričljivi izkušnja, v nasprotju za zbiranje tukaj je približno 23-krat osebno, sluha nekdo všeč me preprosto govorijo o računalništvu, v nasprotju s sodelovanjem več aktivno. Tako boste videli v učnem načrtu predmeta je skica semestra tukaj, skupaj s ko predavanja bo posneti, na katerega ste dobrodošli, vendar ni pričakovati, in ko bo se sprosti na spletni strani seveda je. In kaj bomo storili tukaj na Sredo se začne prihodnji teden, je veliko bolj intimno, z le tisti ljudje, ki želijo sodelovati, je tako imenovani sprehod skozi, kjer sem in vodje tečaja je bo dejansko narediti stvari malo bolj intimno tukaj v orkestru del, še vedno nekaj tehnologije in sprehod skozi tekočega tedna problem set, in vam ponujajo particularly-- če med tiste manj comfortable-- toliko bolj smernice, ki bi jih želeli ali potrebovali za izziv na teden. Podobno velja za tiste, ki ne morejo udeležijo tisti, osebno, ni nič takega. Tam se bo podobno vodi eden od višjih uslužbencev tečaja je, Zamalya, enako priložnost vgrajeni V problemu se nastavi. Problem določa letos bo izšla ob petkih in nič več ne sedem dni kasneje ampak 10 dni later-- namerno prekriva z vsakim problemom nastavljen, da bi bolje prilagodi, upamo, plime in oseke V seznamih študentov, še posebej, če izpitih ali atletiko ali akademiki ali extracurriculars ponavadi pridejo in gredo še posebej sredi semester. Da bi vam malo več diskrecijsko pravico glede tega, ali ti spredaj naložiti teden z CS50 ali nazaj obremenitvi je na namesto naslednji vikend. Tako da si do učnega načrta predmeta je tukaj za njihovo urnik. In boste opazili tudi med letos spremembe, za tiste bolj seznanjeni z programiranje v preteklosti, bomo začeli semester kot bomo danes v Scratch, osredotočajo predvsem na jeziku imenovana C, nato pa prehod ne v PHP, ampak jezik, ki se imenuje Python proti koncu semestra V okviru spletnega programiranja, skupaj z SQL in JavaScript, HTML, CSS in še več. In v odgovor na pogosta vprašanja, to je res tako da se CS ni tako grozno, kot sem nekoč je zdelo, vendar je toliko dela kot sem slišal, je to lahko. Toda to je recimo, da tukaj je nekaj Statistika iz jeseni 2015 študentskega telesa, pri čemer vodoravne modre črte predstavlja povprečno število ur poročali. In boste videli povprečno šest do 10 12-- morda 16 ali tako in tako dalje, vendar visoka varianca biti jasno. In tako spoznali, da ni le študenti bolj udobno in manj udobno v teku, vendar pa ustrezna podpora struktura, da bi dobili te študente po uspešno semestra. Dejansko je v odgovor na FAQ, naj ste vzeli CS50 kot prvo leto? Absolutno. In v resnici, ne obžalujem da ni našel svojo pot ali našel novo polje da je prvo leto kot dobro. In morate vzeti CS50 z drugi predmeti, zagotovo so well-- in splošni nasvet, morda Študenti, ki CS50 je verjetno ne vrste razreda ali intro razred da bi morali vzeti s tremi drugo ali štirje-p nastavite razredi. Ampak, če ste ob dveh drugih p-set razredi, nekaj drugega, in CS50, popolnoma obvladljiva. Sem imel veliko študentov v preteklosti storili precej uspešno. In da boste dobili v smeri, ki dokončati linijo uspešno, pa seveda še sections-- različne poti za študente manj udobno, bolj udobno, in nekje vmes, pri čemer se v tečaj je Prvi problem set, vas bo prosil, da se opisati. In če ste med tistimi, ki manj udoben, to je vrsta stvari da si ne vem. In res, da je bil narašča demografskih v CS50 za kar nekaj let. Od lanske jeseni za primer, 58% razreda sami opisani kot med tistimi manj udoben, z 9%, med tistimi več udobno in nato Drugi učenci tam v red, ki se opredeljujejo kot je nekje vmes. In boste videli tukaj teme na splošno in razpored odsekov, od katerih so vsi so na voljo osebno, v realnem času, pri čemer je tečaj je neverjetno osebje učnih štipendistov in seveda pomočniki, nekateri od njih boste spoznali čez nekaj trenutkov. Oddelki sami, pa boste videli, bo bo ob ponedeljkih in torkih in sredah, tako, da vam omogočajo, da se potopite In po ukvarjajo, če ste tako izbrati, v tečaj je predavanje že ta teden. In nato delovni čas, ki je Vsekakor, z vsakim letom, so bili ne manj izziv za tečaj. In v tem letu, smo načrtovanje ni samo, da imajo pisarniški hours-- eno na eni priložnosti za pomoč za študenti sredah četrtkih in nedeljah, zadnja od teh da je v popoldanskih urah že pri načrtovanju zmanjšati nekatere od stresa, ki vedno nastane s pozno ponoči p-settting z rokom looming-- vendar uradnih ur bo na voljo tudi ob ponedeljkih in torkih in Sredah in petkih in sobotah, zahvaljujoč našim prijateljem na HSA. CS50 ima zdaj svoj prostor za študente in osebje CS50, na vrhu 67 Mount Auburn ulici, tam v Harvard Square. Vizija, ki je, da CS50 je TFS in CA ves teden, precej v večini dni, bo tam za podporo. Torej, če imaš nekaj Vprašanje o p-set ali ste občutek malo blokiran ali malo zmeden, in vraga, imaš uro ali pol ure med razredi, zlasti v square-- lahko pop in so na to vprašanje odgovoril o imajo to zmedo clarified-- zelo v duhu, ste seznanjeni, od matematike ministrstva lastno math vprašanja center, vendar precej štiriindvajset ur na dan na [? GCal?], Da bomo objavili na spletu. Tutorstvo je na voljo tudi za tiste, študente, prosto iz tečaj je lastno osebje, če bi želeli bolj intimno ena na ena, ali pa samo dva ali trije sošolci, ki delajo z enim od uslužbencev tečaja je. In res, to naj omenimo samo nekateri člani osebja tečaja je, nekaj od tega si bom izpolniti vsak trenutek. Dejstvo je, CS50 lastne glava poučevanje kolegi, in vodja tečaj pomočnik in učitelj, lahko prišel gor, omogočajo jih pozdravi. [Aplavz] SPEAKER 1: [neslišno]. [Aplavz] SPEAKER 2: [neslišno]. [Aplavz] SPEAKER 3: [neslišno]. [Aplavz] DAVID Malan: In nam omogočajo, da prinašajo na krovu dva od CS50 najbolj odgovorne osebe, Rob in Zamayla kot dobro. [Aplavz] Dejansko sta Rob in Zamayla so bili z nami tako dolgo, da sem bil sposoben iti v arhivu CS50 je in zdi zelo SD posnetek od njih sodelujejo na odru sami pred nekaj leti. ROB: [neslišno]. [Aplavz] ZAMAYLA: [neslišno] [Aplavz] DAVID Malan: Hvala. Torej, poleg teh člani skupine tukaj, CS50 je ekipa skoraj 100 uslužbenci, vse od katerih bo na voljo za dele in uradne ure in še veliko več. In kot pravi, preveč Rob, to je najpomembnejša prenova od CS50 v 10 letih Bil sem v [neslišno]. [Neslišno] osredotočena predvsem pri zagotavljanju podporno konstrukcijo, obrezovanje stran veliko večina, ki je bila nabralo v 10 letih za iterativni razvoj o sklopih problematike predmeta je. Torej v tem letu, ne samo v razredu, ampak tudi v obliki problema tečaja je sklopov, bi morali najti stvari bolj racionalizirati, robov, veliko bolj obvladljiv kot V preteklih letih, kot smo shed nekaj prtljage, ki je po naravi razvijajoče leta razvil Po letu in ponavljanjem. Torej nove in izboljšane se začenja danes. Boste spoznali nekaj več od Osebje Seveda je v [neslišno] ob 2:30, kjer služimo, kot tradicijo, torto. Tam je malo bolj torto kot to, ampak bom izpolnjujejo Erin in Tobias in drugi še vedno. In naj ti dajo ogled pred slišimo od nekaterih drugih članov osebja v razredu, kaj čaka tudi. Pravzaprav smo se vedno začne CS50-jev semester tega prihaja v soboto, s tem, kar se imenuje CS50 Puzzle dan. To nima nič opraviti z računalništva per se, vendar z okoli problemu reševanju bolj na splošno. In če se tako odločijo, da sodelujejo, na nekaterih razpisih, ste morda opazili vrata pade ali na odru tod to je priložnost v skupinah dveh ali treh ali štirih, da sodelujejo pri uganke in pice in nagrade in more-- to soboto, ostanite z nami za več. Boste našli tudi, da je vsak Petek, ob Fire in Ice, ne CS50 prinašajo cel kup študentov na kosilo, da bi velika Razred počutijo bolj intimno, in na splošno združiti alumni in prijatelji iz industrije govoriti o tem, kaj oni bila do leta diplomiral. Prav letos bomo Inaugurirati prva CS50 50 kodiranje contest-- je sredi semestra možnost, da bi vse na opt v osnovi, da imajo Izziv pameti pred sošolci, spet v skupinah po dva ali tri ali štiri, ki uporabljajo samo, da se načrtovanje zdrava pamet, da si potem imajo po vaš pas že po šest ali sedem tednov razreda, in sodelujejo V tej vrsti tekmovanja online-- če želite Brus svoje sposobnosti toliko v tem izzivu. Na koncu semestra je ti CS50 Hackathon-- priložnost, da se začne ob 7:00 PM konča na 7:00, in na poti 12 večerne ure, v katerih se potopite v končni project-- teku je priložnost za oblikovanje in izvajati skoraj karkoli zanima za vas s svojim poučevanjem usmerjanje ŠTIPENDIJE. Okoli 9:00 kajne običajno služijo pice, 1:00 AM, Philippe je, in nekaj nas ki so še vedno budni ob 5:00 zjutraj, so shuttle bussed navzdol Pot do IHOP za zajtrk. In potem nekaj dni kasneje je tako imenovani CS50 fare-- konec razstave semester v Praznovanje kako daleč toliko od CS50 študenti prihajajo iz ničla teden vse do tedna in ob upoštevanju, da 73% tistih, ki so sošolci in tvoje letos so nikoli razred CS prej. Dejansko bi poudariti je toliko tukaj je nekaj več obrazov iz osebja CS50 je. SPEAKER 4: [neslišno]. SPEAKER 5: [neslišno]. SPEAKER 6: [neslišno]. SPEAKER 7: [neslišno]. SPEAKER 8: [neslišno] SPEAKER 9: [neslišno]. SPEAKER 4: [neslišno]. ZVOČNIK 10: [neslišno]. ZVOČNIK 11: [neslišno]. ZVOČNIK 12: [neslišno]. ZVOČNIK 13: [neslišno] ZVOČNIK 14: [neslišno]. ZVOČNIK 13: [neslišno]. ZVOČNIK 15: [neslišno] ZVOČNIK 16: [neslišno]. ZVOČNIK 11: [neslišno] SPEAKER 5: [neslišno]. DAVID Malan: Nekatere ekipe same nakupovanje razrede. Ampak, če ti člani osebja CS50 tukaj, mogel priti do le za trenutek. CS50 je TFS in CA in [? osebje?] Člani here-- to so le nekatere na faces-- enega od katere si videl, in nekaj other-- in nekaj drugih Še vedno. Zakaj ne gremo naprej in omogočajo vidva pet minut odmora. Če morate raca ven trgovina razredi, da je v redu. In v petih minutah, bomo nadaljevali, ob poglej Scratch-- kot prvo našega programskega jezika, izpolnjujejo osebje seveda je tukaj nekaj več, ter se osredotočiti na koncu na problem nastaviti nič. Torej bomo spet čez pet minut. [Aplavz] V redu. Zato smo nazaj. In v naši preostali Čas danes je cilj je, da zagotovimo enake pogoje v smislu neke terminologije, V smislu nekaterih zamisli. Ker je res, kot je na nekaj kart prejšnjih, tam se bo razpon raven izkušenj v razredu, nekateri od katerih imajo učenci pred njim nekaj programiranja, nekateri izmed njih še ni. In tako s tem prvim problemom nastavi in ​​s tem prvi jezik bomo imeli priložnost za začetek vzeti za samoumevno, ko danes nekaj skupnega besedišča in ideja. In bomo to storili s pomočjo Prvi languages-- Tečaj je Poleg C in Python in JavaScript ter SQL in HTML in CSS, bomo osredotočili na začetku in samo za problem nastaviti nič o tem grafični jezik, ki se imenuje Scratch, Media Lab MIT razvil po cesti, da bi pomagali študenti in otroci še posebno izrazijo algorithmically-- na način, bolj skladno s kakšnimi smo lahko imenujemo računalniško razmišljanje. In to je koristno, jezik, saj zelo hitro naslednji teden v enem tednu bomo prehod na bolj tradicionalna in Skrivnosten jezik imenuje C, ki je zgolj tekstualni. Uporabljate samo tipkovnico v Da bi napisali navodila kot ti na zaslonu. Toda, tudi če še niste videli programski jezik prej, v samo pogledal na to, vsi se Grobni, si verjetno lahko uganiti, da Verjetno natisne Hello World. Ampak tam je veliko skladenjsko režijske tam. Tam je čudno hash Simbol ali hash tag do vrha. Tam je kotni nosilci, nekatere oklepaji, zaviti oklepaji, semi-colon-- tam je samo toliko vizualno sintakso, ki pride na pot. Začnemo seveda z Praske tako dobili mimo vseh tistih intelektualno nezanimivi motenj, in namesto tega osredotočiti na idejah. V bistvu bi to lahko bilo prej. Ta za to se tednu so kasneje. To je v tem grafični jezik Scratch, je, kako bi se izvajala istega program-- program, ko teče, samo pozdravi svet. In kaj je lepo o Scratch je da je to grafično programiranje okolje, ki uporablja kosov sestavljanke ali bloki, da samo sinhronizira skupaj če to naredi logično smiselno, da to storijo. In z Scratch lahko razvije animacije in interaktivne igre in umetnosti, in vse več stvari, ki Lahko si predstavljate, v vaših mislih, in jih izvajati samo s povleci in spusti kosov sestavljanke. In res, bomo imeli možnost izraziti nekatere iste ideje da sem omenil trenutek Pred v okviru Mike Smith in iskanje stvari telefonsko book-- kot funkcije, le ukrepi, stvari, kot so zanke, ki storijo vedno znova stvari, spremenljivke, ki je kaj bomo uvesti, vendar je seznanjen morda iz algebra-- samo nekakšna ogrado za shranjevanje neko vrednost, ki jo lahko Potrebujemo later-- logičnih izrazov, kjer tisti, da ne, ali res lažne vprašanja od prej. Pogoji so te vilice v road-- te podružnice tako rekoč. In potem obstaja nekaj Ljubitelj funkcije, bomo videli še danes, imenovane nizi in niti in Dogodki, ki jih bomo nato ponovno čez čas v različnih jezikih. Toda Scratch nam omogoča, raziskati vse te. Torej, tukaj v nič, ta vijolična blok je tisto, funkcija je običajno bo izgledal. Ta vijolično puzzle kos, ki ima nekaj beseda, kot recimo, ki je ukrep, in potem bi bilo imeti argument ali parameter-- na nek način od vrste prilagajanje kaj, da blok ne tako da to ni predhodno določil MIT, kaj pravi ta vijolična blok. V bistvu, boste videli v trenutek, da sem lahko tip besede, kot so Hello World, ali zdravo David, ali zdravo Zamayla, ali karkoli hočem, v argumentu s tem puzzle piece-- belo škatlo tam. Medtem, če želim zanko, bomo ugotovimo, da je kosov sestavljanke, da poglej malo oranžno, kot je ta. In njihova oblika nekako kaže, da nekaj, kar vedno znova zgodi V ciklu. Torej, če sem zaviti pozdravi svetovno blok z vedno blokirajo v Scratch, to je le, da bo naprej pozdravljanja svet za vedno, dobesedno. Medtem pa je še tip zanke v Scratch da bomo see-- ponovitev block-- kjer, če vas vnaprej vedeti, koliko krat želite, da se zanka za izvedbo končna večkrat v vas fact-- lahko določi, da z vnosom številke ali celo čepi v spremenljivko, kot x in y, kot bomo videli. V bistvu, kot spremenljivke i je v tem primeru, ki je je skupno ime za celo spremenljivka, ki Samo shrani number-- celo lahko, Za uporabo te oranžni blok tukaj nastavite spremenljivko kot sem nič. Tukaj je primer v zeleni Logični izraz v Scratch. Čeprav to izgleda kot matematiki formula, matematike neenakosti, kot je to res Logični izrazi. To je bodisi resnična ali neresnična. I je manj kot 50. To je bodisi da ali ne odgovora ali resnična ali neresnična odgovor. In bomo na splošno imenujemo ti Logični izrazi. In ni nujno, da je 50. Je lahko x manjša od y, večja od y, enako y-- poljubno število drugih vprašanja bi lahko vprašal. Zdaj, na prvi pogled to morda videti nenadoma precej krepko tukaj, in je. Toda koncept pametno, da je precej pozna od prej. Če je x manjši kot y, kot pravijo toliko. Drugega, če je x večji kot y, nato toliko reči. Rekli, da je x enak y. Tako imamo primer je tretje scenario-- Le tretji possibility-- x bodisi višja od manjša ali enaka. Torej imamo tri način vilice v cestnem prometu. In opazil, kaj je kul here-- Scratch, se zdi, ima le eno sestavljanko kosov, v tem primeru v če drugega bloka. In še, da se zdi, da ti pomeni lahko imajo le dvosmerni vilice v cestnem prometu. Greste lahko levo ali desno, vendar kaj pa tisti tretji scenarij? Kaj pa, če je x enak y? Nič takega. Vzemite en kos sestavljanke, dal še ena znotraj njega ustvariti pomensko enakovreden o če je, drugače, če else-- in zdaj vas imajo svoje trismerni vilice v cestnem prometu. In kot smo videli je Scratch kosov sestavljanke se lahko raztegne in raste, tako kot Strpati več stvari v njih. Nimate, da se prilega vse, kar je v svoji privzeti velikosti. To je nekaj, kar bom kmalu videli, se imenuje polje. To je kot list-- nek način shranjevanje več informacijam v spremenljivko, ne samo številka. To bomo videli predstavnika nekaj, kar se imenuje multi-threading. V bistvu, vse vaše Mac in računalniki v teh dneh podporo multi-threading, kar pomeni, da lahko dobesedno delati več stvari hkrati. Lahko imate Microsoft Word up v novo znanje, ki delajo na nekem eseju. Morda imate brskalnik pri odpiranju ozadju G-pošto ali Facebook ali podobno. Računalnik lahko naredite več stvari Danes saj je multi-navojem, in programi, ki jih bo v pri Zlasti so tudi multi-navojem. Tam je stvari imenovane prireditve, kot tudi v svetu Scratch, in potem je preveč, da bi naše meri kosov sestavljanke, če stvari pa dejansko ne obstaja vnaprej. Torej, kaj je motivirati to takole. Pred nekaj leti, ko sem prvi odkril praske, ko sem bil pravzaprav grad študent na MIT, smo sami so nalogo, da bo nalogo. In sem implemented-- ki je za nazaj, je bila zelo slaba odločitev, saj je Najbolj Razjarujući pesem na svetu poslušati osem ur medtem ko delate na vašem homework-- ampak nekaj sem poklical Oscar čas, ki je morda znana pesem. CS50s lastnik Jordan Hayashi, eden izmed naši več visokih uslužbencev, ga je nadgraditi za leto 2015 in sedaj 2016, saj je nazaj v dan, Imel sem vse, kar je le, da bo v Oscar je koš za smeti. Zdaj podpiramo recikliranja in kompostiranja. Toda slikati sliko o tem, kaj lahko storimo tukaj in motivirati nekaj nižje primeri nivoja, bi lahko dobili eno drugo Prostovoljec samo pridi gor in igra moj prvi domače naloge kdaj? Pridi gor. Kako ti je ime? HENRY: Henry. DAVID Malan: Henry, pridi gor. Pridi gor. Head eno ali drugo smer, in boste videli v trenutku, Bom, da gredo naprej in hit zeleno zastavo v zgornjem desnem kotiček, kar pomeni, da gredo. znamenje ikona malo stop je reči stop, in to je, ko začnete in zaustavitev programa. Lepo te je bilo srečati. V redu. Torej bomo videli navodila na zaslonu v samo trenutek. In samo z igranjem to igro za nekaj seconds-- mi zaupaš, ne bomo želeli igrati vse tja do end-- boste dobili občutek, kaj program počne. In več kot samo osredotočiti na Henry dobra ali slaba v tej igri, osredotočenost in kako je bil izveden po meni prvotno in Jordanija. Z drugimi besedami, kjer so spremenljivke? Kjer so zanke? Kadar so funkcije? In bomo videli, če ne bomo videli tistih, ki pod pokrovom. Kliknite in povlecite smeti na ustrezen koš. [GLASBA] V redu. To je zelo dobro. Zakaj ne bi ga ustavili. Hvala. Čestitke Henry. Hvala. [Aplavz] Zamislite si, razhroščevanje ta program. Če obstaja problem dva minuti song-- vendar tako kaj se dogaja v resnici? Kot je zapleteno, kot bi jih lahko začnejo se zdi, da se v daljšem časovnem obdobju, dejansko bolj stvari začele pada, kaj je zanimivo ta vrsta example-- in bomo videli nekaj others-- je, da če vas poglej mimo kompleksnosti ali sofisticiranosti igre tam je zelo preprosta stavba blokov, ki play-- kar vse, če jih strnili na tiste gradniki, so zelo dostopni in izvedljive sami sebi. Na primer, da je že nekaj časa, vendar sem precej prepričan, da tisto, kar sem na začetku naredil, ko ki to igro prvič Bil sem popolnoma všeč zavlačevali. Nisem se osredotoči na vse na logika ali kosov sestavljanke, Sem se osredotočila na grafiko in ugotovitve ulica mesto in koš za smeti in vse to. Toda to so bili pogoj Sestavine na prvi. In ko sem končal odlašanje in ki določa okvir splošen, Odločil sem se, da mi samo, da eno kos smeti pade z neba. In bomo videli praske podpira stvari imenovane sprites-- znakov, ki jih imajo različne kostume na, tako da videti drugačen. In tako sem dal smeti noša na enem od teh Vilenjak. In sem potreboval pade z neba. In tako se je izkazalo, Scratch, kot večina programskih jezikov, podpira naključnih števil ali tehnično psevdokoda naključnih števil, tako, da ga povlečete in spuščanje določenih kosov sestavljanke, Sem lahko, da so smeti prihajajo iz leve na prvi. In potem naslednjič, ko je padel iz desno in nato od sredine. In vse igra ni bila ravno imajo smeti padajo z neba. Nisi mogel opozoriti na to, ali kliknite na njega. Nisi mogel odpreti smetnjaka. Vi ne bi mogel storiti ničesar. Ampak to je korak dojenček proti moji zadnji vid. In po tem, sem dejansko izvajala nekakšna zaznavanja, tako da če nisi kliknite in povlecite na kos smeti v koš, Oscar je Pokrov bi odpiranje in zapiranje. Nič bi se zgodilo v smeti, ampak vsaj bi pokrov odpirati in zapirati. Torej preveri, drugi korak dveh. In to je tisto, kar se dogaja, da Ključni tako problem nastaviti nič in v programiranju bolj splošno, je da te zelo premišljene korake otroka. Ker ne samo, da vam, da se omogoči čutijo pošteno dosegel veliko več quickly-- to je najslabša stvar na svetu da bi poskušali izvesti vse Oscar časa, Nato ur kasneje zadeti zeleno zastavo, in nič ne dela kot je bilo pričakovano ker, če vas narediti še začeli odpravljanje napak ali odpraviti ta program? To je samo velika. In tako resnično sprejemajo to idejo za ponovno ob steps-- korake otroka in again-- izgradnjo nekaj, kar je na koncu, res impresiven in zapleten, vendar na prvi, še zdaleč ni tako veliko, tako. V bistvu, kaj je to. Naj gredo naprej in-- se Scratch obstaja na spletu na Scratch.MIT.edu, in boste povedali, kakor veliko spet problem nastavite nič, specifikacije za ki je že na spletni strani CS50 je. Ampak to je tisto, kar Scratch sama. In tam je res samo tri osnovne površine. Na vrh pustil tam je tako imenovani fazi. To je Scratch. Privzeto noša je mačka. In to je pravokotna svetu ki jih lahko move-- gor, dol, levo, desno in nekatere druge stvari. V sredini tukaj so naši kategorije ali naše palete kosov sestavljanke, in različne barve pomeni različne stvari. In če suniti okrog, boste videli stvari, kot so zanke in pogoji in spremenljivke in druge sestavine. In potem tukaj je območje skripte. To je, če sem lahko povlečete in spustite ti kosov sestavljanke delati stvari. Torej, kaj je naredil eno takšno stvar. Naj gredo naprej in-- in vem, kje je. Torej bom takoj kliknite na kjer Vem, da so pripravljeni, da se, vendar kaže in s klikom in poking okoli so neizogibne. Torej, ko zelena zastava kliku kaj hočem narediti? Bom, da to storijo. Bom vleči to vijolično sestavljanko kos, pozdravi za dve sekundi, in mi povečavo. In bom to spremeniti to, kar želim, da be-- zdravo svet za dve sekundi je v redu. Sedaj bom kliknite zelena zastava, ali če si res želim, Lahko v celoti ga pregledajo in nato pridejo nazaj. To bo samo vztrajati vse v enem oknu. Green flag-- zdravo svet. V redu. Ni vse tako zanimivo. Zato naj gredo naprej in to. Naj poskusim še enega. Ko clicked-- zelena zastava dovolimo kaj takega zvoka. In opazil, da je bilo od polje brezplačno dobite mačka zvok, kot je privzeta Sprite. Torej, zdaj mi gredo naprej in zadeti zeleno zastavo zdaj. [MEOWING] Aw. To je čudovit. Sem programiranja. Torej, kaj sem storila? To je enako programa. To je seveda zelo preprost. To ni res bi vse, da je veliko trud in MIT je opravil večino dela, vendar sem poklical funkcijo. Imam uporabljajo funkcijo. Naredil sem nekaj ukrepov, ki uporabljajo samo da je ena vijolična puzzle kos. No, če želim narediti tri mijavkanje zapored? Naj gredo naprej in ne dva in tri. In opazil, da ko vas lebdijo v bližini je kos sestavljanke, Zdi se malo bela črta nekako magnetno, in bo snap skupaj, ko se spustiš. Poglejmo, kaj se dogaja tukaj. [MEOWING] Tam je napaka. Jaz slišim samo en mijav. Zakaj bi to bilo? Ja? Ja. Mi res ne slišati, ampak to je dobra intuicija. Oni vsi igranje ob istem času. Zakaj? No, računalnik je le, da bo da to, kar je povedal, da storiti. Torej, če ste rekli, igra zvok, predvajanje zvoka, predvajanje zvoka, vendar ga ne povem, da igrajo, dokler končate, igrati, dokler ste končali, da se bo razstrelil skozi program zelo hitro in ne samo tisto, kar je povedal, da storiti. Tako sem dejansko potrebujejo, da se določi To v nekaj načinov. Lahko bi pač ta, da se znebite tega. Naj poskusim to drugo puzzle piece-- predvajanje zvoka mijav, dokler storiti, in povlecite tri ti in kliknite Predvajaj. [MEOWING] To ni res very-- hvala you-- zelo naravno. Torej, zakaj ne jaz-- pusti me za nadzor nad igro. Lepo. Počakajte eno sekundo, in zdaj me nazaj zvoke, in predvajanje zvoka, dokler storiti, in kaj mi čakati eno sekundo. In potem mi gredo in dobili eno več zvoka, in gremo. [MEOWING] Malo bolj naravno, vendar to ni zelo učinkovito. Kot sem bil dolgčas, vsi na kratko, tako da kliknete naprej in nazaj in res podvajanje moje work-- precej kopiranje in lepljenje. Pravzaprav, če sem Control kliknil ali desno kliknili, Lahko bi samo kopirali in prilepili. Kaj bi bilo bolje zgraditi za uporabo? Kaj je ideja od prej? Ja, tako zanka. In v resnici, če bi si ogledal, bomo morda našli točno to. Naj gre za dogodke oziroma nadzor. Torej repeat-- ne vem želijo, da bi bilo 10-krat. To se dogaja, da bi dobili nadležno hitro. Ampak bom ponovil trikrat. Naj grem nazaj na zvok in predvajati zvok, dokler je to storjeno. Naj grem nazaj na nadzor in počakaj sekundo. In obvestilo, boste morda mislim, da ne ustreza, ampak spet, če magnetno jo pustite snap v mestu, bo rasel izpolniti. Kako se igrajo sedaj? [MEOWING] V REDU. Lepo. In to je tisto, kar bi lahko imenovali program, ki je prav tako pravilna. To meowed trikrat dokaj seveda, vendar je bolje oblikovan. Jaz sem z uporabo manj redundance. Nisem kopiraj in prilepi ničesar. Pravkar sem uporabil boljšo idejo. Zdaj, to še ni vse, zanimivo z Scratch ne delaš karkoli. Torej naredimo nekaj drugega. Naredimo nekaj za vedno. In veste kaj? Predlog se zdi zanimivo. Pa si ga premakniti 10 koraki in hit igro sedaj. V REDU. No, bomo lahko nekako upora ga nazaj, in je še vedno prikazovati, ker je to počne vedno. Torej zanka počne kaj pa je rekel, da ne, ampak to še ni vse, da je zanimivo. Naredimo to. Naj dodam krmilni blok, in enega od teh pogojev prvič. Tako se dogaja, da se premaknete 10 steps-- 10 pik, 10 pik na screen-- potem se bo vprašati to vprašanje. Če je nekaj res, naredite nekaj v tem bloku. Tako se izkaže, zaznavanje ima celoto kup Boolean expressions-- vprašanja o ja no, ali res false form-- mi to narediti. Če touching-- in potem je tukaj še ta mali spustnem meniju. Lahko ga parameterize. Če se dotaknete edge-- dovolimo kaj takega. Torej, če se dotaknete edge-- Naj gre nazaj v gibanju. In zakaj ne bi samo obrnil za 180 stopinj? V redu. Torej vedno, premakniti 10 korakov. Če se dotaknete rob, zavrtite za 180 stopinj. In to še ni konec programa ker si je z večno blokirati, tako se dogaja, da gredo spet in znova in znova in znova. Poglejmo, kaj se zgodi. V REDU. Malo buggy, ampak nekako kul. In lahko dodamo, da je to nekaj neumnostmi da niso vsi, ki razumsko Zanimivo. Ampak, če smo zadeli ta mali Mikrofon button-- ouch. Naj čiščenje tole. Naj okrepiti, da je to pa bi rekel na TV. Očistiti, Save in Zdaj gredo do skripte. In zdaj, naj gre za zvok. Naj navedem to ime. Poklical bom to Au. In zdaj igrajo dobro Au. Opazite, da se pojavi v malo spustnem meniju. Pa poglejmo. [AUČ] [Smeh] Vendar pa lahko spremenimo T A na letenje. Mi lahko dvakrat nadležno. [AUČ] Ali pa, če mi bo uspelo, kot 1000 korakov na time-- V REDU. Torej bomo pusti pri miru, da je eden. Torej še enkrat, in sicer blocks-- I začela z nekaj super enostaven, in potem sem dodal funkcijo, dodal funkcijo, dodali funkcijo. In mi ni treba več skrbeti kako prvo od teh funkcij je bil izveden, ko sem še naprej na plast stvari na vrhu. Torej, v resnici, mi naredite nekaj drugega tukaj. Naj gredo naprej in odpreti datoteko, ki Prinesel sem vnaprej, ki se imenuje ovce. Tako da ima nekoliko drugačen znak, ki izgleda takole. In da vidim, če ne morem nekaj narediti s pomočjo števca v tem case-- tako imenovano spremenljivko. Bom, da gredo naprej in pod Events-- kaj mi kliknili zelena zastava. Potem pa me, da podatki, ki vem s samo igranje okrog prej, je, če so spremenljivke. In bom, da gredo naprej in povlecite to. Tako spremenljivka imenuje števec, in Bom za inicializacijo nič. Lahko ga pokličete anything-- x ali y ali z-- vendar pri načrtovanju, kliče kaj je z pomensko uporaben način, kot števec, ki opisuje, kaj je to, da je veliko lažje brati svojo kodo kasneje. Naj gredo naprej in se vedno blokira tukaj. In mi gre na videz stran in narediti Say blok. Toda kaj je kul spremenljivk I ne bi bilo treba samo tip v nekaj kot zdravo svet, ki smo jih že storiti, da lahko namesto tega iti podatkov in povlecite moje spremenljivke, in celo čeprav se oblika ne povsem videti, kot bi moralo fit, se bo hkrati izpolniti. In bom rekel, števec za eno second-- spoiler-- se dogaja, da računajo. Ga bomo rekli za eno sekundo. Potem bom šel in imajo ga čakati eno sekundo, tako da ne šteje prehitro. In potem končno, spremeni števec s one-- z drugimi besedami, prirastek števec po enega dodatno vrednost in to narediti za vedno. Torej ovce preveč, kot je programer, šteje od 0. In če bomo čakali dovolj dolgo, on bo to naredil za vedno. Ampak to ni ravno res, ker v resnici, saj bomo odkrili v enem tednu cela števila in računalniki bolj na splošno, tehnično imajo le finite-- dobro, namesto računalnikov, ko predstavljajo cela števila, le končno število bitov. Te žarnice tam lahko štejejo le tako visoka preden ste iz žarnic. In računalnik preveč, ima le toliko pomnilnika, ima le toliko tranzistorjev, tako da lahko računajo tako visoka samo. Tako se izkaže, da ovce, Mislim, da lahko računam na 2 milijardi ali nekaj precej velik. Da nas ne bo počakajte, da se to zgodi. Ampak na koncu bo nekaj bug zgodilo da imajo lahko nekaj zelo resničnega sveta posledice. Toda po ovac, ki samo uvaja spremenljivko. Gremo naprej in odprla nekaj, kar je vnaprej tukaj se imenuje Pet Cat-- Pet Cat tukaj. In opazil sem, da je nekaj bloki, ko pa zelena zastava kliknili, vedno počne naslednje. Če dotika z miško pointer-- tako da se kazalec na zaslonu, arrow-- predvajanje zvoka mijav in počakajte dve sekundi. In ravno to narediti za vedno. Samo nenehno počakajte da vidim, če je pointer-- če je mačka dotika kazalec. Zato sem udaril igro. Nič ne dogaja. Ampak kot sem premakniti kazalec nad mačka, [MEOWING] In če sem jo odmakne, ne ljubkovanje mačko več. Torej, nekateri pogojno logika ugnezden znotraj zanke. Kaj pa ta primer, namerno imenovano Ne Pet Cat? Kaj se bo to naredil? [MEOWING] Zakaj bi ne poboža mačka? [MEOWING] V REDU. Torej, to je primer if drugega. To je odločitev, točka in zato, ker je sedel v zanki, oni so tako dobili preveriti. Je to res? Je to res? Je to res? Je to res? In na koncu, eden izmed tistih, ki se dogaja, da pride in tako slišite bodisi mijav ali Šumenje lev v tej zadevi. No, pa naredimo malo bolj fancy eno da sem vnaprej too-- niti. Tako da nit je samo eden stvar, ki lahko računalnik storiti. Torej, multi-navojem program je program, da lahko naredite več stvari hkrati. In vsi ti primeri Doslej so imeli samo en scenarij, tako da speak-- en program, kot je ta tukaj. Ampak obvestilo, ta program je dve sprites, dva znaka. Eden od njih je ptica. Eden od njih je mačka. In opazil, ko kliknem na njih navzdol levo, vsaka ima svoje skripte ali programov, povezanih z njimi. In oba tistih programi, obvestila, začetek s ko zeleno clicked-- zastave oglejmo v cat-- ko je zelena zastava kliknili. In tako v resnici, ko sem udaril igra zdaj, Dve stvari se bo zgodilo naenkrat. Mačka in ptič sta dogaja, da delujejo hkrati ustvariti ta učinek. In si lahko predstavljate, kaj se dogaja. Tam je zanka in ptič in mačka sta v zanko. Ptica je samo odbijal kot Sem bil prej, ko sem rekel av. Toda mačka ima očitno prednost. Še en blok zaznavanje ki kaže mačka namerno ptici v tem primeru tukaj. Tako smo lahko draži narazen, ki ga je videti preko teh blokov, kaj se dogaja. Toda ključna sestavina tukaj je ena. Ptica, tako da je ta igra ni popolnoma boring-- ali to animation-- začne na naključno smer. In računalnik je pobiral število med 90 in 180 v bistvu tako, da je nekoliko drugačna animacija vsakič. In potem opazil tukaj, če mačka se dotika ptico, potem igrajo leva štiri sound-- rjovenje. Toda medtem v ptičje palete, imamo to. Vedno, če ne dotika mačka, samo premikajo tri korake. In potem je tukaj še ena puzzle kos. Če ste na robu, bounce. Torej ptica je le nekako oskrbi svoje poslovanje, Samo plujejo okoli in poskakovanje, in to je res mačka, da je pogojno logiko ugotoviti, če se je ujela ptica. V redu. Torej, naredimo eno drugo tukaj, ta se imenuje Hi Hi Hi. In tale tukaj samo ne to je za vedno zanko. Ampak notice-- kako ustaviti To je zelo nadležno programa? Hit preslednico. Ker, če sem to storil, leva roka program-- opazili, da je nenehno listening-- je ključ prostor tisk. Če preslednico pritisku in če je tako, kaj počne? To pa je zelo pogosto tehniko. To določa spremenljivko enaka do neke vrednosti. Vendar pa preklopi te vrednosti. [? Torej videz?] ki temelji na shape-- I imajo spremenljivke, ki sem napisal vnaprej imenuje Utišan, ki samo pravi, da ali ne. Je glas izklopljen ali ne? Pravilno ali napačno? In obvestilo, sem rekel this-- če izključen je nič, potem spremenite v eno, še nastavljen mute, da nič. Torej samo flip vrednosti od nič do ena. Lahko bi done-- spremeniti od dva do tri in tri na dva ali štiri do pet ali štiri na šest. Ampak to ni pomembno kaj številke, ki jih uporabljam, tako dolgo, kot sem obdržati to spremembo nasprotno. In kar koli programer bi samo izbrati nič in one-- lažni in pravi, off in on--, da predstavlja to. In to je še vedno teče. Če bi še enkrat udaril preslednico [SEAL ZVOKI] Program še vedno teče. Zato, ker je ta drugi scenarij ki pravi, vedno naredite naslednje. Če je izključen spremenljivka enaka zero-- tako da če ni izklopljen je logic-- če je false ali ne, potem predvajati zvok, ker si ni izklopljen. Moral bi igrati zvok in nato mislim, hi hi hi, za dve sekundi in potem čakati, in to znova in znova in znova. In to na ta način ne bomo imeli pot ljudje to-- za programe za interakcijo. In ne bi bilo treba se kot datum kot drugi. Dejstvo je, pikal around-- no pun intended-- nekdo porabil ogromno čas na internetu izvajanju PokemonGo v Scratch. Je tudi vas geolocates v Cambridge ali Allston tukaj. Torej, če želite videti tudi tisto, kar ljudje lahko naredimo je this-- zelo fancy meni. Kliknite tukaj. To me je s svojimi puščicami zdaj. Bom šel po tem. Kliknite. In zdaj kliknete PokeBall. Mislim, mislim, da si naj kliknite PokeBall. V redu. Zato sem to storil. Lahko grem tja. In ta oseba izvaja nekaj več Pokeballs več here-- treh Pokeballs. Bomo objavili povezavo do tega na spletu, tako da lahko igrajo. Ampak obvestilo pa je samo nekaj osnovnih gradnikov. To izgleda veliko Ljubitelj, in je. To je impresivno in več kot bi običajno pričakujejo, vsekakor za problem nastaviti nič. Nimam pojma, kako dolgo ta oseba preživela na spletu. Ampak to je vse samo zanka. Tam je dobra igra. Obstaja nekakšna zanke posluša, ali sem hitting puščico navzgor ali navzdol puščico ali levo in desno, in potem, če je temu tako, je to premikanje je nekaj število slikovnih pik. In potem, če sem kliknite na en Sprite, tam je neke vrste, če je pogoj tam. Ja, to je že preveč intenzivno. Bomo ustavili. To je vse tiste osnovne gradnike. Obstaja nobena druga druge sestavine od tistih, ki smo si ogledali že. In vendar sem, naj stori eno končno niz primerov da barve sliko preveč o tem, kaj lahko storite tukaj. Tukaj je zelo preprost program, ki Samo ne this-- kašelj, kašelj, kašelj. In temelji le na tisto, kar smo pogledal tako daleč, kjer je očitna priložnost za izboljšanje. Ta program je pravilna. To kašelj trikrat, ki je tisto, kar sem nameraval. Ampak to je slabo izvajala. To je slabo zasnovan. Zakaj? Ja. To ni zanka. In to ni toliko da to ni zanke, to je, da obstaja veliko redundance. Tam se kopira in prilepili kodo, tako rekoč. In raztopino verjetno je res zanka. Torej, mi gremo naprej in izboljšanje na tem. In bom vleči te tukaj. Naj gredo naprej in se ponovitev blok, spremenite na tri. Bom mečejo nekatere od teh blokov. In boste opazili, da je precej intuitiven. Povlečete in spustite in stvari se pojavijo in izginejo na koncu. In lahko sem samo vleči to tukaj, in zdaj sem še vedno čistejši različico. Ampak veš kaj? Tam je to priložnost zdaj za abstraction-- začeti definirati novo besedišče da MIT ni predvidel. Tam je počakati in ponovite in za vedno, in če, ampak kaj, če želim, da uvedejo Beseda kašelj kot blok? Kaj pa, če hočem kos sestavljanke katerih namen v življenju je, da kašelj? No, pa si poglejmo te različice tu, kar sem naredila, kot sledi. Čudežno, sem ustvaril to puzzle kos tukaj, ki Scratch omogoča, da narediš. In res C in Python in JavaScript so dogaja, da vam omogočajo, da to storite tudi. Lahko ustvarite svoj meri kosov, ki jih imenujemo kar hočeš. V tem primeru, kašelj počuti kot razumno definicijo. In potem s temi kosi navzdol Tu lahko določite, kaj to pomeni. Sem vlekel in padla iz Ta paleta here-- več blocks-- to velika vijolična blok, kjer sem tipkal na kašelj kot ime svojega novega puzzle kos. In potem sem rekel koli uporabnik poziva novo kašelj kos sestavljanke, narediti besedo in čakati. In tako tukaj v moji ponovitve bloku, Jaz lahko samo kašelj trikrat. In trdim, zlasti če sedaj skriti to podrobnost. Koga briga, kako je kašelj izvaja? Mene zanima kot programer, da sem lahko kašelj. Ni mi mar, kaj pravijo, se izvaja. Samo me skrbi, da je mačka lahko rečem nekaj. Ne morem abstract stran, ki podrobno in osredotočila le na tisto, kar je na zaslonu tukaj. Ampak jaz lahko še to en korak. Opazimo, da je tu, imam izvaja zanka trikrat. Kaj pa, če namesto tega sem zgrabi to verzijo? In kaj če bi namesto V tej različici tukaj Pravkar sem spremenila svoj kos sestavljanke, da bi argument in vhod zase? In ta vhod lahko število kot tri. Torej, zdaj, če pišem program in želim mačka kašelj, Lahko dejansko povedati sestavljanko kos kolikokrat kašelj, ker je na dnu tukaj, Ljubitelj različica teh meri koščke upamo, me določajo, da kašelj dejansko pride input-- je argument, kot je ta. In veste kaj? Mogoče Zavedam se, počakaj malo. Kašelj je nam je isti to je bistveno isto idejo, kot je kihanje. To je samo drugačen Beseda na zaslonu. Ne morem abstract stran dodatno in izvajati to končno različico kašelj, ki je na prvi pogled je veliko bolj zapletena videti. Toda opazil, kaj sem naredil. Imam zdaj generalized-- genericized really-- ta kos sestavljanke da se imenuje reči besedo n-krat. In zdaj imam dva nova kosov sestavljanke tukaj opredeliti kašelj n-krat. In kaj je funkcija kašelj storiti? Kaj mi meri puzzle kos storiti? Samo pokliče recimo blok, poteka v besedi želim reči, poteka v številnih kolikokrat sem hotel povedati. Ker sedaj ne morem izvajati kihanje, ki jih preprosto rekel achoo, V tem primeru, nekateri večkrat. In tako sem plastenje in plastenjem. In spet je tukaj ključni ni kako sem jo izvajal, vendar je dejstvo, da če sem dobesedno premakniti ti off zaslon, poglej, kako enostavna, če ne Precej moj program, zdaj izgleda. Ker to počne, kaj ga pravi, da sem načrpane stran, kar je znotraj te črne škatle. se zgodi, da je vijolična škatla tukaj, vendar sem oviran stran, kaj je notri ker mi ni vseeno, kako to deluje. Pravkar sem vseeno zdaj, da deluje. In res, v problemu nastavljena nič, to je točno vrsta plastenjem idej boste imajo možnost, da razišče. To je točno to priložnost, da se uporabljajo v reševanje problemov, s tem, kar je verjetno poznajo okolje. In, ali ste jih ni programiran pred ali programirano pred, boste ugotovili, da obstaja nekaj malega v tem okolju za vsakogar. In s problemom nastavljen ena čez en teden, bomo lahko prešli na osredotočanjem na višji ravni jezika, imenovano C- oziroma nižji jezik nivo se imenuje C-, ki je še bolj močna, čeprav je malo bolj skrivnosten na prvi pogled. In boste spoznali na današnjem TL: DR, da ima ta problem določiti krajše Okno časa kot s prihodnjimi, preprosto ker bi jo našli precej dostopna. In ne skrbite, če dodate razred pozno. Bomo obravnavali, da kmalu. In preden se preloži za torto, kaj je končali z le dve minuti videz kaj vas čaka tukaj v CS50. [GLASBA] V redu. To je to za CS50. Vam bomo videli kmalu. Torta je zdaj služil. [GLASBA] ZVOČNIK 17: Ali ste slišali iz sobotnega, vodja? ZVOČNIK 18: Morda obstaja več pod pokrovom.