Дејвид MALAN: Добредојде назад, сите.
Така вчера, ќе се потсетиме дека ние се фокусиравме на овие теми тука.
Значи имавме четири сеопфатни topics-- приватност, безбедност, и општеството;
интернет технологии; облак компјутери; и на крајот, веб развој.
>> Дали некој го има пропусниот опсег или време
за да се види малку Јован Оливер минатата ноќ?
Тоа е всушност прилично смешен, ако не и малку застрашувачки.
За било какви прашања за ништо ние го правеше вчера?
Секое појаснување?
За било какви прашања што сакате да се направи дека ние се допре на денес во некоја форма?
Значи чиста чеша.
>> Значи она што е на дневен ред за денес?
Па мислев дека би започне денес со поглед на она што е генерално
познат како пресметковни thinking-- на ризикот од oversimplifying, мислејќи
како компјутер, можеби размислува како инженер,
и се обидува да почне да организирате вашите мисли
или да ви даде подобро чувство на она што се вклучени во всушност командантот
компјутер да се направи нешто по пат на програмирање.
И ние ќе го задржи во прилично високо ниво, доста англиски јазик,
но обидете се да го користите на познати примери за да се формализира како
ќе одат за решавање на проблемите.
>> И ние ќе го ревидира некои CS теми, како апстракција,
кој дојде до неколку пати вчера,
алгоритми, а потоа застапеност.
И тоа е каде што ќе започне денес во само еден миг.
Тогаш ние ќе ги разгледаме во програмирање.
Ние ќе ги разгледаме во некои основните конструкции
со која ќе може да биде запознаен па дури и може да се најдат доста интуитивен.
>> Ние ќе се погледне, всушност, во програмирање на примерок
животната средина, кој е многу достапни, многу радосна, и навистина насочени
за деца од 12 и нагоре.
Ние ќе поминат неколку минути има а потоа да се работи на пониско ниво
а всушност се зборува за некои од алгоритми и структури на податоци,
така да се каже, дека програмери обично користат
за решавање на проблеми многу повеќе ефикасно отколку што може
да биде во можност да се направи без нив целосно.
Потоа, по ручекот, ќе ги разгледаме Купишта на технологија, што е само
фенси начин да се каже збирки на технологии
дека можете да го користите да се решавање на некои проблеми.
И ние ќе се зборува за азбуката супа од јазиците кои постојат today--
Java и Python и C ++ и PHP и Руби и сите видови на други работи.
>> Ние ќе ги разгледаме накратко на дизајнот обрасци.
Програмери, со текот на времето, ЈА ДОНЕСОА методологии
кои имаат тенденција да им помогне решавање на проблеми уште веднаш.
Кога ќе почнете да се види пишување на ист вид на кодот повторно и повторно,
луѓе формализира овие повторувања и имиња припишат на нив
а потоа ги користат и промовирање на нив, во крајна линија.
И ние ќе се зборува малку за мобилни стратегии,
како она што значи да се, всушност, се направи еден мобилен стан или мобилен веб-сајт.
Да го направам тоа за Android?
Дали ви се направи за iOS?
Дали го направи тоа за двете од овие?
А што се размени?
И тогаш, конечно, ќе се веб програмирање изглед, кој
е колективен термин навистина го опишува секое време
пишувате софтвер кој е со цел да работат на веб,
без разлика дали на телефони или десктоп компјутери или лаптопи.
Ние ќе земеме краток поглед на бази на податоци и дизајн
во него, само затоа што речиси секој интересни веб-базирана апликација
овие денови има некој вид на база на податоци.
Во спротивно, тоа би само да биде статична содржина.
И базата на податоци ви овозможува да направите промени со текот на времето, без разлика дали се
или од корисниците.
И ние ќе се разгледа како ќе ќе одат за дизајнирање
таа база на податоци и видот на жаргон кои би можеле да доаѓаат во за инженер
дискусија на бела табла кога всушност спроведување
еден стан за прв пат.
>> Ние ќе разговараме на кратко за API-јата, корисни услуги
дека можете да го користите да се застане на рамениците на другите, дали компаниите
или физички лица, како и решавање на вашите сопствените проблеми побрзо.
А потоа ние ќе плискам можеби малку со JavaScript,
програмски јазик кој се користи и во пребарувачи овие денови, но, исто така,
во сервери.
И можеби, ние ќе се враќаме, времето дозволува,
некои од рацете на веб работи кои направи вчера и да се интегрираат двете
заедно пред да се одложи.
>> Така е и со that-- што е ahead-- е Има ли нешто што недостасува
би сакале да бидете сигурни дека ние вметнете и се смести на во некоја точка.
Ако тоа е извори на ум, го донесе пред долго.
Но, зошто да не се започне со се погледне на компјутерската размислување.
>> И дозволете ми да предложи компјутерската размислување е, повторно,
вид на опис на високо ниво на што може да се направи компјутерски научник.
И навистина, да почнеме со три состојки кои
може да оди во компјутерската размислување.
Ова е само еден начин на опишување.
Ние, секако, може да се дефинира ова во секој број на начини.
>> Но, дозволете ми предложи, за доброто на денешницата,
дека проблемите во светот, сите проблеми во светот,
кога пријде од страна на компјутерски научник можев
се гледа како на она што ние ќе повик влезови, кои
треба да се хранат во она што ние ќе го наречеме алгоритми, кои потоа даде резултати.
Со други зборови, целиот светот на решавање на проблемите тврдам
може да биде дестилиран во овие три состојки.
Значи она што го мислам со влезови?
Влезови е само она што го предаден со цел да се реши.
>> На пример, тука е старата школа проблем.
Ако имам именик тука и Сакам да гледам нешто во неа,
ова е мојот влез.
Имам 1.000 жители страници во именикот.
Ова е влез за мојот проблем.
И јас сакам да се најде нешто како Мајк Смит, па така на пријател
чие име и број е се надевам дека во овој адресар.
>> Ова е пред деновите на мобилен телефони, така што не може само да бараат за тоа.
Па морам да го направи тоа стариот училиште, а всушност пребарување
овие влезови за некои одговори.
И тој одговор е само ќе да се нарекува излез.
Значи влезот е телефонот книга.
Алгоритмот е она што сет на чекори што јас се користи да се најде Мајк Смит.
А излезот е, се надевам, телефонски број Мајк Смит.
И ова, тогаш ќе биде само претставник на повеќето било каков проблем
да со вас се предадени влезови и сакаат да дадат резултати.
>> Па пред да се разгледа процесот со што може да се реши тој проблем,
наоѓање на Мајк Смит и така нешто,
ајде да се разгледа на првата и на last-- влезови и излези.
Физички, се разбира, на влез овде е еден куп на хартија залепени заедно
во форма на телефон книга.
Но, компјутери, лаптопи разбира на и десктоп компјутери, па дури и мобилни телефони
овие days-- оние кои се Електронски Уреди.
>> И на крајот на денот, што е единствениот влез на компјутер?
Па, тоа е нешто како ова кабелот за напојување тука.
Јас го приклучиш во ѕидот, и Да се ​​добие протокот на електрони,
кој ми дозволува да се кандидира на машината.
Или можеби тие електроните создадени по пат на мојата батерија.
Но, на крајот на денот, тоа е единственото нешто што се случува во мојот лаптоп.
И толку многу интересни работи е во крајна линија
излегува, без разлика дали по пат на печатачот
или на екранот или audially или слично.
>> Значи, ако сите ние имаме како наш основните влез на компјутер
е електрична енергија, па само електрони случува во и или надвор,
и така, како можеме да ја користат таа влез за да всушност претставуваат информации?
Со други зборови, како да се добие од едноставна протокот на електрична енергија
да претставува вистински броеви или вистински писма
или вистински слики на екранот или вистински филмови или e-mail
или било кој број од овие концепти повисоко ниво,
ако сакате, дека во крајот на денот некако
треба да се чуваат во овој електронски механички уред
со користење само на оние едноставни ingredients-- електроните кои доаѓаат во и надвор?
>> Како што се чини дека, во наједноставен облик,
единствениот вид на државите Имам во мојот свет, па
да speak-- услови во мојата world-- е или
Имам електрони течат, електрична енергија тече, или јас не not-- така натаму, надвор.
И ајде да се формализира и исклучување, како компјутерски инженер може,
со само 1 и 0.
Ајде да се опише некои произволни но во согласност бројот на него.
1 значи на, 0 значи надвор.
Или, пак, може исто така да го погледнете овој како вистинските богатства на и лажни средства.
Вие исто така може да се направи црна и бела или црвена и сина боја.
Вие само треба два дескриптори.
И компјутерски научници би обично само користење 0 и 1.
>> Значи, ако тоа е случај, ми само азбука се состои од 0 и 1 е, како
можев да се добие за да се изедначат на бројот 2 во компјутер, а камоли на број 3
или буква од азбуката или некоја слика или филм?
Како да се вид на bootstrap се од овој основен принцип
од 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-- како компјутер?
Добро, совршен, никој, или ниту еден од вас мислат дека ќе се направи.
Но, јас ќе тврдиш всушност знаат ова веќе.
Ние само треба да се најде на tweak нашата ментална модел малку.
Но, процесот е ист.
>> Дозволете ми да ја напушти оваа една до таму и наместо да се повлече оваа надолу за момент.
Во светот на компјутери, имаме само 0 и 1 е.
И така, тоа што е ќе се смени се што?
Па, во мојата човечка светот, децималниот систем, Dec 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, 1.000 е, 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 пати е, се разбира, плус 1 0 пати 0
е, се разбира, 0.
Значи ах, ова претставува број и ние, луѓето знаат како 0.
>> Па, сега, ајде да се многу брзо премотување напред.
Ако јас не сум наместо претставува 0 0 0, но да се направи 1 0 1,
кои би можеле да биде како Lakisa, порано, само ќе го 1 0 1 изговара.
Но, сега, како ние да го однесе на повисоко ниво на бројот ние, луѓето би можеле да знаат?
Значи она што е овој број?
Тоа е 5, бројот што го знаеме како 5.
>> Па, зошто е тоа така?
Па, ние навистина може да се вид на преку неа методично
4 пати 1 0 2 пати, 1 пати 1.
Додадете овие заедно, ова е 4 плус 0 плус 1.
И тоа е, навистина, 5.
Така, тоа е добивање малку досадни сега прави аритметичка повторно и повторно.
Но, процесот е ист.
>> Единственото нешто што има промени во нашиот свет
е дека нашата колони се 1, 2, 4, 8, 16, и така натаму, наместо на 1, 10, 100,
1.000.
И тоа е само затоа што нашата азбука намали од 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 од овие,
што е најголем број што го имате, не сосема да се дојде до 1.000.
Значи, ако 1.000, вие само треба уште позиција, така што можете да направите 1 0 0 0,
Ерго бројот 1000.
>> А сега, ајде да се мапираат овој вид на концептуалната дискусија врати на хардвер,
каде што повторно, на влез беше само оваа мала кабел за напојување, електрична енергија
кои доаѓаат во и тече.
И така, за тоа да биде одбележан од тука до таму, добро, она што навистина ни треба?
Па, можете да мислам на се во внатрешноста на компјутер, еден куп на светилки,
ако сакате.
Тие навистина се нарекува транзистори.
И транзистори се само се префрла дека може да биде вклучен или исклучен.
Така може да се мисли на транзистор кој е на
е дозволувајќи им на електрична енергија да тече и транзистор кој е надвор за запирање
електрична енергија да тече.
И наместо да се во текот на светлата тука,
зошто не го направи овој вид на нов стил на училиште.
Така што ова може да биде 1, со фенерче да биде на, само едвај иако.
И ова може да биде 0, а сега тоа е надвор.
>> Значи со користење на овој физичкиот уред, јас сега може да претставуваат бинарен систем.
Јас само треба двете држави.
Тоа не е важно она што боја е или што е тоа.
Сè што е важно е дека имам една држава и на друга држава надвор.
Значи со користење на мојот телефон тука, како да направам претставува број знаеме како 0?
Или стави еквивалентно, што бројот сум претставува сега?
0, бидејќи уредот е исклучен.
>> И ако го направам тоа?
И сега, како да направам претставува број 2?
Може ли да позајми вашиот телефон тука, како што го правеше вчера?
Па ајде да видиме, па ако сакам да претставуваат бројот 2, е овој број 2?
Бр
Што бројот сум јас случајно претставува овде?
Ова е, всушност, број 3.
>> Така што оној што сакам да го исклучите?
На црната телефон or-- добро, ако they're-- црн телефон или бела телефон?
Белите телефон.
Значи, ако јас го исклучите ова и ние линија тоа до овде, имаме 1
во 2 е место и 0 во место 1 е.
И така јас сум сега претставува бројот 2.
И ова, се разбира, ќе биде број 3, затоа што сега и двете од овие светла
се вклучени.
>> И јас ќе запре тука, но очигледно е
ако сакам да претставуваат број 4 или 8 или повисока,
Одам да треба повеќе телефони.
Но, тоа е се што се случува.
Значи, ако некогаш сте слушнале дека внатрешноста на a-- благодарам you-- компјутер
е милиони транзистори, тоа е само милиони малечки прекинувачи.
И тие не се лесни светилки кои се вклучува и исклучува,
но тие или им овозможи на електрична енергија да тече некаде или да го спречи тоа.
И така, тука е вашиот две states-- или исклучен, или исклучите.
>> Значи ние се чини сега да ја имаат оваа способност
репрезент на овој концепт кој ние би сакале во вистински хардвер.
Но, сите што го имаме сега е способноста да претставуваат броеви тоа ќе изгледа.
Па, како да одите за застапување букви од азбуката, која
се чувствува како следниот вид на функција би сакале да додадете на современите компјутерски
штом еднаш ќе имаат броеви?
>> И навистина, ако мислите дека за тоа, историски, компјутери
беа воведени навистина да им служи на како дигитрони бројчано.
Но, се разбира, овие дена, тие се направи многу повеќе.
Дури и кога ќе го подигнете нагоре, обично се види еден или повеќе зборови.
Па, како да претставуваат зборови, ако сите имате е, повторно,
електрична енергија на крајот на ден, или еквивалентно 0 и 1 е?
>> Да.
Да, мислам, ние вид на не ова вчера во некоја форма,
каде што во одреден момент, Мислам дека произволно
рече дека, ако сакаме да го претставуваат буквата А, ние може само да се јавите дека 1.
Тоа беше во контекст на криптографијата, каде што само е потребно некој вид на код,
некој вид на мапирање.
>> Па можеби ќе биде претставен како 1, и Б ќе биде претставен како 2,
и Z ќе биде претставена како 26, на пример.
И тогаш само забелешката е дека ако сум се случува да се кодираат букви во моите пораки
или во мојот текст пораки што се броеви, вие сте сите
мора да се согласи да ги користат истиот сет на конвенции.
И навистина, во светот го направи токму тоа.
>> Постои систем во светот наречен ASCII, American Standard
Код за размена на податоци, што е едноставно решение неколку години
Пред тоа луѓето го направи тоа одлучи дека ќе се изедначи, а не
1, 2, и 26, и така forth-- тоа е малку different-- но 65, 66, 67.
И јас ќе се повлече до табела во само еден миг.
Но, тоа е произволен.
Но, тоа не е важно дека тоа е произволен.
Светот мора да биде само во согласност.
>> Сега, во поново време, има нешто познавач
наречен Уникод, бидејќи вид во светот на реализирани, по измислување на компјутери,
дека има повеќе од добро 256 симболи во светот
дека ние можеби ќе сакате да ја застапува, особено кога ќе се воведе
Азиски јазици и други симбологија кој му треба повеќе отколку што експресивност
може да се вклопат во најраните верзија на овој закон, кој беше наречен ASCII.
Значи Уникод всушност им овозможува на да ги користат повеќе 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 бита.
>> Значи ова се чини дека е малку ограничување, затоа што само јас можам да
претставуваат капитал, капитал Б преку капитални З.
Но, навистина не, ако одам to-- има еден куп на ресурси
на интернет, на пример, asciitable.com, ова
се случува да биде малку големо во прв.
Но, јас ќе се истакне што е важно тука.
>> Ова едноставно се случи да be-- а јас ќе walk-- видиме, ако одам над тука.
Еве, во децималниот колона, бројот 65.
И на писмото колоната на десната страна карактер, Хр, е буквата А.
И може да се игнорира, за сега, се што е во средината на теренот.
Ова е хексадецимален, октални, и 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, во смисла
на мојот телефон или апстрактно во однос на прекинувачи се во и надвор.
Но, она што за хард дискови?
Во вашиот лап-топ компјутери, ако имате постар една, или во вашиот десктоп компјутер,
или секако во сервери денес, каде што треба
хард дискови кои имаат Terabyte на простор,
4 терабајти простор, и што значи тоа?
>> А хард диск со 1 Terabyte на простор средства
има 1 трилиони бајти во него на некој начин,
или еквивалентно 8 трилиони битови внатре.
1 терабајт ќе биде 8 terabits или 1 трилион битови, кои
значи дека ако имате тешко диск, ќе мора некако
или други трилион 0 е и 1 е во него.
И ако ние само ги погледне во еден произволно слика на хард диск
претставник, тоа е она што тешко возење вообичаено може да изгледа внатре.
>> Тоа, исто така, е вид на како еден стар грамофон плеер
но генерално со повеќекратни записи внатре, така
да speak-- повеќе Одмори плата, како што тие се нарекува,
кружни метални дискови, и потоа малку главата за читање,
многу сличен на стариот грамофон.
И тоа главата за читање се движи напред и натаму и на некој начин, се вели во битови.
И она што е на овие Одмори плата, дури и покрај тоа што луѓето не можат да ги види,
или во реалноста или во овој филм, има малечки магнетни честички.
Па дури и ако сте долго заборавиле како работи на електрична енергија,
на магнетни честички кој е обвинет генерално
има северниот крај и југо end-- така север и југ.
И така светот само одлучи пред некое време
кои, ако магнетна протоколот во суштина е подреден во средина како оваа, север-југ,
да ја наречеме дека 1.
Ако тоа е, наместо на југ-север, ајде да го наречеме дека 0.
И така, ако имате ви стои на располагање трилиони
малечки магнетни particles-- и се надевам,
генијалноста хардвер со цел да се флип оние околу
како што гледате fit-- ако сакате да претставуваат целиот куп на 0, вие
само треба 8 магнетни честички сите подредени се допаѓа ова.
И ако сакате да го претставува осум 1 е, само
треба 8 магнетни честички усогласена назад да се врати да се врати се допаѓа ова.
>> Што мислам со магнетни честички?
Искрено, сите овие години подоцна, Она што уште ми доаѓа на ум
е овој човек, ако Пораснав со оваа работа.
Ова е little-- за оние unfamiliar-- на
малку детството играчка која има овој човек овде Ќелави
кој ги има сите овие малечки црна магнетни честички кои доаѓаат со неа.
И користење дека црвено стап, што е само еден магнет,
на некој начин може да му даде мустаќи или веѓите или влакна или ништо на него.
Така, всушност, ако ние зумирате во, на пример, овој
е вид на игра може да игра со Вули Вили.
>> И ова е само да се каже, овие се многу поголеми магнетни честички
отколку што се, всушност, на хард диск, и далеку помалку магнетни честички.
Но, ајде да всушност гледаат а потоа, ако немаат
мали магнетни честички во хард диск, како може да се, всушност,
ги користат овие за прикажување на податоците.
>> [Видео репродукција]
>> -На Хард диск е местото каде што вашиот компјутер продавници поголемиот дел од своите постојани податоци.
Да го стори тоа, податоците патува од RAM меморија заедно
со софтвер сигнали кои ја раскажуваат хард диск како да се чуваат податоците.
хард диск кола се преведе оние сигнали во осцилации на напонот.
Овие, пак, контрола на хард диск движат parts-- некои од ретките движат
делови оставени во современиот компјутер.
>> Некои од сигналите за контрола на моторот, која се врти метали обложени Одмори плата.
Вашите податоци е, всушност, складирани на овие Одмори плата.
Други сигнали се движат за читање / запишување глави да се прочита или запише податоци на Одмори плата.
Оваа машинерија е толку прецизни дека човечка коса дури и не може
помине меѓу главите и се врти Одмори плата.
Сепак, сето тоа се работи на страшно брзини.
[END репродукција]
И можете да го видите на опашката крајот на видеото,
има генерално повеќе Одмори плата.
И, така што главата за читање не е само читање на врвот.
Тоа е вид на како три или четири или повеќе глави за читање
тој потег како овој, читање на податоци истовремено.
>> Значи има многу комплексноста и вид на времето
кои се вклучени во хард дискот.
И нешто се врти навистина ебам брзо, па има многу на сложеност.
Но, ајде да зумирате малку подлабоко и види каде се овие магнетни честички
и како ние сме добивање на нив.
>> [Видео репродукција]
>> Погледнете -Let е во тоа што ние само видов во бавно движење.
Кога кратка пулсот на електрична енергија е испратена до главата за читање / запишување,
го превртува на мал електромагнетни за дел од секунда.
Магнетот создава поле, која ја менува
на поларитетот на ситното дел од метални честички
кој слој на површината секоја послужавник е.
Низа серија на овие мали обвинет области на дискот
претставува единечна малку на податоци во бинарен број систем се користи од компјутери.
>> Сега, ако струјата е испратен еден пат низ главата за читање / запишување,
областа е поларизирани во една насока.
Ако сегашниот е испратена во спротивна насока,
поларизацијата е обратна.
Како да добиете податоци од хард диск?
Само промена на процесот.
Така, тоа е на честички на диск кој го добиете моменталното
во главата за читање / запишување движат.
Стави заедно милиони магнетизирани овие сегменти,
и имаш датотека.
>> Сега, на парчиња на една датотека може да биде расфрлани насекаде Одмори плата на диск,
како вид на хаос на трудови на вашиот монитор.
Значи посебен екстра датотеката содржи пратите на тоа каде се наоѓа.
Не сакате сте имале така нешто?
>> [END репродукција]
>> Па се алудира дека, можеби, е таа тема од вчера на бришење.
Кога ќе ги избришете датотека, вчера го рече
кои компјутерот всушност не што, кога ќе повлечете нешто
на ѓубрето или ѓубре?
Тоа само го заборава.
Но 0 и 1 е, на магнетни честички
кои личат на црвена и сина работи тука, или раката тука,
се уште се таму на хард дискот.
>> И така постои software-- Norton Utilities и недалечното минато
и други помодерни software-- дека само
ќе го скенира целиот хард диск во потрага за сите оние 0 и 1, поради тоа што
Излезе дека повеќето датотека formats-- Word документи, Excel фајлови, слики,
видео files-- сите имаат одредени модели кои се вообичаени меѓу нив.
Секој видео датотека може да да бидат од различна видео,
но првите неколку битови обично се исти.
Или последните неколку битови обично се исти.
>> Така е и со голема веројатност, може да се погледне за овие модели.
Па дури и ако датотеката е заборавено, може да се каже со голема веројатност,
но ова изгледа како Word документ, Ви овозможува да се опорави и да го пре-се заборави,
ако сакате.
И така тоа е тоа како можете да го направите податоци кои се или биле случајно
избришани или избришани или намерно избришани поради кои било причини.
>> Спротивно на тоа, безбедна бришење прави она што во контекст на слика, како тоа?
Токму така, ги прави сите случаен избор.
Значи тоа на некој начин се движи некои од ги надолу, некои од нив се,
остава некои од нив непроменет, и што обично се прави случаен бучава надвор од неа,
или само можеби прави сите 0 нив или сите од нив 1 е.
И тоа е премногу општо мелез вашите податоци далеку.
>> Значи, да се вратиме сега на прашањето на компјутерската размислување, при што
имаме формула влезови.
И алгоритми дава ќе се емитува на крајот.
Се фокусираме сега на влезови и излези, бидејќи сега, јас
барање имаме начин на претставуваат влезови и излези.
Ние сме само ќе да се користи бинарен.
>> И без оглед на она што го сакаат да се претставуваат денеска,
без разлика дали тоа е број или буква или илјадници од нив во именикот
или слики или филмови, на крајот на денот, тоа е за сите 0 и 1 е.
И тврдам дека, и покрај тоа е супер едноставен светот со само 0 е
и 1, ние самите да се изгради.
И видовме еден пример на дека со писма досега.
>> Значи, да се фокусираат сега на овој средината состојка, алгоритам.
И ајде да се вратат на ова пример за Мајк Смит.
Значи во овој телефон книга, која мора да се признае, ние не го користат многу повеќе,
има проблем да се реши.
Ние сакаме да се најде некој како Мајкл Смит.
>> И она што може да направите за да се најде Мајк?
Па, јас само може да се отвори оваа книга, со почеток во првата страница,
и реализација, ох, јас сум во делот А.
Мајк не е таму.
Ми треба делот С Смит.
Па само држи вртење една страница во време.
Дозволете ми да се преправаме дека ова е за сите бели страници, а не жолти страници,
затоа што ние не се случува да се најде Мајк во жолти страници во секој случај.
Но, јас сум во белите страници.
И сега, јас сум во делот Б.
Се 'уште не го најде.
Па јас ги претвора една страница во време.
>> Ова е алгоритам.
Тоа е множество од инструкции за решавање на некој проблем.
Со други зборови, да се погледне страница, ако Мајк не е на неа,
сврти страницата, и се повторува повторно и повторно и повторно,
идеално гледајќи надолу како сте го прави тоа.
Така е со овој алгоритам, овој процес, точно?
>> Жал ми е.
Не, слушам некои бр.
Добро, но тоа is-- да, тоа е сигурно досадни.
Како, ние ќе бидеме тука по цел ден, ако јас задржи во потрага по Мајк на оваа брзина.
Но, дозволете ми тврдат дека тоа е точно.
Тоа е глупаво, но тоа е точно.
>> На крајот на денот, додека тоа би можело да се, јас ќе се најде Мајк ако тој е таму
и јас сум се обрне внимание.
И јас на крајот се постигне неговата страница.
И ако јас се премногу далеку, ако Да се ​​добие во делот Т,
тогаш јас малку може да се оптимизира и да кажам, хм, Сето тоа е направено.
Јас дури и не треба да отпад време да оди на Зи.
Но, ова е многу линеарни пристап, ако
ќе, многу вид на лево кон десно пристап, права линија.
И неговата точна, но бавно.
>> Значи се сеќавам од основно училиште, вид на една оптимизација од првиот човек кој степенува,
каде што научив како да се брои од страна на оние, но од страна на twos-- така 2, 4, 6.
Тоа е, многу потешко да се се направи, но во теорија, тоа е
faster-- 8, 10, 12, 14, и така натаму.
Како за тоа алгоритам?
Е поефикасно?
Дали е тоа побрзо?
>> ПУБЛИКАТА: Тоа е ефикасен.
>> Дејвид MALAN: Да, па тоа е def-- тоа е буквално два пати толку брзо, под претпоставка дека јас
Не се сопнат со прстите.
Тоа е два пати толку брзо, бидејќи Јас сум вртење преку два
страници одеднаш, наместо на еден, но тоа е потенцијално во точно, бидејќи зошто?
>> ПУБЛИКАТА: Ти си прескокнувајќи некои.
Дејвид MALAN: Добро, што ако Мајк случува да се sandwiched-- можеби кога сум подоцна
во именикот, Мајк се случува да биде сендвич меѓу овие две страни,
и јас само слепо прескокнете над него.
Значи ние треба малку фикс таму.
Откако ќе се погоди делот Т, јас не само да со сигурност да кажам,
ние не најде Мајк Смит.
Јас веројатно имаат двојно да го зголеми назад.
Или, всушност, еднаш бев стигнат до некој наречен S-N, наместо на S-М Смит,
веднаш, може да го дуплира назад, бидејќи тој можеби
беше на претходната страница.
>> Но, јас не треба да се зголеми двојно назад сега.
Во теорија, ако го направи тоа право време, јас само да се вратиме на една страница.
Значи тоа е додавање на само еден дополнителен чекор.
Па јас сум качил два пати толку брзо, но тоа ме чини една дополнителна страница.
Но, тоа се чувствува како нето победа.
>> Но, тоа не е како повеќето луѓе во оваа соба ќе се реши овој проблем.
Што би типичен човек, можеби Пред неколку години направи, да се најде Мајк Смит?
Да, не се најде Мајк.
Што да правам?
Така да малку поблиску, но јас не know-- она ​​што е вистина за телефонски книга?
ПУБЛИКАТА: Тоа е секвенцијален.
Дејвид MALAN: Тоа е секвенцијален.
Тоа е по азбучен ред.
И така, ако јас сум во правец М, Мајк е јасно на правото,
Јас буквално може да се искине проблемот во half--
тоа е обично полесно отколку that-- солза проблемот на половина и го фрлаат,
така што сега, имам проблем со кој е веќе не 1.000 pages-- кој беше тешко,
Затоа што мислам дека, всушност, ја раскина телефонот книга, тоа не time--
1.000 страници, но 500.
>> Значи проблемот е буквално половина толку големи.
И тоа е доста привлечна, бидејќи со моите претходни алгоритми, верзија
1 и 2, јас го правев само проблемот една страница помали, две страни помали
во време.
А сега, јас ја направив 500 страници помали сите одеднаш.
>> Добро, па сега, Карим предлага да одам во десната половина.
Па јас ќе одам да се оди околу до средината, се дава или зема.
И ако сум го правела тоа математички, Јас би можеле да одат право кон средината.
И сега, знам дека, ох, Јас сум во делот Т.
Јас всушност се оди премногу далеку.
>> Но, можам да, повторно, солза проблем на половина, се фрли далеку.
И мојот бајти не толку големи.
Тоа е само, што, 256 страници или 250 страници, се дава или зема во моментов.
Но тоа е сепак начинот на кој повеќе од една страница или две страници.
>> И така сега, одам приближно до средината.
О, јас не оди многу далеку доволно сега.
Значи повторувам, повторувам, повторувам, повторува, додека не сум се надевам
замина со само една страница.
>> Така што повикува на прашањето, ако јас започна со приближно 1.000 страници,
колку чекори не ме земе со верзија 1 од моите алгоритам?
Па, ако Мајк е во S дел, во најлош случај,
тоа е прилично блиску до на крајот на азбуката.
Значи, ако телефонот книга има 1.000 страници, Јас ќе се најде Мајк во 1.000 страници,
или дава да потрае.
Можеби тоа е како 800 или така, но тоа е прилично блиску до 1.000.
>> Каде што, во вториот алгоритам, колку
страница се врти максимално би можел бараат да се најде Мајк Смит?
Има 1.000 страници, но јас сум нив две прави во исто време.
Добро, така макс како 500ish, бидејќи Ако одам во текот на целиот именик,
на која точка, јас може да го запре.
Но, можам да избричи неколку од само запирање на делницата T.
Но, тоа е во најлош случај 500 страници.
>> Па колку пати можам да се подели 1,00o-страница именик половина повторно
и повторно и again-- од 1.000 на 500 до 250 на 125?
Колку долго пред да се погоди една страница?
Да, тоа е околу 10.
Во зависност од заокружување и таква, таа е околу 10 страници вкупно треба да се претворат
или телефон книги треба да се искинати.
>> Значи тоа е прилично моќна.
Почнавме со проблемот на 1.000 страници во сите три од овие приказни.
Но во првиот алгоритам, ми требаше, најлош случај, 1.000 страница
се врти да се најде Мајк.
Второ алгоритам, 500 страници за да најдат Мајк.
Трето алгоритам, 10 страници за да најдат Мајк.
И тоа е дури и повеќе моќна, кога мислите
за вид на спротивното сценарио.
Да претпоставиме дека на телефон на компанијата следната година можеби спојува два града заедно,
и телефонот книга е одеднаш оваа дебела, наместо тоа што,
па 2.000 страници, наместо на 1.000.
Па, мојот прв алгоритам во потрага по Мајк Смит во телефонот книга 2000-страница,
уште полошо, тоа се случува да се земе Колку страница се врти следната година?
>> Телефон книга е 2.000 страници, so-- добро, а не уште еден.
Ако телефонот книга е двојно дебелина првиот алгоритам, првиот алгоритам,
2.000, нели?
Во најлош случај, Мајк е навистина во близина на крајот на книгата,
па тоа е 2000 страница се врти.
Второ алгоритам се случува со twos, како и 1.000 страници.
>> Но, како за во мојата трета и најновите алгоритам?
Ако телефонот компанија удвојува број на страници од 1000 до 2000,
колку пати треба откинувам таа книга во половина за да ја Мајк?
>> ПУБЛИКАТА: Само едно.
>> Дејвид MALAN: Само еден повеќе, бидејќи со една страница солза,
Јас буквално може да се подели и го освои, ако сакате,
тој проблем на половина преземање голем залак од него.
И така ова е пример за ефикасност и веројатно алгоритам
со што сите од нас се вид на интуитивно познато.
Но, тоа е само како точни како моите други алгоритми
со тоа Tweak за вториот алгоритам,
но тоа е толку многу поефикасно.
>> И всушност, она што компјутер научник, или, пак, програмер,
обично ќе направи кога пишувате код е да се обидат да дознаам,
сите во право, јас не сакам моето програма е само за да бидат точни,
Исто така, сакам тоа да биде ефикасен и решавање на проблеми и.
Замислете во реалниот свет денес, како Google индексира, пребарувања
како милијарди страници, замислете ако тие се користи првиот алгоритам да се најде мачки
една милијарда pages-- гледа во на првата страница во нивната база на податоци,
вториот, третиот, само барате за мачка, во потрага по мачка.
Тоа е прилично ебам бавно тоа ќе изгледа.
Наместо тоа, тие може да се користи нешто наречени бинарни пребарување, кои
не би coincidence-- значи два, задржи дели нешто во 2, во half--
тие може да се користи бинарни пребарување а можеби и се најде мачки дури и побрзо,
или што и да е сте во потрага за.
>> И искрено, има дури и познавач на алгоритми
кои го прават тоа многу повеќе од само поделба на работите на половина
со цел да се најдат информации брзо.
И ние ќе се зборува малку за оние кои се по ручекот денес.
Па дозволете ми да се обиде да го претставува ова.
Ние не треба да се оди во било математика или реалните броеви.
Можеме да зборуваме за тоа во апстрактот.
>> Но, дозволете ми да предложи, ако се имаат дискусии сега
со инженерите предлагање на овој алгоритам
и ти се обидуваш да се направи пресметува одлука,
затоа што можеби на инженер, вели за вас,
Знаеш што, јас може да се спроведе линеарно пребарување во како две минути.
Тоа е толку едноставно.
Бинарни пребарување не е толку фенси, но тоа се случува да ме однесе околу 10 минути,
па 5 пати подолго.
>> Има еден трговски тука, дури и во однос на одлучување што софтвер да се напише.
Дали ви се пишува на поедноставен алгоритам, кои само ќе ве однесе две минути?
Или сакате да поминуваат повеќе време, во 10 минута, пишување на познавач алгоритам?
Како да се одлучи кој вид на прашање?
Или може да се направи тоа малку пореално.
Да кажам мојот шеф тоа се случува да се земе мене или од една недела или 10 недели
за спроведување на софтвер на овој начин, како
да се одлучи кои алгоритам за да се даде зелено светло?
Карим?
>> ПУБЛИКАТА: Публиката, претпоставувам.
>> Дејвид MALAN: публиката.
Што сакаш да кажеш со публиката?
>> ПУБЛИКАТА: Ако тоа се случува да се користи од страна на корисниците
кои [Беззвучен] од страна на корисниците [Беззвучен].
Но, ако тоа е нешто што се само си ја за себе
да се олесни проблемот, [Беззвучен] побрзо.
Дејвид MALAN: Да, тоа е брзо и валкани е добар начин да се опише.
Всушност, ако сте опишувајќи многу од моето време
во град училиште, при што често пати, Напишав лош код свесно so--
во најмала рака, тоа е како јас рационализираат it-- свесно така,
бидејќи иако бев пишување на код кој бил релативно бавно да се изврши,
Јас бев во можност да се напише кодот себе прилично брзо, трошење на само неколку минути
или не часа дена.
И се покажа, јас понекогаш е потребно да спијам.
Па дури и ако ми е потребен код 8 часа да се кандидира, и тоа е во ред,
Јас само ќе одам да спијам додека бега.
>> Значи во тоа време, јас мислев дека ова е многу умен, иако очигледно
работел преку моите докторски многу бавно.
Но, разговараат за тоа е дека, ако сум пишување софтвер
за други луѓе кои важно повеќе од мене, добро,
тоа што ги чека 8 часа за да се вратат на нивните резултатите од пребарувањето
не е толку привлечна.
И така поминува повеќе време до пред да се напише софтвер
која е поефикасна, како трето нашиот алгоритам,
веројатно придобивките на корисници со текот на времето.
Значи, тоа навистина зависи од повеќе време како тие трошоци се додаде.
Ако си оди за да се пишува софтвер за да го користите еднаш,
веројатно би можело да се направи брз и валкан, како што велат тие.
Само да го фрли заедно.
Тоа е код кој збунува вас, тоа е толку лошо,
но тоа добива на работа, правилно, иако тоа не е ефикасен.
Спротивно на тоа, да поминуваат повеќе време на нешто, да го добие само десно.
И тогаш се амортизира во текот на времето, кои однапред цена на време
веројатно е вредно, ако ги чувате оптимизирање за заедничка случај.
>> И навистина, тоа е тема во програмирање, компјутерски науки или повеќе
генерално, се обидува да се оптимизира не за невообичаено случај
но заеднички case-- она ​​што работа ќе се случи повторно и повторно?
Ако ви се случува да имаат милијарди на кои пребаруваат на вашиот сајт,
веројатно ќе треба да се трошат екстра недели до пред пишување подобар софтвер,
така што сите корисници имаат корист.
Сега, ајде да се обидеме да го фати овој малку сликовито, но не толку многу
бројчано.
>> Па овде е само една стара училишна шема.
И дозволете ми да кажам дека ова е време.
И тоа не е важно what-- всушност, не, не е време.
Да се ​​стави тоа на другата оска.
Да речеме дека ова е време, и тоа е големината на проблемот.
>> И компјутерски научник може да се генерално се јавите
ова само n. n е како нашата одат-на променлива, каде што
n е број, n број, и тоа е број на влезови она што го имате.
Значи во овој случај, n е бројот на страници.
Па тоа би можело да биде во 1000 случај ние само го кажа.
>> Значи време може да биде било која единица мерка.
Можеби, тоа е секунда.
Можеби, тоа е дена.
Можеби, тоа е како страница се врти.
Не е важно.
Што и да сакате да се брои во, дека ќе биде време или чини еквивалентно.
>> Така да со тоа првиот алгоритам, ако, на пример,
имаше телефонски книга 1.000 страници, Одам да се подготви една точка таму,
бидејќи ако тоа е 1.000 страници, го зеде околу 1.000 страница се врти, се дава или зема.
А потоа, ако имав 2.000 страници, телефон,
а јас ќе одам да се подготви една секунда точка тука, затоа што за 2.000 страници,
тоа е како 2.000 секунди или страница се врти или whatever.
И така, кога јас реков претходно, тоа е вид на линеарен однос,
тоа беше намерно, затоа што сакав подоцна on-- право now-- да се повлече линија.
Тоа е вид на права линија врска.
Наклонот е 1/1, ако сакате.
>> Во меѓувреме, вториот алгоритам рече, ако имам 1.000 страници
и ќе се користи втората алгоритам, каде што се сметаат за 2, претворајќи
две страници, во исто време, треба да се повлече точка подолу или погоре мојата оригинална точка?
>> ПУБЛИКАТА: подолу.
>> Дејвид MALAN: Подолу, бидејќи, како што видовме, што е потребно помалку време, половина колку време.
Значи точка треба да биде половина како високо како и другите.
И истиот договор, овде, на оваа точка веројатно ќе треба да биде приближно таму.
И така мојот втор алгоритам, слично на тоа, има линеарна врска со текот на времето.
И ние може да го нацрта како такви.
>> Па сега, третата и последна алгоритам е малку потешко да се подготви.
Но, интуитивно, ако ми дадоа 1000 страници со мојата трета алгоритам,
тоа треба да ме земе само како 10 чекори.
И ако имам 2.000 страници со мојата трета алгоритам,
тоа треба да ме земе не 10 чекори, но 11, само уште еден.
Значи ние сме само едвај се случува да се види тоа.
>> И што излезе, ако Јас зумирате на ова, јас сум
ќе се претера за ефект, обликот на таа линија, во крајна линија,
не е праволиниски line-- затоа што, навистина, ако тоа се,
тоа ќе изгледа повеќе како на others-- тоа е всушност една крива линија
дека, ако ние зумирате, се случува да изгледа многу повеќе како ова.
It-- па, добро, да ги игнорира овој дел.
Тоа беше моето пенкало оди на агол.
Тоа е крива линија која е секогаш зголемува, секогаш, секогаш, секогаш
се зголемува, но само едвај.
>> И така со текот на времето, ќе имаат однос кој е повеќе како ова.
Речиси изгледа исправен.
Но, тоа е многу бавно се зголемува.
Но, за речиси сите точки по должината Вашиот X-оската, хоризонталната оска,
е помал од оние другите линии.
>> Така што ова може да биде врската n, при што ако имаш n страници,
можете n секунди потребно.
Ова може да биде однос n / 2.
Мора n страници, што е потребно можете n / 2 секунди, половина колку.
И ова е логаритамска односи, што
Ако се сеќавате, логаритам со основа 2 од n фаќа овој вид на раст, така да се каже.
Значи ова е вид на свето грал меѓу овие три
тука, бидејќи тоа е само многу повеќе ефикасен, но веројатно повеќе комплекс
за спроведување на.
Некакви прашања?
>> Па дозволете ми да го направите ова, да ми се отвори текст прозорец
само така можеме да се обидеме да формализира нешто тука.
Па дозволете ми да оди напред сега и спроведување на овој алгоритам
за пронаоѓање на Мајк Смит во кодот, ако сакате, pseudocode код.
Јас не одам да се користи Java или C ++.
Јас сум само се случува да се користи вид на Англиски како синтаксата, што ние
генерално би го нарекол pseudocode код.
Еве, јас имам празен прозорец.
И јас велам чекор 1 од многу Првиот алгоритам е земам телефонот книга.
Чекор 2 е отворена книга на првата страница.
Чекор 3 ќе се погледне страница за Мајк Смит.
Ако на страница, јавете се на Мајк.
друг пак страница и да одат во чекор 3.
Готово, да речеме.
>> И така, тоа не е сосема совршена, што ќе видиме во еден момент.
Но, ајде да се разгледа она што концепти сум воведен тука.
Значи ги чекорите 1 и 2 и 3 се доста глаголи.
Тие се изјави, actions-- го направите тоа.
И така во програмирање јазик, ние би генерално
нив, изјави или функции или постапки,
со нив на било кој број на нештата.
Но, тие само си actions-- го направите тоа.
>> Чекор 4 е фундаментално различни, затоа што тоа е вид на поставување на прашање.
Тоа е велејќи дека ние сме вид на на вилушка во патот.
Ако Мајк е на оваа страница, јавете се на него, па се сврти лево, ако сакате.
И ако не, вратете се на некои други page-- или подобро кажано, жал,
се врати на некои други чекор, кој предизвикува некој вид на looping конструкција.
И ние го направи тоа повторно и повторно и повторно.
>> И всушност, знаеш што?
Да.
друго, ако на крајот на книгата станица.
Значи ние треба вид на една третина состојба, затоа што
не може да ги задржи вртење реклама на страницата nauseum, бидејќи на крајот, јас ќе
хит на крајот на книгата.
А бубачка во програмата може да биде не предвидела тоа сценарио.
И тогаш јас само сфатив, О, чекај една минута, ми треба третото сценарио.
Ако јас сум надвор од страници, навистина треба само да престане.
Инаку, тоа е недефинирана.
Што ќе се случи ако се задржи велејќи сврти нова страница и да се врати,
ова е, кога компјутерите замрзнување или несреќа, кога ќе удри
некои неочекувани ситуација како тоа.
>> Сега, она што за Мајк Третиот algorithm-- Смит
земам телефонот книга, отворена книга на first-- да
Не, не е првата страница, овој пат, да middle-- О, добро, што би
биде вториот алгоритам.
Ајде да го прескокнете до третото место.
>> ПУБЛИКАТА: Ах, ми е жал.
>> Дејвид MALAN: Тоа е во ред.
Ајде да го прескокнете до third-- отворен на среден и сега бараат Мајк Смит.
ако на страница, јавете се на Мајк.
И тогаш што сакаме да се каже тука?
друго што?
Може да се изрази на оваа во секој број на начини.
Не постои точен одговор.
Во ред, ако не повторно, но ние треба да be-- ред, ние сакаме да се подели на два дела,
но не сакаме да одиме на лево или одат право?
Како да ја изразат таа идеја?
Па, во случај на Мајк, да, тоа е фер.
Но, во ред, така што е всушност добра точка.
Во ред е.
Ние ќе продолжиме да се случува со оваа логика.
So--
>> ПУБЛИКАТА: Помалку од половина.
Дејвид MALAN: Да.
Значи друго, ако страната е, ќе речеме, помалку од Смит, од лево на Смит,
then-- видиме, е ова се случува да го комплицираат?
друго, ако страница доаѓа пред Смит, солза во половина, фрлаат кои половина?
>> ПУБЛИКАТА: Мислев тоа беше [Беззвучен].
>> Дејвид MALAN: слушам и одговори.
>> ПУБЛИКАТА: Лево.
Дејвид MALAN: Океј, се фрли далеку левата половина, како Lakisa
реков претходно, на левата половина, а потоа јас вид на
сакате да се оди само to-- одам во право.
Или еквивалентно, и јас направив малку малку хаос на почетокот тука,
Јас ефикасно сакате да повторно да се оди на чекор 2,
каде што се отворени за middle-- или open-- Да, да речеме, страници на средината на теренот.
И ова го поправа.
Тоа веќе не е книга.
Тоа е само половина од книгата, така отворени страници за средината.
>> else-- беа речиси таму.
Чекор 6, друго ако страница доаѓа по Смит, солза во половина, фрлаат десната половина,
потоа одете на чекор 2.
друго се откажат, а четвртиот сценарио ако ние немаме страници остави да се сврти.
За да можеме да се исчисти ова.
И ние треба да се исчисти ова.
Ова е многу pseudocode код, ако ќе, опис на многу високо ниво.
Но, тоа не обично се сфати идејата.
>> И, повторно, во ова сценарио, нема чувство на состојба,
филијала, вилушка во патот, што го прави на decision-- ако тоа оди на овој начин,
друго, ако, да одат на овој начин, друго, ако, одиме на тој начин.
И ова е многу честа техника програмирање
да се одлучи кој правец да се оди, така да се каже.
И ние исто така имаат некој вид на јамки структура, во која
ние правиме нешто повторно и повторно.
>> Сега, што се испоставува, многу како во овој пример,
се супер прецизно е важно.
Но, исто така не сум видел нешто дека ние ги повикува апстракција.
Што значи тоа да ги собереш на телефон книга?
Ние сме само вид на преземање здраво за готово во оваа соба
дека има некои семантичко значење.
Сите од нас само вид на се знае, ох, добро, ги собереш на телефонот книга.
Што значи тоа навистина значи?
Па, тоа навистина значи да се прошири страна, се потпреме врз, да се прошират прсти,
изклинвам книга меѓу прстите, застане, се повлече својата рака кон вас.
И ние може да биде навистина педантни за тоа,
навистина се супер прецизни за тоа што јас го правам.
Но, сите тие чекори колективно се што значи да ги собереш на телефонот книга.
>> И така порано, кога му реков, секој од овие првите два извештаи
може да се смета како продолжи или функција,
навистина го претставува она што ние задржи повикувајќи апстракција.
Тоа е како на високо ниво концептуални Опис на проблем што
всушност вклучува неколку чекори.
И така, тоа, исто така, е периодични тема во програмирање,
со која би можел да се напише програма користење на синтакса како this--
pick_up_phone_book ().
И тогаш синтаксички, јас сум случува да украде нешто
од повеќето програмски јазици.
>> Сега, чекор 1 изгледа уште повеќе како функција,
како програмер ќе го наречеме.
Тоа изгледа како код кој некој има дадено име да и даде
за мене да се користи во други somehow-- зборови, она што линијата што сум истакна
претставува функционалноста дека можеби Јас дури и не си ги спроведе.
Некој постар, помудар од мене веќе сфатиле
како да го изразат поимот на подигање на телефонот книга.
И тоа е како јас само пет чекори рацете на голманот, во близина на врвот на мојата глава.
>> Но, тој или таа веќе се спроведени ова, ги даде тие неколку чекори
име, pick_up_phone_book.
И загради е само она што повеќето програмери
направи на крајот на изјавите како оваа.
Сега можам да застане на неговиот или нејзиниот рамената и никогаш повеќе,
се размислува за она што значи да ги собереш на телефонот книга.
Јас само може да се каже, ги собереш на телефонот книга.
А тоа е токму она што сите од нас луѓето не тука.
>> Кога бевме веројатно 1 години, 2 години,
некој мораше да ни укажуваат што го со цел да ги собереш на телефонот книга.
И од тогаш, ние сме далеку апстрахирани
од оние кои се многу интересни механички чекори.
А ние само имаат интуитивен разбирање
за тоа што значи да се земам телефон книга.
>> И може да се екстраполираат сега повеќе комплицирано things--
изградба на зграда.
Како, на некои луѓе, кои, всушност, има значење.
Изведувачи, архитектите, што има некои значење.
И тие ќе знаат што да прават, ако Јас реков, се изгради зграда.
>> Но, повеќето од нас во собата не можев се справи со тоа ниво на апстракција.
Треба да му кажете ни како да одам да купам лопата и одам да купам бетон
и помине на парчиња од дрво заедно и што било друго
е вклучен во изградбата на зградата.
И тоа е затоа што не сме уште не е програмиран да се разбере
што значи да се изгради зграда.
Ние немаме што апстракција.
Немаме дека функционалност.
>> И така она што ќе видите во програмски јазици, во целина,
особено повеќе современи јазици, како Java, PHP, Ruby и python,
тие се многу позрел од постарите јазици,
како C и C ++ и уште други.
И така тие доаѓаат со повеќе функционалност изградена во.
Повеќе кодот е напишана од страна на луѓе во минатото
дека сега можеме да се јавите или повика или да ја користите, како што јас сум алудирајќи
на овој истакнат линија тука.
И така, иако ние не зборуваме за програмски јазици по себе,
само pseudocode код, сите идеи се уште се во дискусии.
И излегува прецизност е супер важно, како што е апстракција.
И ајде да се обидеме да комуницира дека како што следува.
>> Јас случајно го расипуваат ова со светлечки слајд на екранот
предвреме.
Но, дозволете ми да побара храбар волонтер, ако не ти пречи доаѓа.
Вие би биле во предниот дел на камера, ако сте во ред со тоа.
Дали некој сакал да излезе и да даде Инструкции за вашиот колеги тука?
Само треба да дојдат тука и стојат над тука и да кажам некој збор.
>> Викторија се смее на повеќето и избегнување на очите на повеќето.
Дали би сакале да дојдат на се?
ДОБРО.
И ако секој друг во своите места може да се извади парче парче хартија,
ако сакате.
Наредени хартија е во ред.
Дојдат околу овој начин.
Или некои од хартија, кои сте биле дадени вчера,
само секој празен лист на хартија, ако може.
И ако немате никакви, само прашајте го својот ближен ако може.
>> Така и за миг, овој пример, Викторија
ќе ја играат улогата на програмер, инженер, кој
треба да ги програмирате сите, како компјутери, за да се направи нешто.
И ќе видиме какви претпоставки да се одлучи да се направи.
Ќе видиме како точно таа ќе го избере да биде.
И ако оваа демонстрација оди педагошки добро, многу грешки
ќе бидат направени, дека тогаш ќе се користи дека како можност за дискусија.
Но, предизвикот за вас треба да биде да се избегнат овие грешки,
да биде добар програмер.
И така со предизвикот во рака, ако што би сакал да одиме тука,
е во предниот дел на Викторија на екранот here-- и се надевам дека никој од вас
се сеќавам ова кога ќе се појави на екранот.
И не се сврти на сите, бидејќи таму е уште еден екран во оваа соба
дека можам да го исклучите.
Затоа, не се сврти.
>> Во предниот дел на Викторија е истото крик.
И нејзината работа сега е да ви кажам на сите на вашиот парче хартија што да се подготви.
И ќе видиме, врз основа на вербални инструкции сам,
компјутерски код, ако сакате, како точни вашите цртежи
are-- вашиот имплементации се.
Има смисла?
>> ПУБЛИКАТА: Да.
Дејвид MALAN: Добро, да се изврши.
>> ПУБЛИКАТА: Нацртајте плоштад.
>> [СМЕА]
>> Дејвид MALAN: И не може да му се поставуваат прашања.
Само да го направите она што го кажа.
О, и ако имаш денешната слајдови се отвори во јазичето, не се погледне во табулаторот.
ДОБРО?
>> ПУБЛИКАТА: Во ред, нацртајте кружница.
А slope-- можам да кажам патека?
Дејвид MALAN: До вас.
ПУБЛИКАТА: падина.
И триаголник.
>> Дејвид MALAN: Во ред.
И да останат тука за само еден миг.
И јас одам да се дојде наоколу во само еден миг.
И нема потреба да се стави вашите имиња на неа.
Дозволете ми да дојде наоколу и се соберат вашите цртежи,
ако не ти пречи да ги кинење надвор.
>> Тука е она што се врати.
Јас ќе го проектира на екранот.
Гледам квадрат, круг, наклон, и триаголник.
Така што беше еден одговор таму.
И let's-- Whoops.
Ти благодарам.
Еве уште еден бар, и еден зад неа.
>> Значи сите тие се чини да го фати духот.
Ти благодарам.
Има уште една, и тука е уште еден.
толкување на патека е малку поинаку, малку облини.
И најблиските, или поради прекрасен специфичност со кои сте
што е опишано, или можеби вид на ја видов пред, ова е навистина
Викторија што е всушност опишува.
>> Но, сега, оние од вас кои не го добие сосема во право,
ајде да се предложат и некои забелешки тука.
Значи Викторија првпат рече подготви на квадрат.
И сега, можеме да претпоставиме за доброто на денес
дека секој знае како да се подготви на квадрат.
Но тоа не е целосно јасно, нели?
Како инаку би можеле да имаат подготвени на плоштад, или кога
можат да бидат некои од нејаснотиите тука за компјутер?
ПУБЛИКАТА: Локација и големина.
Дејвид MALAN: Локација, нели?
Сите од вас имаше хартија на некои форма, генерално правоаголници, но малку
различни големини.
Но, секако дека би можеле да имаат подготвени, ако си сакал, голем плоштад, можеби
мал плоштад.
Можеби, тоа беше ротира.
Јас не мислам дека ние го видовме тоа.
Но, тоа може да биде повеќе дијаманти како, но сепак, сепак,
Математички плоштад.
Така што е веројатно двосмислена.
>> Потоа, таа рече, нацрта круг.
Некои од вас не го нацрта до тоа, што не е неразумно,
затоа што луѓето имаат тенденција да размислуваат или да прочитате од десно на лево во повеќето јазици, па не
лоша претпоставка.
Но, тој круг може да има биле во внатрешноста на плоштад,
можеше да биде околу плоштад, би можел да биде на друго место
на листот, па веројатно двосмислена.
>> Наклон би можело да се можеби преземање на повеќето слободи вербално
со она што значи тоа.
И некои од вас се толкува тоа како squiggly линија
или во права линија или слично.
И тогаш триаголник, исто така, може да има е ориентирана во секој број на начини.
Значи во кратки, па дури и со нешто што можете поглед и да сте како, Леле, па
едноставен, детето би можело да подготви оваа, и не
навистина, освен ако не сте супер, супер убедлив
и кажете на компјутерот точно што да правам.
Значи, ако ние би можеле, ако имате уште еден лист хартија, ајде
се обиде ова уште еднаш.
И јас одам да им даде на Викторија еден друг пример на екранот овде.
И повторно, не се сврти и не се погледне во вашите слајдови.
И јас ќе му ја даде еден миг да се се размислува за тоа како да се опише ова.
Не дозволувајте да ги види стравот во очите.
>> [СМЕА]
>> И повторно, овој пат потпора некои од овие takeaways
и да се обидат да се добие речиси сите најмалку вистинскиот одговор.
>> ПУБЛИКАТА: Во ред, да се парче хартија, погледнете
во средината на тоа парче хартија.
Во средината на тоа парче на хартија, да привлече коцка.
>> [СМЕА]
Дејвид MALAN: Што научивме?
Бевме толку блиску.
Во ред, се повторува и ако може, за секого.
>> ПУБЛИКАТА: Во средината на парче хартија, да привлече објект,
кој изгледа како коцка.
>> Дејвид MALAN: Океј, тоа е сите можеш да работат со.
Дозволете ми да бидат аналитички и не толку многу критична,
но да се направи на барање дека Викторија дефинитивно
се чини дека да се размислува во многу апстракции високо ниво, што
не е неразумно.
Бидејќи во спротивно, ние сите ќе си да биде прилично нефункционален,
ако треба да биде некогаш толку прецизни со се што правиме во светот.
>> Но, велејќи оди на middle-- јас Мислевме дека на таков добар пат
таму, како да одат во многу средината на страница, а потоа се повлече коцка.
Па таа е размислување во апстракции, затоа што таа е се уште гледање
она што е на екранот, како што навистина коцка.
Но, има толку многу можности за толкување таму.
И всушност, има толку многу други начини може да се изразат
тоа, што јас ќе предложи во еден момент.
Значи тука имаме една инкарнација на picture-- whoops-- еден
инкарнација на сликата, така што малку три димензија на тоа,
што е убаво.
>> Еве уште една, каде што ќе имаат исто, иако тоа е вид на отворен коцка.
Некои луѓе го презеде малку повеќе рамен, дводимензионални.
И тоа е во ред.
Па таму, навистина во центарот на хартија.
Ова мислам дека ќе како, затоа што ако одиме тука,
тоа е она што таа го опишува.
Па сега, дозволете ми да предложи како поинаку ние може да се опише оваа ситуација.
>> Назад во текот на денот, една од најпознатите повеќе заеднички начини да се научи програмирање
е да се напише код, пишува линии на инструкции,
што ги контролираа малку желка на екранот.
Користење на логото и други варијанти на овој беше името на јазикот.
И желка живее во светот.
>> Значи Претпоставувам дека ова правоаголна простор е неговиот свет.
И ќе започне со assuming-- јас навистина не знам како да се подготви желка,
па ајде да го направиме вака.
И тогаш тој има школка а потоа можеби и некои нозе.
Па можеби ќе треба оваа мала ликот на екранот.
>> И предмет на овој програмски јазик
беше да се принуди на желка да одат нагоре, надолу, лево, десно
и да се стави пенкалото надолу или земам пенкало нагоре,
па тој всушност би можеле да го нацртате на екранот во овој многу рамни правоаголни светот.
Значи, каде што јас мислев, дека ти може да се случува, и каде што треба да се разгледа нуркање
до ментално кога го опишувате инструкции поопшто,
Јас би се тврди, се ставаш пенкало надолу во middle--
и ние ќе се ослободи од желка, затоа што јас навистина не може да
да му го цртање многу добро.
>> И сега, како друг не може Велам подготви коцка?
Па, ние може да се каже нешто како нерешено дијагонална линија североисток, на пример,
или под агол од 45 степени нагоре.
И тоа би можело да ми добивано и тука.
И јас сум прилично далеку од коцка.
Но, сега, можам да кажам нешто како да се претвори 90 степени на лево
и нацртајте линија на еднаква должина северозапад.
И јас може да продолжи со слични насоки.
И тоа нема да биде лесно.
И искрено, ние најверојатно ќе биле тука за пет минути.
Но, можеби ќе имаат добивано и да нешто што, на крајот на денот,
завршува се коцка, но ние нурна внатре во тоа апстракција
да го направи тоа во таква ниска ниво што навистина не може да
види она што го правиш додека целата Работата е, всушност, има на оваа страница.
И така ова е општ принцип, повторно, се programming-- оваа идеја
на апстракција.
Тоа е толку прекрасно моќна, бидејќи повторно
Таа само рече, да привлече една коцка, што сите ни доста ќе grok многу брзо.
Ние само ќе се разбере, Добро, подготви коцка.
Ние може да не знаат за професионална ориентација, па ние може да биде малку попрецизно,
но генерално може да се замислам или знаете што е коцка.
И тоа е корисно, затоа што ако секој треба време
седна како програмер во тастатурата за да се напише код,
ако сте имале да се мисли на такво ниско ниво, никој од нас
некогаш ќе се направи нешто.
И, секако, никој од нас не би уживате во процесот на пишување на код.
Тоа ќе биде како пишување во 0 и 1 е, што искрено не беше толку одамна
луѓето се пишување на код во 0 и 1 е.
И ние многу брзо излезе со овие повисоки languages-- ниво
C ++ и Java и други.
>> Па ајде да се обидеме ова уште еднаш, само за да флип маси, така што сите од нас
имаат можност да се мисли во прилично на истиот начин.
Ние би можеле да добијат уште еден волонтер ова време да се дојде до одборот и да се подготви,
не рецитира?
Да, во ред.
Бен, ајде до.
И, Бен, во овој случај, откако ќе се соочуваат со одборот, не гледам лево,
не изгледа добро.
Направете го она што ти го колеги тука да ти кажам.
И за сите останати во соба, вие сте сега програмер.
Тој е компјутер.
И сликата што сум избран тука однапред е овој овде.
Тие се just-- тие се размислува на смешно шега е за сите.
>> Така би се некој сакал да волонтираат првата инструкција
или изјава дека треба да пенкало команда Бен?
И ние ќе го правиме ова колективно, можеби еден настава од секој човек.
Жал ми е?
>> ПУБЛИКАТА: Нацртајте кружница.
Дејвид MALAN: Нацртајте кружница е првото нешто што го слушнав.
>> ПУБЛИКАТА: до врвот.
>> Дејвид MALAN: до врвот.
Добро, ние може да ви ги избришете, вратите.
И сега, некој друг.
Дан, ќе бидат удобни нуди следната инструкција?
>> ПУБЛИКАТА: Секако, да привлече центарот на дното на кругот,
со small-- малку мал простор од тоа,
нацрта права линија до три четвртини од патот надолу на одборот
мал агол на вашиот лево.
>> Дејвид MALAN: Добро.
>> ПУБЛИКАТА: мал агол.
>> Дејвид MALAN: Врати, контрола-Z. ДОБРО.
Андреј, сакате да им понуди до следната инструкција?
>> ПУБЛИКАТА: Секако.
Од дното на таа линија, натамошно благо angle--
whoops-- можеби третина на должината [Беззвучен]
мал агол надолу и како третина од должината на [Беззвучен].
Така да, од тој момент, се повлече линија трета
на должината на претходниот линија до левицата.
>> Дејвид MALAN: Тоа е во ред?
Права линија, тоа е во ред?
Добро, Оливие, сакате да понуди до следниот?
>> ПУБЛИКАТА: [Беззвучен] од дното на кругот, [Беззвучен].
Засновано на десната страна на [Беззвучен] сантиметри.
>> [СМЕА]
>> Дејвид MALAN: Мислам дека си оди за да мора да го конвертирате инчи кој е тука.
>> ПУБЛИКАТА: Стоп.
>> [СМЕА]
>> Дејвид MALAN: Добро.
[? Ара,?] Сакате да понуди до следниот?
>> ПУБЛИКАТА: Нацртајте [Беззвучен] горниот [Беззвучен] исти.
[Беззвучен] круг, се повлече на [Беззвучен] и да се подготви [Беззвучен].
>> Дејвид MALAN: Океј, не повеќе вратите.
Ајде да направиме еден или два повеќе инструкции.
Крис, сакате да им понуди еден?
>> ПУБЛИКАТА: На дното на кругот, [Беззвучен]
подготви еднаква линија slopping надолу кон лево [Беззвучен].
>> Дејвид MALAN: Добро.
Андреј?
Ние did-- Карим?
>> ПУБЛИКАТА: Почнувајќи од десната линија, крајот на левата линија, на дното,
ви се случува да одат право во врска со иста должина како таа линија
ти си, повикувајќи се на право [Беззвучен].
[Беззвучен] степени, така што [Беззвучен] степени на десната страна.
>> Дејвид MALAN: Во ред.
Ајде да се откажеш.
Не се сврти уште.
Пауза Ајде, и ајде се обиде уште еден обид
пред да се открие на бен она што тој го привлекува.
Можете ли да се влага на Бен за да на right-- или, всушност,
Не, ајде да ви даде друг одбор, дури и подобро.
Па сега некој би сакал да земе повеќе од пристапот
што Викторија се порано, каде што зборуваме во повисоко ниво на апстракција
и во само една реченица или две да се опише бен
што да се подготви без навлегува во плевел,
така да се каже, на оваа пониско ниво?
Викторија.
[СМЕА]
ПУБЛИКАТА: Нацртајте фигура на одење човек.
И нозете и рацете Треба да се биде на десната страна.
>> Дејвид MALAN: Океј, тоа е сите ќе добиете.
Во ред.
Зошто да не се открие на бен што го сторил.
Значи аплауз.
Тоа беше една од најтешките можеби.
>> Па дури и ако ние зборуваме во прилично глупо услови
за само цртање слики, се надевам дека
навистина може да го цениме степенот на експресивност кои би можеле да бидат потребни
со цел да му кажете на компјутерот што да прават.
И всушност, фактот дека бен беше во можност да се подготви оваа толку брзо
е вид на доказ за користење на јазик, а можеби и на повисоко ниво
верзија на англиски јазик, што му овозможува на да се користи само зборови, или слушаат зборовите
од Викторија, кој му овозможи овие abstractions-- само се подготви
бројка одење до right-- тој вид на има
некои семантичко значење на тоа што не е речиси како очигледно кога ќе се само
велејќи стави вашиот пенкало надолу, се повлече на правото, да привлече кон лево.
>> И така, тоа, исто така, е многу заеднички во програмирањето.
Ова ќе да се каже дека како многу ниско ниво јазик, програмирање
во 0 и 1, ако сакате.
И ова ќе биде на повисоко ниво јазик за програмирање во Јава,
или нешто слично.
А малку на симплификација, но тоа е
вид на како емоционална чувство дека се чувствувате кога
со користење на еден вид на работа или на друг.
А малку на фрустрација, тука од потребата за таква прецизност, туку можноста
да биде малку поблаги со толкувањето тука.
Но, се разбира, грешки може да се јави како резултат.
>> Ако сакате во home-- ние нема да го стори ова во class--
Но, ако сакате да се донесе еден гол,
Мислев дека ќе се нурне во ова.
Значи, ако сакате да се игра оваа игра со вашиот значајни други
или деца или слично, може да уживаат во тоа како добро.
>> Па ајде да одиме напред и да се погледне во последен работа тука за пресметковни размислување.
И што нè доведува до Џон Оливер, а не за клип
може да се гледа на минатата ноќ, но во малку неодамнешното издание.
Неколку месеци наназад, Фолксваген се доста критики
од кои причини, ако знаеш?
Она што не го добие во неволја?
>> Да, па тие emissions-- се обидуваат да го победи на емисии
тестови од страна на во суштина имаат нивните автомобили ја загадуваат животната средина помалку
кога нивните автомобили биле тестирани и ја загадуваат животната средина повеќе
кога автомобилите не биле тестирани.
И она што е повеќе интересно во светот, како може да се заклучи
од дискусиите на like-- она ​​што е it-- CarPlay, Apple софтвер за автомобили
и фактот дека многу од нас повеќе
имаат допир на екранот во нашите автомобили, има застрашувачки износ
на софтвер во луѓето автомобили денес, што
искрено се отвори цел еден може на црви кога станува збор за безбедноста и физички ризик.
Но, за денес, ајде се фокусира само што е
вклучени во пишувањето софтвер кои би можеле да имаат gamed системот.
>> За дефинирање на проблем, за оние кои се запознаени,
ајде да ги разгледаме во Јован Оливер.
И за оние кои се запознаени со проблемот, да се погледне во него
во забава леќа преку Јован Оливер, како и.
Значи, да ме удри игра на ова, мислам, три минути вовед.
По ѓаволите.
[Видео репродукција]
-Cars--
Дејвид MALAN: Очигледно, на YouTube, it's--
- --the Најпаметните ликови во Брз и бесен филмови.
Оваа недела, германскиот производител на автомобили Volkswagen се најде
во средината на скандал од потенцијално криминална пропорции.
>> -Volkswagen Се подготвуваат за милијарди во парични казни, можни кривични пријави
за нејзините менаџери, како компанијата се извини
за местење на 11 милиони автомобили помогне да се победи тестови емисии.
>> Последица на било какви дизел мотори се дизајнирани со софистициран софтвер кој
користени информации, вклучувајќи ја позицијата на воланот и возилото
брзина, за да се утврди дека автомобилот е подложени на тестирање на емисиите.
Во оваа околност, моторот ќе се намали токсични гасови.
Но, автомобилот е изманипулирана да се заобиколат дека кога бил управувано.
Емисиите се зголеми од 10 до 40 пати над прифатливите нивоа ЕПА.
>> -Wow, Од 10 до 40 пати поголема од EPA страница.
Тоа е најлошото нешто Volkswagen некогаш го направил,
е нешто што може да се каже ако никогаш не би слушнале за Втората светска војна.
Но, можеби најсигурниот знак за тоа колку многу проблеми Volkswagen е во,
е дека луѓето во многу Топ поднесоа оставка.
Извршниот директор поднесе оставка во средата, откако scrambling да се направи контрола на штетата,
велејќи дека тој е бескрајно ми е, што звучеше одлично се додека не се покажа
тој беше само 10% Жал но се лажирани устата
вештачки да се надува sorriness својата.
А во меѓувреме, САД Фолксваген Шефот имал извинување од своите.
>> -Let Бидеме јасни за тоа, нашата компанија е нечесен.
И во мојот германски зборови, се целосно зезнав.
>> -Да, Но целосно зезнав до не се германски дела.
И германскиот јазик има многу убави фрази
за да се опише ситуации како оваа, како што се [германски], што значи грубо,
тагата што доаѓа од бизнис поврзани со лаги,
или [германски], кој се преведува како татко посрамување оние кои вклучуваат
облаци на бензин.
Тоа е една убава јазик.
Тоа само плови надвор од јазикот.
И патем, а кај човекот Извинувањето може да звучи искрено,
тоа е вреди да се напомене Тој говореше на официјалниот почеток на партијата за 2016
Volkswagen Passat, што значи дека наскоро по велејќи жал, тој рече дека тоа.
>> ќе -Thank многу што дојдовте.
Уживајте во вечерните часови.
До следната е Лени Кравиц.
>> [Музички]
>> -OK, Во ред, завршувате со извинување до следната
Лени Кравиц не крик трезен каење.
Се вика, ги прашавме Бон Џови, и тој рече дека нема.
Брендот Volkswagen има биле многу оштетени.
И искрено, нивната нова реклама Кампањата не е точно помага.
>> - [Германски], ние во Фолксваген би сакале да се извини за вас залажувам со
нашите возила.
>> [END репродукција]
Дејвид MALAN: Значи ова беше описно of-- sorry--
ова беше заобиколен начин на воведување фундаментален проблем
во софтвер, што е тоа што треба да се открие одредени услови.
И така на прашањето во рака овде е, колку чини еден автомобил потенцијално,
како што е имплементиран во софтвер од страна на овие програмери,
открие дека тоа е всушност се тестира?
Така да биде супер јасен, она што го прават
беше, во средини каде што програмери сфатиле
автомобилот е се тестирани, тие некако го направија
автомобил испуштаат помалку емисии, помалку емисии, па затоа помалку токсични гасови
и сл.
Но, кога тоа е нормално возење на патот,
тоа само ќе емитуваат колку загадувањето што го сакаше.
>> Па како можеме да ја напише pseudocode за овој алгоритам?
Како можеме да го напишете pseudocode за софтвер се извршува во автомобил?
Мислам, во мало, што врие до нешто како ова.
ако се тестира, испуштаат помалку.
друг емитува повеќе.
Но, тоа е малку премногу високо ниво, нели?
>> Ајде да се обидеме да се нурне во тоа што ова апстракција се тестира средства.
Со други зборови, дури и ако не знаат ништо за автомобили, она што вид на прашања
може да побара, со цел да се утврди дали сте се тестира, ако сте на автомобил?
Кои карактеристики може да биде претстави ако наиде некој автомобил се тестира?
>> ПУБЛИКАТА: Тестирање опрема.
>> Дејвид MALAN: Опрема за тестирање.
Значи, ако тестирање на опрема во близина, тогаш испуштаат помалку.
Па јас можев да замислам спроведување дека со некој вид на фото апарати
или откривање на она што е околу вас.
И дозволете ми предложи, дека само се чувствува премногу комплицирано
да всушност имаат дополнителни хардвер само за таа намена.
>> ПУБЛИКАТА: Ако сте во парк, ако капакот е отворен.
>> Дејвид MALAN: Во парк или хаубата отворена, така што е добро.
>> ПУБЛИКАТА: И автомобил трчање.
>> Дејвид MALAN: Значи тоа е малку повеќе concrete-- и автомобил трчање.
Па ова ќе биде спој на неколку различни услови, ако сакате.
Значи, ако автомобилот е во парк, па дури и иако ова е многу механички работа
обично, би можел замисли пишување софтвер,
особено поради тоа што е често на светлината таму овие денови,
Јас може да се замисли да постои софтвер кој може да се пребарува на менувачот
или не е она што, вие сте во паркот, се сте во возење, вие сте во обратна насока.
И можам да се вратам на одговори на тоа е или да
или не на оние видови на прашања.
>> И така јас исто така може да веројатно одговори прашање како, е отворена хауба.
Можеби има некој вид на сензорот дека или ми дава назад 1 или 0,
вистински или лажни, хаубата е отворена.
И тогаш автомобил трчање, би можел да се открие кои на некој начин преку кои механизам?
Како, возилото се движи, јас може да се открие дека тоа е за,
би можел да се открие некако дека автомобилот се движи?
>> ПУБЛИКАТА: број вртежи во минута.
>> Дејвид MALAN: Да, така што е секогаш дека игла која
ви кажува колку вртежи минути тркалата се соочуваат.
И така, може да се погледне во тоа.
И ако тоа не е 0, што веројатно значи дека автомобилот се движи.
Но, ние мора да биде малку внимателни таму,
because-- ајде да се поедностави this-- Ако ние едноставно се рече, ако автомобил трчање,
ние не сакаме само да испуштаат помалку, сакаме ако возилото се движи
и тоа е се тестира.
>> Па така постојат и неколку други состојки, кои луѓе
се претпоставува софтверот е тоа, бидејќи во отсуство на вистински изворниот код,
може да се само вид на заклучиме од физичките ефекти на автомобилот за тоа што
може да се случува под капакот на моторот во софтверот.
Значи, ако автомобил трчање и можеби, да речеме, задните тркала да не се движат,
ова може да биде показател на некој вид на тест?
Што сум јас навестувајќи тука?
Да, можеби, тоа е на еден на оние ролери работи,
каде како тркалата се вртат во предниот или во задниот дел,
зависност од тоа дали е на предните тркала или задните тркала, па така половина на тркалата
се движи, но другите две не се, што
е чудно состојбата во реалниот свет.
Ако возите на пат, тоа не треба да се случи.
Но, ако сте во магацин на некој вид на ролери систем,
дека навистина може да се случи.
>> Мислам дека луѓето исто така, предложи дека можеби, ако возилото се движи и управувачот
тркалото не се движи, кои исто така може да биде сигнал,
затоа што тоа е разумно за како достапен на патот.
Но, дури и тогаш, човекот е веројатно се движи тоа малку или секако
во текот на неколку секунди.
Или текот на минута, шансите се тоа не е
ќе треба да се фиксираат во иста позиција.
>> Значи со други зборови, може да се земе одземање,
Дали сте се тестираат, и скрши она функционалност
компонента во овие состојки.
И тоа е навистина она што на Volkswagen инженери некако не.
Тие напиша софтвер свесно да откривање и ако колата се тестира,
Затоа, испуштаат помалку, друго емитуваат на вообичаениот начин.
>> И проблемот тука, исто така, е дека софтверот не е
нешто што навистина може да се види, освен ако имаш т.н. изворниот код.
Значи има два различни вида на code-- најмалку два различни типови
на код во светот.
Постои нешто што се нарекува извор код, што не е за разлика од она
ние сме биле пишување, изворниот код.
>> Ова е изворен код напишан во јазик наречен pseudocode,
што е само нешто Англиски-како.
Не постои формална дефиниција за тоа.
Но, Ц, и Java, C ++, оние се сите официјални јазици,
кога пишуваш во нив, она што го имате е текстуална датотека која содржи код.
>> Но, постои и нешто во светот наречен машински код.
И машински код, за жал, е само 0 и 1 е.
Значи машина кодот е она што машини за да се разбере, се разбира.
Изворниот код е она што луѓето се разбере.
>> И, генерално, но не и секогаш, има програма
дека го користи програмер кој ги зема извор код и ја претвора во машински код.
И дека програмата е обично се нарекува на компајлерот.
Така да твојот влез е изворниот код, излезот е машина код,
и компајлерот е парче софтвер што го прави тој процес.
Значи ова всушност мапи убаво да нашите влезови, алгоритми, излези.
>> Но, ова е многу специфична инкарнација на тоа, а тоа е да се каже дека,
дури и ако имате еден од Фолксваген автомобили, кој е виновен за тоа,
тоа не е како што само може да се отвори хауба или отворете го упатството за употреба или да барате
на изворниот код, бидејќи од страна на време го достигне вашиот автомобил во вашиот патеката,
Тоа е веќе претворена во 0 и 1 е.
И тоа е многу тешко, дури и невозможно, но е многу тешко да се собере многу за ништо
од само гледајќи во основните 0 и 1 е.
Така можете да го дознаам, во крајна линија, ако да се разбере како машина operates--
Интел inside-- ако се разбере Интел архитектура,
но тоа е многу време.
Па дури и таму, можеби да биде во можност да види сè
дека кодот всушност може да направи.
>> За било какви прашања во врска со оваа или оваа вид на процес воопшто?
И всушност, може да се врзуваат за оваа дискусија вчерашната дискусија на Apple.
Ова, исто така, е причината зошто ФБИ не може да се само одат и да бараат во телефонот на осомничениот
и да се најде на линии на код, за На пример, кои им овозможуваат на код за пристап
или да овозможат одлагање 80-милисекунда.
Бидејќи од страна на време тоа е на колеги е iPhone,
Тоа е веќе конвертира на 0 и 1 е.
>> Па, ајде да се откажеш тука за нашите се погледне на компјутерската размислување.
Зошто не ги 15 минутна пауза.
И кога ќе се врати, ние ќе да ги разгледаме во програмирање
себе и да почне да ги мапира некои на овие концепти високо ниво
на вистински, ако игрива, програмски јазик.