Tagapagsalita: Ako [hindi marinig]. At ako ay isang senior sa Leverett House. Mag-aral ako computer science, at ako ay isang tf para sa CS50. Bilang isang primer anyo, hindi ko kahit na mayroon isang laptop o isang smartphone. Ako ay walang karanasan sa programming. CS50 ay ang pinaka-hindi malilimot na kurso Kinuha ko sa Harvard dahil ito ay isang pakikibaka, ngunit ito ay isang tunay na masaya pakikibaka sa parehong oras. At ako ginawa ng maraming kahanga-hangang, permanenteng mga kaibigan, at ako natutunan ng maraming talaga naaangkop na mga kasanayan. Ako lang kaya natutuwa na hindi ko ipaalam sa aking kakulangan ng background maging isang dahilan para sa akin hindi tumagal ng CS50. Ako [hindi marinig]. Ako ay isang senior sa Leverett House, klase ng 2014. At ako kinuha CS50. David MALAN: Kaya ito ay CS50. Ito ang katapusan ng linggo zero. At isipin ang kung saan sinimulan namin ang huling oras, ay may mga lamp, na kung saan ay kaya sikat na kami at nagpunta bumili ng ilang higit pang mga araw na ito. Kaya tingin ko ito ang magiging ang aming mga bagay na ito taon - desk lamp kung dumating ka ng hanggang sa entablado, hindi bababa sa hanggang sa aming maubusan. Subalit ginamit namin ang mga isipin ang, upang ipakilala ang mga pangunahing kaalaman ng representasyon ng data. Kailangan naming paraan upang simulan ang kumakatawan impormasyon sa loob ng isang computer. At ang pinakasimpleng paraan upang gawin iyon noon ay may isang sahog, koryente. At ang pinakasimpleng bagay na maaari mong gawin sa koryente ay i-on ito at off ito. Hayaan ang mga electron flow o hindi. At gamit ang mga dalawang pangunahing estado, off at sa, o hindi totoo at tunay, o zero at isa, sinimulan namin upang makita na maaari kaming bumuo ng up, sa kasong ito, may ilaw bombilya, higit pa kaysa sa mga numero ng lamang zero at isa. Kami mabibilang bilang mataas bilang pitong, halimbawa, huling beses. Ngunit lahat kami ay may sa gawin ay panatilihin ang ibinabato higit pa at mas magaan sa mga bombilya na problema at, talaga, maaari naming kumatawan anumang bilang na namin maaaring marahil gusto. Well, namin ang transition mabilis pagkatapos ay sa Miyerkules na ito byte ng mga boluntaryo. 8 bits ay kung ano ang aming karaniwang tumawag sa isang byte, kaya dito nagkaroon kami walong boluntaryo sa Miyerkules na kapag pinagsama-sama ay na kumakatawan sa walong bits. At kapag ang kanilang mga kamay nagpunta up, sila ay isang isa. At kapag ang kanilang mga kamay ay pababa, mayroong isang zero. At nagkaroon kami mga tao lumapit sa entablado kung bakit? Ano ang magagawa naming gawin sa ang pagkakasunud-sunod ng mga bit? Upang lumikha ng isang alpabeto. Nagawa naming bumuo sa tuktok ng na nakaraang aralin natutunan at talaga simulan upang gawing mas kawili-wiling impormasyon na hindi bababa sa higit pa pamilyar sa amin ang mga tao. At ito ay magiging isang paulit-ulit na tema sa buong 50, ngunit din sa computer na agham mas pangkalahatang paraan, ito ideya ng layering, kung saan, sa dulo ng araw, kung ikaw talaga nagsimula ang Mga pangunahing kaalaman sa isang computer, oo, ito ay mga zero at mga bago. At sa ilalim na ito lamang koryente. Ngunit kami masyadong mabilis magsimula gumawa ng mga mababang antas ng mga detalye para sa ipinagkaloob at magsimula sa layer sa itaas ng mga nakaraang nagtrabaho nagagawa na namin, sa huli, sa pamamagitan ng ang katapusan ng semestre at, talaga, mas pangkalahatang bilang computer na siyentipiko at programmer, ay maaaring gumawa ng ilang talaga makapangyarihang mga bagay sa pamamagitan ng pagdaragdag sa trabaho na namin ang aming sarili nagawa na at din nakatayo sa mga balikat ng iba. Ngayon namin ang mabilis na transition sa Miyerkules mula lamang nangangailangang Kinakatawan impormasyon sa kinakapos upang gawin ang isang bagay na may ito. Kaya kung ano ang tinutukoy namin ang isang bilang algorithm? Isang serye ng mga tagubilin. Kaya ito ay isang serye ng mga tagubilin, isang bilang ng mga hakbang na ikaw, isang tao, o computer ng isang, mas karaniwan, gagawin isakatuparan ang isa pagkatapos ng iba pang sa pagkakasunud-sunod upang makamit ang ilang mga layunin. At nagkaroon kami ng ilang mga layunin sa huling panahon, isa na kung saan ay upang mabilang mga tao sa kuwarto. At isa pang tulad halimbawa ay upang mahanap ang Mike Smith sa isang libro ng telepono. Kaya maaari mong isipin ang na ako torus ng telepono aklat sa kalahati papunta ito dulo up paghahanap ng mga Mike Smith. Ang layunin ng visual na noon ay sa ipakita, muli, na kami ay Literal na pansiwang ang problemang ito sa kalahati, sa kalahati, sa kalahati, at napaka mabilis pagpunta mula tulad ng 1,000 mga pahina sa isa lamang sa iisang pahina. Yaong ng iyo kung sino napalampas na ito sa Miyerkules, naisip ko na gusto naming muling i-play ilang footage ng kung ano ang iyong nakakaligtaan. Tingnan natin ang isang hitsura. [Video playback] -Nagkaroon kami pumunta. 1500 mga pahina, Nice malinis na linya, lehitimong mga luha. [END-playback ng video] David MALAN: Kaya na noon ay Miyerkules. Kami transition, bagaman, sa Miyerkules ngayon kinakapos upang kumatawan sa mga algorithm sa ilang mga medyo karaniwang paraan, hindi lamang naglalarawan ito bilang pandiwa, ngunit sinusubukan na ipahayag ang mga ito sa pagsulat o sa isang computer screen sa gayon na maaari naming simulan upang mapabuti sa oras, at baguhin kanila, at, sa huli, talagang pag-aralan kung paano lamang tama o kung gaano kabilis sila ay. Kaya ipinakilala namin ito paniwala ng pseudocode, na kung saan, sa mga tuntunin lego ni, ay kung ano? OK, mga salita. Sabihin pumunta ng kaunti mas malalim kaysa sa na. Ingles, sigurado, ngunit ang mga patungo sa kung ano ang dulo? Mga salita na kung saan upang lumikha o upang kumatawan sa mga algorithm. Kaya walang isang wika Kilala bilang pseudocode sa mundo. Ito ay lamang na ikaw, sa Ingles, o ano ang iyong mga pasalitang wika ay, gamitin ang isang uri ng madalian notation sa ihatid isang ideya napaka succinctly. Ngunit kailangan naming makita na, tiyak na may isang Ingles pseudocode, at ito ay nagiging out karamihan sa mga wika programming kanilang mga sarili ay hinalaw ng Ingles mismo, kakailanganin naming makita na mayroong ilang mga pamantayan paraan ng kumakatawan sa pseudocode at din ang mga programa code. Kaya bilang ka magsimula upang makita ang kahit na ang pinakasimpleng halimbawa ngayon, nauunawaan ang mga parehong pattern ay bumalik sa alaala sa susunod na linggo. Kaya pseudocode noon ay ilang uri ng wika magkawangki isang programming language. At ang unang halimbawa nakita natin biswal nakasulat down na noon ay ang isang ito. Ito ay lamang ng isang tatlong hakbang na programa, ang layunin ng kung saan ay upang bilangin ang bilang ng mga tao sa isang dorm room para sa na video sa Miyerkules. Ngunit mayroong mga ilang mga kawili-wiling aspeto ito ng pinakasimpleng programa. At ito ay magiging paulit-ulit na tema. Kaya para sa mga na pamilyar sa ito, isa, ipinakilala namin ang isang variable. At marahil lahat ng tao sa kuwartong ito ay pamilyar sa isang variable sa konteksto ng algebra. Ngunit dito sa programming, variable ay, isa, maaaring maging tinatawag anumang nais namin. Kami na ginagamit mo n bilang isang counter. Ngunit maaari naming gamitin ang salitang counter, o, tulad ng makikita mo, karamihan sa anumang mga parirala na baka gusto mo kaya hangga't ito ay mapaglarawang, ngunit ito ay talagang lamang ng isang imbakan lalagyan. Ito ay isang tipak ng memorya, ang ilang bilang ng mga bits, at ito ay nag-iiba sa pamamagitan ng computer, kung paano maraming mga bits may mga na gumawa ng sulat na variable. Ngunit maaari naming ilagay ang halaga sa mga ito. Kaya malayo, lamang namin isinali ang mga numero. Ngunit maaari naming ilagay ang aktwal na mga salita. Maaari naming ilagay ang mga talata. Maaari naming ilagay ang mga imahe - kahit ano, talaga, maaari naming kumatawan sa mga zero at mga bago, maaari naming ilagay sa ang mas mataas na antas ng kuru-kuro ng isang variable. Kaya medyo tuwid forward doon. At iyon ang linya ng isa. Ngunit kami masyadong mabilis inilipat mula sa linya ng isa upang aktwal na gawin may isang bagay na variable. At sa tatlong linya, aming na-update N. namin incremented N. At maaari kaming isulat ito anumang bilang ng mga paraan. Ngunit marahil ang pinaka-halata ay lamang na sabihin, itakda N kasing-halaga sa kahit anong N ay plus 1. Kaya na noon ay aming paglaki. Samantala, nagkaroon ng isang loop. At ang isang ito, masyadong, marahil ay medyo madaling maunawaan. Ang isang loop ay lamang ng isang bagay sa isang program na mangyayari muli at muli, ang ilang mga uri ng pag-ikot. At ang key na parirala dito, para sa bawat isa, ay talaga laganap sa buong pinaka- programming wika, kabilang ang mga bago namin makita sa kurso. Anumang oras mo ang salitang para sa, ito Karaniwang nagbibigay ng ideya na ang isang loop, isang bagay cyclical, ay tungkol sa mangyari. Ngunit ito ay nagkakahalaga ng noting isa iba pang mga sintaktik detalye. Ang katotohanan na ang ikatlong linya doon ay talagang naka-indent sa pamamagitan ng pagkakaroon ng pindutin ang space bar ilang beses ay sinadya. Dahil pantao convention ay tulad na, kapag gumawa ka ng isang bagay muli at muli, sa isang loop, pati na nagsimula sa dalawang linya, indent sa iyo ang anumang bagay na pag-aari i-loop na lamang upang gumawa ng malinaw na ito ay tatlong linya at hindi, halimbawa, linya ng apat o limang, kung mayroong mga linya para sa o limang, na bahagi ng na loop. Kaya ito simpleng indentation na nagbibigay ng pangunahing ideya. Kaya inilapat namin ito algorithm, ngayon, sa ilan sa mga halimbawa. At ito, masyadong, simpleng halimbawa sa tunay na mundo. Ngunit ito ay pagpunta sa maging kinatawan ng kung paano mo pumunta tungkol sa iyong pagsubok pag-aari nagiging complex program. Subukan mo ng ilang mga sitwasyon, ang ilang mga mga kinatawan ng input, at makita kung ka makuha ang ninanais na output. Kaya halimbawa na ito ay may dalawang tao pag-upo sa kuwarto dorm. Sa kaliwa ay ang parehong palsipikado code. At ito ay isang screen shot ng napaka huling hakbang ng application ng mga ito algorithm sa mga input, kung saan mayroong ay dalawang tao sa kuwarto at, pagkuhang muli, bilang hakbang namin sa pamamagitan ng mga linya ng isa, at dalawa, at tatlo, at dalawang at tatlong at tapos - sa pagtatapos ng na algorithm, nagkaroon kami sa katunayan mabibilang ng dalawang Fellows sino sa kuwarto. Kaya pagkatapos ay sinubukan naming isa pang halimbawa. At sinabi namin kung ano kung mayroong zero ang mga tao sa kuwarto? Ba ang code na ito pa rin ang tama? At sa katunayan ito ay. Ito lang kaya ang mangyayari na dalawang linya at, samakatuwid, linya o tatlong hindi pagpunta sa execute. Hindi nila ka pagpunta sa mangyayari sa lahat dahil ang mga ito ay hindi lamang kung naaangkop mayroong zero ang mga tao sa kuwarto. Ngunit hindi isang malaking pakikitungo. Linya ng isa nasimulan N sa zero, kaya kahit na lamang ng isang linya ng ito programa aktwal na nagtatapos up pagiging kapaki-pakinabang, ito pa rin na makakuha ng tamang sagot, bilang ipinahiwatig ng orange zero ang sa ibaba. Ngunit pagkatapos namin nagpasya na noon ay uri ng isang ugok algorithm. Iyon ay medyo mabagal. Tiyak, ang maaari kong gawin dalawa, apat, anim, walo, sampu, kapag pagbibilang ng mga tao sa isang kuwarto. Kaya kami tweaked ang algorithm, ang pseudocode, sasabihin, ngayon sa dalawang linya, para sa bawat pares ng mga tao sa room, tumuloy sa, sa tatlong linya, paglakas sa pamamagitan ng dalawang sa bawat pag-ulit. Kaya na sana ay nagtrabaho dito para sa ito pares ng mga tao sa kuwarto. Ngunit pagkatapos, kung sinimulan mo ang pag-iisip tungkol sa ito, at hindi ito tumagal ng mahaba upang Napagtanto, maghintay ng isang minuto ito ay pagpunta sa masira, ito Pinaghihiwa sa kung ano ang mga simpleng kaso? Kung mayroong tatlong mga tao sa kuwarto o, mas pangkalahatang paraan, kapag mayroong isang kakaiba bilang ng mga tao sa room, kabilang ang isa. Gusto naming makaligtaan ang taong iyon dito dahil walang mga naturang pares. Kaya namin ang mabilis na natugunan ng sa halip nagpapakilala kung ano ang mga karagdagang programming constructs upang ang palsipikado code. Kaya isang kundisyon, tinatawag namin ito, o isang branch. At ito ay sinadya upang ihatid, biswal, ang ideya ng mga sangay, isang tinidor sa kalsada kung saan maaari mong alinman sa gawin ito o, siguro, iba pa. At sa katunayan, matugunan namin ang isyu na ito sa pamamagitan ng pagdaragdag ng linya 4, sa pamamagitan ng sinasabi, talaga, sa pinakadulo, kung ang isang tao ay nananatiling, pagkatapos ay sige at bilangin ang mga ito espesyal. Kaya ka-uri-uriin ng mga espesyal na kaso sa kanila, sa gayon upang makipag-usap, kaya na ngayon maaari naming panghahawakan Parehong isang kahit na bilang ng mga tao at isang kakaiba bilang ng mga tao. Ngayon ay mayroong anumang bilang ng mga paraan maaaring namin ang ipinahayag na ito. At lantaran, maaari ko pa kahit na higit pa itlog ng kuto picky kapag ito ay dumating sa aking pagpili ng Ingles para sa pseudocode. Ngunit hindi bababa sa ang espiritu ng ang ideya ay conveyed. Kung ipinasa mo ang code na ito sa isang kaibigan kung sino ang wala sa CS, o ay hindi kailanman kinuha CS, logro ay maaari nilang malaman, ibinigay na tatlong mga tao sa kuwarto, kung paano bilangin ang mga tao batay sa mga tagubiling ito. At iyon ang lahat talaga gusto naming upang makamit ang may pseudocode, sa paanuman ilagay sa pamantayan kung paano kami ng pagpunta tungkol sa na kumakatawan sa mga ideya sa gayon maaari naming simulan na gawin mas komplikado bagay pa rin. Kaya na humahantong sa amin pagkatapos, ngayon, sa aktwal na code. Magsisimula kami sa programa ngayon, kahit na sa isang friendly na kapaligiran. At pagkatapos namin transition masyadong mabilis upang isang mas arcane syntax, ngunit isa na makikita mo sa panimula ay ang parehong bilang ang ideya ay makita ipinahayag sa ang iba pang mga wika ngayon. Lamang Ito ay pagpunta sa hitsura medyo naiiba. Kaya sa halip na lamang tawagan ang code na ito, ako pagpunta sa maging isang maliit na mas tumpak at sabihin, simula ngayon, kapag ang pagsusulat ng programa, sumusulat ka source code. Ito ay uri ng tulad ng pseudocode. Ngunit kailangan naming makita ito ay hindi isang uri ng magpakawala pagdating sa pagpili ng mga salita na gamitin mo. Kapag programing sa isang wika, mayroon kang na gamitin ang mga salita, mga parirala, ang syntax, na ang ibang mga tao nagpasya kumakatawan partikular na wikang iyon. Kaya pseudocodes ay nasa sa iyo. Isang aktwal na programming language tulad ng C, dahil kakailanganin namin ay makakita, ay Standardized sa pamamagitan ng iba pang tao. Kaya paano namin pumunta tungkol sa pagsusulat ilang source code? Well ako pagpunta sa pumunta Magpatuloy at gawin ito. Pupunta ako sa sige at buksan up ng isang window dito. Higit pang mga ito sa susunod na linggo. Ngunit ito ay isang aparato na tinatawag na ang CS50 appliance. Ako nagpapatakbo ng isang piraso ng software sa aking Mac, bagaman maaari mong gawin ang parehong bagay sa isang computer Windows, na nagbibigay sa sa akin ang ilusyon ng pagpapatakbo ng isang iba't ibang mga operating system nang sama-sama kanan dito sa isang window sa aking Mac. Ko na lang full screen ito kaya hindi mo pag talaga nakikita ang Mac OS ngayon. Ito ay isang operating system tinatawag na Linux. Ito ay napaka-tanyag. Ito ay napakabilis. Ito ay napaka-libre, na ginawa ito masyadong nakakahimok, lalo na sa komersyal na mundo. At higit sa na patungo sa dulo ng semestre kapag ginagamit namin Linux pa ng kaunti para sa mga programa ng web at pag-host ng aktwal na mga website at mga proyekto. Kaya ngayon, lamang malaman na ito ay isang desktop na sinadya upang tumingin vaguely pamilyar sa Windows at Mac OS. Ito lamang ay may ilang mga iba't ibang mga pangalan at mga icon para sa mga bagay. Ngunit ito ay ang tinatawag na CS50 appliance, isang virtual machine na, simula sa susunod na linggo, ikaw ay guys tumakbo sa loob ng isang window sa ang iyong sariling mga Mac o PC. Para sa ngayon, ako ng pagpunta sa buksan up ang pinakasimpleng ng mga programa. Ito ay tinatawag na gedit. At ito ay lamang ng isang graphical editor. Ito ay uri ng tulad ng Microsoft Salita, ngunit mas simple. Ito ay uri ng tulad ng teksto i-edit o Notepad. Ito ay lamang ng isang napaka-simpleng programa sa kung saan upang isulat mga salita sa screen. Ito lang kaya kung ano ang mangyayari kung na-save ko mga file na ako lilikha kapag ang program na ito sa isang espesyal na extension tulad ng. c, sa halip ng. doc, o. xls, o anumang pamilyar ka sa, maaari ko talaga lumikha ng mga programa gamit ang kahit na ito simple text editor. Kaya ipaalam sa akin gawin iyon. Hayaan akong sige at i-save ito magsampa muna bilang hello.c. At muli, ang user interface ng kalooban maging pamilyar sa iyo mabilis. Ngunit para sa ngayon, tingin lang ako sa pag-type sa isang pangalan ng file. Pupunta ako sa i-save ito sa aking John Harvard home directory. At ngayon, mayroon akong tab na ito ay nagpapahiwatig na Talaga ako sa pag-edit isang file na tinatawag na hello.c. Kaya walang masyadong kawili-wiling pa. At ngayon ito ay pagpunta sa makakuha ng medyo misteriyoso. Pupunta ako upang mag-zoom in, lamang kaya mas nakikita. At ako pagpunta sa simulang mag-type isama stdio.h, int main, walang bisa, buksan ang kulot suhay, isa, dalawa, tatlo, apat na mga puwang ng mga indentation, naka-print f, para sa pag-print isang bagay na-format, quote magpanipi, "Kumusta, mundo" backslash, n, malapit quote, closed panaklong, tuldok-kuwit, ipasok ang backspace, backspace, backspace, backspace, sarado kulot suhay - Ko pa-program. Ang lahat ng mga karapatan kaya ito ay isang napaka-simple programa, talaga, ang mga programa na sinuman ay nagsisimula off sa programming. At ang lahat ng ginagawa nito, para sa lahat ng pagiging kumplikado nito, ay i-print out sa screen, hulaan kung ano? Kamusta mundo. Ngunit ito ay hindi sapat lamang magsulat ng isang programa. Kaya ito ang code. Ito ay source code sa isang wika na tinatawag c. Ito ay nai-save na kasalukuyang nasa isang file na tinatawag na hello.c. Ngayon tumingin sa ibaba ng screen dito. Higit pa sa mga ito, muli, sa ang linggo na dumating. Ngunit ito ay kung ano ang makikita namin tumawag isang terminal na window. Ito ay isang kumikislap, itim at puti prompt. Ito ay uri ng isang lumang interface sa paaralan isang computer na sa pangkalahatan ay hindi gumamit ng isang mouse o iba pang graphical na mga elemento. Ito lamang ay gumagamit ng iyong keyboard. At maaari kong i-type ang mga utos sa ito kumukurap prompt. At para sa mga layuning ngayong araw, ako lamang pagpunta sa i-type ang mga sumusunod - gumawa ng halo. At ang programang iyon, gumawa ng, lamang ang na programa, sa tunay na mundo ang mga araw, gusto naming i-double click sa. Ngunit sa interface na ito para sa araw na ito, kami ay pagpunta sa i-type ang pangalan nito sa ang pagsenyas na ito. gawing kumusta Literal na pagpunta sa gumawa ako ng isang programa na tinatawag na halo. At ito ay pagpunta sa gawin ito sa pamamagitan ng pagtingin para sa isang file, sa pamamagitan lamang ng default, na tinatawag na hello.c. Ito ay pagpunta sa ipagpalagay na nais ko ng isang C programa sa pamamagitan ng likas na katangian ng kung paano ang computer na ito ay naka-configure. Kaya ako sige at pindutin ang enter. Nakakakita ako ng ilang misteriyoso output, ngunit ito ay maging lahat ng masyadong pamilyar na bago ang haba. Nangyari ito upang magpatakbo ng isang tagatala, nang higit pa sa na sa isang sandali, na tinatawag na kalatungin. Ngunit ngayon, Mayroon akong isa lamang nagbi-blink na-prompt. At maaari kong sige ngayon at i-type tuldok iwa, hindi kawili-wili para sa mga kadahilanang bibigyan namin ng bumalik sa susunod na linggo - kumusta. Kaya lahat ng pagsisikap na ito kaya malayo lamang sa isulat ang pinakasimpleng ng mga program na, sa lalong madaling ko pindutin ang Enter, ginagawa na. Kaya ko na nakasulat sa aking unang programa. Kaya sadyang ako poking masaya sa napaka-simpleng programa para sa isang pares ng mga dahilan. Ang isa, ito ay mahirap upang makakuha ng nagulat tungkol sa pagkuha ng isang klase kung ito ay ang katapusan ng laro. Ngunit higit sa na, mayroong isang maraming distractions up dito. Ang unang pagkakataon na matuto ka sa programa, para sa mga ka ng mas kumportable, at kahit ako, pabalik sa araw, kapag ako unang Nakita ng isang bagay na tulad nito - maaari mong uri ng figure na, lahat ng karapatan, ito ay nasa isang mundo print kumusta. Ngunit mayroong kaya magkano ang kaguluhan ng isip. May kaya magkano ang syntax sa screen na ito ay nakakakuha sa paraan ng napaka simple, kung hindi man ay simple, mga ideya. Kaya kung ano kami ay pagpunta sa gawin ngayon ay hindi namin pagpunta sa isaisantabi C at darating bumalik sa na sa Lunes. At kami ay pagpunta sa gumamit ng isang graphical programming language na tinatawag na scratch. Ito ay isang programming language, na aking alluded sa sa Miyerkules, na ang nangyayari i-daan sa amin upang gawin ang parehong uri ng mga bagay-bagay ngunit pumikit ang mga mata, para sa araw, upang ang kulot tirante, ang mga panaklong, ang semicolons, at ang lahat ng mga bobo distractions na makakuha sa paraan, sa ang unang araw, ng ilang mga pangunahing, medyo kagiliw-giliw na mga ideya. Kaya papunta sa bahaging iyon, pupuntahan ko pumunta pabalik sa aking desktop sa paglipas dito at ipakilala sa mga alternatibo sa na programa, na kung saan ay pagpunta sa hitsura ng isang maliit na isang bagay na ilaw na ito. Iyon ay kung paano namin ang pagpunta sa ipatupad na parehong programa ngayon - dalawang mga puzzle piraso na, kapag interlocked at nag-click sa, sasabihin sa buong mundo, kumusta mundo. Kaya natin talaga pumunta doon. Kaya pupuntahan ko sige at buksan ang isang website na kilala bilang scratch.mit.edu. At ito ay humantong sa akin sa ang website na ito dito. Sa maaga, ako magla-log in na ito website at ang unang problema na ay ituturo sa iyo ang ilan sa mga hakbang na ito. Pupunta ako sa sige at i-click ang sa aking scratch folder dito. At ito ay pagpunta upang ipakita sa akin ilang mga proyekto na nag ako talagang ginawa nang maaga. At ito lumiliko out na ito graphical programming language hindi lamang ay pagpunta upang ipaalam sa amin ang programa sa pamamagitan ng pagkaladkad at pag-drop ang mga piraso puzzle, mo hindi kailangan ng espesyal na software. Lahat ng ito ay naka-embed sa loob ng isang browser na kaya na maaari mong gawin ito, sa teorya, sa iyong mga computer sa ngayon, tulad ng ilan sa inyo Maaaring maging mahusay, nang walang kahit na nangangailangan software tulad ng CS50 appliance, na kung saan ay darating sa susunod na linggo. Kaya ako ng pagpunta sa pumunta ng hanggang sa tuktok na sulok dito at mag-click sa Lumikha. At sa ilang sandali pupuntahan ko upang makakuha ng isang blangko screen sa pamamagitan ng kung saan ang maaari kong simulan mga programa sa graphical na ito mga programa kapaligiran. Ngunit oras na ito, ito ay magiging magkano, magkano ang mas simple upang aktwal na gawin ito. Kaya sa sandali lamang, kapag ang Wi-Fi cooperates, kami ay mayroon na ngayong screen na ito. Kaya isang mabilis na pandiwang tour, ngunit maglakas-loob ko sabihin, tiyak kapag sumisid sa unang problema set, bibigyan ka hanapin ang lahat ng mga napaka- naa-access at medyo madaling maunawaan. Ngunit sabihin magpinta ng isang larawang-diwa para lamang ng ilang sandali. Kaya sa ilalim ito prompt na nagsasabing i-save mga pagbabago, ikaw ay tungkol sa upang makita ang mga scratch. Ito ay isang engkanto. Ito ay isang character. At siya ay nakatira sa kung ano ang makikita namin tumawag sa isang entablado, ito malaki puting parihaba sa na maaaring siya ilipat pataas, pababa, pakaliwa, kanan, at gawin, talaga, iba pang mga uri ng mga aksyon. Samantala, sa gitna ng user na ito interface, mayroon kaming ang maramihang mga puzzle piraso. At makikita mo na ang sinasabi nilang mga bagay tulad ng ilipat ang 10 mga hakbang, naka-15 degrees, point sa isang tiyak na direksyon. Ngunit mayroong mga kategorya ng mga bloke up dito masyadong. Kaya kung pumunta ako sa mukha, makikita mo na mayroong iba pang mga puzzle na piraso wari ay sabihin ito sa cit kamustahin, mag-isip, upang ipakita ang kanyang sarili, itago ang kanyang sarili. Kung pumunta ako pababa upang Tunog, ito lumiliko out mayroong mga paraan upang i-play ang mga tunog tulad ng ngiyaw, upang ihinto ang lahat ng mga tunog, upang maglaro ng isang drum. Kaya, mahaba kuwento maikli, mayroong isang buo grupo ng mga piraso palaisipan na payagan mo upang sabihin ito pusa, o anumang bilang ng mga iba pang mga character, kung ano ang gagawin. Ngunit upang gawin ang lahat ng mangyayari sa iyo kailangan upang simulan ang programming. At ito malaki puting kahon, o kulay-abo na kahon, sa kanang bahagi, ito ay kung saan Pupuntahan ko talaga i-drag at drop ang mga piraso puzzle. Iyon ay ang aking mga teksto blangko window katumbas. Kaya pupuntahan ko sige at i-click ang Kontrolin sa gitna. O sa halip, hayaan mo akong magsimula up sa ilalim ng Kaganapan. Sa ilalim ng Mga Kaganapan hukuman, mapapansin mo ang isang Ilang mga bagay na sadyang Kurbadong sa itaas na sa paraan na marahil sila ay hindi pagkawingin sa tuktok ng piraso puzzle. At iyon ay dahil sila demark ng simula ng isang programa, sa simula ng isang script, kaya na magsalita. Kaya kung pumunta ako nang maaga at i-drag, kapag berde bandila na-click sa paglipas dito, at pagkatapos ay ako gusto pusa ito upang sabihin isang bagay nang una. Kaya ako ng pagpunta sa pumunta sa ilalim ang hitsura panel. At ako pagpunta sa sige at grab ang kamustahin bloke, at kaladkarin, at drop, at bitawan upang ito ay awtomatikong interlocks doon. At pagkatapos mapansin ang maaari kong mag-click sa teksto. At maaari kong i-override ito na maging mas tiyak na gusto, sabihin nating, kumusta mundo. At ngayon kami ay may mga programa na sinasabi ko ay katumbas na marami pang iba arcane programa ko ipinatupad sa C ng ilang sandali ang nakalipas. Kung pumunta ako sa ibabaw ngayon sa kaliwang bahagi, mapansin mayroong isang malaking sign stop at isang malaking green flag. Hayaan akong mag-zoom in para sa kalinawan. At kapag ako ngayong i-click ang berdeng bandila, maaari mong marahil hulaan kung ano ang unang programa ay ngayon pagpunta sa gawin. Kaya doon, masyadong, kami ay mga programa, ngunit Hindi kami talaga nagsisimula nabalaho sa putik sa ilan sa mga sintaktik, minutong detalye. Ngunit sabihin subukan ang isang bagay ng isang kaunti pa kagiliw-giliw. Hayaan akong pumunta sa aking scratch folder dito. At talagang, ipaalam sa akin kaya hayaan mo akong buksan up isang hiwalay na programa dito para lang sandali, I-maximize ang window na ito, Buksan ang File, at ako pagpunta sa pumunta sa ngayon pinagmulang direktoryo. Tulad ng nakasanayan, iyong makikita, ngayon at pasulong, na ang lahat ng mga halimbawa ngayong araw ay naa-access sa loob ng website ng kurso ni. At pupuntahan ko sige dito at pumili up ng isang maliit na isang bagay na naiiba. Ito ang isa dito, na kung saan Kailangan ko ng volunteer. Sino ang nais isang desk lamp ngayon? OK, kung paano tungkol sa isang tao ng kaunti - ikaw ay nasa dulo? Halika sa down. Ngayon, gusto mo bang upang lumahok, o sabihin lamang magsimula sa lampara desk? Vanessa: [hindi marinig]. David MALAN: OK. Mahusay, ano ang pangalan mo? Vanessa? David. Masaya akong makilala kayo. Kaya dumating sa up at Vanessa ng pagpunta upang kontrolin ang aking keyboard para lamang ng ilang sandali. At kung ano gumawa ako dito, para lamang sa panahon ni alang-alang, bilang ko na natanto ang Wi-Fi ay isang bit mabagal, wala, ang mga programa kapaligiran na kami ay ang paggamit, maaari ring ma-download at tumakbo sa iyong lokal na computer. Kaya kung ano ang ginawa ko nang maaga ng mga panayam, sa kaso na ang mangyayari, ay download ko sa lahat ng file kami tungkol sa upang i-play na may sa gayon ay maaari nilang magpatakbo ng isang kaunti pa mabilis dito mismo sa aking laptop. Kaya na ang dahilan kung bakit ngayon akong nakikitang Mac-tiyak na interface. Kaya pupuntahan ko sige at buksan up ng isang ito. Pupunta ako sa sige at ngayon full screen ang window. At tulad ng makikita mo, kaya namin nang napakabilis, bilang mag-aaral na ito ginawa, isa sa ang iyong mga predecessors, pumunta mula kumusta mundo sa isang magkano ang mas nakakahimok application. Kaya narito ang mga tagubilin. Oh, at kami ay may isa pang bagay. Akala ko magiging masaya, dahil, normal, kami ay pagkuha kamera na ito paraan. Akala ko magiging masaya kung, Vanessa, maaari naming makita ang mundo sa pamamagitan ng iyong mga mata. Kaya dito mayroon kaming ilang mga Google Glass. [ASTONISHED GASPS] David MALAN: Kami ay lamang ng pagbibigay layo desk lamp ngayon. [Tawa] Kaya hayaan mo akong cue ito up. Ang lahat ng mga karapatan, sa gayon hawakan ito. OK, Glass, record ng video. Ang lahat ng mga karapatan, Vanessa? Ngayon, bilang isang bukod na nakuha ko wala ang gagawin sa wala, kung tiningnan mo bahagyang up at sa kanan, makikita mo ang ang literal na salamin, at dapat mong makita ang isang maliit na hugis-parihaba window. Dapat mong makita ang lahat ng iyong mga kaklase na kumuha ngayon? Oo. Vanessa: Oo. David MALAN: OK. Kaya na fine. Susubukan naming ilabas ang footage sa ibang pagkakataon. Para sa ngayon, i-on ang iyong atensyon sa screen dito. At kung ano ang iyong hinalinhan ay tapos ay maglagay ng mga tagubilin sa screen sa pamamagitan lamang ng paggamit ng isang pintura programa. Kaya ka ng pagpunta sa, sa isang sandali, pindutin ang space bar upang magsimula. At pagkatapos ay ang ilang mga puzzle piraso ay pagpunta upang simulan ang paglipat ng up ang screen. At gusto mong pindutin ang mga arrow key, lamang nais sa real DDR, alinsunod may mga bagay lining up na may mga arrow. Vanessa: OK. David MALAN: mo na-play ito dati. Vanessa: Oo. David MALAN: Ang lahat ng karapatan, Vanessa, sige at dalhin ito ang layo. [Music - KAYNE WEST, "mas malakas"] [Palakpakan] David MALAN: Kaya natin ngayon tumagal ng isang hakbang mula sa na. Kaya malinaw, iyon ang katapusan ng laro. Ang katapusan ng laro ay hindi kumusta mundo. Ngunit hindi mo na kailangang kinakailangang gawin mga bagay na kaya interactive. Maaari mo ring gawin ang animation. Kaya halimbawa, isa pang isa sa iyong tagapagmana ginawa sa programang ito dito, na nagsasabi sa isang kuwento ng higit sa ito ay ipinatupad ng isang laro. Kaya ipaalam sa akin sige at buksan up ng isang dito programa sa aming parehong mapagkukunan direktoryo mula sa araw na ito. Ang isang pagtawag, at sabihin simulan may, isang kuwento ng pag-ibig cookie. At huwag gumawa ng mga ito masyadong akademiko, ngunit, habang pinapanood mo ang isang ito, sa tingin sa iyong sarili kung alin sa mga simpleng programming konsepto namin uusapang tungkol kaya sa ngayon - variable, at mga loop, at mga kondisyon, ang iyong hinalinhan marahil gamitin lamang upang ipatupad ang ilan sa ang visualization. Ang makikita mo dito. Kaya ako magbibigay sa iyo ng isang cookie kuwento ng pag-ibig. [Music - Green DAY, "Holiday"] [Crash] [Music - ANG pagong, "Maligayang-sama"] David MALAN: Ang lahat ng karapatan, kaya doon, nagkaroon kami ng cookie kuwento ng pag-ibig. Ngunit kahit doon - [Palakpakan] David MALAN: Ang lahat ng karapatan, kahit doon, isipin ang tungkol, bilang mga puso nagpunta mula sa sa ibaba sa tuktok ng screen, nagkaroon talaga ng kaunting randomness nangyayari. At sa katunayan, makikita namin makita na kahit sa pinakasimpleng ng mga kapaligiran, tulad ng Sa simula, tulad ng sa C, maaari kang bumuo ng random na numero, o mga ilusyon ng random na numero, kaya na ang laro ay isang kaunti pa kagiliw-giliw kaysa sa kapangyarihan ito maging kung mayroon kang walang pasubali hard code ang lahat. Sa kilusan na nakikita mo, may mayroong ilang mga uri ng kakayahang tumugon. Sa sandali na ang tinapay mula sa luya tao touch gingerbread ang babae, siya Mukhang upang ilipat ang layo. At kaya, sa katunayan, maaari mong ipatupad, sa karamihan ng programming wika, ang paniwala ng mga kaganapan, kung saan ang isa kung kamay touch sa kabilang banda, na maaaring mag-trigger ng ilang mga ng iyong source code sa talaga execute. Maaari kang makinig para sa mga naturang bagay sa screen. Kaya sabihin magsagawa ng mabilis na paglilibot, pagkatapos, ng ang ilan sa mga bloke gusali na maaari naming gamitin upang makamit ang ilan sa mga layuning ito. Kaya narito ang bibigyan namin ng simula ngayon tumawag sa isang statement. Isang pahayag na ang mangyayari sa maging sa mga lilang Wala, isang maliit na isang bagay na tulad nito, ngunit iyan ay arbitrary. Isang pahayag lamang ang isang palaisipan o piraso, mas pangkalahatang paraan, ang isang pagtuturo, na Sinasabi sa computer na ang dapat gawin isang bagay, ang isang pahayag. Kaya narito ang isang simpleng halimbawa. Kamustahin mundo. Isa pang isa ay maaaring maghintay ng isang segundo. Kaya ito puzzle piraso, na kung saan ay suportado sa simula, ipapaalam namin sa iyong character ipo-pause para sa ilang mga bilang ng mga segundo. Ito, masyadong, lamang ang isang pahayag. Narito susunod, kami ay may isa pang karagdagang kagiliw-giliw na isa, pag-play ng tunog ngumyaw, at ang maliit na arrow ay nangangahulugan na sa simula, ito ay isang drop down na menu. Kaya maaari mong i-import ang mga tunog. Maaari mong i-record ng tunog at gumawa ng iba pang nakakatuwang bagay sa scratch. At iyon, masyadong, bagaman, sa dulo ng araw, lamang ang isang pahayag. Ngunit ngayon sabihin ipakilala ang isang mas kagiliw-giliw na piraso, na kilala bilang isang Boolean expression. Capital B, ipinangalan kapwa may pangalang Bool. At isang Boolean expression lamang ang puzzle piraso o, mas karaniwan, isang piraso ng impormasyon na alinman true o false - isa o zero, oo o hindi. Kaya ito ay isa lamang sa mga dalawang opposites. Kaya isa tulad Boolean expression sa mundo ng scratch ganito ang hitsura ng asul puzzle piraso. At ito ay humihingi ng isang katanungan, mouse down, at na maaaring maging alinman sa, ng Siyempre, totoo o hindi. Kaya may ganitong puzzle piraso sa wala, well, magagawa mong upang makita kung ang isang palaisipan kung mouse ang ay, sa katunayan, pagiging down na gaganapin sa pamamagitan ng mga tao Pakikipag-ugnay sa iyong programa. Isa na ito ay isang kaunti pa abstract, ngunit ang mga dalawang puting kahon ay para lamang sa mga numero. Kaya maaari mong gawin ang mga bagay tulad ng ito ay bilang mas mababa kaysa sa iba pang? At kung gayon, scratch ay kikilos isang paraan o sa iba pa. Isa na ito ay isang kaunti pa graphical. Ito ay kung ang mga engkanto, kung ang pusa, para sa Halimbawa, ay aktwal na pagpindot sa mouse pointer. Kaya kung ang maliit na arrow sa ulo ay pagpasada sa ibabaw ng pusa, pagkatapos ito puzzle piraso susuriin sa true. Ito ay magiging totoo, kung saan, kung gamitin ito Boolean expression, pati na bibigyan namin ng makita sa isang sandali, sa isang branch, maaari mong alinman sa gawin ito, o maaari mong gawin iyon, halos tulad namin ay nagkaroon ng isang kondisyon na naka-check, mayroon bang isa pa huling tao sa kuwarto? Kung gayon, magdagdag ng isa. Kung hindi man, huwag mag-alala pa. Kaya isang Boolean expression ay maaari ding maging at-ed magkasama o o-ed magkasama. Kaya maaari mong pagsamahin ang Boolean expression at sabihin na ito at ito ay dapat na tunay na para sa ang buong bagay upang maging totoo. At dito ay isang mas tunay na halimbawa mundo. Kung gumamit ka ng CS50 Kurso na gawin kurso shopping, mga check boxes doon, kung saan mo check na kahon sa tabi sa kurso, na sinasabi, oo, lamang ipakita sa akin ang mga kurso para sa kung saan Q ang halaga ay 4.5 o mas mataas. Kung alisin ang tsek nito, hindi, hindi mag-alala tungkol sa na. O mga kaparehong, sa kanan, hindi ba Kaguluhan Sa Kurso ako Tumatagal, na alinman true o false. Ito ay lamang ng isang Boolean expression. Kaya lahat ng mga oras na ito kapag ginamit mo mga website na may mga check box, ikaw lang toggling ang katumbas ng isang Boolean expression on at off. Kaya sa kung ano ang form na huwag mong gamitin ang mga ito? Well, sa scratch, makikita namin makita sa isang sandali na may mga kondisyon na ganito ang hitsura. At iyon ang uri ng matinong dahil magkano tulad ng sa pseudocode, kami naka-indent ang uri ng U-shaped piraso puzzle, ibig sabihin anumang bagay na nasa loob ng na U ay pagpunta sa execute, o hindi, depende sa kung saan ito ay. Kaya kung Boolean expression, pagkatapos ay ano ang nasa loob ay makapag pinaandar. Samantala, mayroong isang kung / pa ang block. Kaya kung nais mo ang isang sangay na napupunta ito paraan o na, scratch ay nagbibigay sa amin na. At ayon sa logic na ito, ngayon, kahit na puzzle piraso ay malinaw na masyadong maliit upang kalang ibang bagay sa loob nito, scratch ang puzzle piraso, ang mga ito ay lamang ng pagpunta sa lumago. Kapag nag-i-drag at i-drop sa paglipas ng isang bagay, ay ito lamang lumago upang magkasya kahit anong ito ay na sinusubukan mong gawin. Kaya maaari naming tumagal ng dalawang mga bagay na ito at gumawa ng tatlong paraan tinidor sa kalsada kaya na sa iyo ang alinman sa gawin ito, o na, o ang iba pang mga bagay sa pamamagitan lamang ng nesting sila sa na paraan. Siyempre, kung gagawin mo na masyadong magkano, ito ay nagsisimula upang makakuha ng pangit. Ngunit sa puntong iyon, ikaw talaga Marahil hindi programa nang mahusay. At nang sa gayon ay magiging paulit-ulit tema, masyadong, na ng estilo. Lamang kung gaano kahusay ko talaga format ang iyong code? O kung gaano kahusay mo idisenyo ang iyong code? Ngunit higit pa sa na sa hinaharap. At ngayon, mayroon kaming mga loop. Mayroong Ang ganda ng loop magpakailanman sa scratch Literal na nangangahulugan na - gawin ano ang nasa loob ng mga ito muli, at muli, at muli. Maaari kang maging mas kongkreto at sinasabi, gawin ang mga sumusunod na bagay 10 beses. Maaari mo ring gamitin ang mga variable. Maaari kang makabuo ng anuman sa pangalan na maliit na drop down at sabihin, ninyo ako ng variable na tinatawag n at itakda ang kasing-halaga nito sa ilang mga halaga. At pagkatapos ay maaari kang magkaroon ng mga function. Ngunit higit pa sa mga nasa sandali lamang. Hayaan akong bumalik sa aking Scratch interface. At ipaalam sa akin sige oras na ito. At sabihin sige at buksan up, sabihin nating, isang halimbawa mula sa - na ng kaunti pa sa kawili-wiling. Hayaan akong sige, at, talaga, ipaalam sa akin lamang gawin itong aking sarili. Hindi ko kailangan upang buksan ang isang ito. Hayaan akong pumunta sa File, New. Pupunta ako upang pumunta sa Kaganapan. Pupunta ako upang pumunta sa kapag berde bandila nag-click, at ako pagpunta sa pumunta sa Tunog. At ako pagpunta sa i-drag at i-drop ito puzzle piraso, i-play ang sound ngiyaw. Ito latches magkasama. At ngayon, kung ako i-click ang berdeng bandila - [Ngumyaw sound] David MALAN: karapat-dapat sambahin. OK, kaya ngayon natin gawin ang isang bagay ng kaunti mas lohikal lamang upang ipakita na makakaya namin, para sa ngayon. Pupunta ako sa unlatch ito mula sa na tao. Pupunta ako sa pumunta sa Control. At ako pagpunta sa grab isang kondisyon. Kaya kung may isang bagay pagkatapos. Kaya na sa hitsura nito doon. Kaya Kailangan ko ng Boolean expression. At ipaalam sa akin sige at sabihin, hayaan mo akong pumunta sa operator. Pupunta ako sa gawin ang isang bagay nang bahagya mathy, para lamang sa mga kicks. Pupunta ako sa pumunta sa dito at sabihin, kung may isang bagay na mas mababa kaysa sa ibang bagay, sige at gawin ang isang bagay. Kaya ngayon, alam mo kung ano, isang random block. Kaya pansinin kung paano, kung mag-hover sa ibabaw ko ito bagay dito, iyon ay mapatid na bigla sa doon. Kaya ngayon, notice, ako na nagsisimula na gawin isang bagay na mas lohikal kawili-wili. Kung ang isang random na numero sa pagitan ng 1 at 10 ay mas mababa kaysa sa, sabihin nating anim. Kapag pinili ko ang anim, na mahalagang ibig sabihin, gawin ang mga sumusunod na may 50% bagay na maaaring mangyari. Ito ay tulad ng flipping ng barya. Ngayon, maaari kong gawin ang isang bagay nang may pasubali. At isang bagay na pupuntahan ko upang gawin ay i-play ang sound. Kaya ngayon, kapag nag-click ako sa screen flag, ito ay tulad ng paghuhugas ng barya. [Ngumyaw sound] David MALAN: Ito ay ulo o watnat doon. Natin gawin itong muli. [Ngumyaw sound] David MALAN: ulo muli. [Ngumyaw sound] David MALAN: ulo muli. Phew, OK. Tails na oras. Kaya 50% ng oras, kung gagawin namin ito walang hanggan mahaba, kami ay kumuha ng 50% meows at 50% silences. Kaya doon, lamang ng pangunahing gusali block na nagbibigay-daan sa amin gawin iyon. Ngunit ito ay uri ng nakakapagod na mayroon akong upang panatilihin ang pag-click na pindutan. Kaya sabihin lamang i-drag at throw lahat ng mga layo. Kung nag-drag ka sa kanila sa gitna, makikita lang nila tanggalin ang kanilang mga sarili. Hayaan akong pumunta up upang makontrol. Hayaan akong pumunta sa magpakailanman. At oras na ito, ako pagpunta sa gawin isang bagay minorly nakakainis. [Tawa] David MALAN: At hayaan mo akong pumunta Magpatuloy at gawin kontrol. Maghintay ng isang segundo, kaya lang hindi ito masyadong parilya. [Ngumyaw sound] David MALAN: Iyan ay hindi natural. OK. [Ngumyaw sound] David MALAN: At notice kung ano ang, Nice tungkol sa wala, para sa mga ng sa iyo kung sino may bago programing karanasan, mo Hindi kailangang magsimula at huminto. Hindi mo kailangang i-compile. Ikaw lamang baguhin ito, at ang mga programa ay iangkop dynamic. Kaya ito ay hindi nakakakuha ng isang maliit na kawili-wili. Ngunit sabihin dalhin ito isang hakbang karagdagang. Hayaan akong sige at makakuha ng alisan na programa. [Ngumyaw sound] David MALAN: Iyon ay kung ano ang aming bibigyan tumawag sa isang bug sa scratch. Hindi niya ay dapat panatilihin sa paggawa na tunog. Kaya namin sasabihin namin sa kanya upang ihinto. Ang lahat ng mga karapatan, kaya ngayon ako pagpunta sa pumunta sa - Ipapaalam ko sa MIT alam. Susubukan naming pumunta sa paglipas dito sa Habang Panahon. At ngayon, gusto kong gawin ang isang bagay muli at muli. Pupunta ako sa pumunta sa Control. At sabihin makita, pupuntahan ko upang i-drag kung ang aking kalagayan doon. Kaya ngayon mapansin ang logic. Kapag ang berdeng bandila ay na-click, gawin isang bagay na magpakailanman, ngunit lamang gawin iyon isang bagay kung ito iba pang mga bagay ay totoo. Pupunta ako upang pumunta sa, sabihin sabihin, Pagramdam. At ako pagpunta sa sige at piliin ang paghawak at i-drop ito doon. Iyan ay isang Boolean expression. At ngayon, mapansin, sa drop ito down na menu, may mga ang ilang mga paunang-natukoy na mga halaga. Kaya ang maaari kong sabihin, ang iyong pagpindot sa gilid ng screen? O kaya ay sa iyo ng pagpindot sa mouse pointer, ang arrow sa screen? Kaya ako ng pagpunta sa gawin iyon. At kung gayon, pagkatapos ay ako pagpunta sa pumunta Magpatuloy at i-play ng tunog ngiyaw. Kaya ngayon ako uri ng mayroon ang Beginnings ng isang laro - kaibig-ibig ng isang laro. [Ngumyaw sound] David MALAN: OK, ang isang kaibig-ibig, maraming surot laro. Hayaan akong maghintay, sabihin nating, isang segundong doon. Ngayon i-play muli, sa pamamagitan ng pag-click ang berdeng bandila. [Ngumyaw sound] David MALAN: Kaya ngayon ito tulad ng isang petting pusa. [Ngumyaw sound] David MALAN: Ang lahat ng karapatan, ito ngayon isa akong gumawa nang maaga. Abalang-abala, ito ay makakakuha ng uri ng madaling gawin bobo mga bagay. Kaya hayaan mo akong pumunta sa dito. Sabihin natin, na ang pet Cat. Natin ngayon buksan Huwag pet ang Cat. Ngayon, kung i-play namin ang isang ito, maaari mong hulaan, kung ikaw ay pagtingin sa screen - [Ngumyaw sound] David MALAN: Ngayon, kung ako ang alagang hayop pusa ['S Leon umatungal] David MALAN: Kaya hindi talaga alagang hayop ang pusa sa kasong iyon. Kaya ngayon namin na lang ay isang halimbawa ng isang sangay na ang nangyayari sa dalawang direksyon. Ngayon ipaalam sa akin sige at magbukas ng isa pa dito. Ang isa, din, bukod sa aming pinagmulan code para sa mga file ng araw. Kaya hayaan mo akong bumalik sa aking Pinagmulan direktoryo at pumunta sa, sabihin pumili ito tao dito at makita kung ano ang naiiba. Wow, lahat ng karapatan, kaya ngayon nakakakuha ito ng medyo mas kumplikado. At bago makita namin kung ano ang tao na ito ang ipinapakita, sabihin subukan upang magpakilala, mula sa program sa kanang bahagi. At ngayon scratch malinaw na nagbibigay-daan sa amin upang magkaroon ng maramihang mga script, ang maramihang mga programang kaugnay ng isang engkanto, may isang character, at, tila, sila ay parehong pagpunta upang tumakbo sa lockstep. Dahil pareho sa mga programang ito ay nagsisimula kapag may berdeng mga pag-click flag, ito ay hinting sa isang mas advanced na mga paksa, na may kung saan ang ilan sa iyo ay maaaring maging pamilyar, Kilala bilang threading, o multi-threading. Lumiliko out, mahaba kuwento maikli, mga computer ngayon maaari talagang gawin ang maramihang mga bagay nang sabay-sabay. O maaari nilang gawin ang isang bagay sa isang pagkakataon kaya mabilis na hindi mo mapansin kahit na talaga ito ng paggawa ng isa bagay sa isang pagkakataon. Ngunit para sa ngayon, sabihin ipinapalagay na ang parehong ng mga programang ito ay pumunta upang maisagawa sa sa parehong oras. At notice, parehong sa mga ito ay magpakailanman puzzle piraso. Kaya sila ay parehong pagpunta sa panatilihing tumatakbo hanggang ako pindutin ang red-sign stop. Kaya kung ano sila ay pagpunta sa gawin? Sa kaliwang bahagi, ako ay tila deklarasyon ng variable na tinatawag na tunog. Kaya hindi ako nag-call na ito ng isang bagay tulad ng mainip tulad N. Tumawag ako ito mute ito oras upang ihatid kahulugan. Ako magse-set ito katumbas ng zero. Sabihin isipin na bilang False, o sabihin isipin na bilang Maling. Ngayon, magpakailanman gawin ang mga sumusunod. Kung ang space bar sa keyboard ay pipi, pagkatapos kung naka-mute na katumbas ng zero, pagkatapos ay baguhin ang naka-mute na katumbas ng isa. Iba Pa, itakda mute sa zero. Kaya lohikal, kahit na isang buo grupo ng mga piraso palaisipan na lang sinasabi, kapag ako pindutin ang Space bar, ano ang dapat kong gawin upang ang variable tinatawag na mute? Baguhin ang mga ito mula sa isa sa zero, o zero sa isa. Iyon lang. Kaya ito ay tulad ng pag-on ng light switch on o off at pagtanda, na may isang variable, na gumawa ako na. Samantala, sa kanang bahagi, sa mga tuntunin lego, na kung ano ang hangarin ng ang script sa kanan? MAG-AARAL: Upang i-play ang sound dagat leon. David MALAN: Upang i-play Sea Lion tunog, kung siya ay hindi naka-mute, sa pamamagitan ng likas na katangian ng na variable. Kaya namin ibinabahagi ng estado, sa gayon na magsalita, sa pagbabahagi ng impormasyon sa buong ang dalawang dahil ang mga script, mapapansin dito, kami ay magpakailanman paggawa ng sumusunod. Kung naka-mute ay zero, kaya kung ito ay hindi naka-mute - kung naka-mute false, pagkatapos i-play ito tunog Sea Lion. At sa tingin sa iyong sarili, hi, hi, hi, para sa dalawang segundo, maghintay ng ilang sandali, at pagkatapos ay suriin muli. Kaya kung pumunta kami ngayon sa paglipas dito sa kaliwa, upang kung saan ang tao na ito ay, at pindutin ang green flag, [Dagat leon sound] David MALAN: Sa anong punto ang ipinapakita ito makakuha ng talagang nakakainis? Dahil ito ay pumunta lamang sa magpakailanman. Kaya minsan, walang katapusan na mga loop, kaya na magsalita, ay sinadya. Ngunit sa kasong ito, sa lalong madaling ko pindutin ang Space bar, siya tumitigil. Ngayon ang programa ay hindi mag-quit. Pa rin Ito ay tumatakbo sa mga loop. Ngunit kung nakukuha ko ang space bar muli - [Dagat leon sound] David MALAN: Siya'y pagpunta sa pick up kung saan siya kaliwa off. Kaya doon ay isang paraan para sa amin upang gawin isang bagay muli at muli ngunit, na oras, nang may pasubali lamang. Well, habang kami ay sa ugat ng paggawa bagay muli at muli, hayaan mo akong pumunta sa isa pang tulad halimbawa dito. Ito ang isa naming tawagan pagbibilang ng tupa. At mapansin tao kung ano ang ginagawa nito. Ito ay talagang isang bit mas katulad ng pseudocode namin nilalaro gamit sa Miyerkules, kung saan siya ay nagtatakda ng ilang mga sagot, Sa tingin ng mga ito ay bilang n muli, upang zero, siya magpakailanman ang mga sumusunod na. Sabi niya halaga ang counter para sa isa pangalawa, naghihintay isang segundo, at pagkatapos ay nagbabago ang sagot sa pamamagitan ng isa. At sa kontekstong ito, na lamang Nangangahulugan ito unti. Kaya siya nagdadagdag ng isa dito. Kaya ito ay literal - ito ay hindi masyadong ano sa tingin namin bilang ng pagbibilang ng tupa. Ito ang tupa ng paggawa ng pagbilang, magpakailanman, hanggang mula sa zero. Kaya maaari naming gawin ang mga kaparehong bagay doon, lohikal. Ngunit ngayon sabihin subukan upang linisin ang ilan sa mga bagay na ito up. Hayaan akong sige ngayon sa isang simpleng halimbawa kung saan ang aming pusa ay lamang ng pagpunta sa simulan ubo. Ang lahat ng mga karapatan, kaya dito kami ay may ubo 0 - computer na siyentipiko magsimula pagbibilang mula sa 0. Kaya pusa na ito ay lamang ng pagpunta sa pag-ubo nang tatlong beses. At narito kung paano naipatupad ko na. Kapag berdeng bandila ay na-click, ubo, maghintay, pag-ubo, maghintay, pag-ubo, maghintay. At ginawa ko ito sa pamamagitan lamang ng pag-drag at pag-drop piraso puzzle. O kung sinimulan mo sa manghihinang sa wala, makikita mo ang makakaya mo talaga duplicate na mga piraso sa gayon ay maaari mong gawin mga bagay na mas mabilis nang walang pag-drag at pag-drop ng ad nauseum. Ngunit kami ay hindi sa pinakamahusay na landas dito. Dahil paano ko gumawa siya ubo 1/4 ng oras? Well, maaari ba akong uri-uriin ng pumunta pababa dito. Kaya kong duplicate at pagkatapos ay i-paste ito sa doon. Paano ako gagawa ng kanya ubo ang ikalimang oras? Well, kopyahin at i-paste muli. O i-drag ang drop muli. At masyadong mabilis, programa na ito ay nagsisimula upang makakuha ng talagang, talagang kalabisan, talaga ang haba, ngunit talagang hindi kawili-wili. Subalit mayroong isang paraan upang linisin ito up. Ano ang halata paraan upang linisin ito up? OK, kaya kami maaaring aktwal na talagang pumunta out at, kapag ikaw pindutin ang space bar, siya ay umubo. Ngunit kung ko lang nais na gawin ang isang bagay repetitively, isipin ang na kaming kontrol ng ilang mga constructs. Hayaan akong ilipat ito sa labas ng paraan, pumunta sa ilalim ng Control. Hayaan akong lamang gawin ang isang umuulit, sabihin, tatlong beses. At ngayon hayaan nakawin sa akin ang ilang ng mga piraso palaisipan. Hayaan akong mapatid na bigla ito sa dito. Hayaan akong magtapon ng mga ito ang layo ng sama-sama. At ngayon, mayroon akong isang mas mahusay na Idinisenyo ang programa. Bakit? Kung gusto kong baguhin ang dami ng beses ito pusa coughs, ang lahat ng mayroon ako upang ay huwag baguhin ang isa variable, o isang halaga, sa halip mula sa tatlo, sa apat na, o lima, o anim. O maaari kong gawin ang isang bagay nang may pasubali, kahit na, na may mga puwang bar kung Nais kong. Kaya ito ay isang pangkalahatang prinsipyo. Sa sandaling simulan mo ang pagkopya at pag-paste code, maging ito man ay sa simula, o sa C, ikaw ay gumagawa ng isang bagay mali, pinaka-malamang. O hindi bababa sa, sa oras na iyong nalampasan ang ilan makatwirang bilang ng mga kopya at pastes, ikaw ay malamang na paggawa ng isang bagay na mali. Pero alam mo kung ano? Gawin ko hindi talaga ganito. Ito ay hindi ang cleanest disenyo. Nais ko mayroong isang piraso puzzle na tinatawag na ubo dahil pagkatapos ay hindi ko gagawin mayroon upang ipatupad ang sarili ko, ang lumang moderno paraan, sa pamamagitan ng nagki-sabihin, at maghintay - paano kung sila ay lamang isang ubo piraso puzzle. Well, maaari ko talagang gawin iyon. Hayaan akong pumunta sa ilalim ng higit pang mga bloke, i-click ang Magsagawa ng Block, at ngayon ako makakakuha ng ito window dito. Pupunta ako sa call na ito bagay ubo. Pupunta ako sa sige at i-click ang OK. At ngayon notice, nakakatanggap ako ng isang bagong simula piraso na hindi tuwid sa tuktok. At kung ano ako ng pagpunta sa gawin sa mga ito, ako pagpunta sa nakawin lang ang mga bloke. Pupunta ako sa ilagay ang mga ito dito. At ngayon, may mga tatlong piraso, nag ko ipinatupad ano Pupunta ako sa isang call function, o isang pamamaraan, o ang ilan sa maaaring kilala mo ito bilang isang paraan. Bahagyang pagkakaiba sa pagitan ng mga salita. Ngunit para sa ngayon, sabihin lamang tinatawag ito ng isang function. Ito ay lamang ng isang bagong piraso puzzle. Ngayon ito ay ipinatupad tulad nito. Ngunit mapapansin na scratch ay nagbigay sa amin ng isang pisikal na representasyon ng buo na harangan paglipas dito. Kaya ngayon, maaari ko lang i-drag ito sa paglipas dito, sabihin, ulitin nang tatlong beses, at kung ano ang nangyayari sa mangyayari ngayon, kapag i-play ko script na ito, ay isa lamang sa programa ay tumatakbo sa isang pagkakataon. Mayroon lamang isang kapag berde bandila click. Ngunit na purple block na tinatawag na ubo ay mabisa nagsasabi scratch, ang bawat time mong makita na puzzle piraso, talaga isakatuparan ang mga hakbang na ako mangyari ipatupad ang mano-mano. Kaya iyon ang uri ng kapong baka. Ngunit ngayon, ipagpalagay na ako nagpasya, gagawin ko hindi Gusto ito pusa lamang sa pag-ubo. Gusto ko sa kanya upang magagawang mang-uyam sa pati na rin. Well, kung paano kami maaaring pumunta tungkol sa pagpapatupad bumahin? Well maaari ko medyo marami gawin ang parehong bagay. Kaya kong gumawa ng isa pang block. Kaya kong tumawag ito bumahin, i-click ang OK. Pagkatapos, sa paglipas dito ng dati ko talaga pa, hayaan mo akong duplicate na ito - at mayroong kung saan dapat mong huwag mag-tulad ng marahil hindi mo paggawa ng isang bagay sa ang pinakamahusay na paraan. Kaya kong sabihin ng isang bagay tulad ng, achoo, para sa isang segundo. Maghintay ng isang segundo. Ngayon Mayroon akong isang bagong bloke na tinatawag bumahin. At sa katunayan, may ito ay. Ngunit ito, masyadong, ay dapat magsimula sa pakiramdam - siguro hindi sa unang linggo ng klase, ngunit sa pamamagitan ng ang pangalawang - lamang medyo kalabisan. Malinaw, mayroong ilang mga kalabisan dito. Kaya ipaalam sa akin imungkahi, sa halip, na aming pinuhin ang kahulugan ito bilang mga sumusunod. Hayaan akong pumunta hanggang sa aking file menu. Hindi ako pagpunta sa i-save ang bersyon na ito. Pupunta ako sa pumunta sa isa sa premade aking mga file dito. At pupuntahan ko sige at buksan up ubo 2. Oops na noon ay ubo 2. Hayaan akong sige at buksan up ubo 3, na kung saan ay sa source na ito direktoryo. Ubo at 3 mapansin - oh, sinabi ko ang kuwento sa maling pagkakasunud-sunod. Hayaan akong mabawi mula sa kuwentong ito. Ang kuwento ko sinadya upang sabihin sa nagtatapos sa ubo 4 - Mayroon bang ito ay. Kaya kung ano ako, sa halip, tukuyin ng mas malaking piraso puzzle na tinatawag na tukuyin, sabihin na salita n beses. Bahin lamang, tila, sa simula, achoo. Kaya ipahayag namin ito bilang isang salita, dahil lang iyon ang hadlang ng program. At ubo ay isang [ubo], ngunit ubo, C-O-U-G-H. Kaya ito lamang ay dalawang ibang mga salita paggawa, lubos, ang parehong bagay. Kaya ko talagang gawin ang isang bagong bloke na katulad nito. Hindi ko gamitin ang menu na pagpipilian bago. Pero kapag nag-click ka sa Gawing Block, maaari kang pumili ng ilang mga pagpipilian. At maaari mong sabihin na ito block talaga tumatagal ng ilang mga input, kung hindi man Kilala bilang argument, o mga parameter, kaya na maaari mong baguhin ang pag-uugali ng ang iyong mga bloke. Kaya kung ano ang ginawa ko ng ilang sandali ang nakalipas ay Tumawag ako block ito Sabihing. At pagkatapos ko sinabi, ito ay tumatagal ng isang string input. At ngayon mapansin, sa pamamagitan ng default, sinasabi nito string 1. Ang isang string lamang ang isang salita, o isang parirala, para sa aming mga layunin. Ngunit lang ako sa pagpunta sa ilagay ang ilang mga placeholder text doon, tulad ng sa isang website, kapag mong makita username, o password, at pagkatapos mawala ito kapag simulan mo ang pag-type. Iyon lang iyon ay. At ngayon pupuntahan ko magdagdag ng isang numero ng input. At ako pagpunta sa tumawag ito n - ngunit na medyo arbitrary. At pagkatapos lamang ng isang label, lamang upang gumawa ng sa block na ito ng kaunti pa sa sarili paliwanag - beses, na ang kung ano ang ko lang ginawa. At ang resulta ay na nakukuha ko isang block na ganito ang hitsura. At ngayon mapansin, gumagamit ako ng isang umuulit na bloke. Ngunit sa halip na mahirap coding tatlo, ako pag-drag at pag-drop sa n doon kaya ko Maaari parametrize ang function. Maaari ba akong gumawa ng mga function na ito gawin ang isang bagay isang iba't ibang mga bilang ng beses na batay sa na halaga. At mapansin, sabihin, ito ay kung ano ang ginawa ko dito, kung i-drag ako salita, ang maaari kong sabihin ay hindi isang hard code salita, ngunit kahit anong Lumipas na in para sa isang segundo. Samantala, paano ko muling ipatupad ubo? Ko sa halip tukuyin bilang ubo sinasabi ng ubo n beses. Kaya sa maikling, pupuntahan ko ito sa pamamagitan ng mabilis, ngunit ang pangunahing ideya ay sa lalong madaling bilang simulan mo makita sa iyong mga programa na, maghintay ng isang minuto, gumawa ako isang bagay na lubos na tulad nito bago, Maaari ko magfa-factor out ang ilang mga karaniwang pag-andar? Maaari ko bang mabulok kung ano ako ng paggawa sa ilang mga pangunahing ideya? Iyon ay kung ano ang ginagawa namin dito. At ko na nakasalansan ang mga bagay na ito, biswal, sa tuktok ng isa't isa dahil ito ay tipan sa na ideya ng na nagsisimula sa binary, pagpunta sa ASCII, paggawa ng mga graphical na mga programa, uri ng layering nagiging kumplikadong mga ideya sa tuktok ng isa't isa. Parehong ideya dito. Nagsimula ako sa wala, pagpapatupad ubo, pagkatapos ay natanto ubo ay talaga lang sinasabi ng isang bagay. Kaya ipaalam sa akin sa halip ipatupad ang kuru-kuro ng sinasabi ng isang bagay. At sa tuktok ng na, maaari ba akong ipatupad achoo, o ubo? At kami maaaring makagawa ng higit pa tulad variant pa rin. Kaya mula sa mga pangunahing prinsipyo, maaari naming simulan upang gawin nagiging kumplikado ang mga programa. Hayaan akong buksan up ng isang ito. Maaari naming talagang magkaroon ng maramihang mga sprites nakikipag-ugnayan sa screen nang sabay-sabay. Kung pumunta ako sa aking pinagmulan direktoryo at grab isa tinatawag na mga thread, na isipin ang isang thread ay talagang lamang ng kakayahan ng dalawang mga script na tumakbo sa pamamagitan ng gilid gilid sa parehong oras. Pansinin ngayon, parehong magkaroon ng isang ibon at engkanto isang pusa engkanto, na parehong may kanilang sariling mga script. Kaya notice, kapag ako ay nag-click ang cat, nakakatanggap ako ng mga script. Kapag nag-click ako sa ibon, Nakukuha ko ang mga script. Kaya bawat isa sa mga guys ay may kanyang sariling mga programa. Kapag ako ngayong i-click ang berdeng flag, mapansin na kung ano ang program na ito ay gumagana magkaroon ng pusa, hindi mapaniniwalaan o kapani-paniwala dahan-dahan, Chase ang ibon. Ngunit ang pusa ay may bentahe ng pagkakaroon ng nai-program sa paraang na hindi mahalaga kung saan ang mga ibon ay, ang pusa ay ginagamit lamang sa kanya. Maaari naming i-play na laro mas mabilis. Kaya kung ako sa pusa, mapapansin na ako paggamit ng, sabihin nating ilipat ang isa hakbang. Sabihin mayroon siya ilipat limang mga hakbang sa isang oras, kaya limang tuldok sa isang pagkakataon. Ipaalam sa akin i-click ang i-play. ['S Leon umatungal] David MALAN: Ang lahat ng karapatan, ngayon ng aming makakaya talaga bigyan ang pusa ng kalamangan. 10 hakbang sa isang pagkakataon. ['S Leon umatungal] David MALAN: Ang lahat ng karapatan, kaya masyadong mabilis, ito ay makakakuha ng isang maliit na kalamangan para sa mga pusa. Ngunit kukunin ko iwagayway ang aking mga kamay sa ilan sa mga detalye. Ngunit ang dahilan na ang path na ay pagsisimula ng isang maliit na iba't ibang sa bawat oras ay na ako ng paggawa ng isang bit ng randomness. Talaga ako pagturo ng pusa sa isang iba't ibang direksyon batay sa kung saan ako gusto kanya upang simulan upang ang bawat oras ang laro, o ang animation, ay isang Medyo naiiba. Ngayon, hayaan mo akong ipakilala isa iba pang bumuo dito. Kaya sa kasong ito, nagkaroon kami function. Mayroong din ng pagpunta sa maging isang malaking suliranin piraso Kilala bilang isang array, o ng isang listahan, na nagbibigay-daan sa iyo upang mag-imbak ng maramihang mga halaga sa loob ng isang variable. Nakita namin ang mga thread, at ngayon mayroong Kaganapan. Kaya narito ang isang kaganapan gamit ang dalawang guys dito. At kung ako buksan up ang file na tinatawag na Kaganapan mula sa mga halimbawa ngayong araw, kami ay makita ang isang programa na ganito isang maliit na tulad nito. At ngayon mapapansin ang ganitong tao - kaya mapapansin ba akong magkaroon ang mga asul na Muppet-click - siya lamang ang ipinapakita ng sumusunod. Hindi siya ay magkaroon ng isa sa mga berde bandila puzzle piraso. Siya ay may kapag nakatanggap ako ng kaganapan - kaya ang ilang mga di-makatwirang salita. Ko lang ang nai-type out kaganapan doon - siya ay pagpunta sa sabihin, Polo, para sa dalawang segundo. Kaya doon sa iyo kung sino ay pamilyar sa laro na ito ay maaaring alam kung saan ito ay pagpunta. Kung ako ngayon mag-click sa orange Muppet, kanyang mga programa Ginagawa ito. Habang Panahon, kung ang keyboard space bar pinigilan ang, siya ay pagpunta sa sabihin, Marco, para sa dalawang segundo sa screen. Ngunit siya rin ang nangyayari upang magamit ang may interes harangan kilala bilang broadcast. Siya'y pagpunta sa broadcast quote magpanipi, "kaganapan." Samantala, ang mga asul na tao, isipin ang, ay nakikinig para magpanipi quote, "kaganapan." Kaya kahit papaano, ngayon, maaari kaming magkaroon dalawang sprites nakikipag-ugnay. At kapag makuha namin sa web programming, sa paglaon ng panahon, na katulad kalooban ito ikagaling magkaroon ng iyong website gawin ang isang bagay bilang tugon sa, para sa Halimbawa, ang isang pag-click ng keyboard. Kaya ipaalam sa akin sige at pindutin ang space bar. Orange tao sabi ni Marco. Blue tao sabi ni Polo. Kung gagawin ko ito muli orange tao sabi Marco, asul na lalaki sabi ni polo. Kaya sabihin tumagal ito ng isang hakbang karagdagang. Oras na ito, ipagpapatuloy namin, marahil, lamang ng ilang karagdagang minuto dito. Mayroon ba namin - desk lamp, dumating sa pababa. Kayo ay tama sa dulo. OK, maaari mong parehong makabuo. Mayroon kaming desk lamp para sa lahat. Halika sa. Hindi ko alam kung maaari naming panatilihin ito nakakatawa katatawanan up lahat ng semestre, bagaman. Ang lahat ng mga karapatan, dumating sa pababa. At sa habang panahon, kami ay may sa sumusunod na halimbawa upang hilahin pataas, para lang bilisan ang mga bagay ngayon, tulad na namin magkaroon ng isang paghahayag mula sa isa pang hinalinhan ng sa iyo gamit ang parehong pangunahing gusali ng mga bloke. Ano ang inyong pangalan? JUAN: Juan. David MALAN: Juan. Mabait sa akin sa iyo. At? SETZ: Setz. David MALAN: Setz, mabait sa akin sa iyo. John, kung nais mong dumating up muna, ito ay isang lumang paaralan laro na may pangalang Frogger. Gamitin mo ang keyboard para sa mga ito pati na rin. At ang layunin ay upang makakuha ng sa kabuuan ang kalye at tubig. [FROGGER musika at pag-play ng tunog] David MALAN: Sorry, walang desk lamp para sa iyo ngayong araw. Ang lahat ng mga karapatan, Setz, gagawin mo i dumating sa up? Ang lahat ng mga karapatan, sabihin gawin itong muli. SETZ: Huwag ko bang gamitin ang mga arrow? David MALAN: lamang ang mga arrow key. Pataas, pababa, pakaliwa, pakanan. [FROGGER musika at pag-play ng tunog] David MALAN: Gagawin namin tumawag sa kanila aliw premyo ngayon, pagkatapos, Labis na rin tapos na. Dito, para sa inyong dalawa, John at Setz. Binabati kita, ang lahat ng karapatan. Kaya muli, tulad ng laro na ito ay gumaganap, isipin ang tungkol sa kung ano ang nangyayari sa? One, mayroong malinaw na ng maraming mga paggalaw. Ngunit nasaksihan namin kung paano, may mga pusa at ang ibon Halimbawa, kung paano maaari mong gawin ang mga ilusyon ng paggalaw sa pamamagitan lamang ng ilang mga gumagalaw bilang ng mga pixels muli at muli. At kung mayroon kang isang bloke magpakailanman, maaari kang magkaroon ng mga mga kotse paggawa ito magpakailanman. Mayroon kaming mga kakayahan na May ilang mga randomness. Kaya laro na ito ay hindi kailangang maging eksakto ang parehong bawat oras. Yaong mga tala, mga kotse, maaaring magsimula sa bahagyang naiiba beses upang ang mga laro mismo ay mas kawili-wiling sa bawat paglalaro. At Samantala, nasaksihan namin ang kakayahan upang makinig sa mga bar space. Ngunit malinaw na, sa simula, maaari mo ring makinig para pataas, pababa, pakaliwa, pakanan, at talaga ang anumang key sa keyboard. At maaari ka ring gumawa ng ilang iba pang mga bagay. Hayaan akong sige at bumalik upang ang web na bersyon. Hayaan akong pumunta sa aming koleksyon ng mga halimbawa dito. At sa ilalim ng Aking Studio, video kung saan ay, mahalagang, isang folder sa scratch.mit.edu. Mayroon kaming ang bersyon ng web lahat ng mga proyektong ito. At sabihin makita kung maaari kong makuha ang aking computer upang makipagtulungan dito. Ito ay nakasulat sa pamamagitan ng isa sa aming mga kaibigan sa MIT, na tinatawag Ilipat ang Butterfly. At sa sandaling ito ay bubukas up, ito ay pagpunta sa aktwal na gamitin ang higit pa sa hardware ng aking computer. Scratch ang mangyayari sa mga maipapatupad sa Flash. Flash ay maaaring makipag-usap sa iyong webcam, kung mayroon kang isa. Kaya kung pumunta ako nang maaga at full screen na ito dito, i-click ang berdeng flag, paunawa na seguridad mensahe ng Flash ay nagsasabi, ang nais mong payagan na gamitin ang aking webcam? Karaniwan, dapat mong marahil sabihin Tanggihan. Ngunit sa kasong ito, gagamitin namin sinasabi payagan. Pagkatapos ay pupuntahan ko sabihin sa Chrome upang payagan ang mga ito pati na rin. At ngayon, sa sandali lamang, nakikita mo sa akin, yep, sa akin. At kung ang aking kamay napupunta up - Mayroon akong upang hindi ilipat ang aking tumungo sa parehong oras. Mayroon ding isang panganganinag sa screen. Halika sa, doon kami pumunta - maaari mong ilipat ito sa screen dahil mayroon ding puzzle piraso - oh, mo malaman kung ano ito ay, ito ay dahil sa iyo din tingnan ang projector screen sa likod ng akin. Kaya kami ay may isang maliit na walang hanggan bagay pagpunta sa doon. Ang lahat ng mga karapatan, kaya kukunin ko na i-play down na dito. Nagkaroon kami pumunta. Kaya mayroon ding isang puzzle na piraso sabi, kapag nakita mo ang kilusan sa ilalim isa sa mga sprites, maaari kang magkaroon ito pumunta up, down, kaliwa, kanan o sa gusto. Kaya kami ay may isang bit ng virtual katotohanan pagpunta sa dito pati na rin, ang lahat sa loob ng paligid ng aking browser, lamang dito gamit ang aking webcam. Kaya kung ano ang pagkatapos ay sa abot-tanaw. Ang unang hanay problema, tulad ng makikita mo, o website ay mag-online mamaya ngayong gabi sa cs50.net, ay medyo magkano ang pagpunta sa maging bukas natapos. At ipatupad ang proyekto scratch ng interes sa iyo, sa isang laro, isang pakikipag-ugnayan, isang bagay na pansining, at hamunin ang iyong sarili upang gamitin ang anumang bilang ng mga piraso palaisipan. At maaari itong maging alinman sa interactive sa ganitong paraan. O maaari itong maging isang bagay na mas sadya ginawa upang sabihin sa isang kuwento. At tunay nga, na kung saan makikita namin magtapos off ngayon, may isang huling halimbawa. Hayaan akong pumunta sa scratch lokal. Hayaan akong sige at buksan ito, at i-play isang huling programa na isinulat ng isa ng iyong mga predecessors, lalo na ang isa dito. Magandang, taasan ang lakas ng tunog para sa isang ito. [Nagpe-play ng musika] Tagapagsalaysay: Sa susunod na CS50, David Iniimbitahan isang volunteer onstage. David MALAN: Para sa demonstration na ito, kami ay pagpunta sa kailangan ng isang volunteer. Gusto mo bang dumating sa down? Ano ang inyong pangalan? Paglilipat sa.