DAVID Malan: Dobrodošel nazaj, vsi.
Torej včeraj, se spomnite, da je smo se osredotočili na teh temah tukaj.
Tako smo imeli štiri splošni topics-- zasebnost, varnost in družbo;
internetne tehnologije; računalništvo v oblaku; in na koncu, spletni razvoj.
>> Je kdo ima pasovne širine ali čas
gledati malo John Oliver sinoči?
To je pravzaprav zelo zabavno, če ne malo zastrašujoče.
Vsa vprašanja o ničemer smo včeraj?
Vsa pojasnila?
Vsa vprašanja, ki si želijo, da bi prepričani, da se bomo dotaknili danes v neki obliki?
Torej, nov začetek.
>> Torej, kaj je na dnevnem redu danes?
Pa sem mislil, da bi začeli danes s pogledom na tisto, kar je na splošno
znan kot računsko thinking-- na tveganje oversimplifying, razmišljanja
kot računalnik, morda razmišljati kot inženir,
in poskuša začeti organizirati svoje misli
ali da vam boljši občutek kaj je vključen v dejansko poveljujoči
računalnik nekaj storiti s pomočjo programiranja.
In bomo obdržati na precej visoki ravni, precej angleščina,
vendar poskusite z uporabo pozna primeri, da formalizirajo, kako
bi lotili reševanja problemov.
>> In bomo ponovno nekaj CS teme, kot so abstrakcije,
ki je prišel nekaj krat včeraj,
algoritmi, in nato predstavitev.
In to je, če bomo začeli danes vsak trenutek.
Potem bomo si oglejte programiranja.
Si bomo ogledali nekaj temeljni konstrukti
s katero bi biti seznanjeni in morda celo našli precej intuitivno.
>> Si bomo pogledali, v resnici, pri načrtovanju vzorca
okolje, ki je zelo dostopna, zelo igriv in tudi ciljno
za otroke, stare 12 let in več.
Bomo porabili nekaj minut tam in potem se stvari na nižjo raven
in dejansko govori o nekaterih algoritmi in podatkovne strukture,
tako rekoč, da programerji običajno uporabljajo
za reševanje problemov veliko več učinkovito, kot bi morda
biti sposoben narediti brez njih v celoti.
Potem po kosilu, bomo lahko ogledali na tehnologije nizov, ki je pravkar
fancy način rekel zbirke tehnologij
ki jih lahko uporabite za rešili nekaj težav.
In bomo govorili o abecedi juha iz jezikov, ki obstajajo today--
Java in Python in C ++ in PHP in Ruby in vse vrste drugih stvari.
>> Mi bomo ogledali kratko na načrtovalski vzorci.
Programerji, v daljšem časovnem obdobju, imajo sprejete metodologije
ki se nagibajo da bi jim pomagali reševanje problemov lažje.
Ko začnete videti sebe pisanje iste kode znova in znova,
ljudje formalizirati teh ponovitev in pripisujejo imena nanje
in jih nato uporabili in spodbuja jih, na koncu.
In bomo govorili malo o mobilnih strategij,
kot kaj to pomeni, da dejansko da mobilno aplikacijo ali mobilni spletni strani.
Ali si to naredil za Android?
Ali je to za iOS?
Ali je to za oba tistih?
In kaj so kompromisi?
In potem na koncu, mi pa bomo poglej spletno programiranje, ki
je skupni izraz Res bi vsak čas
pišete programsko opremo, ki je pomenilo, da deluje na spletu,
ali na telefonih ali namizni ali prenosni računalniki.
Si bomo na kratko ogledali podatkovne baze in oblikovanje
njem, pa čeprav le zato, ker skoraj vsak zanimiva spletna aplikacija
v teh dneh je nekakšno baze podatkov.
V nasprotnem primeru bi bilo Samo statična vsebina.
In baza podatkov vam omogoča, da spremembe v daljšem časovnem obdobju, bodisi sami
ali pri uporabnikih.
In bomo razmisliti, kako vas bi šel o oblikovanju
ta zbirka podatkov in vrste žargonu da bi lahko prišel v inženir je
Razprava na tablo ko dejansko izvajanje
aplikacija prvič.
>> Bomo na kratko govorili o API, uporabne storitve
ki jo lahko uporabite, da stojijo na ramena drugih, ali podjetja
ali posamezniki, in rešiti vaš lastne težave hitreje.
In potem bomo umazali morda bit z JavaScript,
programski jezik, ki se uporablja tako v brskalnikih v teh dneh, pa tudi
v strežnikih.
In morda bomo ponovno, čas dopušča,
nekaj hands-on web stuff mi včeraj in povezovala dve
skupaj preden prekine.
>> Torej z that-- kaj je ahead-- je kaj manjka, da vas
bi radi, da bi bili prepričani smo vstaviti in se dotikajo na neki točki.
Če je vzmeti na misel, da bi se jo kmalu.
Toda zakaj ne začnemo z poglej računskega mišljenja.
>> In mi predlagal, da računalniška razmišljanje je, še enkrat,
vrsta opisa na visoki ravni kaj bi lahko računalniški znanstvenik narediti.
In res, začnimo s tremi sestavinami, ki
bi šel v računskega razmišljanja.
To je samo eden od načinov, da opisuje.
Lahko bi zagotovo opredeliti To na noben številne načine.
>> Ampak naj predlaga, zavoljo danes,
da svetovne probleme, vse svetovne probleme,
ko je obrnil računalniški znanstvenik bi
obravnavati kot tisto, kar bomo klic vhodi, ki
je treba, da se dovaja v kar pokličem algoritmi, ki potem razpadejo izhode.
Z drugimi besedami, celoten svet zahtevka za reševanje problemov I
lahko destilirana v Te tri sestavine.
Torej, kaj mislim s vhodov?
Vhodi je samo tisto, kar ste izročil, da bi rešili.
>> Na primer, tukaj je star problem šola.
Če imam telefonski imenik tu in Hočem, da si nekaj v njej,
to je moj vložek.
Imam 1000 ali tako Strani v imeniku.
To je prispevek k moj problem.
In želim, da bi našli nekaj kot so Mike Smith, tako prijatelja
katere ime in številka upajmo, da v tem imeniku.
>> To je pred dnevi celice telefonov, tako da lahko ne samo iskati.
Tako da sem moral storiti je stara šole in dejansko iskanje
ti vložki za nek odgovor.
Ta odgovor je le, da bo da se imenuje izhod.
Torej, vhod je telefonski imenik.
Algoritem je glede na nabor koraki uporabljam, da bi našli Mike Smith.
In izhod je, upajmo, Mike Smith je telefonska številka.
In to potem bi bilo prav predstavnik večine nobenih težav,
da se pri vas levičarje vhodi in želim, da ustvarjajo rezultate.
>> Torej, preden menimo proces s katerim lahko rešimo ta problem,
iskanje Mike Smith in nekaj takega,
pa menijo, da je prva in se last-- vhodi in izhodi.
Fizično, seveda vložek tukaj je cel kup papirja zlepimo
v obliki imenika.
Toda računalniki, od course-- prenosne računalnike in namizni računalniki in celo telefoni
ti days-- to so elektronske naprave.
>> In na koncu dneva, kaj edini vhod z računalnikom?
No, to je nekaj podobnega Ta napajalni kabel tukaj.
Sem ga priključite v steno, in Dobim tok elektronov,
ki mi omogoča, da zaženete stroj.
Ali morda ti elektroni ustvarjena s pomočjo moje baterije.
Vendar ob koncu dneva, ki je Edina stvar, ki gredo v svoj laptop.
In tako zelo zanimivo stvar je na koncu
prihajajo ven, ali s pomočjo tiskalnika
ali zaslon ali slušnega ali podobno.
>> Torej, če je vse, kar imamo, kot je naša temeljni prispevek k računalniku
je elektrika, tako da samo elektroni gredo v in ali out,
in tako, kako lahko uporabimo ta vnos dejansko predstavlja podatke?
Z drugimi besedami, kako bomo dobili iz preprostega pretoka električne
da predstavlja dejansko številke ali dejanske črk
ali dejanske slike na zaslonu ali dejanski filme ali e-pošte
ali poljubno število teh koncepti višji ravni,
če hočete, da bi glede na Konec dneva nekako
so se shranijo v to elektronska naprava za mehanski
uporabljajo samo tiste preproste ingredients-- elektronov, ki prihajajo v in iz nje?
>> Tako da se zdi, da je V najpreprostejši obliki,
edina vrsta držav Imam v svetu, tako
da speak-- pogojev v mojem world-- je bodisi
Imam elektroni teče, elektrika teče, ali jaz not-- tako naprej, off.
In kaj je formalizirati in izklop, kot računalniški znanstvenik lahko,
s samo 1 in 0.
Naj samo opisujejo nekatere samovoljno ampak stalno število nanjo.
1 pomeni za, 0 pomeni off.
Ali si lahko ogledate tudi, da je to pravi način za in lažni sredstva.
Lahko bi tudi to black beli ali rdeči in modri barvi.
Vi šele potreba dva deskriptorjev.
In a računalniški znanstveniki bi večinoma samo uporabo 0 in 1.
>> Torej, če je temu tako, moj edini abecede je sestavljen iz 0 in 1 je, kako
Lahko bi morda dobili celo število 2 v računalniku, kaj šele številka 3
ali črka abecede ali sliko ali film?
Kako smo nekako Bootstrap sami od tega temeljnega načela
od 0 in 1 je in dejansko predstavljajo nekaj bolj zanimivega?
>> No, kaj je dal na to vprašanje na čakanju za nekaj trenutkov
in upoštevati nekaj upajmo pozna,
tudi če ste res ni pomislil v nobenem podrobno za 10, 20, 30, 40, 50
več let.
To je, kaj?
Kako bi se izgovarjajo, da je?
Ne gre za vprašanje trik.
Številni, ampak kaj je to?
1, 2, 3 ali 123.
In mi je bilo všeč, kako ste rekli, 1, 2, 3, ker je to eden od načinov, da si.
1, 2, 3, je zaporedje treh simbolov.
Je slike, ki jih Zdaj imajo besede za.
In če nekako jih vse prebral skupaj tipična človeška v angleščini
bi rekel 123.
In to je neke vrste višja koncept ravni,
počuti kot razmeroma veliko število.
>> Toda kako bomo to dosegli?
No, morda nekaj časa, saj da ste razmišljali o tem, kot je ta,
ampak nazaj v mojih časih sem nekako to naučil
kot stolpcu 1 je, da 10 je stolpec in stolpec 100 je.
Tako kot pravi Lakisa je 1, 2, 3, vendar je tudi 123.
Toda kako priti iz Nekdanja za slednje?
>> No, saj bi običajno storiti v stolpec 100, sem imel 1.
Torej, to je, kot pravijo, 100 krat 1.
In potem v 10 je stolpec, imam 2.
Torej, to je, kot pravi 10-krat 2.
V stolpcu 1 je, imam 3.
Torej, to je, kot pravijo 1 krat 3.
>> In če dodam te stvari skupaj, to seveda
je 100 plus 10 plus 3.
In oh, zato sem dobil to Višja stopnja pojem 123.
To je samo osnovne matematične, pri čemer ti Simboli imajo uteži z njimi, če vas
bo ograda ali vrednosti stolpca.
In ko sem pomnožiti vse ven, sem dobil to številko.
>> Torej, koliko znaš govoriti binary-- 0 in 1's-- kot računalnik?
OK, odlično, nihče, ali nihče od vas, da si naredil.
Ampak jaz bi ti trdijo, pravzaprav to vedo že.
Vedeti pa je treba nekako poteg naš mentalni model, malo.
Vendar je postopek popolnoma enak.
>> Naj pusti tole gor in namesto da bi to uspe dol za trenutek.
V svetu računalnikov, imamo samo 0 in 1 je.
In tako stvar, ki je bo spremenilo je, kaj?
No, v mojem človeškem svetu, decimalni sistem, december pomen 10,
Imam koliko številk imam na voljo?
10, kajne?
0 do 9, seveda.
>> In zato imamo 10 je mesto in 100 v mesto.
Če je ta prihaja?
No, to je 10 do moči 0.
To je 10 do moči 1, 10 z močjo 2, in tako dalje.
Vi kar naprej množenjem stolpce za 10, speljevanju s samo 1
v skrajnem desnem eni tukaj.
>> Tako v svetu računalniki, če ste le
imajo binary-- dvo pomen 2-- ali 0 in 1 je, samo
Res je treba spremeniti baza tega matematike.
Torej, z drugimi besedami, zdaj pa bom samo imajo na 1 v stolpec in the--
če je to going-- stolpcu 2 na, stolpec 4 je, in morda še dlje.
Zakaj je tako?
No, to je 2 z 0-th moči.
To je .2 1.
To je 2 do 2, in tako naprej.
>> Torej, ker tukaj imamo 1, 10-ih, 100 je, 1000 je, 10.000 je, 100.000 je, 1
milijone, in tako naprej, tukaj imamo 1, 2, 4, 8, 16, 32, 64.
Vi samo ne pomnoži z 2, namesto da se pomnoži z 10.
Zdaj, če je cilj na roke je predstavljati
številke, ki uporabljajo samo 0 in 1 je, kaj menijo, kako priti do tja.
>> To je seveda vzorec 0 0 0, vendar kaj več konceptualno
ne predstavlja?
No, 4 krat 0 plus 2 krat 0 plus 1 krat 0, pa dodamo tiste skupaj.
4-krat 0 je seveda 0 plus 2 krat 0 je, seveda, 0 plus 1 krat 0
je seveda 0.
Torej, ah, to predstavlja Številka smo ljudje poznamo kot 0.
>> No, zdaj, to prepušča zelo hitro previjanje naprej.
Če sem namesto tega ne predstavlja 0 0 0, ampak naredimo 1 0 1,
da bi lahko kako Lakisa, prej, bi jo 1 0 1 samo izgovori.
Toda zdaj, kako se za višje raven številko smo ljudje lahko vedeli?
Torej, kaj je ta številka?
To je 5, število poznamo kot 5.
>> No, zakaj je to?
No, smo lahko res nekako sprehod skozi to metodično
4-krat 1, 2-krat 0, 1 krat 1.
Dodajanje tistih skupaj, tako To je 4 plus 0 plus 1.
In to je, seveda, 5.
Torej, to je že malo dolgočasno zdaj znova in znova delajo aritmetično.
Vendar je postopek popolnoma enak.
>> Edina stvar, ki je spremenilo v našem svetu
je, da so naši stolpci 1, 2, 4, 8, 16, in tako naprej, namesto 1, 10, 100,
1000.
In to samo zato, ker ima naša abeceda skrčil od 0 do 9 samo 0-1.
>> Tako malo kviz tukaj, bi kako ti predstavljajo število 7 v binarno?
0?
No, 0, misliš 0 0 0?
Reci še enkrat, Karina.
Popolna.
Zakaj je tako?
To je dejansko 4 plus 2 plus 1.
Tako dobro.
>> Kako predstavljajo malo another-- kako približno številko 2?
Blizu, vendar nazaj.
Torej, kaj je to?
Je 4 plus 1, tako da je 5 še enkrat.
>> Torej what's-- Žal mi je, Karina?
0 1 0.
0 1 0 bi bilo 2, saj še celo če nekako ne skoči ven na vas,
pač matematika.
4-krat 0, 0, 2-krat 1 je 2, 1 krat 0 je 0.
Torej je to število poznamo kot 2.
>> Kako o številu 8?
Hm?
Dobro.
Tako smo nekako potrebujemo še eno ogrado.
Potrebujemo 1 0 0 0.
In to je res naše vrste stare šole decimalni sistem.
Kako si predstavljajo število 1000?
>> No, zdi se, da se nekako v težkem položaju,
če vas prosim, da predstavljajo številka 1000,
ker tudi če daš sebe kot 9 izmed njih, 9 izmed njih, 0 teh,
ki je največja številka, ki jo imajo, nisi čisto priti do 1.000.
Torej, če vas 1000, morate samo še ena položaj, tako da lahko naredite 1 0 0 0,
ergo številko 1000.
>> Zdaj, kaj je zemljevid te vrste konceptualna razprava nazaj na strojni opremi,
kjer je spet bil vhod tik ta mali električni kabel, elektrika
prihaja in teče ven.
In tako za to, da se preslika iz tukaj tam, no, kaj res potrebujemo?
No, lahko si misliš, da so notranjost računalnik, cel kup žarnic,
če hočete.
Oni res poklical tranzistorjev.
In tranzistorji so samo stikala da lahko bodisi vklopite ali izklopite.
Torej si lahko predstavljate tranzistor, ki je na
dovoli, da elektrika teče in tranzistor, ki je off kot ustavitev
električne energije iz teče.
In namesto da bi čez luči tukaj,
zakaj nisem naredil te vrste novega šolskega slog.
Torej je to lahko 1, svetilka da je na, komaj čeprav.
In to je lahko 0, in zdaj je off.
>> Torej, z uporabo te fizične naprave, I Sedaj lahko predstavljajo binarni sistem.
Potrebujem samo dveh držav.
Ni važno, kaj barvanja je ali kaj je to.
Pomembno je le, da imam ena država na in druga država off.
Torej z mojim telefonom tukaj, kako I predstavljajo število poznamo kot 0?
Ali so se enakovredno, kar Število am I predstavljajo zdaj?
0, ker je naprava izklopljena.
>> In če bi to naredili?
In zdaj, kako I predstavlja število 2?
Si lahko sposodim telefon tukaj, kot smo včeraj?
Torej, da vidimo, tako da, če hočem, da predstavlja številka 2, je ta številka 2?
No.
Koliko sem jaz po naključju predstavlja tukaj?
To je dejansko število 3.
>> Torej, katero ne želim izklopiti?
Črni telefon or-- dobro, če they're-- črn telefon ali beli telefon?
Bela telefon.
Torej, če je ta možnost izklopljena in mi vrstica je čez tu, imamo 1
V zadnjih 2 kraja in 0 v 1 je mesto.
In tako sem zdaj predstavlja število 2.
In to Seveda bi bilo število 3, ker zdaj obe luči
vklopljena.
>> In bom ustaviti tukaj, vendar je razumljivo
če želim, da predstavljajo številka 4 ali 8 ali novejši,
Bom potreboval več telefonov.
Ampak to je vse, kar se dogaja.
Torej, če ste že kdaj slišali, da Notranjost a-- hvala you-- računalnik
je na milijone tranzistorjev, ki je le na milijone drobcenih stikal.
In oni ne svetlobe žarnice, ki vklop in izklop,
vendar pa dovolil elektrike teči nekje ali zaustaviti.
In zato je svoje dve states-- vklopiti ali izklopiti, vklopiti ali izklopiti.
>> Zato bi se zdi zdaj da imajo te sposobnosti
da predstavlja ta koncept, ki bi radi v dejanske strojne opreme.
Toda vse, kar imamo zdaj, je sposobnost da predstavljajo številke, da bi se zdi.
Torej, kako bomo šli o zastopa črke abecede, ki
počuti kot naslednji vrste funkcijo, ki jo bi želeli dodati sodoben računalnik
ko imate številke?
>> In res, če pomislite it, zgodovinsko, računalniki
so bili uvedeni v resnici služijo kot kalkulatorji številčno.
Seveda pa to dni, pa še veliko več.
Tudi ko škorenj ki gre gor, si običajno videti eno ali več besed.
Torej, kako si predstavljajo besede, Če vse, kar imate, je, še enkrat,
elektrika konec izmed dan, ali ekvivalentno 0 in 1 je?
>> Ja.
Ja, mislim, smo nekako naredili To je včeraj v neki obliki,
kjer je na neki točki, Mislim, da sem samovoljno
je dejal, da, če želimo, da predstavljajo črka A, bi lahko samo pokliči, da je 1.
Je bilo v okviru kriptografiji kjer smo samo potrebno nekakšno kodo,
nekakšen kartiranja.
>> Tako bo mogoče A predstavljal kot 1, in B bo predstavljena kot 2,
in Z bo predstavljala kot 26, npr.
In potem je samo opozorilo, da če sem gre za kodiranje črk v mojo e-pošto
ali v mojih besedilnih sporočil kot številke, ki jih vsi
se strinjati, da uporabite Isti niz konvencij.
In res, svet je naredil točno to.
>> Je sistem na svetu imenovani ASCII, American Standard
Nabor za izmenjavo informacij, ki je preprosto odločitev nekaj let
nazaj, da so ljudje, ki da odločil, da je A bo enaka, ne
1, 2 in 26, ter tako forth-- da je malo different-- ampak 65, 66, 67.
In bom dvigni grafikon vsak trenutek.
Ampak to je samovoljna.
Ampak to ni pomembno da je poljubna.
Na svetu je samo biti dosledni.
>> Zdaj, v zadnjem času, je nekaj Ljubitelj
imenuje Unicode, ker je na svetu naravi od spoznal, po izumljanja računalnikov,
da obstaja več kot dobro 256 simboli na svetu
da bi si želimo, da predstavljajo, še posebej, ko se uvede
Azijski jeziki in druge simbologije da potrebujejo več ekspresivnost kot vas
mogoče vgraditi v prvi različici Ta koda, ki je bil imenovan ASCII.
Torej Unicode dejansko omogoča vas, da uporabite več 0 in 2.
Še posebej, boste obdržali zaslišanju beseda bajtov v družbi in celo samo
včeraj.
In bajt je tisto, kar še enkrat?
>> Kaj je bajt?
To je le 8 bitov.
Torej, kaj to v resnici pomeni?
No, to pomeni, prej, ko smo bili govorimo o dvo- in sem bil z uporabo
samovoljno treh bitov, ko smo bili Govorimo o binary-- z 1 kraja,
na 2 je kraj, in je place-- dobro 4 bajt samo pomeni, da ste v pogovoru
Ne v enotah treh ampak štiri, pet, šest, sedem osem,
kar nam daje 8 je mesto, 16 je, 32 je, 64 je, in 128 je.
>> Z drugimi besedami, malo ni vse da je koristno merska enota,
zato, ker je tako kot eni mali podatek, ali off.
Torej, pred nekaj leti, svet le odločil,
je nekoliko bolj priročno govoriti v Pogoji bajtov, osem stvari naenkrat.
Tako torej se je rodil pojem bajt.
In tako imamo osem bitov tukaj.
>> In se je izkazalo, tudi za podobne Razlogi, svet odločila let
Pred da predstavljajo črke ASCII, boste uporabili enote 8 bitov.
Torej, tudi če ne potrebujejo, da je veliko, si
vedno bo za uporabo 8 bitov predstavljajo črko abecede.
In to je priročno, ker potem, če vas
prejmejo sporočilo, ki je z rezultatom 0 0 0 1 1 1 1 0 sledijo druga 1 1 1 0 1 0
0 1, tako da, če ste prejeli 16 bitov, svet lahko samo
predpostavimo, da sta prva 8 ena črka in drugi 8, so še eno pismo.
>> Ni važno, koliko jih je.
To je samo pomembno, da vsi smo dosledni
ko smo razlagi teh bitov.
In to je bila le naključno.
To pomeni nekaj, vendar nisem res misliš o tem, kaj to pomeni.
>> Torej, to je majhna bela laž.
Prvotno je ASCII dejansko uporablja samo 7 bitov.
In osmi bit imenovano razširjeno ASCII.
Ampak bistvo je, navsezadnje, enako.
V svetu na splošno standardiziran na 8 bitov.
>> Torej bi bilo to zdi, da se malo omejitev, saj bi le lahko
predstavljajo kapitalske A, kapital B s kapitalskimi Z.
Ampak res ne, če grem to-- tam je kup virov
spletu, na primer, asciitable.com, to
se bo nekoliko prepričljivo na prvem mestu.
Ampak bom poudariti kaj je pomembno tukaj.
>> To samo zgodi, da be-- in bom walk-- da vidimo, če grem tja.
Tukaj je, v decimalno stolpec številka 65.
In na stolpec pisma desnem značaj, Chr, je črka A.
In lahko prezreti, za zdaj, vse, kar je v sredini.
To je šestnajstiški, osmiško in HTML kodo.
Za tem mestu je samo poskuša vreči veliko informacij na vas naenkrat.
Toda vse, kar skrbi je decimalni stolpec in stolpec značaj.
>> Torej po tej logiki, kaj je številko, da svet
se je odločila, predstavlja male leto?
Ja, 97.
In samo zamenjati morda nekoliko,
kaj več se je svet odločil, bi pomenilo številko 1?
Prav, ker we-- 49, se zdi tu dol v spodnjem levem kotu.
>> Zdaj, kaj mislim s tem?
Tako se izkaže, da v računalniških sistemih,
obstaja splošno Bistvena razlika
med številom in naravo.
Število je stvar, ki jo naučil odraščanja, ko
smo bili zelo mladi v osnovni šoli.
To je stvari, ki jih računajo s.
Toda lik je samo oblika, A pismenka, tako rekoč, na zaslonu.
>> Zdaj smo pri ljudeh nekako glej nekaj, kar izgleda takole.
In smo rekli, oh, da je število 2.
Ampak ne, to je samo simbol, ki izgleda kot tisto, kar poznamo kot številka 2.
In tako da je to temeljna razlika
med dejanskimi številkami in črkami.
To je številka.
Ampak na splošno, v ozadje računalnika,
Če namesto tega vidite kaj takega quoted--
in ne boste vedno morali videti, da je navedeno,
vendar pa zaradi discussion-- če vidiš narekovaje številko,
To je zdaj značaj.
Torej, ta številka 2 pod pokrov notranjosti računalnika
bi bila prikazana z vzorcem bitov, ki predstavljajo število
50 glede na grafikonu na spletu.
>> Vendar, če je računalnik Samo to vidi v tem
bi bila prikazana z vzorec bitov 0 0 0 0 0 0 1 0.
Ker bi to znak dejansko as-- in zdaj zastopa
Moram razmišljati malo harder-- tako da ta znak bi se predstavljal z 0
0 1-- kaj moram tu?
0 0 1 1 0 0 1 0.
Kako sem to naredil?
No to je številka 50, če vas ga pomnožite z uporabo te stolpce,
To je številka 2, itd To je razlog, zakaj je ta dihotomija.
>> In to je samo teaser zdaj za funkcije
ki obstajajo v programskih jezikih da bomo dotaknili kratko kasneje danes.
V programskih jezikov, imate na splošno,
vendar ne vedno, stvari pokličite različne vrste podatkov.
Z drugimi besedami, programmer-- ko on ali ona je pisanje,
programer dobi, da odloči, v kakšni format za shranjevanje svoje podatke.
Lahko shranjevanje podatkov, kot surove številke, kot so število 2.
Ali jih lahko shranite kot strune, ali zaporedja znakov
da bi na splošno izraziti z citati v vašem programskem jeziku.
>> Lahko imaš stvari called-- Bom preveč poenostaviti in jih imenujemo
real numbers-- tako številk, ki niso cela števila, kot so število 2,
vendar številke všeč 4.56.
Torej realne številke lahko tudi imajo decimalnih mest,
tako da je druga temeljna podatek v računalniku.
In potem lahko celo druge vrste podatkov še.
Torej, to je samo teaser res za najenostavnejši konstrukcijskih odločitev
da programer morda da pod pokrovom.
>> Torej, kakšna vprašanja samo še?
Torej, kaj je poskusil, da bi to malo bolj realno.
Ta strojna oprema ni toliko več v uporabi.
Vendar je večina vsi v tej sobi verjetno odraščal in še vedno uporablja trde diske
na nek način.
>> Čeprav je večina naši prenosniki niso več
imajo naprave, ki delujejo tako, namesto laptops danes splošno
imajo polprevodniške pogone brez gibljivih delov.
In to kaže, da je dražje, žal, ampak nekoliko hitrejša
in a-- dobro, pogosto, veliko hitreje, kar je eden od razlogov.
In prav tako ne proizvaja toliko toplote.
To je lahko manjša, tako da je splošno neto pozitiven.
>> Toda to nam omogoča, da preslikati malo bolj konkretno, kaj
govorimo o na: 0 je in Stopnja 1 je sedaj na fizične naprave.
To je ena stvar, ki mi govori okoli 0 in 1 v smislu
mojega telefona ali abstraktno v smislu od stikala pa na in izven.
Kaj pa trde diske?
V svojih prenosnih računalnikov, če imate starejši eno, ali v namiznem računalniku,
ali gotovo v strežnikih Danes, kjer ste
trdih diskov, ki imajo terabajt prostora,
4 TB prostora, dobro, kaj to pomeni?
>> Trdi disk s 1 terabajt vesoljskih sredstev
tam je 1 bilijon bajtov notranjost je nekako,
ali enakovredno 8 trilijonov bitov znotraj.
1 TB bi bil 8 terabitov ali 1 bilijon bitov, ki
pomeni, če imate težko Kombinacije, ki ste jih nekako
ali druga milijarda 0 je in 1 je znotraj njega.
In če bomo le poglejte na poljubna slika trdega diska
zastopnik, to je tisto, kar trdi Pogon lahko običajno videti kot notranjost.
>> Tudi ta je nekako kot stari gramofon predvajalnik
vendar na splošno z več zapisov v notranjosti, tako
da speak-- multiple plošče, kot oni poklical,
kovinske krožne diski, in Nato malo branje glava
podobno kot stari gramofon.
In to branje glava pomakne nazaj in naprej in nekako se glasi bitov.
In kaj je na teh plošče, čeprav čeprav smo ljudje ne morejo videti,
bodisi v resnici ali te slike, tam je drobne majhne magnetne delce.
In tudi, če ste dolgo pozabil, kako deluje elektrika,
magnetni delec ki se zaračuna na splošno
je severni del in jug end-- tako severno in južno.
In tako je svet samo odločil, nekaj časa nazaj
da če magnetna protokol bistvu je usklajena, kot je ta, sever-jug,
recimo, da je v 1.
Če je namesto jug-sever, kaj je samo klic, da je 0.
In tako, če imate na voljo bilijon
mali magnetni particles-- in upajmo,
strojna oprema iznajdljivost v Da bi flip ljudi okrog
kot vidite fit-- če želite predstavljajo cel kup 0-ih, vas
potrebujejo samo 8 magnetnih delcev Vse usklajena, kot je ta.
In če želite, da predstavlja Osem 1-ih, ki ste jo pravkar
Potrebujemo 8 magnetne delce poravnanima back to back to back, kot je ta.
>> Kaj mislim z magnetni delci?
Odkrito povedano, vsa ta leta kasneje, stvar, ki je še vedno pride na misel
je ta tip, če vas odraščal s to rečjo.
To je little-- za tiste unfamiliar--
malo otroštvo igrača, ki je to brez dlake človek tukaj
da ima vse te mali črni magnetni delci, ki pridejo z njim.
In z uporabo tega rdečo palico ki je le magnet,
si ga lahko nekako dajo brke ali obrvi ali dlake ali kaj na njem.
Torej, v bistvu, če smo povečavo v, na primer, ta
je vrsta igre, ki jo lahko igrajo z Woolyja Willy.
>> In to je samo reči, ti so precej večji magnetni delci
kot so dejansko na trdem disku, in veliko manj magnetnih delcev.
Ampak kaj je dejansko videli potem, če imate,
drobni magnetni delci v trdi disk, kako lahko dejansko
uporabiti tiste, ki predstavljajo podatke.
>> [VIDEO PREDVAJANJE]
>> -V Trdi disk, če vaš PC hrani večino svojih stalnih podatkov.
Da bi to dosegli, podatke potuje od RAM-a ob
s programskimi signali, da povej trdega diska, kako te podatke shraniti.
Pogonski vezja trde prevesti tistih signale v nihanjem napetosti.
To, v zameno nadzor trdi disk je premikanje parts-- nekaj redkih gibljejo
deli levo v sodobnem računalniku.
>> Nekateri signalov krmiljenje motorja, ki se vrti-kovino prevlečene plošče.
Vaši podatki so dejansko shranjene na teh plošč.
Drugi signali premakniti branje / pisanje glave brati ali pisati podatke o plošče.
Ta tehnika je zelo natančna da je človeški las ne bi niti
prehod med glavami in predenje plošče.
Kljub temu, da vse skupaj deluje na grozen hitrosti.
[END PREDVAJANJE]
In lahko vidimo na zadnji del videa,
obstaja splošno več plošče.
In tako, da bere glava ne samo branje vrh.
To je nekako kot tri ali štiri ali več bralnih glav
da je poteza, kot je ta, branje podatkov hkrati.
>> Torej je veliko zahtevnost in vrsta časovnega
ki je vključena v trdem disku.
In stvar se vrti res darn hitro, tako da je veliko kompleksnosti.
Ampak kaj je povečati malo globlje in videti, kje so ti magnetni delci
in kako se bomo dobili na njih.
>> [VIDEO PREDVAJANJE]
>> pogled -Naj se na tisto, kar smo samo videl v počasnem posnetku.
Ko kratek impulz električne pošlje branje / pisanje glave,
se obrne na majhnem elektromagnetnim za delček sekunde.
Magnet ustvarja polje, ki se spreminja
polarnost majhen, majhen Del kovinski delci
ki plašč površino vsaki plošči je.
Vzorec niz teh drobnih napolnjene do območja na disku
predstavlja enojno malo podatkov v binarno število sistem, ki ga računalniki uporabljajo.
>> Zdaj, če je trenutna je poslala pot skozi branje / pisanje glave,
površina je polarizirano v eni smeri.
Če je trenutni pošlje nasprotno smer
polarizacija je obrnil.
Kako si dobil podatke na trdem disku?
Samo povratne proces.
Torej, to je delce na disk, da bi dobili tok
v branje / pisanje glavo premika.
Skupaj milijone ti namagneten segmenti,
in imaš datoteko.
>> Sedaj lahko deli eno datoteko lahko razpršeni po vsem pogonu na plošče,
nekako kot nered referatov na vaši mizi.
Tako posebna dodatna datoteka hrani tir, kjer je vse.
Ali ne želiš, da bi nekaj takega?
>> [END PREDVAJANJE]
>> Tako se namiguje, da obstaja, morda je da je tema od včeraj izbrisa.
Ko se brisanje datoteka, včeraj smo rekli
da računalniški resnici počne kaj, ko povlečete nekaj
v koš ali smeti?
To je preprosto pozabi.
Toda 0 in 1 je, magnetni delci
da je izgledal rdeče in modre stvari tukaj, ali mi roko tukaj,
so še vedno tam na trdem disku.
>> In tako obstaja software-- Norton Utilities in minulih
in druge bolj moderno software--, da je samo
bo skeniranje celotnega trdega diska je videti na vseh tistih 0-ih in 1 ja, saj je
Izkazalo se je, da je večina formats-- datoteka Word dokumente, Excelove datoteke, slike,
video files-- imajo nekatere Vzorci, ki so pogosti med njimi.
Vsak video datoteke morda biti drugačen video,
vendar je prvi več bitov so običajno isti.
Ali zadnjih nekaj bitov so ponavadi enaki.
>> In tako z veliko verjetnostjo, si lahko ogledate za tiste vzorce.
In tudi če je datoteka pozabljena, lahko rečemo, z veliko verjetnostjo,
ampak to izgleda kot Wordov dokument, upamo, da si opomore in un-pozabi,
če hočete.
In tako to je, kako lahko obnovite podatkov, ki je bodisi že po naključju
izbrisati ali izbrisati ali namerno črta za kakršen koli namen.
>> Nasprotno, varno brisanje počne kaj V okviru slike, kot je ta?
Točno, jih naredi vse naključno.
Torej je nekako premika nekaj jih dol, nekateri od njih gor,
zapusti nekatere od njih spremenile, in običajno naredi naključno hrup iz nje,
ali pa morda naredi vse Tisti 0 ali vse od njih 1 je.
In da je tudi lahko na splošno drgnjenje svoje podatke proč.
>> Torej, kaj je zdaj vrnemo k vprašanju računanja razmišljanja, pri čemer
imamo vhode formule.
In algoritmi daje ti izhodi na koncu.
Osredotočeni smo zdaj na vložke in izhodi, ker zdaj sem
zahtevek imamo način predstavlja vhodov in izhodov.
Mi smo le, da bo za uporabo binarno.
>> In ne glede na to, kar smo želijo, da predstavlja danes
ali je številka ali črka ali njihovi tisoč v imeniku
ali slike ali filme, na koncu na dan, da je vse 0 in 1 je.
In trdim, da, čeprav je to je zelo preprost svet s samo 0-ih
in 1 je lahko gradimo sami gor.
In smo videli en primer da s črkami tako daleč.
>> Torej, kaj je osredotočil zdaj o tem srednji sestavina, algoritem.
In vrnimo k temu Primer Mike Smith.
Torej, v tem imeniku, ki je sicer, ne toliko več uporabljati,
tam je problem treba rešiti.
Želimo, da bi našli nekoga, kot je Mike Smith.
>> In kaj lahko storim, da bi našli Mike?
No, jaz bi samo odprla to knjiga, začeti na prvi strani
in zavedaš, oh, sem v oddelku A.
Mike ni tam.
Rabim del S za Smith.
Torej samo vrtite eno stran naenkrat.
Naj se pretvarjamo, da je vse to belih strani in ne rumene strani,
ker ne bomo našli Mike v rumenih straneh anyway.
Ampak sem v belih strani.
In sedaj sem v oddelku B.
Še vedno nisem našel.
Zato sem vrtite eno stran naenkrat.
>> To je algoritem.
Je niz navodil za reševanje nekaj težav.
Z drugimi besedami, poglej stran, če Mike ni na njem,
obrniti stran in ponavlja znova in znova in znova,
v najboljšem primeru je videti tako, kot ste to počeli.
Torej, to je algoritem, ta postopek, pravilna?
>> Žal mi je.
Ne, sem slišal nekaj nos.
OK, vendar je is-- ja, to je gotovo dolgočasno.
Kot, bomo cel dan, če sem naprej išče Mika pri tej hitrosti.
Ampak naj trdijo, da je pravilna.
To je neumno, ampak je res.
>> Na koncu dneva, dokler se morda da bom najti Mike, če je notri
in sem pozoren.
In sem na koncu doseže svoj stran.
In če dobim preveč, če Pridem na oddelek T,
potem sem lahko nekoliko optimizirali in samo reči, hm, vse narejeno.
Jaz sploh ne potrebujete za odpadke Čas bo na Z-jev.
Ampak to je zelo linearni pristop, če vas
bo zelo vrsta od leve proti desni pristop, ravna črta.
In njegova pravilna, vendar počasi.
>> Tako se spomnim iz osnovne šole, vrsta od optimizacije iz prvega grader,
kjer sem se naučila, kako se ne šteje s tistimi, ampak twos-- do 2, 4, 6.
To je A, veliko težje narediti, ampak v teoriji, da je
faster-- 8, 10, 12, 14, in tako naprej.
Kaj pravite na to algoritem?
Ali je bolj učinkovito?
Je hitrejši?
>> OBČINSTVO: To je učinkovit.
>> DAVID Malan: Ja, tako da je def-- je dobesedno dvakrat hitreje, ob predpostavki, da
ne dobijo spotaknil s prsti.
To je dvakrat hitreje, saj Sem obračanja prek dveh
Strani naenkrat namesto enega, ampak je potencialno pravilno, saj zakaj?
>> OBČINSTVO: Ti si preskoči nekaj.
DAVID Malan: Ja, kaj pa če Mike zgodi se sandwiched-- morda, ko sem kasneje
v imeniku, Mike zgodi, da bo stisnjena med tema dvema stranema,
in sem slepo preskočite.
Zato moramo malo popraviti tam.
Ko sem udaril del T, I ne samo z gotovostjo reči,
nismo našli Mike Smith.
Verjetno podvojiti nazaj.
Ali v resnici, ko sem dosegel nekoga imenovan S-N, namesto S-M za Smith
Takoj sem lahko podvoji nazaj, ker je morda on
je bil na prejšnji strani.
>> Ampak nimam daleč dvojno nazaj.
V teoriji, če sem to naredil na desni Tokrat sem se vrnete na prejšnjo stran.
Torej, to je dodal le en dodaten korak.
Tako sem šla dvakrat hitreje, vendar me je stalo eno dodatno stran.
Ampak, da se počuti kot neto zmago.
>> Vendar to ni kako večina ljudi v Ta soba bi rešila ta problem.
Kaj bi tipična oseba, morda Pred nekaj leti naredili, da bi našli Mike Smith?
Ja, ni našel Mike.
Kaj naj naredim?
Tako bi dobili malo bližje, ampak jaz know-- kaj je res o telefonskem imeniku?
OBČINSTVO: To je zaporedno.
DAVID Malan: To je zaporedno.
To je po abecedi.
In zato, če sem v delu M, Mike je očitno v desno,
Lahko dobesedno raztrga problem v half--
je ponavadi lažje kot that-- solza problem na pol in ga vrgel proč,
tako da zdaj imam problem, ki je ni več 1000 pages--, da je bilo težko,
ker mislim, da sem dejansko tore imenik to time-- ne
1.000 strani, ampak 500.
>> Torej problem je dobesedno pol tako velika.
In to je zelo prepričljiv, saj z mojih prejšnjih algoritmov, različica
1 in 2, sem kar samo problem ena stran manjše, dve strani manjši
ob času.
Ker zdaj, sem ga 500 Strani manjši naenkrat.
>> OK, tako da zdaj, Karim predlaga da sem šel na desni polovici.
Tako da sem šel v grobem do srede, gor ali dol.
In če bi to storil matematično, Lahko bi šel naravnost v sredino.
In zdaj se zavedam, oh, Sem v oddelku T.
Pravzaprav sem si šel predaleč.
>> Ampak lahko, še enkrat, trgajo problem na pol, ga vrgel proč.
In moji bajti ni tako velika.
To je samo, kaj, 256 strani, ali 250 strani, gor ali dol zdaj.
Ampak to je še vedno precej več kot eno stran ali dve strani.
>> In zdaj, grem približno na sredini.
Oh, nisem šel čisto dovolj daleč zdaj.
Torej ponavljam, ponavljanje, ponavljanje Ponavljam, dokler sem upajmo
ostane samo eno stran.
>> Tako, da vabi na vprašanje, če sem je začel s približno 1000 strani,
koliko korakov je trajalo me z različico 1 mojega algoritma?
No, če Mike je v S odsek, v najslabšem primeru,
to je zelo blizu Konec abecede.
Torej, če je imenik 1.000 strani, Poiskal bom Mike v 1.000 strani,
gor ali dol.
Morda je kot 800 ali tako, vendar to je zelo blizu 1.000.
>> Ker je v drugem algoritem, koliko
Stran izkaže maksimalno morda sem zahteva, da bi našli Mike Smith?
Tam je 1000 strani, vendar sem jih dva dela naenkrat.
Dobro, max kot 500ish, ker če grem skozi celoten imenik,
na kateri točki, ne morem ustaviti.
Ampak lahko obrije nekaj jih samo ustavi na odseku T.
Ampak to je v najslabšem primeru 500 strani.
>> Torej, kolikokrat lahko razdeli 1,00o-stran imenika na pol znova
in spet in again-- iz 1000 na 500 do 250 do 125?
Kako dolgo, preden sem se udaril eno stran?
Ja, to je okoli 10.
Odvisno od zaokroževanja in podobno, to je približno 10 strani skupna potreba se obrnili
ali imenikov treba raztrgana.
>> Tako, da je zelo močna.
Začeli smo s problemi, 1000, stran V vseh teh treh zgodb.
Ampak v prvi algoritem tako, me je, v najslabšem primeru, 1.000 strani
izkaže, da bi našli Mike.
Drugi algoritem, 500 strani, da bi našli Mike.
Tretji algoritem, 10 strani, da bi našli Mike.
In to je še bolj močni, ko misliš, da
glede vrste nasprotne scenarija.
Denimo, da podjetje telefonsko naslednjem leto morda združuje dve mesti skupaj,
in telefonski imenik je nenadoma ta debela, namesto tega, da
tako 2.000 strani namesto 1000.
No, moj prvi algoritem išče Mike Smith v telefonskem imeniku na 2000 straneh,
slabše tako, da se dogaja, da se koliko strani zavije v naslednjem letu?
>> Telefonski imenik je 2.000 strani, SO- dobro, ne ena.
Če imenik dvakrat debela v Prvi algoritem, prvi algoritem,
2000, kajne?
V najslabšem primeru, Mike je res blizu konca knjige
zato je 2.000 stran obrne.
Drugi algoritem bo s dvojke, kot 1000 strani.
>> Kaj pa v mojem tretjino in najnovejši algoritem?
Če telefonsko podjetje podvoji Število strani, od 1.000 do 2.000,
koliko krat moram trgati da je knjiga na pol, da bi našli Mike?
>> OBČINSTVO: Samo eno.
>> DAVID Malan: Samo še eno, ker z eno stran solza,
Lahko dobesedno razdeli in osvojiti, če hočete,
da je problem v pol sprejemanju velik ugriz iz nje.
In tako je to primer učinkovitost in verjetno algoritem
s katero smo vsi nekako intuitivno pozna.
Ampak to je samo kot pravilne kot mojih drugih algoritmov
s tem poteg za Drugi algoritem
ampak to je tako veliko bolj učinkovit.
>> In v resnici, kaj računalnik znanstvenik, ali pa programer,
bi običajno storili pri pisanju koda poskušali ugotoviti,
Vse je v redu, ne želim, moj Program samo, da je pravilna,
Prav tako želim, da bi bilo učinkovito in reševanje problemov dobro.
Predstavljajte si, da v realnem svetu danes, kot so Google indeksov, iskanj
kot milijard strani, predstavljaj si, če uporabljen prvi algoritem za iskanje mačke
Med milijarde pages-- gledaš prva stran v njihovi bazi podatkov,
drugi, tretji, samo iščejo za mačko, ki išče mačka.
To je precej darn počasi se zdi.
Lahko bi namesto tega uporabite nekaj imenuje binarno iskanje, ki
Ni coincidence-- bi torej dva smo obdržati nekaj delimo v 2, v half--
ki bi jih lahko uporabili binarno iskanje in morda našli mačk še hitreje,
ali karkoli že je, ki ga iščete.
>> In odkrito povedano, da je celo luksuznih algoritmi
da narediti veliko več kot le delitev stvari na pol
da bi našli informacije hitro.
In bomo govorili malo o tistih, po kosilu danes.
Torej mi samo poskusite predstavljati to.
Nam ni treba iti v vsaka math ali dejanske številke.
Lahko govorimo o tem abstraktno.
>> Ampak naj le predlaga, če vas so ob razpravi zdaj
z inženirji predlaga ta algoritem
in skušate narediti izračunano odločitev,
ker morda inženir pravi za vas, vam
Veš kaj, lahko izvaja načrt linearno iskanje v kot dveh minutah.
Tako enostavno je to.
Binarni iskanje ni tako fancy, ampak to se dogaja, da me kot 10 minut,
tako 5-krat toliko časa.
>> Tam je blagovna tod tudi v smislu odločanja kaj je programska oprema za pisanje.
Ali pišete enostavnejši algoritem, ki bo samo peljal dve minuti?
Ali pa boste porabili več časa, 10 minut, pisanje Ljubitelj algoritem?
Kako ste se odločili, da se vrste vprašanje?
Lahko pa bi bilo malo bolj realno.
Povem šefu, da bo trajalo me niti en teden ali 10 tednov
za izvajanje programske opreme na ta način, kako
se odločite, kateri algoritem za zeleno svetlobo?
Karim?
>> OBČINSTVO: Občinstvo, mislim.
>> DAVID Malan: publika.
Kaj mislite s publiko?
>> OBČINSTVO: Če bo ki jih uporabniki uporabili
ki [neslišno], ki jih uporabniki [neslišno].
Ampak, če je to nekaj, kar si samo delaš zase
olajšati težave, [Neslišno] hitreje.
DAVID Malan: Ja, to je hitro in umazan je dober način, da ga opisali.
V bistvu, če ste opisuje veliko svojega časa
v grad šoli, pri čemer pogosto krat, Napisal sem slabo kodo zavestno SO-
vsaj tako sem racionalizirati it-- zavestno tako,
ker čeprav sem bil pisanje kode da je bil relativno počasen za izvedbo,
Bil sem sposoben napisati kodo sam zelo hitro, porabe le nekaj minut
ali ur ne dni.
In se je izkazalo, da Občasno je potrebno zaspati.
Torej, tudi če je moja koda potrebno 8 ur za vožnjo, tudi to je v redu,
Bom šel spat, medtem ko teče.
>> Torej v času, ko sem mislil, da je to zelo pameten, čeprav sem očitno
delal preko mojega dr zelo počasi.
Toda nasprotje, ki je da, če bi bilo pisanje programske opreme
za druge ljudi, ki važno bolj kot mene, no,
ob njih čakati 8 ur na dobili nazaj svoje rezultate iskanja
sploh ni tako prepričljiv.
In tako porabi več časa spredaj za pisanje programske opreme
da je bolj učinkovito, bolj kot naš tretji algoritem,
Verjetno koristi uporabnikov v daljšem časovnem obdobju.
Torej je res odvisno preko Čas, kako ti stroški ujemajo.
Če bo treba pisati programska oprema, ki jo uporabljajo enkrat,
Verjetno lahko tudi storiti hitro in umazano, kot pravijo.
Samo vrgel skupaj.
To je koda, ki spravlja v zadrego ste, da je tako slabo,
vendar je to delo pravilno opravljeno, čeprav to ni učinkovito.
Nasprotno, boste porabili več časa na nekaj, dobil je ravno prav.
In potem amortizira v daljšem časovnem obdobju, da vnaprej stroški časa
je verjetno smiselno, če boste obdržali optimizacijo za skupno primera.
>> In res, da je tema programiranje, ali računalništva več
na splošno, poskuša optimizirati ne za občasni primeru
pogosta pa case-- kaj operacija se bo znova zgodilo?
Če boste imeli milijarde uporabnikov iščejo na vaši spletni strani,
verjetno bi jo porabili dodatnih tednov do pred pisanjem boljšo programsko opremo,
tako da vse svoje uporabnike koristi.
Zdaj pa poskusimo ujeti to a malo slikovno, vendar ne toliko
številčno.
>> Torej, tukaj je samo stara šola grafikon.
In naj povem, da je ta čas.
In ni važno what-- dejansko, ne, ni časa.
Oglejmo čaka, da na drugi osi.
Recimo, da je to čas, in to je velikost problema.
>> In računalniški znanstvenik lahko na splošno imenujemo
to samo n. n je podobno naš go-spremenljivka, kjer
n je število, n število, in to je Število koli vložkov, ki jih imate.
Tako da v tem primeru je n število strani.
Torej bi bilo 1.000 v v primeru smo pravkar povedali.
>> Torej čas je lahko katera koli merska enota.
Mogoče, da je druga.
Mogoče, da je dni.
Mogoče, da je kot stran obrne.
Ni važno.
Karkoli želite, da računajo s tem, da bo čas, ali pa stane ekvivalentno.
>> Torej, s tem zelo prvi algoritem, če I, na primer,
je imel imenik na 1000 straneh, Bom naredi piko tam,
ker če je 1000 strani, je trajalo približno 1.000 stran obrne, gor ali dol.
In potem, če sem imel 2000-stran imenika,
in bom pripraviti sekundo dot tukaj, ker je za 2.000 strani,
je kot 2.000 sekundah ali stran obrne ali karkoli.
In tako, ko sem že rekel, da je nekako linearno zvezo,
da je bilo namerno, ker sem želel kasneje on-- pravica now-- potegniti črto.
To je nekako ravno linija odnos.
Naklon je 01/01, če hočete.
>> Medtem, drugi algoritem je rekel, če imaš 1.000 strani
in si s pomočjo drugega algoritma, kjer sem šteje za 2 let, obračanje
dve strani naenkrat, bi moral narisati piko spodaj ali zgoraj moj prvotni piko?
>> OBČINSTVO: Pod.
>> DAVID Malan: Spodaj, saj, kot smo videli, traja manj časa, pol toliko časa.
Torej mora biti pika polovico tako visoka kot drugi.
In ista stvar tukaj, je ta pika bi bilo verjetno približno tam.
In tako je moj drugi algoritem, podobno, ima linearno zvezo s časom.
In jo lahko pripravi kot take.
>> Torej sedaj, tretja in zadnja algoritem je malo težje pripraviti.
Vendar intuitivno, če imam 1.000 strani z moje tretje algoritem,
da bi mi bo všeč samo 10 korakov.
In če imam 2.000 strani z mojim tretjim algoritem,
mora me ne 10 koraki, ampak 11, samo ena več.
Tako da smo komaj videli to.
>> In se izkaže, če I povečati na to, da sem
gre pretiravati za učinek, oblika od te črte, na koncu,
ni ravno line-- saj, res, če bi bilo,
da bi bilo videti bolj všeč others-- je pravzaprav Krivulja
da, če povečate, se bo da si veliko več kot to.
It-- dobro, OK, prezre ta del.
To je bil moj pero dogaja kota.
To je Krivulja, ki je vedno narašča, vedno, vedno, vedno
povečuje, vendar le komaj.
>> In to v času, imate odnos, ki je več kot to.
Videti je skoraj naravnost.
Ampak to je zelo počasi narašča.
Toda skoraj vseh točkah vzdolž Vaše x-osi, vodoravna os,
je nižji od tistih drugih progah.
>> Torej bi to razmerje n, pri čemer, če imate n strani,
ti n sekund traja.
To je lahko razmerje n / 2.
Imate n strani, je potrebno si n / 2 sekundi, pol toliko.
In to je logaritmično odnos, ki
Če se spomnimo, se prijavite osnove 2 n posname ta vrsta rasti, tako rekoč.
Torej je to neke vrste sveto gral med tremi od teh
tukaj, ker to je samo toliko bolj učinkovita, vendar verjetno bolj zapletena
izvajati.
Kakšno vprašanje?
>> No, povej mi to, kaj mi odpre okno z besedilom
Samo tako bomo lahko poskusite formalizira nekaj tukaj.
Zato naj gredo naprej zdaj in izvajanje tega algoritem
za iskanje Mike Smith v kodi, če hočete, psevdokoda koda.
Ne bom uporabljati Java ali C ++.
Jaz sem le, da bo za uporabo neke vrste Angleščina podobno sintakso, ki smo jo
bi na splošno imenujemo psevdokoda kodo.
Tukaj imam prazno okno.
In jaz pravim korak 1 od zelo Prvi algoritem poberem imenik.
2. korak je odprta knjiga na prvo stran.
3. korak bo pogled na Stran Mike Smith.
Če je na strani, pokličite Mike.
drug zavoj stran in pojdite na korak 3.
Storiti, recimo.
>> In zato ni čisto popoln, ki jih bomo videli v trenutku.
Ampak kaj je razmisliti, kaj koncepti sem tu predstavil.
Torej koraka 1 in 2 in 3 so precej glagoli.
Oni so izjave, actions-- to.
In tako v programiranju jezik, bi se mi na splošno
jim klic izjave ali funkcije ali postopki,
jih pokličete poljubno število stvari.
Ampak oni so samo actions-- to.
>> Korak 4 je bistveno drugačen, saj to je nekako sprašujem.
To je rekel, da smo nekako z na odcepu.
Če Mike je na strani, pokličite ga, tako levo, če hočete.
In če ne, pojdite nazaj na nekatere drugi page-- ali ne, žal,
nazaj na drugo stopnjo, ki povzroča neke vrste Looping konstrukt.
In mi to znova in znova in znova.
>> In pravzaprav, veste kaj?
Ja.
drugega, če na koncu knjige stop.
Zato moramo nekakšen tretji stanje, saj vas
ne more obdržati obračanjem strani oglas nauseum, ker na koncu, bom
udaril konec knjige.
In napaka v programu lahko ne pričakujemo, da scenarij.
In potem sem spoznal, oh, počakajte minuto, moram tretji scenarij.
Če sem iz strani, sem bi bilo res samo ustaviti.
Sicer pa je neopredeljenih.
Kaj se bo zgodilo, če bom obdržati rekoč obrniti stran in nazaj,
To je, ko računalniki zamrznitev ali nesreči, ko ste zadeli
nekatere nepričakovana situacija, kot je ta.
>> Zdaj pa, kaj pa Mika Smith tretji algorithm--
pick up imenika, odprta knjiga za first-- za
ne, ne prva stran ta čas, da middle-- oh, dobro, da bi
je drugi algoritem.
Naj samo preskočiti na tretji.
>> OBČINSTVO: Oh, žal mi je.
>> DAVID Malan: To je v redu.
Naj samo preskok na third-- open na sredini in sedaj iščejo Mike Smith.
če na strani, pokličite Mike.
In potem, kaj hočemo tukaj povedati?
še kaj?
To lahko izrazimo v kateri koli številne načine.
Ni pravilen odgovor.
OK, če ne že spet, vendar moramo be-- OK, si želimo razdeliti na dva dela,
ampak želimo iti levo ali pa desno?
Kako izraziti ta pojem?
No, v primeru, Mike, ja, da je pošteno.
Ampak OK, tako da je pravzaprav dobra točka.
To je vredu.
Bomo nadaljuj s to logiko.
SO-
>> OBČINSTVO: Manj kot polovica.
DAVID Malan: Ja.
Torej, še če stran, bomo rekli, manj kot Smith, na levi strani Smith,
then-- poglejmo, je To bo zapletlo?
else if stran pride pred Smith, solza na pol, mečejo polovica?
>> OBČINSTVO: Mislil sem da je [neslišno].
>> DAVID Malan: slišim oba odgovora.
>> OBČINSTVO: Levo.
DAVID Malan: OK, vrgel stran levo polovico, kot Lakisa
že rekel, z leve strani pol, potem pa sem nekako
želijo, da pojdi to-- grem na desno.
Ali enakovredno, in sem malo malo nered začetka tukaj,
Sem dejansko želijo pojdite na korak 2 spet,
kjer je odprta za middle-- ali open-- ja, recimo, strani na sredini.
In to ga določa.
To ni več knjige.
To je samo polovica knjige, tako odprte strani na sredini.
>> else-- so skoraj tam.
Korak 6, else if strani prihaja po Smith, raztrga na pol, mečejo desno polovico,
potem pa pojdite na 2. korak.
drug izhod, četrti scenarij, če nimamo strani levo obrniti.
Torej bi lahko to čiščenje.
In moramo očistiti to gor.
To je zelo psevdokoda kodo, če vas bo, opis zelo visoki ravni.
Vendar pa na splošno zajame idejo.
>> In, še enkrat, v ta scenarij, smo ima pojem pogoj,
veja, vilice v cestnem prometu, zaradi česar decision-- če to gre na ta način,
else if, pojdi na ta način, else if, gredo v to smer.
In to je zelo pogost programiranje tehnika
odločiti, v katero smer iti, tako rekoč.
In imamo tudi nekakšno od zanka strukturo, v kateri
delamo vedno znova nekaj.
>> Zdaj pa se je izkazalo, veliko kot v tem primeru,
pri čemer super natančno je pomembno.
Vendar smo videli tudi nekaj da se držimo kliče abstrakcijo.
Kaj to pomeni, da poberem telefonski imenik?
Mi smo le nekako ob za odobrena v tej sobi
da ima ta neko semantično pomen.
Vsi mi samo nekako vedeti, oh, dobro, dvigni imenik.
Kaj to v resnici pomeni?
No, to res pomeni razširitev roko, skloniš, razširi prste,
ščepec knjigo med prsti, stand up, potegnite roko k sebi.
In smo lahko res Pedantan o tem,
Res pa super natančna o tem, kaj delam.
Toda vse te korake skupaj so kaj to pomeni, da poberem telefonski imenik.
>> In tako že prej, ko sem rekel, vsak teh prvih dveh izjav
si lahko predstavljamo kot nadaljuje ali funkcija,
res predstavlja tisto, kar smo da kliče abstrakcijo.
To je kot visoki ravni konceptualne opis problema, ki
dejansko pomeni kar nekaj korakov.
In tako tudi to je ponavljajoče teme v programiranju,
s katerim sem lahko napisati program uporabo sintakse kot this--
pick_up_phone_book ().
In potem skladenjsko sem bo ukradel nekaj
od večine programskih jezikov.
>> Zdaj, korak 1 izgleda še Več kot funkcijo
kot programer bi ga poklical.
Izgleda, da koda, da nekdo je dal ime in dana
se mi, da uporabljajo somehow-- v drugih besede, kar je linija sem izpostavil
predstavlja funkcionalnosti, ki morda Nisem niti izvajati sam.
Nekdo starejši, modrejši od me že pogruntal
kako izraziti pojem dvigovanja telefonski imenik.
In to je kot petih korakih sem raztresena off, off vrhu moje glave.
>> Ampak on ali ona že izvajajo to je tistih nekaj korakov
ime, pick_up_phone_book.
In oklepajev samo tisto, kar večina programerjev
narediti konec izjav, kot je ta.
Zdaj se lahko postavi na njegovo ali njeno ramena in nikoli več,
razmišljati o tem, kaj to pomeni da poberem telefonski imenik.
Lahko samo rečem, dvigni imenika.
In to je točno, kaj vse nas ljudje storili tukaj.
>> Ko smo bili verjetno 1 letnik, stara 2 leti,
nekdo je moral nas učijo, kaj je pomenilo, da poberem telefonski imenik.
In vse od takrat, smo odvzete stran
od tistih, ki zelo nezanimivo mehanske koraki.
In smo samo imeti intuitivno razumevanje
kaj pomeni pick up telefonski imenik.
>> In lahko ekstrapolirati zdaj bolj zapleten things--
izgradnje objekta.
Kot, da nekateri ljudje, da ima dejansko pomen.
Izvajalcem, arhitektov, da ima nek smisel.
In bi vedeli, kaj storiti, če Rekel sem, pojdi izgradnje objekta.
>> Vendar je večina izmed nas v prostoru ne bi se ukvarjajo s to stopnjo abstrakcije.
Morate povedati, nam je všeč go dobil lopata in pojdi na beton
in nohtov kosov lesa skupaj in karkoli drugega
je vključen v izgradnjo stavbe.
In to zato, ker nismo še ni bil programiran, da razumejo
kaj to pomeni za gradnjo stavbe.
Nimamo to abstrakcijo.
Nimamo te funkcije.
>> In kaj boste videli v programskih jezikov na splošno,
predvsem bolj moderni jeziki, kot so Java, PHP, Ruby in Python,
oni so veliko bolj zrel od starejših jezikih
kot C in C ++ in še druge.
In tako so prišli z več funkcionalnost zgrajena leta.
Več koda je napisana ljudje v preteklosti
da se lahko zdaj pokličete ali pokliče ali uporabo, kot sem namigovali
na s tem poudarila linijo tukaj.
In tako kljub temu, da ne govorimo o programskih jezikih na sebi,
Samo psevdokoda kodo, vse ideje so še vedno v tej razpravi.
In se izkaže, je natančnost super pomembno, saj je abstrakcija.
In poskusimo sporoči, da je, kot sledi.
>> Sem morda nehote razvajen to z utripanjem diapozitiv na zaslonu
prezgodaj.
Ampak naj zaprosi za pogumne prostovoljca, Če vas ne moti prihajajo.
Ti bi ispred Fotoaparat, če ste v redu s tem.
Bi kdo rad prišel gor in dati navodila za svojimi kolegi tukaj?
Samo, da pridejo sem in stati tukaj in reči nekaj besed.
>> Victoria je nasmejan najbolj in izogibanje oči najbolj.
Bi bili pripravljeni, da pridejo gor?
V REDU.
In če vsi ostali na svojih sedežih bi vzeti kos odpadnega papirja,
če hočete.
Podložen papir je v redu.
Pridi na ta način.
Ali nekatere papirja ti so imeli včeraj,
samo vsak prazen list papirja, če bi lahko.
In če ne boste imeli, samo vprašajte svojega soseda, če bi lahko.
>> Torej, v tem trenutku, za ta primer, Victoria
se dogaja, da igra vlogo programer, inženir, ki je
Treba si programirati vse, kar računalniki, nekaj narediti.
In bomo videli, kaj predpostavke ste se odločili, da.
Bomo videli, kako natančno se odloči, da bo.
In če je to dokaz gre pedagoško dobro, veliko napak
bodo, da bomo nato uporabili da kot priložnost za razpravo.
Toda izziv bi smeli je, da bi se izognili te napake,
je dober programer.
In tako izziv pri roki, če ti bi rad, da hodi tja,
je pred Victoria na zaslonu here-- in upam, da nihče od vas
se spomniš, ko sem zasvetil na zaslonu.
In ne obrne na vse, saj tam je še en zaslon v tej sobi
da lahko izklopite.
Torej ne obrne.
>> Pred Victoria je isti krik.
In njena naloga zdaj je, da vam povem vse na svojem kosu papirja, kaj pripraviti.
In bomo videli, na podlagi verbalne navodila sam,
računalniški program, če hočete, kako točno vaše risbe
are-- vaše izvedb so.
Smiselno?
>> OBČINSTVO: Ja.
DAVID Malan: OK, izvršiti.
>> OBČINSTVO: Nariši kvadrat.
>> [SMEH]
>> DAVID Malan: In ne Vprašanja se lahko vprašal.
Lahko storite le to, kar ste povedali.
Oh, in če imate današnji diapozitive Odpri v zavihku, ne glej na kartici.
V REDU?
>> OBČINSTVO: OK, narisali krog.
Slope-- lahko rečem pobočju?
DAVID Malan: do vas.
OBČINSTVO: pobočju.
In trikotnik.
>> DAVID Malan: V redu.
In ostal tu le za trenutek.
In bom prišel približno vsak trenutek.
In ni treba, da dajo svoje ime na njem.
Naj pridejo okoli in zbira svoje risbe,
Če vas ne moti jih trgajo ven.
>> Tukaj je tisto, kar smo dobili nazaj.
Bom projekt na zaslonu.
Vidim, kvadrat, krog, pobočje, in trikotnik.
Tako da je bil en odgovor tam.
In let's-- Ops.
Hvala.
Tu je še en izbor, in eno za njo.
>> Tako so vsi videti, da zajemanje duh.
Hvala.
Obstaja še en, in tukaj je še eden.
Razlaga naklon je malo drugačen, malo ukrivljenih.
In v katerem je bodisi zaradi izmed čudovito posebnost, s katero ste
opisano, ali pa si nekako videl, da prej, to je res
Kaj Victoria dejansko opisuje.
>> Toda zdaj, tiste, ki ni dobil čisto prav,
pa ponujajo nekaj pripomb tukaj.
Torej Victoria najprej dejal narisati kvadrat.
In zdaj, lahko sklepamo, zavoljo danes
da vsi vedo, kako narisati kvadrat.
Ampak to še ni povsem jasno, kajne?
Kako drugače bi lahko imeli potegniti trg, ali če
morda nekaj nejasnosti tukaj za računalnik?
OBČINSTVO: Lokacija in velikost.
DAVID Malan: Kraj, kajne?
Vsi, ki ste imeli papir neke oblike, splošno pravokotniki, vendar nekoliko
različnih velikosti.
Ampak zagotovo bi bili pripravljeni, če si hotel, velik kvadrat, morda
majhen kvadrat.
Mogoče je bilo zavrteti.
Ne verjamem, da smo videli, da.
Vendar pa bi bilo bolj diamant podobno, vendar še vedno, kljub temu,
matematično kvadrat.
Tako, da je bil verjetno dvoumen.
>> Potem je rekla, narisali krog.
Nekateri od vas si ga pripravi ob to, kar ni nerazumno,
ker ljudje mislijo ali brati od desne proti levi v večini jezikov, tako da ne
slaba ugibati.
Toda to krog bi lahko je znotraj kvadrata,
bi bilo okrog kvadrat, bi bila na drugem mestu
na listu, tako da verjetno dvoumna.
>> Slope bi lahko bil morda pri čemer največ svoboščin verbalno
s tem, kaj to pomeni.
In nekateri od vas razlagati je kot vijugasto črto
ali ravna črta ali podobno.
In potem trikotnik, preveč, bi lahko je usmerjen v poljubnem številu načinov.
Torej na kratko, tudi z nečim, si pogleduje in ste kot, wow, tako
preprosta, bi otrok pripravi tega tudi ne
res, če ste super, super prepričljiv
in povej računalnik točno, kaj naj naredim.
Torej, če bi lahko, če imate en list papirja, kaj je
poskusiti še enkrat.
In bom dal Victoria eno Drugi primer na zaslonu tukaj.
In spet, ne obrni in ne pogled na vaše diapozitive.
In bom ji trenutek za razmišljati o tem, kako opisati to.
Ne dovolite, da vidim strah v tvojih očeh.
>> [SMEH]
>> In še enkrat, tokrat vzvod nekatere od teh takeaways
in poskusite dobiti skoraj vse vsaj pravi odgovor.
>> OBČINSTVO: OK, vzemite kos papirja, poglejte
sredi tega kosa papirja.
Sredi tega kosa papirja, narišite kocko.
>> [SMEH]
DAVID Malan: Kaj smo se naučili?
Bili smo tako blizu.
OK, ponovi, če bi lahko, za vsakogar.
>> OBČINSTVO: Na sredini kos papirja narišite predmet,
ki izgleda kot kocke.
>> DAVID Malan: OK, to je vse dobiš za delo z.
Dovolite mi, da je analitično in ne toliko pomembno,
ampak da zahtevek da Victoria vsekakor
Zdi se, da razmišljanje v zelo odvzemi na visoki ravni, ki
ni nesmiselno.
Ker drugače, bi bili vsi precej disfunkcionalna,
Če smo morali biti še tako natančna z vsem, kar počnemo v svetu.
>> Ampak pravijo, pojdite na middle-- I mislili, da smo na tako dobri poti
tam, kot iti v samem središču strani, in nato pripravi kocko.
Torej, ona je razmišljanje z odvzemi, ker je še vedno si
kaj je na zaslonu, kot dejansko kocka.
Vendar pa je toliko možnosti za razlago tam.
In v resnici, tam je tudi veliko drugih načinov, kako lahko izražajo
to, kar bom predlagala v trenutku.
Torej, tukaj imamo eno inkarnacijo od picture-- whoops-- enega
inkarnacija slike, tako da malo tri dimenzionalnost z njim,
kar je lepo.
>> Tukaj je še ena, kjer imate Enako, čeprav je nekako odprto kocke.
Nekateri ljudje ga je malo bolj ravna, dvodimenzionalna.
In to je v redu.
Torej, res v Središče papirja.
Tale mislim, da bom podobno, ker če gremo tukaj,
To je tisto, kar jo je opisal.
Torej, zdaj, naj predlagajo, kako drugače smo lahko opisali ta položaj.
>> Nazaj v dan, eden izmed najbolj bolj pogosti načini, da se učijo programiranja
je za pisanje kode, piše linije navodil,
da je imela malo želva na zaslonu.
Logotip in druge variante to je ime jezika.
In želva živela v svetu.
>> Torej predvidevam to pravokotne Prostor je njegov svet.
In bi začeli z assuming-- I res ne vem, kako pripraviti želvo,
tako da je to, kot je ta.
In potem je dobil lupino in potem morda nekaj metrov.
Tako lahko to malo še znak na zaslonu.
>> In je predmet tega programski jezik
je prisilila želva iti gor, dol, levo, desno
in postaviti svoje pero ali pick svoje pero up,
da bi mu dejansko pripravi na zaslonu V tem zelo plosko pravokotne svetu.
Torej, kje sem mislil, da bi šel, in kje bi morali razmisliti potapljanje
navzdol za duševno pri opisovanju Navodila bolj na splošno,
Jaz bi zahteva, ki je dal svoj pero v middle--
in bomo znebili želva, ker ne morem zares
naj ga pripravi zelo dobro.
>> In zdaj, bi lahko kako drugače Pravim narisati kocko?
No, lahko bi rekli nekaj podobnega žrebanje diagonalno linija severovzhod, na primer,
ali na 45 stopinj navzgor.
In da bi me prišel sem.
In sem precej daleč od kocki.
Toda zdaj, lahko rečem nekaj kot obrniti za 90 stopinj v levo
in narišite črto enako severozahodno dolžine.
In sem lahko še naprej s podobnimi smereh.
In to ne bo enostavno.
In odkrito povedano, mi verjetno bi so tukaj že pet minut.
Ampak mogoče bi bi prišel do nekaj, kar se na koncu dneva,
konča pa kocka, vendar smo končal znotraj te abstrakcije
to narediti na tak nizko raven, da ne more zares
glej, kaj delaš, dokler celotna Stvar je pravzaprav tam na strani.
In tako je to splošno načelo, še enkrat, od programming-- to idejo
abstrakcije.
To je tako čudovito močan, ker še enkrat,
je pravkar rekel, narisati kocko, ki je vse nas precej bi zelo hitro grok.
Mi bi samo razumel, OK, narisati kocko.
Morda ne vedo usmerjenost, tako da bi se lahko malo bolj natančno,
vendar pa lahko na splošno sliko ali veste, kaj je kocka.
In to je koristno, ker če vsakič, ko
sedel kot programer na tipkovnici napisati kodo,
če bi morali razmišljati na tak nizko raven, nihče od nas
bi kdaj dobili kaj storiti.
In seveda, bi nihče od nas uživajo proces pisanja kode.
To bi bilo, kot je pisanje v 0 in 1-ih, ki odkrito rečeno ni bilo vse tako dolgo nazaj
ljudje so pisanje kode v 0 in 1 je.
In smo zelo hitro prišli do ti višji nivo languages--
C ++ in Java in drugi.
>> Torej, poskusimo to bolj enkrat samo flip tabel, tako da vse nas
imajo priložnost za razmislek V namesto na enak način.
Lahko dobimo še eno prostovoljca to Čas je, da pride do plošče in sestavi,
ne recitirati?
Ja, v redu.
Ben, pridi gor.
In, Ben, v tem primeru, ko vas obraz ploščo, ne poglej levo,
ne videti v redu.
Le to, kar je vaš kolegi tukaj povedati.
In za vse ostale v soba, zdaj so programer.
On je računalnik.
In slika sem tukaj izbral vnaprej je tale tukaj.
Oni samo-- razmišljajo na smešno šalo je vse.
>> Zato bi nekdo rad prostovoljec prvo navodilo
ali izjavo, da bi morali Ukaz Benova pero?
In bomo to storili skupaj, morda eno navodilo od vsakega posameznika.
Žal mi je?
>> OBČINSTVO: Nariši krog.
DAVID Malan: Nariši krog je prva stvar, ki sem slišal.
>> OBČINSTVO: Up top.
>> DAVID Malan: Up top.
OK, mi vam lahko izbrišete, razveljaviti.
In zdaj nekdo drug.
Dan, bi morali biti udoben ponuja naslednjo navodila?
>> OBČINSTVO: Seveda, pripravi center na dnu kroga,
z small-- malo majhnem prostoru od tega,
risanje ravne črte do tri četrtine poti navzdol krovu
rahel kot na levi.
>> DAVID Malan: Dobro.
>> OBČINSTVO: Rahlo kota.
>> DAVID Malan: Undo, Control-Z. V REDU.
Andrew, želite ponuditi do naslednjega navodil?
>> OBČINSTVO: Seveda.
Na dnu te črte, še rahlo angle--
whoops-- morda približno tretjino dolžine [neslišno]
rahlim kotom navzdol in kakor tretjine dolžine [neslišno].
Torej, ja, od te točke, potegnemo črto tretja
dolžine prejšnji linija nadalje levo.
>> DAVID Malan: To je v redu?
Premica, ki je v redu?
OK, Olivier, ki jih želite darovati naslednji?
>> OBČINSTVO: [neslišno] iz Dno kroga, [neslišno].
Risanje na desni strani z [neslišno] centimetrov.
>> [SMEH]
>> DAVID Malan: Mislim, da boš morali spremeniti, da je centimetrov tukaj.
>> OBČINSTVO: Stop.
>> [SMEH]
>> DAVID Malan: OK.
[? Ara,?] Hočeš darovati naslednji?
>> OBČINSTVO: Nariši [neslišno] Zgornji [neslišno] enaki.
[Neslišno] krog, pripravi na [Neslišno] in sestaviti [neslišno].
>> DAVID Malan: OK, ni več razveljaviti.
Naredimo eno ali dve več navodil.
Chris, ki jih želite ponuditi enega?
>> OBČINSTVO: Na dnu kroga, [neslišno]
pripraviti enako postavo slopping navzdol na levi [neslišno].
>> DAVID Malan: OK.
Andrew?
Mi did-- Karim?
>> OBČINSTVO: Od pravo linijo, Konec levega linije, dno,
ste šli prav glede enake dolžine kot to črto
ste, risanje na pravica [neslišno].
[Neslišno] stopinj, tako da [neslišno] stopinje na desni strani.
>> DAVID Malan: V redu.
Poglejmo premor.
Ne obračajte še okoli.
Oglejmo premor, in kaj je poskusite en drug poskus
preden smo razkrili, da Ben kaj mu je bilo risanje.
Lahko shuffle Ben do right-- ali dejansko,
no, pa si daj drug svet, še bolje.
Torej bi nekdo zdaj rad vzeti več pristopa
da je Victoria se je prej, kjer govorimo na višji ravni abstrakcije
in v samo stavka ali dva opisati z Benom
kaj pripraviti brez dobili v plevelov,
tako rekoč na to nižjo raven?
Victoria.
[SMEH]
OBČINSTVO: Nariši sliko za hojo človeka.
In noge in roke morajo biti na desni strani.
>> DAVID Malan: OK, to je vse dobiš.
V redu.
Zakaj ne bi razkrila, da Ben, kaj je naredil.
Torej aplavz.
To je bil najtežji morda.
>> Torej, čeprav govorimo V dokaj neumno pogoji
o samo risanje slike, upajmo, da
lahko resnično cenijo stopnjo izraznost, da bi bilo potrebno
da bi povedal, računalnik, kaj storiti.
In v resnici, je dejstvo, da je Ben je lahko to pripraviti tako hitro
je neke vrste dokaz, da se z uporabo jezik, morda višja stopnja
različica angleškega jezika, ki ga omogoča samo z besedami, ali slišal besede
od Victoria, ki mu omogočajo ti abstractions-- samo pripravi
številka hoja na right--, da je vrsta
nekateri semantični pomen, ki mu to ni Skoraj kot očitno, ko ste pravkar
pravijo, da vaš pero, pripravi v desno, pripravi na levi strani.
>> In tako tudi to je zelo pogosta pri programiranju.
To bi rekli, da je kot zelo nizko raven jezika, programiranje
v 0 in 1 je, če bo.
To pa bi bila višja stopnja programskem jeziku Java,
ali nekaj takega.
Malo poenostavljanje, ampak to je
neke vrste, kot so čustvene občutek, da se počutite, ko
z eno vrsto stvari ali drugo.
Malo frustracije tu potreba za tako natančnost, temveč možnost,
da se malo zguba z razlaga tukaj.
Seveda, hrošče lahko nastanejo kot posledica.
>> Če želite v home-- smo ne bo ta v class--
ampak če bi želeli bi to moštvo,
Mislil sem, da bi se potopili v to.
Torej, če želite, da igrajo to Igra v dvoje
ali otroci ali podobno, si lahko uživajo tudi to.
>> Torej, gremo naprej in pogled na eno zadnjih stvar tukaj za računskega mišljenja.
In to nas pripelje do Janeza Oliver, ne za posnetek
ste morda videli sinoči, vendar v nekoliko nedavni izdaji.
Nekaj ​​mesecev nazaj, Volkswagen je zelo malo neprebojnimi
čemu, če veš?
Kaj so dobili v težavah za?
>> Ja, tako emissions-- so skušali premagati emisij
Testi, ki jih v bistvu imajo svoje avtomobili onesnažujejo okolje manj
ko so se testira svoje avtomobile in onesnažujejo okolje bolj
ko se niso bili testirani avtomobili.
In kaj je bolj zanimivo v svetu, saj bi se lahko sklepalo
iz razprav like--, kar je it-- CarPlay, programsko opremo Apple za avtomobile
in dejstvo, da je veliko nas bolj
imajo zaslone na dotik v naših avtomobilih, tam je zastrašujoče znesek
programske opreme iz Ljudske avtomobili danes, ki je
odkrito odpira povsem pločevinko črvi, ko gre za varnost in fizičnim tveganjem.
Ampak danes, kaj je osredotočiti na samo tisto, kar je
vpleten v pisanje programske opreme da bi lahko gamed sistema.
>> Za opredelitev problem, za tiste, ki ne poznajo,
pa si oglejte John Oliver.
In za tiste, ki poznajo problem, da je pogled na to
na zabaven objektiv prek John Oliver, kot tudi.
Torej me udaril igra o tem, da mislim, tri minute uvod.
Prekleto.
[VIDEO PREDVAJANJE]
-Cars--
DAVID Malan: Očitno je, da na YouTube, it's--
- --the najpametnejši znakov hitro in Furious filmov.
Ta teden, Nemški avtomobilski Volkswagen znašla
v sredini škandal potencialno kazniva razmerja.
>> -Volkswagen Je Utrjevanje za več milijard v glob, morebitne kazenske ovadbe
za svoje vodstvo, saj družba opravičuje
za vrvja 11 milijonov avtomobilov pomagalo premagati preskuse emisij.
>> -določeni Dizelski modeli so bili zasnovani s prefinjeno programsko opremo, ki
Rabljeni informacije, vključno s položajem volana in vozila
hitrost, za določitev avto je bil v postopku testiranja emisij.
V skladu s to okoliščino, motor bi zmanjšali strupenih emisij.
Vendar je bil avto opremljene za obvoznico da ko je vozi.
Emisije povečal od 10 do 40 krat nad sprejemljivo raven EPA.
>> -Wow, 10 do 40-krat večja od EPA dovoljuje.
To je najslabša stvar Volkswagen je kdaj naredil,
je nekaj, kar bi lahko rekli, če ne bi nikoli slišali druge svetovne vojne.
Ampak mogoče najzanesljivejši znak, kako veliko težav Volkswagen je,
je, da ljudje na zelo top so odstopil.
Direktor odstopil v sredo po kodiranja storiti nadzorovanje škode,
pravijo, da je bil neskončno žal, ki zvenel super, dokler se je izkazalo
je bil le 10% žal vendar so opremljene usta
umetno napihuje svoje sorriness.
In medtem, Volkswagen ZDA Glavni imela opravičilo svojega.
>> -Naj Je bilo jasno, o tem, naše podjetje je bilo nepošteno.
In v mojih nemških besed, smo so popolnoma zajebali.
>> Ja, ampak popolnoma zajebali se niso nemška dela.
In nemški jezik Ima veliko lepih stavkov
za opis situacije, tako kot je ta, kot [Nemčija], kar pomeni približno,
žalost, ki prihaja od povezanih poslovnih laži,
ali [Nemčija], kar pomeni kot sramotenja posameznikovo očeta, ki vključuje
oblaki bencina.
To je lep jezik.
Samo pluje off jezika.
In mimogrede, medtem ko je ta človek je opravičilo morda zvenel iskreno,
je treba omeniti, da je bil govor na uradni začetek stranka za leto 2016
Volkswagen Passat, kar pomeni, da v kratkem Po rekel mi je, da je to rekel.
>> Hvala lepa za prihod.
Uživajte večer.
Up Naslednja je Lenny Kravitz.
>> [GLASBA]
>> -OK, OK, se konča vaš opravičilo z največ Naslednja
Lenny Kravitz ne scream trezen kesanja.
To kriči, smo prosili Bon Jovi, in je rekel ne.
Znamka Volkswagen je bila hudo poškodovana.
In odkrito povedano, njihov novi oglas akcija ni ravno pomagal.
>> - [Nemčija], smo na Volkswagen bi rad opravičiti za vas vara z
naša vozila.
>> [END PREDVAJANJE]
DAVID Malan: Torej, to je bila krožišče način of-- sorry--
to je krožišče način uvedbo temeljni problem
v programski opremi, ki je, da vas potrebujejo za odkrivanje določene pogoje.
In tako je vprašanje pri roki tukaj je, kako se avto potencialno
kot se izvaja v programski opremi ti programerji,
ugotovila, da je to dejansko testirali?
Tako, da je super jasno, kaj so počeli
je bil, v okoljih, kjer programerji pogruntal
avto je pa testirajo, so nekako na
avto oddaja manj emisij, manj emisije, zato manj strupeni hlapi
in podobno.
Toda, ko je ponavadi vožnjo po cesti,
da bi samo oddajajo toliko onesnaževanja, kot je želela.
>> Torej, kako bi lahko napisati psevdokoda za ta algoritem?
Kako bi lahko napisali psevdokoda za programsko opremo, ki teče v avtu?
Mislim, na kratko, zavre navzdol, da kaj takega.
če se preskuša, oddajajo manj.
drug oddaja več.
Ampak to je malo previsoka raven, kajne?
>> Poskusimo se potopite v tem, kaj je to abstrakcija, da so preizkušene načine.
Z drugimi besedami, tudi če veš nič o avtomobilih, kakšne vrste vprašanj
Morda vas prosim, da se ugotovi, če Bili ste testirali, če ste avto?
Katere značilnosti lahko predstavi, če je avto, ki se preskuša?
>> OBČINSTVO: testiranje opreme.
>> DAVID Malan: testiranje opreme.
Torej, če testna oprema v bližini, nato pa oddajajo manj.
Tako sem mogel predstavljati izvajanju da z neke vrste fotoaparatov
ali odkrivanje, kaj je okoli vas.
In mi predlagala, da Samo čuti preveč zapletena
dejansko imajo dodatne strojno opremo samo za ta namen.
>> OBČINSTVO: Če ste v park, če je vaša napa je odprt.
>> DAVID Malan: V parku ali hood odprta, tako da je dobro.
>> OBČINSTVO: In avto teče.
>> DAVID Malan: Torej, da je malo več concrete-- in avto teče.
Torej bi bilo to konjunkcija malo drugačni pogoji, če hočete.
Torej, če je avto v parku, in celo čeprav je to zelo mehansko stvar
običajno, sem lahko zamisliti pisanje programske opreme,
še posebej zato, ker je Pogosto lahke tam te dni,
Sem mogel predstavljati, da bi bilo programska oprema, ki lahko poizvedbo transformator
ali kaj ne, si v parku, so ste v pogonu, si v obratnem vrstnem redu.
In lahko dobim nazaj odgovorili, da je ali da
ali ne na tiste vrste vprašanj.
>> In tako sem lahko verjetno tudi odgovorili vprašanje, kot je pokrov odprt.
Mogoče, da je neke vrste senzorja da niti mi daje nazaj 1 ali 0,
pravilna ali napačna, pokrov je odprt.
In potem avto deluje, bi lahko zaznal da nekako po kakšnem mehanizmu?
Kot, avto teče, I lahko zazna, da je na,
sem lahko zazna nekako da se avto premika?
>> Občinstvo: RPM.
>> DAVID Malan: Ja, tako da je vedno, da je igla, ki
vam pove, koliko obratov na minute kolesa doživljajo.
In tako sem lahko poglej to.
In če to ni 0, da verjetno pomeni, da je avto premika.
Vendar moramo biti malo tam previdni,
because-- pa poenostaviti this-- če smo pravkar rekel, če avto teče,
ne želimo samo oddajajo manj, želimo, da če avto teče
in to je, ki se preskuša.
>> Torej, obstaja nekaj drugih sestavine, da ljudje
so predpostavili, programsko opremo počne, zaradi odsotnega dejansko izvorno kodo,
lahko le nekako sklepati iz fizikalne učinke avtomobila glede tega, kaj
Morda se dogaja pod pokrov v programski opremi.
Torej, če avto teče in morda, recimo, zadnja kolesa ne premika,
to lahko kaže neke vrste test?
Kaj sem namiguje na tu?
Ja, mogoče, da je na eno od teh valjev stvari,
kjer kot kolesa se obračajo spredaj ali zadaj,
glede na to, da je sprednje kolo ali pogon na zadnja kolesa, tako da polovica koles
se gibljejo, vendar druga dva nista, ki
je čudno stanje v resničnem svetu.
Če ste vožnjo na v cestnem prometu, da ne bi smelo zgoditi.
Ampak, če ste v skladišču na neke vrste sistem valja,
ki bi lahko res zgodi.
>> Mislim, da ljudje predlagal tudi, da je mogoče, če avto teče in krmiljenje
kolo brez premika, da Tudi je lahko signal
ker je to smiselno kot takoj izvajati na cesti.
Toda tudi takrat, človek je verjetno to se gibljejo malo ali gotovo
v nekaj sekundah.
Ali teku minute, verjetnost, da je ne
dogaja, da se fiksira v popolnoma enak položaj.
>> Torej z drugimi besedami, lahko substraction,
Ste se preskuša, in razčleniti to funkcionalnost
V te sestavne sestavine.
In to je res tisto, kar Volkswagen inženirji nekako naredil.
Napisali so programsko opremo zavestno odkriti, če je vozilo, ki se preskuša,
zato oddajajo manj, ostalo oddajajo na običajen način.
>> In problem tudi tukaj, je, da je programska oprema ni
nekaj, kar bi lahko res videli, če imate tako imenovano izvorno kodo.
Torej je dva različna tipa code-- vsaj dve različni vrsti
kode na svetu.
Obstaja nekaj, kar ti vir Koda, ki ni v nasprotju s kakšnimi
smo bili pisanjem izvorne kode.
>> To je izvorna koda napisana v jezik se imenuje psevdokoda,
ki je le nekaj angleško-podobnega.
Ni formalna definicija tega.
Vendar C in Java, C ++ tistih so vse uradne jezike, da
ko pišete v njih, kaj imate je besedilna datoteka, ki vsebuje izvorno kodo.
>> Obstaja pa tudi nekaj v svet imenuje stroj kodo.
In strojni kodi, žal, je samo 0 in 1 je.
Torej strojni kodi, je kaj stroji razumeli, seveda.
Izvorna koda je tisto, kar ljudje razumejo.
>> In na splošno, ne pa tudi vedno obstaja program
da programer uporablja, da je vir kodo in jo pretvori v strojno kodo.
In, da je program na splošno imenujemo prevajalnik.
Torej vaš vnos je izvorna koda, vaša proizvodnja je strojni kodi,
in prevajalnik je kos programska oprema, ki pa ta proces.
Torej, to dejansko karte lepo, da naši vhodi, algoritmi, izhodi.
>> Ampak to je zelo specifična inkarnacija od tega, kar pomeni, da,
tudi če ste lastnik enega od Volkswagen avtomobile, ki je kriv za to,
to ni všeč, si lahko samo odprete hood ali uporabnikovo priročnik odpreti ali iskati
Na izvorni kodi, saj s časom doseže svoj avto v svojem dvorišču,
to je že pretvori v 0 in 1 je.
In to je zelo težko, ne pa nemogoče, vendar zelo težko zbral veliko kaj
iz samo da si na podlaga 0 in 1-jev.
Tako da lahko ugotovimo, v končni fazi, če boste razumeli, kako stroj operates--
Intel inside-- če razumete Intel arhitektura,
ampak to je zelo zamudno.
In tudi tam, boste morda ne bo mogel videti vse
da se lahko koda dejansko narediti.
>> Vsa vprašanja o tem, ali je to vrsta postopka bolj splošno?
In dejansko smo lahko tie to razpravo na včerajšnji razpravi Apple.
Tudi to je razlog, zakaj FBI ne more samo pojdi in poglej v osumljenca telefon
in najti vrstic kode, za primer, ki omogočajo geslo
ali omogočajo, da 80 milisekund zamudo.
Ker do takrat, ko je na kolegi iPhone,
to je že pretvori v 0 in 1 je.
>> No, premor tukaj za naše poglej računskega mišljenja.
Zakaj ne vzamemo 15 minut odmora.
In ko se vrnemo, bomo si oglejte programiranje
sama po sebi in začeti na zemljevid nekatere konceptov teh visoki ravni
do dejanskega, če igriv, programski jezik.