[Музика свира] [МУЗИКА - РОССИНИ, "Ранз ДЕС Вацхес "од Виллиам РЕЦИТЕ] [МУЗИКА - ЕНГЛЕСКИ победимо "МАРТ НА Свивел главама "] [Аплауз и радосно] ДАВИД Малан: Дакле, ово је ЦС50. Моје име је Давид Малан. И 73% од вас нема претходно искуство са информатике, супротно ономе што можда мислите. Дакле, данас смо мислили да чип далеко У то непознавање, али и дати вам осећај, за оне од вас са више комфора, који правци можете ићи овог семестра. Почнимо са овим. Ја стварно не знам шта је унутра рачунар, мада, као и ти, користите је сваког дана. Али, то је нека врста кутије, и ту је нема много улази у њу. Минимално, ту је, шта? Вероватно кабл. И заиста, са овом један састојак, електричне енергије, изгледа да буде у стању да радим доста ових дана. Али на крају дана, ми смо морају да представљају ствари да нам је стало. Морамо да представљају информације у неком облику. А ти си вероватно бар магловито упознат са идејом за бинарни или бита неки начин, компјутери сведена на нула и јединица. Али, можемо да прихватимо да и најмање стави мало светла на то? Дакле, имам ове мале стоне лампе овде. Имам овде електричну утичницу. И ја ћу предложити да се унутар рачунара је најмање један од ове ствари, нешто способан да буде укључен или искључен. У овом случају, то је заиста сто лампа, али на нижем нивоу, то је нешто назива транзистор. Међутим, у нашем свету, то је сто лампа, тако Ја ћу да наставим и укључим ово у моју струју овде. А ја тврдим да користите овај једноставан, једноставан уређај, овај једноставни прекидач, ја могу да представљају информације. На пример, сада, ја сам представља ништа, зар не? Ја заступам шта зваћу 0 или лажно, супротно од нечега заправо био присутан. Али ако једноставно укључите овај прекидач, Сада сам представљао 1. Дакле, користите овај веома једноставан комад меморије, ако хоћете, ја могу да представљају информације. Сада, нажалост, мој компјутер не може да уради све то много. То само може да представља две вредности у целом свету - 0 или 1. Али, оно што је очигледно решење, сада, ако желимо да проширимо наш компјутер меморије и представљају више него само 0 и 1? Па, хајде да узмемо још једну такву мало. Узмимо још један прекидач, још један транзистор, међутим, желите да мислите о томе. Дозволите ми да иде напред и укључим ово у мом рачунару, као добро. И ја ћу да тврдим, сада, да је користећи мало више електричне енергије и окретање више од ових прекидача и на искључен, ја могу да представљају више што информације. Управо сада, то је 1. Ако желим да се сада представљају 2, ја могу ово да урадим. Али обично, конвенција, као што ћемо на крају види, мораће да урадим ово. Дакле, ово је 0, то је 1. То би било 2. И није изненађујуће, то би било 3. Дакле, на овај начин, ипак, може да рачунамо се још више? Ако добијем трећи мало, трећи прекидач, што је највећи број ја сада Одбројавање до од 0? Дакле, ако сам 7 са почетком у 0, зар не? Јер ако укључите ову светло и заправо укључим ово трећа и коначна светлост у мој електричну утичницу овде, онда имам могућност да представљају било од две вредности, овде су две вредности овде, овде две вредности - и да могу да представљају 2 пута 2 пута 2, или осам могућих вредности. А ако почнем рачуноводство на 0, па то је 0, 1, 2, 3, 4, 5, 6, 7. Дакле, бинарни. То је заиста тако једноставно. И ја бих тврде да је то заправо прилично познати већини сви у овој соби. Дозволите ми да иде напред и отворите Мало текст едитор овде. И можда се сећате из разреда школе које смо имали на стотине ствари као што место, десетине место, а они место. И сећам се да ако сте имали неку децималу број, као нешто насумично као 123, што би у суштини пише да се у форми од ове три колоне. И зашто је 1, 2, 3 оно знамо као 123? Па, у колони са леве стране, имамо један 100 плус два 10с, тако да је 120, плус три 1с, тако да је то 123. Сада овај свет да смо управо осветљен је потпуно исти као и Били сте упознати са годинама, Осим сада, наше колоне нису овлашћења 10. Они су само овлаштења 2. Дакле, имајући у виду да је они место, ово ће бити место Двојке, ово је Биће четворке место. И зато ја само користим најједноставнији механизама да се ствари и искључивање - струја протиче или се електрична енергија не тече - Немам баш имају исти експресивна Распон као 0 до девет. Идемо да га супер једноставно у овом свету рачунара. Имам само 0 или 1 - искључивање и укључивање, лажне или истините. И шта ја сада представља је 1, 1, 1, јер је сваки од њих светла светли. Па, то ми даје једну плус једну 4 2, па то је 6, плус један 1, а то је 7. И да ли то ерго низ од три бита представља број 7.. Дакле, све ово време, унутар вашег рачунар, су било који број транзистори, било који број битова. Али на крају дана, ми смо може представљати информације као и да једноставно. Сада, нажалост, само смо избројали до 7. у ЦС50 до сада, али Надам се да можемо да мало боље од тога. И заиста можемо. Претпоставимо да само ми као људи самовољно одлучили да идемо да се удружују попут бројева 1 и 2, 3, 4, 5, 6, 7, са специфичним словима писмо. И из историјских разлога, ја ћу да почети нешто произвољно, али ја сам рећи, људи, ми ћемо одлучује као стандард, глобално, да 65 представља број слова А. 66 ће представљати Б. тачка, тачка, тачка. 90 представљаће слово З. И хајде да претпоставимо, ако смо заиста ставили неке мислио на њу, могли бисмо доћи до са бројевима за узвика и мала слова, и заиста, други људи су урадили за нас. Дакле, сада смо имали битова са којима можемо представљају бројеви, бројеви са којима можемо да представљају слова, а са Писма могу сада почнете да пишете пошту и штампање знакова на екрану. Тако да ме позове, ако могу, осам храбри волонтери - који не само да не смета појављује на камеру, али на интернету - да дођу овде и представљају осам такав бита, а не ове три. Дакле, шта је са један, два? Како око три? Како би било четири у светлу плава, пет на крају? О неким преко овде? Шест испред, седам испред, и осам испред, као добро. Зато сам тако једноставно десило да дођу припремљени уз гомилу цедуљица. И на овим папирићима су бројеви који представљају оно колоне ви ће представљати. Тако да ће бити - како ти је име? СТУДЕНТ: Ана Леах. ДАВИД Малан: Ана Леах, ти ће бити 128С колона. Ви сте? СТУДЕНТ: Крис. ДАВИД Малан: Цхрис ће бити 64с колона. Ви сте? СТУДЕНТ: Дан. ДАВИД Малан: Дан ће бити 32с колона. СТУДЕНТ: Прамит. ДАВИД Малан: Прамит ће бити 16с колона. СТУДЕНТ: Лилиан. ДАВИД Малан: Лилијан ће бити 8с. СТУДЕНТ: Џил. ДАВИД Малан: Џил ће бити 4С колона. СТУДЕНТ: Мери. ДАВИД Малан: Марија ће бити 2с, а? СТУДЕНТ: Дејвид. ДАВИД Малан: Дејвид ће бити 1с колона. Дакле, ако ви момци могли би мало напред, тако да сви могу да виде. Оно што ви не видите да је на назад од тих цедуљица је мало Цхеат Схеет који је о томе да упутити ових осам бита или подигну руку или не подигну руку. Ако је њихова рука иде горе, они су представља 1. Ако је њихова рука остаје доле, они су представља 0. У међувремену, ми смо публика треба да буде у стању да схвати, на основу тога мапирање, шта седам слова ових људи се спремају да нацртам. Дакле, у само једном тренутку, ти ћеш прочитате први ред на задњем Ваша Цхеат Схеет, а ти или си ће да се подигне или не подигне руку. Ако сте 1, да подигне, ако ти си 0, ти стојиш неспретно, само тако. Го. Који број, пре свега, ови момци представљају? 66. 66, зар не? Имамо 1 у колони 64с, 1 у колони 2с. То ми даје 66, тако да се појављује да се представља Б. Дакле ви сте написали - У реду, то је довољно. Б. Тако да сада идемо на наш други писмо. Го. Ко је најбржи у математици овде? Тако 79. Опет, ако се саберу све колоне у којима је 1, тренутно, само као што смо раније радили са најједноставнији примера 7, сада добити број 79. Која према нашем мапирања је слово О. Дакле, скоро смо стигли. Б, О. И на крају, иди. Шта они сада представљају? Мање консензус. То је само апсолутно жамор. Да, то је у ствари 87. Добро. Дакле, ако ми сада мап то назад до - хајде да почети позивом АСЦИИ табелу, Амерички стандардни код за Размену информација. То нам даје писмо - не "бо", али "лук". И то је савршен знак за ви да се лук глава и на леђима. Пуно Вам хвала. [Апплаусе] ДАВИД Малан: Можете да их задржи. Иако заправо, да ли би ико као сто лампе, такође? [ХООТ публике] ДАВИД Малан: Стона лампа? [Смех] ДАВИД Малан: Стварно? Стоне лампе за све? У реду. Значи од веома најједноставније принципи, сада смо не само да рачунају горе од 0 па све до 7, ми смо претпоставља да само бацањем више бита или више светла или више транзистора на овај проблем, можемо представљају све веће и веће бројеве, и Ерго, све већи и већи опсег писма, као што су енглески. И само узмимо на веру за данас да слично можемо почети да представљају графике и видео и било број других медија са којима смо познато данас. Дакле, ово је ЦС50, а у овој класи поред вас су, опет, веома много вршњаци који имају као мало доживљавају као ти. И ја то помињем само зато сасвим Често, укључујући и недавно, један од бруцош саветовање догађаје и на Прошлог пролећа је студент друге године саветовање догађај, често чујемо студената одричу када долази до ЦС сто, па, Размишљао сам о узимању ово интро класе, али нисам баш компјутер особа. Или, али сви сигурно зна више од мене. И сам ставио ово у највећем фонту могуће, да пренесе ову поруку да То је, у ствари, није случај. А ако се питате, треба Ја, у ствари, бити овде? Схватите да не само да је овај курс је наслов Увод у рачунар Наука је Увод у рачунар Наука И. Дакле заиста постоји Други такав увод. Дакле, ви нисте, у ствари, на погрешном месту. А међу циљевима које имам за данас су Сваки такав да ублажи недоумице можда има, али и да се сликају слику о томе шта је у продавници за ученици мање и удобније подједнако у овом курсу. Али прво, реч о једном од милостиње Ви имате данас, међу којима неколико најчешћих питања. Прошло је наша визија за неко време сада да уведе нови оцењивање опција у овом курсу - Наиме, САТ / УНСАТ. Филозофски за мене, то је много много, много важније да ученика у овом разреду укључе у материјал, бити изазван материјал, и бриге далеко, далеко мање о механику стварних резултата и слово успеху на семестар крај, али истински прихвате Курс и његов материјал. И стварно то осећа, генерално, за оно што је занимљиво за њих, да осећају изазов и награђени, али без страха од неуспеха. И заиста, ово је такође периодичан тема у овом и другим уводни курсеви у другим областима, да имате овај страх када је у питању стављајући прсте у нечије непознатим водама. Ја сам лично, још 1995, била бруцош. Је био веома сам фокусиран на што Влада концентратор овде. И још увек сам одрастао уз мало интереса у рачунарству. Увек сам био радознао. Али тада, чак, имао сам страх од чак и одскочна нога у ЦС50, толико тако да нисам ни куповати је бруцош. И једини разлог зашто сам ставио ногу у Врата студент друге године, јер сам био било дозвољено да то прошао / пао. Али, чак и пасс / фаил потребно да добијем храброст да закажете са професором Кернехан у то време, да ову велику папир, и питајте га за његов потпис и његов дозвола за истраживање ове непознате воде. И то није помогло у последњих неколико година да када радите у ЦС50, када смо некад пролази / не, слично би десетине или стотине својим друговима морати да дође до, не дај Боже, у Предња Сандерс овим обрасцем, који у неким главама представља немогућност, Усуђујем се да кажем, да изврши су ниво својих вршњака. Што је смешно, али ја мислим то је то менталитет. И никад није било у овој култури на сателит / УНСАТ, или прошао / пао више генерално, у овом курсу, или стварно на том универзитету. Дакле, ове године смо променили то. Ја бих био пресретан половина Ова класа или више завршена тако да узима ЦС50 САТ / УНСАТ. У року од годину дана, то би било дивно ако скоро сви. Након тога можда ћемо радити на слова разреда на Харварду Колеџ уопште. Али за сада, ми ћемо то урадити у оквиру нашег сопствене сфере, и ја бих од срца Препоручујемо вам да прегледате те честа и постављају питања како вам одговара, тако да надамо се, за разлику од мене, неће сасвим имају тај исти фактор страха кад истражујући шта је вероватно непознато место. Дакле, шта је ЦС50? То је увод у интелектуалне предузећа од рачунара наука и уметност програмирања. Али, шта то заиста значи? Па, до сада, ми смо разговарали веома кратко око представља информацију. Али, претпоставимо да смо ми у ствари желимо да уради нешто са њим. Треба да се уведе појам оно што ћемо назвати алгоритма. Алгоритам је процедура, процеса, скуп инструкција за радиш нешто. И алгоритам може бити нешто супер једноставно. На пример, пример са којима су неки од ћете можда бити познато је ово ствар овде. Дакле, ова књига овде је све више датум, али некада давно, она садржи много имена и бројеве телефона. И заиста, ако желим да пронађе неко у овом именику - рецимо, неког по имену Мајк Смит - Сам могао наћи Мајк Смит у сваком броју на прилично једноставан начин. Могао бих почети на почетку и пређите на страницу 1, не постоји. Страна 2, не постоји. Страна 3. Да ли је то алгоритам, који се процес, зар не? Дакле, тачно је, зар не? Некако сам идиот јер то раде у који начин, али на крају ћу наћи С презиме, и надам се Мајк је у том делу, а ја ћу постати урадио са својим алгоритмом. Али сигурно није интуитивно. Скоро сваки разуман човек на ово соба не би урадио. Шта би ти урадио? Би сте отишли ​​право у средини, зар не? Отприлике на средини. И схватите, ох, то су госпођа Дакле Мајк Смит, презиме као Смит, не, јасно, а затим у Лева половина књиге. Он мора бити према С је у праву. И у овом тренутку, иако већина нас не ради то у стварности, можемо буквално поцепати овај проблем на пола. [ЦХЕЕРИНГ и аплауз] ДАВИД Малан: Хвала. [ЦХЕЕРИНГ и аплауз] ДАВИД Малан: Ви буквално можете да поцепа ово Проблем на пола, остављајући ме, буквално, проблем готово упола мањи. Дакле, ако ова књига је телефон - и то Вероватно је - око 1.000 страна, сада то је само 500. Ако то урадим и опет схватам, ох, Проклетство, ја отишао предалеко, ја сам у Тс секција, ја слично могу - фигуративно или буквално - рип телефонског именика - то је заправо био много лакше то време. Ја буквално могу да снимају у именику на пола, остављајући ме сада са не 1.000, не 500 - 250 страна. И ја могу да идем 125, а половина од тога, и пола од тога, и пола од тога, док коначно ћу остати са само једна страна. [Смех] Малан ДАВИД: То је Ја не на део. Једна једина страница на којој Мајк надам се. Сада су ти различити алгоритми могу бити врста оцењује и процењује у различите начине. Први је био врло линеаран, зар не? Окрените страницу, погледајте за Мике. Окрените страницу, погледајте за Мике. То је врло линеаран. Ако постоји још једна страна у телефону књига, вероватно ће ме одвести један други, још једна јединица времена, Међутим, ми смо израчунавања времена. Тако да могу да имају овако ову линију овде, при чему као величина Проблем се повећава с лева на десно - именик се смањује на већи - и време ће се повећати на вертикална оса, већи Именик је. Тако је н само општи променљива која компјутерски научници користе да представља неке вредности, неки број. Тако ће н линеарно повећање. Двапут величину именику, то је ће ме узети дупло више време, највероватније, наћи Мике. Сада сам могао бити паметан о томе, зар не? Ја сам се брзо досадно. Да су то урадили по двоје. Дакле две странице, па четири, затим шест, затим осам. И ја сам могао да почне да лети кроз њу мало брже, мада мали ризик од пребацујеш Мајк, али то није крива ће бити толико различити. И даље ће бити права линија, али мало брже. Али, шта сам урадио? Ја сам заправо урадио нешто фундаментално боље. Постигао сам оно што ћемо назвати логаритамске време, лог н, при чему ова зелена линија има много, много, много мање Страигхт Едге на њега. А уместо тога, она сугерише, јер некако прилази бесконачност икада тако постепено, да сам заиста могао да од 1.000 страница именик, удвостручи своју величину следеће године - јер претпостављам много више људи се селе у град. Тако да сада имам 2.000 страна, али како много више корака је да паметнији Алгоритам ће трајати? Само један. Мислим, то је моћна ствар. Ако одемо на 4.000 страна следеће године, који ће ме одвести Само још два корака. Дакле, можете да баците све већа и већа Проблеми у мене, а не за разлику Интернету је бацање веће и веће проблеме сваког дана у гооглес и Фацебоокс од свет, и то није тако велика ствар. Зато сам ставио више мисао и нега у мој алгоритам којим се решава проблеми ефикасно. И заиста, то ће бити један од циљеви овог курса. Ви ћете, успут, научите како да програмирате. Ви ћете научити како да програмирате у било који број језика. Али на крају дана, курс је о решавању проблема и добијање бољи у решавању проблема - а, као и у оваквих случајева, решавање проблема ефикасније. Сада је до сада, ми смо ово радили прилично интуитивно. Хајде да представимо нешто истинито генерички зове Псеудокод. Тако ћемо, на крају ћете добити, у овом курсу, на разним програмским језицима. Али данас ми ћемо то урадити у енглески налик синтакса, где баш некако кажем шта мислиш, али ти си икада тако језгровита и ви не брините граматике и комплетне реченице. Само изражавају себе као концизно могуће. Тако је енглески Псеудокод налик синтаксу која представља програмски језик. И према том крају, дозволите ми да предложи сада моделовати процес можемо само описао бројања нешто мало другачије, овога пута узимајући погледајте овај видео од пет минута произведеног наши пријатељи на ТЕД да дефинише шта је Псеудокод, дефинише шта алгоритамски размишљање је, па чак и мада пример хоћете да видите је, у само по себи, супер једноставно, то је ће почети да нам дају ментални модела, вокабулар, са којом се учинити много, много сложенији алгоритми веома брзо. [Почети репродукцију ВИДЕО] [Музика свира] НАРАТОР: Шта је алгоритам? У рачунарству, алгоритам је сет инструкција за решавање неких проблема корак по корак. Типично, алгоритми се извршавају од компјутера, али ми људи имамо алгоритми, као и. На пример, како бисте отишли о бројање људи у просторији? Па, ако сте попут мене, вероватно бих тачка на сваку особу, један по време, а рачунају се од 0. 1, 2, 3, 4, и тако даље. Па, то је алгоритам. У ствари, хајде да покушамо да га изрази мало више формално у псеудокоду - Енглески-лике синтаксу која подсећа програмски језик. Нека је н једнако 0. За сваку особу у соби, поставите Н једнак Н плус 1. Како тумачите ову Псеудокод? Па, једна линија изјављује, да тако кажем, променљива се зове и Н инициализирует његова вредност на 0.. То само значи да је на почетку наш алгоритам, ствар са којом Рачунамо има вредност 0. На крају крајева, пре него што почнемо бројање, ми нисмо избројали још ништа. Позивање Ова променљива Н је само конвенција. Могао сам га позвао највише ништа. Сада линији демаркс почетка петља, редослед корака који ће понови одређени број пута. Дакле, у нашем примеру, корак водимо броји људе у соби. Испод линије је два три линије, који описује тачно како идемо око бројања. Увучен подразумева да је линија три која ће се поновити. Дакле, оно што говори је Псеудокод да након стартовања на 0, за свако особа у соби, ми ћемо Н повећати до 1.. Сада је овај алгоритам тачно? Па, хајде да изударај се мало. Да ли то ради ако постоје двоје људи у соби? Да видимо. У једној линији, ми покрене на 0 Н. За сваки од ових људи, смо онда увећава за 1 Н. Дакле, на првом путовању кроз петља, ми смо ажурирали Н од 0 до 1. На другом путовању кроз исти петља, ми смо ажурирали Н од 1 до 2. И тако до краја овог алгоритма је, н 2, која заиста одговара број људи у соби. За сада је добро. Шта мислите о корнер случају, иако? Претпоставимо да постоје људи 0 у соби - осим мене, ко ради за бројање. У једној линији, ми покрене на 0 Н. Овај пут, међутим, линија три не изврши уопште, јер не постоји особа у просторији. И тако даље Н 0, што одговара број људи у соби. Прилично једноставно, зар не? Међутим, бројање људи један по један је прилично неефикасан, такође, не? Сигурно можемо да урадимо боље. Зашто не рачунају две особе у исто време? Уместо бројања 1, 2, 3, 4, 5, 6, 7, 8, и тако даље, зашто не рачунају, 2, 4, 6, 8, и тако даље? То звучи још брже, и то је сигурно. Хајде да изрази ову оптимизацију у псеудокоду. Нека је н једнако 0. За сваки пар људи у соби, сет Н једнака Н плус 2. Прилично једноставна промена, зар не? Уместо да рачунају један народ у исто време, ми смо уместо тога рачунамо њих двојица у исто време. Овај алгоритам је тако два пута тако брзо као последњи. Али, да ли је тачно? Да видимо. Да ли то ради ако постоје двоје људи у соби? У једној линији, ми покрене на 0 Н. За тај један пар људи, смо онда увећава са два Н. И тако до краја овог алгоритма је, Н 2, која заиста одговара број људи у соби. Претпоставимо да постоји следећа 0 људи у соби. У једној линији, ми покрене на 0 Н. Као и раније, линија три не извршава уопште, јер не постоје парови људи у просторији. И тако даље Н 0, који заиста подудара са бројем људи у соби. Али, шта ако постоје три људи у соби? Како овај алгоритам карата? Да видимо. У једној линији, ми покрене на 0 Н. За пар тих људи, смо онда увећава за 2 Н. Али шта онда? Нема још пуно пар људи у соби, тако да нема две линије више не важи. И тако до краја овог алгоритма је, Н је и даље 2, што није тачно. Заиста, овај алгоритам се каже да је луд, јер има грешку. Омогућава обештећење са неким новим псеудокоду. Нека је н једнако 0 за сваки пар људи у просторији. Поставите Н једнак Н плус 2. Ако једна особа остаје Неспарен, сет Н једнака Н плус 1. Да бисте решили овај проблем, ми смо уведен, у четвртом реду, стање, иначе позната као грана да извршава само ако постоји једна Лице које се не могу пар са другим. И сада, да ли постоји један или три или било који непаран број људи у соба, овај алгоритам Сада ће их рачунати. Можемо ли још боље? Па, ми смо могли да рачунају на 3с или 4с или чак 5с и 10с, али даље од тога, то је ће добити мало тешко тачке. На крају дана, да ли је извршена од рачунара или људи, алгоритми су само скуп инструкција са који за решавање проблема. То су само три. Шта би сте решили проблем преко алгоритма? [ЕНД ВИДЕО РЕПРОДУКЦИЈА] Малан ДАВИД: То је једини пут Ја ћу се појавити у облику цртаних филмова. Али, где та прича стао, Сада, како се може и боље? Тројке и четворке, тврдимо, можемо рачунати људи много брже, али можемо до фундаментално боље од тога? И ја опкладу можемо. Ако уведемо мало наше Псеудокод овде, ја ћу предложити да можемо да постигнемо линију овако. Нећемо да бројим људе један, два, три, четири. Нећемо ићи два, четири, шест, осам. Ми ћемо учинити суштински боље од промишљања проблема, и то у случај, усклађивање иначе довољно искоришћени ресурс. У само једном тренутку, надам се да ћете опростити и хумор нас стајао у место, а тада ћемо Питајте сваког од вас да се у вашем умови број 1. Тада ћеш све неспретно, како време пролази, наћи неко ко стоји, комбинују Ваши бројеви заједно додавањем их. Један од вас ће се онда трци да седи доле прво, а друго лице ће се поновити. Другим речима, од сетве све сте са бројем 1, а затим комбинујући оне у 1с 2с и оних 2с у 4с, са свима све седи, треба да, на крају Овај алгоритам, имају само један кредит душа која није седне довољно брзо, али који је цео публици бројање у његовом или њеном уму. Дакле, молим вас, идемо напред и - први корак - стоји у месту. И извршава. [Гомила мрмља] Малан ДАВИД: Да ли знате где је Лорен? 729? [Гомила мрмља] Малан ДАВИД: У реду? [Гомила мрмља] Малан ДАВИД: У реду, ми треба се ближи крају. Ми видимо један момак стоји овде и даље. Ко још треба да се упари? Ако ви желите да упарите искључен. Неко горе. Зашто не дају ту руку. За веома мало људи који су и даље стоји, шта ли бројеви имати на уму? СТУДЕНТ: 78. ДАВИД Малан: 78 плус - ко стоји овде? СТУДЕНТ: 39. ДАВИД Малан: 39 Плус. Плус ко још увек стоји? 81? У реду, ко још? Још један 81? Вау. А шта је онда у леђа? СТУДЕНТ: 49. ДАВИД Малан: 49, плус? СТУДЕНТ: 98. ДАВИД Малан: 98 плус? Да ли је то неко други? 12? Добар посао. [Смех] Малан ДАВИД: О, 112 - ох. Добар посао! [Смех] [Апплаусе] ДАВИД Малан: Још неко још увек стоји? Извини? СТУДЕНТ: 99. ДАВИД Малан: 99. Још неко увек стоји? И укупан број ученика овде заправо, по - Да ли имате број? О, стварни број људи у соба, у складу са налогом да наставне момци су радили на путу у свачијем, био је 729. Дакле, од неколицину Харвардоваца који се броје, Одговор је 637. [Смех] Малан ДАВИД: Тако близу. Али ипак. У реду, тако да је настава тренутак, зар не? То је оно што ми сада описати као буг. Негде успут, ми смо урадили неке аритметика погрешно, или је неко сео, или лево, или нешто није у реду. Али, то је у реду. Јер чак и даље, ми смо сам врло близу. И ја бих тврде да смо на погрешан одговори много брже него што сам користим више линеарног приступа. Дакле, хајде да претпоставимо да је у ствари добили да исправи, али мислим да сада о томе шта се дешава сваки пут, против моје сопствене наивна указујући алгоритам. Један, два, три. Ако заиста постоји 729 или 637 људи овде, да би ме буквално 637 или 729 фуга део прста и увецава мој укупан број. И нисам могао да урадим нешто боље од иде два, четири, шест, осам, а удвостручити брзину, можда чак троструко или учетворостручити, зависно од тога колико добро могу урадим бројање у глави. Међутим, овај приступ, да сте узели се радикално разликују. Јер на почетку, сви ви устали. Дакле, све 729. А онда буквално пола од вас седе. И након тога, други половина вас сео. И након тога, други половина вас сео. И укупан број пута да момци могли сео је грубо осам или девет или десет пута укупно, у зависности од тога шта је наш укупан број је. И ми се некако до овај други начин. Ако смо имали 1.024 људи у просторији, укупан број колико пута сте могли преполовити 1.024 људи је 10. Сада размишљам о томе у други правац. Претпоставимо, смешно, да смо имали, рецимо четири милијарде људи у овој просторији, или незнатно већа соба. Колико пута би смо прошли преко овог алгоритма, као што је то половина те класе седне? Само ће да се 32 што операције, чак иу класи величине четири милијарде. Зашто? Због четири милијарде иде на два милијарди долара, иде на један милион, одлази у 500 милиона евра, иде на 250 милиона, тачка, тачка, тачка. Ја само могу да подела око 32 времена, на којој тачки, сви осим једна особа би остали да стоје. И то је, такође, некако моћан Идеја да је све више ћемо покушати да полуге у овом курсу, а у програмирање и информатика више Генерално, ове клице идеје са који онда можемо да решавамо проблеме много, много снажније. Тако смо почели врло једноставно са тим Псеудокод и момак у собу, али сада са целом собу пуну људи смо урадили фундаментално боље. Па, хајде да сада прелаз из Псеудокод неком стварном коду. Овај језик се спремате да се догоди да се зове Јава, и Вратићемо се ово ка семестар, крај. То је програмски језик који вам користе да би сајтова и других што су софтвер ових дана. И ми смо га користили, захваљујући пријатељу наша на Стенфорду, за кодирање нека скривена информација овде. То је уметност стеганографије, да тако кажем, где можете да сакријете информације у оно што иначе чини бити бука или потпуно другачији слика заједно. Али уграђен у овом конкретном слици је заиста тајна порука врста. Дакле, дозволите ми да иде напред и попните се иста слика овде, ово Време у веб претраживачу. И ја ћу да махнем руком на неке од детаљи за данас, посебно за оне од вас који ово изгледа као не само Јава него грчки, као потпуно непознати језик. Али, ово је пример програмски језик. А за сада, да на вери да ово прва линија кода - и по кода, само мислим текста. Текст који сам могао буквално откуцао у Мицрософт Ворд, ако сам имао право на софтвер онда уради нешто са њим. Програмирање изворни код, програмирање код, је заиста само текст, а изгледа другачије на основу онога језик користите, не за разлику од енглеског и Шпански и руски све изгледа другачије када их куцате на тастатури. Дакле, ове прве линије, за сада преузимају вера, једноставно се отвара графички из Интернет, који бучно графички смо управо видели. Овај следећи ред овде је пример петља, а ми смо у ствари видели да исти жаргон у ТЕД видео. Петља је нешто што се дешава једном и опет, и мада то апсолутно изгледа загонетан, са кључна реч за, и неке заграде, и неки зарезом. Вратићемо се да је пре дуго, али да се петља у суштини говори програм, прелазили преко свега тих бучним тачака, с лева на десно, одозго на доле. Јер на крају дана, слика овако - и заиста можете некако види да је на овај пројектор - је заиста само мрежа тачака. Дакле, можемо идентификовати сваки од тих тачака од координата, Кс, И, а уз то програма, сада можемо почети да учинити нешто да те тацке. Дакле, шта ћу да наставим и овде је да ћу направити неке промене. Прво ћу да се иде напред и уклоните свега тога зеленкаста и плавкасте буке, а ја ћу да наставим и укуцајте следеће признајем криптичан синтакса. им за слику. сет плаво на локацији к, зарез, локација г, на 0. Другим речима, желим да се искључите све плаве тачака у тој слици. Ја ћу да наставим одмах и кликните то Рун / Саве дугме, и ви ћете приметити на десној страни, слика ће се појавити. Сада његов супер зелена, али то није изненађује, јер сам буквално окренуо искључен, тако што 1 а 0, све плави на слици. Па, хајде да то мало. им за слике, тачка сетГреен, к, и. А то само значи Итерате са леве на десно, а онда одозго на доле. Молим те искљуци са вредношћу од 0, као добро. Саве. И на пројектору, не можете заправо заиста види ништа. На мом лаптоп екрана, ако сам само у пеер прави начин, могу да видим мало слика, јер су још увек неки црвени унутра. Ако сте икада чули акроним РГБ - црвена, зелена, плава - се то односи на ове композиције једне слике помоћу само те три боје. И сада, ми смо бацили све зелено, плаво све, али није много црвено. Тако да ме размрдали црвену. Како то да урадим? Па, прво, ја ћу да питам Овај програм питање. Ја ћу ићи напред и хајде да га зову променљива, као у алгебри. Можете имати Кс или И или З. Идем да декларишете променљиву и кажу, стави у ове променљиве, привремено, вредност слике гетРед вредност на к, и. И опет, ми ћемо се вратити на све за овај детаљ у будућности. Али, за сада, само се на вери да Ова линија тражи програм, шта је црвена вредност на к, и? У том тачком? Онда ћу да урадим нешто за њега. Онда ћу да урадим слике дот сет црвена на к, и, и, али овај пут ћу повећа то радећи црвене пута, рецимо, 10. Дакле, повећање је за фактор 10. Дозволите ми да умањите и сада клик могао Рун / Саве. И ето, то је тамо цео време, иако наше очи није могао да га види. Дакле, опет, ово сада је прави број, Пример језика да ћемо доћи назад на пре дуго. Али схвати, нарочито они од вас без таквог искуства, то је сасвим ускоро да сами ћемо бити писање кода као да постоји. У ствари, алат са којим сте сви донекле упознати, можда, да је ЦС50 свој ток-шопинг алат, који је био заправо рестартовао овог лета од стране неких сопствених бивших ЦС50 је студентима, Сада окрените Поздрав. Дакле, то се дешава да се сајт изграђен на језику зове ПХП. Он користи МиСКЛ базу података под називом, ствари са којима ћемо се руке прљав касније у семестру. Али, веровали или не, чак и нешто овако на крају своди на Најједноставнији од петље и условима и гране, као што су оне које смо видели само Малопре у ТЕД видео. Оно што сам мислио да урадим сада је учешће не само нешто што смо направили особље за кампус, већ нешто Бивши ученик - три студената, у ствари - је прошле године, Сијера, Данијел, а Сем, од којих је последњи имао пре програмирање искуство када је узео ЦС50. И на њихово коначно пројекат, они Излагао је на сајму ЦС50, Апликација се зове врдли, што је веб-басед програм за који су направили овај видео да сам помислио да ћу да поделим дати вам осећај шта је могуће до краја термина. [Музика свира] Малан ДАВИД: Тако је од недеље Зеро до 12. недеље прошле године. [Апплаусе] ДАВИД Малан: Као теасер, такође, стварно подстаћи ваш апетит је да оно што је могуће, можда сте већ видели, или можда ускоро видети, маркет.цс50.нет, а нови алат који је курс тим има радио на, овог пута у сарадња са Харвард Студент Власти, тако да је од ове године наставља и надамо се у ово долазак лета имаћете стандард прилика на универзитету и да купи продају ствари од интереса за вас. И кроз партнерство са ХСА, ви ћете такође бити у могућности да отпустите ставке искључен у једној од физичке продавнице ХСА је на неки тачка у будућности, како би се проки ствари, посебно вама као дипломски и не желе да одбаците ствари, али заправо је платити проследити на људе који могу да вас прате овде на кампусу. Дакле, више о томе да дођу. Али мало конкретније, алат који је дошао из ЦС50 у недавно године, са којим неки од вас можда бити упознати и други од вас можда гооглинг сада, у ЦС50.нет/2к, ви ћете наћи линк за Цхроме што је показна како можете користе ЈаваСцрипт, да смо исти језик користи са Ајфеловог торња малопре, да спроведе 2к брзине репродукције за све Харвард иСитес видеа. То је нешто што је уграђено ЦС50 у сопствену видео плејера. Али то, такође, ако почнете да копате у изворном коду, који ћемо срећно стави на располагање, видећете како можете чак и да реше проблеме као што то, убрзава виџете на сајтовима са који си већ добро познато. Дакле, реч сада о току и очекивања и шта се налази испред. У принципу, ми ћемо заиста ту окупљају понедељком и средом - иако овог петка, ми ћемо прикупити јер Веек оф Схоппинг - 1:00 до 2:00 ПМ, мада понекад до 2:30. С обзиром да сте због тога можда желите или морају да преузму неке класе у 2:00 пм па надаље, или чак и раније, схватају Курс је подржава оно што се зове истовремени упис, чиме ћемо подржати петицију огласа одбору и Ваша становник декани у ваше име ако имате сукоб негде у ово 1:00 до 2:30 опсег. Шеф тог УРЛ мрежи за додатни детаљи. Али у смислу носеће конструкције који карактерише ЦС50, за студенте више и мање удобан слично, ми смо нуде различите нумере секција. И то је пар недеља одмора, али пре дуго, вас ће се тражити да Ваш ниво комфора. Да ли сте међу онима мање удобан, удобније, или негде између? И ми ћемо имати три различита стазе које задовољавају управо ти публика. Дакле, ни у једном тренутку у року треба да чак и осећате као да сте такмичи против једног студента са више или мање фон од тебе. Заиста, курс је требало да буде много више сарадње и много отворенији од тога. Што се тиче проблема сетова, ви ћете наћи, такође, да поред Стандард Едитион проблема сваке недеље сет, често има "хакер Едитион "који је требало да буду усмерене на 5% до 10% или тако демографске ко је заиста међу онима удобније и да би желели више већи изазов него стандардни издање тог псет очекује. Више детаља о лицима која се наћи у градиву. Али, ту се могу наћи детаљи на курсевима касне дана. Обично проблем поставе доспевају четвртком. Међутим, можете да продужи многе ваше рокови ове јесени из четвртком до Петком једноставно нас сусрет на пола пута, да тако кажем, одговарајући на неколико загревање питања у неким од проблема недељном скупова, који ће аутоматски онда вам 24 сата више. Такође ћемо пасти ваш најмањи скор, по градиву. Да вам дати осећај о томе шта је проблем Сетови су - јер је то заиста Курс проблем који поставља коначно дефинишу готово сваки ученика искуство, више него предавања, више од секција, још него већина било који други аспект курса. Прошле године, на пример, почели смо, као ћемо почети ове године, са нуле. Посебно у петак, ми ћемо искористити, за само један дан је време, графички програмски језик, са којима ћемо почетак програмирања превлачењем и падају делове слагалице да само саставите физички да ли има смисла да то учини логички. Следеће недеље, брзо ћете транзиција Ц, прилично стара, али веома мали и једноставан језик који ће нам омогућити да стварно иду од 0 до 60 у току од само неколико недеља, а затим Парлаи те исте вештине и знања Основно програмирање конструкције у вишем нивоу језика као што су ПХП, ЈаваСцрипт, а други још увек. Прошле године, трећи псет у току је да од криптографије, домен-специфичне апликације чиме смо Оспорене студентима да нешто број шифара, програми са којима да јагма или дешифровати информације, за шифровање га. За хакерске издање, насупрот томе, дали смо се хакер студентима фајл са стандардног Уник садржи рачунара корисничка имена и лозинке, други који су били шифровани, и ми оспорио те хакера студенти за дешифровање, колико су то могли, те лозинке, и даље на томе исти домен. Сцрамбле, који игра са неким од вас су можда упознати. Форензика комад, где питамо студенте за спасавање података које су биле иначе избрисана из мог дигиталног фотоапарата Цомпацт Фласх картица, по заправо писање софтвера за схватити, где су нуле и јединице у да дигитални фотоапарат који раније компоновао ЈПЕГ графику? Изазов врста прошле године укључује писање најбржи Спелл Цхецкер могуће, такмичећи против пријатеља и школских другова ако они желели. Имплементација хуфф 'н Пуфф, компресија програма. А онда окончање семестар са ЦС50 Финансије, Веб апликација са које сте креирали еТраде налик сајт да купују и продају акције, тако да говорити, самим повлачењем скоро реалном времену цитати Иахоо! Финанце. Оно што нисмо урадили прошле године била је један проблем који и даље скуп ипак фаворит. Ако никада нисте отишли ​​у схуттле.цс50.нет, видећете корисника интерфејс мало овако. Међутим, пре две године, класа имплементиран, користите Гоогле Мапс и Гоогле Еартх плуг-ин и мало на памет за вожњу по кампусу, тако да је циљ ове игре је, као што можете да видите неке од лица, је да вози по кампусу у потрази за особље, настава момци и ЦАС, и Када то урадите, стављајући их на ваш шатл аутобус. Нико од њих стварно изгледа да овде, тако да ћемо ући код варања. [Смех] Малан ДАВИД: Тако је. У реду. И ево сада је особље проткана широм кампуса. И као што видите, на десној страни екрана, схуттле бус има празних места. А циљ је био да се напише Код са којима се симулира ово вожње и брање горе и падају офф путника. Тај један, такође, користећи језик звао ЈаваСцрипт. Тако схватају да програми као што ће бити на нашој истој путањи ово године, као и. У смислу, сада, за додатну помоћ, имамо у канцеларији. Као што сте видели у својој кући трпезарија или у Анненберг, ми ћемо бити у кући ручавање хале четири вечери недељно - Леверет, Пфохо, Елиот и Анненберг ове године, 8:00 до 11:00 часова. И оно што смо мислили да ћемо урадити ове године је нешто мало другачије. Ако сте чули гласине да је прошле године било је превише стресно, ово Овогодишњи радног времена, као што ћемо описати следеће недеље, биће више органски, где по доласку, бићете послао на једну табелу где је више чланова особља чекају, и ми ћемо учинити ствари много више органски. Нема више ред, нема више иПад, али а имају више интимних разговори око стола од само осам или тако студената, тако да смо приближан осећај онога што иначе био би много мањи класа. Нудимо, као, ове ствари које смо зове валктхроугхс, видео снимљен у унапреде један од учења курса је момци, Замила, у којима је она вас води кроз проблему недеље скупова, који нуде савете за изазови који стоје пред. И обрнуто, пошто су проблем поставе због, ове године, такође ћемо ослободити мало клипове позовите обдукција која заправо шетња вас кроз представник решења, и добро и лоше, преко којих можете закључити како можете да имате или би требало да имају спроводи сопствено решење. А шта ћемо понудити по први пут и ове године, посебно за оне студенте који се одлуче курса је друга ресурсима, али ипак се боре све превише, курс Сам ће упарите оне студенте, као средства дозвољавају, тако да са туторима имате много интимнија прилика од куће трпезаријама омогућава један-на-један помоћи. Сада коначно поглед на неке крајњих игара на видику. Можда сте упознати са ЦС50 Хацкатхон. Па, долази ово децембар, од 8:00 АМ до 7:00, на почетку Читање периоду, бити прилика да се окупе са другим ученицима - то би било око 9:00 пм - током које зароните у свој коначни имплементацију пројекта заједно другови, пријатељи и храна. То би било око 1:00 ујутро, када прва серија од хране стигао. И то је отприлике 4:00 ПМ да Посебно године на ЦС50 Хацкатхон. Али, прави врхунац курса је значило да ЦС50 сајму, кампусу Изложба ваших завршних пројеката, на који породица и пријатељи су сви позвани, као и наши регрутери наши пријатељи из индустрије. То, на пример, је искра 2.000-плус људи који су присуствовали Протекле године. Изрази као што је овај нису неуобичајени, и слично даш другови узивају у стварима ти си постигао. А у ствари, у том циљу, имамо Старт-оф-рок манифестација, као добро. Ако се ствари као што су ове жалбе на вас или ти си бар радознали шта ово, знам да је нова традиција Курс се зове ЦС50 Слагалице дан. И то је био покренут пар године вратио се заиста сигнал кампуса да је информатика није о програмирање, а то свакако није о прихвата само оне студенте који имају претходно искуство. То је заиста о решавању проблема уопште. И тако Пуззле дана, током последњих неколико година сада, је еволуирао у лепо партнерство са нашим пријатељима у Фацебоок, при чему неће бити сјајно награде и пица преко реке на И-лабораторија то долази субота. Дуел на тај УРЛ са два или три пријатељи, ако желите да учествујемо у овом новом традицији. Зато бих вас замолио да се задржи ствар на уму, а ми имамо само два минута снимак на коме да затворите данас. 73% је број за памћење. Торта, такође, ће вас чекају напољу ово попречни брод као што смо паузу у само неколико тренутака, што је традиција курса, као добро. Али ово је кључни цитат Наравно да је наставни план на уму. Оно што је битно у овом крају курса није толико где можете завршити у односу на својим друговима, али где ви, у 12. недељи, завршавају у односу на се у Недељи 0. Међутим, поглед који ће вас оставити са данас је ово последња овде наше истог Данила, који је врдли видео малочас. Ја бих са овим поглед шта се налази испред. И као што смо то урадили, ако можемо да имамо ЦС50 особље из предњег дела просторије хајде да се на бину да сликам све више од визуелне слике као да шта вас чека у овој години - постаје непријатно. Ми ћемо закључити са овим Овде на екрану. [Музика свира] ДАВИД Малан: Ово је ЦС50. [МУЗИКА - Матт & Ким, "у реду је"] СПИКЕР 1: Волим ЦС50 више него мачке. СПИКЕР 2: Вхоаааа! [Смех] Малан ДАВИД: То је, дакле, ЦС50. Ми ћемо видети у петак. [Аплауз и радосно] НАРАТОР: На следећем ЦС50, на сцени демо не иде по плану. ДАВИД Малан: Желимо да пронађе Мике Смит у том именику. Па, шта су ваши инстинкти? Можда грубо скок на средини именик, поглед доле, видимо да Ја сам на М, а сада знам да Мајк Смит није на лево. Он мора да буде са десне стране. И тако у овом тренутку, ми смо може буквално поцепати - у овом тренутку, ми смо буквално да поцепа - у овом тренутку, ми можемо фигуративно поцепа телефонски именик на пола. [Укелеле дрндање]