DAVID Malan: Mirë se vini mbrapa, të gjithë. Kështu dje, ju do të kujtojnë se ne u përqendruam në këto tema ketu. Kështu që ne kishim katër topics-- gjithëpërfshirës privacy, të sigurisë, dhe shoqëria; teknologjitë e internetit; cloud computing; dhe në fund të fundit, web zhvillim. A dikush kanë Bandwidth ose koha për të parë një Gjoni pak Oliver natën e kaluar? Kjo është në fakt mjaft zbavitës, nëse nuk është pak e frikshme. Çdo pyetje mbi çdo gjë ne e bëmë dje? Çdo sqarime? Çdo pyetje që ju dëshironi të bëni sigurt prekim sot në një formë? propozoj në mënyrë të pastër. Pra, çfarë është në rendin e ditës për sot? Kështu që mendova që ne do të fillojmë sot me një vështrim në atë që është në përgjithësi i njohur si thinking-- kompjuterike në rreziku i thjeshtëzuar, duke menduar si një kompjuter, ndoshta duke menduar si një inxhinier, dhe duke u përpjekur për të filluar për të organizojnë mendimet tuaja ose të ju jap një kuptim më të mirë të çfarë është e përfshirë në fakt komanduese një kompjuter për të bërë diçka me anë të programimit. Dhe ne do të mbajë atë në një goxha nivelit të lartë, pretty much Anglisht, por të përpiqet për të përdorur të njohur Shembuj të formalizuar si ju do të shkoni në lidhje me zgjidhjen e problemeve. Dhe ne do të rishqyrtojnë disa CS tema, si abstraksion, e cila erdhi një çift herë dje, algoritme, dhe pastaj përfaqësimi. Dhe kjo është ajo ku ne do të fillojmë sot në një moment të vetëm. Pastaj ne do të hedhim një vështrim në programimin. Ne do të marrë një vështrim në disa konstruktet themelore me të cilën ju mund të jetë i njohur dhe mund të gjeni edhe shumë intuitive. Ne do të shohim, në fakt, në programimin e mostrës Mjedisi kjo është shumë e kuptueshme, shumë të gjallë, dhe në shënjestër të vërtetë për moshat 12 dhe lart. Ne do të kaloni disa minuta ka dhe pastaj të marrë gjërat në një nivel më të ulët dhe në fakt flasim për disa nga algoritme dhe strukturat e të dhënave, mënyrë që të flasin, se programuesit zakonisht përdorin për zgjidhjen e problemeve shumë më tepër efikase se sa ju mund të të jetë në gjendje të bëjë pa to krejt. Pastaj, pas drekës, ne do të hedhim një vështrim në oxhaqet e teknologjisë, e cila është vetëm një mënyrë e sofistikuar për të thënë koleksionet e teknologjive që ju mund të përdorni për të zgjidhur disa probleme. Dhe ne do të flasim për alfabetin supë e gjuhëve që ekzistojnë today-- Java dhe Python dhe C ++ dhe PHP dhe Ruby dhe të gjitha llojet e gjërave të tjera. Ne do të marrë një sy shkurtimisht në modelet e projektimit. Programatorë dhe me kalimin e kohës, kanë metodologji të miratuar që kanë tendencë për të ndihmuar ata zgjidhjen e problemeve më të lehtë. Kur ju filloni për të parë veten të shkruar të njëjtin lloj të kodit përsëri dhe përsëri, njerëzit formalizuar këto përsëritje dhe emrat jepini tyre dhe pastaj të përdorin ato dhe promovimin e tyre, në fund të fundit. Dhe ne do të flasim pak në lidhje me strategjitë celular, si çfarë do të thotë që në fakt të bëjë një app celular ose një faqe interneti celular. A bëni atë për Android? Do të bëni atë për iOS? Do të bëni atë për të dy ata? Dhe cilat janë të tregtisë të humbura? Dhe pastaj në fund, ne do të marrin një web programimit look, e cila është një term kolektive të vërtetë të përshkruar çdo kohë ju shkruani software që është do të thotë për të kandiduar në web, nëse në telefonat ose Desktop apo laptopë. Ne do të marrë një vështrim të shkurtër në bazat e të dhënave dhe dizajn në të, në qoftë se vetëm për shkak se pothuajse çdo web-bazuar kërkesën interesante këto ditë ka një lloj të dhënave. Përndryshe, ajo do të vetëm të jetë i kënaqur statike. Dhe një bazë të dhënash ju lejon të bëni ndryshime me kalimin e kohës, nëse veten ose nga përdoruesit. Dhe ne do të konsiderojmë se si ju do të shkojë në lidhje me hartimin e se baza e të dhënave dhe lloji i zhargon që mund të dalë në një inxhinier-së Diskutimi në një bord të bardhë kur në fakt zbatimit një app për herë të parë. Ne do të flasim shkurtimisht për TV, shërbime të dobishme që ju mund të përdorni për të qëndruar në anën supet e të tjerëve, nëse kompanitë ose individë, dhe zgjidhjen tuaj Problemet e vet më shpejt. Dhe pastaj ne do njom ndoshta pak me JavaScript, një gjuhë programimi që përdoret të dyja në shfletuesit këto ditë, por edhe në serverat. Dhe ndoshta, ne do të sërish, koha e lejuar, disa nga duart-në sende web ne bëri dje dhe integrimin e dy së bashku para se të shtyjë. Pra, me that-- çfarë është ahead-- është ka munguar gjë që ju do të donte për të siguruar që ne të futur dhe prekin në një pikë. Nëse është e burime në mendje, sjellë atë para se të gjatë. Por pse nuk kemi filluar me një shikoni në të menduarit kompjuterike. Dhe më lejoni të propozoj që menduarit kompjuterike është, përsëri, lloj i përshkrimit të nivelit të lartë të çfarë mund të bëni një shkencëtar kompjuteri. Dhe me të vërtetë, le të fillojë me tre përbërësit që mund të shkojnë në të menduarit kompjuterike. Kjo është vetëm një mënyrë për të përshkruar atë. Ne sigurisht që mund të përcaktojë këtë në ndonjë numër të mënyra. Por më lejoni të propozojë, për hir të sotme, se problemet e botës, të gjitha problemet e botës, Kur iu afrua nga një shkencëtar kompjuteri mund të të shihet si ajo që ne do të inputet e thirrjes, e cila duhet të merrni të futen në atë që ne do të thërrasë algoritme, të cilat pastaj prodhojnë rezultate. Me fjalë të tjera, e gjithë Bota e zgjidhjes së problemeve I kërkesës mund të distiluar në këto tre përbërësit. Pra, çfarë do të thotë me inputet? Inputet është vetëm ajo që ju jeni dorëzuar në mënyrë për të zgjidhur. Për shembull, këtu është një problem i vjetër e shkollës. Nëse unë kam një libër telefoni këtu dhe Unë dua të të duket diçka në të, kjo është input tim. Unë kam 1000 apo më shumë faqe në një libër telefoni. Kjo është input për problemin tim. Dhe unë dua të gjeni diçka si Mike Smith, kështu një mik emri i të cilit dhe numri është shpresojmë se në këtë libër adresë. Kjo është para ditëve të qelizës telefonat, kështu që unë nuk mund vetëm të kërkuar për të. Pra, unë kam për të bërë atë të vjetër shkollë dhe në fakt kërkimi këto inpute për disa përgjigje. Dhe kjo përgjigje është vetëm do që do të quhet prodhimi. Pra input është libri më i telefonit. Algorithm është çdo grup i Hapat I përdorur për të gjetur Mike Smith. Dhe prodhimi është, me shpresë, Numri i Mike Smith telefonit. Dhe kjo pastaj do të jetë vetëm përfaqësues nga më ndonjë problem për me ju jeni inputet dorëzuar dhe duan për të prodhuar rezultate. Pra, para se të konsiderojmë se procesi me të cilin ne mund të zgjidhim këtë problem, gjetjen e Mike Smith dhe diçka të tillë, le të konsiderojmë të parë dhe inputet last-- dhe rezultatet. Fizikisht, natyrisht, të dhëna këtu është një bandë e tërë e letrës ngjitur së bashku ne formen e nje libri telefonit. Por kompjutera, laptopë course-- dhe desktops dhe madje edhe telefonat këto days-- ato janë pajisjet elektronike. Dhe në fund të ditës, çfarë është i vetmi input për një kompjuter? E pra, kjo është diçka si kjo kabllo të energjisë këtu. I plug it në mur, dhe Unë të marrë një rrjedhë e elektroneve, e cila lejon mua për të drejtuar makinën. Apo ndoshta ata janë elektronet krijuar me anë të baterisë tim. Por në fund të ditës, kjo është e vetmja gjë që shkon në laptop tim. Dhe shumë interesante Stuff është në fund të fundit del, qoftë me anë të printerit ose ekran apo audially apo si. Pra, nëse të gjithë ne kemi si tona input themelore për një kompjuter të energjisë elektrike, në mënyrë të drejtë elektronet në vazhdim e sipër dhe ose jashtë, dhe kështu që si mund ta përdorim atë input që në fakt paraqesin informacionin? Me fjalë të tjera, si mund të merrni nga një rrjedhje e thjeshtë të energjisë elektrike për të përfaqësuar aktuale numra ose shkronja aktuale ose imazhe aktuale në ekran ose filma aktuale ose e-mail ose ndonjë numër nga këto Konceptet e nivelit më të lartë, nëse do, që më së fund të ditës në një farë mënyre kanë të ruhen në këtë pajisje elektronike mekanike duke përdorur vetëm ato ingredients-- thjeshtë elektronet që vijnë në dhe jashtë? Pra, kjo do të duket se, në formë të thjeshtë, lloji i vetëm i shteteve Unë kam në botën time, kështu që të speak-- kushtet në world-- im është ose Unë kam elektronet rrjedhin, energji elektrike rrjedhin, apo të bëj not-- kështu me radhë, off. Dhe le të zyrtarizojë në dhe jashtë, si një shkencëtar kompjuteri mund, me vetëm 1 dhe 0. Le të përshkruajmë disa arbitrare por numri në përputhje me të. 1 do të thotë më, 0 do të thotë off. Ose ju mund të shihni këtë si Mjetet e vërtetë në dhe mjetet e rremë. Ju gjithashtu mund të bëjë të zezë dhe të bardhë apo të kuqe dhe blu. Ju duhet vetëm dy përshkruesve. Dhe disa shkencëtarë kompjuter do përgjithësisht përdorin vetëm 0 dhe 1. Pra, në qoftë se është rasti, alfabeti im i vetëm është e përbërë nga 0 dhe 1-së, si mund unë ndoshta të merrni për të edhe numrin 2 në një kompjuter, e lëre numri 3 ose një letër e alfabetit ose një imazh apo një film? Si mund të lloj bootstrap veten nga ky parim themelor nga 0 dhe 1-të dhe në fakt përfaqëson diçka më interesante? E pra, le të vënë këtë pyetje në pritje për një moment të vetëm dhe e konsiderojnë diçka me shpresë të njohur, edhe në qoftë se ju nuk e keni menduar me të vërtetë në lidhje me në çdo detaj për 10, 20, 30, 40, 50 më shumë vjet. Kjo është ajo? Si do ta shpallë atë? Nuk është një pyetje mashtrim. Numri, por çfarë është ajo? 1, 2, 3, ose 123. Dhe unë i pëlqente se si ju tha 1, 2, 3, sepse kjo është një mënyrë për të parë atë. 1, 2, 3, eshte nje sekuence e tre simboleve. Është fotografi që ne tani kanë fjalë për. Dhe në qoftë se ju lloj i lexuar të gjithë së bashku, një njeri tipik në anglisht do të thotë 123. Dhe kjo është lloj i një Koncepti nivel më të lartë, ndjehet si një numër të arsyeshme të madh. Por, si e kemi arritur atje? E pra, ajo mund të jetë një kohë që ju keni menduar për këtë si kjo, por përsëri në ditën e mia, I lloj mësuar këtë si kolonën e 1 e, 10 e kolona, ​​dhe kolona 100 s. Pra, siç thotë Lakisa, është 1, 2, 3, por është gjithashtu 123. Por si nuk kemi marrë nga ish këtij të fundit? E pra, ju do të bëni në mënyrë tipike në kolona 100, unë kam një 1. Pra, kjo është si të thuash 100 herë 1. Dhe pastaj në kolonën 10 të, kam 2. Pra, kjo është si të thuash 10 herë 2. Në kolonën e 1 e, kam 3. Pra, kjo është si duke thënë se 1 herë 3. Dhe në qoftë se unë të shtoni këto gjëra së bashku, kjo, natyrisht, është 100 plus 10 plus 3. Dhe oh, kjo është arsyeja pse unë të marrë këtë Nocioni më i lartë niveli i 123. Është vetëm matematikë themelor, ku këto Simbolet kanë peshave të tyre, nëse ju do, placeholder apo vlera kolonë. Dhe një herë unë shumohen gjithçka jashtë, unë të marrë këtë numër. Pra, si shumë prej jush e dini se si për të folur binary-- 0 dhe 1's-- si një kompjuter? OK, i përsosur, askush, apo askush nga ju mendoni se ju bëni. Por unë do të të thonë në fakt e dinë këtë tashmë. Ne vetëm duhet të lloj shkulje modeli ynë mendor pak. Por procesi është saktësisht e njëjtë. Më lejoni të lënë këtë një deri atje dhe në vend që tërheq këtë poshtë për një moment. Në botën e kompjuterëve, ne kemi vetëm 0 dhe 1 i. Dhe kështu ajo që është do të ndryshojë është se çfarë? E pra, në botën time njeriut, sistemit decimal, dhjetor kuptimi 10, Unë kam si shumë shifra në dispozicion tim? 10, apo jo? 0 deri 9, natyrisht. Dhe kjo është arsyeja pse ne kemi vendi 10 dhe vendi i 100-së. Ku që vjen nga? E pra, kjo është 10 për fuqinë e 0. Kjo është 10 me fuqinë e 1, 10 për fuqinë e 2, dhe kështu me radhë. Ju vetëm i mbajnë shumëzuar kolona tuaja me 10, duke filluar nga jashtë me vetëm 1 në një rightmost këtu. Pra, në botën e kompjutera, në qoftë se ju vetëm kanë kuptimin binary-- bi 2-- ose 0 dhe 1-së, ne vetëm me të vërtetë nevojë për të ndryshuar baza e kësaj matematikë. Pra, me fjalë të tjera, tani ne vetëm do të kanë kolonën e 1 dhe the-- Ku është kjo going-- shtyllën e 2 së, kolona e 4 të, dhe ndoshta më gjerë. Pse eshte ajo? E pra, kjo është 2 pushteti 0-të. Kjo është 2 1. Kjo eshte 2 me 2, etj. Kështu, ndërsa këtu, ne kemi 1, 10 e, 100-së, 1000-së, 10.000-së, 100.000-së, 1 miliona, dhe kështu me radhë, këtu ne kemi 1, 2, 4, 8, 16, 32, 64. Ju vetëm i mbajnë shumëzuar me 2, në vend të mbajtur shumëzuar me 10. Deri tani, në qoftë se qëllimi në dora është për të përfaqësuar numrat duke përdorur vetëm 0 dhe 1-së, le të shqyrtojmë se si ne të merrni atje. Kjo, sigurisht, është model 0 0 0, por ajo që numri konceptualisht nuk përfaqëson? Well, 4 herë 0 plus 2 herë 0 plus 1 herë 0, le të shtoni ato së bashku. 4 herë 0 është, natyrisht, 0, plus 2 herë 0 është, natyrisht, 0 plus 1 herë 0 është, natyrisht, 0. Pra ah, kjo përfaqëson Numri ne njerëzit e di si 0. E pra, tani, le shumë përpara me shpejtësi të shpejtë. Nëse unë nuk jam në vend që përfaqësojnë 0 0 0, por le të bëjmë 1 0 1, që mund të jetë si Lakisa, më parë, vetëm do të shpallë atë 1 0 1. Por tani, si nuk kemi marrë atë në më të lartë nivelit numrin ne njerëzit mund të dini? Pra, çfarë është ky numër? Është 5, numri ne e dimë si 5. E pra, pse është kjo? E pra, ne mund të vërtetë lloj ecin nëpër atë mënyrë metodike 4 herë 1, 2 herë 0, 1 herë 1. Shtoni ato së bashku, në mënyrë që kjo është 4 plus 0 plus 1. Dhe kjo është, në të vërtetë, 5. Pra, kjo është duke marrë një pak i lodhshëm tani bërë aritmetikë përsëri dhe përsëri. Por procesi është saktësisht e njëjtë. E vetmja gjë që ka ndryshuar në botën tonë është se kolona të jane 1, 2, 4, 8, 16, e kështu me radhë, në vend të 1, 10, 100, 1,000. Dhe kjo është vetëm për shkak se alfabeti ynë ka zvogëluar nga 0 deri 9 për të vetëm 0 në 1. Pra, si një quiz pak këtu, si do të përfaqësojnë numrin 7 në binar? 0? E pra, 0, do të thotë 0 0 0? Thonë se ai përsëri, Karina. Perfect. Pse eshte ajo? Kjo është në mënyrë efektive 4 plus 2 plus 1. Shume mire. Si mund të paraqesin pak another-- si në lidhje me numrin 2? Afër, por prapa. Pra, çfarë është kjo? Është 4 plus 1, kështu që është 5 herë. Kështu what's-- Më vjen keq, Karina? 0 1 0. 0 1 0 do të ishte 2, për shkak se një herë, edhe në qoftë se ajo lloj nuk do të hidhen jashtë në ju, vetëm të bëjë matematikë. 4 herë 0, 0, 2 herë 1 është 2, 1 herë 0 është 0. Pra, ky është numri që ne e dimë si 2. Si në lidhje me numrin 8? Hm? Të mirë. Pra, ne lloj i duhet një placeholder. Ne kemi nevojë për 1 0 0 0. Dhe kjo është e vërtetë të sojit tonë e sistemit të vjetër dhjetore shkollore. Si mund të përfaqësojnë numrin 1,000? E pra, ju do të duket të jetë lloj në një vend të vështirë, nëse ju pyes për të përfaqësuar numri 1000, sepse edhe në qoftë se ju jepni vetes si 9 prej tyre, 9 prej tyre, 0 nga këto, që është numri më i madh që kanë, ju nuk e keni mjaft të marrë në 1000. Pra, nëse ju 1,000, ju vetëm duhet një tjetër pozita, kështu që ju mund të bëni 1 0 0 0, ergo the number 1,000. Pra, tani, le të ndajë këtë lloj të Diskutimi konceptuale përsëri në hardware, ku përsëri, input ishte vetëm kjo pak kabllo të energjisë, të energjisë elektrike vijnë në dhe të rrjedhin jashtë. Dhe në mënyrë që kjo të jetë plotësisht nga këtu atje, mirë, çfarë ne duhet të vërtetë? E pra, ju mund të mendoni për të qenë në brendësi të një kompjuter, një bandë e tërë e llamba, nëse ju do. Ata janë quajtur me të vërtetë transistorëve. Dhe transistorëve janë vetëm switches që mund të jetë ose në ose off. Kështu që ju mund të mendoni një tranzitor që është në është lejuar të energjisë elektrike të rrjedhë dhe të një tranzitor që është jashtë si u ndalur energjisë elektrike nga rrjedhin. Dhe në vend se të marrë mbi dritat këtu, pse nuk e bëj këtë lloj e stilit të ri shkollor. Pra, kjo mund të jetë një 1, një elektrik dore qenë në, vetëm mezi pse. Dhe kjo mund të jetë një 0, dhe tani është off. Pra, duke përdorur këtë pajisje fizike, I tani mund të paraqesin sistemin binar. Unë vetëm nevojë për dy shtete. Nuk ka rëndësi se çfarë ngjyra është ose çfarë është ajo. Të gjitha që ka rëndësi është se unë kam një shtet në një shtet tjetër dhe off. Pra, duke përdorur telefonin tim këtu, si mund ta përfaqësojnë numrin ne e dimë si 0? Ose vënë ekuivalente, çfarë Numri jam unë që përfaqëson tani? 0, sepse pajisja është jashtë. Dhe në qoftë se unë bëj këtë? Dhe tani, si mund ta përfaqësojnë numrin 2? A mund ta marr telefonin tuaj këtu, siç kemi bërë dje? Pra, le të shohim, kështu që nëse unë dua të përfaqësoj numri 2, është ky numër 2? Jo. Çfarë numri jam aksidentalisht përfaqësuar këtu? Kjo në fakt është numri 3. Kështu që një dua të fikur? Telefoni zezë or-- mirë, në qoftë se they're-- telefoni i zi ose telefoni bardhë? Telefoni bardhë. Pra, nëse unë të kthehet këtë off dhe ne Linja atë deri këtu, ne kemi një 1 në vend të 2 dhe një 0 në vendin e 1 e. Dhe kështu që unë jam tani përfaqëson numrin 2. Dhe kjo, Sigurisht, do të jetë numri 3, sepse tani të dyja këto drita janë në. Dhe unë do të ndalet këtu, por ajo qëndron për arsye në qoftë se unë dua të përfaqësojë numër 4 ose 8 ose më e lartë, Unë do të duhet më shumë telefona. Por kjo është e gjitha që po ndodh. Pra, nëse ju keni dëgjuar ndonjëherë se brenda a-- falenderoj kompjuter ju, duke filluar është miliona transistorëve, kjo është vetëm miliona ndizet vogël pak. Dhe ata nuk janë të lehta bulbs që të kthehet në dhe jashtë, por ata do të lejojnë të energjisë elektrike të rrjedhin diku ose të ndaluar atë. Dhe kështu që nuk ka dy tuaj Bashkuara-- në ose jashtë, ose off. Pra, ne do të duket tani të ketë këtë aftësi për të përfaqësuar këtë koncept që ne do të donim në hardware aktuale. Por të gjithë ne kemi tani është aftësia për të përfaqësuar numrat do të duket. Pra, si do të shkojmë për të përfaqësuar shkronjat e alfabetit, të cilat ndjehet si lloj tjetër të funksion të do të doni të shtoni në një kompjuter modern një herë ju kanë numra? Dhe me të vërtetë, në qoftë se ju mendoni rreth ajo, historikisht, kompjutera u njohën me të vërtetë për të shërbyer si calculators numerikisht. Por sigurisht, këto ditë, ata e bëjnë shumë më tepër. Edhe kur ata boot up, ju zakonisht të parë një ose më shumë fjalë. Pra, si ju paraqesin fjalë, në qoftë se të gjithë ju duhet është, përsëri, energjisë elektrike në fund të ditë, ose ekuivalente 0 dhe 1 i? Po. Po, Unë do të thotë, ne lloj i bëmë këtë dje në një formë, ku në një pikë, Unë mendoj se unë në mënyrë arbitrare tha se, në qoftë se ne duam të përfaqësojë Letra A, ne mund vetëm thirrje që një 1. Ajo ishte në kontekstin e kriptografisë, ku ne vetëm e nevojshme një lloj kodi, një lloj i hartës. Kështu që ndoshta A do të përfaqësohet si 1, dhe B do të përfaqësohen në 2, dhe Z do të përfaqësohet si 26, për shembull. Dhe pastaj Caveat vetëm është se në qoftë se unë jam do të shifroj letra në email tim ose në mesazhet e mia tekst si numrat, ju të gjithë duhet të bien dakord për të përdorur njëjti grup i konventave. Dhe me të vërtetë, bota ka bërë pikërisht këtë. Ka një sistem në botë quajtur ASCII, American Standard Kodi për Informim shkëmbimi, e cila është thjesht një vendim i disa vjet më parë se njerëzit që bënë vendosi se A do të barabartë, jo 1, 2, dhe 26, dhe kështu forth-- është a pak different-- por 65, 66, 67. Dhe unë do të tërheq lart një tabelë në një moment të vetëm. Por kjo është arbitrare. Por kjo nuk ka rëndësi se kjo është arbitrare. Bota duhet të jetë vetëm në përputhje. Tani, më së fundi, ka diçka njohës quajtur Unicode, sepse lloji në botë e realizuar, pasi shpikur kompjutera, se ka më shumë se mirë 256 simbole në botë që ne të mund të dëshironi për të përfaqësuar, sidomos kur ju prezantoj gjuhët aziatike dhe symbologies tjera që kanë nevojë për më shumë se ju shprehurit mund të përshtatet në versionin më të hershme të ky kod, i cili u quajt ASCII. Pra Unicode në fakt lejon ju të përdorni më të 0 dhe 2. Në veçanti, ju mbani kur dëgjoi se bytes fjalë në shoqëri dhe madje edhe vetëm dje. Dhe një byte është ajo përsëri? Çfarë është një bajt? Është vetëm 8 bit. Pra, çfarë do që me të vërtetë do të thotë? E pra, kjo do të thotë, më parë, kur ishim duke folur për binary dhe unë kam qenë duke përdorur arbitrarisht tre bit kur kemi qenë duke folur për binary-- vendin e 1 e, Vendi i 2 ka, dhe 4 të place-- mirë, një byte thjesht do të thotë që ju jeni duke folur jo në njësi të tre, por katër, pesë, gjashtë, shtatë tetë, i cili na jep vendin e 8-të, 16-së, 32-së, 64-së dhe 128-së. Me fjalë të tjera, pak nuk është e gjitha se e dobishme një njësi të masës, sepse kjo është vetëm si një të vogël të vogël pjesë e informacionit, ose off. Pra, disa vite më parë, bota thjesht vendosi kjo është pak më i përshtatshëm për të folur në kushtet e bytes, tetë gjëra në një kohë. Dhe kështu në këtë mënyrë ka lindur nocioni i një bajt. Dhe kështu që ne kemi tetë bit këtu. Dhe kjo rezulton, gjithashtu, për të ngjashme Arsyet, bota vendosi vjet më parë se të paraqesin një letër ASCII, ju jeni do të përdorin njësitë e 8 bit. Pra, edhe në qoftë se ju nuk e bëni nevojë për këtë shumë, ju jeni gjithmonë do të përdorin 8 bit për përfaqësojnë një letër e alfabetit. Dhe kjo është e përshtatshme, sepse atëherë në qoftë se ju merrni një mesazh që ka një 0 0 0 1 1 1 1 0 pasuar nga një tjetër 1 1 1 0 1 0 0 1, kështu që nëse ju merrni 16 bit, bota mund vetëm supozojmë se 8 pari janë një letër dhe e dyta 8 janë një tjetër letër. Nuk ka rëndësi se sa shumë ka. Ajo vetëm ka rëndësi se ne jemi të gjithë në përputhje kur ne jemi interpretimin e këtyre bit. Dhe kjo ishte vetëm e rastit. Kjo do të thotë diçka, por nuk e kam me të vërtetë mendoni se çka do të thotë. Pra, kjo është një gënjeshtër të vogël të bardhë. Fillimisht, ASCII në fakt përdoren vetëm 7 bit. Dhe pak teti është quajtur ASCII zgjeruar. Por çështja është, në fund të fundit, të njëjtën gjë. Bota në përgjithësi standardizuar në 8 bit. Pra, kjo do të duket të jetë pak kufizuar, sepse unë vetëm mund të përfaqësojnë kapitalit A, Kapitali i B me Z. kapitalit Por në të vërtetë jo, nëse unë shkoj to-- ka një bandë e burimeve online, për shembull, asciitable.com, kjo do të jetë pak e madhe në fillim. Por unë do të nxjerr në pah çfarë është e rëndësishme këtu. Kjo ndodh vetëm për be-- dhe unë do të walk-- le të shohim, nëse unë shkoj këtu. Këtu është, në decimal kolona, ​​numri 65. Dhe në letrën e kolonën e djathtë Karakteri, Chr, është letra e A. Dhe ju mund të injorojë, tani për tani, çdo gjë në mes. Kjo është heksadecimal, oktal, dhe një kod HTML. Për këtë faqe është vetëm duke u përpjekur për të hedhur një shumë e informacionit në ju në të njëjtën kohë. Por të gjithë ne lidhje me kujdes është decimal Kolona dhe kolona karakter. Pra, sipas kësaj logjike, ajo që është numri që bota ka vendosur përfaqëson një vogle a? Yeah, 97. Dhe vetëm për të ngatërruar potencialisht pak, çfarë numri ka bota vendosur do të përfaqësojnë numrin 1? Drejtë, sepse we-- 49, me sa duket këtu, poshtë në pjesën e poshtme të majtë. Tani, çfarë dua të them me këtë? Pra, rezulton se në sistemet kompjuterike, nuk është në përgjithësi një dallimi themelor në mes të një numër dhe një karakter. Një numër është gjëja që ne mësuar në rritje deri kur ne ishim super rinj në klasën e shkollës. Është gjërat që ju të mbështeteni me. Por një karakter është vetëm një formë, një glyph, si të thuash, në ekran. Tani, ne njerëzit lloj parë diçka që duket si kjo. Dhe ne themi, oh, që është numri 2. Por jo, kjo është vetëm një simbol që duket si ajo që ne e dimë si numri 2. Dhe kështu që nuk është kjo dallimi themelor në mes të numrave reale dhe karaktere. Ky është një numër. Por në përgjithësi, në konteksti i një kompjuter, në qoftë se ju në vend të parë diçka si kjo quoted-- dhe ju nuk e bëni gjithmonë keni për të parë atë të cituar, por për hir të discussion-- nëse ju shihni citate rreth numrit, kjo është tashmë një karakter. Pra ky numër 2 nën individualitet brenda një kompjuter do të përfaqësohet me një model i bit që përfaqësojnë numrin 50 sipas grafikut online. Megjithatë, nëse një kompjuter vetëm e shikon këtë, kjo do të përfaqësohen me model i bit 0 0 0 0 0 0 1 0. Ndërsa, ky karakter do të në fakt të përfaqësohet as-- dhe tani, I kam për të mendoj se një harder-- të vogël kështu që kjo Karakteri do të përfaqësohet me 0 0 1-- çfarë kam nevojë këtu? 0 0 1 1 0 0 1 0. Si e kam bërë këtë? E pra ky është numri 50, në qoftë se ju shumohen atë duke përdorur këto kolona, ky është numri 2, dhe kështu kjo është arsyeja pse nuk është kjo ndarje në dy pjesë. Dhe kjo është vetëm një ngacmues tani për karakteristikat që ekzistojnë në gjuhë programimi se ne do të prek në një kohë të shkurtër sot më vonë. Në gjuhë programimi, ju keni në përgjithësi, por jo gjithmonë, gjërat quajmë lloje të ndryshme të të dhënave. Me fjalë të tjera, një programmer-- kur ai ose ajo është shkruar, një programues merr për të vendosur në atë që format për të ruajtur të dhënat e tij ose të saj. Ju ose mund të ruajtur të dhënat si numrat e papërpunuara, si numrin 2. Ose ju mund të ruajë ato si vargjet, ose sekuenca të karaktereve që në përgjithësi do të shprehin me Kuotat në gjuhën tuaj programimit. Ju mund të keni gjëra called-- Unë do të thjeshtëzoj dhe thirrjen e tyre numbers-- vërtetë në mënyrë që numrat nuk janë numra të plotë si numrin 2, por numri i pëlqen 4.56. Pra numrave reale mund të kanë pikë dhjetore, kështu që është një tjetër themelore pjesë e të dhënave në një kompjuter. Dhe pastaj ju mund edhe të ketë llojet e tjera të të dhënave ende. Pra, kjo është vetëm një ngacmues me të vërtetë e thjeshte e vendimeve të projektimit që një programues fuqisë bërë nën kapuç. Pra, ndonjë pyetje vetëm ende? Pra, le të përpiqemi për të bërë kjo pak më e vërtetë. Kjo pajisje nuk është aq shumë në përdorim më. Por shumica të gjithë në këtë dhomë ndoshta u rrit me të dhe ende përdor hard drives në një farë mënyre. Edhe pse pjesa më e madhe laptopë tona nuk kanë pajisje që veprojnë në këtë mënyrë, në vend të kësaj laptopë sot në përgjithësi kanë disqet të forta shtetërore pa pjesë të lëvizshme. Dhe kjo ka tendencë të jetë më i shtrenjtë, për fat të keq, por pak më të shpejtë dhe a-- mirë, shpesh, shumë më të shpejtë, e cila është një nga arsyet. Dhe gjithashtu ajo nuk ka gjenerojnë sa më shumë nxehtësi. Ajo mund të jetë më i vogël, kështu që është e në përgjithësi një neto pozitiv. Por kjo na lejon të hartë një pak më konkretisht çfarë ne jemi duke folur për herën e 0-së dhe Niveli 1 tani në një pajisje fizike. Kjo është një gjë për mua të flas rreth 0-së dhe 1 të në aspektin e telefonit tim apo në terma abstrakte të ndizet qenë në dhe jashtë. Por ajo që për hard drives? Në laptopë tuaj, në qoftë se ju keni një të vjetër një, ose në kompjuterin tuaj desktop, ose sigurisht në serverat sot, ku ju keni hard drives që kanë një terabyte hapësirë, 4 terabajt hapësirë, dhe çfarë do të thotë? Një hard drive me 1 terabyte e mjeteve të hapësirës ka 1 trilion bytes në brendësi të tij një farë mënyre, ose ekuivalente 8 trilionë bit brenda. 1 terabyte do të jetë 8 terabits ose 1 trilion bit, e cila do të thotë në qoftë se ju keni një hard makinë, ju keni disi apo të tjera të një trilion 0-së dhe 1 është në brendësi të saj. Dhe nëse ne vetëm të marrë një sy në një foto arbitrare të një hard drive përfaqësues, kjo është ajo që një hard makinë mund të zakonisht duket si brenda. Ajo, gjithashtu, është lloj si një lojtar i vjetër gramafon por në përgjithësi me të dhënat e shumta brenda, në mënyrë të speak-- të shumta platters, pasi ato janë quajtur, metalike disqe rrethore, dhe pastaj një kokë pak lexim, shumë si një lojtar i vjetër rekord. Dhe se kreu leximi lëviz prapa dhe me radhë dhe disi lexon copa. Dhe çfarë është në këto platters, edhe edhe pse ne njerëzit nuk mund të shohin ato, qoftë në realitet apo në këtë foto, ka grimca të vogla të vogla magnetike. Dhe edhe në qoftë se ju keni kohë të gjatë harruar se si punon me energji elektrike, një grimcë magnetike që është akuzuar në përgjithësi ka një fund veri dhe një në jug end-- kështu veri dhe në jug. Dhe kështu bota vetëm vendosur disa kohë më parë se, në qoftë se një protokoll magnetike thelb është një linjë si ky, veri-jug, le të thërrasë atë një 1. Në qoftë se kjo është në vend jug-veri, le të vetëm thirrje që një 0. Dhe kështu që nëse ju keni në dispozicionin tuaj një trilion vogël pak magnetike particles-- dhe me shpresë, zgjuarsi hardware në mënyrë që të rrokullisje ata rreth si e shihni fit-- nëse doni të përfaqësojnë një bandë e tërë e 0-së, të duhet vetëm 8 grimcat magnetike të gjithë një linjë si kjo. Dhe në qoftë se ju doni për të përfaqësuar tetë 1 të, ju vetëm nevojë për 8 grimcat magnetike një linjë për të kthyer prapa për të mbështetur si kjo. Çfarë mund të thotë nga Grimcat magnetike? Sinqerisht, të gjitha këto vite më vonë, gjë që ende vjen në mendjen time është ky djalë, në qoftë se ju u rrit me këtë gjë. Kjo është një little-- për ata një unfamiliar-- pak lodër fëmijërisë që e ka këtë njeri hairless këtu që i ka të gjitha këto të vogël pak i zi grimcat magnetike që vijnë me të. Dhe duke përdorur këtë shkop të kuqe, e cila është vetëm një magnet, ju mund të lloj të t'i japë atij një mustaqe apo Vetullat apo flokët apo ndonjë gjë mbi të. Pra, në fakt, në qoftë se ne zmadhuar në, për shembull, kjo është lloji i lojës ju mund të luajnë me Wooly Willy. Dhe kjo është vetëm për të thënë, këto janë grimca shumë më të mëdha magnetike se sa janë në të vërtetë në një hard drive, dhe grimcat shumë më pak magnetike. Por le të shohim në fakt atëherë në qoftë se ju keni grimcat e vogël magnetike në një hard drive, se si ju mund të vërtetë përdorin ato për të përfaqësuar të dhënave. [VIDEO rishikim] -The Hard drive është ajo ku PC juaj dyqane shumica e të dhënave të saj të përhershëm. Për ta bërë këtë, të dhënat udhëton nga RAM së bashku me sinjale software që tregojnë hard drive si për të ruajtur të dhënat. qarqeve të hard drive përkthejnë ato Sinjalet në luhatjet e tensionit. Këto, nga ana tjetër, të kontrolluar hard drive-së lëviz parts-- disa nga disa lëvizje pjesët e lënë në kompjuter modern. Disa nga sinjalet kontroll një motor, i cili rrotullohet platters metalike të veshura. Të dhënat tuaja është në fakt ruajtur në këto platters. sinjale të tjera të lëvizin kokat lexoni / shkruani të lexojnë ose të shkruajnë të dhëna për platters. Kjo makineri është aq i saktë se një fije floku të njeriut nuk mund edhe të të kalojë në mes drejtuesve dhe tjerrje platters. Megjithatë, të gjitha punët me shpejtësi të frikshëm. [END rishikim] Dhe ju mund të shihni më së Fundi bishti i videos, janë përgjithësisht platters shumta. Dhe në mënyrë që koka lexuar nuk është vetëm duke lexuar të lartë. Kjo është lloj i si tre ose katër ose më shumë kokat lexim se lëvizje si kjo, leximin e të dhënave të njëjtën kohë. Pra, nuk është një shumë e Kompleksiteti dhe lloj i kohës që është i përfshirë në një hard drive. Dhe gjëja është tjerrje me të vërtetë i mallkuar të shpejtë, kështu që nuk është një shumë e kompleksitetit. Por le të zmadhuar pak më thellë dhe të parë se ku janë këto grimca magnetike dhe si ne jemi duke marrë me ta. [VIDEO rishikim] vështrim -Le së në atë që ne vetëm e pa në lëvizje të ngadaltë. Kur një impuls të shkurtër të energjisë elektrike është dërguar në krye të lexoni / shkruani, ajo flips në një elektromagnetike të vogël për një pjesë të një të dytë. Magnet krijon një fushë, e cila ndryshon polariteti i një të vogël, të vogël pjesa e grimcave metalike e cila pallto sipërfaqe çdo pjatë-së. Një seri model i tyre i vogël zonat e ngarkuara deri në disk përfaqëson një grimë të vetme të të dhënave në sistemi binar numër i përdorur nga kompjuterat. Tani, në qoftë se e tanishme është dërguar një të tillë rrugë përmes kreut të lexoni / shkruani, zona polarizuar në një drejtim. Nëse e tanishme është dërguar në drejtim të kundërt, polarizimi është i kundërt. Si mund të merrni të dhënat off hard disk? Vetëm procesin e kundërt. Pra, kjo është grimcat në disk që të merrni rrymën në kokën e lexoni / shkruani në lëvizje. Vënë së bashku miliona këto segmente magnetized, dhe ju keni marrë një fotografi. Tani, copat e një skedar të vetëm mund të jetë shpërndara në të gjithë platters një makinë së, lloj si rrëmujë e letrave në tavolinën tuaj. Pra, një skedë të veçantë ekstra mban gjurmët e ku çdo gjë është. A nuk dëshironi ju kishte diçka të tillë? [END rishikim] Pra, duke aluduar për atje, ndoshta, është se tema nga dita e djeshme e fshirjes. Kur ju fshini një file, dje kemi thënë se një kompjuter në fakt nuk çfarë, kur ju drag diçka në Recycle Bin ose kazan plehrash? Ajo thjesht harron atë. Por 0 dhe 1 i, grimcat magnetike që duken si të kuqe dhe blu gjëra këtu, apo krahu im këtu, janë ende atje në hard drive. Dhe kështu ekziston software-- Norton Utilities dhe Yesteryear dhe të tjera më moderne software-- që vetëm do të skanoni një hard drive të tërë në kërkim në të gjitha ato 0 dhe 1-të, për shkak të rezulton se shumica formats-- fotografi dokumentet Word, Excel fotografi, imazhe, Video files-- të gjithë e kanë të sigurt modelet që janë të zakonshme në mesin e tyre. Çdo skedar video fuqisë të jenë të një video të ndryshme, por e para disa bit zakonisht janë të njëjta. Apo disa copa fundit zakonisht janë të njëjta. Dhe kështu me probabilitet të lartë, ju mund të shikoni për ato modele. Dhe edhe në qoftë se skeda është harruar, ju mund të them me probabilitet të lartë, por kjo duket si një dokument Word, lejon të shërohen atë dhe un-të harrojmë atë, nëse ju do. Dhe kështu kjo është se si ju mund të shërohen të dhënat që ka qenë ose aksidentalisht fshihet ose fshihet ose qëllimisht fshihet për çfarëdo qëllime. Në të kundërt, fshirje të sigurt se çfarë bën në kontekstin e një foto si kjo? Pikërisht, i bën ata të gjithë rastit. Pra, kjo lloj lëviz disa ata poshtë, disa prej tyre lart, lë disa prej tyre i pandryshuar, dhe në përgjithësi bën zhurmë të rastit nga ajo, ose vetëm ndoshta e bën të gjithë Them 0-së apo të gjitha prej tyre 1-së. Dhe se shumë mund në përgjithësi pastrim të dhënat tuaja larg. Pra, le të kthehemi në çështjen e të menduarit kompjuterike, ku ne kemi inputet formulë. Dhe algoritme jep ju nxjerr në fund të fundit. Ne fokus tani në inputet dhe rezultatet, sepse tani, unë Pretendimi ne kemi një mënyrë për të përfaqëson inputet dhe rezultatet. Ne jemi vetëm duke shkuar për të përdorur binar. Dhe pa marrë parasysh se ajo që ne duan për të përfaqësuar sot, nëse kjo është një numër apo një letër ose mijëra tyre në një libër telefoni ose imazhe apo filma, në fund të ditës, kjo është e gjitha 0 dhe 1 i. Dhe unë pretendojnë se, edhe pse kjo është një botë super të thjeshtë me vetëm 0-së dhe 1-së, ne mund të ndërtojmë veten lart. Dhe ne kemi parë një shembull të se me shkronja kështu tani. Pra, le të përqëndrohet tani në këtë përbërës të mesme, një algoritmi. Dhe le të kthehen në këtë shembull i Mike Smith. Pra, në këtë librin e telefonit, i cili pa dyshim, ne nuk e përdorim aq shumë më, ka një problem për t'u zgjidhur. Ne duam të gjetur dikë si Mike Smith. Dhe çfarë mund të bëj për të gjetur Mike? E pra, unë mund vetëm të hapur këtë libër, fillojnë në faqen e parë, dhe të kuptojë, oh, unë jam në seksionin A. Mike nuk është atje. Unë kam nevojë për seksionin S për Smith. Pra, vetëm i mbajnë duke e kthyer një faqe në një kohë. Më lejoni të pretendojë se kjo është e gjitha faqet e bardha dhe faqet jo të verdhë, sepse ne nuk jemi duke shkuar për të gjetur Mike në faqet e verdhë anyway. Por unë jam në faqet e bardha. Dhe tani, unë jam në seksionin B. Unë ende nuk e kanë gjetur atë. Kështu që unë mbajtur duke e kthyer një faqe në një kohë. Kjo është një algoritmi. Është një grup i udhëzime për zgjidhjen e disa probleme. Me fjalë të tjera, shikoni në faqe, në qoftë se Mike nuk është në të, kthehet faqe, dhe përsërit përsëri dhe përsëri dhe përsëri, në mënyrë ideale duke kërkuar poshtë si ju jeni duke bërë atë. Pra, është kjo algorithm, ky proces, saktë? Më vjen keq. Jo, kam dëgjuar disa nos. OK, por ajo is-- yeah, kjo është sigurisht e lodhshme. Si, ne do të jetë gjithë ditën këtu në qoftë se unë mbajtur në kërkim për Mike në këtë shpejtësi. Por më lejoni të pohojnë se është e saktë. Kjo është budalla, por është e saktë. Në fund të ditës, kohë sa ajo mund të marrë, unë do të gjeni Mike qoftë se ai është në atje dhe unë jam duke i kushtuar vëmendje. Dhe unë përfundimisht të arritur faqen e tij. Dhe në qoftë se unë të marrë shumë larg, në qoftë se Të shkoj në seksionin T, atëherë unë mund të lehtë të zgjedh dhe vetëm thonë, hm, bërë të gjitha. Unë as nuk duhet të humbin Koha do të Z-së. Por kjo është një shumë e Qasja linear, nëse ju do të, një shumë lloj e majta në të djathtë qasje, një vijë e drejtë. Dhe e saj e saktë, por i ngadaltë. Kështu që unë mend nga klasën e shkollës, lloj e një optimization nga një nxënës i klasës së parë, ku kam mësuar se si të mos numëruar nga ato, por duke twos-- kështu 2, 4, 6. Kjo është Një, shumë e vështirë për bëjmë, por në teori, është e faster-- 8, 10, 12, 14, e kështu me radhë. Si në lidhje me këtë algorithm? A është më efikas? A është më i shpejtë? AUDIENCA: Është e efektshme. DAVID Malan: Yeah, kështu që është def-- është e fjalë për fjalë dy herë më shpejt, duke supozuar I nuk merrni morën me gishtat e mi. Kjo është dy herë më shpejt, për shkak se Unë jam kthyer me dy Faqet e në të njëjtën kohë në vend të një, por është e potencialisht në saktë, për shkak se pse? AUDIENCA: Ju jeni duke lënë mënjanë disa. DAVID Malan: Tani, çfarë nëse ndodh Mike të sandwiched-- ndoshta kur unë jam vonë në librin e telefonit, Mike ndodh të jetë sandviç në mes të këtyre dy faqe, dhe unë vetëm verbërisht kaloni mbi të. Pra, ne kemi nevojë për një fix vogël atje. Sapo kam goditur pjesën T, I Nuk mund të them vetëm besim, ne nuk kemi gjetur Mike Smith. Unë ndoshta duhet të dyfishohet përsëri. Ose në fakt, një herë unë të arritur dikush quajtur S-N, në vend të S-M për Smith, menjëherë, unë mund të dyfishohet mbrapa, sepse ndoshta ai ishte në faqen e mëparshme. Por unë nuk duhet të dyfishohet përsëri tani. Në teori, në qoftë se bëj atë në të djathtë kohë, unë vetëm të kthehem një faqe. Pra, kjo është shtuar vetëm një hap shtesë. Kështu që unë kam shkuar dy herë më shpejt, por kjo më kushton një faqe shtesë. Por kjo ndjehet si një fitore neto. Por kjo nuk është se si shumica e njerëzve në kjo dhomë do të zgjidhë këtë problem. Çfarë do një person tipik, ndoshta një Disa vjet më parë të bëjë, për të gjetur Mike Smith? Po, nuk ka gjetur Mike. Çfarë të bëj? Pra, të marrë një pak më afër, por unë vet e dini se çfarë është e vërtetë në lidhje me një libër telefoni? AUDIENCA: Është vijues. DAVID Malan: Është vijues. Është alfabetik. Dhe kështu që në qoftë se unë jam në seksionin M, Mike është e qartë në të djathtë, Unë mund të vërtetë të heq problemi në half-- është zakonisht më e lehtë se sa lot that-- problemi në gjysmë dhe hedhin atë larg, kështu që tani, unë kam një problem që është më 1000 pages-- se ishte e vështirë, sepse unë mendoj se unë në fakt grisi libri telefon kjo nuk time-- 1000 faqe, por 500. Pra, problemi është fjalë për fjalë gjysma aq i madh. Dhe kjo është shumë bindëse, sepse me algoritme e mia të mëparshme, version 1 dhe 2, unë isha vetëm duke e bërë problemin një faqe të vogla, dy faqet më të vogla ne nje kohe. Ndërsa tani, kam bërë atë 500 faqet më të vogla të gjitha përnjëherë. OK, kështu që tani, Karim propozon që unë të shkoj në gjysmën e djathtë. Kështu që unë jam duke shkuar për të shkuar rreth në mes, të japë ose të marrë. Dhe në qoftë se unë e bëri këtë matematikisht, Unë mund të shkojnë drejtë në mes. Dhe tani, unë të kuptojë, oh, Jam në seksionin T. Unë në fakt kam shkuar shumë larg. Por unë mund të, përsëri, lot Problemi në gjysmë, hedhin atë larg. Dhe bytes mia jo aq i madh. Është vetëm, çfarë, 256 faqe ose 250 faqe, të japë ose të marrë tani. Por është ende mënyra më e se një faqe ose dy faqe. Dhe kështu që tani, unë shkoj afërsisht në mes. Oh, unë nuk shkojnë mjaft larg sa tani. Kështu që unë e përsëris, e përsëris, e përsëris, përsëris, deri sa unë jam me shpresë lënë me vetëm një faqe. Kështu që fton pyetje, në qoftë se unë filloi me afërsisht 1,000 faqe, sa hapa u desh mua me versionin 1 të algoritmit tim? Pra, nëse Mike është në S seksioni, në rastin më të keq, kjo është shumë afër fundi i alfabetit. Pra, nëse libri telefoni ka 1.000 faqe, Unë do të gjeni Mike në 1000 faqe, të japë ose të marrë. Ndoshta kjo është si 800 apo më shumë, por kjo është goxha afër 1,000. Ndërsa, në pjesën e dytë algorithm, sa faqe kthehet maksimalisht fuqinë I kërkojnë për të gjetur Mike Smith? Ka 1000 faqe, por unë jam i duke bërë ata dy në një kohë. Të drejtë, kështu max si 500ish, sepse kur të shkoj nëpër të gjithë librin e telefonit, në të cilën pikë, unë mund të ndalet. Por unë mund të rruajë disa nga vetëm duke ndaluar në pjesën T. Por kjo është në rastin më të keq 500 faqe. Pra, sa herë mund të ndajë një 1,00o-faqe libër telefoni në gjysmën përsëri dhe përsëri dhe again-- nga 1000 në 500 në 250 në 125? Sa kohë para se të goditur një faqe? Po, është rreth 10. Varësisht nga arrestimi dhe të tilla, është e rreth 10 faqe nevoja totale të kthyer ose librat e telefonit duhet të shqyer. Pra, kjo është shumë e fuqishme. Ne kemi filluar me një problem 1,000 faqesh në të gjitha tre prej këtyre historive. Por në algoritmin e parë, atë mori me, rastin më të keq, 1000 faqe kthehet për të gjetur Mike. algorithm dytë, 500 faqet për të gjetur Mike. algorithm Së treti, 10 faqe për të gjetur Mike. Dhe kjo është edhe më e të fuqishme, kur ju mendoni në lidhje me llojin e një skenar të kundërt. Supozojmë se kompania e telefonit të ardhshëm vit ndoshta bashkon dy qytete së bashku, dhe libri i telefonit është papritmas kjo trashë, në vend të kësaj që, kështu 2,000 faqe në vend të 1,000. E pra, algorithm ime e parë në kërkim të Mike Smith në një libër telefoni 2,000 faqesh, Rasti më keq, ajo do të marrë sa faqe kthehet vitin e ardhshëm? Libri i telefonit është 2000 faqe, so-- mirë, jo një më shumë. Nëse libri i telefonit është dy herë më e madhe në algoritmi i parë, algorithm parë, 2000, apo jo? Në rastin më të keq, Mike është me të vërtetë mbyllet në fund të librit, kështu që është 2.000 faqe kthehet. algorithm i dytë nga twos, si 1000 faqe. Por si për në të tretën e mia dhe algorithm më të fundit? Nëse kompania telefoni dyfishon numri i faqeve nga 1,000 deri në 2,000, sa herë më shumë nevojë për të heq se libri në gjysmë për të gjetur Mike? AUDIENCA: Vetëm një. DAVID Malan: Vetëm një më shumë, sepse me një faqe lot, Unë mund të vërtetë të ndajë dhe të pushtuar, në qoftë se ju do të, se problemi në gjysmë marrjen një pickim masiv nga ajo. Dhe kështu që kjo është një shembull i efikasitetit dhe ndoshta një algoritmi me të cilat të gjithë ne jemi lloj intuitive njohur. Por është po aq e saktë si algoritme e mia të tjera me atë shkulje për algoritmi i dytë, por kjo është shumë më efikase. Dhe në fakt, atë që një kompjuter shkencëtar, ose nga ana e një programues, zakonisht do të bëjë kur shkruani Kodi është përpiqen të kuptoj se, të gjithë të drejtë, unë nuk dua tim program vetëm për të jetë e saktë, Unë gjithashtu dua që ajo të jetë efikas dhe zgjidhjen e problemeve të mirë. Imagjinoni në botën e vërtetë sot, si indekseve Google, kërkimet si miliarda faqeve, imagjinoni nëse ata përdorur algoritmin e parë për të gjetur macet në mesin e një miliardë pages-- kërkim në faqja e parë në database e tyre, i dyti, i treti, vetëm në kërkim për një mace, duke kërkuar për një mace. Kjo është goxha i mallkuar të ngadalësuar kjo do të duket. Ata në vend të kësaj mund të përdorin diçka quajtur kërkimit binar, i cili ka bi coincidence-- që do të thotë dy, ne mbani duke e ndarë diçka në 2, në half-- ata mund të përdorin kërkimin binar dhe ndoshta të gjetur macet edhe më të shpejtë, apo çfarëdo qoftë ajo është që ju jeni në kërkim për. Dhe sinqerisht, nuk ka edhe algoritme njohës që të bëjë shumë më tepër se vetëm të duke e ndarë gjërat në gjysmë në mënyrë që të gjeni informacion të shpejtë. Dhe ne do të flasim pak për ata pas drekës sot. Pra më lejoni vetëm të përpiqet për të përfaqësuar këtë. Ne nuk kemi nevojë për të shkuar në ndonjë matematikë ose numrat aktual. Ne mund të flasim për këtë në abstrakte. Por më lejoni vetëm të të propozojë, në qoftë se ju kishin një diskutim tani me inxhinierët propozon këtë algorithm dhe ju jeni duke u përpjekur për të bërë një vendim i llogaritur, sepse ndoshta inxhinier thotë për ju, ju e di se çfarë, unë mund të zbatojë një Kërkimi linear në si dy minuta. Është e lehtë. Kërkimi binar nuk është se dashuroj, por ajo do të marrë mua si 10 minuta, kështu që 5 herë më gjatë. Ka një tregti këtu, edhe në aspektin për të vendosur se çfarë software për të shkruar. A ju shkruani algoritmin thjeshtë, e cila do të marrë vetëm dy minuta? A mos keni shpenzuar shumë kohë, 10 minuta, shkrim algoritmin njohës? Si mund të vendosni atë lloj pyetje? Ose ju mund të bëni atë një pak më të vërtetë. I them shefit tim se do të marrë me ose një javë ose 10 javë për zbatimin e software në këtë mënyrë, si mund të vendosë që algorithm për të gjelbër-dritë? Karim? AUDIENCA: Publiku, I guess. DAVID Malan: Publiku. Çfarë do të thotë nga publiku? AUDIENCA: Në qoftë se ajo do që do të përdoren nga përdoruesit që [padëgjueshme] nga përdoruesit [padëgjueshme]. Por nëse kjo është diçka që ju jeni vetëm duke bërë për veten tuaj për të lehtësuar një problem, [Padëgjueshme] shpejtë. DAVID Malan: Po, është e shpejtë dhe pista është një mënyrë e mirë për të përshkruar atë. Në fakt, në qoftë se ju jeni përshkruar shumë nga koha ime në shkollë grad, ku shpesh herë, I shkruar kodin e keqe vetëdije so-- të paktën, kjo është se si unë racionalizuar arsyetimet tuaja të ndërgjegjshme po, sepse edhe pse unë isha duke shkruar kodin që ishte relativisht i ngadalshëm për të ekzekutuar, Unë kam qenë në gjendje për të shkruar vetë kodin shumë e shpejtë, shpenzimet vetëm minuta apo jo orë ditë. Dhe doli, I herë pas here e nevojshme për të fjetur. Pra, edhe në qoftë se kodi im kërkohet 8 orë për të drejtuar, edhe kjo është në rregull, Unë vetëm do të shkojnë për të fjetur, ndërsa ajo shkon. Pra, në atë kohë, kam menduar se kjo ishte shumë të zgjuar, edhe pse unë me sa duket punuar me PhD tim shumë ngadalë. Por bisedoj e që është se, në qoftë se unë ishin shkruar software për njerëzit e tjerë të cilët rëndësi më shumë se unë, mirë, që ata të presë 8 orë në të kthehet rezultatet e kërkimit nuk është e gjitha që bindëse. Dhe kështu kaluar më shumë kohë deri para për të shkruar software që është më efikas, më shumë si algorithm tonë të tretë, ndoshta përfiton përdoruesit me kalimin e kohës. Pra, me të vërtetë varet mbi koha se si këto kosto të shtoni deri. Nëse ju jeni do të jetë me shkrim software të përdorin atë një herë, ndoshta mund edhe të bëjë shpejtë dhe të pista, siç thonë ata. Vetëm hedhin atë së bashku. Është kodin që embarrasses ju, kjo është aq e keqe, por ajo merr punën e bërë si duhet, edhe pse kjo nuk është efikas. Në anën tjetër, keni shpenzuar shumë kohë në diçka, të marrë atë vetëm të drejtë. Dhe pastaj amortizuar me kalimin e kohës, kosto që upfront e kohës ndoshta është i vlefshëm, në qoftë se ju mbani optimizuar për rastin përbashkët. Dhe me të vërtetë, kjo është një temë në programimi, apo kompjuter shkenca më shumë në përgjithësi, duke u përpjekur të zgjedh jo për rastin e pazakontë por case-- përbashkëta çfarë operacion do të ndodhë përsëri dhe përsëri? Nëse ju jeni do të ketë miliarda e përdoruesve të kërkimit në web faqen tuaj, ju ndoshta duhet të kalojnë ekstra javë deri para shkrim software më të mirë, në mënyrë që të gjithë përdoruesit e juaj të përfitojnë. Tani, le të përpiqemi për të kapur këtë a pak në pikturë, por jo aq shumë numerikisht. Kështu që këtu është vetëm një tabelë e vjetër e shkollës. Dhe më lejoni të them se kjo është koha. Dhe kjo nuk ka rëndësi what-- në fakt, jo, jo kohë. Le të vënë atë në boshtin tjetër. Le të thonë se kjo është koha, dhe kjo është madhësia e problemit. Dhe një shkencëtar kompjuteri mund të telefononi në përgjithësi kjo vetëm n. n është si jonë go-to ndryshueshme, ku n është një numër, n numrin, dhe kjo është Numri i çfarëdo inputeve që ju keni. Pra, në këtë rast, n është numri i faqeve. Pra, ajo mund të jetë 1,000 në rasti ne vetëm tha. Kështu që koha mund të jetë çdo njësi të masës. Ndoshta, është e dyta. Ndoshta, kjo është ditë. Ndoshta, kjo është si faqe kthehet. Nuk ka rëndësi. Çfarëdo që ju dëshironi për të numëruar në, që do të jetë në kohë ose me kosto ekuivalente. Pra, me të cilat e parë algorithm, në qoftë se unë, për shembull, kishte një libër telefoni 1000 faqesh, Unë jam duke shkuar për të nxjerrë një pikë atje, sepse në qoftë se është 1000 faqe, ajo mori afërsisht 1,000 faqe kthehet, të japë ose të marrë. Dhe pastaj nëse unë kam një 2,000 faqesh librin e telefonit, dhe unë jam duke shkuar për të nxjerrë një të dytë dot këtu, sepse për 2.000 faqe, kjo është si 2.000 sekonda ose faqe kthehet apo çfarëdo. Dhe kështu kur kam thënë më parë, është e lloj i një marrëdhënie lineare, kjo ishte e qëllimshme, sepse kam kërkuar vonë on-- drejta now-- të tërheqë një vijë. Kjo është lloj i një e drejtë Linja marrëdhënie. Shpatin është 1/1, nëse ju do. Ndërkohë, algorithm e dytë tha, në qoftë se ju keni marrë 1000 faqe dhe ju jeni duke përdorur algoritmin e dytë, ku kam numëruar nga 2-të, duke e kthyer dy faqe në një kohë, duhet të nxjerrë një dot më poshtë ose më lart dot tim origjinal? AUDIENCA: poshtë. DAVID Malan: Më poshtë, sepse siç e pamë, ajo merr më pak kohë, gjysma sa më shumë kohë. Pra dot duhet të jetë gjysma aq i lartë sa të tjera. Dhe të njëjtën marrëveshje gjatë këtu, kjo dot ndoshta duhet të jetë përafërsisht atje. Dhe kështu algorithm ime e dytë, në mënyrë të ngjashme, ka një marrëdhënie lineare me kohë. Dhe ne mund të tërheqë atë si të tillë. Deri tani, i treti dhe i fundit algorithm është pak e vështirë për të nxjerrë. Por intuitive, në qoftë se unë kam marrë 1000 faqet me algoritmin e tretë, ajo duhet të marrë vetëm mua si 10 hapa. Dhe në qoftë se unë kam marrë 2000 faqe me algorithm e tretë, ajo nuk duhet të marrë më 10 hapa, por 11, vetëm një më shumë. Pra, ne jemi vetëm mezi do të shohim këtë. Dhe kjo rezulton, nëse I zoom në këtë, unë jam i do të teproni për efekt, forma e këtë linjë, në fund të fundit, nuk është një line-- drejtë sepse, në të vërtetë po të ishte, ajo do të duken më shumë si others-- kjo është në fakt një vijë e lakuar se, në qoftë se ne zoom në, po shkon të duken më shumë si kjo. Arsyetimet tuaja, mirë, OK, injorojnë këtë pjesë. Kjo ishte stilolaps im do të kënd. Kjo është një linjë të lakuar që është gjithmonë në rritje, gjithmonë, gjithmonë, gjithmonë në rritje, por vetëm vetëm mezi. Dhe kështu me kalimin e kohës, ju keni një marrëdhënie që është më shumë si kjo. Ajo pothuajse duket e drejtë. Por është gjithnjë kaq ngadalë në rritje. Por, për pothuajse të gjitha pikat përgjatë x-aks, aksi horizontal juaj, është më e ulët se sa ato linjat e tjera. Pra, kjo mund të jetë një marrëdhënie n, ku në qoftë se ju keni faqet n, ju n sekonda merr. Kjo mund të jetë një marrëdhënie n / 2. Ju kanë faqet n, ajo merr ju n / 2 sekonda, gjysma e sa më shumë. Dhe kjo është një logaritmike marrëdhënie, e cila nëse ju kujtohet, hyni bazë 2 e kap n ky lloj i rritjes, kështu që të flasin. Pra, kjo është lloj i shenjtë Grail në mesin e tre prej këtyre këtu, sepse kjo është vetëm shumë më shumë efikase, por ndoshta më komplekse për të zbatuar. Ndonje pyetje? E pra më lejoni të bëjë këtë, le me të hapur një dritare tekst vetëm kështu ne mund të përpiqemi për të formalizojë diçka këtu. Pra më lejoni të shkoj përpara dhe tani zbatimin e këtij algoritmi për gjetjen e Mike Smith në kod, nëse do, kodi pseudocode. Unë nuk jam duke shkuar për të përdorur Java ose C ++. Unë jam vetëm duke shkuar për të përdorur lloj English-si sintaksë, të cilat ne në përgjithësi do të thërrasë kodin pseudokod. Këtu, unë kam një dritare bosh. Dhe unë jam duke thënë se hapin 1 të shumë algorithm parë është të marr librin e telefonit. Hapi 2 është libër i hapur në faqen e parë. Hapi 3 do të jetë të shikojmë në faqe për Mike Smith. Nëse në faqen, thirrje Mike. faqe tjetër të kthehet dhe të shkojnë në hapin 3. Bërë, le të themi. Dhe kështu që nuk është mjaft i përsosur, të cilat ne do të shohim në një moment. Por le të marrin në konsideratë se çfarë Konceptet e kam futur këtu. Pra hapat 1 dhe 2 dhe 3 janë shumë e shumë folje. Ata janë deklarata, actions-- bëjnë këtë. Dhe kështu në një programimit gjuha, ne do përgjithësi të telefononi atyre deklaratave ose funksione ose procedura, telefononi ata çdo numër të gjërave. Por ata vetëm po actions-- bërë këtë. Hapi 4 është krejtësisht e ndryshme, sepse kjo është lloj i kërkuar një pyetje. Është thënë se ne jemi të sjellshëm e në një pirun në rrugë. Nëse Mike është në faqe, thirrje atë, kështu që nga ana e majtë, nëse ju do. Dhe nëse jo, të shkojnë prapa në disa tjetër page-- ose më mirë, i keq, të kthehemi në një hap tjetër, e cila shkakton një lloj looping ndërtimin. Dhe ne bëjmë atë përsëri dhe përsëri dhe përsëri. Dhe në fakt, ju e dini se çfarë? Po. tjetër në qoftë se në fund të librit të ndaluar. Pra, ne kemi nevojë për lloj të një të tretën kusht, sepse ju nuk mund të mbajë kthyer faqe ad nauseum, sepse në fund, unë do goditi në fund të librit. Dhe një bug në një program mund të jetë Nuk parashikuar këtë skenar. Dhe atëherë unë vetëm kuptova, oh, prisni një minutë, kam nevojë për një skenar të tretë. Në qoftë se unë jam jashtë faqe, I duhet të vërtetë të ndalet vetëm. Përndryshe, është e padefinuar. Çfarë do të ndodhë në qoftë se unë të mbajtur duke thënë kthehet në faqe dhe të kthehemi, kjo është kur kompjuterët ngrijë ose përplasje, kur ju goditi disa situata e paparashikuar si kjo. Tani, ajo që për Mike algorithm-- tretë Smith marr librin e telefonit, libër i hapur për të first-- jo jo, faqja e parë këtë herë, të middle-- oh, mirë, se do të më jetë algorithm dytë. Le të kaloni për të tretë. AUDIENCA: Oh, më vjen keq. DAVID Malan: Kjo është në rregull. Le të kaloni në third-- hapur e të mesme dhe tani kërkoni për Mike Smith. në qoftë se në faqen, thirrje Mike. Dhe pastaj çfarë duam të themi këtu? tjetër ajo? Ne mund të shprehë këtë në çdo numër mënyrash. Nuk ka përgjigje të drejtë. OK, nëse jo një herë, por ne duhet të be-- OK, ne duam për të ndarë në dy pjesë, por duam të shkojmë të majtë apo të shkojnë drejtë? Si e shprehim këtë ide? E pra, në rastin e Mike, po, kjo është e drejtë. Por OK, kështu që është në fakt një pikë e mirë. Kjo është në rregull. Ne do të mbajë me këtë logjikë. Kështu që-- AUDIENCA: Më pak se gjysma. DAVID Malan: Po. Pra, tjetër, nëse faqja është, ne do të themi, më pak se Smith, në të majtë të Smith, then-- le të shohim, është kjo do të komplikojë? tjetër nëse faqja vjen para Smith, lot në gjysmë, flak cilën pjesë? AUDIENCA: Mendova kjo ishte [padëgjueshme]. DAVID Malan: Unë jam duke dëgjuar të dyja përgjigjet. AUDIENCA: Majtas. DAVID Malan: OK, hedhin larg u largua gjysma, si Lakisa thënë më parë, nga e majta gjysmë, atëherë unë lloj i doni të shkoni vetëm to-- shkoj në të djathtë. Ose ekuivalente, dhe kam bërë pak pak e një rrëmujë e fillimit këtu, Unë dua të në mënyrë efektive të shkojnë në hap 2 përsëri, ku të hapura për middle-- ose open-- yeah, le të them vetëm, faqet në mes. Dhe kjo fixes atë. Nuk është më një libër. Kjo është vetëm gjysma e një libri, faqet në mënyrë të hapur në mes. else-- ishin pothuajse atje. Hapi 6, tjetër nëse faqja vjen pas Smith, lot në gjysmë, hedhin gjysmë larg të drejtë, pastaj të shkojnë në hap 2. tjetër lë, një skenar të katërt, nëse ne nuk kemi faqet e majta në të kthehet. Pra, ne mund të pastër këtë ide. Dhe ne duhet të pastër këtë ide. Ky është kodi shumë pseudocode, nëse ju do, të nivelit shumë të lartë përshkrim. Por kjo do të në përgjithësi të kapur idenë. Dhe, përsëri, në këtë skenar, ne kanë nocionin e një gjendje, një degë, një pirun në rrugë, duke e bërë një decision-- nëse këtë, shkoni në këtë mënyrë, tjetër qoftë, të shkojnë në këtë mënyrë, tjetër qoftë, të shkojnë në këtë mënyrë. Dhe kjo është një shumë e zakonshme Teknika e programimit për të vendosur se cilin drejtim për të shkuar, kështu që të flasin. Dhe ne gjithashtu kemi disa lloj i looping strukturës, ku ne jemi duke bërë diçka përsëri dhe përsëri. Tani, ajo rezulton, shumë si në këtë shembull, duke qenë super të saktë është e rëndësishme. Por ne kemi parë edhe diçka që ne të zbatojmë thirrje abstraksion. Çfarë do të thotë për të marr librin e telefonit? Ne jemi vetëm lloj i marrjes për të dhënë në këtë dhomë se kjo ka një kuptim semantik. Të gjithë ne vetëm lloji i di, oh, mirë, i bie në librin e telefonit. Çfarë do që me të vërtetë do të thotë? E pra, se me të vërtetë do të thotë të zgjatur dore, të ligët mbi, shtrihet gishtat, çikë libër në mes të gishtave, ngrihem, tërheq dorën ndaj jush. Dhe ne mund të jetë me të vërtetë pedant në lidhje me këtë, me të vërtetë të qenit super i saktë si për atë që unë jam duke bërë. Por të gjitha këto hapa janë kolektivisht çfarë do të thotë për të marr një libër telefoni. Dhe kështu më parë, kur kam thënë, çdo e këtyre dy deklaratave të para mund të mendohet si një të vazhdojë apo një funksion, me të vërtetë ajo përfaqëson atë që ne mbani duke e quajtur një abstraksion. Është si një nivel të lartë konceptual Përshkrimi i një problemi që në fakt përfshin mjaft disa hapa. Dhe kështu kjo, gjithashtu, është një përsëritur temë në programimin, ku unë mund të shkruaj një program duke përdorur sintaksën si this-- pick_up_phone_book (). Dhe pastaj sintaksore, unë jam i duke shkuar për të vjedhur diçka nga shumica e gjuhëve të programimit. Tani, hapi 1 duket edhe më shumë si një funksion, si një programues do ta quanin atë. Ajo duket si kodin që dikush i ka dhënë një emër për të dhe duke pasur parasysh për mua për të përdorur somehow-- në të tjera fjalë, ajo që linja e kam theksuar përfaqëson funksionalitetin që ndoshta Unë nuk e ka zbatuar edhe veten. Dikush më të vjetër, më të mençur se me tashmë motive nga si ju shprehin nocionin e picking up një libër telefoni. Dhe kjo është si pesë hapa unë vetëm tronditi off, pjesa e sipërme e kokës sime. Por ai tashmë e implementuar këtë, i dha atyre disa hapa një emër, pick_up_phone_book. Dhe kllapat është vetëm atë që më programuesit të bëjë në fund të deklaratave si kjo. Unë tani mund të qëndrojë në e tij ose të saj supet dhe kurrë më, mendoni se çfarë do të thotë për të marr një libër telefoni. Unë vetëm mund të them, i bie në librin e telefonit. Dhe kjo është pikërisht ajo të gjithë ne njerëzit e bëri këtu. Kur ne ishim ndoshta 1 vjeçar, 2 vjeç, dikush duhej të na mësojë se çfarë ajo do të thotë të marr një libër telefoni. Dhe qysh atëherë, ne kemi përhumbur larg nga ato shumë të jointeresant Hapat mekanike. Dhe ne vetëm duhet një të kuptuarit intuitiv e çfarë do të thotë të të marr një libër telefoni. Dhe ju mund të nxjerrim tani të things-- më e komplikuar të ndërtuar një ndërtesë. Si, për disa njerëz, që në fakt ka kuptim. Për kontraktorët, për arkitektët, se ka disa domethënie. Dhe ata do të dini çfarë të bëni, nëse Unë i thashë, shkoni të ndërtuar një ndërtesë. Por shumica prej nesh në dhomë nuk mund të merren me atë nivel të abstraksionit. Ju duhet të na tregoni si go marrë lopatë dhe shkoni merrni konkrete dhe gozhdë copa e drurit bashkë dhe çdo gjë tjetër është i përfshirë në ndërtimin e një ndërtesë. Dhe kjo është për shkak se ne nuk kemi ende nuk është programuar për të kuptuar çfarë do të thotë për të ndërtuar një ndërtesë. Ne nuk e kemi atë abstraksion. Ne nuk e kemi atë funksionalitet. Dhe kështu që ajo që ju do të shihni në gjuhë programimi, në përgjithësi, Gjuhët e sidomos më moderne, si Java, PHP, Ruby, dhe Python, ata janë shumë më të pjekur se gjuhët e vjetra, si C dhe C ++ dhe ende të tjerët. Dhe kështu ata vijnë me shumë funksionalitetin e ndërtuar në. Kodi shumë është shkruar nga njerëzit në të kaluarën se ne tani mund të telefononi ose thërrasë ose të përdorin, si unë jam duke nënkuptuar në me këtë theksuar vijë këtu. Dhe kështu, edhe pse ne nuk po flasim për gjuhë programimi për se, Kodi i drejtë pseudocode, të gjitha të ide janë ende në atë diskutim. Dhe kjo rezulton saktësi është super e rëndësishme, siç është abstraksion. Dhe le të përpiqemi për komunikuar se si më poshtë. Unë rastësisht mund të ketë prishur këtë duke ndezje një rrëshqitje në ekran para kohe. Por më lejoni të kërkojë një vullnetar trim, në qoftë se ju nuk do mend që vjen. Ju do të jetë në frontin e kamera, nëse ju jeni në rregull me këtë. Dikush do të donte për të dalë dhe të japë udhëzimet për kolegët tuaj këtu? Vetëm duhet të vijnë këtu dhe të të qëndrojë këtu dhe të them disa fjalë. Victoria është e qeshur më dhe duke shmangur sytë e mi më. A do të jenë të gatshëm për të ardhur në dorë? NE RREGULL. Dhe në qoftë se të gjithë të tjerët në vende tuaj mund të marrë një copë letër skrap, nëse ju do. letër e veshur është e mirë. Vijnë rreth në këtë mënyrë. Ose një pjesë të letrës që ju janë dhënë dje, vetëm ndonjë fletë bosh prej letre, nëse ju mund të. Dhe në qoftë se ju nuk keni asnjë, vetëm pyesni të afërmit tuaj, nëse ju mund të. Pra, për momentin, për ky shembull, Victoria do të luajë rolin e një programues, një inxhinier, i cili ka nevojë për të programuar të gjithë, si kompjuterët, për të bërë diçka. Dhe ne do të shohim se çfarë supozime ju vendosni për të bërë. Ne do të shohim se si e saktë ajo zgjedh të jetë. Dhe në qoftë se kjo demonstratë shkon pedagogjike mirë, shumë e gabimeve do të bëhet, se atëherë do të përdorim se si një mundësi për diskutim. Por sfida për ju duhet jetë për të shmangur ato gabime, të jetë një programues i mirë. Dhe kështu sfida në dorë, në qoftë se ju do të pëlqente të ecin gjatë këtu, është në frontin e Victoria në ekran here-- dhe me shpresë, asnjë nga ju mos harroni këtë kur kam flashed në ekran. Dhe nuk do të kthehet rreth në të gjitha, sepse ka një tjetër ekran në këtë dhomë që unë mund të kthehet off. Pra, nuk do të kthehet rreth. Në frontin e Victoria është që të njëjtën ulërimë. Dhe puna e saj tani është për të ju them të gjithë në copë tuaj letër se çfarë për të nxjerrë. Dhe ne do të shohim, në bazë të udhëzime verbale vetëm, Kodi kompjuter, nëse do, sa i saktë vizatimet tuaja are-- Implementimi tuaja. Ka kuptim? AUDIENCA: Po. DAVID Malan: OK, ekzekutuar. AUDIENCA: Vizatoni një katror. [Qeshura] DAVID Malan: Dhe nuk Pyetjet mund të kërkohet. Mund të bëjë vetëm atë që ju jeni duke thënë. Oh, dhe në qoftë se ju keni slides sotme të hapur në një skedë, nuk e shikoni në skedën tuaj. NE RREGULL? AUDIENCA: OK, vizatoni një rreth. A slope-- mund të them pjerrësi? DAVID Malan: Up për ju. AUDIENCA: Një shpat. Dhe një trekëndësh. DAVID Malan: Të gjithë të drejtë. Dhe të qëndrojnë këtu për vetëm një moment. Dhe unë jam duke shkuar për të ardhur rreth në një moment të vetëm. Dhe nuk ka nevojë për të vënë emrat tuaj mbi të. Më lejoni të vijnë përreth dhe mbledhur vizatimet tuaja, në qoftë se ju nuk do mend marramendës ato. Këtu është ajo që ne u kthyer. Unë do të projektojë atë në ekran. Unë shoh një shesh, një rreth, një shpat dhe një trekëndësh. Kështu që ishte një përgjigje atje. Dhe let's-- uh. Faleminderit. Këtu është një shumëllojshmëri, dhe një pas saj. Pra, ata të gjithë duket për të kapur frymën. Faleminderit. Ka një tjetër, dhe këtu është një tjetër. Interpretimi është një shpat pak më ndryshe, pak curvy. Dhe më i afërt, qoftë për shkak të specifikat e mrekullueshme me të cilën ju keni përshkruar, ose ndoshta ju lloj i pa atë më parë, kjo është me të vërtetë çfarë Victoria ishte në të vërtetë përshkruar. Por tani, ata që nuk e kam marrë atë mjaft të drejtë, le të ofrojë disa kundërshtime këtu. Kështu Victoria pari i tha të nxjerrë një shesh. Dhe tani, ne mund të supozojmë për hir të sotme që të gjithë e dinë sa për të nxjerrë një shesh. Por kjo nuk është plotësisht e qartë, e drejtë? Si tjetër mund të keni tërhequr një katror, ​​ose kur mund të jenë disa nga paqartësive këtu për kompjuter? AUDIENCA: Vendndodhja dhe madhësia. DAVID Malan: Vendi, apo jo? Të gjithë ju kishte një letër e një formë, në përgjithësi drejtkëndëshat, por pak madhësive të ndryshme. Por ju me siguri mund të ketë tërhequr, nëse do të donit, një shesh i madh, ndoshta një shesh të vogël. Ndoshta, ajo u rrotulluar. Unë nuk mendoj se ne pamë se. Por ajo mund të ketë qenë më e diamanti si, por ende, megjithatë, matematikisht një katror. Kështu që ishte ndoshta i paqartë. Ajo i tha: vizatoni një rreth. Disa nga ju e tërhoqi atë pranë kjo, e cila nuk është e paarsyeshme, sepse njerëzit priren të mendojnë ose lexuar djathta në të majtë në shumicën e gjuhëve, kështu që nuk a guess keqe. Por kjo mund të ketë rrethi qenë brenda sheshit, mund të ketë qenë rreth katror, ​​mund të ketë qenë diku tjetër në fletë, kështu që ndoshta paqartë. Shpat mund të ketë qenë ndoshta duke marrë më shumë liritë gojë me çka do të thotë. Dhe disa prej jush interpretohet atë si një linjë squiggly ose një vijë të drejtë ose të ngjashme. Dhe pastaj trekëndësh, gjithashtu, mund të ketë janë të orientuara në çdo numër mënyrash. Pra me pak fjalë, edhe me diçka që ju shikim dhe ju jeni si, wow, kështu thjeshtë, një fëmijë mund të nxjerrë këtë, edhe nuk me të vërtetë, nëse ju jeni super, super bindëse dhe tregoni kompjuterin saktësisht se çfarë duhet të bëjmë. Pra, nëse ne mund të, nëse ju keni një fletë letre, le të provoni këtë herë më shumë. Dhe unë jam duke shkuar për të dhënë një Victoria Shembulli tjetër në ekran këtu. Dhe përsëri, nuk do të kthehet rreth dhe nuk do të shikojmë në slides tuaj. Dhe unë do të të japë një moment të mendoni se si për të përshkruar këtë. Mos le ta shohin frika në sytë tuaj. [Qeshura] Dhe përsëri, këtë herë levave disa prej këtyre takeaways dhe të përpiqen për të marrë pothuajse të gjithë të paktën përgjigje të drejtë. AUDIENCA: OK, të marrë një copë letër, shikoni në mes të asaj copë letër. Në mes të kësaj pjese prej letre, të nxjerrë një fuqi e tretë. [Qeshura] DAVID Malan: Çfarë kemi mësuar? Ne ishim aq afër. OK, të përsëritur në qoftë se ju mund, për të gjithë. AUDIENCA: Në mes të pjesës së copë letër, të nxjerrë një objekt, e cila duket si një fuqi e tretë. DAVID Malan: OK, kjo është të gjithë ju të merrni për të punuar me të. Më lejoni të jetë analitike dhe jo aq shumë kritike, por për të bërë kërkesën se Victoria patjetër duket të jetë duke menduar në shumë të abstraksione të nivelit të lartë, të cilat nuk është e paarsyeshme. Sepse përndryshe, ne do të të gjithë të jetë goxha jofunksionale, nëse do të kishim të jetë kurrë aq i saktë me çdo gjë që bëjmë në botë. Por duke thënë se të shkojnë në I middle-- menduar ne ishim në një udhë të tillë të mirë atje, si të shkojnë në mes shumë e faqes, dhe pastaj të nxjerrë një fuqi e tretë. Pra, ajo është duke menduar në abstraksionet, për shkak se ajo është ende e shikimit çfarë është në ekran si të vërtetë një fuqi e tretë. Por ka kaq shumë mundësi për interpretim atje. Dhe në fakt, nuk ka aq shumë mënyra të tjera që ju mund të shprehin atë që unë do të propozojë në një moment. Pra, këtu kemi një mishërimin e një picture-- whoops-- mishërim i foto, kështu që një pak tre dimensionality me të, e cila është e bukur. Këtu është një tjetër, ku ju keni njëjtë, edhe pse kjo është lloj i një kubike të hapur. Disa folks mori atë pak më banesë, dy dimensionale. Dhe kjo është në rregull. Pra atje, me të vërtetë në Qendra e letrës. Kjo unë mendoj se ju do të si, sepse në qoftë se ne do të shkojmë këtu, kjo është ajo që ajo ishte përshkruar. Deri tani, më lejoni të propozoj se si të tjerët ne mund të përshkruajnë këtë situatë. Mbrapa në ditë, një nga të më mënyrat më të zakonshme për të mësuar programimit ishte për të shkruar kodin, shkruan linjat e udhëzimeve, që kontrollohet pak breshkë në ekran. Logo dhe variante të tjera të kësaj ishte emri i gjuhës. Dhe breshka jetuar në një botë. Pra, mendoj këtë drejtkëndësh Hapësira është bota e tij. Dhe ju do të fillojë duke assuming-- I vërtetë nuk e di se si për të nxjerrë breshkë, kështu që le të bëjmë atë si kjo. Dhe pastaj ai e mori një predhë dhe pastaj ndoshta disa këmbët. Kështu që ju mund të keni këtë pak karakter në ekran. Dhe objekt i këtij gjuhë programimi ishte që të detyrojë breshkë për të shkuar lart, poshtë, majtas, djathtas dhe për të vënë pendën e tij poshtë ose marr stilolaps e tij lart, kështu që ai në fakt mund të nxjerrë në ekran në këtë botë shumë të sheshtë drejtkëndëshe. Pra, ku unë mendova se do të shkojnë, dhe ku ju duhet të konsideroni zhytje poshtë për të mendërisht kur përshkruar udhëzime më shumë në përgjithësi, Unë do të thonë, është vënë tuaj pen poshtë në middle-- dhe ne do të të shpëtoj nga breshkë, sepse unë nuk mund të vërtetë mbani duke tërhequr atë shumë mirë. Dhe tani, si tjetër mund të Unë them të nxjerrë një fuqi e tretë? E pra, ne mund të themi diçka si barazim një linjë diagonale në verilindje, për shembull, ose në një kënd 45-shkallë lart. Dhe kjo mund të ketë marrë më këtu. Dhe unë jam goxha larg nga një fuqi e tretë. Por tani, unë mund të them diçka si të kthehet 90 gradë në të majtë dhe vizatoni një vijë të barabartë në veriperëndim gjatësi. Dhe unë mund të vazhdojë me drejtime të ngjashme. Dhe kjo nuk do të jetë e lehtë. Dhe sinqerisht, ne me siguri do të kanë qenë këtu për pesë minuta. Por ndoshta ne do të marrë të diçka që, në fund të ditës, përfundon duke qenë një fuqi e tretë, por ne fetar brenda atij abstraksionit për të bërë atë në një të tillë të ulët nivel që ju nuk mund të vërtetë shikoni se çfarë jeni duke bërë, derisa e tërë gjë është në të vërtetë atje në faqe. Dhe kështu që kjo është një parim i përgjithshëm, përsëri, e programming-- kësaj ideje e abstraksionit. Është kaq mrekullisht të fuqishme, sepse përsëri, ajo vetëm tha, të nxjerrë një fuqi e tretë, e cila të gjithë të pretty much do të grok shumë shpejt. Ne vetëm do të kuptojnë, OK, të nxjerrë një fuqi e tretë. Ne nuk mund të dimë orientimin, kështu që ne mund të jetë pak më të saktë, por në përgjithësi mund të foto ose e di se çfarë është një fuqi e tretë është. Dhe kjo është e dobishme, sepse në qoftë se çdo herë që u ul si një programues në keyboard juaj të shkruani kodin, në qoftë se keni pasur për të menduar në të tilla një nivel të ulët, askush prej nesh do të merrni ndonjëherë ndonjë gjë bërë. Dhe sigurisht, askush prej nesh nuk do të gëzojnë procesin e kodit të shkruar. Ajo do të jetë si me shkrim në 0 dhe 1-së, i cili sinqerisht nuk ishte e gjitha që kohë më parë njerëzit janë shkruar kodin në 0 dhe 1 i. Dhe ne shumë shpejt doli me këto languages-- nivel më të lartë C ++ dhe Java dhe të tjerët. Pra, le të provoni këtë herë vetëm për të rrokullisje e tabelave, në mënyrë që të gjithë ne kanë mundësinë për të menduar në vend të njëjtën mënyrë. A mund të marrë një më shumë vullnetar këtë koha për të ardhur deri në bord dhe të nxjerrë, nuk lexojnë? Po, OK. Ben, eja up. Dhe, Ben, në këtë rast, një herë ju përballen bordit, nuk duken të majtë, nuk duket e drejtë. Vetëm të bëjë atë tuaj kolegët këtu të ju them. Dhe për të gjithë të tjerët në dhomë, ju tani jeni programues. Ai është kompjuteri. Dhe foto kam zgjedhur këtu paraprakisht është kjo këtu. Ata janë just-- ata janë duke menduar një shaka qesharake është e gjitha. Pra, do të bën dikush donte të vullnetar udhëzimin e parë ose deklaratë që duhet të pen Komanda Ben? Dhe ne do të bëjmë këtë së bashku, ndoshta një udhëzim nga çdo person. Më vjen keq? AUDIENCA: Vizatoni një rreth. DAVID Malan: Vizatoni një rreth është gjëja e parë që kam dëgjuar. AUDIENCA: Up lartë. DAVID Malan: Up lartë. OK, ne mund të ju lejojnë të fshini, prish. Dhe tani, dikush tjetër. Dan, do të jetë i qetë duke ofruar udhëzimin e ardhshme? AUDIENCA: Sure, nxjerrë në qendër e poshtme të rrethit, me një small-- pak hapësirë ​​të vogël nga ajo, vizatoni një vijë të drejtë deri në tre katërtat e rrugës poshtë bordit një kënd të vogël në të majtë tuaj. DAVID Malan: Mirë. AUDIENCA: kënd lehtë. DAVID Malan: Undo, Kontrolli-Z. NE RREGULL. Andrew, ju doni të ofrojë up udhëzimin e ardhshme? AUDIENCA: Sigurisht. Nga thellësia e këtë linjë, një angle-- tej vogël whoops-- ndoshta rreth një e treta të gjatësisë [padëgjueshme], kënd të vogël në rënie dhe si një e treta e gjatësisë së [padëgjueshme]. Pra, vërtet, nga kjo pikë, vizatoni një vijë një e treta të gjatësisë së mëparshme Linja më tej në të majtë. DAVID Malan: Kjo OK? Drejt line, kjo është në rregull? OK, Olivier, ju doni për të ofruar të ardhshëm? AUDIENCA: [padëgjueshme] nga poshtme e rrethit, [padëgjueshme]. Nxjerrë në anën e djathtë e [padëgjueshme] centimetra. [Qeshura] DAVID Malan: Unë mendoj se ju jeni do të kanë për të kthyer kjo është inç këtu. AUDIENCA: Stop. [Qeshura] DAVID Malan: OK. [? Ara,?] Doni për të ofruar të ardhshëm? AUDIENCA: Draw një [padëgjueshme] sipërme [padëgjueshme] njëjtë. [Padëgjueshme] rrethi, të nxjerrë të [Padëgjueshme] dhe të tërheqë [padëgjueshme]. DAVID Malan: OK, jo më shumë prish. Le të bëjmë një ose dy udhëzime më shumë. Chris, ju doni të ofrojë një të tillë? AUDIENCA: Në fund e rrethit, [padëgjueshme] të nxjerrë një linjë slopping barabartë rënie në të majtë [padëgjueshme]. DAVID Malan: OK. Andrew? Ne did-- Karim? AUDIENCA: Duke filluar nga vija e drejtë, në fund të linjës majtë, në fund, ju jeni duke shkuar për të shkuar drejtë në lidhje me të njëjtën gjatësi si këtë linjë ju jeni në, duke tërhequr të e drejta [padëgjueshme]. [Padëgjueshme] gradë, kështu që [padëgjueshme] gradë në anën e djathtë. DAVID Malan: Të gjithë të drejtë. Le të ndalemi. A nuk kthehet rreth ende. Le të ndalemi, dhe le provoni një përpjekje tjetër para se të zbulojë për Ben ajo që ai është tërhequr. A mund të riorganizimi Ben për të right-- ose në të vërtetë, nuk ka, le të vetëm të ju jap një bord, edhe më të mirë. Pra, dikush do të doja tani për të marrë më shumë e qasjes se Victoria mori më herët, ku ne flasim në një abstraksion të nivelit të lartë dhe në vetëm një dënim ose dy përshkruajnë për Ben çfarë për të nxjerrë pa duke marrë në barërat e këqija, kështu që të flasin, në këtë një nivel më të ulët? Victoria. [Qeshura] AUDIENCA: Vizatoni një figurë e njeriut në këmbë. Dhe këmbët e tij dhe të armëve duhet të jetë në anën e djathtë. DAVID Malan: OK, kjo është e gjitha që ju merrni. Në rregull. Pse nuk tregojnë për Ben atë që ai bëri. Pra, një raund të duartrokitje. Kjo ishte më e vështirë ndoshta. Pra, edhe pse ne jemi duke folur në terma mjaft të pa kuptim në lidhje vetëm duke tërhequr pictures, shpresojmë se ju mund të vërtetë të vlerësojmë shkallën e shprehurit, që mund të jetë e nevojshme në mënyrë që të tregoj një kompjuter çfarë të bëjë. Dhe në fakt, fakti që Ben ishte në gjendje për të nxjerrë këtë në mënyrë të shpejtë është lloj i testamentit të përdorur një gjuha, ndoshta një nivel më të lartë version i anglishtes, që lejon atë për të përdorur vetëm fjalë, ose të dëgjojnë fjalët nga Viktoria, që lejojnë atë këto abstractions-- vetëm barazim një figurë në këmbë të right-- se lloj i ka disa kuptimin semantik të saj se nuk është e gati aq e qartë kur ju jeni vetëm duke thënë: vënë pendën tuaj poshtë, të nxjerrë në të djathtë, të nxjerrë në të majtë. Dhe kështu kjo, gjithashtu, është shumë e zakonshme në programimin. Kjo do të thuhet të jetë si një Gjuha nivel shumë të ulët, programimi në 0 dhe 1 i nëse ju do. Dhe kjo do të jetë një nivel më të lartë programimit gjuhë në Java, ose diçka të tillë. A bit e një oversimplification, por kjo është lloj i si emocionale ndjenja që ju të ndiheni kur duke përdorur një lloj gjë apo një tjetër. A bit e frustrimit këtu nga nevoja për saktësi të tillë, por mundësia të jetë një lirshëm pak me interpretimi këtu. Por sigurisht, mete mund të lindin si rezultat i kësaj. Nëse ju dëshironi të home-- ne nuk do ta bëjë këtë një në class-- por në qoftë se ju dëshironi të sjellë këtë në rrjetë, Mendova se ne do të zhyten në këtë. Pra, nëse ju dëshironi për të luajtur këtë Loja me të tjera tuaj të rëndësishme ose fëmijët apo të ngjashme, ju mund të gëzojnë atë po ashtu. Pra, le të shkojnë përpara dhe të kërkoni në të fundit gjë këtu për të menduarit kompjuterike. Dhe kjo na sjell te Gjoni Oliver, jo për klipin ju mund të keni parë mbrëmë, por për një çështje disi kohëve të fundit. Disa muaj më mbrapa, Volkswagen mori mjaft kritikë e ashpër për çfarë arsye, në qoftë se ju e dini? Çfarë bënë ata marrin në telashe për? Yeah, kështu që ata emissions-- ishin duke u përpjekur për të rrahur emisionet Testet me thelb të paturit e tyre makina ndotin mjedisin më pak kur makinat e tyre ishin duke u testuar dhe ndotin mjedisin më shumë kur makinat nuk janë duke u testuar. Dhe çfarë është gjithnjë interesante në botë, si ju mund të keni nxirret nga diskutimet e like-- atë që është e arsyetimet tuaja CarPlay, software Apple për makinat dhe fakti që shumë ne gjithnjë e më kanë ekrane me prekje në makinat tona, ka një sasi të frikshme e softuerit në e njerëzve të makina sot, e cila sinqerisht hap një mund të krimbave, kur e tërë është fjala për sigurinë dhe rrezikut fizik. Por, për sot, le të të përqëndrohet në vetëm atë që është e përfshirë në shkrim software që mund të ketë gamed sistemin. Për përcaktimin e problem, për ata të panjohur, le të marrin një vështrim në John Oliver. Dhe për ata të njohur me problemi, le të shohim në atë në një lente fun nëpërmjet John Oliver, si dhe. Pra më lejoni të goditur të luajë për këtë, unë mendoj, tre minuta hyrje. Mallkuar atë. [VIDEO rishikim] -Cars-- DAVID Malan: Natyrisht, në YouTube, it's-- - --The karaktere të zgjuar në filma Fast and Furious. Këtë javë, Gjermanisht automaker Volkswagen gjetur veten në mes të një skandali të proporcione potencialisht kriminale. -Volkswagen Po bëhet gati për miliarda në gjobat, tarifat e mundshme penale për drejtuesit e saj, si Kompania kërkon ndjesë për manipulim 11 milionë makina për ndihmojë atë të mundi emisionet teste. Modelet -Certain naftë janë projektuar me software të sofistikuar që Informacione të përdorura, duke përfshirë pozicionin e timon dhe automjeteve me shpejtësi, për të përcaktuar se makina ishte duke kaluar nëpër emisionet e testimit. Nën këtë rrethanë, motori do të reduktonte emetimet toksike. Por makina ishte i manipuluar për të anashkalojë se kur ajo ishte duke u shtyrë. Emetimet rritur 10 deri 40 herë mbi nivele të pranueshme EPA. -Wow, 10 deri në 40 herë madh se EPA lejon. Kjo është gjëja më e keqe Volkswagen ka bërë ndonjëherë, është diçka që ju mund të thoni nëse ju kurrë nuk kisha dëgjuar e Luftës së Dytë Botërore. Por ndoshta shenja më e sigurt se si shumë probleme Volkswagen është, është se njerëzit në shumë lartë kanë dhënë dorëheqjen. CEO dha dorëheqjen të mërkurën pas përpiqen për të bërë kontrollin e dëmit, duke thënë se ai ishte i pafund i keq, i cili dukej e madhe deri sa doli ai ishte vetëm 10% keq por kishte manipuluar gojën për të fryj artificialisht sorriness tij. Dhe ndërkohë, US Volkswagen Shefi kishte një falje prej tij. -Le Të jetë i qartë në lidhje me këtë, Kompania jonë ishte e pandershme. Dhe në fjalët e mia gjermane, ne kanë dehur totalisht deri. -Yeah, Por krejtësisht i dehur up nuk janë vepra gjermane. Dhe gjuhën gjermane ka shumë fraza të bukura për të përshkruar situata ashtu si kjo, të tilla si [German], që do të thotë afërsisht, trishtim që vjen nga gënjeshtra e biznesit të lidhura, ose [GERMAN], e cila përkthehet si turp ato të atin që përfshin retë e benzinës. Kjo është një gjuhë e bukur. Ajo vetëm sails off gjuhën. Dhe nga rruga, ndërkohë që njeriu falje mund të ketë dukej i sinqertë, kjo vlen të përmendet se ai ishte duke folur në një parti zyrtare nisjen për 2016 Volkswagen Passat, që do të thotë se, së shpejti pas duke thënë keq, ai e tha këtë. -Thank You very much për të ardhur. Gëzojnë mbrëmje. Up tjetër është Lenny Kravitz. [MUSIC Duke luajtur] -OK, OK, duke i dhënë fund tuaj falje me lart e ardhshme Lenny Kravitz nuk ka piskat pendimin matur. Ajo britmat, kemi pyetur Bon Jovi, dhe ai tha jo. markë Volkswagen ka janë dëmtuar rëndë. Dhe sinqerisht, ad e tyre të reja Fushata nuk është saktësisht ndihmon. - [GERMAN], ne në Volkswagen do të dëshironim për të kërkuar falje për të mashtruar ju me makinat tona. [END rishikim] DAVID Malan: Pra, kjo ishte një Mënyra rrethrrotullim of-- sorry-- kjo ishte një mënyrë e tërthortë e futur një problem themelor në software, i cili është që ju duhet për të zbuluar disa kushte të caktuara. Dhe kështu çështja në fjalë këtu është, si e bën një makinë potencialisht, si zbatohet në software nga këto programuesit, zbuluar se ajo është në të vërtetë duke u testuar? Pra, të jetë super i qartë, se çfarë ata ishin duke bërë ishte, në mjediset ku programuesit artistikisht makina ishte duke u testuar, kanë bërë disi makina lëshojnë më pak emisionet, më pak emisionet, tymi në mënyrë më pak toksike dhe të tilla. Por, kur kjo është normalisht lëvizëse në rrugë, ai thjesht do të lëshojnë sa më shumë ndotja si ajo donte. Pra, si mund të shkruani pseudocode për këtë algoritmi? Si mund të shkruaj në pseudokod për software running në makinë? Unë do të thotë, në një fjalë, ai vlon poshtë për diçka si kjo. qoftë duke u testuar, lëshojnë më pak. tjetër lëshon më. Por kjo është pak shumë të nivelit të lartë, apo jo? Le të përpiqen për të zhyten në diskutim për atë që kjo Nxjerrja e të qënit mjete testuar. Me fjalë të tjera, edhe në qoftë se ju e dini asgjë në lidhje me makinat, se çfarë lloj i pyetjeve mund të kërkoni për të përcaktuar nëse ju jeni duke u testuar, nëse ju jeni makina? Cilat karakteristika mund të jetë paraqesin në qoftë se një makinë është duke u testuar? AUDIENCA: Testimi pajisje. DAVID Malan: Pajisje Testimi. Pra, nëse testimin e pajisjeve aty pranë, pastaj lëshojnë më pak. Kështu që unë mund të imagjinohet zbatimit që me një lloj të kamerave ose zbulimin se çfarë është rreth jush. Dhe më lejoni të propozoj, që vetëm ndjehet tepër i komplikuar që në fakt të ketë shtesë hardware vetëm për këtë qëllim. AUDIENCA: Nëse ju jeni në park, në qoftë individualitet juaj është e hapur. DAVID Malan: Në park ose individualitet të hapur, kështu që kjo është e mirë. AUDIENCA: Dhe makinë running. DAVID Malan: Pra, kjo është pak e më concrete-- dhe makina running. Pra, kjo do të ishte bashkim i një disa kushte të ndryshme, nëse ju do. Pra, nëse makina është në park, dhe madje edhe edhe pse kjo është një gjë shumë e mekanike zakonisht, unë mund të imagjinoni shkrim software, veçanërisht për shkak se nuk ka shpesh një dritë atje këto ditë, Unë mund të imagjinohet sepse nuk ka software që mund të query Shifter apo jo ajo, a jeni në park, janë ju në makinë, jeni në të kundërt. Dhe unë mund të kthehet një të përgjigjet se është ose po ose jo të këtyre llojeve të pyetjeve. Dhe kështu që unë mund të përgjigjem me siguri një pyetje si, është individualitet e hapur. Ndoshta, ka një lloj sensor që ose i jep përsëri një 1 ose 0, vërtetë apo e rreme, individualitet është e hapur. Dhe pastaj makinë running, unë mund të zbulojë që në njëfarë mënyre nëpërmjet çfarë mekanizmi? Si, makina është i rrjedhshëm, I mund të zbulojë se është më, mund ta zbuluar disi se makina është në lëvizje? Audienca: RPMs. DAVID Malan: Yeah, kështu që nuk ka gjithmonë se gjilpërë se ju tregon se si shumë rrotullime në minutë rrotat janë duke përjetuar. Dhe kështu që unë mund të shikoni në atë. Dhe në qoftë se kjo nuk është 0, që ndoshta do të thotë se makina është në lëvizje. Por ne duhet të jetë një pak të kujdesshëm atje, because-- le të lehtësuar this-- në qoftë se ne vetëm i tha, nëse running makinë, ne nuk duam të vetëm të lëshojnë pak, ne duam nëse makina është duke dhe kjo është duke u testuar. Pra, ka një tjetër disa përbërësit që folks kanë hypothesized software është duke bërë, sepse mungon kodi burim aktual, ju mund vetëm lloj të konkludoj nga Efektet fizike të makinës, si në atë mund të ndodh nën individualitet në software. Pra, në qoftë se automjeti drejtimin dhe ndoshta, të themi, rrotat e pasme nuk lëvizin, mund të jetë ky tregues i një lloj testi? Çfarë jam unë duke nënkuptuar në këtu? Yeah, ndoshta, kjo është në një nga ato gjëra rul, ku si rrotat janë kthyer në para ose ne prapme, varësi të faktit nëse është e para rrotë ose makinë rear wheel, kështu që gjysma e rrotave janë duke lëvizur, por dy të tjera nuk janë, e cila është një situatë e pazakontë në botën e vërtetë. Nëse ju jeni të makinës në anën Rruga, që nuk duhet të ndodhë. Por nëse ju jeni në një depo në një lloj të sistemit rul, që mund të vërtetë të ndodhë. Unë mendoj se folks propozoi gjithashtu se ndoshta, nëse makina është drejtimin dhe drejtues Nuk rrota lëviz, se gjithashtu mund të jetë një sinjal, sepse kjo është e arsyeshme për si një vijë të drejtë në një rrugë. Por edhe atëherë, njeriu është ndoshta duke lëvizur atë pak ose sigurisht mbi disa sekonda. Ose drejtimi i një minuta, shanset janë se nuk është do të jenë të fiksuar në pikërisht të njëjtën pozitë. Pra, me fjalë të tjera, ne mund të marrë substraction, a jeni duke u testuar, dhe prishen se funksionalitetin në këto përbërësit përbërëse. Dhe kjo është me të vërtetë ajo që Volkswagen-së inxhinierë disi e bëri. Ata shkruan software me vetëdije të zbuluar nëse makina është duke u testuar, prandaj lëshojnë pak, tjetër lëshojnë në mënyrë të zakonshme. Dhe problemi këtu, gjithashtu, është se software nuk është e diçka që ju mund të vërtetë të shihni nëse ju keni të ashtuquajturin kod burim. Pra, ka dy lloje të ndryshme të code-- paktën dy lloje të ndryshme i kodit në botë. Ka diçka të quajtur burim Kodi, e cila nuk është ndryshe nga çfarë ne kemi qenë të shkruar, kod burim. Ky është kod burim të shkruar në një gjuhë e quajtur pseudocode, e cila është vetëm diçka English-si. Nuk ka përkufizim formal të saj. Por, C dhe Java, C ++, ata janë të gjitha gjuhët zyrtare që, kur ju shkruani në to, atë që ju keni është një file teksti që përmban kodin burim. Por ka edhe diçka në bota e quajtur kodin makinë. Dhe kodin makine, për fat të keq, është vetëm 0 dhe 1-së. Pra code makinë është çfarë makina e kuptoj, sigurisht. Kodi burimor është ajo që njerëzit të kuptojnë. Dhe në përgjithësi, jo, por gjithmonë, ka një program që një programues përdor që merr burim Kodi dhe e kthen atë në kodin e makinës. Dhe se programi është në përgjithësi quhet një përpilues. Pra input juaj është kodi burim, Prodhimi juaj është kodi makine, dhe përpiluesi është një pjesë e software që e bën këtë proces. Pra, ky fakt harta bukur për të inputeve tona, algoritme, rezultatet. Por kjo është një mishërim shumë specifik nga e cila, që do të thotë se: edhe në qoftë se ju vetë një nga Volkswagen-së makina që është fajtor për këtë, kjo nuk është si ju vetëm mund të hapur hood ose hapni manualin e përdoruesit apo të shikoni në kodin burim, sepse nga koha arrin makinën tuaj në rrugë me pemë tuaj, kjo është tashmë konvertuar në 0 dhe 1 i. Dhe kjo është shumë e vështirë, në mos e pamundur, por shumë e vështirë për të grumbulloj pak nga pak më shumë e asgjë nga vetëm duke kërkuar në nivel themel 0 dhe 1 i. Kështu që ju mund të kuptoj atë, në fund të fundit, në qoftë se ju e kuptoni se si një makinë operates-- Intel inside-- nëse ju i kuptoni arkitekturën Intel, por është shumë e kohës. Dhe, edhe atje, ju mund të të mos jetë në gjendje për të parë çdo gjë që kodi në fakt mund të bëjë. Çdo pyetje në lidhje me këtë apo këtë lloj procesi në përgjithësi? Dhe në fakt, ne mund të lidhin këtë diskutim për diskutimin e djeshëm të Apple. Kjo, gjithashtu, është se pse FBI nuk mundet vetëm të shkoni dhe të kërkoni në telefonin e të dyshuarit dhe për të gjetur linjat e kodit, për shembull, që të mundësojë kodkalimin ose të mundësojë që vonesë 80-milisekonda. Sepse nga ajo kohë e në iPhone Shokët së, kjo është tashmë konvertuar në 0 dhe 1 i. E pra, le të ndalemi këtu për tonë shikoni në të menduarit kompjuterike. Pse nuk kemi marrë një pushim 15 minuta. Dhe kur të kthehen, ne do të hidhini një sy në programimin vetë dhe të fillojnë për të hartë disa nga këto koncepte të nivelit të lartë për një aktuale, qoftë i gjallë, gjuhë programimi.