ЗВУЧНИК: Јас сум [нечујни]. И јас сум апсолвент на Leverett куќа. Учам компјутерски науки, и јас сум ТФ за CS50. Како бруцош, јас дури и не мора лаптоп или smartphone. Немав програмирање искуство. CS50 беше нај запаметени разбира дека Зедов на Харвард, бидејќи тоа беше борба, но тоа беше навистина забавно борба во исто време. И јас направив многу неверојатно, постојан пријатели, и научив многу навистина применливи вештини. Јас сум само среќен што јас не ги споделите со мојот недостаток на позадината да биде изговор за мене Не земајте CS50. Јас сум [нечујни]. Јас сум апсолвент на Leverett Куќа, класа на 2014 година. И го зедов CS50. Дејвид MALAN: Значи ова е CS50. Ова е крај на недела нула. И се сети каде почнавме последен пат, беше со овие светилки, кои беа толку популарна што отидовме и купив повеќе денес. Па мислам дека ова ќе биде нашата работа оваа година - биро светилки, ако дојде на сцената, барем додека снема. Но, ние се користат овие потсетиме, да се воведе основите на претставување на податоците. Ни е потребно начин да се започне претставуваат информации внатрешноста на компјутерот. И наједноставен начин да го направите тоа беше со една состојка, електрична енергија. И наједноставниот нешто што можете да направите со електрична енергија е вклучете го и го исклучувам. Нека електрони проток или не. И користење на овие два основни членки, исклучување и натаму, или лажни и вистински, или нула и еден, почнавме да се види дека можеме да изградиме до, во овој случај, со светло луковици, повеќе броеви од само нула и еден. Ние смета како високо како седум, на пример, последен пат. Но, сите ние треба да направите е да се задржи фрлање се повеќе и повеќе светилки во тоа проблем и, навистина, ние може да претставува било кој број дека ние би можеле да сакаат. Па, ние transitioned брзо потоа на Среда на овој бајт на волонтери. 8 битови е она што ние обично го нарекуваат бајт, па тука имавме осум волонтери во средата, кои колективно се претставуваат осум бита. И кога нивните раце отиде нагоре, тие беа една. И кога нивните раце беа надолу, имаше нула. И имавме овие луѓе излезе на сцената зошто? Она што ние сме во состојба да се прави со оваа низа од битови? Да се ​​создаде азбуката. Ние бевме во можност да се изгради на врвот на тоа претходна ја научил лекцијата и, всушност, започне да се направи поинтересна информации кои барем повеќе познат на нас луѓето. И ова се случува да биде периодично тема во текот на 50, но исто така компјутер науката поопшто, оваа идеја на дели, каде што, на крајот на ден, ако навистина започна основите со компјутер, да, тоа е оние кои и нули. И под кои тоа е само електрична енергија. Но, ние многу брзо да почне да ги преземат тие ниско ниво деталите за готово и да почне да слој на врвот на минатото работел направено, така што ние, во крајна линија, од страна на На крајот на семестарот и, навистина, поопшто како компјутерски научници и програмери, може да направи некои навистина моќен нешта од проширува работа дека ние самите го направиле и, исто така, стои на рамениците на другите. Сега ние брзо transitioned во средата од само потреба да претставуваат информации за желба да се направи нешто со неа. Значи она што не ја дефинираме алгоритам како? A серија на упатства. Па тоа е серија на инструкции, број на чекори кои што, човек, или компјутер, повеќе обично, би изврши една по друга, со цел за да се постигне некоја цел. И имавме неколку цели последен пат, од кои едната беше да се избројат луѓе во собата. А друг таков пример беше да се најде Мајк Смит во телефонот книга. Па можеби ќе се потсетиме дека јас скина телефон книга на половина кон таа цел до наоѓање на Мајк Смит. Целта на тоа визуелни беше да се покаже, повторно, дека сме биле буквално кинење овој проблем во половина, на половина, за половина, а многу брзо одење од како 1000 страници само една единствена страница. Оние од вас кои пропушти тоа на Среда, мислев дека си играме назад некои снимки од она што го пропушти. Ајде да ги разгледаме. [Видео репродукција] -Има одиме. 1500 страници, Ница чиста линија, легитимни солза. [Крај видео репродукција] Дејвид MALAN: Значи тоа било во среда. Ние транзиција, иако, во средата сега да сакаат да се претставуваат алгоритми во некои малку стандарден начин, а не само опишувајќи ги вербално, но се обидува да ги изразат во писмена форма или на екранот на компјутерот, така што би можеле да почнат да се подобри по, и да ја менувате нив, и, на крајот, всушност, анализира колку точни или колку брзо тие беа. Па воведовме овој поим на pseudocode, кој во однос на Едноставен, е она? Добро, зборови. Ајде да одиме малку подлабоко од тоа. Англиски, сигурни, се само кон она што крајот? Зборовите со кои да се создаде или да ги претставуваат алгоритми. Така што не постои еден јазик познат како pseudocode во светот. Тоа е само дека, на англиски, или без оглед на вашата говорниот јазик е, користете еден вид на површно нотација за да се пренесе идеја многу посочно. Но ние ќе се види дека, секако, со Англиски pseudocode, и испоставува повеќето програмски јазици се се дериват на англиски себе, ќе најдеме дека има некои стандардни начин на претставување pseudocode и исто така, програмски код. Па како што можете почнат да се види дури и наједноставните примери денес, реализација на овие истите модели ќе се повторува следната недела. Па pseudocode беше некој вид на јазикот личи програмски јазик. И првиот пример видовме визуелно запишано беше оваа. Тоа беше само три чекор програма, цел беше да се брои бројот на луѓе во dorm соба за дека видео во средата. Но имаше неколку интересни аспекти на овој наједноставен програма. И тоа ќе биде периодични теми. Така и за оние кои се запознаени со ова, една година воведовме променлива. И веројатно сите во оваа соба е запознаени со променлива во контекст на алгебра. Но, тука во програмирање, променливи се, еден, може да биде вика нешто што сакаме. Ние сме биле користење на n како шанкот. Но, ние би можеле да го користат зборот контра, или, како што ќе видиме, повеќето било фраза која можеби би сакале толку долго како што тоа е описни, но тоа е навистина само еден сад за чување. Тоа е парче од меморијата, некои број на битови, и тоа варира од компјутер, како многу делови постојат дека сочинуваат таа променлива. Но, ние може да се стави вредности во него. Досега, ние сме само стави броеви. Но, ние може да се стави вистински зборови. Ние може да се стави ставови. Ние може да се стави слики - ништо, навистина, ние може да претставува со нулите и, ние може да се стави во тоа повисоко ниво поим на променливата. Па прилично директно напред таму. И тоа е линија еден. Но, ние многу брзо тргна од линија, а да се направи нешто со таа променлива. И во согласност три, ние нема Н Ние зголемува Н И ние би можеле да ја напишам оваа било кој број на начини. Но можеби најмногу очигледна е само да се каже, во собата N еднаква на што N е плус 1. Па тоа беше нашиот прираст. Во меѓувреме, имаше јамка. А таа една, исто така, е веројатно прилично интуитивна. А јамка е само нешто во програма што се случува повторно и повторно, некои вид на циклус. И оваа клучна фраза тука, за секоја, е всушност многу честа појава во текот на поголемиот програмски јазици, вклучувајќи ги и оние што ќе се види во курсот. Во секое време можете да го видите збор за тоа обично пренесува идејата дека јамка, нешто циклична, е за да се случи. Но, тоа е вреди да се напомене една други синтаксички детали. Фактот дека третата линија постои всушност вовлечен со тоа што погоди простор бар неколку пати е намерно. Бидејќи човечките конвенција е таква што, кога правиш нешто повторно и повторно, во јамка, како почна на линија два, можете алинеја нешто што припаѓале за таа јамка само за да го направи јасно дека тоа е линија три, а не, на пример, линија четири или пет години, ако имаше линии за или пет години, кои се дел од таа петелки. Па оваа едноставна вовлекување пренесува дека основната идеја. Па ние се применува овој алгоритам, сега, да се неколку примери. И ова, исто така, едноставен пример во реалниот свет. Но тоа се случува да биде претставник на како ќе одат за тестирање на вашето поседуваат повеќе комплексни програми. Ќе се обиде на неколку сценарија, некои претставници влезови, и видете дали можете го добиете саканиот излези. Па овој пример имаше две лица седи во dorm соба. На левата страна е тоа што истите псевдо код. И ова е екран застрелан на самиот Последниот чекор на примената на овој алгоритам на оние влезови, каде што има се две лица во соба и, потсетиме, како што чекор по чекор по еден, и два и три, и две и три и направено - до крајот на тоа алгоритам, ние имавме навистина смета на две фаци кои се во собата. Па потоа се обидовме уште еден пример. И ние рече, што ако постојат нула луѓе во соба? Е овој код се уште е точна? И навистина тоа беше тоа. Тоа само така се случува, дека линија два и, на тој начин, линија три или нема да се изврши. Тие нема да се случи на сите затоа што тие се не само применливи ако има нула луѓе во собата. Но не е голема работа. Линија еден иницијализира N за да се нула, па иако само една линија од овој програма всушност завршува се корисни, тоа сепак дава точниот одговор, како наведено од страна на портокал нула на дното. Но потоа решивме дека беше вид на глупави алгоритам. Тоа беше прилично бавен. Навистина, можам да направам два, четири, шест, осум, десет, кога броење луѓе во една соба. Па ние tweaked на алгоритам, pseudocode, да се каже, сега во линија два, за секој пар на луѓето во просторијата, продолжи да се во согласност три, прираст во од страна на две на секоја итерација. Така што би работеле тука за овој пар на лица во соба. Но, тогаш, ако почнам да размислувам за ова, и тоа не презема долго за да се сфатите, почекајте една минута ова е случува да се скрши, не го скрши во она едноставен случај? Ако има три лица во соба или, поопшто, кога има непарен број на луѓе во соба, вклучувајќи една. Ние ќе го пропушти тоа лице тука, бидејќи не постојат такви парови. Па ние брзо обрати наместо воведување какви дополнителни програмски конструкции на псевдо код. Па состојба, што се нарекува тоа, или една гранка. И тоа е со цел да ја пренесат, визуелно, Идејата на гранка, вилушка во патот каде што можете да го направите ова или, можеби, нешто друго. И навистина, ние решавање на ова прашање од страна на додавање на линија 4, велејќи, навистина, во На самиот крај, ако едно лице останува, па ќе одиме напред и сметам за посебно. Така да се подреди на посебен случај нив, па да се каже, така што сега можеме да се справи со двете парен број на луѓе и непарен број на луѓе. Сега постојат било кој број на начини ние би можеле да имаат изразени ова. И искрено, би можел да сум бил уште повеќе гнида пребирливи кога станува збор за мојот избор на Англиски за pseudocode. Но барем духот на идејата е пренесена. Ако му го додели овој код на пријател кој не е во CS, или никогаш не зема CS, шансите се тие би можеле да дознаам, со оглед на три лица во собата, како да се смета оние луѓе врз основа на овие упатства. И тоа е навистина сакаме да постигнеме со pseudocode, некако стандардизира тоа како ние ќе за претставуваат идеи, така што можеме да почнат да се направи повеќе комплицирано нешто уште. Така што не води тогаш, денес, на актуелните код. Ние почнат да се програмираат денес, иако во пријателска средина. А потоа ние транзиција многу брзо да повеќе arcane синтакса, но оној кој ќе видите е фундаментално исти како идеите ќе видите манифестира со овој друг јазик денес. Тоа е само ќе да се погледне малку различен. Така, наместо само повик овој код, јас сум ќе биде малку попрецизен и да каже, па натаму, кога пишувате програма, сте пишување изворен код. Тоа е вид на како pseudocode. Но ќе видиме тоа не е вид на лабава кога станува збор за изборот на зборовите кои ги користите. Кога програмирање на јазик, имате да го користат зборови, фрази, синтакса, дека другите луѓе одлучија претставуваат тој конкретен јазик. Па pseudocodes е до вас. Вистински програмски јазик како Ц, како што ние на крајот ќе видиме, е стандардизирани од страна на други луѓе. Па, како да одиме за пишување некои изворниот код? Па, јас ќе одам да си напред и да го направите тоа. Одам да се оди напред и да отвори прозорец тука. Повеќе информации за ова следната недела. Но, ова е уред наречен на CS50 апаратот. Јас сум водење на парче софтвер на мојот Mac, иако можете да го прават истото на компјутер на Windows, кој е давање мене илузијата водење на различни оперативен систем целосно право тука во прозорец на мојот Mac. Јас сум само полна тоа прикажани така да не всушност гледаат на Mac OS токму сега. Ова е оперативен систем наречен Линукс. Тоа е многу популарна. Тоа е многу брзо. Тоа е многу слободни, што ја прави многу огромна, особено во комерцијалниот свет. И повеќе за тоа кон крајот на семестар, кога ние се користи Linux доста за веб програмирање и хостирање на Крај на веб-сајтови и проекти. Па сега, само знам дека ова е десктоп што е наменета да се погледне нејасно запознаени со Windows и Mac OS. Тоа само има некои поинакви имиња и икони за нешта. Но, ова е т.н. CS50 апаратот, виртуелна машина која, почнувајќи од следната недела, вие момци ќе се кандидира во внатрешноста на прозорецот на свој Mac или PC. За денес, јас ќе одам да се отвори наједноставниот на програми. Таа се вика gedit. И ова е само графички уредувач. Тоа е вид на како што е Microsoft Збор, но поедноставно. Тоа е вид на како текст уреди или бележник. Тоа е само многу едноставна програма со што да се напише зборовите на екранот. Тоа само така се она што се случува дека ако јас ја зачувате додадени фајлови: дека јас се создаде кога оваа програма во посебна продолжување допаѓа. в, наместо на. doc, или. xls, или што ти си запознаен со тоа, можам да всушност креирање на програми со користење дури и оваа едноставна уредувач на текст. Па да ми го направите тоа. Дозволете ми да оди напред и да ја зачувате оваа поднесе прво како hello.c. И повторно, овој кориснички интерфејс ќе стане запознаени за вас брзо. Но, за сега, јас сум само пишување во името на датотеката. Одам да го зачувате во мојата Џон Харвард домашен директориум. И сега морам ова јазиче што укажува Јас сум навистина уредување фајл наречен hello.c. Значи ништо не е премногу интересна уште. И сега тоа се случува да се добие прилично криптичната. Одам да зумирате, само па тоа е повеќе видлива. И јас одам да започне пишување вклучува stdio.h, int главната, празнина, отворен кадрава заграда, еден, два, три, четири простори на вовлекување, печатење ѓ, за печатење нешто форматирана, цитирам unquote, "Здраво, свет" обратна коса црта, n, во близина понуда, затворена заграда, запирка, внесете Backspace, Backspace, Backspace, Можни вредности се, затворена кадрава голема заграда - Имам програмиран. Сите права така што ова е супер едноставен програма, навистина, програма со која секој започнува програмирање со. И сите го прави тоа, за сета негова сложеност, се печати надвор на екранот, погоди што? Здраво светот. Но тоа не е доволно само да се напише програма. Па ова е код. Ова е изворен код во јазик наречен в. Таа е зачувана во моментов фајл наречен hello.c. Сега гледам на дното на екранот овде. Повеќе за ова, повторно, во неделите што доаѓаат. Но тоа е она што ќе го наречеме терминален прозорец. Тоа е трепне, црно и бело прашува. Тоа е вид на старата школа интерфејс за компјутер кој генерално не користите глувчето или други графички елементи. Тоа само користи вашата тастатура. И јас да напишете команди на овој трепка брзо. И за целите денес, јас сум само ќе напишете следново - направи здраво. И таа програма, се направи, е само програма која, во реалниот свет, овие дена, ние двојно ќе кликнете на. Но, во овој интерфејс за денес, ние сме ќе напишете своето име во оваа брза. направи здраво е буквално ќе ме направи програма наречена здраво. И тоа нема да го стори тоа од страна гледајќи за фајл, само со Стандардно, наречен hello.c. Тоа се случува да се претпостави Сакам програма C од природата на тоа како овој компјутер е конфигуриран. Па јас одам напред и притиснете ентер. Гледам некои криптичната излез, но ова ќе стане премногу запознаени пред долго. Ова се случи да се кандидира на компајлерот, повеќе за тоа во еден момент, наречен ѕвекот. Но сега, имам само уште еден трепка прашува. И јас може да оди напред сега и напишете точка коса црта, за неинтересен причини ние ќе се врати следната недела - здраво. Така што сите на овој напор досега само за да пишуваат наједноставниот на програми кои, штом ќе притиснете Enter, дали тоа. Па јас сум напишал мојот прв програма. Па јас сум намерно ѕиркаа забава во овој многу едноставна програма за неколку причини. Едно, тоа е тешко да се добие возбуден за земање на класа ако ова е на крајот од играта. Но повеќе од тоа, има многу одвлекување на вниманието тука горе. Првиот пат кога ќе научат да програма, за оние од вас помалку удобно, и дури и јас, назад во текот на денот, кога јас прв пат видов нешто како ова - може да вид на фигурата тоа, сите во право, ова е во печати Здраво светот. Но, има толку многу одвлекување на вниманието. Има толку многу работи синтакса на екранот што се добива во начинот на многу едноставен, инаку едноставно, идеи. Значи она што се случува да се направи денес е ние сме случува да се стави настрана C и доаѓаат назад кон тоа во понеделникот. И ние ќе треба да го користите графички програмски јазик наречен Scratch. Ова е програмски јазик, дека јас алудираше на Среда, што се случува за да ни овозможи да го стори истото вид на работи но се прават слепи, за денес, на тркалезните загради, заграда, на запирки, и сите овие глупи одвлекување на вниманието кои се во начинот на кој, во овој прв ден, на некои основни, прилично интересни идеи. Па кон таа цел, јас ќе одам да си назад на мојот десктоп овде и воведување на вас на алтернатива за тоа Програмата, која се случува да се погледне малку нешто светло ова. Тоа е како ние ќе се спроведе тоа истата програма денес - две загатка парчиња кои, кога испреплетени и кликнале на, ќе му каже на светот, Здраво светот. Па ајде, всушност, оди таму. Па ќе одам да се оди напред и да се отвори веб-страница познат како scratch.mit.edu. И ова ќе доведе мене да овој веб-сајт овде. Однапред, јас сум најавени во овој веб-страница и првите проблеми со кои се ќе ви прошетка низ некои од овие чекори. Одам да се оди напред и да кликнете на мојот нула папка тука. И ова се случува да ми го покаже некои проекти кои јас сум всушност се создаваат во однапред. И излегува дека овој графички програмски јазик не само што се случува да ни ги споделите со програмата со влечење и намалувањето овие мозаик парчиња, можете дури и не треба посебен софтвер. Тоа е сите вградени во рамките на прелистувачот, па дека можете да го направите ова, во теорија, за вашите компјутери токму сега, како што некои од вас добро може да биде, дури и без потреба софтвер како на CS50 апаратот, кои ќе дојдат следната недела. Па јас ќе одам да се оди до врвот агол тука и кликнете на Create. И во еден момент јас ќе одам да се добие празно екранот преку кој можам да почнам да програмирање во овој графички програмирање на животната средина. Но овој пат, тоа се случува да биде многу, многу поедноставно да всушност го стори тоа. Значи во само еден миг, кога на Wi-Fi соработува, сега имаме овој екран. Толку брзо вербални турнеја, но јас се осмелувам да кажам, секако, кога ќе се нурне во Првиот проблем во собата, да ќе најдете сето ова многу достапни и прилично интуитивни. Но, ајде да се наслика ментална слика за само еден миг. Значи под овој брза велејќи спаси промени, ти си за да ја видите нула. Ова е самовила. Тоа е карактер. И тој живее од она што ќе го наречеме една фаза, овој голем бел правоаголник на кои тој може да се движат нагоре, надолу, лево, право, и не, навистина, други видови на акции. Во меѓувреме, во средината на корисников интерфејс, ние имаме цела група на мозаик парчиња. И ќе видите дека тие велат дека работите како се движат 10 чекори, се сврте 15 степени, точка во одреден правец. Но, има категории на блокови до тука. Значи, ако јас одам да изгледа, ќе видите дека има други загатка парчиња кои очигледно ќе го кажам ова КИТ да кажам здраво, да размислуваат, да се покаже себе, се сокрие. Ако одам долу да Звучи, се испоставува има начини да се пуштаат звуци како meow, да се запрат сите звуци, да играат тапани. Значи, скратам приказната, таму е целата куп на мозаик парчиња кои ви дозволуваат да се каже оваа мачка, или било кој број на другите ликови, што да правам. Но да се направи сето ова што се случи треба да започне програмирање. И овој голем белата кутија, или сива кутија, на на десната страна, ова е местото каде што Одам да всушност го повлечете и капка оние мозаик парчиња. Тоа е мојот празно текст прозорец еквивалентни. Па јас ќе одам да се оди напред и да кликнете Контрола во средината. Или подобро, дозволете ми да започне под настани. Под Настани клупата, ќе забележите неколку работи кои се намерно криви на врвот во таков начин што тие веројатно не блокирам на врвот од сложувалката парчиња. И тоа е затоа што тие одбележат почетокот на програмата, почетокот на сценариото, така да се каже. Значи, ако јас одам напред и повлечете, кога зелена знаме кликнато над тука, а потоа јас сакате оваа мачка е да се каже нешто во прв. Па ќе одам да оди под изгледот панел. И јас одам да се оди напред и го имате на кажам здраво блок, и повлечете, и капка, и нека оди, така што таа автоматски споеви таму. А потоа забележите можам кликнете на текстот. И јас може да ја замени таа да биде повеќе специфични како, да речеме, здраво светот. И сега имаме програма со која тврдам е еднаков на оној многу повеќе arcane програма јас спроведува во C пред еден миг. Ако одам над сега на левата страна, забележите дека е голема гости знак и голем зелено знаме. Дозволете ми да зумирате за јасност. И кога јас сега кликнете на овој зелено знаме, што веројатно може да се погоди она што оваа прва Програмата е сега се случува да се направи. Па таму, исто така, ние сме програмирање, но ние не сме всушност станува заглави во некои од тие синтаксички, минута детали. Но, ајде пробајте нешто малку поинтересна. Дозволете ми да одам во мојата Скреч папка тука. И всушност, дозволете ми па да ми се отвори посебна програма тука за само момент, Рашири овој прозорец, отварање датотека, и јас одам да одат во денешниот изворниот директориум. Како и секогаш, ќе најдете, денес и наваму, дека сите примери денес се достапни во внатрешноста на на курсот веб-сајт. И јас одам да се оди напред тука и да го изберат до малку нешто различно. Овој овде, за кои Ми треба волонтер. Кои би сакале ламба за работна маса денес? Добро, како за некој малку - Дали сте на крајот? Ајде надолу. Сега, вие би сакале да учествуваат, или само велат започне со биро светилка? VANESSA: [нечујни]. Дејвид MALAN: OK. Одлично, она што ви е име? Vanessa? Давид. Убаво да ви се исполнат. Па ајде и Ванеса се случува да ја преземат контролата на мојот тастатура за само еден миг. И она што го направив тука, само за време на поради, како што сум реализира Wi-Fi е малку бавен, нула, програмирање на животната средина, дека ние сме користење, исто така, може да се симне и се кандидира за вашиот компјутер. Значи она што го направив во однапред на предавање, во случај тоа ќе се случи, е јас ја преземале сите датотеки ние сме за да си играат со така што тие можат да работат малку повеќе брзо, токму тука на мојот лаптоп. Па тоа е зошто сега гледам Мек-специфични интерфејс. Па ќе одам да се оди напред и се отвори оваа. Одам да се оди напред сега и полн екран на прозорецот. И како што ќе видите, ние може многу брзо, како овој ученик не, една од вашите претходници, одат од Здраво светот на многу многу повеќе привлечна апликација. Значи тука се инструкциите. Ох, и ние имаме една друга работа. Мислев дека ќе биде забавно, бидејќи, нормално, ние ќе се снима камери овој начин. Мислев дека ќе биде забавно ако, Ванеса, можеме да видиме дека светот низ твоите очи. Значи тука имаме некои Google стакло. [Восхитен бори] Дејвид MALAN: Ние само ќе се даваат далеку биро светилки денес. [Смеа] Па да ми знак на овој горе. Сите во право, па допре ова. Добро, стакло, снимање на видео. Сите во право, Ванеса? Сега, како настрана дека има ништо да се направи со нула, ако се погледне малку и на десно, ќе видите буквална стакло, а вие треба да види малку правоаголен прозорец. Треба да се види на сите ваши соученици снимале во моментов? Да. VANESSA: Да. Дејвид MALAN: OK. Па тоа е добро. Ние ќе се ослободи оваа снимка подоцна. За сега, го свртам вниманието на екранот овде. И она што вашиот претходник има направено е стави некои инструкциите на екранот само со помош на боја програма. Па си оди за да, во еден миг, притиснете го тастерот space да започне. А потоа некои мозаик парчиња се случува да се започне се движат нагоре на екранот. И сакате да ја погоди стрелките на тастатурата, само како и во реалниот DDR, во согласност со работи обидел со оние стрели. VANESSA: OK. Дејвид MALAN: Сте се игра оваа порано. VANESSA: Да. Дејвид MALAN: Сите во право, Ванеса, оди напред и да ја однесете далеку. [Музика - Kayne West, "посилни"] [Аплауз] Дејвид MALAN: Па ајде сега преземе чекор од тоа. Толку јасно, тоа е на крајот од играта. На крајот од играта не е здраво светот. Но, вие не мора да мора да направите нешта кои се толку интерактивни. Исто така можете да го направите анимација. Така на пример, една од твоите наследници направи оваа програма тука, кој раскажува приказна повеќе од тоа не се спроведува игра. Па дозволете ми да оди напред и да се отвори тука Програмата во нашата истиот извор директориум од денес. Ова еден повик, и ајде да почнеме со, колаче љубовна приказна. А не да се направи ова е премногу академски, но, како што се види овој, мислам да себе кој од оние едноставни програмски концепти ние разговаравме за досега - променливи, и петелки, како и условите, го вашиот претходник најверојатно користи само за спроведување на некои од на визуализации. Ќе видите тука. Па јас ви даде Колаче љубовна приказна. [Музика - Green Day, "празник"] [Несреќа] [Музика - желките, "Среќни заедно"] Дејвид MALAN: Сите во право, па таму, имавме колаче љубовна приказна. Но дури и таму - [Аплауз] Дејвид MALAN: Сите во право, дури и таму, се размислува за, како оние срца отиде од дното до врвот на екранот, таму е всушност малку случајноста случува. И навистина, ќе видиме дека дури и во наједноставниот на средини, како Нула, како во C, може да генерира случајни броеви, или илузијата на случајни броеви, така што играта е малку поинтересна од тоа би можело да биде ако сте имале апсолутно хард кодирани сè. Во движењето што го гледате, таму има некој вид на одговорност. Штом джинджифилово човек допира на джинджифилово жена, таа се чини дека се движат подалеку. И така, всушност, може да се спроведе во повеќето програмски јазици, поимот на настаните, при што доколку една страна допира Од друга страна, тоа може да предизвика некои на вашиот изворен код за да всушност извршување. Можете да слушате за такви работите на екранот. Па ајде да ги брз турнеја, а потоа, некои од градежни блокови може да се користат за да се постигне некои од овие цели. Значи тука е она што ние ќе отсега јавете се на изјава. Во соопштението се случува да биде пурпурна во Нула, малку нешто како ова, но тоа е произволна. Во соопштението е само загатка парче или, поопшто, инструкција, дека кажува на компјутерот да го стори нешто, изјава. Значи тука е едноставен примерок. Велат здраво светот. Уште еден се може да почека една секунда. Па оваа загатка парче, која е поддржана во Скреч, ние ќе ги споделите со вашите карактери пауза за некои бројот на секунди. Ова, исто така, е само изјава. Тука следната, имаме уште повеќе интересна, пофални звук meow, и малку стрелка значи дека во нула, ова е паѓачкото мени. Па можете да увоз звуци. Можете да снимате звуци и прават други забавни нешта во Скреч. И дека, исто така, иако, на крајот на ден, е само изјава. Но сега ајде да се воведе повеќе интересно парче, што е позната како Рационален израз. Капитал Б, именувана по колеги по име bool. И Булова изразување е само загатка парче или, поопшто, на дел од информациите што е или вистинити или лажни - една или нула, да или не. Па тоа е само еден од оние две спротивности. Па една таква Булова изразување во светот на гребење изгледа вака сино загатка парче. И тоа е поставување на прашање, глувчето надолу, и дека може да биде, на Се разбира, точно или неточно. Значи со ова загатка парче во нула, добро, ќе бидете во можност да детектира ако загатка ако на глувчето е, всушност, се одржана надолу од страна на човечкото интеракција со вашата програма. Оваа една е малку повеќе апстрактно, но овие две бели кутии се само за броеви. Па можете да ги правите нештата како е ова број помал од другите? И ако е така, Скреч ќе се однесуваат еден или на друг начин. Ова ми е малку повеќе графички. Тоа е ако самовила, ако мачката, за пример, е всушност допирање на глувчето. Значи, ако малку стрелка главата е лебди во текот на мачка, тогаш овој загатка парче ќе се оцени на true. Тоа ќе биде точно, во кој случај, ако го користите овој Булова изразување, како што ќе види во еден момент, во една гранка, можете да или го прават тоа, или можете да го направите тоа, многу како имавме услов проверено, е таму уште една последната личност во собата? Ако е така, додадете една. Инаку, не грижете се понатаму. Па Булова израз, исто така, може да биде и-ед заедно или или-ед заедно. Па може да се комбинираат Булова изрази и велат дека ова и тоа мора да биде вистина за целата работа да биде вистина. И тука е повеќе реалниот свет пример. Ако сте користеле CS50 Курсеви да направите разбира шопинг, овие провериш кутии таму, каде што ако провериш дека наога да курсеви, кои ќе речат, да, само ми го покаже предмети за кои вредноста Q е 4.5 или повисока. Ако се Отстранете го, не, не грижите за тоа. Или слично, на десната, не го прави Конфликт со Курсеви Јас сум преземање, тоа е точно или неточно. Тоа е само Булова изразување. Значи сето ова време кога сте користеле веб-страниците со провериш кутии, ти си само Вклучувам еквивалент на Булова изразување и исклучување. Па во каква форма да ги користат овие? Па, во Скреч, ќе видиме во еден момент дека постојат услови кои изгледа вака. И тоа е вид на разумен, бидејќи многу како во pseudocode, ние требуван вид на буквата У мозаик парчиња, значи дека нешто внатре во тоа U е ќе изврши, или не, во зависност за тоа каде е тоа. Па ако Булова изразување, тогаш она што е внатре ќе се извршуваат. Во меѓувреме, тука е ако / друго блок. Значи, ако сакате една гранка што оди ова начин или дека, гребење ни дава тоа. И со оваа логика, сега, и покрај тоа што загатка парче е јасно премногу мал да клин нешто друго во него, нула мозаик парчиња, тие се само ќе растат. Кога ќе повлечете и да го испуштите над нешто, тоа само ќе се зголеми за да одговара без оглед на тоа е ти се обидуваш да се направи. Па ние може да потрае два од овие работи и направи три начин вилушка на патот, па дека можете или направите ова, или тоа, или оваа друга работа само со гнездење нив на тој начин. Се разбира, ако го правиш тоа премногу многу, тоа ќе почне да се грди. Но во тој момент, ти си, всушност, веројатно нема програмирање многу добро. И така што ќе се повтори тема, исто така, дека на стилот. Само колку добро се всушност форматирате вашиот код? Или колку добро ја дизајнирате вашата код? Но повеќе за тоа во иднина. И сега имаме петелки. Таму е убаво, засекогаш јамка во Скреч што буквално значи тоа - направи она што е внатре на ова, повторно, и повторно, и повторно. Можете да бидете поконкретни и да каже, да го направите следново нешто 10 пати. Исто така можете да го користите променливи. Можете да излезе со било име во таа малку паѓачкото и да каже, ми даде променлива наречена n и во собата тоа еднаква на некои вредност. И тогаш може да има функции. Но повеќе за оние кои се во само еден миг. Дозволете ми да се вратам на моето Нула интерфејс. И дозволете ми да оди напред тоа време. И ајде да одиме напред и да се отвори, да речеме, на пример од - тоа е малку поинтересна. Дозволете ми да оди напред, и, всушност, дозволете ми да го направи сам. Јас не треба да се отвори оваа. Дозволете ми да отидете на датотеката, Нова. Одам да одат на Настани. Одам да одат кога зелено знаме кликнато, и јас одам да се оди на звук. И јас одам да drag and drop овој загатка парче, играат звук meow. Се заглави заедно. И сега, ако јас кликнете на зелениот знаме - [Meow ЗВУК] Дејвид MALAN: симпатична. Добро, па сега ајде да направиме нешто малку повеќе логички само за да покажат дека можеме, сега за сега. Одам да unlatch ова од тој тип. Одам да се оди на контрола. И јас одам да го зграби состојба. Па ако нешто тогаш. Па тоа е како тоа изгледа таму. Па ми треба Булова изразување. И дозволете ми да оди напред и да се каже, дозволете ми да одат на оператори. Одам да се направи нешто малку Mathy, само за клоци. Одам да одат во тука и да кажам, ако нешто е помалку од нешто друго, оди напред и да се направи нешто. Па сега, знаеш што, по случаен блок. Па забележите како, ако јас лебдат над оваа нешто овде, дека ќе се држат во таму. Па сега, информации, јас сум почнуваат да прават нешто веќе повеќе логично интересна. Ако случаен број помеѓу 1 и 10 е помалку отколку, да речеме шест. Ако изберам шест, што во суштина средства, направете го следново со 50% веројатност. Тоа е како да се нервира паричка. Сега, можам да направам нешто условно. И дека нешто ќе одам да направите е да го пуштите звукот. Па сега, кога јас кликнете на екран знаме, тоа е како фрлање паричка. [Meow ЗВУК] Дејвид MALAN: Тоа беше глави или какво ли таму. Да го сториме тоа повторно. [Meow ЗВУК] Дејвид MALAN: Шефовите повторно. [Meow ЗВУК] Дејвид MALAN: Шефовите повторно. Phew, ОК. Опашки тоа време. Значи 50% од времето, ако правиме ова бескрајно долга, ќе добиете 50% мјаукања и 50% тишини. Па таму, само основни градбени блок кој ни овозможува да го направите тоа. Но, ова е вид на досадни дека имам да се задржи кликнување дека копче. Па да го повлечете и фрлаат сите оние далеку. Ако ги влече до средината, тие само ќе се избришеш. Дозволете ми да одат нагоре да се контролира. Дозволете ми да одам да засекогаш. И овој пат, јас ќе одам да направите нешто minorly досадни. [Смеа] Дејвид MALAN: И дозволете ми да одат напред и да направи контрола. Почека една секунда, само така тоа не е премногу хелиум. [Meow ЗВУК] Дејвид MALAN: Тоа не е природно. OK. [Meow ЗВУК] Дејвид MALAN: И известување што се, убаво околу нула, за оние од вас кои имаат претходно програмирање искуство, не треба да се почне и запре. Вие не треба да се компајлира. Можете само да го промени, а на програмата ќе се прилагодат динамично. Значи ова е добивање на малку интересно. Но нека си го земе еден чекор понатаму. Дозволете ми да оди напред и да се ослободи од таа програма. [Meow ЗВУК] Дејвид MALAN: Тоа е она што ние ќе јавете се на бубачка во Скреч. Тој не треба да го чуваат прави тоа звук. Па ние ќе му каже да престане. Добро, па сега јас сум ќе одат во - Јас ќе те оставам МИТ знаете. Ќе одиме во текот тука за да Засекогаш. И сега, сакам да се направи нешто повторно и повторно. Одам да се оди во контрола. И ајде да видиме, јас ќе одам да го повлечете мојот ако состојба таму. Па сега забележите логика. Кога зелено знаме е кликнато, го прават нешто вечно, но само го направи тоа нешто ако тоа друга работа е вистина. Одам да одите да, ајде да велат, чувствувајќи. И јас одам да се оди напред и да изберете допирање и да го испуштите таму. Тоа е Булова израз. И сега, забележи, во овој пад down менито, постојат некои предефинирани вредности. Па можам да кажам, да не сте допирање на работ на екранот? Или сте допирање на покажувачот на глувчето, на стрелката на екранот? Па јас ќе одам да направите тоа. И ако е така, тогаш јас ќе одам да си напред и да играат звук meow. Па сега јас вид на имаат Почетоците на играта - симпатична игра. [Meow ЗВУК] Дејвид MALAN: Добро, симпатична, кабриолет игра. Дозволете ми да чекаат, да речеме, една секунда таму. Сега играат повторно, со кликнување на зелено знаме. [Meow ЗВУК] Дејвид MALAN: Па сега тоа е како фаќање мачка. [Meow ЗВУК] Дејвид MALAN: Добро, сега ова една јас го направи однапред. Многу доцна, таа добива вид на лесно да се прават глупави работи. Па нека ме да си одам од тука. Да речеме, дека беше домашно милениче мачка. Ајде сега отворете Не домашно милениче мачка. Сега, ако играме овој, може да се погоди, ако сте гледа во екранот - [Meow ЗВУК] Дејвид MALAN: Сега, ако јас миленичиња мачка [Роар Лајонс] Дејвид MALAN: Па не, всушност миленичиња мачката во тој случај. Па сега ние само треба еден пример на гранка која се случува во две насоки. Сега дозволете ми да оди напред и да отвори уште еден тука. Оваа една, исто така, меѓу нашиот извор кодот датотеки за тој ден. Па да ми се вратиш во мојот Извор директориумот и да одат во, ајде да се избере овој човек овде и да видиме она што е различно. Леле, сите во право, па сега тоа е добивање малку посложени. И пред да го гледаме она што овој човек го прави, ајде да се обидеме да заклучиме, од програмата на десната страна. И сега нула јасно ни овозможува да се имаат повеќе скрипти, повеќе програми поврзани со една самовила, со еден карактер, и, очигледно, Тие се двете случува да се кандидира заклучани. Бидејќи и двете од овие програми започнува со кога зелено знаме кликне, ова е алудирајќи на повеќе напредни тема, со што некои од вас може да биде запознаен, познат како провира, или мулти-Threading. Испоставува, скратам приказната, компјутери денес во суштина може да направи повеќе работи одеднаш. Или тие може да направи една работа во еден момент, така брзо што дури и не забележите дека тоа е всушност прави една работа во исто време. Но, за сега, да претпоставиме дека и двете од овие програми се случува да се изврши на во исто време. И известување, и двете од нив имаат засекогаш мозаик парчиња. Па тие се двете ќе продолжи да работи додека не хит на црвениот стоп знак. Па што се тие случува да направам? На левата страна, јас сум очигледно за прогласување на променлива наречена пригушени. Па јас не нарекуваат нешто како здодевен како Н го нареков пригушени овој време за да се пренесе значење. Јас го постави еднакви на нула. Ајде да мислам на тоа како неточно, или ајде да мислам на тоа како неточно. Сега, засекогаш го направите следново. Ако просторот бар на тастатурата е притиснато, а потоа, ако пригушени е еднаква на нула, потоа да се промени пригушени на еднаква еден. Друго, во собата пригушени до нула. Па логично, иако тоа е цела куп на мозаик парчиња и тоа е само велејќи, кога ќе се погоди простор бар, што треба да направам за да променливата наречен пригушени? Промени тоа од една до нула, или нула до еден. Тоа е се. Па тоа е како претворање на една прекинувач за светло или исклучите и сеќавајќи се, со променлива, што Јас го направив тоа. Во меѓувреме, на десната страна, во однос на Едноставен, она што е целта на сценариото на нели? Студент: Да ја играат лав морето звук. Дејвид MALAN: Да се ​​игра Море лав звук, ако тој не е на нула, од страна на Природата на таа променлива. Па ние сме споделување на држава, така да се каже, размена на информации низ овие два скрипти бидејќи, информации тука, ние сме засекогаш направите следново. Ако пригушени е нула, па ако тоа не е пригушени - ако пригушени е лажна, а потоа играат овој лав Море звук. И мислат само за себе, здраво, здраво, здраво, за две секунди, почекајте еден момент, а потоа проверете повторно. Значи, ако ние одиме сега овде на лево, до каде овој човек е, и кликнете на зелено знаме, [Морски лав ЗВУК] Дејвид MALAN: На која точка не ова се навистина досадни? Бидејќи ова само ќе трае вечно. Значи, понекогаш, бесконечна петелки, така да се каже, се намерна. Но, во овој случај, веднаш штом ќе хит на Space за, застанува. Сега на програмата нема да престанам. Тоа е уште работат во овие петелки. Но, ако јас се добие просторот бар повторно - [Морски лав ЗВУК] Дејвид MALAN: Тој се случува да ги собереш до каде што застанавте. Па таму е еден начин за нас да се направи нешто повторно и повторно, но, дека време, само условно. Добро, додека ние сме во оваа насока на вршење на работи повторно и повторно, дозволете ми одат во друг таков пример тука. Оваа една ќе го наречеме броење овци. И ќе забележите она што овој човек го прави тоа. Тоа е всушност малку повеќе како pseudocode игравме со на Среда, при што тој поставува некои контра, мислам на тоа е како n повторно, да нула, тој засекогаш го прави следново. Тој вели дека контра е вредност за еден Вториот, чека втор, а потоа менува контра по еден. И во овој контекст, дека само значи зголемување неа. Па тој еден додава на него. Па ова е буквално - тоа не е сосема она што мислиме дека на како броење овци. Тоа е овците го прават броење, засекогаш, од нула. Значи можеме да прават слични работи таму, логично. Но сега ајде да се обидеме да се чисти некои од овие работите. Дозволете ми да оди напред сега во едноставна пример, каде што нашите мачка е само ќе започне кашлање. Сите во право, па тука имаме кашлица 0 - компјутерски научници да почне сметано од 0. Па оваа мачка е само ќе да кашла три пати. И еве како јас спроведува тоа. Кога зелено знаме е кликнато, кашлица, чекај, кашлица, чекај, кашлица, чекај. И јас го направи ова само со влечење и пуштање мозаик парчиња. Или ако почне да нескопосник со нула, ќе видите можете да всушност дупликат парчиња, така што можете да направите работи побрзо, без влечење и пуштање реклама nauseum. Но, ние не сме на најдобар пат тука. Бидејќи како можам да го направи кашла четврти пат? Па, би можел сортирање на одат надолу тука. Јас би можеле да се дуплираат, а потоа ставете овој во таму. Како можам да го натера да кашла по петти пат? Па, копирате и залепите повторно. Или повлечете капка повторно. И многу брзо, оваа програма ќе почне да се добие навистина, навистина непотребни, навистина долго, но навистина неинтересен. Но, има начин да се исчисти ова. Што е очигледен начин за чистење на ова? ОК, па ние би можеле, всушност, навистина одат надвор и, кога ќе удри на простор бар, имаат него кашлица. Но, ако јас само сакам да направам нешто repetitively, да се потсетиме дека ние немаме некои контрола гради. Дозволете ми да се помести ова надвор од начин, одат под контрола. Дозволете ми да го направите да се повтори, да речеме, три пати. И сега дозволете ми да украде некои на овие мозаик парчиња. Дозволете ми да прибере овој тука. Дозволете ми да фрли овие далеку заедно. И сега, имам подобра дизајнирана програма. Зошто? Ако сакам да го промените бројот на пати оваа мачка кашлање, сите треба да направите е промена на една променлива, или една вредност, а од три, четири, или пет или шест. Или би можел да направи нешто условно, дури, со простор бар ако сакав да. Па ова е општ принцип. Откако ќе започнете со копирање и вметнување код, дали тоа е во нула, во или Ц, правиш нешто во ред, најверојатно. Или барем еднаш сте ги надмина некои разумен број на копии и пасти, ти си веројатно прават нешто погрешно. Но знаеш што? Јас не навистина ми се допаѓа ова. Ова не е најчист дизајн. Посакувам да имаше загатка парче се нарекува кашла, бидејќи тогаш јас не би треба да ја имплементира оваа себе, на старомоден начин, од страна на ја каже, и да чекаат - Што ако тие беа само кашлица загатка парче. Па, јас всушност може да го направите тоа. Дозволете ми да одат под повеќе блокови, кликнете Направете Блок, а сега можам да добијам овој прозорец тука. Одам да се јавите ова нешто кашлица. Одам да одите напред и кликнете OK. И сега оглас, ќе добие нов почеток парче што е закривен на врвот. И она што јас ќе одам да направите со ова, јас сум случува само крадат овие блокови. Одам да ги стави тука. И сега, со овие три парчиња, јас сум спроведува она што јас ќе одам да се јавите на функција или процедура, или некои од можеби ќе го знам тоа како метод. Мали разлики помеѓу зборовите. Но, за сега, ајде да ова го нарекуваме функција. Ова е само една нова загатка парче. Сега се спроведува вака. Но забележите дека Скреч ни даде физичката репрезентација на таа целина блокира овде. Па сега, јас само да го повлечете овој овде, велат, се повторува три пати, и што ќе се случи сега, кога јас го играм оваа скрипта, само една програма работи во исто време. Има само еден кога зелено знаме кликнато. Но дека пурпурна блок наречена кашлица е ефикасно кажува Скреч, секој пат кога ќе видите дека загатка парче, всушност, изврши овие чекори што јас се случи да се спроведе рачно. Па тоа е вид на уредни. Но сега, да претпоставиме дека решив, јас не сакате оваа мачка само да кашла. Сакам од него да биде во можност да кивнете, како и. Па, како би можеле да се обратите за спроведување на кивавица? Па можев доста го прават истото. Би можел да се направи уште еден блок. Јас би го нарекле кивавица, кликнете OK. Потоа, тука можев всушност се, дозволете ми да се дуплираат ова - и таму е местото каде треба да се чувствуваат како ти си веројатно се прават нешто во на најдобар начин. Можев да кажам нешто како, achoo, за една секунда. Почека една секунда. Сега имам нов блок наречен кивавица. И навистина, тоа е. Но, ова, исто така, треба да почне да се чувствуваат - можеби не на првата недела на класа, но од страна на втората - само малку излишни. Јасно се, има некои вишок тука. Значи, да ми предложи, наместо тоа, дека ние насочите оваа дефиниција, како што следи. Дозволете ми да одам до мојот датотеката мени. Јас не одам за да се спаси оваа верзија. Одам да се оди во една од мојата premade додадени фајлови: тука. И јас одам да се оди напред и ќе отвори кашлица 2. Whoops, кој беше кашлица 2. Дозволете ми да оди напред и да се отвори кашлица 3, која е оваа изворниот директориум. Кашлица 3 и информации - О, јас реков приказната во погрешна цел. Дозволете ми да се опорави од оваа приказна. Приказната што сакав да кажам завршува со кашлица 4 - таму е. Па што ако јас, наместо тоа, се дефинираат поголем загатка парче се нарекува дефинира, велат збор n пати. Кивање е само, очигледно, во Скреч, achoo. Па ние го изразат како збор, само затоа што тоа е ограничување на програмата. И кашлица е [кашлица], но кашлица, Ц-О-У-Г-H. Па тоа е само два различни зборови тоа, во суштина, истото. Па јас всушност може да направи нов блок вака. Јас не го употреби ова мени опција порано. Но кога ќе кликнете Направете Блок, можете да изберете некои опции. И може да се каже дека овој блок, всушност, зема некои влезови, инаку познат како аргументи, или параметри, па што може да се промени однесувањето на вашиот блок. Значи она што го направив пред еден миг беше Се јавив овој блок се каже. И тогаш реков, тоа трае низа влез. И сега забележите, по дифолт, се вели низа 1. А низа е само збор, или фраза, за нашите цели. Но јас сум само ќе се стави некои случаеви текст таму, исто како и во веб-сајт, кога ќе видите корисничко име, или лозинка, а потоа исчезнува кога ќе почнете да пишувате. Тоа е сè што е. И сега ќе одам да додадете број влез. И јас одам да се јавите овој n - но тоа е прилично произволно. А потоа само етикета, само за да бидете овој блок малку повеќе само објаснувачки - времиња, тоа е она што го направија. А крајниот резултат е дека можам да добијам блок што личи ова. И сега забележите, јас сум користење повторување блок. Но, наместо тешко кодирање три, јас сум влечење и пуштање n таму па јас може да parametrize функцијата. Можам да направам оваа функција се направи нешто различен број на пати врз основа на таа вредност. И ќе забележите, велат, ова е она што го направив тука, ако јас го повлечете зборот, можам да кажам не е хард кодирани збор, но она што е донесен во за една секунда. Во меѓувреме, како можам повторно да се спроведе кашлица? Јас наместо дефинира кашлица како велејќи кашлица n пати. Значи во кратки, јас ќе одам преку овој брзо, но основната идеја е штом како ќе почнете да гледате во вашата програма дека, почекајте една минута, јас го направив нешто сосема како тоа порано, Јас да фактор на некои заеднички функционалност? Може ли да се распаѓаат она што го правам во некои основни идеи? Тоа е она што го правиме тука. И јас сум наредени овие работи, визуелно, на врвот на една друга затоа што тоа е сведоштво за таа идеја на почнувајќи со бинарни, ќе ASCII, правење на графички програми, вид на дели се повеќе комплексни идеи за врвот на една со друга. Истата идеја тука. Почнав од нула, спроведување кашлање, тогаш сфатив кашлање е навистина само кажува нешто. Па да ми наместо спроведување на Поимот кажува нешто. И згора на тоа, јас може да се спроведе achoo, или кашлица? И ние не можеше да стори повеќе вакви варијанти се уште. Значи од овој основен принцип, ние може да почнат да прават повеќе комплексни програми. Дозволете ми да се отвори оваа. Ние всушност може да има повеќе sprites интеракција на екранот одеднаш. Ако одам во мојата изворниот директориум и зграби еден т.н. Теми, да се потсетиме дека нишка е само навистина способноста на две сценарија за да се кандидира рамо до страна, во исто време. Забележите сега, имаат и птица самовила мачка самовила, од кои и двете имаат свои скрипти. Па најава, кога ќе кликнете на мачка, можам да добијам овие скрипти. Кога кликнувам на птица, Можам да добијам овие скрипти. Така што секоја од овие момци има неговите сопствени програми. Кога јас сега кликнете на зелено знаме, информации дека она што оваа програма прави е имаат мачка, неверојатно полека, бркаат птица. Но мачката има предноста на постоење на е програмиран на таков начин дека без разлика каде птицата е, мачката оди кон него. Можеме да играат таа игра многу побрзо. Значи, ако јас сум на мачка, забележите дека јас сум користење, да речеме се движат еден чекори. Ајде да го движите пет чекори на време, па пет точки во исто време. Дозволете ми да кликнете игра. [Роар Лајонс] Дејвид MALAN: Добро, сега можеме да навистина им даде на мачката предност. 10 чекори во исто време. [Роар Лајонс] Дејвид MALAN: Сите во право, па многу брзо, тоа добива малку предност за мачка. Но јас ќе се бранува моите рака во некои од деталите. Но причината дека тој пат е почнувајќи малку различни секој пат е тоа што јас го правам малку на случајноста. Јас сум, всушност, укажува на мачка во поинаква насока врз основа на местото каде што сакам од него да почнат така што секој пат кога играта или анимација, е малку поинаква. Сега, дозволете ми да се воведе еден други изгради тука. Значи во овој случај, ние имавме функции. Има исто така, ќе биде загатка парче познат како низа, или листа, која ви овозможува да ги чувате повеќе вредности во внатрешноста на променливата. Видовме теми, а сега има Настани. Па еве еден настан користејќи овие две момчиња тука. И ако јас се отвори датотеката наречено Настани од примерите денес, ние ќе види една програма која изгледа малку вака. И сега забележите ова момче - па забележите имам сина Muppet кликнато - тој само го прави следново. Тој не мора еден од оние зелено знаме мозаик парчиња. Тој има кога ќе примам настан - па некои произволни збор. Јас само Емре настан таму - тој се случува да се каже, Поло, за две секунди. Па оние од вас кои се запознаени со оваа игра може да знае каде што ова се случува. Ако јас сега кликнете на портокалова Muppet, својата програма го прави ова. Засекогаш, ако на тастатурата простор бар потиснати, тој се случува да се каже, Марко, за две секунди на екранот. Но тој е, исто така, се случува да го користите овој познавач блокира познат како пренос. Тој се случува да се емитува цитат unquote "настан". Во меѓувреме, сини дечко, се потсетиме, е слушање за понуда unquote "настан". Така некако, сега, можеме да имаме две sprites интеракција. И кога ќе стигнете до веб програмирање, подоцна во текот на терминот, слично ова ќе да биде поволна за да имаат својата веб-страница направи нешто како одговор на, за пример, еден клик на тастатурата. Па дозволете ми да оди напред и да хит на тастерот space. Портокал момче вели Марко. Сини дечко вели Поло. Ако го направам тоа повторно портокал момче вели: Marco, сини дечко вели поло. Па ајде да ја искористам оваа еден чекор понатаму. Овој пат, ќе одиме, веројатно, само уште неколку минути тука. Дали имаме - маса светилка, ајде долу. Вие сте во право на крајот. Добро, можете и двете може да излезе. Имаме биро светилки за секого. Ајде. Јас не знам дали ние може да ги задржи оваа смешна замолчени до сите семестар, иако. Добро, ајде долу. А во меѓувреме, имаме Следниве примери да се повлече до, само за да забрза работите сега, како што ние имаат манифестација од друг претходник на твое со користење на истите основни градежни блокови. Што е вашето име? ЏОН: Џон. Дејвид MALAN: Џон. Убаво да се мене вас. И? SETZ: Setz. Дејвид MALAN: Setz, убаво да се мене вас. Јован, ако сакате да се дојде до првиот, ова е еден стар училиште игра наречена Frogger. Го користите тастатурата за тоа како добро. А целта е да се добие преку на улица и вода. [Frogger музика и звучни игра] Дејвид MALAN: Жал ми е, не биро светилка за вас денес. Сите во право, Setz, ќе ти сакал да дојдеш на до? Добро, ајде да го направат тоа повторно. SETZ: Дали јас го користам на стрелките? Дејвид MALAN: Само ги копчињата со стрелки. Горе, долу, лево, десно. [Frogger музика и звучни игра] Дејвид MALAN: Ќе ги повикам утеха награди денес, тогаш, многу добро направено. Тука, за двете од вас, Јован и Setz. Алал да му е, во ред. Значи, повторно, како оваа игра игра, мислам за она што се случува? Еден, таму е јасно многу движење. Но видовме како, со мачката и птица пример, како може да се направи илузија на движење од страна на само се движи некои бројот на пиксели повторно и повторно. И ако имате еден блок засекогаш, би можеле да имаат овие автомобили го прават тоа засекогаш. Ние имаме способност да има некои случајноста. Значи оваа игра не мора да биде токму истото секој пат. Оние логови, оние автомобили, можат да започне во малку различни времиња, така што Самата игра е поинтересно со секоја игра. А во меѓувреме, видовме способноста да се слуша на тастерот space. Но јасно, во Скреч, може исто така слуша за горе, долу, лево, десно, и навистина било кое копче на тастатурата. И ти исто така може да направи некои други работи. Дозволете ми да оди напред и да се вратиме на веб верзија. Дозволете ми да одат во нашата колекција примери овде. И под моето студио, видео кое е, во суштина, папка на scratch.mit.edu. Имаме веб-верзии на сите овие проекти. И ајде да видам дали можам да добијам моите компјутер да соработуваат тука. Ова е напишано од страна на еден од нашите пријатели на МИТ, наречен Премести на пеперутка. И еднаш ова се отвора, ова е ќе всушност употребата на повеќе од мојот компјутер хардвер. Нула се случува да се имплементираат со Флеш. Флеш да разговарате со вашата веб камера, ако имате еден. Значи, ако јас одам напред и на цел екран овој тука, кликнете на зелено знаме, информации дека безбедноста Флеш порака е велејќи дека, дали сакате да овозможи да го користам мојот веб камера? Нормално, треба да веројатно се каже Одбиј. Но, во овој случај, ние се каже ќе им овозможи. Тогаш јас ќе одам да кажам Хром да им се овозможи тоа како добро. И сега, во само еден миг, ќе ме види, Да, мене. И ако мојата рака оди нагоре - Имам да не се движи мојот главата во исто време. Таму е исто така одраз на екранот. Ајде, таму ќе одиме - можете да ја преместите на екранот, бидејќи исто така има мозаик парчиња - ох, можете знаат што е тоа, тоа е затоа што, исто така, види проектор екран зад мене. Значи имаме малку бесконечна нешто се случува таму. Сите во право, па ќе играат овде долу. Таму ќе одиме. Па таму е исто така загатка парче што вели, кога ќе видите движење под еден од sprites, можете да го одиме горе, долу, лево, десно или слично. Значи имаме малку на виртуелната реалност случува овде, како и, сите во рамките на границите на мојот интернет пребарувач, само тука со мојата веб камера. Значи она што е тогаш на хоризонтот. Првиот проблем во собата, како што ќе видите, или на веб страната ќе одат онлајн подоцна вечерва во cs50.net, е прилично многу се случува да бидат со отворен крај. И спроведување на одбројување од интерес за вас, игра, на интеракција, нешто уметнички, и предизвик себе си да се користи било кој број на овие мозаик парчиња. И тоа може да биде интерактивна на овој начин. Или тоа може да биде нешто повеќе намерно направени за да се раскаже приказна. И навистина, тоа е каде што ќе завршат надвор денес, со еден краен пример. Дозволете ми да одат во Скреч локално. Дозволете ми да оди напред и да ја отворите оваа, и да игра последен програма напишана од еден на вашите предци, имено дека еден тука. Добро, да се подигне на обемот за оваа. [Музички] Наратор: На следниот CS50, Дејвид ги повикува волонтер на сцената. Дејвид MALAN: За оваа демонстрација, ние ќе треба еден волонтер. Вие би сакале да дојде на долу? Што е вашето име? Се движат натаму.