[Мусиц плаиинг] Ово је ЦС50-- Харварду Универзитета увод на интелектуални предузећа компјутерске науке и уметност програмирања. И моје име је Дејвид Малан, и Размишљао сам јутрос, то је било невероватно 20 година данас откад сам последњи пут седео у којој сада радите. То је било 1996. Ја сам био студент друге године, а ја сам се ЦС50 по први пут. А нисам ни устао нерв да га средим првој години, делимично због времена. Цомпутер сциенце мени је нешто као, мех. Био сам помало геек расте горе, али нисам баш имају неки интелектуалац интересовање за оно што се чинило да буде само гомила људи программинг све време. И ја сам уплашен да будем искрен. Ток и информатика више углавном имали и у извесној мери, ипак има ту репутацију поља на пази, ако само зато што су многи од нас су упознати с тим и несигуран у њега. И никад није било док сам куповао ова класа је студент друге године фалл-- па чак и тада, и само уписао јер је профессор-- један од мојих првих ментора, Брајан Кернигхан сада у Принцетон-- ми је дозволио да се класа додавање не. И заиста, зато данас ми дозволити и охрабрити студентима да узимају ову класу сат / унсат. И тек тада, од стране крај семестра Нисам схватала као, вов, ово није био тако непознат поље. Заиста, ово је веома моћно поље, и више узбудљиво, посебно касније, као што сам узео курсеве у Драмских уметности 101 и латински А и на крају Град школа археологија, сам заиста почети да види пресеци овој области, рачунар наука, са хуманистичких наука, природне науке, уметности, медицина, и слично. И то је оно што је тако уредан о рачунарству на крају, као што се надамо да ћете видео-- је његова применљивост овим другим областима, и како можете узети неке од данас је и семестар је идеје и практичне вештине назад на свој домен, и заправо истражују ову раскрсницу либералних уметности и науке. Дакле, 73% од вас, ако последњи година је било индикација, никада раније узели ЦС курс. Дакле, ако, као ја, ти си осећам мало уплашени, или искрено ниси стварно сигуран зашто си још овде. Можда сте управо пратили неки пријатељи над на Сандерс одмах. То је потпуно у реду. Циљ је да се кука те и да се увери да ако не погледамо лево и десно, ви ћете видети друговима из разреда са као мало или онолико искуства то ти се можда има. И заиста, ми ћемо делити неке статистике касније данас о томе шта је демографији класа обично изгледају. И како се додаје реассуранце-- и тога смо мислим од када сам га током Неколико година аго-- у Курс је план и програм је-- то што на крају питања у овом курсу није толико где си крај до односу на своје другове из разреда, али где се у недељу 11., крај од семестар, завршити у односу на себе у недељу 0, што је где смо данас овде. И то је оно што сам схватио све те пре много година. И знам доста класе кажем, али то је посебно тачно у компјутерској науци. На крају крајева, ово поље је непознат као што је било до мене и може бити да ти је стварно само о решавању проблема. И као таква, она нема ово применљивост да се другим областима. И у ствари, ако смо покушали за дестилацију шта то значи, Ово је решавање проблема у суштини, ја претпостављам. Ту је инпут-- Дакле, шта год да је је да покушавамо да решимо. Постоји излаз, који је, надамо се, решење за тај проблем. И онда, као што би кажу у компјутерској науци, ту је црна кутија у средина да не обавезно морају да брину о томе како се то ради. Ви сами евентуално могао спроведе оно што је у тој кутији. Али за данашње потребе и више генерално у животу, све ти је стало је да се ови проблеми решени. А шта је овај курс на крају око истражује пресек ови улази и излази, и то тзв алгоритми, као што ћемо ускоро видети, да спроведе оно што је испод тамо, хауба. Али ове улаза и то оутпутс-- Шта то заправо значи? Па, на крају крајева, треба неки начин представљања информација. Ово се посебно односи на рачунару, који као фанци и сложена и можда делује, је прилично глупа уређај. Потребно елецтрицити-- да ли из кабл или батерија као инпут-- и онда производи нека препрограмед одговори на екрану. Али како ћемо добити од почињу да тамо заврши? Па, шта је проблем бити решен? Па, можда бисмо могли, у почетак сваког семестра, покушавају да доведу у соби као што је овај. Тако да може да уради као један, два, три. Или можда, ако сам то урадио на неки начин пратити од себе-- да прате ствари-- Могао бих брзо остати без прстију. Тако да сам само могао да тараба маркс-- један лице, два, три, четири, пет, шест, седам, осам. И свако од нас вероватно урадио, да ли на рукама или на парчету папира. И ово је заправо само нешто што се зове Унарни нотатион-- где ако имате само једно слово у својој писма, једно или хашиш ознака у овом случају, за сваки улаз желите да броје, треба да спусти један од ових леттерс-- један од тих ознака. У реду. То је све у реду и добро и није све тако компликовано. Али компјутери нису сви да много компликовано. Заиста, већина вас сигурно знам чак и ако не си стварно Сматра шта то значи, да рачунари разумеју само нуле и онес-- тзв бинарном систему. Ми људи, с друге стране, су тако много софистициранији уколико како смо нула кроз деветки. Али чак и ако бинарни је, на први поглед поглед, није све што је познато, Испоставило се да је то исто као и система и идеје које већ знамо. Тако на пример, размисли о овоме. Ово је само низ симбола. И сви ви, када Гледајуци њега, вероватно Мислим 123-- ниста стварно занимљиво тамо. Али зашто је овај број, 123? Ово су само глифови на сцреен-- само обрасци да је неко можда извући или откуцана. Али ако сте попут мене, Вероватно се сећате из основне школе да постоје врста колона или места овде. Ту је она мјесто и десет је место и стотину је место. А разлог да је ово 123 и не само образац три симбола Јер, наравно, ако ми има један на стотине месту, ти математику од 100 пута једног, а затим два у десет месту. Тако да је 10 пута 2, а затим три у Тхе Оне мјесто и то је 1 пута 3. И када додате све оне горе, на Наравно, ти 100 плус 20 плус 3. Тако да смо почели са само образац од симболс-- је алпхабет-- али онда мапирана значење на га путем ових стубова. Па, испоставило се да рачунари су заиста није све то разликује од тебе и мене. Али уместо овлашћења 10, тако спеак-- 1, 10, 100, 1000, 10.000 место и тако фортх-- они заправо само користити овлашћења 2-- па се, 2, 4, а затим ако ставимо више цифара, 8, 16, 32, 64, 128, и тако даље. Па ово је како рачунар би представљају број 0, Само смо као људи. 0, 0, 0-- и што вероватно можете погодити шта образац нула и јединица, ако рачунар може само говоре 0 или 1-- шта образац ће представљати броја који људи знају као 1? Да-- 0, 0, 1. У реду. Дакле 0, 0, 1 је како представљају 1, тако да може да се склони онда да представља број 2, ако имате Тхе Фоур је место и два мјесто као једном месту, могло би се рећи, добро, ако смо имали 1 на једном месту, а сада желимо да броји до 2, могао би ово и оставити да то буде нула. Али наравно то није начин децималне систем функционише ни. Ако ставите цифру оба ова колона, мораш да уради аритметику. Дакле, шта број је случајно управо представља? Дакле, то је 3, јер 2 пута 1 плус 1 пута 1, наравно, даје нам три. Дакле, то ће бити два. Бит врста флипс, да тако кажем, као 0 постаје један, слично као 9 улога преко и постаје 0 када носите 1. Ово онда би било троје, наравно. Фоур-- Још једна интересантна ствар деси, где су они преврне и ви носити 1, да се тако изразим. Тако да, наравно, је 4. Али ако брзо напред сада, шта је највећи број иде да буде да рачунар може представљати? Дакле, то је само седам у овом случају, зар не? Јер имате један у четири, једна у два, једна у једној. Тако да је 4 плус 2 плус 1. Тако да вам даје седам. И заиста, то би изгледа на први поглед да компјутери могу рачунати не више од тога. Али то наравно није тачно. Шта ми људи радимо када желимо да рачунају више него као 999? Само наставите један и само додати четврту цифру са леве стране. Па заиста смо могли. Могли бисмо да имамо осам'С место и 16. мјесто, и 32 мјесто, 64, 128-- и ви могу само настави даље до бесконачности. Дакле, те нуле и онес-- тзв бинарни систем-- су оно што рачунар научник би генерално назвати мало, или бинарни цифру. Али сада, како ћемо добити од концепт или графика ових ствари до стварног компјутер? Чини се да прескаче корак овде. Па, једини улаз на крају дана, на мој лаптоп овде ово проток струје. Чак и ако је то био дуг пут од сте мислили о томе или никад размишљала о како струја ради, има електрони теку или се, и то је моја врста улаза. Дакле, ако је то све што смо узимајући као улаз овде, шта можемо урадити са том информацијом? Па, могли бисмо да на нулу као само одсуство струје. Ништа није фловинв, ништа није креће, ништа се не дешава. То је само подразумевани стате-- нула. Али ако постоји тече струја, зашто не само произвољно, али глобално доследно, зовемо један. Дакле, једноставно тако што нема струје, имамо нула, Да Сила, имамо Један-- без моћи, иес моћ. И на тај начин, користећи нешто више Физички или електронски почнемо да спроводи ову представу нешто или као један или нула. Заиста, можемо само то овде. Дакле, овде, нисам три, али осам сијалице од којих сваки има свој прекидач. Па ако сам желео да представља број седам овде, Можда укључите ове три сијалице. И заиста, унутар мој компјутер милиона, милијарде ствари које су управо мање од тога, зову транзистори, прекидачи, који сте управо пали и гаси. Дакле, то су релативно биг-- биг-- прекидачи Инсиде Ми лаптоп-- много, много, много, много више прекидача. Али све што раде је управо то-- окренути нешто на, окрените нешто. И као такав, рачунар може представљати, са тим милионима или милијардама транзистора, пуно и много нула и јединица. А ту је и други хардвер и даље да омогућава складиштење информација дугорочно, тако да када повуците плуг, ви га не изгубите. Али то је прича за неки други дан. Дакле, шта да радимо са тим бита? Можда смо само да се притисак са мене-- Можда неко жели да дође овде и понудити демонстрацију? Сам први пут видео ову руку. Како се зовеш? Мадаи: Мадаи. Давид Малан: Мадаи, хајде горе. Драго ми је да смо се упознали. Мадаи: Драго ми је. Давид Малан: Дођите овамо. Нећу морати да те усана горе. У реду. Дакле, овде имамо, нотице-- Један, два ћемо изменити да оут-- један, два, четири, осам, 16, 32, 64, 128. Ово је намерна. Постоји осам битова овде- бинарни дигитс-- нуле и јединице. И мало је користан јединица меасуре-- не као користан јединица мере на себи. Обично желите бар осам од тих ствари, такође познат као бајт. Дакле, имамо бајт битова овде. Дакле, ако смо хтели да те изазове са, на пример, спеллинг од, у бинарном, ова вредност овде- 42. Желим да се убод на то? Мадаи: [неразумљиво]. Давид Малан: Да, само гурајте мале беле прекидачи испред. И желите да пише од 42, а за посезање је ово ЦС50 стрес Лопта ако ти ово. У реду. Тако да имате 32. Ми ћемо требати 42. Тако да је осам, тако да је 40. И екцеллент-- врло лепо урађено. Хвала вам. [Апплаусе] У реду. Дакле, имамо још један стрес лопту. Хајде да ово још једном радимо ако могу. Једна друга волонтер? Фрее стрес лопта, слободно стрес лопта. ОК. Овде у средини, да ли желе да дођу доле? У реду. Знам. Ево га. Тако да је број овдје-- хајде доле. Како се зовеш? ДАВЕИ: Дејви. Давид Малан: Дејви. ОК. Хајде горе, Дејви. Драго ми је да смо се упознали. А шта ћемо да те имам спелл-- ако би тамо задржавају за само један тренутак-- је број 50. Али, али, али али, али, ово су школски разред магнети са разлогом. Само је мало теже, у реду? Има још осам. У реду. И шта имамо тамо? Имамо 32. Леп. 32, плус 16 даје нам 48-- тако близу. И диван. Честитке Давеи, као. [Апплаусе] У реду. Тако да можемо да урадимо ово цео дан, и не да све то много више Занимљиво и већи изазов. Али то је заиста поента како релативно једноставан то је, на крају крајева, шта је рачунар ради за складиштење података, за складиштење улаза и на крају складишти или представљају оне излаза. Али бројеви сами по себи не све то занимљиво. Дакле људи, пре неколико година, одлучио, знаш шта? Било би лепо ако рачунари нису били само калкулатори за рачуницом операције, али заправо могао до ствари као што су обрада текста, или е, или модерније инкарнације од ове врсте технологије. И тако је свет одлучио произвољно, али универзално, да ако желите да сачувате капитала слово А у рачунару, знаш шта? Хајде да сви слажу да сачувате неки образац нула и онес-- битс-- да на крају представља децимални број 65. Само ћемо сви слажу око тога. 66 би представљало Б, 67 би представљало Ц, и ту је гомиле других образаца нуле и јединице, или темељне бројеви, која би представљала остала писма и даље. Па ако некако ментално апсорбују ово за тренутак, Намерно сам ставио горе од А до И, где Х а 72 и И је 73. Ако се рачунар тада у контексту програм за обраду текста или е-маил, открила испод хаубе има ови обрасци битс-- образац битова који представљају 72, затим 73, затим 33-- Шта би то могло правописа у том програму? Тако здраво, а затим нешто. Ми не нужно знати, али заиста 33-- не на графикону еарлиер-- била само знак узвика. Дакле, 72 је Х, 73 је сам, 33 деси да буде знак узвика и даље. Али то је све у реду и добро, и заправо данас, уместо користите само седам или осам бита, захваљујући нешто назива Уницоде насупрот у АСЦИИ назад у дан, ми заправо могу представљати још занимљиви ликови од само ово оригинални енглески пристрасан писма. Али исто тако могу представљати још уредније ствари као што су боја. Ако сте икада чули акроним РГБ, црвена, зелена, плава, да само значи да рачунар обично користи три сета битс-- неки број битова који представљају број за колико црвена желите, други сет битова за колико зелено желите, и други сет број за колико плаво желите. Тако велики број значи много црвена, мали број значи да нема ред. Па ово су љубазни од средње вредности овде. Па дај ми мало црвено, дај ми мало зелено, и дај ми мало плаво. И ако помешате та три нијансе боје заједно, у овом случају, ти овај мутне нијансу жуте или смеђе. Али то образац осам, плус осам, плус еигхт-- тако 24 битс-- лева на десно, како компјутер представљало би тај конкретни боју. Сада ово је само тачка на екрану. Ако погледате заиста на дохват ТВ-у своје рачунар, видећете тачке или пиксела. А ако имате читаву мрежу од пиксела, хоризонтално и вертикално, имате слике. А онда ако узмете слика и онда прање показати себи другу слику, други слика, још слика, други слика, јако брзо, ви наравно имате филмове. Па видите где смо почели. Почели смо са овим нула и јединица. Радили смо одатле у децималне Бројеви, како их представљају. Сада имамо слова абецеде. Али у другим контекстима чекати, можемо да користимо још неколико битова и представљају боје. Чим имају способност да представља боје, имате могућност да представљају фотографије и Анимирани ГИФ и други такви ликови на екрану. И када имате гомилу слике лети човека одједном, Изгледа да играних филмова, и тако да се видео као добро. Дакле, користећи ово врло једноставне примитиве и ми имају начин представљања на крају свих ових облика медија. И ми смо опет захваћене и опет и опет, док не добити од најнижег нивоа на овом највишем нивоу. Тако да нам даје ово Основна идеја апстракције. Али смо почели овде. Ево сада, могли бисмо представљају у компјутеру наши улаза са нула и јединица, наши резултати у нула и јединица, али шта се дешава у кутији? То је место где рачунар наука постаје интересантно. То је место где заправо донети свој сопствени ум да носе да реше проблеме. Сада можемо прописати, за Остатак семестра, да. Знам како бинарне дела. Сећам се како АСЦИИ или Уницоде-- мапирање на леттерс-- радова. И свакако стоји да разлог због којег смо може да представља црвена и зелена и плаво, и представљају мултимедијални као добро. Али ово је интересантно. То је оно што некога способне за решавање проблема. И један такав проблем желимо да урадимо, заиста, изводи присуство, или алгоритмички радим. И опет, могао бих да урадим ово. Можда до један, два, три, четири пет, шест, седам, осам девет. И ја могао да напишем до пратити њега. Али то је само како бих представљају информације. Или да то могу фастер-- два, четири, шест, осам, десет, 12, 14, 16, 18, 20, 22-- изгледа као двоструко тако брзо али је и даље Биће потребно пуно времена. Али испоставило се, ако још увек искористе још ресоурце-- и заиста рачунари ових дана имају више процесора или мозак. Испоставило се рачунари могу многе ствари одједном, и заиста смо, у овој просторији, може представљати управо то. Тако да је мало друштвено чудно, али ако би хумор ми за само три корака, нека питам све на мјесту само да устане за тренутак. Устати. Тако да у себи, број једног-- тако да свако у овој просторији, осим људи који нису облиге, мисле број један. Дакле, то је ваш број сада. То је први корак, или као компјутерски стручњак или програмер обично би то, идемо да почне бројање од нуле. Ако је најмањи број можемо представљају са тим сијалицама је нула, за само их оставља све офф, могао би и само почети да броји од нула је уместо једне. И то је шта компјутерски научници раде. Тако корак нула, устане и Мислим броја један. Следећи корак је ово-- пар с неким положаја и додати бројеве заједно. Дивно. Дакле, у овом тренутку, буквално свако учешће размишља о броју 2, изузев за једну особу чудно, ако имамо непаран број људи у просторији. А сада трећи корак овде ће се се ово-- од вас треба да седите. Један од треба сјести, а ако и даље стоји, вратите се на корак један. У реду. У реду. Дакле све више и више људи треба да се седи. Обратите пажњу да је ово индукује лооп-- неку врсту циклуса. Неки од вас би требало да буде незгодно заглавила, иду напред-назад између први корак и два, један и два, један и два. То је у реду. Наш први буба. Ми ћемо носити са тим. У реду. Дозволите ми да покушам да подстакне ствари заједно. У теорији, само једна особа стоји као свако наставља да упарите са. Али дозволите ми да убрзамо ствари са људима и даље стоји. Шта број размишљаш? 46. ОК. Само напред и седи. Ви и даље стоји. Ко је још стоји? Шта број размишљаш? ОК. Па ћемо се вратити теби. У леђа? Шта је то? 22. Добро неко горе топ-- да? 34. ОК. Овде на мом ригхт-- овде? 132, врло лепо. 22? ОК. А ко је увек стоји? Овде? 46, врло лепо. 72. Ја не могу да зауставе много дуже. Да? 30, лепо. Овде? 23? 23. И ја мислим да је то свима осим вама, без притиска. Чек. 28? Само осам. ОК. Само осам. Овде? 30. 23. 24. 18. Ово је најгора примена овог алгоритма икада. ОК. Дакле, неко други? Било ко други? ОК. Још једно. 16? ОК. 16. У реду. Дакле, ако нисам пропустио неко у одсјај овде, кад сам ударио Ентер, ћемо видети, алгоритмички је укупан број људи у Сандерс. Јер опет, то је као да сви као што је сео, донела свој број са неком другом, неком другом, неком другом, тако да у теорији, на крају, само један неспретан Особа треба да се остане на ногама. Али то је у реду. убрзала смо ствари ручно. Посебно је тешко видети у овом простору. А укупан број људи мислимо да ту има је 546. Укупан број Била сам руку по наставним другова, Ко је то учинио стари школа спор начин, био је 820. [Лаугхинг] [Апплаусе] То је у реду. Тако сигурно онда, постоје те бубе. И то је у реду. И тако да се на ово први пут нешто пишете не мора нужно ради. Ово ми се десило и овде. Али хајде да сада размотримо како бисмо могли примене ове исту идеју на нешто сте можда раније, што се ова стара школа технологија овде- заиста велики телефонски именик. И претпоставимо да овај именик има 1.000 страница и 1.000 имена и бројеви абецедном реду унутар њега. Па, могли би некако применити сличан Идеја за овај веома физички проблем, само ме користи. Само сам варао ослањајући све вас са пуно, пуно различитих процесора или мозак извршења неког алгоритма. Али ако је само мало стари ја, ја и даље могу искористити ту исту суштину идеје поделе и освајања тај проблем изнова и изнова, при чему половина од вас, пола од вас, пола вас, пола вас, теоретски стално седи, док смо остали, теоретски, само са једном особом. Дакле, у овом старој школи тецхнологи-- ми не ово треба мап-- ово стара школа технологија, можемо почети тражити некога Лике Мике Смитх, једну страну у исто време. И видим да нема, Мајк није овде. Још увек сам у делу А. На крају, мислим да ја у делу Б. А ово је алгоритхм-- корак-по-корак упутства. Старт на почетку и једну страницу истовремено, тражити Мајк Смит. Да ли је ово цоррецт-- ово алгоритам или приступ? Да, то је тачно. Ако Мајк је овде, на крају Ја ћу доћи до њега. Али то није ефикасна. То је очигледно веома споро. Тако да могу да појачају Исти твосиес прићи. Ја могу врсту два, четири, шест, осам, 10, 12. То је дупло брже. Идем да стигнем до Мике брже ако је тамо. Да ли је тачно? Да, али сам чуо мало-- Но. Сада сам чуо А бр. Да. Тамо је буба потенцијално. Можда је Мајк само случајно постаје у сендвичу између две стране, јер ја летим кроз ово двоје у исто време. Па макар нам треба неки врста условног фик. Морам да кажем, хеј, ако сам погодио некога чије име почиње са Т уместо С, Боље да поново врате барем једну страну. Тако луд на почетку, али поправити. Али нико од нас неће тражити Мајк Смит преко 1.000 страница телефона а наручити једну страну у једном тренутку. Шта је то нормална особа да уради? Ти ћеш ићи на С-их, кад би знао где је С. Можда иду отприлике на средини или благо нагиње према крају. И погледам доле и Ја сам у делу М. Али, шта знаш о овом проблему сада, да нисмо нужно знати прије са свима нама само се броји еквивалентно? Па, Мајк је јасно иде бити у овом полувремену књиге ако је уопште овде јер је то решено. Па можете врло драматицалли-- [Дахтање] Знам. [Апплаусе] Заправо је веома лако ако Ви то низ кичму тамо. Али онда се бацити половина проблема у гостима. Сада, ја сам остао исти мали проблем наћи Мике Смитх у телефону боок-- али сада је именик почиње у М и иде до З, али је пола тако велика. Али то је оно што је импресивно. Баш као у теорији, ви, када сви седе само пола истовремено, проблем има упола велик, упола велик, опет и опет. Тако је овај проблем постао Исти проблем, али упола велик. Сада је проблем 250 страница. Чим сам схватио, ох, у делу Т случајно. Ја сам отишао предалеко. Могу да баци пола именика далеко. Сада, ја сам своди на четвртина проблема. И можете да поновите, поновити, поновите поступак док, у теорији, ви сте остаје само једна страница. А ако Мике је на тој страници, Сада могу да реше овај проблем. Али како брзо сам га решити? У првом случају, то ми је као можда 1.000 кораке да се пронађу Мике Смитх. Можда је узети мене-- Узео сам телефонског именика и почео да тражим једна страна у једном тренутку, и Мајк може бити 1.000 страница касније. Други приступ можда води ме 500 корака, јер Летим кроз два у једном тренутку. И трећи приступ, иако, то је посебно моћан. Али, хајде да размотримо шта ми заправо радио са овим трећим приступом. Ја ћу исто што ћу назвати само ово изјаве овде, један по један. Покупити телефонски именик. Отворите на средини телефонском именику. Погледајте имена. И онда ствари постају мало више интелектуално занимљива, ако још увек једноставно. Ако Смитх је међу имена на тренутне стране, онда нешто условно. То је као раскршћу. Цалл Мике. Ако Мајк је међу именима на тој страници, зове Мике. Али само до линије четири ако линија дрво, ако хоћете, је истина. Одговор на то питање је да. Иф Смит је раније у боок-- Другим речима, ако сам у делу М и ја тражим некога да лева, онда шта да радим је нешто врло слично. Онда би требало отворити у средини на левој половини књиге. Онда иди лево, а затим вратите се на корак два. Погледајте имена тамо. Другим речима, раде исту ствар, али проблем који је преполовљен. Знаш шта још? Ако Смитх је касније у књизи базиран на страници гледам, отворен на средини десна половина књиге и онда се опет на корак два, елсе-- постоји четврта могућност овде. Мике је било овде или на лево или десно или не постоји. И овде се боље размотримо ово. И у ствари, ако сте икада имали рачунар само срушити на вас, да је понекад, али не увек, Резултат свега људског програмер не реализације, о пуцати, ту је Заправо ово четврти сценарио. А ако не писање кода за руковање тај сценарио, Понекад не знаш шта је компјутер могао да уради. И заиста програм може срушити. Али у овом случају, мислио сам о томе, а ја сам рекао, још отказ, јер је то четврти логично могући сценарио. Сада, само додати неки речник тако да може да почне да баци око термина који иначе прилично једноставно. Све ствари које сам управо истакнут жутом бојом овде, Само ћу до Функције и процедуре. Они су некако акција. Тако покупити, отворени за гледати у, позовите, отвори, куит-- то су само акције, или ћемо зови их више формално, функције. У међувремену, сада у жуто, Ја сам истакао ствари да-- да почнемо зове им услови или гране. Ово су доносиоци тачке где можда ићи овим путем, на овај начин, или неки други правац и даље. Дакле, то ће бити услови. А сада ово је мало одгајивача. Назовимо ова питања Боолеан изрази, после неког са презименом БооЛ. И Булова израз је само нешто То је било тачно или нетачно, да или не. Дакле, то је питање чији одговор те стало, како би у стању направи децисион-- се врати одговор, и онда идите лево или десно, или нешто друго заједно. И онда на крају, ово Линије овде- вратити на корак два, вратим на корак два-- смо могли спроведе ову идеју на различите начине. И онда оне са програмирање искуство може да уради или могу замислити другачије ради ово. Али за данашње потребе, то је само идеја је важно. Ово изазивање оно ми углавном Зваћу лооп-- неку врсту циклуса, јер То ме поново урадим нешто. Дакле, сада, хајде да размотримо колико је добар алгоритам је. Тачно је. Ако Мајк је у књизи, то је један од та четири сценариос-- опет и опет и опет ћемо га наћи. Али колико је добар? Па, ми немамо бити превише формалан. Али хајде да земљиште нешто, к и и, да осећај облика овог проблема. На к-оси овде је величине мој проблем. И они И-оса овде ће бити време да се реши. Дакле, можда је број страница. Можда је ово секунди или страна томе, ко како год. Међутим желите да рачуна је шта ова слика ће представљати. И то прво алгоритам, идем описати само као праву линију. Ако постоји н странице у телефонски именик, онда Можда ме чак као н кораке да пронађу Мике. Ако Спринт или телефон компанија додаје још једну страницу наредне године, можда ми се још једна степ-- још једна јединица времена да нађу Мике. Тако да је само овај на један однос. То је права линија нагиб. У међувремену, тај други алгоритхм-- ако сам иде два на времена-- готово два, четири, шест, осам, или доубле-- пролази кроз странице два пута истовремено, две одједанпут, ипак је права линија. Сада постоји један до два однос, али само мало ниже. Па ако има оволико страница на графикону овде у жуто, да би ми се ово много корака или секунди, иначе ће ме одвести двоструко више на црвену линију. Али зелена линија је права понети. То је оно што обично позвати логоритхм-- дневник од н, где је н број страница. Али то је облик који битно данас, јер немамо чак и размишљати о цртања бодова. Размислите о екстремном сценарију. Претпоставимо Спринт сутра удвостручује број страница у тој именику, од 1.000 до 2.000. У првој алгоритму, И Можда трошити додатни 1,000 кораци у потрази за Мике, само зато што Спринт удвостручио величину књиге. Други алгоритхм-- Ит Мигхт таке ме додатних 500 корака. 1.000 више страница, идем и два за једном-- 500 више корака да се пронађе Мике. Али то трећи алгоритам је некако магично. Спринт удвостручује број страница од 1.000 до 2.000, Али колико још корака ради то ме тражити Мике? То је само један, јер могу само теар телефонском именику још једном од 2.000 страници проблем на 1.000 страна проблема, и воила. Узео сам огроман залогај од тога. И ако заиста екстремно, Претпостављам да именика Компанија је имала нешто лудо као 4 милијарде страница телефонског именика. Па колико корака може да потраје да пронађе Мике Смитх у 4 милијарде страна телефонски именик? То је велики број, али само 4 милијарде до 2 милијарде до 1 милијарде до 500 милиона, 250 милиона-- даље Звучи као великом броју, али сам врло брзо узимајући у мањим вредностима. И, у ствари, ако ја математика Добро, само могу поделити 4 милијарде од око 32 пута пре Ја се своди на један. Дакле, ако је то телефонског именика су 4 дуго милијарди страница, није велика ствар. У року од неколико секунди, можда 32 секунде, могао бих га поделити на пола и на крају наћи Мике или закључити да он није ту. И то је суштина алгоритхм-- добар алгоритам. И то је један од циљеви класе као што је ова, покушава да схватим како радим реши проблем не само исправно, као што сам увек знао како да то урадите нешто страна на једном-- али исправно и добро. Како да дизајн добро решења за проблеме? Па да на тренутак овде и дати вам осећај сада од ЦС50 курс итселф-- увести особље а неколико наравно с. Непосредно пре 2:00, ми ћемо кратку паузу тако да они од вас који купују се ишуњамо и да га погледај неку другу класу и гледа остатак овог онлине. Али за сада, дозволите ми да представим ЦС50, сама класа, а нарочито оно што је ново. Тако је прошлог пролећа, ми провели доста од једном-- особље курса и Ја размишљам о томе шта је то што ми желимо ЦС50 да буде, и да се вратимо на прво принципи, да тако кажем, да размотримо шта је то што желимо овај курс да изгледа као и да као својим студентима. Па ћете видети у проблему сет нула као, позив да се погледам УРЛ адреса који сумира неки од мотива који стоје иза након карактеристика пада 2016. Дакле, као што сте можда прикупити из ТЛ: ДР скрипту, је програм данас, као и од каталог Наравно, ове године у ЦС50, Ви само се очекује да присуствују данас-- тако посао добро доне-- а последњи предавање 21. новембра. А ти си добродошао, али не очекује да ће присуствује тим предавањима у средини, јер оно што радимо Ове године, снима у реалном времену материјала курса је. Дакле, све ће остати струја и инкорпорирани најбоље што можеш-- актуелна дешавања и разговоре који људи би могло да се, имајући у индустрији у свет, али што тај материјал доступан, као резултат, чак еарлиер-- заједно са пуним текстом транскрипте и сеарцхабилити и линкови ка другим ресурсима. И заиста, били смо тврдећи неко време и сада могу да верујем, да можемо створити, дигитално, Више импресивно, а више убедљив искуство образовни, за разлику за прикупљање овде неке 23 пута лично, чује неко као ја једноставно говорити о компјутерске науке, за разлику од ангажовање активније. Тако ћете видети у програму току је скица семестра овде, уз када предавања ће бити снимљен, на којој сте добродошао, али не очекује, и када хоће бити објављен на сајту курса је. А шта ћемо урадити овде Средом већ наредне недеље, је много интимније, са само они људи који желе да учествују, је такозвани шетња кроз, где сам и главе току је ће заправо чине ствари мало интимније овде у оркестру секција, још увек имају неку технологију и хода кроз Недељу проблем скуп, и понудити партицуларли-- ако међу оне мање цомфортабле-- све више смернице које можда ћете желети или треба за недељу дана изазова. И слично, за оне који не могу присуствују они лично, није велика ствар. Ту ће бити слично на челу један од виших службеника курса је, Замалиа, иста прилика ембеддед у проблему поставља се. Проблем поставља ове године ће бити објављен у петак и више не седам дана касније, али 10 дана латер-- намерно преклапање са сваким проблемом сет, како би се боље прими, надамо се, плима и осека у распоред ученика, посебно када испити или атлетика или академици или додатних планова имају тенденцију да долазе и одлазе посебно средином семестра. То би требало да ти дам мало више дискреционо право да ли ти предњи учитати недељу са ЦС50 или назад оптерећења га на наредног викенда уместо. Зато погледајте на програму у току је овде за распоред истих. А ви ћете такође међу приметити промене ове године, за оне који боље познају програмирање у прошлости, почећемо семестар као ми ћемо данас у Сцратцх, фокусирати посебно на језику зове Ц, а онда транзицију не за ПХП, али на језику који се зове Питхон крајем семестра у контексту веб програмирање, заједно са СКЛ и ЈаваСцрипт, ХТМЛ, ЦСС, и још више. А у одговору на ФАК, то заиста није случај да ЦС није тако страшно као што сам некада мислили да је, али то је као много посла као што сам чуо да би могло бити. Али ово је рецимо да ево неких Статистика од јесени 2015. студентског тела, при чему хоризонталне плаве линије представљају просечан број сати пријавио. И видећете у просеку од шест до 10 до 12-- можда 16 или тако и тако даље, али са Висок варијације да буде јасно. Па схватити да не постоји само студенти удобније и мање удобно у току, али одговарајући подршка структура да се ове студенте кроз семестра успешно. Заиста, у одговору на ФАК, треба узмете ЦС50 као првој години? Апсолутно. И у ствари, не жалим не нашавши свој пут или је нашао ново поље да прва година као добро. И треба да се ЦС50 са други предмети, сигурно као па-- и општи савет бисмо могли дати студентима, који ЦС50 је вероватно није она врста класе или интро класе да би требало да се са три други или четири класе п-сет. Али ако узимате два друга п-сет класе, нешто друго, и ЦС50, апсолутно контролисати. Имао сам много ученика у поред урадили прилично успешно. И да те ка да завршити линију успешно, да ли је курс има сецтионс-- различите стазе за студенте мање удобан, удобније, и негде између, при чему у току је Први проблем скуп, вас ће се тражити да се опише. А ако сте међу онима који су мање удобан, то је једна од оних ствари да само прилично познато. И заиста, то је био расте демографију у ЦС50 за прилично неколико година. Од прошле јесени за пример, 58% класе описао себе као међу онима који су мање удобан, са 9% међу онима више удобан, а онда остали студенти тамо у црвена описујући себе као негде између. И видећете овде на теме укупна и распоред секција, од којих су сви нуде лично, у у реалном времену, са курса је невероватно особље наставе стипендиста и наравно помоћници, од којих су неки ћете срести у само тренутак. Секције се, као што ћете видети, Вилл бити Понедељком и уторком и средом, како би се омогућило да зарони после ангажовања, ако ти тако изабрати, у току је предавање раније те недеље. А затим радно време, које Свакако, са сваком годином, сада није било а мање изазов за курс. И ове године, ми планирамо да само да држи канцеларија хоурс-- један на једној могућности за помоћ за студенти средом четвртком и недељом, последњи од њих је у поподневним сатима по дизајну смањити неке од стреса који увек се јавља код касно у ноћ П-сетттинг са роком лооминг-- али радно време ће бити понуђен понедељком и уторком и Средом и петком и суботом, захваљујући нашим пријатељима у ХСА. ЦС50 сада има сопствени простор за студенте и запослене ЦС50, на врху 67 Моунт Аубурн Стреет, тамо у Харвард тргу. Визија за то је да ЦС50 је Поздрав и ЦАС током недеље, прилично током већег дана ће бити ту за подршку. Дакле, ако имате неки Питање на п-сет или се осећате помало блокиран или мало збуњен, и ђавола, ви имате један сат или пола сата између класа, посебно у скуаре-- можете да поп у и имају то питање одговорио да имам ту конфузију цларифиед-- веома у духу, Ви сте упознати, од математике одељења сопствене математике питања центар, али прилично око сат по [? Гцал?] Да ћемо постављати на мрежи. Часова је такође доступан за оне студената, слободно са курса је властити особље ако желите више интимна један на један, или само два или три колеге, ради са једним од чланова особља курса је. И заиста, ово овде су само неки од чланова особља курса је, неке од кога ви ћете састају у само тренутак. У ствари, ЦС50 сопствене глава демонстратор, и глава курс асистент, и прецептор, може доћи на горе, дозволити да кажу здраво. [Апплаусе] ГЛАС 1: [неразумљиво]. [Апплаусе] ГЛАС 2: [неразумљиво]. [Апплаусе] Звучник 3: [неразумљиво]. [Апплаусе] Давид Малан: И дозволите нам да унесем на брод два од ЦС50 је највише виши особље, Роб и Замаила као добро. [Апплаусе] Заиста, како Роб и Замаила су са нама толико дуго, да сам био у стању да се у ЦС50 архиви и да је ово веома СД снимак од њих учествује на себе бини пре неколико година. Роб: [неразумљиво]. [Апплаусе] ЗАМАИЛА: [неразумљиво] [Апплаусе] Давид Малан: Хвала. Дакле, поред ових чланови тима овде, ЦС50 има тим од скоро 100 запослених, од којих сви ће бити доступан за секције и радно време и још много тога. И као Роб такође каже, ово је најзначајнији ремонт од ЦС50 у 10 година да Био сам у [неразумљиво]. [Неразумљиво] фокусиран посебно у пружању структуре подршке, обрезивање далеко доста већина која је била картон за 10 година од итеративни развој на проблем поставе току је. Дакле, ове године, не само у класи, али такође у облику проблема курса је гарнитуре, треба да пронађете ствари бити више усмерени, тример, много више руковање од ранијих година, као и ми бацају неке од пртљага који је развијен по природи развија године након годину и итератинг. Дакле, нови и побољшани почиње данас. Ћете срести још од службеници је у на [неразумљиво] у 2:30, где се служе, као традиција, колача. Има мало више торта од тога, али ћеш сусрет Ерин и Тобиас и други даље. И да ти дам турнеје пре него што чујемо из неких других чланова особља у класи, шта чека и. У ствари, ми смо увек почети ЦС50'С семестар ово долази у суботу, са оним што се зове ЦС50 Слагалица дан. То нема никакве везе са информатика по себи, али са око проблема решавање уопште. И ако тако одлуче да учествују, по неким позива, сте можда видели врата пао или на бини, то је прилика у тимовима два или три или четири, да учествује у загонетки и пице и награде и море-- ове суботе, стаи тунед за више. Наћи ћете такође да сваки Петак, на Фире анд Ице, не ЦС50 донијети гомила ученика на ручак, да би велики класа осећа интимно, и углавном окупљају Алумни и пријатељи из индустрије да разговарају о томе шта су они радио од дипломирања. Слично томе, ове године, неће ми свечано је први икада ЦС50 50 кодирање сумње-- је средином семестра прилика да се омогући свима на онемогућавање у основи, да имају изазов умова против школских другова, опет у тимовима од по двоје или троје или четири, користећи само да је програмирање памет да онда имате под ваш појас после само шест или седам недеља класе, и учествује у овој врсти такмичења онлине-- ако желите да брусити свој вештине све више у тај изазов. На крају семестра је тзв ЦС50 Хацкатхон-- прилика која почиње у 7:00 АМ завршава у 7:00 ујутро, а успут су 12 вечерњим сатима у којима се зарони у завршној пројецт-- току је прилика за пројектовање и спровести највише ништа од интереса да си са наставе момак је вођење. Око 9:00 до ве типично служе пицу, 1:00 ам, Филип је, и неколико нас који су још увек будан у 5:00, су трансфер аутобусима низ Пут до ИХОП за доручак. А онда неколико дана касније је тзв ЦС50 фаре-- крај семестра изложбе у Прослава само колико толико од ЦС50 студенти долазе из недеља нула све до недеље, и имајући у виду да 73% оних колеге и твој ове године имају никада раније узео ЦС класу. У ствари, Истицању толико, овдје је још неколико лица из особља ЦС50 је. СПЕАКЕР 4: [неразумљиво]. СПЕАКЕР 5: [неразумљиво]. СПЕАКЕР 6: [неразумљиво]. СПЕАКЕР 7: [неразумљиво]. СПЕАКЕР 8: [неразумљиво] СПЕАКЕР 9: [неразумљиво]. СПЕАКЕР 4: [неразумљиво]. СПЕАКЕР 10: [неразумљиво]. СПЕАКЕР 11: [неразумљиво]. СПЕАКЕР 12: [неразумљиво]. СПЕАКЕР 13: [неразумљиво] СПЕАКЕР 14: [неразумљиво]. СПЕАКЕР 13: [неразумљиво]. СПЕАКЕР 15: [неразумљиво] СПЕАКЕР 16: [неразумљиво]. СПЕАКЕР 11: [неразумљиво] СПЕАКЕР 5: [неразумљиво]. Давид Малан: Неки од тима су сами куповину класе. Али, ако оне чланове особља ЦС50 су овде, може доћи горе за тренутак. ЦС50 је Поздрав и ЦАС и [? особље?] Чланови овдје-- су само неколико на фацес-- једног од кога сте управо видео, и неколико отхер-- и неколико других још увек. Зашто не одемо напред и дозволити ви пет минута. Ако је потребно да патка како би схоп класе, то је у реду. И за пет минута, ми ћемо наставити, узимајући поглед на Сцратцх-- прва добила нашег програмског језика, меет особље у току је овде мало више, и фокусирати на крају о проблему сет нула. Тако да ћемо се вратити за пет минута. [Апплаусе] У реду. Па смо се вратили. И у нашем преосталих време данас, циљ је на ниво поље за игру у смислу неке терминологије, у смислу неких идеја. Јер заиста, по неки од графикона раније, тамо ће бити низ нивои искуства у разреду, неки од чији студенти имају узети неки програмирање пре, од којих неки нису. И тако са овим први проблем сет и са овим првим језику да имамо прилику да започне да узимамо здраво за готово после данас неки заједнички вокабулар и идеја. И ми ћемо то урадити путем Курс први лангуагес-- поред Ц и Питхон и ЈаваСцрипт и СКЛ и ХТМЛ и ЦСС, ћемо се фокусирати на почетку и само за Проблем сет нула на овом графичком језику, под називом Сцратцх, развијен од стране МИТ Медиа Лаб низ цесту, да помогне студенти и деца посебно изразе алгоритхмицалли-- на неки начин више у складу са оним бисмо могли назвати израчунавања размишљање. И то је корисно језика, јер врло брзо следеће недеље у недељу једном, ми транзиција ка више традиционална и волшебни језик назван Ц, што је чисто текстуални. Користите само тастатуру у Да би писати упутства као ово на екрану. Али чак и ако никада нисте видели програмски језик пре, у само гледајући у ово, све се то загонетан, што вероватно можете погодити да Вероватно штампа Здраво свете. Али има много синтаксни изнад тамо. Постоји чудна хеш симбол или хасх тагом горе. Ту је угаоне заграде, неки заграде, цурли протеза, полу-цолон-- има само толико визуелни синтакса да стане на пут. Почињемо курса са Сцратцх како би добили поред свих оних који су интелектуално незанимљиве ометања, и уместо тога се фокусирају на идејама. Заправо, ово може бити раније. Ово, за то, недељу ће бити после. Ово, у ово графички језика Огреби, како би спровести исте програм-- програм који када ради, једноставно каже здраво свет. А шта је лепо у вези са Огреби је да је ово графичко програмирање окружење које користи делове слагалице или блокови, да само повезују заједно да ли има логично да то учине. И са Сцратцх може да развијете анимације и интерактивне игре и уметности, и било који број ствари које можете да замислите у свом уму, и имплементирати их просто превлачењем и отпуштањем слагалице. И заиста, ми ћемо имати могућност да изразе неке од истих идеја да сам поменуо тренутак пре у контексту Мике Смитх и тражи ствари телефон боок-- као функција, само акције, ствари попут петље да раде изнова ствари, варијабле, што је нешто ћемо представити, али то је познато можда од алгебра-- само нека врста плацехолдер за чување неку вредност коју може да треба латер-- Боолеан изразе, где они да не или истина лажни питања од раније. Услови су они виљушке ин тхе Роад- те гране да се тако изразим. А онда постоје неки љубитељ карактеристике ћемо видети чак и данас, под називом низови и теме и догађаја, да ћемо онда поново преко време на различитим језицима. Али нас Огреби дозвољава да истражи све ово. Дакле, у Сцратцх, ово љубичаста блок је оно функција је типично ће изгледати. Ова љубичаста слагалице да има неке Реч као рецимо, која је радња, а онда можда имају Аргумент или параметер-- неки начин од врсте прилагођавање шта је блок ради тако да то није унапред одређена МИТ-шта каже љубичасте блок. У ствари, видећете ин а тренутак да сам у стању да куцате ријечи попут Хелло Ворлд, или здраво Дејвид, или здраво Замаила, или шта год хоћу, у аргументу у том слагалице пиеце-- белу кутију тамо. У међувремену, ако желим петље, ми ћемо видим да има делове слагалице да изгледа мало наранџасто овако. И њихов облик некако сугерише да нешто опет и опет деси у циклусу. Дакле, ако сам Вежи Саи Хелло светски блок са заувек блокирати у Сцратцх, то је само Наставићу да говорим здраво свет заувек, буквално. У међувремену, ту је још један тип петље у Сцратцх да ћемо видим-- понављање блоцк-- где, ако вас унапред знати колико пута желите да петља извршити коначан број пута у вас фацт-- може навести да уписивањем у великом броју или чак укључивања у променљивој, као Кс или И као што ћемо видети. У ствари, варијабле као И у овом случају, који је заједнички назив за цео варијабла која складишти и нумбер-- цео број може бити, да користите ову наранџасти блок овде у поставити променљиву као да сам на нулу. Ево примера у зеленој оф а Боолеан израз у Сцратцх. Иако је ово изгледа као математика формула, математике неједнакости лике тхис стварно су Боолеан изрази. То је било тачно или нетачно. И је мање од 50. Или да или не одговор или тачно или нетачно одговор. И ми ћемо уопште назвати те Боолеан изрази. И то не мора да буде 50. То може бити мањи од к и, већи од и, једнако и-- било који број других питања могу бити постављена. Сада, на први поглед, ово може изгледати изненада прилично смео овде, и то је то. Али концепт мудар, то је прилично познато од раније. Ако је к мање од и, него реци колико. Друго, ако је к веће од и, онда рећи колико. Друго рећи к је једнако и. Тако имамо пример тамо треће сценарио-- једино трећа поссибилити-- к је или веће од, мање од или једнака. Дакле, имамо три начин Форк ин тхе Роад. А погледајте шта је кул овде-- Огреби, чини се, има само једну слагалицу комад, у овом случају, у другом блоку ако. Па ипак, то се чини да те имплицира да има само два начин Форк ин тхе Роад. Можете ићи лево или десно, али шта је са трећег сценарија? Шта ако је к једнако и? Ништа страшно. Узмите један слагалицу комад, пут још један унутар ње да се створи семантички еквивалент од ако, иф, елсе-- и сада вас има свој начин три Форк ин тхе Роад. И као што ћемо видети, Сцратцх пуззле пиецес може да буде и расту, тако као да напуним више ствари у њима. Не морате да се уклопе све у подразумевану величину. То је нешто што ћемо ускоро се назива низ. То је као лист-- неки начин складиштење неколико различитих информација у променљивој, не само број. То ћемо видети представника нешто што се зове мулти-тхреадинг. У ствари, све своје Мац и ПЦ ових дана подржава мулти-тхреадинг, што значи да се буквално до више ствари одједном. Можете имати Мицрософт Ворд Уп ин тхе предњи, ради на неком есеју. Можда имате бровсер у отвору позадини Г-маил или Фацебоок или слично. Рачунар може да уради више ствари данас јер је мулти-тхреадинг, и програми су у у Посебно су мулти-тхреадинг. Постоје ствари називају догађаји као добро у свету Сцратцх, а онда је превише, да би наши обичај пуззле пиецес ако ствари заправо не постоје унапред. Дакле, хајде да то базира на следећи начин. Пре неколико година, када сам први открио Сцратцх, када сам заправо био студент на МИТ, ми сами су имали задатак да домаћи. И имплементед-- који, у ретроспективи, је био веома лошу одлуку, јер је то највише разјарујући песма на свету да слушају осам сати радећи на хомеворк-- али нешто што сам назвао Оскар време, што је можда познато песма. ЦС50с поседују Јордан Хаиасхи, један од наши још виши чланова особља, га је унапређен за 2015. годину и сада 2016, од назад у дан, Имао сам све само иде у Осцар отпатке. Сада подржавамо рециклирања и компостирања. Али да наслика слику шта можемо да урадимо овде и да мотивише неке од примери нижем нивоу, можемо добити један други волонтер само да дођу на горе и плаи ми фирст домаћи задатак икада? Хајде горе. Како се зовеш? Хенри: Хенри. Давид Малан: Хенри, хајде горе. Хајде горе. Главу на било који начин, и видећете у тренутку, Ја идем напред и ударио зелена застава у горњем десном руком угао, што значи ићи. Знак икона мало станица ће рећи стоп, а то је када почнете и зауставити програм. Драго ми је да смо се упознали. У реду. Па ћемо видети упутства на екрану само тренутак. И само играјући ову игру за неколико сецондс-- ми веровати, нећемо хтети да игра скроз до енд-- мало сутра добити осећај који програм ради. И више него само фокусирати на Хенри добра или лоша у овој игри, фокуса и како је било имплементиран од мене првобитно а затим Јордана. Другим речима, где су варијабле? Где су петље? Где су функције? Па да видимо ако не видимо оне испод хаубе. Само кликните и превуците смеће на одговарајући бин. [Мусиц плаиинг] У реду. То је врло добро. Зашто не бисмо га зауставимо тамо. Хвала вам. Честитке Хенри. Хвала вам. [Апплаусе] Само замислите отклањање грешака тог програма. Ако постоји проблем два минут сонг-- али тако шта се дешава овде стварно? Као компликовано колико се може почети да изгледа да се током времена, заиста више ствари почеле да падају, оно што је занимљиво у вези са ова врста екампле-- па ћемо видети неколико Остали-- је да ако погледати поред сложености или софистицираност игре, ту је врло једноставна зграда блокови који плаи-- све који, ако их дестилирати онима градивни блокови, су веома доступни и имплементирати за себе. На пример, то је било неко време, али ја сам прилично сигуран шта сам у почетку учинио када што ову игру први пут Био сам потпуно као процрастинатед. Нисам фокусирати на све на логика или пуззле пиецес, фокусиран сам на графику и налаза улица порука и канта за смеће и све то. Али они су неопходан састојци у почетку. И када сам завршио одуговлачење и полагање кроз ширег оквира, Одлучио сам, само да направим један ђубре пада са неба. Па да видимо Сцратцх подржава ствари које се зову спритес-- карактера који се имају различите костиме на тако да изгледају другачије. Па сам ставио ђубре костим на једном таквом вилењак. И управо је то било потребно да падне са неба. И тако се испоставило, Огреби, као и већина програмских језика, подржава случајних бројева или технички псеудокоду случајних бројева, тако да повлачењем и падају одређене делове слагалице, Био сам у стању да се смеће долазе са леве стране у почетку. А онда следећи пут је пао, из право и онда од средине. И све је игра није била само има смеће пада са неба. Ниси могао да укаже на то или кликните на њу. Ниси могао да отвори за отпатке. Ниси могао ништа. Али то је био корак беба према мом коначном визији. А после тога, ја у ствари спроводи нека врста Мерни тако да ако ниси клик и вуче по смеће у канте, Осцар Поклопац ће се отварати и затварати. Ништа неће десити у канту за отпатке, али барем би се поклопац отвори и затвори. Па онда провери, корак два од два. И то је оно што ће бити кључ у оба проблема сет нула и у програмирању генерално, да се узми ове веома одредјене поступке за бебе. Јер не само да да дозволите осећају искрено постигнуто много више куицкли-- то је најгора ствар на свету да покуша да спроведе све Осцар Тиме, затим сати касније ударио зелену заставу, и ништа не функционише као што је очекивано јер где си до чак почињу да дебуг или Решавање проблема са тај програм? То је само огромна. И тако заиста прихвата ову идеју поновног узимања степс-- кораке за бебе и изградње Поново: нешто што је, на крају, заиста импресивно и сложен, али У почетку, није ни приближно толико тако. У ствари, хајде да урадимо то. Пусти ме само напред и-- Сцратцх себе постоји на веб страници Сцратцх.МИТ.еду, а ви ћете се каже као много поново у проблему сет нула, спецификација за који је већ на сајту ЦС50 је. Али то је оно што Сцратцх сам по себи. И ту је заправо само три основне области. У горњем левом углу тамо је тзв стаге. Ово је Огреби. Дефаулт костим је мачка. А ово је правоугаоног облика свет у којима можете мове-- горе, доле, лево, Право и неке друге ствари. У средини овде су наши категорија или наше палете од слагалице, и различите боје значи различите ствари. А ако мота около, видећете ствари попут петље и условима и променљиве и други састојци. А онда овде је скрипте област. Ово је место где могу да драг анд дроп те пуззле пиецес да радим ствари. Дакле, хајде да урадимо једну такву ствар. Пусти ме напред и-- и ја знам где је. Па ћу одмах кликните на где Знам да је спреман да се, али показује и кликом и гурају око су неизбежне. Дакле, када зелена застава кликне, шта желим да радим? Ја ћу да урадим ово. Ја ћу ја ту пурпле слагалицу комад, поздрави за две секунде, и пусти ме увећали. И ја ћу да се то промени да будем оно што желим да бити-- Хелло Ворлд за две секунде је у реду. Сада ћу да кликнете на зелена застава, или ако стварно желим, Ја пуно да га екран и онда се врати. То ће само настави све у једном прозору. Греен флаг-- здраво свет. У реду. Није све то занимљиво. Па пусти ме само напред и уради то. Пусти ме да пробам још један. Када зелена застава цлицкед-- да пустимо до нешто као звук. И приметио да је од кутија за бесплатно добијате мачка звук, као што је стандардна спрајт. Дакле, сада пусти ме напред и хит зелену заставу сада. [МЕОВИНГ] Ав. То је супер. Ја програмирање. Дакле, шта сам урадио? Ово је еквивалент програма. Очигледно је супер једноставна. То није стварно узео све то много напор и МИТ урадио највећи део посла, али сам назвао функција. Ја сам користио функцију. Направио сам неку акцију, користећи само да је један љубичаста слагалице. Па, ако желим да урадим три меовс за редом? Пусти ме напред и до два и три. И приметио да када вас ховер близу слагалицу комад, Изгледа мало бела линија врста магнетски, и она ће снап заједно кад пустиш. Да видимо шта се овде дешава. [МЕОВИНГ] Тамо је буба. Чујем само један мијау. Зашто би то могао бити? Да? Да. Ми заправо не чујем, али то је добро интуиција. Они сви се играју у исто време. Зашто? Па, рачунар се тек тако да уради оно што му реци да уради. Дакле, ако кажете, игра звук, репродукцију звука, репродукцију звука, али га не рећи да игра до завршите, играју док не завршите, да ће експлодирати кроз програм заиста брзо и да само оно што му реци да уради. Тако да сада треба поправити ово неколико начина. Ја сам могао да урадим ово, ријеши се. Пусти ме да пробам овај други слагалицу пиеце-- плаи Соунд Меов до учињено, а затим превуците три ови и кликните на Плаи. [МЕОВИНГ] То није баш вери-- хвала ти-- врло природно. Па зашто не и-- дозволити ме за контролу овде. Леп. Само секунд, а сада пусти ме да се вратим звукова и репродуковање аудио до учињено, и онда дај да један секунд. И онда пусти ме да га добијем више звук, и идемо. [МЕОВИНГ] Мало више природно, али ово није веома ефикасан. Као што сам је досадно, сви бити то кратко, кликните напред и назад и заиста умножавање свог послу-- прилично копирање и лепљење. Заиста, ако Цонтрол кликнули или десно кликне, Могао сам само копирати и. Шта би било боље изградити за коришћење? Каква идеја од раније? Да, тако да петља. И у ствари, ако се боцкају око, можемо наћи управо то. Пусти ме да догађаји, односно контролу. Па Понављам да не желим да то буде 10 пута. То ће се неугодно брзо. Али ћу поновити три пута. Да се ​​вратим на звук и плаи звук док не буде готово. Да се ​​вратим на Цонтрол и само секунду. И обавештење, да би могао Мислим да не уклапа, али опет ако магнетски га пустити талас у месту, она ће порасти на попунити. Шта се сада игра? [МЕОВИНГ] ОК. Леп. И то је оно што би се могло назвати програм који је такође тачно. То меовед три пута прилично наравно, али то је боље дизајниран. Ја сам користећи мање технолошки вишак. Нисам копирате ништа. Ја сам користио бољу идеју. Сада, то још није све Интересантно са Огреби не ради ништа. Дакле, хајде да урадимо нешто друго уместо тога. Хајде да урадимо нешто заувек. И знаш шта? Кретање изгледа занимљиво. Хајде да га померите 10 кораци и ударио плаи сада. ОК. Па можемо некако драг га назад, а он је и даље ради зато што је то заувек ради. Дакле, петља се ради шта то говори да уради, али то није све то интересантно. Урадимо то. Да додам контролу блока, и користити једну тих услова за први пут. Тако да ће да се креће 10 степс-- 10 тачака, 10 пиксела на сцреен-- онда ће да поставим ово питање. Ако је нешто истина, онда нешто у том блоку. Тако испада очитавање има целину гомила Боолеан екпрессионс-- питања Тхе Иес нема или истина лажна форм-- пусти ме да радим ово. Ако тоуцхинг-- а ту је овај мали падајући мени. Могу да параметеризе. Ако додирује едге-- хајдемо тако нешто. Дакле, ако додирује едге-- да се вратимо у покрету. А зашто не бисмо само окренем за 180 степени? У реду. Тако заувек, помери 10 корака. Ако додирује ивица, окрените за 180 степени. И то није крај програма јер сте у заувек блок, тако да ће поново и опет и опет и опет. Да видимо шта се дешава. ОК. Мало луд, али некако цоол. И можемо додати да ово неке глупе ствари да нису толико интелектуално Занимљиво. Али, ако смо погодили ово мало микрофон буттон-- јао. Пусти ме да почистим ово. Пусти ме да побољша ово као они би рекли на ТВ-у. Покупи то, Сачувај, и сада иду до сценарија. А сада, пусти ме да звучи. Дозволите ми да му дати име. Ја ћу назвати Јао. И сада играју звука Јао. Приметити да се појави у мало падајући мени. Хајде да видимо. [ОУЦХ] [Лаугхинг] Али можемо да променимо Т ​​његову у ходу. Можемо бити дупло досадан. [ОУЦХ] Или ако га се као 1.000 корака ат а једном-- ОК. Па ћемо оставити да на миру. Дакле, опет, изградња блоцкс-- И почела са нечим Супер Симпле, а онда додао функцију, додао функцију, додао функцију. И не треба да бринете о како је прва од тих особитости је реализован као што сам и даље у слоја ствари на врху. Дакле, у ствари, пусти ме да један другог овде. Пусти ме напред и отвори датотеку која Донео сам унапред, под називом Схееп. Тако да је мало другачија карактер да изгледа овако. И да видим да не могу учини нешто користећи цоунтер У овом цасе-- такозвану променљиву. Ја идем напред и под Евентс-- Дај ми зелена застава кликне. Онда ме пусти да подаци који знам од само игра око раније, је место где су променљиве. И ја идем напред и превуците ово. Дакле, променљива цоунтер, и Ја ћу да га иницијализирати на нулу. Могу да га назвати било шта Кс или И или з-- али у програмирању, позива нешто у семантички користан начин, као што цоунтер, која описује шта је то, то је Много касније лакше читати ваш код. Пусти ме само напред и да А Форевер блокирати овде. И пусти ме на изгледу страна и уради Саи блок. Али оно што је кул у вези варијабли је сам не морају да само укуцајте у нечему као здраво свет, који смо већ урађено, ја већ могу ићи у Подаци и ја моју променљиве, па чак и мада је облик не баш изгледају као да треба да одговара, она ће расти за попуњавање. И ја ћу само рећи бројач за један секунду-- споилер-- он ће рачунати. Ми ћемо то рећи за једну секунду. Онда ћу да одем и да га чекати једне секунде, тако да не рачуна се пребрзо. И онда на крају, променити цоунтер од Један-- у другим речима, повећавати цоунтер по један додатна вредност и ово заувек. Дакле, овце такође, као да је програмер, броји од 0. А ако чекамо довољно дуго, Он ће заувек учинити. Али то није баш тачно, јер у ствари, као што ћемо открити у недељу једном, цели бројеви и рачунаре генерално, Технички има само фините-- добро, пре компјутера, када они представљају целе бројеве, само да коначан број бита. Ти сијалице тамо могу само рачунати тако високо пре него што си ван сијалица. И компјутер такође, има само толико меморије, има само толико транзистора, тако да само могу да рачунају тако високо. Тако испада да је оваца, Мислим, могу рачунати на 2 милијарде или нешто прилично велико. Дакле, нећемо да чекати да се то догоди. Али на крају неки буба ће се десити да могу имати неке врло стварни свет последице. Међутим, осим оваца, који само уводи променљиву. Идемо напред и отвори нешто сам унапред овде назива Пет тхе Цат-- Пет мачку овде. И приметио овде је мало блокови, али када зелена застава кликнули, заувек на следећи начин. Ако додирује миша поинтер-- тако курсор на екрану, арров-- игра Соунд Меов и онда чекати две секунде. И само ово заувек. Само стално чекати да видимо да ли је поинтер-- ако је мачка додирује показивач. Па сам ударио игру. Ништа се не дешава. Али као што сам померате курсор преко мачку, [МЕОВИНГ] И ако га удаљити, не мази мачку више. Тако да су неки условно логика смештен унутар једне петље. Како о овом примеру, намерно назива Не Пет тхе Цат? Шта је то да уради? [МЕОВИНГ] Зашто би требало да не мазе мачку? [МЕОВИНГ] ОК. Дакле, ово је пример ако друго. То је одлука тачка и јер седи у петљи, обоје су узимајући провери. Да ли је ово истина? Да ли је ово истина? Да ли је ово истина? Да ли је ово истина? И на крају, један од они ће се примењивати и тако чујете или да меов или хук лава у том случају. Па, хајде да мало више фенси један да сам унапред најбоље урадио-- тема. Дакле, тема је само један Оно што рачунар може да уради. Дакле, мулти-навојем програм је програм који мозе да ради више ствари одједном. И сви ови примери до сада су имали само један сценарио, тако да спеак-- један програм овако овде. Али приметите овај програм два духови, два лика. Једна је птица. Једна је мачка. И приметио када сам кликните на ово доле лево, сваки од њих има своје скрипте или програми у вези са њима. И оба су програми, обавештење, почетак с када зелену заставу цлицкед-- Хајде да погледамо цат-- када зелена застава кликне. И тако заиста, када сам ударио плаи сада, Две ствари ће се десити одједном. Мачка и птица су и да раде истовремено да креирате овај ефекат. И можете да замислите шта се дешава. Постоји круг и птица и мачка су у петљи. Птица је само здрав као Био сам раније када сам рекао јао. Али мачка јасно има предност. Постоји још једна очитавање блок који указује мачку намерно на птице у овом случају овде. Тако да смо могли да задиркују осим, ​​гледајући кроз те блокове, шта се дешава. Међутим, кључни састојак овде је једна. Птица, тако да је ова игра није потпуно боринг-- или ово аниматион-- почиње у насумичном правцу. А рачунар је брање број између 90 и 180 суштини, тако да је мало различити анимација сваки пут. И онда приметити овде, ако мачка додирује птицу, онда плаи лава четири звуке праска. У међувремену у птица је палета, имамо ово. Заувек, ако не додирује мачку, само настави да се креће три корака. А онда ту је још једна загонетка комад. Ако сте на ивици, боунце. Дакле, птица је само мало гледала своја посла, само лети около и поскакује, а то је заиста мачка који је имао условну логику да се утврди да ли је ухватио птицу. У реду. Дакле, хајде да урадимо једну другу овде, ово се зове Здраво Хи. А овај овде само ради ово у заувек петљи. Али нотице-- Како да прекинемо ово смета програму? Погодио пречку простора. Јер ако то урадим, лева рука програм-- приметити да је стално је листенинг-- је кључ простор штампа. Ако је размак притисне, и ако је тако, шта он ради? То се веома чест технику. Поставља променљиве једнака неке вредности. Али то се мења ту вредност. [? Тако изглед?] на основу схапе-- И имају променљиву коју сам написао унапред зове Искључен, што само говори да или не. Да ли је звук искључен или не? Тачно или нетачно? И обавештење, ја кажем ово-- ако искључен је нула, а затим промените једну, друго сет нем је на нулу. Дакле, само флип вредност од нула до један. Могао сам доне-- променити од два до три и три на два или четири до пет или четири до шест. Али није битно које бројеве користим, све док стално мења га супротно. И скоро било који програмер би само изабрати нула и једног-- лажно и истинито, офф и ајде-- да представља ово. А ово још увек ради. Ако сам поново погодио пречку спаце [СЕАЛ СОУНДС] Програм још увек ради. Зато што је ово други сценарио да каже, заувек урадите следеће. Ако је искључен променљива једнака зеро-- па ако није искључен је логиц-- ако је лажна или не, онда играти звук, јер ти ниси искључен. Требало би да играју звук и онда Мислим хи хи хи за две секунде и онда чекати, и уради то опет и опет и опет. Па на тај начин да имамо пут људи да-- за програме за интеракцију. И они не морају да да се као датум као и други. У ствари, боде ароунд-- не игра речи интендед-- неко провео велику количину Време на интернету за имплементацију ПокемонГо у Сцратцх. Чак вам геолоцатес у Кембриџ или Аллстон овде. Дакле, ако желите да видим шта људи може да уради је ово-- врло фенси мени. Кликните овде. Ово ми је са мојим стрелицама сада. Ја идем после овога. Кликните. А сада кликнете на покебалл. Мислим, мислим да си треба да кликнете на покебалл. У реду. Па сам то урадио. Могу да идем тамо. А та особа реализује још мало ПокеБаллс преко овдје-- три ПокеБаллс. Ми ћемо поставите линк на овај мрежи тако да можете играти. Али обавештење постоји само неки основни блокови. Изгледа много одгајивач, и то је то. Ово је импресивна и више него што би обично очекују, сигурно за проблем сет нула. Немам појма колико дуго ова особа провела на мрежи. Али то је све само петља. Ту је звук за игру. Постоји нека врста петље слушање за ли сам ударање стрелицу нагоре или надоле арров или лева и десна, а онда ако је тако, креће се то неки број пиксела. А онда када кликнем на други дух, ту је нека ако стање тамо. Да, ово постаје сувише јака. Ми ћемо зауставити. То је све те основне градивне блокове. Не постоје други састојци остали од оних које смо погледали већ. А ипак, ево, пусти ме да један завршни низ примера која приказује слику сувише шта можете учинити овде. Овде је веома једноставан програм који Само ради ово-- кашаљ, кашаљ, кашаљ. И само на основу које ми смо гледали до сада, где је очигледно прилика за побољшање. Овај програм је исправно. То кашаљ три пута, што је оно што сам намеравао. Али то је слабо спроводи. То је лоше осмишљен. Зашто? Да. То није петља. И то није толико да то није петља, то је да постоји много технолошких вишкова. Ту се копира и залепио код, да тако кажем. И раствор вероватно заиста је петља. Па пусти ме само напред и побољшати на то. И ја ћу ја то овде. Пусти ме напред и да се понови блок, промени на три. Идем да бацим неке од тих блокова. И приметићете да је прилично једноставно. Ти драг анд дроп и ствари појављују и нестају на крају. И само да ја то овде, и сада имам чистији верзију даље. Али, знате шта? Ту је ово прилика сада абстрацтион-- да почне да дефинише нови вокабулар да МИТ-није предвидео. Ту је чекати и поновите и заувек и ако, али шта ако желим да представим реч кашаљ као блок? Шта ако желим Пуззле Пиеце чија је сврха у животу је да кашље? Па, хајде да погледамо ову верзију овде, што направио сам како следи. Магично, Ја сам створио ово слагалица комад овде, који Огреби вам омогућава да урадите. И заиста, Ц и Питхон и ЈаваСцрипт су ће дозволити да то тако добро. Можете креирати свој цустом комада да зовете оно што желите. У овом случају, кашаљ осећа као разумна дефиниција. И онда са овим радовима доле овде можете дефинисати шта то значи. Ја вукли и пао са ово палета овде- више блоцкс-- ова велика љубичаста блок, где сам откуцао у кашља као име мог новог слагалица. И онда ја кажем сваки пут када корисник назива овај нови кашаљ пуззле комад, до право гласа и чекати. И тако овде у мом поновљеним блоку, Ја само могу да кашљем три пута. И ја бих, а посебно ако сада сакрити овај детаљ. Кога је брига како се спроводи кашаљ? Све ми је стало, као програмер који могу да кашљем. Не занима ме како кажу спроводи. Само ми је стало да мачка може нешто рећи. Не могу апстрактно далеко тај детаљ и само се фокусирају на оно што је на екрану овде. Али ја могу да искористим ову један корак даље. Приметити да овде, имам имплементира петља три пута. Али шта ако уместо тога сам узео ову верзију? А шта ако уместо тога у овој верзији овде, Само мењам пуззле комад да аргумент и улаз за себе? И да улаз може бити број као три. Тако да сада, ако пишем програм и желим мачка кашљати, Могу да заправо рећи слагалицу пиеце колико пута да кашљу, јер на дну овде, одгајивач верзија ових обичај слагалице летс ми навести да кашаљ заиста потребно инпут-- заузима аргумент овако. И знаш шта? Можда сам схватио, чекај мало. Кашаљ је саме-- то је у основи иста идеја као и кијање. То је само другачији Реч на екрану. Ја могу апстрактно далеко даље и имплементирати ово коначна верзија кашаљ, који на први поглед је начин сложенији гледа. Али погледајте шта сам урадио. Сада имам генерализед-- генерицизед стварно-- ову слагалицу комад да се зове рећи реч н пута. И сада имам два нова делове слагалице овде дефинисати кашаљ н пута. И шта је функција кашаљ уради? Шта сам обичај слагалица комад урадио? Само назива рецимо блок, пролази речи желим да кажем, пролазећи броја пута хоћу да кажем. Јер сада могу имплементирати кијајте једноставно говорећи Ацхоо, у овом случају, одређени број пута. И тако сам ја слојеви и слојеви. И опет, кључ овде није како сам га спроводи, али је чињеница да ако сам буквално мове то са екрана, погледај како је једноставно ако не Прилично је мој програм сада изгледа. Јер ради оно што каже, сам захваћене далеко шта је у тој црној кутији. се дешава да је љубичаста кутија овде, али сам ометен далеко шта је унутра јер не занима ме како се то ради. Само ми је стало сада да ради. И заиста, у проблему сет нула, то је тачно врста раслојавања идеја ти ћеш имају прилику да истраже. То је управо прилика да се примењују технике решавања проблема, на шта је вероватно непознатом окружењу. И да ли сте није програмиран пре или програмирана пре, видећете да постоји нешто мало у овој средини за све. И са проблемом сет један у року од недељу дана, ми ћемо бити пребачен на фокусирање на вишем нивоу језика под називом Ц-- односно нижи језика ниво зове Ц-- да је још моћан, иако је то мало више загонетан на први поглед. И схватићете по данашњем ТЛ: ДР, да се овај проблем сет има краћи прозор времена него будућих, једноставно јер треба наћи прилично приступачан. И да се не брине ако додате класа касно. Ми ћемо обратити да убрзо. И пре него што завршимо за торте, хајдемо завршити са само два минута изглед на шта вас чека овде у ЦС50. [Мусиц плаиинг] У реду. То је то за ЦС50. Ми ћемо се ускоро видети. Колач сада служи. [Мусиц плаиинг] Звучник 17: Да ли сте чули на одмору, шеф? СПЕАКЕР 18: Можда постоји више испод хаубе.