[Възпроизвеждане на видео] [CAR DOOR Изключване] [CAR ENGINE НАЧАЛОТО] [За възпроизвеждане на музика] -Moving Надясно по в търсене на добри времена и добра новина. С добри приятели не можем да загубим. -Това Може да се превърне в навик. -Opportunity Удари Нека Просто се протегне и да го вземете. -Да! -Together Ние ще го хванем. -Ще Благополучно походи, автобус, или жълто го кабината. -Dammit. -We're Движи надясно по. -Footloose И фантазия безплатно. -Getting Има наполовина по-забавно. Хайде да го споделите с мен. -We're Движи надясно по. -We're Ще споделя товара. -Ние Не се нуждаят от картата, за да получите това шоу по пътя. -Hey Fozzy, искам да завие наляво ако се стигне до разклонение на пътя. -Да господине. Завийте наляво по разклона на пътя. Завийте наляво. -Аз Не вярвам, че. -Cruising Надясно по открихме светлините на магистралата. -И Си път или по моя начин. -Значи Довери ми навигация. -Movie Звезди с лъскави автомобили и живота си с върха надолу. -We're Щурмуването големите хълмове. -Да, Буря е прав. Трябва ли да се вали сняг? -Не, Аз не мисля така. -Moving Надясно по. -Footloose И фантазия безплатно. -You're Готов за големия път. Тя -Има готов за мен? -Moving Надясно по. Преместване надясно по. Преместване надясно по. Преместване надясно по. -Мисля, Че по-добре да спра. -Да господине. [END PLAYBACK] [Аплодисменти] DAVID J. Malan: Това е CS50. И това е края на седмица 0, но началото на красива приятелство. Ние сме толкова развълнувани да бъдем тук в Йейлския университет за първи път в нашия Scaz приятел, и Джейсън, и Анди. All 40 от CS50 на ТФ и CA е тук в Йейл. И на всички вас. И в действителност, това е може би време to-- [Аплодисменти] Така че, въпреки че повечето от лекциите наистина ще бъде в Кеймбридж през тази година, реалността е, че още при проектирането и много съзнателно в CS50, Аз мисля, че ние сме наближава точката технологично и педагогически, където тя може да бъде по-добра образователна опит да се ангажират с някои на материала онлайн на курса. Наистина, reality-- и ако аз вярвам, това philosophically-- е, че лекциите не са особено ефективно средство за доставяне доста сложна информация. Разбира се над час плюс дълги участъци от време. И наистина всеки няколко minutes-- Аз самият не забравяйте в college-- можете зона навън за миг, пропуснете някои сложен въпрос, и те няма почти за следващите 45 минути. А реалността е, че независимо дали ти си тук в Ню Хейвън или Cambridge или извън нея, простотата на имащи способността да се спрете и бързо напред, назад, хипервръзка към свързаното ресурси, търсене пълен текст преписи и други подобни е възможност, която Смея да твърдя, за нашите онлайн студентите отвъд Ню Хейвън, ги предлага възможност наистина да хванете концептуална материал, който ние въведат в лекции толкова по-добре. Но в крайна сметка в CS50, е опит на студентите се характеризира така, толкова по- от проблемните комплекти на курса, или проекти за програмиране седмични г. секции разбира се, водени от преподаването събратя, нощните работното време, водени от асистентите курсови и преподаването събратя, и наистина като събития като CS50 Puzzle Ден, Hack-а-Thon CS50 е, на CS50 Fair, седмични обеди, и много повече. И така, независимо дали сте тук, в Ню Haven, или тунинг в отдалеч, днес в Кеймбридж, и ще се видим отново скоро, реалността е, че това е един и същи клас. И ние сме толкова развълнувани да бъде тук всички заедно днес. И така, в края на семестъра, дали тук или отдалеч, добре надявам се, че носите с гордост, радост, и може би с малко помощ, ризата, която свидетелства да ви е взел CS50. Така че откъде ние оставим в сряда? Взехме един поглед към изчислителна мислене. И това е, към което ние дестилирана компютърни науки при най-малко за сега. Но ние го дестилирана малко по-нататък в най-малко три компоненти елементи. Входове, така че това, което е най- проблем, който ние се опитваме да решим? Изходи, това, което е най- отговори се надяваме да се получи? И представителството там на. И ние няма да се спирам тук на след по двоичен или дори ASCII, и други подобни толкова много, но скоро приемаме за даденост че можем да представим тази информация, тъй като далеч по-интересните части на тези проблеми не са само входове и изходи, но алгоритмите че отиде в решаването на тези проблеми. И вие може да си припомни от на другия ден, че ние отне доста традиционна концепция за търсите някого в доста голям телефонен указател, или в по-общ цифрово тези дни, Просто много голям набор от данни. Списък А наистина голям контакти, с много имена по азбучен ред сортирани. И ние осъзнахме, че докато аз може да се доближи този проблем просто чрез използване на линейна approach-- страница по страница, или дори две е на по-time-- осъзнахме че по-интуитивен algorithm-- просто вид разделяне и завладяване проблема отново и отново, и again-- го намали наполовина с всяка време, ни даде тази зелена резултат. И това е много по-плосък, така защото предполага, че дори като този проблем получава по-големи и по-големи, както е в случая тези дни с данни и комплекти reality-- Facebook и Google резултати от търсенето и like-- прави нашия алгоритъм изпълнява също толкова ефективно, с тези по-големи хапки както го направи дори и с по-малки хапки. Сега тя повдига въпроса, какво всъщност можем да решим по подобен начин с този вид интуиция? Този вид разделение и побеждаващ? Е, можем да направим нещо като този днес тук. Бихме могли да предприемат и обслужване. Така че може би като 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- Няма да бъде всичко, което ефективно. Така че чакаме, началното училище. 2, 4, 6, 8, 10, 12, 14, 16, 18 и така нататък. Но можем да направим малко по-добре? Аз съм сигурен, че не мога направите това от себе си. Така че, ако ще хумор ни за справедливо миг, сме внесли с нас алгоритъм, който е просто имам три стъпки, но тя не require-- ако не mind-- всички нас се изправя, ако искате. Така че, с всички нас сега стои, стъпка един на този алгоритъм е следното. Изправи се и възлага себе си номер 1. Така че в този момент във времето, буквално всеки в тази зала надяваме се да мисля за себе си, обаче опасно, номер 1. Сега втора стъпка на този алгоритъм е ще включва следното. Втора стъпка, сдвоите разстояние с някой стои, добавете вашите номера заедно, и приема сумата като новия си брой. Quick проверка здрав разум. Какъв номер е всеки мисли за сега? Така 2, с изключение може би на един, неудобно, самотен човек. Ако имаме нечетен брой на хората в стаята. Така че един човек все още може да бъде номер 1, това е добре. Но стъпка три тук, една от вас да седне. Другият трябва да се върнете на стъпка две, и се повтаря, ако искате. Така че, ако все още стои, трябва да бъде сред тези, връщане назад към стъпка две. Продължавай. Няколко души все още стоят. Така че, ако все още стои, сдвояване с някой. Добре, намаляващите надолу. Няколко души все още стоят. Ще помогне ако е необходимо. Запомни ключовата Takeaway тук, е как много по-бързо това е от мен преброяване. Така че нека да видим. Мога да помогна. Така че това, което сме номер вие все още мисля за? АУДИТОРИЯ: Аз съм на 44. DAVID J. Malan: 44, така че отидете напред и да седне. Какъв номер мислиш? АУДИТОРИЯ: 74. DAVID J. Malan: 74. Добре, давай напред и да седне. Кой друг е още стои? 86. И е някой друг, още стои? Какъв номер? Чух 67. И след това в началото? 32. Някой друг още стоеше и мисленето на редица? О, здрасти. Извинете. Веднага се връщам. 42. Някой друг? АУДИТОРИЯ: 47. DAVID J. Malan: 47. Дали някой друг още стоеше който не е бил Брой? Така окончателният брой на хората в една стая че има 497 места is-- всички от които са filled-- е 390. Така че това е страхотно. Скоро ще обсъдим идеята на бъг в компютърна програма. Но ще се върна към това след дълго. Но на теория, това, което биха могли да се случи точно сега? Така че, въпреки че имаше три големи стъпки за този алгоритъм, всеки от тези, е просто вид една голяма операция. И имаше тази цикличност, за да го с това, че ако все още стои, можете да тръгва от стъпка 01:57, стъпка 01:57, стъпка 01:57. Но това, което се случва съхранява за всяка итерация? Всеки цикъл на този цикъл? Какво се случва другаде в стаята? Не само едно и също нещо, но това, което се случва с половината от вас? Сядайки. И така, там в лъжи това прозрение, много като пример на телефонен указател, с това, че ако половината от вас са седнало положение всеки път, проблемът започва с може би 400 души, след това до 200 души, над 100 души, след това 50 души, и така нататък. И така, ние омаловажавам предвидени в теория на само един човек, мислене на общата стойност на всички. Сега реалност, някои социална динамика, и някои аритметични грешки може да допринесе за това крайно бъг. Но на теория, докато аз все още се брои далеч, като няколко десетки стъпки или стотици стъпки да брои себе си, за да разчитате към групичката 500 или така хората е трябвало да вземе много по-малко стъпки, защото можете да се разделят само 500 и 1/2 така много пъти. И така, точно като с телефона резервирате например онзи ден, е ние имаме нещо логаритмична така да се каже, при което, ако всички бяхме работещи в унисон, и без да обръща внимание на присъединителни грешки, да го правим постигнахме точно този вид на времето за работа? Сега, за да бъдем честни, вид изневери, в че съм отнесена друг ресурс. Като има предвид, че това е просто един от мен, I ливъридж стотици вас. Но това може да се каже, че е Пример за паралелна обработка на информацията, или състоянието на техниката много на мода където компютрите в наши дни имат множество процесори, или по- технически, още няколко ядра, и наистина може да направи множествена неща наведнъж, много като вас всичко, което правим тук, в паралел. Но припомни, че това, което ние Също така е направил в сряда се опитайте да улови тази интуиция и да го официализира в код. Нещо като псевдо-код. И в действителност, и се надявам да няма прощавайте, това е като 80 градуса в тук. Така че аз ще се възползвам от тази разстояние за съвсем малко. Това, което аз смятахме, че ще направите, е преход Сега да, при която заявление ние отново се ангажира публиката, но се напише програма на английски език като синтаксис, с които да решаване на този проблем тук. [Възпроизвеждане на видео] Фъстъчено масло време млечице -Това е. Фъстъчено масло време желе. Фъстъчено масло време желе. Way теб! Way теб! Way теб! Way теб! Сега там ще отида! Ето! Ето! Ето! Фъстъчено масло желе! Фъстъчено масло желе! Фъстъчено масло желе! Фъстъчено масло желе! Фъстъци, фъстъчено масло желе! Фъстъчено масло желе! Фъстъчено масло желе с бейзболна бухалка. [END PLAYBACK] DAVID J. Malan: --that видео, но това е малко пристрастяване, ако не и малко досадно. Но за да направите това, мислех, че това, което ние бихме направите, е да се опитаме да се напише програма, заедно, за които ние се нуждаем от три доброволци. Трябва да се чувстваш удобно на камера и интернет. Сам, хайде нагоре. Purple риза, точно тук, хайде нагоре. И от тук, да ме отида малко по-назад. Crimson и сини ризи, идват нагоре. Perfect. Хайде сега. Хайде нагоре, хайде нагоре. И какво е вашето име? Ерика. Дейвид, хубаво е да се запознаем. Ако искате да се възползвам от тази седалка тук. Това е Сам. Как се казваш? Antonio. Antonio, хубаво е да се запознаем. Erica и Сам, ако искате искали да имат седалище тук. Това, което са подготвени с, тъй като тези момчета откриват, е съставките, с които да се направи с фъстъчено масло и желе сандвич. Сега това може да бъде нещо, което ви отнеме много за даденост. Но ние дадохме всеки от нашите три доброволци here-- двама доброволци и Sam тук, а хляб всеки, чиния, нож, буркан с желе или конфитюр, и буркан с фъстъчено масло. А целта на една ръка в момента е ще бъде за тези три да се направи фъстъчено масло и желе сандвич. Но това, което ние ще направим, е да очакваме да на audience-- тъй като всички от вас, със сигурност знам как да направя това толкова добре в reality-- ще ни предоставите стъпка по стъпка инструкции. Псевдо-кода, ако щете. Така че аз ще играя ролята на писар тук. И аз имам малко по списък със задачи, и така, че всеки един от вас, един по един, вика потенциален инструктаж, аз ще напишете го, го повтарям, ако е необходимо. И тогава вие ще направите с фъстъчено масло и желе сандвич само от това, което ти се казва. Така че мисля за себе си като компютри. Можете да го направите само това, което е казал. Не са предположения, без въпроси. Ти просто трябва да го направя. Така че, който би искал да рискувам първият инструкции за вземане на сандвич с PBJ? На балкона има. АУДИТОРИЯ: Отворете чантата на хляба. DAVID J. Malan: Отвори торба с хляб, ако щете. Така че нека да видим. Нека да превъртите, и да получите малко по-прецизно. Добър начин да започнете пак. Втора стъпка, някой друг. Сега никой не иска да работи като доброволец. Стъпка две, в предната част. АУДИТОРИЯ: отвори вътрешния торба с хляб, както добре. DAVID J. Malan: Отвори вътрешна торба с хляб, както добре. Great, ние учене. Малко по-точни. Хайде да работи. Да, в зелена риза. АУДИТОРИЯ: [недоловим] DAVID J. Malan: филийки хляб. Внимателно извадете две филийки хляб. Това е добре. Стъпка четири, някой друг? Ето тук, нали? АУДИТОРИЯ: [недоловим] DAVID J. Malan: Place хляб върху чиния. Стъпка пет? Стъпка пет, така ли? АУДИТОРИЯ: [недоловим] DAVID J. Malan: На върха of-- о, ръка. Постави ръка на върха на фъстъчено масло. Е, че какво Отправям? АУДИТОРИЯ: Да, и развийте. DAVID J. Malan: And-- го кажа отново. АУДИТОРИЯ: [недоловим] DAVID J. Malan: и сложи капак до фъстъченото масло. Леко постави ръка върху Начало на фъстъчено масло, и развийте и сложете капака в непосредствена близост до фъстъченото масло. OK, шеста стъпка. Стъпка шест, някой друг. Да? АУДИТОРИЯ: [недоловим] DAVID J. Malan: Кажи го отново. АУДИТОРИЯ: Повторете стъпка пет отново. DAVID J. Malan: И повторете стъпка пет отново, което ще създаде един малък проблем Сега, ако ние правим това стъпка по стъпка. Така че сега ние се върнете към стъпка пет. Леко поставите ръка на върха фъстъчено масло и развийте и сложи капака до фъстъченото масло. След това хванете фъстъченото масло и повторете стъпка пет отново. Така че ние ще заменим, че безкраен цикъл, ако щете. Стъпка седем, някой друг. Да, в гърба. АУДИТОРИЯ: [недоловим] DAVID J. Malan: --on върха на друга. АУДИТОРИЯ: [недоловим] DAVID J. Malan: От друга страна, от друга върха. Искате ли да просто да дойде тук? Как да завърши обучението? Какво е останалата част на инструкцията? АУДИТОРИЯ: Пренебрегването на тази част. DAVID J. Malan: Пренебрегването на тази част. Нека да започнем отначало. Стъпка седем. АУДИТОРИЯ: [недоловим] DAVID J. Malan: Хванете с противоположни hand-- това е добре. Това всъщност е добра. АУДИТОРИЯ: [недоловим] DAVID J. Malan: И пластмаса jar-- АУДИТОРИЯ: [недоловим] DAVID J. Malan: И twist-- АУДИТОРИЯ: [недоловим] DAVID J. Malan: В продължение на две секунди. Просто отвори буркана с фъстъчено масло. Надявам се, че ще простя. Така че нека да приемем, стигнахме там. Отворете буркана с фъстъчено масло. [Аплодисменти] DAVID J. Malan: Стъпка осем, да вървим. Осма стъпка, да, в гърба. АУДИТОРИЯ: [недоловим] DAVID J. Malan: Добро. Стъпка девет, нали? АУДИТОРИЯ: [недоловим] DAVID J. Malan: --out на буркана с фъстъчено масло. And-- и какво от това? АУДИТОРИЯ: [недоловим] DAVID J. Malan: И сложи нож обратно в фъстъчено масло. Стъпка десет. Стъпка десет. АУДИТОРИЯ: [недоловим] DAVID J. Malan: Поставете ножа вън, а след отстраняване пломбата. Ница. Off фъстъченото масло. Добре, стъпка 11. АУДИТОРИЯ: [недоловим] DAVID J. Malan: OK, сиво компютър следвайте синьо или червено компютър. Good. [Аплодисменти] DAVID J. Malan: Донесете ни дом. Още няколко стъпки. Какво следва? Стъпки 12. Етап 12. Да? АУДИТОРИЯ: Сложете един от резена хляб леко на една от ръцете си. DAVID J. Malan: Един от вашите ръце. И тогава, стъпка 13. Да? АУДИТОРИЯ: [недоловим] DAVID J. Malan: --on филия хляб. Good. Много добре. Стъпка 14, да. АУДИТОРИЯ: Отмяна на стъпка 13. DAVID J. Malan: Отмяна на стъпка 13. Нека да преминем към желе. Това е 100-стъпка програма, но ние сме били на крачка 15. Да. АУДИТОРИЯ: [недоловим] DAVID J. Malan: 7 до 13, използвайки желе, защото тези, мина толкова добре. Повторете стъпки от 7 до 13, с помощта на желе. Така че хванете долната половина на желе буркан с една ръка отгоре. От друга страна на друга отгоре, без да обръща внимание на тази част, хванете с противоположни ръце, капака и пластмасов буркан в долната част, и обрат за две секунди. След това отворете млечице буркана. И накрая, нека се опитаме да да ни даде нещо за ядене. Стъпка 16. Така че защо да не го оставя там. Благодаря ви много за нашите три доброволци. [Аплодисменти] Имаме малко CS50 стрес топка за вас. Тя щеше да бъде по- сандвич but-- и какво от това е точка, след като на малко на шега с алгоритъм? Но реалността е, че дори когато сте програмиране с компютър, което трябва да бъде супер точен. Както комплекс или смущаваща както собствения си компютър може да бъде много добре за вас, най- поне когато нещо се обърка, реалността е това е доста тъпо устройство, което е измислено от нас, хората, и може да прави само част от това, което ние do-- понякога със сигурност faster-- но тя не знае как да се правят предположения. Той не знае как да бъде на една и съща вълна като вас. Той ще направи това само прецизно това, което той каже. И ще бъде ударена, може би, като започнем писмено действителното код с първите набори проблемни и извън нея, колко лесно е да се направи предположението, като човек, и да не очакваме, че трябва да се справя този случай, или че корнер случай, така да се каже, че е много вероятно възникне, ако например Сам трябваше единственото стисне буркан с желе, като има предвид, всички останали имаше някои стъклени буркани, както добре. Така че, преди да можем да насочим внимание на някои действителния код, позволете ми да се въведе главите на курса е тук в Йейл. Нашите приятели Scaz, Анди, и Джейсън да се качи и да кажа здрасти. [Аплодисменти] SCAZ: Загубихме Jason временно. Здравейте отново, всички. Моето име е Scaz. Аз съм бил преподавател в Йейл от 2001 г. насам. И когато аз не преподавам, изследванията ми е в роботиката и изкуствения интелект. И съобщението, че имам днес е, че като се започне след няколко седмици, ние ще трябва да се донесе известна допълнителен материал да CS50 да говори за разузнаване софтуер. Отиваме да говорим за това как места като Netflix и Hulu може да препоръча на филми, които може да искате да гледате. Когато ние ще говорим за това как от водача по-малко коли действително работят. И ние ще можем да смила тези неща в концепциите че вие ​​се учите в днешния този клас. Тъй като всички тези неща са построен по същата фондация. И това е, което тази серия ще се изследват. Така че аз съм наистина очаквам с нетърпение да видя повече от вас всички, и ти започваш да се стигне до виж повече от всички нас много скоро. Нека тогава ме запознае Джейсън. JASON: Здравейте всички. Моето име е Джейсън. Аз за съжаление отиде в Harvard като студент. Това ще се намали от действителния поток. И сега съм тук като лектор в департамента по компютърни науки. И аз съм за да помогнете тече курса с Scaz, Дейвид и Анди. АНДИ: Хей момчета. Казвам се Анди. Всъщност съм единственият Йейл студент на сцената в момента. [Аплодисменти] Аз съм в Бъркли Колидж, родом от Солон, щата Охайо. И аз бях един от тези деца където, когато дойдох в Йейл, Наистина мислех, че никога няма да Трябва да разгледаме редица някога отново. И тогава разбрах, че имаш нужда както науката и QR кредити да се дипломира. И така ми първокурсник пролетта, взех клас, а CS, интро CS клас тук в Йейл. Аз бях като, това е като всъщност е доста хладно. И докато аз всъщност се стигна до обявяване като световните дела основен, уменията Научих в CS и програмиране са така приложимо за всяко поле решите да направите. И персонала тук в Йейл, ние сме били толкова трудно по време на работа да се подготви за вас, момчета. И ние с нетърпение да видим всички в секция и работно време. Така че, да. [Аплодисменти] DAVID J. Malan: Благодаря. Така че точно преди започна клас, имахме възможност да се разхождат из кампуса с мобилен телефон и да вземат някои selfies във видео форма на наистина първата ми обиколка на кампуса Yale тук. И така, ние смятахме, че ще споделя с грапава нарязани на точно това като Scaz и Andy и Джейсън ми отне около кампуса. [Възпроизвеждане на видео] [Сирени] -David. -Welcome Да Yale. -Радвам се да те видя. -Приятно ми е да те видя. -Може Да отидем на турне? -Let Отидем на турне. -Road Турне. -Това Знак е бил там за известно време. -Whah, CS50. -Hurry! Давай, давай, давай. Вие би трябвало [недоловим] Харкнес Tower. -И Ние видяхме, че няколко пъти. [Аплодисменти] -Look В продължение на мотора! Ааа! Hi Frank. -Какво става момчета? -Как си? -Радвам се да те видя. -Welcome Към видеото. Не действа твърде развълнуван. -Аз Обичам Silliman. Ааа! -Това Е бил около три часа, тъй като Джейсън имаше сладолед и Nutella. Така че ние трябва да се спре отново в Silliman за малко. -Това Не е дори [недоловим] Все още, просто на факта, че те го имат тук е толкова невероятно. Пич, има Nutella на всяко хранене. -Има Беше миналата година също. -Да. -tell много за Yale досега. Но аз сега, че е ТД там. И това се смята извън кампуса. -Тук Имаме готическа архитектура. Световноизвестния. Имаме още малко готическа архитектура. И строителството, както и по-готическа архитектура. Здравейте. Това е мястото, където ние сме като работно време Вторник през четвъртък в Хогуортс, като [недоловим]. -Всичко е наред. Това е всичко за турнето. Ние сме в Йейлския университет Law School, където днешната лекция е на път да се осъществи. Нека да оглави инча [END PLAYBACK] DAVID J. Malan: И това ни води тук, сега. Така че до този момент, ние сме били фокусиране върху Псевдокод, който е тази English-подобен синтаксис. Тя няма предписания спецификация. Това е просто да използвате някои интуитивен език, ако сте Искам да обясня това, което искате да направите. Но нека да започнем сега с прехода да код, тъй като повечето хора ще кажат. Но по-точно, нещо, известен като изходен код. Това е езикът, който, хората, напишете, че компютрите ultimately-- евентуално след известно брой steps-- в крайна сметка разбира, така че да се знае как да се направи нещо. Това сте видели един поглед на това може би в сряда. Това е пример, че невероятно, underwhelming когато стартирате просто казва "Hello World". И това е написана на език, наречен С, който е много подобен синтактично на много други езици които може би не знаете, но може би сте чували за подобно Java, и C ++ и Python, Ruby и, и други подобни, и наистина, ние ще прекарват много на семестъра, използвайки C, и след това към края на семестър, изграждане върху него, и въвеждането на всякакви редица други езици. Сред тях PHP и JavaScript, език, база данни, наречена SQL. Но с C, това, което ние ще трябва това разбиране отдолу-нагоре на точно как компютрите работа, какво можете да правите с тях, и как можете да решите проблемите още по-ефективно от това наслояване, че ние обсъдихме в сряда, и стоене върху раменете на другите. Но повече за това, за да дойде. Днес ще разгледаме по-опростена среда, но принципно идентични среда, известна като Scratch от нашите приятели от MIT Media Lab. Това е графично език за програмиране, Scratch, чрез която можете да влачите и пускате неща, които изглеждат като парчета от пъзел, които само блокировка, ако го прави логическа или програмна смисъл да го правят. Но това ще ни позволи да да разговаряте за всичко от същия програмиране фундаменти, че някои от вас би вече знаете, че много от вас не вали знам нищо за без да се налага да получите затънал честно казано, в интелектуално безинтересно синтаксиса на точка и запетая, и скоби, и цитира, и други подобни. Всичко това, в началото на, като разсейват до каква са интересни и действително полезни идеи. Така че нека да хвърлим един бърз поглед към околната среда тук, така че да знаете какво очаква. И в действителност, наред с игрите ни може да играе са написани няколко програми от собствените бивши студенти CS50 е. Един от тях, аз, аз ще бъда този записано в завършил училище за мен. Ако мога да взема един доброволец който е готов да играе една игра за първи път. Разбира се. Хайде нагоре. Как се казваш? АУДИТОРИЯ: Анджела. DAVID J. Malan: Angela, хайде нагоре. Така Scratch е бил в продължение на няколко години. И когато бях в университета, Бях кръст, регистрирани в Масачузетския технологичен институт, като професор Mitchel Резник е курс по образователни технологии. И ние бяхме сред най-първата учениците в света до действително бета тест Scratch. И моя проект е това, което Angela Сега любезно доброволец За да играете, наречена Oscartime. Така че аз ще отида напред и кликнете два пъти върху иконата тук. Това ще отвори програмиране среда, че ние скоро ще се потопите в. Отивам да цял екран то за Анджела, тук. Отивам да се удари в зелено флаг в един момент. И тогава един куп боклуци ще падне от небето. И ти започваш да използвате мишката тук, за да влачите и пускате всъщност боклука в кофи за боклук Оскар. Така че, ако искате да отидете напред и кликнете зеленото знаме, играта ще започне. [За възпроизвеждане на музика] О, аз обичам боклук. Всичко или мръсна мръсна или прашна. Всичко, парцалива или лош, или ръждясали. Да, аз обичам боклук. Ако наистина искате да видите нещо, ненужен, виж това. Тук имам подлец това е одран и износени. Всичко е пълен с дупки държи и връзките са скъсани. Подарък от майка ми в деня, когато се роди. Аз го обичам, защото it's-- DAVID J. Malan: --green тези дни просто да хвърлят всичко в кошчето. И какво от това един от Собствена did-- персонала на CS50 Джордан, който може да се срещне today-- има действително актуализира това за днешните времена. И така, позволете ми да се отворят ремикс вместо за Анджела. И ние ще играем тази вместо за няколко минути, в които сега вие сте ще трябва да се реши между това дали да хвърли нещо в кошчето, или да го рециклират или компост. Така че там е малко на натиск върху вас, за да получите това право в предната част на 392, за да 497 съученици тук в залата, ако искате. [Възпроизвеждане на видео] [За възпроизвеждане на музика] -О Обичам боклук. Всичко или мръсна мръсна или прашна. Всичко, парцалива или лош или ръждясали. Да, аз обичам боклук. Ако наистина искате да видите нещо, ненужен, виж това. Тук имам подлец това е одран и износени. Всичко е пълен с дупки и връзките са скъсани. Подарък от майка ми в деня, когато се роди. Аз го обичам, защото това е боклук. О, аз обичам боклук. Нещо мръсно, или мръсна, прашна или. Всичко, парцалива или лош или ръждясали. Да, аз обичам боклук. Ето някои по-лош неща. Тук имам някои newspaper-- [END PLAYBACK] DAVID J. Malan: --are всъщност поддаващи. Но ви благодаря за нашия доброволец, Анджела. Имаме стрес топка за вас, както и тук. Така че ви благодаря. Така че това е написано от мен. Но сега една от реален бивш студент който изпълнява тази, която е една игра. Всичко на този език, наречен Scratch, че скоро ние ще отстранете пластовете. Но ако ние бихме like-- как за друг доброволец? Право. Хайде нагоре. Как се казваш? Glance? Ланс. Ланс, хайде нагоре. Приятно ми е. Хайде този начин. Така че това би могло да има Темата познат на някои от вас. Но вие ще видите, че твърде не може да има интерактивност, при което действително може да бъде най- ролята на героя се движи наоколо. Приятно ми е. Дейвид. Аз ви давам, Pikachu. Инструкции ще за да дойде на екрана. Но накратко, ти започваш да се Искам да хвана вкусни неща, и избягване на бомби и други неща. С курсори изцяло. Така уцели горната греда пространство. -Pikachu. DAVID J. Malan: Catch нещата в ляво, не хване нещата в дясно. [За възпроизвеждане на музика] Така че един последен тук. Ако бихме могли да имаме една повече доброволци тук. Ние смятахме, че ще пресъздаде нещо from-- в жълтата shirt-- от сряда. Как е името ти? Мери, хайде до Мери. И спомням в сряда ние въведохме понятието двоичен и бинарни крушки. Това всъщност е сега на изпълнение на същия интерфейс че имахме на IPAD със светлината крушки, но тук цифрово оказани. И вместо да се направи стрес ball-- приятно да се запознаем, Дейвид. Ние донесе няколко светлина крушки от Кеймбридж. Ако можете, като кликнете върху тези, крушки да ги включват и изключват, излезе с двоичен представителство на 256 кажа. И вие ще видите в средна, текущата съвпадат. Така че едно е на. Така че най-лявата бит е включен. MARY: Да, [недоловим] DAVID J. Malan: Е, Така че ние имаме just-- о. Така че това е колоната 128. Така че ние сме до 128. Ние трябва да стигнем до 256. И вие можете да човъркат по и на разстояние, не е голяма работа. Или можете да се удари, че 128 повече пъти, ако искате. Добре, добре. 24. Да, все по-близо. Closer! О, какъв е проблемът тогава? Така че какъв е проблема? Така че това, което ни е нужно, за да реши този проблем? Така че ние трябва още малко. И това е напълно разумен в действителност, нали? Ако искате да се брои от броя 1 от 2 до 3 до 4 до 5, 6, 7, 8, 9, действително да преобърне до 10, вие сте ще се нуждаят от допълнителен бит. Така че нека да е реално назад тук, и да излезе with--, че е очевидно писано да бъде набор нагоре. Вие не може да направи 256, само с една крушка. Така че какво ще кажеш просто да броят 50? Номер 50. Отлично. Голяма аплодисменти за Мария и нейната, както добре. Благодаря. Така че това topic-- умишлено като че was-- действително ще се повтори. Най-голямата стойност, която можете да означават с осем бита, или един байт, наистина е 256. Но не и ако започнете брои от 0, тъй като ние успяваше да поддържа прави от наличието всички тези битове на разстояние. Но сега нека да се потопите в базисния прилагането на тази среда, и дразни освен някои от тези идеи. Така че в един момент ние сме на път да видят Няколко различни програмни основи. Първата от които ние ще се обадя изявление. Сортиране на глаголи, ако щете. Действия. Неща, които трябва да се направи. И в един момент ще видите блокове, които изглеждат по този начин. Кажете "Здравей, свят", например. Или изчакайте една секунда. Или играе звук мяу. И наистина на околната среда в която ние ще трябва да се прави това се нарича Scratch. И ако аз спра Scratch без предварително натоварване всяко действително код, нека хвърлим един бърз поглед на това потребителски интерфейс, така да се каже. Проверките, с които ние си взаимодействат. На върха остане тук на екран, под менютата, ние имаме на сцената, така да се каже. Така Scratch е това, което ние ще се обадя на Sprite. Това е един символ. И той може да се контролира от писането на програми срещу него. И той ще бъде в състояние да се движи нагоре и надолу и ляво и дясно в тази среда, не само чрез преместване на мишка, но програмно. Мога да кажа, да ходи прав, разходка наляво, нагоре, надолу или други подобни. И мога да се въведе друга спрайтове или знаци, както добре. В действителност, на дъното тук е мястото, където ще видите вашия списък с спрайтове. В момента, аз просто трябва една, но не мога да се създадат повече, и те ще се появи точно там. Така че, ако се върнем назад за момент, като Oscartime-- например, Оскар, в ляво, в кошчето може, беше спрайт. И това нещо в средата, в рециклиране бин, беше друг спрайт. И компост за боклук беше друг спрайт. И всяка част от боклук или рециклиране които се падат от небето също е Sprite, всеки от които е програмирана индивидуално. Как се програмира? Е, тук в дясно дясната страна се включва площта на скриптове. И това е мястото, където можем влачите и пускате парчета от пъзел. В една седмица, тя ще бъде където можем еквивалентно пишат код с повече от клавиатура, но за днес тя ще бъде плъзгане и пускане пъзел парчета, за палитри, за който може всичко да се намери тук точно в средата. Наистина, в средата тук има един куп на категориите пъзел парчета или на блокове. One е свързано с движение, виж, звук, химикалка движи нагоре и надолу, данни, събития контролират. Не е съвсем сигурен още какво означава всичко това, но вие ще видите, че те имат са добре категоризирани. И да се напише програма в Scratch, нека да направим точно това. Отивам да се започне под Събития и влачат този тук. Когато зелен флаг щракнали. Сега защо тази? Ами припомни, че нашите доброволци дойде, първото нещо, което или те е бил кликнете че зеленият флаг в горния десен ъгъл. И това просто означава, стартирайте програмата. Така че, когато това събитие се случи, какво искам да правя? Отивам да отидат под Looks, и аз отивам да правя "кажа здрасти." И аз отивам да се промени това и кажете нещо като "здравей Yale." И сега аз отивам да я увеличите , щракнете зеленото знаме, и готово, аз съм писал програма. Това не е всичко, което вълнуващо просто все още, но това е точно там, където всеки на тези, автор започна, както с Pikachu и двоични луковици, и Oscartime, и толкова много повече примери. Започвате супер проста, и След това започнете да слой, и добавяне на характеристики и функционалност. Така че какви са тези слоеве ще се състои от? Е, след изявления, ние също така ще има неща, които са малко по-fancily нарича Булева изразяване, след някой си булев. И булева изразяване е просто израз, който е или вярно или невярно, Да или не, 1 или 0. Всички противоположности като това. Това е било вярно или не. Но ние също така ще видим такива, които биха могли да изглеждат по този начин. Така например, е на мишката надолу? Те са нещо като въпроси, ако щете. Мишката е или надолу, вярно или не е, фалшива. 1 или 0, ако щете, тенденция да бъде картографирането. Вярно е 1, фалшива е 0. Ами какво да кажем за по-малко от това? Или това е така, това по-малко от това? Това е въпрос на какви ли не. И ако сложите две номера в там, или х ще бъде по-малко от у или равна на у, или по-голяма от Y, но този блок ще видим, е само Ще отговоря на въпроса, това е по-малко от това? Ние също може да видите нещо подобно. Докосване указатели мишката. Така че в Scratch, можете да помолите въпросът, е Спрайт докосване показалеца на мишката? Други думи, е висене на курсора над капачката, или равностойността им? Ще видим Anding неща заедно. Можете да задам два въпроса, и уверете се, че и двете от тях ти дам да или верни отговори, преди да вземане на решение да се направи нещо. Но след това, как да се вземат решения? Е, ние имаме тези условия. И видяхме това в нашата Например на телефонния указател. Търси в ляво или точно за Майк Смит. И в състоянието, ви направите нещо потенциално, ако Булев израз е вярно. И наистина, забележите формите сега. Има този контейнер точно сега за режийни, където можем да fit-- ако се върнем назад една slide-- тази форма. Това не е съвсем същия размер. И наистина, ще видите, че Scratch преоразмерява неща динамично да се поберат пъзел парчета, но Формата му е това, което е важно. Това нещо изглежда като че и в действителност това е приблизително същата форма че трябва да се поберат в там. И ако искаме да направим нещо този или онзи начин, ако или иначе, имаме този пъзел парче в Scratch, както добре. Сега предполагам, че искаш да направя, ако, иначе ако, или иначе. С други думи, по- трипътен разклонение на пътя. Ами това, което можете да направите, просто като погледна това? Мога да взема този пъзел парче, и тя не изглежда да се поберат, но отново, Scratch се случва да се възстанови размера добре за нас. Можех да започне да слой тези неща заедно. Така че сега имам трипътен вилица, ако това е вярно, да направите това. Иначе, ако това друго нещо е вярно, отидете този начин, в противен отидете този друг начин. И в The Muppet филм, на разклонение на пътя, така да се каже, между Йейл или Станфорд, беше точно, че, само на две условия. Или отидете този начин, иначе отиде по този начин. Е, също контури съществува в програмирането. И ние сме използвали тези които вече са в клас и в Псевдокод код, и със сигурност в тези, Scratch програми завинаги. Scratch е този пъзел парче, че Просто ще ви позволи да направите нещо вечно. И понякога искате да се направи нещо вечно. Това не е задължително да е грешка, това е защото искате часовник, за да продължи да функционира, или игра, за да продължа да играя. Или можете да зададете краен брой стъпки, като с това се повтаря блок тук, които ще повторя нещо, 10 пъти. Можем да зададете променливи, скоро ще видим. И с променливи, подобни по дух да алгебра, като х или у, или Z. Това е нещо символично, че може да се съхранява някаква ценност, някаква част от информацията, че може да искате да се помни, за по-късно. Най-добър пример за това може да бъде игра, в която има оценка, като в Pikachu. Колко парчета торта и какво ли не Ви разбрах? Е, това може да бъде променлива наречена на полувремето, която започва при 0. И тогава всеки път хванахме парче торта или бонбони, или други подобни, тя се увеличава. Той получава добавен към една по една. И така една променлива магазините на част от информацията по този начин. Тогава там е масиви, и ние ще дойдем обратно към тях в една или две седмици време, но масив е нещо като един инвентаризация или чанта, вътре от които можете да сложите виртуални неща. Тя ви позволява да се съхранява повече от една част от информацията. И това може да бъде полезно ако в играта, вие сте сортиране на разхождат бране на нещата. И може би искате да запазите всички тези парчета торта наоколо, а не само да яде ги един след друг. И след това има един любител конструкт пускаме дошъл да наричат ​​функции или процедури. И макар, че отиваме по-бързо тук, ние ще се види, че те са много естествено решение на проблемите че отиваме среща. Тъй като нашите програми започват стават по-големи пускаме започнете да забележите модели в код, който пишем, пъзел парчета ние сме плъзгане и пускане. И веднага след като забележите, че правите нещо отново и отново, или още по-лошо копиране и поставяне програмиране код, който съм писал, това е може би един възможност да фактор от каквото и да запази копиране и поставяне, и да я постави в нещо, наречено "функция." Но повече за тези, които в много по- повече подробности не след дълго. И тогава там е още по-красиви черти. За тези от вас, по-удобно, или като АРС или негов еквивалент, Scratch всъщност подкрепя неща като теми и събития и др. Така че осъзнавам, че тя има сравнително висок таван, въпреки че тя също е много широко достъпна за хора които никога не са програмирани преди. Така че наистина, нека да разгледаме в една проста програма, или две. Ние вече гледаше как Може да се каже здравей със Scratch. Нека да вървим напред и да се отворят по- малко по-интересна програма че съм написал по-рано. И тази е наречена Pet Котката. Всички тези програми ще разположение на интернет страницата на CS50. Всъщност, вече там. Така че можете да изтеглите тях, и да играят с тях, и с Проблем Set 0, което Също така е на интернет страницата на курса, съветваме ви да преминете през тях. И освен това, ние имаме брой проходните видеоклипове онлайн, в която аз и Екипът CS50 е наистина ходи чрез всеки от тези примери на много бавни темпове, много бързо forwardable, или пренавиваем темпо, така че можете да се разхождате чрез тях в свободното си време, както добре. Така че тук е Scratch в ляво. Ето една програма, в дясно че вече съм предварително направена. Така че нека да се фокусирам върху това. И може ли някой на английски, знаейки това, което знаете, просто от сега, както и как Scratch произведения, нещо като казват, в английски фраза или изречение, какво прави тази програма очевидно направя? Да, в оранжево риза. АУДИТОРИЯ: [недоловим] DAVID J. Malan: Да, ако си курсорът е върху Scratch котката, играе мяукане звук. Но забележете как ние изразяваме това. Има очевидно линия там, завинаги. И след това има един състояние, ако израз. И заедно, какво тези, означава това? Това означава тази програма е просто винаги работи, и това е просто винаги чака и гледане и слушане за мен да се движа мишката върху котката. Защото всеки път, когато го правя, тъй като предлагаш, че ще направи това. Позволете ми да започна програмата. Нищо не изглежда да е случва, но забележете как това е подчертано в момента в жълтата линия. Това просто означава, че е работещ. И тъй като има един завинаги линия, тя все още работи. Така че нека да се премести курсора върху моята Scratch. [Мяу] [мяу] И ако тя се премести на разстояние, [Мяу] сега го спира, но на програмата още работи. [Мяу] И така, очарователни. [Мяу] Така че нека да се отворят малко по-напреднали Например, наречена Не домашни любимци Котката. А сега нека да видим какво се случва тук. [Мяу] мяукане. Така че това е малко по автопилот, ако щете. --pet котката. Чудя се защо. [Рев] [мяу] Е, как е направил тази работа? Е, можете вид причина през него интуитивно, може би. Но нека погледнем действителният код. Така че отново, когато зеленото знаме се натисне, да направите това завинаги. Какво искаш да направя вечно? Е, ако се докосват мишката показалеца, след това играе звук, който е очевидно, наречена Lion 5, който е вътре в този проект, друго играе звук мяу, и След това изчакайте две секунди, така че че това не е мяукане непрекъснато. Всъщност, вие може много бързо да започне на себе си и на вашите съквартиранти дразни. Да се ​​премахне този блок. И забележи това, което е хубаво за Scratch. Нещата просто вид драг и пускате и блокировка. Така че отново, тя расте, за да запълни това, което искате. Но ако се премахне това, и след това хит играта, [COMPUTER премигване SOUND] --it рода на препъване себе си, защото това е буквално правят това, което искам да кажа. Той казва завинаги играе този звук, но Аз не съм го дава шанс да отбележи. И така, това би било грешка. И затова ние трябваше това нещо тук сега. Така че нека да започнем от действително scratch-- нещо като игра на думи, леко intended-- в които имаме сега в движение котка. Така че аз ще направя това в движение. Отивам да я увеличите тук, просто да ме започна на събитията. И зелен флаг щракнали. А има и други начини да започне скриптовете. Отиваме да го прости тук. И сега аз отивам да отидете напред и да минат под контрол. И отново, ако сте забравили къде нещата се, трябва само да кликнете наоколо, и в крайна сметка да ги намерите отново. Така че аз искам да правя това, което завинаги? Искам да използвам блока движение Знам, че съществува, преместете 10 стъпки. Така че нека да видим какво ще стане тук, ако аз играя тази игра. За щастие тя не отива твърде далеч. Все още мога да го вземете вид за опашката и го издърпайте назад. Но програмата все още е в ход, така че той е един вид ме биете. Но това ще бъде вид хубаво, ако можех условно се определи това в кода. Тъй като това е not-- всъщност това е наистина Не забавна игра за всеки, независимо от възрастта. Така че нека да се опитаме да се определи това, като като някакъв вид условия. Така че аз отивам да мине под Контрол, и след това, ако. Харесва ми тази идея. Така че след преместването на 10 стъпки, if-- да ме усети къде съм. Отивам да отидат под Sensing, и след това тя изглежда мога да отида тук. ред за мачовете форма. Размер не, но това е ще нарасне до запълване. И сега това е малко меню. И сега мишката pointer-- аз не правя Искам мишката, искам ръба. Така Scratch е достатъчно умен, за да знам когато един спрайт докосва ръба. Какво искам да го направя всъщност? Нека да вървим напред и да се промени на движението. Знаеш ли какво? Отивам да го обърнеш. Така при 15 градуса не е наистина ще ми помогне. Искам той да се обърнеш и отиде в другата посока. Така че нека да видим какво ще стане тук, ако се удари Играй сега. OK, вид глупаво изглеждащ, но тя прави точно това, което казах. И това е въртене на цялата спрайт. Сега се оказва, мога да поправя това. И аз не знам как да се определи това на първо време. Някак трябваше да futz около и виж най-добрият начин да направите това. Но ако отида to-- нека да видим, движение. О, аз открих това. Всъщност Определете Rotation Style. Ляво, дясно, или не върти, или на всички наоколо. И се оказва, че това, което аз искам. И аз отивам да се сложи това не е моя линия, защото не трябва да зададете стила въртене няколко пъти. Отивам да го постави на върха на тази програма, така че да стане зададете веднъж, и след това да си спомня. И сега аз отивам да опитаме отново. Позволете ми да спре програмата. И сега, че фиксирана че бъг. Така че аз съм итеративно подобряване на това. Програмата е с удар с Малко по-сложно и по-голяма, но аз съм като бебе на няколко така да се каже, и малки късчета от проблема за да получите по-добре и по-добре. Но това също е вид слаб. Знаеш ли какво? Бихте попитам някой с една наистина добра, страшна глас искал да излезе? Някой с глас. Uh, да. Хайде нагоре. В зелената фланелка. Така се оказва, че има някакъв друг забавно неща, естетика и звучи така. Тук е мяу. Аз кликнете върху раздела Звуци. [Мяу] Там е мяу. [Мяу] [мяу] [Мяу] --actually рекорд нещо на собствения ни тук. Така че нека да направим точно това. Вместо да използвате тази котка звук, нека давай тук, и какво е вашето име? Nick, хубаво е да се запознаем. Това е Дейвид. Така че в един момент, аз ще съм да натиснете бутона за запис. И ако можете просто крещи в лаптопа, "ох", като че ли току-що влезе в стената, че ще бъде много оценявам. 1, 2. НИК: Ох! DAVID J. Malan: Awesome. И сега може да се направи малко редактиране тук. Отивате да се отърве от тихите части. И мисля, че това е добре. Благодаря ти много. НИК: Pleasure. DAVID J. Malan: Нямам просто го преименува на "ох" но сега аз отивам да се върнете към моите скриптове. И известие наистина има звук тук. И аз ще отида напред и да играе на звук Ох и аз отивам да правя, че ако това е само докосвате краищата. И тогава аз ще трябва да го обърнеш. Така че нека да видим какво се случва тук. Нека да отидем на цял екран. [Възпроизвеждане на видео] -Ouch! Ох! Ох! Ох! Ох! Ох! Ох! Ох! [END PLAYBACK] DAVID J. Malan: Значи ти осъзнаваш че ние сме става малко късмет. Отивам да го имат ход като 100 стъпки в даден момент. Ефектът от които сега се случва да be-- [COMPUTER бъг SOUND] Така че в рамките на разумното. Така възможност да се усъвършенства, че допълнително, ако наистина искаме да. Така че сега нека да се въведе друга концепция. За да ме пусне в една, наречена Да броите овце и използването нещо нарича променлива. Това е един прекрасен малък овце, и Промених си костюм, така да се каже. Така че, въпреки че по подразбиране е котка, можете да качите, можете да рисувате, можете да направите произволен брой знака на вашия дух. Ето една програма, която е Ще направя това, което на английски? Въз основа отново на точно това, което знам сега. Какво е тази програма да направя? Да, това ще се брои. Един брой в даден момент. Имаме очевидно получите този комплект брояч. Аз не знам какво е това, но може би това е променлива. Това е просто един контейнер, х или у. Но думата гишето е по- описателно от х или у математик си. Така че ние можем да използваме английски думи за нещата. Forever, просто означава да правиш това. Кажете брояч. Сега, когато дойде това? Е, оказва се, че брояч е променлива. Така че това е просто още един пъзел парче съм създал по-рано. И въпреки, че това се случва да не бъде същата форма тук, нормално бихте казали нещо като здравей тук. Можете също така да плъзнете променлива така че това е, което му се каза. Тогава аз чакам за втори, I промяна на тезгяха по един, то увеличаване чрез добавяне на един. Така че нетният ефект е този прелестен преброяване овце. Въпреки, че той самият се брои. Сега е много бързо ще се получи скучно защото той ще направите това наистина завинаги, но това е точно това, което проектиране на програмата е предписал. Нека сега да се опитаме още един пример която използва променлива. Това призова Hi Hi Hi, че няма да ви подразни бързо. Сега това има две скриптове. И така отново, ние сме като малки стъпки. Ние започнахме с нещо супер малък, добавя към него, добавя към него. Сега искам да направя нещо още по-динамичен, така че искам да се слуша за две различни неща в даден момент. Така че в ляво, когато зелен флаг е кликнал, Задам променлива, която съм написал предварително нарича спрени. И аз произволно го настройте на 0. Така Scratch не разполага с вярна и невярно, но тя има 0 и 1. Така че мога да се сближат, че една и съща идея. И след това завинаги, ако пространството лента е натиснат, след това задайте на променливата до 0. Или съжалявам. Ако пространството е натиснат, и ако заглушен, променливата, е 0, след това задайте заглушен до 1, останало зададете заглушен до 0. Това изглежда нещо като сме просто правиш и да се развали работата. Но това, което е ефектът? Всеки път, когато се удари в пространството лента, какво се случва с променлива ми наречена заглушен, логично? Нещо получава копна. Той се променя от 0 до 1, или 1-0. Така че това отне няколко пресечки да изразя това, но всички Правя се превключва състоянието на тази променлива на 0 или 1, или 0 или 1 всеки път, когато се удари в пространството бар. Сега тук, какво е това правиш? Forever, ако заглушен е 0, така че ако заглушен е фалшива. Така че, ако това не е заглушен, е семантика там, възпроизвеждат звук морски лъв, и мисля, Hi Hi Hi за двама секунди, чакат две секунди. Така че сега те забележат скриптове са ефективно ще тече паралелно, така че може да се да се слуша за едно действие, от друга да вземе решение въз основа на това действие. И това може да направите това завинаги. [SEA LION лай] [SEA LION лай] Това ще направи това за вечни [SEA LION лай], както аз току-що направихте. И сега тя все още работи Но аз съм "заглушава" играта. [SEA LION лай] И това е всичко това момче прави сега също. Да отворим още един пример тук. Позволете ми да отида в събития, и сега този прелестен също. Но забележете, че има две спрайтове. Така че не само на две скриптове с един спрайт, но две спрайтове. И ако аз кликнете върху синия човек, както аз Вече имам, виждам, че като една програма до тук, че буквално казва това, когато получа едно събитие, казват "Polo" за две секунди. Така че, ако някога сте се играе в с басейн, играта Marco Polo, ако скрипта оранжево човек е индикации, очевидно всеки път, когато се удари в пространството лента, какво е оранжевата човек смяташ да правиш? Той ще каже "Марко". И тогава това е нов блок. Ние не съм виждал това и преди, но излъчване на дадено събитие. И мога да го наречем събитие всичко, което искаме. Ще се върнем към това може би не след дълго. Но излъчването на събитие е начин за един спрайт да се говори на друг, като същество тя преминава съобщение. Това не е съобщение, което виждате. Това не е нещо визуално. Това е нещо като компютър съобщение че другият не слуша за. Защото наистина, синият човек, изземване не притежава, когато зелено знаме щракнали. Той вместо да има, когато получа събитие. Когато той се предаде настоящата бележка в клас, така да се каже, че трябва да се каже, "Polo". И така, нетният ефект е, че когато се удари зеленото знаме, нищо не се случва. Но когато се удари бар пространство, казва той "Марко", той отговаря с "Поло". Но единственият спрайт, аз съм взаимодействие с е оранжевата. Така че това е начин за вид минаваща съобщения между спрайтове и като ги съобщава един с друг. Сега нека да разгледаме един последен един тук наричат ​​нишки. И забележи това, като го играя. Така че това са две спрайтове. Птицата е вид летенето. Той подскачащи. Няма никакво "ох", но същата идея. Но котката изглежда доста умен. Какво е котката очевидно правиш? И го чакаме. Какво е котката очевидно правиш? Това не е просто подскачащи. Той е следният птицата. И така, както изглежда, има начин с комбинация от блокове here-- и нека да погледнем на котката наистина бързо. Forever, ако докосвате птици, а след това играе звукът Lion 4, каквото и да е. Ние го чух веднъж. В противен случай, да сочи към птица, и да се премести с една стъпка. Сега на факта, че това е една стъпка е това, което дава на птицата малко на предимство първоначално, но ако вместо направи тази 10, например, така че всяка итерация на цикъл той е преместване 10 стъпки от време. Така че по-голямо пространство. Нека да видим какво ще се случи след това. [LION рев] Не всички, че много по-добре. Така че сега нека се опитаме да подобрим при това малко итеративно, и се върна към това понятие за функция. И наистина един от основните храна за вкъщи от дизайна на класа. Не само за написването на програми, които работят и че са правилни, но са добре проектирана. И дизайна е много по-субективно, и ще получите по-добри в това с течение на времето. Но нека да се вземат някои бебешки стъпки към като се започне с програма, която работи, Абсолютно, но това не е много добра. Това не е много добре написана. Така че тук е програма, която прави това. Кашлица, кашлица, кашлица. Какво прави програмата изглежда? Изглежда правилно за мен. Той казва, диван за на второ място, след това го чака. След това го казва отново, след което го чака. След това го казва отново, след което го чака. И тогава програмата имплицитно свършва, защото няма връзка. Но защо е това лошо написана програма? Дори ако никога не сте програмирани преди? Подобно на това, което трие грешен начин, може би тук? Да? АУДИТОРИЯ: [недоловим] DAVID J. Malan: Точно така. Ти си повтаряме себе си отново и отново. И буквално, аз копира и две от отново и отново тези блокове. И това е точно вида на здравия разум провери, че трябва да се направи. Чакай малко. Трябва ли наистина да се прави това? И така, какво е това? Какво е най- очевидно решение може би? Имат ли някаква връзка. И аз не съвсем изземване какво парче пъзел е, но ако погледнем в следващата итерация тук, Наистина, там не е само завинаги линия, има повторя някои брой пъти. И така, аз съм определено три. И сега забележете как много по-строги, как много по-кратка тази програма е. И в известен смисъл, как много по-възможна за поддържане. Ако искам да смените думата от кашлица към нещо друго, като achoo, като той е кихане. Тогава аз го променя в една място, а не три. Така че това вече се чувства като малко по-добър дизайн. Нека вместо отворена кашлица 2, третата ни пример. Забележете, като компютърен учен, Започвам да се брои на 0, обикновено. Сега това изглежда малко страшно в Първо, но ефектът е същият. Кашлица, кашлица, кашлица. Но това, което изглежда да е фундаментално ново в горната част на програмата? Аз бях отстранен от дума. Аз бях отстранен чакането. И това, което не съм включен в мрежата, а? A функция. Кашлицата блок. Искам да кажа, честно казано, аз като че ли вид на идиот, ако не го направих само започнем с блока това е очевидно, наречено "кашлица", ако това е всичко, което искам да го направя. Но това не съществува в Scratch. По-скоро аз отидох до един в палитра наречена Още Blocks тук, и аз плъзнете този голям лилаво нещо тук, че ми позволява да дефинирате функция. По същество той ми позволява създам собствена пъзел парче, което може да се нарече нещо, което мога искам, че можем да направим нищо, което искам, но тя дава име. Това ми дава нов, лилаво пъзел парче че сега прави каквото аз го кажа, за да се направи. Така че това лилаво парче тук съответства на този тук. И какво прави той? Той казва, че за кашлица на второ място, а след това го чака. И сега съм нещо като създал моя собствена персонализирана пъзел парче, така че той се държи точно същия начин. Така че мога да продължавам така. И наистина, там ще бъде все повече и повече възможности за модуларизация, и за наслояване, сложност на върха на един друг. Но тази основна идея, Наистина в проблем, каза 0. Какво ти започваш да се се изправят пред предизвикателството да направим, е да изтеглянето на Scratch, или просто да го използвате в интернет, и просто да се забавляват с него. Ще ви дам един набор от изисквания, като звук, а някои брой парчета от пъзел. Но ще направя точно това. И вие ще осъзнаете, че започваш да се Искам да се вземат някои малки стъпки първоначално, докато програмата си получава повече и по-сложни. Но за това е тази на най-добрият начин да направите това? Мога ли да се избегне този инстинкт може би, да копирате и поставяте? Но преди Проблем Set 0, а преди да се отложи, смятахме, че ще отнеме до една по-доброволец, ако можехме, за окончателно програма това е може би най- монтаж на всички, даден днешния място. Хайде надолу. Да. Да. Как се казваш? Охо. Това е добре. И двете слезе. И аз съм ще се справят с това по някакъв начин в рамките на това, че следващите десет секунди. Така че хайде надолу. Хайде надолу. Нека дойде тук. Хайде. Всичко е наред. Нека да видим тук. Така че забележите доста бързо тук, ако искате да се качи на нагоре. Ние ще направим два кръга от това. И какво е вашето име? Сабрина: Сабрина. DAVID J. Malan: Сабрина и? Инг GEE: Ying Gee. DAVID J. Malan: Ying Gee. Приятно ми е да се запозная с вас двамата. Дейвид. Така че нашата крайна пример тук е наречено Hardest Game Ivy му. А защо не трябва ли да направиш Level 1 и Level 2, което правите. И ние ще видим колко далеч отвъд това ние всъщност вървим. Написано от студент миналата година, ремиксиран от мен така че това ще отидем над и в Ню Хейвън. И аз ви дам една игра, която ще включва преместване на стрелките нагоре и надолу, и получаване на Yale до финалната линия. Ето ни. [Възпроизвеждане на видео] [MUSIC - NFL ON FOX ТЕМА SONG] [MUSIC - MC HAMMER, "U CAN Не докосвайте  ТОЗИ "] -U Не може да докосне това. U не може да се пипне това. Не може да се докосне това. My ми, моята, музиката ми ме удря така Трудно, ме кара да кажа, о, господарю мой. Благодаря, че ме благославя с нищо против да римува и две Hype краката. Това е добре, когато знаеш, че си надолу. А супер дрога Homeboy от Oaktown. И аз съм известен като такъв и това такт ъ-ъ, не може да се пипне. Казах ти Homeboy U не може да се пипне това. Да, това е начина, по който живеем и вие знаете, U не може да се пипне това. Погледни в очите ми, човече. U не може да се пипне това. Yo, позволете ми бюст фънки текстовете. U не може да се пипне това. Пресни нови ритници и панталони. Имаш го харесват, че и вие знаете, искам танц. Така че да се изнесат от мястото си и да получите а лети момиче и да хванете този ритъм. Докато това е подвижен хванат помпа малко малко и да ги знам какво се случва. Подобно на това. Подобно на това. Cold на мисия, така че дърпайте назад. Нека знаят, че сте твърде много и това е ход, ъ-ъ, че не може да се пипне. Yo, аз ви казах, U не може да се пипне това. Защо ли стои там човек? U не може да се пипне това. Yo, звучи в звънец училището, издънка. U не може да се пипне това. Дай ми песни, ритъм ги прави поти това е, което аз им давам сега. Те знаят, че когато се говори за Hammer ли да говорим за едно шоу, че е свръх. И стегнати певци са изпотяване, така ги прехвърлят микрофон. Или на лента, за да научите какво тя ще вземе и сега той ще изгори в класациите. Legit или работа трудно или че може и да се откажат. Защото знаеш U не може да се пипне това. U не може да се пипне това. Го съборят. Спрете. Hammer време. Върви с потока в спин ако не можете да се премести в тази тогава най-вероятно са мъртви. Така вълна ръцете си в въздуха [недоловим] Това е за победител танцуват това и ти започваш да се получи по-тънки. Преместете плъзнете задницата само за минутка нека да направя всичко на бум. Да. U не може да се пипне това. U не може да се пипне това. По-добре да получите свръх момче U не може да се пипне това. Позвъни на звънеца обратно училището инча Го съборят. Спрете. Време Hammer DAVID J. Malan: Това е всичко за CS50! Благодаря много за присъединяване към нас! Ще се видим навън. [END PLAYBACK] [Възпроизвеждане на видео] [MUSIC - "Зайнфелд" ТЕМА SONG] -Hey Дейвид. -Hey, Дейвид. Как върви? -Добър Работа, днес. -Значи Мислили ли сте за това, което започваш да се направи за място шегите? -Не, Аз нямам нищо. -Какво If-- какво, ако това е извън шегата? ПОДОБЕН, разопаковане колички? -Хм нали. Знаеш ли, това е за нищо. -Така Харесва, не историята, не конфликт, не резолюция. Не разбирам. Какво става въпрос за тогава? -Нищо. -Значи Имаме извън шега е около нищо, а ние нямаме актьори. Кой ще бъде в това? -Не не не. Искам да кажа, че ще бъде в него. -You'll Бъде в него? -Да! Хората винаги са красноречиви ми, че съм герой. -Е, Искам да кажа, че е вярно. Но кой друг ще бъде в него? Тя не може да бъде само вас. -Ти Ще бъде в него, Gavin, Дан, Дан, Колтън, Z'Myla, Alysse, Дъг, Дейвид, всички. -Значи Това е за нищо, и всеки има в него? -Absolutely Нищо. -Това е нелепо.