[Музички] -Alright! 'Ова е CS50. 'Ова е CS50. 'Ова е CS50. [Музика - Иги AZALEA, "фенси"] -Мојот Омилен меморија од CS50 беше кога отидов да го мозаик ден. -Probably Само времето поминато работат на проблемот сетови со моите пријатели и луѓе кои отворена необработвана површина на крајот да стане мојот blockmates. -Мојот Најдобрите меморија од CS50 е Hackathon. -На CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. -На Hackathon -Rob Бауден. Само сè за него. [Музика - Иги AZALEA, "фенси"] -Мојот Омилена меморија е кога бев на фаза и свирев на престижната улога на еден јазол [? во Поврзано?] [? Листа. ?] -Кога Сите ние имаме слободна Dropbox простор и Дејвид беше како, погледнете под седиштата. И тоа беше како, простор за сите! [Музика - Иги AZALEA, "фенси"] -Мојот Совети за секој влезните студент би да биде навистина да се работи на P-сетови со пријателите. -Office Часа е многу вашиот пријател. -Направете најголем дел од вашето искуство и да ги задоволи како многу луѓе што можеш. -Не Плашете се да побарате помош. -Start P-сетови на почетокот на неделата. -Мислам Најголемата работа е да се ги искористат предностите на сите ресурси дека CS50 има. -Go До канцеларијата часа рано во неделата. -Definitely Се види на шорцеви. -Не Отлагам на вашиот P-комплети. -Направете сигурни дека ќе најдете голема група на луѓето да работат на P-сетови со. Можете да имаат многу забава и се добие работа заедно. -Не Плашете се да си помогнам. Одат за хакер издание понекогаш. -Write Работите на хартија пред Дали некогаш сте се допре вашиот компјутер. -CS50 Е навистина голема во обезбедување на начини да добиете помош. -Мојот Еден негов совет е сон. Дали некој го рекол тоа? Сон, сигурно. Тоа е лесно да не се направи, но имаш да го направи тоа, мислам. -Јас Би рекол навистина да се ментално подготвени затоа што ви се случува да го сакам. [Музика - Иги AZALEA, "фенси"] 'Ова е CS50. 'Ова е CS50. 'Ова е CS50. [Музика - Иги AZALEA, "фенси"] 'Ова е CS50. [Аплауз] Дејвид Џ MALAN: Значи ова е CS50 и ова е крајот на недела 0. И тоа беше само некои на персоналот CS50 е кој чекаат не само во деловите и работното време, но, Исто така, ова доаѓа викенд на CS50 мозаик ден. Кои, пак, не е сите програмирање. Всушност, тоа се очекува дека не ќе мора да се програмира нешто, туку решавање на проблемите со помош wits и пријатели заедно со вас. Ние ќе биде придружуван од страна на некои на нашите пријатели во Facebook-- ако here-- регистрирате кои во изминатите неколку години, има всушност е пишување овие предизвици со нас. И така, тие ќе бидат оние на крајот трчање мозаик ден. И така, ќе се соочат со предизвикот со точно видови на нештата и проблемите со кои луѓе во Фејсбук Како да се размислува за. Па тоа е утре. Регистрирајте се на cs50.harvard.edu/register. Сега еден збор на неколку на вработените, а особено. Ова овде е Ansel Даф, кој е всушност еден на ко-авторите на овие бинарни светилки што сме го виделе во средата, во прилог на CS50 е Ден Бредли. Ansel Даф, исто така, бил поранешен Новак advisee на рудникот пред 3 години и тој, всушност, дури и изградена овој lectern. Замина за да се направи инженерството и повеќе. Сега, неговата слика тука е, всушност, Ansel пред 3 години во CS50 Hackathon кога тој позајмува еден од нашите балони, тоа се залепи за својот лаптоп, и, за следните 12 некои чудни часа, се фокусираа на неговиот последен проект, земајќи паузи само да го отворите торби на бонбони на Hackathon. Но, тој отиде на повеќе неодамна да поминат овој минатото лето со нас, од CS50 за своите вработени, и сега студенти овој семестар, има своја 3D печатач. И во мало на 3D печатари е уред кој изгледа сосема вака. Можете да го пополнат со пластична spool кои не се стопи од страна на уред и ќе се изгради работи буквално од ништо. Многу сличен на инк-џет печатач, ќе почнете да плукање надвор малку точки на пластични дека форма заедно за да се формираат целина објекти. И така Ansel на пример, порано ова лето, има iPhone-от 5 и одлучи тој навистина сакаше за да го поддржам на неговата маса. Но, тој не сакаше да одам да си купам нешто од продавница на Apple или слично, па тој седна и почна цртање нешто. Тој зеде неколку мерења за тоа како дебели и како широк неговиот iPhone е, нацрта оваа слика тука, тој одлучи дека сака да имаат 75 степен навалите како што беше загледан во него на неговата маса таму. Тој потоа се сврте ова, користејќи софтвер, во модел 3D CAD кој изгледаше малку нешто како ова. А потоа тој продолжи, во крајна линија, за да всушност го создаде. Така, всушност, ако некој од вас тука, можеби по ред што може да фрли, имаат an-- таму имаме луѓе со iPhone 5, и тука имаме уште две. Сега, да не бидат надминати, CS50 е Ченг Гонг, исто така, е утврдено ова лето да се изгради неколку работи и, всушност, од причини што се уште нејасно, е полека печатење на војската на слоновите со артикулирање на оружје и ковчезите. Неколку, кои се всушност тука ако некој сега ќе like-- слон. Добро,. но она што Ченг, исто така, не за нас е дека многу љубезно се постави камера бидејќи тоа слон, верувале или не, зема некои две и пол часа за да печатите. Дури и на iPhone штандот се час и половина да се печати. И она што Ченг отиде напред и не беше формирана убав камера во предниот на овој 3D печатач, снимен за еден час и пол како дизајн Ansel на печатени. Ние позлати некои секси музика за да ја со цел да ти го дадам ова да се погледне како 3D печатење работи. И иако ова , всушност е во пластика, сфати дека ако ова е област од интерес за вас академски, постојат луѓе, меѓу нив Џенифер Луис тука на Факултетот за Инженеринг, кои се всушност работи на 3D печатење на пластични предмети. Но, дури и повеќе, биолошки материјали за решавање на физиолошки проблеми за луѓето. Но, тука е малку нешто од CS50. [Гласно МЕХАНИЧКИ звуци] Дејвид Џ MALAN: Тоа не звучи такво нешто во реалноста, но тоа е многу поладна да се види на таа брзина, а со тоа звук. Сега, во средата, како не ние прво се добие тука? Почнавме да зборуваме за компјутер науката и прашавме што е тоа. И тоа е за голем број на работи и Има толку многу различни правци во која можете да се упатат по се разбира како CS50. Всушност, ако сте зедов еден на оние неофицијални водичи да CS надвор, брошура која ние сме обезбедени, без разлика дали сте размислува за преземање само CS50, или можеби тоа и секундарно, или можеби дури и се концентрира во CS, не флип преку тоа. И ќе видите на дијаграм кон крајот дека ви покажува многу различни правци во CS дека можете да одам во. Но, за денес, ние ќе се фокусира, повторно, на навистина една од темелните ставови, можеби, каде што треба влезови за проблемите, имате резултати од проблеми, и имаш алгоритми со кои може да се создаде оние резултати од оние влезови. И еден таков пример, беше од Се разбира, овој телефон книга тука. И ние се користи како пример да се оди преку алгоритам што е точно. А потоа уште еден е точни, но малку побрзо. А потоа уште еден, кој беше малку повеќе драматични, но во основа побрзо. Право, овој телефон книга ќе тврди имаше околу 1.000 страници. И колку пати морав да солза на телефонот книга во половина да се најде некој како Мајк Смит, максимално, во 1000 страница книга? Значи, 10 се дава или зема. И така еднаш раскина тоа нешто во половина, или едноставно, повеќе зрело, поделена на половина, тоа е само 10 страници од 1000. И ако екстраполираме, малку нереално за телефон книга, но ако овој телефон книга имаше некои 4 милијарди страници во него, па сосема тежок физички, колку пати мислите делат 4 милијарди страница телефонот книга во половина? Па тоа е, всушност, 32, се дава или зема. И така 32 пати само, од од 4 милијарди страници, може да ќе се најде некој како Мајк Смит. И тоа е ефикасност. Тоа е добра алгоритам, daresay. Но, тогаш ние се пресели од тоа да се обиде да го формализира. И јас предложи оваа pseudocode код. Pseudocode код не е ништо официјално. Тоа не е нешто што се запаметат. Тоа е само нешто што го изразат прилично интуитивно користење на англиски јазик, или било кој јазик, навистина, дека пренесува вашите идеи посочно. Но, она што е клучот за pseudocode код е тоа што обидете се да се предвиди сите можни случаи тоа може да се случи. И навистина, во овој pseudocode код, имаше навистина три случаи секој пат кога ќе се подели на телефонот книга. Мајк би можеле да бидат на левата страна. Мајк би можел да биде на десно. Или би можел да биде право на страницата сум. Или четврта случај, така да се каже. А лошо сценарио може да биде една which-- она ​​што се случува? Мајк е само во телефонот книга на сите. И кога програмите crash-- кога Mac и PC софтвер кој ви момци се кандидира на вашите компјутери понекогаш виси или поднесе оставка неочекувано, што обично значи дека некои програмер, некои човекови како вас наскоро, само зезнав и направи некоја грешка. Можеби не очекуваат дека можеби има Нема Мајк Смит во книгата на телефонот. И ако навистина не го пишувам код за да се справи со такви ситуации, генерално непредвидливи работи може да се случи. Вашата машина може да замрзне. Тоа може да се рестартира. Во програмата може да се повлече. И така сите овие глупости кои може да се се соочиле во вашиот вистински животот само користење на компјутерите, повеќе ќе биде само објасни далеку со оваа интуиција и ова разбирање на она што е всушност, се случува под хауба. Сега ајде да се обидеме да ги погледне на поопшт проблем. Наместо да присуство во место како овој, кој ќе биде прилично бавен да се направи еден, два, три, четири. Или можеби два, четири, шест, осум. Ајде да се фокусира, наместо тоа, на како да се формализира алгоритам на процесот со кои можеме да ги посетеност. И на патот, да почнеме да се применуваат некои номенклатура дека ќе се користи и денес, кога ние всушност започне програмирање во јазикот. Па јас ви даде сега, четири минутната видео дека ние се стави заедно со нашите пријатели од ТЕД, на организацијата. При што се испорачува скрипта и тие го донесоа нивните аниматори да се носи, и всушност создаде 2D анимација за она што алгоритам е. Ако можеме да придуши го светла. [Музички] Раскажувачот: Што е алгоритам? По компјутерски науки, алгоритам е збир на инструкции решавање некој проблем чекор-по-чекор. Типично, алгоритми се извршува со компјутери, но ние, луѓето имаат алгоритми, како и. На пример, како би да одите за броите бројот на луѓе во соба? Па, ако сте како мене, би веројатно укаже на секој човек еден по еден и брои до од нула. Еден, два, три, четири, и така натаму. Па, тоа е алгоритам. Всушност, ајде да се обидеме да го изразат на малку повеќе формално во pseudocode код. Англиски како синтаксата што личи на програмскиот јазик. Нека N еднаков 0. За секое лице во соба, постави n еднаков на n плус 1. Како да се интерпретираат на pseudocode? И линија еден изјавува, така да се каже, променлива наречен n и иницијализира неговата вредност на 0 Ова само значи дека во почнувајќи од нашите алгоритам, нешто со што ние сме броење има вредност од 0. Впрочем, пред да почнат да бројат не сме изброи ништо сеуште. Повикувајќи ја оваа променлива n е само конвенцијата. Можев да го нарече повеќето ништо. Сега се редат две demarks почетокот на циклусот, низа од чекори кои ќе повтори некои број на пати. Значи, во нашиот пример, на чекор сме земање брои лица во соба. Под линија два е линија три, која ја опишува точно како ќе одат за статистиката. Вовлекувањето имплицира дека тоа е линија од три кои ќе се повтори. Па со pseudocode кодот е вели дека после почеток во 0 за секое лице во соба ќе се зголеми n 1 Сега е овој алгоритам е точна? Па ајде да тресне на тоа малку. Дали работи ако има две лица во соба? Ајде да видиме. Во согласност оној што го иницијализирам n на 0. За секој од овие двајца луѓе, тогаш ние подигање n 1. Па во првата патување низ јамка, ние ажурирање n од 0 до 1. На вториот патување низ кои истиот циклус, ние ажурирање n од 1 до 2. И така, со овој алгоритам крајот, n е 2, кој навистина се совпаѓа со бројот луѓе во собата. Досега, толку добар. Како за агол случај иако? Да претпоставиме дека постојат 0 луѓе во room-- покрај мене, кој е прави броење. Во согласност едно, ние повторно се иницијализира n на 0. Овој пат, сепак, линија три не изврши на сите бидејќи не постои лице во соба. И така n останува 0, која навистина одговара бројот на луѓе во соба. Прилично едноставна, нели? Но, сметајќи луѓе еден по еден е прилично неефикасен, исто така, не? Сигурно можеме да се направи подобро. Зошто да не смета двајца луѓе во исто време, наместо на броење на еден, два, три, четири, пет, шест, седум, осум, и така натаму. Зошто не се брои два, четири, шест, осум, и така натаму? Тоа дури звучи побрзо. И тоа сигурно е. Ајде да ги изразат оваа оптимизација во pseudocode код. Нека N еднаков 0. За секој пар на луѓето во соба, во собата N еднаква на n плус 2. Прилично едноставна промена, нели? Наместо брои луѓето еден по еден, ние наместо да ги брои двете во исто време. Овој алгоритам, со што, два пати толку брзо како последен. Но, тоа е точно? Ајде да видиме. Дали работи ако има две лица во соба? Во согласност едно, ние се иницијализира n на 0. Дека еден пар на луѓе, тогаш ние подигање N ЗАБЕЛЕШКА: Со 2. И така со овој алгоритам крајот n е 2, кој навистина се совпаѓа со бројот луѓе во собата. Да претпоставиме дека следната дека постојат нула луѓе во соба. Во согласност оној што го иницијализирам n на 0. Како и досега, линија три не сите го изврши бидејќи не постојат никакви парови на луѓе во соба, и така n останува 0. Кои навистина се совпаѓа со број на луѓе во соба. Но, што ако постојат три лица во соба? Како го прави ова алгоритам билет? Ајде да видиме, во согласност една, ние се иницијализира n на 0. За еден пар од оние луѓе, тогаш ние подигање N ЗАБЕЛЕШКА: Со 2. Но, тогаш што? Не постои друг целосна пар луѓе во просторијата, па линија два повеќе не важи. И така до крајот на овој алгоритам е, n е се уште 2, што не е точно. Навистина ова алгоритам вели дека биде кабриолет бидејќи има грешка. Ајде надомест со некои нови pseudocode код. Нека N еднаков 0. За секој пар на луѓето во соба, во собата N еднаква на n плус 2. Ако едно лице останува неспарени, постави N еднаква на n плус 1. За да се реши овој посебен проблем, ние сме воведен во линија четири услов, инаку позната како гранка, која само ги извршува ако има едно лице се не може да се спарите со друг. И така сега, дали има една или три, или било која чудно број на луѓе во просторијата, овој алгоритам сега ќе ги брои. Можеме да се направи дури и подобро? Па, ние може да смета во тројца, или четири, па дури и десетици петки, но надвор од тоа, тоа се случува да се добие малку тешко да се истакне. На крајот на денот, без разлика дали изведувачот на компјутери или луѓето, алгоритми се само сет на инструкции со која треба да се решат проблемите. Ова се само три. Што ќе ти е проблем реши со алгоритам? Дејвид Џ MALAN: Значи намерно, многу едноставна програма, многу едноставен алгоритам, за постигнување на нешто Многу едноставно, пребројување на број на луѓе во соба. Но, ајде да ги разграничат некои од претставник карактеристики тука, кои се всушност ќе бидат корисни дури и кога спроведување на повеќето комплекс на софтвер. Така на пример, во оваа прва линија, имаме она што ние го нарекуваме променлива, и од алгебра, ќе бидете генерално запознаени користејќи x и y и z, понекогаш, и така натаму. Но во програмирање, променливи се уште, на крајот на денот, Многу слично на тоа. Но тоа е можеби полесно да се мисли на променлива како само сад. А, всушност, тоа е некои број на битови спроведува некако во вашиот хард диск или во меморијата на вашиот компјутер, но повеќе за тоа во иднина. Тоа е само сад. И ако ви кажам нешто како дозволувајте n еднакви 0, Па тоа е како повик оваа чаша сад тука n, само произволна име, и ставање ништо во него на почетокот. Така што вредноста на овој сад во моментов е нула. И, се разбира, ако се согледа во следните линија, всушност подигање некои линија на кодот, како во оваа трета линија тука, од 1, тоа е како да кажеш што е сегашната вредност на n, тоа е 0, плус 1, стави нешто како пинг-понг топче тука. Сега вредноста на оваа променлива е едноставно 1. И можете многу брзо може да екстраполираме, но сега е 2, сега е 3, и така натаму. Па тоа е променлива е. Тоа е едно парче од складирање на всушност складираат некои податоци. За сега тоа е пинг-понг топче. Таму е број. Но, тоа би можело да биде зборови во речник, како и проверка на правопис Јас се алудира во средата еден проблем поставува минатата година. Сега уште еден клучен идеја, дека на сличен начин е прилично интуитивна би тврдат, е тоа што на јамка. И јамка во процесот на броење на секој е, се разбира, го прават истото нешто повторно и again-- или еден во време или две во исто време. И можете да го изразат ова на англиски, или pseudocode код, во било кој број на начини, но со користење на овој предлог "за" е многу честа начин тоа. За секој човек во собата, го направите тоа. Повторно и повторно. И фактот дека тоа е вовлечени, линија три, само значи дека она што си требал да го стори е нешто што е требуван под линијата два себе. Само човечките конвенција, но заедничка еден како што ќе видиме во вистински повисоки ниво програмски јазици. Сега малку поинтересно е кога ќе го добиете во еден агол случај. На пример, еден агол случај беше кога има биле три лица, пет или седум, или било која чудно број на луѓе во просторијата, затоа што тоа го прават од страна на twos сопирачки на крајот бидејќи вашиот случува да пропуштите некој, или на Многу почетокот или на самиот крај во зависност од тоа како ќе го направи тоа. И така, сега, морам оваа гранка, или состојба, ако едно лице останува, тогаш оди напред и да се справи со тоа еден осамен човек кој не се поврзан со некој друг. Значи тоа е она што ние би го нарекол услов, или гранка. Сега pseudocode код повеќе генерално може да биде писмено да се реши било кој број на проблеми. И она што сме мислеле дека би го направите тука е да се земе еден миг да ги покани да кажеме CS50 на поседуваат Роб Бауден на сцената да биде придружуван од двајца волонтери, кои немаат поим она што го чека. А рака слезе веднаш штом го рече тоа. Како за вас на завршува тука, ајде нагоре. И како за од подалеку подалеку, како за начинот на грбот. Задниот ред, ајде со вашите раце. Добро, и што е вашето име? ANITA: Анита. Дејвид Џ MALAN: Анита. Океј, убаво да ви се исполнат. Дозволете ми да ве запознаам со Роб Бауден. Ова е Анита. И она што е вашето име? KIERSTEN: Kiersten Дејвид Џ MALAN: Kiersten. Kiersten, ајде и исполнат Роб Бауден и Анита. Убаво да ви се исполнат. KIERSTEN: Убаво да ви се исполнат. Дејвид Џ MALAN: Добро, Роб. ROB BOWDEN: Убаво да ви се исполнат. Дејвид Џ MALAN: Анита. KIERSTEN: Здраво Анита. Дејвид Џ MALAN: И вашите неколку стотици соученици. Значи, сега дозволете ми да оди напред и да се повлече до само едноставна програма тука на Mac OS дека ќе ме пушти всушност ни трошка одредување на некои белешки. И ако вие момци сакаат да земаат по едно позиција на еден од тие училишта таму, дозволете ми да оди напред и да почне листа на pseudocode код, ако сакате. И она што сакате да го направите тука, во крајна линија е тип за вас некои инструкции дека нашите публиката се всушност ќе рецитираат за нас. Дозволете ми да оди напред и само промените ова нумерирани листа за да одговара на она што го правевте таму. И она што јас ќе одам да направите со вашата помош, е да напишете програма во pseudocode, со што овие момци се случува за спроведување на кикирики путер и желе сендвич. Па тоа е можеби односно со покаже нешто што некои од вас би можело да се гледа на интернет за само еден краток досадни момент. [МУЗИКА BUCKEWHEAT момчиња ", путер од кикирики  Желе ВРЕМЕ "] Дејвид Џ MALAN: Добро. Тоа е доволно за тоа. Значи тука меѓувреме, имам пар на Google очила кои ние ќе се стави на свој Роб CS50 на Бауден да го видиме светот низ очите. А ние ќе се потрудиме во пост производство за да всушност се исткае снимката на она што Роб е гледањето сега, во овој вистински предавање видео со нашите две волонтери покрај него. Значи она што јас ќе одам да направите е, ќе бидам на дактилограф. Ние имаме цел тука на всушност пишување програма со која треба да се направи, на крајот, путер од кикирики и желе сендвич, но овие три се случува да се однесуваат како да се компјутери. И компјутери, на крајот на денот, се всушност прилично глупава уреди. Тие се супер брз, но тие може само направи, буквално, она што им се кажува. Вие не може само да се каже се направи од кикирики путер и желе сендвич. Мора да ги програмираат да го направите тоа. Мора да им каже со прецизност што да правам, помалку работите одат ужасно и, се надевам, интересно криво. Па со тоа, рече, треба еден повик до од публиката за она што треба да се повлече еден да биде, ако целта тука е да се направи кикирики путер и желе сендвич. Да? ПУБЛИКАТА: [Беззвучен] торбата леб. Дејвид Џ MALAN: Отворете го торба леб. Па ако на тројца натпреварувачи ќе сакале да продолжи да го направите тоа буквално. Отвориш торбата леб. [ПУБЛИКАТА се смее] Дејвид Џ MALAN: Значи, да работат на тоа. Во ред. Па чекор две, how-- ајде да ги овој понатаму. Да, во предниот. ПУБЛИКАТА: [Беззвучен] леб. Дејвид Џ MALAN: Што е тоа? ПУБЛИКАТА: Отстрани леб. Дејвид Џ MALAN: Отстрани леб. Слично содржаен. Ви благодарам. [Аплауз] Дејвид Џ MALAN: Тоа е тоа? Добро, така Чекор два се случува да се отстрани леб. Добро, некој сака да пишете ни на подолг реченица? Некој друг? А малку повеќе [Беззвучен]. Не, ништо сега. Да? ПУБЛИКАТА: Место две парчиња еден до друг. Дејвид Џ MALAN: Место две парчиња еден до друг. [ПУБЛИКАТА се смее] Дејвид Џ MALAN: Место две парчиња еден до друг. Чекор четири. Да? ПУБЛИКАТА: Земи си рака и го постави лесно на врвот на путер од кикирики капак. [ПУБЛИКАТА се смее] ПУБЛИКАТА: [Беззвучен] до путер од кикирики. Дејвид Џ MALAN: Што? Се каже дека се повторно. ПУБЛИКАТА: Одвртете го капакот и го стави тоа нежно до путер од кикирики. Дејвид Џ MALAN: Стави нежно до путер од кикирики. Добро, напредок. Чекор пет. Одличен. Да? Земам нож. Дејвид Џ MALAN: Трансферот нож. Во ред, чекор по шест. Да? ПУБЛИКАТА: Држете нож од страна на рачката. Дејвид Џ MALAN: Држете нож од страна на рачката. Се одржи нож од страна на рачката. Чекор седум. Да? ПУБЛИКАТА: [Беззвучен] нож во кикирики путер и малку надвор [Беззвучен]. Дејвид Џ MALAN: Ставете нож in-- јас слуша "стави нож во путер од кикирики и да потрае малку како е можно. " Патем, отстранете ја хартијата во прв план. Добро, чекор девет. Чекор девет. Чекор девет. Не сме всушност направи сендвич уште. Да? ПУБЛИКАТА: Користење на нож во путер од кикирики, применуваат путер од кикирики на изјави леб. Дејвид Џ MALAN: Користење на нож во путер од кикирики, путер од кикирики се применуваат на рече леб. [ПУБЛИКАТА се смее] Дејвид Џ MALAN: Сите вистински чекор 10. Чекор 10. Да? ПУБЛИКАТА: Вкусот кикирики путер за да се обезбеди квалитет. [ПУБЛИКАТА се смее] Дејвид Џ MALAN: Чекор 11. Чекор 11. Чекор 11. Ајде. Да? Право таму. ПУБЛИКАТА: Внимателно ги собереш желе. Дејвид Џ MALAN: Внимателно ги собереш желе. Во ред, а потоа уште страна нагоре. Веднаш зад вас. Да, во сина боја. ПУБЛИКАТА: Добро, отстранете капакот од [Беззвучен], да, извадете го капакот од желе. [ПУБЛИКАТА се смее] Дејвид Џ MALAN: Од желе. Ха ха. [ПУБЛИКАТА се смее] Дејвид Џ MALAN: И? ПУБЛИКАТА: И едвај издржам секој [Беззвучен]. [ПУБЛИКАТА се смее] ПУБЛИКАТА: Се разбира, пред [Беззвучен] Отстранете ја хартијата од желе. Дејвид Џ MALAN: Отстрани хартија од желе. Чекор 14. Ние сме речиси таму. Да? ПУБЛИКАТА: Обратен желе шише пред сè паѓа надвор. Дејвид Џ MALAN: Обратен желе шише пред желе паѓа надвор. Чекор 15. ПУБЛИКАТА: Замена на капа. Дејвид Џ MALAN: Замена на капа. Чекор 16. Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Велат дека повторно. ПУБЛИКАТА: Земете капа надвор на вашиот желе. Дејвид Џ MALAN: Off вашиот желе. Па really-- Упс. Ајде. Заменете го капакот. Стави cap-- Рековте отстрани капа од желе. Се чувствувам како ние сме во малку јамка. Чекор 17. Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Велат дека повторно. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Врати се step-- ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Отстрани капа од путер од кикирики. Да? ПУБЛИКАТА: Капка сите желе на лебот. Дејвид Џ MALAN: Капка сите желе на лебот. Дејвид Џ MALAN: Ние сме речиси таму. Чекор 19. ПУБЛИКАТА: Отстрани вишокот желе. Дејвид Џ MALAN: Ха, ха, желе. [Аплауз] Дејвид Џ MALAN: Зошто не we-- уште еден чекор да се земе овој дом. Уште еден чекор, а потоа ќе служи сендвичи. Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Додека секој сендвич алинеја remains-- ајде this-- јадат. [ПУБЛИКАТА Смеа] Дејвид Џ MALAN: Во ред, фала да се нашите волонтери тука. [Аплауз} Дејвид Џ MALAN: Имаме некои убави разделба подароци за секој од вас. Свој путер од кикирики, желе, и леб да се врати дома. Ви благодарам. KIERSTEN: Ви благодариме. Дејвид Џ MALAN: [Беззвучен] добредојдени. [Аплауз] Дејвид Џ MALAN: Значи, ова е, Се разбира, смешно пример. Нели? Но, тоа не вид на откриваат како луѓето само се јасност здраво за готово. И фактот Сум бил да разговараат со друг човек, тој или таа само знае што мислиш. Компјутерите не се случува да знам што мислиш, дури и кога се користи, како што ние сме за да се направи денес, програмирање нешто во нула, повлечете и капка, загатка парче стил јазик. Дури и наменета за млади деца, имате да биде толку експлицитни и така буквално со она што го сакате вашата програма да се направи. Сега во крајна линија, ние сме ќе биде програмирање не е во pseudocode код, Англиски како синтаксата, но код или повеќе правилно, изворниот код. Изворниот код е само стилизиран начин за опишување кодот што всушност пишуваат со тастатура која е англиски не сама по себе. Тоа е во C или Јава или C ++ или нешто како што, како што наскоро ќе видиме. И всушност, само за да се плашиш на неколку од вас, на прв поглед, ова е програма напишана на јазик наречен C. Но да ОН плашиш неколку од вас, сакате целосно се разбере она што се случува на дојде следниот понеделник кога збор за нешто како ова. Искрено, ова е една постара јазик. Тоа е прилично таинствени, но тоа е претставник на многу јазици, овие денови дека имаат многу голема заграда и кадрава загради и наводници и semicolons. И многу на овој синтаксички нешта кои не е на сите интелектуално интересна. Всушност, тоа е крајна забава од многу едноставни идеи кои се ни загледан во лицето. Оваа програма, како што само може да се погоди, отпечатоци на компјутерскиот екран некој зборовите "Здраво светот запирка." Тоа е тоа. Па јасно, има многу работи кои се добивање на патот на некои очигледност таму, но тоа се случува многу брзо се лизга далеку и да биде сосема интуитивно. Всушност, она што се случува да се направи денес е дестилираат оваа прилично сложен во потрага програма, која повторно ќе дојде да се разбере брзо, но на нешто многу поедноставно. Да речеме она што сакам да кажам. Ајде да нацрта слика за тоа што мислиме, по пат на овие мозаик парчиња тука. Значи ова е програмирање јазик познат како гребење. Тоа беше развиена од страна на МИТ Media Lab. И она што ќе видите во проблемот поставени на нула, кој ќе биде објавен подоцна вечерва, ние ќе мора да одите на овој Рачно тука scratch.mit.edu. И тие имаат веб- базирани интерфејс преку кој ќе напише својата прва програма. Или оние од вас со претходно искуство, својата втора програми, но во средина која е Веројатно малку запознаени и дека ќе ви помогнам да се создаде нешто користење на овој многу визуелна средина. Сега, она што јас ќе одам да направите тука е се отвори самата програма. Таа постои не само како веб прелистувач, но и како можност за превземање програма така што ќе всушност може да го користи Ако немате пристап до интернет. И јас одам да го направи тоа овде, во Сандерс, само во случај на Wi-Fi не соработуваат супер добро. И она што јас ќе одам да направите е точка од неколку карактеристики на оваа програма. Значи, да биде јасно, имам само двоен кликнавте икона на мојот десктоп, или еквивалентно качил на scratch.mit.edu, и тоа застана овој прозорец. Ова е програмирање на животната средина. Тоа е едно парче од софтвер кој некои од нашите пријатели на МИТ напиша дека за да ни пишувате и програми во јазик наречен гребење. Сега ова се случува да биде мачка кој е исто така именуван гребење и ова е неговиот свет во кој живее. Ова е фаза, така да се каже, дека правоаголник во горниот лев агол на екранот. И тој не мора да изгледа како мачка. Можете да направите да изгледа како ништо и ќе може да има многу такви sprites, или знаци, во програма. Во меѓувреме, тука на екстремната право, е голем празно чеша. И ова е местото каде што, во еден миг, ние се случува да се започне програмирање со влечење и пуштање овие графички загатка парчиња кои се во право тука во средината. И таму е начинот на кој повеќе од нив од ние ќе потрошите време на овде, во класата бидејќи ќе најдете дека сите тие се прилично интуитивна. Повторно, тоа е дизајниран за децата, но ние го користат за да ги разграничат некои од тие основните идеи на променливи, петелки, услови, а наскоро, работите како функции и настани и теми и други фенси работи ќе стигнете до пред долго време за да всушност се создаде нешто од нула. Каламбур наменети. Сега, она што јас ќе одам да направите тука е кликнете на не движење, но контрола. И ова е само категоризација на here-- и гледам различна боја поставени на блокови. Но забележите неколку познати зборови. "Ако" и "друго ако" и "повторување". И веројатно може да се погоди тоа е потсетува на гранка, или условите што видовме, и дури и looping конструкција. Па ние имаме слични блокови тука. Но, најинтересните еден е овој овде. Кога е кликнато оваа зелено знаме, ова, за оние со претходно програмирање искуство, е еквивалентно на главната функција. Но, за оние кои се запознаени, ова е загатка парче која ќе започне проектот на целата наша програма. Тоа буквално значи кога ќе одам, во овој програма, и кликнете на зелени flag-- кои може да се види тука во горниот лев агол на графичката околина, па види на зелено знаме до црвена стоп знак? Кога кликнувам дека, моите Програмата се случува да се кандидира. Сега, јас ќе одам да направите нешто супер едноставен со гребење. Одам да одиме напред и да одат во изглед панел тука, каде што имам еден куп на виолетова загатка парчиња, и јас одам да се оди напред и да прават нешто супер едноставен како, да речеме. И then-- најава ова текст во белата кутија е editable-- јас ќе одам да се каже "Здраво светот", само сакаме направи во таа текстуална верзија пред една момент. И сега ако одам и кликнете на ова зелено знаме, јас сега програмиран. Тоа не е особено интересна програма, но не сум направил на компјутер да се направи нешто. Почнав програма и го направи она реков тоа да се направи. Сега, јас може да продолжи да влечете и испуштате се повеќе и повеќе на овие мозаик парчиња и тие се случува да блокирам, но ајде да завршиме некои терминологија овде дека ќе видиме периодични во текот на курсот, и навистина во текот на компјутерски науки и програмирање поопшто. Ова ", велат" блок, во виолетова, ајде да само на проектот повикувајќи соопштението. Тоа е како изјава на факт. Го направите тоа. Значи, тоа е категорија на инструкции кои може да се хранат на компјутер, како дел на програмата или алгоритам. И да биде јасно, сте веројатно зема здраво за готово дека имате програми на вашиот компјутер. И тие се вид на алгоритми, туку Програмата е навистина еден куп на алгоритми дека некои луѓе напишал. Тие се пакуваат и тие го продаваат така да, или испратени на веб-страница за вас да ја преземете. Значи, на програмата е само целиот куп на нули и единици дека, на некој начин, луѓето создале. И оние модели на нули и оние претставуваат работите, во крајна линија, како "велат Здраво светот" или "игра оваа музика "или" се игра оваа видео " или "испрати е-маил." Но, ние ќе се вратиме во начин повеќе детали што на програмата е кога ти, себе, напишете ги. Еве уште една statement-- "Чекај за една секунда." Јас не го користеле овој уште, но ако сакам мојата програма да пауза за момент да се направи нешто, можам да го кажам за да го стори тоа. Чекаат една секунда. Сега уште еден би можел да биде "игра звук." Значи, ова е единствена нула, тоа има способност да се пуштаат звуци. Значи, изјавата би можел употреба, тука ", играат звук." Во меѓувреме, Булова изразување, така што ова е познавач збор именувана по само еден човек со име г-дин bool, и ова е за сите прашање. Вистински или false-- е глувчето надолу? Булова изразување е само некој израз на англиски јазик тоа е точно или неточно. Или вклучени или исклучени. Една или нула. Можете да мислам на тоа во секој број на начини, но тоа е точно или овој лажен, во крајна линија. Така, "глувчето надолу прашалник" тоа ќе биде Булова израз. И може да се мисли на другите, можеби. На пример, "е лево број помалку од вистинскиот број? " Тоа, исто така, ќе биде Булова израз. "Помалку од" е Булова израз. Ова, исто така, "допирање покажувачот на глувчето". Не сум сигурен зошто тие го нарече глувчето. Тоа само значи, е покажувачот, е стрелка на екранот, допирање на мачка, на пример. Или некој друг аспект од екранот. И тоа е прашање, повторно, и што означува Булова израз. Нешто што може да сакате да го користите во состојба. Па ние ќе дојде до тоа во само еден миг. Можете да "и" нешта заедно. Значи, ако сакате да се провери дали ова е случај и тоа е случај, можете да го користите "и" блок вака. И тука е таа состојба. Забележете обликот на малку отворање во врвот на оваа жолта загатка парче, тоа е потсетува на обликот дека ние само видов пред една момент. Секој од овие Булова изрази имаат овие посочи рабови на лево и десно. А тоа е затоа МИТ луѓе одлучија дека со визуелно пренесување форми, можете вид на може да им помогне на луѓето, учениците и децата, да се вид на пополнување на празни места буквално. Сега дека puzzle-- дека Отворањето е малку мали, и како што ќе видиме во програмата, во нула, тоа ќе расте за да ги собере. Тоа ќе го задржи својот облик, во крајна линија. Па услов ајде да одлучите "Треба да се направи нешто или не?" Булова израз е конкретното прашање што го користите за да одлучи да одам да лево или можам да одам на правото кога ќе се судрите со овој т.н. вилушка во патот? Можете да имаат две гранки. Ако нешто е вистина, дали ова, друг одиме на тој начин, или едноставно можете да направите ништо сите, како овој блок подразбира. Слично на тоа, можеме да гнездо овие работи. Значи, ако сакате да трокреветни вилушка во пат, или направи ова или ова или она, можете само гнездо овие работи заедно. И тоа почнува да се добие малку грди, на крајот, за сигурни, но логиката е сепак иста. Вие буквално може да се прочита овој врвот до дното и вели дека она што means-- ако ова Вистина е, го направите ова, друго, ако на друго место. Јамка не се поедноставни во гребење. Засекогаш го направите следново. Сега е можно да не мислите може да направи многу, бидејќи таму не е многу простор помеѓу врвот и на дното на оваа загатка парче отворањето. Но ќе видите на гребење се случува да се расте за да ги собере што поголем број загатка парчиња што сакате да ставам таму. Уште еден циклус може да биде изразува со повторувања. Ако знаете однапред, "Јас сакате да направите нешто 10 пати, " можете само да се каже на гребење да се направи нешто 10 пати. И, во меѓувреме, можеме да имаме променливи. Па еве еден произволна еден, тоа е портокал во овој случај, и ова е виорот турнеја. Повторно, ќе се најдат на овој многу достапни штом еднаш ќе почнете посочување и за кликање. Сум име мојата променлива n, но јас би можеле да ја нарекуваат нешто што сакам, и јас сум тоа поставување тука, во овој арбитрарен пример, на нула. Сега гледаме програма како здраво светот не е на сите дека огромна, па ајде да всушност се отвори нешто дека поранешен студент направени. Дозволете ми да оди напред и да се отвори, на пример, овој овде, за што јас би сакал да имаат волонтер. Добро, како about-- да одиме подалеку. Да, ајде нагоре. Што е вашето име? ABBY: Ејби. Дејвид Џ MALAN: препријатието, ајде нагоре. Значи Дали некогаш сте играно оваа игра и пред тоа? ABBY: Не Дејвид Џ MALAN: Во ред. Давид, убаво да ви се исполнат. Дојди. И она што е на вашиот програмирање позадина, ако ги има. ABBY: Научив некои С ++. Дејвид Џ MALAN: Вие сте научиле некои С ++. И она што е вашата игра игра позадина? ABBY: Не многу. Дејвид Џ MALAN: Добро, па ние ќе се земе дека. Значи тука е како играта се оди на работа. Одам да се оди напред и да кликнете на зеленото знаме, кое е тука во горниот десен агол. Сега вашиот претходник во класата ви ја даде некои инструкции тука. И во само еден момент, таа вели "простор да почне." Така одат напред и хит на spacebar. Компјутерска игра: Pikachu. Дејвид Џ MALAN: А целта е да се фати на храната, како што е прикажано постојат од левата страна. И да [Беззвучен] [Game музички] Дејвид Џ MALAN: Aww, добро, Ви благодариме за играње. Имаме тука малку разделба подарок за вас. Имаме CS50 стрес топчето, ако сакате да изберете. Добро, добро да ви се исполнат. Ви благодарам што дојдовте и предизвикувачки. Па ние имаме повеќе стрес топки, така ајде да направиме уште еден пример да ги мотивира. А волонтер? Добро, како за право тука пред. Што е вашето име? Филип: Филип. Дејвид Џ MALAN: Филип. Ајде нагоре, Филип. Значи, Филип ќе биде соочат со предизвикот со уште една игра дека еден од вашите претходници напиша како дел од проблемот поставени на нула, наречен Најтешко игра на Ivy. И ќе видиме во само моментот што подразбира под тоа. Филип, убаво да ви се исполнат. Што ви е позадина? Филип: направено многу на кодирање. Направено малку игри, исто така. Дејвид Џ MALAN: Добро. Доби многу игри, исто така. И сте играле оваа игра и пред тоа? Филип: Не Дејвид Џ MALAN: Сите право, па тука ќе одиме. Одам да одиме напред и кликнете на зеленото знаме. [Game МУЗИКА] [МУЗИКА MC Hammer, "У НЕ допирајте го овој"] Филип: [Беззвучен] Дејвид Џ MALAN: [Беззвучен] Филип: [Беззвучен] [Се смее] [МУЗИКА MC Hammer, "У НЕ допирајте го овој"] Дејвид Џ MALAN: [Беззвучен] Ора низ него. Филип: [Беззвучен] Дејвид Џ MALAN: Оди напред. [МУЗИКА MC Hammer, "У НЕ допирајте го овој"] Дејвид Џ MALAN: Во ред. Алал да му е. [Аплауз] Дејвид Џ MALAN: Ние ќе мислење дека онлајн подоцна, па дека можете да отлагам со тоа како добро. Принстон доаѓа следно, после тоа. Па сега ајде да всушност се продолжи да се почне од нула, така да се каже, а всушност се изгради до можеме да ги разграничат некои од овие идеи и да се нешто уште посложени до крајот. Одам да одат над тука и јас ќе одам да се оди напред и да се создаде нова датотека. Значи, повторно, проблемот во собата ќе одиме вас преку некои од овие чекори. Но, сите што го направив беше да одам на менито File и јас рече "ново", толку многу како што е Microsoft Збор, или било која програма како тоа. И ајде да одиме напред now-- и ние спроведени "Здраво светот" Пред еден момент, но ајде да направиме нешто малку cuter. Одам да се оди до настани. И јас одам да се направи "кога зелено знаме кликнато. " А потоа јас ќе одам да се користи, да се каже, една гранка. Значи, ќе одам да се користи "ако" состојба. И ќе забележите како веднаш штом ќе се добие во близина за него, таа сака да прибере заедно. Па јас нека одат и да заглави заедно. И сега можам да направам нешто интересно. Ако јас се движите низ овде, јас ќе одам за да го видиш целиот куп на блокови. Ако одам во "податоци" - дозволете ми да зумирате in-- има нешто во врска променливи. Ако одам во "движење", можете да очигледно се сменат работите. Ако одам во "оператори" - Ох, ова е интересно, Можам да ги собереш на случаен број. Па да ми се направи нешто со само некои веројатност, само затоа. Одам да се оди напред и да повлечете оваа загатка парче, ова е тоа што помалку од блок, па тоа е само "Е овој број помал од ова?" Но, јас не сакам тешко код голем број бидејќи тоа е прилично бесмислен. Значи, ќе одам да го повлечете ова парче тука, и ќе забележите како тоа се прилепува во, и сега дозволете ми да оди напред и да се каже "ако на број, кој е одбран случајно е помалку од шест, сторете го следново. " Сега, зошто помалку од шест? Што веројатноста е ова ефикасно ќе ми даде, само интуитивно? Околу 50%, нели? Ако бројот што го погоди случајно помеѓу 1 и 10 е помалку од шест, јасно е еден, два, три, четири или пет. И така тоа ќе ми даде 50% веројатност за тоа што се случува? Па ајде да се направи нешто како ова ", играат звук meow". И известување, повторно, сложувалката парче расте за да ги собере, се додека форми се совпаѓаат. Тоа е она што е важно. Дозволете ми да одам во текот на гребење тука и кликнете на "игра". Ништо не се случува. Дали е тоа грешка? Не, не е потребно. Тоа само може да биде дека поголем број беше избран. Значи, да го направат тоа повторно. Ништо. [Meow] Дејвид Џ MALAN: Ете го. [Meow] Дејвид Џ MALAN: Повторно. Не [Слатко] Дејвид Џ MALAN: Значи, ако сте некогаш играл игра, се разбира, каде што работи се случува случајно, како лошите момци доаѓаат или не доаѓаат на екранот или работите се паѓа или не паѓа, тоа е само затоа што нешто супер едноставно како ова се случува. Трансферот на случаен број, и ако тоа е помалку од некои вредност, можеби го направите тоа или можеби го направите тоа. Ние може да се вклучат дека во состојба. Ајде да се направи нешто различно. Дозволете ми да фрли дека далеку. Можете да се ослободи од работи од само да го влечете исклучување на левата и опуштањето. Дозволете ми да оди напред и да се направи засекогаш блок и многу брзо се направи нешто досадно. Дозволете ми да оди напред и да велат дека "играат звук meow". Но, јас не сакате ова да биде премногу досадни, па да ми го имате овој блок, "Чекај една секунда", и известување нема повеќе простор за тоа. Но ако одите доволно блиску, таа сака да оди таму. Па јас се прости и ќе расте да се пополни блок. Па сега, ова е јамка. [Слатко] Дејвид Џ MALAN: Јас сум буквално тоа засекогаш. Повторно и повторно. Тоа не е само природна труба. Дозволете ми да оди напред и да го промените ова да не една секунда, за две секунди и притиснете Enter. И она што е убаво за нула е дека може да се програмира интерактивно. Направи промена, можеби притиснете Ентер или игра повторно, и тоа само ќе продолжи да оди. Па, сега, зошто не го правиме нешто малку cuter? Наместо да стори сé што е од нула, дозволете ми да оди напред и да се отвори аванс направи едно, дека јас пре-печен, наречен "Пет на САТ." И ние ќе ја објавите сите овие датотеки преку интернет, и проблемот поставени на нула ќе ви кажам како да им пристапите и отворете нив. И информации, ова е прилично едноставна. Но, во однапред, јас се чини дека имаат зграпчи на "засекогаш" блок, па имам еден циклус. И тогаш, јас имам "ако" состојба. Имам Булова израз. Па на англиски, само обѕрне на ова, особено ако никогаш не сум програмиран пред, само интуитивно, што е ова се случува да се направи, оваа програма? [ПУБЛИКАТА CHATTER] Дејвид Џ MALAN: Ако миленичиња на маче, мачка ќе meow, нели? Бидејќи "засекогаш одбележување" е покажувачот на глувчето допирање на мачка. Така да биде јасно, и јас не се каже ова пред, сите овие загатка парчиња и сценариото дека ние ги комбинираат во, така да се каже, скрипта е синоним за програма, навистина, припаѓа на оваа мачка. И причината поради is-- известување како тоа исто мачка тука е обележана, овде можете да креирате Вториот мачка или куче или навистина нешто што сакате графички. Можете да увоз нешто од Photoshop, или слично, и да се интегрираат нешто ако сакате да се направи за еден проект. И она што ќе се најде, во крајна линија, е тоа што да додадете скрипти, да додадете загатка парчиња, за индивидуалните карактери. Па овие сите му припаѓаат на ова особено мачка. Па сега ако одам напред и да игра оваа програма, ништо не се случува. Но, таа се извршува. На програмата е во оваа засекогаш јамка, вид на чекање за она што се случи? [ПУБЛИКАТА CHATTER] Дејвид Џ MALAN: Да миленичиња мачката. Значи, ако јас се движи мојот глушец кон him-- [Слатко] Дејвид Џ MALAN: Значи сега Јас сум фаќање на мачка. Во меѓувреме, ние може да има двојно гранка. Дозволете ми да оди напред и да се отвори до не милениче мачка. Ние ќе ја објавите оваа интернет, како и. Ова е малку повеќе комплекс, но без да се каже може да се погоди можеби она што се случува да се случи. [Слатко] Дејвид Џ MALAN: Cat е слатко, голема старото време. Но оваа програма е, се разбира наречена "Не ПЕТ на мачка" толку јасно, сакам да миленичиња мачката. [Громогласен] Дејвид Џ MALAN: Не миленичиња мачката. Сега, ајде да ги разгледаме во уште еден пример тука. Ова ќе се нарекува "Здраво, Здраво, Здраво", од причини кои ќе бидат јасни, бидејќи штом ќе ја извршите оваа thing-- [ПЕЧАТ лаење] Дејвид Џ MALAN: Многу лесно да се пишува досадни гребење програми. [ПЕЧАТ лаење] Дејвид Џ MALAN: Сега ние нема да во големи детали и со сите овие, но забележително е дека во неколку нови функции тука. Има променлива, наречен "пригушени" А потоа, тука е еден куп услови. И сега за сега, дозволете ми да само ти душманке со зборовите: дека ако ова момче добива премногу досадни, Јас може да го погоди на spacebar и застанува. Затоа што улогата се игра од страна на овие две сценарија е како што следува. Еден од нив го прави лаење на секои неколку секунди. Другиот е само чека за мене да се погоди на spacebar. И ако го направам хит на spacebar, тоа се случува да се промени државата на оваа променлива, вредноста на оваа променлива, тоа е очигледно наречен "пригушени," Јас не се јават тоа нешто досадно како N, Јас го нарекува англискиот збор ", без глас." Од 1 до 0 или 0 до 1. Од верен на лажни или невистинити да вистина. И така всушност можете да види сега, што ќе може да има две сценарија, две програми работат истовремено, и двете од нив може да се седи во јамка прави нешто. Чекајќи човечки да се направи нешто како притискање празно место. [ПЕЧАТ лаење] Дејвид Џ MALAN: И сега тој е на пат повторно. [ПЕЧАТ лаење] Дејвид Џ MALAN: Па што друго може да правиме со овие примери? Па, ајде да одиме напред и да се направи една пример со броење овци. Ние ќе продолжиме со ова по должината на линиите тука of-- ајде да се отвори овци пример. И известување, многу како порано, овој, за среќа, е малку помалку досадни. Откако јас хит игра here-- О, не, ова е досадно. Тој се случува да се БАА со одредена веројатност. Ајде да се игра оваа повторно. [Овци BLEETING] Дејвид Џ MALAN: Единствената разлика е ние сме промени костим, така да се каже, и ние сме преполовување и да каже она што вистинскиот број е. Па ајде да одиме напред и да искористам оваа чекор понатаму. И дозволете ми да ви закачам со една друга карактеристика тука. Ајде да одиме напред и да се отворат програма наречена Теми. Толку многу како тебе може да има еден самовила, има повеќе сценарија, можете да имате две sprites, птица во мачка, од кои секоја има свои скрипта. И секој од нив може да работат истовремено. Ако некогаш сте слушнале Зборот "многонишков" компјутер е "многонишкови" значи што може да направи повеќе работи одеднаш, и, навистина, па може да се нула. И сега забележат птица е вид на нем. Тоа е само вршење на работите по случаен избор, бие надвор од екранот. Јасно е дека мачката е програмиран да се вид на имаат бараат можности до дома во на птица бидејќи тој секогаш покажувајќи кон него. Додека конечно, тој фаќа вистинскиот птица. Па не ќе се задржиме на детали тука, но може да се вид на видат истите форми, некои "Ако" услови, некои променливи, Можеби некои петелки, се во крајна линија го прават истото. Сега дозволете ми да оди напред и да се отвори до нешто друго целосно, да се закачам некои од вас, особено оние поудобно, она што навистина може да се направи со ова. Одам да одиме напред и ќе отвори Батон тука. И ова е супер едноставен навидум програма, но види што се случува кога I-- Гледајте што се случува кога ќе ја отворите оваа верзија на него, тука во прелистувачот, scratch.mit.edu. И кога ќе кликнете на ова големо црвено копче, забележи она што се случува. Значи она што се случува овде? Има всушност е многу повеќе комплексноста случува под хауба, иако сум имплементирана ова, или искрено, Дан Бредли има имплементирано тоа така едноставно. Тој е дизајниран обичај гребење загатка парче, познат како гребење продолжување, тој го нарече Промени. И она што го прави е Смени го праќа порака преку интернет. И дека самата порака изгледа малку криптичната. Но, тоа, исто така, ќе се разбере до крајот на терминот е. Пораката тој е всушност испраќање изгледа малку нешто како ова. Тоа е само текст. Криптичната. Ќе го разбере од страна на време ние го добиете проблемот поставени седум. Тоа е само испраќање на текстуална порака преку интернет на серверот. И дека серверот е, во крајна линија, да разговараат со овој сијалица, која има една од оние фенси светилки во тоа што, сама по себе, зборува на Wi-Fi во мрежата овде, каде што локалните уредот надолу here-- и, во крајна линија, тоа е, всушност, вртење дека светлината и исклучување. Но можеме да направиме повеќе интересни работи уште. Информации што Дан, исто така, го направи за нас. Тој направи повеќе sprites, секоја од која има скрипта чекаат за клик. И ако јас кликнете на црвено, тоа оди црвено. Ако добијам сино, тоа оди blueish. Зелена, жолта, портокалова. И сето ова се случува од страна на ќе излез кон интернет, се повлече тука до сијалица, и исклучување. И ако може да it-- верувам и тоа е можеби една од најкомплексните гребење проекти некој има implemented-- тој тоа го правеше, во праведноста, во еден ден. И тоа беше предизвик ние фрли долу Дан кога видовме имаат бинарна светилки, имаме нула, како можеме да ги комбинирате? И, навистина, ова е апсолутно нешто некој во оваа соба може да се направи од страна на end-- семестар е тој reimplemented бинарни светилки користење истиот интерфејс, кој беше на нашите iPad во средата. Така што сега, ако јас всушност кликнете на плус ваму, имаме еден, два, три. Јас може да погоди 16 и да се сврти дека една натаму. 128, и така натаму. Сега, ако тоа сам има и разнесени вашиот ум, можете да се прават работите многу повеќе достапни, не вклучуваат било хардвер, секако. Само работите на екранот себе. И, навистина, она што повеќето студенти заврши тоа е некој вид на игра, некои парче на уметничкото дело, или некој вид на интерактивна анимација. И јас ќе кажам еден од нашите Омилени е оваа. И мислев дека ако ние би можеле да се затемни светла, ние ќе се видат во оваа конечна Нула проект во заклучокот. Но, она што ќе треба да ги држи во умот, како што Можам да ви закачам со еден детаљ, разделување ќе започне следната недела. Работно време ќе започне следната недела. Проблемот поставени на нула ќе бидат објавени CS50.harvard.edu подоцна денес. И ќе бидете поздравени во проблемот поставени на нула да CS50 е Zamyla Чан, кој водичи повеќето од нашите walkthroughs. Овие се вградени видеозаписи во проблемот сетови која ќе се одржи вашата рака преку многу од почетната поставеност и низ многу од можните дизајн одлуки. Па некогаш ако сте ја имале таа емоција кога подигање на домашна задача и се прашувам, каде да започнеме? Таа ќе има тој одговор за вас. И сега, конечниот програма од еден од вашите претходници во одговор на прашањето "Што значи лисицата каже?" [МУЗИКА YLVIS, "Што значи лисицата кажам?] YLVIS: (пее) Куче оди ткиво. Мачка оди meow. Птица оди чуруликам и глувче оди квичат. Крава оди moo. Жаба оди грачене. И слон оди избибитвам со клаксон. Патки велат шарлатански и риба одат Blub. И печат оди ОЖ ОЖ ОЖ, но има една звук што никој не знае, она што го прави лисица кажам? И Дејвид Џ MALAN: Тоа е тоа за CS50. Ние ќе се видиме во Мозаик ден и во понеделникот. [Аплауз] [МУЗИКА YLVIS, "Што значи лисицата кажам?"] Раскажувач: И сега длабоко мисли, од Daven Farnham. Денес добив погоди во се соочуваат со телефонот книга. Збунувачки, како јас сум на дома гледајќи онлајн.