[Музички] [Аплауз] Дејвид Џ MALAN: Ова е CS50, Воведување Универзитетот Харвард на интелектуална претпријатија на компјутерски науки и уметноста на програмирање. Сега, ако вие сте меѓу оние кои секоја година се седи тука со малку на нерви во твојот ум, како дека не мислам дека припаѓам овде, Дали мислите дека повеќето секој седи околу вас знае многу повеќе од вас, е навистина поудобен од вас на компјутер наука или компјутери поопшто, реализира дека 78% од студентите кои сега се CS50 немаат претходно искуство. Навистина, има 100 точки има на екранот, од кои 78 се цврсти зелени, кој ви значи, ако сте меѓу кои демографски, се во многу добра компанија тука на надвор. И ако сте, наместо меѓу 22% од CS50 студентите кои навистина имаат претходно искуство, без разлика дали во средно училиште или некоја друга програма, сфати дека, исто така, ќе да се соочат со предизвикот во курсот. Не само што имаме различни песни за студентите помалку удобно и повеќе удобно слично во делови, ние , исто така, имаат т.н. хакер изданија на повеќето проблем пропишува дека ќе предизвик оние студенти со што дополнително искуство да се истражуваат сличен материјал но од повеќе софистицирани перспектива. Но она што е компјутерски науки? И, во крајна линија, што ќе се прашање како што истражуваат ова поле не е толку многу, каде што ќе се заокружи во однос на вашиот соучениците, но каде што се завршат во недела 12 наспроти каде што ќе почнат тука во недела нула. Сега компјутер science-- добро, ајде да го нарекуваат наука на computation-- каде пресметка е навистина само еден фенси начин да се каже, преземање на некои влез, производство на некои излез, и Притоа од страна на водење на алгоритми, групи на инструкции за решавање на некој проблем за оние влезови со цел да се произведе некои излез или решение во кое сте заинтересирани. Па ние неодамна имаше прилика да патуваат надвор во Калифорнија да се сретне со alumna. Нејзиното име е Сузан Wojcicki. И таа би сакал да зборувам да ви тука на видео да сведочат за тоа колку се применуваат, дури и само вкусот на компјутер наука на воведната ниво може да биде. Дури и ако не одат за да се продолжи компјутерски науки како поле, или дури и инженеринг, или матични поопшто, ќе видите, всушност, како одреден Се разбира, така влијание врз нејзиниот живот. А таа само го зеде, кога таа беше висок тука во колеџ Харвард. Ако можеме да придуши го светла за Сузан. Susan Wojcicki: Здраво, светот. Јас сум Сузан Wojcicki. Јас сум директор на Јутјуб. И јас се CS50 кога бев висок на Харвард во 1990 година. Јас всушност историја и литература големи. И мојот помлад лето, Сфатив дека можеби и јас сакав да научат нешто за компјутери. И така, се вратив. Зедов CS50. Беше тешко, но тоа беше Најдобрата класа отидов. Тоа се промени како јас размислувам за сè. И кога дипломирал на Харвард во 1990 година, отидов во Силиконската долина. И добив работа. И јас сум бил работат во тек и оттогаш. Дејвид Џ MALAN: Сега што Сузан не се споменуваат во ова видео, дека тоа всушност бил во нејзината гаража дека Google себе беше основана од страна на Лари и Сергеј. Сега ние, исто така, достигна до наши пријатели на code.org, организација што во текот на изминатата година е добивање на луѓето, особено возбуден околу компјутерски науки и програмирање, а особено. Но, тоа е вреди да се напомене дека програмирањето не е компјутерски науки по себе. Компјутерски науки не е програмирање. Наместо програмирањето е само tool-- со кои сите ќе ќе биде многу добро познати по end-- семестар така што ќе може да се однесува само за идните курсеви во CS но за она полиња од каде доаѓате, во економијата, општествените науки, природни науката, или слично. Всушност, им овозможи на неколку други најинтересните и нивните колеги да зборувате со применливоста на полето што го чека. Бил Гејтс: Бев 13 кога јас прв доби пристап до компјутер. Џек Дорси: Моите родители ми купи Мекинтош во 1984 година кога имав осум-годишна возраст. Марк Цукерберг: Јас бев во шесто одделение. ЗВУЧНИЦИ 1: научив да код во колеџ. RUCHI Sanghvi: Новак година, прв семестар, Вовед во компјутерски науки. Бил Гејтс: Напишав програма кои играат Tic-tac-пети. Дру Хјустон: Мислам дека тоа беше прилично скромни почетоци. Мислам дека првата програма Напишав побара работи како, она што е вашата омилена боја? Или колку години имаш? ЕЛЕНА SILENOK: Јас прв пат научил како да се направи зелен круг и Црвениот плоштад се појави на екранот. Gabe Newell: Првиот време јас всушност имале нешто излезе и да каже здраво, светот. И јас направив компјутер го направите тоа. Тоа е само неверојатно. Марк Цукерберг: Учењето како да програма не започнете што сакаат да учат сите компјутерски науки или се обидува да го совладате овој дисциплина или нешто слично. Тоа само го започна натпреварот затоа што сакав да го направите тоа една едноставна работа. Сакав да направам нешто што беше забавно за мене и моите сестри. И јас напиша оваа мала програма. А потоа во основа, само додаде малку на него. А потоа, кога ми требаше да научат нешто ново, Го погледна нагоре, или во книга или на интернет, а потоа додаде малку на него. Дру Хјустон: Тоа навистина не е за разлика од свири на инструмент или нешто или играње спорт. Дејвид Џ MALAN: Во ред. Па нека сега, всушност, се нурне во малку подлабоко. Кои се овие влезови и излези дека ние зборуваме за тука? Па како за нешто едноставно? Што веројатно знаете, дури и ако имате без познавање на компјутерски науки она, дека компјутерите некако се користи и разбира само нули и единици. Но, како што веројатно може да се даде како многу денешната десктоп компјутерите и лаптопите слично да направам? ДНК на денот, само писмото што тие го разбираат е нула или еден. Па, сметаат дека ова. Ние, луѓето, имаат тенденција да се користи децимален систем. "Декември", што значи 10. И тоа е 10, бидејќи имаме 10 цифри, од 0 до девет. Сега компјутерите, од друга страна, имаат тенденција да користат бинарни. "Би", што значи два. Така што тие имаат тенденција да се користи само нула и еден. Но, се покажа, дека дури и само со нули и единици, кои е доволно голем писмо со кои може да претставуваат најголем било дел од податоците што сакате, дали тоа е голем број, дали тоа е писмо, без разлика дали тоа е графички или видео на екранот. Погледнете ги, на пример, како луѓето обично се протолкува овој број тука. Ова е само три бројки, еден, два, три. Но, ние знаеме овој број вродено сега како 123. Но, зошто е тоа така? Па, ако мислите назад да можеби основно училиште, најверојатно учеа да се мисли на овие бројки како во колони, каде што еден е во стотици место, две се во десетици место, и на три е во оние место. Зошто е тоа всушност корисно? Па, мислам за супер едноставни аритметички дека сите ние се прави за години. Ефикасно, ако имаш еден во стотици место, го направите брзо по математика 100 пати 1 плус 10 пати 2-- бидејќи двете е во десетици place-- плус 1 пати 3-- бидејќи три е во оние место. Значи, се разбира, ако ние всушност размножуваат ова, она што ние сме навистина претставува со овој pattern-- еден две three-- е 100 плус 20 плус 3, кои, се разбира, е 123. Сега бинарни и компјутери, навистина, фундаментално го зборуваат истиот јазик што правиме. Тие само имаат помали писмо. Значи компјутери имаат само нули и оние на располагање. Па додека ние луѓето ги имаме во суштина овластувањата на 10 во секоја од овие places-- 10 на нула, 10 до еден, десет на две, кои ви даваат 110 и 100 соодветно. Бидејќи компјутерите имаат само две вредности тие можат да разберат, нула и еден, тие треба да се користат различни вредности во овие колумни, еден, два, четири. И ако ние ќе се чуваат, осум, 16, 32, 64, и така натаму. Но моделот и менталитет е иста. Значи со оваа логика, секој, како би Одам за претставување на бројот еден во бинарна? Ако никогаш не сум дури и не помислил ова пред, што се стомакот кажам? ПУБЛИКАТА: Еден. Дејвид Џ MALAN: Еден. Токму така. Ние само треба еден во оние место, бидејќи на нули доволни за да ни даде ниту четири, ниту две. Значи една пати еден е еднакво на еден. Сега работите се малку интересно. Ако сакам да се претставуваат во Бинарни бројот two-- но, повторно, дури и ако никогаш не сум зборуваат овој јазик пред, како ние да ги претставуваат во бинарна вредноста ние, луѓето знаат како два? Нула еден нула. Само стави еден во колона која што сакате. Сега тоа е добивање прилично лесен веројатно сега. Па ако сакам да претставуваат three-- не постои три во колона. Значи, повторно, јас сега може да додадете овие вредности заедно со прекрасен еден тука. Па 2 пати 1 плус 1 пати 1 е, се разбира, 3. Сега работите се малку забава во дека оние кои сега станаа нули. И да претставуваат четири, да се добие оваа. И ако ние подигање бавно here-- дека ќе биде пет. Ова ќе биде шест. Ова ќе биде седум. Но сега се чини дека наиде на проблем. Како би можел да се обратите за застапување eight-- ќе биде следната вредност. Да, така ни треба нова бита. И, навистина, ако сте слушнале оваа фраза пред тоа, битови, тоа е само краток за бинарен цифрениот, нула или еден. И така јас се случи да се претставуваат само три такви битови тука. Но, ако имав начин на не складирање три различни делови, но четири, сигурно би можел да претставуваат осум, а потоа девет, а потоа 10, па дури и повисоко и повисоко. Но дека тогаш повици во прашање како можеме да одат за застапување на овие работи во на прво место. Тоа е една работа да се подготви нив тука на слајд, но како да ги претставуваат ако сте механички уред? Што е компјутерски прави да претставуваат влезови и излези дека фундаментално се дефинира пресметка на крајот на денот? Па, она што за нешто супер едноставен, како тоа? Тоа е само една сијалица. И можам да предизвика овој сијалица да се оди на со вртење на некои електрична енергија на и дозволувајќи им на електроните да тече низ, што ја менува својата држава или неговата вредност, така да се каже. На пример, ова е старата школа маса светилка тука со една таква сијалица во него. И сега тоа не е навистина прави нешто корисно. Но штом ќе го приклучиш во електричен штекер и потоа користете го овој switch-- или ние дури и може да го наречеме еден транзистор или мислат на тоа како such-- Сега може да претставува било оваа вредност, каде што сијалица за очигледно надвор, или оваа вредност. Оваа вредност или вредност. Оваа вредност и така натаму. Па во внатрешноста на компјутер, веројатно, се многу помали парчиња хардвер, но дека на крајот на ден едноставно треба да се користи electricity-- можеби го фати it-- а потоа или се задржи нешто или задржи нешто надвор. Се разбира, ова не е особено интересно да се направи со само еден сијалица. Всушност, колку високо можам да се смета во бинарен со овој биро светилка тука? ПУБЛИКАТА: Еден. Дејвид Џ MALAN: Еден, нели? Ми треба повеќе биро светилки, ако јас всушност сакаат да се избројат повисока. Но, можеме да го направи подобро од тоа. Бидејќи светилки кои ние сме се стави во овие работи се всушност познавач светилки од недалечното минато ќе им овозможи. И тие се, всушност, мрежни светилки. И гроздовете на компании направи овие работи, овие денови. Но, се покажа дека ова особено доаѓа со функција која можете да ги менувате своите бои. Така на пример, ако украсена вашиот dorm соба со неколку од овие лесни луковици, во зависност од вашето расположение, зависност од тоа кој доаѓа во, во зависност од временските услови, во зависност од времето на ден, всушност можете да промена на боите на на светилките во вашата соба. И тоа е затоа што овие светлина светилки и други како него имате она што е нарекува API, апликација програмски интерфејс, кој е тема со која ќе биде добро запознаени со до крајот на семестар. И ова е само фенси, криптичната начин да се каже, можете да програма овие светлина светилки за да го направите вашиот наддавање. Можете да ги праќате пораки исто како тебе, човек, може да се испрати порака до веб серверот велејќи дека, дај ми вести денес или да ми даде мојот е-мејл. Можете да испратите повеќе arcane пораки на овие светилки да се каже, да се претвори и исклучува. Но, тоа не е сè што интересно. Може да се каже, да се претвори на црвено, го вклучите зелени, вклучете сина, сите со исти сијалица. И можете дури и со малку повеќе такт, велат, се претвори во сино кога тоа е мрачен ден надвор, на пример. Тоа всушност може да се закрпи во временската API и да дознаете тоа што времето е, или за време на ден, или други слични причини. Така, всушност, две од Сопствени членови на персоналот CS50 е, Ден Бредли и Ansel Даф тука, љубезно се набавуваат ни целиот куп на овие светилки. И имаат изградено CS50 на прва бинарни светилки, каде што сме претставен here-- со овие разиграни малку magnets-- различните променливи се алудира само пред малку. Значи начин во текот тука е оние место, два, четири. И ние не го види повисоки од тоа. Но, се разбира, тие се овластувањата на две. Осум, 16, 32, 64, и 128. Значи, ако јас сега сакаат да бидат малку познавач од користење на овој старата школа прекинувач, Имам тука на овој iPad супер едноставен интерфејс дека Дан Бредли, поранешен студент и сега предава колеги, programed користење на некои HTML и JavaScript, која се Селектирај и програмирање јазици, соодветно. И може да веројатно see-- дури и во back-- има голем плус и голем минус, плус едно копче за секој од овие светилки. И што се случува да ми дозволите да не е, на пример, кликнете на плус и сега претставуваат, на Се разбира, она број? Еден. И можам да го погоди повторно. Две. Три. Четири. Пет. Шест. Седум. И тука сега ние се добие тоа превртување, но ние имаме четврти бит тоа време, Така, сега имаме осум. За да можеме да го направи тоа за подолго време. Всушност, како настрана, колку високо можеме да се смета? Некој? ПУБЛИКАТА: 255. Дејвид Џ MALAN: 255, нели? Не грижете се премногу за математика за сега, но тоа е прилично пристојно број. Но тоа всушност се обврзани само колку парчиња на информации, како писмо, или графика што би можеле да претставуваат. Но, без оглед за сега. Одам да одиме напред и да се сврти сите ги исклучи. И ако јас би можел, би сакал да прашам за волонтер, нашиот прв volunteer-- ох, hello-- на сцената. Улов е дека треба да биде удобно се појавуваат, како што јасно се пред сите ваши соученици, како и на интернет. И дозволете ми да се погледне малку подалеку the-- како за тука во бела кошула? И рака нагоре. Ајде до. Што е вашето име? ПУБЛИКАТА: Џеки. Дејвид Џ MALAN: Џеки. Џеки, ајде нагоре. Значи она што таму е исто така на оваа iPad е наречен копчето игра на владата. И ова Game Mode е ќе ми овозможи да го внесете однапред одредена децимална број, бројките ние, луѓето се запознаени со. А потоа ќе се соочат со предизвикот тука за да ги користите копчињата на top-- еден за секоја од овие bulbs-- всушност да дознаам моделот на светилки кој претставува број во прашање. И жал ми е, она што беше вашето име повторно? ПУБЛИКАТА: Џеки. Дејвид Џ MALAN: Џеки. Во ред. Добро е да ви се исполнат. Значи, дозволете ми да оди напред и програма за за светот да види бројот 15. Ние ќе го задржи мал на прв овде. И јас одам да одат во игра на владата. И јас одам да се одреди, ни даде бројот 15. Во ред. А сега со сите watching-- ако сакате да можеби стојат вака, бидејќи тоа ќе линија up-- оди напред и да промена на осум копчиња заедно на врвот за да го вклучите на светилките на или надвор како што ви одговара. ПУБЛИКАТА: Добро. Дејвид Џ MALAN: И не мамење со притискање плус 15 пати. Ох, ние се случува да го направите тоа. ПУБЛИКАТА: О, чекај. Многу ми е жал. Дејвид Џ MALAN: Вие исто така може да се претвори светилки за поединечно со секоја од овие копчиња на врвот. ПУБЛИКАТА: О, во ред. Па тоа ќе биде like-- Дејвид Џ MALAN: Добро. Така, сега имаме осум. Значи, да се откажеш за публика да се вклучат тука. Кој број е Џеки во моментов претставува? 11. Па ние сме речиси таму. И одличен. Значи имаме нашиот прв победник. Алал да му е. И ние сме мислеле дека ќе имаат некои чудесната рекламирање материјали. Ако сакате да биде еден таков dorm соба тука на кампусот, ти самиот може да има завршен проект користите сега овој API, благодарение на Џеки. Па now-- [Аплауз] --if ние би можеле, уште еден како околу ова. Е, сега секој сака некои светилки. За т.н. хакер издание, ние се случува да го рампата a-- ох, Да, затскриен. Мислам дека доаѓате до сега ако вашата рака што се случува долу. Што е вашето име? ПУБЛИКАТА: Алекс. Дејвид Џ MALAN: Алекс, ајде овде. Така и за Алекс, ние ќе се програмата во малку поголем број. Можеби во ред. Бројот 50. ПУБЛИКАТА: Добро. Дејвид Џ MALAN: Но, како што Јас said-- и може да сакаат да се тука, па дека копчињата се редат како што би expect-- но јас не ова го нарекуваат на хакерите издание. So-- среќа! [Смеа] Вие ќе бидете во можност да го вклучите ги исклучи ако you-- ред. Одличен. Прекрасно. Алал да му е. [Аплауз] Претпоставувам дека треба да платат. Честитки до Алекс, како и. Во ред. Значи крајна готова брза тука е се надевам, искрено, на simplicity-- на едноставност со која може да се добијат некои убави светлината светилки, очигледно во [Беззвучен]. Но, тие ги претставуваат, во крајна линија, исти идеи со која ние, луѓето се веќе премногу запознаен. Па што би можело следниот чекор да биде во прогресијата се обидува да направи нешто интересни со податоци и застапување влезови кои не се само броеви, но можеби се писма или повеќе? Па, излегува дека компјутер во светот, за многу години, едноставно усвои произволна, но во согласност стандард кој мапира броеви да букви од азбуката. На пример, тука е извадок од тоа мапирање. Таа се вика ASCII. A-S-C-I-I. И дека е само маса која карти големи letters-- во оваа case-- да децимални броеви. Но она што е импликација? Па, ако навистина сакате да го претставуваат нешто како е-мејл или текст на веб-страница, можете очигледно сакаат да покажат човечкиот букви од писмо, не броеви. Па во зависност од контекст на програмата дека корисникот е користење на, ако тоа е веб прелистувач или е-мејл клиент, броеви, секако, може да биде толкува како писма. Тоа е да се каже, шеми на битови може лесно да се протолкува како писма. И така што можеме да имаме е буквата А суштество претставен како 65, B се претставени како 66. Значи, ако имаме супер краток збор, како Здраво, каков компјутер ќе крајот продавница во децимална но навистина во бинарен, користење на некои низа од битови, проширува малку на електрична енергија, на некој начин, ќе биде два броја 72 и 73. Но моделот на битови кои претставува тие вредности. Па овие потоа се како можеме да претставуваат нашата влезови и излези. И тоа доволно да се каже, можеме да направи повеќе комплексни репрезентации на крајот со нешта како графика, видео, музика, и многу повеќе како што ќе видиме подоцна овој термин. Така што само остава потоа алгоритми, овие множества на инструкции со кои ние сме решавање на актуелните проблеми. Ние сме минува во влезови на алгоритми. И оние алгоритми се произведуваат излези, се надевам точни резултати и се надевам дека, исто така, ефикасно собрани излези. Со други зборови, тоа е една работа да се спроведе нешто правилно. Тоа е друга работа да се имплементира нешто добро или ефикасно. На пример, една демонстрација дека ние сме љубители на во текот е оваа. Но, овие работи се добива повеќе тешко да се најде. Но, ова е навистина старата школа телефон книга, во внатрешноста на кој 1.000 плус страници имиња и телефонски броеви. И ако сакав да се погледне до некој во овој телефон книга, Јас едноставно не можеше да стори многу наивна алгоритам. Јас може да се отвори на првата страница, а Јас би можеле да почнат да се погледне за, да речеме, некој име Мајк Смит. И ако тој не е на прво страница, јас напредокот на вториот, а потоа и третиот, а потоа до четврто, и така натаму, додека конечно најде Мајк Смит. Сега е дека алгоритмот точно? ПУБЛИКАТА: Да. Дејвид Џ MALAN: Да. Ако тој е таму, јас ќе на крајот го најде. Но, тоа е веројатно не е многу ефикасно, сигурно не брза, затоа, Боже мој, зошто сум јас трошејќи го своето време нервира преку сите овие страници кога можев сигурно го направите ова физички побрзо? Па, мала оптимизација, така да зборува, не може да биде една страница во еден момент, туку две, четири, шест, осум, 10. Уште точно? ПУБЛИКАТА: Не Дејвид Џ MALAN: Значи, ако јас не се за пример прескокнете над Мајк Смит. Но толку долго како што се врати на педалата една страница, ако го префрлување, можеби ние би можеле да го поправи тоа што инаку може да биде Gotcha. Но, тоа е подобро? Е тоа побрзо? Мислам, да. Тоа е буквално двојно побрзо ако го направам две страници во исто време. Значи, ако јас првично беше 1000 страници, сега ми останува само да флип 500 пати не се целосно 1.000 страници, за да се потенцијално во најлош случај до крајот на телефон книга, каде што некој како Мајк Смит или некој со подоцна име, всушност, може да биде. Но, се разбира, ние луѓето, секако, не се ќе треба да се прави тоа, сигурно не во овој момент во нашите животи. Што е разумен човечки веројатно ќе го направи? ПУБЛИКАТА: Оди директно на the9 на S. Дејвид Џ MALAN: Оди директно на на S? Како можам да се обратите директно на на S? ПУБЛИКАТА: Rip тоа на половина. Дејвид Џ MALAN: Па, нема означување. Значи, да, ако имаше навистина етикета или леплива јазичето за S, ние треба да скокаат во право таму. Но тоа е прилично едноставен. Па најдобро што можам да направам е приближно на S дел или можеби грубо во средината. Но клучот готова брза now-- и интуицијата кои сте ги направиле за доделува за години probably-- е дека она што го прават сега знаат за овој проблем? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Мајк Смит е сигурно не во оваа половина од проблемот бидејќи Смит доаѓа по средината што е околу делот М, се чини дека е. Па како може да се види во Visitas, ние сега можат буквално солза овој проблем на половина. ПУБЛИКАТА: Ву! Дејвид Џ MALAN: Тоа е станува полесно и полесно. [Аплауз] Таму да одите. [Смеа] И сега јас во основа го имаат истиот проблем, но тоа е буквално половина толку големи. Јас сум сеуште во потрага по Мајк Смит. И јас daresay, можам уште изгледа за него на ист начин, поделба на проблемот на половина повторно, кинење на проблемот повторно на половина, што сега ме остава со проблем една четвртина од големината, драматично фрли дека половина далеку, и повтори овој процес одново и одново и повторно, гледајќи надолу на секоја точка за да ја видите ако Мајк Смит е на на страница во прашање. Сега ако го направам ова право, на крајот јас ќе се наоѓам со само една страница на која Мајк Смит е ако тој е навистина во телефонот книга. Се разбира, би можел никогаш не се јавите Мајк повторно. Но поентата тука е дека ако ние почнавме со 1000 страници, мојот прв алгоритам, флип страница, можеби 1000 times-- дефинитивно помалку, бидејќи тоа е С име, а не името на Z, туку како колку 1.000 страници потенцијално. Вториот алгоритам, подобро. 500 страници. Трето алгоритам, иако, колку чекори би го земе да се подели на 1000 страница именик на половина, како тоа? 10, се дава или зема. Значи само од нервира преку кои телефон книга, нуркање и освојување, така да се каже, 10 пати, ќе се направи мојот начин сведува на само една единствена страница. И така ние може да се фати оваа интуиција сега малку графички ако само се разгледа овој супер едноставен графикон. Ние сме на x-оската, или хоризонтална оска, е со големина на мојот проблем, бројот на страниците во книгата на телефонот. И компјутерски научници генерално сакал да го наречам големината на проблемот n, каде n е само некои променливи кои represents-- во оваа case-- број на страници. Вертикална или y-оската, тука е ќе биде време да се реши, можеби бројот на страница се врти, можеби на бројот на секунди или минути, без оглед на вашата единица мерка е. Па така ова црвена линија претставува првиот алгоритам, бидејќи таму е 00:59 односот помеѓу бројот страници и износот на времето што е потребно. Ако Веризон удвојува бројот на страници во книгата на телефонот следната година, мојот трчање time-- на Времето потребно да се изврши дека првиот algorithm-- двојки во најлош случај. Но, вториот алгоритам, каде што сум нервира од страна на две, бара помалку време за дадена големина проблем. Па ако имам многу најава страници here-- дека жолтата линија сугерира помалку време да се реши. И навистина, таа претставува, ние ќе каже, n во текот на две. Но она што е обликот на третиот и конечна крива ќе изгледа? Да, тоа е навистина ќе look-- јас не знам што ви се случува да се каже. Но, ајде да видиме што ви се случува да се каже. ПУБЛИКАТА: Како тоа. Дејвид Џ MALAN: Тоа се случува да изгледа како ова, логаритамска slope-- exactly-- при што ќе ја имаат оваа чудна патека. Тоа е повеќе не е права линија. И она што е интересно во врска со тоа е дека иако графиконот е сега отсечени, можете да екстраполираме во вашиот ум дека дека зелената линија не е ќе се зголеми во висина на сите дека многу како што продолжи понатаму предвидува дека хоризонталната оска. Всушност, Verizon, за На пример, може да го дуплира бројот на страниците во телефонот книга меѓу оваа и следната година од 1000 до 2000 година страници, но нема ништо страшно. Со овој трет и последен, има интуитивен алгоритам на поделба и освојување. Тоа се случува да ме земе колку повеќе чекори следната година да се најде некој како Мајк Смит? ПУБЛИКАТА: Еден. Дејвид Џ MALAN: Има само еден. И тие можат да го зголемат, тоа е ќе ме земе само два чекори и така натаму. Па така ова е доказ за колку некои внимателни дизајн и некои благодарност за она што Вашиот влезови се може да се направи дури и подобро. Сега сме мамење на малку во смисла дека ние сме проширува претпоставка. Која е мојата претпоставка за нашите телефонски книга кој ми дозволи да се подели па владеј во овој интуитивен и уште правилен начин? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Па тоа беше наредено. Тоа беше азбучном реду од книгата на телефонот компанија. Ако е по случаен редослед, дека ќе биде пекол на телефон книга, но тоа сигурно не би се позајмуваат на алгоритмот Јас се користи, затоа што никогаш не би само да се случи преку Мајк Смит ако се чува поделба во половина на тој начин случајно. Па ајде сега формализира она што е јасно интуитивен. Значи нешто што се нарекува pseudocode е местото каде што ние ќе започне некои од нашите првични проблеми. И ова е генерички начин на опишување на алгоритам или компјутерска програма, не со користење на C или C ++, или Јава, или било специфични јазик, но само со користење на англиски јазик, со кој секое човечко може да биде запознаен. И ние може да напише pseudocode за овој проблем како што следи. Чекор еден, ги собереш на телефонот книга. Чекор два, отворен за средината на телефонот книга. Чекор три, погледнете на имиња. Чекор четири, ако Смит е меѓу names-- А сега ова е Интересно конструкција. Тоа е одлука точка. Тоа е вилушка во патот, ако ќе, гранка, така да се каже. Па ќе одам да вовлекувате само со конвенцијата step-- не five-- кој е за да се да речеме, јас ќе се јавам Мајк. Значи ова вовлекување, целосно произволни човечки конвенција, но тоа е едноставно со цел да се пренесе семантички дека ако Смит е меѓу имиња, тогаш треба да се јавите Мајк. Во меѓувреме во чекор шест, известување дека вовлекувањето нема. Па друг е друга вилушка во патот, друг пат би можел да патуваат. Па друг ако Смит е порано во книгата, она што е мојот следен чекор најверојатно ќе биде тука? ПУБЛИКАТА: Одиш на левата страна. Дејвид Џ MALAN: Да, па оди на левата половина од именикот. Фрлаат на десната половина ако Смит е порано во книгата. Толку отворена до средината на на левата половина од книгата. А потоа се повлече осум, одете на линија три. И ова е чудна јамка јас сум поттикнување, на рекурзијата така да се каже. Но повеќе за тоа во иднина. Јас сум користење на мојот истиот алгоритам, ја истата pseudocode, да го реши истиот проблем повторно затоа што единственото нешто што се промени е големината на проблемот, не мојата цел, а не на лицето Јас сум во потрага. Така што може да повторна употреба на алгоритам кои веќе сум дефинирани. Друго, ако Смит е подоцна во book-- може да guess-- отворена до средината на десната половина од книгата. И повторно, одете на линија три. Else-- што е последната линија во оваа програма ќе биде? Ако тој не е меѓу имиња на страницата сум на, ако тој не е порано во книга, и тој не е подоцна во книгата, што знам важи и за Мајк Смит сега? ПУБЛИКАТА: Тој не е во книгата. Дејвид Џ MALAN: Тој не е во книгата. Па најдобро што можам да направам е само се откажат и да престане оваа програма. Во ред. Па во овој момент, ајде да ги брз турнеја на некои од она што го чека. И всушност, јас се приклучија тука од голем број на CS50 персонал. Ако овие луѓе би можеле да сите придружи ми се овде на сцената. [Аплауз] Иначе, ова е само подмножество на CS50 персонал, бидејќи секоја година имаме речиси 100 вработени членови во улоги се разбира асистенти, наставата соработници, и многу повеќе. Ајде до. Па тие ќе ни се придружат тука чудно за само еден миг како што ние им даде на виорот турнеја на она што треба да очекуваме тука во курсот. Значи прво и основно, имаме SAT / УНС како опција оценување во текот. Тоа е со цел намерно да биде опција која ако сте малку мачно во се во се разбира, и ќе се плашат failure-- дури и ако искрено неуспех значи повреда на вашиот Успех, добивање на Б а не A-- што е Токму тоа, секако за портал Се разбира, како CS50 и други воведни курсеви, ова оценување опција е наменета за да се овозможи. Јас сесрдно ги охрабри students-- особено ако на fence-- за да започне Се разбира SAT / УНС, дури и да остане SAT / УНС. Но, сигурно може да се префрлат на писмото одделение од петто понеделник во терминот. Искрено, назад кога бев беше бруцош во 1995 година, Јас дури и не се CS50 бидејќи јас не одам до нервните всушност чекор нога во училницата. Се чинеше домен премногу непознати за мене и навистина само за оние мои пријатели, искрено, кој бил програмирање бидејќи тие беа од шест или можеби 10-годишна возраст. И тоа беше само затоа што бев во можност да ги CS50 во мојот ден во еквивалент верзија SAT / UNS-- Поминете / пропадне назад во day-- дека дури и зедов 50. И некако или други, Јас сум тука повторно со вас денес. Сега во меѓувреме што друго можете треба да се има предвид за 50 е истовремено запишување. Спротивно на гласините дека што можеби сте слушнале, можете, всушност, истовремено запишат во CS50 и друга класа која ги исполнува во исто или некои се преклопуваат време како предавања CS50 право тука. Види наставната програма за деталите на нејзиното спроведување. Предавања, пак, спротивно на она што е официјално во каталогот, обично само ќе исполнат за само еден час. По повод ние може да се кандидира малку долго. Но, имајте на ум дека Целта на предавања CS50 на е да ви овозможи со на концептуални преглед, се надевам дека некои демонстрации, можеби дури и некои рекламирање материјали, на она што го чека за неделата што следува. И така во предавања, ние ќе се истражуваат овие теми и примери заедно, доведување на студентите на сцената, и персоналот на сцената толку често колку што можеме, за само неколку часа секоја недела. Делови, пак, ќе биде понудени од страна на овие луѓе here-- многу од нив наставата соработници, некои од нив се разбира assistants-- волја се случува еднаш неделно. И она што е клучот да ги има предвид е дека ние не have-- за разлика од првиот Ноќи, музика class-- различни патеки на делови за учениците помалку удобно, повеќе удобно, и некаде помеѓу. И искрено, знаете дали вие сте помалку удобно. И што веројатно знаете ако ти си повеќе удобно. И ако не сте сосема сигурни, вие сте по дефиниција некаде помеѓу. Значи, кога станува збор време да се дел во една недела или така, на наставната програма, ќе ви поставиме тоа прашање. И може да се само-одберете Based на свој удобност ниво и да биде со students-- биде со зелена dots-- слични во удобност ниво за вас. Во меѓувреме, имаме проблем поставува, кои ќе крајот дефинираат вашето искуство во овој курс. Тие нудат обично во повеќе изданија. А стандард издание дека очекуваат повеќето секој студент во текот да се справи со но, исто така, т.н. хакер издание кој не нуди форма на дополнителен кредит целосно, но навистина права фали да се каже дека сте се обиделе и решени на курсот хакер изданија пријде на сличен материјал но од повеќе софистицирани агол. Што нудиме за стандардна верзија, за, повторно, супер мнозинство на учениците, не се само прошетка низ тие, кои се видеа, предводена од страна на персоналот на курсот што навистина ви прошетка низ проблеми се разбира и можните дизајн имплементации. И ние исто така, по Всушност, нудат postmortems, при што ако се прашувате како би можеле да имаат или треба да се реши некои проблем, наставниот кадар ќе ви прошетка низ оние на видео како добро. Во меѓувреме, она што го чека премногу се пет дена доцна и фактот дека ќе се откажат од својата најниска проблем постави резултат. Ние, секако, цениме дека во замена за обемот на работа од 50 очекувања од вас, животот добива во начинот на кој понекогаш, ако не и пет пати. Па така ова ќе понуди сте малку флексибилност, проширувањето на вашата рокот од, да речеме, Четврток напладне во петок на пладне. Види наставната програма за имплементација детали за тоа. Сега што сега чека? И тоа е само случуваат ми сега колку долго Имам вас момци стојат тука на сцената. [Смеа] Дејвид Џ MALAN: Но ние ќе дојдеме до на climactic заврши пред долго. Значи она што го чека во однос на проблемот поставува? Добро, можеби закачка на она што сите ние минатата година се со вашите претходници. Во првиот проблем сет минатата година, ќе воведе Нула, графички програмски јазик кој ви овозможува да програмирате буквално од влечење и пуштање загатка парчиња, како овие, кои се потсетува на конструкции ќе видите само една недела Оттука, кога ќе се префрлат на повеќе традиционални јазик, познат како В Минатата година продолжи на овој проблем собата, вклучување за криптографија, на scrambling на информации да го чуваме од владини или пријатели " очи кои не сакате да ја видите. Кодирани во овде е порака дека наскоро ќе бидат во можност да се дешифрирате или де-трка. Збег е проблем постави минатата година, при што ги користат овие новонастанатата програмирање вештини за да ги спроведе игра wherein-- како што може да се сети од childhood-- целта беше да баш на тули кои се на врвот на екранот тука, акумулира резултат на патот, и спроведување на свој алгоритми со што ова решение во крајна линија ви овозможува да ја играат играта. Во меѓувреме, подоцна во текот на семестар, ние ќе ви даде речник на 143.091 англиски зборови. И ќе се соочат со предизвикот да се напише програма која магија проверки, документи, од страна на товарање на многу зборови во меморијата што е можно поефикасно. Генерално спротивставувајќи против соучениците ако се одлучат во малку предизвик во лидер одбор да се види кој може да се користи најмалку секунди на водење на време, и најмалку број мегабајти меморија, и всушност фино подесување на вашите програми да биде неверојатно ефикасни ресурси не само времето. Минатата година, исто така, ние погледна на крајот на семестар на веб програмирање. И навистина, ние ќе го направи тоа повторно оваа година со повеќе проблем сетови, воведување на вас на техники и начин на размислување со кој може да се применува овие програмски вештини за да се веб-сајтови, динамична веб-сајтови, веб-сајтови кои, всушност, реши проблеми и се однесуваат поинаку и не се само статични сајтови со статични информации. Конечниот проект на крајот ќе се дефинира, иако, кулминација на курсот за студентите, при што ќе се соочат со предизвикот да се спроведе повеќето ништо од интерес за вас, се додека тоа некако составена врз лекции на курсот. И како што видовме во видео на почетокот, ние ќе се заклучи на семестарот со CS50 Hackathon, што ако, непознат, ќе започне во 07:00 една ноќ и заврши во 07:00 следното утро. Околу 9:00, ние ќе ред во првата вечера. Околу 1:00, ние ќе ред во втората вечера. И ако сте сеуште стои во 05:00, ние ќе шатл-автобус ќе да IHOP за доручек. На CS50 саем, пак, е настан кој 2000 плус факултет, студенти, и персоналот од целиот кампус ќе доаѓаат да го видат вашите достигнувања во текот и крајниот проекти и креации што ќе се создаде на вашиот лап-топ компјутери, десктоп компјутерите, или можеби дури и светилки. Во меѓувреме, работното време и структура за поддршка. А сега тоа ќе беше подобро време на сите ви донесе до. Работно време ќе се одржи четири ноќевања една недела за повеќе часа секоја ноќ со генерално 20 до 30 на персонал курсот на должност одеднаш за да ви овозможи со интимни еден-на-еден можности за поддршка со проблемот поставува на курсот. Туторство исто така ќе биде достапни, особено за студентите помала или comfortable-- осмелувам да кажам барем comfortable-- за кого работното време не се повеќето негувањето животната средина и секако не се најмногу стрес-бесплатно. Особено кога роковите се притискање, ние проактивно ќе ви се пар се со член на персоналот за работа со на некои редовен распоред како на вашите потреби и нивниот распоред дозволува. И персоналот. Дозволете ми да се воведе Davon, Роб, и Габриел, раководители оваа година. Ако секој би сакал да say-- [Аплауз] --a збор. [Аплауз] Davon овде е менаџер разбира, што значи во полно работно време улога тој помага при извршувањето и логистика на CS50. Davon: Да, Здраво, момци. Ќе видите многу за мене во канцеларија часа. Ќе биде настава делови. И ако се пука пораки напред, Јас веројатно ќе се реагира. Па јас ќе видите многу од вас ги сите семестар. И добредојде на CS50. Дејвид Џ MALAN: И сега Габриел, кој самиот бил само Новак минатата година, но во изминатите неколку години има се работат своја верзија на CS50 во Бразил, при што тој се симнат сите content-- на курсот што е јасно е снимен и ставен online-- така што тој може да го претвори во Португалски и тогаш учат повеќе од 100 од неговите соученици во текот на текот на неколку години, настава на својот мајчин јазик наставната програма на курсот. GABRIEL: Здраво. [Аплауз] Габриел: Здраво, јас сум Гаврил. Јас сум шеф ТФ на курсот. И се надевам дека ќе ви се допаднат CS50. Ова е CS50. Дејвид Џ MALAN: Сега за Роб. Ох, сакате воведувањето? Роб: Не, јас не знам. [Смеа] Дејвид Џ MALAN: И Роб Боден. [Смеа] ROB: Здраво, јас сум Роб. Ова е мојот петтата година вклучени во курсот. Секоја година, тоа е само подобро и подобро класа, па вие момци се јасно ќе биде неверојатна. Се надевам дека сите се забавуваат со тоа. Одам да се забавуваат со тоа. Така што гледате наоколу. Дејвид Џ MALAN: А Времето нема да дозволи us-- [Аплауз] Времето нема да ни дозволат да се воведе секој на сцената и сите на своите колеги кои се продавниците класи денес. Но, дозволете ми да се воведе Belinda и CS50 Мозаик Ден, кој чека овој сабота, кој е прв на големи настани курсот. Ова особено значеше да ги нападне дома точка дека компјутерската наука е во крајна линија не за програмирање, туку за решавање на проблемот поопшто. И мозаик ден, како што ќе види, ќе ви донесе и своите соученици together-- ние се надеваме дека оваа сабота. Белинда: Добро. Здраво, момци. Па благодарение. Така што нашите славни капетанот рече, Белинда Моето име. Јас сум сафомор на Квинси куќа. Јас, исто како вие момци, се CS50 минатата година, навистина го сакаше. Имам слабост за вие момци во третиот ред. И јас сум горд да се каже, јас сум сега во сторено врска со CS50 [Беззвучен]. Во ред. Тоа беше мојот куци верзија на шега. И онака, па се пресели на, само сакав да покани вие момци сите на i-лабораторија, или АПД коприва. Ние ќе треба да се има Загатка Денот 12:00-03:00. И тоа е одлична можност за вас момци да ги задоволат вашите колеги CS пријатели, реши некои не-CS загатки, како капетан споменато, и, исто така, јадат некои бесплатна храна, заработуваат некои страшни награди, како Картички за подароци, 75 $ по лице, и also-- што беше тоа? Wii У или нешто? Wii У? Да. За нашите томбола. Страшни. Па јас ќе се држи околу по класа. И ако вие момци имате било какви прашања, дозволете ми да знам. Дејвид Џ MALAN: И ќе видите, над ова нема ништо да се направи денес. Првиот проблем се постави ќе излезе во петокот. Но, за да ни ги донесат дома денес, би сакал да ве запознаам конкретно уште еден член на персоналот, Колтон OGDEN тука, чии раце сега заштитени над вас со овој MIDI контролер да ги нападне дома точка понатаму што се компјутерски науки, исто така, има применливост подалеку инженеринг и стеблото и компјутерски науки себе, проширување дури и на такви домени како музика. COLTON има љубезно offered-- Мислев еден од нив требаше да се поправи во фокусот. Андреј, ако би можеле да ги повикаат фокус овде за само еден миг. Што Колтон има направено однапред е програма овој уред, оваа рампа на копчиња кој го гледате на сликата тука, како MIDI контролер, при што секоја од овие копчиња е жичен на одредена музичка нота или звук, поопшто снимање, така што со играње шеми на овие копчиња, слично како модели на битови, може да претставуваат други повисоко ниво концепти. Тој ќе биде во можност на крајот да ни се денес дома тука? Без понатамошно ado, ако ние би можеле да се затемни светла, и да се сврти на екранот зад Колтон. ПУБЛИКАТА: Ву! Дејвид Џ MALAN: Ова е CS50. [Музички] [Аплауз] Тоа е тоа за CS50. Ние ќе се видиме во петок. Торта те чека во трансепт. [Музички]