DAVID Малання: Сардэчна запрашаем, усё. Так учора, вы памятаеце, што мы засяродзіліся на гэтыя тэмы тут. Такім чынам, мы мелі чатыры ўсёабдымныя topics-- канфідэнцыяльнасць, бяспека і грамадства; інтэрнэт-тэхналогіі; хмарных вылічэнняў; і ў канчатковым рахунку, вэб-распрацоўкі. Хто-небудзь ёсць прапускная здольнасць або час каб паглядзець трохі Джона Олівер мінулай ноччу? Гэта на самай справе даволі пацешна, калі не трохі палохае. Любыя пытанні па чым мы зрабілі ўчора? Любыя тлумачэнні? Любыя пытанні, якія вы хочаце зрабіць што мы закранем сёння ў той ці іншай форме? Так з чыстага ліста. Так што на парадку дня на сённяшні дзень? Так што я думаў, што мы пачнем сёння з поглядам на тое, што ў цэлым вядомы як вылічальнай thinking-- ў рызыка спрашчаю, мыслення як кампутар, можа быць, думаць, як інжынер, і спрабуе пачаць арганізаваць свае думкі ці даць вам лепш зразумець, што ўцягнута ў фактычна камандуе кампутар, каб зрабіць што-то шляхам праграмавання. І мы будзем трымаць яго ў даволі высокі ўзровень, у значнай ступені англійская, але паспрабаваць выкарыстоўваць знаёмых прыклады фармалізацыі, як вы б ісці аб вырашэнні праблем. І мы вернемся трохі CS тэмы, як абстракцыі, які прыдумаў пару раз учора, алгарытмы, а затым ўяўленне. І вось, калі мы пачнем Сёння ў імгненне. Тады мы паглядзім на праграмаванне. Мы будзем глядзець на некаторыя асноўныя канструкцыі з якімі вы можаце быць знаёмыя і, магчыма, нават знайсці цалкам інтуітыўна. Мы будзем глядзець, на самай справе, пры праграмаванні ўзору асяроддзе, якое вельмі даступная, вельмі гуллівая, і сапраўды арыентаваны для асоб да 12 гадоў і старэй. Мы правядзем некалькі хвілін там а затым ўзяць рэчы на ​​больш нізкі ўзровень а на самай справе казаць пра некаторыя алгарытмы і структуры дадзеных, так бы мовіць, што праграмісты звычайна выкарыстоўваюць для вырашэння праблем значна больш эфектыўна, чым вы маглі б быць у стане абысціся без іх наогул. Затым, пасля абеду, мы будзем глядзець ў тэхналагічных стэкаў, які толькі мудрагелісты спосаб сказаць калекцыі тэхналогій што вы маглі б выкарыстоўваць для вырашыць некаторыя праблемы. І мы будзем казаць пра алфавіце суп з моў, якія існуюць раз сёння Java і Python і C ++ і PHP і Лал і ўсякія іншыя рэчы. Мы будзем глядзець на кароткі час ў шаблоны праектавання. Праграмісты, з цягам часу, прынятыя метадалогіі якія, як правіла, каб дапамагчы ім вырашаць праблемы з большай гатоўнасцю. Калі вы пачынаеце бачыць сябе пісаць такой жа код зноў і зноў, людзі фармалізаваць гэтыя паўторы і імёны прыпісваць да іх а затым выкарыстоўваць іх і прасоўваць іх, у канчатковым рахунку. І мы будзем казаць крыху аб мабільных стратэгій, як тое, што гэта значыць на самай справе зрабіць мабільнае прыкладанне або мабільны сайт. Вы робіце гэта для Android? Вы робіце гэта для прашыўкай? Вы робіце гэта для абодвух з іх? А якія кампрамісы? І, нарэшце, мы возьмем вэб-праграмаванне знешні выгляд, які з'яўляецца зборным тэрмінам сапраўды апісваючы любы час Вы пішаце праграмнае забеспячэнне, што гэта прызначаныя для запуску ў Інтэрнэце, няхай гэта будзе тэлефоны або настольныя кампутары або наўтбукі. Мы коратка разгледзім на баз дадзеных і дызайн у ім, калі толькі таму, што практычна любы цікава вэб-дадатак у гэтыя дні мае нейкі базы дадзеных. У адваротным выпадку, ён бы проста статычны кантэнт. І база дадзеных дазваляе зрабіць змены з цягам часу, ці то самі або ад карыстальнікаў. І мы разгледзім, як вы будзе ісці аб распрацоўцы што базы дадзеных і свайго роду жаргон якія могуць паўстаць у інжынера абмеркаванне на белай дошцы калі на самай справе рэалізацыі прыкладанне ў першы раз. Мы коратка пагаворым аб API, карысныя сэрвісы што вы можаце выкарыстоўваць, каб стаяць на плечы іншых, няхай гэта будзе кампаніі або асобных асоб, і вырашыць вашыя ўласныя праблемы больш хутка. І тады мы будзем боўтацца, магчыма, трохі з JavaScript, мова праграмавання, які выкарыстоўваецца як у браўзэрах ў гэтыя дні, але і ў серверах. І, магчыма, мы будзем вярнуцца, калі дазволіць час, некаторыя з рук-на вэб-матэрыял, які мы зрабіў учора і інтэграваць два разам, перш чым мы зачыню. Так што з that-- што ahead-- з'яўляецца Ёсць што-небудзь, што не хапае вам хацеў бы, каб пераканацца, што мы ўводзім і закрануць у некаторай кропцы. Калі гэта прыходзіць на розум, давесці яго да таго доўга. Але чаму б нам не пачаць з глядзець на вылічальнай мыслення. І дазвольце мне выказаць здагадку, што вылічальная мысленне, зноў жа, свайго роду апісання высокага ўзроўню якой навуковец мог бы зрабіць. І на самай справе, давайце пачнем з трыма кампанентамі, якія можа перайсці ў вылічальнай мыслення. Гэта толькі адзін з спосабаў яе апісання. Мы маглі б, вядома, вызначыць гэта ў любым ліку шляхоў. Але дазвольце мне прапанаваць, дзеля сённяшняга дня, што праблемы ў свеце, усе праблемы ў свеце, калі я дайшоў навуковец мог можна разглядаць як тое, што мы будзем выклікаў уваходаў, якія трэба надакучае ў тое, што мы будзем называць алгарытмы, якія затым даюць вынікі. Іншымі словамі, усе Свет вырашэння праблем я патрабую могуць быць перапрацаваныя ў гэтыя тры кампаненты. Дык што ж я маю на ўвазе ўваходы? Ўваходы гэта толькі тое, што вы перадаў для вырашэння. Напрыклад, вось старая школа праблема. Калі ў мяне ёсць кніга тэлефона тут і Я хачу паглядзець што-то ў яго, гэта мой ўваход. У мяне ёсць 1000 або так старонак у тэлефоннай кнізе. Гэта ўваход да маёй праблеме. І я хачу, каб знайсці што-то як Майк Сміт, так што сябар чыё імя і нумар спадзяюся, у гэтай адраснай кнізе. Гэта да дзён клеткі тэлефоны, так што я не магу проста шукаць. Так што я павінен зрабіць гэта стары школы і на самай справе пошук гэтыя ўваходы для нейкі адказ. І гэты адказ проста будзе называцца выхад. Такім чынам, уваход тэлефоннай кнігі. Алгарытм любы набор крокі я выкарыстоўваю, каб знайсці Майка Сміта. А выхад, як мы спадзяемся, нумар тэлефона Майка Сміта. І гэта тады было б проста прадстаўнік большасці любой задачы каб з вамі ўручаюцца ўваходы і хочуць вырабляць выхады. Таму, перш чым мы разгледзім працэс з дапамогай якога мы можам вырашыць гэтую праблему, знайсці Mike Smith і нешта падобнае, давайце разгледзім першы і на last-- ўваходы і выхады. Фізічна, вядома, уваход тут гэта цэлая куча паперы злепленыя ў выглядзе тэлефоннай кнігі. Але кампутары, ноўтбукі з course-- і настольныя кампутары і нават тэлефоны гэтыя days-- тыя электронныя прылады. І ў рэшце рэшт, што адзіны ўваход на кампутар? Ну, гэта нешта накшталт гэты шнур тут. Я падключыць яго да сцяны, і Я атрымліваю паток электронаў, які дазваляе запускаць машыну. Ці, можа быць, гэтыя электроны створаны шляхам маёй батарэі. Але ў рэшце рэшт, гэта адзінае, што адбываецца ў маім ноўтбуку. І так шмат цікавага матэрыял у канчатковым рахунку, выходзіць, няхай гэта будзе з дапамогай прынтэра або экран або audially ці таму падобнае. Так што, калі ўсё, што мы маем, як нашы фундаментальны ўвод у кампутар электрычнасць, так што проста электроны збіраюцца ў і ці па-за, і так як мы можам выкарыстоўваць гэты ўваход на самай справе ўяўляюць інфармацыю? Іншымі словамі, як мы атрымліваем ад простага патоку электрычнасці да прадстаўленні фактычнай лічбы ці літары, фактычныя або фактычныя малюнка на экране або фактычныя фільмы або па электроннай пошце або любую колькасць з іх больш высокія паняцці ўзроўню, калі вы будзеце, што на канец дня неяк павінны захоўвацца ў гэтым электроннае механічнае прылада выкарыстоўваючы толькі тыя простыя ingredients-- электроны паступаюць і па-за домам? Так што, здавалася б, што, у найпростай форме, адзіны від дзяржаў У мяне ёсць у маім свеце, таму каб speak-- ўмовы ў маім world-- альбо У мяне ёсць электроны цячэ, электрычнасць цячэ, ці я раблю не-- гэтак далей, оф. І давайце фармалізаваць і выключацца, як навуковец мог бы, толькі з 1 і 0. Давайце проста апісаць некаторыя адвольныя але ў адпаведнасці з ім нумар. 1 азначае, што на 0 азначае выключэнне. Ці вы маглі б таксама разглядаць гэта як сапраўдныя сродкі на ілжывыя і сродкі. Вы таксама можаце зрабіць чорны і белага або чырвонага і сіняга колераў. Вам проста трэба два дэскрыптара. І кампутар б навукоўцы як правіла, проста выкарыстоўваць 0 і 1. Так што, калі гэта так, мой адзіны алфавіт з'яўляецца які складаецца з 0 і 1, то як я мог дабрацца да нават лік 2 у кампутары, не кажучы ўжо нумар 3 ці літара алфавіту ці малюнак або фільм? Як мы свайго роду пачатковую загрузку мы самі ад гэтага асноўнага прынцыпу ад 0 і 1 і фактычна ўяўляюць сабой нешта больш цікавае? Што ж, давайце паставім гэтае пытанне на ўтрыманне на імгненне і разгледзець нешта спадзяюся, знаёмыя, нават калі вы на самой справе не думаў пра яна ў дэталях 10, 20, 30, 40, 50 больш гадоў. Гэта што? Як бы вы вымаўляеце гэтае? Ня хітры пытанне. Шэраг, але што гэта такое? 1, 2, 3, або 123. І мне спадабалася, як вы сказалі, 1, 2, 3, таму што гэта адзін са спосабаў яго прагляду. 1, 2, 3, гэта паслядоўнасць з трох знакаў. Гэта карціны, якія мы зараз ёсць словы для. І калі вы як бы прачытаць іх усё разам, тыповы чалавек на англійскай мове сказаў бы 123. І гэта свайго роду вышэй канцэпцыі ўзроўню, адчувае сябе досыць вялікая колькасць. Але як жа мы туды трапім? Ну, гэта можа быць час, так як Вы думалі пра гэта, як гэта, але яшчэ ў мой дзень, я выгляд даведаўся пра гэта як калоны 1-х, 10-х слупок і 100 Калонка. Так як кажа Lakisa, гэта 1, 2, 3, але гэта таксама 123. Але як жа мы атрымліваем з былы да апошняга? Ну, вы, як правіла, робяць у 100 Калонка, у мяне ёсць 1. Так што гэта, як кажуць у 100 разоў 1. А потым у калонцы 10, я ёсць 2. Так што гэта, як кажуць у 10 разоў 2. У калонцы 1, я ёсць 3. Так што гэта, як кажуць 1 раз 3. І калі я дадам гэтыя рэчы разам, гэта, вядома ж, 100 плюс 10 плюс 3. І пра, вось чаму я атрымліваю гэта больш высокі ўзровень паняцце 123. Гэта толькі асноўныя матэматыцы, у выніку чаго гэтыя сімвалы маюць вагавыя каэфіцыенты да іх, калі вы будзе, ці запаўняльніка значэння слупкоў. І як толькі я памнажаць усе , Я атрымаць гэты нумар. Так як многія з вас ведаюць, як казаць binary-- 0 і 1's-- як кампутар? Добра, здзейсненае, ні адзін, або ніхто з вас не думаю, што вы робіце. Але я б сцвярджаць вас на самай справе гэта ўжо ведаеце. Нам проста трэба наладзіць выгляд наша ментальная мадэль няшмат. Але працэс сапраўды такі ж. Дазвольце мне пакінуць гэты там і замест таго, каб цягнуць гэта ўніз на імгненне. У свеце кампутараў, у нас ёсць толькі 0 і 1-х. І вось рэч, якая збіраецца змяніць тое, што? Ну, у маім чалавечым свеце, дзесятковая сістэма, дец значэнне 10, У мяне ёсць, колькі лічбаў у маім распараджэнні? 10, ці не так? Ад 0 да 9, вядома. І менавіта таму мы маем 10 у названае месца і 100 у названае месца. Дзе гэта прыходзіць? Што ж, гэта 10 да сілы 0. Гэта 10 да сілы 1, 10 да ўлады 2, і гэтак далей. Вы проста трымаць памнажаючы слупкі на 10, пачынаючы з толькі 1 у крайнім правым адзін тут. Так што ў свеце кампутары, калі вы толькі маюць binary-- бі значэнне 2-- або 0 і 1, мы проста сапраўды трэба змяніць падстава гэтай матэматыкі. Такім чынам, іншымі словамі, зараз мы проста ёсць 1 у калонку і the-- дзе гэты going-- слупок 2, у слупок 4, і, магчыма, за яго межамі. Чаму гэта? Ну, гэта 2 0-й ступені. Гэта 2 1. Гэта 2 да 2, і гэтак далей. Такім чынам, у той час як тут, у нас ёсць 1, 10-х, 100, 1000-х, 10 000-х, 100 000, у 1 мільёны, і гэтак далей, тут у нас ёсць 1, 2, 4, 8, 16, 32, 64. Вы проста трымаць множання на 2, замест таго, каб трымаць множання на 10. Так што цяпер, калі мэта ў рука, каб прадставіць колькасці, выкарыстоўваючы толькі 0 і 1-х, давайце разгледзім, як мы атрымліваем там. Гэта, вядома ж, з'яўляецца ўзорам 0 0 0, але які лік канцэптуальна яна ўяўляе? Ну, у 4 разы 0 плюс 2 разы 0 плюс 1 раз 0, давайце дадамо іх разам. 4 разы 0, вядома ж, 0, плюс 2 раз 0, вядома, 0 плюс 1 раз 0 гэта, вядома, 0. Такім чынам, ах, гэта ўяўляе лік, якое мы ведаем, людзі як 0. Ну, а цяпер, давайце вельмі хутка хутка наперад. Калі я замест таго, каб не ўяўляючы 0 0 0, але давайце зробім 1 0 1, якія могуць быць як Lakisa, раней, проста вымавіць яго 1 0 1. Але цяпер, як жа мы возьмем яго да вышэйшага ўзровень чысла мы, людзі маглі б ведаць? Дык што ж гэта лік? Гэта 5, лік, якое мы ведаем як 5. Ну, чаму? Ну, мы можам на самай справе свайго роду прайсці праз яго метадычна 4 разы 1, 2 разы 0, 1 раз 1. Дадайце іх разам, так гэта 4 плюс 0 плюс 1. І гэта, на самой справе, 5. Такім чынам, гэта становіцца трохі стомным прама цяпер робіць арыфметыку зноў і зноў. Але працэс сапраўды такі ж. Адзінае, што мае змянілася ў нашым свеце у тым, што нашы слупкі 1, 2, 4, 8, 16, і гэтак далей, а не 1, 10, 100, 1000. І гэта толькі таму, што наш алфавіт мае скарацілася ад 0 да 9 толькі ад 0 да 1. Так як трохі віктарыны тут, як бы вы ўяўляеце лік 7 у двайковай сістэме? 0? Ну, 0, вы маеце на ўвазе 0 0 0? Скажы гэта яшчэ раз, Карына. Выдатна. Чаму гэта? Гэта эфектыўна 4 плюс 2 плюс 1. Так добра. Як мы ўяўляем трохі another-- як наконт колькасці 2? Блізка, але ў зваротным кірунку. Дык што ж гэта? Ёсць 4 плюс 1, так што гэта 5 разоў. Так what's-- мне вельмі шкада, Карына? 0 1 0. 0 1 0 будзе 2, таму што яшчэ раз, нават калі ён быццам не выскачыць на цябе, проста рабіць матэматыку. 4 разы 0, 0, 2 разы 1 2 1 раз 0 0. Так што гэты лік, якое мы ведаем як 2. Як наконт колькасці 8? Хм? Добра. Такім чынам, мы як-то патрэбен іншы запаўняльнік. Нам неабходна 1 0 0 0. І гэта праўда нашага роду старой сістэмы школьнай дзесятковай. Як вы ўяўляеце ліку 1000? Ну, вы, здавалася б, выгляд ў цяжкім становішчы, калі папрасіць вас прадставіць лік 1000, таму што нават калі вы даеце сабе, як 9 з іх, 9 з іх, 0 з іх, які з'яўляецца самым вялікім лік, якое вы ёсць, вы не зусім дабрацца да 1000 чалавек. Так што калі ў вас 1000, вам проста трэба іншае становішча, так што вы можаце зрабіць 1 0 0 0, эрга нумар 1000. Так што цяпер, давайце карту такога роду канцэптуальнае абмеркаванне назад у апаратных сродках, дзе зноў жа, уваход быў проста гэты маленькі кабель харчавання, электрычнасць уваходзячы і выцякання. І так, што будзе адлюстроўвацца тут каб там, ну, што нам сапраўды трэба? Ну, вы можаце думаць, каб быць унутры з кампутар, цэлая куча лямпачак, калі вы будзеце. Яны на самай справе называецца транзістараў. І транзістары толькі перамыкачы які можа альбо быць уключана або выключана. Такім чынам, вы можаце думаць аб транзістар, які знаходзіцца на гэта дазваляе электрычнасць цечу і транзістар, які выключаны як прыпынак электрычнасць ад выцякання. І замест таго, каб за агні тут, чаму я не рабіць такога роду новага стылю школы. Так што гэта можа быць 1, ліхтарык будучы на, толькі ледзь-ледзь, хоць. І гэта можа быць 0, і цяпер ён выключаны. Такім чынам, выкарыстоўваючы гэта фізічная прылада, я зараз можа прадстаўляць двойкавую сістэму. Мне проста трэба два стану. Не мае значэння, што колер гэта ці што гэта такое. Усё, што мае значэнне ў тым, што ў мяне ёсць адна дзяржава, і іншы стан выключана. Такім чынам, выкарыстоўваючы свой тэлефон тут, як я магу ўяўляюць сабой лік, мы ведаем як 0? Або, што тое ж самае, тое, што нумар я цяпер прадстаўляе? 0, так як прылада выключана. І калі я гэта зрабіць? А цяпер, як я магу ўяўляюць нумар 2? Ці магу я ўзяць свой тэлефон тут, як мы гэта рабілі ўчора? Такім чынам, давайце паглядзім, так што калі я хачу, каб прадставіць нумар 2, гэты лік 2? Няма. Які нумар я я выпадкова які прадстаўляе тут? Гэта на самай справе лік 3. Дык які з іх я хачу, каб адключыць? Чорны тэлефон или-- добра, калі they're-- чорны тэлефон ці белы тэлефон? Белы тэлефон. Так што калі я павярнуць гэта і мы лінія яго тут, у нас ёсць 1 у 2 свайго месца і а 0 замест 1 ст. І вось цяпер я які ўяўляе лік 2. І гэта, вядома, было б колькасць 3, таму што цяпер абодва гэтых агнёў ўключаны. І я буду тут спыняцца, але само сабой зразумела, калі я хачу, каб прадстаўляць нумар 4 ці 8 або вышэй, Я буду мець патрэбу больш тэлефонаў. Але гэта ўсё, што адбываецца. Так што калі вы калі-небудзь чулі, што ўнутры a-- падзякаваць you-- кампутар мільёны транзістараў, гэта толькі мільёны маленькіх перамыкачоў. І яны не гараць лямпачкі, якія запальваюцца і згасаюць, але яны альбо дазваляюць электрычнасць цячы кудысьці ці спыніць яго. І такім чынам, ёсць вашыя два states-- ўключэння або выключэння, ўключэння або выключэння. Такім чынам, мы б, здаецца, у цяперашні час каб мець гэтую здольнасць каб прадставіць гэтую канцэпцыю, мы хацелі б у рэальным абсталяванні. Але ўсё, што мы маем цяпер магчымасць для падання лікаў, здавалася б. Так як жа нам ісці аб якія прадстаўляюць літары алфавіту, якія адчувае сябе падобна наступнага роду функцыі вы хацеў бы дадаць да сучаснага кампутара калі ў вас ёсць нумары? І на самай справе, калі вы думаеце пра гэта, гістарычна, кампутары былі ўведзеныя сапраўды служыць калькулятараў колькасна. Але, вядома, гэтыя дзён, яны робяць значна больш. Нават калі яны загружаюцца, вы звычайна бачым адно або некалькі слоў. Дык як жа вы ўяўляеце словы, калі ўсё ў вас ёсць, зноў жа, электрычнасць у канцы дзень, або, што эквівалентна 0 і 1.? Так. Так, я маю на ўвазе, мы неяк зрабілі гэта ўчора ў той ці іншай форме, дзе ў нейкі момант, Я думаю, што заўгодна кажа, што, калі мы хочам, каб прадстаўляць літара А, мы маглі б проста назваць гэта 1. Менавіта ў кантэксце крыптаграфію, дзе мы проста трэба нейкі код, свайго роду адлюстраванне. Так што, можа быць, будзе прадстаўлена ў выглядзе 1, і B будзе прадстаўлены ў выглядзе 2, і Z будуць прадстаўлены як 26, напрыклад. І тады адзіны нюанс у тым, што калі я будзе кадзіраваць літары ў маёй электроннай пошты або ў маіх тэкставых паведамленняў як лікі, вы ўсё павінны пагадзіцца выкарыстоўваць той жа набор канвенцый. І на самай справе, свет зрабіў менавіта гэта. Існуе сістэма ў свеце называецца ASCII, амерыканскі стандарт Код для абмену інфармацыяй, які з'яўляецца проста рашэнне некалькі гадоў таму, што людзі зрабілі, што вырашыў, што будзе раўняцца, а не 1, 2, і 26, і такім чынам forth-- гэта трохі different-- але 65, 66, 67. І я буду цягнуць уверх дыяграма ў імгненне. Але гэта адвольна. Але гэта не мае значэння што гэта адвольна. Свет павінен проста быць паслядоўным. Цяпер, зусім нядаўна, ёсць нешта аматар называецца Unicode, так как-то ў свеце рэалізаванага, пасля вынаходства кампутараў, што ёсць больш, чым добра 256 знакаў у свеце што мы маглі б прадставіць, асабліва, калі вы прывядзеце Азіяцкіх моў і іншай сімволікай што трэба больш выразнасці, чым вы можа змясціцца ў самой ранняй версіі гэты код, які называецца ASCII. Так што фактычна дазваляе Unicode выкарыстоўваць больш 0 і 2. У прыватнасці, вы трымаеце пачуўшы слова байт у грамадстве і нават проста ўчора. І байт, што зноў? Што такое байт? Гэта ўсяго 8 біт. Дык што ж гэта на самай справе азначае? Ну, гэта азначае, што раней, калі мы былі казаць аб бінарных і я выкарыстоўваю адвольна тры біта, калі мы былі казаць пра binary-- месцы 1, у у 2 названае месца, і 4-х place-- добра, байт проста азначае, што вы кажаце не ў адзінках тры, але чатыры, пяць, шэсць, сем восем, што дае нам месца 8, у 16-х, 32-х, 64-х і 128-х. Іншымі словамі, трохі не ўсе што карысная адзінка вымярэння, таму што гэта проста як адна маленечкая частка інфармацыі, уключана або выключана. Так некалькі гадоў таму, свет проста вырашыў гэта крыху зручней гаварыць ўмовы байтаў, восем рэчаў адначасова. І вось такім чынам, быў народжаны паняцце байта. І таму ў нас ёсць восем біт тут. І аказваецца, таксама, падобнае прычыны, свет вырашыў гадоў таму, што для прадстаўлення ASCII літары, вы збіраецеся выкарыстоўваць блокі з 8 бітаў. Так што нават калі вы гэтага не зробіце трэба, што многія, вы заўсёды будзе выкарыстоўваць 8 біт ўяўляюць сабой літары алфавіту. І гэта зручна, таму што тады, калі вам атрымаць паведамленне, якое мае 0 0 0 1 1 1 1 0, затым яшчэ 1 1 1 0 1 0 0 1, так што калі вы атрымліваеце 16 біты, свет можа проста Выкажам здагадку, што першыя 8 з'яўляюцца адной літарай а другі 8 ўяўляюць сабой яшчэ адзін ліст. Не мае значэння, колькі ёсць. Гэта проста важна, што мы ўсе паслядоўнае калі мы інтэрпрэтаваць гэтыя біты. І гэта было проста выпадковым чынам. Гэта азначае, што нешта, але я не зрабіў сапраўды думаць аб тым, што гэта значыць. Так што гэта маленькая белая хлусня. Першапачаткова, ASCII фактычна выкарыстоўваецца толькі 7 біт. І восьмы біт называецца пашыранай ASCII. Але справа ў тым, у рэшце рэшт, тое ж самае. Свет у цэлым стандартызаваны па 8 біт. Так што гэта, здавалася б крыху абмежаванне, таму што я магу толькі ўяўляюць сабой капітал A, капітал B праз капіталу Z. Але на самой справе няма, калі я іду, мэтай якіх ёсць куча рэсурсаў у Інтэрнэце, напрыклад, asciitable.com, гэта будзе трохі пераважнай спачатку. Але я пакажу тое, што тут важна. Гэта як раз здараецца be-- і я буду walk-- давайце паглядзім, калі я пайду сюды. Тут, у дзесятковай сістэме слупок, лік 65. А на калонцы з літарай правай рукі характар, Chr, гэта літара А. І вы можаце ігнараваць, на дадзены момант, усё ў сярэдзіне. Гэта шаснаццатковае, васьмярковай, і HTML-код. Для таго, каб гэты сайт проста спрабуе кінуць шмат інфармацыі на вас адразу. Але ўсё, што мы клапоцімся пра дзесятковы слупок і слупок знакаў. Такім чынам, па гэтай логіцы, тое, што лік, што свет вырашыў ўяўляе маленькай каштуе? Так, 97. І толькі заблытаць патэнцыйна ледзь-ледзь, якая дата ў свеце вырашыў будзе прадстаўляць нумар 1? Правільна, таму што we-- 49, здаецца, тут, ўніз ў левым ніжнім куце. Цяпер, што я маю на ўвазе пад гэтым? Так атрымліваецца, што у кампутарных сістэмах, ёсць наогул прынцыповае адрозненне паміж лікам і характарам. Шэраг з'яўляецца тое, што мы даведаўся, калі растуць мы былі супер маладых у пачатковай школе. Гэта рэчы, якія вы злічыць. Але персанаж проста форма, глиф, так бы мовіць, на экране. Цяпер мы, людзі роду см то, што выглядае наступным чынам. І мы кажам, о, гэта значыць лік 2. Але не, гэта проста сімвал, які выглядае як тое, што мы ведаем, як лік 2. І вось там гэта фундаментальнае адрозненне паміж фактычнымі лічбамі і знакамі. Гэты лік. Але, як правіла, у Кантэкст кампутара, калі вы замест таго, каб убачыць нешта накшталт гэтага quoted-- і вы не заўсёды павінны ўбачыць гэта ў двукоссі, але дзеля discussion-- калі вы бачыце двукоссі вакол колькасці, гэта цяпер персанаж. Так што гэта нумар 2 пад капот ўнутры кампутара будзе прадстаўлены з малюнкам бітаў, якія ўяўляюць лік 50 у адпаведнасці з табліцай анлайн. Аднак, калі кампутар проста бачыць гэта, гэта будзе прадстаўлена з ўзор біт 0 0 0 0 0 0 1 0. У той час як гэты персанаж будзе на самай справе быць прадстаўлена as-- і цяпер, Я павінен думаць трохі harder-- так што гэта сімвал будзе прадстаўлены з 0 0 1-- што мне трэба тут? 0 0 1 1 0 0 1 0. Як мне гэта зрабіць? Ну гэты лік 50, калі вы памнажаюць яго з дапамогай гэтых слупкоў, гэта нумар 2, і г.д. вось чаму існуе гэтая дыхатамія. І гэта проста тізер цяпер для функцый якія існуюць у мовах праграмавання што мы закранем коратка пазней сёння. У мовах праграмавання, ў вас ёсць, як правіла, але не заўсёды, рэчы выклікаць розныя тыпы дадзеных. Іншымі словамі, programmer-- калі ён ці яна піша, праграміст вырашае, у якім фармат для захоўвання сваіх дадзеных. Вы можаце альбо захоўваць дадзеныя як сырыя нумары, такія як нумар 2. Ці вы можаце захоўваць іх у выглядзе радкоў, або паслядоўнасці знакаў што вы, як правіла, выказваюць з каціроўкі ў вашым мове праграмавання. Вы можаце мець рэчы called-- Я буду спрашчаць і называць іх рэальны numbers-- так лікаў, не зьяўляюцца цэлымі лікамі, як нумар 2, але нумары, як 4.56. Так што рэальныя лічбы могуць таксама маюць дзесятковай кропкі, так што гэта іншая фундаментальная частка дадзеных у кампутары. І тады вы можаце нават іншыя тыпы дадзеных па-ранейшаму. Так што гэта проста тізер сапраўды з найпросты праектных рашэнняў што праграміст можа зрабіць пад капотам. Так што любыя пытанні, толькі пакуль? Дык давайце паспрабуем зрабіць гэта крыху больш рэальным. Гэта абсталяванне не так шмат у выкарыстанні больш. Але большасць усё ў гэтым пакоі, верагодна, вырас з і да гэтага часу выкарыстоўвае жорсткія дыскі у некаторым родзе. Хоць большасць з больш не нашы ноўтбукі ёсць прылады, якія працуюць, як гэта, замест наўтбукаў сёння ў цэлым маюць цвёрдацельныя назапашвальнікі без якіх-небудзь рухаюцца частак. І гэта, як правіла, даражэй, на жаль, але трохі хутчэй і a-- добра, часта, нашмат хутчэй, якая з'яўляецца адной з прычын. А таксама не генераваць столькі ж цяпла. Гэта можа быць менш, так што ў цэлым чысты станоўчы. Але гэта дазваляе адлюстраваць ледзь больш канкрэтна, што мы гаворым пра на 0 і 1 ва ўзровень цяпер да фізічнага прылады. Гэта адна рэч для мяне, каб пагаварыць каля 0 і 1 з пункту гледжання майго тэлефона ці абстрактна з пункту гледжання перамыкачоў быць і выключаецца. Але як наконт жорсткіх дыскаў? У наўтбуках, калі ў вас ёсць старыя адзін, ці ў настольным кампутары, або, вядома, у серверах сёння, дзе ў вас ёсць жорсткія дыскі, якія маюць тэрабайт прасторы, 4 тэрабайт прасторы, ну што ж гэта значыць? Жорсткі дыск з 1 тэрабайт касмічных сродкаў ёсць 1 трыльён байтаў ўнутры яго так ці інакш, або, што эквівалентна за 8 трыльёнаў біт ўнутры. 1 тэрабайт будзе 8 терабит або 1 трыльён біт, што азначае, што калі ў вас ёсць жорсткі дыск, вы нейкім чынам або іншыя трыльён 0 ' і 1 ўнутры яго. А калі мы проста паглядзім на адвольнае малюнак жорсткага дыска Прадстаўнік, гэта тое, што жорсткі прывад звычайна можа выглядаць ўнутры. Гэта таксама, накшталт як стары патэфон гулец але ў цэлым з некалькі запісаў унутры, так каб speak-- множны Жорсткія дыскі, як яны называюць, металічныя круглыя ​​дыскі, і потым трохі счытвальная галоўка, гэтак жа, як стары патэфон. І, што счытвальная галоўка перамяшчаецца назад і наперад і нейкім чынам счытвае біты. І тое, што на гэтых талерках, нават хоць мы, людзі, не можам іх бачыць, ні ў рэальнасці, ні ў гэтай карціне, ёсць малюсенькія магнітныя часціцы. І нават калі вы ўжо даўно забыўся, як працуе электрычнасць, магнітная часціца які спаганяецца ў цэлым мае паўночны канец і поўдзень end-- так на поўнач і поўдзень. І таму свет проста вырашыў некаторы час таму што, калі магнітны пратакол па сутнасці выраўноўваецца, як гэта, з поўначы на ​​поўдзень, давайце назавем, што ў 1. Калі гэта замест таго, каб поўдзень-поўнач, давайце проста называем гэта 0. І таму, калі ў вас ёсць на Ваша распараджэнне трыльён малюсенькая магнітная particles-- і, спадзяюся, апаратныя вынаходлівасць у Для таго каб перавярнуць навакольных як вы бачыце fit--, калі вы хочаце ўяўляюць сабой цэлую кучу 0, вы проста трэба 8 магнітных часціц выраўнаваны, як гэта. І калі вы хочаце, каб прадставіць восем 1-х, вы проста трэба 8 магнітных часціц выраўнаваных спіна да спіны да спіны, як гэта. Што я маю на ўвазе пад магнітныя часціцы? Шчыра кажучы, усе гэтыя гады праз, рэч, якая да гэтага часу прыходзіць у галаву гэты хлопец, калі вы вырас з гэтай рэччу. Гэта little-- для тыя unfamiliar-- маленькая цацка дзяцінства, мае гэты голую чалавек тут што ёсць усе гэтыя малюсенькія трохі чорнага магнітныя часціцы, якія прыходзяць з ёй. І з дапамогай гэтага чырвоную палку, які толькі магніт, Вы можаце сартаваць даць яму вусы ці бровы ці валасы або што-небудзь на яго. Так што на самой справе, калі мы павялічыць у, напрыклад, гэты гэта выгляд гульні вы можа гуляць з Wooly Вілі. І гэта толькі сказаць, гэтыя значна буйнейшыя магнітныя часціцы чым на самай справе на цвёрдым дыску, і значна менш магнітных часціц. Але давайце на самай справе ўбачыць затым, калі ў вас ёсць малюсенькія магнітныя часціцы ў жорсткі дыск, як вы можаце на самой справе выкарыстоўваць іх для прадстаўлення дадзеных. [ВИДЕОВОСПРОИЗВЕДЕНИЕ] -The Жорсткая дыск, дзе ваш кампутар захоўвае большую частку сваіх пастаянных дадзеных. Каб зрабіць гэта, дадзеныя падарожнічае з АЗП па з праграмнымі сігналамі, якія кажуць жорсткі дыск, як захоўваць гэтыя дадзеныя. Схемы жорсткіх дыскаў перавесці тыя сігналы ў ваганні напружання. Гэта, у сваю чаргу, кантроль жорсткага дыска перасоўванне parts-- некаторыя з нешматлікіх рухаюцца часткі пакінулі ў сучасным кампутары. Некаторыя з сігналаў кіравання рухавіком, які круціцца пласцін з металічным пакрыццём. Вашы дадзеныя на самай справе якія захоўваюцца на гэтых пласцінах. Іншыя сігналы перамяшчэння галовак чытання / запісы для чытання або запісы дадзеных на пласцінах. Гэты механізм настолькі дакладны, што чалавечыя валасы не маглі нават праходзяць паміж галоўкамі і спінінг пласцін. Тым не менш, усё гэта працуе на ўзрушаючых хуткасцях. [КАНЕЦ засьпяваю] І вы можаце бачыць на задні канец відэа, там, як правіла, некалькі пласцін. І так, што чытанне галавы не проста чытаць зверху. Гэта накшталт як тры ці ці яшчэ чатыры галоўкі чытання гэты крок, як гэта, счытвання дадзеных адначасова. Такім чынам, ёсць шмат складанасць і выгляд часу што ўдзельнічае ў цвёрдым дыску. І справа круціцца сапраўды цыраваць хутка, так што ёсць шмат складанасці. Але давайце павялічваць трохі глыбей і ўбачыць, дзе гэтыя магнітныя часціцы і як мы атрымліваем на іх. [ВИДЕОВОСПРОИЗВЕДЕНИЕ] Погляд -Давайце на тое, што мы толькі што бачыў у запаволеным руху. Калі кароткі пульс электрычнасці адпраўляецца галоўкі чытання / запісы, ён пераварочваецца на маленькім электрамагнітным за долі секунды. магніт стварае поле, якое змяняе палярнасць малюсенькае, малюсенькае частка часціц металу якія пакрываюць паверхню кожнай пласціны ст. Шаблон серыі гэтых маленькіх кайфам вобласці на дыску ўяўляе сабой адзін біт дадзеных у двайковая сістэма злічэння выкарыстоўваецца кампутарамі. Цяпер, калі ток пасылаецца адзін шлях праз галоўку чытання / запісы, плошчу палярызаванае ў адным кірунку. Калі ток пасылаецца ў у процілеглым кірунку, палярызацыя аднаўляецца. Як атрымаць дадзеныя з жорсткага дыска? Проста зваротны працэс. Так што часціцы на дыск, атрымаць ток ў галоўцы чытання / запісы руху. злучаны мільёны гэтыя намагнічаныя сегменты, і ў вас ёсць файл. Цяпер, кавалкі аднаго файла можа быць раскіданыя па ўсім талерках кластараў дыска, накшталт як беспарадак дакументаў на вашым стале. Такім чынам, спецыяльны дадатковы файл захоўвае трэк, дзе ўсё. Хіба вы не хацелі б мець нешта падобнае? [КАНЕЦ засьпяваю] Такім чынам, будучы згадваецца там, мабыць, што тэма з учорашняга дня ад выдалення. пры выдаленні файл, учора мы гаварылі што кампутар на самой справе робіць што, калі вы нешта перацягнуць ў кашы або смеццевае вядро? Ён проста забывае. Але 0 і 1-х, магнітныя часціцы якія выглядаюць як чырвоны і сіні рэчы тут, або мая рука тут, ўсё яшчэ ёсць на цвёрдым дыску. І таму існуе software-- Нортан Утыліты і Yesteryear і іншыя больш сучасныя software--, што проста будзе сканаваць ўвесь жорсткі дыск шукае ва ўсіх гэтых 0 і 1-х, таму што Аказваецца, што большасць файлаў formats-- Тэкставыя дакументы, файлы Excel, малюнка, відэа files-- ўсе маюць пэўнае ўзоры, якія з'яўляюцца распаўсюджанымі сярод іх. Кожны відэа файл можа быць іншага відэа, але першыя некалькі біты звычайна аднолькавыя. Або апошнія некалькі бітаў як правіла, тое ж самае. І таму з вялікай доляй верагоднасці, вы можаце паглядзець на гэтыя мадэлі. І нават калі файл быў забыты, Вы можаце сказаць, з высокай верагоднасцю, але гэта выглядае як дакумент Word, дазваляе аднавіць яго і зніміце забыцца, калі вы будзеце. І вось, як вы можаце аднавіць дадзеныя, якія альбо былі выпадкова выдалены або выдалены або наўмысна выдалены для любых мэт. У супрацьлегласць гэтаму, бяспечнае выдаленне робіць што у кантэксце карціны, як гэта? Дакладна, робіць іх усё выпадковае. Так што гэта свайго роду перамяшчае некаторыя з іх уніз, некаторыя з іх уверх, пакідае некаторыя з іх без зменаў, а як правіла, робіць выпадковы шум з яго, або проста, можа быць, робіць усё Them 0 'або ўсе з іх 1-х. І гэта таксама можа наогул скраб вашыя дадзеныя прэч. Дык давайце зараз вернемся да пытання вылічальнага мыслення, у выніку чаго мы маем формулу уваходаў. І алгарытмы дае вы ў канчатковым выніку выводзіць. Зараз мы засяроджаны на ўваходах і выхады, таму што цяпер я прэтэнзіі ў нас ёсць спосаб якія прадстаўляюць ўваходы і выхады. Мы проста будзем выкарыстоўваць бінарны файл. І незалежна ад таго, што мы хачу прадставіць сёння, няхай гэта будзе нумар або ліст ці тысячы іх у тэлефоннай кнізе або малюнкаў або відэа, у канцы дня, усё гэта 0 і 1 .. І я сцвярджаю, што, нават калі гэта гэта супер проста свет толькі з 0-х гадоў і 1-х, мы можам пабудаваць сябе ўверх. І мы ўжо бачылі адзін прыклад што з лістамі да гэтага часу. Так што давайце засяродзімся цяпер у гэтым сярэдні кампанент, алгарытм. І давайце вернемся да гэтага пытання Прыклад Майк Сміт. Так што ў гэтай тэлефоннай кнізе, якая па агульным прызнанні, мы не выкарыстоўваем так шмат больш, ёсць праблема, якую трэба вырашыць. Мы хочам, каб знайсці каго-то, як Майк Сміт. А што я мог бы зрабіць, каб знайсці Майк? Ну, я мог бы проста адкрыць гэты Кніга, пачніце з першай старонкі, і разумею, о, я ў секцыі А. Майк не там. Мне патрэбен раздзел S для Сміта. Так проста трымаць паварот на адну старонку за адзін раз. Дазвольце мне рабіць выгляд, што ўсё гэта белых старонак, а не жоўтыя старонкі, таму што мы не збіраемся, каб знайсці Майк ў жоўтых старонках у любым выпадку. Але я на белых старонках. А цяпер, я знаходжуся ў раздзеле B. Я да гэтага часу не знайшоў яго. Так што я працягваю паварочваючы ні старонак, ні за адзін раз. Гэта алгарытм. Гэта набор інструкцый для вырашэння якой-то праблемы. Іншымі словамі, звярніце ўвагу на старонка, калі Майк не на ім, павярнуць старонку, і паўторы зноў і зноў і зноў, у ідэале, гледзячы ўніз, як вы робіце гэта. Так што гэты алгарытм, гэты працэс, правільна? Прабачце. Не, я чую некаторыя NOS. Добра, але is-- ды, гэта, вядома, стомна. Маўляў, мы будзем тут увесь дзень, калі я працягвайце шукаць Майка на гэтай хуткасці. Але дазвольце мне сцвярджаць, што гэта правільна. Гэта глупства, але гэта правільна. У рэшце рэшт, пакуль яна можа прыняць, я знайду Майк, калі ён там і я звярнуць увагу. І я ў рэшце рэшт дасягнуць сваёй старонкі. І калі я атрымліваю занадта далёка, калі Я атрымліваю ў раздзел T, то я магу трохі аптымізаваць і проста сказаць, гм, усё зроблена. Я нават не трэба марнаваць Час ісці да Забалоцкага. Але гэта вельмі лінейны падыход, калі вы будзе, вельмі выгляд злева-направа падыход, прамая лінія. І яго правільна, але павольна. Так што я памятаю з пачатковай школы, сартаваць з аптымізацыі ад першага грэйдэра, дзе я навучыўся не разлічваць адзінкамі, але па twos-- так 2, 4, 6. Гэта А, нашмат складаней рабіць, але ў тэорыі, гэта faster-- 8, 10, 12, 14, і гэтак далей. Як наконт гэтага алгарытму? Ці з'яўляецца гэта больш эфектыўным? Ці з'яўляецца гэта хутчэй? АЎДЫТОРЫЯ: Гэта эфектыўна. DAVID Малання: Так, так што гэта def-- гэта літаральна ў два разы хутчэй, калі выказаць здагадку, я не атрымліваюць падстаўлялі з маімі пальцамі. Гэта ў два разы хутчэй, таму што Я ператвараюся праз два старонак адразу замест аднаго, але гэта патэнцыйна правільна, таму што, чаму? АЎДЫТОРЫЯ: Вы прапускаючы некаторыя з іх. DAVID Малання: Дакладна, што, калі Майк адбываецца быць sandwiched-- можа быць, калі я пазней у тэлефоннай кнізе, Майк, здараецца, заціснутыя паміж гэтымі двума старонкамі, і я проста слепа прапусціць яго. Такім чынам, нам трэба крыху выправіць там. Пасля таго, як я трапіў у частку T, I не магу проста з упэўненасцю сказаць, мы не знайшлі Майка Сміта. Я, верагодна, прыйдзецца захіліць. Ці на самай справе, калі я дасягаю кагосьці названы S-N, замест С-М для Сміта, неадкладна, я мог бы падвоіць назад, таму што, магчыма, ён быў на папярэдняй старонцы. Але ў мяне няма захіліць далёка. У тэорыі, калі я раблю гэта ў патрэбны час час, я проста вярнуцца адну старонку. Так што гэта даданне толькі адзін дадатковы крок. Так што я пайшоў у два разы хутчэй, але гэта каштавала мне адну дадатковую старонку. Але што адчувае, як чыстая перамога. Але гэта не так, як большасць людзей у Гэты нумар будзе вырашыць гэтую праблему. Што б тыповы чалавек, можа быць, Некалькі гадоў таму зрабіць, каб знайсці Майка Сміта? Так, не знайшлі Майка. Што я раблю? Так што трохі бліжэй, але я знаю--, што праўда пра тэлефоннай кнізе? АЎДЫТОРЫЯ: Гэта паслядоўны. DAVID Малання: Гэта паслядоўны. Гэта алфавітны. І таму, калі я знаходжуся ў раздзеле M, Майк відавочна направа, Я магу літаральна разарваць праблема ў half-- як правіла, лягчэй, чым that-- слязу праблема напалову і выкінуць, так што зараз, у мяне ёсць праблема, што гэта ўжо не 1000 pages--, што было цяжка, таму што я думаю, што я на самой справе разарвала тэлефонная кніга гэта не time-- 1000 старонак, але 500. Такім чынам, праблема літаральна удвая менш. І гэта даволі пераканаўчым, таму што з маімі папярэднімі алгарытмамі, версія 1 і 2, я толькі што робіць праблему на адной старонцы, меншыя дзве старонкі меншыя ў той час. У той час як цяпер, я зрабіў гэта 500 старонкі менш, усё адразу. ОК, так што зараз, Карым прапануе што я іду ў правую палову. Так што я збіраюся ісці прыкладна да сярэдзіны, даць або прыняць. І калі б я зрабіў гэта матэматычна, Я мог бы пайсці прама да цэнтра. А цяпер, я разумею, пра, Я знаходжуся ў секцыі T. Я на самай справе занадта далёка. Але я магу, зноў жа, ірваць Праблема напалову, выкінуць. І мае байты не гэтак вялікі. Гэта толькі, што, 256 старонак або 250 старонак, даваць ці прымаць прама цяпер. Але гэта ўсё яшчэ нашмат больш чым на адной старонцы або двух старонак. І вось цяпер, я іду прыкладна да сярэдзіны. О, я не пайшоў досыць далёка цяпер досыць. Таму я паўтараю, паўтараю, паўтараю, Паўтараю, пакуль я спадзяюся, засталося толькі з адной старонкі. Так што прапануе пытанне, калі я пачалося прыкладна з 1000 старонак, колькі крокаў гэта брала мяне з версіяй 1 майго алгарытму? Ну, калі Майк знаходзіцца ў S раздзел, у горшым выпадку, гэта даволі блізка да канец алфавіту. Так што, калі тэлефонная кніга мае 1000 старонак, Я знайду Майка у межах 1000 старонак, даць або прыняць. Можа быць, гэта як 800 або каля таго, але гэта даволі блізка да 1,000. Прымаючы пад увагу, у другім Алгарытм, колькі старонка аказваецца максімальна можа я патрабуе, каб знайсці Майка Сміта? Там у 1000 старонак, але я робіць іх два адначасова. Правільна, так як максімум 500ish, таму што калі я іду праз усю тэлефонную кнігу, у які момант я магу спыніцца. Але я магу згаліць некалькі па проста прыпынак на ўчастку Т. Але гэта ў горшым выпадку 500 старонак. Так што, колькі разоў я магу падзяліць 1,00o старонках тэлефоннай кнігі ў палове зноў і зноў і again-- ад 1000 да 500 да 250 да 125? Як доўга, перш чым я трапіў на адну старонку? Так, гэта каля 10. У залежнасці ад закруглення і такія, гэта каля 10 за ўсё старонак павінны быць уключаны ці тэлефонныя кнігі павінны быць разарваныя. Так што гэта даволі магутны. Мы пачалі з праблемай у 1000 старонак ва ўсіх трох гэтых гісторый. Але ў першым алгарытме, яго узяў мяне, горшы выпадак, 1000 стар Аказваецца, каб знайсці Майк. Другі алгарытм, 500 старонкі, каб знайсці Майк. Трэці алгарытм, 10 старонак, каб знайсці Майк. І гэта яшчэ больш магутны, калі вы думаеце пра свайго роду супрацьлеглага сцэнара. Выкажам здагадку, што ў тэлефоннай кампаніі наступнай год, можа быць, аб'ядноўвае два гарады разам, і тэлефонная кніга раптоўна Грубы, замест гэтага, што, так 2000 старонак замест 1000. Ну, мой першы алгарытм шукае Майк Сміт у тэлефоннай кнізе 2000 старонак, горшы выпадак, ён збіраецца прыняць колькі паваротаў старонкі ў наступным годзе? Тэлефонная кніга складае 2000 старонак, so-- добра, а не яшчэ адзін. Калі тэлефонная кніга ў два разы тоўшчы ў першы алгарытм, першы алгарытм, 2000, ці не так? У горшым выпадку, Майк сапраўды Бліжэй да канца кнігі, так што 2000 старонак па чарзе. Другі алгарытм ідучы двоек, як і 1000 старонак. Але як у маёй траціны і самы апошні алгарытм? Калі тэлефонная кампанія падвойвае колькасць старонак ад 1000 да 2000, колькі яшчэ раз трэба Я разрываю што кніга напалову, каб знайсці Майк? ГЛЕДАЧЫ: Толькі адзін. DAVID Малання: Толькі яшчэ адзін, таму што з аднаго старонкі сляза, Я магу літаральна падзяліць і перамагчы, калі вы будзеце, што праблема ў палове ўзяцця масіўны ўкус з яго. І такім чынам гэта з'яўляецца прыкладам каэфіцыент карыснага дзеяння і, магчыма, алгарытм з якімі ўсе мы свайго роду інтуітыўна знаёмыя. Але гэта так жа, як правільна як мае іншыя алгарытмы з гэтым падладцы для Другі алгарытм, але гэта значна больш эфектыўным. І на самай справе, што кампутар вучоны, ці ў сваю чаргу, праграміст, звычайна робяць пры напісанні код паспрабаваць высветліць, усё ў парадку, я не хачу, каб мае праграма проста, каб быць правільным, Я таксама хачу, каб быць эфектыўным і вырашаць праблемы добра. Уявіце сабе, у рэальным свеце сёння, як Google індэксы, пошукі як мільярды старонак, уявіце сабе, калі яны выкарыстоўваецца першы алгарытм, каб знайсці котак сярод мільярд pages-- гледзячы на першая старонка ў іх базе дадзеных, другі, трэці, проста гледзячы для кошкі, шукае ката. Гэта даволі цыраваць запаволіць здавалася б. Замест гэтага яны маглі б выкарыстоўваць нешта званы бінарны пошук, які ня coincidence-- бі азначае два, мы трымаць што-то падзяліўшы на 2, у half-- яны маглі б выкарыстоўваць бінарны пошук і, магчыма, знайсці котак яшчэ хутчэй, або тое, што вы шукаеце. І, шчыра кажучы, ёсць нават больш мудрагелістыя алгарытмы што зрабіць значна больш, чым проста падзяляючы рэчы напалову для таго, каб хутка знаходзіць патрэбную інфармацыю. І мы будзем казаць крыху пра тых, хто пасля абеду сёння. Такім чынам, дазвольце мне проста паспрабаваць прадставіць гэта. Нам не трэба ўдавацца ў любыя матэматычныя або рэальныя лічбы. Мы можам казаць пра гэта абстрактна. Але дазвольце мне прапанаваць, калі вы былі з абмеркавання ў цяперашні час з інжынерамі прапаноўваючы гэты алгарытм і вы спрабуеце зрабіць разлічанае рашэнне, таму што, можа быць, інжынер кажа вам, вы ведаю, што я магу рэалізаваць лінейны пошук у як дзве хвіліны. Гэта так проста. Двайковы пошук не тое, што фантазіі, але яна збіраецца ўзяць мяне, як 10 хвілін, так у 5 разоў да таго часу. Там у гандлёвай тут, нават з пункту гледжання рашэнні, што праграмнае забеспячэнне для запісу. Вы пішаце больш просты алгарытм, які будзе проста вас дзве хвіліны? Ці вы праводзіце больш часу, 10 хвілін, напісанне паляўнічай алгарытм? Як вы вырашаеце, што такое пытанне? Ці вы маглі б зрабіць яго крыху больш рэальным. Я кажу свайму босу, ​​што збіраецца ўзяць я ні за адзін тыдзень або 10 тыдняў для рэалізацыі праграмнае забеспячэнне такім чынам, як вы вырашаеце, якія алгарытм зялёнае святло? Карым? ГЛЕДАЧЫ: Гледачы, я думаю. DAVID Малання: Гледачы. Што вы маеце на ўвазе пад аўдыторыяй? ГЛЕДАЧЫ: Калі гэта адбываецца якія будуць выкарыстоўвацца карыстальнікамі якія [неразборліва] карыстальнікамі [неразборліва]. Але калі гэта што-то вы проста робіць для сябе каб палегчыць задачу, [Неразборліва] хутчэй. DAVID Малання: Так, гэта хутка і брудны гэта добры спосаб, каб апісаць гэта. На самай справе, калі вы апісваючы вялікую частку майго часу ў аспірантуры, у выніку чаго часта часы, Я напісаў дрэнны код свядома so-- па меншай меры, гэта тое, як я рацыяналізаваць it-- свядома так, таму што нават калі я пішу код што было адносна павольным, каб выканаць, Я быў у стане напісаць сам код даволі хутка, выдаткі за ўсё ў некалькіх хвілінах ці гадзін не дзён. І апынулася, я часам трэба спаць. Так што нават калі мой код патрабуецца 8 гадзін для працы, так што гэта нармальна, Я буду проста пайсці спаць, пакуль ён працуе. Так што ў той час, я думаў, што гэта было вельмі разумны, хоць я па-відаць, працаваў праз мой кандыдат вельмі павольна. Але адваротнае, што з'яўляецца што, калі б я пісаў праграмнае забеспячэнне для іншых людзей, якія мела вялікае значэньне, чым у мяне, ну, маючы іх чакаць 8-й гадзіне атрымаць назад свае вынікі пошуку не ўсе, што пераканаўчымі. І таму марнаваць больш часу фронт, каб напісаць праграмнае забеспячэнне што з'яўляецца больш эфектыўным, больш як наша трэцяе алгарытму, верагодна, прыносіць карысць карыстальнікам на працягу доўгага часу. Так што гэта сапраўды залежыць ад больш час, як гэтыя выдаткі складаюцца. Калі вы збіраецеся пісаць праграмнае забеспячэнне, каб выкарыстоўваць яго адзін раз, верагодна, маглі б таксама зрабіць хуткі і брудны, як яны кажуць. Проста выкінуць яго разам. Гэта код, які заганяюць вы, гэта так дрэнна, але яна выконвае сваю працу правільна, нягледзячы на ​​тое, што гэта не эфектыўна. З іншага боку, вы праводзіце больш часу на нешта, атрымаць яго ў самы раз. А потым амартызуецца на працягу доўгага часу, што першапачатковыя выдаткі часу напэўна варта, калі вы трымаеце аптымізацыі для агульнага выпадку. І на самай справе, гэта тэма праграмаванне, інфарматыка ці больш як правіла, спрабуе аптымізаваць ня дзеля незвычайнага выпадку але агульныя case-- якая аперацыя адбудзецца зноў і зноў? Калі вы збіраецеся мець мільярды карыстальнікаў пошуку на вашым сайце, Вы, верагодна, варта правесці дадатковыя тыдняў фронт пісаць лепшае праграмнае забеспячэнне, так што ўсе вашыя карыстальнікі атрымліваюць выгаду. Зараз давайце паспрабуем захапіць гэта трохі выяўленча, але не так шмат, колькасна. Дык вось якраз старая школа дыяграма. І дазвольце мне сказаць, што гэты час. І гэта не мае значэння што- на самай справе, не, не час. Давайце пакладзем, што на другі восі. Дапусцім, што гэты час, і гэта памер праблемы. І навуковец можа патэлефанаваць у цэлым гэта проста п. п паходзіць наш ісці да зменнай, дзе п ўяўляе сабой лік, п лік, і гэта колькасць любых уваходаў у вас ёсць. Так што ў гэтым выпадку п колькасць старонак. Так што гэта можа быць 1000 у выпадак мы толькі што сказалі. Так што час можа быць любая адзінка вымярэння. Можа быць, гэта другое. Можа быць, гэта дні. Можа быць, гэта як паваротаў старонкі. Не мае значэння. Што б вы хацелі разлічваць на, што будзе час або варта што тое ж самае. Так што з самага першага Алгарытм, калі я, напрыклад, меў тэлефонную кнігу на 1000 старонак, Я збіраюся намаляваць кропку там, таму што, калі гэта 1000 старонак, ён узяў прыкладна 1000 паваротаў старонкі, даць або прыняць. А потым, калі б я быў 2000 старонак тэлефоннай кнігі, і я збіраюся намаляваць другую кропка тут, таму што на 2000 старонак, гэта як 2000 секунд або паваротаў старонкі або любы іншы. І вось, калі я ўжо казаў раней, гэта выгляд лінейнай залежнасці, што было наўмысным, таму што я хацеў пазней on-- права now--, каб намаляваць лінію. Гэта свайго роду прамой лінія адносіны. Схіл 1/1, калі вы будзеце. У той жа час, другі алгарытм сказаў, што калі ў вас ёсць 1000 старонак і вы выкарыстоўвалі другі алгарытм, дзе я налічыў на 2-х, паварочваючыся дзве старонкі ў той час, я павінен маляваць кропка вышэй або ніжэй маёй зыходнай кропкай? ГЛЕДАЧЫ: Ніжэй. DAVID Малання: Ніжэй, таму што, як мы бачылі, гэта займае менш часу, у два разы менш часу. Такім чынам, кропка павінна быць напалову гэтак жа высока, як і іншыя. І тая ж здзелка тут, гэта кропка варта, верагодна, прыкладна там. І вось мой другі алгарытм, гэтак жа, мае лінейную залежнасць з часам. І мы можам зрабіць гэта як такой. Так што цяпер, трэці і апошні Алгарытм крыху больш складана зрабіць. Але інтуітыўна, калі ў мяне 1000 старонкі з майго трэцяга алгарытму, ён павінен прыняць мяне толькі як 10 крокаў. І калі ў мяне ёсць 2000 старонак з маім трэцім алгарытмам, ён павінен прыняць мяне не 10 крокі, але 11, толькі яшчэ адзін. Такім чынам, мы ледзьве будзем бачыць гэта. І атрымліваецца, калі Я павялічыць на гэта, я збіраецца перабольшваць для эфекту, форма гэтай лініі, у канчатковым рахунку, не з'яўляецца прамой line-- таму што, на самай справе, калі б гэта было, гэта будзе выглядаць як others-- гэта на самай справе выгнутыя лініі што, калі мы набліжаць, збіраецца глядзець значна больш, як гэта. It-- добра, добра, ігнараваць гэтую частку. Гэта было маё пяро збіраецца кута. Гэта выгнутая лінія, якая заўсёды расце, заўсёды, заўсёды, заўсёды расце, але толькі ледзь-ледзь. І так на працягу доўгага часу, у вас ёсць Адносіны, якія больш падобна на тое. Гэта выглядае амаль прама. Але гэта вельмі павольна расце. Але для амаль усіх кропак уздоўж ваша вось х, гарызантальная вось, гэта ніжэй, чым тыя, іншыя лініі. Так што гэта можа быць адносіны п, прычым калі ў вас ёсць п старонак, прымае вас н секунд. Гэта можа быць стаўленне N / 2. У вас ёсць п старонак, ён прымае Вы п / 2 секунды, удвая менш, чым. І гэта лагарыфмічная адносіны, якія калі ўспомніць, лагарыфм 2 з п захопамі такі рост, так бы мовіць. Так што гэта свайго роду святой Грааль сярод трох з іх тут, таму што гэта проста так значна больш эфектыўны, але, магчыма, больш складаны рэалізаваць. Ёсць пытанні? Ну дазвольце мне зрабіць гэта, хай мне адкрыць тэкставае акно толькі так мы можам паспрабаваць фармалізаваць што-то тут. Такім чынам, дазвольце мне ісці наперад цяпер і рэалізаваць гэты алгарытм для знаходжання Майка Сміта ў кодзе, калі вы будзеце, псевдокод код. Я не збіраюся выкарыстоўваць Java або C ++. Я проста збіраюся выкарыстоўваць свайго роду Англійская-падобны сінтаксіс, які мы як правіла, выклікаць код псевдокода. Вось, у мяне ёсць пустое акно. І я крок 1 вельмі кажучы Першы алгарытм падабраць тэлефонную кнігу. Крок 2 адкрыта кніга для першай старонкі. Крок 3 будзе глядзець на старонка для Майка Сміта. Калі на старонцы, выклічце Майк. іншы паварот старонкі і перайдзіце да кроку 3. Гатова, скажам. І таму гэта не зусім поўная, які мы ўбачым у хвіліну. Але давайце разгледзім, што Паняцці я прадставіў тут. Так крокі 1 і 2 і 3 даволі шмат дзеясловаў. Яны заявы, actions-- зрабіць гэта. І так у праграмаванні мова, мы, як правіла, называць іх заявы або функцыі або працэдуры, называць іх любую колькасць рэчаў. Але яны проста actions-- зрабіць гэта. Крок 4 прынцыпова адрозніваецца, таму што гэта свайго роду задае пытанне. Гэта сведчыць, што мы свайго роду з на скрыжаванні дарог. Калі Майк на старонцы, выклічце яго, так што павярнуць налева, калі вы будзеце. А калі не, то вярнуцца да некаторых іншы page-- ці, хутчэй, прабачце, вярнуцца да якой-небудзь іншай крок, які індукуе некаторы выгляд цыклаў, ст. І мы робім гэта зноў і зноў і зноў. І на самай справе, вы ведаеце, што? Так. інакш, калі ў канцы кнігі прыпынку. Так што нам трэба выгляд трэцяга стан, таму што вы не можа трымаць перагарнуць старонку аб'яву млоснасці, таму што ў рэшце рэшт, я буду трапіў у канцы кнігі. І памылка ў праграме можа быць ня чакаючы такога сцэнару. А потым я проста зразумеў, ой, пачакайце хвіліну, мне патрэбен трэці сцэнар. Калі я з старонак, я павінны сапраўды проста спыніць. У адваротным выпадку, гэта не вызначана. Што адбудзецца, калі я трымаю кажучы перагарнуць старонку і вярнуцца, гэта калі кампутары замарозіць або аварыі, калі вы націснеце некаторыя непрадбачаныя сітуацыі, як гэта. Цяпер, што тычыцца Mike трэці algorithm-- Сміта вазьміце тэлефонную кнігу, адкрытая кніга для first-- да няма, не першая старонка на гэты раз, да middle-- ой, ну, што б быць другі алгарытм. Давайце проста прапусціць трэці. ГЛЕДАЧЫ: Ой, мне вельмі шкада. DAVID Малання: Гэта нармальна. Давайце проста перайсці да third-- адкрытым да сярэдзіны і цяпер шукае Майк Сміт. калі на старонцы, выклічце Майк. І тады тое, што мы хочам сказаць? яшчэ што? Мы можам выказаць гэта у любым ліку шляхоў. Там няма правільнага адказу. Добра, калі не раз, але нам трэба be-- ОК, мы хочам падзяліць на дзве часткі, але мы хочам, каб пайсці налева або ісці прама? Як мы выказваем гэта паняцце? Ну, а ў выпадку Майка, так, гэта справядліва. Але добра, так што гэта на самай справе добрая кропка. Гэта выдатна. Мы будзем працягваць ісці з гэтай логікай. So-- ГЛЕДАЧЫ: Менш за палову. DAVID Малання: Так. Так што інакш, калі старонка, мы скажам, менш чым Сміт, злева ад Сміта, then-- давайце паглядзім, з'яўляецца гэта будзе ўскладняць? інакш, калі старонка папярэднічае Сміт, слязу напалову, выкінуць якую палову? АЎДЫТОРЫЯ: Я думаў, гэта было [неразборліва]. DAVID Малання: Я чую, як адказы. ГЛЕДАЧЫ: злева. DAVID Малання: OK, кінуць прэч левая палова, а Lakisa сказаў раней, левы палова, то я як бы хачу проста ісці я іду, мэтай якіх направа. Ці што тое ж самае, і я зрабіў крыху трохі беспарадак пачатку тут, Я хачу эфектыўна перайдзіце да кроку 2 зноў, дзе адкрыты для middle-- або open-- ды, давайце проста скажам, старонкі ў сярэдзіне. І гэта фіксуе гэта. Гэта ўжо не кніга. Гэта ўсяго толькі палова кнігі, таму адкрытыя старонкі ў сярэдзіне. else-- былі амаль там. Крок 6, інакш, калі старонка прыходзіць пасля таго, як Сміт, разарваць папалам, выкінуць правую палову, затым перайдзіце да кроку 2. яшчэ кінуць паліць, чацвёрты сцэнар, калі у нас няма старонак не засталося, каб павярнуць. Такім чынам, мы маглі б ачысціць гэта. І мы павінны ачысціць гэта. Гэта вельмі псевдокод код, калі вы будзе, апісанне вельмі высокі ўзровень. Але гэта, як правіла захапіць гэтую ідэю. І, зноў жа, у гэтым сцэнары, мы ёсць паняцце стану, галіна, скрыжаванне, што робіць decision--, калі гэта, ісці па гэтым шляху, інакш, калі, ісці па гэтым шляху, інакш, калі, ісці па гэтым шляху. І гэта вельмі распаўсюджаная методыка праграмавання каб вырашыць, у якім кірунку ісці, так бы мовіць. І ў нас таксама ёсць нейкі прабягаем структуры, дзе што мы робім нешта зноў і зноў. Цяпер, аказваецца, значна як у гэтым прыкладзе, быць супер дакладным важна. Але мы таксама бачылі нешта што мы працягваць называць абстракцыі. Што гэта значыць, каб падняць тэлефонную кнігу? Мы толькі збольшага прымаючы як само сабой разумеецца ў гэтым пакоі што гэта мае некаторы сэнсавае значэнне. Усе мы толькі часткова ведаем, пра, ну, падніміце тэлефонную кнігу. Што гэта на самай справе азначае? Ну, гэта на самай справе азначае падоўжыць рукі, нахіліцца, пашырце пальцы, заціснуць кнігу паміж пальцамі, ўстаць, цягнуць руку да вас. І мы маглі б быць на самой справе педантычным пра гэта, на самай справе быць супер дакладным адносна таго, што я раблю. Але ўсе гэтыя крокі калектыўна што гэта значыць, каб падняць тэлефонную кнігу. І вось раней, калі я сказаў, кожны з гэтых першых двух сцвярджэнняў можна разглядаць як працягнуць або функцыю, на самай справе яна ўяўляе сабой тое, што мы працягваюць называць абстракцыі. Гэта паходзіць на высокі ўзровень канцэптуальнай Апісанне праблемы, якая на самай справе ўключае ў сябе даволі шмат крокаў. І вось гэта таксама з'яўляецца паўтараюцца тэмы ў праграмаванні, у выніку чаго я мог бы напісаць праграму выкарыстоўваючы сінтаксіс як this-- pick_up_phone_book (). А потым сінтаксічна, я збіраецца скрасці нешта ад большасці моў праграмавання. Цяпер, крок 1 выглядае нават больш як функцыі, як праграміст назваў бы гэта. Падобна на тое, што нехта код даў імя і даў мне выкарыстоўваць somehow-- ў іншых словамі, што лінія я вылучыў ўяўляе функцыянальныя магчымасці, якія, магчыма, Я нават не рэалізаваць сябе. Хтосьці старэйшы, мудрэйшы я ўжо разабраўся як вы выказвае паняцце збірання тэлефонную кнігу. І гэта як пяць крокаў, якія я проста адбарабаняць, з верхняй частцы маёй галавы. Але ён ці яна ўжо рэалізавана гэта, даў тыя некалькі крокаў імя, pick_up_phone_book. І дужкамі толькі тое, што большасць праграмістаў рабіць у канцы заяў, як гэта. Цяпер я магу стаяць на яго ці яе плечы і ніколі, думаць пра тое, што гэта значыць каб падняць тэлефонную кнігу. Я магу проста сказаць, вазьміце тэлефонную кнігу. І гэта менавіта тое, што усе мы людзі рабілі тут. Калі мы былі, верагодна, 1 гадовы, 2-х гадоў, хто-то павінен навучыць нас, што гэта меў на ўвазе, каб падняць тэлефонную кнігу. І з таго часу, мы абстрагуемся ад вельмі нецікавыя механічныя крокі. І мы проста мець інтуітыўнае разуменне што гэта значыць вазьміце тэлефонную кнігу. І вы можаце экстрапаляваць прама цяпер да больш складаным things-- пабудаваць будынак. Маўляў, для некаторых людзей, што на самой справе мае сэнс. Для падрадчыкаў, архітэктараў, што мае нейкае значэнне. І яны будуць ведаць, што рабіць, калі Я сказаў, ідзі пабудаваць будынак. Але большасць з нас у пакоі не мог мець справу з гэтым узроўнем абстракцыі. Вы павінны сказаць нам як пайсці атрымаць рыдлёўку і пайсці атрымаць бетон і цвік кавалкі дрэва разам і ўсё астатняе удзельнічае ў будаўніцтве будынка. І гэта таму, што мы не маем усё ж быў запраграмаваны, каб зразумець, што значыць пабудаваць будынак. У нас няма гэтай абстракцыі. У нас няма гэтай функцыянальнасці. І так, што вы будзеце бачыць у мовы праграмавання, увогуле, асабліва больш сучасныя мовы, як Java, PHP, Ruby і Python, яны значна больш спелым чым больш старых моў, як З і З ++, і ўсё ж іншыя. І таму яны прыходзяць з больш Функцыянальнасць ўбудоўваецца. Больш код быў напісаны людзі ў мінулым што зараз мы можам назваць або заклікаць або выкарыстоўваць, так як я намякаў пры гэтым з лініі маршруту тут. І таму, нават калі мы не гаворым аб мовах праграмавання саміх па сабе, проста псевдокод код, усе з ідэі ўсё яшчэ ў гэтай дыскусіі. І атрымліваецца, дакладнасць супер важна, як гэта абстракцыя. І давайце паспрабуем паведаміць, што наступным чынам. Я выпадкова мог бы сапсаваны гэта мігценнем слайд на экране заўчасна. Але дазвольце мне папрасіць адважнага добраахвотніка, калі вы не пярэчыце, падыходзячы. Вы б у пярэдняй часткі камеры, калі вы ў парадку з гэтым. хто хацеў бы, каб прыдумаць і даць інструкцыі для вашых калегаў тут? Проста павінны прыйсці сюды і стаяць тут і сказаць некалькі слоў. Вікторыя усміхаецца самы і пазбягаючы вочы больш за ўсё. Вы былі б гатовыя прыйсці на уверх? ДОБРА. І калі ўсе астатнія на сваіх месцах можа выняць кавалак макулатуры, калі вы будзеце. Падшэўка папера добра. Прыходзьце такім чынам. Ці некаторыя з паперы, Вам далі ўчора, проста любы чысты ліст паперы, калі вы маглі б. І калі ў вас няма якой-небудзь, проста спытаеце свайго суседа, калі вы маглі б. Так што на дадзены момант, для У гэтым прыкладзе, Вікторыя будзе гуляць ролю праграміст, інжынер, які неабходна запраграмаваць вам усё, як і кампутары, каб зрабіць што-то. І мы паглядзім, якія здагадкі Вы вырашылі зрабіць. Мы паглядзім, наколькі дакладна яна хоча быць. І калі гэтая дэманстрацыя ідзе педагагічна добра, шмат памылак будзе зроблена, што мы будзем затым выкарыстоўваць што ў якасці магчымасці для абмеркавання. Але праблема для вас павінен быць, каб пазбегнуць гэтых памылак, быць добрым праграмістам. І таму задача пад рукой, калі вы б любіў гуляць тут, знаходзіцца ў пярэдняй часткі Вікторыі на экране here-- і, спадзяюся, ніхто з вас памятаеце пра гэта, калі я мільгаюць на экране. І не паварочвайся наогул, таму што ёсць яшчэ адзін экран у гэтым пакоі што я магу выключыць. Так што не абгортвацца. У пярэдняй частцы Вікторыя гэта той жа крык. І яе праца цяпер расказаць вам усё на вашым лісце паперы, што маляваць. І мы ўбачым, грунтуючыся на вусныя інструкцыі ў адзіночку, кампутарны код, калі вы будзеце, наколькі дакладныя вашы малюнкі are-- вашыя рэалізацый. Мае сэнс? ГЛЕДАЧЫ: Так. DAVID Малання: OK, выканаць. ГЛЕДАЧЫ: Намалюйце квадрат. [СМЕХ] DAVID Малання: І няма могуць быць зададзены пытанні. Можна толькі рабіць тое, што вы сказалі. Так, і калі ў вас ёсць сучасныя горкі адкрыць на ўкладцы, не глядзіце на ўкладцы. ДОБРА? ГЛЕДАЧЫ: ОК, намалюйце круг. Slope-- я магу сказаць, нахіл? DAVID Малання: Да вас. ГЛЕДАЧЫ: Схіл. І трохкутнік. DAVID Малання: Добра. І застацца тут на імгненне. І я збіраюся прыехаць вакол усяго хвіліну. І не трэба ставіць свае імёны на ім. Дазвольце мне вакол і сабраць свае малюнкі, калі вы не пярэчыце, раздзіраючы іх. Вось тое, што мы вярнуліся. Я буду праецыраваць яго на экране. Я бачу, квадрат, круг, схіл, і трохкутнік. Так што быў адзін адказ там. І let's-- воклічы. Дзякуй. Вось іншы асартымент, і адзін за ім. Так што ўсе яны, здаецца, каб захапіць дух. Дзякуй. Там іншая, і вось яшчэ адзін. Інтэрпрэтацыя нахілу з'яўляецца трохі адрозніваецца, трохі спакушала. І бліжэй, альбо з-за выдатная спецыфіка, з якой вы маеце апісана, або, можа быць, вы, здаецца, бачыў яго раней, гэта сапраўды што Вікторыя была на самай справе з апісаннем. Але цяпер, тыя з вас, хто ня атрымаць яго зусім дакладна, давайце прапанаваць некаторыя пярэчанні тут. Так што Вікторыя спачатку сказаў намаляваць квадрат. І цяпер, мы можам выказаць здагадку, дзеля сённяшняга дня што ўсе ведаюць як маляваць квадрат. Але гэта не зусім зразумела, праўда? Як яшчэ вы маглі б малюецца квадрат, або дзе могуць быць некаторыя няяснасьці тут для кампутара? ГЛЕДАЧЫ: Размяшчэнне і памер. DAVID Малання: Месцазнаходжанне, ці не так? Усе вы мелі паперу нейкай форме, як правіла, прастакутнікамі, але трохі розныя памеры. Але вы, вядома, маглі б намаляваныя, калі вы хочаце, велізарны квадрат, можа быць, малюсенькі квадрат. Можа быць, гэта быў павернуты. Я не думаю, што мы ўбачылі, што. Але гэта магло б быць больш алмазаў як, але да гэтага часу, тым не менш, матэматычна квадрат. Так што, магчыма, было неадназначным. Потым яна сказала, намалюйце круг. Некаторыя з вас зрабіў зрабіць яго побач з ён, які не з'яўляецца неабгрунтаваным, таму, што людзі схільныя думаць, ці чытаць справа налева ў большасці моў, таму не дрэннае здагадка. Але гэтае кола можа мець быў ўнутры квадрата, магло быць вакол квадрат, мог бы быць у іншым месцы на лісце, так што, магчыма, неадназначны. Нахіл можа быць, можа быць, прымаючы самыя волі ў вуснай форме з тым, што гэта значыць. І некаторыя з вас інтэрпрэтаваныя гэта як хвалістая лінія або прамая лінія ці таму падобнае. А потым трохкутнік, таксама можа мець быў арыентаваны ў любым ліку шляхоў. Карацей кажучы, нават з чымсьці, што вы глядзіце і вы як, нічога сабе, так проста, дзіця можа намаляваць, а не на самай справе, калі вы не супер, супер пераканаўчымі і сказаць кампутара дакладна, што рабіць. Так што, калі мы маглі б, калі ў вас ёсць іншы ліст паперы, давайце паспрабуйце гэта яшчэ раз. І я збіраюся даць Вікторыі адзін Іншы прыклад на экране тут. І зноў жа, не паварочвайся і не глядзіце на слайдах. І я дам ёй на імгненне, каб думаць пра тое, як апісаць гэта. Не дазваляйце ім бачыць страх у вашых вачах. [СМЕХ] І зноў, на гэты раз рычагі некаторыя з гэтых ежы на дом і паспрабаваць атрымаць амаль усіх па меншай меры, правільны адказ. АЎДЫТОРЫЯ: Добра, вазьміце кавалак паперы, паглядзіце ў сярэдзіне гэтага кавалка паперы. У сярэдзіне гэтага кавалка паперы, маляваць куб. [СМЕХ] DAVID Малання: Што мы даведаліся? Мы былі так блізкія. Добра, паўторыце, калі вы маглі б, для ўсіх. ГЛЕДАЧЫ: У сярэдзіне ліст паперы, намалюйце аб'ект, які выглядае як куб. DAVID Малання: Добра, гэта усё, што вы атрымаеце, каб працаваць з. Дазвольце мне быць аналітычным і не столькі крытычна, але зрабіць заяўку што Вікторыя вызначана здаецца, думае ў вельмі абстракцыямі высокага ўзроўню, якія не з'яўляецца неабгрунтаваным. Таму што ў адваротным выпадку, мы б усе быць даволі дысфункцыянальным, калі мы павінны былі быць вельмі дакладным з усім, што мы робім у свеце. Але сказаць, перайсці да middle-- I думалі, што мы былі на такой добрай трасе там, як перайсці да самога цэнтру старонкі, а затым намалюйце куб. Такім чынам, яна думае ў абстракцыі, таму што яна па-ранейшаму прагляду што на экране, як на самой справе куб. Але ёсць вельмі шмат магчымасцяў для інтэрпрэтацыі там. І на самай справе, ёсць так шмат іншыя спосабы, якімі Вы маглі б выказаць што, што я прапаную ў хвіліну. Так што тут у нас ёсць адно ўвасабленне з picture-- whoops-- аднаго ўвасабленне карціны, так трохі трохвымернасці да яго, што прыемна. Вось яшчэ адна, дзе ў вас ёсць тое ж самае, хоць гэта свайго роду адкрыты куб. Некаторыя людзі ўзялі яго крыху больш плоскім, двухмерных. І гэта выдатна. Так што, на самай справе ў цэнтр паперы. Гэта той, які я думаю, што вы будзеце як, таму што калі мы ідзем сюды, гэта тое, што яна апісвала. Так што цяпер, дазвольце мне прапанаваць, як яшчэ мы маглі б апісаць гэтую сітуацыю. Назад у дзень, адзін з самых больш распаўсюджаныя спосабы навучыцца праграмаванні павінен быў напісаць код, піша лініі інструкцый, якая кіравала трохі чарапаха на экране. Лагатып і іншыя варыянты гэтага было назва мовы. І чарапаха жыла ў свеце. Такім чынам, няхай гэта прастакутны прастора яго свет. А вы б пачаць з assuming-- I на самай справе не ведаю, як маляваць чарапаху, так што давайце рабіць гэта так. А потым у яго снарад а затым, магчыма, некаторыя ногі. Такім чынам, вы маглі б мець гэты маленькі сімвал на экране. І прадмет гэтага мова праграмавання павінен быў прымусіць чарапаху ісці ўверх, уніз, налева, направа і пакласці пяро ўніз або забраць яго пяра ўверх, так што ён можа на самай справе маляваць на экране у гэтым вельмі плоскі прастакутны свет. Дык дзе я думаў, што ты мог бы ісці, і дзе вы павінны разгледзець дайвінг ўніз думках пры апісанні інструкцыі ў больш агульным плане, Я б сцвярджаць, гэта пакласці вашыя пяро ўніз ў middle-- і мы пазбавіцца ад чарапаха, таму што я не магу захаваць малюнак яго вельмі добра. А цяпер, як яшчэ мог Я кажу маляваць куб? Ну, мы маглі б сказаць нешта накшталт нічыёй дыяганальная лінія на паўночны ўсход, да прыкладу, або пад вуглом 45 градусаў уверх. І гэта, магчыма, атрымалі мяне тут. І я даволі далёка ад куба. Але цяпер, я мог бы сказаць нешта як павярнуць на 90 градусаў налева і намаляваць лінію роўнай даўжыні на паўночны захад. І я мог бы працягнуць з аналагічнымі напрамкамі. І гэта не будзе лёгка. І, шчыра кажучы, мы, верагодна, быў тут на працягу пяці хвілін. Але, магчыма, мы атрымалі б, каб тое, што, у рэшце рэшт, заканчвае тым, што куб, але мы нырнуў ўнутры гэтай абстракцыі зрабіць гэта пры такой нізкай ўзровень, які вы не можаце рэальна убачыць, што вы робіце, пакуль усё рэч, на самай справе ёсць на старонцы. І так гэта агульны прынцып, зноў жа, programming-- гэтай ідэі абстракцыі. Гэта так цудоўна магутны, таму што зноў, яна проста сказала, маляваць куб, які ўсё мы даволі шмат бы звяртаў увагі вельмі хутка. Мы б проста зразумець, Добра, маляваць куб. Мы не маглі б ведаць арыентацыю, такім чынам, мы маглі б быць крыху больш дакладным, але мы можам ўявіць сабе, як правіла ці ведаеце, што такое куб. І гэта карысна, таму што калі кожны раз, калі вы сеў праграмістам у клавіятура для напісання кода, калі вы павінны былі думаць у такіх нізкі ўзровень, ніхто з нас будзе калі-небудзь што-небудзь зрабіць. І, вядома ж, ніхто з нас не будзе атрымліваць задавальненне ад працэсу напісання кода. Было б, як пісаў у 0 і 1-х, які адкрыта не так даўно людзі былі напісання кода ў 0 і 1-х. І мы вельмі хутка прыдумалі гэта больш высокі ўзровень languages-- C ++ і Java, і іншыя. Дык давайце паспрабуем гэта яшчэ раз проста пераварочваць сталы, так што ўсе з нас маюць магчымасць падумаць ў даволі такім жа чынам. Ці можам мы атрымаць яшчэ адзін добраахвотнік гэты час, каб падысці да дошкі і маляваць, не чытаць? Так, добра. Бэн, давай ўверх. І, Бэн, у гэтым выпадку, як толькі вы тварам да дошкі, не глядзець налева, не глядзіце прама. Толькі зрабіце тое, што ваш калегі тут сказаць вам. А для ўсіх астатніх у пакоя, вы зараз праграміст. Ён кампутар. І карціна, якую я выбраў тут Загадзя гэта адзін тут. Яны просто-- яны думаюць смешныя жарты ўсё. Так ці будзе хто-то хацеў бы добраахвотнікам першую інструкцыю або зацвярджэнне, што павінна пяро каманднага Бэн? І мы зробім гэта ўсё разам, можа быць, адна каманда ад кожнага чалавека. Мне вельмі шкада? ГЛЕДАЧЫ: Намалюйце круг. DAVID Малання: Намалюйце круг гэта першае, што я пачуў. ГЛЕДАЧЫ: наверсе. DAVID Малання: наверсе. Добра, мы можам дазволіць вам выдаліць, адмяніць. А зараз хто-то іншы. Дэн, вы былі б зручнымі прапаноўваючы наступную інструкцыю? АЎДЫТОРЫЯ: Вядома, маляваць цэнтр у ніжняй частцы круга, з small-- трохі невялікая прастора ад таго, намаляваць прамую лінію ўніз да трох чвэрці шляху ўніз дошкі пад невялікім вуглом да левай баку. DAVID Малання: Добра. ГЛЕДАЧЫ: невялікі кут. DAVID Малання: Undo, Control-Z. ДОБРА. Андрэй, вы хочаце прапанаваць да наступнай інструкцыі? АЎДЫТОРЫЯ: Вядома. З ніжняй частцы гэтай лініі, далейшае нязначнае angle-- whoops-- можа быць каля траціны даўжыні [неразборліва], невялікі кут ўніз і, як траціну даўжыні [неразборліва]. Так што так, з гэтага моманту, намаляваць лінію на траціну даўжыні папярэдняга лінія далей налева. DAVID Малання: Гэта добра? Прамая лінія, гэта нармальна? Добра, Аліўе, вы хочаце прапанаваць на наступны? ГЛЕДАЧЫ: [неразборліва] з ніжняй частцы круга, [неразборліва]. Намалюйце на правай баку з [неразборліва] сантыметраў. [СМЕХ] DAVID Малання: Я думаю, што вы збіраецеся павінны пераўтварыць гэта цалі тут. АЎДЫТОРЫЯ: Стоп. [СМЕХ] DAVID Малання: OK. [? Ара ,?] Вы хочаце прапанаваць на наступны? ГЛЕДАЧЫ: маляваць [неразборліва] верхняя [неразборліва] тое ж самае. [Неразборліва] круг, прыцягнуць да [Неразборліва] і маляваць [неразборліва]. DAVID Малання: Добра, больш не адмяніць. Давайце зробім яшчэ адну або дзве каманды. Крыс, вы хочаце прапанаваць адзін? ГЛЕДАЧЫ: На дне акружнасці, [неразборліва] намаляваць лінію, роўную вынасных ўніз налева [неразборліва]. DAVID Малання: OK. Эндру? Мы did-- Karim? ГЛЕДАЧЫ: Пачынаючы з правага лініі, канец левай лініі, у ніжняй частцы, вы збіраецеся ісці прама аб такой жа даўжыні, як лініі вы на, прыцягваючы да правы [неразборліва]. [Неразборліва] градусаў, так што [неразборліва] градусаў на правай баку. DAVID Малання: Добра. Давайце паўзу. Не паварочвайся пакуль. Давайце паўзу, і давайце паспрабаваць яшчэ адну спробу перш чым адкрыць Бэн што ён маляваў. Ці можаце вы ператасаваць Бэна right-- ці на самай справе, не, давайце проста даць вам іншая дошка, яшчэ лепш. Так што б хто-то цяпер падабаецца прыняць больш падыходу што Вікторыя прыняла раней, дзе мы гаворым на больш высокім узроўні абстракцыі і ўсяго прапановы ці два апісання Бэн што маляваць без трапляючы ў пустазелля, так бы мовіць, на гэтым больш нізкім узроўні? Вікторыя. [СМЕХ] ГЛЕДАЧЫ: Намалюйце фігуру пешага чалавека. І яго ногі і рукі павінны быць правы бок. DAVID Малання: Добра, гэта ўсё, што вы атрымаеце. Добра. Чаму б нам не адкрыць Бэн, што ён зрабіў. Так апладысментамі. Гэта было самае цяжкае, мабыць. Так што нават калі мы гаворым ў даволі дурныя тэрміны аб проста малюнак фатаграфіі, спадзяюся, вы можа рэальна ацаніць ступень выразнасць, якія могуць быць неабходныя для таго, каб паведаміць кампутара, што рабіць. І на самай справе, той факт, што Бэн быў у стане зрабіць гэта так хутка з'яўляецца свайго роду завяшчанне з выкарыстаннем мову, можа быць, больш высокі ўзровень версія англійскай мовы, што дазваляе яму проста выкарыстоўваць слова ці пачуць словы ад Вікторыі, якія дазваляюць яму гэтыя abstractions-- проста маляваць фігура хадзіць да right-- такога роду мае некаторыя сэнсавае значэнне для яго гэтага не амаль гэтак жа відавочна, калі вы толькі кажучы, пакласці ручку ўніз, маляваць направа, маляваць налева. І вось гэта таксама вельмі распаўсюджаныя ў праграмаванні. Гэта было б сказаць, што падобна вельмі нізкі ўзровень мовы, праграмаванне у 0 і 1, калі вы будзеце. І гэта было б больш высокі ўзровень Мова праграмавання ў Java, ці нешта ў гэтым родзе. трохі спрашчэннем, але гэта свайго роду як эмацыйны адчуванне, што вы адчуваеце, калі выкарыстоўваючы адзін від рэч ці іншай. Трохі расчаравання тут неабходнасцю для такой дакладнасці, але магчымасць каб быць крыху вальней з інтэрпрэтацыя тут. Але, вядома, памылкі можа паўстаць у выніку. Калі вы хочаце на home-- мы не будзе рабіць гэта адно ў class-- але калі вы хочаце давесці гэты адзін дом, Я думаў, што мы пагрузіліся ў гэта. Так што калі вы хочаце гуляць у гэтую гульня з іншымі значнымі ці дзеці ці таму падобнае, вы маглі б атрымліваць асалоду ад, што добра. Так што давайце ісці наперад і глядзець на адзін апошні рэч тут для вылічальнага мыслення. І гэта падводзіць нас да Джона Олівер, а не для кліпа Вы, магчыма, бачылі мінулай ноччу, але некалькі нядаўніх выпускаў. Некалькі месяцаў таму, Volkswagen узяў зусім няшмат зенітнай па якой прычыне, калі вы ведаеце? Што яны атрымалі непрыемнасці з-за? Так, так што яны emissions-- спрабавалі біць выкідаў Тэсты па сутнасці, маючы іх аўтамабілі забруджваюць навакольнае асяроддзе менш калі іх аўтамабілі выпрабоўваліся і забруджваюць навакольнае асяроддзе больш калі аўтамабілі не былі выпрабаваныя. І што ўсё больш і больш цікавым ў свеце, так як вы можаце разумеем ад абмеркаванняў like--, што it-- CarPlay, праграмнае забеспячэнне ад Apple для аўтамабіляў а таксама той факт, што многія з нас усё больш і больш маюць сэнсарныя экраны ў нашых аўтамабілях, ёсць страхавітае колькасць праграмнага забеспячэння ў Народным аўтамабілі сёння, што адкрыта адкрывае цэлую слоік з чарвякамі, калі гаворка ідзе пра бяспеку і фізічнай небяспекі. Але на сённяшні дзень, давайце засяродзіцца толькі на тое, што ўдзел у напісанні праграмнага забеспячэння што магло б маніпуляцыям сістэму. для вызначэння праблема, для тых, хто не знаёмы, давайце зірнем на Джона Олівера. А для тых, хто знаёмы з праблема, давайце паглядзім на яго у займальнай гульнявой лінзы праз Джон Олівер, а таксама. Такім чынам, дазвольце мне ўдарыў гуляць на гэтым, я думаю, троххвілінны ўвядзенне. Чорт пабяры. [ВИДЕОВОСПРОИЗВЕДЕНИЕ] -Cars-- DAVID Малання: Відавочна, на YouTube, it's-- - --the Разумныя персанажы Фарсаж фільмы. На гэтым тыдні, нямецкі аўтавытворца Volkswagen апынуўся ў сярэдзіне скандалу патэнцыйна крымінальныя прапорцыі. -Volkswagen Рыхтуецца мільярды штрафаў, магчымыя крымінальныя абвінавачванні для яе кіраўнікоў, а кампанія просіць прабачэньня за фальсіфікацыю 11 мільёнаў аўтамабіляў у дапамагчы яму перамагчы выпрабаванні на выкіды. -Certain Дызельныя мадэлі былі распрацаваны са складаным праграмным забеспячэннем, выкарыстоўвалі інфармацыю, у тым ліку становішча рулявога колы і транспартнага сродку Хуткасць, каб вызначыць, што аўтамабіль быў праходзяць выпрабаванні на выкіды. У адпаведнасці з гэтым акалічнасцю, рухавік прывядзе да скарачэння выкідаў таксічных рэчываў. Але машына была абсталявана абысці што, калі ён быў гоняць. Выкіды павялічыліся ад 10 да 40 разы вышэй дапушчальных узроўняў EPA. -Wow, Ад 10 да 40 разоў больш, чым EPA дазваляе. Гэта самае горшае, Volkswagen калі-небудзь рабіў, што-то вы маглі б сказаць, калі вы ніколі не чулі пра Другую сусветную вайну. Але, магчыма, самы верны прыкмета таго, як шмат клопатаў Volkswagen знаходзіцца, з'яўляецца тое, што людзі на самай зверху ступілі ўніз. Генеральны дырэктар падаў у адстаўку ў сераду пасля таго, як узбіраюцца, каб зрабіць рамонтна-аднаўленчыя работы, сказаўшы, што ён бясконца шкада, што гучалі пышна, пакуль не атрымалася ён быў усяго толькі 10% шкада але падстроіў яго рот каб штучна завысіць яго sorriness. А між тым, Volkswagen у ЗША галоўным было прабачэнне яго ўласнай. -Давайце Быць ясна кажа пра гэта, наша кампанія была несумленным. І ў маіх нямецкіх слоў, мы былі цалкам аблажаўся. -Ага, Але цалкам ўшрубоўваецца да ня нямецкія працы. І нямецкую мову мае шмат прыгожых фраз апісваць сітуацыі, гэтак жа, як гэта, такіх, як [Германская], што азначае, груба кажучы, смутак, якая прыходзіць ад бізнэсу, звязаных хлусні, або [НЯМЕЦКАЯ], які перакладае а сароміць адны бацькі з удзелам аблокі бензіну. Гэта прыгожы мову. Ён проста адплывае мову. І, дарэчы, у той час як мужчынскі прабачэнне можа гучаць шчырая, варта адзначыць, што ён казаў на афіцыйны запуск партыя за 2016 год Volkswagen Passat, а гэта азначае, што ў бліжэйшы час пасля таго, як казаў шкада, што ён сказаў гэта. -Дзякуй Вялікае, што прыйшлі. Нацешыцеся ўвечары. Да наступнага Лэні Кравіц. [МУЗЫКА] -Добра, OK, канчатак вашага Прабачэнне з да наступнага Лэні Кравіц не крычаць цвярозы раскаянне. Ён крычыць, мы папрасілі Bon Jovi, і ён сказаў, што не. Марка Volkswagen мае былі моцна пашкоджаны. І, шчыра кажучы, іх новае аб'яву кампанія дакладна не дапамагае. - [НЯМЕЦКАЯ], мы ў Volkswagen хацеў бы папрасіць прабачэння за падман вас нашы транспартныя сродкі. [КАНЕЦ засьпяваю] DAVID Малання: Так што гэта было вакольны шлях of-- sorry-- гэта быў вакольны шлях прадстаўляючы фундаментальную праблему у праграмным забеспячэнні, якое з'яўляецца тое, што вам неабходна выявіць пэўныя ўмовы. І таму пытанне тут пад рукой гэта, як робіць аўтамабіль патэнцыйна, як гэта рэалізавана ў праграмным забеспячэнні гэтымі праграмістамі, выявіць, што гэта на самай справе праходзіць выпрабаванні? Такім чынам, каб быць супер ясна, што яны робяць быў, у асяроддзях, дзе праграмісты фігурны аўтамабіль быў быць выпрабаванае, яны нейкім чынам зрабіў аўтамабіль выкідваюць менш выкідаў, менш выкіды, тым менш таксічных пароў і да таго падобнае. Але калі гэта нармальна кіраванне на дарозе, было б проста выпускаць столькі забруджванне навакольнага асяроддзя, як яна хацела. Такім чынам, як мы маглі б напісаць псевдокод для гэтага алгарытму? Як мы маглі б напісаць псевдокод для праграмнага забеспячэння, які працуе ў машыне? Я маю на ўвазе, у двух словах, ён кіпіць ўніз да чаго-то накшталт гэтага. калі тэстуецца, выпраменьваюць менш. яшчэ выпраменьвае больш. Але гэта крыху Занадта высокі ўзровень, ці не так? Давайце паспрабуем нырнуць, як да чаго гэта абстракцыя быць праверанымі сродкамі. Іншымі словамі, нават калі вы нічога не ведаеце пра машыны, якія пытанні вы маглі б папрасіць, каб вызначыць, ці з'яўляецца вы выпрабоўваецца, калі вы аўтамабіль? Якія характарыстыкі могуць быць ўявіць, калі аўтамабіль праходзіць выпрабаванні? ГЛЕДАЧЫ: Выпрабавальнае абсталяванне. DAVID Малання: Выпрабавальнае абсталяванне. Так што, калі выпрабавальнае абсталяванне побач, а затым выпраменьваюць менш. Так што я мог сабе ўявіць, рэалізацыі што з якой-камер або выяўленне таго, што вакол вас. І дазвольце мне прапанаваць, што проста адчувае сябе занадта складана на самай справе ёсць дадатковая апаратнае забеспячэнне толькі для гэтай мэты. ГЛЕДАЧЫ: Калі вы знаходзіцеся ў парк, калі ваш капот адкрыты. DAVID Малання: У парку або капот адкрыты, так што гэта добра. ГЛЕДАЧЫ: І машына працуе. DAVID Малання: Так што гэта крыху больш concrete-- і машына працуе. Так што гэта было б збег некалькі розных умоў, калі вы будзеце. Так што, калі аўтамабіль знаходзіцца ў парку, і нават хоць гэта вельмі механічная рэч як правіла, я мог уявіце сабе напісанне праграмнага забеспячэння, асабліва таму, што ёсць часта святло там у гэтыя дні, Я мог сабе ўявіць, каб там быць праграмнае забеспячэнне, якое можа запытаць рычаг пераключэння або тое, што няма, ты ў парку, з'яўляюцца Вы ў прывадзе, ты ў зваротным кірунку. І я магу атрымаць назад адказаць на гэта альбо ды ня ці не да тых відах пытанняў. І такім чынам я мог бы таксама, верагодна, адказаць пытанне, як, з'яўляецца адкрытым капотам. Можа быць, ёсць нейкі датчык што альбо дае мне назад 1 або 0, сапраўдным або ілжывым, капот адкрыты. А потым машына працуе, я мог бы выявіць нешта з дапамогай якога мэханізму? Маўляў, аўтамабіль працуе, я можа выявіць, што ён уключаны, я мог выявіць нейкім чынам што аўтамабіль рухаецца? АЎДЫТОРЫЯ: РПМ. DAVID Малання: Так, так што ёсць заўсёды, што іголка, якая кажа вам, колькі абаротаў у хвілінныя колы адчуваюць. І такім чынам я мог глядзець на гэта. І калі гэта не 0, што, верагодна, азначае, што аўтамабіль рухаецца. Але мы павінны быць крыху там асцярожна, because-- давайце спрасціць this-- калі мы толькі што сказалі, калі машына працуе, мы не хочам, каб проста выкідваюць менш, мы хочам, калі аўтамабіль працуе і гэта правяраецца. Такім чынам, ёсць некалькі іншых інгрэдыенты, якія людзі выказалі здагадку, што праграмнае забеспячэнне робіць, таму што адсутнага фактычнага зыходнага кода, вы можаце толькі свайго роду выводзім з фізічныя эфекты аўтамабіля адносна таго, што магло ісці далей пад капот у праграмным забеспячэнні. Так што, калі машына працуе і, магчыма, скажам, заднія колы не рухаюцца, ці можа гэта быць паказальна нейкі тэст? Што я тут намякаеце? Ды, можа быць, гэта на адзін з гэтых ролікавых рэчаў, дзе, як колы паварочваюцца у пярэдняй або ў задняй частцы, у залежнасці ад таго, ці з'яўляецца гэта пярэдняе кола або задні прывад колаў, так што палова колаў рухаюцца, але Два іншых няма, што гэта дзіўная сітуацыя ў рэальным свеце. Калі вы за рулём на дарогі, што не павінна адбыцца. Але калі вы на складзе на нейкі ролікавай сістэмы, што сапраўды можа адбыцца. Я думаю, што людзі таксама прапанаваў, што, магчыма, калі аўтамабіль працуе і рулявое кіраванне Кола не рухаецца, што таксама можа быць сігналам, таму што гэта разумна як не адкладваючы на ​​дарозе. Але нават тады, чалавек, верагодна, перамяшчаючы яго крыху або, вядома, на працягу некалькіх секунд. або ходзе хвіліна, шанцы гэта не будзе фіксавацца ў дакладна такое ж становішча. Такім чынам, іншымі словамі, мы можа ўзяць адніманне, вы тэстуецца, і зламаць гэтую функцыянальнасць у гэтых складовых кампанентаў. І гэта сапраўды тое, што Фольксваген інжынеры неяк зрабіў. Яны напісалі праграмнае забеспячэнне свядома выявіць, калі аўтамабіль праходзіць выпрабаванні, таму выпраменьваюць менш, астатняе выпускаюць звычайным спосабам. І праблема тут таксама, у тым, што праграмнае забеспячэнне не з'яўляецца тое, што вы не можаце рэальна ўбачыць, калі ў вас ёсць так званы зыходны код. Такім чынам, ёсць два розных тыпу code-- па меншай меры, два розных тыпу кода ў свеце. Там нешта называецца крыніца код, які не з'яўляецца ў адрозненне ад таго мы пісалі, зыходны код. Гэта зыходны код, напісаны на мова называецца псевдокод, які толькі што-то на англійскай, як. Там няма афіцыйнага вызначэння гэтага. Але С і Java, C ++, тыя, ўсе афіцыйныя мовы, якія, калі вы пішаце ў іх, што ў вас ёсць ўяўляе сабой тэкставы файл, які змяшчае зыходны код. Але ёсць і нешта ў свет называецца машынны код. І машынны код, на жаль, гэта толькі 0 і 1-х. Так машынны код, што машыны разумеюць, вядома. Зыходны код гэта тое, што людзі разумеюць. І наогул, але не заўсёды, ёсць праграма што праграміст выкарыстоўвае, які прымае крыніца код і ператварае яго ў машынны код. І гэтая праграма звычайна называюць кампілятар. Такім чынам, ваш ўклад зыходны код, ваш выхад машынны код, і кампілятар з'яўляецца часткай праграмнае забеспячэнне, якое робіць гэты працэс. Так што гэта на самай справе карты прыгожа нашы ўваходы, алгарытмы, выхады. Але гэта вельмі спецыфічнае ўвасабленне аб тым, што сказаць, што, нават калі ў вас ёсць адзін з Фольксваген аўтамабіляў, што вінаватыя ў гэтым, гэта не так, як вы можаце проста адкрыць капот ці адкрыць кіраўніцтва карыстальніка або паглядзець у зыходным кодзе, таму што да таго часу, ён дасягае вашага аўтамабіля ў дарозе, гэта ўжо было пераўтворыцца ў 0 і 1-х. І гэта вельмі цяжка, але не немагчыма, але вельмі цяжка запазычыць шмат усяго ад проста гледзячы на які ляжыць у аснове 0 і 1-х. Такім чынам, вы можаце зразумець гэта, у канчатковым рахунку, калі вы разумееце, як машына operates-- Intel inside--, калі вы разумееце, архітэктура Intel, але гэта вельмі шмат часу. І нават там, вы маглі б ня быць у стане ўбачыць усё што код можа рэальна зрабіць. Ёсць пытанні з гэтай нагоды ці гэта Такі працэс у больш агульным плане? І на самай справе, мы можам звязаць гэтую дыскусію ўчорашняга абмеркавання Apple. Гэта таксама, чаму ФБР не можа проста пайсці і паглядзець у тэлефон падазраванага і знайсці радкі кода, для напрыклад, што дазволіць код доступу ці ўключыць гэтую затрымку 80 мілісекунд. Таму што да таго часу, гэта на iPhone стыпендыята, гэта ўжо было пераўтворыцца ў 0 і 1-х. Што ж, давайце спынімся тут для нашага глядзець на вылічальнай мыслення. Чаму б нам не ўзяць 15-хвілінны перапынак. І калі мы вернемся, мы будзем зірнуць на праграмаванне само па сабе і пачаць карту некаторыя з гэтых канцэпцый высокага ўзроўню да фактычнага, калі гуллівы, мова праграмавання.