[За възпроизвеждане на музика] -Добре! -Това Е CS50. -Това Е CS50. -Това Е CS50. [MUSIC - IGGY AZALEA "FANCY"] -Моята Любим спомен от CS50 беше, когато отидох да Пъзел Day. -Probably Само време работено върху проблемните комплекти с моите приятели и хора, които Уолд евентуално да се превърне моите blockmates. -Моята Най-добрия спомен от CS50 е Hackathon. -Таблицата CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. -Таблицата Hackathon -Rob Боудън. Просто всичко за него. [MUSIC - IGGY AZALEA "FANCY"] -Моята Любимата памет е, когато бях на етап и съм играл с престижната роля на възел [? в свързаните?] [? List. ?] Кога ние всички се безплатно Dropbox пространство и Дейвид беше като, изглежда по местата си. И това е като място за всички! [MUSIC - IGGY AZALEA "FANCY"] -Моята Съвети за всеки входящо студент би да наистина да работят по P-комплекти с приятели. -Office Часа е много твой приятел. -Накарай Максимума от вашия опит и отговарят на най-много хора, колкото можете. Не бъди страхувайте да помолите за помощ. Началната р-групи в началото на седмица. -Мисля Най-голямото нещо е да да се възползват от всички ресурси че CS50 има. Върви до офис часа по-рано през седмицата. Определено гледате шорти. -Не Отлагаме за вашите P-комплекти. -Осъществяване, Че сте намерите голяма група на хората да работят по P-комплекти с. Можете да имате много забавно и си свършат работата заедно. Не бъди страх да се насилвате. Отиди за хакерската издание понякога. -Write Неща на хартия, преди да ли сте някога се докоснат компютъра. -CS50 Е наистина чудесно да осигуряване на начини да получите помощ. -Моята Едно парче съвет е сън. Някой каза, че? Sleep, със сигурност. Това е лесно да не правим, но ти трябва да го направиш, мисля. -I Бих казал, наистина се психически подготвени защото ти започваш да го обичам. [MUSIC - IGGY AZALEA "FANCY"] -Това Е CS50. -Това Е CS50. -Това Е CS50. [MUSIC - IGGY AZALEA "FANCY"] -Това Е CS50. [APPLAUSE] DAVID J. Malan: Значи това е CS50 и това е края на седмица 0. И това е само част на персонала CS50 е кой Очакваме не само в раздели и работно време, но, Също така, тази събота и неделя при CS50 Puzzle Day. Което, отново, не е всичко за програмиране. В действителност, това се очаква, че няма да се налага да програмирате нещо, а по-скоро решаване на проблеми, използвайки съобразителност и приятели заедно с вас. Ние ще се присъединят и някои от нашите приятели в Facebook-- ако се регистрирате тук-- които за последните няколко години, действително са били писане тези предизвикателства с нас. И така, те ще бъдат тези, които в крайна сметка работи Puzzle Day. И така, ще бъде оспорено с точно вида на предметите и проблеми, които други хора по време Facebook искал да си помисля. Така че това е утре. Регистрирайте се в cs50.harvard.edu/register. Сега няколко думи за няколко на персонала, по-специално. Това тук е Ансел Duff, който всъщност е една от съавторите на тези двоичен крушки, които видяхме в сряда, в допълнение към собствената Дан Брадли CS50 е. Ансел Дъф е също бивш първокурсник advisee мой преди 3 години и той всъщност дори построил този аналой. Той си отиде, за да се направи инженерните науки и др. Сега, снимката му тук е всъщност Ансел преди 3 години в CS50 Hackathon когато той назаем един от нашите балони, тя остана до лаптопа си, , а за следващите 12 някои странни часа, фокусирани върху крайната си проект, приемащи паузи само за да отворите торби с бонбони в Hackathon. Но той продължи по-скоро да прекарат това лято с нас, тъй като CS50 за своя персонал, и предприятието студенти този семестър, има своя собствена 3D принтер. И по-накратко на 3D принтери е устройство, което изглежда съвсем като този. Можете да го изпълни с пластмасова макара че се претопява от устройството и да изгради неща буквално от нищото. Много прилича на мастилено-струен принтер, вие започвате изплю малки точици от пластмаса че да образуват заедно образуват цели обекти. И така Ансел например, по-рано това лято, има iPhone 5 и реши, че наистина исках да го подкрепят на бюрото му. Но той не искаше да изляза и да купя нещо от магазина Apple или други подобни, така че той Седнах и започнах да рисувам нещо. Той направи няколко измервания за това как дебел и как неговият широк iPhone е, той извади тази картинка тук, той реши, че иска да имат наклон 75 градуса тъй като тя се взираше в го на бюрото си там. След това той се обърна това, като се използват софтуер, в 3D CAD модел че изглеждаше малко нещо като това. И след това той продължи, в крайна сметка, наистина да го създадете. Така че в действителност, ако някой от вас тук, може би в един ред, че мога да хвърля, има an-- там имаме хора с iPhone 5, и тук имаме още два. Сега, за да не остане по-назад, CS50 собственото Cheng Gong изложени също така това лято да се изгради доста неща и, В действителност, поради причини, които са все още неясна, е бавно отпечатване на армия от слонове с представлява позициите оръжие и стволове. Няколко от които са всъщност тук, ако Сега някой ще харесвам-- слон. Добре. Но това, което също е Cheng за нас е, че много любезно създаде фотоапарат защото това слон, вярвате или не, Отнема малко два и половин час, за да отпечатате. Дори стойката iPhone взе час и половина, за да отпечатате. И какво Cheng отиде напред и да направи е създадена хубава камера в предната част на този 3D принтер, заснет за един час и половина като дизайн Ансел, отпечатана. Ние обкова някои секси музика към него, за да ти дам това, за да потърсите как работи 3D печат. И въпреки че това е действително в пластмаса, осъзнават, че ако това е област, от интерес за вас академично, има хора, сред ги Дженифър Люис тук в школата на Engineering, които всъщност са работи върху 3D печат на пластмасови предмети. Но дори и все повече биологични материали за решаване физиологични проблеми за хората. Но тук е малко нещо от CS50. [LOUD МЕХАНИЧНА шумове] DAVID J. Malan: Това не звучи нещо подобно, че в действителност, но това е много по-хладна, за да го гледате при тази скорост, и с този звук. Сега, в сряда, как сме първи стигна до тук? Ние започнахме да говорим за компютър науката и ние попита какво е това. И това е за няколко неща, и Има толкова много различни посоки , в която можете да се отправите след курс като CS50. В действителност, ако вдигна едно на тези неофициални водачи до CS отвън, книжката, че сме предоставили, независимо дали сте мисли за отчитане само CS50, или може би прави вторична, или може би дори и концентриране в CS, да прелистите това. И вие ще видите диаграма към края, че показва много различни посоки в CS, че можете да отидете на разстояние вътре. Но за днес, ние ще се съсредоточи отново върху наистина един от основните възгледи, може би, когато имате входове на проблемите, имате изходи от проблеми, а вие имате алгоритми, с които да се създаде тези изходи от тези входове. И един такъв пример, е на Разбира се, този телефон книга тук. И ние се използва като пример, за да отидете чрез алгоритъм, който е бил правилен. И после още един беше правилно, но малко по-бързо. И после още един, че е малко по-драматично, но фундаментално по-бързо. Точно така, този телефон книга ние твърди имала около 1000 страници. И колко пъти имам скъсате телефонен указател на половина да се намери някой като Майк Смит, максимално, в 1000 страници на книгата? Така че, 10 или да се даде. И така, след като се отскубна от това нещо в половината, или просто, по-зряло, разделен на половина, това е само 10 страници от 1000. И ако се екстраполира, малко нереалистично за телефонния указател, но ако този телефонен указател имаше около 4 милиард страници в него, така че напълно тромава физически, колко пъти да ви разделят с 4 милиарда страница телефонен указател на половина? Така че това е всъщност 32, или да се даде. И така 32 пъти само, извън на 4 милиарда страници, може да те намеря някой като Майк Смит. И това е ефективност. Това е добър алгоритъм, смея. Но след това се преместихме от това да се опита да го официализира. И аз предложих това pseudocode код. Pseudocode код не е нищо официално. Това не е нещо, което да запомните. Това е просто нещо, което да изрази доста интуитивно използването на английски език, или всеки език, наистина, че предава идеите си накратко. Но това, което е ключово за pseudocode код е, че се опитват да предвидят всички от възможни случаи, които биха могли да се случат. И наистина, в това pseudocode код, там наистина са три случая всеки път, когато се разделя телефонния указател. Майк може да бъде в ляво. Майк може да бъде в дясно. Или той може да бъде точно на страницата съм. Или четвъртия ъгъл случай, така да се каже. Лошият сценарий може да бъде един which-- какво се случва? Майк просто не е в телефонния указател на всички. И когато програми crash-- когато Mac и PC софтуер, който вие се движат от вашите компютри понякога виси или се затваря неочаквано, че като цяло означава, че някои програмист, някои човешки като теб скоро, просто прецаках и направи някаква грешка. Може би не е очаквала, че може би има не е Mike Smith в телефонния указател. И ако всъщност не пиша код, за да се справят с такива ситуации, че непредказуема неща могат да се случат. Вашето устройство може да се замразява. Тя може да се рестартира. Програмата може да се откажат. И така, всички от тях глупости, че може са срещнали в действителната живот само с помощта на компютри, все повече ще бъде само обясни далеч от тази интуиция и това разбиране за това какво е всъщност се случва под капака. Сега нека да се опитаме да погледнем в по-общ проблем. Вместо да обслужване на място, като това, което би било много бавно да се направи една, две, три, четири. Или може би две, четири, шест, осем. Нека се съсредоточим върху как бихме могли да се формализира алгоритъм на процеса от които можем да вземем обслужване. И по пътя, нека да започнем да се прилагат някои номенклатура че ние ще използваме днес, когато ние действително започнете програмирането на езика. Така че сега ти я даде, четири минути видео че ние поставяме заедно с нашите приятели от TED, организацията. Чрез която се доставя по сценарий и те докараха аниматори да понесе, и всъщност създаде 2D анимация на това, което алгоритъмът е. Ако можехме да намаляване на осветлението. [За възпроизвеждане на музика] Разказвач: Какво е алгоритъм? В компютърните науки, алгоритъм е набор от инструкции, решаване някакъв проблем стъпка по стъпка. Обикновено, алгоритми изпълнен от компютри, но ние, хората, имаме алгоритми, както добре. Например, как ще отида за броене броят на хората в една стая? Е, ако сте като мен, вие вероятно ще точка на всяко лице, една по една и брои от нула. Един, два, три, четири, и така нататък. Е, това е един алгоритъм. Всъщност, нека се опитаме да го изразим малко по-официално в pseudocode код. English-подобен синтаксис, който прилича на език за програмиране. Нека N равен 0. За всеки човек в стаята, определен п равно на п плюс 1. Как да тълкуваме pseudocode? Ами първа линия декларира, така да се каже, с променлива нарича N и инициализира стойността си до 0 Това просто означава, че в началото на нашия алгоритъм, нещо, с което ние сме броене има стойност от 0. В крайна сметка, преди да започнем да броим ние все още не са преброени нищо. Обаждане на тази променлива п е просто конвенция. Бих могъл да го нарече най-нищо. Сега втора линия demarks началото на цикъл, последователност от стъпки, които ще Повтарям някои брой пъти. Така че в нашия пример, стъпката сме поемане се брои хора в стаята. Beneath втора линия е линията три, който описва как точно ще отидем за преброяване. Вдлъбнатината предполага, че това е трета линия, която ще се повтаря. Така е и с кода на pseudocode е поговорка е, че след като се започне от 0 за всяко лице в стая ние ще се увеличи с 1 п Сега е този алгоритъм е правилно? Ами нека взрив върху него малко. Има ли работа, ако има двама души в стаята? Нека да видим. В съответствие едно ние инициализира N до 0. За всеки от тези двама души, След това ние увеличаваме п от 1. Така че в първия пътуване през контур, ние актуализираме п от 0 до 1. На втория пътуването през тази една и съща линия, ние актуализираме п от 1 до 2. И така, от този алгоритъм е край, п е 2, който наистина отговаря на броя на хората в стаята. Дотук добре. Какво ще кажете за случай на корнер обаче? Да предположим, че има 0 души в room-- освен мен, който е прави броене. В съответствие едно, ние отново се инициализира N до 0. Този път обаче, линия три не изпълнява изобщо тъй като там не е човек в стаята. И така п остава 0, което наистина отговаря на броят на хората в стаята. Доста проста, нали? Но броим хората един по един е доста неефективно, прекалено, нали? Със сигурност можем да направим по-добре. Защо не разчита на двама души в даден момент, вместо да броим едно, две, три, четири, пет, шест, седем, осем, и така нататък. Защо не се брои два, четири, шест, осем, и така нататък? Той дори звучи по-бързо. И това със сигурност е така. Нека изразим тази оптимизация в pseudocode код. Нека N равен 0. За всяка двойка на хора в стая, задайте п равно на N плюс 2. Доста проста промяна, нали? Вместо да се разчита хора един по един, ние, вместо да ги брои по две наведнъж. Този алгоритъм е, по този начин, два пъти по-бързо от предишната. Но това е правилно? Нека да видим. Има ли работа, ако има двама души в стаята? В съответствие едно, ние инициализира N до 0. За един чифт на хора, След това ние увеличаваме N от 2. И така от този алгоритъм е край п е 2, който наистина отговаря на броя на хората в стаята. Да предположим, че има следващия нулеви хора в стаята. В съответствие едно ние инициализира N до 0. Както и преди, трета линия не всичко се изпълни тъй като там не са всички двойки от хора в стаята, така и п остава 0. Което наистина съвпада с брой хора в помещението. Но какво, ако има трима души в стая? Как работи този алгоритъм тарифа? Нека да видим, в съответствие едно, ние инициализира N до 0. За чифт от тези хора, След това ние увеличаваме N от 2. Но след това какво? Там не е един пълен чифт от хората в стаята, така че втора линия вече не се прилага. И така до края на този алгоритъм е, п е все още 2, който не е правилна. Всъщност този алгоритъм каза да е бъгав, защото има грешка. Нека обезщетение с някои нов код pseudocode. Нека N равен 0. За всяка двойка на хора в стая, задайте N равно на N плюс 2. Ако един човек остава нечифтосаната, определен N равна п плюс 1. За решаването на този конкретен проблем, ние сме въведени в съответствие четири условие, иначе известни като браншови, че тя изпълнява само ако има един човек, който не може да сдвоите с друго. И така, сега, дали има един, или три, или която и да е нечетен брой на хората в помещението, този алгоритъм сега ще ги брои. Можем ли да направим още по-добре? Е, ние може да разчита в тройки, или четири крака, или дори петици и десетки, но освен това, че ще се получи малко по-трудно да се посочи. В края на деня, дали изпълнен от компютри или хора, алгоритми са само набор от инструкции с които да се решават проблемите. Това са само три. Какъв проблем бихте реши с алгоритъм? DAVID J. Malan: Значи умишлено, много проста програма, много прост алгоритъм, за постигане на нещо много проста, да броим брой хора в помещението. Но нека да дразни с изключение някои от представителя разполага тук, че всъщност са ще бъде полезен дори когато прилагането на най- комплекс от софтуер. Така например, в първия ред, ние имаме това, което ние наричаме променлива, и от алгебра, вие сте обикновено запознат с помощта X и Y и Z понякога, и така нататък. Но в програмирането, променливи са все още в края на деня, много подобен на този. Но това е може би просто да мислим, на променлива като просто контейнер. И в действителност, това е известно брой битове реализира по някакъв начин в твърдия ви диск или в паметта на компютъра, но повече за това в бъдеще. Това е просто един контейнер. И ако ти кажа нещо като нека п равно 0, добре, че е все едно да наречеш това стъкло купа тук н, просто произволно име, и пускането нищо в него първоначално. Така стойността на този купа в момента е нула. И разбира се, ако вие възприемате в последващо линия, действително да увеличите някои линия на код, като в тази трета линия тук, от един, това е като да кажеш, какъв е текущата стойност на N, това е 0, плюс 1, сложи нещо като пинг-понг топка в тук. Сега стойността на този променлива е просто един. И бихте могли много бързо да се екстраполира, но сега това е 2, сега е 3, и така нататък. Така че всичко е променлива е. Това е част от паметта, която всъщност се съхранява някои данни. За сега това е пинг-понг топка. Там това е номер. Но тя може да бъде думи в речник, като проверка на правописа Аз споменах в сряда за един от миналогодишните проблемните комплекти. Сега друга ключова идея, че по подобен начин е доста интуитивен Бих твърдят, е, че на една линия. И примката в процеса за преброяване на всички е, разбира се, прави същото нещо отново и again-- или един по време или две в даден момент. И вие можете да изразите това на английски, или pseudocode код, в произволен брой начини, но използването на този предлог "за" е много често срещан начин за правене на това. За всеки човек в стаята, направи това. Отново и отново. И факта, че е разчленен, трета линия, просто означава, че това, което Трябваше да си направя е неща, които е разчленена под линия се две. Просто човек конвенция, но един общ както ще видим в действителност по-висока програмиране ниво езици. Сега малко по-интересна е когато можете да получите в случай корнер. Например, един ъгъл случай е, когато има трима души, или пет, или седем, или която и да е нечетен брой на хората в помещението, защото това, че избиват спирачки в крайна сметка, защото ви ще да пропусна някого, или в самото начало или в самия край в зависимост от това как го правиш. И така, сега, аз имам този клон, или състояние, ако един човек остава След това отидете напред и да се справя с това една самотен човек, който не се получи в двойка с някой друг. Така че това е, което ние наричаме състояние, или клон. Сега pseudocode код -общо може да бъде написана, за да реши всеки редица проблеми. И това, което смятахме, че ще правим тук, е да вземе един момент да поканим да кажем CS50 е притежавате Rob Боудън на сцената да се присъединят и двама доброволци, които нямат представа какво очаква. Една ръка слезе веднага след като го казах. Какво ще кажете за вас на свършва тук, хайде нагоре. А какво ще кажете за по-далеч от далеч, какво ще кажеш начин в гърба. Обратно ред, хайде нагоре с ръцете си нагоре. Добре, и какво е вашето име? ANITA: Анита. DAVID J. Malan: Анита. Добре, хубаво е да се запознаем. Позволете ми да ви запозная с Rob Боудън. Това е Анита. А какво е твоето име? KIERSTEN: Kiersten DAVID J. Malan: Kiersten. Kiersten, хайде и отговарят Rob Боудън и Анита. Приятно ми е да се запознаем. KIERSTEN: Приятно ми е да се запознаем. DAVID J. Malan: Добре, Роб. ROB Боудън: Приятно ми е да се запознаем. DAVID J. Malan: Анита. KIERSTEN: Hi Анита. DAVID J. Malan: И си няколкостотин съученици. Така че, сега нека да вървим напред и издърпайте до само една проста програма тук на Mac OS, че ще ме пусне всъщност нахвърлям някои бележки надолу. И ако вие искате да всеки да вземе позиция в едно от тези училища там, позволете ми да отида напред и започва списък на pseudocode код, ако щете. И това, което искам да направя тук, в крайна сметка е вид за вас някои инструкции, които ни публиката са всъщност ще рецитира за нас. Позволете ми да отида напред и просто промените на номериран списък да съответства това, което правехме там. И това, което аз ще направя с вашата помощ, е да напишете програма в pseudocode, с което тези момчета ще за изпълнение на фъстъчено масло и желе сандвич. Така че това е може би между другото да покажа нещо на някои от вас Може би сте виждали в интернет само за един кратък миг досадно. [MUSIC BUCKEWHEAT BOYS ", фъстъчено масло  JELLY TIME "] DAVID J. Malan: OK. Това е достатъчно за това. Така че тук междувременно, имам чифт Google Glasses които ние ще поставим на собствен Rob Боудън CS50 е да видиш света през неговите очи. И ние ще направим всичко възможно в пост производство действително да тъкат кадри от това, което Роб се виждат сега, в тази актуална лекция видео с нашите две доброволци до него. Така че това, което аз ще направя е, аз ще бъда машинописка. Ние имаме за цел тук на Всъщност написването на програма с които да се направи, в крайна сметка, по- фъстъчено масло и желе сандвич, но тези тримата ще се държат като че ли те са компютри. И компютри, в края на деня, всъщност са доста тъпи устройства. Те са супер бързо, но само те могат да правим, буквално, това, което им се казва. Не може просто да се каже, направи фъстъчено масло и желе сандвич. Трябва да ги програмирате да направя това. Трябва да им кажа с точност какво да правя, по-малко нещата се ужасно и, Надяваме се, забавно проваля. Така че с това каза, ние трябва една табла от страна на публиката за това, което трябва да засили едно е, ако целта тук е да се направи фъстъчено масло и желе сандвич. Да? АУДИТОРИЯ: [недоловим] торбата с хляб. DAVID J. Malan: Отворете чантата на хляб. Така че, ако трите състезателите ще искате да продължите да се направи това буквално. Отворете чантата на хляб. [АУДИТОРИЯ Вижте] DAVID J. Malan: Така че нека да работим върху това. Добре. Така стъпка две, how-- нека да вземем това допълнително. Да, в предната част. АУДИТОРИЯ: [недоловим] хляба. DAVID J. Malan: Какво е това? АУДИТОРИЯ: Извадете хляба. DAVID J. Malan: Извадете хляба. Подобно сбит. Благодаря ви. [APPLAUSE] DAVID J. Malan: Това ли е? ОК, така че втора стъпка ще да премахнете хляба. Добре, някой иска да пишете ни по-дълго изречение? Някой друг? Малко повече [недоловим]. Не, нищо сега. Да? АУДИТОРИЯ: Place две резени един до друг. DAVID J. Malan: Place две резени един до друг. [АУДИТОРИЯ Вижте] DAVID J. Malan: Place две резени един до друг. Стъпка четири. Да? АУДИТОРИЯ: Вземи си ръка и я постави леко в горната част на капака на фъстъчено масло. [АУДИТОРИЯ Вижте] АУДИТОРИЯ: [недоловим] в непосредствена близост до фъстъчено масло. DAVID J. Malan: Какво? Кажи, че отново. АУДИТОРИЯ: Развийте капака и сложи нежно до фъстъчено масло. DAVID J. Malan: Сложете го внимателно в непосредствена близост до фъстъчено масло. OK, прогрес. Стъпка пет. Отлично. Да? Вземете нож. DAVID J. Malan: Вземете нож. OK, шеста стъпка. Да? АУДИТОРИЯ: Задръжте нож с помощта на дръжката. DAVID J. Malan: Задръжте нож от дръжката. Дръжте нож от дръжката. Стъпка седем. Да? АУДИТОРИЯ: [недоловим] нож в фъстъчено масло и по-малко от [недоловим]. DAVID J. Malan: Сложете нож в-- I Чух "сложи нож в фъстъчено масло и да вземат по-малко от колкото е възможно. " Между другото, отстранете хартията, на първо място. Добре, стъпка девет. Стъпка девет. Стъпка девет. Ние не са действително направени сандвич все още. Да? АУДИТОРИЯ: Използването на нож в фъстъчено масло, прилага фъстъчено масло каза хляб. DAVID J. Malan: Използването на нож в фъстъчено масло, фъстъчено масло се прилага върху каза хляб. [АУДИТОРИЯ Вижте] DAVID J. Malan: Добре стъпка 10. Стъпка 10. Да? АУДИТОРИЯ: Taste фъстъчено масло за да се гарантира качество. [АУДИТОРИЯ Вижте] DAVID J. Malan: Стъпка 11. Стъпка 11. Стъпка 11. Хайде. Да? Точно там. АУДИТОРИЯ: Внимателно вдигнете желе. DAVID J. Malan: Внимателно вдигнете желе. OK, а след това друга страна нагоре. Точно зад теб. Да, в синьо. АУДИТОРИЯ: Добре, извадете капак от [недоловим], да, премахнете капака от желе. [АУДИТОРИЯ Вижте] DAVID J. Malan: От желе. Ха-ха. [АУДИТОРИЯ Вижте] DAVID J. Malan: И? АУДИТОРИЯ: И едва помете всяко [недоловим]. [АУДИТОРИЯ Вижте] АУДИТОРИЯ: Разбира се, преди [недоловим], Извадете хартията от желе. DAVID J. Malan: Извадете хартията от желе. Стъпка 14. Ние сме почти там. Да? АУДИТОРИЯ: Invert бутилка желе преди всичко пада. DAVID J. Malan: Invert желе бутилка преди желе пада. Стъпка 15. АУДИТОРИЯ: Поставете капачката. DAVID J. Malan: Поставете капачката. Стъпка 16. Да? АУДИТОРИЯ: [недоловим] DAVID J. Malan: Кажи, че отново. АУДИТОРИЯ: Обърнете капачката на вашия желе. DAVID J. Malan: Off си желе. Така наистина-- Oops. Хайде. Поставете капачката. Сложете cap-- Казахте Отстранете капачката на желе. Почувствайте се като ние сме в малко на една линия. Стъпка 17. Да? АУДИТОРИЯ: [недоловим] DAVID J. Malan: Кажи, че отново. АУДИТОРИЯ: [недоловим] DAVID J. Malan: Върнете се step-- АУДИТОРИЯ: [недоловим] DAVID J. Malan: Отстранете капачка от фъстъчено масло. Да? АУДИТОРИЯ: Капка всички желе на хляба. DAVID J. Malan: Отстранете всички желе на хляба. DAVID J. Malan: Ние сме почти там. Стъпка 19. АУДИТОРИЯ: Отстранете излишния желе. DAVID J. Malan: Haha, желе. [APPLAUSE] DAVID J. Malan: Защо не ние-- още една стъпка, за да се възползвам от тази у дома. Още една стъпка и след това ние ще служи сандвичи. Да? АУДИТОРИЯ: [недоловим] DAVID J. Malan: Докато всеки сандвич тире remains-- Нека това-- ядат. [АУДИТОРИЯ СМЯХ] DAVID J. Malan: Добре, благодаря можете да ни доброволци тук. [APPLAUSE} DAVID J. Malan: Имаме някой хубав раздялата подаръци за всеки от вас. Вашият собствен фъстъчено масло, желе, и хляб, за да върне у дома. Благодаря ви. KIERSTEN: Благодаря ви. DAVID J. Malan: [недоловим] добре дошли. [APPLAUSE] DAVID J. Malan: Така че, това е, Разбира се, нелепо например. Така ли е? Но тя не вид разкрие как можем хората просто да вземат по-голяма яснота за даденост. А фактът, че съм бил говори с друг човек, той или тя просто не знае какво да кажеш. Компютри не вървят да знам какво искаш да кажеш, дори когато се използва, както ние сме на път да направим днес, програмиране нещо в Scratch, а драг и капка, език пъзел стил парче. Дори и предназначена за млади деца, вие трябва да бъде толкова изрично и така буквално с какво искате вашата програма да се направи. Сега в крайна сметка, ние сме ще бъде програмиране не в pseudocode код, English като синтаксис, но код, или по-правилно, изходен код. Изходния код е само фантазия начин за описване на код, който всъщност пиша с клавиатура, която е не на английски на себе си. Това е в C или Java или C ++ или нещо така, както скоро ще видим. И в действителност, само за да изплаши Някои от вас, на пръв поглед, това е една програма, написана на език, наречен C. Но за да не-изплаши някои от вас, щете напълно разберем какво става върху дойде следващия понеделник, когато го въпрос за нещо подобно. Честно казано, това е по-стар език. Това е доста тайнствена, но това е представител на много езици тези дни, че имате много скоби и къдрава скоби и кавички и запетаи. И много от това синтактична неща, които не е изобщо интелектуално интересно. В действителност, това е пълна разсейване от много прости идеи , които са ни се взираше в лицето. Тази програма, както може би просто предполагам, отпечатъци на екрана на компютъра на някой думите "Hello запетая света." Това е всичко. Затова е ясно, че има много неща, които е Първи в начина на някои очевидност там, но това се случва много бързо да се измъкне далеч и да бъде напълно интуитивно. Всъщност, това, което ние ще направим днес се дестилират тази доста сложна Търся програма, която отново ще дойде да се разбере бързо, но до нещо много по-прости. Нека просто кажем, че това, което имаме предвид. Нека да се направи снимка на това, което имаме предвид, с помощта на тези парчета от пъзел тук. Така че това е програмиране език, известен като Scratch. Тя е разработена от Media Lab на Масачузетския технологичен институт. И това, което ще видите в проблем зададете нула, която ще бъде пусната по-късно тази вечер, ние ще трябва да отидете до този URL тук scratch.mit.edu. И те имат уеб базиран интерфейс, чрез който вие ще напишете първата си програма. Или тези от вас, с предварителното опит, вашите втората програми, но в една среда, която е Вероятно малко непозната и че ще те бутна да се създаде нещо използването на този много визуална среда. Сега, това, което аз ще направя тук е отваряне на самата програма. Тя съществува не само като уеб браузър, но също така и като възможност за сваляне програма така че всъщност можете да го използвате Ако нямате достъп до интернет. И аз ще го направя тук, в Sanders, просто в случай, че Wi-Fi не сътрудничат супер добре. И това, което аз ще направя, е точка от няколко характеристики на тази програма. Така че, за да е ясно, че има само два пъти кликнали върху иконата на работния плот, или еквивалентно отишъл да scratch.mit.edu, и го спря този прозорец. Това е среда за програмиране. Това е парче от софтуер, който някои от нашите приятели от MIT пише, че е да споделите с нас и ще ви пиша програми на език, наречени Scratch. Сега това се случва да бъде котка, която също е наречена Scratch и това е неговият свят, в който той живее. Това е сцената, така да се каже, че правоъгълник в горния ляв ъгъл. И той не трябва да прилича на котка. Можете да го карат да изглежда като нищо и ще ви може да има много подобни спрайтове, или символи, в една програма. В същото време, тук в далечната Добре, е голям празен лист. И това е мястото, където, в един миг, ние ще започнем програмиране чрез плъзгане и пускане тези графичен пъзел парчета, които са точно тук в средата. И там е начин повече от тях, отколкото ние ще прекарват времето си тук в клас защото вие ще откриете, че всички те са доста интуитивен. Отново, той е проектиран за децата, но ние го използвате, за да дразни с изключение на някои от тези основните идеи на променливи, шлейфове, условия, а скоро и неща като функции и събития и конци и други модни неща, които ще стигнете до преди дълго, за да се създаде действително нещо от нулата. Игра на думи предназначени. Сега, това, което аз ще направя тук, е кликнете върху не движение, но контрол. И това е само една категоризация на тук-- и виждам различен Задаване на цвят на блокове. Но забележете няколко познати думи. "Ако" и "друго, ако" и "повторение". И най-вероятно да се досетите това е напомнящ на клона, или условията, които видяхме, и дори конструкцията примка. Така че ние имаме подобни блокове тук. Но най-интересното един е този тук. Когато този зелен флаг се натисне, това, за тези с предварително програмиране опит, е еквивалентен на основната функция. Но за тези, непознати, това е парче пъзел която ще започне използването на цялата ни програма. Това буквално означава, че когато и да отида, в това програма, и кликнете зелена flag-- , които можете да видите тук в горния ляв ъгъл на потребителския интерфейс, така видя зеленото знаме до червения знак стоп? Когато кликна, че ми програма ще се изпълнява. Сега, аз отивам да направя нещо супер проста с Scratch. Отивам да вървим напред и отидете на външен панел тук, където имам един куп на лилави парчета от пъзел, и аз отивам да вървим напред и да направим нещо супер просто като, да речем. И тогава-- известие този текст в бялото поле е editable-- Отивам да се каже, "Здравей, свят", просто ни харесва направи в тази текстова версия преди малко. И сега, ако отида и кликнете върху тази зелен флаг, аз вече са програмирани. Това не е особено интересна програма, но направих на компютъра да направи нещо. Започнах програма и я Направих това, което ми каза, че това да се направи. Сега, аз може да продължи, за да влачите и пускате все повече и повече от тези парчета от пъзел и те ще блокировка, но нека шамар някои терминология тук че ще видим повтарящи по време на курса, и наистина в цялата компютърни науки и програмирането като цяло. Това "казват" блок, в лилаво, нека просто започнете да се обадите изявление. Това е като констатация на факт. Направи това. Така че, това е една категория инструкции, които ви могат да се хранят един компютър, като част на програма или алгоритъм. И за да бъде ясно, вие сте вероятно се приема за даденост че имате програми на вашия компютър. И те са вид алгоритми, но програма е наистина един куп алгоритми че някои хора са писали. Те го опакова и те го продават, така че, или те е публикувал на интернет страница за да можете да изтеглите. Така, че програмата е само един цял куп от нули и единици че, някак си, хората създали. И тези модели на нули и такива представляват неща, в крайна сметка, като "кажа здравей свят" или "игра тази музика "или" да играе този клип " или "изпрати съобщение". Но ние ще се върнем в начин по-подробно какво програма е, когато, себе си, да ги пиша. Ето още един statement-- "Изчакайте за една секунда." Аз не се е възползвал от това все още, но ако искам моята програма, за да спрем за момент да се направи нещо, мога да го кажа, да го направят. Изчакайте секунда. Сега още един може да бъде "да играе звук." Така че, това е уникален за нулата, тя има способността да възпроизвежда звуци. Така че, изявление бих могъл използване е, тук, "играе звук." Междувременно, Boolean израз, така че това е любител дума кръстен просто човек на име г-н Bool, и това е всичко за един въпрос. Вярно или false-- е на мишката надолу? A Булев израз е просто някои изразяване на английски език който е или вярно или невярно. Или включен или изключен. Или един или нула. Можете да мислите за него в произволен брой начини, но това е било вярно или тази фалшива, в крайна сметка. Така че "мишката надолу въпросителен знак", че ще бъде булева изразяване. И вие може да се мисли за другите, може би. Например, "е отляво броя по-малко от правилния брой? " Това също би било булев израз. "По-малко от" е булев израз. Това едно, също ", трогателна показалеца на мишката." Аз не съм сигурен защо те го нарече показалеца на мишката. Това просто означава, е курсора, е стрелка на екрана, докосване на котката, например. Или някакъв друг аспект на екрана. И това е въпрос, отново, и това означава Булев израз. Нещо, което може да се искате да използвате в състояние. Така че ние ще се стигне до това само в един миг. Можете да "и" неща заедно. Така че, ако искате да проверите дали този е така и това е така, можете да използвате "и" блок като този. И тук е това състояние. Обърнете внимание на формата на малък отвор в горната част на този жълт пъзела, това е напомня на формата че току-що видяхме преди малко. Всеки един от тези булеви изрази имаме тези посочиха ръбове отляво и отдясно. И това е така, защото MIT хора решиха че визуално пренасящи форми, можете да вид се помогне на хората, студенти и деца, така, някак да попълнят празните места буквално. Сега, puzzle-- че отвор е малко по-малък, и както ще видим в програмата, в Scratch, то ще расте за да се побере. Това ще запази формата си, в крайна сметка. Така състояние, нека да решите "Трябва да се направи нещо или не?" A Булев израз е действителната въпрос който използвате, за да реши да отиде в наляво или мога да отида в дясно когато се сблъскате с този така нареченото разклонение на пътя? Можете да имате два клона. Ако нещо е вярно, направете това, в противен случай отидете по този начин, или просто да не се прави нищо в всички, като този блок мълчалив. По същия начин, ние можем да гнездят тези неща. Така че, ако искате да се утрои вилица в път, или да направите това или това или онова, можете просто да гнездят тези неща заедно. И тя започва да се получи малко грозен, в крайна сметка, със сигурност, но логиката е същата. Можете да буквално се чете това отгоре до долу и то се казва какво трябва-- ако това Вярно е, да направите това, иначе ако друго. Цикълът не получи по-просто в Scratch. Forever направете следното. Сега не може да си мислиш, може да направи много, защото там не е много пространство между горната и долната част на този отвор пъзел парче. Но вие ще видите Scratch ще растат да се поберат най-много парчета от пъзел като искате да се тъпча в там. Друга линия може да бъде изразени с повторения. Ако знаете предварително, "I Искам да направя нещо 10 пъти " можете просто да кажете Scratch да направя нещо 10 пъти. А междувременно, ние можем да имаме променливи. Така че тук е произволно едно, това е оранжево в този случай, и това е една вихрушка турне. Отново, вие ще намерите този много достъпен след като започнете да отворите и кликнете. Аз съм именувана променлива ми н, но аз можеше да го нарича всичко, което искате, и аз съм я оставяте тук, в това произволно например до нула. Сега виждаме програма като здравей свят не е всичко, което непреодолими, така че нека действително се отвори нещо че бивш студент прави. Нека да вървим напред и да се отворят, например, този тук, , за които бих се радвал да има доброволец. Добре, как about-- да вървим по-нататък. Да, хайде нагоре. Как ти е името? ABBY: Аби. DAVID J. Malan: Аби, хайде нагоре. Така Играли ли сте някога тази игра преди? ABBY: Не DAVID J. Malan: Добре. David, хубаво е да се запознаем. Ела. И какво е вашето програмиране фон, ако има такива. ABBY: Научих някои C ++. DAVID J. Malan: Вие сте научили някои C ++. И каква е вашата игра играе фон? ABBY: Не много. DAVID J. Malan: ОК, така че ние ще го взема. Така че тук е как играта ще работи. Отивам да вървим напред и кликнете зеленото знаме, което е тук, в горния десен ъгъл. Сега вашият предшественик в класа ти е дал някои инструкции тук. И в един момент тя, казва: "пространство, за да започне." Така че продължавайте напред и натиснете клавиша за интервал. КОМПЮТЪРНА ИГРА: Pikachu. DAVID J. Malan: А целта е да се хванеш храната, както е показано там в ляво. И за да [недоловим] [GAME възпроизвеждане на музика] DAVID J. Malan: Ооо, добре, благодаря ти за игра. Ние имаме тук малко прощален подарък за вас. Имаме CS50 стрес топка, ако искате да изберете. Добре, радвам се да се запознаем. Благодаря ви, че дойдохте и предизвикателни. Така че ние имаме повече стрес топки, така че нека да направим още един пример, за да се мотивират. A доброволец? Добре, какво ще кажеш за точно тук в предната част. Как ти е името? ФИЛИП: Phillip. DAVID J. Malan: Phillip. Ела, Филип. Така че, Филип ще бъде оспорва с друга игра че един от вашите предшественици пише като част от проблема зададете нула, наречен Hardest Game Айви. И ние ще видим само за момент какво се разбира под това. Филип, хубаво е да се запознаем. Какъв е вашият опит? ФИЛИП: Съставено много кодиране. Съставено малко игри, също. DAVID J. Malan: OK. Има много игри, също. И сте играли тази игра преди? ФИЛИП: Не DAVID J. Malan: All Добре, така че тук ние тръгваме. Отивам да вървим напред и кликнете на зеления флаг. [GAME MUSIC] [MUSIC MC HAMMER, "U МОЖЕ ДА НЕ Докоснете този"] ФИЛИП: [недоловим] DAVID J. Malan: [недоловим] ФИЛИП: [недоловим] [Сайта] [MUSIC MC HAMMER, "U МОЖЕ ДА НЕ Докоснете този"] DAVID J. Malan: [недоловим] Прочитам това. ФИЛИП: [недоловим] DAVID J. Malan: Върви напред. [MUSIC MC HAMMER, "U МОЖЕ ДА НЕ Докоснете този"] DAVID J. Malan: Добре. Поздравления. [APPLAUSE] DAVID J. Malan: Ние ще мнение, че онлайн-късно, така че , които можете да отлагате с него, както и. Princeton идва следващия, след това. Така че сега нека всъщност се процедира да се започне от нулата, така да се каже, и действително да се изгради до можем да дразни с изключение на някои от тези идеи и да стигнем до нещо още по-сложни от края. Отивам да отидете тук и аз отивам да вървим напред и да се създаде нов файл. Така че отново, комплектът проблем ще ходи вас чрез някои от тези стъпки. Но всичко, което направих беше Go към менюто File и аз каза: "ново", толкова много като Microsoft Word, или всяка програма, като това. И да вървим напред сега-- и ние изпълнени "Здравей, свят" преди малко, но нека да направим нещо малко по-сладък. Отивам да отида до събития. И аз отивам да правя ", когато зелен флаг кликнали. " И тогава аз отивам да се използва, да кажем, клон. Така че аз отивам да се използва ", ако" състояние. И забележете как веднага след като се доближи към нея, тя иска да щракне заедно. Така че нека да отида и да го щракне заедно. И сега не мога да направя нещо интересно. Ако преминете през тук, аз отивам , за да видите един куп блокове. Ако отида в "данни" - нека да го увеличите в-- има нещо за променливи. Ако отида в "движение", можете да очевидно се обърнат развоя на мача. Ако отида в "оператори" - О, това е интересно, Мога да вземете случаен номер. Така че нека да направим нещо само с някаква вероятност, просто защото. Отивам да вървим напред и плъзнете този пъзел парче, това е, че по-малко от блок, така че това е просто "Е това число по-малко от това?" Но аз не искам твърд код редица защото това е доста безсмислено. Така че аз отивам да плъзнете това парче тук, и да забележите как щракне в, а сега нека да вървим напред и да кажа ", ако номера, който е качват на случаен принцип е по-малко от шест, направете следното. " А защо по-малко от шест? Какво вероятност е това ефективно ще ми даде, просто интуитивно? Около 50%, нали? Ако числото, което е предполагам случайно между 1 и 10 е по-малко от шест ясно е едно, две, три, четири или пет. И така, това ще ми даде 50% вероятност на какво става? Ами нека да направим нещо подобно това ", играе звук мяу". И забележете, отново, на парче пъзел расте да се поберат, доколкото съответстват на формите. Това е, което е важно. Нека да преминем към Scratch тук и натиснете "игра". Нищо не се случва. Това бъг ли е? Не, не е необходимо. Тя може да бъде само, че по-голям брой е бил избран. Така че нека да го направим отново. Нищо. [Мяу] DAVID J. Malan: Ето го. [Мяу] DAVID J. Malan: Again. No. [Мяукане] DAVID J. Malan: така че ако сте някога е играл игра, разбира се, където нещата се случва на случаен принцип, като лошите идват или не идва към екрана, или неща падат или не падат, това е само защото нещо супер просто като това се случва. Избор на случайни числа, и ако това е по-малко от някаква стойност, Може да направите това, или може би да направя това. Ние може да приеме че в състояние. Нека да направим нещо по-различно. Позволете ми да се хвърлят, че далеч. Можете да се отървете от неща, от просто го плъзнете разстояние вляво и отдалечаване. Нека да вървим напред и да направи завинаги блок и много бързо да се направи нещо досадно. Нека да вървим напред и да каже "да играе звук мяу". Но аз не искам това да бъде прекалено досадно, така че позволете ми да вземете този блок, "Изчакайте една секунда" и обявление че няма повече място за него. Но ако отидете достатъчно близо, тя иска да отиде там. Така че нека отиде и тя ще нарасне до запълване на блока. Така че сега, че това е една линия. [Мяукане] DAVID J. Malan: Аз съм буквално прави това завинаги. Отново и отново. Това не е просто естествено звучене. Нека да вървим напред и да се промени това за нито една секунда, за две секунди и натиснете Enter. И това, което е хубаво за Scratch е , които можете да програмирате интерактивно. Направете промяна, може би удари Въведете или Играйте отново, и то просто ще продължим. Е, сега защо не правим нещо малко по-сладък? Вместо да правим всичко от нулата, позволете ми да отида напред и да се отворят аванс направи едно, че аз предварително печени, наречен "Pet котката." И ние ще публикуваме всички тези файлове онлайн, и проблем зададете нула, ще ви кажа, как да има достъп до тях и да ги отворят. И забележете, това е доста проста. Но по-рано, аз изглежда да са сграбчи на "завинаги" блок, така че аз имам една линия. И тогава аз имам един "ако" състояние. Имам Булев израз. Така че, на английски език, само погледна към това, особено ако никога не сте програмиран и преди, просто интуитивно, Какво е това ще направим, тази програма? [АУДИТОРИЯ бърборене] DAVID J. Malan: Ако погаля котката, котката ще мяу, нали? Защото "завинаги махнете отметката" се показалеца на мишката да докосва котката. Така че, за да бъде ясно, а аз не съм казал, това и преди, всички тези пъзел парчета и скрипт, който сме ги комбинират в, така да се каже, скрипт е синоним програма, наистина, принадлежи към тази котка. И причината е-- защото известие как същата тази котка тук, се освети, тук можете да създадете втора котка или куче или наистина всичко, което искате графично. Можете да импортирате нещо от Photoshop, или други подобни, и интегриране на нещо, ако искам да го направя за един проект. И това, което ще откриете, в крайна сметка, е, че могат да добавят скриптове, добавете пъзел парчета, на отделни знаци. Така че всички те принадлежат към тази котка. Така че сега, ако отида напред и да играе тази програма, нищо не се случва. Но тя се изпълнява. Програмата е в това завинаги контур, вид на изчакване за това, което се случи? [АУДИТОРИЯ бърборене] DAVID J. Malan: За да погаля котката. Така че, ако се движат мишката ми към him-- [Мяукане] DAVID J. Malan: Така че сега Аз съм зоологическа котката. В същото време, ние може да има двойна клон. Нека да вървим напред и да се отвори нагоре не погаля котката. Ние ще публикуваме това, както и онлайн. Това е малко повече комплекс, но се разбира можете да се досетите може би какво ще се случи. [Мяукане] DAVID J. Malan: Cat е мяукане, Гранд старо време. Но тази програма е разбира наречена "Не домашни любимци Котката" толкова ясно, искам да погаля котката. [Ревящи] DAVID J. Malan: Не погаля котката. Сега, нека да разгледаме още един пример тук. Това ще се нарича "Hi, Hi, Hi," от съображения за че ще бъде ясно, защото веднага след като стартирате тази thing-- [SEAL лай] DAVID J. Malan: Много лесен за напиши досадни програми нулата. [SEAL лай] DAVID J. Malan: Сега ние няма да отидат в големи подробности с всички от тях, но забележете има няколко нови функции тук. Има една променлива, наречена "заглушава" и след това има един куп условия. И за сега, нека просто ви дразни с думите че ако този човек стане твърде досадно, Мога да се удари в интервала, и той спира. Тъй като ролята се играе от тези две скриптове е както следва. Един от тях се правят лай на всеки няколко секунди. Другият е само чакат за мен, за да удари интервал. И ако го направя, се удари в интервала, тя няма да се промени състоянието на тази променлива, стойността на тази променлива, това е очевидно наречен "заглушава" Аз не се обади това нещо скучно като N, Аз го нарича английска дума, "изключен." От 1 до 0 или от 0 до 1. От верен на невярна или фалшива да е вярно. И така, всъщност можете да виж сега, че сте може да има две скриптове, две програмите, които работят едновременно, и двете от тях може да се седи в цикъл прави нещо. В очакване на човека, за да се направи нещо като удари интервал. [SEAL лай] DAVID J. Malan: И сега той е на път отново. [SEAL лай] DAVID J. Malan: Така че какво друго може да правим с тези примери? Е, да вървим напред и да направя Например с броите овце. Ще продължим по линиите тук на-- нека отворим примера овце. И забележете, подобно преди, този път, за щастие, е малко по-малко досадно. След като ударих играе тук-- О, не, това е досадно. Той ще BAA с някои вероятност. Да играем отново. [SHEEP BLEETING] DAVID J. Malan: Единствената разлика е, ние променихме костюма, така да се каже, и ние сме се намали наполовина и да кажа, това, което е, че реалното число. Ами да вървим напред и да вземе това една стъпка по-нататък. И позволете ми да ви дразни с една друга особеност тук. Да вървим напред и да се отворят програма, наречена Threads. Толкова много, така че може да има един спрайт, има множество скриптове, можете да имате два спрайтове, птица в котка, всяка от които има свои собствени скрипт. И всеки от тях може да работят едновременно. Ако някога сте чули Думата "многонишковост" компютър е "многонишкови" означава той може да направи много неща наведнъж, и, разбира се, така че могат да надраскат. И сега забележи птицата е вид ням. Тя просто си върши неща случайно, подскачащи на разстояние от екрана. Ясно е, че котката е била програмирана някак да има търсещи възможности до дома си в върху птицата, защото той винаги сочи към него. Докато накрая, той хваща застроена птицата. Така че аз няма да се спирам на подробностите тук, но можете да вид зърнат същите фигури, някои "Ако" условия, някои променливи, може би някои вериги, са в крайна сметка прави същото нещо. Сега нека да вървим напред и да се отвори нещо съвсем друго, да дразни някои от вас, по-специално тези, по-удобно, какво всъщност може да се направи с това. Отивам да вървим напред и да се отворят Button тук. И това е супер прост-привидната програма, но внимавайте какво ще се случи когато Аз-- Внимавай какво се случва, когато отворя тази версия от него, тук в браузъра, scratch.mit.edu. И когато кликнете върху този голям червен бутон, забележете какво се случва. И така, какво става тук? Има действително много по-голяма сложност става под капака, въпреки че аз съм изпълнена това, или откровено, Дан Брадли е въвела тази толкова просто. Той е разработен по поръчка Scratch пъзел парче, известно като удължаване на надраскване, той го нарече Toggle. И това, което прави, е да Toggle го изпраща съобщение по интернет. И че самото съобщение изглежда малко загадъчен. Но това също, ще разбере до края на термина. Посланието той всъщност изпращане изглежда малко нещо като това. Това е просто текст. Cryptic. Ще го разберем с времето можем да се справим определя седем. Това е просто изпращане на текстово съобщение през интернет към сървър. И този сървър е, в крайна сметка, Говорим за тази крушка, която има един от тези фантазия крушки в това, че сама по себе си говори до Wi-Fi интернет в мрежата тук, където местен устройство надолу тук-- и, в крайна сметка, това е всъщност завъртане, че светлината и изключване. Но ние можем да направим повече интересни неща на едно място. Забележете какво Dan също е направил за нас. Той направи няколко спрайтове, всеки от който има скрипт чакат за едно кликване. И ако аз кликнете червено, тя отива в червено. Ако получа син, тя отива синкава. Зелено, жълто, оранжево. И всичко това се случва по Ще изход в интернет, отстъпи тук до крушка, и изключване. И ако можете да it-- вярваме и това е може би един от най-сложните Scratch проекти някой има implemented-- той го е направил, в справедливостта, в един ден. И това беше предизвикателство, пред което хвърли Дан, когато видяхме има двоични крушки, имаме Scratch, как можем да ги комбинираме? И наистина, това е абсолютно нещо, някой в ​​тази стая може да направи от end-- семестър е той пренаписани двоични крушки, използващи същия интерфейс, който беше на нашата IPAD в сряда. Така че сега, ако аз действително кликнете плюса тук, ние имаме една, две, три. I може да удари 16 и се обърнат, че един на. 128, и така нататък. Сега, ако само това има издухано ума си, бихте могли да направите неща, далеч по-достъпни, която не включва всеки хардуер сигурност. Само неща по себе си екран. И наистина, това, което повечето студенти свърши това е някаква игра, някаква част от художествено произведение, или някакъв вид интерактивна анимация. И аз ще кажа, един от нашите любими е бил този. А аз си мислех, ако ние може да намаляване на осветлението, ние ще се поглед към този последен Scratch проект в заключение. Но това, което ще трябва да имате предвид, като Мога да ви дразни с един последен детайл, секциониране ще започне следващата седмица. Работно време ще започнат следващата седмица. Проблем зададете нула, ще бъде публикуван Късно CS50.harvard.edu днес. И вие ще бъдете посрещнати в проблем зададете нула към собствената Zamyla Chan CS50, който ръководи повечето от нашите реални тестове. Те са вградени видео в сетовете проблемните че ще държа ръката ти през много на първоначалния набор нагоре и през много от възможните решения дизайн. Така че, ако някога сте имали тази емоция когато бране на домашна работа и се чудех, къде да започнем? Тя ще има този отговор за вас. И сега, окончателно програма от един от вашите предшественици в отговор на въпроса "Какво прави лисицата кажа?" [MUSIC YLVIS, "Какво прави FOX кажа?] YLVIS: (ПЕЕ) Dog отива вътък. Cat отива мяу. Bird отива чуруликане и мишка отива скърцат. Крава отива Moo. Frog отива грачене. И слонът отива изсвирване с клаксон. Ducks казват, шарлатанин и риба отиват Blub. И печатът отива ак ак ак, но има един звук, който никой не знае, какво прави лисицата кажа? И DAVID J. Malan: Това е за CS50. Ние ще се видим в Пъзел ден и в понеделник. [APPLAUSE] [MUSIC YLVIS, "Какво прави FOX кажа?"] Разказвач: И сега дълбоко мисли, по Дейвън Farnham. Днес аз се удари в лице с телефонния указател. Объркването, тъй като аз съм в вкъщи, гледат онлайн.