DAVID Malan: Sveiki sugrįžę, visiems. Taigi vakar, jums priminti, kad mes sutelktas į šių temų čia. Taigi mes turėjome keturis bene topics-- privatumas, saugumas ir visuomenė; interneto technologijų kūrimas; Debesis kompiuterija; ir galiausiai, interneto svetainių kūrimas. Ar kas nors turėti pralaidumo arba laikas žiūrėti šiek tiek Joną Oliveris praeitą naktį? Tai tikrai gana juokingas, jei ne šiek tiek bauginantis. Turite klausimų dėl nieko mes padarėme vakar? Bet paaiškinimai? Turite klausimų, kad norite, kad kad mes paliesti šiandien tam tikra forma? Taigi tabula rasa. Taigi, kas dėl šiandien darbotvarkę? Taigi, aš maniau, mes norime pradėti šiandien su tuo, kas paprastai atrodo žinomas kaip skaičiavimo thinking-- ne iš oversimplifying rizika, galvoju kaip kompiuteris, galbūt galvoju kaip inžinierius, ir bando pradėti organizuoti savo mintis ar jums geriau jausmą kas dalyvauja iš tikrųjų verti kompiuteris kažką daryti būdu programavimą. Ir mes laikyti jį gana aukšto lygio, gana daug anglų, bet pabandykite naudoti susipažinę pavyzdžiai formalizuoti kaip eitum apie sprendžiant problemas. Ir mes grįš šiek tiek CS temos, kaip imti, kurie atėjo pora kartų vakar algoritmai, tada atstovavimas. Ir tai, kai pradėsime šiandien vos akimirką. Tada mes priimsime programavimo išvaizdą. Mes priimsime kai išvaizdą pagrindinės konstruktai su kuriais jums gali būti susipažinę ir gali net rasti gana intuityvus. Mes pažvelgti, iš tiesų, ne Mėginio programavimo aplinka, kuri labai prieinama, labai žaismingas, ir iš tiesų skirta 12 metų ir daugiau. Mes praleisti keletą minučių ten ir tada imtis dalykų į žemesnio lygio ir iš tikrųjų kalbėti apie kai kurių algoritmai ir duomenų struktūros, taip sakant, kad programuotojai paprastai naudoja išspręsti kur kas daugiau problemų efektyviau nei jums gali galės apsieiti be jų apskritai. Tada po pietų, mes pažvelgti ne technologijų kaminai, kuri yra tik išgalvotas būdas pasakyti kolekcijos technologijas kad jūs galite naudoti norėdami išspręsti kai kurių problemų. Ir mes kalbame apie abėcėlė sriuba kalbų, kad egzistuoja today-- Java ir Python ir C ++ ir PHP ir Rubinas ir visų kitų dalykų rūšių. Mes pažvelgti trumpai projektavimo modelius. Programuotojai, laikui bėgant, įsivedusių metodologijas kad yra linkę jiems padėti spręsti problemas lengviau. Kai jūs pradedate matyti save raštu tos pačios rūšies kodas, vėl ir vėl, žmonių oficialiai tas pakartojimų ir priskirti vardus į juos ir tada juos naudoti ir skatinti juos, galiausiai. Ir mes kalbame šiek tiek apie mobilius strategijas, Patinka tai, ką tai reiškia, kad iš tikrųjų padaryti mobiliąją programą arba mobiliojo interneto svetainėje. Ar jums tai padaryti už Android? Ar jums tai padaryti už "iOS"? Ar jums tai padaryti tiek iš tų? Ir kas yra kompromisai? Ir tada, pagaliau, mes priimsime žiūrėti Web programavimas, kuris yra bendras terminas tikrai aprašant bet kuriuo metu rašote programinę įrangą, kuri manimi reiškė paleisti internete, ar ant telefonų arba Staliniai kompiuteriai ir nešiojamieji kompiuteriai. Mes priimsime trumpai pažvelgti duomenų bazės ir dizainas joje, jei tik dėl to beveik bet Įdomu žiniatinklio programa šių dienų turi tam tikrą duomenų bazę natūra. Priešingu atveju, tai būtų tiesiog statinis turinys. Ir duomenų leidžia jums padaryti pokyčiai laikui bėgant, ar sau arba iš vartotojų. Ir mes, kaip tu būtų eiti apie projektavimo kad duomenų bazė ir žargono natūra kad gali sugalvoti inžinieriaus diskusija baltos lentos kai realiai įgyvendinti programa pirmą kartą. Mes trumpai pakalbėsime apie API, naudingas paslaugas kad jūs galite naudoti norėdami stovėti ant pečiai kitiems, ar įmonių arba asmenys, ir išspręsti savo problemas greičiau. Ir tada mes taškytis galbūt šiek tiek su JavaScript programavimo kalba, kuri naudojama Abi naršyklės šių dienų, tačiau taip pat serveriuose. Ir galbūt, mes peržiūrėti, jei leis laikas, kai hands-on Web Daiktai Mes darė vakar ir integruoti du kartu, kol mes atidėti. Taigi su that-- kas ahead-- yra ten nieko nėra, kad jūs norėtų įsitikinti, kad mes įterpti ir paliesti tam tikru momentu. Jei tai spyruoklės į galvą, jį iki prieš ilgas. Bet kodėl ne mes pradėsime su pažvelgti skaičiavimo mąstymo. Ir leiskite man pasiūlyti, kad skaičiavimo mąstymas yra, vėlgi, rūšiuoti aukšto lygio aprašymas ką kompiuteris mokslininkas gali padaryti. Ir iš tiesų, pradėkime su trijų sudedamųjų dalių, kad gali eiti į skaičiavimo mąstymo. Tai tik vienas iš būdų ją apibūdinti. Mes, žinoma, gali nustatyti tai bet įvairiais būdais. Bet leiskite man pasiūlyti, už šiandien sumetimais, kad pasaulio problemas, visi pasaulio problemas, kai kreipėsi kompiuterių mokslininkas galėtų būti vertinama kaip ką mes Skambučių įėjimai, kuri reikia gauti paduodama į ką mes paskambinsime algoritmai, kurie tada derlius rezultatus. Kitaip tariant, visa pasaulis problemų sprendimo I reikalavimo gali būti distiliuojamas šie trys ingredientai. Taigi, ką aš turiu galvoje sąnaudų? Įėjimai yra tai, ką jūs įteikė siekiant išspręsti. Pavyzdžiui, čia senosios mokyklos problema. Jei turiu telefonų knygą čia ir Noriu atrodyti į jį, tai yra mano indėlis. Turiu 1000 ar taip Puslapiai telefonų knygoje. Tai yra įvesties į savo problemą. Ir aš noriu, kad rasti kažką kaip Mike Smith, todėl draugui kurio pavardė ir numeris tikiuosi šiame adresų knygą. Tai yra prieš ląstelių dienų telefonai, todėl aš negaliu tiesiog jo ieškoti. Taigi turiu tai padaryti metai mokyklos ir iš tikrųjų paieška Šie įėjimai nors atsakyti. Ir atsakymas yra tik ketina būti vadinamas išėjimo. Taigi indėlis yra telefonų knyga. Algoritmas yra kokia rinkinys žingsniai aš naudoju rasti Mike Smith. Ir produkcija yra, tikiuosi, Mike Smith telefono numerį. Ir tai tada būtų tiesiog atstovas labiausiai jokių problemų SU esate handed įėjimai ir nori gaminti produkciją. Taigi prieš manome procesas pagal kurį mes galime išspręsti šią problemą, rasti Mike Smith ir kažkas panašaus, aptarkime pirmoji ir kad last-- įėjimai ir išėjimai. Fiziškai, aišku, įvesties čia yra visa krūva popieriaus suklijuoti atsižvelgiant į telefono knygos forma. Bet Kompiuteriai, iš course-- nešiojamieji kompiuteriai ir staliniai ir net telefonai tai days-- tie, kurie Elektroniniai prietaisai. Ir nuo tos dienos pabaigos, kas vienintelis įvesties į kompiuterį? Na, tai kažkas panašaus tai maitinimo laidas čia. Aš prijunkite jį į sieną, ir Gaunu elektronų srautą, kuri leidžia man paleisti mašiną. O gal tie elektronai sukurtas taip, savo baterija. Bet dienos pabaigoje, tai vienintelis dalykas vyksta į mano nešiojamas. Ir taip daug įdomiau Daiktai galiausiai išeina, ar būdu spausdintuvo arba ekranas arba audially ar pan. Taigi, jei visi mes turime, kaip mūsų pagrindinė įvesties į kompiuterį yra elektra, todėl tiesiog elektronai eina ir ar iš, ir taip, kaip mes galime naudoti šią įvestį realiai atstovauti informacija? Kitaip tariant, kaip mes iš paprasto elektros energijos srautas atstovavimu faktinis numeriai arba faktinio raidės arba faktinio vaizdai ekrane arba faktinio filmus ar e-mail arba bet kuris iš šių numeris aukštesnio lygio sąvokas, jei norite, kad ne pabaigos dienos kažkaip turi būti saugomi šis elektroninis mechaninis įtaisas naudojant tik jų paprastą ingredients-- elektronai ateina ir išeina? Taigi atrodytų, kad paprasčiausiu būdu, tik rūšies narių Turiu savo pasaulyje, todėl į speak-- sąlygos į mano world-- yra arba Turiu elektronai teka, elektra teka, ar aš not-- tt, ne. Ir tegul formalizuoti ir išjungti, kaip kompiuteris mokslininkas gali, tik su 1 ir 0. Tegul tik aprašyti kai savavališkai bet atitinka numeris į jį. 1 reiškia įjungtas, 0 reiškia išjungtas. Arba jūs taip pat gali peržiūrėti tai kaip tiesa įtaisai ir netikri priemonėmis. Jūs taip pat gali tai padaryti juoda ir baltos arba raudonos ir mėlynos spalvos. Jums tereikia du aprašai. Ir kompiuterio mokslininkai būtų paprastai tiesiog naudokite 0 iki 1. Taigi, jei tai toks atvejis, mano tik abėcėlės yra sudaryta iš 0 "ir 1-ųjų, kaip galėčiau galbūt gauti net skaičių 2 iš kompiuterio, jau nekalbant skaičius 3 arba abėcėlės raidė arba vaizdas ar filmas? Kaip mes tarsi bootstrap save nuo šio pagrindinio principo nuo 0 "ir 1" ir iš tikrųjų atstovauti kažką įdomaus? Na, tegul įdėti į šį klausimą sulaikytas vos akimirką ir apsvarstyti kažką tikiuosi pažįstamas, net jei jūs ne iš tikrųjų galvojo apie ji bet kuriuo išsamiau nustatyti 10, 20, 30, 40, 50 daugiau metų. Štai kas? Kaip jūs tariate, kad? Ne triukas klausimas. Skaičius, bet kas tai yra? 1, 2, 3, arba 123. Ir man patiko, kaip jūs sakėte, 1, 2, 3, nes tai vienas iš būdų žiūrint. 1, 2, 3, tai seka iš trijų simbolių. Tai nuotraukas, kad mes dabar turi žodžius. Ir jei jūs tarsi juos visus skaityti kartu, tipiškas žmogaus anglų kalba sakyčiau 123. Ir tai tarsi aukštesnio lygio koncepcija, jaučiasi pakankamai didelis skaičius. Bet kaip mes ten patekti? Na, tai gali būti kartu, nes jūs minties apie tai, kaip šis, Bet atgal į mano dieną, aš rūšies išmoko tai 1-anketa skilties 10 s stulpelis, o 100 skiltis. Taigi, kaip sako Lakisa, tai 1, 2, 3, tačiau jis taip pat 123. Bet kaip mes gauti iš buvęs pastaroji? Na, jūs paprastai padaryti 100 skiltis, turiu 1 d. Štai tarsi sakydamas 100 kartų 1 d. Ir tada iš 10 savo skiltyje, turiu 2. Štai tarsi sakydamas 10 kartų 2. Nuo 1 anketa stulpelyje Turiu 3. Štai tarsi sakydamas 1 kartus 3. Ir jei aš dedu šiuos dalykus kartu, tai, žinoma, yra 100 plius 10 plius 3. Ir oh, tai kodėl man tai aukštesnio lygio sąvoka 123. Tai tiesiog pagrindinė matematikos, kuriuo jie simboliai turi svorius jiems, jeigu jūs bus, vietos ar stulpelių reikšmės. Ir kai aš daugintis viską , aš gauti šį skaičių. Taigi kiek jūs žinote, kaip kalbėti binary-- 0 "ir 1's-- kaip kompiuteris? Gerai, tobula, niekas, arba niekas iš jūsų manote jūs darote. Bet aš norėčiau teigti jus iš tikrųjų žino, tai jau. Mes tiesiog reikia rūšiuoti įgnybti mūsų psichikos modelis truputį. Tačiau šis procesas yra lygiai taip pat. Leiskite palikti šį vieną ten ir o traukti tai žemyn akimirką. Į kompiuterių pasaulyje, turime tik 0 "ir 1-aisiais. Ir taip dalykas, kad ketina keisti yra kas? Na, mano žmogaus pasaulyje, Dešimtainė sistema, Dec reikšmė 10, Turiu, kiek skaitmenų mano žinioje? 10, tiesa? 0 iki 9, žinoma. Ir štai kodėl mes turime 10 vieta ir 100 vieta. Kur yra ta, kad ateina? Gerai, tai yra 10 į nuo 0 galios. Tai yra nuo 10 iki nuo 1 galia, 10 siekti 2 jėgą, ir taip toliau. Jūs tiesiog laikyti dauginant savo stulpelius 10, pradedant išjungti su tik 1 į dešiniausias čia. Taigi į pasaulio Kompiuteriai, jei jūs tik turi binary-- bi prasmę 2-- arba 0 drabužiai ir 1 s, mes tiesiog tikrai reikia keisti tos matematikos bazę. Taigi, kitaip tariant, dabar mes tiesiog turėti 1 kolona ir padirbėti kur tai going-- 2 kolona, 4 skiltis, o gal už jos ribų. Kodėl taip yra? Na, tai yra 2: 0-osios galia. Tai yra 2 1. Tai yra nuo 2 iki 2, ir taip toliau. Taigi o čia mes turime 1, 10 s, 100-ųjų 1000-ųjų 10.000 ųjų, 100,000 s, 1 milijonai, ir taip toliau, čia rasta 1, 2, 4, 8, 16, 32, 64. Jūs tiesiog laikyti dauginant iš 2, vietoj nuolat dauginant iš 10. Todėl dabar, tuo atveju, tikslas ranka yra atstovauti numeriai, naudojant tik 0 "ir 1-ųjų aptarkime, kaip mes ten. Tai, žinoma, yra modelis 0 0 0, bet ką numeris konceptualiai jis atstovauja? Na, 4 kartus 0 plius 2 kartus 0 plius 1 kartų 0, Pridėkime tie kartu. 4 kartus 0, žinoma, 0, plius 2 kartų 0, žinoma, 0 plius 1 kartų 0 yra, žinoma, 0. Taigi Ah, tai atstovauja numeris mes, žmonės žino, kaip 0. Na, dabar, tegul labai greitai pirmyn. Jei aš vietoj neatstovauja 0 0 0, bet darykime 1 0 1, kad gali būti kaip Lakisa, anksčiau, tiesiog ištarti 1 0 1. Bet dabar, kaip mes jį, kad kuo didesnis lygis numerį mes, žmonės gali žinoti? Taigi, kas yra šis skaičius? Tai 5, numeris žinome kaip 5. Na, kodėl taip yra? Na, mes galime tikrai tarsi vaikščioti per ją metodiškai 4 kartus 1, 2 kartus 0, 1 kartus 1. Pridėti tie kartu, todėl tai 4 plius 0 ir 1. Ir tai, tiesą sakant, 5. Taigi, tai truputį nuobodus dabar daro aritmetines vėl ir vėl. Tačiau šis procesas yra lygiai taip pat. Vienintelis dalykas, kuris turi pasikeitė mūsų pasaulis yra tai, kad mūsų stulpeliai yra 1, 2, 4, 8, 16, ir taip toliau, o ne 1, 10, 100, 1,000. Ir tai tik todėl, kad mūsų abėcėlė turi sumažėjo nuo 0 iki 9, kad tik 0-1. Taigi, kaip šiek tiek viktorina čia Kaip jūs atstovaujate numeris 7 dvejetainiu? 0? Na, 0, jūs turite galvoje 0 0 0? Pasakykite ją vėl, Karina. Puikus. Kodėl taip yra? Tai efektyviai 4 plius 2 plius 1. Labai gerai. Kaip mes atstovaujame šiek tiek another-- kaip apie numeris 2? Arti, bet atgal. Taigi, kas tai yra? Yra 4 plius 1, taip, kad yra 5 dar kartą. Taigi what's-- aš atsiprašau, Karina? 0 1 0. 0 1 0 būtų 2, nes vėl, net jei jis tarsi neturi iššokti į tave, tik matematikos. 4 kartus 0, 0, 2 kartus 1 yra 2, 1 kartus 0 yra 0. Todėl tai yra numeris žinome kaip 2. Kaip apie šį numerį 8? Hm? Geras. Taigi, mes rūšies reikia dar vietos rezervavimo ženklą. Mes turime 1 0 0 0. Ir tai pasakytina apie mūsų rūšies senosios mokyklos dešimtainiai sistema. Kaip jūs atstovauti skaičių 1000? Na, jūs, atrodo, rūšies ir kietas vietoje, jei paprašys atstovauti numeris 1000, nes net jei jūs suteikiate sau kaip 9 iš jų, 9 iš jų, 0 iš jų, kuri yra didžiausia numerį, kurį turi, tu ne visiškai gauti iki 1000. Taigi, jei jūs 1000, jums tiesiog reikia dar pozicija, todėl, kad jūs galite padaryti 1 0 0 0, ERGO skaičius 1000. Taigi dabar, tegul žemėlapį šį rūšiuoti konceptuali diskusija atgal į aparatūros, kur vėl, įvesties buvo tik ši maža maitinimo kabelis, elektros ateina ir teka iš. Ir taip už tai turi būti išvesti iš čia ten gerai, ką mes iš tikrųjų reikia? Na, jūs galite galvoti yra viduje kompiuteris, visa krūva lempučių, jei bus. Jie tikrai vadinamas tranzistorių. Ir tranzistoriai yra tik persijungia kad gali būti būti įjungta arba išjungta. Taigi jūs galite galvoti apie tranzistorius tai ant yra leisti elektros srauto ir tranzistorius tai ne kaip sustabdyti Elektra iš teka. Ir, o ne imtis per šviesas čia kodėl ne aš šios rūšies naujos mokyklos stiliaus. Taigi tai gali būti 1, žibintuvėlis yra įjungtas, tik vos nors. Ir tai gali būti 0, o dabar tai ne. Taigi, naudojant šį fizinį įtaisą, aš dabar gali atstovauti dvejetainis sistemą. Aš tiesiog reikia dviejų valstybių. Nesvarbu, ką spalva jis yra, arba kas tai yra. Visa tai svarbu tai, kad turiu viena narė, ir kitos valstybės išjungtas. Taigi, naudojant savo telefoną čia kaip man atstovauti skaičių mes žinome kaip 0? Arba įdėti analogiškai, kas Taškų aš atstovaujanti dabar? 0, nes prietaisas yra išjungtas. Ir jei aš tai padaryti? Ir dabar, kaip man atstovauti skaičių 2? Ar galiu pasiskolinti telefoną čia, kaip mes padarėme vakar? Taigi pažiūrėkime, todėl, jei aš noriu atstovauti numeris 2, tai šis skaičius 2? Ne. Kas skaičius esu aš netyčia atstovaujanti čia? Tai iš tikrųjų numeris 3. Taigi, kuris iš jų aš noriu išjungti? Juodas telefonas or-- gerai, jei they're-- juodas telefonas ar baltas telefonas? Baltas telefonas. Taigi, jei aš išjungti šią funkciją ir mes linija jį per čia, mes turime 1 nuo 2 vietą ir taikomas 0 iš 1 vietą. Ir todėl aš dabar atstovaujanti skaičių 2. Ir tai, žinoma, būtų numeris 3, nes dabar tiek iš šių žiburių yra. Ir aš čia sustoti, bet tai suprantama, jei noriu atstovauti numeris 4 arba 8 arba didesnis, Aš ruošiuosi reikia daugiau telefonų. Bet kad viskas, kas vyksta. Taigi, jei jūs kada nors girdėjote, kad viduje a-- padėkoti you-- kompiuterį yra milijonai tranzistorių, tai vos milijonai mažyčių mažai jungikliai. Ir jie nėra šviesos lemputės, kad įjungti ir išjungti, bet jie arba leidžia elektrą tekėti kažkur ar jį sustabdyti. Ir taip ten tavo du states-- įjungti arba išjungti, įjungti arba išjungti. Taigi, mes atrodytų dabar turėti šią galimybę atstovauti šią sąvoką, kad mes norėtume faktinio įrangos. Bet visi mes turime dabar yra galimybė atstovauti numerius Atrodytų. Taigi, kaip mes einame apie atstovaujanti abėcėlės raides, kurios jaučiasi kitą rūšies funkcija galite norėtų pridėti prie modernaus kompiuterio kai jūs turite numerius? Ir iš tiesų, jei jūs manote apie IT istoriškai kompiuteriai buvo įvestos tikrai tarnauti kaip Skaičiuoklės skaitmeniniu. Bet žinoma, tai dienų, jie daug daugiau. Net tada, kai jie paleisti, jums paprastai matyti vieną ar daugiau žodžių. Taigi, kaip jums atstovauti žodžius, jei viskas, ką turite, vėlgi, elektros ne galutinio dieną, arba analogiškai 0 "ir 1 s? Taip. Taip, aš turiu galvoje, mes natūra padarė tai vakar tam tikra forma, kur tam tikru momentu, Manau, kad savavališkai sakė, kad, jei norime atstovauti raidė, galėtume tiesiog paskambinkite, kad per 1 d. Tai buvo slaptaraščio kontekste, kur mes tiesiog reikia šiek tiek kodo natūra, kai fiksuoti natūra. Taigi gal bus atstovaujama kaip 1, ir B bus atstovaujama kaip 2, ir Z bus atstovaujama kaip 26, pavyzdžiui. Ir tada tik įspėjimas, kad jei aš ketina koduoti raides mano laiškus ar mano tekstinius prane ¹ imus kaip skaičiai, jūs visi turi susitarti naudotis Tas pats rinkinys konvencijas. Ir iš tiesų, pasaulis padarė būtent tai. Yra pasaulyje sistema vadinama ASCII, Amerikos standartinis Informacinių mainų kodas, kuris yra tiesiog sprendimą keletą metų prieš, kad žmonės padarė, kad nusprendė, kad ketina lygus, o ne 1, 2, ir 26, ir taip forth-- tai mažai different-- bet 65, 66, 67. Ir aš atsigriebti diagrama vos akimirką. Bet tai savavališkas. Bet tai nesvarbu kad tai savavališkas. Pasaulis turi būti tiesiog nuoseklus. Dabar, visai neseniai, kažkas mėgėjas vadinamas "Unicode", nes pasaulyje rūšies Realizuotos po išrasti kompiuteriai, kad yra daugiau nei gerai 256 simboliai pasaulyje kad mes norime atstovauti, ypač kai jūs įdiegti Azijos kalbos ir kitų simbolikomis kad reikia daugiau išraiškingumą, nei jūs gali tilpti kuo versiją tai kodas, kuris buvo vadinamas ASCII. Taigi "Unicode" iš tikrųjų leidžia naudoti daugiau 0 "ir 2. Visų pirma, jūs nuolat išklausius žodis baitų visuomenės ir net tik vakar. Ir baitas vėl ką? Kas yra baitų? Tai tik 8 bitai. Taigi, ką tai iš tikrųjų reiškia? Na, tai reiškia, kad anksčiau, kai mes buvome kalbame apie dviejų ir aš naudoju savavališkai trys bitai, kai mes buvome kalbame apie binary-- 1 vietą, 2 vieta, o 4 s place-- gerai, baitas tiesiog reiškia, kad jūs kalbate ne vienetais, o po tris, bet keturi, penki, šeši, septyni aštuoni, kuris suteikia mums 8 vietą, 16 s, 32 s, 64 s, o 128-aisiais. Kitaip tariant, šiek tiek yra ne visi kad naudinga matavimo vienetas, nes tai tik kaip viena maža maža informacijos dalis, įjungti arba išjungti. Taigi prieš keletą metų, pasaulis tiesiog nusprendžiau tai šiek tiek patogesnė kalbėti sąlygos baitų, aštuoni dalykai vienu metu. Ir taip ir taip gimė A baitas sąvoka. Ir todėl mes turime aštuonis bitus čia. Ir it turns out, taip pat už panašus priežastys, pasaulis nusprendė metai prieš, kad atstovauti ASCII laišką, jūs ketinate naudoti vienetų 8 bitai. Taigi, net jei jūs neturite reikia, kad daugelis, jūs visada ketinate naudoti 8 bitai sudaro abėcėlės raidė. Ir tai yra patogu, nes tada, jei jus gauti pranešimą, kuris turi 0 0 0 1 1 1 1 0 po to dar 1 1 1 0 1 0 0 1, todėl, jei jūs gaunate 16 bitai, pasaulis gali tiesiog manyti, kad pirmasis 8 yra viena raidė ir antra 8 yra dar vienas raidžių. Nesvarbu, kiek yra. Tai tiesiog klausimai, kurie mes visi nuosekliai kai mes interpretuoti šiuos bitus. Ir tai buvo tik atsitiktinai. Tai reiškia, kad kažką, bet aš ne tikrai manau, kad apie tai, ką jis reiškia. Taigi tai yra mažas baltas melas. Iš pradžių ascii faktiškai naudojami tik 7 bitai. Ir aštuntas bit vadinama ASCII. Bet esmė yra, galiausiai, ta pati. Pasaulyje visuotinai standartizuotas 8 bitai. Todėl tai, atrodo, būti šiek tiek riboti, nes tik aš galiu atstovauti kapitalu, kapitalas B per kapitalo Z. Bet iš tikrųjų ne, jei aš einu to-- ten išteklių krūva internete, pavyzdžiui, asciitable.com, tai bus šiek tiek didžioji ne pirmas. Bet aš atkreipti dėmesį kas svarbu čia. Tai tiesiog nutinka be-- ir aš walk-- pažiūrėkime, jei aš einu čia. Čia yra dešimtainio kolona, ​​numeris 65. Ir dešiniajame stulpelyje laišką charakteris, "Chr, yra raidė A. Ir jūs galite ignoruoti, dabar, viskas per vidurį. Tai šešioliktainis, aštuntainė ir HTML kodą. Šioje svetainėje, tiesiog bando mesti daug informacijos ne jums iškart. Bet visi mes rūpinamės yra dešimtainė stulpelis ir simbolis stulpelis. Taigi pagal šią logiką, kas yra skaičius, kad pasaulis nusprendė reiškia mažosios raidės a? Taip, 97. Ir tik painioja potencialiai šiek tiek, ką skaičius pasaulyje nusprendė reikštų skaičių 1? Teisė, nes we-- 49, atrodo, čia žemyn apačioje, kairėje. Dabar, ką aš turiu galvoje, kad? Todėl Pasirodo, kad kompiuterinėse sistemose, ten paprastai yra esminis skirtumas tarp skaičiaus ir pobūdžio. Skaičius yra dalykas, kurį mes išmoko auga, kai mes buvome itin jauna pradinėje mokykloje. Tai, ką jums suskaičiuoti su. Bet charakteris yra tik forma A glifas, taip sakant, ant ekrano. Dabar mes, žmonės tarsi pamatyti kažkas, kad atrodo taip. Ir mes pasakyti, OH, kad yra numeris 2. Bet ne, tai tik simbolis, kuris atrodo patinka tai, ką mes žinome, kaip numeris 2. Ir taip ten tai esminis skirtumas tarp faktinių skaičių ir simbolių. Tai yra skaičius. Bet paprastai, į kontekstas kompiuterio, jei vietoj pamatyti kažkas panašaus į šį quoted-- ir jūs ne visada turite pamatyti tai kotiruojamos biržoje, bet už discussion-- sumetimais, jei matote kabutes skaičius, tai dabar personažas. Taigi šis skaičius 2 po viduje iš kompiuterio gaubtas būtų atstovaujama su modelio Bitų, kurios atstovauja numerį 50 pagal diagramą internete. Tačiau, jei kompiuterio tiesiog mano, kad šis, ši būtų atstovaujama su modelis šiek tiek 0 0 0 0 0 0 1 0. Kadangi šio pobūdžio būtų iš tikrųjų atstovauja as-- ir dabar Aš turiu galvoti šiek tiek harder-- todėl šis charakteris būtų atstovaujama su 0 0 1-- Ką reikia čia? 0 0 1 1 0 0 1 0. Kaip man tai padaryti? Na tai yra numeris 50, ar jums padauginkite jį naudojant šiuos stulpelius, tai yra skaičius 2, ir taip Štai kodėl yra tai dichotomija. Ir tai tik kibinimas dabar funkcijų kad egzistuoja programavimo kalbų kad mes paliesti trumpai vėliau šiandien. Programavimo kalbų, turite apskritai bet ne visada, viskas skambinti skirtingus duomenų tipus. Į Kitaip tariant, programmer-- kai jis arba ji yra raštu, programuotojas gauna nuspręsti, ką formatas saugoti savo asmens duomenimis. Galite saugoti duomenis, kaip žaliavos numeriai, pavyzdžiui, numeris 2. Arba galite juos laikyti stygos, arba sekos simbolių kad jums būtų paprastai išreikšti su citatos Jūsų programavimo kalba. Jūs galite turėti dalykų called-- Aš per daug supaprastinti ir jiems skambinti nekilnojamojo numbers-- taip numerių, nėra sveikieji skaičiai, pavyzdžiui, skaičių 2, bet skaičiai patinka 4.56. Taigi realieji skaičiai taip pat gali turi dešimtainės taškų, taip, kad visai kitas esminis gabalas duomenų į kompiuterį. Ir tada jūs netgi galite turėti kitų duomenų tipų ramiai. Taigi tai tik erzina tikrai, paprasčiausias dizaino sprendimus kad programuotojas galėtų kad po gaubtu. Taigi visi klausimai tik dar? Taigi pabandykime padaryti Tai šiek tiek daugiau reali. Ši įranga yra ne tiek daug naudoti nebėra. Bet labiausiai visi šiame kambaryje tikriausiai užaugau su ir vis dar naudoja kietuosius diskus kažkuriuo būdu. Nors dauguma mūsų nešiojamieji kompiuteriai nebėra turi prietaisus, kurie veikia kaip šis, vietoj nešiojamieji šiandien apskritai turi kietojo kūno diskai be judančių dalių. Ir kad yra linkęs būti daugiau brangus, deja, bet šiek tiek greičiau ir a-- gerai, dažnai daug greičiau, kuris yra vienas iš priežasčių. Ir taip pat jis nėra generuoti kaip daug šilumos. Jis gali būti mažesnis, todėl apskritai grynasis teigiamas. Bet tai mums leidžia susieti tiek konkrečiau ką mes kalbame apie ne 0 "ir 1 lygis dabar į fizinį įtaisą. Tai vienas dalykas man kalbėti apie 0 "ir 1 s požiūriu mano telefonu arba abstrakčiai kalbant jungiklių yra įjungti ir išjungti. Bet ką apie kietuosius diskus? Jūsų nešiojamieji kompiuteriai, jei turite seną vienas arba kompiuterį, ar tikrai serveriuose Šiandien, kur jūs turite kietieji diskai, kurie iš vietos terabaito, 4 terabaitų talpos, gerai, ką tai reiškia? Standusis diskas su 1 terabaito kosmoso priemonėmis ten 1 trilijoną baitų viduje ji kažkaip, arba analogiškai 8 trilijonų bitų viduje. 1 terabaito būtų 8 terabits arba 1 trilijoną bitų, kurie reiškia, kad jei turite sunku diską, jūs turite kažkaip ar kitų trilijono 0 s ir 1 viduje ji. Ir jei mes tiesiog imtis už išvaizdą savavališkai nuotrauka kietąjį diską atstovas, tai yra tai, ką sunku diskas gali paprastai atrodo viduje. Tai, taip pat, yra lyg senas patefonas grotuvas bet paprastai su keli įrašai viduje, todėl į speak-- kelių plokšteles, kaip jie vadinami, metalo apskritos diskai, ir tada šiek tiek nuskaitymo galvutė, panašiai kaip sename įrašų grotuvą. Ir tai nuskaitymo galvutė juda pirmyn ir pirmyn ir kažkaip skaito bitai. Ir kas šiais plokšteles, net nors mes, žmonės negali matyti juos, arba iš tikrųjų ar šiame paveikslėlyje, ten mažyčiai maži magnetiniai dalelės. Ir net jei jūs ilgai pamiršote, kaip elektros darbai, magnetiniu dalelių kad manimi paprastai imamas turi North End ir pietus end-- todėl Šiaurės ir Pietų. Ir taip pasaulis tiesiog nusprendė prieš kurį laiką kad, jei magnetinis protokolas iš esmės yra suderinta, kaip tai, iš šiaurės į pietus, tegul pavadinkime ta 1 d. Jei tai vietoj pietų-šiaurės, tegul tiesiog skambinti, kad su 0. Ir todėl, jei turite ne savo žinioje trln maža maža magnetinė particles-- ir tikiuosi, aparatūros išradingumas į Siekiant apversti aplinkiniams kaip matote fit-- jei norite atstovauti visa krūva 0 aisiais, jums tiesiog reikia 8 magnetines daleles visi suderinta, kaip šis. Ir jei norite atstovauti Aštuoni 1 s, jūs tiesiog reikia 8 magnetines daleles suderintas atgal atgal atgal, kaip šis. Ką reiškia, padarytais magnetiniai dalelės? Atvirai kalbant, visus šiuos metus vėliau, dalykas, kad vis dar ateina į mano protas tai vaikinas, jei jums užaugau su šio dalyko. Tai little-- už tie unfamiliar-- mažai vaikystės žaislas, kad turi šią plikasis vyro čia kad turi visą šių mažų Little Black magnetiniai dalelės, kurie ateina su juo. Ir naudojant tą raudoną kortelę, kuri yra tik magnetas, galite rūšiuoti duoti jam ūsus arba antakiai ar plaukai ar kas jam. Taigi iš tiesų, jei mes padidinti į, pavyzdžiui, tai yra žaidimo rūšies jūs galite žaisti su vilnonis Willy. Ir tai yra tik pasakyti, tai yra daug didesni magnetinės dalelės nei yra iš tikrųjų kietajame diske, ir daug mažiau magnetinės dalelės. Bet tegul realiai pamatyti Tada, jei jūs turite mažyčiai magnetiniai dalelėmis kietasis diskas, kaip jūs galite iš tikrųjų naudoti tiems duomenims atvaizduoti. [Vaizdo įrašų atkuriamų] -The Kietąjį diską, kur jūsų asmeninis kompiuteris parduotuvės dauguma jos nuolatinių duomenis. Norėdami tai padaryti, duomenis keliauja iš RAM kartu su programinės įrangos signalus, kad pasakyti kietąjį diską, kaip saugoti tuos duomenis. Hard Drive plokštės išversti tiems signalus į įtampos svyravimus. Tai, savo ruožtu, kontroliuoti kietojo disko juda parts-- kai iš nedaugelio juda dalys paliktas modernių kompiuterių. Kai kurie iš signalų kontroliuoti variklį, kuris sukasi metalo dengtos plokšteles. Jūsų duomenys yra iš tikrųjų saugomi šių plokšteles. Kitos signalai perkelti skaitymo / rašymo galvutės skaityti arba rašyti duomenis apie plokšteles. Ši technika yra tokie tikslūs, kad žmogaus plaukų net negalėjo praeiti tarp vadovų ir verpimo plokšteles. Tačiau, visa tai dirba siaubingas greičiu. [PABAIGA PLAYBACK] Ir jūs galite pamatyti ne galine vaizdo, paprastai būna daug plokšteles. Ir taip, kad skaitant galva yra ne tik skaityti viršuje. Tai lyg trys ar Keturi ar daugiau skaitymo galvutės kad Perkelti kaip šis, skaityti duomenis tuo pačiu metu. Taigi ten yra daug sudėtingumas ir tarsi laiko kad manimi dalyvauja kietąjį diską. Ir ką sukasi tikrai adyti greitai, todėl ten sudėtingumo daug. Bet tegul padidinti šiek tiek giliau ir pamatyti, kur yra šie magnetiniai dalelės ir kaip mes vis į juos. [Vaizdo įrašų atkuriamų] -ėlis Pažvelgti, ką mes tik pamačiau sulėtintai. Kai trumpas impulsas Elektros siunčiamas į skaitymo / rašymo galvutės, tai salto ant mažyčio elektromagnetines dėl per sekundės dalį. Magnetas sukuria laukas, kuris keičia iš mažytė, mažytė poliškumas dalis metalo dalelių kuri kailis kiekvieno patiekalas paviršių. Raštas serijos Šios mažytės įkrauti iki plotai diską reiškia viengubą tiek duomenis į dvejetainis skaičius sistema, kurią naudoja kompiuterius. Dabar, jei srovė yra siunčiami vieną kelią per skaitymo / rašymo galvutės, plotas yra poliarizuota viena kryptimi. Jei srovė yra siunčiami priešinga kryptimi, poliarizacija yra atstatomas. Kaip jūs gaunate duomenis išjungti kietąjį diską? Tiesiog pakeisti procesą. Taigi, tai daleles ant diskas, gauti srovę į skaitymo / rašymo galvutės juda. Sudėti milijonus Šie įmagnetintų segmentai, ir jūs turite failą. Šiol viename faile dalys gali būti išsibarsčiusios visame disko anketa plokšteles, lyg netvarka Straipsnių ant jūsų stalo. Taigi ypatingas papildomų failų išlaiko takelis, kur viskas yra. Ar ne jūs norite jūs turėjote kažkas panašaus? [PABAIGA PLAYBACK] Taigi yra užsiminė, kad ten, ko gero, yra kad tema nuo vakar iš ištrynimo. Kai panaikinate failą, vakar sakėme kad kompiuteris iš tiesų ką, kai jūs vilkite kažką į šiukšlinę ar šiukšlių dėžę? Jis tiesiog pamiršta ją. Bet 0 "ir 1-ųjų magnetiniai dalelės kad atrodo kaip raudona ir mėlyna viskas čia, arba mano rankos čia, vis dar ten į kietąjį diską. Ir taip egzistuoja software-- "Norton Utilities ir pasekėjai ir kita modernėja software--, kad tik bus nuskaityti visą kietąjį diską ieško visuose tuose 0 ųjų ir 1-ųjų, nes tai Pasirodo, kad dauguma failą skirtingus formatus "Word" dokumentus, "Excel" failus, nuotraukas, vaizdo files-- visi turi tam tikras modeliai, kurie yra bendri tarp jų. Kiekvienas vaizdo failas gali būti skirtingos vaizdo, bet pirmas kelias bitai yra paprastai yra tokia pati. Arba paskutinės kelios bitai paprastai yra tie patys. Ir taip su didele tikimybe, galite ieškoti tų modelių. Ir net jei failas buvo pamiršta, galite pasakyti, didelė tikimybė, bet tai atrodo "Word" dokumentą, lets susigrąžinti ir JT pamiršti, jei bus. Ir taip tai kaip jūs galite atgauti duomenys, kurie manimi arba buvo atsitiktinai ištrinti arba ištrinti arba sąmoningai ištrinta dėl kokių nors tikslais. Priešingai, saugus išbraukta ką daro į panašaus šią nuotrauką kontekste? Būtent, todėl juos visus atsitiktinai. Taigi tarsi juda kai juos žemyn, kai kurie iš jų iki, palieka kai kurie iš jų nepakito, o paprastai atlieka atsitiktine tvarka triukšmo iš jo, arba tiesiog gal daro visi Them 0 s ar visi iš jų 1-aisiais. Ir tai taip pat gali paprastai nušveiskite savo duomenis toli. Tad dabar sugrįžimą į klausimą skaičiavimo mąstymo, kuriuo turime formulę įėjimai. Ir algoritmai suteikia Jūs išveda galiausiai. Mes orientuojamės dabar sąnaudų ir išėjimai, nes dabar aš pretenzija mes turime būdą įvesties ir išvesties atstovaujanti. Mes tiesiog ketiname naudoti dvejetainis. Ir nesvarbu, ką mes nori atstovauti šiandien ar tai numeris arba raidė ar jų tūkstančiai telefonų knygoje ar nuotraukas ar filmus, o pabaigoje dienos, tai visi 0 "ir 1-aisiais. Ir aš teigia, kad, nors tai yra super paprasta pasaulis su tik 0 aisiais ir 1 s, mes galime sukurti save iki. Ir mes matėme vieną pavyzdį kad su raidėmis šiol. Taigi leiskite dėmesio dabar apie tai viduryje ingredientas, algoritmas. Ir tegul grįžkite į šį pavyzdys Mike Smith. Taigi šiuo telefonų knygoje, kuri Tiesa, mes nenaudojame tiek daug daugiau, yra problema, kurią reikia išspręsti. Mes norime, kad rasti ką nors panašaus Mike Smith. Ir kas gali man padaryti rasti Mike? Na, aš galėčiau tik atverti tai knyga, pradėkite nuo pirmo puslapio, ir suvokti, oi, aš A skyriuje. Mike ten nėra. Man reikia S skyrių Smith. Taigi tiesiog laikyti tekinimo vieną puslapį vienu metu. Leiskite apsimesti, kad visa tai baltuosiuose puslapiuose, o ne įmonių katalogas, nes mes neketiname rasti Mike geltonieji puslapiai vistiek. Bet aš baltuosiuose puslapiuose. Ir dabar, aš B skyriuje. Aš vis dar neradau jam. Taigi aš nuolat sukant vieną puslapį vienu metu. Tai yra algoritmas,. Tai skirtų instrukcijų rinkinys sprendžiant tam tikrą problemą. Kitaip tariant, pažvelgti puslapis, jei Mike'as ne apie tai, pasukite puslapį ir kartojasi vėl ir vėl ir vėl, idealiai žiūri, kaip jūs darote. Taigi tai algoritmas, Šis procesas, teisingai? Atsiprašau. Ne, girdžiu kai numeriai. Gerai, tačiau ji is-- taip, tai tikrai varginantis. Kaip mes čia visą dieną, jei aš nuolat ieško Mike šiuo greičiu. Bet leiskite man teigia, kad tai teisinga. Tai kvaila, bet tai teisinga. Tuo dienos pabaigoje, tol, kol ji gali imtis, aš rasite Mike, jei jis ten ir aš atkreipti dėmesį. Ir aš galų gale pasiekti savo puslapį. Ir jeigu aš gauti per toli, jei Gaunu T skyriuje tada galiu šiek tiek optimizuoti ir tiesiog pasakyti, HM, viskas padaryta. Aš net nereikia gaišti laikas eiti į Z-aisiais. Bet tai yra labai tiesinis metodas, jei jums bus, labai tarsi iš kairės į dešinę požiūris, tiesi linija. Ir jos teisinga, tačiau lėtai. Taigi aš atsimenu iš pradinėje mokykloje, tarsi apie optimizaciją iš pirmojo rūšiuotojas, kur aš sužinojau, kaip skaičiuoti ne pagal tuos bet twos-- taip 2, 4, 6. Tai, daug sunkiau padaryti, bet teoriškai, tai faster-- 8, 10, 12, 14, ir taip toliau. Kaip apie šio algoritmo? Ar tai efektyviau? Ar tai greičiau? AUDITORIJA: Tai veiksminga. DAVID Malan: Taip, taip, tai def-- tai tiesiog du kartus taip greitai, darant prielaidą, aš Nesupraskite suveikė su mano pirštais. Tai du kartus taip greitai, nes Aš tekinimo per du puslapiai iš karto, o ne vienas, bet tai potencialiai teisingas, nes kodėl? Auditorija: Jūs praleidžiant kai. DAVID Malan: Teisė, ką daryti, jei Mike'as atsitinka būti sandwiched-- gal kai aš vėliau telefonų knygoje Mike atsitinka būti įtvirtinta tarp šių dviejų puslapių, ir aš tiesiog aklai praleisti jį. Taigi mums reikia šiek tiek fix ten. Kai aš paspauskite T skyrių, aš galite ne tik užtikrintai pasakyti, neradome Mike Smith. Aš tikriausiai dvigubai atgal. Arba iš tikrųjų, kai aš pasiekti ką nors pavadintas S-N, o ne S-M Smith, iš karto, galėjau dvigubai atgal, nes gal jis buvo ankstesniame puslapyje. Bet aš neturiu dvigubai atgal šiol. Teoriškai, jei aš tai padaryti dešinėje kartą, aš tiesiog grįžti viename puslapyje. Todėl pridedant tik vieną papildomą žingsnį. Taigi aš atvyko du kartus taip greitai, bet jis man kainavo vieną papildomą puslapį. Bet kad jaučiasi neto laimėti. Bet tai ne kaip dauguma žmonių Šis kambarys būtų išspręsti šią problemą. Kas būtų tipiškas asmuo, o gal prieš keletą metų padaryti, rasti Mike Smith? Taip, nepavyko rasti Mike. Ka aš darau? Taigi gauti šiek tiek arčiau, bet aš know-- kas yra tiesa apie telefonų knygą? AUDITORIJA: Tai nuoseklus. DAVID Malan: Tai nuoseklus. Tai abėcėlės tvarka. Ir todėl, jei aš M skyriuje Mike aiškiai į dešinę, Galiu tiesiog suplėšyti Į half-- problema tai paprastai lengviau nei that-- ašara per pusę problema ir jį išmeskite, taip, kad dabar aš turiu problemą, kad anketa nebėra 1000 pages--, kad buvo sunku, nes manau, kad aš iš tikrųjų sudraskė telefonų knyga tai LAIKĄ_ nėra 1000 puslapiai, bet 500. Taigi problema yra tiesiog perpus didelis. Ir tai gana įtikinama, nes su mano ankstesniais algoritmų versija 1 ir 2, aš buvo padaryti tik šią problemą vienas puslapis mažesni, du puslapiai mažesni tuo metu. Kadangi dabar, aš padariau tai 500 puslapiai mažesnis visus iš karto. Gerai, kad dabar, Karim siūlo kad aš einu į dešinę pusę. Taigi, aš ruošiuosi eiti maždaug į vidurį, suteikti arba užtrukti. Ir jei aš tai matematiškai, Galėčiau eiti tiesiai į vidurį. Ir dabar, aš suprantu, OH, Aš T skyriuje. Aš iš tikrųjų nebuvo per toli. Bet aš galiu, vėlgi, ašara problema pusę, jį išmeskite. Ir mano baitų nėra tokie dideli. Tai tik, ką, 256 puslapių arba 250 puslapiai, suteikti arba užtrukti dabar. Bet jis vis dar taip daugiau nei vieno puslapio ar dviejų puslapių. Ir taip dabar Aš einu maždaug į vidurį. Ech, man nėjo gana toli pakankamai dabar. Taigi kartoju, kartoju, kartoju, pakartoti, kol aš tikiuosi liko tik vienas puslapis. Taigi, kad kviečia į klausimą, jei aš prasidėjo maždaug 1000 puslapių, kiek žingsnių padarė tai mane su mano 1-ojo algoritmo versija? Na, jei Mike'as yra S skyriuje, blogiausiu atveju, tai gana arti abėcėlės pabaiga. Taigi, jei telefonas knyga turi 1000 puslapių, Aš rasite Mike per 1000 puslapių, suteikti arba užtrukti. Gal tai kaip 800, arba tiek, bet tai gana arti 1,000. Kadangi tais atvejais, sekundę algoritmas, kiek puslapis virsta maksimaliai galėčiau reikalauja rasti Mike Smith? Yra 1000 puslapiai, bet aš daro juos du vienu metu. Teisė, todėl max kaip 500ish, nes jei aš einu per visą telefonų knygą, nuo tada, galiu sustoti. Bet galiu nusiskusti keletas iki tiesiog sustoti T skyriuje. Bet tai ne blogiausiu atveju 500 puslapiai. Taigi, kiek kartų galiu padalinti 1,00o puslapis telefonų knyga per pusę vėl ir vėl ir again-- nuo 1000 iki 500 iki 250 iki 125? Prieš kiek laiko aš paspauskite vieną puslapį? Taip, tai yra apie 10. Priklausomai nuo apvalinimo ir tokių, tai apie 10 puslapių bendra turi būti pasuktas arba telefonu knygos reikia suplėšyti. Taigi tai gana galingas. Mes pradėjome su 1000 puslapių problemos visų šių istorijų trijų. Bet pirmoje algoritmą, jį paėmė mane, blogiausiu atveju, 1000 puslapis Pasirodo rasti Mike. Antra algoritmas, 500 puslapiai rasti Mike. Trečia algoritmas, 10 puslapių rasti Mike. Ir tai dar labiau galingas, kai jūs manote apie tarsi priešinga scenarijų. Tarkime, kad telefono kompanijos kitą metus gal susilieja du miestus kartu, ir telefonų knyga staiga Šis storas, vietoje to, kad, taip 2000 1000 puslapiai vietoj. Na, mano pirmasis algoritmas ieško Mike'as Smithas į 2000 puslapių telefonų knygoje, Blogiau atveju, jis ketina imtis kiek puslapis virsta kitais metais? Telefonų knyga yra 2000 puslapių, so-- gerai, o ne dar viena. Jei telefonas knyga yra dvigubai storio pirmas algoritmas, pirmas algoritmas, 2000, tiesa? Blogiausiu atveju, Mike'as yra tikrai uždaryti į knygos pabaigoje, todėl 2000 puslapis posūkius. Antra algoritmas vyksta pagal poromis, pavyzdžiui, 1000 puslapių. Bet kaip apie mano trečdaliu ir naujausias algoritmas? Jei telefonas įmonė padvigubina puslapių skaičius nuo 1000 iki 2000, kiek daugiau kartų reikia man ašara kad knyga per pusę rasti Mike? Auditorija: Tik vienas. DAVID Malan: Dar vienas, nes su vienu puslapio ašara, Galiu tiesiog padalinti ir užkariauti, jei norite, kad problema per pusę paėmimo masyvi sukandimas iš jo. Ir todėl tai yra pavyzdys efektyvumas ir tikriausiai algoritmas su kuria visi mes esame tarsi intuityviai pažįstami. Bet tai kaip teisingai kaip mano kiti algoritmai su tuo įgnybti už antra algoritmas, bet tai tiek daug efektyviau. Ir iš tikrųjų, koks kompiuteris mokslininkas, ar, savo ruožtu, programuotojas, būtų paprastai darote, kai raštu kodas yra pabandyti išsiaiškinti, viskas gerai, aš nenoriu, kad mano Programa tiesiog turi būti teisinga, Taip pat noriu, kad jis būtų efektyvus ir spręsti problemas taip pat. Įsivaizduokite, realiame pasaulyje šiandien kaip Google indeksuoja, paieškų kaip milijardus puslapių, įsivaizduokite, jei jie naudoti pirmąjį algoritmą rasti katinus tarp milijardo pages-- žiūri pirmas puslapis į jų duomenų bazę, antra, trečia, tiesiog ieško už katės, ieško katė. Štai pretty darn sulėtinti atrodytų. Jie gali vietoj naudoti kažką vadinamas dvejetainis paieškos, kuri nėra coincidence-- dviejų reiškia du, mes išlaikyti dalijant kažką 2, į half-- jie galėtų naudotis dvejetainis paiešką o gal Rasti katę net greičiau, ar kokia ji yra jūs ieškote. Ir tiesą sakant, ten net mėgėjas algoritmai kad padaryti daug daugiau nei tik dalijant dalykų pusę tam, kad greitai rasti informaciją. Ir mes kalbame šiek tiek apie tuos, po pietų šiandien. Taigi leiskite man tiesiog pabandykite atstovauti tai. Mums nereikia eiti į bet matematikos ar faktiniai skaičiai. Mes galime kalbėti apie tai abstrakčiai. Bet leiskite man tiesiog pasiūlyti, jeigu jūs buvo turintys diskusiją dabar su inžinieriai pasiūlyti šį algoritmą ir bandote padaryti apskaičiuotoji sprendimas, nes gal inžinierius sako jums, žinoti, ką aš galiu įgyvendinti linijinis paiešką kaip dvi minutes. Tai taip paprasta. Dvejetainiai paieškos nėra, kad išgalvotas, bet ji ketina imtis man kaip 10 minučių, taip 5 kartus tol, kol. Yra prekyba čia, net kalbant nuspręsti, kokią programinę įrangą rašyti. Ar rašote paprastesnį algoritmą, kuri bus tiesiog jums dvi minutes? Arba praleidi daugiau laiko, 10 min, raštu mėgėjas algoritmą? Kaip jūs nusprendžiate, kad klausimą natūra? Arba galite padaryti jį šiek tiek daugiau reali. Sakau mano bosas ji ketina imtis man nei viena savaitė ar 10 savaites į įgyvendinti programinė įranga tokiu būdu, kaip Ar jums nuspręsti, kuris algoritmas žalia šviesa? Karimas? Auditorija: auditorija, I guess. DAVID Malan: auditorijai. Ką reiškia auditorijos? Auditorija: Jei tai vyksta kurios turi būti vartojamos vartotojų kas [NESIGIRDI] vartotojų [NESIGIRDI]. Bet jei tai, ką jūs esate tiesiog daro sau palengvinti problemos [NESIGIRDI] greičiau. DAVID Malan: Taip, tai greitai ir purvinas yra geras būdas apibūdinti jį. Iš tiesų, jei esate apibūdinti daug mano laiko į grad mokykloje, kur Dažnai Parašiau blogą kodą sąmoningai so-- bent jau kaip aš racionalizuotos it-- sąmoningai taip, nes nors man buvo raštu kodą kad buvo santykinai lėtas vykdyti, Galėjau parašyti pati kodą gana greitai, išlaidų vos kelios minutės ar valandos ne dienos. Ir paaiškėjo, aš kartais reikia miegoti. Taigi, net jei mano kodas reikalingas 8 valandos paleisti, gerai, kad viskas gerai, Aš tiesiog eiti miegoti, o ji veikia. Taigi tuo metu, aš pagalvojau, kad tai buvo labai protingas, nors aš, matyt, dirbo per savo doktorantūros labai lėtai. Bet, kad Converse yra , kad jei aš būčiau rašymo programinės įrangos kitiems žmonėms, kurie nerūpėjo daugiau nei man, gerai, turintys juos laukti 8 valandas, kad grįžti savo paieškos rezultatus yra ne visi, kad įtikinamos. Ir taip praleidžia daugiau laiko priekyje rašyti programinę įrangą kad yra efektyvesnis, labiau kaip mūsų trečiosios algoritmas, tikriausiai naudos vartotojams laikui bėgant. Taigi tai tikrai priklauso nuo per laikas, kaip šios išlaidos pridėti. Jei jūs ketinate rašyti programinė įranga, kad jį naudoti vieną kartą, tikriausiai gali taip pat daryti greitas ir purvinas, kaip jie sako. Tiesiog mesti jį kartu. Tai kodas, trikdo tu, tai taip blogai, bet ji gauna darbą teisingai, nors tai nėra veiksminga. Ir atvirkščiai, praleisti daugiau laiko kažką, gauti jį teisingai. Ir amortizuojamos per laiką, kad iš anksto kaštai metu tikriausiai verta, jei norite išsaugoti optimizuoti bendrai atveju. Ir iš tiesų, tai yra į temą programavimas, arba kompiuterių mokslas daugiau Apskritai, bando optimizuoti ne nedažni atveju bet bendri case-- ką operacija ketina vėl ir vėl vyksta? Jei jūs ketinate turėti milijardus vartotojų ieško jūsų svetainėje, jūs tikriausiai turėtų išleisti papildomų savaičių iki priekyje rašymo geriau programinę įrangą, taip, kad visi jūsų vartotojų naudai. Dabar pabandykime užfiksuoti tai mažai pavaizduotomis piktogramo-, bet ne tiek daug Skaitmeninio. Taigi čia tik senosios mokyklos diagrama. Ir leiskite man pasakyti, kad tai yra laikas. Ir nesvarbu what-- iš tikrųjų, ne, ne laikas. Galime įdėti, kad ant kitos ašies atžvilgiu. Tarkime, kad tai yra laikas, ir tai yra dydis problemą. Ir kompiuteris mokslininkas paprastai galėtų skambinti tai tik n. n yra kaip Mūsų eiti į kintamasis, kur n yra skaičius, n numeris, ir tai skaičius kokiomis įėjimai turite. Šiuo atveju taip, n yra puslapių skaičius. Taigi tai gali būti 1000. atveju mes tiesiog pasakyta. Taip laikas gali būti bet kuris iš matavimo vienetas. Galbūt, tai antra. Galbūt, tai dienas. Gal tai kaip puslapio posūkiais. Nesvarbu. Whatever norite skaičiuoti, kad bus laiko ir kainuos analogiškai. Taigi su tuo pats pirmas algoritmas, jei I, pavyzdžiui, turėjo 1000 puslapių telefono knyga, Aš ruošiuosi padaryti tašką ten, nes jei tai 1000 puslapių, jis paėmė maždaug 1000 puslapis Pasirodo, suteikti arba užtrukti. Ir tada, jei aš buvo 2000-puslapis telefonų knyga, ir aš ruošiuosi daryti sekundę dot čia, nes už 2000 puslapių, tai kaip 2.000 sekundžių arba puslapis paverčia ar kas. Ir todėl, kai aš sakiau anksčiau, tai rūšies tiesinė priklausomybė, tai buvo tyčinis, nes norėjau vėliau on-- teisę now-- atkreipti liniją. Tai tipo tiesus linija santykiai. Nuolydis yra 1/1, jei bus. Tuo tarpu, antra algoritmas Beje, jei turite 1000 puslapių ir jums buvo naudojant antrą algoritmą, kur aš skaičiuojamas 2 ", tekinimo du puslapiai vienu metu, turėčiau piešti dot žemiau arba aukščiau mano originalus tašku? Auditorija: žemiau. DAVID Malan: Žemiau, nes, kaip matėme, ji užima mažiau laiko, pusė tiek laiko. Taigi taškas turėtų būti pusė toks didelis, kaip ir kita. Ir pati spręsti per čia, tai taškas tikriausiai turėtų būti maždaug ten. Ir taip mano antras algoritmas, panašiai, yra tiesinė santykius su laiku. Ir mes galime padaryti ją tokia. Todėl dabar, trečiasis ir paskutinis algoritmas yra šiek tiek sunkiau piešti. Bet intuityviai, jei aš turiu 1000 Puslapiai su mano trečią algoritmas, jis turėtų būti tik man kaip 10 žingsnių. O jei aš turiu 2000 puslapių su mano trečią algoritmas, jis turėtų būti man ne 10 žingsniai, bet 11, tiesiog dar viena. Taigi mes tik vos ketiname pamatyti tai. Ir it turns out, jei Aš Padidinti šį, aš ketina perdėti dėl poveikio, tos linijos formos, galiausiai, nėra tiesus line-- nes, iš tikrųjų, jei jis buvo, ji atrodytų daugiau kaip ir others-- tai tikrai lenkta linija , kad jei mes padidinti, vyksta ieškoti daug daugiau, kaip šis. It-- gerai, gerai, ignoruoti šią dalį. Tai buvo mano parkeris vyksta kampas. Tai lenkta linija, kuri visada didėja, visada, visada, visada didėja, tačiau tik vos vos. Ir taip, laikui bėgant, jūs turite santykiai, kad daugiau, kaip šis. Tai beveik atrodo tiesi. Bet tai vis tiek lėtai auga. Tačiau beveik visuose taškuose išilgai Jūsų X ašis horizontali ašis, tai mažesnis nei tų kitų linijų. Taip, tai gali būti santykiai N, kuriuo, jei turite n puslapių, pateksite n sekundžių. Tai gali būti santykiai n / 2. Turite n puslapių, užtrunka Jums n / 2 sekundes, pusė kaip daugelis. Ir tai yra logaritminė santykiai, kurie Jei prisimenate, prisijunkite bazę 2 iš n fiksuoja šis augimo natūra, taip sakant. Taigi tai yra šventas rūšiuoti Gralis tarp šių trijų čia, nes tai tik dar daugiau efektyvus, bet, be abejo, vis sudėtingesni įgyvendinti. Turite klausimų? Na leiskite tai padaryti, leiskite man atverti teksto langą tiesiog taip mes galime pabandyti formalizuoti kažką čia. Taigi leiskite man eiti į priekį ir dabar įgyvendinti šį algoritmą rasti Mike Smith kodas, jei bus, Pseudocode kodas. Nesiruošiu naudoti Java arba C ++. Aš tiesiog ketinate naudoti rūšiuoti Anglų-kaip sintaksė, kurį mes būtų paprastai vadiname Pseudocode kodą. Čia turiu tuščią langą. Ir aš sakau iš labai 1 žingsnį Pirmasis algoritmas yra pasiimti telefono knyga. 2 žingsnis yra atversta knyga pirmame puslapyje. 3 žingsnis bus pažvelgti puslapis Mike Smith. Jei puslapyje, skambinkite Mike. kitas posūkis puslapis ir pereikite prie 3 veiksmo. Priimta, tarkim. Ir taip tai ne visai tobulas, kuri matysime iškart. Bet tegul mano ką sąvokos Aš čia įvesta. Taigi 1 ir 2 veiksmus ir 3 yra gana daug veiksmažodžiai. Jie pareiškimus, actions-- tai padaryti. Ir taip į programavimo kalba, mes paprastai būtų skambinti jiems ataskaitas arba funkcijos ar procedūros, jiems skambinti bet daug dalykų. Bet jie tiesiog actions-- tai padaryti. 4 žingsnis iš esmės skiriasi, nes tai tipo užduodami klausimą. Tai sakydamas mes natūra ne A kelio šakute. Jei Mike puslapyje, skambinkite jam, todėl pasukite į kairę, jei bus. O jei ne, grįžkite į kai kita page-- ar veikiau, atsiprašau, grįžti į kitą žingsnį, kuris skatina tam tikrą kilpų konstruktą natūra. Ir mes tai darome vėl ir vėl ir vėl. Ir iš tikrųjų, jūs žinote, ką? Taip. else if pabaigoje knygų stotelėje. Taigi, mes turime rūšies trečioji būklę, nes jūs negali išlaikyti tekinimo puslapio skelbimą nauseum, nes, galų gale, aš pateko į knygos pabaigą. Ir programoje klaidą gali būti nėra numatyti, kad scenarijus. Ir tada aš tiesiog supratau, oi, palauk minutę, man reikia trečią scenarijų. Jei aš iš puslapių, aš tikrai turėtų tiesiog sustoti. Priešingu atveju, tai neapibrėžta. Kas nutiks, jei aš nuolat sakydamas įjungtumėte puslapį ir grįžti, Tai yra, kai kompiuteriai užšaldyti arba avarijos, kai paspausite tam tikrų nenumatytų situacija, kaip kad. Dabar, ką apie Mike Smith trečioji algorithm-- pasiimti telefono knyga, atversta knyga first-- į ne, ne pirmas puslapis šį kartą, į middle-- oh, gerai, kad būčiau antrasis algoritmas. Tegul tik pereiti prie trečiojo. AUDITORIJA: Oi, aš atsiprašau. DAVID Malan: Tai gerai. Tegul tik pereiti prie third-- Open į viduryje ir dabar atrodo Mike Smith. jei puslapyje, skambinkite Mike. Ir tada ką mes norime pasakyti čia? dar kas? Mes galime išreikšti tai bet įvairiais būdais. Nėra teisingas atsakymas. Gerai, jei ne vėl, bet turime be-- Gerai, mes norime padalinti į dvi dalis, bet mes norime eiti į kairę arba eiti tiesiai? Kaip mes išreiškiame ši sąvoka? Na, Mike atveju, taip, kad tai teisinga. Bet gerai, kad tikrai geras taškas. Tai gerai. Mes nuolat vyksta su šia logika. So-- AUDITORIJA: Mažiau nei pusė. DAVID Malan: Taip. Taigi kitas, jei puslapis yra, mes pasakyti, mažiau nei Smith, prie Smith kairėje, then-- pažiūrėkime, yra tai vyksta komplikuoti? kitas, jei puslapis yra prieš Smith, ašara per pusę, išmesti kurių pusė? Auditorija: Maniau kad buvo [NESIGIRDI]. DAVID Malan: aš klausos ir atsakymus. AUDITORIJA: kairėje. DAVID Malan: Gerai, mesti toli į kairę pusę, kaip Lakisa minėjau, į kairę pusę, tada aš rūšies noriu tiesiog eiti to-- aš einu į dešinę. Arba analogiškai, ir aš padariau šiek tiek bitų iš pradžių netvarka čia, Aš iš tikrųjų nori eiti vėl 2 veiksmo, kur atvira middle-- arba open-- Taip, tegul tiesiog pasakyti, puslapių viduryje. Ir tai nustato jį. Tai nebėra knyga. Tai tiesiog pusė knygos, taip atidaryti puslapius į viduryje. else-- buvo beveik ten. 6 žingsnis, kitas, jei puslapis ateina po Smith, ašara per pusę, išmesti dešinę pusę, tada pereikite prie 2 veiksmo. dar mesti, ketvirtas scenarijus, jei Mes neturime puslapiai kairėje pasukti. Taigi, mes galime valyti tai padaryti. Ir turėtume valyti tai padaryti. Tai labai Pseudocode kodas, jei jums bus labai aukšto lygio aprašymas. Bet tai paprastai užfiksuoti idėja. Ir dar kartą, šis scenarijus, mes turėti būklės sąvoką, filialas, šakutė kelyje, todėl decision-- jeigu tai, eiti šiuo keliu, kitur, jei eiti šiuo keliu, kitur, jei eiti, kad taip. Ir tai yra labai dažnas programavimas technika nuspręsti, kuria kryptimi eiti, taip sakant. Ir mes taip pat turi tam tikrą rūšį iš kilpų struktūra, kurioje mes darome kažką vėl ir vėl. Dabar, it turns out, daug kaip šiame pavyzdyje, yra itin tikslūs yra labai svarbi. Bet mes taip pat matė kažką kad mes nuolat skambina abstrakciją. Ką tai reiškia pasiimti telefono knygą? Mes tiesiog rūšies atsižvelgiant už suteiktas Šiame kambaryje kad turi semantinę prasmę. Visi mes tiesiog rūšies žinoti, OH, Na, pasiimti telefono knyga. Ką tai iš tikrųjų reiškia? Na, tai iš tikrųjų reiškia pratęsti vertus, liesos virš išplėsti pirštus, žiupsnelis knyga tarp pirštų, atsistoti, traukti ranką į save. Ir mes galime būti tikrai pedantiškas apie tai, tikrai yra super tikslūs , ką aš darau. Tačiau visus šiuos žingsnius kartu yra ką tai reiškia pasiimti telefono knyga. Ir taip anksčiau, kai pasakiau, kiekvienas Šių dviejų pirmųjų teiginių gali būti suvokiami kaip tęsti ar funkcija, tikrai jis parodo, ką mes nuolat skambina abstrakcija. Tai kaip aukšto lygio konceptualaus aprašymas problema, kad iš tikrųjų apima gana keletą žingsnių. Ir todėl tai, taip pat, yra pasikartojanti tema programavimo, kuriuo galėčiau parašyti programą naudojant sintaksę kaip this-- pick_up_phone_book (). Ir tada sintaksiškai, aš ketina pavogti kažką iš daugelio programavimo kalbų. Dabar, 1 žingsnis atrodo dar daugiau kaip funkcija, kaip programuotojas būtų jį pavadinti. Atrodo, kad kažkas kodas davė pavadinimą ir atsižvelgiant į man naudoti somehow-- kitose tariant, linija aš paryškinti atstovauja funkcionalumą, kad gal Aš net įgyvendinti save. Kažkas vyresni, išmintingesnis už man jau suprato, kaip išreikšti mintį, skinti telefono knyga. Ir tai kaip penkių etapų aš tiesiog ramybę off, nuo mano galvos viršaus. Tačiau jis jau įgyvendintas tai, davė tuos kelis žingsnius pavadinimas, pick_up_phone_book. Ir Skliaustuose ką dauguma programuotojų padaryti pareiškimų, pavyzdžiui, tai pabaigoje. Dabar galiu atsistoti ant jo ar jos pečių ir niekada, galvoti apie tai, ką reiškia pasiimti telefono knyga. Galiu tik pasakyti, pasiimti telefono knyga. Ir tai būtent tai, ką Visi mūsų žmonės čia padarė. Kai mes buvome turbūt 1 metų, 2 metai, kažkas turėjo mus moko, ką jis reiškė pasiimti telefono knyga. Ir nuo tada, mes išgaunamo toli nuo labai neįdomu mechaninės žingsniai. Ir mes tiesiog turėti intuityvus supratimas ką tai reiškia pasiimti telefono knyga. Ir jūs galite ekstrapoliuoti dabar daugiau sudėtingas Quake statyti pastatą. Kaip, kad kai kurie žmonės, kad iš tikrųjų turi reikšmę. Rangovams, architektams, kad turi prasmę. Ir jie žino, ką daryti, jei Aš pasakiau, eikite statyti pastatą. Bet dauguma iš mūsų į kambarį negalėjau spręsti, kad abstrakcijos lygiu. Jūs turite pasakyti mums patinka eikite gauti kastuvas ir eikite gauti betoną ir nagų medienos gabalus kartu ir kas nors dalyvauja kuriant pastatą. Ir tai todėl, kad mes ne dar buvo užprogramuotas suprasti ką tai reiškia statyti pastatą. Neturime kad abstrakciją. Neturime kad funkcionalumą. Ir taip, ką jūs pamatysite programavimo kalbų, apskritai, ypač daugiau šiuolaikinių kalbų, kaip Java, PHP, Ruby ir Python, jie daug labiau subrendusios nei vyresnio amžiaus kalbomis, kaip C ir C ++ ir dar kiti. Ir taip jie ateina su daugiau funkcionalumas pastatytas. Daugiau kodas buvo parašyta žmonių, praeityje kad dabar mes galime skambinti arba pakviesti arba naudoti, kaip aš užuomina ne su šiuo pabrėžė liniją čia. Ir todėl, nors mes kalbame ne apie programavimo kalbas per se, tiesiog Pseudocode kodas, visas idėjos vis dar toje diskusijoje. Ir paaiškėja, tikslumas yra Super svarbu, nes yra abstrakcija. Ir pabandykime bendrauti, kad taip. Aš netyčia galėjo sugadinti tai mirksi skaidrę ekrane per anksti. Bet leiskite man paklausti drąsus savanoris, jei jūs neprieštaraujate artėja. Jūs norite būti priešais kamera, jei esate gerai su tuo. Ar kas nors patinka sugalvoti ir pateikti nurodymai savo kolegomis čia? Tiesiog turi ateiti čia ir stovėti čia ir sakyti, keletą žodžių. Viktorija šypsosi labiausiai ir išvengti mano akis labiausiai. Ar esate pasirengę ateiti iki? GERAI. Ir jei visi kiti ne savo vietas gali imti laužo popieriaus lapą, jei bus. Liniuotas popierius yra gerai. Ateik aplink šį kelią. Arba kai kurie iš popieriaus Jums buvo suteikta vakar bet koks tuščias lapas popieriaus, jei galėtų. Ir jei jūs neturite, tiesiog kreipkitės į kaimyną, jei galėtų. Taigi, šiuo metu, už Šis pavyzdys, Viktorija ketina vaidinti vaidmenį programuotojas, inžinierius, kuris turi programą, kurią visi, kaip kompiuteriai, kažką daryti. Ir mes pamatyti, ką prielaidas Jums nuspręsti. Pamatysime, kaip tiksliai ji pasirenka būti. Ir jei tai demonstravimo eina pedagogiškai gerai, daug klaidų bus, kad mes tada naudokite kad kaip diskusijų galimybe. Bet jums iššūkis turėtų būti išvengti šių klaidų, būti geras programuotojas. Ir taip po ranka iššūkis, jei norite patiko vaikščioti per čia yra priešais Victoria ekrane here-- ir tikiuosi, niekas iš jūsų prisiminti tai, kai aš uždėtinį ekrane. Ir ne apsisukti ne visi, nes yra dar vienas ekranas šiame kambaryje kad aš galiu išjungti. Taigi nereikia apsisukti. Priešais Victoria yra tai, kad tas pats rėkti. Ir jos darbas dabar yra pasakyti jums visiems Jūsų popieriaus lapo, ką piešti. Ir mes matome, remiantis žodiniai nurodymai atskirai, kompiuterinis kodas, jei norite, kaip tiksliai Jūsų piešiniai are-- savo realizacijos yra. Logiška? AUDITORIJA: Taip. DAVID Malan: Gerai, vykdyti. Auditorija: nubrėžti kvadratą. [Juokas] DAVID Malan: Ir ne klausimai gali būti paprašyta. Gali padaryti tik tai, ką jums sako. Oh, ir, jei turite šiandien skaidres atidaryti skirtuką, nereikia ieškoti savo kortelę. GERAI? Auditorija: Gerai, nubrėžti apskritimą. Slope-- galiu pasakyti nuolydis? DAVID Malan: Iki jus. Auditorija: šlaito. Ir trikampis. DAVID Malan: Gerai. Ir likti čia tik akimirkai. Ir aš ruošiuosi ateiti aplink tik akimirkai. Ir nereikia įdėti savo vardus ant jo. Leiskite man ateiti aplink ir rinkti savo brėžinius, jei jūs neprieštaraujate, ašarojimas juos. Štai ką grįžome. Aš projektuoti jį ekrane. Matau kvadratas, apskritimas, nuolydis, ir trikampis. Taigi, tai buvo vienas atsakymas ten. Ir let's-- oi. Ačiū. Štai dar vienas asortimentas, ir vienas už jį. Taigi jie visi atrodo užfiksuoti dvasią. Ačiū. Yra dar vienas, o čia dar vienas. Nuolydis aiškinimas yra šiek tiek kitoks, mažai vingiuota. Ir arčiausiai, bet dėl ​​to, kad nuostabus specifiškumas, su kuria jūs aprašyta, o gal natūra mačiau tai anksčiau, tai iš tiesų Ką Viktorija buvo realiai apibūdinti. Bet dabar, tie iš jūsų, kurie negavau tai teisus, tegul pasiūlyti keletą prieštaravimų čia. Taigi Viktorija pirmoji sakė nubrėžti kvadratą. Ir dabar, mes galime manyti, dėl šiandien labui kad visi žino, Kaip nubrėžti kvadratą. Bet tai dar ne visiškai aišku, ar ne? Kaip dar jums galėtų turėti sudarytas aikštė, arba kai gali būti kai kurių dviprasmybes čia kompiuterio? Auditorija: padėtis ir dydis. DAVID Malan: kur, tiesa? Visi jūs turėjo tam tikros formos dokumentą, paprastai stačiakampio formos, tačiau šiek tiek įvairių dydžių. Bet jūs tikrai galėjo parengti, jei norite, didžiulis kvadratas, gal mažytis kvadratinis. Gal, ji buvo pasukti. Aš nemanau, kad mes pamatėme, kad. Bet tai galėjo būti daugiau deimantų patinka, bet vis tiek, nepaisant to, Matematiškai kvadratą. Taigi, tai buvo, be abejo, dviprasmiškas. Tada ji pasakė, nubrėžti apskritimą. Kai tu ją nupieškite šalia ji, kuris yra ne pernelyg didele, nes žmonės linkę galvoti ar skaityti iš dešinės į kairę daugeliu kalbomis, todėl nėra blogas spėjimas. Bet, kad ratas gali turėti buvo viduje aikštėje, galėjo aplink aikštė, galėjo būti kitur lape, todėl, be abejo, dviprasmiškas. Nuolydis galėjo gal atsižvelgiant daugiausia laisves žodžiu ką tai reiškia. Ir kai kurie iš jūsų aiškinama tai kaip deformuoti linija arba tiesi linija, arba panašiai. Ir tada trikampis, taip pat gali turėti buvo orientuota bet įvairiais būdais. Taigi trumpai tariant, net su kažkuo, kad Jūs pažiūrėjus ir jūs kaip, Wow, todėl paprastas, vaikas galėtų atkreipia į tai, gerai ne tikrai, nebent esate Super, Super įtikinantys ir pasakykite kompiuterį ką daryti. Taigi, jei mes galime, jei turite kitą popieriaus lapas, tegul bandykite dar kartą. Ir aš ruošiuosi duoti Victoria vieną kitas pavyzdys ekrane čia. Ir vėl, nereikia apsisukti ir nežiūri savo skaidres. Ir aš duosiu jai metas galvoti apie tai, kaip apibūdinti tai. Neleisk jiems pamatyti Į jūsų akyse baimė. [Juokas] Ir vėl, šį kartą sverto kai kurie iš šių takeaways ir bandyti gauti beveik visi bent teisingas atsakymas. Auditorija: Gerai, imtis gabalas popieriaus, ieškoti tos popieriaus lapo viduryje. Tos gabalas viduryje popieriaus, piešti kubą. [Juokas] DAVID Malan: Ką mes išmokome? Mes buvome taip arti. Gerai, pakartokite, jei galėtų, visiems. Auditorija: Atsižvelgiant į tai, viduryje gabalas popieriaus, piešti objektą, kuri atrodo kaip kubą. DAVID Malan: Gerai, tai visi jums dirbti. Leiskite man būti analitinė ir ne tiek daug kritinė, bet kad pretenziją kad Viktorija tikrai Atrodo, kad būti mąstymas labai aukšto lygio abstrakcijos, kurios nėra nepagrįsta. Nes kitaip, mes visi būti gana asocialių, jei mes turėjo būti vis tiek tikslūs su ką mes darome pasaulyje. Bet sakydamas eiti į middle-- I maniau, kad mes buvome tokį gerą kelio ten, kaip eiti į patį vidurį Puslapio, tada atkreipti kubą. Taigi ji galvoti abstrakcijų, nes ji vis dar peržiūrėti kas ekrane, kaip iš tiesų yra kubas. Bet ten tiek daug galimybių aiškinimo ten. Ir iš tiesų, ten tiek daug kitų būdų galima išreikšti kad kuri aš pasiūlyti akimirką. Taigi čia mes turime vieną įsikūnijimą iš picture-- whoops-- vieną įsikūnijimas paveikslėlyje, todėl mažai erdvinį į jį, kuris yra gražus. Štai dar vienas, kur jūs turite Tas pats, nors tai tipo atvirą kubo. Kai kurie žmonės jį paėmė šiek tiek daugiau butas, dviejų matmenų. Ir tai gerai. Taigi, iš tiesų į centras popieriaus. Tai vienas manau, kad jūs patinka, nes jei mes einame čia Tai yra tai, ką ji buvo aprašyti. Taigi dabar leiskite man pasiūlyti, kaip kitur galime apibūdinti šią situaciją. Atgal per dieną, vienas iš labiausiai labiausiai paplitusių būdų, kaip išmokti programuoti buvo parašyti kodą, rašo linijų instrukcijas, kad kontroliuojama šiek tiek vėžlys ant ekrano. Logotipas ir kiti variantai tai buvo kalbos pavadinimas. Ir vėžlys gyveno pasaulyje. Taigi tarkime, šį Stačiakampio erdvė yra jo pasaulis. Ir jūs pradėti assuming-- I tikrai nežino, kaip padaryti vėžlys, tad tai padaryti, kaip šis. Ir tada jis atšoko lukštais ir tada gal kai kojos. Taigi jums gali tekti tai tiek simbolis ekrane. Ir šis objektas programavimo kalba buvo priversti vėžlys eiti aukštyn, žemyn, į kairę, dešinę ir įdėti savo rašiklį arba pasiimti savo užpildytą švirkštimo priemonę aukštyn, todėl jis iš tikrųjų galėtų piešti ant ekrano tai labai lygaus stačiakampio pasaulyje. Taigi, kur aš maniau, kad galbūt dalyvausite, ir kur jums reikia apsvarstyti, nardymas iki psichiškai apibūdinant instrukcijos apskritai, Norėčiau teigti, yra įdėti savo tušinukas žemyn middle-- ir mes Atsikratykite vėžlys, nes aš tikrai negali laikyti piešimo jį labai gerai. Ir dabar, kaip kitaip galėtų Sakau nupiešti kubą? Na, galima sakyti kažką panašaus lygiosiomis įstrižainės linija šiaurės rytus, pavyzdžiui, arba ne 45 laipsnių kampu į viršų. Ir tai galėjo Dotarłeś mane čia. Ir aš esu gana toli nuo kubo. Bet dabar, galėčiau pasakyti kažką kaip pasukti 90 laipsnių kampu į kairę ir nupiešti liniją vienodo ilgio šiaurės vakarus. Ir aš galėčiau toliau su panašiomis kryptimis. Ir ji nesiruošia būti lengva. Ir tiesą sakant, mes tikriausiai būtų čia buvo penkias minutes. Bet gal mes Dotarłeś į kažkas, kad ne dienos pabaigoje galų gale buvo kubas, bet mes nėrė į vidų tos abstrakcijos daryti ne tokia maža lygio, kad jūs tikrai negali pamatyti, ką jūs darote, kol visa dalykas yra iš tikrųjų ten puslapyje. Ir taip, tai yra bendrasis teisės principas, vėl iš programming-- šią idėją abstrakcijos. Tai taip nuostabiai galingas, nes vėl, ji tik pasakė, piešti kubą, kuris visus mums gana daug būtų Grok labai greitai. Mes tiesiog suprasti, Gerai, piešti kubą. Mes gali nežinoti orientaciją, kad galėtume būti šiek tiek tikslesnis, bet mes paprastai gali įsivaizduoti ar žinote, kas yra kubas. Ir tai naudinga, nes jei kiekvieną kartą, kai atsisėdo kaip ne programuotojas Jūsų klaviatūra rašyti kodą, jei turėjo galvoti ne toks žemo lygio, nė vienas iš mūsų kada nors gauti ką nors padaryti. Ir, žinoma, nė vienas iš mūsų mėgautis rašyti kodą procesą. Tai būtų panašu raštu 0 "ir 1-ųjų, kuri atvirai buvo ne visi, kad seniai žmonės buvo raštu kodą 0 "ir 1-aisiais. Ir mes labai greitai atėjo su tai aukštesnio lygio languages-- C ++ ir Java ir kt. Taigi pabandykime tai dar kartą tik apversti lenteles, kad mums visiems turi galimybę mąstyti gana tuo pačiu būdu. Ar mes dar vieną savanorį šį laikas sugalvoti lentos ir piešti, ne deklamuoti? Taip, gerai. Benas, nagi iki. Ir, Benas, šiuo atveju, kai jūs susiduria su lenta, nereikia ieškoti į kairę, nežiūrėk į dešinę. Tik tai, ką jūsų kolegos čia jums pasakyti. Ir visi kiti kambarys, dabar jūs esate programuotojas. Jis kompiuteris. Ir vaizdas aš pasirinko čia iš anksto tai vienas čia. Jie just-- jie galvoja iš juokinga anekdotą yra viskas. Taigi būtų ar kažkas panašaus į savanoriu pirmąjį instrukcija ar teiginys, kad turėtų komandą Ben rašiklis? Ir mes tai padaryti kartu, gal vienas nurodymą kiekvienam asmeniui. Aš atsiprašau? Auditorija: Lygiosios ratą. DAVID Malan: Lygiosios ratą yra pirmas dalykas, aš girdėjau. AUDITORIJA: Iki viršuje. DAVID Malan: Iki viršuje. Gerai, mes galime jums ištrinti, anuliuoti. Ir dabar, nors kitur. Danas, tu būti patogūs siūlo kitą nurodymą? Auditorija: Žinoma, atkreipti centrą iš apskritimo apačioje, su small-- šiek tiek Mažoje erdvėje to, nubrėžti tiesią liniją iki trijų ketvirtadaliai kelią žemyn lentos šiek tiek kampu į kairę. DAVID Malan: Geras. Auditorija: šiek tiek kampu. DAVID Malan: Atšaukti, valdymo-Z ". GERAI. Andriejus, norite pasiūlyti iki kitą nurodymą? Auditorija: Žinoma. Iš šios linijos apačioje, dar šiek tiek angle-- whoops-- gal maždaug trečdaliu ilgio [NESIGIRDI], nedideliu kampu žemyn ir tarsi trečdalį [NESIGIRDI] ilgio. Taigi, taip, nuo to momento, nubrėžti liniją trečioji iš ankstesnės ilgio linija toliau į kairę. DAVID Malan: Tai gerai? Tiesi linija, tai gerai? Gerai Olivier, norite pasiūlyti iki kito? Auditorija: [NESIGIRDI] iš apačioje apskritimo [NESIGIRDI]. Lygiosios dešinėje pusėje apie [NESIGIRDI] centimetrų. [Juokas] DAVID Malan: Manau, kad jūs ketinate turi konvertuoti tai colių čia. AUDITORIJA: Stop. [Juokas] DAVID Malan: Gerai. [? Ara,?] Norite pasiūlyti iki kito? Auditorija: Lygiosios [NESIGIRDI] viršutinė [NESIGIRDI] tą patį. [NESIGIRDI] ratas, atkreipti į [NESIGIRDI] ir atkreipti [NESIGIRDI]. DAVID Malan: Gerai, ne daugiau atšaukti. Darom dar vieną ar du instrukcijas. Chrisas, norite pasiūlyti vieną? Auditorija: Apačioje apskritimo, [NESIGIRDI] atkreipti vienodą linija slopping žemyn į kairę [NESIGIRDI]. DAVID Malan: Gerai. Andriejus? Mes did-- Karim? AUDITORIJA: Nuo iš dešinės linijos, kairiojo linijos gale, iš apačios, jūs ketinate eiti tiesiai apie tokio pat ilgio kaip tos linijos esate, piešimo teisė [NESIGIRDI]. [NESIGIRDI] laipsnių, todėl [NESIGIRDI] laipsniais dešinėje pusėje. DAVID Malan: Gerai. Leiskite pristabdyti. Negalima apsisukti dar. Leiskite pristabdyti, ir tegul išbandyti vieną kitą bandymą kol mes atskleisti Ben ką jis buvo piešti. Ar galite shuffle Benas į right-- ar iš tikrųjų, Ne, tegul tiesiog duoti jums kita lenta, dar geriau. Taigi būtų kažkas dabar patinka imtis daugiau metodą kad Viktorija paėmė anksčiau, kur kalbame aukštesnio lygio abstrakcijos ir tik sakinyje ar du apibūdinti Ben ką atkreipti be gauti į piktžoles, taip sakant, ne tai žemesnio lygio? Viktorija. [Juokas] Auditorija: Lygiosios figūrą iš pėsčiųjų žmogus. Ir jo kojos ir rankos turi būti dešinėje pusėje. DAVID Malan: Gerai, kad viskas jums. Gerai. Kodėl mes atskleisti Ben ką jis padarė. Taigi plojimų. Tai buvo sunkiausia turbūt. Taigi, nors mes kalbame gana kvailas sąlygomis apie tiesiog piešimo nuotraukos, tikiuosi jums tikrai gali vertiname laipsnį ekspresyvumas, kad gali prireikti siekiant papasakoti kompiuterį, ką daryti. Ir iš tiesų, tai, kad Benas galėjo taip greitai atkreipia į tai yra tarsi testamentą, kad naudojant kalba, o gal aukštesnio lygio versija anglų kalba, kuri leidžia jį tiesiog naudokite žodžius, ar išgirsti žodžiai nuo Viktorija, kad jį būtų galima tai abstractions-- tiesiog atkreipti figūra vaikščioti į right-- kad tarsi turi kai semantinė prasmė jai tai nėra beveik kaip akivaizdus, ​​kai jūs tiesiog sakydamas, įdėti švirkštimo žemyn, atkreipti į dešinę, atkreipti į kairę. Ir todėl tai, taip pat yra labai bendro programavimo. Tai galima sakyti, bus kaip labai žemo lygio kalba, programavimas į 0 "ir 1-ųjų, jei bus. Ir tai būtų didesnis lygis Kalba programavimas Java, arba kažkas panašaus. Turto tiek supaprastinimas, bet tai apie kaip emocinis rūšiuoti jausmas, kad jūs jaučiatės, kai naudojant vienos rūšies dalykas ar kitą. Nusivylimas tiek čia poreikiu tokio tikslumo, bet galimybė būti šiek tiek laisvesnės su čia aiškinimas. Bet, žinoma, klaidų gali kilti, kaip rezultatas. Jei norite ne home-- mes nebus padaryti vieną class-- bet jei norite pareikšti šį vieną namuose, Maniau mes neria į tai. Taigi, jei jūs norite, kad žaisti šį žaidimas su jūsų kitų svarbių arba vaikai arba panašūs, galite gali džiaugtis, kad taip pat. Taigi eikime į priekį ir pažvelgti į vieną paskutinio dalykas čia skaičiavimo mąstymo. Ir tai mus atveda prie Jono Oliver ne klipo galbūt matėme praeitą naktį, bet šiek tiek neseniai klausimu. Po kelių mėnesių atgal Volkswagen paėmė gana neperšaunamas tiek dėl kokios priežasties, jei žinote? Ką jie gauna į bėdą ieškote? Taip, taip, emissions-- jie buvo bando įveikti emisijas testai pagal iš esmės turinčios savo Automobiliai teršia aplinką mažiau kai jų automobiliai buvo bandomi ir teršia aplinką daugiau kai automobiliai nebuvo bandoma. Ir kas vis įdomiau pasaulyje, kaip jums gali turėti numanomas nuo diskusijų like-- kas it-- CarPlay, Apple programinė įranga automobiliams ir tai, kad daugelis mums vis turi sensoriniu ekranu mūsų automobilių, ten bauginantis suma programinė įranga Liaudies Automobiliai šiandien, kuris atvirai atidaro visą skardinę kirminų kai bus kalbama apie saugumą ir fizinį pavojų. Tačiau šiandien, tegul sutelkti dėmesį į tai, ką yra dalyvauja rašymo programinės įrangos kad galėjo gamed sistemą. Dėl apibrėžimo problema, tiems, nepažįstamas, tegul John Oliver išvaizdą. Ir tiems, susipažinę su problema, pažvelkime į jį smagus objektyvas per John Oliver taip pat. Taigi leiskite man nukentėjo žaisti, aš manau, trijų minučių Įvadas. Velnias. [Vaizdo įrašų atkuriamų] -Cars-- DAVID Malan: Akivaizdu, kad "YouTube", it's-- - --Draugai Protingiausias simbolių Greiti ir įsiutę filmus. Šią savaitę vokiečių automobilių gamintojas "Volkswagen" atsidūrė esant skandalo viduryje potencialiai baudžiamosios proporcijas. -Volkswagen Yra ruošiasi milijardus baudų, galimi kriminaliniai kaltinimai savo vadovų, kaip bendrovė atsiprašo už takelažas 11 milijonų automobilius padėti jai įveikti išmetamų teršalų bandymai. -apibrėžimai Dyzeliniai modeliai buvo sukurta su sudėtinga programinė įranga, kad informaciją, kuri naudojama, įskaitant pozicijos vairaračio ir transporto priemonės greitis, siekiant nustatyti, ar automobilis buvo vyksta išmetamųjų teršalų bandymo. Pagal šią aplinkybę, variklis būtų sumažinti toksinių kiekį. Tačiau automobilis buvo suklastoti apeiti kad kai ji buvo išstumti. Išmetamųjų teršalų kiekis padidėjo nuo 10 iki 40 kartų virš priimtino EPS lygių. -Wow, Nuo 10 iki 40 kartų didesnė negu AAA leidžia. Tai pats blogiausias dalykas Volkswagen kada nors padaryta, yra kažkas, ką gali pasakyti, jei Jūs niekada girdėjote apie Antrojo pasaulinio karo. Bet gal patikimiausias ženklas, kaip daug problemų "Volkswagen" yra, yra tai, kad žmonės bent Top jau atsistatydino. Generalinis direktorius atsistatydino trečiadienį, kai stengiamasi padaryti žalos kontrolę, sakydamas jis buvo be galo gaila, kuris skambėjo puikiai, kol paaiškėjo, jis buvo tik 10% atsiprašau bet buvo suklastoti savo burną dirbtinai išpūsti savo sorriness. O tuo tarpu, Volkswagen JAV vyriausiasis turėjo savo paties atsiprašymo. -ėlis S būti aišku, apie tai, Mūsų įmonė buvo nesąžiningas. Ir mano Vokietijos tariant, mes jau visiškai įsukus. -Yeah, Bet visiškai prisukamas iki nesate Vokietijos darbai. Ir vokiečių kalba yra daug gražių frazių apibūdinti situacijas kaip tai, pavyzdžiui, [VOKIEČIŲ], o tai reiškia, maždaug, liūdesys, kuris ateina iš verslo susiję melo, arba [VOKIEČIŲ], o tai reiškia kaip sugėdinti tuos tėvą dalyvauja debesys benzino. Tai gražus kalba. Jis tiesiog plaukia ne liežuvį. Ir beje, o to žmogaus atsiprašymas gali skambėjo nuoširdus, verta pažymėti, jis kalbėjo ne oficialiai paleista šalis 2016 Volkswagen Passat, o tai reiškia, kad netrukus po sakydamas Atsiprašome, jis pasakė tai. -Ačiū Jums labai už atėjimą. Mėgaukitės vakarą. Toliau yra Lenny Kravitz. [GROJA MUZIKA] Ok, gerai, baigiant savo atsiprašymas su iki kito Lenny Kravitz nėra rėkti blaivus atgailos. Ji rėkia, mes paprašėme Bon Jovi ", ir jis sakė, kad ne. Volkswagen markės buvo suniokotas. Ir tiesą sakant, jų naujas skelbimas kampanija nėra tiksliai padėti. - [VOKIEČIŲ], mes Volkswagen norėtų atsiprašyti už apgaudinėja jus Mūsų transporto priemonės. [PABAIGA PLAYBACK] DAVID Malan: Taigi tai buvo apylanka of-- sorry-- tai buvo žiedinė būdas įvedant pagrindinę problemą programinės įrangos, kuri yra, kad jūs reikia nustatyti tam tikras sąlygas. Ir taip po ranka klausimas čia yra, kaip veikia automobilis potencialiai kaip įgyvendinama programa Šių programuotojų, aptikti, kad jis iš tikrųjų bandoma? Taip, kad būtų super skaidrus, ką jie daro buvo, aplinkoje, kurioje programuotojai raštuotas automobilis buvo yra išbandyti, jie kažkaip padarė automobilis išmeta mažiau teršalų kiekį, mažiau emisijos, taigi mažiau toksiški garai ir tokių. Bet kai tai paprastai vairavimo kelyje, jis tiesiog išmeta kiek taršos, kaip ji norėjo. Taigi, kaip mes galėtume parašyti Pseudocode šiam algoritmas? Kaip mes galime parašyti Pseudocode už programinės įrangos, veikiančios automobilį? Aš turiu galvoje, trumpai tariant, jis verda žemyn į kažką panašaus į tai. jei bandomos, išmeta mažiau. dar skleidžia daugiau. Bet tai šiek tiek per aukšto lygio, tiesa? Pabandykime pasinerti, ką tai paimamo bandomos priemones. Kitaip tariant, net jei nieko žinoti apie automobilius, kokios klausimus gali jums užduoti siekiant nustatyti, ar Jūs esate išbandomas, jei esate automobilyje? Kas charakteristikos gali būti pateikti, jei automobilis yra išbandyta? Auditorija: Tikrinimo įranga. DAVID Malan: Tikrinimo įranga. Taigi, jei testavimo įranga netoliese, tada išmeta mažiau. Taigi galėjau įsivaizduoti įgyvendinant kad su kai fotoaparatų rūšies arba aptikti, kas vyksta aplink jus. Ir leiskite man pasiūlyti, kad tiesiog jaučiasi pernelyg sudėtinga iš tikrųjų turi papildomų aparatūros tik šiam tikslui. Auditorija: Jei esate parkas, jei jūsų dangtis yra atidarytas. DAVID Malan: parke ar dangtis atidarytas, kad tai gerai. Auditorija: Ir automobilis veikia. DAVID Malan: Taigi, kad šiek tiek daugiau concrete-- ir automobilių veikia. Taigi tai būtų Kurių konjunkcija keletas skirtingų sąlygų, jei bus. Taigi, jei automobilis yra parke, ir net nors tai yra labai mechaninis dalykas paprastai, galėjau įsivaizduoti rašymo programinės įrangos, ypač, nes ten dažnai šviesos ten šių dienų, Galėčiau įsivaizduoti ten yra programinę įrangą, kuri gali užklausti shifter ar kas ne, tu parke, yra jums vairuoti, tu atvirkščiai. Ir aš galiu grįžti atsakyti, kad tai arba taip arba ne tiems klausimus rūšių. Ir todėl aš taip pat galėtų atsakyti klausimas kaip, yra dangtis atidarytas. Gal ten kai jutiklio natūra kad arba man duoda atgal 1 arba 0, true arba false, dangtis yra atidarytas. Ir tada automobilis veikia, galėčiau aptikti kad kažkaip per koks mechanizmas? Kaip, automobilis veikia, aš gali aptikti, kad jis įjungtas, galėčiau aptikti kažkaip kad automobilis juda? Auditorija: RPM. DAVID Malan: Taip, taip, ten visada, kad adata, kad pasakys, kiek apsisukimų per minutės ratai patiria. Ir, kad galėčiau pažvelgti į tai. Ir jei tai ne 0, tai tikriausiai reiškia, kad automobilis juda. Bet turime būti tiek ten gerai, because-- tegul supaprastinti this-- jei mes ką tik pasakė, jei automobilis veikia, mes nenorime tiesiog išmeta mažiau, mes norime, jei automobilis veikia ir tai yra patikrinta. Taigi yra keletas kitų ingredientų, kurie žmonės jau iškėlė hipotezę, programinė įranga daro, nes nesant faktinio kodą, galite tik tarsi numanyti iš fiziniai poveikiai automobilio kaip kas gali būti vyksta po Į programinę įrangą gaubtu. Taigi, jei automobilis veikia ir gal tarkim, galiniai ratai juda ne, gali tai orientacinio pobūdžio kai kurių bandymo natūra? Ką aš užuomina čia? Taip, galbūt, tai ant vieno tų ritininių dalykų, kur kaip ratai sukasi priekyje arba gale, priklausomai nuo to, ar tai priekinis ratas arba galiniai varantys ratai, todėl pusė ratų yra juda, bet kiti du ne, yra keista situacija realiame pasaulyje. Jei važiuojant kelių, kad neturėtų atsitikti. Bet jei jūs esate į sandėlį ant kai kurių ritinių sistemoje natūra kad iš tiesų gali atsitikti. Manau, žmonės taip pat pasiūlė, kad gal jei automobilis veikia ir vairo Rato ne juda, kad per gali būti signalas, nes tai pagrįsta kaip iš karto ant kelių. Bet net ir tada, žmogaus tikriausiai perkelti jį šiek tiek ar tikrai per kelias sekundes. Arba kursas minučių, šansai yra tai ne bus fiksuojami lygiai tas pats pozicija. Taigi, kitaip tariant, mes gali imtis substraction, tu buvo išbandyta, ir suskaidyti tą funkciją į šių komponentų ingredientų. Ir tai tikrai ką Volkswagen inžinieriai kažkaip padarė. Jie rašė programinę įrangą sąmoningai nustatyti, ar automobilis yra išbandyta, Todėl išmeta mažiau, kitur nespinduliuoja įprastu būdu. Ir problema čia taip pat yra tai, kad programinė įranga yra ne kažkas tikrai galima pamatyti nebent turite vadinamąjį kodą. Taigi ten dvi skirtingų tipų code-- bent dviejų skirtingų tipų kodo pasaulyje. Yra kažkas vadinamas šaltinis kodas, kuris yra ne kitaip nei mes jau raštu, kodą. Tai kodo parašyta kalba vadinama Pseudocode, kuris yra tiesiog kažkas anglų-patinka. Nėra formalus apibrėžimas jį. Bet C, ir Java, C ++, tie, yra visi formalūs kalbos, kad kai rašote į juos, ką turite yra tekstinis failas, kuriame yra šaltinio kodą. Bet yra taip pat kažkas pasaulis vadinamas mašininį kodą. Ir mašina kodas, deja, yra tik 0 "ir 1-aisiais. Taigi mašina kodas yra kas mašinos suprasti, žinoma. Šaltinis kodas yra tai, ką žmonės supranta. Ir paprastai, bet ne visada, yra programa, kad programuotojas naudoja, kad mano šaltinis kodas ir paverčia jį į mašininį kodą. Ir kad programa yra paprastai vadinamas sudarytojas. Taigi jūsų indėlis yra kodo, Jūsų produkcija yra mašina kodas, ir sudarytojas yra gabalas programinę įrangą, kuri daro šį procesą. Taigi tai iš tiesų žemėlapiai gražiai Mūsų įėjimai, algoritmai, išėjimai. Bet tai yra labai specifinė įsikūnijimas iš, kad, kuris yra pasakyti, kad, net jei turite viena Volkswagen Automobiliai kad yra kaltas dėl to, tai nepatinka, galite tiesiog atidaryti gaubtas arba atidaryti vartotojo vadovą arba ieškoti tuo kodo, nes iki to laiko, jis pasiekia savo automobilį jūsų Driveway, jis jau buvo paverčiamas 0 "ir 1-aisiais. Ir tai labai sunku, netgi neįmanoma, bet labai sunku rankioti daug kas nuo tiesiog ieško ne pagrindinės 0 "ir 1-ųjų. Taigi jūs galite suprasti jį, galiausiai, jei jums suprasti, kaip mašina operates-- "Intel inside-- jei jums suprasti Intel architektūra, bet tai labai daug laiko. Ir net ten, galbūt negalės pamatyti viską kad kodas tikrai gali padaryti. Turite klausimų apie šį ar tai rūšies procese apskritai? Ir iš tikrųjų, mes galime susieti šią diskusiją į vakarykštį diskusijoje "Apple". Tai, taip pat, kodėl FTB galite ne tik eiti ir ieškoti įtariamojo telefoną ir rasti kodo linijų, pavyzdžiui, kad leistų kodą arba įjungti, kad 80-milisekundės uždelsimą. Nes iki to laiko, tai nuo kolegų iPhone, jis jau buvo konvertuojami į 0 "ir 1-aisiais. Na, tegul pristabdyti čia mūsų pažvelgti skaičiavimo mąstymo. Kodėl mes imtis 15 minučių pertrauką. Ir kai mes grįžti, mes pažvelgti programavimo išvaizdą pati ir pradėti map kai Šių aukšto lygio sąvokų realų, jei žaismingas, programavimo kalba.