Па тоа ми е задоволство да ви посакам добредојде овде денес
за првото предавање на, добро, Вовед
во компјутер и програмирање.
Исто така познат како CS50 или добро, CPSC 100, официјално тука во Јеил.
>> Така што не може да биде повеќе возбуден да ви посакам добредојде овде.
Моето име е Патрик Rebeschini.
Јас сум инструктор главата за класа.
Јас сум тука претставува група од околу 60 членови на персоналот
кои ќе работат со вас во текот на семестарот.
Овој број е речиси 60 нас.
Сепак, по вонредните ниво на обврски
дека ние се стави во овој класа, го прави CS50 класа
на Универзитетот Јеил, кој нуди највисоко ниво на поддршка
на сите вас.
И ние не може да биде горд на нудат оваа класа тука повторно.
>> Всушност, како што наскоро ќе ја доживее, CS50 е многу повеќе од една класа.
Тоа е една заедница.
И ќе биде дел наскоро на оваа заедница.
Ова е втора година Јеил нуди оваа класа.
Ние сме зграда на екстремната успехот од минатата година, при што
за прв пат, тука во овој универзитет,
додипломски асистент учење беа усвоени во училниците.
Се започна со оваа класа минатата година.
>> Значи, како што знаете, на класа се учи заедно со Универзитетот Харвард.
За да ги учат на овој курс ние сме relying-- можеме
смета на голема стручност на Дејвид Malan и тимот на Харвард.
И Давид е наставата CS50 за добро, 10 години.
И секоја година тој е поместување на границите
и подобрување на училницата искуство.
Повторно, ние не може да биде среќен да се продолжи оваа соработка со нив.
>> Всушност, една од најинтересните делови,
Јас ќе го кажам на водење на оваа класа сега, и на Харвард и тука во Јеил,
е навистина неверојатно вкрстено оплодување
на идеи, со цел подобрување на учење за сите вас.
Па како резултат на оваа обемна соработка меѓу двете
универзитет, CS50 е горд да го го објави нова верзија на оваа година
со забележителни промени.
Дејвид сите ќе ни кажете за нив сега.
Значи please-- ова суштество рече, Ве молиме да ми се придружат
и добредојде да се даде голем аплауз
да се поздравува со Давид и Харвард тим тука во Јеил.
>> [Аплауз]
>> Дејвид MALAN: Ви благодарам.
Ви благодариме.
Ова е CS50, Универзитетот Харвард и воведување на Јеил Универзитетот
на интелектуална претпријатија на компјутерски науки
и уметноста на програмирање.
И што значи тоа е дека овој курс во крајна линија, е за решавање на проблемот.
И навистина, многу од вас може излегуваат од средно училиште
или ги поминал изминатите неколку години се прашувам што некои од вашите пријатели
минатата година или во други класи.
А сепак, реалноста е, без оглед на она што
направи на крајот на денот во оваа класа, тоа се случува да биде за решавање на проблемот.
>> И како такви, можеби се некои уверување во тоа
дека 73% од студентите кои искористам оваа класа, и тука
на Јеил, како и на Харвард, никогаш не сте земени класа CS порано.
Значи, ако сте седи тука во публиката денес се прашувам
Зошто ви се седи тука во публиката и денес,
или можеби само го следеле заедно со некои пријатели,
или можеби сте биле малку љубопитни за тоа што
компјутерски науки и програмирање, да сфатат
дека повеќето од вашите соученици лево и десно од вас
се многу на истиот демографски.
>> И навистина, ако ја гледаме во минатата година статистиката
во рок од студентите на телото на CS50, и овде и во Харвард, 58% од учениците
се опишуваат себеси како помалку удобно.
9% е поудобно.
А потоа и 33% е некаде помеѓу.
И нема формална дефиниција што значи овие корпи.
На некој начин знаете дека сте помалку удобно, ако се наоѓате.
Ќе се чувствувате малку мачно со можеби се во класата.
Вие не сте сосема сигурни дали компјутерот науката класа е во крајна линија за вас,
и да сфати дека вие сте во многу добра фирма.
И навистина оценување, и оценување,
и повратни информации, и сето тоа структура за поддршка во класата
на крајот се многу индивидуализира.
Повеќе отколку повеќето било друга класа од страна на дизајнот.
И навистина, она што на крајот прашања во оваа класа не е
толку многу каде што ќе се Регистрација во однос на другите,
но каде што, во 11 недела или последно, и во однос на себе си во недела
0 овде нашиот прв.
Па што значи тоа?
Па, тоа значи на оние 73% од студенти минатата година, кој никогаш не зел
a CS класа порано, од страна на почетокот на семестарот се
биле dabbling во јазик повика на гребење, кои самите ние
ќе го видите тука и денес.
И до крајот на семестар се тие нема
целата оваа листа на предизвици.
Почнувајќи со јазик наречен C.
Спроведување, што е На прв поглед, се случува
да биде малку предизвик за некои, но доста пријатна откако ќе
добијат Супер Марио бие нагоре и надолу пирамида
спроведува, но, само со нешто што се нарекува ASCII уметност.
Спроведување на последните year-- што студентите минатата година потоа
Дали по што беше спроведување на нивните сопствена Цезар шифра и vigenere број.
Значи енкрипција алгоритми со кои може да се
трка информации, а потоа разшифровам информации да се испрати тајни пораки.
Играта на 15.
Ако се сеќавате од детството или некои партиски корист,
дека малку пластични игра каде што се движат бројките горе, долу, лево и десно
да се обиде да ги добие во ред, всушност спроведување на таа игра
и решавање на логика бара таму.
А потоа ние dabbled во криминолошки науки минатата година.
>> Значи до средината на семестарот, студентите кои никогаш немале
користат нивните тастатури за оваа намена досега,
беа пишување софтвер да се опорави, така да се каже,
JPEG слики или фотографии што ги имавме случајно
избришани од дигитален мемориската картичка од камерата.
Пронаоѓање тајни пораки од внатрешноста на bitmap слика,
и други такви видови на графика, како и.
>> Ние тогаш transitioned на давање целата класа речник.
Само навистина голем текстуална датотека со 150.000 англиски зборови.
И секој беше оспорена некако да се прочита, така да се каже,
тие зборови во меморијата.
Во меморијата на компјутерот.
А потоа одговори на прашањата на формата, дали е ова некој збор?
Дали е ова збор?
Навистина само спроведување на проверка на правопис.
А потоа и предизвик едни други со голема board--
лидер на одборот да се види кој може да користење на најмалку износот на меморија,
во најмалку износот на време да се всушност, проверка на правописот големи документи.
>> Ние transitioned од тогаш до спроведување на оние сопствен веб сервер.
Затоа, не изработка на веб страни јазици како на HTML и CSS, ако сте запознаени.
Но, всушност спроведување серверот на кој
слуша на интернет за барања од пребарувачи
а потоа да одговори на овие барања.
Потоа спроведување на нашите сопствени е-трговијата како веб-сајт, каде што
студентите може да се купуваат и продаваат акции.
Цртеж речиси во реално време берзанските од Јаху финансии.
И овозможувајќи им на студентите да се види начинот на нивното портфолио се развива.
А потоа конечно спој на Google News и Google
Мапи со која студентите со мандат од страна на условите крајот
има способност да кликнете и круг, и пребарување на мапа на Google.
И потоа да видиме сите вести статии кои
се проксимално тие одредени области.
Значи навистина се случува од нула до 60 години.
>> И по тој начин да се има она што го имавме минатата година наречен, хакерски дополнувања.
Тоа го подигнат нивото понатаму за оние од вас
кој многу добро може да имаат добар износ од искуство да биде во таа 9%
на повеќе удобно.
Така сфаќаат дека има многу висок плафон
дури и во оние предизвици за студентите
доаѓаат од различно потекло.
Бидејќи на крајот на на ден, ние сме на крајот
фокусирани едноставно за ова.
>> Но, она што го прави ова значи, за решавање на проблемот?
Значи, да предложи ние го дестилираат се допаѓа ова.
Значи решавање на проблемот е навистина само овој вид на сликата.
Значи имаш влезови за некој проблем, нешто што, всушност, сакаат да се реши.
Целта е да се добијат резултати, решение за тој проблем.
А потоа во средината е она што ние ќе го наречеме црна кутија.
Вие не мора да знаете, па дури и се грижи што го пишува во црна кутија.
Се што знам е дека кога се хранат влез во неа,
се надевам дека се излез или решение од него.
И додека денес ние ќе се погледне и на влезови и излези,
ние ќе долгорочно, а во текот на текот на целиот семестар,
фокусираат на она што го пишува во кутија.
>> И во него нема да лаже нешто што се нарекува алгоритми.
Чекор по чекор инструкции за всушност решавање на некои проблеми.
Но она што е пример за некои влезови?
Па можеби едноставна работа на почетокот на секоја учебна година, некој
можеби ќе сакате да се земе посетители.
Па ние може да се направи еден, два, три, четири, пет, шест,
и како ќе ги чувам патеката на таа информација.
Јас само може да оди еден, два, три, четири, пет, шест.
И само користење вид на едноцифрена бројка.
>> Или јас всушност би можеле да снима ова малку подолг рок.
И како можам да ги претставуваат сите луѓето во оваа соба?
Па, би можел да направи такво нешто, во ред.
Гледам едно лице.
Во ред.
Гледам друго лице, трето лице, и така натаму.
Но, никој не брои луѓе како овој.
Значи буквално, повеќето од нас, ако ние сме дури и ќе се нацрта нешто на сите,
најверојатно се обидеме да одиме еден два три четири,
можеби се малку фенси, пет, шест, седум, осум, девет, десет и така натаму.
>> А тоа е, всушност, систем наречен унарен.
Уно, како уно што значи една, каде што само една буква од азбуката.
Вие сте само добив овој хаш марка.
А јас, за ефикасност, само привлече овие хаш марки, на крајот
како прави линии.
Но, јас би можел да ги извлечат како што е малку стап фигури.
Каде да претставуваат еден човек, еден влез,
Јас само се подготви стап личност или хаш марка.
Но, тоа не е на сите дека експресивен.
>> Ако јас имам е овие хаш марки, а камоли стап фигури,
како би можеле да ја претставувам нешто како бројот 15?
Или 15 луѓе во соба?
Јас можеби ќе мора да се направи нешто како 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15.
Тоа едноставно не скала многу добро.
Како влезови се големи, ние треба подобар систем од тоа.
>> И излегува дека систем што ги користат компјутерите
не сите што се разликува од она што ти и јас знаеме.
Всушност, повеќето луѓе во оваа соба, дури и ако вие сте меѓу оние кои се помалку
удобно, не мора да знаете како вашиот Mac или PC навистина работи,
сте веројатно барем слушнале, дека под хаубата се 0 и 1 е.
Т.н. бинарен систем.
Па навистина, компјутери имаат повеќе од само хаш марки во нивниот речник,
но не е толку многу на речник како и ние, луѓето.
>> Всушност, ние, луѓето не го користат бинарни.
Би значи 2, 0 и 1.
Но децималниот, Deca што значи дека 10, од ​​0 до 9.
Значи имаме многу поизразени способности во нашата нормална човечкиот свет.
Но, јас би рекол дека овие системи, бинарни и децимални, и сè
меѓу нив и надвор од неа, се всушност сите се доста запознаен.
На пример, сметаат овој пример тука, 123.
Значи ова навистина е, се разбира, голем број знаеме како 123.
Но, сите јас само го привлече беше само овој модел на симболи, хиероглифи, така да се каже.
Вид на форми на табла со креда.
>> Но, зошто ние веднаш и интуитивно сфати ова како 123?
Па, ако сте во ситуација како мене во основно училиште,
најверојатно научил дека ова е 1s колона, ова е колумна на 10-ти,
ова е колона 100.
И зошто е тоа корисно?
Па, тоа е едноставно да аритметички сега направите за да добиете од моделот на симболи
на голем број разбираме интуитивно.
Е што, 100 пати 1, а потоа 10 пати 2, и 1 пати 3,
што секако е само 100, Ова е 20, а тоа е три.
И така, ако ние додадете оние together-- ах.
Значи во него лежи вид на размислување зад зошто овој сет на симболи
значи нешто реално и бројки.
>> Па, компјутерите се направи иста работа, но тие само може да се смета како високо како еден.
А јас бев во можност да се смета како високо како три.
И всушност, ако јас ќе се чуваат можев оди високо како девет во овој систем.
Компјутери имаат само нули и оние во нивната азбука.
>> Па што значи тоа?
Па, тоа само значи дека ако еден компјутер сака да ја застапува, велат дека бројот 0,
можеби со три characters-- три букви од азбуката, така да се каже,
тоа е како компјутер претставува 0.
Па не е ни толку страшно досега.
Тоа е токму она што ние, луѓето би го направил.
И всушност, повеќето од нас би само игнорира водечки нули во секој случај.
>> А компјутер, ако тоа го сака за чување на број 1,
Излегува се случува да го направите тоа.
И компјутер за чување број 2 не е
случува да се направи унарен систем, што јас се алудира погоре.
Тоа е, всушност, се случува да го направите тоа.
И ова е веројатно каде што моделот започнува
да стане помалку очигледни за повеќето луѓе.
Тоа е 2, ова е 3.
Интересно, ова е сега 4 е.
И сега тоа навистина не се чини дека се можеби криптичната,
но тоа не е ако се има предвид што бинарни навистина значи.
Тоа значи дека може да има две писма на вашиот азбука.
Значи две можни знаци за секоја случаеви.
>> Така што навистина значи дека си оди да треба 1s место, или 2s место,
a 4S место, а потоа 8 и 16, 32, и 64.
А што е разликата таму?
Како овие се 1, 2, 4, 8, 16, 32, 64.
И пред да имаше 110, 100.000, 10.000.
Што е сличноста таму?
И она што е на шемата?
Да.
СТУДЕНТСКИ: Утврдување од 2 наместо на власта од 10.
Дејвид MALAN: Да.
Овластувања на 2, наместо на власта од 10.
И така, ако сакав да се задржи оди, 8, 16 и така forth--
но сега ако имаш овој вид на поим, сега бинарен систем
е всушност прилично јасна.
Зошто е овој модел на 0 е во светот на компјутерите 0?
Па, бидејќи тоа е 4 пати 0, 2 пати 0, 1 пати 0 0 и ќе добиете.
>> Зошто е ова е број 1?
Истото размислување, но сега имаат 1 во колона 1.
Зошто е ова 2?
Имаме 1 во 2s колона.
И тогаш како можам да претставуваат велат, бројот 7 во бинарна?
Кажи погласно.
>> СТУДЕНТСКИ: Три 1S.
>> Дејвид MALAN: Три 1S.
Значи 1, 1, 1, бидејќи ние само треба 4 плус 2 плус 1 ми дава 7.
Во ред.
Па од таму како што правиме претставуваат 8 со 3 држачи на место?
Да.
>> СТУДЕНТСКИ: 1, 0, 0, 0.
>> Дејвид MALAN: Да, 1, 0, 0, 0.
А сепак, можеби и јас сум вид на технички треба
да се додаде уште случаеви на одборот.
Ако сакам да се вклопи дека јас навистина треба да се направи нешто како ова.
Па јас всушност треба да се користи веднаш на 8s колона, и тоа е во ред.
Но чудна работа со компјутери е дека тоа се случува да ни чини нешто.
Ви треба повеќе RAM меморија во вашиот компјутер сега.
Ви треба повеќе меморија бидејќи ти треба нешто
физички до продавница, во којашто дополнителни малку, така да се каже.
Бинарни цифри.
И навистина сите што се случи тука, како по децималниот систем,
ако продолжиме додавање броеви и нагоре и нагоре, ќе одиме до 5 6 до 7 до 8
тоа е како да носи 1, буквално.
А потоа сè друго се враќа на нула.
>> Но како да се, всушност, претставуваат овие работи за физички во компјутер?
Па, на крајот на денот, само физички влез случува во мојот компјутер
тука е овој кабел за напојување, така електрична енергија или електрони од ѕидот.
И така, како можам да добијам од нешто физички како тоа да се, всушност,
претставува една ваква идеја, наместо.
>> Па, она што можеме да направиме?
Ние би можеле да сметаат дека, во ред, Можеби ако електрична енергија тече
Би можел да го чувате и да се држи до тоа.
И ако сум држи за некои на електрична енергија,
тоа е само случува да се произволно претставува 1.
И ако јас повлечете го приклучокот и таму нема ништо,
Вие знаете дека е само ќе произволно да претставува 0.
>> Значи, ако нешто не е таму, 1.
Ако ништо не е таму, 0.
Или можете да направите оваа малку повеќе визуелното.
Тука е 0.
Нема ништо интересно што се случува на околу задниот дел на мојот телефон.
Но, ако јас се овозможи малку малку на електрична енергија да тече,
иако тоа е малку светла овде, мојата светилка продолжи.
Па јас сум складирање полнење и ergo, овој телефон сега претставува 1.
Значи 0: 1.
>> Така е и со 1 iPhone колку високо може јас смета со користење на овој вид на пристап?
Мислам на 1.
Тоа не е сè што привлечни.
Па што повеќе можеме да направиме?
Па ајде да видиме, е некој на нивната телефон во моментов, кои би можел да ги позајмите?
Секој кој има телефон со фенерче изградена во?
Може ли да позајмите?
Мене не ми треба тоа отклучи.
Во ред.
Ти благодарам.
Дозволете ми да позајмуваат ова.
Во ред.
Значи, ако јас сега се движите нагоре и тука, она што сум јас претставува сега?
Да.
Така, тоа е три, бидејќи тоа е во 1S колона, ова е во 2S колона.
Значи 1 плус 2 е 3.
А потоа, ако ние се обидуваме да се добие навистина creative-- Ох, ти благодарам.
Многу превентивни.
Во ред.
Јас сега имаат три iPhone.
Во ред.
>> И сега this-- јас нема направи повеќе отколку ова.
Што сум јас претставува сега?
Само седум.
Но ми требаше физички повеќе меморија во овој случај.
Но, тоа е се што е.
Можете да мислам на она што се случува on-- благодарам you-- внатрешноста на вашиот телефон
како само да се биде прекинувач кој е се вклучен и исклучен.
>> И ако некогаш сте слушнале зборот транзистор.
Или ако некогаш сте слушнале маркетинг зборува Интел внатре,
кој се зборува за вид на хардвер тоа е во внатрешноста на вашиот компјутер.
Интел го прави процесори, централни процесорски единици,
кои се како мозокот во внатрешноста на вашиот компјутер.
И овие процесори и работи што се поврзани
да има многу, многу мали прекинувачи.
Милиони, милијарди прекинувачи дека може да биде вклучен или исклучен.
>> Значи компјутери, за среќа, како и нашите Macs и компјутери,
може да смета начин повисока од 7 или 8 затоа што тие имаат начин повеќе од три
или четири бита.
Начинот на кој повеќе од износот на три рефлектори дека ние само имаше.
Но, сега тоа ќе почне да се прилично неинтересен брзо.
Ако јас сега сакаат да всушност да биде во можност да се направи нешто поинтересно,
Сакам да бидам во можност да скокаат на нешто како ова.
>> Значи ASCII, тоа не е навистина корисна акроним, но Американски стандарден код
за размена на податоци.
Тоа само значи дека, неколку години Пред ние, луѓето одлучи,
Знаеш што, ние сакаме да биде во можност да се направи повеќе компјутери од само броеви.
Ние не ги само сакаат да биде скапо, калкулатори,
ние би сакале да бидат во можност да ги правите нештата како обработка на текст, иако многу едноставно.
Подоцна имавме мејл и други такви медиуми.
>> И така на светот одлучи неколку години Пред според овој систем ASCII,
знаеш што?
Во одредени видови на програми ви било време
види еквивалент на бројот 65, како и моделот на битови.
И ние може да го стори математика овде на табла.
Моделот на битови кои претставуваат 65.
Не мислам на тоа како 65 во децимални.
Сфатете го тоа како арбитрарно, туку на глобално ниво, постојано како главен град
А.
И тогаш светот одлучи, знаеш што?
Да го земеме уште една шема на битови.
И ако ние некогаш сте се види број 66, ајде да
се претпостави дека тоа е капитал Б. Брзо нанапред до H
и јас, ако те видам во 72 или 73, што треба да биде H и I, соодветно.
И така се додека целата светот се согласува на тоа.
Така што кога ќе добиете е-маил, или ќе добиете датотека на USB стик,
или нешто слично кога that-- ќе видите дека шема на битови,
знаеш дека тоа треба да биде ова писмо или друг писмо.
>> Но, тоа е специфичен контекст, во право.
Програма е-мејл може да се протолкува овие работи како ликови,
но графики калкулатор или калкулатор може да претставува или толкување
овие работи, се разбира, како букви.
>> Така да со тоа, рече, брз малку преглед.
Ова е можеби три карактер e-mail и тоа е се испратени до мене.
Под хаубата сето тоа е во 0-ти и 1S, но ние не се грижат.
Ние се случува да започне да се апстрактни над 0-ти и 1S да букви.
И ако видам некој модел на 0-ти и 1S кои навистина претставуваат 72, трага, трага, 73,
а потоа 33, што е пораката?
>> СТУДЕНТСКИ: [Беззвучен]
Дејвид MALAN: Значи, ако мислите Пред назад само еден миг, HI
беше пораката што се обидува да комуницира тука, бидејќи H е 72,
Се е 73, а сега 33-- не би мора да знаете ова однапред,
но излегува дека ако навистина види повеќе на табелата и системот
дека човештвото договорени години пред, тоа е само еден извичник.
И навистина, постои шема на симболи и броеви за секој карактер
дека можете да имате на вашата тастатура.
>> Во ред.
Ајде да се апстрактни понатаму.
Ако ние не сакаме само да се работи како бројки и букви,
ние всушност сакате да се спроведе графика.
Па, ако некогаш сте се слушнаа акроним RGB.
Тоа е вид на датум сега, но тоа е уште вид на таму.
RGB е црвена, зелена, сина.
И тоа е само систем да се каже, знаеш што,
ајде да го користат три сета на битови.
А во собата на 8 бита, друг сет од 8 битови и уште еден сет од 8 бита.
И ајде да ги користат овие битови за да ја запази колку црвена ние
сакате на вашиот екран, колку зелена сакаме на вашиот екран,
и колку сини сакаме на вашиот екран.
И тоа само значи дека ако имаат lot-- голем број за црвено,
тоа значи дека ми даде многу на црвено.
Ако имаш голем број за зелена, ми даде многу зелени.
И ако имате само малку на сина или мал број како 33,
дај ми малку сино.
И ако се случи да се комбинираат тие три величини, така да се каже,
ќе го добиете this-- вие одвај може да се види на проекторот тука, но овој лигави
сенката на кафеава или жолта.
>> Но, тоа е да се каже, користејќи го модел на 8 8 плус плус плус 8--
тој модел од 24 бита е како компјутер би
продавница, во којашто нијанса на жолта во една мала точка на пиксели на екранот.
Значи ние сме поминале од 0-ти и 1S да децимални броеви на букви од азбуката.
Или повеќе интересни, обоени точки.
>> Па, што се разбира, тогаш доаѓа следно?
Па, она што е на сликата што ќе види на Фејсбук или се во е-мејл?
Или слично?
Што е дефиниција технички карактеристики на сликата?
Да.
Она што е на сликата составена од ако изгледа навистина во близина на екран?
Да.
Тоа е само еден куп на пиксели.
Всушност, ако земете лаптоп можеби подоцна,
и изгледа навистина тесно во зависност it--
за тоа како скапи лаптоп е и како висок квалитет на екранот е,
вие многу добро може да се видат сите на малку точки на екранот.
>> И оние точки или пиксели, што значи дека е
24 бита претставува секој пиксел во тој фотографија која ја гледате на Фејсбук,
или која што ја презеде на вашиот iPhone во последно време.
И така тоа е како ние се за да работи како графика.
Па, што е видео?
А видео е само збир на графики летаат од екранот повторно
и повторно и повторно.
И така, видео клипови, навистина, се само модели на битови што претставува мрежи, редови
и колони на точки, летање со сликата на екранот,
по слика, по слика, a.k.a.
Подвижните слики.
Значи тоа е тоа за влезови и излези.
>> Сите ние треба сега е претпоставката дека, ќе
Знаеш што, ако сакаме компјутер да претставуваат информации,
имаме систем за тоа го правам.
Ние можеме да го направи тоа со 0-ти и 1S на крајот на денот.
Но, ние може да се апстрактни, па да се каже, згора на тоа
за да ги претставува повеќе интересни работи.
И тука на надвор во CS50, и во компјутерски науки поопшто,
Сега стоиме на рамениците на сите луѓе кои
дојдоа пред нас кои сфатиле дека надвор.
И сега само да се претпостави дека компјутерите може да претставува влезови и излези.
>> Но, сега ајде да всушност направи нешто со нив.
Значи алгоритам е само збир на инструкции, чекор по чекор,
за решавање на некој проблем.
И она што може да биде еден таков проблем.
Значи ова е старата школа технологија, телефон книга.
И во внатрешноста на телефонот книга е целиот куп на имиња и броеви.
И тие имиња обично се сортирани по азбучен ред.
>> Значи, ако сакав да се најде некој во овој телефон книга како Мајк Смит,
што е типичен човечки случува да направам?
Па, можете едноставно може да се отвори го, да се погледне на првата страница.
Јас не гледам Мајк Смит.
Се сврти кон втората страница, Јас не гледам Мајк Смит.
И само продолжувам да одам и да оди.
Дали е тоа чекор по чекор точно?
Да.
Тоа е вид на глупави, нели.
Тоа е неефикасно, во право.
Поради тоа што се случува да се засекогаш да се дојде до Мајк, но тоа е точно.
Затоа што ако Мајк е тука Јас навистина ќе го најде.
>> Значи она што е малку повеќе разумен човек ќе го направи?
Тие се уште може да се отвори на предната страна, а можеби и лета преку телефон книга
две страници во исто време.
Два, четири, шест, осум.
Јас всушност не можат да физички го прават многу добро.
Но, во теорија, ова треба да биде два пати толку брзо, две страни во исто време.
Дали овој алгоритам е точна?
>> СТУДЕНТСКИ: [Беззвучен]
Дејвид MALAN: Не е задолжително.
Добро.
Зошто тоа протест?
>> СТУДЕНТСКИ: Затоа што може да биде на еден од страниците што сте скокнеш.
Дејвид MALAN: Да.
Па дури и ако јас се поблиску и поблиску.
Што ако тој е само случајно, од страна на лошите среќа, во сендвич меѓу две страни
дека јас сум летање во текот?
Значи ние треба фикс за ова.
Ние, всушност, треба да се потоа да се каже, почекајте една минута,
Можеби ако одиме предалеку, можеби ако се погоди делот T,
Т доаѓа по Смит, тогаш треба да најмалку двојно назад барем една страница.
Значи исправиме, но постои условна прашање таму.
Така, тоа е два пати толку брзо, но може да се мора да го удвојат назад само малку.
Но, никој во неговата соба, дури и ако навистина не го користите телефонот книги повеќе,
се случува да започне на почетокот.
Што ќе правиш во потрага по Мајк Смит?
Ви се случува да одат околу на С.
Или, ако навистина не треба измамник лист на хартија,
ви се случува да одат најмалку приближно до средината.
И, секако, да не На предната страна од книгата.
Ви се случува да се погледне надолу.
И математички најверојатно, случува да се види секцијата М, која
е приближно во средината.
А потоа ви се случува да се реализира, она што е вистина?
Каде е Мајк?
>> СТУДЕНТСКИ: [Беззвучен]
Дејвид MALAN: Да.
Па тој е повеќе на оваа страна.
И така она што можете да направите?
Па, и фигуративно и буквално може да ви го уништи проблемот на половина одеднаш?
И тогаш знаете дека може да се фрли Ова полувреме и на проблемот далеку.
И сега ние сме оставени со фундаментално истиот проблем, но тоа е половина како голем.
И така сега, она што е збир на упатства?
Што е алгоритам за пронаоѓање на Мајк Смит?
Тоа е иста работа.
>> Сега тоа се случува да биде M дел и тоа е дел од Z,
но основните формула се уште е иста.
Оди приближно на средината, се погледне надолу, ох, ебам тоа.
Сега сум во делот Т, Сум отишол предалеку.
Но, тука може да ви примени истата логика.
Фрли половина од проблемот далеку и сега сме
остави со проблемот што е една четвртина од големината.
И ние може да се повтори, а ние може да се повтори, а ние може да го повтори до теоретски
таму е оставена само една страница кој Мајк или е или не е.
>> Значи она што е толку моќна за оваа идеја?
Мислам, на крајот на краиштата, тоа е прилично интуитивна.
Никој не се случува да се започне во почетокот на телефонскиот именик
и флип 1.000 страници за да најдат Мајк Смит.
Повеќето секој во оваа соба ќе да се направи околу тој вид на алгоритам
освен за кинење.
>> И така, зошто го правиме тоа?
Па, да се разгледа на ефикасноста.
Размислете само колку подобро ова алгоритам е за тоа рушење
неговите составни делови.
Значи она што јас прв пат да направам?
Јас зедов телефонот книга.
И компјутерски научник, и програмер,
поопшто излегува, се случува да почнат да бројат сè во 0.
>> Зошто?
Па, тоа е малку чудно дека ние, луѓето се брои, генерално,
почнувајќи од еден.
Затоа што е најмал број ние јасно може да претставува врз
дури и на нашите стари основно училиште математика?
Па, тоа е 0, без разлика дали тоа е во децимална или во бинарна.
И така ќе ја видиш во светот на компјутери и програмирање,
конкретно, ние започнуваме сметајќи сè, од 0.
>> Па јас зедов книгата чекор телефонот 0.
Одам да се отвори на средината на телефонот книга.
И тоа е навистина израз на она што го направив.
А потоа чекор два беше поглед на имиња.
Чекор три е малку различни концептуално.
Јас сум си поставување на прашање.
Ако Смит е меѓу имињата, Одам да се донесе одлука.
Ако тој е меѓу имињата, тогаш јас ќе одам да се јавите на Мајк.
И јас одам да се донесе одлука врз основа на таа информација.
>> Меѓутоа, ако не, ако Смит е порано во книгата на лево,
Одам да се отвори во средината на левата половина од книгата.
А потоа, тука е мудрост, Одам да се вратите на чекор два.
Одам да се најде решение на да застане на свои рамења
и само се повторува досегашната работа што го направив.
Но, работата ми остана е помалку, и помалку, и помалку.
Но, тоа е се уште оди на работа.
Но, ако Мајк, наместо тоа, е подоцна во книгата на правото,
Одам да се отвори во средината на десната половина од книгата,
а потоа вратете се на чекор два.
>> Но, таму е всушност четвртото сценарио.
Мајк или тука, или тука или тука, or--
>> СТУДЕНТСКИ: Не е таму.
Дејвид MALAN: Не е таму.
И, навистина, ако ние не се очекуваат оваа четврта и последна сценарио
нашата програма може да биде кабриолет или недостатоци на некој начин.
Друго, се повлече во случај не сме пронашле Мајк на сите.
И навистина, ако некогаш сте забележале вашиот компјутер виси, или сите
Одеднаш збор или некој друг програма е само поднесе оставка неочекувано,
а понекогаш те грешка порака буквално е тоа.
Оваа програма се откажат од неочекувано.
Тоа може да биде за било кој број на причини.
Но понекогаш тоа е нешто толку едноставно како ова.
Човечкиот програмер кој напиша дека софтверот
не се свесни дека, ох, постои назад нешто што всушност може да се случи.
И ако не се напише кодот за фати дека четвртото сценарио,
тоа е навистина неочекуван понекогаш што всушност може да се направи на компјутерот.
Сега ајде да ја довикувам неколку од овие работи.
Значи во жолта тука, ја истакнаа услови
дека сега па натаму ние сме само да се јавите функции.
Функции во светот на програмирање се исто како и активности,
изјавите на акции.
Па ги собереш, се отворени, погледнете на, јавете се отворени, отворен, се повлече.
Тоа е функција, постапка, акција, било кој број на синоними
ќе работат како добро.
Сега, она што се тие нешта во жолта?
Ако друг, ако друго, ако друго, тие се она што
ние ќе треба да се јавите услови за програмирање,
или гранки, одлуката поени, ако сакате.
Но, како знаеш која вилушка на патот, да се земе, така да се каже?
Ние треба да се потенцира условите на правото
таму, кои се тие Да, без прашања.
Овие точно неточно прашања.
Смит е најпопуларно име?
Смит претходно во книгата?
Смит подоцна во книгата?
Ова се прашања кои треба да што постои е да, или не,
или еквивалентно точно или неточно, или еквивалентно, еден или нула одговор.
>> А во меѓувреме има само едно последно парче.
Ова овде има каков вид на ефект?
Без разлика дали сте програма или не пред, како ќе се
се опише она што чекор седум и 10 се прави?
Што рече?
СТУДЕНТСКИ: рекурзивен чекор.
Дејвид MALAN: рекурзивен чекор.
Да, во суштина.
Тоа е технички итеративен тука, ако сте запознаени.
Но, ние ќе се вратам на тоа.
Но, тоа се прави нешто јасно.
Повторно, тоа е поттикнување на циклус, циклус, во право.
Вие сте буквално ќе се вратам на некои претходно чекор.
И така, навистина, ова ќе се спроведување на некои вид на циклус.
Но вие не се случува да се добие заглавен во оваа бескрајно, нели.
Затоа што ако сте постојано проверување е Мајк тука, или на лево, или не е тука,
На крај, тој нема да биде таму.
И вие само може да се повлече заедно како на кој последната линија.
>> Значи тоа е тоа за речник.
И тоа е она што ние би генерално се јавите pseudocode код.
Тоа не е вистински јазик.
Тоа е само многу кратко англиски јазик, но тој комуницира точка.
Нема формална структура овде.
Само го користите тоа е неколку зборови, туку како јасни зборови
како што може да се комуницира вашата идеја.
>> Сега колку е добар е тој алгоритам и колку што е подобро?
Па, ние не треба да се влезе во спецификите на броеви или ништо
како тоа.
Но, ние може да се погледне на облик на ова решение.
Значи, ако ние само се подготви некои xy заговор тука на хоризонталната оска овде.
Ајде да се јавите на големината на проблемот.
И компјутерски научник би обично користат n како променлива овде.
Така n страници, или n луѓе во соба, или што и да е што се обидуваш да се брои.
>> А потоа на вертикалната оска на лево, тоа ќе биде време да се реши.
Па, уште колку секунди го прави тоа ме однесе да се најде Мајк Смит?
Или колку чекори е потребно?
Колку страница се врти е потребно?
Значи тоа е тоа колку чини ми во време за да се реши проблемот.
И ние може да се подготви првиот алгоритми патека, ако сакате,
како само оваа права линија во црвена боја.
И јас ќе го наречеме n.
>> Зошто n?
Зошто е тоа само еден на една врска?
Па, ако Веризон или без оглед на телефон на компанијата
додава уште една страна на телефонот книга следната година,
кои би можеле да им помогнам на Мајк еден повеќе чекор поблиску до крајот,
во зависност од каде што таа страница е.
И така ефектот може само биде за да додадете уште една секунда.
Или уште една страница пресврт.
Еден до еден преносен однос.
>> Спротивно на тоа, вториот алгоритам.
Колку побрзо беше дека интуитивно?
Каде што одев на две страници во исто време?
Да.
>> СТУДЕНТСКИ: [Беззвучен]
>> Дејвид MALAN: Да.
Значи тоа се случува да биде двапати побрзо.
И ние ќе привлече дека тука во зависност од обемот.
Тоа, сепак, е права линија, но помала од црвената линија.
Бидејќи за некои број на страници, и ако е потребно
Вие сте овој многу чекори со првиот алгоритам,
тоа се случува да се земе половина како многу чекори со второто.
И така на жолта линија опишувајќи вториот алгоритам
е само ќе биде под него.
>> Но она што е навистина моќна е да се мислам за третата и последна,
и неверојатно повеќето интуитивен алгоритам, која ја има оваа форма.
Технички ние би го нарекол ова логаритамска крива.
Логаритам со основа 2 од N во овој случај.
Но, тоа не е важно.
Она што е навистина е суштински различна форма дека го има.
И може да се сметаат само како многу пократок оваа линија навистина
е во долг рок.
Тоа е постојано се зголемува.
Тоа не ја израмните надвор совршено.
Но, тоа расте некогаш толку многу побавно како проблем добива се поголем и поголем.
И можете да мислам дека на овој way-- ако Веризон не само
додадете една страница следната година, но двојки бројот на страници во книгата на телефонот,
првиот алгоритам би можеле да се двојно повеќе чекори.
Ако тоа е 1.000 страници овој година, 2.000 страници следната година,
Мајк може да биде дека многу подалеку.
Така, тоа е 1.000 дополнителни чекори за да го најдете.
Вториот алгоритам може да биде само уште 500
чекори за да го најдат, бидејќи повторно, Јас сум летање низ него две во исто време.
>> Но, она што за третата алгоритам?
Ако Веризон удвојува големината на телефонот книга
следната година од 1000 до 2000 година страници, колку повеќе чекори
е мојот трет алгоритам случува да се земе?
Да, тоа е само еден.
И тоа е моќна идеја.
Можете да ги преземат 1.000 страница залак од тој проблем одеднаш.
И сега ако се земе предвид глупо сценарио,
но тој вид на зборува за сила на овој вид на intuition--
ако телефонот книга има, како, четири милијарди страници, се чувствува како навистина голем проблем.
И навистина, тоа би можело да ме однесе четири милијарди страница
се врти да се најде Мајк Смит во тој случајот со првиот алгоритам.
Но, колку чекори ќе го земе во третиот алгоритам
да се најде Мајк меѓу четирите милијарди парчиња хартија?
Значи четири милијарди те парчосала половина.
Добивате две милијарди долари.
Потоа една милијарда 500 милиони евра, 250 милиони, 125 million-- но тоа
се чувствува како оваа е случува да се земе некое време.
Јас би можеле да треба 32 прсти да брои до толку висока.
Но, тоа е навистина како неколку, како што 32 солзи страница.
Можете да одат од четири милијарди долари за една страница на поделба
на оригиналниот број на страници на половина 32 пати
додека ти си замина со само дека една страница.
>> Сега, се разбира, јас сум мамење тука.
Тоа не е дека ние сме само се вид глупави целосно со првите два
алгоритми.
Јас сум мамење, во некоја смисла, или навистина сум проширува претпоставка.
Што е вистина, за книгата на телефонот во својата оригинална форма што е дозволено
ми да дури и се користи таа трета алгоритам?
Да?
ПУБЛИКАТА: Тоа беше азбучном реду.
Дејвид MALAN: Тоа беше азбучном реду, нели?
Ако беше само во случајни ред, ова е отпадот
на време, целиот овој разговор.
Морам да се погледне во секој страница, ако тоа е во случаен редослед
да се најде Мајк Смит пред да може да се заклучи дека тој е таму или не.
И така ние агол ги намалија е дека имам
претпоставува дека некој друг во овој случај го сторивме на работа за мене.
И, така што на крајот покани на прашањето, добро, почекајте една минута.
Како да се најде решение за 1000 страници со имиња и броеви?
Тоа е, всушност, различни проблем, нешто
ние ќе се вратам на во иднина.
Но, кога ќе се размислува за веб-сајтови како што се Фејсбук и Google за Gmail
и работи како на Google сопствена индекси за пребарување,
кога ќе имаат милиони или милијарди делови на податоци се чуваат овие денови,
searching--, а не да се спомене сортирање оние problems--
во крајна линија е предизвик сам по себе.
И навистина, ова е тогаш само еден од тие предизвици
дека ние ќе се гледа во.
>> Па сега ајде да се земе еден миг и да ги разгледаме во CS50
себе и да ви даде чувство на она што е во продавница за овој семестар.
Всушност, ако веќе не сте, да ги разгледаме во овој URL-то.
И како Патрик алудираше да, оваа година ние сме
правење на значителни инвестиции сите повеќе во поддршка на курсот
структура во однос на TAS и CAS, работното време,
делови достапност, како и дигитални материјали на интернет, како и.
Навистина, во однос на курсот предавање, ние сме тука и денес.
И очекувањата на оваа година и официјално на курсот
се посетуваат до денес, на курсот последното предавање, и се разбира
приближно во средината на семестарот со секој предавање помеѓу
ставени на располагање генерално Во петок попладне
интернет, и за Јеил студенти и Харвард студенти оваа година.
Всушност, една од фундаментални промени е
дека ние сме донесување на Харвард парадигма многу
како што ни остана тука минатата година, а сега оваа година,
така што на сличен начин, ние се уште се снимаат повеќето на предавања на курсот во Кембриџ
но да ги направи достапни на почетокот отколку што имаме во минатото
така што оние на you-- ако би сакал да, на пример,
добие раководител на проектот на материјали на првиот викенд, а
од вториот викенд, ќе треба пристап до овие видови на материјали,
пребарува, приклучок, hyperlinkable да се поврзани со ресурсите на сите претходно.
Во поглед на темите, да ви даде чувство на trajectory-- на курсот
а некои од ова може да биде жаргон за сега, но не за долго, да бидат сигурни.
Ќе почнете денес, во крајна линија, со гледа во еден програмирање
јазик наречен Scratch.
Ќе транзиција потоа следната недела да се нешто што се нарекува C
а потоа се гледа во друга зграда блокови за решавање на проблемите,
нешта наречени низи и алгоритми, како ние ги користиме меморија за нашата предност
и недостаток, и работи како структури на податоци,
а потоа кон крајот на опашката на класа гледа во машина за учење
и да гледа во друг јазикот се нарекува Пајтон,
како веб-работи, како на интернет повеќе генерално работи, протоколи како HTTP,
јазици за бази на податоци како SQL, JavaScript за веб,
и на крајот врзување сите тие заедно.
>> И така навистина, во крајот на денот, можете
не ќе дознаете во оваа класа на гребење или C или Пајтон или SQL или JavaScript.
Вие наместо тоа ќе поопшто научат компјутерски науки и фондации
од него, и ќе научат како да програма
во било кој број од овие јазици на патот.
Па навистина, една од целите на курсот на крајот
е да ги исклучите сите на курсот обука тркала од страна на оние последните недели
така што по ова, можете да враќањето на вашата fields--
без разлика дали тоа е или не се компјутерски науки
или инженеринг, во природна науката, уметноста, економијата, или beyond--
и донесе некои од овие идеи разбира и ова поле не е
идеи и практични вештини за да вашиот домен
со цел да се решат проблемите во него.
>> Што ќе се прави тука во меѓувреме во повеќето четврток по денешната
е со шефовите на курсот што води она што ние ќе го наречеме walkthroughs
на проблем поставува на курсот.
Значи секоја недела, кога да поставите проблем, ние ќе
се шетаат низ на локација вака предизвици на курсот,
ви нудиме неколку совети и трикови и техники за дизајн.
Но, ако не сте во можност да се направи оние во лице,
реализација на тие исти ресурси ќе бидат вградени
од страна на еден од курсот асистенти
во проблемот поставува себе, како и.
>> Проблемот поставува оваа година, за разлика од минатата година, врз основа на повратните информации,
се уште ќе биде објавен во петок.
Но, наместо да се должи последователните Петок,
тоа ви дава само седум дена, ефикасно ќе се должи 10 дена подоцна.
И навистина, тоа ќе значи дека тие ќе се преклопуваат викенд.
Но, ние се надеваме дека оваа година особено ова ќе
им овозможи на студентите да се подготват подобро одлив и прилив во своите редови,
без разлика дали е или академици extracurriculars или атлетика
или среднорочни сезона.
Можете или да се пред-товарот или назад-оптоварување вашиот недела се фокусира на CS50 врз
на реалните разбира свој недела товар.
>> Проблемот поставува себе ќе ги покрие голем број на јазици,
иако ние ќе се фокусираме претежно на почетокот на C
пред да се фокусира потоа на повисока ниво, повеќе веб-оддалечиме јазици.
А потоа неколку Најчесто поставувани прашања here-- треба да се земе една класа како CS50
како прва година?
Значи апсолутно.
И навистина, тоа не е нужно нешто
треба да се одложи се додека не сте ги намали забите на други видови на класи.
Но, наместо тоа, да се разгледа дека за многу студенти,
вклучувајќи ме и мене во тоа време, ова е многу запознаени поле,
особено ако никогаш не ги АП АДС
или нешто слично во средно училиште.
Но сфати дека на почетокот на, без разлика дали е овој курс
или некој друг воведен курс, сега е навистина најдобро време,
Мислам, да се најде некој нов пат или некои нови академски интерес, како и.
А потоа земајќи со други courses-- така еден од клучните разлики тука
наспроти Харвард е само дека ние преземе четирите предмети за семестар
на Харвард поради некоја причина.
А вие момци всушност се повлече и некои 36 курсеви во вкупно
во текот на четири вашите години, што значи дека, генерално, четири или пет
класи.
И јас мислам дека тоа е прилично фер да се каже и да се огради од CS50, од ​​дизајн,
веројатно не е тип на класа дека треба да обично
се со уште четири други курсеви за вкупно од пет
бидејќи psets се со дизајн прилично интензивна.
Всушност, јас научив ова назад во текот на денот.
Јас не би ја опишале CS50 и компјутерски науки, програмирање
како толку тешко како што е само одземаат многу време.
Тоа не е вид на нешто каде што по вечера,
да се вратиш на вашиот дом соба, седни, и да почне
фокусирајќи се на pset размислување, во ред,
Јас сум ќе тресне ова вечерва, а потоа се движи
на до мојата следна тема на следниот ден.
Понекогаш едноставно удри во ѕид.
Може да има грешки во вашиот код.
Вие не мора да знаете како да се реши некој проблем.
И една од клучните карактеристики на Програмирање за себе на овој ден
е само вид на треба да се еден чекор назад, понекогаш, спиеме
или мислите дека за тоа во текот на бутване или некоја друга активност,
а потоа се врати да го свежо.
А вие само треба овие прозорци на време.
>> И навистина, тоа е причината зошто ние сме издолжени на износот на време
достапни за проблем сетови оваа година и, исто така, на оваа адреса
Ја ставив до претходно да се она што е ново овој семестар,
исечените проблемот поставува така што тие се во основа не помалку ригорозни,
и takeaways не се помалку, но има многу помалку пред материја,
многу помалку подготвителна работа што треба да се направи во предниот дел на секој проблем во собата,
како што ќе видиме, пред да може да всушност да се избањаат во месото од него.
Така да сфатат дека овие и други промени се на хоризонтот
подобро да се приспособат на студентите, но на крајот да бидете сигурни дека
дека takeaways се навистина високо како е можно.
Така, додека повеќе работа отколку што Може да биде во типичен класа,
ние се надеваме дека се враќа за Вие и takeaways за вас
и вештини и идеи со која ќе излезете
сите се повеќе привлечни, како резултат.
И за да го there-- и ова е еден од клучните takeaways,
како Патрик алудираше earlier-- е структура за поддршка на курсот.
Затоа, не само што CS50 има еден од најголемиот штабови текот на кампусот.
Таа, исто така има една од Повеќето додипломски.
Всушност, CS50 минатата година беше прва класа
да имаат додипломски наставниот кадар.
И доказ за тој успех се направи сега и многу други предмети во рамките на Јеил CS
го имаат тоа, како и.
И за студентите, посебно, ќе се овие TAS и се разбира асистенти
биде поддршка во целина мрежата на поддршка на ресурси,
меѓу нив делови или рецитали, недела можности
да има повеќе интимни разговори и осврти на материјал насочени
за различни патеки, за студентите помалку удобно, поудобно,
или некаде во средината.
Тие ќе го следат достапноста на на предавања од страна на неколку дена секоја недела
во понеделник и вторник.
И тогаш канцеларија hours-- еден-на-еден можности
за помош од КУД текот и TAS ќе биде во среда и четврток
и во недела на повеќе пати, од кои сите
ќе бидат објавени на веб-страницата на курсот, дури и повеќе од минатата година, како и.
>> Но она што е клучот за CS50, ако Мора да се признае не малку необично,
е култура на курсот е дека се обидовме да му се посветам,
како во Кембриџ за многу години и сега неодамна во Њу Хевн.
И всушност, доаѓа оваа Сабота, ако не сте го слушнале,
е Денот на CS50 мозаик, кој има нема никаква врска со компјутерски науки
но е целосно подготвена да испрати порака дека компјутерски науки е
за решавање на проблемот.
И навистина, ако сакате да се здружат со еден или два или три пријатели
и формирање на тим за CS50 Загатка ден, да погледнам
на недвижности, кои се на пат надвор.
И три часа на пица и загатки и награди чекаат на вас.
И навистина, за прв пат оваа година,
тоа нема да се одржат заедно со Харвард.
Тоа ќе биде тука независно на Јеил.
Па да се внимава од за тие, ако не го имаат.
Повеќето секој петок во семестар дали се обидуваме да се направи голема класа
се чувствуваат мали и донесе некои 50 студенти на ручек со персоналот на курсот,
со алумни, пријатели од индустријата да се зборува
за тоа што животот е како по CS50 класа како и во текот на летото
и по дипломирањето.
Па да се внимава од за се поканети да учествуваат.
За прв пат кога и да е ќе можеме да научиме
се одржи првиот CS50 кодирање натпревар, изборен можност тргнете во
средината на семестарот, по сите од нас имале околу шест или седум недели на програмирање
во C под ременот да се натпреваруваат, ако така би choose-- повторно
на teams-- се обидува да реши што е многу предизвици
како што можете да во програмирање со пријатели на твое против други.
>> И кон опашката на семестарот ќе можеме чартер некои автобуси,
всушност, поминете некое време во Кембриџ, ако сакате
да ни се придружите, за т.н. CS50 хакатон.
Во 7 часот ќе започне.
Околу 9 часот, ќе имаме пица.
Околу 1:00 часот, ќе имаме Тунел.
И некој се уште буден на возењето со автобус дома околу 5:00 часот,
ќе застанам за палачинки во IHOP на патот home--
можност за 12-часовен да се потопи се со соучениците на персоналот
во финалниот проект на курсот, што е можност
да се оди многу подалеку од проблем поставува курсот
и дизајн и имплементација повеќето нешто од интерес за вас,
што на крајот ќе биде опремен тука во Долниот дом.
Првиот CS50 фер последен година, изложба на крајот на семестарот
или прослава на она што сите во класа се оствари,
особено оние, пак, кои одеа од ништо нешто, од нула до 60,
без претходна позадина и излагање, во крајна линија,
нешто за целиот кампус и, ако на интернет, на светот да види, како и.
>> Сега, овие тука се само неколку од TAS и CAS што го прави CS50 е можно.
Дозволете ми да ја покани секоја на оние членови на персоналот
кои се тука за да излезе на сцената, како и шефовите на курсот,
да им понуди на некои зборови на инспирација, како и.
>> АНДИ: Здраво, момци.
Може да ви момци ме слушаш?
Ви благодариме за приклучувањето на овој убава, дождливо во четвртокот попладне.
Моето име е Анди.
Јас сум помлад во Беркли.
И заедно со Стелиос и лето, ние ќе ви биде три главата настава
асистенти за оваа претстојните година.
Па, претпоставувам, шоу на hands-- колку од вас
немаат намера да биде CS големи ниту пак навистина длабоко нуркање
во компјутерски науки, како еден од главните тука?
Страшни.
Тоа е брилијантна.
>> Затоа, јас сум всушност глобалните прашања и когнитивните науки големи.
Јас буквално се дојде до Јеил со намера
на никогаш не морале да се погледне во број некогаш повторно во мојот живот.
Кога дојдов во Јеил, ова беше нешто што никогаш не беше на мојот радар.
Сакав да научат за поезија.
Сакав да се запознаат со меѓународните односи.
Сакав да се запознаат со акварел цртежи.
Да, ние нудиме класа на акварел цртежи.
>> Но јас никогаш не бил заинтересиран во нешто Матични поврзани.
Но, тогаш на постари јас имаме, толку повеќе сфатив
дека секое поле навистина во некои смисла вработува компјутерски науки,
или ако не се компјутерски науки, пресметка.
Всушност, за мојот глобална работи највисок премин проект,
ние сме со користење податоци и анализатор да ги анализираат терористичките напади
за Боко Харам во Нигерија.
И така, како што можете да видите, без оглед на она што големите ќе се заокружи на извршување
или она што вашите интереси тука во Јеил се, програмирање и фондации
на она што вештини се супер корисни.
И CS50 навистина е добро опремени за вид дадат многу од своите ресурси
за вас, без оглед на колку удобно си
или Колку сте заинтересирани во спроведувањето на класа.
>> Лето се случува да се зборува малку малку за она што вие момци се
ќе учат за оваа година.
Лето: Здраво на сите.
Јас сум лето Ву.
Јас сум помлад во Морс.
И јас всушност започна како CS50 си студент.
Значи пред три години, јас бев на празнина година.
Јас никогаш не би презеле CS класа во средно училиште,
но мислев дека во слободното време, тоа би било кул да се научат како да се код.
Па јас не брзо пребарување на Google, погледна за она што е достапна на интернет,
и го виде ова видео со Muppets и диџеи и кул веб-сајтови.
Јас бев како, сакам да да научат како да го направи тоа.
>> Земав разбира, и јас само падна во љубов со неа.
Но, се сеќавам дека бев толку љубоморен на деца кои можеше да присуствува на хакатон,
присуствуваат мозаик ден, да присуствуваат на канцеларија часа, да добијат помош од TAS во лице.
И така јас никогаш не замислував дека јас би го добиете шанса
да се биде овде се вклучени во се разбира дека прво мора
ме интересира во компјутер наука и е причината зошто
Јас сум компјутерски науки големи денес.
Па јас ќе те предупредам, оваа класа ќе ви се водат.
Тоа се случува да ви предизвик.
Но, тоа, исто така, се случува да се ве научи како да се прават работите
дека никогаш не замислував може.
>> Стелиос: Здраво, сите.
Моето име е Стелиос.
Јас сум помлад во Branford Академијата, како и голем CS.
Јас сум исто така и од Атина, Грција.
Јас сум навистина со нетрпение очекувам за исполнување на сите вас,
во разговор со вас во дел, во работното време, во петок ручеци.
Јас сум навистина возбуден поради ние се стави толку многу напор
во создавањето на еден уникатен поддршка структура за сите вас,
да се направи вашето искуство со текот на најдобар можен.
И се надевам дека иако повеќето од најверојатно не презеле CS
се разбира пред да, се надевам дека тоа е CS50 за вас е она што го прави љубопитен
и понатаму да ги извршуваат компјутер науката и во иднина,
како што е направено со толку многу луѓе во минатото.
Па ви се заблагодарам за се тука, возбуден да те видам.
Џејсон Hirschhorn.
Џејсон Hirschhorn: Здраво на сите.
Моето име е Џејсон Hirschhorn.
Јас живеам во Силимен.
И јас отидов на Харвард како undergrad и влади во социјални студии
и minored во компјутерската наука.
И еден од моите главни улоги тука е да се поддржи овој прекрасен кадар
како што сите што поддржуваат.
Всушност, ова не е за сите од нив.
Постојат 55 студенти и дипломирани студенти тука за сите да ве поддржи.
И ако смеам еден од најдобрите делови на курсот за вас
сите е добивање на работа со нив, да успеат да ги знаете,
успеат да ги види, и во CS50 и надвор од CS50 овој семестар
и за многу семестри да дојде.
Па се надевам дека ќе ги преземе Се разбира, бидејќи се надевам дека
добиете за да комуницирате со прекрасен кадар имаме на сцената.
>> Говорник: Па, дозволете ми да завршам велејќи дека ќе биде забавно.
Дејвид MALAN: Па, благодарение на целиот наш тим.
Дозволете ми да го придуши го светла и им овозможи на некои повеќе од нашиот тим,
и двајцата од Кембриџ и Њу Хевн, за да се поздрави како овие момци поднесе надвор.
И после тоа ќе се премине прв од нашите програмски ангажмани
со овој јазик наречен Scratch.
Значи, благодарение на тимот.
Ајде да се придуши го светла и се слушне од уште неколку други.
>> [Аплауз]
>> [Видео репродукција]
>> -На Мисија на CS50 е да го направам поудобно со сосема нов начин
на размислување, ова компјутерската начин на размислување.
-Тоа Направи компјутерски науки интересно, кои
е нешто што навистина не сфаќаат е можно се додека не го зеде класа.
-Јас Бев како, Стој.
Јас сум навистина преведување моите мисли во компјутер во моментов.
>> Магнус ако не имате било какви позадина по компјутерски науки или никакво искуство,
всушност ова е класа за вас.
>> -Па Дефинитивно сакам моите студенти да се само
се возбудувам за компјутерски науки.
Не само за програмирање, но размислува како компјутерски научник
е она што сакам да го се обиде да ги научам моите Новак.
>> -CS50 Е тешко и наградува.
>> -An Искуство.
>> -Extravaganza.
>> -Тоа Е доведување нас да на следното ниво.
>> [Музички]
>> -На TFS се, мислам, извор на енергија на курсот.
>> -I'm Возбуден за да имаат моите студенти Помагам
имаат тоа аха момент да се реализира она што тие всушност се обидува
да се направи, да дознаам како да се направи pset.
>> -CS50 Е дефинитивно тешко се разбира.
Но, за разлика од било кој друг Се разбира навистина во Јеил,
има толку голем, поддршка на заедницата.
Ти можеш апсолутно не треба да се знае ништо
за кодирање за да може да ги преземат разбира.
-Тоа Е неверојатно да се види колку далеку луѓето доаѓаат во еден семестар.
>> -Вие Не се сами седи во вашата соба за учење на кодот,
но тоа беше повеќе од само една класа.
Тоа беше едно искуство.
-На Најдобар начин да се научат концепти и за обработка на нив е со настава други.
>> -Што Е телефонскиот Сплит?
>> [Музички]
>> -И Ова е CS50.
>> [Музички]
>> 'Ова е CS50.
>> -Got Проблем?
солза на половина.
>> [Музички]
>> Фрли го.
>> Дејвид MALAN: Во ред.
Значи, да се tackle-- во малку малку, патем, тоа е
била оваа традиција некоја причина за 10 години
да им служи торта во почетокот и крајот на CS50.
Така да чека на крајот на Денес, во прилог на програми,
ќе има некои торта, како и, и персоналот на курсот за да се поздрави.
транзиција, но сега, ајде на прв од нашите јазици, каде што
ние ќе потроши навистина само една недела и еден проблем во собата на овој домен, гребење.
И ќе најдете ако сте програмиран пред тоа, многу
на идеи и Можностите се запознаени за вас.
Но, ќе најдете дека тоа е забавно на патот
да дознаам што точно како да се преведе некои од идеите што веќе знаете
на овој особено средина навистина импресионира на вашето семејство
и пријателите со вашата работа, која може да одат на интернет, ако така одберете, потоа.
>> И ако немате претходно искуство и се
кај поголем дел од студентите помалку удобно,
да сфатат дека многу од идеите ние само истражени со reality-- работи
како телефон книги и посетеност и така forth-- преведе
прилично убаво со компјутер, но ако не го користите,
Првично, на јазик како ова.
Значи ова е програма напишана на јазик наречен В.
И ние ќе потрошите многу малку период во C, во крајна линија.
Но, шансите се, тоа ќе изгледа малку криптичната за вас на прв поглед.
Всушност, има многу на чудни синтакса, загради, аглести загради,
кадрави загради, наводници, и точка-запирка.
И навистина, ако се нурне во програмирање за прв пат
гледајќи и се обидува да создаде работи вака, искрено, ќе се заглавени, така
толку често во само глупава minutia дека нема ништо
интелектуално интересно во врска со тоа.
>> Но, замислете ако може да се создаде истиот program-- кои,
како може да се вид на заклучиме, веројатно печати "Здраво, свет" на некој начин или други.
Ние можеме да го дестилираат истата идеја во само две мозаик парчиња, ако сакате.
Всушност, гребење Интересно бидејќи тоа е овој графички јазик.
Можете да го повлечете и да го испуштите овие мозаик парчиња што само блокирам
ако тоа го прави логичка смисла да го стори тоа.
И така во нула, ние наскоро ќе видите, ова е
како ќе се спроведе истата програма, со само две мозаик парчиња
дека доста се направи она што велат тие.
>> Но, ќе видиме во само еден миг дека некои од градежни блокови кои ги алудираше
на претходните и уште неколку се сите на крајот се случува да претставува
некои од нашите најрани програми.
Ние сме случува да се работи како functions-- само
активности кои се направи нешто, како да се каже здраво, свет.
Ние ќе мора петелки, работи кои предизвикуваат циклуси
повторно и повторно, само ни се допаѓа пред еден момент со пребарување
Мајк Смит.
Варијабли, како во алгебра, ако имаат X или Y, кои можат да се сместат голем број.
Па, во една програма, вие всушност може да се складираат повеќе од само бројки.
Можете да ги чувате зборови и реченици и графики и други работи уште.
Булова изрази, само questions-- да или не, точно или неточно.
Услови, Донесување на решенија врз основа на нив да / не одговори.
>> А потоа работи како познавач низа и теми и настани
и било кој број на други карактеристики, но, од кои сите
карта многу убаво да се многу пријателски блокови се допаѓа ова.
Ова се случува да биде функција, виолетова загатка парче што само вели
она што нејзиното име is-- во овој случај, велат.
И тогаш често, има бела кутија, кој ви
да напишете или да ја одвлечете некоја вредност во.
И тоа е она што е, генерално, се нарекува аргумент или параметар.
Тоа е начин на менување на стандардно однесување на загатка
парче или функција, така што тоа го прави нешто обичај за вас како да кажеш,
Здраво, свет или здраво, Енди или здраво, Џејсон или некоја друга казна, наместо.
>> Ако сакате да се каже дека lot-- буквално forever--
може да се земе друг загатка парче се нарекува засекогаш
и само во сендвич на двете заедно се допаѓа ова.
И тоа јамка, како на сликата сугерира, значи само да се каже здраво, свет засекогаш,
повторно и повторно и повторно.
Или, ако сакате само да се направи тоа ограничен број на пати, како и 50 пати,
таму ќе биде уште една загатка парче за that-- повтори 50 пати.
>> Во меѓувреме, ако сакате да имаат променлива
во овој јазик ние сме за да си игра со,
можете да го користите портокал блок се допаѓа ова.
И оваа променлива јас произволно наречен i за цел број.
И јас само го постави еднаква на 0.
И така можеби и јас, во овој case-- овој variable--
претставува резултат на некој во играта.
Ти се почне од нула, и секој пат кога ќе направи цел или нешто слично,
ќе добие уште еден момент.
>> Можете да поставувате прашања во Scratch.
Ако можеме да drag and drop мозаик парчиња во еден момент како овој,
можете да поставувате прашања, како, добро, јас помалку од 50?
Можеби ви треба 50 поени за победа.
И така ова ќе биде прашање што ќе побара.
Или, поопшто, ќе може да се каже е x помалку од y,
каде што има две променливи кои се вклучени?
Сега, ова е многу поголем на прв поглед,
но навистина не се сите толку посложени.
>> Ова е само комбинација услови и променливи
и Булова изрази за да се побара три questions-- е x помалку од y?
Ако е така, кажете го тоа.
Велат, x е помалку од y.
Друго, ако x е поголема од y, x друго мора да биде еднаква на y.
И додека со Мајк Смит, имаше четири сценарија, тука
во светот на броеви, x е или помалку од, е поголема од или еднаква на.
Сите имаме три вилиците на патот.
А потоа, тука е познавач мозаик парчиња се допаѓа ова
за нешта како низи, каде сме ќе биде во можност да ја запази информацијата.
Ние ќе се види блокови кои им овозможуваат на ни за спроведување на повеќе теми,
Друга карактеристика што ќе се користи, и потоа, исто така нешто што се нарекува настани.
Но, пред да се дојде до тоа точка и да се создаде уште,
во крајна линија, нашите сопствени мозаик парчиња, ајде
всушност се отвори на самата програма.
>> Значи ова е нула.
Тоа е на располагање во scratch.mit.edu.
И вие сте добредојдени да се игра сега или подоцна, како и.
Ова се случува да биде присутен верзија.
За луѓе кои не се мора да имаат голема интернет,
може да го симнете истиот софтвер, како и.
И таму е навистина само три компоненти на овој софтвер.
На горниот лев агол на на екранот е вид на сцена
дека нула, кои по дефиниција личи на мачка, живее во него.
Тој може да се движат нагоре, надолу, лево и десно и го направи било кој број на други работи,
и може да се погледне било кој број на начини врз основа на костими дека ќе му ја додели на него.
Но, ова е она што ние ќе го нарекуваат самовила, еден вид на карактер.
И може да имаат повеќе ликови, како што наскоро ќе видиме.
>> Во средината се сега сите овие загатка парчиња и овие категории или палети
од него.
Па сега, јас кликна на движење.
И така јас гледам на сите движење поврзани со мозаик парчиња или блокови,
па функциите кои имаат да се направи со се зголемува,
долу, лево, или десно или некоја друга работа.
Но, ако јас кликна на изглед, ќе може да се види нешто како блок да речеме
што сме го виделе пред само еден миг.
И ако јас кликнете на контрола, ќе видите работи, како на повторување и засекогаш
и ако блок кој видовме пред еден миг.
>> И така ќе најдете дека ние само ќе нула
на површината на некои од мозаик парчиња заедно,
но сето тоа е прилично интуитивна и точка и клик.
Всушност, гребење е дизајниран за помладите ученици
да им помогне да даде излез за креативно размислување.
А сепак прекрасно, тоа е прекрасен отскочна штица
точно на идеи, ние ќе треба да истражуваат во C и Python и JavaScript,
исто така.
>> На десната рака, конечно, тука е ова, т.н. скрипти област.
И ова е само празна табла со кои ќе почнат да се напише програма.
И јас ќе се токму тоа.
Сега, јас се случи да знаете каде работите се затоа што сум направил ова неколку пати.
Но, знам дека под категорија Настани,
таму е овој блок here-- кога зелено знаме кликнато.
И ќе забележите ако јас одзумирате и назад во текот тука на сцена,
Нула животи во овој малку правоаголни светот,
врвот на која е зелена знаме и црвена стоп знак.
Така одат и да престане, соодветно.
>> И така она што сакам да го направам кога тоа зелено знаме е кликнато?
Па, дозволете ми да оди на тоа изгледа категорија.
И дозволете ми да оди напред и drag and drop ова.
И ќе забележите веднаш штом ќе се добива блиску, тие се вид на магнетни.
Значи, ако сега јас да одам, тој не се намести заедно убаво и чисто.
И јас одам да се оди напред и да кажете нешто како Здраво, свет
за две секунди.
Дозволете ми да одзумирате и кликнете сега зелено знаме, и да каже, Здраво, светот.
Во ред.
Па тоа е во ред и добро.
Не се сите толку возбудливо.
Ајде да се малку cuter направи.
И знам дека во однапред на задачи што се случува
да дојде и со некои слатки работи како оваа.
Така се игра звук meow додека не се направи.
Па ајде да го направите тоа.
>> [Meow]
>> AW, тоа е симпатична.
И ако јас кликнете на неа again--
>> [Meow]
>> И повторно.
>> [Meow]
>> Но продолжувам да се реанимира Scratch.
Но, можам да го направи подобро од ова.
Зошто не можам само повлечете три од нив.
И сега е три пати симпатична.
>> [Слатко]
>> Добро, всушност, тоа е малку морничаво.
Значи ние треба нешто помеѓу таму.
Ако одам на контрола, како изгледа има всушност е чекање блок.
И така се забележи ако јас лебдат над there-- и дозволете ми да се направи ова малку поголем.
Ако јас лебдиш, тоа се случува да се распарчи на своето место.
Почекај една секунда, почекајте една секунда.
Ајде погоди зелено знаме.
>> [Слатко]
>> Добро, малку повеќе физички, но не се многу ефикасни.
Значи ова е точно, ако мојата програма Целта беше meow три пати.
Но, тоа не е многу добро дизајниран.
Јас вид на намалување на некои ќошиња.
Добив малку мрзливи.
Она што се чувствува like-- што ми се чини да се прави лошо, би рекле?
Да?
Да, во средината на теренот.
ПУБЛИКАТА: Се користи повеќе меморија отколку што ви е потребно да се
затоа што ти си со користење на толку многу различни линија.
Дејвид MALAN: Да, така се повеќе линии.
И тоа не мора да биде меморија, иако тоа би можело да се гледа како на тој начин.
Но, тоа е definitely-- има вишок.
И јас буквално вид влече и падна на исти работи.
И ако вид на extrapolate-- ако тоа не е очигледно here-- добро, како би
Јас meow 30 пати?
Јас би drag and drop, како, повеќе од 30 парови на мозаик парчиња.
И навистина, постои подобар начин.
И видовме подобар начин.
Што би интуитивно да биде подобар начин?
Да, само користење на јамка.
Не копирајте.
И навистина, во секое време на оваа семестар ако почнете
наоѓање на себе си влечење и пуштање, или навистина копирање и вметнување,
опасна навика да се влезе, бидејќи тоа едноставно не е многу одржување.
На пример, ако сакате да го промените звукот на нешто друго,
Морам да го промени сега во три локации, наместо на само еден.
Бидејќи, навистина, ако јас се скрши оваа away-- сум
само ќе го одвојат како тоа.
Дозволете ми да го зграби повтори блок, и потоа кликнете на три, напишете три,
фрли некои од овие далеку од само опуштањето.
И тогаш го забележите не изгледа како тоа се вклопува,
но на магнет, тоа се случува за да се прибере, не само во место
но расте да одговара на обликот.
Па тоа е добро.
И сега, ако јас кликнете на игра.
>> [Слатко]
Многу добро.
Во ред.
И сега тоа е многу лесно да се промени, исто така, бидејќи јас само може да
промени еден број на едно место.
Но, тоа, исто така, не е сето тоа интересно.
Ајде да всушност имаат Нула не meow, но се движат.
Дозволете ми да одам на движење и да се движат 10 чекори во of-- Whoops, дозволете ми да го надминете овој.
Дозволете ми да ја преместите 10 steps-- всушност, да не се повтори.
Дозволете ми да го зграби контрола блок, и направете го следново засекогаш.
Засекогаш, се движат од 10 чекори.
И кликнете Play.
>> ДОБРО.
Па за среќа, тој ќе престане.
Инаку, децата ќе добијат многу вознемирени кога тие вид на загубат своите мачка.
Но барем да влечете го врати во екранот.
Но, тоа не е на сите дека голем на игра или анимација.
Тоа би било убаво ако можеби тој удри во раб.
Па што ќе правиме?
Што конструкција ние треба да имаат Нула одлучите да скокаат, мислите,
дури и ако никогаш не сум види гребење и пред тоа?
Да, во грбот.
ПУБЛИКАТА: Потребна Ви е ако го блокира или ако-тогаш.
Дејвид MALAN: Да, така што некои вид и ако го блокира или ако-тогаш.
Така, всушност, имаме една од овие овде.
Значи if-- па да ми се ослободи од движење.
Дозволете ми да зумирате, така што е поголем.
Па, како за ова.
Засекогаш, ако Sensing-- ние не го видел ова пред.
Ми треба Булова израз.
И што излезе, ако допира што?
Ако допира работ, што сакам да направам?
Па, ако се вратам во движење, Излезе, ох, јас може да се сврти.
Дозволете ми да го повлечете овој овде.
Зошто не можам да се оди напред и се сврти за 180 степени?
>> И сега, дозволете ми да се движат на крајот.
Јас може да се стави на движење на на почетокот или на крајот.
Но, логично, секој пат кога ќе се движат, јас сакате да се провери, дали се допира работ?
Дали сум допира работ?
Така што логично се вртам ако е така.
Значи, да се погоди игра.
>> ДОБРО.
Така, тоа е малку кабриолет, така да се каже.
А вирусот е само грешка со компјутерска програма.
Но, барем тоа е работа.
И всушност, можам да одам од тука.
И дозволете ми да се направи тоа не 10 чекори на време, но тоа е за сите анимација е.
Ова е за сите цртан филм или дури и на некој филм е.
Дозволете ми да се движат 20 чекори во исто време.
Значи 20 пати повеќе работи се случуваат еднаш или два пати повеќе, во овој случај.
И тој се движи побрзо.
Дозволете ми да се промени до 30.
100.
1.000.
И тоа се случува навистина брзо.
И ова is-- Да, во ред.
>> Па сега ние сме само Месинг со него.
Добро, така што кабриолет.
Но, можеме да го влечат надвор од патот тука.
Но, ние може да се направи повеќе да се забавуваат со тоа, исто така.
Како за this-- тој е наопаку.
Но, се покажа Scratch-- и таму е, всушност,
Морам да се откажуваат, без академска вредност на она што јас сум за да се направи.
Но, ако јас се отвори микрофонот, ајде го запре и да се направи нешто како ова.
Уф!
>> [Се смее]
>> Тоа беше симпатична.
Ти благодарам.
Сега, тоа е она што мојот глас како изгледа кога Му викам Уф.
Јас не мислам дека ние фатени вашето смеа.
Во ред е.
Дозволете ми да го зачувате ова како "Уф".
Ајде да го спаси ова како "Уф".
И сега ние ќе се вратиш на скрипти.
И сега јас need-- ајде да видиме, звук.
О, да играат звук Уф.
Значи, ако јас сум допира работ, дозволете ми да првата драма Уф, а потоа се сврти.
И сега ајде да го стави во средината на теренот.
>> [КАЖЕ "Уф"]
>> Два пати побрзо.
>> ДОБРО.
Но, тоа е буквално прави она што сакам да кажам.
Па тоа е всушност точно, тоа е само малку досадни брзо.
Значи, да додадете нешто повеќе интересно да се тоа.
Дозволете ми да всушност се отвори за која се направени во однапред,
во потполност се нарекува миленичиња Мачка, која го прави ова.
Еве сценариото тука.
Што е ова се случува да се во англискиот услови?
Што е ова со цел да се направи?
Да, ајде да одиме some-- је?
>> ПУБЛИКАТА: Кога ќе миленичиња мачка, мјаукања.
Дејвид MALAN: Да, па кога ќе се миленичиња мачка, тоа се случува да meow.
Значи со други зборови, има сега засекогаш јамка, сепак, во комбинација
со услов, во комбинација со Булова израз,
во комбинација со неколку на функции, ефектот
од кои, откако ќе играм оваа програма, не е ништо
случува се додека не го преместите курсорот поблиску и поблиску и поблиску and--
>> [Meow]
Тогаш тоа е како фаќање на мачка.
[Meow]
Само еднаш, всушност, поместете го курсорот над него.
Сега, јас, исто така, разгорени не миленичиња на мачка, која го прави ова, наместо.
>> [Слатко]
>> Па тој само постојано да мјаукаат.
>> [Слатко]
>> Но, ако јас се премногу close--
>> [Слатко]
>> [Роар]
>> Па, како го прави ова дело?
Сега јас само имаат двонасочна вилушка во патот.
Ако допирање покажувачот на глувчето, потоа играат на звук лав.
Друго само пуштите звукот meow, а потоа чекаат три секунди, па
дека тоа е вид на водење дека е многу мирен.
Во ред.
Значи, тоа е комбинација на некои идеи уште.
Ајде да ги разгледаме во овој пример Јас шлаг наречен теми.
И ова е фундаментално разликува по тоа што Нотингем
карактеристика на многу програмски јазик наречен
теми, способноста на програмата за буквално направи две работи истовремено.
Всушност, овие денови, ако сте со користење на Google Docs или Microsoft Word,
и вашиот документ е постојано се пишува проверени дури и како што type-- или
погоди команда-P или контрола-P и печатење на нешто,
тоа е печатење а ти продолжи да пишувате.
Програмите денес навистина може да се направи повеќе работи одеднаш, исто како и во Скреч
овде.
>> Па еве, имам две sprites сега, птица и мачка.
И ако јас кликнете на секоја од тие ликови едно по едно време,
Гледам во моментов на птицата скрипти во горниот десен агол.
Сега гледам на мачката.
Птица, мачката.
И секој од нив има свои скрипта.
Но известување, што сложувалка тие и да започне со?
Кога зелено знаме кликнато.
И птици, кога зелено знаме кликнато.
Значи кога ќе кликнете на зелено знаме, и двете од овие скрипти или програми
се случува да работат во паралела.
И ќе забележите дека птицата е само mindlessly бие надвор од работ.
Мачката јасно е програмиран со стратешка предност.
And--
>> [Роар]
Во ред.
Значи мачката фати птица во овој случај.
Зошто е тоа така?
Па, огласот, прво само треба птицата само ќе mindlessly
ова почетно место, а потоа засекогаш,
ако не ја допира мачка, само се движат.
И ако сте на работ, скокаат.
И само се движат.
И ако сте на работ, скокаат.
Но мачката, пак, има некои дополнителни логика
во која се вели this-- прво, само така дека ова не е целосно пристрасни
против птичјиот, забележите дека јас сум се користи зелен загатка парче таму
кои, всушност, го зема случаен број.
А карактеристика на многу јазици е да се даде ќе се случајни или pseudorandom броеви.
Значи во овој случај, мачката на почетокот избира случаен број помеѓу, како,
90 степени и 180 степени, во суштина, па
дека таму е малку на варијанса.
А потоа засекогаш, ако допирање птица, репродуцирате звукот лав.
Во спротивно, само точка кон птицата.
Точка кон птицата.
Точка кон птицата, што е сложувалка при себе во овој случај.
Па, ние може да направи една работа тука.
Дозволете ми да се отвори програмата настани тука.
И тука повторно се имаат две sprites, кои изгледаат како овие две кукли тука.
И она што е интересно овде е тоа.
портокалова дечко има оваа во собата на мозаик парчиња тука.
Засекогаш го стори following-- Ако не се притисне тастерот space,
потоа да се каже, Марко, и тогаш емитува настан.
А во меѓувреме, сини човек тука има this-- кога ќе примите на настанот,
велат Поло.
Значи излегува во Скреч и на други јазици,
постојат начини за две програми или две сценарија, во овој случај,
да поврзан сум така што кога ќе хит на тастерот space, вели Марко.
А другиот слуша тоа, така да зборува, и вели Поло во одговор.
Така можете да им пишуваат програми кои всушност комуницирате на овој начин.
И ако го направам ова, наместо тоа, Јас дури и да додадете променливи,
само со користење на еден фигура во овој случај.
Ова е особено досадни.
>> [ПЕЧАТ лаење]
>> Сега, известување на десната имаме некои дополнителни логика овде.
Како да престанам овој печат од лаење?
>> [ПЕЧАТ лаење]
>> Тоа изгледа како на десната рака страна е што е игра на звук.
Но, тоа е само игра огласува ако она што е вистина?
Ако variable-- портокал block-- пригушени е нула.
Како да го променам пригушени да биде 1, што значи дека е точно, го прават овој пригушени?
Очигледно, од друга скрипта, можам да хит на тастерот space, а сега тој ќе престане.
Значи можеме да ја имаат оваа меѓусебна комуникација низ скрипти, како и,
од само споделување на променлива низ две се допаѓа ова.
Сега, ова не е сето тоа интересно.
Ајде да одиме напред и да го направи ова и се комбинираат многу од овие идеи со оваа програма
овде.
Пред да се направи тоа, сепак, како за еден волонтер?
Дозволете ми да ги преземе притисокот за мене, бидејќи јас не се всушност
игра оваа игра.
Ајде да имаме некој што не сте виделе порано.
Треба да се биде удобно доаѓаат на сцената тука, на камерата.
Добро, ајде до.
Многу храбар.
Како се викаш?
>> Идрис: Идрис.
Дејвид MALAN: Жал ми е?
Идрис: Идрис.
Дејвид MALAN: Идрис, убаво да ви се исполнат.
Качи.
И сега, на свој мобилен телефон, ја играте Одг оди?
>> Идрис: Не
Дејвид MALAN: Навистина?
Идрис: Да.
Дејвид MALAN: Добро.
Во ред.
Па, убаво да ви се исполнат.
Дојди.
Јас не било.
Па ние ќе дознаам како да се заедно игра оваа, која некој всушност
отиде и се спроведува во Скреч со промена на мачка да суштина
различни карактери, сите заедно.
И ако јас цел екран овој овде, ние ќе
за да го видиш следната игра заедно.
Сè уште се вчитува, сеуште бутира.
Ајде.
Дозволете ми да го направите тоа.
Ајде.
Оваа игра е толку голема што се урна.
Застани.
Обиди се со ова уште еднаш.
Ајде.
Во ред.
>> Таму ќе одиме.
ДОБРО.
Зелено знаме.
Значи тука ќе одиме.
>> [Музички]
>> Изберете средно ниво тука.
Кликнете на сино човек таму.
Во ред.
И можете да го користите стрелката keys-- горе, долу, лево, десно.
Сега, ајде да се разгледа како што се this-- и потоа оди по карактер таму.
Да.
И сега го кликнете со глувчето.
О, да.
Се движат.
Каде е тастатурата?
Еве ти.
Па кликнете таму.
Да.
Во ред.
Па сега, јас сум изјави имаш Ѕиркаат топка, дека ако кликнете на неа, тоа ќе го стори тоа.
Многу добро.
Во пракса од денес, се најде на оваа верзија на играта
всушност не е многу тешко.
Значи, ако сакате да се оди повторно тука, одам во овој Ѕиркаат топката.
А потоа и да си одат се во право.
Обидете се да кликнете на неа.
А, всушност, тоа е продавница, очигледно.
OK, па го затвори тоа.
Никогаш не го направиле тоа порано.
Можеби да отиде до тоа нешто тука.
О, таму да одите.
Чекај, има еден таму.
Ох, има уште една.
ДОБРО.
Надолу.
Да, кликнете на неа.
>> ОК, тоа е многу симпатична.
Добро, многу добро направено.
Оваа игра не е многу тешко.
ДОБРО.
Алал да му е.
Тука, ние имаме CS50 стрес топче за вас.
Но, сметаат дека за само еден миг што некои од takeaways се таму.
Полесно отколку на вистинска игра, очигледно.
Но, сите ние ќе тука е лик
што веројатно има некој вид на јамка поврзани со неа.
Тоа не е една мачка.
Тоа е овој лик, наместо.
И тоа јамка е само постојано велејќи дека, ако стрелка нагоре притисне,
ако притисне стрелката надолу, ако левата стрелка притиснат или право
arrow притиснато, се движат нагоре или долу или лево или десно.
Или ако има уште една загатка парче таму кој се вели дека кога ги допирате друг самовила,
кога ги допирате еден од ликовите на топката Poke, ако допирање,
потоа го направите тоа.
>> Па сите идеи кои ги имаме бил со користење досега навистина
само може да се примени во конкретниов контекст за да се игра оваа игра, како и.
Дозволете ми да оди напред и да се повлече едно со други тука, во факт.
Дозволете ми да оди напред и да се повлече до, да речеме, ова.
Ова е нешто што ремикс.
Направени од страна на еден од нашите студентите во Кембриџ,
а потоа отидов преку и да се промени доста секој пример на Харвард
до Јеил тоа време.
Некој би сакал да натпреварува против Ivies
тука во друга акумулација на сите овие идеи?
Ајде надолу, да.
Како се викаш?
>> ДИНА: Дина.
>> Дејвид MALAN: Адина?
>> ДИНА: Дина.
>> Дејвид MALAN: Дина, ајде надолу.
Сите во право, Дина.
Значи оваа игра станува потешко и потешко, бидејќи во оваа игра,
има променливи се користат, како и кои се постојано следење
на кое ниво сте во играта.
Значи убаво да ви се исполнат.
Дојди тука.
И така цел тука е да се најде решение на направи на вашиот пат низ лавиринтот
дека овој ученик спроведува.
>> И само да се постави на сцената, секој на овие слики на екранот
е свој самовила, свој карактер.
Значи овие се стандардно мачки, но на студентот да ги промени
на различни Ivies логоа тука.
И тогаш ќе се види дека само со користење на услови и петелки
и функции и повеќе, добивате ова.
>> [Музички]
[Музика - MC Hammer, "У може да го допре Овој "]
>> Да, во ред.
Да, продолжувам да одам.
Првото ниво е многу лесно.
Вие сте само добив да одат таму.
Но, повторно, сметаат, ова е само еден јамка слуша за стрелката keys--
горе, долу, лево, десно.
А сега и уреди со покажувач на блок.
Многу добро.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Многу добро.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Многу добро.
Прилично лесно, Crimson.
Во ред.
Levels-- Ух-ах.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> И повторно, во овие три Харвард девијации,
вие само треба логика велејќи дека ако на работ, отскокнување.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Добро, она што го правиш е повеќе интересен отколку зошто.
Многу добро.
Ух-ах.
>> [Музика - MC Hammer, "У може да го допре Овој "]
Мислам дека треба да се жртвува.
[Музика - MC Hammer, "У може да го допре Овој "]
Брзо!
>> [Музика - MC Hammer, "У може да го допре Овој "]
Ница.
Во ред е.
Ќе го добие.
Да, да!
Многу добро.
>> [Навива]
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Убаво!
>> [Музика - MC Hammer, "У може да го допре Овој "]
Разбрав.
Ајде!
Претпоследно ниво.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Во ред.
>> [Музика - MC Hammer, "У може да го допре Овој "]
Да.
Добар користење на променливи тука.
[Музика - MC Hammer, "У може да го допре Овој "]
Да.
[Музика - MC Hammer, "У може да го допре Овој "]
Ница.
[Музика - MC Hammer, "У може да го допре Овој "]
Во ред е.
Ние мора да се дојде до крајот.
Таму.
О!
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Може да работи кон крајот на денес, но дека ќе биде достоен за тоа.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Го можеш тоа!
Да!
>> [Навива]
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Ова е навистина тешко.
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Ние ќе ви дадеме уште два животи.
Можете ли да го направам тоа?
>> [Музика - MC Hammer, "У може да го допре Овој "]
>> Во ред.
Како за голем круг аплауз сеедно.
Ќе морате да на претпоследно ниво.
Ти благодарам.
>> [Аплауз]
>> Значи ова е само да се каже колку ќе може да се направи со овие видови на нештата.
И реализација, исто така, дека кога мозаик парчиња не exist--
и навистина, тоа се случува да биде една на овластувањата со првиот проблем
поставува и beyond-- е да се всушност се создаде своја.
И ова е само програмка на еден од примерите
Вие ќе бидете во можност да игра со интернет, каде што
ако не се вградени во Скреч нешто како кашлица загатка парче,
вие всушност може да го направи тоа за себе.
>> И така сето ова и многу повеќе ќе чека.
И само да се наслика финалето слика на она што навистина е
напред во продавница за класа за вас, врз основа на некои слики од соучениците
минатото, дозволете ми да се придуши го светла за последен пат и ќе покаже CS50.
>> [Музички]
>> Во ред.
Тоа е тоа за CS50.
сега се служи торта.
>> [Музички]