DAVID MALAN: Welcome back, mindenki. Szóval tegnap, akkor emlékeztetni arra, hogy összpontosítottunk ezek a témák itt. Tehát volt négy átfogó topics-- biztonság, és a társadalom számára; internetes technológiák; felhő alapú számítástechnika; és végül, webfejlesztés. Volt valaki van sávszélesség vagy az idő nézni egy kicsit John Oliver múlt éjjel? Ez valójában elég mulatságos, ha nem egy kicsit ijesztő. Bármilyen kérdésre semmit csináltunk tegnap? Bármilyen felvilágosítást? Bármilyen kérdése, hogy azt szeretné, hogy Biztos, hogy érintse meg a mai valamilyen formában? Így tiszta lappal. Tehát mi napirenden ma? Szóval azt hittem, hogy kezdődik ma egy pillantást, mi általában ismert számítási thinking-- at kockázatának leegyszerűsítik, gondolkodás mint egy számítógép, esetleg gondolkodik, mint egy mérnök, és megpróbálta elindítani a megszervezni a gondolatok vagy, hogy kapsz egy jobb képet mi részt ténylegesen parancsoló egy számítógépet, amit útján programozás. És mi tartja egy szép magas szintű, elég sok angol, de próbáld meg használni a megszokott példákat hivatalossá hogyan akkor megy a problémák megoldásához. És mi lesz újra néhány CS témák, mint absztrakció, lépett fel egy pár alkalommal tegnap, algoritmusok, majd ábrázolás. És ez az, ahol elkezdjük Ma csak egy pillanatra. Aztán megnézzük programozás. Majd megnézzük néhány alapvető konstrukciók amellyel ismerős lehet és talán még talál magától értetődő. Megnézzük, sőt, egy mintaprogramozás környezet, ami rendkívül jól megközelíthető, nagyon játékos, és valóban a célzott korosztály 12-ig. Mi lesz eltölteni néhány percet ott majd a dolgokat, hogy az alacsonyabb szintű és valóban beszélni néhány Az algoritmusok és adatszerkezetek, hogy úgy mondjam, hogy programozók jellemzően a problémák megoldása sokkal hatékonyan, mint ti lesz képes megtenni anélkül, hogy őket teljesen. Majd ebéd után vessünk egy pillantást A technológia stack, ami csak divatos szóval gyűjtemények technológiák hogy lehet használni, hogy megoldani a problémát. És fogunk beszélni az ábécé leves nyelvek léteznek today-- A Java és Python és C ++ és a PHP és Ruby és mindenféle más dolog. Majd nézd meg röviden A tervezési minták. Programozók, az idő múlásával, Van elfogadott módszerek hogy hajlamosak, hogy segítsen nekik megoldani a problémákat könnyebben. Amikor elkezdi látni magad írás ugyanolyan kódot újra és újra, emberek formálissá tenné e ismétlés és tulajdonítja neveket nekik majd használja őket, és támogassuk őket, végül. És fogunk beszélni egy kicsit a mobil stratégiák, mint amit jelent valójában hogy egy mobil alkalmazás, vagy egy mobil weboldal. Csinálod az Android? Csinálod az iOS? Csinálod mind e? És mi a kompromisszum? És végül, elvisszük egy pillantást web programozás, amely gyűjtőfogalom valóban leírja bármikor írsz szoftver, amely azt jelentette, hogy fut az interneten, akár telefonokon vagy asztali vagy laptop. Elvisszük egy rövid pillantást adatbázisok és a tervezési abban, ha csak azért, mert szinte minden Érdekes webalapú alkalmazás Ezekben a napokban van valamilyen adatbázisban. Ellenkező esetben csak statikus tartalmat. És egy adatbázis lehetővé teszi, hogy idővel változik, hogy magát vagy a felhasználóktól. És mi úgy hogyan menne tervezésével az adatbázis és az a fajta zsargon hogy jöhet létre egy mérnök vita egy fehér tábla ha valóban a végrehajtási egy alkalmazást az első alkalommal. Majd röviden beszélj API, hasznos szolgáltatások amelyek segítségével állni a vállán mások, hogy a vállalatok vagy magánszemélyek, és oldja meg a saját problémáit gyorsabban. És aztán megnedvesít talán egy kicsit a JavaScript, egy programozási nyelv, ami használt mind a böngészők ezekben a napokban, hanem szerverekben. És talán, fogunk újra, az idő megengedi, néhány gyakorlati web dolgokat mi tegnap és integrálja a két előtt együtt tárgyalunk. Tehát hogy-- mi ahead-- van Hiányzott valami, amit Szeretnénk, hogy megbizonyosodjon arról írjunk és érintse meg a ponton. Ha ez jut eszembe, hozza fel nemsokára. De miért nem kezdjük a nézd számítási gondolkodás. És hadd javasoljuk, hogy számítási gondolkodás, ismét fajta magas szintű leírást amit egy számítógép tudós lehet csinálni. És valóban, kezdjük három összetevő Lehet menni számítási gondolkodás. Ez csak az egyik módja, hogy bemutatnánk. Mi minden bizonnyal meghatározza Ez mindenesetre számos módon. De hadd javasol, kedvéért a Ma, hogy a világ problémáit, a világ összes problémáit, amikor megkereste egy számítógép tudós lehetett tekinthetjük, mit fogunk hívás bemenet, amely szükség van, hogy táplálják be, mit fogunk hívni algoritmusok, amelyek aztán hozam kimenettel. Más szavakkal, a teljes világ problémamegoldó I követelés lehet lepárlással E három összetevő. Szóval mit jelent bemenet? Bemenetek csak amit te átadta a megoldása érdekében. Például, itt van Egy régi iskolai probléma. Ha van egy telefonkönyv itt Azt akarom nézni valamit bele, ez az én bemenet. Van 1000, vagy úgy oldalak a telefonkönyvben. Ez a bemenet az én problémám. És azt akarom, hogy talál valami mint Mike Smith, így egy barátom akinek a neve és a szám remélhetőleg a címjegyzéket. Ez előtt a nap sejt telefonok, így nem tudok csak keressen rá. Szóval meg kell csinálni a régi iskola és a ténylegesen keresés ezek a bemenetek néhány választ. És ez a válasz csak megy hogy hívják a kimenet. Tehát a bemenet a telefonkönyvben. Az algoritmus bármilyen halmaza lépések azt használja, hogy megtalálja Mike Smith. A kimenet pedig remélhetőleg Mike Smith telefonszámát. És ez akkor lenne csak képviselője legtöbb olyan problémát hogy a te kézzel bemenet és szeretné produkálni. Tehát mielőtt tartjuk a folyamat amellyel meg tudjuk oldani ezt a problémát, megtalálása Mike Smith és valami hasonló, nézzük meg az első és a A last-- bemenettel és kimenettel. Fizikailag, természetesen, a bemeneti itt van egy csomó papír összeragasztva formájában egy telefonkönyvet. De a számítógépek, a laptopok course-- és asztali számítógépek és még telefonok ezek days-- ezek elektronikus eszközök. És a végén a nap, mi Az egyetlen input a számítógépen? Nos, ez valami hasonló ez tápkábelt itt. Azt dugja be a fal, és Kapok egy elektronok áramlását, amely lehetővé teszi számomra, hogy futtatni a gépen. Vagy talán ezek az elektronok készítette útján a telep. De a végén a nap, ez Az egyetlen dolog, ami az én laptop. És így sokkal érdekesebb cucc végül jön ki, hogy a útján a nyomtató vagy a képernyő vagy audially vagy hasonlók. Tehát ha minden van, mint a mi alapvető bemeneti számítógéphez villany, így csak elektronok haladnak, és vagy ki, és így hogyan tudjuk használni, hogy a bemeneti hogy valóban képviselje információt? Más szóval, hogyan jutunk egy egyszerű áramlását a villamos energia a képviselő tényleges számok vagy betűk tényleges vagy tényleges kép a képernyőn vagy tényleges filmek vagy e-mail vagy bármilyen számú ilyen magasabb szintű fogalmak, ha úgy tetszik, hogy a A nap végén valahogy kell tárolni ebben elektronikus mechanikus eszköz kizárólag az egyszerű ingredients-- elektronok jönnek ki és? Nagyon úgy tűnik, hogy a a legegyszerűbb formában, az egyetlen fajta államok Van az én világom, így hogy speak-- feltételek én world-- az vagy Van elektronok áramlása, villany folyó, vagy én nem-- így tovább, le. És lássuk hivatalossá be és ki, mint egy számítógép tudós talán, csak 1: 0. Nézzük csak leírtam néhány önkényes de szép számban hozzá. 1 azt jelenti, a 0 azt jelenti ki. Vagy talán azt is ezt tekinti igaz úton, és hamis úton. Te is nem fekete és a fehér vagy piros és kék. Csak azt kell két olyan jellemző. És egy számítógép tudós általában csak a 0 és az 1. Tehát, ha ez a helyzet, én csak ábécé van, amely 0 és 1-es, hogyan tudnám esetleg kap, hogy még a szám 2. a számítógép, nem beszélve a 3-as szám vagy egy betűvel vagy egy kép vagy film? Hogyan fajta bootstrap magunkat az alapelv 0 és 1-es és a ténylegesen képviselnek valami érdekes? Nos, mondjuk, hogy a szóban forgó tartásba egy pillanatra és úgy valami remélhetőleg ismerős, akkor is, ha nem igazán gondoltam azt bármilyen részletesen 10, 20, 30, 40, 50 Több éve. Ez az, amit? Hogyan kell kiejteni, hogy? Nem beugratós kérdés. A szám, de mi ez? 1, 2, 3, vagy 123. És tetszett, hogy azt mondtad 1, 2, 3, mert ez az egyik módja a megtekintésére is. 1, 2, 3, ez egy szekvencia A három szimbólum. Ez kép, hogy mi most szó. És ha valami olvasni őket együtt, egy tipikus emberi angol mondaná 123. És ez egyfajta magasabb szintű fogalom, Olyan, mint egy ésszerű nagy szám. De hogyan jutunk el oda? Nos, lehet, hogy egy darabig, mivel amit gondolt, mint ez, de hát az én nap, fajta tanultam mint az 1-oszlop, a 10-es oszlop, és a 100-oszlop. Így például Lakisa mondja, ez 1, 2, 3, de ez is 123. De hogyan jutunk el az előbbi, hogy az utóbbit? Nos, akkor általában itt A 100-oszlop, van egy 1. Tehát ez, mintha azt mondanánk 100-szor 1. És akkor a 10-es oszlop, van 2. Tehát ez, mintha azt mondanánk 10-szer 2. Az 1-es oszlop, van 3. Tehát ez, mintha azt mondanánk 1 alkalommal 3. És ha én hozzá ezek a dolgok együtt, ez, természetesen, 100 plusz 10 plusz 3. Ja, és ez az, amiért én kap ez magasabb szintű fogalma 123. Ez csak az alapvető matematikai, ahol ezek a szimbólum súlyok nekik, ha lesz, helykitöltő vagy oszlop értékeit. És ha egyszer szaporodnak mindent , én meg ezt a számot. Tehát hányan tudják, hogyan kell beszélni binary-- 0 és 1's-- mint egy számítógép? OK, tökéletes, senki sem, vagy sem azt hiszed. De azt állítod, tényleg tudja ezt már. Csak meg kell egyfajta csípés mentális modell egy kicsit. De a folyamat pontosan ugyanaz. Hadd hagyjuk ezt ott és ehelyett húzza le ezt egy pillanatra. A világ a számítógépek, már csak 0 és 1-es. És így a dolog, ami fog változni, az mi? Nos, az én emberi világban, a tízes számrendszer december értelmében 10, Van hány számjegy áll a rendelkezésemre? 10, nem? 0-tól 9, természetesen. És ezért van az 10 helyébe, és a 100 helyett. Hol van, hogy jön? Nos, ez a 10 a 0. Ez 10 a 1, 10 hogy a hatalom a 2, és így tovább. Te csak ne megszorozzuk az oszlopok 10, elindulva mindössze 1 a jobb szélső itt. Így a világ számítógépek, ha csak Van binary-- bi jelentése 2-- vagy 0 és 1-es, csak tényleg kell változtatni az alapja, hogy a matematika. Más szóval, most csak van az 1-oszlop és the-- hol van ez a going-- a 2-es oszlop, A 4-es oszlop, és talán azon túl. Miert van az? Nos, ez a 2 0-edik hatványa. Ez 2: 1. Ez a 2 a 2, és így tovább. Tehát mivel itt van 1, 10-es, 100-es, 1000-es, 10000-es, 100.000-es, 1 millió, és így tovább, itt van 1, 2, 4, 8, 16, 32, 64. Te csak ne megszorozzuk 2-vel, helyett folyamatosan megszorozzuk 10. Tehát most, ha a cél a kéz, hogy képviselje számok, amelyek csak 0 és 1-es, nézzük meg, hogy hogyan juthatunk el oda. Ez, természetesen, a minta 0 0 0, de mi több koncepcionálisan ábrázol? Nos, 4-szer 0 és 2 alkalommal 0 plus 1 alkalommal 0 adjunk azoknak együtt. 4-szer 0, természetesen, 0, plusz 2 alkalommal 0, természetesen, 0 és 1 alkalommal 0 természetesen, 0. Tehát ah, ez képezi a szám, amit az emberek tudják, mint 0. Nos, nézzük, nagyon Gyorsan gyors előre. Ha én inkább nem képviselő 0 0 0, de csináljuk 1 0 1, hogy lehet, hogy hogyan Lakisa, korábban, csak azt mondani, hogy 1 0 1. De most, hogyan vesszük a magasabb szinten a szám mi emberek talán tudja? Tehát mi ez a szám? Ez 5, száma, mint tudjuk, 5. Nos, miért van ez? Nos, tudjuk valóban egyfajta séta módszeresen 4-szer 1, 2-szer 0, 1 alkalommal 1. Add ezek együtt, így ez 4 plusz 0 + 1. És ez valóban, 5. Így kezd egy kicsit unalmas most Ennek a számtani újra és újra. De a folyamat pontosan ugyanaz. Az egyetlen dolog, ami megváltozott világunkban az, hogy a oszlopok 1, 2, 4, 8, 16, és így tovább, ahelyett, hogy 1, 10, 100, 1000. És ez csak azért, mert mi van ábécé zsugorodott 0-tól 9, hogy csak 0-1. Tehát, mint egy kis játék itt, hogyan fog Ön képviseli a 7-es számú bináris? 0? Nos, 0, érted 0 0 0? Mondd újra, Karina. Tökéletes. Miert van az? Ez hatékonyan 4 + 2 + 1. Annyira jó. Hogyan jelentenek egy kis another-- szólnál 2. számú? Közel, de visszafelé. Szóval mi ez? 4 plusz 1, tehát ez ismét az 5. Tehát what's-- Sajnálom, Karina? 0 1 0. 0 1 0 lenne, 2, mert újra, még ha ez a fajta nem ugrik ki rád, Csak nem a matek. 4-szer 0, 0, 2 alkalommal 1 2, 1 alkalommal 0 0. Tehát ez a szám, mint tudjuk, 2. Mi a helyzet a 8-as szám? Hm? Jó. Tehát milyen kell egy helykitöltő. Szükségünk 1 0 0 0. És ez igaz a sort A régi iskola tízes számrendszerben. Hogyan képviseli a szám 1000? Nos, úgy tűnik, hogy fajta egy kemény folt, Ha kérdezni, hogy képviselje száma 1000, mert még ha adsz magadnak, mint 9 ilyen, ezek közül 9, 0 ezeknek, amely a legnagyobb szám van, akkor nem értettük, hogy 1000. Tehát, ha 1000, akkor csak meg kell egy másik pozíció, így csinálni 1 0 0 0, ergo a szám 1000. Tehát most, nézzük map ez a fajta fogalmi vita vissza hardver, ahol ismét a bemeneti éppen ez a kis elektromos kábel, elektromos áram jön és áramlik ki. És így, hogy fel kell térképezni innen oda, nos, mi valóban szükségünk van? Nos, akkor gondolom, hogy belsejében egy számítógép, egy csomó izzók, ha akarsz. Ők tényleg hívott tranzisztorok. És tranzisztorok csak kapcsolók hogy lehet akár be vagy ki. Így gondolja a tranzisztor, ami a amely lehetővé teszi a villamos energia áramlását és tranzisztort, ami ki a megállási villamos áramlik. És ahelyett, hogy fényforrások felett van, miért nem én ezt a fajta Az új iskola stílusát. Tehát ez lehet egy 1, egy zseblámpa hogy az csak alig mégis. És ez lehet 0, és most le. Tehát ezzel a fizikai eszköz, I Most már képviselik a bináris rendszer. Csak kell a két állam. Nem számít, milyen színes ez, vagy mi ez. Csak az számít, hogy én egy állam és egy másik állam ki. Tehát használ a telefon itt, hogyan tudom számát jelenti, mint tudjuk, 0? Vagy tegye egyenértékűen mi szám vagyok képviselő most? 0, mert az eszköz ki van kapcsolva. És ha én ezt? És most, hogyan tudom képviseli a 2-es szám? Tudok kölcsön a telefont Itt, ahogy azt tegnap? Tehát lássuk, így ha azt akarom, hogy képviselje A 2-es szám, ez a szám 2? Nem. Mi több vagyok én véletlenül képviselő itt? Ez tulajdonképpen a 3-as szám. Tehát melyiket szeretnék kikapcsolni? A fekete telefon or-- is, ha they're-- fekete telefon vagy a fehér telefon? A fehér telefon. Szóval ha ez a funkció kikapcsolható és mi vonal fel ide, van egy 1 a 2. helyét és 0 az 1-es helyen. És így vagyok most ami a 2 szám. És ez persze, lenne a szám 3, mert most mindkét lámpa vannak. És én meg itt, de magától értetődik, ha azt akarjuk, hogy képviselje a 4-es vagy 8-as vagy magasabb, Megyek több kell telefonok. De ez minden, ami folyik. Tehát, ha valaha is hallottam, hogy belsejében egy-- köszönöm you-- számítógép van millió tranzisztort, ami csak több millió apró kapcsolók. És ők nem könnyű izzók kapcsolja be és ki, de ezek sem teszik a villamos folyni valahol, vagy megállítani. És ezért van az a két states-- be- vagy kikapcsolása, vagy ki. Tehát úgy tűnik, most hogy ezt a képességet hogy képviselje ezt a koncepciót, hogy a szeretnénk a tényleges hardver. De mi most az a képesség, hogy képviselje számok tűnik. Szóval hogyan megy körülbelül képviselő az ábécé betűit, amely Olyan, mintha a következő fajta funkció szeretne hozzáadni egy modern számítógép ha egyszer már a számokat? És valóban, ha belegondolunk azt, történelmileg, számítógépek vezették be igazán szolgálni a számológépek numerikusan. De természetesen ezek nap, mégis sokkal több. Még amikor elindítja, akkor általában látni egy vagy több szót. Tehát hogyan képviselje szavakat, ha minden van, megint, villamosenergia-végén az nap, vagy azzal egyenértékű 0 és 1-es? Igen. Igen, úgy értem, azt a fajta volt tegnap valamilyen formában, ahol egy bizonyos ponton, Azt hiszem, önkényesen azt mondta, hogy ha azt akarjuk, hogy képviselje a A betű, meg tudnánk hívni, hogy egy 1. Ez volt összefüggésben a kriptográfia, ahol csak szükség van valamilyen kód, valamilyen feltérképezése. Így talán egy fogja képviselni, mint a 1, és B tagból 2, és Z fogja képviselni mint 26, például. És akkor az egyetlen kikötés az, hogy ha én vagyok kódolni fogja betűk én e-maileket vagy az én szöveges üzenetek a számok, akkor minden meg kell egyezniük, hogy használja a ugyanazt az egyezmények. És valóban, a világ tette, hogy pontosan. Van egy rendszer a világon úgynevezett ASCII, American Standard Code for Information Interchange, ami egyszerűen egy döntés néhány évvel ezelőtt, hogy az emberek tenni, hogy a úgy döntött, hogy egy fog egyenlő, nem 1, 2, és a 26, és így forth-- ez egy kis different-- de a 65., 66., 67.. És én majd húzza fel a ábra csak egy pillanatra. De ez önkényes. De ez nem számít hogy ez az önkényes. A világnak, hogy csak következetes. Most újabban van valami cifrább úgynevezett Unicode, mert a világ a fajta megvalósult, miután feltalálása számítógépek, hogy több van, mint a jól 256 szimbólumok a világon hogy érdemes, hogy képviselje, különösen akkor, ha bevezetésére Ázsiai nyelvek és más symbologies hogy több kell, mint te kifejezőkészség elfér a legkorábbi változata ezt a kódot, amely az úgynevezett ASCII. Tehát Unicode ténylegesen lehetővé teszi hogy használja tovább 0 és 2. Különösen tartod meghallgatása szó bájt a társadalomban, és még csak tegnap. És egy bájt, amit újra? Mi egy byte? Ez csak a 8 bitet. Tehát mit jelent ez valójában? Nos, ez azt jelenti, korábban, amikor mi voltunk beszélünk két- és én használ önkényesen három bit, amikor mi voltunk beszélünk binary-- az 1 helyét, A 2-es helyére, és a 4-es place-- is, bájt csak azt jelenti, hogy te beszélsz nem egységekben három, de négy, öt, hat, hét nyolc, ami számunkra 8 helyét, 16-es, 32-es, 64-es, és 128 a. Más szavakkal, egy kicsit még nem minden hogy hasznos mértékegység, mert olyan, mint egy pici darab információ, vagy ki. Így néhány évvel ezelőtt, A világ most úgy döntött, ez kicsit kényelmesebb beszélni szempontjából bájt, nyolc dolog egyszerre. És így így született fogalma a bájt. És így már nyolc bit van. És kiderül, túl, a hasonló okok miatt a világ határozott év ezelőtt, hogy képviselni betűnek, fogsz használni egység 8 bit. Tehát akkor is, ha nem szüksége, hogy sok, te Mindig fog használni 8 bitet jelentenek betűvel. És ez kényelmes, mert akkor, ha kap egy üzenetet, amely a 0 0 0 1 1 1 1 0, majd a másik 1 1 1 0 1 0 0 1, tehát ha kap 16 bit, a világ csak Feltételezzük, hogy az első 8 egyik levél és a második 8 másik levelet. Nem számít, hogy hány van. Csak az számít, hogy mindannyian következetes amikor mi értelmezésekor ezeket a biteket. És ez csak véletlen. Ez jelent valamit, de nem tettem tényleg úgy gondolja, hogy mit jelent. Tehát ez egy kis fehér hazugság. Eredetileg ASCII ténylegesen csak 7 bit. És a nyolcadik bit úgynevezett kiterjesztett ASCII. De a lényeg az, végső soron ugyanaz. A világ általában szabványosított 8 bit. Tehát ez úgy tűnik, hogy egy kicsit korlátozása, mert én csak képviselnek tőkét A, tőke B a tőke Z. De valóban nem, ha elmegyek az alábbiakra: van egy csomó források on-line, például, asciitable.com, ez a lesz egy kicsit nyomasztó az első. De majd rámutatni mi a fontos itt. Ez most történik, hogy be-- és én walk-- lássuk, ha elmegyek ide. Itt, a tízes oszlop, a szám 65. És a jobb oldali oszlopban levél karakter, Chr, a levél A. És akkor figyelmen kívül hagyja, mert most, mindent a közepén. Ez hexadecimális, nyolcas és egy HTML kódot. Ahhoz, hogy ezen az oldalon csak próbál dobni sok információt rád egyszerre. De mi érdekel a tizedes oszlop és a karakter oszlop. Tehát ez a logika, hogy mi a számot, hogy a világ úgy döntött képvisel kisbetűs egy? Ja, 97. És csak azért, hogy megzavarja potenciálisan kissé, mi a szám a világ döntött jelentené az 1-es szám? Igaz, mert we-- 49, úgy tűnik, Itt lent a bal alsó sarokban. Nos, mit értek ez alatt? Így kiderül, hogy számítógépes rendszerek, van általában egy alapvető különbség között egy számot, és egy karaktert. A szám a dolog, tanult felnövő amikor voltunk szuper fiatal az iskolában. Ez dolgot számolni. De egy karakter csak egy forma, egy írásjel, hogy úgy mondjam, a képernyőn. Most, mi emberek egyfajta látni valamit, ami úgy néz ki, mint ez. És mi azt mondjuk, ó, ez a szám 2. De nem, ez csak egy szimbólum, amely úgy néz ki, mint amit ismerünk a 2-es szám. És így van ez a alapvető különbséget a tényleges számokat és karaktereket. Ez egy szám. De általában, a összefüggésben egy számítógépet, Ha ehelyett látni valami ehhez hasonló quoted-- és nem mindig kell látni, idézett, de a kedvéért discussion-- ha látod idézőjelbe száma, ez most egy karaktert. Tehát ez a szám 2 alatt A motorháztető belsejében egy számítógép képviselve lennének mintával bitek számát jelenti 50 a táblázat szerint az interneten. Azonban, ha egy számítógép csak ezt látja ezt képviselve lennének a minta bit 0 0 0 0 0 0 1 0. Mivel ez a karakter lenne valóban képviseli as-- és most, Kaptam, hogy hiszem, egy kicsit harder-- így ez karaktert is képviselteti 0 0 1-- mit kell tennem itt? 0 0 1 1 0 0 1 0. Hogyan tudom ezt megtenni? Nos ez az a szám 50, ha szorozza meg végre ezeket az oszlopokat, ez a 2-es szám, és így ezért van ez a kettősség. És ez csak egy teaser most jellemzői hogy létezik a programozási nyelvek hogy mi lesz érinteni röviden később ma. Programozási nyelvek, van általában, de nem mindig, a dolgok hívja a különböző adattípusok. Más szavakkal, egy programmer-- amikor ő ír, programozó dönti milyen formátumban tárolja az ő adatait. Akkor sem tárolja az adatokat nyers számok, mint a 2-es szám. Vagy tárolhatja azokat húrok, vagy karaktersor hogy te általában kifejezni idézőjeleket a programozási nyelv. Akkor a dolgok called-- Majd leegyszerűsítik, és hívja őket igazi numbers-- így számok nem egész számok, mint a 2-es számú de a számok szeretem 4.56. Így valós számok is Van tizedes pontot, így ez egy másik alapvető darab adatokat egy számítógép. És akkor még más adattípusok is. Tehát ez csak egy teaser igazán a A legegyszerűbb tervezési döntések hogy a programozó talán hogy a motorháztető alatt. Tehát bármilyen kérdése csak még? Így próbáljuk tenni ez egy kicsit valóságos. Ez a hardver nem annyira használatban már. De a legtöbb ebben a teremben mindenki valószínűleg nőtt fel, és még mindig használja merevlemezek valamilyen módon. Annak ellenére, hogy a legtöbb a laptopok már nem Van működő eszközök, mint ez, helyett laptopok ma általánosan Van SSD meghajtók mozgó alkatrészek nélkül. És ez általában a drágább, sajnos, de egy kicsit gyorsabb és egy-- jól, de gyakran sokkal gyorsabb, amely az egyik oka. És azt is, hogy nem generál annyi hőt. Ez lehet kisebb, ezért általában egy nettó pozitív. De ez lehetővé teszi számunkra, hogy feltérképezze a kicsit konkrétabban mit beszélünk a 0 és 1 szinten most egy fizikai eszköz. Ez az egyik dolog, hogy beszéljek 0 és 1-es szempontjából én telefonon vagy elvont szempontjából A kapcsolók, hogy be és ki. De mi a helyzet a merevlemezek? Ebben a laptopok, ha van egy régebbi Egy, vagy az asztali számítógépen, vagy természetesen a szerverek ma, ahol van merevlemezek, amelyek terabájt hely, 4 terabájt hely, valamint mit jelent? A merevlemez-meghajtó 1 terabyte helyet eszközök van 1 billió bájtot belsejében valahogy, vagy azzal egyenértékű 8000000000000 bit benne. 1 TB-os lenne 8 terabits vagy 1000000000000 bitek azt jelenti, ha van egy nehéz meghajtó, akkor valahogy vagy más billió 0- és 1-es belsejébe. És ha csak megnézzük a önkényes képet a merevlemezen reprezentatív, ez az, amit egy kemény meghajtó tipikusan úgy néz ki, mint belülről. Ez is olyan, mint egy régi lemezjátszó de általában több rekordot belül, így hogy speak-- több tálak, ahogy ők nevezik, fém kerek lemezeket, majd egy kis olvasás, fej, hasonlóan egy régi lemezjátszó. És hogy olvasófej hátra- és oda, és valahogy így szól a biteket. És mi van ezeken a tálak, sőt bár mi, emberek nem látja őket, akár a valóságban, vagy ezen a képen, ott apró mágneses részecskék. És még, ha már hosszú elfelejtette, hogyan elektromos művek, mágneses részecske hogy számláz általában van egy északi és egy déli végén end-- így északi és déli. És így a világ most úgy döntött, néhány évvel ezelőtt , hogy ha egy mágneses jegyzőkönyv lényegében igazodik, mint ez, észak-déli, nevezzük, amely egy 1. Ha ez helyett észak-déli, hívjuk csak, hogy a 0. És így ha a a rendelkezésére áll egy billió apró mágneses particles-- és remélhetőleg hardver találékonyság annak érdekében, hogy a flip e körül mint látod fit--, ha azt szeretné, hogy jelentenek egy csomó 0-es, akkor Csak azt kell 8 mágneses részecskék egy vonalban, mint ez. És ha azt szeretnénk, hogy képviselje Nyolc 1-es, akkor csak szükség 8 mágneses részecskék igazítva háttal vissza, mint ez. Mit jelent a mágneses részecskék? Őszintén szólva, ennyi évvel később, a dolog, ami még eszembe jut ez a srác, ha nőtt fel ez a dolog. Ez egy little-- számára azok unfamiliar-- a kis gyermekkor játékszer Ez a szőrtelen férfi itt hogy mindezeket az apró kis fekete mágneses részecskéket, hogy jöjjön vele. És segítségével, hogy piros bot, ami csak egy mágnes, akkor egyfajta neki bajusz szemöldök vagy a haj vagy bármi rá. Tehát valójában, ha zoom -ban, például, ez a az a fajta játék játszhatsz Wooly Willy. És ez csak mondani, hogy ezek sokkal nagyobbak mágneses részecskéket mint valójában a merevlemezen, és jóval kevesebb mágneses részecskéket. De nézzük valóban látni akkor, ha van apró mágneses részecskék merevlemez, hogyan lehet ténylegesen használja ezeket, hogy képviselje az adatokat. [VIDEO LEJÁTSZÁS] -A Merevlemez, ahol a PC üzletek többsége állandó adat. Ehhez, az adatok utazik RAM mentén A szoftver jelzi, hogy elmondja a merevlemez, hogyan kell tárolni az adatokat. A merevlemez-meghajtó áramkörök lefordítani azokat jeleket feszültségingadozás. Ezek viszont ellenőrzik a merevlemez mozgó részre osztódik a kevés mozgó alkatrészek maradt a modern számítógép. Néhány a jelek vezérlésére egy motor, amely forog fémmel bevont tányérral. Adatai ténylegesen tárolt ilyen tálak. Más jelek mozgassa az író / olvasó fejek olvasni vagy írni az adatokat a tálak. Ez a gépezet olyan pontos hogy egy emberi hajszál csak nem is telnie fejek és fonó tányérral. Mégis, minden működik félelmetes sebességgel. [END LEJÁTSZÁS] És láthatjuk a farok végén a videó, ott általában több tányérral. És így, hogy olvasófej nem csak olvasni a tetején. Ez olyan, mint a három vagy négy vagy több olvasófej hogy mozog, mint ez, az adatok olvasását egyszerre. Tehát van egy csomó összetettsége és egyfajta időzítés ami részt vesz egy merevlemez. És a dolog forog tényleg rohadt gyors, így van egy csomó összetettsége. De nézzük nagyítás egy kicsit mélyebbre és hol vannak ezek a mágneses részecskéket és hogyan vagyunk egyre őket. [VIDEO LEJÁTSZÁS] -Let Azon szemügyre Most láttam lassított. Ha egy rövid impulzus villamos küldött az író / olvasó fej, átbillen egy kis elektromágneses egy töredéke a második. A mágnes teremt mező, amely megváltoztatja polaritásának egy apró, pici részét a fém részecskéket amely bevon minden egyes tálat felszínét. A minta sorozat ilyen apró feltöltött területek a lemezen jelentése egyes bit adat az számrendszer által használt számítógépek. Most, ha a jelenlegi küldött egy végig az író / olvasó fej, a terület egy meghatározott irányban polarizált. Ha az áram küldött az ellenkező irányba, a polarizációs megfordul. Hogyan lehet adatot a merevlemezről? Csak fordított a folyamatot. Tehát ez a szemcsék lemezt, hogy a jelenlegi Az író / olvasó fej mozog. Össze millió A mágnesezett szegmensek és van egy fájl. Most, a darab egyetlen fájl lehet szétszórva a meghajtó tálak, olyan, mint a rendetlenség A papírok az asztalon. Így egy speciális extra fájl tartja követni, ahol minden. Nem szeretném, ha volna valami hasonló? [END LEJÁTSZÁS] Tehát, hogy utalt ott, talán az, ebben a témában a tegnapi törlés. Ha töröl egy fájlt, tegnap azt mondtuk hogy a számítógép valójában nem mit, mikor húzza valami A Lomtár vagy kuka? Csak elfelejti. De a 0 és 1-es, a mágneses részecskéket úgy néz ki, mint a vörös és kék dolog van, vagy a karom van, még mindig ott vannak a merevlemezen. És így létezik software-- Norton Utilities és Yesteryear és más, modern software--, hogy csak átvizsgálja a teljes merevlemezt keresnek mindazoknak 0 és 1-es, mert Kiderült, hogy a file-formats-- Word dokumentumok, Excel fájlok, képek, video files-- mind bizonyos minták, amelyek közös közöttük. Minden videofájl lehet egy másik videó, de az első néhány bit általában ugyanaz. Vagy az utolsó néhány bit általában ugyanaz. És így nagy valószínűséggel, meg lehet keresni azokat a mintákat. És akkor is, ha a fájl már feledésbe merült, azt lehet mondani, nagy valószínűséggel, de ez úgy néz ki, mint egy Word dokumentumot, lets visszaigényelni és un-elfelejti, ha akarsz. És ez az, hogyan lehet visszaállítani adatokat, amelyek a sem volt véletlen törölt vagy törölt, vagy szándékosan törölve bármilyen célra. Ezzel szemben, a biztonságos törlés mit csinál keretében egy kép, mint ez? Pontosan teszi őket véletlenszerűen. Tehát ez a fajta kirakja le őket, egy részük fel, hagy egy részük változatlan, és általában teszi véletlenszerű zajt belőle, vagy talán éppen teszi az összes őket 0-k vagy mindet 1-eken. És még ez is általában dörzsölje az adatokat el. Szóval most vissza a probléma számítógépes gondolkodás, amely szerint megvan a képlet bemeneteket. És algoritmusok ad Ön kimenetek végül. Arra koncentrálunk most be- és kimenetek, mert most, igény van egy módja képviselő be- és kimenetek. Mi csak fog használni bináris. És nem számít, mi szeretnénk, hogy képviselje a mai napon, hogy ez egy szám vagy egy levelet vagy ezer ezek a telefonkönyvben vagy képek vagy filmek, a végén A nap, minden 0 és 1-es. És azt állítják, hogy bár ez a egy szuper egyszerű világban csak a 0- és 1-es, meg tudjuk építeni magunkat. És láttunk egy példát hogy a levelek eddig. Úgyhogy most inkább ezen középső összetevő, egy algoritmus. És térjünk vissza erre Például Mike Smith. Tehát ebben a telefonkönyv, ami igaz, nem kell annyi már, van egy megoldandó probléma. Azt akarjuk, hogy talál valakit, mint Mike Smith. És mi lenne tennem, hogy megtalálja Mike? Nos, talán csak nyissa meg ezt könyv, kezdje meg az első oldalon, és észre, ó, én az A szakaszban. Mike nincs ott. Kell az S részben Smith. Szóval, csak tartsa fordult egy oldalt egy időben. Hadd úgy, mintha ez az egész fehér oldalakat, és nem sárga lapok, mert nem fogunk találni Mike a sárga lapok egyébként. De én vagyok a fehér oldalakat. És most én vagyok a B részben. Még mindig nem találta meg. Úgyhogy ne fordult egy oldalt egy időben. Ez egy algoritmus. Ez egy sor utasítást megoldására valamilyen probléma. Más szavakkal, megnézi oldal, ha Mike nem rajta, lapozáshoz, és ismétlések újra és újra és újra, ideálisan néz le, ahogy csinálod. Tehát ez az algoritmus, ezt a folyamatot, igaz? Sajnálom. Nem, hallani néhány nos. OK, de is-- igen, ez biztosan unalmas. Mint, itt leszünk egész nap, ha folyamatosan keresi Mike ezzel a sebességgel. De hadd azt állítják, hogy ez helyes. Hülyeség, de ez helyes. Végén a nap, amíg ez is előfordulhat vegye, azt fogja találni, Mike, ha ő is ott és én figyeltem. És én végül eléri az oldalon. És ha túl messzire, ha Jutok el a T-alakú, akkor én is kicsit optimalizálni és csak azt mondják, hm, minden kész. Még csak nem is kell, hogy a hulladék ideje megy a Z. De ez egy nagyon lineáris megközelítés, ha lesz egy nagyon egyfajta balról-jobbra megközelítés, egy egyenes vonal. És helyes, de lassú. Így emlékszem általános iskolában sort Az optimalizálási egy első osztályos, ahol megtanultam, hogyan kell számolni sem által is, de által twos-- SO 2, 4, 6. Ez egy, sokkal nehezebb csinálni, de elméletileg ez faster-- 8, 10, 12, 14, és így tovább. Hogy van ez algoritmus? Ez hatékonyabb? Ez gyorsabb? KÖZÖNSÉG: Ez hatékony. DAVID MALAN: Igen, tehát ez def-- ez szó kétszer olyan gyors, feltételezve, Nem kap gáncsot az ujjaimmal. Ez kétszer olyan gyors, mert Én fordult át két oldalt egyszerre egy helyett, de ez potenciálisan helyes, mert miért? KÖZÖNSÉG: Te kihagy néhány. DAVID MALAN: Jobb, mi van, ha Mike történik kell sandwiched-- talán, ha én később a telefonkönyvben, Mike történetesen szendvics között a két oldalt, és én csak vakon hagyja rajta. Tehát szükségünk van egy kis fix ott. Egyszer nyomja meg a T-alakú, I nem lehet csak nyugodtan mondhatom, nem találtunk Mike Smith. Azt valószínűleg megduplázódik vissza. Vagy Valójában, ha elérem, hogy valaki nevű S-N helyett S-M Smith, Azonnal tudtam megduplázódik vissza, mert talán volt az előző oldalon. De nem kell a kettős vissza eddig. Elméletileg, ha csinálom a megfelelő idő, csak menjen vissza egy oldalt. Tehát ez hozzátéve, csak egy plusz lépést. Úgyhogy ment kétszer olyan gyors, de ez nekem egy külön oldal. De ez olyan, mint a nettó nyeremény. De ez nem így a legtöbb ember ez a szoba lenne megoldani ezt a problémát. Mi lenne a tipikus ember, talán egy Néhány évvel ezelőtt nem, hogy megtalálja Mike Smith? Ja, nem talált Mike. Mit tegyek? Tehát egy kicsit közelebb, de én tudom-- ami igaz egy telefonkönyvet? KÖZÖNSÉG: Ez szekvenciális. DAVID MALAN: Ez szekvenciális. Ez ábécé. És így, ha én vagyok az M rész, Mike egyértelműen a jobb, Azt lehet szó szakadás a problémát half-- ez általában könnyebb, mint hogy-- szakadás A probléma felét, és dobja el, így most van egy probléma, ami nem 1000 pages--, hogy nehéz volt, mert azt hiszem, valóban elszakadt A telefonkönyv ezt time-- nem 1000 oldal, de 500. Tehát a probléma szó fele akkora. És ez elég meggyőző, mert A korábbi algoritmusok verzió Az 1. és 2., én csak, hogy a probléma egy oldalon kisebb, két oldalt kisebb egy időben. Mivel most, sikerült 500 oldalak kisebb egyszerre. OK, így most, Karim javasolja hogy menjen a jobb felét. Így fogok menni durván a középső, vagy oda. És ha ezt tettem matematikailag, Mehetek jogot, hogy a közepén. És most, látom, ó, Én a T-alakú. Igazából túl messzire megy. De én megint szakadás a probléma félbe, dobd el. És a bytes nem olyan nagy. Ez csak, mi, 256 oldal vagy 250 oldalak, vagy oda most. De ez még mindig így több mint egy oldal, vagy két oldalt. És így most megyek nagyjából a közepén. Ó, én nem megy eléggé most. Tehát ismétlem, ismétlés, ismétlés, ismételjük, amíg én remélhetőleg maradt csak egy oldalon. Annak érdekében, hogy felhívja a kérdés, ha én kezdődött nagyjából 1000 oldalas, hány lépést tett ez vigyél A 1-es verzió az én algoritmus? Nos, ha Mike az S szakasz, a legrosszabb esetben, hogy elég közel van a végén a ábécé. Tehát, ha a telefon könyv 1000 oldal, Megtalálom Mike belül 1000 oldalas, Adj vagy vedd el. Lehet, hogy ez, mint 800, vagy úgy, de ez elég közel 1000. Mivel a második algoritmus, hány lapozási maximálisan talán én megkövetelik, hogy megtalálja Mike Smith? Van 1000 oldal, de én csinál nekik kettesével. Rendben, tehát max mint 500ish, mert ha elmegyek az egész telefonkönyv, ekkor, tudom megállítani. De nem tudok lefaragni pár által Csak megállva a T-alakú. De ez a legrosszabb esetben 500 oldal. Tehát hányszor lehet osztani egy 1,00o oldalas telefonkönyvet ismét felére és újra és again-- származó 1000 500 a 250-125? Mennyi ideig, mielőtt elütöttem egy oldalon? Igen, ez körülbelül 10. Attól függően, hogy a kerekítés és ilyen, ez 10 oldal összesen be kell kapcsolni vagy telefonkönyvek kell szakadt. Szóval ez elég erős. Kezdtünk, 1000 oldalas probléma mindhárom ilyen történetet. De az első algoritmus, elvitt, legrosszabb esetben 1000 oldal fordul, hogy megtalálja Mike. Másodszor algoritmus, 500 oldalakon található Mike. Harmadszor algoritmus, 10 oldalakat találni Mike. És ez még erős, ha úgy gondolja, mintegy egyfajta ellentétes forgatókönyv. Tegyük fel, hogy a telefon társaság következő év talán egyesíti két város együtt, és a telefonkönyv hirtelen ez a vastag, e helyett, hogy a így 2000 oldal helyett 1000. Nos, az első algoritmus keres Mike Smith egy 2000 oldalas telefonkönyv, rosszabb esetben meg fog telni hány oldalt fordul jövőre? Telefonkönyv 2.000 oldal, so-- is, nem egy. Ha a telefonkönyv kétszer vastagabb a az első algoritmus, az első algoritmus, 2000, nem? A legrosszabb esetben, Mike tényleg közel a vége a könyv, így 2000 lapozás. Második algoritmus megy a kettesével, mint 1000 oldal. De mi a helyzet az én harmadik és a legutóbbi algoritmus? Ha a telefon cég megduplázza a oldalak száma 1000 és 2000, még hány van szüksége I szakadás a könyv fele találni Mike? KÖZÖNSÉG: Csak egy. DAVID MALAN: Csak még egy, mert az egyik oldalon szakadás, Én szó szerint osztja és uralkodj, ha úgy tetszik, hogy a probléma felét figyelembe egy hatalmas falatot belőle. És így ez egy példa hatékonyság és vitathatatlanul egy algoritmust amellyel mindannyian egyfajta ösztönösen ismerik. De ez csak a megfelelő mint a többi algoritmus azzal, hogy a csípés az a második algoritmus, de ez így sokkal hatékonyabb. És valóban, amit egy számítógép tudós, vagy pedig egy programozó, jellemzően csinálni írásakor kód próbálja kitalálni, Rendben, én nem akarom programot csak a helyes, Én is szeretnék, hogy legyen hatékony és a problémák megoldása is. Képzeld el, a valós világban, mint a Google indexeli, keresések mint oldalak milliárdjait, képzeld el, ha azok használt első algoritmust találni macskák között egymilliárd pages-- nézi Az első oldalon az adatbázisban, A második, a harmadik, csak keres egy macska, keres egy macska. Ez elég rohadt lassú tűnik. Ők is inkább használni valamit úgynevezett bináris keresés, amely nincs coincidence-- bi jelenti két, mi tartsa elosztjuk valami 2, a half-- tudták használni a bináris keresés és talán megtalálja a macskák még gyorsabban, vagy bármit is keres. És őszintén szólva, van még cifrább algoritmusok hogy nem sokkal több, mint elosztjuk a dolgokat fél annak érdekében, hogy az információk gyors. És fogunk beszélni egy kicsit azokról ebéd után ma. Tehát hadd próbálja képviselni ezt. Nem kell bemenni bármilyen matematikai vagy tényleges számokat. Beszélhetünk ez az elvont. De hadd javasolni, ha voltak, amelyek a vita most A mérnökök javasolja ezt algoritmus és próbál tenni számított döntés, mert talán a mérnök azt mondja, te mit tudok végre egy lineáris keresés, mint két perc alatt. Ez ilyen egyszerű. Bináris keresés nem olyan divatos, de ez megy, hogy nekem, mint 10 perc, így 5-ször olyan hosszú. Van egy kereskedelmi itt, még szempontjából eldönteni, hogy mi szoftvert írni. Írod az egyszerűbb algoritmus, ami csak elviszi két perc alatt? Vagy te több időt, 10 perc, írásban a galambász algoritmus? Hogyan döntik el, hogy milyen kérdés? Vagy lehet, hogy ez egy kicsit több igazi. Mondom a főnököm azt fog tartani nekem sem egy hét vagy 10 hét hogy hajtsák végre a szoftver ezen a módon, hogyan Mit, hogy melyik algoritmust zöld fény? Karim? Közönség: a közönség, azt hiszem. DAVID MALAN: A közönség. Mit jelent a közönség? KÖZÖNSÉG: Ha ez megy által használt felhasználó aki [hallható] felhasználók által [hallható]. De ha valami, amit csak csinál magának hogy elősegítse a probléma, [Hallható] gyorsabb. DAVID MALAN: Igen, ez a gyors és piszkos jó szó rá. Sőt, ha leírja sok időm a Grad iskolában, ahol sokszor, Írtam rossz kód tudatosan so-- legalábbis én így ésszerűsíteni it-- tudatosan úgy, mert bár írtam kódot hogy viszonylag lassú volt, hogy végre, Tudtam, hogy írni a kódját elég gyors, kiadások néhány perc alatt vagy órára, napra. És kiderült, én esetenként szükséges aludni. Tehát akkor is, ha a kód nem szükséges 8 órát is, valamint, hogy ez rendben van, Megyek aludni, amíg az alkalmazás fut. Tehát abban az időben, azt hittem, hogy ez nagyon okos, bár én nyilván eljutott a PhD nagyon lassan. De az ellenkezője, hogy az, hogy ha én író szoftver más emberek, akik számított több mint én, nos, amelynek várjanak 8 óra vissza a keresési eredményeket egyáltalán nem olyan meggyőző. És így több időt tölthet elöl, hogy írjon szoftver azaz hatékonyabb, mint a harmadik algoritmus, Valószínűleg kedvez felhasználók idővel. Tehát valójában attól felett mennyi idő ezek a költségek összeadódnak. Ha fog írni szoftvert használni egyszer, Valószínűleg akár meg is csinálni gyors és piszkos, mint mondják. Csak dobd össze. Ez kódot zavarba te, ez annyira rossz, de ez lesz a munkát helyesen, annak ellenére, hogy nem hatékony. Ezzel szemben, ha több időt töltenek valamit, hogy ez csak jobb. Majd amortizált idővel, hogy indulási költségek az idő Valószínűleg érdemes, ha állandóan optimalizálja a közös ügy. És valóban, ez a téma programozás, vagy a számítástechnika több általában megpróbálja optimalizálni nem a ritka eset de a közös case-- milyen műveletet fog történni újra és újra? Ha megy, hogy több milliárd A kereső felhasználók a honlapon, akkor valószínűleg költeni az extra héttel előre írásban jobb szoftver, így az összes felhasználó javára. Most próbáljuk megragadni ezt a kis képileg, de nem annyira számszerűen. Tehát itt csak egy régi iskola chart. És hadd mondjam, hogy ez az idő. És ez nem számít what-- valójában, nem, nem az idő. Tegyük fel, hogy a másik tengely. Tegyük fel, hogy ez az az idő, és ez a méret a probléma. És egy számítógép tudós Lehet, általában hívni ez csak n. n, mint a go-to változó, ahol n egy szám, n szám, és ez a számú bármilyen bemenet van. Tehát ebben az esetben, n jelentése az oldalak számát. Tehát lehet, hogy az 1000 Az eset már csak mondta. Tehát az idő lehet bármilyen mértékegységet. Lehet, hogy ez a második. Lehet, hogy a napokban. Lehet, ez olyan, mint lapozás. Nem számít. Bármit is szeretne számít, hogy lesz idő vagy a költség azzal egyenértékű. Tehát a legelső algoritmus, ha például Volt egy 1000 oldalas telefonkönyv, Megyek egy pontot rajzolhatunk ott, mert ha ez 1000 oldal, azt nagyjából 1000 oldalt fordul, ide vagy oda. És akkor, ha lenne egy 2000 oldalas telefonkönyv, és fogok felhívni egy második dot itt, mert 2000 oldal, ez olyan, mint 2000 másodperc vagy lapozás vagy bármi. És amikor azt mondta korábban, hogy ez fajta lineáris kapcsolat, hogy szándékos volt, mert azt akartam, később on-- jobb now-- hogy rajzoljon egy vonalat. Ez a fajta egyenes vonal kapcsolatot. A meredekség 01/01, ha úgy tetszik. Eközben a második algoritmus mondta, ha van 1000 oldal és te a második algoritmus, ahol számítanak a 2-es, esztergálás Két oldalt egy időben, érdemes felhívni a dot alá vagy fölé az eredeti dot? KÖZÖNSÉG: Az alábbiakban. DAVID MALAN: Az alábbiakban, hiszen mint láttuk, kevesebb időt vesz igénybe, fele annyi idő alatt. Tehát a dot legyen fele olyan magas, mint a másik. És ugyanaz akció itt, ezen a ponton valószínűleg nagyjából ott. És akkor a második algoritmus, hasonlóan, van egy lineáris kapcsolat az idővel. És mi lehet rajzolni, mint olyat. Tehát most, a harmadik és egyben utolsó algoritmus egy kicsit nehezebb, hogy dolgozzon. De ösztönösen, ha megvan 1000 oldalak a harmadik algoritmus, ez csak vigyél mint 10 lépésben. És ha megvan 2.000 oldal az én harmadik algoritmus, meg kell venni, hogy nem 10 lépéseket, de a 11., csak még egy. Tehát mi csak alig fog látni ezt. És kiderül, ha Ráközelíthetek ez vagyok megy, hogy eltúlozzák az értelemben, az alakja, hogy a vonal, végül, nem egy egyenes line-- mert, sőt ha ez, úgy nézne ki, mint a others-- ez valójában egy görbe vonal hogy ha nagyítás, folyik hogy meg sokkal több, mint ez. It-- jól, OK, hagyja figyelmen kívül ezt a részt. Ez volt a toll fog szög. Ez egy görbe vonal, ami mindig növekszik, mindig, mindig, mindig növekszik, de csak alig. És így az idő múlásával, hogy van egy kapcsolat, amely több, mint ez. Ez majdnem úgy néz ki egyenesen. De ez nagyon lassan növekszik. De szinte minden pontja az X-tengely, a vízszintes tengelyen, ez alacsonyabb, mint a többi vonalon. Tehát ez lehet egy kapcsolat n, ahol ha n oldalak, viszi n másodperc. Ez lehet egy kapcsolat n / 2. Van n oldalak, tart Ön n / 2 másodpercig, fele annyi. És ez egy logaritmikus kapcsolat, amely Ha emlékszik, jelentkezzen bázis 2 n elfog ez a fajta növekedés, hogy úgy mondjam. Tehát ez a fajta szent grál közül három ilyen itt, mert ez csak így sokkal hatékony, de vitathatatlanul bonyolultabb megvalósít. Bármi kérdés? Hát hadd Ehhez hagyja nekem nyitni egy szöveges ablak Csak így lehet próbálni hivatalossá itt valami. Tehát hadd menjen előre, és most végrehajtja ezt az algoritmust megtalálása Mike Smith kódot, ha úgy tetszik, pszeudokód kódot. Nem fogom használni a Java vagy a C ++. Én csak fogja használni a fajta Angol-szerű szintaxis, amit általában azt hívják pszeudokód kódot. Itt van egy üres ablak. És mondok 1. lépés az igen első algoritmus felvenni telefonkönyvben. 2. lépés nyitott könyv az első oldalra. 3. lépés lesz nézni oldal Mike Smith. Ha oldalon, hívja Mike. máshol viszont oldalt és folytassa a 3. lépéssel. Kész, mondjuk. És ez így nem egészen tökéletes, amely fogunk látni egy pillanatra. De nézzük meg, hogy mit fogalmak, amit be itt. Így végre az 1. és a 2. és 3. nagyjából igék. Ők kimutatások actions-- ezt. És így egy programozási nyelv, mi lenne általában hívják őket nyilatkozatok vagy függvények és eljárások, hívják őket tetszőleges számú dolog. De ők csak actions-- ezt. 4. lépés alapvetően különbözik, mert ez a fajta feltettem egy kérdést. Ez azt mondja mi vagyunk a fajta Az egy villát az úton. Ha Mike azon az oldalon, hívja vele, így balra, ha úgy tetszik. És ha nem, menj vissza néhány Más page-- vagy inkább, bocs, menj vissza egy másik lépés, amely indukálja valamiféle hurok konstrukció. És ezt újra és újra és újra. És valóban, tudod mit? Igen. else if végén könyv stop. Tehát szükségünk van valamilyen harmadik állapotban, mert nem tud lépést tartani lapozott hirdetés nauseum, mert végül is, én hit a végén a könyv. És egy hiba a programban lehet Nem számítva, hogy a forgatókönyv. És aztán csak rájöttem, ó, várjon Egy perc, kell egy harmadik forgatókönyv. Ha én vagyok a lapok, I tényleg csak megáll. Egyébként ez nem definiált. Mi fog történni, ha tovább mondván lapozhat és menjen vissza, ez az, amikor a számítógépek fagyasztva vagy összeomlik, ha bejön néhány váratlan helyzet, mint ezt. De mi a helyzet Mike Smith harmadik algorithm-- vegye fel a telefonkönyvben, nyitott könyv first-- hogy nem, nem az első oldal ebben az időben, a middle-- ó, nos, ez lenne a második algoritmus. Nézzük csak hagyja, hogy a harmadik. KÖZÖNSÉG: Ó, sajnálom. DAVID MALAN: Ez jó. Nézzük csak hagyja, hogy a third-- nyílt a középső és most nézd Mike Smith. ha a következő oldalon, hívja Mike. És akkor mit akarunk mondani itt? Különben mi? Mi lehet kifejezni ezt bármilyen számos módon. Nincs helyes válasz. OK, ha nem újra, de meg kell, hogy be-- OK, azt akarjuk osztani két, de akarunk menni balra vagy jobbra megy? Hogyan kifejezni, hogy a fogalom? Nos, Mike az esetben, igen, ez igazságos. De OK, így tulajdonképpen egy jó pont. Rendben van. Majd folyamatosan megy ezzel a logikával. Így-- KÖZÖNSÉG: kevesebb, mint a fele. DAVID MALAN: Igen. Tehát még ha az oldal, azt fogjuk mondani, kevesebb mint Smith, balra Smith, then-- lássuk, van fog ez bonyolítja? else if oldal jön előtt Smith, szakadás félbe, dobja el, amelynek a felét? KÖZÖNSÉG: Azt hittem, volt [hallható]. DAVID MALAN: hallok mindkét válasz. KÖZÖNSÉG: Bal. DAVID MALAN: OK, dobja távol maradt a fele, mint Lakisa mondta korábban, a bal felét, majd valahogy szeretnénk, hogy csak megy az alábbiakra: megyek jobbra. Vagy azzal egyenértékű, és tettem egy kicsit kis rendetlenség az elején van, Azt szeretnénk, hogy hatékonyan A 2. lépés újra, ahol nyitott a middle-- vagy open-- Igen, mondjuk úgy, oldalak közepén. És ez rögzíti azt. Ez már nem egy könyv. Ez csak a fele egy könyvet, így nyitott oldalak közepén. else-- majdnem ott. 6. lépés, még ha az oldal után jön Smith, szakadás félbe, dobja el a jobb fele, majd folytassa a 2. lépéssel. mást kilép, egy negyedik forgatókönyv, ha nincs lapok balra fordulni. Így lehet tisztítani ezt fel. És meg kell tisztítani ezt fel. Ez nagyon pszeudokód kódot, ha lesz, nagyon magas szintű leírást. De ez általában elfog az ötlet. És ismét, ebben a forgatókönyvben, akkor van fogalma a feltétel, egy ág, egy villát az út, ami Egy decision-- ha ez, erre kell menni, else if, erre kell menni, else if, menj arra. És ez egy nagyon gyakori programozási technika eldönteni, hogy melyik irányba menni, hogy úgy mondjam. És mi is van valamiféle A hurok struktúra, ahol csinálunk valamit újra és újra. Most kiderül, sok mint ebben a példában, hogy szuper pontos fontos. De mi is láttam valami hogy folyamatosan hív absztrakció. Mit jelent az, hogy vegye fel a telefonkönyv? Mi csak félrebeszéltek értetődőnek ebben a szobában hogy hogy van néhány szemantikai jelentése. Mindannyian csak egyfajta tudom, ó, Nos, vegye fel a telefonkönyvet. Mit is jelent valójában? Nos, ez valójában azt jelenti, meghosszabbítja kéz, hajoljon, meghosszabbítja az ujjak, csipet könyv ujjak között, felállni, húzza kézzel maga felé. És mi lehet igazán pedáns erről, tényleg hogy szuper pontos hogy mit csinálok. De minden ilyen lépést együttesen is mit jelent az, hogy vegye fel a telefonkönyvet. És így korábban, amikor azt mondtam, minden Ezen első két állítás lehet úgy, mint egy eljárni, vagy a funkció, tényleg ez jelenti, amit folyamatosan hív egy absztrakció. Ez olyan, mint a magas szintű elméleti leírása a probléma, hogy valójában magában jó néhány lépést. És így ez is egy visszatérő téma a programozás, amellyel talán írni egy programot szintaxis Így-- pick_up_phone_book (). És akkor szintaktikailag vagyok ellopni valamit a legtöbb programozási nyelv. Most, 1. lépés néz ki, még több, mint egy függvény, mint programozó nevezném. Úgy néz ki, mint a kód, hogy valaki adott egy nevet, és adott nekem használni somehow-- más szóval, amit a vonal amit kiemelt jelentése funkciókat, hogy talán Még csak nem is végre magam. Valaki idősebb, bölcsebb, mint nekem már rájött, hogyan kifejezni a fogalom A felvett egy telefonkönyvet. És ez olyan, mint az öt lépést csak elhadarta, le a fejem tetején. De ő már végrehajtott ez adta az említett több lépésben egy nevet, pick_up_phone_book. És a zárójel Csak amit a legtöbb programozó do végén állítások, mint ez. Most tud állni a saját váll és soha többé, gondolni, hogy mit jelent hogy vegye fel a telefonkönyvet. Én is csak azt mondják, vegye fel a telefonkönyvet. És pontosan ez az, amit mindannyian emberek csináltunk itt. Amikor mi voltunk talán 1 éves, 2 éves, valaki tanítani nekünk, milyen azt jelentette, hogy vegye fel a telefonkönyvet. És azóta, már kivett el azoktól nagyon érdektelen mechanikus lépéseket. És már csak egy intuitív megértése Az, hogy mit jelent vegye fel a telefonkönyvet. És akkor most extrapolálni bonyolultabb things-- egy épület felépítését. Mint, hogy néhány ember, hogy valóban van értelme. A vállalkozók, az építészek, hogy van értelme. És ők tudják, mi a teendő, ha Azt mondtam, menj egy épület felépítését. De a legtöbben a szobában nem tudott kezelni, hogy absztrakciós szinten. Meg kell mondani, mint a Go kap lapáttal és menj a konkrét és köröm a fadarabok együtt, és bármi mást Részt vesz az épület egy épületben. És ez azért van, mert nem Még programozva, hogy megértsék mit jelent, hogy egy épület felépítését. Nem kell, hogy az absztrakció. Nem kell ezt a funkcionalitást. És így, hogy mit láthat a programozási nyelvek általában különösen a modernebb nyelvek, mint a Java, PHP, Ruby, Python, ők sokkal érettebb mint az idősebb nyelven, mint a C és C ++ és mégis mások. És így jönnek tovább funkcionalitást beépítve. Több kód írtak az emberek a múltban hogy most már hívni, vagy megidézi vagy használja, mint én célozgatott A ezzel kiemelt sor itt. És még akkor is mi nem beszélünk mintegy programozási nyelvek önmagukban, csak pszeudokód kód, mind a elképzelések még mindig abban a vitában. És kiderül, pontosság szuper fontos, mint absztrakció. És nézzük meg, hogy közli, hogy az alábbiak szerint. Véletlenül volna tönkre ez a villogó dia a képernyőn idő előtt. De hadd kérdezzek egy bátor önkéntes, ha nem bánod jön. Te lennél az első a kamera, ha rendben van, hogy. Kér valaki, hogy jöjjön fel, és adja utasításokat a kollégák itt? Csak kell, hogy jöjjön ide, és álljon meg itt, és néhány szót. Victoria mosolyog a legtöbb és elkerülve a szemem a legjobban. Hajlandó lenne, hogy jöjjön fel? RENDBEN. És ha mindenki másnak a helyüket kerülhet ki egy darab hulladék papír, ha akarsz. Vonalas papír. Gyere körül ezen a módon. Vagy néhány papír kaptak tegnap, akármilyen üres lapot a papír, ha lehetne. És ha nincs, csak kérdezze meg a szomszéd, ha lehet. Tehát ebben a pillanatban, az Ebben a példában, a Victoria fog játszani programozó, mérnök, aki kell programozni akkor is, ahogyan a számítógépek, hogy tegyen valamit. És majd meglátjuk, mi feltételezések úgy dönt, hogy. Meglátjuk, hogy pontosan úgy dönt, hogy legyen. És ha ez a bemutató megy pedagógiailag jól, sok hibával kerül sor, hogy mi lesz majd a hogy a lehetőséget a vita. De a kihívás be hogy elkerüljék azokat a hibákat, egy jó programozó. És így a kihívás kéznél, ha azt szerette járni ide, előtt van Victoria a képernyőn here-- és remélhetőleg, egyikük sem emlékezni, amikor villant meg a képernyőn. És ne fordulj meg egyáltalán, mert van egy másik képernyőn ebben a szobában hogy tudok kikapcsolni. Tehát ne fordulj meg. Előtte Victoria Ugyanaz a sikoly. És a feladat most az, hogy megmondja, hogy minden a darab papírra, hogy mit kell felhívni. És látni fogjuk alapján szóbeli utasításokat egyedül, számítógépes kódot, ha úgy tetszik, mennyire pontos a rajzok are-- az implementáció. Van értelme? KÖZÖNSÉG: Igen. DAVID MALAN: OK, végre. KÖZÖNSÉG: Rajzolj egy négyzet. [NEVETÉS] DAVID MALAN: És nem kérdéseket tehetnek fel. Csak tedd, amit mondanak. Ja, és ha a mai diák megnyílik egy lapon, de ne nézd meg a lapot. RENDBEN? KÖZÖNSÉG: OK, rajzoljon egy kört. A slope-- mondhatnék lejtőn? DAVID MALAN: Akár az Ön számára. KÖZÖNSÉG: A lejtőn. És a háromszög. DAVID MALAN: Rendben. És itt egy pillanatra. És fogok jönni körül csak egy pillanatra. És nem kell, hogy tegye a nevét rajta. Hadd jár, és gyűjteni a rajzok, ha nem bánod, könnyezés őket. Itt van, amit kaptunk vissza. Majd vetíteni a képernyőn. Látok egy tér, egy kört, lejtőn, és a háromszög. Tehát ez volt az egyik válasz ott. És let's-- Hoppá. Köszönöm. Itt egy másik választék, és egy mögötte. Tehát mindannyian úgy tűnik, hogy rögzítse a szellem. Köszönöm. Van egy másik, és itt van még egy. A meredekség értelmezés a kicsit más, kicsit görbe. És a legközelebbi, vagy azért, mert a Csodálatos specificitása ami neked van le, vagy talán egyfajta látta korábban, ez valóban mi Victoria ténylegesen leírja. De most, azoknak, akik nem értem egészen igaz, nézzük nyújt némi kifogást itt. Tehát Victoria először azt négyzet rajzolásához. És most, akkor feltételezhetjük, kedvéért ma hogy mindenki tudja, hogyan kell felhívni a téren. De ez nem teljesen egyértelmű, nem? Hogyan másként van húzott egy négyzet, vagy ha Lehet, hogy néhány, a félreérthető Itt a számítógép? KÖZÖNSÉG: helye és mérete. DAVID MALAN: Location, igaz? Minden volt egy papír valamilyen formában, általában téglalap, de valamivel különböző méretű. De akkor biztosan lehetett volna levonni, ha akart, hatalmas tér, talán egy kis négyzet. Lehet, hogy volt forgatni. Nem hiszem, hogy láttuk, hogy. De lehetett volna több gyémánt mint de mégis, mégis, Matematikailag a téren. Ez volt tehát vitathatatlanul egyértelmű. Aztán azt mondta, rajzoljon egy kört. Néhányan azt sem rajzolni mellett azt, ami nem ésszerűtlen, mert az emberek hajlamosak azt gondolni, vagy olvasni jobbról balra a legtöbb nyelven, így nem Rossz találgatás. De a körön volna volt a szögletes, körül lehetett a négyzet, lehetett volna máshol a lapon, így vitathatatlanul egyértelmű. Slope volna talán figyelembe véve a legtöbb szabadságjogok szóban azzal, hogy ez mit jelent. És néhányan értelmezni ez a kacskaringós vonal vagy egy egyenes vonal vagy hasonló. És akkor háromszög is lehetett volna már orientált bármilyen számos módon. Tehát röviden, még valami, Ön pillantok és te, mint wow, így Egyszerű, egy gyerek is felhívni a jól nem igazán, ha te szuper, szuper meggyőző és mondd el a számítógép mit kell tennie. Tehát, ha tudnánk, ha van másik papírlapot, nézzük próbáld meg ezt még egyszer. És én fogom adni Victoria egy Más példa a képernyőn van. És ismét, ne fordulj meg és ne nézd meg a diák. És adok neki egy pillanatra, hogy gondolkodni, hogyan kell leírni ezt. Ne hagyd, hogy látni A félelem a szemében. [NEVETÉS] És ismét, ezúttal tőkeáttétel néhány ilyen elvitelre és meg kell kérni szinte mindenki legalább a helyes választ. KÖZÖNSÉG: OK, hogy egy darab papír, nézd a közepén, hogy a papírra. A közepén, hogy a darab papír, rajzoljon egy kocka. [NEVETÉS] DAVID MALAN: Mit tanultunk? Olyan közel voltunk. OK, ismételje meg, ha tehetném, mindenkinek. KÖZÖNSÉG: A közepén a darab papír, rajzoljon egy tárgy, ami úgy néz ki, mint egy kocka. DAVID MALAN: OK, ez annyit kap munkát. Engedjék meg, hogy az analitikai és nem annyira kritikus, hanem hogy a követelés Victoria határozottan Úgy tűnik, a gondolkodás nagyon magas szintű absztrakciók, amelyek nem ésszerűtlen. Mert különben mi lenne minden elég rosszul működő, ha kellett valaha olyan pontos mindent teszünk a világban. De azt mondja menj a middle-- I gondolta voltunk ilyen jó pályán ott, mint menni a kellős közepén Az oldal, majd rajzoljon egy kocka. Tehát ő gondol az absztrakciók, mert ő még megtekintésére mi van a képernyőn, mint valóban egy kocka. De van annyi lehetőséget Az értelmezés van. És valóban, van olyan sok Más módon is kifejezni hogy mely fogok javasolni egy pillanatra. Itt van tehát egy megtestesülése A picture-- whoops-- egy megtestesülése a képet, így a kis három dimenzionalitás rá, ami szép. Itt egy másik, ahol van a ugyanaz, bár ez a fajta nyitott kocka. Egyes emberek vette, hogy egy kicsit több lapos, kétdimenziós. És ez jó. Tehát ott, sőt az a papír közepén. Ez az egyik azt hiszem, tetszik, mert ha megy itt, ez az, amit leír. Tehát most hadd javasolni hogy mást talán leírni ezt a helyzetet. Vissza a nap, az egyik leginkább leggyakoribb módja, hogy megtanulják a programozási az volt, hogy írni a kódot, írja vonalak utasítások, hogy a kontrollált egy kicsit teknős a képernyőn. Logó és egyéb változatai, volt a neve a nyelvet. És a teknős olyan világban élt,. Tegyük fel, hogy ez a téglalap tér a világon. És akkor kezdeni assuming-- I Nem igazán tudom, hogyan kell felhívni teknős, így csináljuk, mint ez. Aztán van egy shell és akkor talán néhány láb. Tehát lehet, hogy ez a kis karakter a képernyőn. És a tárgy ennek programozási nyelv az volt, hogy kényszerítse a teknős hogy menjen fel, le, balra, jobbra és hogy kifejthesse tollat vagy vegye fel a tollat, így tudott ténylegesen rajzolni ebben a nagyon lapos, szögletes világban. Tehát amikor azt gondoltam, lehet, hogy megy, és hol kell vizsgálni búvárkodás le mentálisan leírásakor utasítások általában Azt állítják, kerül a tollat ​​a middle-- és mi lesz megszabadulni a teknős, mert nem nagyon tudok tartsa rajz túl jól. És most, hogyan másként Azt mondják, felhívni a kocka? Nos, azt mondhatjuk, olyasmi, mint döntetlen átlós vonal északkeleti, például vagy 45 fokos szögben felfelé. És ez talán ütött ide. És én elég messze a kocka. De most, nem tudtam mondani valamit mint viszont 90 fokkal balra és rajzoljon egy vonalat egyenlő hosszúságú északnyugatra. És még sorolhatnám hasonló irányban. És ez nem lesz könnyű. És őszintén szólva, valószínűleg már itt öt percig. De talán nem ütött volna, hogy valamit, hogy a végén a nap, végül, hogy egy kocka, de mi merültem belsejében, hogy az absztrakció csinálni ilyen alacsony szintre, hogy nem igazán lehet mit csinálsz, amíg az egész dolog valójában ott az oldalon. És így ez egy általános elv, ismét a programming-- ezt az elképzelést absztrakció. Ez olyan csodálatosan erős, mert megint ő csak azt mondta, húzzon egy kockát, amely az összes nekünk elég sok lenne grokkolni nagyon gyorsan. Mi csak azt értem, OK, felhívni a kocka. Talán nem tudja, a tájolás, így lehetne egy kicsit pontosabb, de általában kép vagy hogy mi a kocka. És ez hasznos, mert ha minden alkalommal, amikor leült egy programozó A billentyűzet írni a kódot, ha kellett gondolni az ilyen alacsony, egyikünk valaha, hogy valamit tenni. És természetesen egyikünk sem élvezni a folyamatot az írás kódját. Olyan lenne, mint az írás 0 és 1-es, ami őszintén szólva nem is volt olyan régen emberek írtak kódot 0 és 1-es. És nagyon gyorsan jött össze ezek a magasabb szintű languages-- C ++ és Java és mások. Tehát próbáljuk meg még egyszer, csak hogy flip a táblákat, így mindannyian van arra, hogy úgy gondolja, meglehetősen azonos módon. Lehet kapunk még egy önkéntes ezt ideje, hogy jöjjön ki a táblához, és felhívni, Nem szavalni? Ja, oké. Ben, gyere fel. És Ben, ebben az esetben, ha szembe a fórumon, ne nézz hátra, Nem néz ki jól. Csak akkor tedd, amit a kollégák itt mondani. És mindenki másnak, a szobában, akkor most a programozó. Ő a számítógépet. És a kép, amit itt választott az előre ezt itt. Ők csak-- fejükben A vicc az egész. Tehát azt nem, hogy valaki szeretne önként az első utasítás vagy nyilatkozat arról, hogy amennyiben parancs Ben tolla? És mi ezt együtt, talán egy utasítást minden egyes ember. Sajnálom? KÖZÖNSÉG: Rajzolj egy kört. DAVID MALAN: Rajzolj egy kört Ez az első dolog, amit hallottam. KÖZÖNSÉG: Fölül. DAVID MALAN: Fölül. OK, akkor engedi törölni, visszavonás. És most, hogy valaki mást. Dan, lenne kényelmes mely a következő utasítást? KÖZÖNSÉG: Persze, felhívni a központ Az alján a kör, egy small-- egy kicsit kis teret, hogy felhívni egy egyenes vonalat le három negyedévében az utat lefelé a tábla enyhe szögben balra. DAVID MALAN: Jó. KÖZÖNSÉG: Enyhe szögben. DAVID MALAN: Visszavonás, a Control-V. RENDBEN. Andrew, szeretné felajánlani fel a következő utasítást? KÖZÖNSÉG: Persze. Aljáról ezt a vonalat, további enyhe angle-- whoops-- talán egyharmada A hossz [hallható], kissé ferdén lefelé, mint egy harmada a hossza [hallható]. Tehát igen, attól a ponttól, húz egy vonalat egy harmadik a hossza a korábbi vonal további balra. DAVID MALAN: Ez OK? Egyenes vonal, az rendben van? OK, Olivier, azt szeretnénk, ajánlani fel a következő lépés? KÖZÖNSÉG: [hallható] a alján a kör, [hallható]. Döntetlen a jobb oldali Az [hallható] centiméter. [NEVETÉS] DAVID MALAN: Azt hiszed, hogy kell átalakítani, hogy ez hüvelyk itt. KÖZÖNSÉG: Stop. [NEVETÉS] DAVID MALAN: OK. [? Ara,?] Kívánt ajánlani fel a következő lépés? KÖZÖNSÉG: Rajzolj egy [hallható] A felső [hallható] ugyanaz. [Hallható] kört, felhívni a [Hallható] és felhívni [hallható]. DAVID MALAN: OK, nincs több visszavonható. Csináljunk egy vagy két további utasításokat. Chris, szeretnénk ajánlani egyet? KÖZÖNSÉG: alul A kör [hallható] felhívni azonos vonalon slopping lefelé balra [hallható]. DAVID MALAN: OK. András? Mi did-- Karim? KÖZÖNSÉG: Kezdve a megfelelő sort, a végén a bal vonal, az alsó, fogsz menni igaza ugyanolyan hosszú, mint a sorban te, rajz A jobb [hallható]. [Hallható] fok, így [hallható] fok a jobb oldalon. DAVID MALAN: Rendben. Álljunk. Ne fordulj meg még. Álljunk, és hagyja, hogy próbálja egy másik kísérlet mielőtt kiderülne, hogy Ben mit rajzolt. Tud shuffle Ben A right-- vagy ténylegesen, Nem, inkább csak ad egy másik fórumon, még jobb. Tehát azt, hogy valaki most szeretné, hogy több megközelítés Victoria vett korábban, ahol beszélünk a magasabb szintű absztrakció és mindössze egy mondat vagy két leírni Ben mit kell felhívni nélkül bekerülni a gyomok, hogy úgy mondjam, ezen alacsonyabb szinten? Victoria. [NEVETÉS] KÖZÖNSÉG: Rajzolj egy alak a gyalogos ember. És a lábak és karok kell legyen a jobb oldalon. DAVID MALAN: OK, ez minden, amit kap. Rendben. Miért nem mutatják, hogy Ben, amit tett. Tehát a tapsot. Ez volt a legnehezebb talán. Így, bár beszélünk meglehetősen buta feltételek körülbelül csak rajz képek, remélhetőleg tudja igazán értékelni a mértéke kifejezőkészség, amely szükséges lehet annak érdekében, hogy elmondja a számítógépnek, hogy mit kell tennie. És valóban, az a tény, hogy a Ben képes volt felhívni a olyan gyorsan egyfajta végrendelet használ nyelv, talán egy magasabb szintű változata angol, amely lehetővé teszi számára hogy csak szavakat használni, vagy halljon Victoria, amelyek lehetővé teszik számára ezek abstractions-- csak felhívni egy alak sétál a right-- hogy a fajta van Egyes szemantikai jelentést arról, hogy nem majdnem olyan nyilvánvaló, ha te csak mondván, tegye a tollat, dolgozzon jobbra, felhívni a bal oldalon. És így ez is nagyon közös programozás. Ez azt mondta, hogy, mint egy nagyon alacsony szintű nyelv, programozás 0 és 1-es, ha lesz. És ez lenne a magasabb szintű programozási nyelv a Java, vagy valami ilyesmi. Egy kicsit az leegyszerűsítés, de ez Az a fajta, mint az érzelmi az érzés, hogy érzi magát, ha segítségével az egyik fajta dolog vagy egy másik. Egy kis frusztráció itt az igény Az ilyen pontos, de a lehetőséget hogy egy kicsit lazább értelmezése itt. De persze, bogarak merülhetnek fel, mint eredményt. Ha szeretne a home-- mi nem fog ez a class-- de ha azt szeretné, hogy hogy ezt otthon, Azt gondoltuk, hogy belevetik magukat ezen. Tehát, ha azt szeretné, hogy játszani ezt a játék a más jelentős vagy a gyerekek vagy hasonlók, akkor lehet élvezni, hogy is. Szóval menjünk előre, és nézd meg egy utolsó dolog itt számítási gondolkodás. És ez elvezet minket John Oliver, nem a klip lehet, hogy láttam tegnap este, de egy kissé utóbbi kérdés. Néhány hónappal ezelőtt, Volkswagen vett egy kicsit a golyóálló mi okból, ha tudod? Mit bajba? Igen, ők emissions-- próbálták legyőzni kibocsátás tesztek lényegében akiknek autók szennyezik a környezetet kevésbé amikor autókat tesztelt és szennyezik a környezetet amikor az autó nem tesztelnek. És ami egyre érdekesebb a világon, mivel lehet, hogy a kikövetkeztetett származó viták, így: mi it-- CarPlay, az Apple szoftver autók és az a tény, hogy sok közülünk egyre érintőképernyősek autóink, van egy félelmetes mennyiségű A szoftver az emberek autók, ma őszintén megnyílik egy egész doboz férgek, amikor Ami a biztonságot és a fizikai kockázatot. De ma, nézzük összpontosít csak mi részt író szoftver amely esetleg gamed a rendszert. Meghatározását a probléma, azok nem ismerik, vessünk egy pillantást a John Oliver. És azok számára ismerős A probléma, nézzük meg, hogy egy szórakoztató lencse keresztül John Oliver is. Szóval hadd hit játszani ezt, úgy gondolja, háromperces bevezetése. A fenébe is. [VIDEO LEJÁTSZÁS] -Cars-- DAVID MALAN: Nyilvánvaló, A YouTube-on, it's-- - --A Legokosabb karakterek A Fast and Furious filmeket. Ezen a héten, a német autógyártó Volkswagen találta magát a közepén egy botrány potenciálisan bűnügyi arányok. -Volkswagen Üdítő milliárdok a bírság esetleges vádemelés annak vezetői, mint A cég bocsánatot kér A kötélzet 11000000 autók segítsen legyőzni kibocsátási vizsgálattal. -Certain Dízelmotor terveztünk kifinomult szoftver használt információkat, beleértve a pozíció A kormánykerék és a jármű sebesség, hogy meghatározzák az autó áteső emissziós vizsgálat. E körülmények között a motor csökkentené toxikus kibocsátást. De az autó manipulált bypass hogy amikor vezetik. Kibocsátás nőtt 10-40 szörös elfogadható EPA szinten. -Wow, 10 és 40-szer nagyobb, mint az EPA lehetővé teszi. Ez a legrosszabb dolog Volkswagen valaha, az, amit lehet mondani, ha Ön soha nem hallott a második világháború. De talán a legbiztosabb jele, hogy sok baj Volkswagen van, hogy az emberek a nagyon top fokozták le. A vezérigazgató lemondott szerdán után rejtjelező csinálni kárelhárítási, mondván, hogy végtelenül sajnálom, ami jól hangzott, amíg kiderült, ő csak 10% sajnálom de még manipulált száját mesterségesen felrántsa sorriness. És közben, a Volkswagen amerikai vezetője volt a bocsánatkérés az övé. -Let Tisztázzuk ezt, cégünk becstelen. És az én német szóval már teljesen elrontottam. -Igen, De teljesen becsavarva fel nem német munkák. És a német nyelv sok szép mondatok helyzetek leírásához, mint ez, mint például a [német], ami azt jelenti, durván, a szomorúság, hogy jön üzleti kapcsolatban hazugság, vagy [német], amely lefordítja mint a megszégyenítés is apa bevonásával felhők a benzin. Ez egy szép nyelv. Csak hajózik ki a nyelvét. És az úton, míg az ember bocsánatkérés hangzik, őszinte, érdemes megjegyezni, ő beszélt hivatalos lemezbemutató partijára a 2016-os Volkswagen Passat, ami azt jelenti, hogy hamarosan bemondása után sajnálom, hogy ezt mondta. -Köszönöm Szépen, hogy eljöttek. Élvezze az esti órákban. Következik a Lenny Kravitz. [ZENE] -OK, OK, véget a bocsánatkérést mellé Lenny Kravitz nem sikoly józan bűnbánattal. Kiáltja, megkérdeztük Bon Jovi, és azt mondta, nem. Volkswagen márka súlyosan károsodott. És őszintén szólva, az új hirdetés kampány nem pontosan segít. - [Német], mi a Volkswagen szeretne hogy bocsánatot csal meg a a járművek. [END LEJÁTSZÁS] DAVID MALAN: Tehát ez volt a kerülő úton of-- sorry-- ez egy kerülő úton az bevezetésének alapvető probléma a szoftver, ami az, hogy kell felismerni bizonyos feltételeknek. Így a kérdés kéznél van van, hogyan működik egy autó potenciálisan megvalósított szoftver ezek a programozók, felismerni, hogy ez valójában vizsgálunk? Tehát, hogy szuper világos, mit csinálnak volt, olyan környezetben, ahol A programozók rájött az autó volt, hogy tesztelt, ők valahogy az autó kevesebbet bocsátanak kibocsátás kevesebb kibocsátás, kevésbé mérgező füstök és az ilyen. De amikor ez a legtöbb esetben vezetés az úton, ez csak bocsát ki annyi szennyezés ahogy akart. Tehát hogyan tudnánk írni a pszeudokód erre algoritmus? Hogyan tudnánk írni a pszeudokód A szoftver fut az autó? Úgy értem, dióhéjban, ez attól függ, le ilyesmit. ha a vizsgált, kevesebbet bocsátanak. mást bocsát ki több. De ez egy kicsit túl magas szintű, nem igaz? Próbáljuk merülni, hogy ez mit absztrakció, hogy tesztelt eszköz. Más szóval, még ha semmit sem tud autók, milyen kérdések Lehet kérni annak érdekében, hogy eldönthessük te is tesztelt, ha az autót? Milyen tulajdonságokkal lehet be, ha egy autó vizsgálunk? KÖZÖNSÉG: vizsgáló berendezések. DAVID MALAN: vizsgáló berendezések. Tehát, ha vizsgáló berendezések a közelben, akkor kevesebbet bocsátanak. Így tudtam képzelni végrehajtási hogy valamilyen kamerák kimutatására vagy ami a környezetében. És hadd javasolni, hogy csak úgy érzi, túl bonyolult hogy valóban van további hardver csak erre a célra. KÖZÖNSÉG: Ha te vagy park, ha a motorháztető nyitva van. DAVID MALAN: A parkban vagy motorháztető nyitva, így a jó. KÖZÖNSÉG És autó fut. DAVID MALAN: Szóval ez egy kicsit Több konkrétak és autó fut. Tehát ez lenne az összefüggésben a néhány különböző körülmények között, ha úgy tetszik. Tehát ha az autó a parkban, és még bár ez egy nagyon mechanikus dolog általában, én is képzelni író szoftverrel, különösen azért, mert ott van Gyakran egy könnyű ott ezekben a napokban, El tudom képzelni, hogy ott szoftver, amely képes lekérdezni a váltókar vagy mi nem, akkor a park, a Ön a meghajtó van fordítva. És tudom, hogy újra egy válaszolni, hogy ez sem igen vagy nemet az ilyen jellegű kérdéseket. És így is valószínűleg válaszolni De a kérdés, a motorháztető nyitva van. Lehet, van valamilyen érzékelő hogy vagy ad vissza egy 1 vagy 0, igaz vagy hamis, a motorháztető nyitva van. Aztán autó fut, nem tudtam érzékelni hogy valahogy keresztül milyen mechanizmus? Mint az autó fut, azt amely érzékeli, hogy be van kapcsolva, tehettem érzékeli valahogy hogy az autó mozog? KÖZÖNSÉG: RPM. DAVID MALAN: Igen, így van mindig az a tű, hogy a megmutatja, hogy hány fordulatok számát perc a kerekek tapasztalható. És így tudtam nézni, hogy. És ha ez nem 0, azaz valószínűleg jelenti az autó mozgásban van. De van, hogy egy kis óvatos ott, because-- nézzük egyszerűsítése this-- ha csak azt mondta, ha autó fut, nem akarjuk, hogy csak kevesebbet bocsátanak, szeretnénk, ha az autó fut és ez tesztelnek. Tehát van néhány más összetevőket, hogy az emberek régóta feltételezték a szoftver csinál, mert hiányzik a tényleges forráskódot, akkor csak egyfajta következtethetett fizikai hatások az autó, hogy milyen Lehet folyik alatta A motorháztető a szoftver. Tehát, ha autó fut, és talán, mondjuk, a hátsó kerekek nem mozog, Lehet ez utalhat valamilyen teszt? Mi vagyok én sejteti itt? Igen, talán, ez az egyik e görgő dolgok, ahol hasonló a kerekek elforgatásával az első vagy a hátsó, attól függően, hogy ez az első kerék, vagy hátsókerék-hajtás, így a felét a kerekek mozognak, de a másik kettő nem, ami egy furcsa helyzet a világban. Ha vezetsz a út, hogy nem történhet meg. De ha egy raktárban valamilyen görgő rendszer, hogy talán valóban megtörténhet. Azt hiszem, az emberek azt is javasolta, hogy talán, ha az autó fut, és kormánymű kerékhajtást nem mozog, hogy Túl lehet egy jel, mert ez ésszerű mint egy egyenes úton. De még akkor is, az emberi valószínűleg mozog, hogy egy kicsit, és bizonyosan több mint egy pár másodpercig. Vagy során egy perc, esély, hogy nem lesz hetséges pontosan ugyanabban a helyzetben. Más szóval, mi vehet kivonás, te tesztelnek, és lebontják ezt a funkcionalitást ezekbe alkatrész összetevőket. És ez valóban mi Volkswagen mérnökök valahogy. Írtak szoftver tudatosan érzékeli, ha az autó tesztelése folyamatban van, ezért kevesebbet bocsátanak ki, más bocsátanak ki, a szokásos módon. És a probléma itt is, hogy a szoftver nem valami igazán látni, kivéve, ha Van az úgynevezett forráskódját. Tehát van két különböző típusú code-- legalább két különböző típusú A kód a világon. Van valami neve forrás kód, ami nem ellentétben mi már írt, forráskód. Ezt írt forráskód egy nyelv úgynevezett pszeudokód, ami csak valami angol-szerű. Nincs hivatalos meghatározása is. De C és Java, C ++, azok mind formális nyelvek, ha írsz nekik, hogy mit kell egy szöveges fájl, amely a forráskódot. De van még valami, A világ úgynevezett gépi kód. És gépi kód, sajnos, csak 0 és 1-es. Tehát gépi kód, amit gépek megérteni, természetesen. A forráskód, amit az emberek megértsék. És általában, de nem mindig, van egy program hogy egy programozó használ vevő forrás kódot, és kiderül, hogy a gépi kódot. És ez a program általában az úgynevezett egy fordító. Tehát a bemenet forráskódot, A kimenet gépi kód, és a fordító egy darab szoftvert, hogy nem ezt a folyamatot. Tehát ez valóban térképek szépen a bemenet, algoritmusok, kimenetek. De ez egy nagyon sajátos megtestesülése e, ami azt jelenti, hogy, akkor is, ha maga az egyik Volkswagen autók, hogy bűnös a, ez nem tetszik akkor csak nyissa meg a motorháztető vagy nyissa meg a felhasználói kézikönyvet, vagy nézd A forráskód, mert mire eléri az autó az úttestről, ez már alakítjuk 0 és 1-es. És ez nagyon nehéz, nem lehetetlen, de nagyon nehéz, hogy szed sok mindent ettől csak nézte a mögöttes 0 és 1-es. Szóval lehet kitalálni, végül, ha érti, hogy egy gép operates-- Intel inside-- ha érti Az Intel architektúra, de nagyon időigényes. És még ott van, akkor lehet, hogy nem lehet látni mindent hogy a kód valójában nem. Bármilyen kérdése van ezzel vagy ezen fajta folyamat általában? És valóban, tudjuk kötni ezt a vitát a tegnapi vita az Apple. Ez is az oka az FBI nem csak menj és nézd a gyanúsított telefon és megtalálni a sornyi kódot, a Például, hogy lehetővé tegye a jelszót vagy lehetővé teszik, hogy a 80 ms-os késleltetéssel. Mert mire ez A többi iPhone, ez már alakítjuk 0 és 1-es. Nos, itt megállni, a mi nézd számítási gondolkodás. Miért nem veszünk egy 15 perces szünetet. És ha visszatérünk, fogunk megnézzük programozási magát, és elkezd térkép néhány Ezeknek a magas szintű fogalmak tényleges, ha vidám, programozási nyelv.