DAVID Malan: Laipni lūdzam atpakaļ, visiem. Tātad vakar, jums atgādināt, ka mēs koncentrējas uz šīm tēmām šeit. Tāpēc mums bija četri visaptverošo topics-- privātumu, drošību, un sabiedrība; interneta tehnoloģijas; mākonis skaitļošanas; un, visbeidzot, web izstrāde. Vai kāds ir joslas vai laiku skatīties mazliet Jāņa Oliver pēdējā naktī? Patiesībā tas ir diezgan uzjautrinoši, ja ne mazliet biedējoši. Visus jautājumus par jebko mēs vakar? Jebkurš precizējumi? Visus jautājumus, ko vēlaties darīt pārliecināts, ka mēs pieskarties šodien kādā veidā? Tik tīrs šīferis. Tātad, kas ir darba kārtībā šodien? Tāpēc es domāju, mēs gribētu sākt šodien ar apskatīt to, kas ir vispārēji pazīstams kā skaitļošanas thinking-- pie risks oversimplifying, domāšana piemēram, dators, iespējams, domāt kā inženieris, un mēģina sākt organizēt savas domas vai lai sniegtu jums labāku sajūtu to, kas ir iesaistītas faktiski komandējošs dators kaut ko darīt veidā programmēšanu. Un mēs to saglabātu diezgan augsta līmeņa, diezgan daudz angļu, bet mēģināt izmantot no pazīstami piemēri formalizēt cik jūs varētu iet par problēmu risināšanā. Un mēs pārskatīt dažus CS tēmas, piemēram, abstrakcijas, kas nāca klajā pāris reizes vakar, algoritmi, un pēc tam pārstāvniecība. Un tas ir, ja mēs sāksim šodien tikai brīdi. Tad mēs ņemšu apskatīt programmēšanu. Mēs ņemšu apskatīt dažas fundamentālas konstrukcijas ar kuru jūs varētu būt pazīstami un pat varētu atrast diezgan intuitīvi. Mēs apskatīt, patiesībā, pie izlases programmēšana vidi, kas ir ļoti pieejams, ļoti jautrs, un patiešām mērķtiecīgi par vecumu 12 un uz augšu. Mēs pavadīt dažas minūtes tur un tad lietas uz zemāku līmeni un faktiski runāt par kādu no algoritmi un datu struktūras, tā sakot, ka programmētāji parasti izmanto atrisināt problēmas daudz vairāk efektīvi, nekā jūs varētu varētu iztikt bez tām vispār. Tad pēc pusdienām, mēs ņemšu apskatīt at tehnoloģiju skursteņi, kas ir tikko iedomātā veids, kā pateikt kolekcijas tehnoloģijas ka jūs varētu izmantot, lai atrisināt dažas problēmas. Un mēs runājam par alfabēta zupa Valodu kas pastāv today-- Java un Python un C ++ un PHP un Ruby un visādas citas lietas. Mēs to apskatīt īsi pie dizaina modeļus. Programmētāji, laika gaitā, ir pieņemti metodoloģiju kas mēdz palīdzēt viņiem atrisināt problēmas vieglāk. Kad jūs sākat redzēt sevi rakstiski tāda paša veida kods atkal un atkal, cilvēki formalizēt šos atkārtojumus un piedēvēt nosaukumi viņiem un tad izmanto tos un veicinātu to, galu galā. Un mēs runājam mazliet par mobilo stratēģijām, piemēram ko tas nozīmē, lai faktiski padarīt mobilo lietotni vai mobilo mājas lapā. Vai jūs to darīt Android? Vai jūs to iOS? Vai jūs to gan no tiem? Un kādi ir kompromisi? Un tad beidzot, mēs ņemšu izskatu web programmēšana, kas ir kopīgs termins tiešām apraksta jebkurā laikā tu rakstītu programmatūru, kas ir nozīmēja palaist tīmeklī, vai uz telefonu vai galddatoriem vai klēpjdatoriem. Mēs veikt īsu apskatīt datubāzes un dizains tajā, ja tikai tāpēc, ka gandrīz jebkura interesantu tīmekļa lietojumprogramma šajās dienās ir sava veida datu bāzi. Pretējā gadījumā tas būtu vienkārši statisks saturs. Un datu bāze ļauj veikt izmaiņas laika gaitā, vai sevi vai no lietotājiem. Un mēs apsvērt, kā jūs varētu iet par projektēšana ka datubāzes un veida žargonu kas varētu nākt klajā inženieris s diskusija pie baltā tāfele kad faktiski īstenojot app pirmo reizi. Mēs runājam īsi par API, noderīgi pakalpojumi ka jūs varat izmantot, lai stāvēt uz pleci no citiem, vai uzņēmumu vai indivīdi, un atrisināt savu pašu problēmas ātrāk. Un tad mēs plunčāties varbūt mazliet ar JavaScript, programmēšanas valoda, kas tiek izmantots abi pārlūkprogrammās šajās dienās, bet arī serveros. Un varbūt mēs pārskatīt, laiks atļauj, daži hands-on web stuff mēs darīja vakar un integrēt divas kopā pirms mēs atlikt. Tātad ar that-- kas ir ahead-- ir tur kaut kas trūkst, ka jums vēlētos, lai pārliecinātos, ka mēs ievietotu un pieskarties kādā brīdī. Ja tas nāk prātā, lai to pirms ilgi. Bet kāpēc nav mēs sākt ar apskatīt skaitļošanas domāšanu. Un ļaujiet man ierosināt skaitļošanas domāšana ir, atkal, sava veida augsta līmeņa aprakstu ko dators zinātnieks varētu darīt. Un tiešām, sāksim ar trim sastāvdaļām, kas varētu iedziļināties skaitļošanas domāšanu. Šis ir tikai viens veids, kā aprakstīt to. Mēs, protams, varētu definēt Tas jebkurā vairākos veidos. Bet ļaujiet man ieteikt, labad šodien, ka pasaules problēmām, visas pasaules problēmas, kad vērsies ar dators zinātnieks varētu uzskatīt par ko mēs zvanu ieejas, kas ir nepieciešams, lai saņemtu iepludināt ko mēs saucam algoritmi, kas pēc tam raža rezultātu. Citiem vārdiem sakot, visā pasaule problēmu risināšanas I prasījuma var destilēts šie trīs sastāvdaļas. Tātad, ko es domāju ar ieejas? Ieejas ir tieši tas, ko jūs esat pasniedza lai atrisinātu. Piemēram, šeit ir vecās skolas problēma. Ja man ir telefona grāmatu šeit un Es gribu, lai izskatās kaut tajā, šis ir mans ieguldījums. Man ir 1000, vai arī tā lapas tālruņa grāmatu. Tas ir ieguldījums, lai mana problēma. Un es gribu, lai atrastu kaut ko piemēram, Mike Smith, tāpēc pa e-pastu kuras vārds un numurs ir cerams šajā adrešu grāmatā. Tas ir pirms dienas šūnas telefoni, tāpēc es nevaru vienkārši meklēt to. Tāpēc man ir jādara tas vecs skolas un faktiski meklēšana šie ieejas kādu atbildi. Un ka atbilde ir tikai gatavojas saukt produkciju. Tātad ievade ir tālruņa grāmatu. Algoritms ir kāds komplekts soļi es izmantot, lai atrastu Mike Smith. Un rezultāts ir, cerams, Mike Smita tālruņa numurs. Un tas tad būtu tikai pārstāvis visvairāk jebkuru problēmu lai ar jums roku ieejas un vēlas, lai ražotu produkciju. Tātad, pirms mēs uzskatām, ka process ar kuru mēs varam atrisināt šo problēmu, atrast Mike Smith un kaut kas tamlīdzīgs, pieņemsim apsvērt pirmais un tad last-- ieejas un izejas. Fiziski, protams, ieejas šeit ir visai ķekars papīra salīmētas formā tālruņa grāmatu. Bet datori, no course-- klēpjdatoriem un galddatoriem un pat telefonu tie days-- tie ir elektroniskās ierīces. Un beigās, dienā, kas ir vienīgā ieeja ar datoru? Nu, tas ir kaut kas līdzīgs tas strāvas vads šeit. Es pievienojiet to pie sienas, un Man plūsmu elektroniem, kas ļauj man vadīt mašīnu. Vai varbūt šie elektroni ir izveidots veidā mana baterija. Bet beigās, dienā, kas ir vienīgā lieta iet uz manu klēpjdators. Un tik daudz interesantu sīkumi galu galā nāk ārā, vai veidā printera vai siets vai audially vai tamlīdzīgi. Tātad, ja viss, kas mums ir, jo mūsu būtisks ieguldījums ar datoru ir elektrība, tik tikko elektroni iet un vai ārā, un tā kā mēs varam izmantot šo ievade faktiski pārstāv informāciju? Citiem vārdiem sakot, kā mēs no vienkāršas plūsmas elektroenerģijas to pārstāv faktisko numuriem vai faktiskie burti vai faktiskie attēli uz ekrāna vai faktisko filmas vai e-pastus vai jebkuru skaitu no šiem augstāka līmeņa koncepcijas, ja jūs, ka pie dienas beigās kaut kā ir jāuzglabā šī elektroniska mehāniska ierīce izmantojot tikai attiecīgās vienkāršu ingredients-- elektroni nāk iekšā un ārā? Tāpēc šķiet, ka, visvienkāršākajā veidā, vienīgais veids valstis Man ir manā pasaulē, tāpēc līdz speak-- apstākļus manā world-- ir vai nu Man ir elektroni plūst, elektrība plūstošs, vai man not-- tā tālāk, off. Un pieņemsim formalizēt un izslēgt, kā dators zinātnieks varētu, tikai ar 1 un 0. Pieņemsim tikai aprakstīt dažus patvaļīgs bet savienojams skaits uz to. 1 nozīmē par, 0 nozīmē off. Vai jūs varētu arī apskatīt to kā patiesie līdzekļus uz un viltus līdzekļiem. Jūs varētu arī darīt black un baltā vai sarkanā un zilā krāsā. Jums vienkārši vajag divus deskriptorus. Un dators zinātnieki parasti tikai izmantot 0 un 1. Tātad, ja tas ir gadījumā, mans vienīgais alfabēta , kas sastāv no 0 un 1 ir, kā Es, iespējams, varētu saņemt izlīdzināt numuru 2 datorā, nemaz nerunājot skaits 3 vai alfabēta burts vai attēlu vai filmu? Kā mēs veida bootstrap sevi no šā pamatprincipa no 0 un 1 s un faktiski pārstāvēt kaut ko interesantu? Nu, pieņemsim nodot šo jautājumu aizturēts tikai brīdi un apsvērt kaut ko cerams pazīstami, pat ja jūs neesat īsti domājis par tā jebkurā detalizēti, kas ir 10, 20, 30, 40, 50 vairāk gadus. Tas ir tas, ko? Kā jūs izrunājat? Nav āķīgs jautājums. Vairāki, bet kas tas ir? 1, 2, 3, vai 123. Un es patika, kā jūs iepriekš minētājām 1, 2, 3, jo tas ir viens no veidiem, skatot to. 1, 2, 3, tas ir secība no trim simboliem. Tas ir bildes, ka mēs tagad ir vārdus. Un, ja jūs veida lasīt tos visus kopā, tipisks cilvēks angļu valodā teiktu 123. Un tas ir sava veida augstākā līmeņa koncepcija, jūtas kā pietiekami liels skaits. Bet kā mēs tur nokļūt? Nu, tas varētu būt, bet kopš jūs esat domājuši par to, kā šis, bet atpakaļ mana diena, es veida iemācījušies kā 1 kolonna, 10 s kolonna, un 100 ir kolonna. Tā kā saka Lakisa, tas ir 1, 2, 3, bet tas ir arī 123. Bet kā mēs varam nokļūt no bijušais pēdējais? Nu, jūs parasti darīt 100 ir kolonna, man ir 1. Tātad tas ir tāpat kā teikt 100 reizes 1. Un tad 10 s slejā, man ir 2. Tātad tas ir tāpat kā teikt 10 reizes 2. Pēc 1 kolonna, man ir 3. Tātad tas ir tāpat kā teikt 1 reizes 3. Un, ja es pievienot šīs lietas kopā, tas, protams, ir 100 plus 10 plus 3. Un, ak, tas ir iemesls, kāpēc man tas augstāks jēdziens par 123. Tas ir tikai pamata math, saskaņā ar kuru šie simboli ir svarus, lai viņiem, ja jums būs, viettura vai kolonnu vērtības. Un, kad es reizināt visu ārā, es saņemt šo numuru. Tik, cik daudzi no jums zināt, kā runāt binary-- 0 un 1's-- kā dators? OK, perfekts, neviens, vai neviens no jums, ka jūs darāt. Bet es jums apgalvot patiesībā zina šo jau. Mums ir nepieciešams, lai veida kniebiens Mūsu garīgā modelis mazliet. Bet šis process ir tieši tāds pats. Ļaujiet man atstāt šo vienu tur augšā un vietā pull šo leju uz brīdi. Pasaulē datoru, mums ir tikai 0 un 1 s. Un tā lieta, kas ir gatavojas mainīt ir tas, ko? Nu, manā cilvēka pasaulē, decimal sistēma, dec nozīmē 10, Man ir cik ciparu manā rīcībā? 10, vai ne? 0 līdz 9, protams. Un tas ir iemesls, kāpēc mums ir 10 vietu un 100 vietu. Ja ir, kas nāk no? Nu, tas ir 10 līdz jaudu no 0. Tas ir 10 ar jaudu 1, 10 ar jaudu 2, un tā tālāk. Jums tikai glabāt reizinot slejas līdz 10, sākot off ar tikai 1 in rightmost vienā šeit. Tātad pasaulē datori, ja Jums ir tikai ir binary-- bi nozīme 2-- vai 0 un 1 s, mēs vienkārši tiešām ir nepieciešams, lai mainītu bāze šī math. Tātad citiem vārdiem sakot, tagad mēs vienkārši ir 1 kolonna un the-- kur tas ir going-- 2 kolonna, 4 ir kolonna, un varbūt pēc tam. Kāpēc ir tā, ka? Nu, tas ir 2 no 0-th jaudu. Tas ir 2 1. Tas ir 2 līdz 2, un tā tālāk. Tātad bet šeit, mums ir 1, 10 s, 100 s, 1000 s, 10000 s, 100000 s, 1 miljoniem, un tā tālāk, šeit mums ir 1, 2, 4, 8, 16, 32, 64. Jums tikai glabāt reizinot ar 2, nevis glabāt reizinot ar 10. Tāpēc tagad, ja mērķis pie rokas ir pārstāvēt numuri, kas izmanto tikai 0 un 1 s, pieņemsim apsvērt, kā mēs tur nokļūt. Tas, protams, ir modelis 0 0 0, bet ko numurs konceptuāli tas pārstāv? Nu, 4 reizes 0 plus 2 reizes 0 plus 1 reizes 0, pieņemsim pievienot tos kopā. 4 reizes 0, protams, 0, plus 2 reizes 0 ir, protams, 0 plus 1 reizes 0 ir, protams, 0. Tātad ah, tas pārstāv numurs mēs cilvēki zina kā 0. Nu, tagad, pieņemsim ļoti ātri ātri uz priekšu. Ja es esmu vietā nepārstāv 0 0 0, bet pieņemsim do 1 0 1, kas varētu būt kā Lakisa, agrāk, vienkārši izrunāt 1 0 1. Bet tagad, kā mēs to ar augstāko līmenis skaitu mēs cilvēki varētu zināt? Tātad, kas ir šis numurs? Tas ir 5, skaits mēs zinām kā 5. Nu, kāpēc tā? Nu, mēs varam patiesi veida staigāt pa to metodiski 4 reizes 1, 2 reizes 0, 1 reizes 1. Pievienot tos kopā, tāpēc tas ir 4 plus 0 plus 1. Un tas, protams, 5. Tātad, tas kļūst mazliet garlaicīgs tagad darot aritmētisko atkal un atkal. Bet šis process ir tieši tāds pats. Vienīgais, kas ir mainījies mūsu pasaulē ir tā, ka mūsu kolonnas ir 1, 2, 4, 8, 16, un tā tālāk, tā vietā, lai 1, 10, 100, 1000. Un tas ir tikai tāpēc, ka mūsu alfabēts ir sarucis no 0 līdz 9, lai tikai 0-1. Tā kā mazliet viktorīna šeit, kā būtu jūs pārstāvat numuru 7 binārā? 0? Nu, 0, tu domā 0 0 0? Saku vēlreiz, Karina. Perfekta. Kāpēc ir tā, ka? Tas ir faktiski 4 plus 2 plus 1. Tik labi. Kā mēs pārstāvam mazliet another-- kā par 2 numuru? Tuvu, bet atpakaļ. Tātad, kas tas ir? Ir 4 plus 1, tā ka ir 5 vēlreiz. Tāpēc what's-- Piedod, Karina? 0 1 0. 0 1 0 būtu 2, jo atkal, pat ja tā veida nav izlēkt pie jums, vienkārši darīt math. 4 reizes 0, 0, 2 reizes 1: 2, 1 reizes 0 0. Tātad tas ir skaitlis, mēs zinām, kā 2. Kā par numuru 8? Hm? Labi. Tātad, mēs veida nepieciešams vēl viens vietturi. Mums ir nepieciešams 1 0 0 0. Un tas ir taisnība mūsu veida no vecās skolas decimālo sistēmu. Kā jūs pārstāvat numuru 1000? Nu, jūs, šķiet, ir veida grūts vietas, ja jums lūgt pārstāvēt numuru 1000, jo, pat ja jūs sev patīk 9 no tiem, 9 no tiem, 0 no tiem, kas ir lielākais skaits, ko ir, jums nav gluži nokļūt 1000. Tātad, ja jums 1000, jums ir nepieciešams cits amats, lai jūs varētu darīt 1 0 0 0, ergo numuru 1000. Tāpēc tagad, pieņemsim karti šāda veida konceptuāla diskusija atpakaļ uz aparatūru, kur atkal, ieejas bija tikai tas maz elektrības kabelis, elektrība nāk un plūst ārā. Un tāpēc, ka, lai varētu atzīmēt kartē no šejienes tur, labi, ko mēs tiešām ir nepieciešams? Nu, jūs varat domāt par to iekšpusē dators, visu ķekars spuldzēm, ja Jums gribas. Viņi tiešām sauc tranzistori. Un tranzistori ir tikai pārslēdzas kas var būt vai nu ieslēgt vai izslēgt. Tātad jūs varat domāt par tranzistors, kas ir par ir ļaujot elektrība plūst un tranzistors, kas ir pie kā apstāšanās elektroenerģiju no plūst. Un nevis ņemt pār gaismas šeit, kāpēc ne man šāda veida par jauno mācību stilu. Tātad tas varētu būt 1, zibspuldzes ir uz, tikai tikko though. Un tas varētu būt 0, un tagad tas ir izslēgts. Tātad, izmantojot šo fizisko ierīci, es tagad var pārstāvēt bināro sistēmu. Man tikai vajag divas valstis. Tas nav svarīgi, ko krāsa tas ir, vai kas tas ir. Nozīme ir, ka man ir viena valsts uz un citu valsts off. Tātad, izmantojot manu telefonu šeit, kā es varu pārstāv skaitu mēs zinām par 0? Vai nodot līdzvērtīgi, ko numurs es esmu pārstāv tagad? 0, jo ierīce ir izslēgta. Un, ja man darīt? Un tagad, kā es varu pārstāv numurs 2? Vai es varu aizņemties tālruni šeit, kā mēs to darījām vakar? Tātad, pieņemsim redzēt, tāpēc, ja es gribu, lai pārstāvētu skaits 2, tas ir numurs 2? Nē. Kas numurs es esmu nejauši pārstāv šeit? Tas ir faktiski numurs 3. Tātad kuriem viens vēlos izslēgt? Melnais tālrunis or-- labi, ja they're-- melnais tālrunis vai balta fona? Baltais tālruni. Tātad, ja es savukārt šo off, un mēs line to uz augšu nekā šeit, mums ir 1 gada 2. vietu un 0 no 1 vietu. Un tāpēc es esmu tagad norāda, cik 2. Un tas, protams, būtu numuru 3, jo tagad abi no šīm gaismām ir par. Un es apstāties šeit, bet loģiski ja es vēlos pārstāvēt skaitlis 4 vai 8 vai augstāka, Es esmu gatavojas nepieciešama jaunu telefonu. Bet tas ir viss, kas notiek. Tātad, ja jūs esat kādreiz dzirdējuši, ka iekšpusē izveidojuši lielisku pateikties you-- datoru ir miljoniem tranzistoru, kas ir tikai miljoniem tiny maz slēdži. Un viņi nav gaismas spuldzes, kas ieslēgtu un izslēgtu, bet tie vai nu ļauj elektrību plūst kaut vai pārtraukt to. Un tā tur ir jūsu divi states-- ieslēgt vai izslēgt, ieslēgt vai izslēgt. Tātad, mēs varētu šķist tagad lai šo spēju pārstāvēt šo koncepciju, ka mēs gribētu faktisko aparatūru. Bet viss, kas mums ir tagad, ir spēja pārstāvēt skaitļus varētu šķist. Tātad, kā mēs iet par pārstāvot alfabēta burti, kas jūtas kā nākamo veida funkciju jūs vēlētos pievienot mūsdienīgu datoru kad jums ir numuri? Un tiešām, ja jūs domājat par tas vēsturiski datori Tika ieviesti patiešām kalpot kā kalkulatori skaitliski. Bet, protams, tie dienas, tie daudz vairāk. Pat tad, kad viņi boot up, jums parasti redzēt vienu vai vairākus vārdus. Tātad, kā jūs pārstāvat vārdus, ja viss, kas jums ir, ir, atkal, elektrība beigās no diena, vai līdzvērtīgi 0 un 1 ir? Jā. Jā, es domāju, mēs veida darīja vakar kādā veidā, kur kādā brīdī, Es domāju, ka es patvaļīgi teica, ka, ja mēs vēlamies pārstāvēt burts A, mēs varētu tikai zvanu, kas ir 1. Tas bija kontekstā kriptogrāfija, kur mēs vienkārši vajadzēja kaut kādu kodu, sava veida kartēšanu. Tāpēc varbūt būs pārstāvēta kā 1, un B tiks attēlots kā 2, un Z būs pārstāvēta kā 26, piemēram. Un tad tikai brīdinājumu, ka, ja es esmu gatavojas kodēt vēstules manā e-pastiem vai manā īsziņas kā skaitļi, jūs visi jāpiekrīt izmantot pats kopums konvencijām. Un tiešām, pasaule ir darīts tieši tā. Ir sistēma pasaulē sauc ASCII, American Standard Code Informācijas Interchange, kas ir vienkārši lēmums dažiem gadiem Pirms, ka cilvēki, ka iespēju nolēma, ka gatavojas vienāds, ne 1, 2, un 26, un tā forth-- tas ir maz different-- bet 65, 66, 67. Un es uzvilkt diagramma tikai brīdi. Bet tas ir patvaļīgs. Bet tas nav svarīgi ka tas ir patvaļīgs. Pasaulē ir tikai jāsaskan. Tagad, vairāk pēdējā laikā, tur ir kaut mīļotājs sauc Unicode, jo pasaules veida no saprata, pēc izgudrošanas datorus, ka tur ir vairāk nekā labi 256 simboli pasaulē ka mēs varētu vēlēties, lai pārstāvētu, jo īpaši, ja jūs iepazīstināt Āzijas valodu un citas symbologies ka nepieciešams vairāk ekspresivitāte, nekā jūs var ietilpt agrākā versijā šis kods, kas sauca ASCII. Tātad Unicode faktiski ļauj jums izmantot vairāk 0 un 2. Jo īpaši, jūs pastāvīgi dzirdes vārds baiti sabiedrībā un pat tikai vakar. Un baits ir tas, kas atkal? Kas ir baitu? Tas ir tikai 8 biti. Tātad, ko tas īsti nozīmē? Nu, tas nozīmē, ka, agrāk, kad mēs bijām runājot par bināro un man bija, izmantojot patvaļīgi trīs biti, kad mēs bijām runājam par binary-- 1. vietu, 2 vietu, un 4 s place-- labi, baits tikai nozīmē, ka jūs runājat nav vienībās trīs, bet četriem, pieciem, sešiem, septiņi astoņi, kas dod mums 8. vietu, 16 s, 32 s, 64 s, un 128 s. Citiem vārdiem sakot, mazliet ir ne visi ka Noderīgas mērvienība, jo tas ir tāpat kā viens tiny maz gabals informāciju, ieslēgt vai izslēgt. Tāpēc pirms dažiem gadiem, pasaule tikko nolēma tas ir nedaudz ērtāk runāt noteikumi baiti, astoņas lietas vienlaikus. Un tā tādējādi ir dzimis jēdziens baits. Un tāpēc mums ir astoņi biti šeit. Un izrādās, arī, lai līdzīgi iemeslu dēļ, pasaule nolēma gadiem pirms, ka, lai pārstāvētu ASCII vēstuli, jūs gatavojas izmantot vienības 8 biti. Tātad, pat ja jums nav nepieciešams, ka daudz, tu esi vienmēr gatavojas izmantot 8 biti uz pārstāv alfabēta burts. Un tas ir ērti, jo tad, ja jums saņemta ziņa, kas ir 0 0 0 1 1 1 1 0 seko cits 1 1 1 0 1 0 0 1, tāpēc, ja jūs saņemat 16 biti, pasaule var tikai pieņemt, ka pirmais 8 ir viens burts un otrais 8 ir vēl viens burts. Nav svarīgi, cik daudz tur ir. Tas vienkārši ir svarīgi, ka mēs visi esam konsekventi kad mēs esam interpretējot šos bitus. Un tas bija tikai nejauši. Tas nozīmē kaut ko, bet man nav patiešām domā par to, ko tas nozīmē. Tātad, tas ir mazs balts meli. Sākotnēji, ASCII faktiski izmanto tikai 7 bitus. Un astotais bits ir sauc pagarināts ASCII. Bet ir tas, galu galā, tas pats. Pasaulē kopumā standartizēts uz 8 bitiem. Tātad tas, šķiet, ir nedaudz ierobežo, jo es varu tikai pārstāvēt kapitāla A, kapitāls B caur kapitāla Z. Bet tiešām nav, ja es eju kuri paredzēti, tur ir ķekars resursu internetā, piemēram, asciitable.com, šis būs nedaudz milzīgs sākumā. Bet es ņemšu norādīt kas ir svarīgi šeit. Tas vienkārši notiek be-- un es ņemšu walk-- pieņemsim redzēt, ja man iet vairāk nekā šeit. Šeit ir, jo aiz komata kolonna, numuru 65. Un uz labajā slejā vēstuli raksturs, Chr, ir burts A. Un jūs varat ignorēt, tagad, viss pa vidu. Tas ir heksadecimālajā astotnieku, un HTML kods. Šajā lapā ir tikai mēģina mest daudz informācijas pie jums uzreiz. Bet visi mēs rūpējamies par to ir decimal kolonna un raksturs kolonna. Tātad, šo loģiku, kas ir skaits, ka pasaule ir nolēmusi apzīmē mazie burti a? Jā, 97. Un tikai sajaukt potenciāli nedaudz, ko skaits ir pasaule nolēmusi nozīmētu numuru 1? Labi, jo we-- 49, šķiet, šeit, noteikti apakšā pa kreisi. Tagad, ko es ar to domā? Tātad izrādās, ka datorsistēmās, tur parasti ir būtiska atšķirība starp numuru un rakstura. Virkne ir lieta, ko mēs uzzināja aug kad mēs bijām super jauni pakāpē skolā. Tas ir lietas, jūs skaits ar. Bet raksturs ir tikai forma A glifu, tā sakot, uz ekrāna. Tagad mēs cilvēkus veida redzēt kaut kas izskatās šādi. Un mēs sakām, ak, tas ir skaitlis 2. Bet nē, tas ir tikai simbols, kas izskatās patīk tas, ko mēs zinām, cik 2. Un tā tur ir šis būtiska atšķirība starp faktiskajiem skaitļiem un simboliem. Tas ir skaitlis. Bet vispār, jo konteksts no datora, ja tu vietā redzēt kaut kas līdzīgs šim quoted-- un jūs ne vienmēr ir redzēt to citēts, bet labad discussion-- ja redzat pēdiņas ap numuru, tagad tas ir raksturs. Tātad šis skaitlis 2 zem kapuci iekšpusē datoru tiks pārstāvēta ar modeli biti, kas pārstāv numuru 50. saskaņā ar diagrammas tiešsaistē. Tomēr, ja datora tāpat uzskata, ka tas, šis tiks pārstāvēta ar modelis no bit 0 0 0 0 0 0 1 0. Tā kā šis raksturs būtu faktiski pārstāv as-- un tagad, Man domāt nedaudz harder-- tāpēc šī raksturs būtu pārstāvēta ar 0 0 1-- kas man ir nepieciešams šeit? 0 0 1 1 0 0 1 0. Kā es to izdarītu? Nu tas ir skaitlis 50, ja jums reizināt to, izmantojot šīs slejas, tas ir skaitlis 2, un tā tas ir iemesls, kāpēc tas ir auglīgs. Un tas ir tikai teaser tagad funkcijām ka pastāv programmēšanas valodās ka mēs pieskarties uz īsu brīdi vēlāk šodien. Programmēšanas valodas, Jums ir vispārīgi, bet ne vienmēr, lietas zvaniet dažādus datu tipus. Citiem vārdiem sakot, programmer-- kad viņš vai viņa ir rakstiski, programmētājs izpaužas izlemj, kādā formāts uzglabāt savus datus. Jūs varat vai nu uzglabā datus, kā izejvielas numurus, piemēram, numuru 2. Vai arī jūs varat saglabāt tos kā stīgas, vai rakstzīmju virknes ka jūs parasti izteikt ar pēdiņas jūsu programmēšanas valodu. Jūs varat būt lietas called-- Es pārspīlēju un viņiem piezvanīt real numbers-- tik numuriem, nav veseli skaitļi, piemēram, numuru 2, bet skaitļi patīk 4,56. Tātad reāli skaitļi var arī ir zīmes aiz punkti, tā ka ir cits būtisks datu gabals datorā. Un tad jūs pat varat būt citi datu tipi joprojām. Tātad tas ir tikai teaser tiešām vienkāršākais dizains lēmumus ka programmētājs varētu padarīt zem motora pārsega. Tātad kādi jautājumi tikai vēl? Tātad pamēģināsim izdarīt tas mazliet reālāks. Šī aparatūra nav tik daudz izmantot vairs. Bet lielākā daļa ikviens šajā telpā, iespējams, uzauguši ar un vēl joprojām izmanto cieto disku kādā veidā. Kaut gan lielākā daļa Mūsu laptops vairs ir ierīces, kas darbojas, piemēram, tas, nevis laptops šodien vispār ir cietas diskus bez kustīgām daļām. Un tas mēdz būt dārgāka, diemžēl, bet mazliet ātrāk un izveidojuši lielisku labi, bieži vien, daudz ātrāk, kas ir viens no iemesliem. Un arī tas nav radīt tik daudz siltuma. Tas var būt mazāks, tāpēc tas ir parasti ir neto pozitīva. Bet tas mums ļauj kartēt nedaudz vairāk konkrēti ko mēs runājam par pie 0 un 1 līmenis tagad fiziskā ierīcē. Tā ir viena lieta man runāt par 0 un 1 s ziņā manu tālruni vai abstrakti ziņā Pārmiju ir uz un off. Bet ko par cieto disku? Jūsu klēpjdatoriem, ja jums ir vecāks viens, vai jūsu darbvirsmas datoru, vai noteikti serveriem Šodien, kur jums ir cieto disku, kas ir terabaitu vietas, 4 terabaitiem telpā, labi, ko tas nozīmē? Cieto disku ar 1 terabaitu kosmosa līdzekļiem tur ir 1 triljons baitu iekšpusē no tā kaut kā, vai līdzvērtīgi 8 triljoni biti iekšā. 1 terabaitu būtu 8 terabits vai 1 triljons biti, kas nozīmē, ja jums ir grūti disku, jums ir kaut kā vai citas triljonu 0 s un 1 ir iekšpusē no tā. Un, ja mēs vienkārši to apskatīt pie patvaļīga priekšstatu par cieto disku pārstāvim, tas ir tas, ko grūti drive varētu parasti izskatās iekšpusē. Tas arī ir veids kā vecā fonogrāfs player bet parasti ar vairāki ieraksti iekšā, tik līdz speak-- vairāku šķīvji, kā viņi sauc, metāla apļveida disks, un tad nedaudz lasījumā galvu, daudz, kā vecs atskaņotāja. Un, ka lasīšana galva kustas atpakaļ un tālāk un kaut kā skan biti. Un, kas ir uz šiem šķīvji, pat Lai gan mēs cilvēki nevar redzēt, nu patiesībā, vai šajā attēlā, tur ir niecīga maz magnētiskās daļiņas. Un pat tad, ja esat ilgi aizmirsuši, kā elektrība darbojas, magnētisko daļiņu kas ir jāmaksā vispār ir ziemeļu gals un dienvidiem end-- tik ziemeļiem un dienvidiem. Un tā pasaule tikko nolēmis kādu laiku atpakaļ ka, ja magnētiskā protokols būtībā ir saskaņots kā šis, ziemeļu-dienvidu, sauksim ka a 1. Ja tas ir nevis dienvidu-ziemeļu, pieņemsim tikai zvanu, kas ar 0. Un tādēļ, ja jums ir pie Jūsu rīcībā triljons tiny maz magnētiskā particles-- un cerams, aparatūras atjautība in lai uzsist apkārtējiem kā redzat fit-- ja vēlaties pārstāv veselu ķekars 0 s, jums vienkārši vajag 8 magnētiskās daļiņas viss jāsaskaņo kā šis. Un, ja jūs vēlaties, lai pārstāvētu astoņi 1 s, jūs vienkārši vajag 8 magnētiskās daļiņas jāsaskaņo atpakaļ atpakaļ atpakaļ, kā šis. Ko es domāju ar magnētiskās daļiņas? Atklāti sakot, visus šos gadus vēlāk, lieta, kas joprojām nāk, manuprāt tas ir puisis, ja jums uzauguši ar šo lietu. Tas ir little-- par tie unfamiliar-- maz bērnības rotaļlieta, kas ir šī matiem cilvēks šeit kas ir visu šo tiny maz melns magnētiskās daļiņas, kas nāk ar to. Un, izmantojot šo sarkano stick, kas ir tikai magnēts, jūs varat veida dot viņam ūsas vai uzacis vai mati, vai kaut kas uz viņu. Tātad faktiski, ja mēs tuvinātu jo, piemēram, šis ir sava veida spēle jums var spēlēt ar Wooly Willy. Un tas ir tikai teikt, tie ir daudz lielākas magnētiskās daļiņas nekā ir patiesībā uz cietā diska, un daudz mazāk magnētiskās daļiņas. Bet pieņemsim faktiski redzēt tad, ja jums ir sīkās magnētiskās daļiņas tādā cietais disks, kā jūs faktiski var izmantot tos pārstāvēt datus. [VIDEO PLAYBACK] -The Cietais disks ir, ja jūsu dators saglabā lielākā daļa no tās pastāvīgo datiem. Lai to izdarītu, datus ceļo no RAM gar ar programmatūras signālus, ka pateikt cieto disku, kā uzglabāt šos datus. Cieto disku ķēdēm tulkot tiem signālus sprieguma svārstībām. Tie, savukārt, kontrolē cietais disks s pārvietojas parts-- daži no nedaudzajiem pārvietojas daļas palicis mūsdienu datoru. Daži no signāliem, kontrolē motors, kas griežas metāla pārklājumu šķīvji. Jūsu dati ir faktiski saglabāti šiem šķīvji. Citi signāli pārvietot lasīšanas / rakstīšanas galviņām lasīt vai rakstīt datus par šķīvji. Šī tehnika ir tik precīza ka cilvēku matiem nevarēja pat caurlaide starp galvām un vērpšanas šķīvji. Tomēr, tas viss strādā drausmīgs ātrumu. [END PLAYBACK] Un jūs varat redzēt pie astes gals video, tur parasti ir vairāki šķīvji. Un tā, ka lasot galva ir ne tikai izlasot top. Tas ir veids kā trīs vai četras vai vairāk galviņas ka pārvietot kā šis, nolasīt datus vienlaicīgi. Tātad tur ir daudz sarežģītība un veida laika kas ir iesaistīts cietā diska. Un lieta griežas tiešām darn ātri, tāpēc tur ir daudz sarežģītības. Bet pieņemsim tuvinātu mazliet dziļāk un redzēt, kur ir šie magnētiskās daļiņas un kā mēs esam nonākuši pie viņiem. [VIDEO PLAYBACK] -Ļaujiet Izskatu, ko mēs tikko redzēju palēninājumā. Kad īsu impulsu elektrības tiek nosūtīts uz lasīšanas / rakstīšanas galviņu, tas flips uz tiny elektromagnētisko par daļu no otrā. Magnēts rada lauks, kas maina polaritāte tiny, tiny daļa no metāla daļiņas kas mētelis katra plate virsmu. Modeli sērija no šiem tiny iekasē vietām uz diska attēlo vienu bitu datu ievietošanu bināro numuru sistēma ar datoru izmanto. Tagad, ja pašreizējais tiek nosūtīts viens ceļu caur lasīšanas / rakstīšanas galviņu, platība ir polarizēts vienā virzienā. Ja pašreizējā tiek nosūtīts pretējā virzienā, polarizācija ir pretēja. Kā jūs iegūt datus no cietā diska? Vienkārši mainīt procesu. Tātad, tas ir daļiņas uz disku, kas iegūtu pašreizējo ar lasīšanas / rakstīšanas galvu pārvietojas. Put kopā miljoniem šie magnetizētu segmenti, un tev failu. Tagad gabali vienā failā var būt izkaisīti pa visu disku s šķīvji, veida, piemēram, putru referātu uz jūsu rakstāmgalda. Tāpēc īpaša ekstra fails saglabā trase, kur viss ir. Vai ne jūs vēlaties jums bija kaut kas tamlīdzīgs? [END PLAYBACK] Tātad tiek pieminēja tur, iespējams, ir ka topic no vakardienas uz dzēšanu. Dzēšot failu, vakar mēs teicām ka dators tiešām ko, kad velkat kaut ko uz atkritni vai trash bin? Tā vienkārši aizmirst to. Bet 0 un 1 s, magnētiskās daļiņas kas izskatās sarkanā un zilā krāsā lietas šeit, vai manas rokas šeit, joprojām pastāv uz cietā diska. Un tā pastāv software-- Norton Utilities un vakardienas un citas vairāk mūsdienu software-- ka tikko būs skenēt visu cieto disku meklē visos šajos 0 un 1 s, jo tas Izrādās, ka lielākā daļa failu formats-- Word dokumentus, Excel failus, attēlus, video files-- visiem ir skaidrs, modeļi, kas ir kopīgs starp tiem. Katrs video fails varētu būt arī citāda video, bet pirmo vairākas biti parasti ir tāds pats. Vai pēdējie vairāki biti parasti ir tāds pats. Un tā ar lielu varbūtību, Jūs varat meklēt šiem modeļiem. Un pat tad, ja fails ir aizmirsts, Jūs varat teikt, ar lielu varbūtību, bet tas izskatās kā Word dokumentu, lets atgūt to un ANO aizmirst to, ja Jums gribas. Un tā tas ir, kā jūs varat atgūt dati, kas ir vai nu bijuši nejauši dzēsts vai dzēsts vai tīši svītrots kaut kādu mērķiem. Savukārt, drošu dzēšanu ko dara saistībā ar attēlu, piemēram, tas? Tieši tā, padara tos visus izlases. Tātad, tas veida kustas dažām tos, daži no tiem uz augšu, atstāj dažas no tām nemainīgs, un parasti rada izlases troksni no tā, vai vienkārši varbūt padara visu tos par 0 s vai visi no tiem 1 s. Un tas arī var vispār berzi savus datus prom. Tātad pieņemsim atgriezties tagad uz jautājumu skaitļošanas domāšanas, kuru mums ir formula ieejas. Un algoritmi dod jūs izvada galu galā. Tagad mēs koncentrējamies uz ieguldījumiem un izejas, jo tagad, es apgalvojums mums ir veids, kā pārstāvot ieejas un izejas. Mēs esam tikai gatavojas izmantot bināro. Un nav svarīgi, ko mēs vēlamies, lai pārstāvētu šodien, vai tas ir skaitlis vai burts vai to Tūkstošiem tālruņa grāmatu vai attēlus vai filmas, gada beigās no dienas, tas viss ir 0 un 1 s. Un es apgalvo, ka, lai arī šis ir super vienkāršs pasaule tikai ar 0'S un 1 s, mēs varam veidot sevi augšu. Un mēs esam redzējuši vienu piemēru ka ar vēstulēm līdz šim. Tātad, pieņemsim koncentrēties tagad uz šo vidū sastāvdaļa, algoritms. Un pieņemsim atgriezties šajā piemērs Mike Smith. Tātad šajā tālruņa grāmatu, kas, protams, mēs neizmantojam tik daudz vairs, tur ir problēma, kas jāatrisina. Mēs vēlamies, lai atrastu kādu, piemēram, Mike Smith. Un ko es varētu darīt, lai atrastu Mike? Nu, es varētu tikai atvērt šo grāmata, sākas pirmajā lapā, un saprast, ak, es esmu A sadaļā. Mike nav tur. Man vajag S sadaļu Smith. Tik vienkārši glabāt pagriežot vienu lapu laikā. Ļaujiet man izlikties, ka tas ir viss baltas lapas un nav dzeltenās lapas, jo mēs nebrauksim, lai atrastu Mike dzeltenās lapas anyway. Bet es esmu baltās lapas. Un tagad, es esmu B sadaļā. Es joprojām neesmu viņam atrasts. Tāpēc es glabāt pagriežot vienu lapu laikā. Tas ir algoritms. Tas ir instrukciju kopums risināšanai dažas problēmas. Citiem vārdiem sakot, apskatīt lapa, ja Mike nav par to, savukārt lapu, un atkārto atkal un atkal un atkal, ideāli skatoties uz leju, kā jūs darīt to. Tātad tas algoritms, šis process, pareizi? Piedodiet. Nē, es dzirdu kādu nos. OK, bet tas is-- yeah, tas noteikti garlaicīgs. Tāpat, mēs būsim šeit visu dienu, ja es glabāt meklē Mike šādā ātrumā. Bet ļaujiet man apgalvo, tas ir pareizi. Tas ir muļķīgi, bet tas ir pareizs. Beigās, dienā, ilgi, cik tas varētu ņemt, es atrast Mike, ja viņš ir tur un es esmu pievēršot uzmanību. Un es beidzot sasniegtu savu lapu. Un, ja man ir pārāk tālu, ja Es nokļūt līdz T sadaļā, tad es varu nedaudz optimizēt un tikai saka, hm, viss darīts. Man nav pat nepieciešams atkritumu laiks iet uz Z s. Bet tas ir ļoti lineāro pieeju, ja jums būs, ļoti veida kreisās uz labo pieeja, taisna līnija. Un tā pareizi, bet lēni. Tāpēc es atceros no pakāpē skolā, kārtot no optimizācijas no pirmās greiders, kur es iemācījos skaitīt nav ar tiem, bet ar twos-- tik 2, 4, 6. Tas ir, daudz grūtāk darīt, bet teorētiski, tas ir faster-- 8., 10., 12., 14., un tā tālāk. Kā par šo algoritmu? Vai tas ir efektīvāk? Vai tas ir ātrāk? Mērķauditorija: Tas ir efektīvs. DAVID Malan: Jā, tā tas ir def-- tas burtiski divreiz tik strauji, pieņemot, ka es do not get paklupu līdzi maniem pirkstiem. Tas ir divreiz ātrāk, jo Es esmu pagrieziena pa divām lapas uzreiz, nevis viens, bet tas ir potenciāli pareizs, jo kāpēc? Mērķauditorija: Jūs esat izlaižot dažus. DAVID Malan: Tiesības, kas notiks, ja Mike notiek kas sandwiched-- varbūt, kad es esmu vēlāk tālruņu katalogā, Mike notiek, iepildīts starp šīm divām lapām, un es tikai akli izlaist pār to. Tātad mums ir nepieciešams nedaudz noteikt tur. Pēc tam, kad es hit T sadaļu, es nevar vienkārši droši teikt, mēs neatradām Mike Smith. Es, iespējams, ir dubultā atpakaļ. Vai patiesībā, kad es sasniegt kādu nosaukts S-N, tā vietā, lai S-M Smith, uzreiz, es varētu dubultoties atpakaļ, jo varbūt viņš bija uz iepriekšējo lapu. Bet man nav dubultā atpakaļ tālu. Teorētiski, ja man to labi laiks, es tikai iet atpakaļ vienas lapas. Tātad, tas ir, pievienojot tikai vienu papildu soli. Tāpēc es esmu gājusi divreiz ātrāk, bet tas izmaksās man vienu papildu lapu. Bet tas jūtas kā neto win. Bet tas nav kā vairums cilvēku šī telpa varētu atrisināt šo problēmu. Kas būtu tipisks cilvēks, varbūt Pirms dažiem gadiem darīt, lai atrastu Mike Smith? Jā, neatrada Mike. Ko man darīt? Tātad iegūt mazliet tuvāk, bet man know-- to, kas ir patiess par tālruņa grāmatu? Mērķauditorija: Tas ir secīga. DAVID Malan: Tas ir secīga. Tas ir alfabēta. Un tāpēc, ja es esmu M sadaļā, Mike ir skaidri pa labi, Es varu burtiski saplēst problēma in half-- tas parasti ir vieglāk nekā that-- asaru problēma uz pusēm un mest to prom, tā, ka tagad, man ir problēma, kas ir vairs 1000 pages-- ka bija grūti, jo es domāju, ka es tiešām saplēsa tālrunis grāmata šis LAIKU_ nav 1000 lapas, bet 500. Tātad problēma ir burtiski uz pusi tik liels. Un tas ir diezgan pārliecinoši, jo ar manu iepriekšējo algoritmiem, versija 1 un 2, es bija tikai padarot problēma One Page mazākas, divas lappuses mazākas laikā. Tā kā tagad, es to 500 lapas mazāks visu uzreiz. Labi, tāpēc tagad, Karim ierosina ka man iet uz labo pusi. Tāpēc es iešu aptuveni līdz vidum, sniegt vai pieņemt. Un, ja es darīju to matemātiski, Es varētu iet pa labi uz vidu. Un tagad, es saprotu, ak, Es esmu T sadaļā. Es tiešām bija iet pārāk tālu. Bet es varu atkal asaru problēma pusē, mest to prom. Un mani baiti nav tik liels. Tas ir tikai, ko, 256 lapas vai 250 lapas, sniegt vai pieņemt tieši tagad. Bet tas vēl daudz vairāk nekā vienas lapas vai divām lappusēm. Un tāpēc tagad, es iet aptuveni uz vidu. Ak, man nebija iet diezgan tālu pietiekami tagad. Tāpēc es atkārtoju, atkārtot, atkārtot, atkārtot, kamēr es esmu cerams palicis tikai ar vienu lapu. Tātad, kas aicina uz jautājumu, ja es sākās ar aptuveni 1000 lappusēm, cik soļus darīja mani ar manu algoritmu 1 versiju? Labi, ja Maiks ir S sadaļa, sliktākajā gadījumā, tas ir diezgan tuvu beigām alfabēta. Tātad, ja tālrunis grāmata ir 1000 lappuses, Es atradīsiet Mike ietvaros 1000 lapām, dot vai ņemt. Varbūt tas ir tāpat kā 800, vai arī tā, bet tas ir diezgan tuvu 1000. Tā kā otrajā algoritms, cik lapa kļūst maksimāli varētu I prasa, lai atrastu Mike Smith? Tur ir 1000 lapas, bet es esmu darot tos divus vienlaicīgi. Labi, tāpēc max piemēram 500ish, jo ja es iet cauri visai tālruņa grāmatu, kurā brīdī, es varu pārtraukt. Bet es varu noskūties off daži ar tikai apstāšanās pie T sadaļā. Bet tas ir sliktākajā gadījumā 500 lapas. Tik cik reizes es varu sadalīt 1,00o-page tālruņu grāmata pusē atkal un atkal un again-- no 1000 līdz 500 līdz 250 līdz 125? Cik ilgi pirms es hit vienu lapu? Jā, tas ir par 10. Atkarībā noapaļošanu un tāds tas ir apmēram 10 lapas kopējais nepieciešams pagriezt vai telefonu grāmatas ir iespējams pārraut. Tātad tas ir diezgan spēcīgs. Mēs sākām ar 1000 lappušu problēmu visās trīs no šiem stāstiem. Bet pirmajā algoritmu, to paņēma mani, sliktākajā gadījumā, 1000 lpp Izrādās, lai atrastu Mike. Otrkārt algoritms, 500 lapas, lai atrastu Mike. Treškārt algoritms, 10 lapas, lai atrastu Mike. Un tas ir vēl vairāk spēcīgs, ja jūs domājat, ka par veida pretējā scenārija. Pieņemsim, ka tālruņa uzņēmums nākamo gadā varbūt apvieno abas pilsētas kopā, un tālrunis grāmata ir pēkšņi šis biezs, tā vietā, lai tas, ka, tāpēc 2000 lapas, nevis 1000. Nu, mana pirmā algoritms meklē Mike Smith ar 2000 lappušu tālruņa grāmatu, sliktāk lieta, tas notiek, lai cik lapa pārvēršas nākamgad? Tālrunis grāmata ir 2000 lapas, so-- labi, ne vairāk par vienu. Ja tālruņa grāmata ir divreiz bieza pirmais algoritms, pirmkārt algoritms, 2000, vai ne? Sliktākajā gadījumā, Mike ir patiešām tuvu beigām grāmatas, tāpēc tas ir 2000 lappušu pagriezienus. Otrkārt algoritmu dodas ar veica šo divu reģistru, piemēram, 1000 lapas. Bet kā par manu trešo un pēdējā algoritms? Ja tālrunis kompānija divkāršo lappušu skaits no 1000 līdz 2000, cik daudz reižu vajag es saplēst ka grāmata pusi atrast Mike? Mērķauditorija: Tikai viena. DAVID Malan: Tikai vienu vairāk, jo ar vienu lapu asaru, Es varu burtiski sadalīt un iekarot, ja jūs, ka problēma pusi pieņemšanā masveida kodums no tā. Un tā tas ir piemērs efektivitātes un varbūt algoritms ar kuru mums visiem ir veida intuitīvi pazīstami. Bet tas ir tikpat pareizs kā citiem maniem algoritmi ar šo kniebiens par otrais algoritms, bet tas ir tik daudz efektīvāku. Un patiesībā, ko dators zinātnieks, vai savukārt programmētājs, kas parasti darīt, rakstot kods ir mēģināt izdomāt, labi, es nevēlos, lai mana Programma tikai, lai būtu pareizs, Es arī gribu, lai to efektīvi un risināt problēmas labi. Iedomājieties reālajā pasaulē šodien, piemēram, Google indeksi, meklēšanu tāpat miljardiem lapu, iedomājieties, ja tie izmanto pirmo algoritmu, lai atrastu kaķi starp miljards pages-- meklē pirmā lapa savā datu bāzē, otrais, trešais, tikai meklē par kaķi, meklē kaķi. Tas ir diezgan darn lēni šķiet. Viņi varētu vietā izmantot kaut sauc bināro meklēšanu, kas Nav coincidence-- bi nozīmē divi, mēs glabāt dalot kaut 2, in half-- viņi varētu izmantot bināro meklēšanu un varbūt atrast kaķi vēl ātrāk, vai kāds tas ir jūs meklējat. Un godīgi sakot, tur ir pat mīļotājs algoritmi ka jādara daudz vairāk nekā tikai dalot lietas pusi lai ātri atrastu informāciju. Un mēs runājam mazliet par tiem pēc pusdienas šodien. Tāpēc ļaujiet man tikai mēģināt pārstāvēt šo. Mums nav nepieciešams iedziļināties jebkurš math vai faktiskais skaits. Mēs varam runāt par to abstrakti. Bet ļaujiet man tikai ierosināt, ja jums bija ar diskusiju tagad ar inženieri ierosinot šo algoritmu un jūs mēģināt darīt aprēķināto lēmums, jo varbūt inženieris tev saka, jums zināt, ko, es varu īstenot lineāra meklēšanai, piemēram, divas minūtes. Tas ir tik vienkārši. Binārā meklēšana nav tik fancy, bet tas notiek, lai mani kā 10 minūtes, tā 5 reizes tik ilgi. Tur ir tirdzniecības šeit, pat ziņā izlemt kāda programmatūra rakstīt. Vai jūs rakstīt vienkāršāku algoritmu, kas būs tikai Jums divas minūtes? Vai jūs pavadīt vairāk laika, 10 minūtes, rakstiski mīļotājs algoritmu? Kā jūs izlemt, šāda veida jautājumu? Vai jūs varētu padarīt to nedaudz vairāk reāli. Es saku mans priekšnieks tā gatavojas veikt me nu vienu nedēļu vai 10 nedēļas lai īstenotu programmatūras šādā veidā, kā jūs izlemtu, kura algoritmu, lai zaļā gaisma? Karim? Mērķauditorija: Auditorija, I guess. DAVID Malan: Auditorija. Ko jūs saprotat ar auditoriju? Mērķauditorija: Ja tas notiek , ko izmanto lietotāju kurš [dzirdams] lietotāji [nedzirdama]. Bet, ja tas ir kaut kas jūs esat tikai dara pats lai atvieglotu problēma [Dzirdams] ātrāk. DAVID Malan: Jā, tas ir ātri un netīrs ir labs veids, kā aprakstīt to. Patiesībā, ja jūs aprakstot daudz mana laika in grad skolā, kur bieži vien ir reizes, Es uzrakstīju sliktu kodu apzināti so-- vismaz, tas, kā es racionalizēta it-- apzināti tā, jo, lai gan man bija rakstot kodu tas bija salīdzinoši lēni izpildīt, Man bija iespēja uzrakstīt kodu pats diezgan ātri, pavadot tikai minūtes vai stundas ne dienas. Un izrādījās, es reizēm vajadzēja gulēt. Tātad, pat ja mans kods vajadzīgs 8 stundas, lai palaistu, labi, ka ir labi, Es ņemšu tikai iet gulēt, bet tā darbojas. Tātad tajā laikā, es domāju, tas bija ļoti gudrs, lai gan es acīmredzot strādāja ar manu doktora ļoti lēni. Bet pretējs no tā ir ka, ja es būtu rakstīšanas programmatūru citiem cilvēkiem, kas vienaldzīgs vairāk nekā mani, labi, kam viņiem jāgaida 8 stundas, lai saņemt atpakaļ savus meklēšanas rezultātus nav tik pārliecinoši. Un tā tērēt vairāk laika uzreiz rakstīt programmatūru kas ir efektīvāka, vairāk tāpat kā mūsu trešo algoritmu, iespējams labumu lietotājiem laika gaitā. Tātad, tas tiešām ir atkarīgs vairāk laiks, kā šīs izmaksas saskaitīt. Ja jūs esat būs rakstiski programmatūru, lai izmantotu to vienu reizi, iespējams, varētu arī darīt ātrs un netīri, kā saka. Tikai mest to kopā. Tas ir kods, kas embarrasses tu, tas ir tik slikti, bet tas izpaužas darba darīts pareizi, pat ja tas nav efektīvi. Un otrādi, jūs pavadīt vairāk laika par kaut ko, iegūt tikai labi. Un tad amortizē laikā, ka sākotnējās izmaksas laiku ir iespējams, vērts, ja jūs paturiet optimizēt kopējās lietas. Un tiešām, tas ir temats programmēšana, vai datorzinātnes vairāk kopumā, cenšoties optimizēt ne retāk lietas bet kopējie case-- kādas operācija notiks atkal un atkal? Ja jūs nāksies miljardiem lietotāju meklēšanu savā mājas lapā, jums ir iespējams tērēt papildu nedēļām līdz priekšā rakstot labāku programmatūru, lai visiem jūsu lietotājiem gūt labumu. Tagad pamēģināsim, lai attēlotu šo A maz gleznieciski, bet ne tik daudz skaitliski. Tātad, šeit ir tikai vecās skolas diagramma. Un ļaujiet man teikt, ka šis ir laiks. Un tas nav svarīgi what-- patiesībā, nē, nav laika. Palūkosimies, kas, no otras ass. Pieņemsim, ka šis ir laiks, un tas ir lielums problēmu. Un dators zinātnieks varētu vispār aicināt tas tikai n. n ir kā mūsu go-to mainīgo, kur n ir skaitlis, n numurs, un tas ir skaits kādas izejvielas esat. Tātad, šajā gadījumā, n ir lappušu skaitu. Tātad tas varētu būt 1000 gadījumā mēs vienkārši teica. Tāpēc laiks var būt jebkura mērvienība. Varbūt, tas ir otrais. Varbūt, tas ir dienas. Varbūt, tas ir tāpat kā lapas pagriezieniem. Nav nozīmes. Lai ko jūs vēlaties, lai rēķināties, ka būs laiks, vai izmaksas līdzvērtīgi. Tātad ar šo pašu pirmo algoritmu, ja I, piemēram, bija 1000 lappušu tālruņa grāmatu, Es esmu gatavojas izdarīt dot tur, jo, ja tas ir 1000 lappuses, tas bija aptuveni 1000 lapas griežas, sniegt vai pieņemt. Un tad, ja man bija 2000 lappušu telefonu grāmata, un es esmu gatavojas izdarīt otru dot šeit, jo uz 2000 lappusēm, tas ir tāpat kā 2,000 sekundes vai lapa griežas vai neatkarīgi. Un tad, kad es teicu iepriekš, tas ir veida lineāru attiecības, tas bija apzināta, jo es gribēju vēlāk on-- tiesības now-- lai uzzīmētu līniju. Tas ir sava veida taisni line attiecības. Slīpums ir 1/1, ja Jums gribas. Tajā pašā laikā, tad otrs algoritms teica, ja jūs esat ieguvuši 1000 lapas un jūs, izmantojot otro algoritmu, kur es skaitot līdz 2 s, pagriežot divas lappuses vienā reizē, man vajadzētu izdarīt dot zem vai virs manu sākotnējo punktu? Mērķauditorija: Zem. DAVID Malan: Zemāk, jo, kā mēs redzējām, tas aizņem mazāk laika, pusi tik daudz laika. Tātad dot jābūt pusei kā liels kā no otras puses. Un pats nodarbojas vairāk nekā šeit, šis punkts būtu iespējams, aptuveni tur. Un tā mana otrā algoritms, līdzīgi, ir lineāra sakarība ar laiku. Un mēs varam izdarīt to kā tādu. Tāpēc tagad, trešais un pēdējais algoritms ir nedaudz grūtāk izdarīt. Bet intuitīvi, ja man 1000 lapas ar manu trešo algoritmu, tas būtu jāņem tikai mani kā 10 soļiem. Un, ja man 2000 lapas ar manu trešo algoritmu, tas jāņem man nav 10 soļi, bet 11, tikai vēl viens. Tātad, mēs esam tikai tikko gatavojas redzēt šo. Un izrādās, ja Es tuvinātu par šo, es esmu gatavojas pārspīlēt efektu, forma šīs līnijas, galu galā, nav taisni LINE jo, patiešām, ja tas bija, tas izskatās vairāk, piemēram, others-- tas tiešām ir izliekta līnija ka, ja mēs tuvinātu, notiek izskatīties daudz, kā šis. It-- labi, OK, ignorēt šo daļu. Tas bija mans pildspalva iet leņķa. Tas ir izliekta līnija, kas vienmēr palielināšana, vienmēr, vienmēr, vienmēr pieaug, bet tikai tikko. Un tā laika gaitā, jums ir attiecības, kas ir vairāk kā šis. Tā gandrīz izskatās taisni. Bet tas ir kādreiz tik lēni pieaug. Bet gandrīz visos punktos gar Jūsu x-ass, horizontālās ass, tā ir zemāka par šīm citām līnijām. Tātad tas varētu būt saistība n, kur, ja jums ir n lapas, ņem jums n sekundes. Tas varētu būt saistība n / 2. Jums ir n lapas, tas aizņem tu n / 2 sekundes, pusi tik daudz. Un tas ir logaritmisks attiecības, kas Ja jūs atceraties, log n notver 2 bāzi šāda veida izaugsmi, lai runāt. Tātad šis ir sava veida svētā Grāls starp trim no šiem šeit, jo tas ir tikai tik daudz efektīva, bet varbūt sarežģītāka īstenot. Kādi jautājumi? Nu ļaujiet man darīt, ļaujiet mani atvērt teksta logu tikai, lai mēs varētu mēģināt noformēt kaut ko šeit. Tāpēc ļaujiet man iet uz priekšu tagad ievieš šo algoritmu lai atrastu Mike Smith ar kodu, ja jūs, pseudocode kods. Es neesmu gatavojas izmantot Java vai C ++. Es esmu tikai gatavojas izmantot veida Angļu līdzīgu sintaksi, ko mēs tas parasti sauc pseudocode kodu. Lūk, man ir tukša logu. Un es saku no ļoti 1 soli Pirmais algoritms ir paņemt telefona grāmatu. 2. solis ir atvērta grāmata pirmajā lapā. 3. solis būs apskatīt lapa Mike Smith. Ja lapā, zvaniet Mike. cits kārta lapu un iet uz 3. soli. Darīts, teiksim. Un tā tas nav gluži ideāls, ko mēs redzēsim pēc brīža. Bet pieņemsim apsvērt, kādi jēdzieni es esam ieviesuši šeit. Tātad soli 1 un 2 un 3 Ir diezgan daudz vārdi. Viņi paziņojumus, actions-- izdarīt. Un tā kādā programmēšanas valoda, mēs parasti zvanīt viņiem paziņojumus vai funkcijas vai procedūras, viņiem piezvanīt jebkurš vairākas lietas. Bet viņi tikai actions-- izdarīt. 4. būtiski atšķiras, jo tas ir sava veida lūdzot jautājumu. Tas ir saprotams, mēs esam veida no at dakšiņu ceļa. Ja Mike ir lapā, zvaniet viņam, tāpēc pagriezieties pa kreisi, ja Jums gribas. Un, ja nav, iet atpakaļ uz kādu cita page-- vai drīzāk, sorry, doties atpakaļ uz kādu citu soli, kas izraisa kādu looping būvēt. Un mēs to atkal un atkal un atkal. Un tiešām, jūs zināt, ko? Jā. cits, ja beigās grāmatu pieturas. Tāpēc mums ir sava veida trešās stāvoklis, jo jums nevar turēt pagriežot lapas reklāmu nauseum, jo ​​galu galā, es ņemšu hit beigām grāmatas. Un bug programmā varētu būt nav paredzot šo scenāriju. Un tad es tikko sapratu, ak, pagaidiet minūtes, man vajag trešo scenāriju. Ja es esmu no lapām, es patiešām vienkārši pārtraukt. Pretējā gadījumā tas ir nenoteikts. Kas notiks, ja es glabāt sakot pāršķirt lapu un iet atpakaļ, Tas ir, kad datori iesaldēt vai crash, kad jūs hit daži neparedzēta situācija, piemēram, ka. Tagad, ko par Mike Smita trešais algorithm-- uzņemt tālruņa grāmatu, atvērta grāmata first-- uz nē, ne pirmā lappuse šoreiz, līdz middle-- oh, labi, ka gribētu otrais algoritmu. Pieņemsim tikai pārietu uz trešo. Mērķauditorija: Ak, es esmu sorry. DAVID Malan: Tas ir jauki. Pieņemsim tikai pārietu uz third-- atvērts uz vidu un tagad meklēt Mike Smith. ja lapā, zvaniet Mike. Un tad ko mēs gribam pateikt šeit? cits ko? Mēs varam izteikt to jebkurā vairākos veidos. Nav pareizā atbilde. OK, ja ne atkal, bet mums ir nepieciešams, lai be-- OK, mēs vēlamies sadalīt divās, bet mēs vēlamies iet pa kreisi vai pa labi iet? Kā mēs izsakām šo jēdzienu? Nu, kas Pētera gadījumā, jā, tas ir godīgi. Bet OK, tā ka ir tiešām labs punkts. Tas ir jauki. Mēs turpināsim iet ar šo loģiku. Un-- Mērķauditorija: mazāk nekā puse. DAVID Malan: Jā. Tātad, cits, ja lapa ir, mēs sakām, mazāk nekā Smith, pa kreisi no Smith, then-- pieņemsim redzēt, ir Tas notiek, lai sarežģīt? cits, ja lapa nāk pirms Smith, plīsuma pusi, mest prom kuru pusi? Mērķauditorija: Es domāju tas bija [nedzirdama]. DAVID Malan: Es esmu dzirdes abas atbildes. Mērķauditorija: Kreisais. DAVID Malan: Labi, mest prom pa kreisi pusi, kā Lakisa teicu iepriekš, pa kreisi pusi, tad es veida gribu tikai iet kuri paredzēti, es iet uz labo pusi. Vai līdzvērtīgi, un es mazliet mazliet haoss sākumā šeit, Es faktiski gribu iet uz 2. atkal soli, kur atvērts middle-- vai open-- yeah, pieņemsim tikai teikt, lapas vidū. Un tas nosaka to. Tas vairs nav grāmata. Tas ir tikai puse no grāmatas, tik atvērt lapas uz vidu. else-- bija gandrīz tur. Step 6, cits, ja lapa nāk pēc Smith, asaru pusi, mest prom labo pusi, tad iet uz 2. soli. cits atmest, ceturto scenāriju, ja Mums nav lapas, pa kreisi, lai ieslēgtu. Lai mēs varētu sakopt šo augšu. Un mums vajadzētu sakopt šo augšu. Tas ir ļoti pseudocode kods, ja jums būs ļoti augsta līmeņa apraksts. Bet tas vispār uztveršanas ideju. Un, atkal, šis scenārijs, mēs ir jēdzienu nosacījumu, filiāle, dakša uz ceļa, padarot decision-- ja tas, iet šo ceļu, cits, ja, iet šo ceļu, cits, ja, iet šo ceļu. Un tas ir ļoti bieži programmēšana tehnika izlemt, kādā virzienā iet, lai runāt. Un mums ir arī sava veida looping struktūru, kur mēs darām kaut ko atkal un atkal. Tagad izrādās, daudz kā šajā piemērā, ir super precīzs ir svarīga. Bet mēs esam redzējuši kaut ko ka turam zvana ieguvei. Ko tas nozīmē paņemt telefona grāmatu? Mēs esam tikko veida ņemot par pašsaprotamu šajā telpā ka ir dažas semantiska nozīme. Mums visiem tikai veida zina, oh, labi, paņemiet telefona grāmatu. Ko tas īsti nozīmē? Nu, tas tiešām nozīmē paplašināt rokas, apgāzties, paplašināt pirkstiem, šķipsnu grāmatu starp pirkstiem, piecelties, velciet roku pret jums. Un mēs varētu būt patiešām pedantiska par to, tiešām ir super precīzu par to, ko es daru. Bet visi no šiem soļiem kolektīvi ir ko tas nozīmē uzņemt tālruņa grāmatu. Un tā agrāk, kad es teicu, katrs no šiem pirmajiem diviem apgalvojumiem var uzlūkot kā turpināt vai funkcija, tiešām tas ir tas, ko mēs saglabātu zvana abstrakcija. Tas ir tāpat kā augsta līmeņa konceptuālā apraksts par problēmu, ka patiesībā ietver diezgan dažus soļus. Un tā tas arī ir atkārtojas tēmu plānošanā, ar ko es varētu uzrakstīt programmu izmantojot sintaksi, piemēram this-- pick_up_phone_book (). Un tad sintaktiski, es esmu gatavojas nozagt kaut ko no vairuma programmēšanas valodas. Tagad, 1 solis izskatās vēl vairāk kā funkcija, kā programmētājs to sauktu. Izskatās kods ka kāds ir devis nosaukumu un, ņemot vērā man izmantot somehow-- citās vārdi, ko līnija es esmu izcelti pārstāv funkcionalitāti, kas varbūt Man nav pat īstenot sevi. Kāds vecāks, gudrāks par man jau sapratu, kā jūs izteikt jēdzienu pacelt tālruņa grāmatu. Un tas ir tāpat kā piecus soļus es tikko grabēja off, off augšpusē manu galvu. Bet viņš vai viņa jau ir ieviesušas Tas sniedza šos vairākus soļus vārds, pick_up_phone_book. Un iekavas ir tikai to, ko visvairāk programmētāji do beigās pārskatu, kā šis. Es tagad var stāvēt uz viņa vai viņas pleci un nekad vairs, domā par to, ko tas nozīmē uzņemt tālruņa grāmatu. Es varu tikai teikt, paņemt telefona grāmatu. Un tas ir tieši tas visi no mums cilvēki darīja šeit. Kad mēs, iespējams, bija 1 gadu vecs, 2 gadus vecs, kāds bija iemācīt mums, ko tā nozīmēja uzņemt tālruņa grāmatu. Un kopš tā laika, mēs esam nošķirts prom no tiem ļoti neinteresanti mehāniskās soļi. Un mēs vienkārši ir intuitīva izpratne par to, ko nozīmē uzņemt tālruņa grāmatu. Un jūs varat ekstrapolēt tagad uz sarežģītāka things-- uzbūvēt ēku. Tāpat kā, daži cilvēki, kas faktiski ir nozīme. Līgumslēdzējiem, to arhitektiem, ka ir dažas nozīme. Un viņi zina, ko darīt, ja Es teicu, iet būvēt ēkas. Bet lielākā daļa no mums telpā nevarēja galā ar šo abstraktā līmenī. Jums ir nepieciešams pastāstīt mums, piemēram, iet saņemt lāpstu un iet saņemt betona un nagu koka gabalu kopā un kāds cits ir iesaistīts, veidojot ēku. Un tas ir tāpēc, ka mums nav vēl ir ieprogrammēts, lai saprastu ko tas nozīmē būvēt ēku. Mums nav šo abstrakciju. Mums nav šo funkcionalitāti. Un tā, ko jūs redzēsiet programmēšanas valodas, vispār, īpaši vairāk mūsdienu valodā, piemēram, Java, PHP, Ruby un Python, viņi daudz vairāk nobriedis nekā vecāki valodās, piemēram, C un C ++ un vēl citi. Un tā viņi nāk ar vairāk funkcionalitāti uzcelta. Vairāk kods ir rakstīts cilvēki pagātnē ka mēs tagad var zvanīt vai izsaukt vai izmantot, jo es esmu hinting at ar to uzsvērts līniju šeit. Un tā, pat ja mēs nerunājam par programmēšanas valodām per se, tikko pseudocode kods, visi idejas joprojām ir šajā diskusijā. Un izrādās, precizitāte ir super svarīgs, jo ir abstrakcijas. Un pamēģināsim paziņot, ka šādi. Es nejauši varētu būt bojāti šo, mirgo slaidu uz ekrāna priekšlaicīgi. Bet ļaujiet man lūgt drosmīgs brīvprātīgais, ja jums nav prātā nāk uz augšu. Tu būsi priekšā no kamera, ja jūs OK ar to. Vai kāds vēlētos nākt klajā un dot norādījumus uz jūsu kolēģiem šeit? Vienkārši ir jānāk nekā šeit un stāvēt nekā šeit un teikt dažus vārdus. Viktorija smaida visvairāk un izvairoties no manas acis visvairāk. Vai jūs būtu ar mieru nākt uz augšu? LABI. Un, ja visi pārējie jūsu sēdekļiem varētu izņemt kādu lūžņi papīra, ja Jums gribas. Izklāta papīra ir labi. Nāciet ap šādā veidā. Vai kādu no papīra jums tika dota vakar, tikai jebkuru tukša lapa papīra, ja jūs varētu. Un, ja jums nav kāds, tikko jautājiet savam kaimiņam, ja jūs varētu. Tātad uz šo brīdi, lai šis piemērs, Victoria gatavojas spēlēt lomu programmētājs, inženieris, kurš ir programma jums visiem, jo datori, kaut ko darīt. Un mēs redzēsim, ko pieņēmumus jūs nolemjat darīt. Redzēsim, cik precīzi viņa izvēlas būt. Un, ja tas demonstrēšana notiek pedagoģiski labi, daudz kļūdu tiks veikti, lai mēs pēc tam izmantot kas kā iespēju diskusijai. Bet izaicinājums jums vajadzētu jābūt, lai izvairītos no šīs kļūdas, būt labs programmētājs. Un tā uzdevums pie rokas, ja jūs patika staigāt vairāk nekā šeit, atrodas pie Victoria uz ekrāna here-- un, cerams, neviens no jums atcerieties to, kad es kārtiņu uz ekrāna. Un nav apgriezties vispār, jo tur ir vēl viens ekrāns šajā telpā ka es varu izslēgt. Tāpēc nav apgriezties. Priekšā Victoria ir tas, ka pats kliedziens. Un viņas uzdevums tagad ir pateikt jums visiem Jūsu papīra ko izdarīt. Un mēs redzēsim, pamatojoties uz mutiskas instrukcijas vien, datora kods, ja jūs, cik precīzi jūsu rasējumiem are-- jūsu implementācijas ir. Jēga? Mērķauditorija: Jā. DAVID Malan: Labi, izpildīt. Mērķauditorija: Draw kvadrātu. [Smiekli] DAVID Malan: Un nē jautājumus var uzdot. Var tikai darīt to, ko jūs esat teicis. Ak, un, ja jums ir šodienas slaidi atvērts cilnes, nav apskatīt cilni. LABI? Mērķauditorija: OK, izdarīt aplī. Slope-- es varu teikt slīpums? DAVID Malan: līdz jums. Mērķauditorija: nogāzes. Un trīsstūris. DAVID Malan: Labi. Un palikt šeit tikai brīdi. Un es esmu gatavojas nākt ap tikai brīdi. Un nav nepieciešams, lai jūsu vārdi par to. Ļaujiet man nāk apkārt un savākt savus zīmējumus, ja jums nav prātā, asarošanu tos. Lūk, ko mēs saņēmām atpakaļ. Es projicēt to uz ekrāna. Es redzu kvadrāts, aplis, izveidot slīpumu, un trīsstūri. Tā, ka bija viena atbilde tur. Un let's-- Whoops. Paldies. Lūk vēl viens sortimentu, un viens aiz tā. Lai viņi visi, šķiet, lai attēlotu garu. Paldies. Ir vēl viens, un šeit ir vēl viens. Slīpums interpretācija ir nedaudz atšķirīga, nedaudz Kārdinoša. Un vistuvāk, vai nu tāpēc, ka brīnišķīgi specifika ar kuru jūs esat aprakstīts, vai varbūt jūs veida redzēju to pirms, tas ir patiešām Ko Victoria faktiski apraksta. Bet tagad, tiem no jums, kas nesaņēma to ļoti labi, pieņemsim piedāvā dažas iebildumus šeit. Tātad Victoria pirmais teica uzzīmēt kvadrātu. Un tagad, mēs varam pieņemt, labad šodien ka visi zina Kā izdarīt kvadrātu. Bet tas nav pilnīgi skaidrs, vai ne? Kā arī jūs varētu būt sastādīts kvadrātveida, vai ja varētu būt daži no neskaidrības šeit datora? Mērķauditorija: atrašanās vieta un lielums. DAVID Malan: Location, labi? Jūs visi bija papīra dažu formas, parasti taisnstūrus, bet nedaudz dažādi izmēri. Bet jūs, protams, varētu būt izstrādāts, ja jūs vēlaties, milzīgs kvadrātveida, varbūt niecīga kvadrāts. Varbūt, tas tika pagriezts. Es nedomāju, ka mēs redzējām, ka. Bet tas varētu būt bijis vairāk dimants piemēram, bet tomēr, tomēr, matemātiski kvadrātu. Tā, ka bija apstrīdami neskaidrs. Tad viņa teica, uzzīmējiet apli. Daži no jums bija izdarīt to blakus tas, kas nav nesaprātīgs, jo cilvēki mēdz domāt vai lasīt labās puses uz kreiso vairumā valodu, tāpēc ne slikts minējums. Bet tas loks varētu būt bijis iekšā laukumā, varētu būt ap kvadrātveida, varētu būt kaut kur citur uz lapas, tāpēc varbūt neskaidrs. Slope varētu būt varbūt ņemot visvairāk brīvības mutiski ar ko tas nozīmē. Un daži no jums interpretē tā kā neskaidrs līnija vai taisna līnija vai tamlīdzīgi. Un tad trijstūris, arī varētu būt ir orientēts jebkurā vairākos veidos. Tātad īsumā, pat ar kaut ko, jūs skatienu un jūs, piemēram, wow, tāpēc vienkāršs, bērns varētu izdarīt šo, arī nav tiešām, ja jūs esat super, super pārliecinošs un pateikt datoru tieši to, ko darīt. Tātad, ja mēs varētu, ja jums ir cits papīra lapas, pieņemsim izmēģināt šo vēlreiz. Un es esmu gatavojas sniegt Victoria vienu Otrs piemērs uz ekrāna šeit. Un atkal, nav apgriezties un neizskatās jūsu slaidiem. Un es došu viņai brīdi domāt par to, kā aprakstīt šo. Neļaujiet viņiem redzēt bailes acīs. [Smiekli] Un atkal, šoreiz sviras daži no šiem takeaways un mēģināt iegūt gandrīz ikviens vismaz pareizā atbilde. Mērķauditorija: OK, ņem papīra, meklēt vidū minētā papīra gabalu. In vidū šī gabala papīra, uzzīmēt kubu. [Smiekli] DAVID Malan: Kas mums iemācījušies? Mēs bijām tik tuvu. OK, atkārtojiet, ja jūs varētu, ikvienam. Mērķauditorija: In vidū, papīra, izdarīt objektu, kas izskatās kā kubu. DAVID Malan: Labi, tas ir viss jums strādāt. Ļaujiet man būt analītisks un ne tik daudz kritiska, bet, lai prasību ka Victoria noteikti Šķiet, ka domāšana ļoti augsta līmeņa abstrakcijas, kas nav nepamatota. Jo pretējā gadījumā mēs visi būt diezgan disfunkcionālas, ja mums bija jābūt kādreiz tik precīzi ar visu, ko mēs darām pasaulē. Bet sakot iet uz middle-- I domāju, ka mēs tik labu dziesmu tur, tāpat kā doties uz pašā vidū lapas, un pēc tam izdarīt kubu. Tātad viņa domāšanu abstrakcijām, jo viņa joprojām apskatei to, kas ir uz ekrāna, kā patiešām kubs. Bet tur ir tik daudz iespēju interpretācijas tur. Un patiesībā, tur ir tik daudz citi veidi, kā jūs varētu izteikt tas, ko es piedāvāju brīdi. Tātad šeit mums ir viens inkarnāciju no picture-- whoops-- vienu iemiesojums attēla, tāpēc maz trīs dimensionality to, kas ir jauki. Lūk, vēl viens, kur jums ir tas pats, lai gan tas ir sava veida atklātā kubu. Daži ļaudis ņēma to nedaudz vairāk plakanas, divdimensiju. Un tas ir jauki. Tātad, faktiski nozīmē centrs no papīra. Tas viens es domāju, ka jūs tāpat, jo, ja mēs ejam šeit, Tas ir tas, ko viņa apraksta. Tāpēc tagad, ļaujiet man ieteikt, kā cits mēs varētu aprakstīt šo situāciju. Atpakaļ dienā, kas ir viens no visbiežāk biežāk veidi, lai uzzinātu programmēšana bija rakstīt kodu, raksta līnijas norādījumiem, ka kontrolēta maz bruņurupucis uz ekrāna. Logo un citi varianti šis bija nosaukums valodas. Un bruņurupucis dzīvoja pasaulē. Tātad pieņemsim šo taisnstūra telpa ir viņa pasaule. Un jūs varētu sākt ar assuming-- I nav tiešām zināt, kā izdarīt bruņurupucis, tāpēc pieņemsim to darīt, kā šis. Un tad viņš dabūja apvalks un tad varbūt dažas pēdas. Lai jūs varētu būt šo maz raksturs uz ekrāna. Un objekts šis programmēšanas valoda bija piespiest bruņurupucis iet uz augšu, uz leju, pa kreisi, pa labi un izteikt savu pildspalvu uz leju vai izvēlēties savu pildspalva up, lai viņš patiešām varētu izdarīt uz ekrāna Šajā ļoti plakana taisnstūra pasaulē. Tātad, ja es domāju, ka jūs varētu iet, un kur jums vajadzētu apsvērt niršanu uz leju, lai garīgi, aprakstot instrukciju vispārīgāk, Es varētu apgalvot, ir likts jūsu pildspalva leju middle-- un mēs atbrīvoties no bruņurupucis, jo es nevaru īsti paturēt zīmēšanas viņam ļoti labi. Un tagad, kā gan citādi varētu Es saku izdarīt kubu? Nu, mēs varētu teikt kaut ko līdzīgu izdarīt ievelk līniju pa diagonāli uz ziemeļaustrumiem, piemēram, vai pie 45 grādu leņķī uz augšu. Un kas varētu būt gotten mani šeit. Un es esmu diezgan tālu no kubu. Bet tagad, es varētu teikt kaut ko tāpat savukārt 90 grādiem pa kreisi un izdarīt līniju vienāda garuma ziemeļrietumiem. Un es varētu turpināt ar līdzīgām virzienos. Un tas nebūs viegli. Un godīgi sakot, mēs, iespējams, būtu šeit bijis piecas minūtes. Bet varbūt mēs būtu gotten kaut kas, beigās, dienā, beidzas ar to, kubs, bet mēs ienirām iekšpusē šīs abstrakcijas darīt to tik zemu līmeni, ka jūs nevarat īsti redzēt, ko jūs darāt, līdz viss lieta ir faktiski tur lapā. Un tā tas ir vispārējs princips, atkal, no programming-- šo ideju abstrakcijas. Tas ir tik brīnišķīgi spēcīgs, jo atkal, viņa vienkārši teica, izdarīt kubs, kurā visi mums diezgan daudz būtu grok ļoti ātri. Mēs vēlētos saprast, OK, izdarīt kubu. Mēs varētu nezināt orientāciju, lai mēs varētu būt nedaudz precīzāks, bet mēs varam vispār attēlu vai zināt, kas kubs ir. Un tas ir noderīgi, jo, ja katru reizi, kad apsēdās par programmētāju tastatūras rakstīt kodu, ja jums bija jādomā par tādām zems, neviens no mums varētu kādreiz iegūt kaut ko izdarīt. Un, protams, neviens no mums būtu baudīt procesu rakstīšanas kodu. Tas būtu tāpat kā rakstiski 0 un 1 s, kas atklāti nebija viss, kas sen cilvēki tika rakstot kodu 0 un 1 s. Un mēs ļoti ātri nāca klajā ar tie augstākā līmeņa languages-- C ++ un Java un citi. Tātad, pieņemsim mēģināt šo vēlreiz tikai uzsist galdus, tā ka mums visiem ir iespēja domāt diezgan vienādi. mēs varētu iegūt vēl viens brīvprātīgais šo laiks nākt klajā valdei un izdarīt, ne stāstīt? Jā, OK. Ben, nākt uz augšu. Un, Ben, šajā gadījumā, kad jums saskaras kuģa, nav izskatās pa kreisi, neizskatās labi. Darīt tikai to, ko jūsu kolēģi šeit jums pateiks. Un ikvienam citur istaba, jūs tagad esat programmētājs. Viņš ir dators. Un attēls es esmu izvēlējies šeit iepriekš tas ir viens šeit. Viņi just-- viņi domā par funny joks ir viss. Tātad būtu kāds, kurš vēlas brīvprātīgo pirmo norādījumu vai apgalvojums, ka vajadzētu komanda Bena pildspalva? Un mēs darīsim to kopā, varbūt viena norādījumu no katras personas. Man žēl? Mērķauditorija: Zīmēt apli. DAVID Malan: Zīmēt apli ir pirmā lieta, ko es dzirdēju. Mērķauditorija: Up top. DAVID Malan: Līdz top. Labi, mēs varam jums izdzēst, atsaukt. Un tagad, kāds cits. Dan, jūs būtu comfy piedāvā nākamo norādījumu? Mērķauditorija: Protams, izdarīt centrs no apakšas uz apļa, ar small-- nedaudz maza telpa no tā, izdarīt taisnu līniju līdz trim ceturtdaļas galam kuģa nedaudz leņķī pa kreisi. DAVID Malan: Labi. Mērķauditorija: Neliela leņķis. DAVID Malan: Undo, Control-Z. LABI. Andrew, jūs vēlaties, lai piedāvātu up nākamo norādījumu? Mērķauditorija: Protams. No apakšas uz šīs līnijas, vēl nedaudz angle-- whoops-- varbūt apmēram trešdaļa garuma [nedzirdama], neliels leņķis uz leju, un Like trešais no garuma [nedzirdama]. Tātad yeah, no šī punkta, izdarīt līniju trešais garuma iepriekšējā line tālāk pa kreisi. DAVID Malan: Tas OK? Taisna līnija, tas ir OK? OK, Olivier, jūs vēlaties piedāvāt up nākamo? Mērķauditorija: [dzirdams] no apakšā apļa, [nedzirdama]. Zīmēt labajā pusē no [dzirdams] centimetri. [Smiekli] DAVID Malan: Es domāju, ka jūs gatavojas ir pārvērst tas collas šeit. Mērķauditorija: Stop. [Smiekli] DAVID Malan: OK. [? Ara,?] Vēlaties piedāvāt up nākamo? Mērķauditorija: Draw [nedzirdama] augšējā [nesadzirdamus] tāds pats. [Dzirdams] aplis, vērst uz [Dzirdams] un izdarīt [nedzirdama]. DAVID Malan: Labi, vairs atsaukt. Darīsim vēl vienu vai divas instrukcijas. Chris, jūs vēlaties, lai piedāvātu vienu? Mērķauditorija: Apakšā apļa, [nedzirdama] izdarīt vienlīdzīgu līnija slopping uz leju pa kreisi [nedzirdama]. DAVID Malan: OK. Andrew? Mēs did-- Karimu? Mērķauditorija: Sākot no labās līnijas, beigām, pa kreisi līniju, apakšējā, jūs gatavojas iet taisnība vienāda garuma kā šīs līnijas tu esi par, tuvojas tiesības [nedzirdama]. [Dzirdams] grādiem, tāpēc [nedzirdama] grādi labajā pusē. DAVID Malan: Labi. Pieņemsim pauzes. Nav apgriezties vēl. Pieņemsim pauzes, un pieņemsim izmēģināt vienu citu mēģinājumu pirms mēs atklāt Ben ko viņš ir bijis zīmēšanas. Vai jūs varat shuffle Ben līdz right-- vai faktiski, nē, pieņemsim tikai sniegt jums vēl viena galda, pat labāk. Tāpēc būtu kāds tagad gribētu lai ņemtu vairāk par pieeju ka Viktorija paņēma agrāk, kur mēs runājam augstākā līmeņa abstrakcijas un tikai teikuma vai divi aprakstīt Ben ko izdarīt bez nokļūst nezālēm, tā sakot, pie šī zemāks līmenis? Victoria. [Smiekli] Mērķauditorija: Draw skaitlis no pastaigas cilvēks. Un viņa kājas un rokas jābūt labajā pusē. DAVID Malan: Labi, ka viss jums. Viss kārtībā. Kāpēc mēs atklāt Ben, ko viņš darīja. Tātad kārta aplausi. Tas bija grūtākais varbūt. Tātad, pat ja mēs runājam diezgan dumjš izteiksmē par tikko zīmēšanas bildes, cerams, jūs tiešām var novērtēt pakāpi ekspresivitāte, kas varētu būt nepieciešami lai pastāstītu datoru, ko darīt. Un patiesībā, tas, ka Ben varēja izdarīt šo tik ātri ir sava veida testaments izmantojot valoda, varbūt augstāka līmeņa versija angļu valodā, kas ļauj viņam tikai izmantot vārdus, vai dzirdēt vārdus no Victoria, kas ļauj viņam šie abstractions-- vienkārši izdarīt skaitlis ejot uz right-- ka veida ir daži semantisko nozīmi to, ka nav gandrīz tikpat skaidrs, kad tu esi tikai sakot, nodot savu pildspalvu uz leju, zīmēt pa labi, izdarīt pa kreisi. Un tā tas arī ir ļoti izplatīta programmēšanas. Tas būtu teikt, būt, piemēram, ļoti zems līmenis valoda, programmēšana in 0 un 1 ir, ja Jums gribas. Un tas būtu augstākā līmenī valoda programmēšana Java, vai kaut kas tāds. Mazliet pārmērīga, bet tas ir tāda veida līdzīgu emocionālo sajūta, ka jūs jūtaties, kad izmantojot viena veida lieta, vai citu. Mazliet vilšanās šeit nepieciešamība par tādu precizitāti, bet iespēja būt mazliet brīvāku ar interpretācija šeit. Bet, protams, bugs var rasties, kā rezultātā. Ja vēlaties pie home-- mums netiks darīt šo vienu class-- bet, ja vēlaties celt šo vārtus, Es domāju, ka mēs varētu nodoties šo. Tātad, ja jūs vēlaties spēlēt šo spēle ar savu citi nozīmīgi vai bērni vai tamlīdzīgi, jūs varētu baudīt, ka labi. So iesim uz priekšu un apskatīt pēdējam lieta šeit skaitļošanas domāšanu. Un tas mūs noved pie Jāņa Oliver, nevis klipu Jums varētu būt redzējis pēdējā naktī, bet nedaudz pēdējo jautājumu. Dažus mēnešus atpakaļ, Volkswagen paņēma diezgan daudz artilērijas kāda iemesla dēļ, ja jūs zināt? Ko viņi saņemt nepatikšanas par? Jā, tāpēc emissions-- tie centās pārspēt emisijas testi ar būtībā, kuru automašīnas piesārņo vidi mazāk kad viņu automašīnas tika pārbaudītas un piesārņo vidi vairāk kad automašīnas netika pārbaudītas. Un, kas ir vairāk interesanti pasaulē, jo Jums var būt secināja no diskusijām like-- kas ir it-- CarPlay, Apple programmatūra automašīnām un tas, ka daudzi no mums arvien vairāk ir touch ekrāniem mūsu automašīnām, tur ir biedējoši summa programmatūras cilvēku automašīnas šodien, kas atklāti atver veselu var, tārpi, kad runa ir par drošību un fizisko risku. Bet šodien, pieņemsim koncentrēties uz tieši to, kas ir iesaistīti rakstīšanas programmatūru kas varētu būt gamed sistēmu. Par definīciju problēma, tiem svešs, pieņemsim to apskatīt John Oliver. Un tiem iepazinušies ar problēma, pieņemsim apskatīt to jautru lēca caur John Oliver, kā arī. Tāpēc ļaujiet man hit spēlē uz to, es domāju, trīs minūšu ievads. Nolādēts. [VIDEO PLAYBACK] -Cars-- DAVID Malan: Protams, YouTube, it's-- - --the Gudrākie rakstzīmes Ātrās un negants filmas. Šonedēļ, vācu autoražotājs Volkswagen atradās vidū uz skandālu potenciāli noziedzīgi proporcijas. -Volkswagen Ir spirdzinošs miljardiem ar naudas sodu, iespējams apsūdzību krimināllietā tās vadītāji, kā uzņēmums atvainojas par takelāžas 11 miljonus automašīnu, lai palīdzētu pārspēt emisiju testus. -Certain Dīzeļa modeļi tika izstrādāti ar sarežģītu programmatūru, kas Lietotas informācija, ieskaitot pozīciju stūres rata un transportlīdzekļu ātrumu, lai noteiktu automašīna bija veikta emisijas testēšanu. Saskaņā ar šo apstākli, dzinējs samazinātu toksisko emisiju. Bet automašīna tika savienoti apiet ka tad, kad tas tika brauc. Emisijas palielinājās 10 līdz 40 reizes virs pieņemamam EPN līmenim. -Wow, 10 līdz 40 reizes ir lielāks nekā EPN atļauj. Tas ir ļaunākais Volkswagen ir kādreiz darīts, ir kaut kas jūs varētu teikt, ja jūs nekad nav dzirdējuši par Otrā pasaules kara. Bet varbūt visdrošākais zīme kā daudz problēmu Volkswagen ir, ir tas, ka cilvēki ļoti top ir atkāpās. CEO atkāpās trešdien pēc šifrēšanas darīt pārbaudot bojājumus, sakot, viņš bija bezgalīgi žēl, kas izklausījās lieliski, līdz tas izrādījās viņš bija tikai 10% žēl bet bija savienoti muti mākslīgi uzpūst savu sorriness. Un tikmēr, Volkswagen ASV Galvenais bija atvainošanos no viņa paša. -Ļaujiet S būtu skaidrība par to, mūsu uzņēmums bija negodīgs. Un manā vācu vārdiem, mēs ir pilnīgi ieskrūvē augšu. -Yeah, Bet pilnīgi ieskrūvē up nav vācu darbi. Un vācu valoda ir daudzas skaistas frāzes aprakstīt situācijas, tāpat kā tas, piemēram, [Vācijas], kas nozīmē aptuveni, skumjas, kas nāk no uzņēmējdarbību saistītās meliem, vai [VĀCU], kas nozīmē kā kauninātu ones tēvu, iesaistot mākoņi benzīna. Tā ir skaista valoda. Tas tikai buras off mēli. Un, starp citu, bet man ir atvainošanās var būt skanēja patiesi, tas ir vērts atzīmēt, viņš runā oficiālā atklāšana puse par 2016 Volkswagen Passat, kas nozīmē, ka tuvākajā laikā pēc sakot žēl, viņš teica. -Thank Jums ļoti daudz nāk. Izbaudiet vakaru. Līdz nākamā ir Lenny Kravitz. [SKAN MŪZIKA] -OK, OK, beidzot savu atvainošanās ar up blakus Lenny Kravitz nav kliegt prātīgs nožēlošana. Tā kliedz, mēs jautājām Bon Jovi, un viņš teica nē. Volkswagen zīmols ir smagi bojāta. Un godīgi sakot, savu jauno ad kampaņa nav precīzi palīdzēt. - [Vācijas], mēs Volkswagen gribētu atvainoties par maldinot jums ar mūsu transportlīdzekļiem. [END PLAYBACK] DAVID Malan: Tātad tas bija aplinkus of-- sorry-- tas bija aplinkus no ieviešot būtiska problēma programmatūras, kas ir, kas jums nepieciešams, lai noteiktu konkrētus nosacījumus. Un tāpēc jautājums pie rokas šeit ir, kā tas auto potenciāli, kā īsteno programmatūru šie programmētāji, atklāt, ka tas tiešām ir pārbaudīta? Tātad, lai būtu super skaidrs, ko viņi dara bija, vidē, kur programmētāji sapratu automašīna tika pārbaudīts, viņi kaut kā auto izdala mazāk emisiju, mazāk emisijas, tāpēc mazāk toksiski izgarojumi un tādas. Bet, kad tas ir normāli braucot pa ceļu, tas tikai izdala tik daudz piesārņojums, jo tā vēlējās. Tātad, kā mēs varētu rakstīt pseudocode šo algoritmu? Kā mēs varētu rakstīt pseudocode par programmatūru, kas darbojas auto? Es domāju, īsumā, tā vārīties uz leju, lai kaut kas līdzīgs šim. ja tiek pārbaudīta, izdala mazāk. cits emitē vairāk. Bet tas ir mazliet pārāk augsts līmenis, vai ne? Mēģināsim nirt, ko tas ieguve tiek pārbaudīta līdzekļus. Citiem vārdiem sakot, pat ja jūs zināt neko par automašīnām, kāda veida jautājumiem varētu jūs lūgt, lai noteiktu, vai jūs tiek pārbaudīta, ja tu esi auto? Kādas īpašības varētu būt iesniegt ja automašīna tiek pārbaudīta? Mērķauditorija: Testēšanas aparatūra. DAVID Malan: Testēšanas aparatūra. Tātad, ja testēšanas iekārtas tuvumā, tad izdala mazāk. Lai es varētu iedomāties īstenošanai ka ar kādu kameru vai atklāt to, kas ir ap jums. Un ļaujiet man ieteikt, ka vienkārši jūtas pārāk sarežģīti tiešām ir papildu aparatūra tieši šim nolūkam. Mērķauditorija: Ja tu esi park, ja jūsu pārsegs ir atvērts. DAVID Malan: In parkā vai pārsegs atvērts, tā ka ir labi. Mērķauditorija: Un auto darbojas. DAVID Malan: Tātad tas ir nedaudz vairāk concrete-- un auto darbojas. Tātad tas būtu konjunkcija daži atšķirīgi apstākļi, ja Jums gribas. Tātad, ja automašīna ir parkā, un pat lai gan tas ir ļoti mehāniska lieta parasti, es varētu iedomāties rakstīšanas programmatūru, it īpaši tāpēc, ka tur ir bieži gaisma tur šajās dienās, Es varētu iedomāties tur ir programmatūru, kas var vaicājumu pārveidotājs vai ko ne, jūs parkā, ir jūs disku, jūs atpakaļgaitā. Un es varu saņemt atpakaļ atbilde, ka ir vai nu jā vai nav uz tiem jautājumiem veidu. Un tā es varētu arī droši vien atbildētu jautājums, piemēram, ir pārsegs atvērts. Varbūt, tur ir sava veida sensoru kas vai nu dod man atpakaļ 1 vai 0, patiess vai nepatiess, motora pārsegs ir atvērts. Un tad auto darbojas, es varētu atklāt ka kaut kā caur kādu mehānismu? Tāpat, auto darbojas, es varētu atklāt, ka tas ir ieslēgts, Es varētu atklāt kaut kā ka auto pārvietojas? Mērķauditorija: RPMs. DAVID Malan: Jā, tāpēc tur ir vienmēr, ka adata, ka stāsta, cik daudz apgriezieniem brīža riteņi piedzīvo. Un tā es varētu apskatīt to. Un, ja tas nav 0, ka, iespējams, nozīmē, ka auto pārvietojas. Bet mums ir jābūt maz tur uzmanīgi, because-- pieņemsim vienkāršot this-- ja mēs tikko teica, ja automašīna darbojas, mēs negribam tikai izdala mazāk, mēs vēlamies, ja automašīna darbojas un tas tiek pārbaudīts. Tātad ir daži citi sastāvdaļas, kas folks ir hipotēze, programmatūra dara, jo prombūtnē faktisko pirmkodu, jūs varat tikai sava veida secināt no fiziskās sekas auto par to, kas varētu iet uz zem kapuci programmatūru. Tātad, ja auto darbojas un varbūt, teiksim, aizmugurējiem riteņiem nav pārvietojas, tas varētu liecināt par sava veida tests? Ko es hinting pie šeit? Jā, varbūt, tas ir uz vienu no šīm rullīšu lietām, kur tāpat riteņiem vēršas priekšā vai aizmugurē, atkarībā no tā, vai tas ir priekšējais ritenis vai aizmugures piedziņa, tāpēc puse no riteņiem virzās, bet pārējie divi nav, kas ir dīvaini situācija reālajā pasaulē. Ja jūs braukšanas uz ceļu, kas nedrīkst notikt. Bet, ja tu esi noliktavā uz kādu no rullīšu sistēmu, kas patiešām varētu notikt. Es domāju, folks arī ierosināja, ka varbūt, ja automašīna darbojas un stūres ritenis nav kustīgu, ka pārāk varētu būt signāls, jo tas ir saprātīgi kā uzreiz uz ceļa. Bet pat tad, cilvēka, iespējams, pārvietojot to mazliet vai protams vairāk nekā dažām sekundēm. Vai gaitā minūte, izredzes ir tas nav būs orientēta uz tieši tas pats amats. Tātad, citiem vārdiem sakot, mēs var veikt substraction, Vai jums ir pārbaudīts, un nojauktu šo funkcionalitāti šajās komponentu sastāvdaļām. Un tas ir patiesi, ko Volkswagen ir inženieri kaut kā darīja. Viņi rakstīja programmatūru apzināti atklāt, ja automobilis tiek pārbaudīts, Tāpēc izdala mazāk, cits izstarot parastajā veidā. Un problēma šeit, pārāk, ir tas, ka programmatūra nav kaut ko jūs tiešām var redzēt, ja vien Jums ir tā saukto pirmkodu. Tātad tur ir divu veidu code-- vismaz divu dažādu veidu koda pasaulē. Tur ir kaut kas ko sauc avots kods, kas nav atšķirībā ko mēs esam rakstiski, pirmkodu. Tas ir pirmkodu rakstīts valoda sauc pseudocode, kas ir tikai kaut angļu līdzīgu. Nav formāla definīcija par to. Bet C un Java, C ++, tie ir visas oficiālās valodas, ka kad jūs rakstīt to, kas jums ir ir teksta fails, kas satur pirmkodu. Bet tur ir arī kaut kas pasaule sauc mašīnu kodu. Un mašīnu kodu, diemžēl, ir tikai 0 un 1 s. Tātad mašīna kods ir tas, ko mašīnas saprast, protams. Pirmkods ir tas, kas cilvēkiem saprast. Un vispār, bet ne vienmēr, ir programma ka programmētājs izmanto, kas ņem avots kodu un pārvērš to mašīnu kodu. Un šī programma ir parasti sauc par kompilatoru. Tātad jūsu ieguldījums ir pirmkods, Jūsu rezultāts ir mašīnu kodu, un kompilators ir gabals programmatūra, kas dara šo procesu. Tātad tas faktiski kartes labi, lai mūsu ieejas, algoritmi, izejas. Bet tas ir ļoti specifisks iemiesojums no tā, kas ir teikt, ka, pat tad, ja jums pieder viens no Volkswagen s automašīnas, kas ir vainīgs tas, tas nav kā jūs varat vienkārši atvērt kapuce vai atvērt lietotāja rokasgrāmatu vai meklēt pie pirmkodu, jo ar laiku tas sasniedz savu automašīnu jūsu piebraucamais ceļš, tas jau ir bijis pārvērš 0 un 1 s. Un tas ir ļoti grūti, pat neiespējami, bet ļoti grūti salasīt daudz neko no tikai apskatot pamatā 0 un +1. Tātad jūs varat skaitlis tas, galu galā, ja jūs saprotat, cik mašīnu operates-- Intel inside-- ja jūs saprotat Intel arhitektūru, bet tas ir ļoti laikietilpīgs. Un pat tur, jūs varētu nevarēs redzēt visu ka kods faktiski var darīt. Kādi jautājumi par šo vai šo veida procesu kopumā? Un patiesībā, mēs varam saistīt šo diskusiju vakardienas diskusijas par Apple. Tas arī ir iemesls, kāpēc FBI var ne tikai iet un meklēt aizdomās turētā tālruni un atrast līnijas kodu, instance, kas ļautu piekļuves kodu vai dod iespēju šai 80 milisekunžu kavēšanās. Jo ar laiku tas ir par Fellow iPhone, tas jau ir bijis pārvērš 0 un 1 s. Nu, pieņemsim pauze šeit mūsu apskatīt skaitļošanas domāšanu. Kāpēc mēs 15 minūšu pārtraukumu. Un, kad mēs atgriežamies, mēs ieskatieties programmēšana sevi un sākt karti kādu Šo augsta līmeņa koncepcijām faktiska, ja jautrs, programmēšanas valoda.