Лектор: Аз съм [недоловим]. И аз съм старши в Leverett House. I учи компютърни науки, и аз съм за TF CS50. Като първокурсник, аз дори не са лаптоп или смартфон. Аз не са имали опит в програмирането. CS50 е най-запомнящите се разбира, че Взех в Харвард, защото това е една борба, но това е наистина забавно борба в същото време. И аз направих много невероятно, постоянно приятели, и аз научих много наистина приложими умения. Аз съм толкова се радвам, че аз не позволи ми Липсата на фона да бъде извинение за мен Не приемайте CS50. Аз съм [недоловим]. Аз съм старши в Leverett House, випуск 2014. И взех CS50. DAVID Malan: Значи това е CS50. Това е края на седмицата нула. И припомни, където започна последният път, беше с тези лампи, които бяха толкова популярен, че отидохме и купи още днес. Така че аз мисля, че това ще бъде ни нещо тази година - настолни лампи, ако излезе на сцената, поне докато не изтече. Но ние използвахме тези Спомнете си, да се въведе основите на представяне на данни. Имахме нужда от начин да започнете представляващи на информация в компютър. И най-простият начин да направите това е с една съставка, електричество. И най-простото нещо, което можете да правите с електроенергия е я включите и да го изключи. Нека електрони поток или не. И с тези две основни членки на ЕС, от и още, и лъжа и истина, или нула и едно, ние започнахме да виждаме, че можем да изградим нагоре, в този случай, с оглед луковици, повече номера от Просто нула и единица. Ние брои по-висока от седем, например, за последен път. Но всичко, което трябва да направите е да продължавам да хвърлям все повече и повече крушки, които проблем и, наистина, можем да представим произволен брой, които може да искате. Е, ние прехвърлени бързо след това на Сряда до този байт на доброволци. 8 бита е това, което обикновено наричаме байт, така че тук сме имали осем доброволци в сряда, които колективно са представлява осем бита. И когато ръцете си отиде , те бяха едно. И когато ръцете им са надолу, имаше нула. И ние трябваше тези хора излезе на сцената, защо? Това, което ние сме в състояние да правим с тази последователност от битове? За да се създаде азбука. Ние бяхме в състояние да се изгради отгоре на това предишния урок, научен и действително започват да правят по-интересно информация, която е най-малко по- познати на нас, хората. И това ще бъде повтарящ се Профил на целия 50, но също така и компютъра науката по-общо, тази идея наслояване, когато в края на ден, ако наистина започна основи с помощта на компютър, да, това е нули и единици. И под това е. Просто електроенергия. Но ние много бързо да започне да се съобразят с тези ниско ниво на информация, предоставена за и да започне да слой на върха на миналото работи направи така, че ние, в крайна сметка, от края на семестъра и, наистина, по-общо като компютърни специалисти и програмисти, могат да се направят някои наистина мощните неща, чрез привличане на работа че ние сами са направили, а също и стои на раменете на другите. Сега ние бързо преминали в сряда от само е необходимо да се представляват информация, за да искат да се направи нещо с нея. И какво ние определяме един алгоритъм, както? Серия от инструкции. Така че това е поредица от инструкции, а броя на стъпките, които, човек, или компютър, по-често, ще изпълняват една след друга, за за постигане на някаква цел. И ние имахме няколко гола миналия път, една от които е да се разчита хора в стаята. И още един такъв пример е да се намери Mike Smith в телефонния указател. Така че може да се припомни, че откъсна телефон Книгата на половина към тази цел до намиране Mike Smith. Целта на това е да се визуална докаже отново, че сме били буквално разкъсване на този проблем в половина на половина, на половина, и много бързо става от 1000 страници като само една страница. Тези от вас, които са пропуснали тази на Сряда, мислех, че ще играе отново някои кадри от това, което сте пропуснали. Нека да разгледаме. [VIDEO PLAYBACK] -Ето. 1500 страници, Nice чиста линия, легитимна сълза. [END възпроизвеждане на видео] DAVID Malan: Така че това е сряда. Ние преход, все пак, в сряда сега да искат да представляват алгоритми в някои малко по стандартен начин, а не само описва ги устно, но опитвайки се да ги изразят в писмен вид или на екрана на компютъра, за да можем да започват да се подобри, и промяна тях, и, в крайна сметка, всъщност анализира колко правилно или колко бързо са те. Така че ние въведохме това понятие на pseudocode, който в гледна точка на лаик, какво е? OK, думи. Да отидем малко по-дълбоко от това. Английски, разбира се, са само към каква цел? Думи, с които да се създаде или да представляват алгоритми. Така, че няма един познат език като pseudocode в света. Това е просто, че ти, на английски, или Каквото и да говорим език е, използвайте нещо като бегъл нотация да предадат една идея и съвсем накратко. Но ще видим, че, разбира се, с English pseudocode, и се оказва, повечето програмни езици самите са производни на английски себе си, Ще откриете, че има някакъв стандарт начини за представяне pseudocode и също на програмен код. Така че, когато започнете да се види дори най-простите примери днес, реализира тези същите модели ще се повтори през следващата седмица. Така че pseudocode е някаква на език, наподобяващ език за програмиране. И първият пример видяхме визуално записано е тази. Това е само три стъпка програма, целта на която беше да се преброят на хората в една стая в общежитието за това видео в сряда. Но имаше и няколко интересни аспекти на простата програма. И това ще бъде повтарящи се теми. Така че за тези, които не са запознати с това, едно, ние въведохме променлива. И вероятно всички в тази стая е запознати с променлива в контекста на алгебра. Но тук в програмиране, променливи са един, може да бъде нарича нещо, което искаме. Ние използваме п като брояч. Но можем да използваме думата брояч, или, както ще видите, нито най-фраза, която може би искате, стига тя да е описателен, но това е наистина само контейнера за съхранение. Това е парче от паметта, някои брой бита, и варира от компютъра, как много бита има, че композира тази променлива. Но можем да сложим стойности в нея. До този момент, ние сме само сложи номера. Но можем да сложим действителните думи. Можем да сложим точка. Можем да сложим снимки - нищо, наистина, можем да представим с нули и единици, можем да сложим в това по-високо ниво понятието на променлива. Така че доста чисти напред там. И това е първа линия. Но ние много бързо преместени от Онлайн едно наистина да правят нещо с тази променлива. И в третия ред, ние актуализиран N. Ние увеличава N. И ние може да напише това всякакви начини. Но може би най-очевидното е само да кажа, задайте N равна на п е независимо плюс 1. Така че това е нашата нарастване. В същото време, има една линия. И това също е вероятно доста интуитивен. A контур е просто нещо в една програма , което се случва отново и отново, някои вид цикъл. И тази фраза тук, за всеки, е всъщност много чести през по-голямата езици за програмиране, включително тези, които ще видим в процеса. Всеки път, когато видите думата за това обикновено внушава идеята, че линия, нещо циклично, е на път да се случи. Но това е да се отбележи един други синтактични подробности. Фактът, че третия ред е всъщност отстъп от удряли Космически бар няколко пъти е умишлено. Защото човешкото конвенция е такава, че, когато правиш нещо отново и отново в цикъл, като започна на втора линия, можете тире всичко, което принадлежеше за тази линия само за да стане ясно, че това е трета линия, а не, например, Онлайн четири или пет, ако не са линии за или пет, които са част от тази верига. Така че това просто отстъп внушава, че основната идея. Така че ние прилага този алгоритъм, Сега, за няколко примера. И това също прост пример в реалния свят. Но това ще бъде представител на как ще отида за тестване притежават все по-сложни програми. Вие се опитвате няколко сценарии, някои представители на входа, и да видим дали можете получите желаните резултати. Така че този пример, имаше двама души седи в стая в общежитието. От ляво е същата псевдо код. А това е снимка на екрана на много Последният етап от прилагането на тази алгоритъм за тези суровини, където има двама души в стаята и, спомням, тъй като ние стъпка през линии един, две, три, и две и три и направи - До края на този алгоритъм, имахме наистина брои двете събратя, които са в стаята. Така че след това ние се опитахме друг пример. И ние казахме какво ще стане ако има нулеви хора в стаята? Това е код все още е правилно? И наистина беше. Просто така се случи, че на втора линия и по този начин линия на три или няма да изпълни. Те няма да се случи на всички защото те просто не са приложими, ако има нулеви хората в стаята. Но не е голяма работа. Първа линия инициализира N до нула, така че въпреки че само една линия на тази Програмата всъщност завършва е полезно, тя все още дава верния отговор, като указани от оранжево нула в долната част. Но след това решихме, че е Що за глупав алгоритъм. Тя беше доста бавен. Разбира се, мога да направя две, четири, шест, осем, десет, когато броене души в една стая. Така че ние променени алгоритъма, на pseudocode, да кажа, сега в втора линия, за всяка двойка хора в стаята, пристъпи към по трета линия, нарастване в по две за всяка итерация. Така че би работил тук за тази двойка на хора в стаята. Но след това, ако започнем да мислим за това и не отнема много време да осъзнават, чакай малко това е ще се пречупи, тя се разпада на каква прост случай? Ако има трима души в стая или, по-общо, когато има един нечетен брой хора в стая, включително един. Бихме пропускайте този човек тук, защото няма такива двойки. Така че ние бързо разгледани от вместо въвеждане на допълнителната програмни конструкции на псевдо код. Така състояние, се обадихме то, или клон. И това е искал да каже авторът, визуално, на Идеята на клон, разклонение на пътя , където можете да направите това или, може би, нещо друго. И наистина, ние разгледа този въпрос от добавяне на ред 4, като кажа, наистина, в самия край, ако един човек остава след което продължете напред и ги брои специален. Така че някак специална тях случай, така да се каже, така че сега можем да се справим както четен брой хора и нечетен брой хора. Сега има всякакви начини бихме могли да изрази това. И честно казано, можеше и да е още по- НИТ придирчиви, когато става дума за избора ми на Английски за pseudocode. Но поне духа на идеята е предадена. Ако подаде този код на приятел , който не е в CS, или никога не е взето CS, шансовете са, те биха могли да разбера, дава трима души в стая, как да броят на тези хора, базирани на тези инструкции. И това е всичко, наистина искаме да постигнем с pseudocode, някак си стандартизира как ще за представляващи идеи, така че можем да почнали да правят по-сложни нещо все още. Така че това ни води тогава, и днес, да действителният код. Ние започваме да програмирате днес, макар и в приятелска среда. И тогава ние прехода много бързо да по-мистериозен синтаксис, но този, който ще видите е фундаментално различен идеите ще види демонстриран с този друг език днес. Това е просто ще изглежда малко по-различна. Така че, вместо просто да се обадя на този код, аз съм ще бъде малко по-прецизна и да кажа, отсега нататък, когато пишете програма, пишете код. Това е нещо като pseudocode. Но ще видим, че не е нещо като хлабав когато става въпрос за избор на думи , които се използват. При програмиране на език, трябва да се използват думи, фрази, синтаксиса, че други хора са решили представляват този език. Така pseudocodes е до вас. Разрешава се действително език за програмиране като C, както ще видите в края на краищата, е стандартизиран от други хора. Е, как да отидем за писане някои изходния код? Ами аз ще отида напред и да го направя. Аз ще отида напред и отвори прозорец тук. Повече за това следващата седмица. Но това е устройство, наречено CS50 на уреда. Бягам част от софтуера на моя Mac, въпреки че можете да правите едно и също нещо на компютър Windows, че дава мен илюзията използвате различен операционната система напълно прав тук в прозореца на моя Mac. Току-що го пълна проверка, така че не всъщност вижте Mac OS в момента. Това е една операционна система нарича Linux. Това е много популярен. Това е много бързо. Това е много свободен, което я прави много убедителни, особено в търговския свят. И повече за това към края на семестър, когато ние използваме Linux доста малко за уеб програмиране и хостинг от действителните сайтове и проекти. Така че сега, просто знам, че това е десктоп , че е писано да изглежда неясно познати на Windows и Mac OS. Тя просто има някои различни имена и икони за нещата. Но това е така наречената CS50 уреда, виртуална машина, която, началото на следващата седмица, вие ще тече вътрешната страна на прозореца свой собствен Mac или PC. За днес, аз отивам да се отворят най-простите програми. Тя се нарича Gedit. И това е само един графичен редактор. Това е нещо като Microsoft Word, но по-просто. Това е нещо като текст редактиране или бележник. Това е просто една много проста програма, с които да пишат думи на екрана. Просто така се какво ще се случи, че да спестявам файлове, които създавам, когато тази програма в специален разширение като. C, вместо на. формат, или. XLS, или каквото и вие сте запознати, че всъщност мога да създаване на програми, използващи дори тази проста текстов редактор. Така че нека да направим това. Позволете ми да отида напред и да запазите тази подават за първи път като hello.c. И отново, този интерфейс ще се запознаят с теб бързо. Но за сега, аз съм просто пишете в името на файла. Отивам да го запишете в моя John Harvard домашна директория. И сега имам този раздел, който показва Аз съм наистина редактиране файл с име hello.c. Така че нищо прекалено интересно, все още. И сега това ще стане доста загадъчен. Отивам да я увеличите, просто така че е по-видима. И аз отивам да започнете да пишете включват stdio.h, вътр главната, нищожен, отворена къдрава презрамки, едно, две, три, четири пространства на отстъп, печат е за печат нещо форматиран, цитирам цитата, "Здравей, свят", наклонена черта, п, в близост цитат, затворена скоба, точка и запетая, въведете връщане, връщане, връщане назад, връщане, затворена фигурна скоба - I са програмирани. Добре, така че това е супер проста програма, наистина, програма, която всеки започва с програмиране. И всичко това се случи, за цялата му сложност, се разпечатва на екрана, познайте какво? Здравей свят. Но това не е достатъчно справедливо да се напише програма. Така че това е код. Това е изходния код в един език, наречен C. Тя е запазена в момента файл с име hello.c. Сега погледнете в долната на екрана тук. Допълнителна информация за това, отново, в идните седмици. Но това е, което ще се обадим терминален прозорец. Това е мига, черен и бяло ред. Това е нещо като стария интерфейс училище, за да компютър, който обикновено не използване на мишката или друга графични елементи. Той просто използва клавиатурата. И мога да въведете команди това да мига бързо. И за цели, днес, аз съм само Ще въведете следната - направи здрасти. И тази програма, да направи, е просто програма, която, в реалния свят те ден, бихме щракнете два пъти върху. Но в този интерфейс за днес, ние сме Ще въведете името му в този ред. направи здрасти е буквално ще ме направи програма, наречена Здравейте. И това ще го направят, като погледнете за даден файл, просто от подразбиране, наречен hello.c. Това ще поеме Искам програма C от естеството на това как този компютър е конфигуриран. Така че продължавайте напред и натиснете въведете. Виждам някакъв загадъчен изход, но това ще стане твърде запознати преди време. Това се случи да тече компилатор, по- за това в един момент, наречен звъня. Но сега, имам само още един мига подкани. И мога да продължа напред сега и тип точка наклонена черта, за безинтересни причини, ние ще се върна на следващата седмица - Здравейте. Така че всички тези усилия до този момент само за да напиши най-простият от програми, които, веднага след като се удари Enter, прави това. Така че съм написал първата си програма. Така че аз съм съзнателно подиграват в тази много проста програма в продължение на няколко причини. Едно, че е трудно да се вълнувам за да вземе клас, ако това е краят игра. Но повече от това, че има много отвличане на вниманието тук. Първият път, когато се научим да програма, за тези от вас, по-малко удобни, и дори и аз, през деня, когато за първи път видях нещо като това - можете да вид на фигура, която, добре, това е в печат здравей свят. Но има толкова много отвличане на вниманието. Има толкова много неща синтаксиса на екрана че тя пречи на много прости, в противен случай просто, идеи. Така че това, което ние ще направим днес, е, че сме Ще оставим настрана C и се върнем към това в понеделник. И започваш да се използва графичен език за програмиране, наречен Scratch. Това е език за програмиране, че намекнато в сряда, че ще да ни позволи да направим същото такива неща но си затварят очите, за днес, с фигурни скоби, скоби, на точка и запетая, и всички тези глупави отвличане на вниманието, които печелят по начина, по този първи ден, на някои основни, доста интересни идеи. Така че към тази цел, аз ще отида гърба на компютъра си тук и ви представя на алтернатива на това, Програмата, която ще изглежда малко нещо леко това. Ето как ние ще го привеждат в изпълнение същата програма днес - два пъзела парчета, които, когато съединяване и кликнали върху, ще кажа на света, здравей свят. Така че нека действително там. Така че аз ще отида напред и да отворите сайт, известен като scratch.mit.edu. И това ще доведе до мен този сайт тук. В предварително, аз съм влезли в тази сайт и първите проблеми, които ще ви преведе през някои от тези стъпки. Аз ще отида напред и да кликнете на моя нулата папка тук. И това ще ми покаже някои проекти, които съм всъщност е създаден по-рано. И се оказва, че тази графична език за програмиране не само ще да ни пусне програмата чрез плъзгане и отпадане тези парчета от пъзел, вие дори не се нуждаят от специално софтуер. Всичко е вградена в браузъра, така , които можете да направите това, на теория, на компютрите си точно сега, както някои от вас може и да са, без дори необходимо софтуер като уреда CS50, което ще дойде следващата седмица. Така че аз ще отида до горния ъгъл тук и кликнете върху Създаване. И в един момент аз ще получавате празен екран, чрез който мога да започна програмиране в тази графична програмна среда. Но този път, това ще бъде много, много по-лесно да го правят. Така че в един момент, когато Wi-Fi сътрудничи, сега ние имаме този екран. Така бърз вербална турне, но смея да кажа, със сигурност, когато се потопите в Първият проблем, набор, ще намерите всичко това много достъпни и доста интуитивен. Но нека да рисуват представата само за миг. Така под подсказването казват спасяване промени, вие сте на път да видите нулата. Това е един спрайт. Това е характер. И той живее от това, което ще се обадя на етап, този голям бял правоъгълник които той може да се движи нагоре, надолу, наляво, Добре, и не, наистина, други видове действия. В същото време, в средата на този потребител интерфейс, имаме цял куп пъзел парчета. И ще видите, че те казват неща като: се движат 10 стъпки, навърши 15 градуса, точка в определена посока. Но има категории блокове до тук. Така че, ако отидете на външен вид, ще видите, че има други парчета пъзел, който очевидно ще кажа това CIT да поздрави, да се мисли, да се покаже себе си, да се скрие. Ако отида до Sounds, се оказва, има начини да се играе звучи като мяу, да се спрат всички звуци, да играе барабан. Така че, дълга история накратко, има цяла куп парчета от пъзел, които ви позволяват да разкаже тази котка, или произволен брой други герои, какво да правя. Но за да направи това всичко, което се случи Трябва да започнем програмиране. И тази голяма бяла кутия, или сиво поле, за от дясната страна, това е мястото, където Ще всъщност влачите и се откажа от тези парчета от пъзел. Това е моята празен текст прозорец еквивалент. Така че аз ще отида напред и да кликнете Контрол в центъра. Или по-скоро, нека да започна по силата на събития. Под Събития пейка, ще забележите, няколко неща, които са умишлено извити в горната част по такъв начин, че те най-вероятно не блокировка на върха на парчета от пъзел. И това е, защото те Demark началото на програма, началото на скрипт, така да се каже. Така че, ако аз отида напред и плъзнете, когато зелено флага кликнали тук, а след това искам тази котка да се каже нещо, на първо време. Така че аз ще отида при Както изглежда панел. И аз ще отида напред и да вземете бъдете първи блок, и плъзнете и капка, и пусна, така че тя автоматично съединява там. И тогава забележите мога кликнете върху текста. И аз може да има предимство, че е по- специфично като, да речем, здравей свят. И сега ние имаме програма, която аз твърдя, е равна на по- тайнствена програма I изпълнени в C преди малко. Ако отида сега на лявата страна, забележите, че има голям знак стоп и голям зелен флаг. Нека да я увеличите за яснота. И когато сега кликнете върху тази зелен флаг, можете да се досещате какво е това първо Програмата вече ще направим. Така че там също сме програмиране, но ние не сме всъщност задълбава В някои от тези синтактична, дребните детайли. Но нека опитаме нещо малко по-интересна. Позволете ми да отида в моя Scratch папка тук. И всъщност, нека така да ме отвори отделна програма тук само за момент, максимизиране този прозорец за отваряне на файл, и аз ще отида в днешния източник директория. Както винаги, ще откриете, днес и нататък, че всички примери днес са достъпни във вътрешността на хода на потребителя. И аз ще отида напред тук и да изберат до нещо малко по-различно. Това тук, за които Имам нужда от доброволец. Кой би искал настолна лампа днес? Добре, какво ще кажеш за някой по - сте на края? Хайде надолу. Сега, бихте искали да участват, или само да кажа започнем с настолна лампа? VANESSA: [недоловим]. DAVID Malan: OK. Отличен, какво е името? Ванеса? David. Приятно ми е да се запознаем. Така че, хайде и Ванеса ще да поеме контрола на моя клавиатура само за миг. И това, което съм направил тук, само за времето на саке, както съм осъзнали Wi-Fi е малко бавен, Scratch, на среда за програмиране, че сме използване, могат да бъдат изтеглени и работи на локалния ви компютър. Така че това, което направих преди лекцията, в случай че това стане, е Свалих всички файлове, сме на път да си играе с така че те да могат да работят малко по- бързо точно тук, на моя лаптоп. Така че това е защо сега виждам на Mac-специфичен интерфейс. Така че аз ще да вървим напред и да се отворят тази. Отивам да се продължи напред и сега цял екран на прозореца. И както ще видите, ние можем много бързо, , тъй като това е студент, един от Вашите предшественици, отиват от света Здравейте в много по-убедителни прилагане. Така че тук са инструкциите. О, и ние имаме едно друго нещо. Мислех, че ще е забавно, тъй като, обикновено, ще се снима камери по този начин. Мислех, че ще е забавно, ако, Ванеса, ние може да видите света през твоите очи. Така че тук имаме някои Google Glass. [Чудеха издихания] DAVID Malan: Ние само ще се дава далеч настолни лампи днес. [СМЯХ] Така че позволете ми тъкмо навреме това. Добре, така че това докоснете. OK, стъкло, запишете видеоклип. Добре, Ванеса? Сега, като настрана, че няма нищо общо със Scratch, ако се вгледате леко нагоре и надясно, ще видите буквалния стъкло, а вие трябва Виждам малко правоъгълен прозорец. Трябва да видите всичките си съученици се снима в момента? Да. Ванеса: Да. DAVID Malan: OK. Така че, това е добре. Ние ще освободи тези кадри по-късно. За сега, обърнете внимание към екрана тук. И това, което си предшественик е направил е постави някои инструкции на екрана само с помощта на програма за рисуване. Така че ти започваш да се, в един миг, натиснете бар пространство, за да започнете. И тогава някои парчета от пъзел ще да започне да се движи нагоре по екрана. И вие искате да се удари клавишите със стрелки, просто като в реалния DDR, в съответствие с неща, се редят на опашка с тези стрели. VANESSA: OK. DAVID Malan: Ти играеш тази преди. Ванеса: Да. DAVID Malan: Добре, Ванеса, отидете напред и да го отнеме. [MUSIC - Kayne WEST, "силен"] [APPLAUSE] DAVID Malan: Така че нека сега една стъпка от това. Затова е ясно, че това е края играта. Краят игра не е здравей свят. Но не е нужно да се направи задължително неща, които са толкова Interactive. Можете да направите анимация. Така например, един от друг си наследници направи тази програма тук, , който разказва една история повече от тя не изпълнява една игра. Така че нека да вървим напред и да се отворят тук програма в същото нашият източник директория от днес. Това един разговор, и нека да започнем с, история бисквитка любов. И да не прави това твърде академична, но, , докато гледате това, че за да себе си кой от тези прости програмни концепции за които се говори за този момент - променливи и линия, както и условията, е Вашият предшественик вероятно използвате само изпълнение на някои от на визуализации. Вие виждате тук. Така че аз ви дам една любовна история бисквитка. [MUSIC - GREEN DAY "HOLIDAY"] [CRASH] [MUSIC - костенурките, "Щастливи заедно"] DAVID Malan: Добре, така че, имахме една история бисквитка любов. Но дори и там - [APPLAUSE] DAVID Malan: Добре, дори и там, мислим за това, тъй като тези сърца отиде от дъното към горната част на екрана, всъщност имаше малко случайността става. И наистина, ние ще видим, че дори и в простият от среди, като Scratch, както и в C, можете да генерирате случайни числа, или илюзията за случайни числа, така че играта е малко по-интересна, отколкото може да е ако имате абсолютно твърди кодирани всичко. В движение, който виждате, има има някаква реакция. Веднага след като човек, натруфен докосва натруфен жена, тя изглежда да се отдалечава. И така, наистина, може да изпълнява, повечето програмни езици, понятието на събития, при което, ако една страна щрихи От друга страна, това може да предизвика някои на изходния си код, за да всъщност изпълни. Можете да слушате за такава неща на екрана. Така че нека хвърлим един бърз тур, а след това, на някои от градивните елементи можем да използваме за постигане на някои от тези цели. Така че тук е това, което ние ще занапред обадете изявление. В изявление се случва да бъде в лилаво Scratch, малко нещо като това, но това е произволно. В изявление е само част от пъзела, или, по-общо, указание, че казва на компютъра, за да направите нещо, декларация. Така че тук е просто проба. Кажи здравей свят. Друг човек може да се изчака секунда. Така че тази част от пъзела, който се подкрепя в Scratch, ние ще ви нека героите Пауза за някои брой секунди. Това също е само твърдение. Тук следващия, ние имаме друг по- интересно, мяу възпроизвежда звукови и малката стрелка означава, че в самото начало, това е падащото меню. Така че можете да импортирате звуци. Можете да записвате звуци и да направим друга забавни неща в нулата. И това също, че в края на ден, е само твърдение. Но сега нека да се въведе по- интересно парче, че известен като Boolean израз. Capital B, на името човек на име Bool. И булева изразяване е просто пъзел парче или по-общо, на част от информацията, че е верен или неверен - единица или нула, да или не. Така че това е просто един от онези, две противоположности. Така че един такъв Boolean израз в свят на Scratch изглежда така синьо част от пъзела. И е задаване на въпрос, мишка надолу, и че може да бъде или от Разбира се, вярно или невярно. Така че с тази част от пъзела в Scratch, Е, вие ще бъдете в състояние да открие, ако пъзел, ако мишката е, в действителност, е задържан от човешкото взаимодействие с вашата програма. Това е малко по-абстрактно, но тези две бели кутии са само за числа. Така че можете да направите неща, като това е число по-малко от другите? И ако е така, Scratch ще се държи един или друг начин. Това е малко по-графично. Това е, ако спрайт, ако котката, за Например, всъщност докосва показалеца на мишката. Така че, ако малко главата стрелка кръжи върху котка, то това парче пъзел ще се оцени вярно. Това ще бъде вярно, като в този случай, ако използвате този Булев израз, както ще виж в един миг, в клон, можете да направите това, или можете да направите това, много прилича имахме условие, че проверяват, има още една последният човек в стаята? Ако е така, се добавя един. В противен случай, не се тревожи повече. Така булева експресия може да бъде и-ЕД заедно или или-ЕД заедно. Така че можете да комбинирате булеви изрази и да кажа това и това трябва да е валидно и за цялата работа за да е истина. И тук е по-реалния свят например. Ако сте използвали CS50 курсове, за да направи курс пазаруване, тези квадратчета там, където, ако се провери дали квадратчето за курсове, които ще кажат, да, само ми покажете курсове, за които стойността Q е 4.5 или по-висока. Ако махнете го, не, не се тревожи за това. Или по същия начин, по дясното крило, не ли Конфликтът с курсове Взимам, това е вярно или невярно. Това е просто Boolean израз. Така че през цялото това време, когато сте използвали сайтове с квадратчетата, ти си просто превключване еквивалентна на Булев изразяване и изключване. Така че, в каква форма да използвате тези? Е, в самото начало, ние ще видим след малко че са налице условия, които изглежда така. И това е нещо разумно, защото много като в pseudocode, ние отстъп сортиране на U-образни парчета от пъзел, означава че всичко вътре, че U е ще се изпълни, или не, в зависимост за това, къде е то. Така че, ако Boolean израз, а след това каквото е вътре, ще се изпълни. В същото време, има един, ако / друго блок. Така че, ако искате клон, който отива тази или онзи, Scratch ни дава това. И от тази логика, сега, макар че пъзела е ясно твърде малък за закрепване нещо друго вътре в него, парчетата скреч пъзел, те са Просто ще расте. Когато плъзнете и пуснете върху нещо, тя просто ще растат да се побере всичко е, което се опитвам да направя. Така че можем да вземем две от тези неща, и направи три вилица начина, по пътя, така ви или да направи това или онова, или това друго нещо, просто от тях гнездене по този начин. Разбира се, ако вие направите това също много, започва да става грозно. Но в този момент, вие сте всъщност вероятно не програмиране много добре. И така, това ще бъде повтарящ се Темата също така, че за стил. Само колко добре всъщност форматирате код? Или колко добре да разработите своя код? Но повече за това в бъдеще. И сега имаме цикли. Има хубава линия завинаги в Scratch което буквално означава, че - направи каквото е вътре в това отново, и отново, и отново. Можете да бъдат по-конкретни и да кажем, направете следното нещо 10 пъти. Можете да използвате и променливи. Можете да излезе с всяко име, с това, че Малко падне и да кажа, дайте ми променлива наречена N и задайте тя е равна на част стойност. И тогава може да има функции. Но повече по тези в един момент. Позволете ми да се върна в Изтъркайте интерфейс. И нека да вървим напред и този път. И да вървим напред и да се отворят, да речем, на пример от - това е малко по-интересна. Нека да вървим напред, и, всъщност, нека само да го направя сам. Не ми трябва, за да отворите този. Нека да отидете на файла, New. Отивам да отидете на събития. Аз ще отида да при зелен флаг натисне, и аз ще отида да звучи. И аз отивам да влачите и пускате това парче пъзел, играе мяу звук. Той ключалки заедно. И сега, ако щракнете върху зеления флаг - [МОСВ SOUND] DAVID Malan: очарователни. ОК, така че сега нека да направим нещо малко по-логично, само за да докаже, че можем, за сега. Отивам, за да отключите това от този човек. Аз ще отида да се контролира. И аз отивам да вземете състояние. Така че, ако нещо след това. Ето как изглежда там. Така че имам нужда от Boolean израз. И нека да вървим напред и да каже: пусни ме да оператори. Отивам да направя нещо леко Mathy, просто за забавление. Аз ще отида в тук и да кажа, ако нещо, което е по-малко, отколкото нещо друго, отидете напред и да направим нещо. Така че сега, знаеш ли какво, случаен блок. Така че забележите как, ако мишката върху този нещо тук, че ще щракне там. Така че сега, забележете, аз съм се започне да се направи нещо, което вече е по-логично интересно. Ако случайно число между 1 и 10 е по-малко от, да кажем шест. Ако избера шест, които по същество средства, направете следното с 50% вероятност. Това е като обръщане на монета. Сега, мога да направя нещо условно. И това нещо, аз ще да направите е да възпроизведе звука. Така че сега, когато кликнете върху екрана флага, това е като хвърляне на монета. [МОСВ SOUND] DAVID Malan: Беше глави или какво ли не там. Да го направим отново. [МОСВ SOUND] DAVID Malan: Heads отново. [МОСВ SOUND] DAVID Malan: Heads отново. Пфу, OK. Опашки това време. Така че 50% от времето, ако направим това безкрайно дълго, ще получите 50 процент meows и 50% мълчания. Така че, само на основния сграда блок, който ни позволява да направим това. Но това е нещо досадно, че имам да щракнете върху този бутон. Така че нека просто да влачите и хвърлят всички тези далеч. Ако ги влачат до центъра, те просто ще се изтриете. Позволете ми да отида да се контролира. Пуснете ме да завинаги. И този път, аз ще направя minorly нещо досадно. [СМЯХ] DAVID Malan: И да ме пусне напред и да направим контрола. Изчакайте една секунда, толкова това не е твърде решетка. [МОСВ SOUND] DAVID Malan: Това не е естествено. OK. [МОСВ SOUND] DAVID Malan: И забележете какво, хубаво около нулата, за тези от вас, които да има предварително програмиране опит, вие не е необходимо да се пуска и спира. Не е необходимо да се съберат. Можете просто да го променят, и програмата ще се адаптира динамично. Така че това е удар с малко интересно. Но нека си го вземе една крачка напред. Нека да вървим напред и да се отърве от тази програма. [МОСВ SOUND] DAVID Malan: Това е, което ние ще обадете бъг в Scratch. Той не трябва да продължат да правят този звук. Така че ние ще му кажа да спре. Добре, така че сега съм ще мина на - Ще оставя MIT знам. Ние ще отидем тук, за да Forever. И сега, аз искам да направя нещо отново и отново. Аз ще отида в Control. И нека да видим, аз отивам да плъзнете ми ако състоянието там. Така че сега забележите логиката. Когато зелен флаг е щракване, направете нещо вечно, но само, че нещо, ако това друго нещо е вярно. Аз ще отида да, нека да казват, усещайки. И аз ще отида напред и да изберете докосва и да го пуснете там. Това е Boolean израз. И сега, забележете, в тази капка меню, има някои предварително определени стойности. Така че мога да кажа, да не докосвате ръба на екрана? Или докосване на мишката, стрелката на екрана? Така че аз ще го направя. И ако е така, тогава аз ще отида напред и да играе звук мяу. Така че сега I вид имат началото на една игра - очарователни игра. [МОСВ SOUND] DAVID Malan: OK, очарователни, бъги игра. Позволете ми да чакам, да кажем, единсекунди там. Сега играеш отново, като кликнете зеления флаг. [МОСВ SOUND] DAVID Malan: Така че сега това е като галене на котка. [МОСВ SOUND] DAVID Malan: Добре, сега това едно аз го направи по-рано. Много късно, той получава вид лесно да се правят глупави неща. Така че да ме пусне вътре. Да речем, че е любимец на Cat. Нека сега се отвори Не Pet на Cat. Сега, ако се играе този, можете да се досетите, ако сте гледате екрана - [МОСВ SOUND] DAVID Malan: Сега, ако аз домашни любимци котката [ROAR LION'S] DAVID Malan: Значи всъщност не домашни любимци котката в този случай. Така че сега ние просто трябва пример за клон, който става в две посоки. Сега нека да вървим напред и отвори още една тук. Това, също така, наред с нашия източник файлове с код за деня. Така че нека да се върна в моята Източник указател и отивам в, нека да изберете този човек тук и виж какво е различното. Леле, добре, така че сега става все по- малко по-сложна. И преди да видим това, което този човек прави, нека се опитаме да се направи извод, от програмата в дясната страна. И сега нулата ясно ни позволява да имат множество скриптове, множество програми, свързани с един спрайт, с един знак, и, както изглежда, те двамата ще тече в идентичен марш. Тъй като и двете от тези програми започва с, когато зелена кликвания на флага, това е намеква в по-напреднал тема, с които някои от вас може би са запознати, известен като нишка, или многонишкова. Оказва се, дълга история кратко, компютри днес по същество може да направи множество неща наведнъж. Или те могат да направят едно нещо в даден момент, така бързо, че дори не забелязват, че Това всъщност прави една нещо в даден момент. Но за сега, нека да приемем, че и двете тези програми ще се изпълняват в в същото време. И забележете, и двамата имат завинаги пъзел парчета. Така че те двамата ще продължи да работи докато не удари червена знак стоп. И така, какво ще правят? От лявата страна, аз съм очевидно за обявяване на променлива наречена заглушен. Така че аз не го наричам нещо подобно скучно като N. Обадих се заглушава този време за предаване на смисъла. Аз съм го равна на нула. Нека да помислим за това, както е False, или нека да мисля за това като False. Сега, завинаги направете следното. Ако интервал на клавиатурата е натиснат, след това, ако заглушен равна на нула, след това да промените заглушен да се равняват на една. Иначе, определени заглушен до нула. Така логично, въпреки че това е цяло куп парчета от пъзел това е Просто казвам, когато се срещна Space бар, какво трябва да направя за променлива нарича заглушен? Промяна на това от един до нула, или нула до един. Това е всичко. Така че това е като завъртане ключа за лампата или изключване и спомняйки си, с променлива, че съм направил това. Междувременно, от дясната страна, в общодостъпен условията, каква е целта на скрипта на правото? Студент: За да играете на морски лъв звук. DAVID Malan: За да играете на Sea Lion звук, ако той не е изключен, от естеството на тази променлива. Така че ние сме споделяне състояние, така да се каже, обмен на информация в рамките на тези две скриптове, защото, забележете, тук, ние сме завинаги направите следното. Ако заглушен е нула, така че ако това не е заглушен - ако заглушен е невярна, след това играе тази Lion Sea звук. И мислиш за себе си, здравей, здравей, здравей, за две секунди, изчакайте един момент, а след това проверете отново. Така че, ако се върнем сега тук на ляво, до мястото, където е този човек, и натиснете зелен флаг, [SEA LION SOUND] DAVID Malan: В кой момент това става наистина досадно? Защото това просто ще продължи вечно. Така че понякога, безкрайни цикли, така да се каже, са умишлено. Но в този случай, веднага щом уцели напречната греда Space, той спира. Сега програмата не е отказал. Тя все още работи в тези вериги. Но ако получа пространството лента, отново - [SEA LION SOUND] DAVID Malan: Той ще вземете там, където е спрял. Така че има един начин за нас да направим нещо отново и отново, но този време, само при определени условия. Е, докато сме в този дух за правене на неща отново и отново, нека отивате в друг такъв пример тук. Това ще се обадим да броите овце. И забележи това, което този човек прави. Това всъщност е малко по-подобни на pseudocode играхме с по Сряда, с което той определя някои брояч, мисля за него е като М отново, за да нула, той вечно прави следното. Той казва, че брояча стойността за един Второ, чака втори и след това променя обратно по един. И в този контекст, че само означава, че стъпки. Така той се добави към него. Така че това е буквално - това не е съвсем това, което мислим на като броите овце. Това е овцете прави преброяването, завинаги, намаления от нула. Така че, можем да направим подобни неща има логично. Но сега нека се опитаме да почистите някои от тези неща. Позволете ми давай сега в един прост Например, когато котката ни е просто ще начало кашлица. Добре, така че тук имаме кашлица 0 - компютърни специалисти започват броенето от 0. Така че тази котка е просто ще да кашля три пъти. А ето и как изпълнява това. При зелен флаг е щракване, кашлица, изчакайте, кашлица, изчакайте, кашлица, изчакайте. И аз направих това просто като плъзнете и пускане парчета от пъзел. Или, ако започнете да калайджия с Scratch, ще видите всъщност можете да дубликат парчета, така че можете да направите нещата по-бързо, без плъзгане и пускане на обява nauseum. Но ние не сме в най-добрия път тук. Защото как да го направи кашлица за четвърти път? Е, можех да сортирате сляза тук. Мога да дублира и след това поставете този там. Как мога да го плащам за пети път? Е, да копирате и поставите отново. Или плъзнете капка отново. И много бързо, тази програма започва за да получите много, много излишно, много дълго, но наистина безинтересно. Но има начин да се изчистя. Какво е най-лесния начин за почистване на това? ОК, така че ние в действителност може наистина отидете , както и, когато удари пространството бар, трябва да го плащам. Но ако просто искате да направите нещо многократно, припомни, че ние имаме някакъв контрол изгражда. Нека извадим това на начин, отидете под контрол. Позволете ми само да направя повторение, например три пъти. А сега нека да открадне някои от тези парчета от пъзел. Позволете ми да щракам този тук. Нека да хвърлят тези далеч напълно. И сега, имам по-добра проектирана програма. Защо? Ако искате да промените броя на тази котка кашлица, всичко, което трябва да да се промени една променлива, или една стойност, вместо от три, до четири, или пет или шест. Или мога да направя нещо условно, дори, с пространството блокирате, ако исках да. Така че това е общ принцип. След като започнете да копирате и поставите кода, независимо дали това е в самото начало, или в C, че правиш нещо наред, най-вероятно. Или най-малкото, след като веднъж сте превишаване някои разумни брой копия и пасти, вие вероятно сте правя нещо нередно. Но знаете ли какво? Аз наистина не като този. Това не е най-чистият дизайн. Иска ми имаше един пъзел парче наречено кашлица, защото тогава не би трябва да прилагат това сам, по старомодния начин, с като се каже, и да чакат - Какво става, ако те са били само кашлица парче пъзел. Е, всъщност мога да направя това. Нека отида при по блокове, кликнете Направи Block, и сега се получи това прозорец тук. Аз ще се обадя на тази кашлица нещо. Аз ще отида напред и кликнете OK. И сега известие, да получа нова отправна парче, че е извита на върха. И това, което ще направя с това, че съм просто ще открадне тези блокове. Аз ще ги поставя тук. И сега, с тези три части, имам изпълняват това, което аз ще се обадя на функция или процедура, или някои от може да го знаят като метод. Малки разлики между думите. Но за сега, нека просто наричаме това функция. Това е само ново парче пъзел. Сега тя се реализира по този начин. Но забележете, че Scratch ни е дал физическото представяне на цялата тази блокира тук. Така че сега, мога просто да го изтеглите тук, т.е. повтаря три пъти, и какво ще се случи сега, когато играя този скрипт, е само една програма работи в даден момент. Има само един, когато зелен флаг щракнали. Но това лилаво блок наречен кашлица е ефективно казва Scratch, всеки път, когато видите, че парче пъзел, всъщност изпълнение на тези стъпки, които аз се случи да приложи ръчно. Така че това е вид чист. Но сега, предполагам, че аз реших, че не правя искам тази котка просто да кашля. Искам той да бъде в състояние да кихат, както добре. Е, как може да отидем за прилагане кихане? Ами аз може почти направи същото нещо. Мога да направя друг блок. Мога да се обадя тази кихавица, кликнете OK. След това, тук всъщност можех да са, позволете ми да дублират това - и там, където трябва да се чувстват като най-вероятно не правите нещо в най-добрия начин. Бих могъл да кажа нещо подобно, achoo, за една секунда. Изчакайте една секунда. Сега имам нов блок нарича кихане. И наистина, то е там. Но това също трябва да започнат да се чувстват - може би не е първата седмица на клас, но от втория - само малко излишни. Ясно е, че има някои съкращения тук. Така че позволете ми предложи, вместо това, че ние усъвършенства това определение, както следва. Нека отида до досието ми меню. Аз няма да спаси тази версия. Отивам да отидат в един от моите предварително направени файлове тук. И аз отивам да вървим напред и да се отворят кашлица 2. Ами сега, че е кашлица 2. Нека да вървим напред и да се отворят кашлица 3, който е този източник директория. Кашлица 3 и забележи - О, казах историята в грешен ред. Позволете ми да се възстанови от тази история. Историята съм искал да кажа завършва с кашлица 4 - то е там. И какво, ако аз, вместо това, да определи по-голям пъзел парче наречено определят, казват думата N пъти. Кихането е просто, както изглежда, в Scratch, achoo. Така че ние го изразя като една дума, Просто защото това е ограничение на програмата. А кашлицата е [КАШЛИЦА], но кашлица, C-O-U-G-H. Така че това е само две различни думи това, по същество, едно и също нещо. Така че аз наистина могат да променят нов блок като този. Не използвайте тази опция от менюто преди. Но, когато щракнете върху Направи Block, можете да изберете някои опции. И вие може да се каже, че този блок действително отнема няколко входа, в противен случай известен като аргументи, и параметри, така че , които можете да промените поведението на вашия блок. Така че това, което направих преди малко бе Обадих се на този блок се каже. И тогава казах, това отнема низ вход. И сега забелязвам, по подразбиране, се казва низ 1. Низ е просто дума, или фраза, за нашите цели. Но аз съм просто ще се въведе някакъв текста в контейнера там, точно като в сайт, когато видите име, или парола и след това изчезва, когато започнете да пишете. Това е всичко, което е. И сега аз ще добавите въведете номера. И аз ще се обадя на този п - но това е доста произволно. И след това просто етикет, само за да се този блок малко по-самостоятелно ИЗЛОЖЕНИЕ - пъти, че това, което току-що го направих. И крайният резултат е, че се блок, който изглежда така. И сега забелязвам, аз съм с помощта повторение блок. Но вместо твърд кодиране три, аз съм плъзгане и пускане на п там, така че може parametrize функцията. Мога да направя тази функция се направи нещо различен брой пъти въз основа на тази стойност. И забележи, да речем, това е, което аз направих тук, ако плъзнете дума, мога да кажа, не е твърди кодирани думи, но каквото се пропуска в продължение на една секунда. В същото време, как да приведе отново в действие кашлица? Аз, вместо да определят като кашлица казвайки кашлица N пъти. Така че, накратко, че минавам през този бързо, но основната идея е веднага като започнете да виждате във вашата програма че, чакай малко, аз съм правил нещо доста подобно преди, мога повлияни от някои общи функционалност? Мога ли да се разлагат, което правя в някои основни идеи? Това е, което правим тук. И аз подредени тези неща, визуално, една върху друга защото това е доказателство за това идеята за като се започне с двоичен, ще ASCII, вземане на графични програми, нещо наслояване все по-сложни идеи един върху друг. Същата идея тук. Започнах от нулата, за прилагане кашлица, после осъзна, кашлица е наистина само да кажа нещо. Така че нека вместо прилагане на понятието казва нещо. И отгоре на това, може ли да прилага achoo, или кашлица? И ние може да направи повече, като варианти на едно място. Така от този основен принцип, можем да започнем да се направи все по-сложни програми. Позволете ми да се отворят тази. Ние действително могат да имат множество спрайтове взаимодействие на екрана наведнъж. Ако отида в моя източник директория и вземете една наречени нишки припомни, че нишка е просто наистина способността на две скриптове да работят рамо до страна по едно и също време. Забележете сега, има както спрайт птица и котка спрайт, и двете от които имат собствени скриптове. Така известие, когато щракнете върху котка, да получа тези скриптове. Когато кликна на птица, Накарам тези скриптове. Така че всеки един от тези момчета има собствените си програми. Когато кликнете с зелен флаг, забележите че това, което прави тази програма е имат котка, невероятно бавно, гони птица. Но котката има предимството на са програмирани по такъв начин, че без значение къде птицата е, котката отива към него. Ние можем да играем тази игра, много по-бързо. Така че, ако аз съм на котката, забележите, че аз съм използвате, да кажем, се движат една стъпка. Нека да го премести в пет стъпки време, така че пет точки в даден момент. Позволете ми да щракнете върху Възпроизвеждане. [ROAR LION'S] DAVID Malan: Добре, сега можем да наистина даде на котката предимство. 10 стъпки в даден момент. [ROAR LION'S] DAVID Malan: Добре, така че много бързо, става малко предимство за котката. Но аз ще махна с ръка към някои от детайлите. Но поради това, че този път е започва малко по-различна всеки път е, че правя малко на случайността. Всъщност съм сочите с котка в различна посока въз основа на мястото, където искам той да започне, така че всеки път, на играта, или анимацията, е малко по-различно. Сега, нека представим един други изгради тук. Така че в този случай, ние трябваше функции. Има също така и ще бъде парче пъзел известен като масив или списък, която ви позволява да съхранявате множество стойности в рамките на дадена променлива. Видяхме теми, а сега има събития. Така че тук е събитие използване тези двамата тук. И ако се отвори файл, наречен Събития от примери днес, ние ще виж програма, която изглежда малко като този. И сега забележите този човек - така че забележите Имам син Muppet кликнали - той само прави следното. Той не разполага с една от тези зелени парчета знамето пъзела. Той има, когато получа събитие - така че някои произволна дума. Просто написали от събитието там - той ще каже, Polo, за две секунди. Така че тези от вас, които са запознати с тази игра може да знае накъде отива. Ако аз сега кликнете върху оранжевото Muppet, програмата си прави това. Завинаги, ако шината клавиатура пространство потиснат, той ще каже, Marco, за две секунди на екрана. Но той също така ще използвате този любител блокира известен като излъчване. Той ще излъчва цитат край на цитата, "събитие". Междувременно, синьо момче, изземване, е слушане за цитат кавички, "събитие". Така че някак си, сега, ние можем да имаме две спрайтове взаимодействие. И когато стигнем до уеб програмиране, по-късно в срока, подобно това ще да бъде изгодно да има вашия сайт направи нещо в отговор, за Например, едно натискане на клавиатурата. Така че нека да вървим напред и уцели напречната греда пространство. Orange човек казва Марко. Blue човек казва Polo. Ако аз го направя отново оранжево човек казва Марко, син човек казва топка. Така че нека да се възползвам от една стъпка напред. Този път, ние ще отидем, вероятно, още няколко минути тук. Имаме ли - настолна лампа, хайде надолу. Вие сте точно на края. Добре, може и излезе. Имаме настолни лампи за всички. Хайде. Аз не знам дали ще можем да запазим тази нелепа шега нагоре всички семестър, все пак. Добре, хайде надолу. И в същото време, ние имаме следвайки примера да спра, само за да ускори нещата сега, така че ние има проява от друг Предшественикът на твой използва същите основни градивни елементи. Как се казваш? JOHN: John. DAVID Malan: John. Приятно ми е да ви. И? SETZ: Setz. DAVID Malan: Setz, радвам се да те. John, ако искате да дойдете на първо място, това е стар училище игра на име Frogger. Можете да използвате клавиатурата, за това, както добре. А целта е да се получи в на улицата и вода. [Frogger музика и възпроизвежда звук] DAVID Malan: Съжалявам, не настолна лампа за вас днес. Добре, Setz, нали искали да идват нагоре? Добре, да го направим отново. SETZ: Да използвам стрелките? DAVID Malan: Само клавишите със стрелки. Нагоре, надолу, наляво, надясно. [Frogger музика и възпроизвежда звук] DAVID Malan: Ще им се обадя утешителни награди днес, След това, много добре направено. И ето, че и за двама ви, Джон и Setz. Поздравления, всичко е наред. Така че отново, както тази игра играе, мисля за това какво става? One, явно е че много движение. Но сме виждали как, с котката и птица например, как може да се направи илюзия за движение, като просто се движат някои броя на пикселите отново и отново. И ако имате блок завинаги, бихте могли да имат тези коли правиш завинаги. Ние имаме възможността да имат някаква случайност. Така че тази игра не трябва да бъде точно същото всеки път. Тези трупи, тези коли, може да започне във малко по различно време, така че самата игра е по-интересно с всяка игра. А междувременно, сме виждали способността да слушате пространството бар. Ясно е обаче, в самото начало, можете също да слушате за нагоре, надолу, наляво, надясно, и наистина всеки клавиш от клавиатурата. И вие също може да направи някои други неща. Нека да вървим напред и да се върнете на уеб версия. Позволете ми да отида в нашата колекция примери тук. И в моето студио, видеоклип, който е, по същество, в папка на scratch.mit.edu. Ние имаме уеб версии на всички тези проекти. И нека да видим дали мога да си взема компютъра, за да си сътрудничат тук. Това е написано от един от нашите приятели в Масачузетския технологичен институт, наречен Преместете Butterfly. И след това открива, че това е ще ползвате повече от моя компютър хардуер. Нулата се случва да се прилагат с Flash. Flash може да говори с вашата уеб камера, ако имате такъв. Така че, ако аз отида напред и на цял екран тази тук, щракнете върху зеления флаг, бележка че Flash сигурността съобщение казва, искаш да позволи да използвам моя уеб камера? Обикновено, трябва да вероятно ще каже Deny. Но в този случай, ще кажем, че позволяват. Тогава аз ще кажа Chrome за да се позволи това, както добре. И сега, в един момент, ли да ме видиш, да, мен. И ако ръката ми върви нагоре - Трябва да не се движат ми главата по едно и също време. Има също така и размисъл на екрана. Хайде, да отидем там - можете да я преместите на екрана, защото има и парчета от пъзел - О, Знам какво е, това е, защото вие също виждате екрана проектор зад мен. Така че ние имаме малко безкрайна нещо, което става там. Добре, така че аз ще играя тук. Ето. Така че там също е част от пъзела, които казва, когато видите движение под един от спрайтове, можете да го проверете нагоре, надолу, наляво, надясно или други подобни. Така че ние имаме малко на виртуална реалност става тук, както и всички в рамките на пределите на браузъра си, само тук с моя уеб камера. И така, какво е тогава на хоризонта. Първият набор проблем, както ще видите, или на сайта ще отидете онлайн-късно тази вечер в cs50.net, е доста много ще бъде безсрочен. И се изпълни проект, Scratch от интерес за вас, една игра, едно взаимодействие, нещо художествено, и предизвикателство себе си да използвате произволен брой от тези парчета от пъзел. И това може да бъде или интерактивна по този начин. Или тя може да бъде нещо по-съзнателно направени да разкажа една история. И наистина, това е, когато ще свършим отстъпка днес, с един последен пример. Нека да отидат в Scratch локално. Нека да вървим напред и да се открие това, и да играе последен програма, написана от един от вашите предшественици, а именно че никой тук. Добър, усилвате звука за това. [За възпроизвеждане на музика] Разказвач: На следващото CS50, David кани доброволец сцената. DAVID Malan: За тази демонстрация, ние ще трябва един доброволец. Искате ли да слезеш? Как се казваш? Преминавайки.