[МУЗИКА] [МУЗИКА] DAVID Малан: Добре. Това е CS50. [Музиката свири Tritonal, Cash Cash,  "Untouchable"] [МУЗИКА] SPEAKER 1: Отивам да Франция, и ти започваш, също. [МУЗИКА] DAVID Малан: Това е CS50, въвеждане на Харвардския университет да интелектуалеца предприятия на компютърните науки и изкуството на program-- и за първи път в историята Yale University, както и. Всъщност, независимо дали сте тук, в Кеймбридж или в Ню Хейвън или Маями или Сейнт Луис или Амстердам или където и да е по света като се CS50, компютър науката E50, CS50X, CS50 AP, всички ние сме едно и също. Добре дошли в CS50. Това, което ние have-- [Аплодисменти] [Смее се] [Аплодисменти] Така че съм направил грешка себе си някои Преди време, когато започнаха колеж. И аз имам в колеж, и аз реших да честно казано, се придържат в рамките на зоната си на комфорт. Аз накрая за обявяване на концентрация, или основен, на правителството. Ant, че е най-вече функция на мен е доста запознат с правителството или най-малко история или наистина ми хареса конституционно право в гимназията. И така, когато дойдох тук, аз вид на гравитира към неща с които вече бях запознат. Така ли е? Дай боже да направя лошо в класа. Аз със сигурност иска да остане в рамките на зоната си на комфорт, и това не е до второкурсник година, че аз най-накрая Стана нерва към стъпка крак в една класна стая, наречена CS50. И в този момент, е направил най-накрая осъзнават че, моят Бог, домашна работа в действителност може да да бъде забавно. Всъщност, аз бях един от тези деца че в петък вечер, когато р-набори ще бъдат освободени, аз ще се върна в стаята и се хвърли ми в нощта на P-комплекти. И за мен, това беше знак, че това е една област, за мен. Но това, което беше по-важно е Всъщност това, което направих се изправи този нерв да изследват водите непознати за мен и да получите извън собствения си комфорт зона и честно казано, аз само бях в състояние да направи това второкурсник година, като този клас / не. В действителност, това е последния ден, че Най-накрая преминаха и накрая обявен CS като концентрацията ми, извеждането ДЦК в този момент зад мен. И така, ние не сме се определят в Това, разбира се, за да включите всички вас в CS специалности или концентратори, но по-скоро, за да ви даде възможност да се надяваме да се отиде отвъд света с която сте в момента запознат и да върне от този свят умения и знания и акъл че можете да приложите към вашия собствен свят, независимо дали това е в хуманитарните науки, социални науки, естествените науки, или извън нея. В действителност, ако сте Чувствам се малко безстрашен да бъдеш в тази стая да не говорим в този клас, осъзнават, че ако историята е индикации, 72% от вас никога не са участвали в курс CS преди. Така е и с всички не означава случаят че студентът седнал в ляво или на дясно или в предната или зад вас знае много повече за CS или програмиране и по-специално от вас. Това не е в действителност по делото. И наистина, много от структурата за подкрепа че ние сме създадени в тази Разбира се през последните много години е за точно това reason-- да предостави на рампа, която все още излиза просто като стриктно и точно толкова висока, колкото ever-- но наклонът на което позволи на студенти по-малко удобни и по-удобно така, за да успее, независимо от преди неговото или нейното фон. Всъщност, това, което в крайна сметка въпроси в този клас не е толкова много, когато ти свърши спрямо съучениците си но когато сте в 12 седмици в крайна сметка по отношение на себе си в нула седмици, което е където ние сме тук днес. Всъщност и това може много добре и вероятно не изглежда като гръцки за много от вас. Но бъдете сигурни, че това и много повече ще бъде напълно в рамките на вашия хванете в малко по-малко време. Но днес, ние се фокусираме върху някои от идеите, по-високо ниво да ви даде вкус на CS50 и компютърни науки в известен смисъл на това, което се регистрирате, за. И наистина, компютърни науки може да се дестилира по- просто като изчислителна thinking-- мислене като компютър, ако щете. А има толкова много различни неща съставки, които отиват в това, но нека да предложи само три за днес. Ако целта на този клас, в крайна сметка е не да ви научи програмиране, не е да ви научи C или PHP или SQL или произволен брой думи и акроними в описание Разбира се, а по-скоро, за да ви научи да решаване на проблеми по-ефективно и да се мисли по-методично и повече алгоритмично, така да се каже. Нека видим какво точно означава това. Така че аз ще предложа мислене изчислително свежда за решаване на проблеми. Какво ви е необходимо за решаване на проблема? Трябва да input-- като приноса към problem-- имате нужда от продукцията, която е да се надяваме на разтвора, и тогава ще трябва процес, чрез който да се реши този проблем, който ние ще се обади на algorithm-- набор от инструкции за решаване на някакъв проблем. Но първо, нека да се съсредоточи върху първата и последният от тези входове и изходи. Компютри в края на краищата, както изглежда само разбира нули и единици. Но как може това евентуално да бъде? Дори ако не сте запознати изобщо с това, което е под предния капак, най-вероятно най-малко чух, че компютрите разбират binary-- само нули и ones-- но как може евентуално да направи нищо интересно? Е, една от темите на класа се случва да бъде този layering-- където днес, ние ще хвърлим един бърз поглед на най-ниското ниво детайли, но с всеки изминал ден, когато ние слой или абстрактен на върха на тези детайли действително да се реши по-високо ниво проблеми от интерес за нас. Така че тук е това, което бихме могли да наречем binary-- само с една азбука на 0 и 1. Но ние, хората са най-вече запознат с десетични. Декември значение 10. Bi означава две. И така, в десетичната система, ние имаме 10 цифри в нашата disposal-- на Разбира се, нула през девет. Така че, ако се вгледате в редица като това, че повечето от вас интуитивно просто хванете, че е 123. Няма нищо наистина трудно за това. Но защо 123 е? Е, ако мислите, че обратно на клас school-- или поне Между другото, което научих тази мило от ваша world-- може да се припомни, че ние третира тези неща в колони, или места. Така че ние имаме такива мястото отдясно. Десетките поставят в средата. Стотиците поставят в ляво. И след това как да стигнем от този модел symbols-- 1 2 блок 3 на това по-високо ниво идея, която ние знаем като 123? Е, това е просто някаква проста аритметика. Така ли е? Онзи там е по същество означава, ни даде 100 пъти 1 плюс 10 пъти 2 плюс 1 пъти 3. И разбира се, ако ние правим посочват математика там, това е 100 плюс 20 плюс блок 3 иначе известен като 123. Така че, ако сте на същата страница като това право сега и са удобни с т.нар знак система като човек, това е всъщност добре в рамките на обхвата си на комфорт да се помисли сега двоична система. Вземете див guess-- това представлява, в света на компютрите в binary-- какъв номер? Нула. Но защо е така? Е, оказва се, че колоните или места here-- те не приличаме правомощия на 10. 1, 10, 100, 1000, и така нататък. Те са, вместо да, доста просто, правомощията на 2. Така, 1, 2, 4, 8, 16, 32, и така нататък. И така, сега ние, разбира се, за да 0 тук, просто защото имаме 4 пъти 0 плюс 2 0 и 1 пъти 0, което, разбира се, ни дава 0. Но как мога да отида за представлява числото 1? Какъв е моделът на нули и единици, за да представляват с цифри, ние, хората знаят, като 1? 001. И 2? 010. И сега моделът започва да се повтаря. Сега е 011. И отново, 0 четири крака, един 2, един милион. Така че 2 плюс 1. Това е 3. И сега, за да представляват 4, ние не просто се промени, че 0 до 1. Ти нещо трябва да се извърши, така да се каже, и цифрите започнете обръщане около просто като в десетичната света. Така че това е 4. Това е 5. Това е 6. Това е 7. И така, ние сме брои толкова висока, колкото 7. Сега всички ние просто трябва е по-скоро bits-- повече нула и нечии. И наистина "бита", ако сте чу това term-- двоична цифра. Bit е, когато това идва от. И така, ако искаме да представляват по-големи числа, имаме нужда от повече битове. Но нека да се движат далеч от слайдове сега за нещо малко по-реално. Да предположим, че искаме да всъщност представлява това нещо. Ами нека да разгледаме сега най-малко демонстрация. Така че това е уеб базирано приложение, че един от CS50 собствена, Майкъл G, взети заедно това лято, за да помогне ни осветли точно тази идея. И би някой като да се подвизава на сцената пред всички своите съученици? Точно там в предната част. Хайде нагоре. Трябва да се чувстват удобно на камера и интернет. О, точно тук. ДОБРЕ. Ние сме ОК. Добре. Хайде нагоре. Как се казваш? Емили хайде нагоре. Така че това е Емили. Какво години сте? Първокурсник. Емили, хубаво е да се запознаем. Дейвид. Добре. Така че на екрана тук, ние имаме този сензорен екран което ще ни позволи да всъщност взаимодействат с тази програма, и това е просто един браузър. Той е Chrome пълен екраниран в момента, но това е програмиран от Майкъл да реагира по начин, който позволява нас, за да си поиграете с двоични цифри. Така например, тук ние не трябва три, но осем bits-- нули и единици. Точно сега, ние сме търси в брой 0. И наистина, всички осем нули в десетични означава нула. Така че това е всичко, което е се намеква тук. Така че, ако искате да представлява броят 8, какъв е модела на нули и такива, които искате? Можете просто да натиснете нагоре или надолу или на самите числа. Добре. Така че, разбира се, е 8, както можете да видите там. И ако искаме да да 16, какво ще правим? Да, просто го докоснете отново. 16. Добре. Така че всичко това е фин и добър, тя все още е на много ниско ниво. Ние трябва начин в реалния свят за Емили на действително представляващи тези неща. И така, да предположим, че ние се обръщаме тях нули и единици, което е много концептуална, в действителни крушки. Така ли е? Компютърът е физическа, механично, електрическо устройство. И му input-- поне ако можете да го включите в или такса it-- е да има захранване от батерията и електрони, вливащи се в и извън. Така че сега, защо не спрете мислене за бита като нули и единици, но нещо повече физическа като крушки тук. И ако Дан Armendariz може да се присъедини ме само за moment-- хайде up-- ние ще се редят на опашки заявление. Ела, Емили. За съжаление това е най- неудобно демо за вас някога. Ела тук. Отиваме да си вадя с благодарение на Дан Armendariz, друг член на нашия персонал, заявление, известен като двоичен крушка. Така че това, което имаме тук е приложение, IPad че има следната потребителя интерфейс на екрана, за Емили. Това е просто имам същия точната UI по същество това е там. И ако сега искате да представлява броят, да речем 8, как ще го направим това забележи в дясно, крушки, които имаме тук? Ах-ха. Magical. Така че, ако искаме да сега се превърне това в нещо малко по-голямо предизвикателство, и да вървим напред и да изберете произволна номер като броят 50 тук. Input това. И ако сега може да се справи с да излезе с номера 50, ще имаме страхотна награда за вас. ЕМИЛИ: OK. О Боже мой. DAVID Малан: аритметика наистина е трудно в предната на стотици съучениците си. Но 50 е отговорът тук. [Аплодисменти] И така, сега, това е писано да бъде демонстративен за Емили. Така че, тук, е малко повече светлина крушки съвсем като тези, но това е всъщност най- малки магнитни ленти. И това, което е готино за тези и причината да ги използват в CS50 е, че те подкрепят нещо, наречено на API-- програмиране заявление интерфейс, който е само един луксозен начин да се каже, че това, което един от нашите служители е през лятото се създаде заявление Ipad тук че говори по интернет на електрически крушки над тук, които са безжично свързан към друго устройство. Но сега това е опция за окончателните проекти. И така, Емили, ако бихте направили толкова като в края на срока, можете да украсите стая в общежитието В същото време с тях. Благодаря ви за Емили, както добре. [Аплодисменти] Но сега, нека да се обърнат вниманието ни към това, което че съобщението може да изглежда като, и това е малко нещо подобно. В действителност, това е Например само като закачка на какво ще стане от това, което е наречен заявка за API. И така, какво имаме тук, е просто точно вида на съобщение че след няколко седмици време в CS50, ще да е в състояние да изпрати нещо доста запознат като че действително тях се включва и изключва. Но всичко това е фин и добър. Така ли е? Имаме умствена модел се надяваме, за представяне на числа с нула и нечии. И от нули и единици, ние можем стигнем до по-голям брой, като 50, като Емили просто е, или ние може да се движи нагоре от това. И аз твърдя, че ние може да представлява неща, като букви, както и. Така ли е? Компютрите са далеч по- интересно, отколкото само номера. И така, как да отида около представляващи думи на екрана или имейли или есета или други подобни? Е, оказва се, че компютрите просто абстрактно отгоре на това ниско ниво детайли и хора преди известно време, дойде с произволна, но последователно, картографиране на номера на letters-- така че всеки път, когато видите една главна буква А на компютъра си екран, шансовете са това, което е под предния капак е модел на нули и единици че представлява броя, на тази диаграма, 65. И повече физически вътрешността на компютъра, са милиони неща, наречени transistors-- тези days-- които са просто минава, ако щете, нещата че може да отиде и изключване и така да си представите. Не осем от тези големи крушки но милиони тези малки малко светлина крушки, или ключове или транзистори, че може да се включва и изключва въз основа на начина, по който ги програма. И така, сега ние имаме начин на представляващи писма, както добре. Всъщност, ако трябва да използваме този картографиране тук и се опитват да всъщност правописа нещо, ние може да изглежда при този модел на десетични цифри точно сега. Така че ние няма да дори съсредоточи върху двоичен вече. Нека просто да ги разглеждаме като десетичен номер 72, 73, 33. Но това, което може това да представлява? Всеки, който има достатъчно фотографска памет да знам какво лимец на екрана тук? Да някои от тях. Така здрасти. H-I и след това удивителен знак, който не е действително на екрана. Но наистина има картографиране за всяко писмо до всеки номер че може да искате да въведете от клавиатурата. Но номера не трябва да представляват само букви. Така ли е? Всички ние знаем за изображения и фотографии и аудио файлове и видео файлове и др. Така че ясно можем да представляват -високо ниво неща на едно място. И така, какво е компютър прави се просто да изберете да тълкува модели на нула такива различно базирани на контекста. Ако кликнете два пъти по- Microsoft Word икона, виждате думи на екрана вместо цветове и картини защото дума не знае, че това е есе, че сте всъщност въвели. Ако вместо двойно кликване на JPEG или GIF или PNG, тя разкрива и е един образ, защото благодарение на .PNG Или .docx или каквото файла разширение е и каквото и софтуер че използвате знае да тълкува модел на нули и единици по различен начин въз основа на това, което е неговата цел в живота. Така например, този същата последователност от числа може да представлява колко червено, което правите искате, колко зелен искаш, и колко синьо искаш. И наистина, ако някога сте чували RGB-- толкова просто червено зелено синьо. И така, ако видя номера като този дайте ми 72 червено, ми даде 73 зелен, и 33 сини, това е начинът, по компютър с помощта на три bytes-- където байт е осем бита или 24 bits-- ще представлява доста неприятен нюанс на кафяв или жълто тук. И в различен контекст, биха могли тези точно същите модели в нули и единици означава нещо съвсем различни, както добре. Така че ние имаме сега е начин за представяне information-- нули и единици. На всичко отгоре, ние получаваме писма. На върха на тази, бихме могли да получите цветове. И нека приемем за днес че ние можем да получите аудио и видео и неща, така че много по- сложна от това. Но сега нека разгледаме как ние използваме тези входове и произвеждат тези, изходи Сега, когато имаме начин за представяне на тази информация. Е, ние се нуждаем от нещо нарича алгоритъм. Отново, набор от инструкции за решаване на някои проблеми Стъпка по step-- и по-точно, толкова по-добре. И така, един пример, с които хората са несъмнено по-малко познати тези дни, но въпреки това все още е с нас в областта на софтуера, е процес на търсене до някой в ​​телефонния указател. Сега, все по-малко хора знаят, всеки година това, което всъщност е тук тази реликва. Но да се върнем в моя ден, това е телефонен указател с хиляди страници и цифри и имената на хората от А до Z. И въпреки, че ние сме вид измама а bit-- това е най-вече жълти страници. Имаше и бяло страници в момента, които имаше всички тези имена и брой на действителните човешки същества. И ако искам да гледам някой в ​​една телефонен указател като този днес, разбира се, Просто напишете в първите няколко знаци на името си, и телефонът ми установи, че информация. Но процесът, чрез който вашия iPhone или Android телефон или каквото и да е всъщност намирането някой в ​​списъка с контакти е идентичен с това, което ние хората вероятно са направили за известно време. Сега мога да се възползвам от тази проблем, ако щете, и входовете тук не са нули и единици. Те pages-- като, да речем 1000 страници. И ако искам да гледам някой Харесва Майк Смит в този телефонен указател, Мога да започне в началото и да видим, че аз съм в раздел А и след това се превърне една страница време, търси и търси както аз правя на Б и С и на D'е и така нататък за Майк Смит. Смит започва с S, аз ще надявам се в крайна сметка да го намеря. Това algorithm-- че process-- правилно? Да. Вярно е. Аз ще намерите Майк, ако той е тук, но каква е уговорката, че може да предложи. Това е бавен. Така ли е? Знам, Mike S е нещо към втората половина на телефонния указател. Защо, по дяволите, аз съм като се започне от началото и ще страница по страница по страница. Така че, разбира се, мога да го обърнете около и да започне от гърба, но това се случва, за да получите ми там със същата скорост, ако willl-- страница след страница след страница. И това няма да работи, ако искам за да търсите някой друг, чието име идва по-рано в азбуката. И какво, ако аз правя това, което научих в началното училище, отново, прави неща, не от тези, но от двойки. Така 2, 4, 6, 8, 10, 12, и така нататък. Вярно ли е? Не. Това е вид на правилен. Но някои от вас, които роптаеха не, къде е проблемът, или бъг, грешката така да се каже. Да. STUDENT: Може да пропуснете над дясното влизането. DAVID Малан: Да. Мога да прескачам Майк Смит е защото аз бях взети две страници наведнъж и той просто се случва да бъде сандвич между тези две страници. Аз може да се разбере, че Аз съм на раздела T тъй като не бяха намерени Майк Смит все още. И така, какво може да се фиксирания да има? Е, ако го направя удари Ts в ​​телефонния указател, Аз може да се наложи да се удвои резервно един или така страница. Така че това е поправим, но това не е чак толкова проста като просто ще от две до ускори представянето ми. Но какво? Хайде. Какво е това, което повечето хора ще общо с този вид телефонен указател? Ти си дал телефонния указател. Какво правиш? Какво е това? Отиди в средата. Така чух отиде в центъра, и аз намирам себе си грубо в раздела M, така да се каже. И сега какво искам да правя? Добра работа. Как се казваш? Джеймс: Джеймс. DAVID Малан: Джеймс, всичко е наред. Какво да правя сега? Джеймс: Отиваш в половината има S-те. DAVID Малан: Добре. Отивам да отидат в половината, че има S-те в това, защото, отново, уговорка тук е че това нещо се сортира. Това е доста безполезен 1000 страници, ако Verizon всъщност не подреди тези неща за нас извеждащ Z. Така че, ако знам, че Майк е вероятно в втората половина на телефонния указател, Аз мога сега. [Смее се] Скъсайте с проблема на половина. [Аплодисменти] Благодаря. Скъсайте с проблема на половина. Това е всъщност real-- тази борба. Така разкъсване на телефонния указател в половината, оставяйки себе си с фундаментално същия проблем. Но, разбира се, два пъти по-голям. И ако аз следвам Джеймс отново съвети, и да отида тук. Аз казвам, о, сега съм в раздела T. И така, разбира се, аз може да се скъса телефонния указател наполовина още един път, оставяйки ми с един проблем, който е Сега една четвърт от размера. Така че аз съм отишъл от 1000 до 500 250 до 125 и така нататък. Той се чувства като аз съм като по-големи хапки от на този проблем с всеки повторение, или всяка стъпка в него. И наистина, по време Отивам да прекарат намиране на Майк Смит в този пример е толкова много по-малко, защото в крайна сметка аз съм Ще омаловажавам тази царевичен хляб книга надолу само на един самотен страница. И ако Майк е на тази страница, аз съм ще отида напред и да му даде повикване, които са го намерили. Но точно колко по-добре е, че algorithm-- че смея да твърдя, интуитивен algorithm-- отколкото тези, които ние започна с които ние сме много linear-- наляво, за да right-- с темпо от 1 или 2 пъти? Е, нека се построява този. Ние не трябва да се тревожи твърде много за математика или номера в този случай тук. Ние просто погледнете парцел. Така че по X, или хоризонтална ос, е размерът на problem-- колко страници са там. На Y, или вертикалата ос, е колко време е то ще ми отнеме да го решим. И може би това е колко страница завои, колко секунди, как many-- някои единица мерки. И аз съм привлече червени прави линии тук, защото ако всяка допълнителна страница от телефонния указател, изискам да се направи една допълнителна стъпка. Така че, ако Verizon добавя един по-страница на следващата година, Може би трябва да се обърне повече една страница да се намери някой като Майк Смит. Междувременно, втори алгоритъм, който Отидох с двойки, е една и съща форма. Тя все още е много линейна, много наляво, за да полето, като равни байта всеки път, но наклонът е малко по-ниско. Например, ако размерът на проблема бяха грубо тук и аз бях първият ми алгоритъм, Аз може да се окаже по целия път в горната част на тази червена линия. Но ако вместо това използвайте да twosies подход жълтата линия подсказва защото е по-ниска, че това ще отнеме ми малко време за решаването му. Но каква е формата на Третият algorithm-- отново, може би най-интуитивно алгоритъм? Е, това изглежда малко нещо като това. Това е извита, или логаритмична, във форма. И въпреки, че тя никога не вид се изравнява, тя асимптотично инча нагоре и нагоре и нагоре, но ужасно бавно в сравнение с всичко останало. И това, което е най-отнеме? Е, ние наричаме това влезте п. Но какво означава това всъщност означава? Ами ако Verizon удвои брой страници в телефонния указател следващата година от 1000 до 2000. Колко повече стъпки е моя първи алгоритъм ще отнеме? Първата ми алгоритъм. Може би още 1000 стъпки. Ако те удвои телефонен указател, аз ще съм да се наложи да прелистите друг 1000 страници, за да намерят Майк. Разбира се, ако вторият алгоритъм, може би 500, защото аз съм Ще два пъти по-бързо. Но ако Verizon удвоява броя на страници между тази и следващата година, с моята трета algorithm-- на разделение и завладяване, че Джеймс предложен, Ще наполовина и половина и half-- колко много повече стъпки ще тя ме заведе през следващата година да има телефонен указател с размер 2000? Само един. Защото с една хапка, мога да взема, от този проблем, половината от страниците далеч. И ако мислите, че за това малко по- лудо now-- ако телефонния указател не прави има 1000 или 2000 страница, но нека да кажем 4 милиарда pages-- това е голяма телефон book-- как много пъти или колко стъпки е то ще ми отнеме да се намери Майк Смит в телефонния указател с 4 милиарда страници. Можете да подреди на започне да направи по математика. Добре. 4 милиарда делено на 2. Така че това е 2 милиарда, разделено 1. Това е 1 млрд. След половин милиард. Тогава 250-- така че можете да направите това отново и отново, но не, че много пъти преди можете да получите на една страница. И наистина, дори ако телефонът книга е дълъг 4 милиарда страници или на базата данни, която търсите е дълъг 4 млрд записи, това ще ви отнеме или да се даде 32 стъпки само за да открият Майк Смит. И ако се удвои телефонния указател следващия година 4000000000-8000000000, 33 стъпки, а не само 32. И това е свидетелство една от идеите за да можем да прегърнем в компютъра науката като цяло, което е тази изчислителна мислене и приближава проблем честно казано, използвайки инструменти от ви вече е запознат инструмент kit-- недвижими вашия свят с които сте запознати, но овладяване на тези идеи действително да реши проблемите. Но ние трябва да се формализира ни решения на тези проблеми. И така, нека представим за момент нещо, което можем да наречем Псевдокод. Голяма част от семестъра, ние ще прекарат използвайки действителния код в езици като C и PHP и JavaScript и SQL и др. Но за сега, нека просто да погледнете в нещо доста интуитивен като английски. Аз може да се дестилира, че алгоритъм с който Намерени Mike в стъпки, като този. Вземете телефонния указател Open до средата на телефонен указател Виж име на години Ако Майк е сред име на години Обадете Mike Иначе, ако Смит е по-рано в книгата Open до средата на лявата половина на книгата Иначе отидете на линия 3 Иначе, ако Смит е по-късно в книгата Open до средата на дясната половина на книгата Отиди да се подредят три още Предавам се И има няколко характеристики сега на това, че си струва да се посочи. Така че човек, всички линии Аз бях подчертано в жълто ние ще започнем обажда изявления или функции или процедури. Те са само на действия направя това, и там не е всичко, което много вариации на него. Следваща стъпка тук обаче, са тези conditions-- ако, друго, друго, ако друго. И това са наречени условия, или клонове, и те са решения точки. И те ни позволяват да се направи нещо условно. И в действителност, нека хвърлим един бърз Посетете може би позната face-- ние ще го наричаме Bill-- и точно това, което тези условия, как те могат да бъдат използвани. Бил Гейтс: Хората правят решения всеки ден. Например, преди да отидете извън вас вид има ако изявление, което гласи: ако вали, тогава аз Трябва да си взема якето. И компютрите са невероятни, след като реши тези видове отчети че те могат да изпълняват надеждно тези неща на невероятни скорости. И така, една компютърна програма наистина е малко математика и някои ако изявления където решението получава направи. DAVID Малан: Така че сега нека фокус на няколко различни lines-- тези, които аз съм подчертани в жълто тук. И се оказва, че има различно начини за изразяване на тази идея. Но интуитивно това, което нашите линии 8 и 11 че съм подчертано тук ви казвам, да направя? Да, отидете на линия 3, но това, което поведение е, че наистина предизвикване? Това е някакъв вид цикъл или цикъл, и можете да вид го видите. Така ли е? Ако по линия 8, можете да се върнете към линия 3, и след това можете отново удари линия 8, може да се върне в ред 3, обратно към ред 3, обратно на линия 3. Има този вид цикъл или цикъл. И наистина, това е индуцирана в линия 11 потенциално както добре. И това е основен програмиране конструира, както добре. Може би не искате да просто направи нещо с изявление или направи нещо условно с условие или клон. Може би искате да направите нещо циклично с примка. И ние ще трябва някой друг, с когото може да бъде familiar-- ние ще го наричаме Mark-- обясни това понятие тук. Марк Цукерберг: One нещо, че компютрите са наистина добър в повтаря команди. Като човек, ще получите наистина скучно, ако трябваше да направи същото нещо много пъти подред, но един компютър може да направи същото нещо милиони или дори милиарди пъти и не се отегчават и да е в състояние да я изпълним наистина добре. Така например, ако аз Искам да пожелая на всички на Facebook щастлив рожден ден като им изпрати имейл, тя може да ми отнеме повече от век действително да напише всички тези имейли до всички. Но само с няколко реда код, мога имат система да изпрати имейл до всички на Facebook, които желаят ги честит рожден ден. Така че това е, което примки са и защо те са ценни и нещо че компютрите могат да направят много добре. DAVID Малан: Много благодаря на нашите приятели в code.org за тези два филма. И миналата седмица, може да се наложи Вижда се, че Марк Цукерберг и Facebook публикувал това съобщение, което е, че те просто са преминали важна крайъгълен камък за първи път в историята. 1 милиард души използват Facebook в един ден, специално миналия понеделник. Един от всеки седем човека на Земята очевидно влезли в Facebook. Е, това изглежда добра възможност да погледнем назад, когато започна Facebook, и минахме през CS50 собствена архивите, защото се оказва, през 2005 г., Марк изнесе лекция гост в CS50. Ще видите, че производствените стойности не бяха съвсем същото гърба след това от гледна точка на технологията на разположение, и вие също така ще видим, че присъствието на този гост лекция не е задължително да възбуди интереса на тялото студент, вашите предшественици, толкова, колкото тя може да има Само за няколко години по-късно. Така че нека да разгледаме в Science Center В. SPEAKER 2: Моля се присъедините към мен, и добре дошли. [Аплодисменти] Марк Цукерберг: Yo. Добре. Cool това е първият път съм трябваше да се проведе едно от тези неща. Така че аз съм просто ще я прикрепете наистина бързо. Добре. Може ли да го чуете? Това е добра? Това усилва изобщо? Добре. Сладка. Така че, това е като един от първите пъти Бил съм на лекция в Харвард, но-- DAVID Малан: Така че в крайна сметка Науката Център направил фокусирам върху видеото, но не преди да заснемете това откъс, където говоренето Марко, които той обсъжда неговата съквартирант, Дъстин, който Исках да подадат ръка с този сайт наречен Facebook.com и осъзнах, че Марк е на път да спомена за програмиране languages-- един наречен Perl, един наречен PHP-- като той обсъжда произхода на приноса на Дъстин. Марк Цукерберг: I започнали да се показват на сайта и го стартира в Харвард през февруари, 2004 година. Така че предполагам, преди почти две години. И в рамките на няколко седмици, а Няколко хиляди души са се регистрирали, и ние започнахме да получаваме някои имейли от хората в други колежи питат за нас, за да го пусне в техните училища. И аз бях като 161 в момента. Така че аз не знам дали вие знаете репутацията на това, разбира се, но това е вид тежък. Беше наистина забавно, разбира се, но това не ме оставя с много време да се направи нещо друго с Facebook. Така че моят съквартирант Дъстин, който предполагам току-що завърши CS50, беше като, хей. Искам да помогна. Искам да направя разширяването и да помогне ви разбера как да направим нещата. Така че аз бях като, че е много готино, пич. Но наистина не знам по- PHP или нещо подобно. Така че уикенд той отиде у дома си, купих книгата Perl за манекени, се върна и беше като, наред. Аз съм готов да отида. Аз бях като, пич, на сайта е написано в PHP не Perl, но това е готино. Така той вдигна PHP над като няколко дни, защото аз Обещавам, че ако имате добър опит в C, PHP е много просто нещо да се вдигне. А той просто вид отиде да работи. Преди да можем да разгледаме сега в когато курса се случва, позволете ми да покани само някои на SC50 на персонала въз до етап. Някои от тях са на пазар свои собствени курсове. Но ако тези TFS и КО и разбира се глави, които са тук може да дойде по нагоре и се присъедините към мен за бърз здравей. Позволете ми да се въведе по-специално, Hanna, Мария, Daven, и Роб, Разбира се CS50 е начело тук в Кеймбридж. [Аплодисменти] DAVID Малан: Наистина, свидетелство за поддържаща структура, че курсът е построен през последните много години, персонала CS50 номера тази година близо 100, и това е тук, в Кеймбридж сам. Междувременно, в New Haven, има някои 40 TFS и КО и членове на персонала там да тече време, както добре. Позволете ни да се въведе първо, Rob Боудън. ROB Боудън: Здравейте. Аз съм Роб. Това е шестата си година TFing в хода. Така че, по целия път обратно в моята първокурсник година, аз не се вземат CS50. Вашият първокурсник fall-- може да сте запознати че можете да вземете само четири игрища и има толкова много курсове днес. Така че аз съм като, нали. Взех AP CS ми година на гимназията беше ужасно. Така че, аз съм като, нали. Компютърни науки не е за мен. Така че след това тя беше над Разбира се на моя първокурсник падне, че имах един приятел в CS50, и Мисля, че аз посетих една лекция с нея. Това е като, о, това е един вид по-добре от това, което имах в гимназията. И в течение на година, имах моите собствени проблеми комплекти в курсовете бях всъщност приемате. Но открих, че всеки път, когато Исках да отлагаме за тези, Бих се върнем към CS50 и разгледаме някои от тези неща. Така че, да. Аз съм готин. Аз Отлагането с кодиране. Така че след това е в края на падането, че аз осъзнавам, хей, компютърни науки е много готино. Аз в крайна сметка като се CS51. В следващия семестър, Аз в крайна сметка като се CS61. И всичко това от там, след това в крайна сметка се обявява компютърни науки, които имах абсолютно никакво намерение да го правим когато дойдох в колеж. И сега съм тук. Така че курса е това, което си го направиш. Надявам се да ти хареса. [Аплодисменти] DAVID Малан: Благодаря ви за Роб. И сега Мария, нашата глава разбира асистент. МАРИЯ: Хей момчета. Моето име е Мария. Аз съм второкурсник в Cabot Къща, идващи от България, и аз съм супер развълнувана да бъде част от персонала на тази година. Взех CS50 като първокурсник миналата година, а аз дори не мислил за CS предварително. Така че аз абсолютно любов на курса, и аз Надявам се всички вие го обичам толкова, колкото и аз. А, да. Добре дошли в CS50. DAVID Малан: Благодаря на Мария. [Аплодисменти] Сега Hanna, нашето учение главата колега. HANNA: Здравейте, аз съм Хана. Аз съм старши в Cabot учи компютърни науки. Взех CS50 като първокурсник и трябваше бил TFing-- това ще бъде третата ми година. Така че аз ще бъде щастливо, участващи в CS50 за всичките четири години, и аз съм гледам напред да работи с всички вас. DAVID Малан: Благодаря ви за Hanna. [Аплодисменти] И накрая, Daven, нашата precepter. DAVEN: Хей момчета. Аз съм заповед над в компютърни науки тук. Това ще бъде моята четвърта година преподаване. Аз също се подпомогне управлението на хода. Така че аз съм сигурен, че ще ме види наоколо, особено в работно време. Аз съм винаги в работно време. Така че, ако ме види ходене наоколо, определено дойде кажа здрасти. Обичам да се отговори на всички. В противен случай, да се забавляват, и ще се видим наоколо. DAVID Малан: Благодаря ви за Daven, както добре. Така че ще отговарят на всички тези хора не след дълго. Но без по-нататъшно шум, ако вие ще искал да възобнови местата си от по-рано. Позволете ми да се въведе отдалеч сега някои от нашите приятели от Ню Хейвън, по-специално главите на курса, който ще се наблюдава CS50 there-- професор Brian Scassellati, Джейсън, и Andi, които just--, така че ние не се изкуши съдбата с която и FaceTime или like-- току-що ни изпрати минути Преди следния видеоклип, в който те поздрави от лекционна зала в Йейл, в които лекция се излъчва в момента. Така че нашите приятели от Йейл. БРАЯН SCASSELLATI: Здравейте, Дейвид. Здравейте, всички в Харвард. Ние сме толкова развълнувани да бъде привеждане CS50 до Yale този семестър. Моето име е Брайън Scassellati, но всеки, просто ми се обажда СОКИ. И аз съм тук днес, за да се въведе да ви персонала CS50. [Аплодисменти] И по-важното е, че съм тук, за да се въведе, както и всички студенти в Йейл, който като от тази сутрин са направили това от най-популярните Разбира се в Йейл студенти CS50. [Аплодисменти] Така че ние сме много развълнувани да се видим тук в петък и в събота за Пъзел ден и имат голямо лекция. Чао. [Аплодисменти] DAVID Малан: На ​​екрана тук е имената на някои от 140 служители членове, които ви очакват над река Разбира се на semester-- някои от тях тук, в Кеймбридж, някои от тях тук, в Ню Хейвън. И наистина ще имате възможност тази събота, като отбелязва СОКИ, за да присъстват CS50 Puzzle ден. Може би сте виждали малки парчета от пъзел пъхната под вашите врати наскоро. Имаме няколко екстри тук по-късно, когато съществува. Ако се съберат всички четири пъзел парчета и се сливат сили с стаи близките твое във вашия къща или общежитие, те ще съберат в code-- QR или двуизмерен баркод, че веднъж сглобени и сканиран с вашия телефон ще ви води до известна страхотна награда or-- предполагам можете просто да снимам това сега както добре. Но намерите тези парчета от пъзел все пак За да спечелите, че страхотна награда. И наистина една от традициите в SC50-- ах, твърде бавно. Една от традициите в CS50 е да служат торта след първата лекция. И наистина, в няколко минути от сега, няма да има торта сервира извън както тук, така и Ню Хейвън, както добре. Но first-- ние ги украсени себе си. Но first-- и се надяваме, Ще бъде ли достатъчно. Но първо, един бърз поглед. Така лекции е наистина ще бъдат произведена предимно тук в Кеймбридж. Но всеки месец, ние ще хоп до Yale с производствен екип и поток CS50 е курса в обратната посока, както и това като да се въвеждат тези два кампуса наистина за първи път в историята като близо една до друга, колкото е възможно като един в същото време. От гледна точка на структурата подкрепа, която е били изправи тук, в Кеймбридж, както и като в Ню Хейвън, са секции. Всъщност, както някои от вас може знаете, ние имаме различни писти в рамките на процеса за онези, по-малко удобно, по-удобно, и някъде по средата, така че независимо от предварителното си фон, може ли в крайна сметка успее в този клас. Работно време Междувременно, са възможност в понеделник и вторник и четвъртък вечер, за да работят и двете тук и в Ню Хейвън на нашия курс на проблем определя с десетки персонала на курса близо до вас. Проблем поставя междувременно, са подкрепена от нещата, които наричаме Запознай, които са базирани видео уроци, които наистина да отговори FAQ от къде да започне предизвикателство за една седмица. И аутопсии ви преведе чрез възможни решения така че в края на проблем прекалено, ви знаете точно какво би могъл да направи по различен начин или съвсем друго. Проблемът определя себе си дойде в две издания, стандартно издание че ние очакваме и да покани най- на class-- около 90% плюс за do-- и така наречената хакер издание на която всяка страница е изписана хакер издание, хакер издание, хакер издание, така че да имате, че карма ако щете, за гмуркане в по-напреднали версии на проблемните комплекти на курса това покритие уж същия материал но с по-сложен подход и с допълнителен фон понякога въведена. В същото време, има девет късните дни, че можете да кандидатствате за проблем на курса определя, както и най-ниската оценка, което ние се откажа в края на мандата. Но какво очаква? Е, вкус на проблема поставя под ръка в петък и следващата седмица, когато ние се бъркам само за няколко дни в нещо наречено Scratch, графично програмиране език, разработен от нашите приятели в Media Lab на Масачузетския технологичен институт, който ви позволява за програмиране или за първи път или в нова среда като цяло при използване на тип среда влачене и пускане. Чрез която пъзел парчета блокировка само заедно ако го прави логически смисъл да го правят. Междувременно в проблем зададете две миналата година например, не сме се въведе класа в света на криптографията, изкуството на криптиране или кодиране на информация. В действителност, този текст тук, ако разшифрован, ще действителност можете да доведе до някои забавни дестинация. И в проблема определя, това, което ние трябваше студенти направите, е да приложи точно тези, видове things-- алгоритъм, или набор от инструкции за кодиране и кодиране на информация. И в издание на хакер на същия този проблем набор, Те видяхме оспори студенти да вземе криптиран файл от един типичен компютър система с много потребителски имена и криптирани пароли и да се справи тези passwords-- всъщност разбера това, което те са били без да знаят нищо априори за тези реални пароли. В същото време, ние преход в проблема определя до тогава гледаш света на графики. И в действителност, можете да си представите сега, че това може би да е най-простият начин да представлява черно-бяло изображение. А бял пиксел, или квадрат, като в горния десен ъгъл има, могат да бъдат представени с 1 и черен квадрат могат да бъдат представени с 0. И само с помощта на повече битове като ние предложен по-рано с 72 и 73 и 33, бихме могли да представляват цветни пиксели, както добре. И това, което правим по време на този проблем набор е обикновено се разходете из кампус с цифров фотоапарат, правят снимки на хора, места и неща. Тогава някак си всеки семестър, ние като че ли случайно заличава или корумпирани картата с памет на която всички тези снимки са, и така вие се справи до тогава пишат софтуер с които да се възстановят тези JPEG снимки от копие от карта за нашата камера. В същото време, можем да ви предаде по-късно в терминът речник на английски думи че имат 143000 думи, и трябва да излезе с интелигентен начин на да ги заредите в паметта, или RAM така да се каже, за да отговорите заявки на формата: е тази дума, е тази дума, за прилагане на Най-бързият проверка на правописа, че можете, дори възлага себе си потенциално срещу съученици за да видите кой от вас използва най-малко количество от време когато работи кода си и дори най-малко количество памет. По-късно в срок, което правите всъщност приложи свой собствен уеб сървър. Така че не само един сайт в език, наречен HTML и повече, но на уеб сървър, който всъщност вслушва в исканията в интернет и отговаря на тях. И наистина, това е начина, по който се преодолее нашия свят на C, с която ще се запознаят следващата седмица и PHP и HTML и JavaScript и CSS и други подобни. Тъй като един от първите уеб базирани проект правим по-късно в срока е исторически CS50 финансите. Etrade.com стил уеб сайт, който позволява можете да купуват и продават акции на практика а също пишете код, за да говори с Yahoo Финанси получаване полу реално време наличност цитира, за да се актуализира собствения си портфейл. Но накрая, разбира се, е крайният project-- възможност да се направи почти всичко на интерес за вас, за да се реши един проблем тук или извън интерес за ви, че е някак си вдъхновен от поуките в класа. И този клас, както може би знаете, кулминира в т.нар CS50 Hackathon и CS50 Fair и произволен брой на други културни събития по време на семестъра които ви позволяват да се ангажират един с друг и персонала на курса. Така например, в Огън и лед в Sitar тази година, добре, в петък следобед, каним някои 50 ученици до обяд, който биха искали да се присъединят към нас, себе си, и на персонала, и нашите приятели от промишлеността и минали през да си говорят за живота в реалния свят и отвъд, докато се наслаждавате на добър обяд. В Hackathon ще виждате такива образи тъй като те, включително и много candy-- и от 2014 г. за първи time-- зеленчуци. [Аплодисменти] Но от 5:00 AM, прави сцената обикновено изглежда малко нещо като това. И след само една седмица или толкова по-късно, е CS50 панаир за която някои 2000 плюс студенти и служители и преподаватели членове от целия кампус и през кампуси тази година дойде да види и наслада в постижения на CS50 студенти, които Сега е ли. И наистина, докато тази година ние ще се кани и Büsing никого в в Йейл, който би искал да дойде до Cambridge тази събота за CS50 Puzzle Ден, и ние ще направим точно същото нещо през декември за CS50 Hackathon така че Харвард и Йейл студенти така участва в двете от тези събития. Ние също така ще проведе CS50 панаири в Кеймбридж и в Ню Хейвън през тази година така, че учениците на двамата кампуси и служители и преподаватели може да видите всяко постижение кампус е. И тези постижения ще предизвика такава памет като това и това и в крайна сметка тази, в която всички вас излезете от този клас, облечен с малко нещо, в което сте били надяваме щастливи или горди да кажем, че взех CS50. Но преди това и преди да служат торта, ние сме поставени together-- благодарение на CS50 е производство екип и определено самостоятелно пръчка, на един повод, че ние използваме такива неща for-- когато го изпрати не само тук, за да Cambridge но също така и в Ню Haven да се съберат няколко поздрави от персонал разбира се и всички хора, вие ще се срещне както тук, така и в New Haven през следващите месеци. Позволете ми да се въведе малко повече от персонала CS50 е. Марк Цукерберг: Знаете, че да мина? О, то се случва. Това се случва. Ооо. Yarr! [Музиката свири ANDY Грамър, "Скъпа, аз съм  GOOD "] MARY: Това е Кейтлин. Това е Джей, и аз съм Мери. SATO: Здравейте, момчета. Аз съм Сато. MICHAEL G .: Hi. Моето име е Майкъл, G. DOUG LLOYD: Аз не съм. Не. Аз съм Дъг Лойд. Не мога да повярвам, че аз държа а селфи придържаме точно сега. SPEAKER 4: Здравейте. SPEAKER 5: Hi. SPEAKER 6: Здравейте. SPEAKER 7: Здравейте. SPEAKER 8: Хей. Ние сме излиза в Йейл. Ние сме много радостни за този семестър, защото това е За първи път тя идва да Йейл. Това ще бъде страхотно! [МУЗИКА] JACOB SCHERBA: Моето име е Jacob Scherba. Развълнуван съм да преподават CS50, защото мисля, привеждането компютърни науки към хора в и достъпен начин. SPEAKER 9: Наистина съм развълнуван да научи CS50 защото взех клас миналата година, и това е един от най-добрите класове. SPEAKER 10: Да. Моят съвет е необходимо да се вземат CS50. JACOB SCHERBA: Избрах CS, защото Мисля, че е по-забавно и творчески начин за решаване на проблемите в аналитичен начин. SPEAKER 11: Обратно, когато бях малко първокурсник и страх от компютърни науки и страх от това инженеринг и неща, това е първият твърд класа взех, и това също беше любимата ми клас някога. DOUG LLOYD: Това е моят деветата година преподаване CS50. Това ме кара да звучи толкова стар! Винаги има нещо ново. Винаги има нещо вълнуващо. Винаги има нови предизвикателства пред които са изправени нови студенти, както и че е забавно да им помогне и да изпитат тези, предизвикателства с тях и да им помогне да решат проблемите си. SPEAKER 12: Когато за първи път Научих се как да направите CS, това е като да се учиш супер сила. И за да се види, че в други студенти и да им помогне чрез този процес е един от най- възнаграждаване неща, които някога съм. SPEAKER 7: Избрах CS, защото в започваше, аз бях по математика концентратор и взех CS50 и Влюбих се в него. Аз също се чувствах, че с CS, бих могъл да се изгради неща. И това, си мислех, беше наистина страхотен аспект. SPEAKER 13: Някои съвети за нов студенти е да отидете на работното време и излизаш с страхотно TFS. SPEAKER 14: Запалете P-комплекти рано, отидете на работното време, превърне Френдс с вашия TF. SPEAKER 15: Да. Всичко, каза тя. SPEAKER 16: Не се страхувайте да помолите за помощ. SPEAKER 17: Да. SPEAKER 18: Запалете P-установява рано. SPEAKER 19: Това е голям социален опит. Направи много приятели по този начин. SPEAKER 14: Отидете на секцията Това е забавно. SPEAKER 11: Искам да кажа, отивам за него. Наистина е трудно. Ще се измъкнем от него това, което ще ви постави в нея, но това е наистина забавно клас особено ако сте готови да предоставят време в нея, но това помага, ако поставите време в нея. Ще получите много повече от нея по-късно. MIKE: Аз съм Майк. CAMILLE: Аз съм Камий. Хания: Аз съм Ханя. Мат: Аз съм Мат. PETER: Аз съм Петър. ФИЛИП: Аз съм Филип. PATRICK: Аз съм Патрик. ROB Боудън: Аз съм Роб Боудън. БРАЯН SCASSELLATI: My име е СОКИ и this-- ALL: --is CS50. SPEAKER 20: в Йейл. SPEAKER 21: в Йейл. [СМЕЕ СЕ] DAVID Малан: Това е всичко за CS50. Ние ще ви види от Yale на Петък, пъзел Day в събота. Сега се сервира торта. Това е CS50. [МУЗИКА]