[ФОНОВ ШУМ] Работи ли? PATRICK REBESCHINI: Можем да започнем. ДОБРЕ. Страхотен. Да започваме. Така че това е моето най-голямо удоволствие за всичко, което приветствам днес тук за първата лекция на, добре, Въведение да Computing и програмиране. Също известен като CS50 или добре, CPSC 100, официално тук в Йейл. Така че ние не може да бъде по-развълнуван за всичко, което добре дошъл тук. Моето име е Патрик Rebeschini. Аз съм инструктор главата за класа. Аз съм тук, представляваща група от около 60 членове на персонала че ще работи с вас по време на семестъра. Този брой е почти 60 на нас. И все пак по необикновеното ниво на ангажименти че ще се постави в тази клас, прави CS50 класа в Йейлския университет, който предлага най-високото ниво на подкрепа на всички вас. И ние не може да бъде по-горд от предлагащи този клас тук отново. В действителност, тъй като скоро ще усетите, CS50 е много повече от един клас. Това е една общност. И вие ще бъдете част скоро на тази общност. Това е втората година, че Yale предлага този клас. Ние изграждаме върху крайност Успехът на миналата година, когато за първи път, тук, в този университет, студент асистент обучение бяха приети в класните стаи. Всичко започна с този клас миналата година. Така че, както знаете, класът се преподава съвместно с Харвардския университет. За да се научи на този курс ние сме relying-- можем разчитам на големия опит на Дейвид Малан и екипа Харвард. Така че Дейвид е бил преподаване CS50 за добре, вече 10 години. И всяка година той е бил разширяването на границите и подобряването на работата на класна стая. Отново, ние не може да бъде по-щастлив да продължи това сътрудничество с тях. В действителност, един от най- повечето интересни части, Аз ще кажа на използването на този клас в момента, както в Харвард и тук в Йейл, е наистина невероятно кръстосано оплождане на идеи, насочени към подобряване на учене опит на всички вас. Така в резултат на тази широка сътрудничество между двете университет, CS50 е горд да обявим новата версия на тази година с забележими промени. Дейвид всички ще ни разкаже за тях сега. Така please-- това същество заяви, моля се присъединят към мен и добре дошли за да се получи голям кръг от аплодисменти да посрещне Давид и Harvard екип тук в Йейл. [Аплодисменти] DAVID Малан: Благодаря ви. Благодаря. Това е CS50, Харвардския университет и въвеждане Yale University е да интелектуалеца предприятия на компютърните науки и изкуството на програмиране. И какво означава това е, че този курс в крайна сметка, е около решаване на проблеми. Всъщност много от които може да са излезли от гимназията или са прекарали последните няколко години чудех какво някои от вашите приятели миналата година или в други класове. И все пак, реалността е, без значение какво сме направи в края на деня, в този клас, тя ще бъде около решаване на проблеми. И като такъв, може би вземат някои успокоение във факта, че 73% от студентите, които приемат този клас, както тук в Йейл, както и в Харвард, никога не са взели клас CS преди. Така че, ако сте седнали тук, в публиката днес се чудех защо сте седнали тук в публиката днес, или може би просто последвано заедно с няколко приятели, или може би сте били малко любопитен за какво компютърни науки и програмиране се, осъзнавам че повечето от съучениците си, за да отляво и отдясно на вас са много по същия демографски. И наистина, ако погледнем в последните статистически данни годишно в рамките на тялото студент на CS50, както тук и в Харвард, 58% от студентите описват себе си като по-малко удобни. 9% е по-удобно. И след това 33% е някъде по средата. И няма официална дефиниция от това, което означава, че тези кофи. Можете вид, че сте по-малко удобно, ако сте. Вие се чувствате малко неудобно с може би е в класа. Вие не сте съвсем сигурни дали един компютър науката клас в крайна сметка е за вас, и, че ти си в много добра компания. И наистина, че окачествяването, и оценката, и обратната връзка, и всичко това подкрепа структура в класа е в крайна сметка много индивидуализира. Още повече, че от най-всяка друг клас от дизайн. И наистина, какво в крайна сметка въпроси в този клас не е толкова много, когато ти свърши нагоре в сравнение с другите, но къде, в 11 седмица или последния, и по отношение на себе си в седмицата 0 тук първата ни. И така, какво означава това? Е, това означава от тези 73% от студенти от миналата година, които никога не са приемали на CS клас и преди, от започне на семестъра те бяха рекламни кампании на език, наречено Scratch, които сами сме Ще видите тук днес. И до края на семестър бяха отишли през целия този списък от предизвикателства. Като се започне с език, наречен C. Изпълнение, което е на пръв поглед, ще да бъде малко по-голямо предизвикателство за някои от тях, но доста приятно, след като получите Супер Марио подскачащи нагоре и надолу пирамида изпълнена, макар и с просто нещо, наречено ASCII изкуство. Изпълнение на миналата year-- какво студентите миналата година след това е след това се изпълнява своята собствена Цезар шифър и vigenere шифър. Така криптиращи алгоритми с които бихте могли да боричкане информация и след това разяснявам информация за изпращане на секретни съобщения. Играта на 15. Ако си спомняте от детството или някаква полза страна, че малко пластмаса игра, в която се движи цифрите нагоре, надолу, наляво и надясно да се опитаме да ги вземем, за, действително прилагане на този мач и решаване на логиката изисква там. И тогава ние се замесва криминалистика миналата година. Така до средата на семестъра, студенти, които никога не са имали използва своите клавиатури за тази цел, преди, бяха писане на софтуер да се възстанови, така да се каже, JPEG снимки или снимки че имахме случайно заличава от цифров карта с памет от фотоапарата. Възстановяване на тайни послания от вътрешността на растерно изображение, и други подобни видове на графики, както добре. Ние след това прехвърлен към даване целия клас на речника. Просто наистина голям текстов файл с 150000 английски думи. И всеки е обжалван по някакъв начин да се чете, така да се каже, тези думи в паметта. В памет на компютъра. И след това да отговаря на въпроси на формата, е тази дума? Дали това е думата? Дали това е думата? Наистина просто прилагане една проверка на правописа. И тогава предизвикателни всеки друга с голяма board-- лидер на борда, за да се види кой би могъл използват най-малко количество памет, в най-ниската сума от време, за да всъщност проверка на правописа на големи документи. Ние прехвърлихме от тогава до прилагане на тези, собствен уеб сървър. Така че не прави уеб страници в езици като HTML и CSS, ако сте запознати. Но всъщност изпълнение сървъра, който вслушва в интернет за заявки от браузъри и след това в отговор на тези искания. След изпълнение на нашата собствена електронна търговия като уебсайт, където студенти могат да купуват и продават акции. Рисуване в почти реално време борсови котировки от Yahoo Finance. И дават възможност на учениците да се види как си портфейл развива. И тогава най-накрая една каша нагоре на Google News и Google Карти с което учениците със срок от гледна край имаше способността да кликнете, и кръг, и търсене на картата на Google. И след това да видите всички новинарските статии, които да са близо до тези конкретни области. Така че наистина става от нула до 60. И по пътя с това, което сме имали миналата година нарича, хакерските допълнения. Това вдигнем летвата допълнително за тези от вас, които биха могли много добре да има добра сума на опит в това, че 9% на по-удобно. Така се разбере, че има много висок таван дори в рамките на тези предизвикателства за студенти идващи от различен произход. Тъй като в края на на ден, ние сме в крайна сметка фокусирани съвсем просто по този въпрос. Но това, което прави това означава, решаване на проблеми? Така че нека да предложа ние го дестилират по този начин. Така че за решаване на проблеми е наистина точно този вид на картината. Така че имаш входове към някакъв проблем, нещо, което всъщност искаме да решим. Целта е да се изходи, решение на този проблем. И след това в средата е това, което ние ще наричаме черна кутия. Не е задължително да знаят или дори интересува какво има вътре, че черната кутия. Всичко, което знам е, че когато те храня вход в нея, можете да се надяваме да получите изход или разтвор от нея. И докато днес ние ще разгледаме както на входове и изходи, ние ще дългосрочно, и над Разбира се на целия семестър, се съсредоточи върху това, което е вътре в тази кутия. И в нея ще лежат нещо, наречено алгоритми. Стъпка по стъпка инструкции за действително решаване на някои проблеми. Но това, което е пример за някои суровини? Така че може би просто нещо в започне на всяка учебна година, някой Може би искате да се вземат и обслужване. Така че можем да направим една, две, три, четири, пет, шест, и как ще пазя следите на тази информация. Аз може просто да отида с една, две, три, четири, пет, шест. И просто използвайте сортиране на едноцифрени числа. Или всъщност бих могъл да запише това е малко по-дълъг срок. И как мога да представляват всички хората в тази стая? Е, мога да направя нещо подобно, OK. Виждам един човек. Добре. Виждам още един човек, а трето лице, и така нататък. Но никой не се брои хора като този. Така буквално, повечето от нас, ако ние сме дори ще направи каквото и да било, вероятно ще отида едно две три четири, може би се получи малко фантазия, пет, шест, седем, осем, девет, десет и така нататък. И това всъщност е система, наречена на едноместно. Uno, като Uno което предполага една, където можете Просто трябва една буква от азбуката. Вие току-що получих тази хеш марка. И аз, за ​​ефективност, просто обърна тези хеш марки, в крайна сметка като прави линии. Но бих могъл да ги съставя като малки цифри стик. Къде да представлява един човек, един вход, Току-що направи пръчка фигура или хеш марка. Но това не е всичко, което изразителен. Ако всичко, което имам е това хеш марки, да не говорим стик фигури, как може аз представлявам нещо като броят на 15? Или 15 души в залата? Аз може би трябва да се направи нещо като 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Тя просто не мащабира много добре. Както входовете получават големи, ние нужда от по-добра система от това. И се оказва, че система, които използват компютри не е по-различна от това, което и аз знам. В действителност, повечето хора в тази стая, дори ако сте сред тези, които по-малко удобно, не е задължително да знаете как си Mac или PC наистина работи, вероятно сте поне е чувал, че под предния капак са 0 и 1 в. Така нареченият бинарна система. Така че наистина, компютри имат повече от просто хеш марка в своя речник, но не толкова, колкото на лексика, както ние, хората. В действителност, ние хората не използват двоичен. Bi означава 2, 0 и 1. Но десетични, дека означава 10, 0 до 9. Така че ние имаме много по-изразителен възможности в нашия нормален човешки свят. Но бих се твърди, че тези системи, двоичен и десетичен, и всичко между и отвъд, са всъщност всичко доста познато. Например, да вземем този пример тук, 123. Така че това наистина е така, разбира се, редица знаем като 123. Но всичко, което току-що привлече беше само това модел на символи, знаци, така да се каже. Сортиране на фигури на дъската с тебешир. Но защо ние веднага и интуитивно се разбере това като 123? Е, ако сте били като ми в началното училище, вероятно научих, че това е най- 1s колона, това е колона 10s, това е колона 100т. И защо е толкова полезна? Е, това е просто ви аритметика сега направите, за да получите от един модел на символи до редица ние разбираме интуитивно. Е това, което, 100 пъти по 1, и след това 10 пъти 2 и 1 пъти 3, което разбира се е само 100, и това е 20, и това е три. И така, ако прибавим тези together-- ах. Така че там се крие нещо като разсъждение зад защо този набор от символи означава нещо реално и цифров. Е, компютри правят точно същото нещо, но те само могат да разчитат толкова висока, колкото един. Като има предвид, че е в състояние да брои толкова висока, колкото три. И в действителност, ако аз продължавах да можех отиде толкова високо, колкото девет в тази система. Компютри имат само нули и такива в тяхната азбука. И така, какво означава това? Е, това просто означава, че ако един компютър иска да представлява, да кажем числото 0, може би с помощта на три characters-- три букви от азбуката, така да се каже, Ето как един компютър е 0. Така че не всичко, което страшно досега. Това е точно това, което ние, хората ще направят. И в действителност, повечето от нас не би просто игнорира водещи нули, така или иначе. А компютъра, ако иска да съхраните номера 1, Оказва се, ще направи това. И компютър за съхранение броя 2 не е ще направя на едноместно система, които споменах по-рано. Това всъщност ще направим това. И това е може би където моделът започва да стане по-малко очевидни за повечето хора. Това е 2, това е 3. Любопитно е, че това стана 4 е. И сега той наистина прави изглежда да е може би загадъчен, но това не е, ако вземем предвид какво двоичен наистина означава. Това означава, че имате две писма от вашата азбука. Така два възможни символи за всеки контейнер. Така че наистина означава, че ще да се нуждаят от 1s място, или 2s място, а 4s място и след това 8, и 16, 32 и 64. И каква е разликата там? Подобно на това са 1, 2, 4, 8, 16, 32, 64. И преди сме имали 110, 100 000, 10 000. Каква е приликата там? И каква е схемата? Да. Студентът: Правомощия на 2 вместо правомощия на 10. DAVID Малан: Да. Правомощия на 2 вместо на правомощията на 10. И така, ако исках да се запази ще, 8, 16s и така forth-- но сега, ако имате този вид на представа, сега двоична система всъщност е доста ясен. Защо е този модел на 0 е в света на компютрите 0? Ами защото това е 4 пъти по 0, 2 пъти 0, 1 0 и ще получите 0. Защо това е номер 1? Същата логика, но сега ние имаме 1 в колона 1. Защо това е 2? Имаме 1 в 2s колоната. И как след това правя аз представлявам се каже, номер 7 в двоичен? Да речем, по-силно. STUDENT: Три 1s. DAVID Малан: Три 1s. Така 1, 1, 1, защото ние просто трябва 4 плюс 2 плюс 1 ми дава 7. Добре. Така че от там как правим представляват 8 с 3 заместители? Да. STUDENT: 1, 0, 0, 0. DAVID Малан: Да 1, 0, 0, 0. И все пак може би, аз вид на технически нужда да се добави още един контейнер на борда. Ако искам да се побере, че аз наистина Трябва да се направи нещо подобно. Така че аз всъщност трябва да се използва в момента на 8s колоната, и това е добре. Странно, но при компютрите е че това ще ни струва нещо. Вие се нуждаете от повече RAM в компютъра си сега. Вие се нуждаете от повече памет защото имате нужда от нещо физически да се съхранява, че допълнителен бит, така да се каже. Binary цифри. И наистина всичко, което се е случило тук, като системата за десетична, Ако продължаваме добавяне на номера нагоре и нагоре и нагоре, ние се връщаме към 5-6 до 7-8 това е като извършването на 1, буквално. И след това всичко останало датира до нула. Но как ние всъщност представлява тези неща физически в един компютър? Е, в края на деня, единственото физическата вход навлиза в моя компютър тук е този захранващ кабел, така че електроенергия или електрони от стената. И така, как мога да получа от нещо физическата като че действително представляваща една идея по този начин, вместо. Е, какво можем да направим? Ние може да приеме, че всичко е наред, Може би, ако ток, преминаващ Можех да я съхранява и се държат за него. И ако аз държа на до известна електричество, че просто ще се произволно представлява 1. И ако аз дръпнете куплунга и там няма нищо, Знаете ли, че просто ще произволно да представлява 0. Така че, ако нещо не е там, 1. Ако нищо не е там, 0. Или можете да направите това малко повече визуално. Тук е 0. Няма нищо по-интересно плавателни на около задната част на телефона ми. Но ако се позволи малко малко ток да тече, въпреки че това е малко ярка в тук, моето фенерче продължи. Така че аз съм съхраняване на такса и следователно, този телефон сега представлява 1. Така 0 1. Така с един iPhone колко високо може да брои използването на този вид подход? Искам да кажа на един. Това не е всичко, което непреодолими. И така, какво повече можем да направим? Ами нека да видим, е всеки, на тяхната телефона точно сега, че мога да взема на заем? Всеки, който разполага с телефон с фенерче построена през? Може ли да се заемат? Аз не се нуждаят я отключи. Добре. Благодаря. Нека да заеме този. Добре. Така че, ако аз сега превъртете нагоре и тук, аз какво представляваща сега? Да. Така че това е три, тъй като това е в 1s колона, това е в 2s колоната. Така че 1 плюс 2 е 3. И след това, ако се опитаме да получите наистина creative-- О, благодаря ви. Много превантивна. Добре. Сега имам три Iphones. Добре. И сега this-- аз няма направи по-далеч от това. Какво съм аз, представляваща сега? Само седмици. Но имах нужда от физически повече памет в този случай. Но това е всичко, това е. Можете да мислите за това, което се случва on-- благодаря you-- вътре на телефона си като просто е ключ, който е се включва и изключва. И ако някога сте чували думата транзистор. Или, ако някога сте чули маркетинг говори Intel вътре, което е казано за вида на хардуера че е вътре на вашия компютър. Intel прави процесори, централните процесори, които са като мозъците вътрешността на компютъра. И тези процесори и неща, те са свързани да има много и много малки превключватели. Милиони, милиарди превключватели че може да бъде или включен или изключен. Така компютри, за щастие, като нашите Mac-ове и персонални компютри, може да разчита начин по-висока от 7 или 8 защото те имат начин повече от три или четири бита. Way повече от еквивалента на три фенерчета, че ние просто трябваше. Но сега това започва да се доста безинтересно бързо. Ако аз сега искам да всъщност да е в състояние да се направи нещо по-интересно, Искам да бъда в състояние да скочи за нещо подобно. Така ASCII, това не е наистина полезен акроним, но American Standard Code за информационен обмен. Това просто означава, някои години Преди ние, хората решиха, Знаеш ли какво, ние искаме да бъде в състояние да направи повече с компютри, отколкото само на номера. Ние не ги просто да искате бъде скъпи калкулатори, ние бихме искали да бъде в състояние да направя неща, като текстообработка, макар и много просто. По-късно имахме имейл и други такива медии. И така светът реши няколко години Преди според тази система ASCII, знаеш ли какво? В някои видове програми всяка вас време виж еквивалент на броя 65, като модел на битовете. И ние може да направи математика тук на дъската. Моделът на битовете, които представляват 65. Не мисля за него като 65 в десетична. Мислете за това като произволно, но в световен мащаб, последователно като столица A. И тогава в света реши, знаете ли какво? Да вземем друг модел на битовете. И ако видим ли някога на номер 66, нека просто Предполагам, че това е най- капитал Б. Бързо напред до H и аз, ако сте въвели 72 или 73, че трябва да бъде Н и I, съответно. И така, докато цялото свят е съгласен на това. Така че, когато получите имейл, или вие ще получите файл на USB стик, или нещо подобно that-- когато виждате, че модел на бита, Знаете ли, че тя трябва да бъде тази писмо или някаква друга писмо. Но това е контекст специфичен, нали. Една програма за електронна поща може да интерпретира тези неща като герои, но графики калкулатор или калкулатор може да представлява или да интерпретират тези неща, разбира се, като букви. Така че с това каза, бърз малко преглед. Това е може би три характер електронна поща, която е била изпратена до мен. Под предния капак всичко е в 0s и 1S, но не ни пука. Ние ще започнем да абстрактна над 0s и 1S до писма. И ако видя, че един модел на 0s и 1S, че наистина представляват 72, намек, намек, 73, и след 33, какво е посланието? STUDENT: [недоловим] DAVID Малан: Така че, ако си мислите Преди обратно само за миг, HI беше посланието, което се опитвах да общуват тук, защото H е 72, I е 73, а сега 33-- не искахте непременно, че това по-рано, но се оказва, ако действително виж повече на графиката и системата че човечеството договорени години Преди, това е просто удивителен знак. И наистина, има един модел на символи и цифри за всеки герой че може да се наложи на клавиатурата. Добре. Нека абстрактно-нататък. Ако ние не искаме да има само неща като цифри и букви, ние всъщност искат да приложат графики. Е, ако някога сте чу акронима RGB. Това е нещо от сега, но тя все още е вид там. RGB е червено, зелено, синьо. И това е само една система да се каже, че знаете какво, нека използваме три набора от бита. Набор от 8 бита, друг набор от 8 бита, както и друг набор от 8 бита. И нека да използваме тези битове да се съхранява колко червено ние искам на нашия екран, колко зелен искаме на нашия екран, и колко синьо искаме на нашия екран. И това просто означава, че ако имат lot-- голям брой за червено, това означава, че ми даде много на червено. Ако имате голям брой за зелено, дайте ми много зелено. И ако имате само малко на синьо или малък брой като 33, дай ми малко синьо. И ако се случи да се съчетаят тези, три величини, така да се каже, получавате this-- едва ли може да се види на проектора тук, но тази мътна нюанс на жълто или кафяво. Но това е да се каже, с помощта на които модел на 8 плюс 8 плюс плюс 8-- този модел от 24 бита е как един компютър би съхранява че нюанс на жълто в едно малка точка на пиксел на екрана. Така че ние сме преминали от 0s и 1S да десетични номера на букви от азбуката. Или по-интересен, цветни точки. Е, това, което, разбира се, след това идва след това? Е, това, което е образ, който ви виж на Facebook или да получите в имейл? Или други подобни? Какво е определението технически на изображение? Да. Какво е образ, съставен от, ако изглежда наистина отблизо екрана? Да. Това е просто един куп пиксела. В действителност, ако вземете си лаптоп може би по-късно, и изглежда наистина отблизо при it-- зависимост на колко скъпо е лаптопа и колко високо качество на екрана е, може много добре виж всички малките точки на екрана. И тези точки или пиксели, което означава, че има 24 бита, представляващи всеки пиксел с това, че снимка, която виждате на Facebook, или че просто се на вашия iPhone наскоро. И така, това е как да стигнем за неща като графика. Е, каква е видео? А видеото е просто набор от графики летящ от екрана отново и отново и отново. И така клипове наистина, са само модели на бита, представляващи решетки, редове и колони от точки, летящ от изображението на екрана, след образ, след образ, познат още като Кинофилми. Така че това е за входове и изходи. Всичко, което имаме сега е предположение, че сте знае какво, ако искаме компютър да представлява информация, имаме система, за да го прави. Можем да го направим с 0s и 1s в края на деня. Но ние можем да абстрактно, така да се каже, на върха на която така че да представляват по- интересни неща. И сега нататък в CS50, а в компютърни науки в по-общ, ние сега стои на раменете на всички хора, които дойде преди нас, които измислил. И сега просто се предположи, че компютрите могат да представляват входове и изходи. Но сега нека действително направи нещо с тях. Така че един алгоритъм е просто набор на инструкции, стъпка по стъпка, за решаване на някакъв проблем. И това, което може да бъде един такъв проблем. Така че това е стар училище технология, телефонен указател. И вътре в телефонния указател е куп имена и номера. И тези имена са като цяло подредени по азбучен ред. Така че, ако аз исках да се намери някой в този телефонен указател като Майк Смит, това, което е типично човешки смяташ да правиш? Е, вие може просто да отворите то нагоре, погледнете на първата страница. Аз не виждам Майк Смит. Обърни се на втора страница, Аз не виждам Майк Смит. И просто продължавай и си отиват. Дали това стъпка по стъпка подход е правилно? Да. Това е нещо глупаво, нали. Това е неефективно, нали. Тъй като това ще отнеме завинаги да стигнем до Майк, но тя е вярна. Защото, ако Майк е тук Аз наистина ще го намеря. Така че това, което е малко по- разумен човек ще правим? Те все още може да се отвори в предната част, и може би лети през телефонния указател две страници в даден момент. Две, четири, шест, осем. Не мога действително физически да го направи много добре. Но на теория, това трябва да бъде два пъти по-бързо, две страници наведнъж. Дали този алгоритъм е правилно? STUDENT: [недоловим] DAVID Малан: Не е задължително. Добре. Защо това предупреждение? STUDENT: Защото той може да бъде на една на страниците, които сте прескочите. DAVID Малан: Да. Така че, дори ако получа по-близо. Какво става, ако той е просто случайно, от лошо Успех, затворен между двете страници че летя над? Така че ние се нуждаем от решение за това. Ние действително трябва да след това казват, чакай малко, Може би ако отидем твърде далеч, може би ако ние се удари в секцията T, за T идва след Смит, тогава ние трябва да най-малко два пъти назад най-малко една страница. Така поправим, но има условен въпрос там. Така че това е два пъти по-бързо, но може да Трябва да се удвои обратно само малко. Но никой в ​​стаята си, дори ако наистина не използват телефонни указатели вече, ще започне в началото. Какво ще правиш търси Майк Смит? Ще отида грубо към S-те години. Или, ако наистина не са мамят лист на хартията, започваш да отиде най-малко приблизително към средата. И със сигурност не за да предната част на книгата. Ти започваш да погледне надолу. И математически вие вероятно сте Ще видите секцията M, която е приблизително по средата. И тогава започваш да се осъзнаят, какво е истина? Къде е Майк? STUDENT: [недоловим] DAVID Малан: Да. Така че той е над от тази страна. И така, какво можеш да направиш? Е, както образно и буквално може да ви разкъсат на проблема в половината веднъж? И това да знаете, че можете да се хвърлят Това полувреме на проблема далеч. И сега ние сме оставени с фундаментално същия проблем, но е два пъти по-голям. И така, сега това, което е най- набор от инструкции? Каква е алгоритъм за намиране на Майк Смит? Това е точно същото нещо. Сега това се случи, за да бъде най-M точка и това е част от Z, но фундаменталните формула е все същата. Отиди приблизително към средата, погледнете надолу, о, дяволски го. Сега съм в раздела за T, Аз бях отишъл твърде далеч. Но и тук може да ви прилага същата логика. Throw половината от проблема далеч и сега сме остави с един проблем, който е една четвърт от размера. И ние можем да се повтаря, както и ние можем да се повтаря, и ние можем да се повтаря, докато теоретично там е останало само на една страница което Майк или е или не е. Така че това, което е толкова мощен, за тази идея? Искам да кажа, в края на краищата, това е доста интуитивен. Никой няма да започне в започвайки от телефонния указател и флип 1000 страници, за да намерите Майк Смит. Почти всеки в тази зала ще да се направи грубо този вид алгоритъм запишете за разкъсване. И така, защо правим това? Е, помисли за ефективността. Помислете само колко по-добре тази алгоритъм е, като го счупи на съставните си части. Така че това, което е за първи път правя? Взех телефонния указател. И компютърен учен, и програмист, по-общо се оказва, ще да започнем да броим всичко при 0. Защо? Е, това е малко странно че ние, хората разчитат, като цяло, като се излиза от един. Защото това, което е най-малкият брой можем ясно да представляват основава дори и на нашия стар началното училище математика? Е, това беше 0, дали това е в десетичен или двоичен. И така, вие ще видите в света на изчислителната техника и програмиране, специално, ние започваме броим всичко от 0. Така че аз качват книга стъпка на телефон 0. Отивам да се отвори към средата на телефонния указател. И това е наистина един израз на това, което направих. И след втората стъпка е поглед към имената. Стъпка три е малко различен концептуално. Питам се въпрос. Ако Смит е сред имената, Отивам да взема решение. Ако той е сред имената, След това аз ще се обадя на Майк. И аз отивам да взема решение въз основа на които част от информацията. Въпреки това, ако не, ако Смит е по-рано в книгата на ляво, Отивам да се отвори към средата на лявата половина на книгата. И след това тук е интелигентност, Отивам да се върнете на стъпка две. Отивам да се справи с да стои на собствените си рамене и просто се повтаря покрай работата, което направих. Но работата ми е останало, е по-малко и по-малко и по-малко. Но той все още продължава да работи. Но ако Майк, вместо това, е по-късно в книгата на правото, Отивам да се отвори към средата на дясната половина на книгата, След това се върнете към стъпка две. Но всъщност има четвърти сценарий. Майк нито тук, или тук, или тук, or-- STUDENT: Не е там. DAVID Малан: Не е там. И наистина, ако ние не очакваме това четвъртият и последен сценарий нашата програма може да е бъгав или недостатъци по някакъв начин. Иначе, напусна в случай, че ние не сме намерили Майк изобщо. И наистина, ако някога сте забелязали вашия компютър, висящи, или всички Изведнъж дума или някаква друга програма просто затваря неочаквано, и понякога те грешка съобщение буквално е, че. Тази програма се откажат неочаквано. Тя може да бъде за редица причини. Но понякога е по- нещо толкова просто като това. Човешкото програмист който пише, че софтуер не осъзнават, че, о, там е излезе нещо, което действително може да се случи. И ако не се напише код, за да улови, че четвъртият сценарий, това е наистина неочаквано понякога какво всъщност може да се направи на компютъра. Сега нека да се обади на един Някои от тези неща. Така че в жълто тук, аз подчертават термини че отсега нататък ние сме просто Ще се обадя на функции. Функции в света на програмиране са точно като действия, изявления на действията. Така че вземете, отворени за, изглежда най-, обадете се, отворен, открит, се откажат. Това е функция, процедура, иск, с произволен брой синоними ще работи, както добре. Сега какви са тези неща сега в жълто? Ако друго, ако е останало, ако е друго, те са това, което ние ще наричаме условия в програмирането, или клонове, решение посочва, ако щете. Но как да се знае кои вилица в пътя, за да се вземат, така да се каже? Ние трябва да се подчертае, условията на правото там, които са тези, Да, без въпроси. Тези истински фалшиви въпроси. Смит сред имена? Smith по-рано в книгата? Смит по-късно в книгата? Това са въпроси, на който има да, или не, или еквивалентно вярно, или невярно, или еквивалентно, един или нула отговор. А междувременно има само едно последно парче. Това тук е какъв ефект? Дали програмата или не преди, как бихте опише какво стъпка седем и 10 са прави? Какво каза? Студентът: А рекурсивни стъпка. DAVID Малан: Рекурсивна стъпка. Да, по същество. Това е технически повтарящ тук, ако сте запознати. Но ние ще се върнем към това. Но той прави нещо ясно. Отново, това е предизвикване на цикъл, цикъл, нали. Вие буквално ще резервно до известна по-рано стъпка. И така наистина, това ще приложи някакъв цикъл. Но вие няма да получите остана в този безкрайно, нали. Защото, ако сте постоянно проверка е Майк тук, или наляво, или не тук, в крайна сметка той няма да бъде там. А може просто да се откажат напълно според който последната линия. Така че това е за лексика. И това е, което бихме обикновено наричаме Псевдокод код. Това не е действително език. Това е просто много изразителен английски, но тя комуникира точката. Няма никаква формална структура тук. Можете просто да използвате това е малко думи, но и ясни думи колкото можете, за да общуват вашата идея. Сега колко добър е, че алгоритъм и колко по-добре е това? Е, ние не трябва да се получи в специфика на номера или нещо подобно. Но ние можем да погледнем в Формата на този разтвор. Така че, ако ние просто направи някои XY парцел тук по хоризонталната ос тук. Нека просто се обадете на размера на проблема. И компютърен учен би обикновено се използва п като променливата тук. Така че п страници, или п хората в помещението, или каквото и да е, което се опитва да брои. И след това на вертикалната ос относно наляво, че ще бъде времето за решаване. Така че колко секунди го прави вземи ме, за да се намери Майк Смит? Или колко стъпки отнема? Колко страница завои отнема? Така че това е колко струва ми във времето за решаване на проблема. И ние може да направи първата алгоритми наклон, ако щете, като само тази права линия в червено. И аз ще го наричаме п. Защо N? Защо е само този за една връзка? Е, ако Verizon или каквото и телефонна компания добавя още една страница, за да телефонния указател на следващата година, които биха могли да прокара Майк един по-стъпка по-близо до края, в зависимост от това къде, че страницата е. И така, ефектът може просто се да добавя още една секунда. Или още една страница на свой ред. А 12:59 съотношение. От друга страна, втората алгоритъм. Колко по-бързо е, че интуитивно? Когато отидох на две страници в даден момент? Да. STUDENT: [недоловим] DAVID Малан: Да. Така че това ще бъде два пъти по-бързо. И ние ще се направи, че тук в зависимост от мащаба. Тя все още е права линия, но по-ниска от червената линия. Защото за някои номер страници, ако е необходимо вие това много стъпки с първи алгоритъм, това ще ви отнеме половин като много стъпки с втората. И така жълтата линия описва втората алгоритъм е просто ще бъде под него. Но това, което е наистина мощен е да мисля за третата и последна, и невероятно най-интуитивен алгоритъм, който има тази форма. Технически бихме нарекли тази логаритмична крива. Влезте база 2 на п в този случай. Но това няма значение. Важното наистина е фундаментално различна форма, което го има. И вие можете да помислим колко много по-кратък тази линия наистина е в дългосрочен план. Тя непрекъснато се увеличава. Тя не изравнявам перфектно. Но тя расте все така много по-бавно като проблемът стане по-голям и по-голям. И вие можете да мислите за него това way-- ако Verizon не само добавете една страница на следващата година, но на двойки броя на страниците в телефонния указател, първи алгоритъм сила вземат два пъти повече стъпки. Ако това е 1000 страници тази година, 2000 страници на следващата година, Майк може да се окаже, че много по-далеч. Така че това е 1000 допълнителни стъпки, за да го намерят. Вторият алгоритъм може да бъде само 500 повече стъпки, за да го намерят, защото отново, Летя през него по две наведнъж. Но какво да кажем за трета алгоритъм? Ако Verizon удвоява размер на телефонния указател следващата година от 1000 г. до 2000 г. страници, колко повече стъпки е третото ми алгоритъм ще отнеме? Да, това е само един. И това е най-мощният идеята. Можете да вземете 1000 страница захапка от този проблем наведнъж. И сега, ако считате глупав сценарий, но вид говори за мощност на този вид intuition-- ако телефонен указател имаше, като, четири милиарда страници, се чувства като един наистина голям проблем. И наистина, това може да вземи ме четири милиарда страница Оказва се, за да намерите Майк Смит в които случай с първия алгоритъм. Но колко стъпки ще го вземат в трета алгоритъм да се намери Майк сред четирима милиард парчета хартия? Така че четири милиарда ви разкъсат на две. Можете да получите два милиарда. Тогава един милиард, а след това 500 милиона, 250 милиона, 125 million-- но се чувства като това е Ще отнеме известно време. Аз може да се наложи 32 пръста да брои до толкова висока. Но това е наистина като Едва 32 сълзи страница. Можете да отидете от четири милиарда до една страница разделителната първоначалния брой на Страници в половината 32 пъти докато сте останали с само, че една страница. Сега, разбира се, аз съм измама тук. Това не е, че ние сме просто е нещо като от глупав изцяло с първите две алгоритми. Аз съм в измама в някакъв смисъл, или Наистина съм деблокирането предположение. Какво е вярно за телефонния указател в първоначалния си вид, който позволява ме дори да използвате тази трета алгоритъм? Да? АУДИТОРИЯ: Тя е по азбучен ред. DAVID Малан: Тя е по азбучен ред, нали? Ако беше само в произволен ред, това е загуба от време, целият този разговор. Трябва да разгледаме всеки страница, ако това е в произволен ред да се намери Майк Смит, преди да може да се заключи, че той е там или не. И така, който искаме ъгъл Отнеха е, че имам Предполага се, че някой друг в този случай вършеха работата за мен. И така, че в крайна сметка покани въпросът, добре, чакай малко. Как ще се справи 1000 страниците на имена и телефонни номера? Това всъщност е различен проблем, нещо ние ще се върнем в бъдеще. Но когато си мислиш за уеб сайтове като Facebook и Google за Gmail и неща, като на Google собствени индекси за търсене, когато имаш милиони или милиарди парчета от данни се съхраняват тези дни, searching-- и да не говорим сортиране тези problems-- в крайна сметка е едно предизвикателство към себе си. И наистина, това тогава е само едно от тези предизвикателства че ние ще се търсят в. Така че сега нека да отнеме малко време и да разгледаме най-CS50 себе си и да ви даде усещане за това, което е в магазина този семестър. Всъщност, ако не сте го направили, да погледнете този URL. И тъй като Patrick намекнато да, тази година ние сме изготвянето на значителни инвестиции всички повече в подкрепа на курса структура от гледна точка на TAS и КО, работно време, секции наличност, и цифрови материали онлайн, както и. Всъщност, от гледна точка на курса лекция, ние сме тук днес. И очакванията тази година официално на курса се грижат за днес, по време на последната лекция, и разбира се приблизително в средата на семестъра с всяка лекция в между предоставен обикновено в петък следобед онлайн, както за Йейл студенти и студенти от Харвард през тази година. В действителност, един от най- фундаментални промени е че ние сме за приемане на Harvard парадигма много както направихме тук миналата година и сега тази година, така че по същия начин, все още най-филм от лекции на курса в Кеймбридж но да ги предоставят по-рано отколкото имаме в миналото така че тези, на you-- ако би искал да, например, имаме преднина на материали на първия уикенд скоро от втория уикенд, ще трябва достъп до тези видове материали, търсене, вмъкване, hyperlinkable до ресурси, свързани с всички по-рано. По отношение на темите, за да ви дам чувство за trajectory-- на курса и някои от това може да е жаргон за сега, но не за дълго, бъдете сигурни. Ще започнем днес, в крайна сметка, с разглеждане на един програмен език, наречен Scratch. Ние ще премине след това следващата седмица, за да нещо, наречено C и след това погледнете в друга сграда блокове за решаване на проблеми, неща, наречени масиви и алгоритми, как използваме памет в наша полза и недостатък, и неща като структури от данни, и след това към края на опашката на клас гледа машинно обучение и погледнете в друга език, наречен Python, как мрежата работи, как в интернет по- обикновено работи, протоколи като HTTP, езици за бази данни като SQL, JavaScript за мрежата, и в крайна сметка връзване Всички тези заедно. И наистина, в края на деня, вие не ще научите в този клас Scratch или C или Python или SQL или JavaScript. Можете вместо това ще по-общо научите компютърни науки и основите от него, и ще научите как да програмирате в произволен брой от тях езици по протежение на пътя. Така че наистина, една от целите на курса в края е да се свали всичко на курса обучение колела от тези последни седмици така че след това, можете да се върне към собствената си fields-- дали това е или е Не компютърни науки или инженерство, в естественото науки, изкуства, хуманитарни науки, или beyond-- и донесе някои от този идеи разбира се и тази област е идеи и практически умения на свой собствен домейн с цел решаване на проблемите в него. Това, което ще се прави тук междувременно в повечето четвъртък след днес е с глави на курса водещи това, което ние ще се обадя за сваляне на проблемните комплекти на курса. Така че всяка седмица, когато ние са създали проблем, ние ще се разхождах из на място като този предизвикателства на курса, Предлагаме ви няколко съвета и трикове и техники за дизайн. Но ако не сте в състояние да направят тези в човек, реализираме тези същата ресурси ще бъдат внедрени от една от курса помощник-учители в проблема определя себе си, както и. Проблемът определя тази година, за разлика от миналата година, на базата на обратна връзка, все още ще бъде освободен в петък. Но вместо да се дължи последващото петък, като по този начин ви дава само седем дни ефективно ще се дължи 10 дни по-късно. И наистина, това ще означава, че те ще се припокриват с един уикенд. Но ние се надяваме тази година особено това ще позволи на студентите по-добре да се настанят прилив и отлив в графиците си, дали това е академици или extracurriculars или атлетика или междинен сезон. Можете или предно зареждане или обратно натоварване си седмица с акцент върху CS50 основава на действителния курс собствения си седмица натоварване. Проблемът се определя ще обхване редица езици, въпреки че ние ще се съсредоточим предимно в началото на деня на C преди да се съсредоточи след това на по-висока ниво, повече уеб-ориентирана езици. И след няколко често задавани въпроси here-- трябва ли да вземе клас като CS50 като първата година? Така че абсолютно. И наистина, това не е непременно нещо трябва да се отложи, докато не намали зъбите си върху други видове упражнения. Но по-скоро, помисли че в продължение на много студенти, включително и аз назад в деня, това е една много непозната област, особено ако никога не вземе AP CSA или нещо подобно, че в гимназията. Но осъзнавам, че в началото на деня, дали това е този курс или някакъв друг въвеждащ курс, сега е наистина най-доброто време, Мисля, за да се намери някакъв нов път или свежи академичен интерес, както добре. И след като с друга courses-- така една от основните разлики тук спрямо Харвард е само, че отнеме четири курса на семестър в Харвард по някаква причина. И вие всъщност дърпат на разстояние около 36 игрища в общия в течение на четири вашите години, което означава, обикновено четири или пет класове. И аз мисля, че е съвсем справедливо да се каже и да не носим CS50, с дизайн, е Вероятно не от типа на класа че трябва да се обикновено вземете с четири други курсове за общо пет защото psets са от проектира доста интензивно. Всъщност, аз също научих това през деня. Аз не бих се опише CS50 и компютърни науки, програмиране като толкова много трудно, тъй като е просто отнема много време. Това не е едно от нещата, където след вечеря, можете може да се върне в общежитието стая, седнете и започнете с акцент върху pset мислене, всичко е наред, Аз ще взрив този навън тази вечер и след това преместете към следващата ми предмет на следващия ден. Понякога просто се удари в стената. Може да има грешки в кода си. Не е задължително да знаете как да се реши някакъв проблем. И една от основните характеристики на програмиране за себе си и до днес е просто вид трябва да се вземат крачка назад понякога, спи върху него или смятате, че върху него в течение на джогинг или някаква друга дейност, и след това се върна към него прясна. И просто се нуждаят от тези прозорци от време. И наистина, това е защо ние сме удължи периода от време, На разположение на проблемните комплекти тази година и също така, на този адрес Сложих по-рано, че да какво ново този семестър, почиства проблема определя така, че те са фундаментално не по-малко строга, и храна за вкъщи са не по-малко, но има много по-малко пред въпрос, много по-малко подготвителна работа, която трябва да направя в предната част на всеки проблем набор, както ще видите, преди да можете да всъщност се потопите в месото от него. Така се разбере, че тези и други промени са на хоризонта по-добре да се настанят студенти, но в крайна сметка, за да се уверите, че храна за вкъщи са наистина толкова висока, колкото е възможно. Така че, докато повече работа, отколкото да го може да бъде в типичен клас, ние се надяваме, че се връща за ти и на храна за вкъщи за вас и уменията и идеите с която можете да излезете са още по-убедителна, като резултат. И за да сте there-- и това е един от ключовите храна за вкъщи, като Patrick намекнато earlier-- е поддържаща структура на курса. Така не само се CS50 имат един от най-големите щабове курса на територията на колежа. Тя също има една от най- Най-студент. Наистина, CS50 миналата година е първият клас да имат бакалавърска преподаватели. И доказателство за това успех правим сега много други курсове в Yale CS Трябва, че, както добре. И за студенти, по-специално, Дали тези TAS и разбира асистенти да бъде в подкрепа цяло мрежа от ресурси за поддръжка, Сред тях секции или рецитации, седмични възможности да имат повече интимни разговори и прегледи на материали, насочени за различни писти, за студенти по-малко удобни, по-удобно, или някъде по средата. Това ще следва наличието на лекциите от няколко дни всяка седмица в понеделник и вторник. И тогава офис hours-- един-на-един възможности за помощ от КО на курса и TAS ще бъде в сряда и четвъртък и неделя при множествена пъти, в които ще бъдат публикувани на интернет страницата на курса, дори повече от миналата година, както добре. Но това, което е от ключово значение за CS50, ако не Вярно е малко необичайно, е култура на курса, че сме се опитали да се култивира, и в продължение на много години Кеймбридж и сега най-наскоро в Ню Хейвън. И в действителност, идва тази Събота, ако не сте чували, е Ден CS50 пъзел, който има нищо общо с компютърни науки но е изцяло проектирана да изпрати съобщение, че компютърните науки е за решаване на проблеми. И наистина, ако искате да се партньор с един или два или три приятели и образуват екип за CS50 Пъзел ден, да разгледаме в обявите, че са на път навън. И три часа на пица и пъзели и награди очакват. И наистина, за първи път тази година, тя няма да се проведе съвместно с Харвардския. Той ще бъде тук, независимо в Йейл. Така че държи под око за тези, ако вече не сте. Най-всеки петък в семестъра да се опитаме да направи голяма класа се чувстват малки и донесе около 50 студенти на обяд с персонала на курса, с възпитаници, приятели от индустрията, за да се говори за какъв е животът след клас като CS50 и през лятото и след дипломирането. Така че държи под око за покани за това. За първи път някога през тази година ще имаме задръжте първата по рода си CS50 кодиране конкурс, по желание възможност за включване в средата на семестъра, след като всички от нас са имали някои от шест или седем седмици на програмиране в C под коланите си да се конкурират, ако така ще choose-- отново на teams-- опитва да решаване на най-много предизвикателства колкото може по програмиране с ваши приятели срещу други. И към опашката на семестъра Ще можем чартърни някои автобуси, всъщност прекарат известно време в Кеймбридж, ако искате искали да се присъединят към нас, за така наречената CS50 маратон по програмиране. В 19:00 ще започнем. Около 21:00, ще имаме пица. Около 01:00 AM, ние ще трябва буритос. И всеки, който все още буден относно пътуване с автобус вкъщи около 05:00 AM, ние ще спрете за палачинки в ИХОП по пътя home-- с възможност 12 часа, за да се потопят себе си със съученици и персонал в окончателния проект на курса, което е възможност да излезе извън рамките на проблемни комплекти курса и проектиране и изпълнение на най- всичко от интерес за вас, че в крайна сметка ще бъде черта тук в Commons. Първият някога CS50 панаира последно година, изложба на края на семестъра или тържество на това, което всички в класа бе постигнато, особено тези, отново, който отиде от нищо нещо, от нула до 60, без да има предварително фон и представянето, в крайна сметка, нещо за целия кампус и, ако онлайн, света, за да видите, както добре. Сега, тези тук са само някои от най- TAS и КО, която прави CS50 възможно. Позволете ми да покани всеки на тези членове на персонала които са тук, за да излезе на сцената, както и главите на курса, да предложи някои думи вдъхновение, както добре. АНДИ: Здравейте, момчета. Може вие ​​да ме чуе? Благодаря за присъедини към нас по този прекрасна, дъждовен четвъртък следобед. Моето име е Анди. Аз съм младши в Бъркли. И заедно с Стелиос и лятото, ние ще ви бъде три главата преподаване асистенти за тази предстояща година. Така че, предполагам, шоу на hands-- колко от вас нямам никакво намерение да бъдеш CS основен нито наистина гмуркане дълбоко в компютърните науки като основна тук? Awesome. Това е брилянтен. Така че аз съм всъщност световните дела и когнитивната наука голяма. Аз буквално дойде Yale с намерение от Никога не се налага да разгледаме номер някога отново в живота ми. Когато дойдох в Йейл, това е нещо, което никога не е бил в полезрението ми. Исках да се запознаят с поезия. Исках да се запознаят международни афери. Исках да се запознаят акварелни рисунки. Да, ние предлагаме клас на акварелни рисунки. Но аз никога не съм се интересувал в нищо STEM свързани. Но след това Колкото повече остарявам имам, толкова повече осъзнавах че всяка сфера наистина в някои чувство работят компютърни науки, или ако не компютърни науки, изчисление. В действителност, за моя глобалната работи Capstone проект, ние сме с помощта на аналитични данни да анализира терористични атаки за Боко Харам в Нигерия. И така, както можете да видите, независимо от какво голямо ти свърши преследването или това, което вашите интереси тук в Йейл са, програмирането и основите на каквото и умения са супер полезни. И CS50 наистина е добре оборудван, за да вид назаем много от нейните ресурси за вас, независимо от колко удобно сте или как се интересуват сте в преследването на класа. Лятото ще говорим малко по- малко за това, което вие сте Ще научите за тази година. ЛЯТНА: Здравейте, всички. Аз съм Summer Ву. Аз съм младши в Морс. И аз всъщност започна като CS50 себе си студент. Така преди три години, аз бях на една празнина година. Никога не бих взел CS клас в гимназията, но си мислех, че в свободното си време, че ще бъде готино да се научат как да се код. Така и направих едно бързо търсене в Google, Погледнах за това, което е на разположение онлайн, и видях това видео с Muppets и диджеи и готини сайтове. Аз бях като, искам да научите как да се направи това. Тогава взех курса, и аз просто се влюбих в него. Но си спомням, е толкова ревнив на деца, които биха могли да присъстват на Hackathon, присъстват Puzzle ден, посещават офиса часа, да получат помощ от TAS в лице. И така, аз никога не си представял че щях да получа шанс да бъде тук, участващи в курса, че за първи път ме интересуват от компютър науката и е причината, поради Аз съм компютърни науки основен днес. Така че аз ще ви предупреди, този клас няма да ви се простират. Това ще ви предизвикателство. Но тя също така ще ви научи как да направим нещата че ти никога не си представяли ли могъл. Стелиос: Здравейте, всички. Моето име е Стелиос. Аз съм младши в Branford College и основен CS. Аз също съм от Атина, Гърция. Аз съм наистина очаквам с нетърпение да отговарят на всички вас, в чата с вас в раздел, в работно време, в петък за обяд. Наистина съм развълнувана, защото ние сме поставени толкова много усилия в създаването на един уникален подкрепа структура за всички вас за да направите вашия опит с хода на най-добрите възможни. И се надявам, че въпреки че повечето от най-вероятно не са взели CS Разбира се, преди да се надявам, че е CS50 за вас е това, което предизвиква интерес да преследва повече компютър наука в бъдеще, както го е направил с толкова много хора в миналото. Така че ви благодаря за това, че тук, развълнуван да ви видя. Джейсън Hirschhorn. JASON Hirschhorn: Здравейте, всички. Моето име е Джейсън Hirschhorn. Аз живея в Silliman. И аз отидох в Харвард като студент и специалност социални проучвания и minored по компютърни науки. И една от основните ми роли тук е да подпомага този чудесен персонал като всички те ви подкрепят. В действителност, това не е всички от тях. Има 55 студенти и Завършва тук да ви подкрепят. И смея да кажа един от най-добрите части от курса за вас всичко става за работа с тях, все да ги знаем, Как да стигнем до тях види, както в CS50 и извън CS50 този семестър и в продължение на много семестъра да идват. Така че се надяваме, че ще взема Разбира се, защото се надяваме, че получите да си взаимодействат с чудесен персонал имаме на сцената. Лектор: Добре, нека да завърша като казва, че ще бъде забавно. DAVID Малан: Е, благодарение на целия ни екип. Позволете ми да намаляване на осветлението и позволи малко повече от нашия екип, както от Кеймбридж и Ню Хейвън, да кажа здрасти като тези момчета подават разстояние. И след това ще можем да преминете към първият от нашите програмни ангажименти с този език, наречен Scratch. Така че благодарение на екипа. Нека намаляване на осветлението и чуя от няколко други. [Аплодисменти] [Възпроизвеждане на видео] -В Мисия на CS50 е да правите по-удобно с един напълно нов начин на мислене, това изчислителна начин на мислене. -Това Направени компютърни науки интересно, което е нещо, което наистина не осъзнават е възможно, докато взех класа. -Аз Бях като, чакай. Аз съм наистина превода мислите ми в компютър в момента. -Even Ако не разполагат с никакви фон по компютърни науки или никакъв опит, това е всъщност класа за вас. -Така Определено искам моите ученици до просто се вълнувам за компютърни науки. Не само програмиране, но мислене като компютърен учен е наистина това, което искам да се опита да научи моя първокурсник. -CS50 Е трудно и възнаграждаване. -Опит. -Extravaganza. -Това Е ни връща към следващото ниво. [МУЗИКА] -В TFS са, мисля, на живителната сила на курса. -Аз Съм развълнуван да има моите ученици аз съм помагат имаме, че аха момент да се реализира това, което всъщност се опитва да се направи, за да разбера как да се направи една pset. -CS50 Определено е трудно разбира се. Но за разлика от всеки друг Разбира се наистина в Йейл, тя има такава голяма, подкрепяща общност. -Можете Абсолютно не Трябва да знаете нещо за кодиране, за да бъде в състояние да вземе курса. -Това Е невероятно да гледате колко далеч хората идват в един семестър. -Ти Не бяха само седи в Вашата стая се научим да код, но това е повече от просто един клас. Това беше опит. -В Най-добрият начин да се научи концепции и да обработва тях е с преподаване на другите. -Какво Е телефон разделянето? [МУЗИКА] -И Това е CS50. [МУЗИКА] -Това Е CS50. -Got Проблем? тя Tear наполовина. [МУЗИКА] Хвърли го. DAVID Малан: Добре. Така че нека да tackle-- в малко малко, между другото, това е е тази традиция за някаква причина в продължение на 10 години да служи торта в началото и в края на CS50. Така че ви очаква в края на Днес, в допълнение към учебни програми, ще бъде някакъв сладкиш, както и персонала на курса, за да кажа здрасти. преход Но сега, нека до Първо ни езици, където ние ще прекарат наистина само една седмица и един проблем постави на този домейн, Scratch. И вие ще откриете, ако сте програмиран преди, много на идеите и възможности са ви познати. Но вие ще откриете, че това е забавно по протежение на пътя да разбера как точно да се преведе някои от идеите, които вече знаете за тази среда наистина да впечатлите семейството си и приятели с работата си, което може да отидете онлайн, ако така решите, след това. И ако нямате предишен опит и са сред повечето студенти по-малко удобни, осъзнават, че много от идеите, ние Просто изследва с reality-- неща като телефонни книги и обслужване и така forth-- превежда доста добре с компютър, но не и ако се използва, Първоначално, на език, като този. Така че това е една програма, написана на език, наречен C. И ние ще прекарат доста малко от време в С, в крайна сметка. Но шансовете са, това ще изглежда малко загадъчен да ви на пръв поглед. В действителност, има много странно синтактични, скоби, ъглови скоби, фигурни скоби, кавички, и точка и запетая. И наистина, ако се потопите в програмиране за първи път гледа и се опитва да създаде неща като това, честно казано, вие се затънала толкова толкова често в просто глупав дреболии, че няма нищо интелектуално интересно за него. Но представете си, ако можете да създадете същата program-- които както може би си вид заключим, вероятно отпечатъци "Здравей, свят" един или друг начин. Ние можем да дестилират, че същата идея в само две парчета пъзел, ако щете. Наистина, Scratch е интересно защото това е този графичен език. Можете да влачите и пускате тези пъзел парчета, които само блокировка ако го прави логически смисъл да го правят. И така, в самото начало, ние скоро ще видите, че това е как ще приложи същата програма, само с две парчета пъзел че доста много прави това, което те казват. Но ще видим в един момент, че някои на градивните елементи, които ние намекнато до по-рано и още няколко са всичко, което в крайна сметка ще се представлява някои от нашите най-ранни програми. Отиваме да има неща, като functions-- просто действия, които правят нещо, като кажа здрасти, свят. Отиваме да имат вериги, неща, които предизвикват цикли отново и отново, просто ни харесва направих преди малко с търсенето за Майк Смит. Променливи, като по алгебра, ако Трябва х или у, които могат да съхраняват редица. Е, в една програма, която действително може да съхранява повече, отколкото само номера. Можете да съхранявате думи и изречения и графични и други неща на едно място. Булеви изрази, просто questions-- да или не, вярно или невярно. Условия, решения за приготвяне въз основа на тези да / не отговори. И след това по-красиви неща, като масив и теми и събития и всякакъв брой други функции, но всички от които Карта много добре да много приятелски блокове като този. Това ще бъде функция, а лилаво пъзел парче, че просто казва това, което името му is-- в този случай, да кажем. И тогава често, има бяла кутия, която ви да въведете или плъзнете някои стойност в. И това е, което е като цяло нарича аргумент или параметър. Това е начин за промяна на подразбиращото се поведение на пъзел парче или функция, така че го прави нещо по поръчка за Вас като каза: здравей, свят или здравей, Анди или здравей, Jason или някаква друга присъда вместо. Ако искате да се каже, че един lot-- буквално forever-- можете да вземете друг пъзел парче, наречено завинаги и просто скрепени на двете заедно по този начин. И това контур, като на снимката подсказва, означава просто да кажа здравей, свят завинаги, отново и отново и отново. Или, ако искате само да го направя по- определен брой пъти, около 50 пъти, там ще бъде още един пъзел парче за that-- повтаря 50 пъти. В същото време, ако искате да има променлива в този език ние сме за да играе с, можете да използвате оранжево блок като този. И тази променлива I произволно наречена I за число. И аз просто го настроите равна на 0. И така, може би аз, в това case-- този variable-- представлява резултат на някого в една игра. Може да започне от нула, и всеки път, когато направи гол или нещо подобно, вие получавате една допълнителна точка. Можете да задавате въпроси в Scratch. Ако ние влачите и пускате пъзел парчета в момент като този, можете да задавате въпроси като, добре, е, че по-малко от 50? Може би имате нужда от 50 точки, за да спечели. И така, това би било въпросът ще попиташ. Или, по-общо, вие Може да се каже, е х-малко от Y, където има две променливи включен? Сега, това е много -голяма на пръв поглед, но наистина не всичко, което по-сложна. Това е само една комбинация на условия и променливи и булеви изрази, за да питат три questions-- е х-малко от Y? Ако е така, да кажем така. Say, х е по-малко от Y. Иначе, ако х е по-голяма от Y, останало х трябва да е равно на х. И докато с Майк Смит, имаше четири сценарии, тук в света на числата, х е било по-малко от, по-голяма от, или равна на. Всички ние имаме три вилици в пътя. И тогава там е любител пъзел парчета, като този за неща като масиви, където ние сме ще бъде в състояние да съхранява информация. Отиваме да видим блокове, които позволяват ни за изпълнение на множество нишки, Друга особеност ще използваме, и тогава също нещо, наречено събития. Но преди да стигнем до това точка и да се създаде дори, в крайна сметка, нашият собствен потребителски пъзел парчета, нека всъщност отвори самата програма. Така че това е нулата. Той е наличен в scratch.mit.edu. И вие сте добре дошли да играят сега или по-късно, както добре. Това се случва, да бъде на линия версия. За хората, които не го правят непременно имат голям интернет, Можете да изтеглите същото софтуер, както и. И там е наистина само три компоненти на този софтуер. На най-горния ляв ъгъл на екрана е нещо етап че Scratch, който по подразбиране прилича на котка, живее вътре. Той може да се движи нагоре, надолу, наляво и надясно и осъществяват редица други неща, и може да изглежда по много начини, базирани на костюмите, които ви възлагат на него. Но това е, което ние ще наричаме спрайт, нещо като характер. И вие може да имате няколко символи, както скоро ще видите. В средата са сега всички тези пъзел парчета и тези категории или палети от него. Така че точно сега, аз кликнали върху Motion. И така, аз виждам всичко на движение, свързани с пъзел парчета или на блокове, така че функциите, които имат общо с върви нагоре, надолу, наляво или надясно, или някаква друга операция. Но ако се кликне върху Изглежда, вие може да видите неща, като блокът да речем че ние видяхме само преди миг. И ако щракнете върху Control, ще видите неща, като на повторението и завинаги и ако блок че видяхме преди малко. И така, вие ще откриете че ние просто ще се почеше на повърхността на някои от пъзел парчета заедно, но всичко е доста интуитивен и точка и щракване. Всъщност, нулата е проектиран за по-малките ученици да им помогне да се даде отдушник за творческо мислене. И все пак чудесно, това е чудесен трамплин да точно идеите ние ще изследват в C и Python и JavaScript, както добре. На дясната ръка, най-накрая, тук е това, т.нар скриптове областта. И това е само празен лист с която започва да се напише програма. И аз ще се точно това. Сега, аз се случи да се знае, където нещата са защото аз съм направил това на няколко пъти. Но аз знам, че по силата на категорията на събитията, там е този блок here-- когато зелен флаг кликнали. И забележи, ако намали и обратно в тук на сцената, Scratch живота в рамките на тази малко правоъгълно свят, на върха, който е зелен флаг и червен знак стоп. Така че отидете и да се спре, съответно. И така, това, което искам да направя когато това зелен флаг е щракване? Е, нека да отиде в тази Изглежда категория. И нека да вървим напред и влачите и пускате това. И забележи, веднага след като тя стане близо, те са нещо като магнитни. Така че, ако сега мога да отида, щракне заедно хубаво и чисто. И аз ще отида напред и кажете нещо като здравей, свят в продължение на две секунди. Нека отдалечаване и кликнете сега и зелен флаг, и да кажа, здравей, свят. Добре. Така че всичко е наред и добра. Не всички, че вълнуващо. Нека си го малко сладко направи. И знам, че в предварително, Scratch случва да дойде с някои сладък неща като това. Така че играе звук мяу докато направи. Така че нека да направим това. [Мяу] О, това е възхитителен. И ако аз го кликнете again-- [Мяу] И отново. [Мяу] Но продължавам да се налага да се реанимира Scratch. Но не мога да направя по-добре от това. Защо не мога просто плъзнете три от тях. И сега това е три пъти по-очарователни. [Мяукане] ОК, всъщност, това е малко страховито. Така че ние се нуждаем от нещо по средата там. Ако отида да Control, тя изглежда като всъщност има за изчакване блок. И така да забележите, ако мишката върху there-- и нека да направим това малко по-голям. Ако мишката, то се случва да застане на място. Така че изчакайте една секунда, изчакайте една секунда. Нека да удари зелен флаг отново. [Мяукане] ОК, малко по-естествено, но не е много ефективен. Така че това е правилно, ако моята програма е Целта е мяу три пъти. Но това не е много добре проектирана. I вид нарязани някои ъгли. Аз имам малко мързелив. Какви чувства like-- какво да изглежда да са направили лошо, ще ви кажа? Да? Да, в средата. АУДИТОРИЯ: Използва се още памет, отколкото е необходимо, за да защото използвате толкова много различни линия. DAVID Малан: Да, така повече линии. И това не е задължително да бъде паметта, въпреки че може да се разглежда като по този начин. Но това е definitely-- има съкращения. И аз буквално вид повлече и пусна едни и същи неща. И ако нещо extrapolate-- ако това не е очевидно, here-- добре, как ще Аз мяу 30 пъти? Бих влачите и пускате, като, повече от 30 чифта пъзел парчета. И със сигурност, че има по-добър начин. И сме виждали по-добър начин. Какво интуитивно би да бъде по-добър начин? Да, просто използвайте една линия. Не копиране и поставяне. И наистина, по всяко време тази семестър, ако започнете намиране на себе си плъзгане и пускане, или наистина копиране и поставяне, опасен навик да влязат в защото това просто не е много за поддържане. Например, ако искам да се промени звука на нещо друго, Аз трябва да го промени сега в три места, вместо само един. Защото наистина, ако аз разбие away-- съм просто ще го разграничи такова. Нека да вземете повторение блок, и след това върху три, въведете три, хвърли някои от тях далеч от просто отдалечаване. И след това да го забележи не изглежда като тя се вписва, но магнетично, то се случва да щракам не само в място но расте за да пасне на формата. Така че това е добро. И сега, ако аз кликнете игра. [Мяукане] Много хубаво. Добре. И сега това е много лесно да се промените, също, защото мога просто променят един брой на едно място. Но това също не е всичко, което интересно. Нека всъщност имат Scratch не мяу, но се движат. Пусни ме да Motion и да се премести на 10 стъпки вътре of-- Опа, нека да се определи това. Нека да го премести 10 steps-- Всъщност, нека да не се повтарят. Нека вземем един контролен блок, и направете следното завинаги. Forever, се движат на 10 стъпки. И натиснете Пусни. ДОБРЕ. Така че за щастие, той спира. В противен случай, децата ще получат много разтревожени когато те някак губят своята котка. Но поне мога да плъзнете го обратно в екрана. Но това не е всичко, което голяма от игра или анимация. Би било хубаво, ако може би той отскочи от ръба. И така, какво ще правим? Какво конструкт ни е нужно да има Нулата реши да скача, мислите ли, че, дори ако никога не сте виждал Scratch преди? Да, в гърба. АУДИТОРИЯ: Вие се нуждаете от ако блок или ако-тогава. DAVID Малан: Да, така че някои вид, ако блок или ако-тогава. Така че в действителност, ние имаме един от тях тук. Така if-- така че нека да получите отървете от движението. Нека да увеличите така че е по-голяма. Така че какво ще кажеш за това. Forever, ако Sensing-- ние не сме виждали преди. Имам нужда от Булев израз. И се оказва, ако докосва какво? Ако докосва ръба, какво искам да правя? Е, ако се върна, за да Motion, Оказва се, о, не мога да се обърна. Нека да плъзнете това в тук. Защо не мога да отида напред и завърти на 180 градуса? А сега, нека просто се движат в края. Аз може да изложи на движението при началото или края. Но логично, всеки път, когато се движат, I искате да проверите, съм докосване на ръба? Am I докосва ръба? Am I докосва ръба? Така че логично аз се обърнеш ако е така. Така че нека да удари игра. ДОБРЕ. Така че е малко бъгав, така да се каже. И бъг е просто грешка в компютърна програма. Но поне това е работа. И в действителност, не мога да отида в тук. И нека да се направи, че не 10 стъпала на време, но това е всичко, анимация е. Това е всичко, карикатура или дори един филм е. Нека да се движат на 20 стъпала наведнъж. Така че 20 пъти повече неща се случват веднъж, или два пъти повече, в този случай. И той се движи по-бързо. Нека да се промени до 30. 100. 1,000. И това се случва много по-бързо. И това is-- да, ОК. Така че сега ние просто каша с него. ОК, така бъги. Но ние можем да го измъкне от начина, по който тук. Но ние можем да направим по-забавно с това, също. Какво ще кажете за this-- той е с главата надолу. Но се оказва, Scratch-- и има действително, Аз трябва да се отказваме, не академичната стойност на това, което аз съм за да се направи. Но ако се отворят микрофона, нека го спре и да направи нещо подобно. Ох! [СМЯХ] Това беше възхитителен. Благодаря. Сега, това е, което гласът ми изглежда, когато аз викам ох. Не мисля, че хванахме си смях. Това е добре. Нека да спаси това като "ох". Да спасим това като "ох". И сега ние ще се върнем към скриптове. И сега аз need-- нека да видим, Sound. О, да играе звук ох. Така че, ако аз съм докосва ръба, нека първата игра ох, и след това се обърна. А сега нека да го сложи в средата. [Казва "ох"] Два пъти по-бързо. ДОБРЕ. Но това е буквално прави това, което искам да кажа. Така е и в действителност вярна, това е само малко досадно бързо. Така че нека да добавя нещо по-интересен с това. Нека всъщност отвори едно, че съм направил по-рано, сполучливо наречен любимец на Cat, който прави това. Ето сценария тук. Какво е това ще направя в английските термини? Какво е това за цел да направи? Да, нека се some-- така ли? АУДИТОРИЯ: Когато домашни котката, тя meows. DAVID Малан: Да, така че, когато домашни котката, то се случва да мяу. Така че, с други думи, там е сега а завинаги линия все още, съчетана с условие, комбинирани с Булев израз, комбиниран с двойка функции, ефектът от които, след като аз играя тази програма, не е нищо се случва, докато не преместите курсора по-близо и по-близо и по-близо and-- [Мяу] След това е като зоологическа котката. [Мяу] Само веднъж ли всъщност преместите курсора над него. Сега, аз също шибна не домашни любимци котката, която прави това вместо. [Мяукане] Така че той просто постоянно мяукане. [Мяукане] Но ако стане твърде close-- [Мяукане] [Рев] Е, как става това? Сега просто трябва двупосочно разклонение на пътя. Ако докосва показалеца на мишката, След това играе звука лъв. Иначе просто пуснете звука мяу, и след това изчакайте три секунди, така че че това е вид правене че е много спокойно. Добре. Така че това е комбинирането още няколко идеи на едно място. Нека да погледнем на този пример Аз шибна наричат ​​теми. И това е фундаментално различно в това, че тя лостове характерна черта на мнозина език за програмиране, наречен теми, способността на дадена програма да се буквално направи две неща едновременно. В действителност, тези дни, ако използвате Google Docs или Microsoft Word, и вашият документ е постоянно се правописа проверява дори колкото type-- или сте удари Command-P или Control-P и печат нещо, това е отпечатването, докато вие продължавате да пишете. Програми днес наистина може да направи множествена неща наведнъж, точно като в Scratch тук. Така че тук, имам две спрайтове Сега, една птица и една котка. И ако щракнете върху всеки от тези знаци един по един, Виждам в момента на птицата скриптове в горния десен. Сега виждам на котката. Бърд, котката. Така че всеки един от тях има свой собствен скрипт. Но забележете, какво пъзел парче те и двете започват с? Когато зелен флаг кликнали. И птица, когато зелен флаг кликнали. Така че, когато щракнете върху зеления флаг, и двете от тези скриптове или програми ще вървят паралелно. И вие ще забележите, че птицата е просто безсмислено подскачащи от ръба. Котката ясно е програмирана със стратегическо предимство. И-- [Рев] Добре. Така че котката е уловил птицата в този случай. Защо така? Е, известие първо ние просто трябва птицата просто безсмислено ще за това първоначално място, и след това завинаги, ако не докосва котката, просто се движат. И ако сте на ръба, скача. И просто се движат. И ако сте на ръба, скача. Но котката, междувременно, има някои допълнителни логика която казва this-- първо, просто така че това не е напълно предубедени срещу птицата, забележите, че съм използва зелен пъзел парче там че всъщност взима произволен номер. Отличителна черта на много езици е да се даде вие случайни или псевдослучайни числа. Така че в този случай, котката първоначално избира случайно число между, като, 90 градуса и 180 градуса, по същество, така че че там е малко на вариацията. И след това завинаги, ако се допират птицата, да играе на звука лъв. В противен случай, просто точка към птицата. Насочете към птицата. Point към птицата, която е пъзел парче сама по себе си в този случай. Е, ние можем да направим нещо друго тук. Нека да отворят програмата събития тук. И тук ние отново имаме две спрайтове, които изглеждат като тези две кукли тук. И това, което е интересно тук е това. оранжев човек има този зададете на пъзел парчета тук. Forever направете following-- ако е натиснат клавиша за интервал, след това казват, Марко, и След излъчване на дадено събитие. А междувременно, синият човек тук има this-- когато получите на събитието, каже Polo. Така се оказва, в Scratch и на други езици, има начини за две програми или две скриптове, в този случай, да общувам, така че, когато аз удари бар пространство, той казва Марко. А другият чува, че, така че да говори и казва Polo в отговор. Така че можете да се пишат програми, които всъщност взаимодействат по този начин. И ако аз направя това вместо това, Мога дори да добавите променливи, само с помощта на един спрайт в този случай. Това е особено досадно. [SEAL лай] Сега, известие за правото имаме някои допълнителни логика тук. Как да спра този печат от лай? [SEAL лай] Той прилича на дясната ръка страна е това, което е възпроизвеждането на звука. Но това е само играе звучи, ако това, което е вярно? Ако variable-- оранжево block-- заглушен е нула. Как мога да променя заглушен да бъде 1, което означава, че е вярно, прави това заглушава? Очевидно е, че друг скрипт, мога удари бар пространство, и сега той спира. Така че ние можем да имаме тази междуетажна през скриптове, както и, от просто споделяне на една променлива от другата страна на двамата по този начин. Сега, това не е всичко, което интересно. Да вървим напред и да направи това и се комбинират много от тези идеи с тази програма тук. Преди да направи това, макар, Какво ще кажете за един доброволец? Позволете ми да натиска на мен, защото аз не правя всъщност играе тази игра. Нека да има някой, ние не сте виждали преди. Трябва да се чувстват удобно, идващи на сцената тук, пред камерата. ОК, хайде нагоре. Много смел. Как се казваш? Идрис: Идрис. DAVID Малан: За съжаление? Идрис: Идрис. DAVID Малан: Идрис, хубаво е да се запознаем. Хайде нагоре. И сега, на собствения си мобилен телефон, да играеш Pokemon GO? Идрис: No. DAVID Малан: Наистина ли? Идрис: Да. DAVID Малан: OK. Добре. Е, хубаво е да се запознаем. Ела. Аз не правя един от двамата. Така че ние ще разбера заедно как да се играе този, който някой действително отиде и изпълнява в Scratch чрез промяна на котката да същество различни герои всички заедно. И ако аз цял екран това тук, ние ще за да видите следната игра заедно. Все още се зарежда все още зарежда. Хайде. Нека да направим това. Хайде. Тази игра е толкова голяма, че тя се разби. В готовност. Опитайте това още веднъж. Хайде. Добре. Ето. ДОБРЕ. Green флаг. Така че тук ние вървим. [МУЗИКА] Изберете средно ниво тук. Кликнете на синия човек там. Добре. И вие можете да използвате стрелката keys-- нагоре, надолу, наляво, надясно. Сега, нека да разгледаме като ние this-- направя и след това отива след характера там. Да. И сега го кликнете с мишката. О да. Ход. Къде е стрелката? Заповядай. Така кликнете върху там. Да. Добре. Така че сега, аз съм казал, че имате Poke топка, че ако щракнете върху него, той ще го направи. Много добре. При практикуването за днес, аз Намерих тази версия на играта? всъщност не е много трудно. Така че, ако искате да отидете отново тук, върви надолу към тази Poke топка. И след това да се вземе правилно. Опитайте да кликнете върху него. О, всъщност, това е магазина, очевидно. OK толкова близо, че. Никога не направи това преди. Може да достигне до това нещо тук. О, там ще отида. Чакай, има един там. О, има и друг. ДОБРЕ. Долу. Да, кликнете. ОК, това е много сладък. Добре, много добре направено. Тази игра не е много трудно. ДОБРЕ. Поздравления. Ето, ние имаме CS50 стрес топка за вас. Но помислете само за миг какво някои от храна за вкъщи са там. По-лесно от истинската игра, очевидно. Но всички ние сме ще тук е характер че вероятно има някакъв вид на линия, свързани с нея. Това не е котка. Това е този герой, вместо. И това контур е просто постоянно казвайки, ако стрелка нагоре натиснат, ако се натисне надолу стрелка, ако стрелка наляво натиснат или надясно стрелка натиснат, се движи нагоре или надолу или наляво или надясно. Или ако има друг пъзел парче там който казва, когато докосва друг спрайт, когато докосва един от героите до топката Поук, ако докосване, след това да направите това. Така че всички от нас идеи Използвам този момент наистина просто може да се приложи в този контекст, за да играете тази игра, както добре. Нека да вървим напред и да дръпне до един друг тук, в действителност. Нека да вървим напред и да дръпне нагоре, да кажем, това. Това е нещо, което ние ремиксиран. Изработени от някой от нашите студенти в Кеймбридж, и след това минах през и да се промени почти всеки случай на Харвард до Yale този път. Някой би ли искал да конкурират с бръшляна тук в друга натрупване От всички тези идеи? Хайде надолу, да. Как се казваш? ДИНА: Дина. DAVID Малан: Адина? ДИНА: Дина. DAVID Малан: Дина, хайде надолу. Добре, Дина. Така че тази игра получава по-трудно и по-трудно, защото в тази игра, Има променливи се използват, както и които са постоянно следене на какво ниво сте в играта. Така че хубаво е да се запознаем. Ела тук. И така, целта тук е да се справи на да направи своя път през лабиринт че този студент изпълнява. И само за да постави на сцената, всеки на тези снимки на екрана е със собствен дух, със собствен характер. Така че те са били по подразбиране котки, но студентът ги променили за различните бръшляна логата тук. И тогава ще видите, че само чрез използване на условия и вериги и функции и повече, можете да получите това. [МУЗИКА] [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Да, ОК. Да, продължавай. Първо ниво е много лесно. Вие просто трябва да отида там. Но отново, помисли, че това е само една контур слушане на стрелката keys-- нагоре, надолу, наляво, надясно. И сега е чувствителен блок. Много хубаво. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Много хубаво. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Много хубаво. Доста лесно, Crimson. Добре. Levels-- Охо. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] И отново, в тях три Харвард гребени, просто трябва логика казвайки, ако на ръба, скача. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] ОК, това, което правите е по-интересно, отколкото защо. Много хубаво. Много хубаво. Охо. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Мисля, че трябва да се жертват. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Бързо! [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Ница. Това е добре. Ще го получи. Да да! Много хубаво. [Аплодисменти] [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Nice! [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Схванах го. Хайде! Второ до последния ниво. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Добре. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Да. Добро използване на променливи тук. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Да. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Ница. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] ОК е. Ние трябва да стигнем до края. Там. Oh! [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Може да се кандидатира късно днес, но тя ще бъде на стойност то. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Можеш да го направиш! Да! [Аплодисменти] [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Това е наистина трудно. [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Ще ви дам още два живота. Можеш ли да го направиш? [MUSIC - MC HAMMER ", ф може да не се докосва  ТОВА"] Добре. Какво ще кажете за един голям кръг аплодисменти въпреки това. Трябва да второ до последно ниво. Благодаря. [Аплодисменти] Така че това е само за да се каже колко може да се направи с неща от този род. И осъзнавам, също така, че когато пъзел парчета не exist-- и наистина, това ще бъде една на правомощията с първия проблем комплекти и beyond-- е да действително да създадете свой собствен. И това е само един фрагмент на един от примерите вие ще бъдете в състояние да играе с онлайн, където ако не са вградени в Scratch нещо като кашлица пъзел парче, всъщност можете да го направите сами. И така, всичко това и още очаква. И само да рисува окончателно снимка на наистина това, което е напред в магазин за класа за вас, въз основа на някои снимки от съученици минало, позволете ми да намаляване на осветлението за последен път и ще ви покаже CS50. [МУЗИКА] Добре. Това е всичко за CS50. Сега се сервира торта. [МУЗИКА]