[Музички] [Музички] Дејвид MALAN: Во ред. Ова е CS50. [Музички Tritonal, Кеш Кеш,  "Недопирливи"] [Музички] ЗВУЧНИК 1: Одам да се Франција, и ви се случува, исто така. [Музички] Дејвид MALAN: Ова е CS50, воведување Универзитетот Харвард на интелектуална претпријатија на компјутерски науки и уметноста на program-- и за прв пат во историјата, Универзитетот Јеил, како и. Всушност, без разлика дали сме тука во Кембриџ или во Њу Хевн или Мајами или Сент Луис или Амстердам или било каде околу светот земајќи CS50, компјутерски науката E50, CS50X, CS50 АП, сите ние сме едно и исто. Добредојдовте на CS50. Она што have-- [Аплауз] [Се смее] [Аплауз] Значи не сум направил грешка си некои пред времето кога јас го започна натпреварот колеџ. И јас влегов на колеџ, и решив да се искрено, се држи во моја утеха зона. Јас завршив за прогласување на концентрација, или големи, на владата. Мравка што во најголем дел се во функција на мене се прилично запознаен со владата или барем историја или Навистина ми се допадна уставното право во средно училиште. И така, кога стигнав тука, јас вид на гравитирале кон работите со која веќе ми беше познат. Нели? Не дај Боже да прават лошо во класата. Јас сигурно сакаше да остане во рок од моја утеха зона, и тоа не беше до сафомор годината што конечно Стана и се дрзна да чекор нога во училница наречен CS50. И во тој момент, не јас конечно сфати дека, Боже мој, домашна работа, всушност, може да биде забавно. Всушност, јас бев еден од оние деца дека во петокот навечер кога P-поставува ќе биде пуштен на слобода, јас ќе се врати во својата соба и се нурне ми во текот на ноќта е P-комплети. И за мене, тоа беше знак дека ова е поле за мене. Но, она што е поважно е фактот дека јас не одам до овој нерв да се истражуваат води непознат за мене и да се надвор од мојата удобност зона и искрено, само беше во можност да го стори тоа сафомор година со преземање на оваа класа Поминете / не. Всушност, тоа беше последниот ден на тој Јас конечно се префрли и на крај прогласен за CS како мојата концентрација, ставање Влада во тој момент зад мене. И така ние не сме поставување во овој курс да се претвори сите вас во CS специјалност или концентратори, но а за да ви даде можност со надеж дека ќе се оди подалеку од светот со која моментално се наоѓате запознаени и да се врати од овој свет вештини и знаење и чувство кои може да се однесува на вашата сопствен свет, без разлика дали тоа е во хуманистичките науки, општествените науки, природните науки, или пошироко. Всушност, ако сте чувство малку смел за да се биде во оваа соба а камоли во оваа класа, да сфатат дека ако историјата е некаква индикација, 72% од вас никогаш се разбира CS порано. Па тоа е од страна на сите значи да не се случај што студентот седи на левата или десно или пред или зад вас знае многу повеќе за CS или програмирање особено од вас. Тоа не е всушност случај. И навистина, многу од структурата за поддршка дека ние сме поставени во овој разбира во текот на изминатите неколку години е точно дека reason-- да обезбеди на рампата, кои се уште излегува исто како и ригорозно само високо како ever-- но на падините на кои им овозможи на студентите помалку удобно и поудобно така да успее без разлика од пред неговата или нејзината позадина. Всушност, она што на крајот прашања во оваа класа не е толку многу, каде што ќе се заокружи во однос на своите соученици но каде што во 12-та недела заврши во однос на себе во нула недела, што е каде што сме денес. Навистина и ова може многу добро и веројатно изгледа како грчки на многу од вас. Но, остатокот увери, дека ова и многу повеќе ќе биде целосно во рамките на вашиот сфати само малку време. Но, денес, ќе се фокусира на некои од идеите на повисоко ниво да ви даде вкусот на CS50 и компјутерски науки во смисла на она што сте регистрирате за. И навистина, компјутерски науки може да биде дестилиран повеќе едноставно како пресметковни thinking-- размислува како компјутер, ако сакате. И има толку многу различни работи состојки кои одат во тоа, но ајде да предложи само три за денес. Ако целта на класата на крајот не е да ви ги учат програмирање, не е да ве научи на C или PHP или SQL или било кој број на зборови и акроними во Опис на курсот, туку да ги учат да решавање на проблеми поефикасно и да размислуваат повеќе методично и повеќе алгоритамски, така да се каже. Ајде да видиме што точно тоа значи. Па јас ќе предложи размислување изчислителна сведува за решавање на проблемите. Што ви е потребно да се реши проблемот? Вие треба да input-- како влезот на problem-- ви треба излез, што се надевам на решение, а потоа ќе треба процес со кој треба да се реши тој проблем, кој ние ќе го наречеме една algorithm-- збир на упатства за решавање на некој проблем. Но прво, да се фокусира на првиот и последниот од овие влезови и излези. Компјутери и после сè, очигледно само што ја разбира нули и единици. Но, како што може да можел да биде? Дури и ако не сте запознаени воопшто со она што е под капакот на моторот, што веројатно барем слушнале дека компјутери разбере binary-- само нули и ones-- но како може што веројатно се направи нешто интересно? Па, една од темите на класата ќе да бидат на овој layering-- каде што денес, ние ќе се земе брз поглед на најниско ниво детали, но со секое изминат ден, каде што слој или апстрактни на врвот на оние детали за да всушност се реши на повисоко ниво проблеми од интерес за нас. Значи тука е она што може да се нарече binary-- со само една азбука од 0 и 1. Но, ние, луѓето се најчесто запознаени со децимален број. 10 декември значење. Би значи две. И така во децималниот систем, ние имаме 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, еден 1. Значи 2 плус 1. Тоа е 3. И сега да претставуваат 4, ние не само да се промени од 0 до 1. Можете вид на мора да се носат, така да се каже, и броевите започне нервира околу само како и во децимални светот. Значи ова е 4. Ова е 5. Ова е 6. Ова е 7. И така ние се смета како високо како 7. Сега сите ние само треба да е повеќе bits-- повеќе нула и еден е. И навистина "парчиња", ако сте чуја тоа term-- бинарна цифра. Малку е местото каде што доаѓа. И така, ако сакаме да ги претставуваат поголеми броеви, ни треба повеќе битови. Но, ајде да се движат подалеку од слајдови сега за нешто малку пореално. Да претпоставиме дека сакаме да всушност претставуваат оваа работа. Па ајде да ги разгледаме сега во малку демонстрација. Значи ова е веб-базирана апликација дека еден од CS50 е, Мајкл Г, стави заедно ова лето да им помогне на ни се разјаснат токму оваа идеја. И би некој како за вложување на сцената пред сите неговите или нејзините соученици? Право таму пред. Качи. Треба да се биде удобно на камера и интернет. А, токму тука. ВО РЕД. Ние сме во ред. Во ред. Качи. Како се викаш? Емили се нагоре. Значи ова е Емили. Која година си? Новак. Емили, убаво да ви се исполнат. Давид. Во ред. Па на екранот овде, имаме овој екран на допир која ќе ни овозможи да се всушност комуницирате со оваа програма, и тоа е само пребарувач. Тоа е Хром целосно прикажан во моментот, но тоа е биле програмирани од страна на Мајкл да одговори на начин кој им овозможува на ни да се позанимавам со бинарни цифри. Така на пример, тука не треба три, но осум bits-- нули и единици. Во моментов, ние сме гледа во бројот 0. И навистина, сите осум нули со децимален подразбира нула. Значи, тоа е сето она што е се навести тука. Значи, ако си сакал да претставува број 8, што е моделот на нули и оние што сакате? Вие едноставно можете да допрете нагоре или надолу или самите броеви. Во ред. Така што се разбира е 8, како што може да се види таму. И ако сакаме да се 16, што ќе правиме? Да, само ја допре еднаш. 16. Во ред. Значи ова е во ред и добро, тоа е сепак многу ниско ниво. Ние треба начин во реалниот свет за Емили на, всушност, претставуваат овие работи. И така се претпоставува дека ќе се сврти овие нули и единици, што е многу концептуални, во вистински светилки. Нели? А компјутерот е физички, механички, електрични уред. И неговата input-- барем ако ќе го приклучиш во или задолжен it-- е да се имаат енергија од батеријата и електроните тече во и надвор. Па сега, зошто да не можеме да престане да мисли за делови што се нули и единици, туку нешто повеќе физички како светилки тука. И ако Дан Armendariz може да се приклучи ме за само moment-- ајде up-- ние ќе треба да чекаат до некоја апликација. Дојди, Емили. За жал ова е најстариот непријатно демо за вас било кога. Дојди овде. Ние ќе треба да чекаат во ред со благодарение на Дан Armendariz, уште еден член на нашиот персонал, апликација позната како бинарни сијалица. Значи она што го имаме тука е апликација за iPad кој ги содржи следниве корисник интерфејс на екранот за Емили. Тоа е само што влегов на исто точно адаптери во суштина тоа е таму. И ако сега сакаат да претставува број, велат 8, Како ќе одат за тоа ова забележи во право, светилки дека имаме тука? Ах-ха. Магично. Значи, ако сакаме да сега го претвори ова во нешто малку повеќе предизвик, и ајде да одиме напред и да го изберат случаен број како бројот 50 тука. Внесете ова. И ако сега може да се соочат со предизвикот да излезе со број 50, ќе имаме прекрасен награда за вас. EMILY: Во ред. О Боже. Дејвид MALAN: аритметички е навистина тешко пред на стотици своите соученици. Но 50 е одговор тука. [Аплауз] И така сега, тоа е со цел да се биде покажана за Емили. Значи, тука е малку повеќе светло светилки доста како овие, но тоа е, всушност, малку магнетни ленти. И, што е кул за овие и причина ние ги користите во CS50 е дека тие го поддржуваат нешто што се нарекува на API-- програмирање апликација интерфејс, кој е само стилизиран начин да се каже дека она што еден од нашите вработени се во текот на летото е да се создаде апликација iPad тука дека разговорите преку интернет на светилки тука, кои се безжично поврзан со друг уред. Но, сега тоа е опција за конечниот проекти. И така Емили, ако сакате, така како, на крајот на терминот, може да се украсуваат вашиот dorm соба во меѓувреме со нив. Ви благодариме на Емили, како и. [Аплауз] Но, сега, ајде да се свртиме нашето внимание на она што таа порака може да изгледаше како, и тоа е малку нешто како ова. Всушност, ова е пример само како закачка на она што е да дојде на она што е наречен барање на API. И така она што го имаме тука е едноставно точно видови на пораката дека по неколку недели време во CS50, ќе да биде во можност да се испрати до нешто прилично познати како тоа да се, всушност, да ги вклучите или исклучите. Но, тоа е во ред и добро. Нели? Имаме ментална модел се надевам за застапување на броеви со нула и еден е. И од нули и единици, може да се се дојде до поголем број како 50, како Емили само го направи, или да се движат нагоре од тоа. И тврдам дека ние може да претставува работи како букви. Нели? Компјутерите се многу повеќе интересен отколку само броеви. И така, како да одите за застапување зборови на екранот или e-mail или есеи или слично? Па, излегува дека компјутерите едноставно апстрактни на врвот на овие ниско ниво детали, и луѓето пред некое време, дојде со произволна, но во согласност, мапирање на броеви 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-- и попрецизно, толку подобро. И така еден пример со кој луѓето се Мора да се признае помалку познати овие денови, но, сепак, се уште е со нас на софтвер, е процес на потрага до некој во именикот. Сега, се помалку и помалку луѓе знаат едни година она што всушност е тука оваа реликвија. Но, назад во мојот ден, ова беше именик со илјадници страници и броеви и имињата на луѓето од А до Ш И иако ние сме вид на мамење на bit-- ова е најмногу жолти страници. Исто така, имаше бело страници во тоа време, кои имаше сите тие имиња и бројот на вистински човечки суштества. И ако сакав да гледам некој во една телефон книга како оваа денес, се разбира, Јас само напишете во првите неколку ликовите на неговото или нејзиното име, и мојот телефон утврди дека информации. Но, процесот со кој вашиот iPhone или Android телефон или она што е, всушност, наоѓање некој во вашата листа на контакти е идентично со она што ние, луѓето веројатно имаат направено за некое време. Сега би можел да ја искористам оваа проблем, ако сакате, и со придонесот тука не се нули и единици. Тие се pages-- како, да речеме 1.000 страници. И ако сакав да се погледне до некој како Мајк Смит, во овој телефон книга, Јас би можеле да започнат на почетокот и гледам дека јас сум во делот А а потоа се претвори една страница исто време, бара и бара како што јас се направи на Б и Ц и на D's и така натаму за Мајк Смит. Смит, почнувајќи со S, јас ќе се надевам дека на крајот го најде. Дали е ова algorithm-- дека process-- точно? Да. Тоа е точно. Јас ќе се најде Мајк ако тој е тука, но што е забелешката дека може да понуди. Тоа е бавен. Нели? Знам Мајк S е вид на кон втората половина на телефонот книга. Зошто е грижам сум со почеток во почетокот и оди страница по страница по страница. Па се разбира, би можел да го флип околу и да почне од зад грб, но тоа се случува да се добие мене во иста стапка, ако willl-- страница по страница по страница. И тоа не се случува да работат ако сакам за да пребарувате за некој друг, чија Името доаѓа во почетокот на азбуката. Па што ако го направам она што го лекции во основно училиште, повторно, се прават работите не од страна на оние, но двајца по двајца. Значи 2, 4, 6, 8, 10, 12, и така натаму. Дали е тоа точно? Бр Тоа е вид на точни. Но, некои од вас кои не изусти, каде е проблемот, или грешка, грешка, така да се каже. Да. СТУДЕНТСКИ: Можете да го прескокнете во текот на правото влез. Дејвид MALAN: Да. Јас би можеле да го прескокнете во текот Мајк Смит е затоа што сум се земаат две страни одеднаш а тој само се случува да биде сендвич меѓу овие две страни. Јас би можеле да сфатат дека Јас сум на во делот Т не ја најде Мајк Смит уште. И така она што може да фиксната има? Па, ако го направам погоди Лажичка во книгата на телефонот, Јас би можеле да треба да се удвои врати еден или повеќе страници. Така, тоа е исправиме, но тоа не е толку едноставно како само оди за два до забрзаат перформансите ми. Но што? Ајде. Што е она што повеќето луѓе се случува да се направи со овој вид на телефон книга? Ти си даде телефонот книга. Што правиш? Што е тоа? Оди на средината на теренот. Така слушнав одат до средината, и јас наоѓам приближно во правец М, така да се каже. И сега што сакам да направам? Добра работа. Како се викаш? JAMES: Џејмс. Дејвид MALAN: Џејмс, во ред. Што да правам понатаму? JAMES: Одите во половина од тоа има С. Дејвид MALAN: Во ред. Одам да се оди во половина од тоа има S е во тоа затоа што, повторно, одредба тука беше дека тоа нешто е сортирана. Тоа е прилично бескорисни 1000 страници ако Веризон всушност не средиме овие работи за нас преку З. Значи, ако знам дека Мајк е веројатно во втората половина од книгата на телефонот, Можам сега. [Се смее] Солза проблемот на половина. [Аплауз] Ти благодарам. Солза проблемот на половина. Тоа е всушност real-- таа борба. Значи солза на именик во половина, оставајќи си со основа на истиот проблем. Но, се разбира, половина како голем. И ако јас го следат Џејмс повторно, совети, и да одам тука. Велам, ох, сега сум во делот Т. И така, се разбира, може да солза на телефонот книга во половина уште еднаш, оставајќи ме со проблемот што е сега една четвртина од големината. Па јас сум качил од 1.000 до 500 250 до 125 и така натаму. Таа се чувствува како да сум земајќи поголема каснувања од на овој проблем со секој повторување, или секој чекор во тоа. И, навистина, ќе одам да се трошат наоѓање на Мајк Смит во овој пример е толку многу помалку, бидејќи на крајот јас сум ќе омаловажавам овој царевичен леб книга долу на само еден осамен страница. И ако Мајк е на оваа страница, јас сум да се оди напред и да му даде повик ја го најде. Но, само колку подобро е дека algorithm-- кои се осмелувам да кажам интуитивен algorithm-- од оние што започна со кои ние сме многу linear-- остави да right-- со темпо од 1 или 2x? Па, ајде да заговор ова. Ние не треба да се грижите премногу за математика или броевите во овој случај. Ние само се погледне на заговор. Така, на x или хоризонталната оска, е со големина на problem-- колку страници се таму. На y, или вертикална оска, е колку време е тоа нема да ме однесе да го реши. И можеби тоа е колку страница се врти, колку секунди, како many-- некои единици на мерки. И јас сум повлековме црвена прави линии тука, бидејќи ако секоја дополнителна страница на телефон книга, ми е потребна да се направи уште еден чекор. Значи, ако Веризон додава уште еден повеќе страница следната година, Јас би можеле да треба да флип уште една страница да се најде некој како Мајкл Смит. Во меѓувреме, вториот алгоритам, кој Отидов двајца по двајца, е иста форма. Тоа е уште многу линеарна, многу лево за да право, имајќи еднакви бајти секој пат, но наклонот е малку пониски. На пример, ако големината на проблемот беше грубо тука и јас се користи на мојот прв алгоритам, Јас би можеле да завршат сите на патот на врвот од таа црвена линија. Но, ако јас наместо да го користите да twosies пристап, жолта линија сугерира затоа што е помал, дека тоа се случува да се земе ме помалку време за решавање. Но она што е во форма на Третиот algorithm-- повторно, веројатно повеќето интуитивен алгоритам? Па, тоа изгледа малку нешто како ова. Тоа е искривена, или логаритамски, во форма. И иако тоа никогаш не вид на израмнува надвор, тоа асимптоматично инчи нагоре и и нагоре, но ужасно бавно наспроти сè друго. И, што е се далеку? Па, ние ја нарекуваме логирате n. Но, што тоа всушност значи? Па ако Веризон двојно број на страници во книгата на телефонот следната година од 1.000 до 2.000. Колку повеќе чекори ми е Првиот алгоритам случува да се земе? Мојот прв алгоритам. Можеби и повеќе од 1.000 чекори. Ако тие двојно телефон книга, јас ќе одам да треба да флип преку друг 1.000 страници за да најдат Мајк. Се разбира, ако на вториот алгоритам, можеби затоа што јас сум 500 оди два пати побрзо. Но, ако Веризон дуплира бројот страници меѓу оваа и следната година, со својот трет algorithm-- поделеноста и го освои дека Џејмс предлага, оди на половина и половина и half-- уште колку чекори ќе тоа ме земе следната година да има телефон книга со големина од 2.000? Само еден. Затоа што со еден залак, јас може да се земе, од тој проблем, половина од страниците далеку. И ако мислите дека за ова малку Crazily now-- ако телефонот книга не има 1000 или 2000 страница, но да речеме 4 милијарди pages-- тоа е голем телефон како book-- многу пати или колку чекори е тоа нема да ме однесе да се најде Мајк Смит во книгата на телефонот со 4 милијарди страници. Можете да ги сортирате на почнете да се направи математика. Во ред. 4 милијарди поделено со 2. Значи тоа е 2 милијарди поделено со 1. Тоа е 1 милијарда долари. Потоа половина милијарда. Потоа 250-- па можете да го направите ова повторно и повторно, но не дека многу пати пред да се дојде до една страница. И навистина, дури и ако телефонот Книгата е долг од 4 милијарди страници или базата на податоци сте во потрага е долга 4 милијарди евиденција, тоа ќе ве однесе да се дава или зема 32 чекори само да се најде Мајк Смит. И ако се удвои на телефон книга следната година 4000000000-8000000000, 33 чекори, наместо на само 32 години. И ова е доказ на еден од идеи за да можеме да се вратиме во компјутер науката воопшто, која е ова компјутерската размислување и се приближува проблем искрено со користење на алатки од се веќе запознаени алатка kit-- вашиот вистински свет со која сте запознаени, но искористување на тие идеи за да всушност ги реши проблемите. Но, ние треба да се формализира нашите решенија за овие проблеми. И така, дозволете ми да се воведе за момент нешто што може да се нарече pseudocode. Голем дел од семестар, ќе поминат користење вистински код јазици како C и PHP и го вклучите Javascript и SQL и слично. Но, за сега, ајде да се погледне во нешто прилично интуитивна како и на англиски јазик. Јас би можеле да го дестилираат дека алгоритам со кој Најдов Мајк во чекори се допаѓа ова. Земам телефонот книга Отворени за средината на именик Погледни го името на е Ако Мајк е меѓу името на е Повик Мајк Друго, ако Смит е во почетокот на книгата Отворена до средината на на левата половина од книгата На друго место да одат да се редат 3 Друго, ако Смит е подоцна во книгата Отворени за средината на десната половина на книгата Оди на линија три на друго место се откажат од И има неколку карактеристики сега на оваа, кои се вреди да се укажува. Значи еден, сите линии Сум осветлени во жолто ние ќе треба да почнете да повикувате изјави или функции или процедури. Тие се само активности се ова, и таму не е сите дека многу варијабилност на него. Следниот чекор тука, секако, дали тие се conditions-- ако, на друго место, на друго место, ако, на друго место. И овие се нарекуваат услови, или гранки, а тие се одлука поени. И што ни овозможи да се направи нешто условно. И всушност, да се земе брз погледнете можеби запознаени face-- ние ќе го нарекуваат Bill-- и токму она што овие услови, како тие можат да се користат. Бил Гејтс: Луѓето прават одлуки секој ден. На пример, пред да одите надвор од тебе вид на имаат ако изјава во која се вели, Ако врне, тогаш јас треба да се јакната. И компјутери се неверојатни откако ќе одлучи оние видови на извештаи што со сигурност може да се изврши тие работи во неверојатна брзина. И така компјутерска програма навистина е малку математика и некои ако извештаи каде одлуката добива направен. Дејвид MALAN: Па сега ајде да се фокусираат на неколку различни lines-- оние што сум истакна во жолта тука. И излегува има различни начини на изразување на оваа идеја. Но, интуитивно што нашите линии 8 и 11 дека јас сум ти го кажувам нагласени овде да направиш? Да, одам да се редат 3, но она што однесување е тоа што навистина поттикнување? Тоа е некој вид на јамка или циклус, и можете да вид на се види тоа. Нели? Ако на линија 8, ќе се вратите на линија 3, а потоа повторно го погоди линија 8, може да се врати на линијата 3, Вратете се на линијата 3, назад да се редат 3. Има овој вид на циклус или јамка. И навистина, тоа е индициран во линија 11 потенцијално, како и. И ова е основен програмирање изградба, како и. Вие не може да сакаат само да направи нешто со изјава или да направи нешто условно со состојба или филијалата. Можеби ќе сакате да се направи нешто циклично со јамка. А ние ќе мора некој друг со кого кои би можеле да familiar-- ние ќе го нарекуваат Mark-- објасни овој концепт тука. Марк Цукерберг: Еден нешто што компјутерите се навистина добри во се повторува наредби. Како човек, кој би го добиле навистина досадно ако мораше да го направи истото многу пати по ред, но на компјутер може да го прават истото милиони или дури милијарди пати и не се досадуваат и да бидат способни да го спроведе навистина добро. Така на пример, ако јас сакате да го сакаат сите на Фејсбук среќен роденден со испраќање на е-маил, тоа може да ме земе повеќе од една век за да всушност се напише сите оние пораки за секого. Но, со само неколку линии на код, можам да има систем пратете е-маил до сите на Фејсбук кои сакаат нив среќен роденден. Значи тоа е она јамки и зошто тие се вредни и нешто дека компјутерите можат да прават многу добро. Дејвид MALAN: Голема благодарност до нашите пријатели во code.org за овие два филма. И само минатата недела, може да имаат гледа дека Марк Цукерберг и Фејсбук испратени на оваа објава а тоа е дека тие само го донесе важна пресвртница за прв пат. 1 милијарда луѓе користат Фејсбук во еден ден, посебно минатиот понеделник. Еден од седум луѓето на Земјата очигледно најавени на Фејсбук. Па, се чини дека ова е добра можност да се погледне назад на каде што почна Фејсбук, и отидовме преку CS50 е архиви бидејќи излегува во 2005 година, Марк одржа предавање гостин во CS50. Ќе видите дека производството вредности не се сосема исти тогаш во однос на технологијата на располагање, и ќе исто така види дека присуството на овој гостин предавања не мора да пике интерес од студентите на телото, вашите претходници, онолку колку што би можеле да имаат само неколку години подоцна. Па ајде да ги разгледаме во наука центар В. ЗВУЧНИК 2: Ве молиме да ми се придружат, и добредојде. [Аплауз] Марк Цукерберг: Ио. Во ред. Кул, ова е прв пат сум мораше да се одржи една од овие работи. Па јас сум само ќе се прикачете навистина брзо. Во ред. Можете ли да го слушнете? Дали е ова добро? Дали ова е засилена на сите? Во ред. Слатка. Значи, ова е како една од првите пати Сум бил на предавање на Харвард, but-- Дејвид MALAN: Значи на крајот на науки Центар не зумирате на видео, но не пред да ја направи оваа извадок каде зборува Марко, која тој зборуваше за неговата цимер, Дастин, кој сакаше да ја дадат на рака со ова сајт наречен Facebook.com и сфати дека Марко е за да се зборуваме за програмирање languages-- еден вика Perl, еден наречен PHP-- тој дискутира потеклото на придонес Дастин е. Марк Цукерберг: Јас почна да работи на сајтот и тоа започна во Харвард во февруари 2004 година. Па претпоставувам дека пред речиси две години. И во рок од неколку недели, неколку илјади луѓе се пријавиле, и почнавме добивање на некои пораки од луѓето во другите колеџи прашува за нас, за да ја стартувате во нивните училишта. И јас бев преземање на 161 во тоа време. Па јас не знам дали вие момци знаат угледот на тој курс, но тоа беше вид на тешки. Тоа беше навистина забавно разбира, но тоа не ме остави со многу време да се направи нешто друго со Фејсбук. Значи, мојот цимер Дастин, кој претпоставувам штотуку заврши CS50, беше како, еј. Сакам да помогнеме. Сакам да се направи проширување и помогне да дознаам како да се направи нешто. Па јас бев како, тоа е прилично кул, пријателе. Но, ти навистина не знаат PHP или нешто слично. Значи тој викенд тој си отиде дома, купив книгата Perl for Dummies, се врати и беше како, добро. Јас сум подготвен да си замине. Јас бев како, пријателе, сајтот е напишан во PHP не Perl, но тоа е кул. Па тој собрал PHP повеќе како неколку дена, бидејќи јас ветувам дека ако имате добра позадина во C, PHP е многу едноставна работа да ги собереш. А тој само вид на отиде на работа. Пред да ги погледнеме сега каде што курсот се случува, дозволете ми да го покани само некои на SC50 на персоналот за да се до фаза. Некои од нив се во шопинг своите курсеви. Но, ако оние TFS и CAS и се разбира глави, кои се тука може да дојде на до и ми се придружат за брз здраво. Дозволете ми да се воведе особено, Хана, Марија, Daven и Роб, Се разбира CS50 глави тука во Кембриџ. [Аплауз] Дејвид MALAN: Навистина, сведоштво за структура за поддршка кои се разбира има изградена во текот на изминатите неколку години, персонал CS50 броеви оваа година речиси 100, и тоа е тука во Кембриџ сам. Во меѓувреме, во Њу Хевн, постојат некои 40 TFS и CAS и членовите на персоналот има да се кандидира на курсот, како и. Дозволете ни да се воведе првиот, Роб Бауден. ROB BOWDEN: Здраво. Јас сум Роб. Ова ми е шестиот година TFing во курсот. Значи, сите на патот назад во мојата Новак година, јас не се CS50. Вашиот Новак fall-- може да биде запознаен кои може да се земе само четири курсеви и има толку многу курсеви денес. Затоа, јас сум како, еј. Зедов АП CS моите високи година на средно училиште што беше ужасна. Значи, јас сум како, еј. Компјутерски науки не е за мене. Па, тогаш тоа е во текот на текот на приемниот падне, што имав еден пријател во CS50, и Мислам дека присуствувал на една предавање со неа. Тоа е како, ох, ова е вид на подобри од она што го имаше во средно училиште. И во текот на година, имав мојот проблем сетови во курсеви бев всушност преземање. Но, сфатив дека секогаш кога ќе сакаше да отлагам на оние, Јас ќе се врати во CS50 и погледнеме некои од тие работи. Па, да. Јас сум кул. Јас Маене со кодирањето. Па, тогаш тоа е на крајот на падот што сфаќам, еј, компјутерски науки е прилично кул. Јас заврши преземањето CS51. Во следниот семестар, Јас заврши преземањето CS61. И сето тоа од таму, тогаш јас се заокружи прогласување компјутерски науки, кои ги имав апсолутно нема намера да прави кога дојдов во колеџ. И сега јас сум тука. Значи, се разбира е она што си го направите тоа. Се надевам дека ќе уживам во тоа. [Аплауз] Дејвид MALAN: Ви благодариме на Роб. И сега Марија, нашата упатат разбира асистент. МАРИЈА: Еј момци. Моето име е Марија. Јас сум втора година во Cabot Куќа, кои доаѓаат од Бугарија, и јас сум супер возбуден за да биде дел од персоналот на оваа година. Зедов CS50 како бруцош минатата година, а јас никогаш дури и размислувале за CS однапред. Па јас апсолутно љубов на курсот, и јас надевам дека сите тоа го сакаат, колку што јас направив. А, да. Добредојдовте на CS50. Дејвид MALAN: Ви благодариме на Марија. [Аплауз] Сега Хана, нашата настава главата колеги. HANNA: Здраво, јас сум Хана. Јас сум висок во Cabot студираат компјутерски науки. Зедов CS50 како бруцош и мораше е TFing-- ова ќе биде трета година. Па јас ќе бидам среќно вклучени во CS50 за сите четири години, и јас сум со нетрпение очекувам да работат со сите вас. Дејвид MALAN: Ви благодариме на Хана. [Аплауз] И на крај, Daven, нашиот precepter. Daven: Еј момци. Јас сум правило во текот на компјутерски науки тука. Ова ќе ми биде четврта година настава. Јас, исто така, им помогне на управување на курсот. Па јас сум сигурен дека ќе ме види околу себе, особено во текот на работното време. Јас сум секогаш на работното време. Значи, ако ме види одење околу себе, дефинитивно се каже Здраво. Сакам да се исполнат сите. Инаку, се забавуваат, и ќе се видиме наоколу. Дејвид MALAN: Ви благодариме на Daven, како и. Па ќе ги задоволи сите овие луѓе пред долго. Но, без понатамошно ado, ако вие момци би сакал да продолжи со своите места од порано. Дозволете ми да се воведе од далеку сега некои од нашите пријатели од Њу Хевн, раководителите на курсот кој ќе се набљудуваат CS50 there-- професор Брајан Scassellati, Џејсон, и Анди, кој just--, така што ние не се примамат судбина со било FaceTime или like-- имаат само ни испрати минути пред следното видео во кое тие се поздрави од салата за предавања на Јеил, во кој предавање е емитувана во моментов. Па нашите пријатели од Јеил. Брајан SCASSELLATI: Здраво, Дејвид. Здраво, секој на Харвард. Ние сме толку возбудени да се носат CS50 до Јеил овој семестар. Моето име е Брајан Scassellati, но сите само ме повика СОКИ. И јас сум тука денес да се воведе да ви персоналот CS50. [Навива] И уште поважно, јас сум тука за да се воведе како и сите ученици во Јејл кој како на ова утро го направија овој најпопуларниот Се разбира на Универзитетот Јеил на студентите CS50. [Навива] Значи ние сме многу возбудени да ти бидат гледате тука во петокот и во саботата Загатка ден и имаат голема лекција. Чао. [Аплауз] Дејвид MALAN: На екранот е тука имињата на некои од 140 вработени членови кои чекаат на вас во текот на текот на semester-- некои од нив тука во Кембриџ, некои од нив тука во Њу Хевн. И навистина ќе имаат можност оваа сабота, како што вели СОКИ, да присуствуваат на CS50 мозаик ден. Може да се види малку загатка парчиња лизна под влезови неодамна. Имаме неколку статисти тука подоцна кога ќе постои. Ако се соберат сите четири загатка парчиња и се спојат силите со соби близина на твое во вашиот куќа или dorm, тие ќе соберат во code-- QR или две-димензионални бар код, еднаш склопени и скенирани со вашиот телефон ќе ве доведе на некои чудесната награда or-- претпоставувам може само да се фотографираат ова сега исто така. Но, да се најдат оние мозаик парчиња сепак со цел да победат дека чудесната награда. И навистина е една од традициите во SC50-- ах, премногу бавно. Една од традициите во CS50 е да се служат колач по првото предавање. И така навистина, во неколку минути од сега, ќе има торта служи надвор и тука и во Њу Хевн, како и. Но first-- ги украсени нас самите. Но first-- и се надевам таму ќе биде доволно. Но, прво, брз поглед. Значи наставата е навистина ќе биде произведени претежно тука во Кембриџ. Но, секој месец, ќе хоп до Јеил со производство тим и поток CS50 е курсот во обратна насока насока, како и тоа да ги донесе овие два кампуси навистина за прв пат во историјата како блиску што е можно како еден во истиот курс. Во однос на структурата поддршка што е биле застана тука во Кембриџ, како и како и во Њу Хевн, се делови. Всушност, како што некои од вас може знаете, имаме различни патеки во рамките на курсот за оние кои се помалку удобно, поудобно, и некаде во средината, така што без оглед на вашата претходна позадина, што во крајна линија може да се успее во класата. Работно време пак, се можност во понеделник и вторник и четвртокот навечер за да работат овде и во Њу Хевн на нашиот курс е Проблемот поставува со десетици персоналот на курсот во близина на вас. Проблем поставува пак, се поддржан од работите што ние го нарекуваме walkthroughs, кои се базирани видео вежби кои навистина одговарање на прашања и одговори од каде да почне предизвик од една недела. И postmortems ќе одиме преку можни решенија така што на крајот на проблем во собата премногу, знае точно она што можеше да се направи поинаку или целосно поинаку. Проблемот поставува себе се во две изданија, со стандардна верзија што ние очекуваме и покани повеќето од на class-- околу 90% плус да do-- и т.н. хакер издание на кој секоја страница е украсена хакер издание, хакер издание, хакер издание, така што ќе го имаат тоа карма ако сакате, за нуркање во повеќе напредни верзии на проблем поставува на курсот кои покриваат наводно истиот материјал но со пософистициран пристап и со дополнителни позадина понекогаш се воведени. Во меѓувреме, постојат девет крајот на деновите кои може да се применува за проблемот на курсот поставува како и најниска оценка, која се намали на крајот на ниво. Но, она што го чека? Па, со вкус на проблемот поставува при рака во петокот и следната недела, каде што плискам за само неколку дена по нешто повика на гребење, графички програмирање јазик развиен од страна на нашите пријатели на МИТ Media Lab, кој ви овозможува на програма или за прв пат или во нова средина заедно со користење на еден вид на животната средина drag and drop. При мозаик парчиња блокирам само заедно ако тоа го прави логичка смисла да го стори тоа. Во меѓувреме, во проблем во собата последните две години, на пример, не ќе се воведат на класа во светот на криптографијата, уметноста на енкрипција или scrambling информации. Всушност, овој текст тука, ако декриптира, всушност, ќе се ве доведе до некои забава дестинација. И во проблем во собата, она што го имавме студенти направите е да се спроведе токму тие видови на things-- алгоритам, или збир на упатства за scrambling и scrambling информации. А во издание на хакерите на тој ист проблем во собата, не ние предизвик студентите да се земе криптирана датотека од типичен компјутер систем со голем број на кориснички имиња и криптирани лозинки и да се бори против оние passwords-- всушност дознаам она што тие беа без да знае а приори е со оние вистинските лозинки. Во меѓувреме, дали транзиција во проблемот ги поставува за да потоа се гледа во светот на графика. И всушност, може да се замисли сега дека ова можеби би можеле да е наједноставен начин да се претставуваат црна и бела слика. А бел пиксел, или квадрат, како во горниот десен агол таму, може да биде претставен со A1 и црн квадрат може да се претстави со 0. И само со користење на повеќе делови како што предложени на почетокот на 72 и 73 и 33, би можеле да претставуваат боја пиксели, како и. И она што го направи за време на овој проблем во собата е генерално се прошета низ кампусот со дигитална камера, се фотографии на луѓе, места и нешта. Потоа некако секој семестар, ние се чини дека случајно избришани или оштети мемориската картичка на која сите оние фотографии, и така ќе се соочат со предизвикот за потоа да се напише софтвер со која треба да го направите овие JPEG слики од копија на картичка нашата фотоапаратот. Во меѓувреме, ние да ви рака подоцна во поимот речник на англиски зборови кои имаат 143.000 зборови, и треба да се дојде до со паметен начин за ставање во меморија, или RAM меморија, така да се каже, да се одговори прашања на форма: ова е еден збор, ова е еден збор, за спроведување на најбрзо проверка на правопис што можеш, дури и прикачување себе потенцијално против соученици да се види кој од вас го користи најмалку износот на време кога водење на вашиот код, па дури и најмалку износот на меморија. Подоцна во терминот што се всушност спроведување на вашиот сопствен веб сервер. Затоа, не само на веб-страница во јазик наречен HTML и повеќе, но на веб сервер кои, всушност, слуша барањата на интернет и реагира на нив. И навистина, ова е како да се премости нашиот свет на C со која ќе се се запознаат следната недела и PHP и HTML и JavaScript и CSS и слично. Бидејќи една од првите веб-базирани Проектот што го правиме во текот на мандат е историски CS50 финансии. Etrade.com стил веб-сајт кој им овозможува на да се купуваат и продаваат акции речиси а во исто време ќе пишувате код да се зборува на Yahoo Финансии добивање полу реално време акции цитати, со цел да се ажурира свој портфолио. Но, на крај се разбира, е последниот project-- можност да се направи повеќето ништо на интерес за вас да се реши еден проблем тука или надвор од интерес за вас, кои некако е инспириран преку лекциите научени во класата. И класа, како што можеби знаете, кулминира во т.н. CS50 Hackathon и CS50 фер и било кој број на други културни настани во текот на семестарот кои ќе ви овозможи да се вклучат едни со други и персоналот на курсот. На пример, во Оган и мраз во sitar оваа година, и во петокот попладне, Ве покануваме 50 студенти на ручек, кој би сакале да ни се придружат, себе, и на персоналот, и нашите пријатели од индустријата и alums за да разговарате за живот во реалниот свет и пошироко, додека ужива добар ручек. На Hackathon ќе ќе видите како слики како што се овие, вклучувајќи многу candy-- и од 2014 година за прв time-- зеленчук. [Аплауз] Но, од 5:00 часот, го прави на местото на настанот обично изгледа малку нешто како ова. И тогаш само една недела или подоцна, е CS50 саем на која околу 2000 плус ученици и вработени и факултет членови од целиот кампус и низ кампуси оваа година доаѓаат да го видат и да уживаат во достигнувања на CS50 студенти, што сега ви е. И навистина, додека оваа година ќе се поканува и превоз на учениците некој на Јеил кои би сакале да се дојде до Кембриџ оваа сабота за CS50 мозаик Ден, а ние ќе го стори истото работа во декември за CS50 Hackathon така што Харвард и Јеил студенти така зедоа учество во двата од овие настани. Ние, исто така, ќе се одржи CS50 саеми во Кембриџ и во Њу Хевн оваа година така што студентите на двете кампуси и вработени и факултет може да се види едни со соодветните остварување кампусот е. И оние достигнувања ќе предизвикаат таква меморија како што тоа и тоа и на крајот ова, во која сите вас излезете од класа облечен малку нешто во што ќе се надевам среќен или горди да кажеме дека отидов CS50. Но, пред тоа и пред да им служи на торта, ние се стави together-- благодарение на CS50 е производство тим и одредена себе стап, една прилика дека ние ги користиме такви работи for-- кога ќе го испрати не само тука во Кембриџ но исто така и во Њу Хејвн да се соберат неколку hellos од вработените се разбира и сите луѓе ќе се сретнат и тука и во Њу Рај во текот на следните месеци. Дозволете ми да се воведе неколку од вработените е CS50. Марк Цукерберг: Дали тоа се направи тоа оди? О, тоа се случува. Тоа се случува. Ooh. Yarr! [Музички Енди Грамер "Душо, јас сум  ДОБРА "] МАРИЈА: Ова е Кејтлин. Тоа е Џеј, и јас сум Марија. Сато: Здраво, момци. Јас сум Сато. Мајкл Г .: Здраво. Моето име е Мајкл, Г. Даг LLOYD: јас не сум. Бр Јас сум Даг Лојд. Не можам да верувам дека јас сум држи селфи држи во моментов. ЗВУЧНИЦИ 4: Здраво. ЗВУЧНИЦИ 5: Здраво. ЗВУЧНИЦИ 6: Здраво. ЗВУЧНИЦИ 7: Здраво. ЗВУЧНИЦИ 8: Еј. Ние сме дружење на Јеил. Ние сме навистина возбудени за овој семестар, бидејќи тоа е прв пат тоа доаѓа на Јеил. Тоа се случува да биде страшно! [Музички] JACOB SCHERBA: Моето име е Јаков Scherba. Јас сум возбуден за да учат CS50, бидејќи мислам дека го донесе информатика на луѓе и пристапен начин. ЗВУЧНИЦИ 9: Јас сум навистина возбудени да учат CS50 бидејќи отидов на класа минатата година, и тоа е еден од најдобрите класи. ЗВУЧНИК 10: Да. Мој совет е да треба да се земе CS50. JACOB SCHERBA: Ги избрав CS бидејќи Мислам дека тоа е забавно и креативно за решавање на проблемите во аналитички начин. ЗВУЧНИК 11: Назад кога бев мало Новак и се плаши од компјутерски науки и се плашите да прави инженерство и работи, тоа беше првиот хард класа отидов, и тоа беше, исто така, мојот омилен класа досега. Даг LLOYD: Ова е мојот деветтата година наставата CS50. Тоа ме прави да звучи толку стар! Секогаш има нешто ново. Секогаш има нешто возбудливо. Секогаш има нови предизвици со кои се соочуваат нови ученици, и тоа е забавно да им помогне и за да се оние кои се предизвици со нив и ќе им помогне да ги реши нивните проблеми. ЗВУЧНИК 12: Кога јас прв пат Научив како да се направи CS, тоа беше како учење супер сила. И да се види дека во другите ученици и да им помогне во текот на тој процес е еден од повеќето наградува работи што сум. ЗВУЧНИЦИ 7: Ги избрав CS бидејќи во почетокот, бев математика концентратор и јас се CS50 и падна во љубов со неа. Јас, исто така, се чинеше дека со CS, би можел да се изгради работи. И тоа, си помислив, беше навистина кул аспект. ЗВУЧНИК 13: Некои совети за нови студентите е да отидете на работното време и да се дружат со страшни TFS. ЗВУЧНИК 14: Започнете ја вашата P-множества рано, одат на работното време, стане frends со вашиот ТФ. ЗВУЧНИК 15: Да. Сè што рече таа. ЗВУЧНИК 16: Не плашете да побарате помош. ЗВУЧНИК 17: Да. ЗВУЧНИК 18: Започнете ја вашата P-поставува на почетокот. ЗВУЧНИК 19: Тоа е голем социјално искуство. Направи многу пријатели на овој начин. ЗВУЧНИК 14: Одете во делот Тоа е забавно. ЗВУЧНИК 11: Мислам, одат за тоа. Тоа е навистина тешко. Ќе излезат од него она што го стави во неа, но тоа е навистина забавно класа, особено ако сте подготвени да се стави време во неа, но тоа им помага ако се стави време во неа. Ќе добиете многу повеќе од него подоцна. МАЈК: Јас сум Мајк. Камила: Јас сум Камил. HANYA: Јас сум Hanya. Мет: Јас сум Мат. Петар: Јас сум Петар. PHILLIP: Јас сум Филип. PATRICK: Јас сум Патрик. ROB BOWDEN: Јас сум Роб Бауден. Брајан SCASSELLATI: Мојата име е СОКИ и this-- СИТЕ: --is CS50. ЗВУЧНИК 20: на Јеил. ЗВУЧНИК 21: на Јеил. [Се смее] Дејвид MALAN: Тоа е тоа за CS50. Ние ќе се видиме на Јеил на Петок, мозаик ден во саботата. сега се служи торта. Ова е CS50. [Музички]